説明

通信システム、端末装置、通信処理方法、通信処理プログラム、通信処理プログラムが記憶された記憶媒体

【課題】パケット通信によってデータの送受信を行う端末装置に拡張機器を接続するだけで、その拡張機器を使用可能とする。
【解決手段】第2コントローラ40が接続されたコントローラ20は、パケット入力データのデータ領域のうちコントローラ20のために割り当てる第1入力領域と第2コントローラ40のために割り当てる第2入力領域とを規定する所定の合成シナリオ情報に基づいて、ユーザからの操作入力に対応する操作入力データを第1入力領域に、拡張機器から取得した拡張入力データに基づくデータを第2入力領域にそれぞれ配置して、パケット入力データを生成して装置本体10へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、端末装置、通信処理方法、通信処理プログラム、通信処理プログラムが記憶された記憶媒体に関する。
【背景技術】
【0002】
ゲーム機とコントローラとの間で、予め設定された所定の通信方式によって情報の送受信を行う通信システムは公知である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−102788号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
コントローラの機能を拡張したいユーザは、コントローラに所望の拡張機器を接続して使用することを希望する。
【0005】
しかし、ゲーム機とコントローラとの間で所定の形式及び所定容量のパケット通信を行う場合、コントローラに単に拡張機器を接続しただけでは、拡張機器とゲーム機との間で情報の送受信が行われず、拡張機器を使用することができない。
【0006】
本発明は、情報処理装置と端末装置とが所定形式及び所定容量のパケット通信によってデータの送受信を行う場合において、端末装置に所望の拡張機器を接続するだけで、その拡張機器を使用することが可能な通信システムの提供を目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様の通信システムは、情報処理装置と端末装置と拡張機器とを備える。端末装置は、形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信する。拡張機器は、端末装置に着脱自在に接続される。
【0008】
端末装置は、操作入力手段とパケット生成手段と記憶手段と拡張データ受信手段とを有する。操作入力手段は、ユーザからの操作入力を受ける。パケット生成手段は、操作入力手段から取得した操作入力データをパケット化してパケット入力データを生成する。記憶手段は、合成シナリオ情報を記憶する。合成シナリオ情報は、パケット入力データのデータ領域のうち拡張機器のために割り当てる領域を規定する。拡張データ受信手段は、接続された拡張機器から拡張データを受信する。
【0009】
パケット生成手段は、拡張機器が端末装置に接続されているとき、合成シナリオ情報に基づいてパケット入力データを生成する。
【0010】
本発明の第2の態様の通信システムは、情報処理装置と端末装置と拡張機器とを備える。情報処理装置は、形式及び容量が規定された所定方式のパケット通信によってパケット出力データを送信する。端末装置は、情報処理装置から送信されたパケット出力データを受信する。拡張機器は、端末装置に着脱自在に接続される。
【0011】
端末装置は、パケットデータ処理手段と記憶手段とを有する。パケットデータ処理手段は、受信したパケット出力データを解析処理する。記憶手段は、抽出シナリオ情報を記憶する。抽出シナリオ情報は、パケット出力データのデータ領域のうち拡張機器のために割り当てる領域を規定する。
【0012】
拡張機器が接続されているとき、パケットデータ処理手段は、拡張機器のための拡張出力データを、抽出シナリオ情報に基づいてパケット出力データから抽出し、抽出した拡張出力データを拡張機器へ送信する。
【発明の効果】
【0013】
本発明によれば、情報処理装置と端末装置とが所定形式及び所定容量のパケット通信によってデータの送受信を行う場合において、端末装置に所望の拡張機器を接続するだけで、その拡張機器を使用することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態としての通信システムの概要を示す模式図である。
【図2】装置本体の主要な内部構成を示すブロック図である。
【図3】コントローラの主要な電気的構成を示すブロック図である。
【図4】合成シナリオ情報の一例を示す図である。
【図5】合成シナリオ情報の他の例を示す図である。
【図6】抽出シナリオ情報の一例を示す図である。
【図7】拡張モード移行時の処理を示すフローチャートである。
【図8】拡張モード移行時の処理を示すフローチャートである。
【図9】拡張モード時の処理を示すフローチャートである。
【図10】拡張モード時の処理を示すフローチャートである。
【図11】コントローラと第2コントローラの一例を示す図である。
【図12】コントローラと第2コントローラの他の例を示す図である。
【図13】コントローラと第2コントローラの他の例を示す図である。
【図14】コントローラと第2コントローラの他の例を示す図である。
【図15】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の一例を示す図である。
【図16】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図17】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図18】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図19】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図20】合成シナリオ情報のフォーマット構成のメモリ展開イメージを示す図である。
【図21】属性値の一覧を示す図である。
【図22】合成シナリオ情報のフォーマット構成の一例を示す図である。
【図23】合成先パケットの一例を示す図である。
【図24】合成元I/Oデバイスを例示する図である。
【図25】演算結果後の合成先パケットを例示する図である。
【図26】合成シナリオ情報のフォーマット構成を例示する図である。
【図27】演算結果後の合成先パケットの一例を例示する図である。
【図28】合成シナリオ情報のフォーマット構成を例示する図である。
【図29】演算結果後の合成先パケットを例示する図である。
【図30】合成シナリオ情報のフォーマット構成を例示する図である。
【図31】演算結果後の合成先パケットを例示する図である。
【図32】合成シナリオ情報のフォーマット構成を例示する図である。
【図33】演算結果後の合成先パケットを例示する図である。
【図34】合成シナリオ情報のフォーマット構成を例示する図である。
【図35】演算結果後の合成先パケットを例示する図である。
【図36】合成先パケットを例示する図である。
【図37】合成元I/Oデバイスを例示する図である。
【図38】合成シナリオ情報のフォーマット構成を例示する図である。
【図39】演算結果後の合成先パケットを例示する図である。
【発明を実施するための形態】
【0015】
〔本実施形態の通信システムの概略構成〕
本発明の一実施形態としての通信システムを図1に模式的に示す。
【0016】
この通信システムは、情報処理装置(ビデオゲーム機)の一例であるエンタテインメント装置(以下、装置本体と称する)10と、ユーザ(プレイヤ)によって操作される端末装置としてのコントローラ20と、コントローラ20に拡張ケーブル41を介して着脱自在に有線接続されて拡張機器として機能する第2コントローラ40と、装置本体10から映像及び音声信号が供給されるモニタ装置(例えばテレビジョン受像機など)100とを備える。モニタ装置100は、装置本体10から供給された映像信号に基づいて画像を表示する画像表示部(表示画面)101を有する。なお、コントローラ20と第2コントローラ40との着脱自在な有線接続には、上記拡張ケーブル41による接続のほか、両者の端子同士を直接接続する形態も含まれる。
【0017】
装置本体10とコントローラ20との間では、通信により情報が送受信される。両者間の通信方法は、ケーブル13を介した有線接続による通信と無線による通信の何れでもよい。本実施形態のコントローラ20では、有線と無線の双方による通信が可能であり、装置本体10にコントローラ20が有線接続された状態では有線による通信が行われ、有線接続が解除された状態では、無線による通信が行われる。
【0018】
図1の例において、装置本体10は、複数のコントローラポート11(本実施形態では4箇所)を有する。コントローラ20と装置本体10とをケーブル13によって有線接続する場合、ケーブル13の一端部に設けられた差込コネクタ12が装置本体10のコントローラポート11のうち任意の一つに差し込まれて電気的に接続され、他端部に設けられた差込コネクタ14がコントローラ20の接続ポート15に差し込まれて電気的に接続される。なお、他のコントローラポート11を使用することにより、装置本体10は複数のコントローラ20との間で有線による同時接続が可能となる。装置本体10とコントローラ20との有線接続方式は、双方向にて通信可能であればよく、本実施形態では、USB(Universal Serial Bus)形式による接続(以下、USB接続と称する)を採用している。
【0019】
コントローラ20には、装置本体10の無線通信部(アンテナ)16との間で無線による情報の送受信を行う無線通信部(アンテナ)17がそれぞれ設けられている。両無線通信部16,17同士の通信方式としては、双方向にて無線通信可能であれば、ブルーツゥース(Bluetooth(登録商標))通信のような汎用の近距離高速無線通信方式や専用の近距離無線通信方式などのあらゆる通信方式の適用が可能である。本実施形態では、ブルーツゥース無線通信方式(以下、BT通信と称する)を採用している。
【0020】
装置本体10とコントローラ10との間のBT通信では、形式(例えばI2Cフォーマット)及び容量(例えば48バイト)が規定された所定方式のパケット通信によって、相互にデータが送受信される。なお、USB接続においても、上記所定形式及び所定容量のパケット通信によってデータを送受信してもよく、本実施形態では、USB接続とBT通信の双方において、I2Cフォーマットで48バイトのパケット通信によってデータを送受信する場合を説明する。
【0021】
第2コントローラ40は、コントローラ20と同じタイプであってもよく、異なったタイプであってもよい。また、第2コントローラ40は、単独では使用できず、コントローラ20の拡張機器としてのみ使用可能なものであってもよい。また、端末装置は、コントローラ20以外の装置(例えば、携帯型のゲーム機)であってもよく、拡張機器は、コントローラ40以外の入力装置(例えば、マウス、キーボード、ジョイスティックなど)や出力装置(スピーカなど)であってもよい。また、拡張機器は、CPUを有さないものであってもよい。
【0022】
本実施形態では、コントローラ20と同じタイプの第2コントローラ40を、コントローラ20の拡張機器として用いる場合の例について説明する。なお、以下の説明において、コントローラ20の構成要素と第2コントローラ40の構成要素とを区別して説明する場合には、コントローラ20の構成要素には「M」の符号を付し、第2コントローラ40の構成要素には「E」の符号を付して両者を区別する。また、コントローラ20に第2コントローラ40が有線接続されていない状態を基本モードと称し、コントローラ20に第2コントローラ40が有線接続されている状態を拡張モードと称する。
【0023】
第2コントローラ40は、拡張モードにおいてコントローラ20の拡張機器として機能する。コントローラ20と第2コントローラ40とを拡張ケーブル41によって有線接続する場合、拡張ケーブル40の一端部に設けられた差込コネクタ42がコントローラ20の接続ポート18に差し込まれて電気的に接続され、他端部に設けられた差込コネクタ43がコントローラ40の接続ポート18に差し込まれて電気的に接続される。なお、第2コントローラ40に差込コネクタを設け、この差込コネクタをコントローラ20の接続ポート18に接続することによって両コントローラ20,40を接続可能としてもよい。また、第2コントローラ40と装置本体10とが有線や無線による直接通信が可能な場合、拡張モードでは、第2コントローラ40と装置本体10との直接通信が禁止される。
【0024】
〔装置本体の外観〕
上記装置本体10には、上記コントローラポート11(11A〜11D)及び無線通信部16の他、図示は省略するが、半導体記憶素子などを内蔵するメモリカードが着脱自在とされるメモリカードスロット、ディスクトレイ、ディスクトレイをオープン又はクローズさせるオープン/クローズボタン、電源のオンやスタンバイ,リセットを行うためのオン/スタンバイ/リセットボタン、音声映像出力端子(AVマルチ出力端子)、PCカードスロット、光ディジタル出力端子、IEEE(Institute of Electrical and Electronics Engineers)1394接続端子、電源スイッチ、AC電源入力端子などが設けられている。
【0025】
また、装置本体10は、例えばいわゆるDVD−ROMやCD−ROM等のディスク媒体に記録されているビデオゲーム用のアプリケーションプログラムに基づいてビデオゲームを実行したり、例えばDVDビデオやCDに記録されたビデオデータ、オーディオデータを再生(デコード)可能なものである。
【0026】
なお、上記アプリケーションプログラムやビデオ、オーディオデータは、ディスク媒体に限らず、半導体メモリやテープ媒体から読み取られたもの、有線若しくは無線の広域或いは域内通信回線等により供給されたものであってもよい。
【0027】
〔装置本体の内部回路構成〕
図2には、上記装置本体10の主要な内部構成を示す。
【0028】
図2に示すように、装置本体10は、メインバス61とサブバス62とを有し、これらのバス61,62は、バスインターフェース63を介して互いに接続され又は切り離される。
【0029】
メインバス61には、メインCPU64と、RAMで構成されるメインメモリ65と、メインDMAC(Direct Memory Access Controller)66と、フレームメモリ67を内蔵する画像処理デバイス(GPU(Graphic Processing Unit))68が接続される。GPU68には、ビデオ出力信号を生成するための制御手段であるCRTC(CRT controller)69が接続される。ビデオ出力信号により、ケーブル等によって装置本体10と接続されている所定の表示装置(本実施形態では、モニタ装置100の画像表示部101)に画像が表示される。
【0030】
メインCPU64は、装置本体10の起動時にサブバス62上のROM70から、バスインターフェース63を介して起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる。また、メディアドライブ71を制御するとともに、このメディアドライブ71に装着されたメディア72からアプリケーションプログラムやデータを読み出し、これをメインメモリ65に記憶させる。さらに、メディア72から読み出した各種データ、例えば複数の基本図形(ポリゴン)で構成された3次元オブジェクトデータ(ポリゴンの頂点(代表点)の座標値など)に対して、ジオメトリ処理を行う。ジオメトリ処理によりポリゴン定義情報をその内容とするディスプレイリストを生成する。また、MPEG(Moving Picture Experts Group)方式あるいはJPEG(Joint Photographic Experts Group)方式等で圧縮されたデータを伸張する。つまりメインCPU64は、ソフトウェアにより情報を解読する情報解読機能を持つ。
【0031】
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、及びテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、及び頂点色等の情報である。
【0032】
GPU68は、描画コンテクストを保持しており、メインCPU64から通知されるディスプレイリストに含まれる画像コンテクストの識別情報に基づいて該当する描画コンテクストを読み出し、これを用いてレンダリング処理を行い、フレームメモリ67にポリゴンを描画する。フレームメモリ67は、テクスチャメモリとしても使用できるため、フレームメモリ67上のピクセルイメージをテクスチャとして描画するポリゴンに貼り付けることができる。
【0033】
メインDMAC66は、メインバス61に接続されている各回路を対象としてDMA転送制御を行うとともに、バスインターフェース63の状態に応じて、サブバス62に接続されている各回路を対象としてDMA転送制御を行う。
【0034】
サブバス62には、マイクロプロセッサなどで構成されるサブCPU73、RAMで構成されるサブメモリ74、サブDMAC75、オペレーティングシステムなどのプログラムが記憶されているROM70、サウンドメモリ76に蓄積された音データを読み出してオーディオ出力として出力する音声処理装置(SPU(Sound Processing Unit))77、USB接続ケーブルを介してコントローラ20との間で有線による情報の送受信を行うUSB通信モジュール78、BT通信を介してコントローラ20との間で無線による情報の送受信を行うBT通信モジュール79、所定のメディア72を装着するためのメディアドライブ71、及びキーボード80が接続されている。メディア72は、画像処理用のプログラムが記録されたCD−ROMやDVD−ROM等の記録媒体である。装置本体10は、この画像処理用のプログラムを読み取って実行することにより、所要のエンタテインメント処理を実行する。USB通信モジュール78は、コントローラポート11(図1に示す)を含み、BT通信モジュール79は、無線通信部16(図1に示す)を含む。
【0035】
また、USB通信モジュール78又はBT通信モジュール79がコントローラ20から信号を受信すると、メインCPU64は、その受信信号に基づいてディスプレイリストを生成してGPU68へ出力する。
【0036】
サブCPU73は、ROM70に記憶されているプログラムに従って各種動作を行う。サブDMAC75は、バスインターフェース63がメインバス61とサブバス62を切り離している状態においてのみ、サブバス62に接続されている各回路を対象としてDMA転送などの制御を行う。
【0037】
BT通信モジュール78からコントローラ20に対してデータを送信する場合、メインCPU64は、後述する出力データ生成処理を実行してパケット出力データを生成する。また、BT通信モジュール78がコントローラ20からデータを受信した場合、メインCPU64は、後述する入力データ解析処理を実行する。なお、出力データ生成処理及び入力データ解析処理は、サブCPU73が実行してもよい。
【0038】
〔コントローラの構成〕
図3に、コントローラ20の主要な電気的構成を示す。
【0039】
図3に示すように、コントローラ20は、CPU81と、ROM82と、RAM84と、バッテリ83と、操作入力部85と、加速度センサ87と、加振器97と、USB通信モジュール88と、BT通信モジュール89とを有し、これらはバス90を介して接続されている。操作入力部85とは、コントローラ20の筐体の外面上に設けられた各種の操作ボタン(指示入力ボタンや電源ボタンやHOMEボタンやモード切替スイッチなど)の総称である。加振器97とは、コントローラ20を振動させる振動発生装置である。
【0040】
USB通信モジュール88は、USB接続ケーブルを介して装置本体10との間で有線による情報の送受信を行い、BT通信モジュール89は、BT通信を介して装置本体10との間で無線による情報の送受信を行う。USB通信モジュール88は、接続ポート15,18(図1に示す)を含み、BT通信モジュール89は、無線通信部17(図1に示す)を含む。
【0041】
なお、コントローラ20と装置本体10との間を接続するUSBケーブル13(図1に示す)は電源供給線を含み、USB接続状態において、装置本体10は、電源供給線を介してコントローラ20の電源を供給すると共に、バッテリ83の充電を行う。
【0042】
CPU81は、起動処理、入力パケット生成処理、信号送信処理、信号受信処理及び振動制御処理などの所定の処理を実行する。
【0043】
起動処理では、コントローラ20の起動時にROM82から起動プログラムを読み込み、その起動プログラムを実行する。入力パケット生成処理では、操作入力部85に対するユーザからの操作入力に対応したパケット入力データ(後述する基本パケット入力データ又は拡張パケット入力データ)を生成する。パケット入力データは、所定形式のパケット通信に使用可能なデータであり、所定容量(48バイト)で所定形式(I2Cフォーマット)に対応している。信号送信処理では、入力パケット生成処理で生成したパケット入力データを、USB通信モジュール88又はBT通信モジュール89から装置本体10へ所定の周期毎に送信させる。信号受信処理では、装置本体10から送信されたパケット出力データを、USB通信モジュール88又はBT通信モジュール89により、所定の周期毎に受信させる。振動制御処理では、USB通信モジュール88又はBT通信モジュール89が装置本体10から受信したパケット出力データが含む加振情報に応じて加振器97を振動させる。なお、入力パケット生成処理及び信号受信処理の詳細については、後述する。
【0044】
ROM82には、拡張機器識別情報としてのプロダクトIDとシナリオ情報とが予め記憶されている。プロダクトIDとは、装置の種別を判定・識別可能とする属性情報である。シナリオ情報は、後述する合成シナリオ情報と抽出シナリオ情報とを含む。
【0045】
第2コントローラ40も、その基本的な構成は上記コントローラ20と同様である。但し、コントローラ20に第2コントローラ40が有線接続された拡張モードでは、第2コントローラ40はコントローラ20の拡張機器として機能する。この場合、第2コントローラ40のCPU81Eは、装置本体10との直接通信を禁止し、操作入力部85Eに対するユーザからの操作入力に対応した操作信号を、拡張入力データとしてUSB通信モジュール88Eからコントローラ20へ送信させる。また、USB通信モジュール88Eは、コントローラ20から拡張出力データを受信する。
【0046】
また、コントローラ20に第2コントローラ40が有線接続されると、コントローラ20のCPU81Mは、第2コントローラ40との有線接続を検知して、後述するように、拡張モード移行処理を実行した後、上記入力パケット生成処理及び信号受信処理における処理を、基本モード用の処理から拡張モード用の処理に変更する。
【0047】
〔拡張モード移行処理の説明〕
コントローラ20に第2コントローラ40が有線接続されると、コントローラ20及び第2コントローラ40は、拡張モード移行処理を実行し、基本モードから拡張モードへ移行する。
【0048】
拡張モード移行処理において、第2コントローラ40のCPU81Eは、ROM82EからプロダクトIDとシナリオ情報を読み出してコントローラ20へ送信する。コントローラ20は、第2コントローラ40から受信したプロダクトID及びシナリオ情報をRAM84Mに記憶する。なお、コントローラ20は、拡張モードから基本モードへの移行時(コントローラ20と第2コントローラ40との有線接続が解除されたとき)に、RAM84Mに記憶されているシナリオ情報を削除してもよく、また、基本モードへの移行時にシナリオ情報を削除せず、拡張モードへの移行時に合成シナリオ情報を上書きして更新してもよい。また、コントローラ20は、第2コントローラ40から取得したシナリオ情報を装置本体10へ送信してもよい。
【0049】
また、コントローラ20は、第2コントローラ40が接続されたことを示す拡張機器接続情報と第2コントローラ40のプロダクトIDとを、BT通信によって装置本体10へ送信する。
【0050】
また、拡張モード移行処理において、第2コントローラ40のCPU81Eは、装置本体10との直接通信を禁止し、操作入力部85Eに対するユーザからの操作入力に対応した操作信号を、USB通信モジュール88Eからコントローラ20へ送信させる。
〔入力パケット生成処理の説明〕
コントローラ20のCPU81Mが実行する入力パケット生成処理は、基本モード時の基本パケット入力データ生成処理と、拡張モード時の拡張パケット入力データ生成処理とを含む。
【0051】
基本パケット入力データ生成処理では、コントローラ20の操作入力部85Mに対するユーザからの操作入力に応じて取得した操作入力データをパケット化し、所定形式(I2Cフォーマット)及び所定容量(48バイト)の基本パケット入力データを生成する。生成された基本パケット入力データは、信号送信処理によって装置本体10へ送信される。
【0052】
拡張パケット入力データ生成処理では、第2コントローラ40から取得した合成シナリオ情報に従って、コントローラ40から受信した拡張入力データに基づくデータを含む拡張パケット入力データを生成する。生成された拡張パケット入力データは、信号送信処理によって装置本体10へ送信される。なお、この拡張パケット入力データは、上記拡張機器接続情報を常に含む。
【0053】
合成シナリオ情報は、パケット入力データのデータ領域のうち拡張入力データに割り当てる領域(以下、拡張入力領域と称する)と拡張入力データに割り当てない領域(以下、オリジナル入力領域と称する)とを規定し、個々の拡張入力データについて対応させる拡張入力領域を規定し、さらに基本パケット入力データと拡張パケット入力データとの合成規則を規定する。この合成規則は、基本パケット入力データのデータ(以下、オリジナル入力データと称する)を残して拡張入力データを破棄する処理(オリジナル入力データを維持する処理)と、オリジナル入力データを拡張入力データに書き換える処理(オリジナル入力データを拡張入力データにリプレイスする処理)と、オリジナル入力データと拡張入力データとを合成する処理(オリジナル入力データと拡張入力データとをマージする処理)とを含み、各データ領域に対して設定される。オリジナル入力領域については、オリジナル入力データを維持する処理が設定され、拡張入力領域については、オリジナル入力データを拡張入力データにリプレイスする処理又はオリジナル入力データと拡張入力データとをマージする処理の何れかが設定される。マージする処理とは、例えば、当該拡張入力領域にオリジナル入力データが書き込まれている場合はそのオリジナル入力データを残し、オリジナル入力データが書き込まれていない場合に拡張入力データを書き込む処理である。
【0054】
図4に、合成シナリオ情報の一例を示す。図4は、48バイトのデータ領域のうち、着色された1バイト目から38バイト目までの連続した38バイト分がオリジナル入力領域であり、着色されていない39バイト目から48バイト目までの連続した8バイト分が拡張入力領域であることを示している。また、39バイト目、40バイト目、43バイト目、及び46バイト目から48バイト目までの領域(Rp01〜Rp06)では、オリジナル入力データを拡張入力データにリプレイスする処理を実行し、41バイト目、42バイト目、44バイト目、及び45バイト目の領域(Mg01〜Mg04)では、オリジナル入力データと拡張入力データとをマージする処理を実行することを示している。
【0055】
また、図5に、合成シナリオ情報の他の例を示す。この例は、拡張入力領域を不連続に設定したものであり、図4と同様に、着色された領域がオリジナル入力領域であり、着色されていない領域が拡張入力領域であることを示している。また、18バイト目、22バイト目、27バイト目、37バイト目、43バイト目、及び48バイト目の領域(Rp01〜Rp06)では、オリジナル入力データを拡張入力データにリプレイスする(置換する)処理を実行し、24バイト目、25バイト目、28バイト目、及び31バイト目の領域(Mg01〜Mg04)では、オリジナル入力データと拡張入力データとをマージする処理を実行することを示している。
【0056】
拡張入力領域の容量(バイト数)は、拡張機器の種別に応じて設定される。拡張入力領域は、基本パケット入力データのデータ領域のうち、コントローラ20のために使用していない未使用領域から優先して設定し、未使用領域が存在しない場合や未使用領域だけでは不足する場合には、コントローラ20のために使用される頻度が少ない領域や情報としての重要度が低いデータを配置する領域から適宜選択して設定する。
【0057】
また、同じ拡張機器を使用する場合であっても、装置本体10が実行するアプリケーションプログラムに応じて、異なる合成シナリオ情報を用いてもよい。例えば、コントローラ40からの入力操作が多い方が趣向性が高まるゲームアプリケーションプログラムを実行する場合には、拡張入力領域が広く設定された合成シナリオ情報を使用し、コントローラ40からの入力操作が少なくても高い趣向性が得られるゲームアプリケーションプログラムを実行する場合には、拡張入力領域が狭く設定された合成シナリオ情報を使用すればよい。この場合、複数の合成シナリオ情報を第2コントローラ40に予め記憶させておき、コントローラ20は、装置本体10が実行するアプリケーションプログラムに応じて、第2コントローラ40から取得して使用する合成シナリオ情報を選択して決定すればよい。
【0058】
本実施形態では、オリジナル入力領域に操作入力データを配置することによりパケット通信方式に対応した基本入力データを生成し、拡張データ入力領域に拡張入力データを配置することによりパケット通信方式に対応した拡張入力データを生成し、生成した基本入力データと拡張入力データとを合成して拡張パケット入力データを生成する。
【0059】
例えば、図4に示す合成シナリオ情報を用いる場合、上記基本パケット入力データ生成処理と同様の配列で操作入力データを配置することにより基本入力データを生成し、39バイト目〜48バイト目までの領域に拡張入力データを配置することにより拡張入力データを生成し、基本入力データと拡張入力データとを合成する。この合成において、1バイト目〜38バイト目までの領域(オリジナル入力領域)については、基本入力データをそのまま維持する。18バイト目、22バイト目、27バイト目、37バイト目、43バイト目、及び48バイト目の領域(Rp01〜Rp06)については、基本入力データを拡張入力データにリプレイスする。24バイト目、25バイト目、28バイト目、及び31バイト目の領域(Mg01〜Mg04)については、基本入力データと拡張入力データとをマージする。
【0060】
なお、基本パケット入力データと拡張パケット入力データとの合成規則は、上記のように基本パケット入力データ(基本入力データ)の全データ領域を対象として規定されるもののほか、拡張入力領域のみについて規定するものであってもよい。
【0061】
〔信号受信処理の説明〕
コントローラ20のCPU81Mが実行する信号受信処理は、基本モード時の基本受信処理と、拡張モード時の拡張受信処理とを含む。
【0062】
基本受信処理では、装置本体10から受信したパケット出力データをコントローラ20への出力情報として取り扱う。例えば、受信したパケット出力データが加振情報を含む場合、その加振情報に従って加振処理が実行され、加振器97Mが振動する。
【0063】
拡張受信処理では、第2コントローラ40から取得した抽出シナリオ情報に従って、装置本体10から受信したパケット出力データから拡張出力データを抽出し、抽出した拡張出力データをUSB通信モジュール88Mから第2コントローラ40のUSB通信モジュールEへ送信する。第2コントローラ40のCPU81Eは、例えば、受信した拡張出力データが加振情報を含む場合、その加振情報に従って加振処理を実行し、加振器97Eを振動させる。
【0064】
抽出シナリオ情報は、パケット出力データのデータ領域のうち拡張出力データが割り当てられる領域(以下、拡張出力領域と称する)と拡張出力データが割り当てられない領域(以下、オリジナル出力領域と称する)を特定する情報である。
【0065】
図6に、抽出シナリオ情報の一例を示す。図6は、48バイトのデータ領域のうち、着色された1バイト目から8バイト目までの連続した8バイト分がオリジナル出力領域であり、着色されていない9バイト目から48バイト目までの連続した40バイト分(Ex01〜Ex40)が拡張出力領域であることを示している。
【0066】
拡張出力領域の容量(バイト数)は、拡張機器の種別に応じて設定される。拡張出力領域は、パケット出力データのデータ領域のうち、コントローラ20のために使用していない未使用領域から優先して設定し、未使用領域が存在しない場合や未使用領域だけでは不足する場合には、コントローラ20のために使用される頻度が少ない領域や情報としての重要度が低いデータを配置する領域から適宜選択して設定する。例えば、スピーカのように出力情報のデータ量が比較的多い拡張機器の場合には、拡張入力領域を広く設定すればよい。
【0067】
また、同じ拡張機器を使用する場合であっても、装置本体10が実行するアプリケーションプログラムに応じて、異なる抽出シナリオ情報を用いてもよい。
【0068】
〔出力データ生成処理及び入力データ解析処理の説明〕
装置本体10のメインCPU64は、コントローラ20から受信したデータが拡張パケット入力データである場合(受信したデータが拡張機器接続情報を含む場合)、コントローラ20が拡張モードであると判定する。拡張モードであると判定すると、コントローラ20から受信したプロダクトIDに基づいて、コントローラ20に有線接続された拡張機器の種別に応じたパケット出力データを生成する。生成されるパケット出力データの拡張データ記憶領域は、コントローラ20が使用する抽出シナリオ情報の拡張データ記憶領域と一致する。例えば、図6に示す抽出シナリオ情報が記憶された拡張機器が接続されている場合、9バイト目から48バイト目まで(Ex01〜Ex40)を拡張出力領域とし、この拡張出力領域に拡張機器のための拡張出力データを配置する。
【0069】
また、装置本体10のメインCPU64は、コントローラ20から受信したパケット入力データを解析処理する。なお、メインCPU64が実行するプログラム(例えば、ゲームアプリケーションプログラム)が通常モードと拡張モードとを区別して実行するように予め設定されている場合、メインCPU64は、コントローラ20が拡張モードであるか否かの判定結果に応じた処理を上記プログラムに従って実行する。
【0070】
〔拡張モード移行時の説明〕
次に、拡張モード移行時のシステム全体の処理について、時系列に説明する。
【0071】
図7に示すように、起動中のコントローラ20に第2コントローラ40が有線接続されると、コントローラ20は、この接続を検知し(ステップS1)、第2コントローラ40に対してシナリオ情報の送信を要求する(ステップS2)。第2コントローラ40は、この要求を受信し(ステップS3)、シナリオ情報をコントローラ20へ送信し(ステップS4)、コントローラ20は、受信したシナリオ情報をRAM84Mに記憶する(ステップS5)。
【0072】
また、装置本体10とコントローラ20とは、パケット通信による送受信を所定の定期周期で行う。コントローラ20は、第2コントローラ40の接続を検知すると、拡張機器接続情報をパケット入力データに含ませて装置本体10へ送信する。拡張機器接続情報を含むパケット入力データを受信した装置本体10は、図8に示すように、コントローラ20に対して、接続された拡張機器のプロダクトIDを含む属性情報の取得を要求する(ステップS10)。コントローラ20は、この要求を受信して(ステップS11)、第2コントローラ40に対し、属性情報の送信を要求する(ステップS12)。第2コントローラ40は、この要求を受信して(ステップS13)、自己の属性情報をコントローラ20へ送信する(ステップS14)。第2コントローラ20からの属性情報を受信したコントローラ20は、この情報をバッファ値としてRAM84Mに記憶する(ステップS15)。また、属性情報の取得を要求した装置本体10は、コントローラ20に対して、属性情報の送信を要求する(ステップS20)。コントローラ40の属性情報を記憶したコントローラ20は、装置本体10からの要求に応答して(ステップS21)、記憶している属性情報を装置本体10へ送信する(ステップS22)。属性情報を受信した装置本体10は、これをメインメモリ65やサブメモリ74などの記憶部に記憶する(ステップS23)。なお、属性情報を記憶した装置本体10は、必要に応じて、第2コントローラ40の初期化をコントローラ20に要求し、この要求に応じてコントローラ20は第2コントローラ40に初期化を指示し、第2コントローラ40は、コントローラ20からの指示に応じて初期化処理を実行する。
【0073】
〔拡張モード時の説明〕
コントローラ20が拡張モードの場合、装置本体10は、コントローラ20から受信して記憶したプロダクトIDに基づいて、コントローラ20に有線接続された拡張機器(第2コントローラ40)に応じたパケット出力データを生成し、コントローラ20へ出力する。パケット出力データを受信したコントローラ20は、拡張受信処理を実行する。すなわち、図9に示すように、第2コントローラ40から取得した抽出シナリオ情報に従って、受信したパケット出力データから拡張出力データを抽出し(ステップS30)、抽出した拡張出力データを第2コントローラ40へ送信する(ステップS31)。第2コントローラ40は、受信した拡張出力データに応じた処理を実行する。
【0074】
また、コントローラ20は、拡張パケット入力データ生成処理を実行する。すなわち、図10に示すように、第2コントローラ40から取得した合成シナリオ情報に従って、オリジナル入力領域に操作入力データを配置することによりパケット通信方式に対応した基本入力データを生成し(ステップS40)、拡張データ入力領域に拡張入力データを配置することによりパケット通信方式に対応した拡張入力データを生成し(ステップS41)、生成した基本入力データと拡張入力データとを合成して拡張パケット入力データを生成(ステップS42)し、生成した拡張パケット入力データを装置本体10へ送信する(ステップS43)。装置本体10は、拡張パケット入力データを受信して解析処理する。
【0075】
例えば、コントローラ20に第2コントローラ40を有線接続し、コントローラ20を左手で把持して左指で操作入力し、第2コンロトーら40を右手で把持して右指で操作入力することが可能である。すなわち、2つのコントローラ20,40を、右手用及び左手用として同時に使用することができる。
【0076】
また、例えば対戦型のゲームアプリケーションプログラムを実行中に、左手による入力操作が不適切なときには、コントローラ20に対して振動情報を送信し(振動情報をオリジナル出力領域に配置し)、右手による入力操作が不適切なときには、第2コントローラ40に対して振動情報を送信する(振動情報を拡張出力領域に配置する)などの処理が可能であり、2つのコントローラ20,40を1つのユニット化されたコントローラとして使用することができる。
【0077】
また、実行するゲームアプリケーションプログラムに特化した専用コントローラが提供されており、且つその専用コントローラがBT通信機能を有していない場合において、専用コントローラをコントローラ20の拡張機器として接続することにより、コントローラ20を専用コントローラのBT通信器として使用することができる。
【0078】
次に、コントローラ20、第2コントローラ及びシナリオ情報の各種態様を例示して説明する。なお、各例のコントローラ20は、その基本的な構成が共通し、図11に示すように、左操作部21、右操作部22、左スティック23L、右スティック23R、L1ボタン24a、L2ボタン24b、R1ボタン25a、R2ボタン25b、ホームボタン26等を備えている。左操作部21には、上方向、右方向、下方向及び左方向を表す刻印がそれぞれ施された方向指示ボタン(右ボタン21a、左ボタン21b、上ボタン21c、下ボタン21d)が設けられている。右操作部22には、4つの指示ボタン(三角表示ボタン22a、丸表示ボタン22b、X表示ボタン22c、四角表示ボタン22d)。左スティック23Lと右スティック23Rとは、それぞれ傾倒操作と周回操作とが可能であり、非操作時は中立位置に復帰して保持される。
【0079】
〔適用例1〕
本例の第2コントローラ40Aは、図11に示すように、コントローラ20の丸表示ボタン22b及びX表示ボタン22cよりもそれぞれ大型の丸表示拡張ボタン45及びX表示拡張ボタン46を有し、コントローラ20に直接接続される。この第2コントローラ40Aは、例えば、提示された問題に対する回答を2つのボタンの択一的な押下によって入力させるクイズゲームなどに好適に用いられる。
【0080】
コントローラ20に第2コントローラ40Aを装着した場合のコントローラ20の基本入力データ、第2コントローラ40Aの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図15に示す。図15の合成シナリオ情報は、基本入力データのアドレス(0x010,+00)のデータに拡張入力データのアドレス(0x008,+00)のデータをマージすること、及び基本入力データのアドレス(0x010,+01)のデータに拡張入力データのアドレス(0x008,+01)のデータをマージすることを表している。基本入力データのアドレス(0x010,+00)は、コントローラ20のX表示ボタン22cの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス(0x008,+00)は、第2コントローラ40AのX表示拡張ボタン46の押下操作に関する情報が書き込まれるデータ領域である。また、基本入力データのアドレス(0x010,+01)は、コントローラ20の丸表示ボタン22bの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス(0x008,+01)は、第2コントローラ40Aの丸表示拡張ボタン45の押下操作に関する情報が書き込まれるデータ領域である。
【0081】
このような第2コントローラ40Aと合成シナリオ情報とを用いた拡張モードでは、丸表示ボタン22bまたは丸表示拡張ボタン45の何れか一方の押下操作が通常モードにおける丸表示ボタン22bの押下操作と同等に取り扱われ、X表示ボタン22cまたはX表示拡張ボタン46の何れか一方の押下操作が通常モードにおけるX表示ボタン22cの押下操作と同等に取り扱われる。従って、ユーザは、丸表示ボタン22b及び丸表示拡張ボタン45のうち操作し易い一方のボタンを任意に押下操作することができ、また、X表示ボタン22c及びX表示拡張ボタン46のうち操作し易い一方のボタンを任意に押下操作することができる。また、装置本体10は、丸表示ボタン22b及び丸表示拡張ボタン45のうち何れが操作されたか、及びX表示ボタン22c及びX表示拡張ボタン46の何れが操作されたかについて、判別する必要がない。
【0082】
〔適用例2〕
本例の第2コントローラ40Bは、図12に示すように、拡張スティック47を有し、コントローラ20に直接接続される。
【0083】
コントローラ20に第2コントローラ40Bを装着した場合のコントローラ20の基本入力データ、第2コントローラ40Bの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図16に示す。図16の合成シナリオ情報は、基本入力データのアドレス(0x018,+00)のデータに拡張入力データのアドレス(0x008,+00)のデータをリプレイスすること、及び基本入力データのアドレス(0x018,+01)のデータに拡張入力データのアドレス(0x008,+01)のデータをリプレイスすることを表している。基本入力データのアドレス(0x018,+00)と(0x018,+01)とは、ともにデータの空き領域であり、拡張入力データのアドレス(0x008,+00)と(0x008,+01)とは、第2コントローラ40Bの拡張スティック47の操作に関する情報が書き込まれるデータ領域である。すなわち、基本入力データに拡張スティック47の操作情報が追加された拡張パケット入力データが生成される。
【0084】
このような第2コントローラ40Bと合成シナリオ情報とを用いた拡張モードでは、通常モードに対して拡張スティック47の操作入力が追加されるので、操作入力の多様化を図ることができる。
【0085】
〔適用例3〕
本例の第2コントローラ40Bは、上記適用例3と同様であり、図12に示すように、拡張スティック47を有し、コントローラ20に直接接続される。
【0086】
コントローラ20に第2コントローラ40Bを装着した場合のコントローラ20の基本入力データ、第2コントローラ40Bの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図17に示す。図17の合成シナリオ情報は、基本入力データのアドレス(0x008,+04)のデータに拡張入力データのアドレス(0x008,+00)のデータをリプレイスすること、及び基本入力データのアドレス(0x008,+05)のデータに拡張入力データのアドレス(0x008,+01)のデータをリプレイスすることを表している。基本入力データのアドレス(0x008,+04)と(0x008,+05)とは、ともにコントローラ20の左スティック23Lの操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス(0x008,+00)と(0x008,+01)とは、第2コントローラ40Bの拡張スティック47の操作に関する情報が書き込まれるデータ領域である。
【0087】
このような第2コントローラ40Bと合成シナリオ情報とを用いた拡張モードでは、通常モードにおける左スティック23Lの操作が拡張スティック47の操作に置換される。なお、この場合、左スティック23Lの操作に関する情報は、装置本体10には送信されない。
【0088】
〔適用例4〕
本例の第2コントローラ40Cは、図13に示すように、丸表示拡張ボタン45、X表示拡張ボタン46、拡張スティック47、L1ボタン48、L2ボタン49、R1ボタン50及びR2ボタン51を有し、コントローラ20に直接接続される。なお、このコントローラ20は、L1ボタン、L2ボタン、R1ボタン及びR2ボタンを有していない。
【0089】
コントローラ20に第2コントローラ40Cを装着した場合のコントローラ20の基本入力データ、第2コントローラ40Cの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図18に示す。図18の合成シナリオ情報は、基本入力データのアドレス(0x010,+00)のデータに拡張入力データのアドレス(0x008,+00)のデータをマージすること、基本入力データのアドレス(0x010,+01)のデータに拡張入力データのアドレス(0x008,+01)のデータをマージすること、基本入力データのアドレス(0x010,+04)のデータに拡張入力データのアドレス(0x008,+04)のデータをリプレイスすること、基本入力データのアドレス(0x010,+05)のデータに拡張入力データのアドレス(0x008,+05)のデータをリプレイスすること、基本入力データのアドレス(0x010,+06)のデータに拡張入力データのアドレス(0x008,+06)のデータをリプレイスすること、基本入力データのアドレス(0x010,+07)のデータに拡張入力データのアドレス(0x008,+07)のデータをリプレイスすること、基本入力データのアドレス(0x018,+00)のデータに拡張入力データのアドレス(0x008,+02)のデータをリプレイスすること、及び基本入力データのアドレス(0x018,+01)のデータに拡張入力データのアドレス(0x008,+03)のデータをリプレイスすることを表している。
【0090】
基本入力データのアドレス(0x010,+00)は、コントローラ20のX表示ボタン22cの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス(0x008,+00)は、第2コントローラ40AのX表示拡張ボタン46の押下操作に関する情報が書き込まれるデータ領域である。基本入力データのアドレス(0x010,+01)は、コントローラ20の丸表示ボタン22bの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス(0x008,+01)は、第2コントローラ40Aの丸表示拡張ボタン45の押下操作に関する情報が書き込まれるデータ領域である。基本入力データのアドレス(0x010,+04)、(0x010,+05)、(0x010,+06)及び(0x010,+07)は、ともにデータの空き領域である。拡張入力データのアドレス(0x008,+04)、(0x008,+05)、(0x008,+06)、及び(0x008,+07)は、第2コントローラ40Cの拡張スティック47、L1ボタン48、R1ボタン50、L2ボタン49及びR2ボタン51の押下操作に関する情報がそれぞれ書き込まれるデータ領域である。基本入力データのアドレス(0x018,+00)と(0x018,+01)とは、ともにデータの空き領域であり、拡張入力データのアドレス(0x008,+02)と(0x008,+03)とは、第2コントローラ40Cの拡張スティック47の操作に関する情報が書き込まれるデータ領域である。
【0091】
このような第2コントローラ40Cと合成シナリオ情報とを用いた拡張モードでは、丸表示ボタン22bまたは丸表示拡張ボタン45の何れか一方の押下操作が通常モードにおける丸表示ボタン22bの押下操作と同等に取り扱われ、X表示ボタン22cまたはX表示拡張ボタン46の何れか一方の押下操作が通常モードにおけるX表示ボタン22cの押下操作と同等に取り扱われる。また、通常モードに対して拡張スティック47、L1ボタン48、L2ボタン49、R1ボタン50及びR2ボタン51の操作入力が追加される。
【0092】
〔適用例5〕
本例の第2コントローラ40Dは、図14に示すように、ドラム型コントローラであり、ユーザによりスティック53等を用いて叩かれる打面52を有し、コントローラ20に拡張ケーブル41を介して接続される。第2コントローラ40は、打面52への殴打を検知して出力する。この第2コントローラ40Dは、例えば、楽曲に合わせてリズムを入力するゲームなどに好適に用いられる。
【0093】
コントローラ20に第2コントローラ40Dを装着した場合のコントローラ20の基本入力データ、第2コントローラ40Dの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図19に示す。図19の合成シナリオ情報は、基本入力データのアドレス(0x000,+00)、(0x000,+01)、(0x000,+02)、(0x000,+03)、(0x000,+04)、(0x000,+05)、(0x000,+06)、(0x000,+07)、(0x008,+00)、(0x008,+01)、及び(0x008,+02)のデータに、拡張入力データのアドレス(0x000,+00)、(0x000,+01)、(0x000,+02)、(0x000,+03)、(0x000,+04)、(0x000,+05)、(0x000,+06)、(0x000,+07)、(0x008,+00)、(0x008,+01)、及び(0x008,+02)のデータをそれぞれリプレイスすることを表している。基本入力データのアドレス(0x000,+00)、(0x000,+01)、(0x000,+02)、(0x000,+03)、(0x000,+04)、(0x000,+05)、(0x000,+06)、及び(0x000,+07)は、コントローラ20に関する設定情報(例えば、プロダクトIDなど)が書き込まれるデータ領域であり、拡張入力データのアドレス(0x000,+00)、(0x000,+01)、(0x000,+02)、(0x000,+03)、(0x000,+04)、(0x000,+05)、(0x000,+06)、及び(0x000,+07)は、(0x008,+00)と(0x008,+01)とは、コントローラ40Dに関する設定情報(例えば、プロダクトIDなど)が書き込まれるデータ領域である。また、基本入力データのアドレス(0x008,+00)、(0x008,+01)、及び(0x008,+02)は、コントローラ20のX表示ボタン22c、丸表示ボタン22c、及び四角表示ボタン22dの押下操作に関する情報がそれぞれ書き込まれるデータ領域であり、拡張入力データのアドレス(0x008,+00)、(0x008,+01)、及び(0x008,+02)は、コントローラ40Dへの入力情報(例えば、殴打入力に関する情報)が書き込まれるデータ領域である。
【0094】
このような第2コントローラ40Dと合成シナリオ情報とを用いた拡張モードでは、通常モードにおけるX表示ボタン22c、丸表示ボタン22c、及び四角表示ボタン22dの押下操作がコントローラ40Dへの入力操作に置換される。
【0095】
また、コントローラ20に関する設定情報が全て第2コントローラ40Dに関する設定情報に置換される。このため、装置本体10は、第2コントローラ40Dを通信相手として認識した状態で、コントローラ20との間で実際の通信を行う状態となる。すなわち、コントローラ20は、第2コントローラ40Dの無線通信手段(BT通信器)としてのみ機能する。
【0096】
〔合成シナリオ情報の基本フォーマットの説明〕
次に、合成シナリオ情報の基本フォーマットについて説明する。図20は、合成シナリオ情報のフォーマット構成のメモリ展開イメージである。
【0097】
図20に示すように、合成シナリオ情報は、1ユニットの基本フォーマットを単位として、1又は複数ユニットの基本フォーマットによって設定される。1ユニットの基本フォーマットは、[属性値]、[合成先パケット内部先頭アドレス]、[合成元I/Oデバイス先頭アドレス]、[試行カウント]及び[パラメータ]の纏まりによって構成される。上記実施形態において、コントローラ(端末装置)20が合成先のデバイスであり、第2コントローラ(拡張機器)40が合成元のデバイスである。基本フォーマットの構成に従って任意のシナリオ定義領域に設定を行うことにより、合成シナリオ情報が規定される。このように1ユニットを基本単位として合成シナリオ情報を設定することによって、別の属性値とのコンビネーション合成や任意のパラメータとの合成・マスク処理など、様々な合成が可能となる。
【0098】
なお、以下の説明では、転送先や転送元をパケット内部アドレスやI/OデバイスアドレスなどのようにパケットやI/Oデバイスに限定しているが、これらを任意メモリ空間や任意のI/O空間としてもよい。
【0099】
〔属性値の説明〕
合成シナリオ情報の基本フォーマットに含まれる属性値とは、合成先パケット内部アドレス内の情報に対し、どの種別の合成処理を施すかを定義するパラメータであり、その例を図21に示す。属性値(パラメータ)が定義する処理は、マージ(Merge)、リプレイス(Replace)及びマスク(Mask)などのタイプを含む。以下に、Merge(Mg)、Replace(Rp)、And(Mask処理)、Or(Mask処理)、Not(Mask処理)及びFill(Fil)の例をそれぞれ説明する。
【0100】
〔Merge(Mg)の例〕
本例の合成シナリオ情報(1ユニット)は、属性値:0x01(Mg)、合成先パケット内部アドレス:0x05、合成元I/0デバイスアドレス:0x10、試行カウント:0x01、パラメータ:0x00(未使用)である。合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図22のように設定され、合成先パケット及び合成元I/Oデバイスは、図23及び図24に示すとおりである。なお、図24では、今回のボタン情報が0x44であった場合を示している。
【0101】
合成処理において、合成先パケット(0x05番地の情報(0x23))と合成元I/Oデバイス(0x10番地の情報(0x44))のOR値が演算され、0x67が得られる。この値が、合成先のパケットアドレスであり、0x05番地へ格納される。本例では試行カウントに0x01が設定されているため、合成処理はここで終了となり、図25に示すような演算結果後の合成先パケットが得られる。なお、試行カウントに0x02以上の値が設定されている場合は、合成元および合成先のアドレスが1つインクリメントされ、同様の処理が繰り返して実行される。また、試行カウントに0x02以上の値が設定されている場合の処理は、以下のReplace(Rp)、And(Mask処理)、Or(Mask処理)、Not(Mask処理)及びFill(Fil)の各例においても同様であるため、各例における説明を省略する。
【0102】
〔Replace(Rp)の例〕
本例の合成シナリオ情報(1ユニット)は、属性値:0x02(Rp)、合成先パケット内部アドレス:0x05、合成元I/Oデバイスアドレス:0x10、試行カウント:0x01、パラメータ:0x00(未使用)である。合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図26のように設定され、合成先パケット及び合成元I/Oデバイスは、上記Mergeの例と同様に、図23及び図24に示すとおりである。
【0103】
合成処理において、合成先パケット(0x055番地の情報(0x23))が合成元I/Oデバイス(0x10番地の情報(0x44)で置き換えられ、合成先のパケットアドレス(0x05番地)の情報は0x44となる。本例では試行カウントに0x01が設定されているため、合成処理はここで終了となり、図27に示すような演算結果後の合成先パケットが得られる。
【0104】
〔And(Mask処理)の例〕
本例の合成シナリオ情報(1ユニット)は、属性値:0x03(And)、合成先パケット内部アドレス:0x05、合成元I/Oデバイスアドレス:0x00(未使用)、試行カウント:0x01、パラメータ:0x55である。合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図28のように設定され、合成先パケットは、上記Mergeの例と同様に、図23に示すとおりである。
【0105】
合成処理において、合成先パケット(0x05番地の情報(0x23))とシナリオ中のパラメータ値(0x55)のAND演算(0x23 and 0x55)が行われ、その結果(0x01)が合成先パケット(0x05番地)に格納される。本例では試行カウントに0x01が設定されているため、合成処理はここで終了となり、図29に示すような演算結果後の合成先パケットが得られる。
【0106】
〔Or(Mask処理)の例〕
本例の合成シナリオ情報(1ユニット)は、属性値:0x04(Or)、合成先パケット内部アドレス:0x05、合成元I/Oデバイスアドレス:0x00(未使用)、試行カウント:0x01、及びパラメータ:0x55である。合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図30のように設定され、合成先パケットは、上記Mergeの例と同様に、図23に示すとおりである。
【0107】
合成処理において、合成先パケット(0x05番地の情報(0x23))とシナリオ中のパラメータ値(0x55)のOR演算(0x23 or 0x55)が行われ、その結果(0x77)が合成先パケット(0x05番地)に格納される。本例では試行カウントに0x01が設定されているため、合成処理はここで終了となり、図31に示すような演算結果後の合成先パケットが得られる。
【0108】
〔Not(Mask処理)の例〕
本例の合成シナリオ情報(1ユニット)は、属性値:0x05(Not)、合成先パケット内部アドレス:0x05、合成元I/Oデバイスアドレス:0x00(未使用)、試行カウント:0x01、パラメータ:0x55である。合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図32のように設定され、合成先パケットは、上記Mergeの例と同様に、図23に示すとおりである。
【0109】
合成処理において、合成先パケット(0x05番地の情報(0x23))とシナリオ中のパラメータ値(0x55)のNOT演算(0x23 not 0x55)が行われ、結果(0x88)が合成先パケット(0x05番地)に格納される。本例では試行カウントに0x01が設定されているため、合成処理はここで終了となり、図33に示すような演算結果後の合成先パケットが得られる。
【0110】
〔Fill(Fil)の例〕
本例の合成シナリオ情報(1ユニット)は、属性値:0x06(Fill)、合成先パケット内部アドレス:0x05、合成元I/Oデバイスアドレス:0x00(未使用)、試行カウント:0x01、パラメータ:0x55である。合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図34のように設定され、合成先パケットは、上記Mergeの例と同様に、図23に示すとおりである。
【0111】
合成処理において、合成先パケット(0x05番地の情報(0x23))がシナリオ中のパラメータ値(0x55)に置き換えられ、その結果(0x55)が合成先パケット(0x05番地)に格納される。本例では試行カウントに0x01が設定されているため、合成処理はここで終了となり、図35に示すような演算結果後の合成先パケットが得られる。
【0112】
〔応用例〕
次に、第2コントローラ(拡張機器)40は丸表示ボタン22b及びX表示ボタン22cを有しているが、コントローラ(端末装置)20は丸表示ボタン22b及びX表示ボタン22cを有していない場合において、合成先パケットに存在しない丸表示ボタン22bの入力情報(0x00番地)とX表示ボタン22cの入力情報(0x01番地)とを、拡張機器(合成元I/Oデバイス)から取得し、マージ(合成)処理を行う例について説明する。この例では、拡張機器が接続された場合、合成先パケットのL1,L2,L3,R1,R2,R3の各情報は、OFF状態(0x00)になるように処理される。合成先パケット及び合成元I/Oデバイスは、図36及び図37に示すとおりであり、合成シナリオ情報のフォーマット構成(メモリ展開イメージ)は、図38のように設定される。なお、図37では、丸表示ボタン22b及びX表示ボタン22cの双方が押下された(双方のボタン情報がONであった)場合を示している。
【0113】
合成処理において、図38の最初の1ユニットに規定されたシナリオに従った処理では、合成先パケット(0x00番地と0x01番地)には、合成元I/Oデバイスの情報(0x10番地の情報(○(ON))と0x11番地の情報(×(ON))がそれぞれマージ処理された結果が格納される。格納/演算の内容は以下のとおりである。
(1)合成先パケットアドレス(0x00番地)=[旧合成先パケットアドレス(0x00番地)の情報] OR [合成元I/Oデバイス(0x10番地の情報(○(ON)))]
(2)合成先パケットアドレス(0x01番地)=[旧合成先パケットアドレス(0x01番地)の情報] OR [合成元I/Oデバイス(0x11番地の情報(×(ON)))]
また、2つ目のシナリオ(次の1ユニットに規定されたシナリオ)では、属性値としてFill、処理対象となる合成先パケット先頭アドレスは(0x08番地)、試行カウントは0x06、パラメータは0x00となっているので、
(3)合成先パケットアドレス(0x08番地)=0x00
(4)合成先パケットアドレス(0x09番地)=0x00
(5)合成先パケットアドレス(0x0A番地)=0x00
(6)合成先パケットアドレス(0x0B番地)=0x00
(7)合成先パケットアドレス(0x0C番地)=0x00
(8)合成先パケットアドレス(0x0D番地)=0x00
で置き換えられる。上記処理により、図39に示すような合成先パケットの最新情報が生成される。
【0114】
以上説明したように、本実施形態によれば、装置本体10との間で所定形式及び所定容量のパケット通信によって相互にデータの送受信を行うコントローラ20の機能を拡張したいユーザは、コントローラ20に所望の拡張機器を有線接続するだけで、その拡張機器を使用することができる。
【0115】
<変形例>
上記実施形態では、コントローラ20は、第2コントローラ40からシナリオ情報を取得しているが、第2コントローラ40以外からシナリオ情報を取得してもよい。
【0116】
例えば、装置本体10や装置本体10が実行するアプリケーションプログラムや装置本体10が接続されたネットワーク上のサーバ装置などに、シナリオ情報が予め記憶されていてもよい。また、シナリオ情報は、拡張機器の種別毎に記憶されていてもよい。装置本体10やアプリケーションプログラムに拡張機器の種別毎にシナリオ情報が記憶されている場合、装置本体10は、拡張モードへの移行時に、コントローラ20から第2コントローラ40のプロダクトIDを取得し、用意された複数のシナリオ情報の中から第2コントローラ40のプロダクトIDに対応するシナリオ情報を特定して第2コントローラ40へ送信する。また、ネットワーク上のサーバ装置などに拡張機器の種別毎のシナリオ情報が記憶されている場合、装置本体10は、第2コントローラ40のプロダクトIDに対応するシナリオ情報を、ネットワークを介して取得して第2コントローラ40へ送信する。
【0117】
なお、上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
【産業上の利用可能性】
【0118】
本発明は、パケット通信によってデータの送受信を行う通信システムに好適に用いることができる。
【符号の説明】
【0119】
10:装置本体、20:コントローラ、40:第2コントローラ

【特許請求の範囲】
【請求項1】
情報処理装置と、
形式及び容量が規定された所定方式のパケット通信によって前記情報処理装置へパケット入力データを送信する端末装置と、
前記端末装置に着脱自在に接続される拡張機器と、を備え、
前記端末装置は、ユーザからの操作入力を受ける操作入力手段と、前記操作入力手段から取得した操作入力データをパケット化して前記パケット入力データを生成するパケット生成手段と、前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオ情報を記憶する記憶手段と、前記接続された拡張機器から拡張データを受信する拡張データ受信手段と、を有し、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報に基づいて前記パケット入力データを生成する
ことを特徴とする通信システム。
【請求項2】
請求項1に記載の通信システムであって、
前記合成シナリオ情報は、前記パケット入力データのデータ領域のうち前記端末装置のために割り当てる第1入力領域と前記拡張機器のために割り当てる第2入力領域とを規定し、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報が規定する前記第1入力領域に前記操作入力データを配置し、前記合成シナリオ情報が規定する前記第2入力領域に前記拡張入力データに基づくデータを配置して、前記パケット入力データを生成する
ことを特徴とする通信システム。
【請求項3】
請求項2に記載の通信システムであって、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記第1入力領域に前記操作入力データを配置することにより前記所定方式に対応した基本入力データを生成し、前記第2入力領域に前記拡張入力データを配置することにより前記所定方式に対応した拡張入力データを生成し、生成した基本入力データと拡張入力データとを合成して前記パケット入力データを生成する
ことを特徴とする通信システム。
【請求項4】
請求項1〜請求項3の何れか一項に記載の通信システムであって、
前記合成シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から合成シナリオ情報を取得する
ことを特徴とする通信システム。
【請求項5】
形式及び容量が規定された所定方式のパケット通信によってパケット出力データを送信する情報処理装置と、
前記情報処理装置から送信されたパケット出力データを受信する端末装置と、
前記端末装置に着脱自在に接続される拡張機器と、を備え、
前記端末装置は、前記受信したパケット出力データを解析処理するパケットデータ処理手段と、前記パケット出力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオ情報を記憶する記憶手段と、を有し、
前記拡張機器が接続されているとき、前記パケットデータ処理手段は、前記拡張機器のための拡張出力データを、前記抽出シナリオ情報に基づいて前記パケット出力データから抽出し、抽出した拡張出力データを拡張機器へ送信する
ことを特徴とする通信システム。
【請求項6】
請求項5に記載の通信システムであって、
前記拡張機器には、少なくとも自己の種別を特定可能な拡張機器識別情報が予め記憶され、
前記端末装置は、前記接続された拡張機器から拡張機器識別情報を取得して前記情報処理装置へ送信し、
前記情報処理装置は、前記受信した拡張機器識別情報に応じたパケット出力データを生成する。
ことを特徴とする通信システム。
【請求項7】
請求項5または請求項6に記載の通信システムであって、
前記抽出シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から抽出シナリオ情報を取得する
ことを特徴とする通信システム。
【請求項8】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信するとともに、拡張機器が着脱自在に接続される端末装置であって、
ユーザからの操作入力を受ける操作入力手段と、
前記操作入力手段から取得した操作入力データをパケット化して前記パケット入力データを生成するパケット生成手段と、
前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオ情報を記憶する記憶手段と、
前記接続された拡張機器から拡張データを受信する拡張データ受信手段と、を備え、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報に基づいて前記パケット入力データを生成する
ことを特徴とする端末装置。
【請求項9】
請求項8に記載の端末装置であって、
前記合成シナリオ情報は、前記パケット入力データのデータ領域のうち前記端末装置のために割り当てる第1入力領域と前記拡張機器のために割り当てる第2入力領域とを規定し、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報が規定する前記第1入力領域に前記操作入力データを配置し、前記合成シナリオ情報が規定する前記第2入力領域に前記拡張入力データに基づくデータを配置して、前記パケット入力データを生成する
ことを特徴とする端末装置。
【請求項10】
請求項9に記載の端末装置であって、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記第1入力領域に前記操作入力データを配置することにより前記所定方式に対応した基本入力データを生成し、前記第2入力領域に前記拡張入力データを配置することにより前記所定方式に対応した拡張入力データを生成し、生成した基本入力データと拡張入力データとを合成して前記パケット入力データを生成する
ことを特徴とする端末装置。
【請求項11】
請求項8〜請求項11の何れか一項に記載の端末装置であって、
前記合成シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から合成シナリオ情報を取得する
ことを特徴とする端末装置。
【請求項12】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置からパケット出力データを受信するとともに、拡張機器が着脱自在に接続される端末装置であって、
前記受信したパケット出力データを解析処理するパケットデータ処理手段と、
前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオ情報を記憶する記憶手段と、を備え、
前記拡張機器が接続されているとき、前記パケットデータ処理手段は、前記拡張機器のための拡張出力データを、前記抽出シナリオ情報に基づいて前記パケット出力データから抽出し、抽出した拡張出力データを拡張機器へ送信する
ことを特徴とする端末装置。
【請求項13】
請求項12に記載の端末装置であって、
前記抽出シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から抽出シナリオ情報を取得する
ことを特徴とする端末装置。
【請求項14】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信するとともに、拡張機器が着脱自在に接続される端末装置が実行する通信処理方法であって、
ユーザからの操作入力を受けるステップと、
前記拡張機器が前記端末装置に接続されているとき、該拡張機器から拡張データを受信するステップと、
前記拡張データを受信したとき、前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオに基づいて前記パケット入力データを生成するステップと、を備えた
ことを特徴とする通信処理方法。
【請求項15】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置からパケット出力データを受信するとともに、拡張機器が着脱自在に接続される端末装置が実行する通信処理方法であって、
前記拡張機器が接続されているとき、前記パケット出力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオに基づいて、前記拡張機器のための拡張出力データを前記パケット出力データから抽出するステップと、
前記抽出した拡張出力データを前記拡張機器へ送信するステップと、を備えた
ことを特徴とする通信処理方法。
【請求項16】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信するとともに、拡張機器が着脱自在に接続される端末装置のコンピュータを、
前記拡張機器が前記端末装置に接続されているとき、前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオに基づいて前記パケット入力データを生成するパケット生成手段として機能させる
ことを特徴とする通信処理プログラム。
【請求項17】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置からパケット出力データを受信するとともに、拡張機器が着脱自在に接続される端末装置のコンピュータを、
前記拡張機器が接続されているとき、前記パケット出力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオに基づいて、前記拡張機器のための拡張出力データを前記パケット出力データから抽出するパケットデータ処理手段として機能させる
ことを特徴とする通信処理プログラム。
【請求項18】
請求項16又は請求項17に記載の通信処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate


【公開番号】特開2011−107935(P2011−107935A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−261656(P2009−261656)
【出願日】平成21年11月17日(2009.11.17)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】