JP5250042B2 - ワイヤレス送受信機用インターフェース・プロトコルおよびapi - Google Patents

ワイヤレス送受信機用インターフェース・プロトコルおよびapi Download PDF

Info

Publication number
JP5250042B2
JP5250042B2 JP2010536058A JP2010536058A JP5250042B2 JP 5250042 B2 JP5250042 B2 JP 5250042B2 JP 2010536058 A JP2010536058 A JP 2010536058A JP 2010536058 A JP2010536058 A JP 2010536058A JP 5250042 B2 JP5250042 B2 JP 5250042B2
Authority
JP
Japan
Prior art keywords
response
request
message
voice
master control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010536058A
Other languages
English (en)
Other versions
JP2011505755A (ja
JP2011505755A5 (ja
Inventor
ルッソ,デーヴィッド・ダブリュー
スミス,グレゴリー・レイ
パケンドルフ,ウウェ
ガムリチ,デニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011505755A publication Critical patent/JP2011505755A/ja
Publication of JP2011505755A5 publication Critical patent/JP2011505755A5/ja
Application granted granted Critical
Publication of JP5250042B2 publication Critical patent/JP5250042B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3202Hardware aspects of a gaming system, e.g. components, construction, architecture thereof
    • G07F17/3223Architectural aspects of a gaming system, e.g. internal configuration, master/slave, wireless communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1025Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals details of the interface with the game device, e.g. USB version detection
    • A63F2300/1031Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals details of the interface with the game device, e.g. USB version detection using a wireless connection, e.g. Bluetooth, infrared connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/209Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform characterized by low level software layer, relating to hardware management, e.g. Operating System, Application Programming Interface

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Description

ここに開示する主題は、計算および電子分野に関し、更に特定すれば、娯楽用コンソールのような分野に関するが、これらは単なる例に過ぎず、分野に限定はない。
ビデオ・ゲームおよび娯楽システムは、増々ワイヤレス機構(feature)やアクセサリを組み込みつつある。ワイヤレス無線(wireless radio)および必要なドライバの開発には、多大な設計の手間が必要となる。一方、ワイヤレス・インターフェースを制御および管理するために必要とされるコマンドやプロトコルは、複雑化する可能性があり、ワイヤレス・システムのソフトウェアおよびハードウェア・アクセサリの開発者のために多大な開発資源が必要となる。更に、ワイヤレス技術および関連規格は周波数毎に変化するため、開発者は新しいインターフェース要件に適合させることを強いられる。このため、個々のワイヤレス・インターフェースに合わせた製品を開発する際の開発者の投資は、インターフェースやプロトコルが頻繁に変化するのでは、回収できない場合もある。
しかしながら、既存の標準的インターフェース開発ワイヤレス機構およびアクセサリを利用できれば有利であろう。業界において広く用いられ多数の製品によってサポートされているインターフェース規格は、通例、コストを引き下げ、このような市販の構成機器を組み込むことは、製品開発のコストを低減するには望ましいことである。更に、ワイヤレス送受信機の場合、プロセッサー間の通信をサポートするために必要とされるICピンの本数を制限しつつ、同時に十分なデーター帯域幅を提供することが、通例望ましいこととされる。したがって、ワイヤレス・アーキテクチャには簡単なシリアル・インターフェースを選択するとよい。このような従来技術において慣例的に用いられている周知の標準的なインターフェースの1つに、シリアル・ペリフェラル・インターフェース(SPI)がある。SPIインターフェースの欠点の1つは、データー転送が一度に8ビットに制限されることである。多くの用途ではこれまで以上のコマンドおよびデーター転送能力を要求する可能性があるので、シリアル・インターフェースを利用するプロトコルには、一層高いレベルが必要とされる。更に、開発者がワイヤレス機構を利用するために用いることができるインターフェースを提供するものの、当該インターフェースの物理的詳細およびトランスポートの詳細には関与しなくてもよければ有利であろう。
本明細書では、シリアル・ペリフェラル・インターフェース(SPI)のようなシリアル・インターフェースを用いてビデオ・ゲームおよび娯楽システムのための新たなワイヤレス・アクセサリの開発をサポートするプラットフォームを提供するために、種々のシステム、方法、およびコンピューター読み取り可能命令について開示する。本開示の例示的な非限定的形態の1つでは、スマート・トランシーバー・デバイスが、ワイヤレス・プロトコル・スタックの物理(PHY)およびメディア・アクセス制御(MAC)レイヤ全体を内蔵することができ、ワイヤレス・プロトコル機能を1つのデバイスに割り当てる(partition)。
種々の実施形態では、スマート・トランシーバー・デバイスの制御を行い、このスマート・トランシーバー・デバイスに対する双方向のデーター転送に備えるために用いることができるプロトコルを開示する。即ち、プロトコル、コマンド、および応答に合わせたフォーマットの一例を開示する。
更に別の実施形態では、開発者が、ハードウェアに依存しない1組のサービスを提供するためのインターフェースを提供するアプリケーション・プログラミング・インターフェース(API)を開示する。このようなAPIは、システムおよびスマート・トランシーバー・デバイスへのデーターならびにシステムおよびスマート・トランシーバー・デバイスからのデーターを確定し、維持し、伝達するために用いることができる。サービスは、APIが所望するのに応じて呼び出すことができる。即ち、一例であって限定ではないサービス、関数コール、コンフィギュレーション設定方法、イベント、およびパラメータの集合を開示する。
尚、この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けたことを注記しておく。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのでなければ、特許請求する主題の範囲を判断する際に補助として用いられることを意図するのでもない。
以上の摘要、および以下の詳細な説明は、添付図面と合わせて読むと、一層深く理解できよう。本開示を例示するために、本開示の種々の形態を例示する。しかしながら、この開示は、図示する具体的な形態に限定されるのではない。以下の図面が含まれる。
図1は、本明細書において論ずる主題に合わせたコンソールの一例を示す。
図2は、本明細書において論ずる主題に合わせた計算環境の一例を示す。
図3は、本明細書において論ずる主題に合わせたネットワーキング環境の一例を示す。
図4は、本明細書において開示するプロトコルの一実施形態を用いたデーター転送の一例を示す。
図5は、本明細書において開示するプロトコルの一実施形態を用いたデーター転送の一例を示す。
図6は、本明細書において開示するプロトコルの一実施形態を用いたバス転送を図示するタイミング図の一例を示す。
図7は、本明細書において開示するプロトコルの一実施形態を用いるバス転送を図示するタイミング図の一例を示す。
図8は、本明細書において開示するプロトコルの一実施形態を用いるバス転送を図示するタイミング図の一例を示す。
図9は、本明細書において開示する一実施形態を用いたバス転送を図示するタイミング図の一例である。
図10は、本明細書において開示する一実施形態を用いたバス転送を図示するタイミング図の一例である。
図11は、本明細書において開示する一実施形態を用いたバス転送を図示するタイミング図の一例である。
図12は、本明細書において開示するスマート・トランシーバーの一実施形態における起動シグナリングおよびメッセージングの一例を示す図である。
図13は、本明細書において開示するプロトコルの一実施形態を用いるのに適したシステムの一例を示す。
図14は、本明細書において開示するプロトコルの一実施形態を用いるサービス・プリミティブ(service primitive)を用いるデーター通信サービスを示す。
図15は、本明細書において開示するプロトコルの一実施形態を用いるAPIパラメータおよびコンフィギュレーション値を示す。
図16は、本明細書において開示するプロトコルの一実施形態の簡略化した状態遷移図を示す。
図17は、本明細書において開示するAPIの一実施形態の構造例を示す。
ゲーム・コンソール、PC、およびネットワーキングの形態例
本開示のこの章では、一例であり非限定的なゲーム・コンソールの総合的な形態について紹介する。これより図1を参照すると、ブロック図がマルチメディア・コンソールの一例を示す。マルチメディア・コンソール100は、中央処理ユニット(CPU)101を有する。CPU101は、レベル1(L1)キャッシュ102、レベル2(L2)キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納し、したがってメモリー・アクセス・サイクル回数を減らすことによって、処理速度およびスループットを向上させる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール100に電力を投入するときのブート・プロセスの初期フェーズの間にロードされる。あるいは、初期ブート・フェーズの間にロードされる実行可能コードをフラッシュ・メモリー・デバイス(図示せず)に格納してもよい。更に、ROM106は、CPU101とは別個に配置してもよい。
グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114は、高速および高分解能グラフィクス処理のためのビデオ処理パイプラインを形成する。データーは、グラフィクス処理ユニット108からビデオ・エンコーダー/ビデオ・コデック114に、バスを通じて搬送される。ビデオ処理パイプラインは、テレビジョンまたはその他のディスプレイへの送信のために、データーをA/V(オーディオ/ビデオ)ポート140に出力する。メモリー・コントローラー110がGPU108およびCPU101に接続されており、限定ではないが、RAM(ランダム・アクセス・メモリー)のような、種々の形式のメモリー112へのプロセッサーのアクセスをし易くする。
マルチメディア・コンソール100は、I/Oコントローラー120、システム管理コントローラー122、オーディオ処理ユニット123、ネットワーク・インターフェース・コントローラー124、第1USBホスト・コントローラー126、第2USBコントローラー128、および好ましくはモジュール118上に実行するフロント・パネルI/Oサブアセンブリ130を含む。USBコントローラー126および128は、ペリフェラル・コントローラー142(1)〜142(2)、ワイヤレス・アダプタ148、および外部メモリー・ユニット146(例えば、フラッシュ・メモリー、外部CD/DVD ROMドライブ、リムーバブル・メディア等)のホストとしての役割を果たす。ネットワーク・インターフェース124および/またはワイヤレス・アダプタ148は、ネットワーク(例えば、インターネット、ホーム・ネットワーク等)へのアクセスを与え、イーサネット(登録商標)・カード、モデム、Bluetoothモジュール、ケーブル・モデム等を含む、多種多様の様々な有線またはワイヤレス・インターフェース・コンポーネントのうち任意のものでよい。
システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を含むことができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部でも外部でもよい。アプリケーション・データーは、マルチメディア・コンソール100による実行、プレーバック(playback)等のために、メディア・ドライブ144を通じてアクセスすることができる。メディア・ドライブ144は、シリアルATAバスまたはその他の高速接続(例えば、IEEE1394)のようなバスを通じて、I/Oコントローラー120に接続されている。
システム管理コントローラー122は、マルチメディア・コンソール100の可用性を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット123およびオーディオ・コデック132は、先に記載した本開示の形態にしたがって、高信頼度、3D、サラウンド、およびステレオ・オーディオ処理による、対応するオーディオ処理パイプラインを形成する。オーディオ・データーは、オーディオ処理ユニット123とオーディオ・コデック126との間において、通信リンクを通じて搬送される。オーディオ処理パイプラインは、外部オーディオ・プレーヤまたはオーディオ能力を有するデバイスによる再生のために、A/Vポート140にデーターを出力する。
フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン142の機能をサポートし、更にマルチメディア・コンソール100の外面上に露出する任意のLED(発光ダイオード)またはその他のインディケータの機能もサポートする。システム電源モジュール136は、電力をマルチメディア・コンソール100のコンポーネントに供給する。ファン138は、マルチメディア・コンソール100内部にある回路を冷却する。
CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスによって相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、ペリフェラル・バス、ならびに種々のバス・アーキテクチャのうち任意のものを用いたプロセッサーバースまたはローカル・バスが含まれる。
マルチメディア・コンソール100に電力を投入するか、またはリブートすると、アプリケーション・データーをシステム・メモリー143からメモリー122および/またはキャッシュ102、104にロードすることができ、CPU101において実行することができる。アプリケーションは、マルチメディア・コンソール100において利用可能な異なるメディア・タイプにナビゲートするときに、一貫性のあるユーザ体験を提供するグラフィカル・ユーザ・インターフェースを提示することができる。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収蔵されているその他のメディアをメディア・ドライブ144から起動(launch)または再生(play)して、追加の機能をマルチメディア・コンソール100に提供することもできる。
マルチメディア・コンソール100は、単に単体システムをテレビジョンまたはその他のディスプレイに接続することによって、その単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール100は、1人以上のユーザがシステムと相互作用すること、ムービーを見ること、音楽を聞くこと等を可能にすることができる。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプタ148を通じて利用可能なブロードバンド接続の統合により、マルチメディア・コンソール100は、更に、それよりも大きなネットワーク共同体における参加者として動作することができる。この後者の想定場面では、コンソール100は、例えば、ネットワークを通じてサーバーに接続することもできる。
次に、これより図2に移ると、先に開示した主題の実現と共に用いるのに適していると考えられる計算機の一例を表すブロック図が示されている。本開示の多数の実施形態は、コンピューターにおいて実行することができる。例えば、ゲーム・コンソールにおいてPC体験を提供するプロセスおよび方法を実行するコンピューター実行可能命令は、図1に示すような計算環境に常駐すること、および/またはそこで実行することができる。計算システム環境220は、適した計算環境の一例に過ぎず、ここに開示する主題の使用範囲や機能について限定を示唆する意図は全くない。また、計算機環境220は、動作環境例220に示す構成要素のいずれの1つまたは組み合わせに関しても、何らかの依存性や必須要件を有するという解釈は行わないこととする。実施形態によって、図示する種々の計算エレメントが、本開示の特定の形態をインスタンス化するように構成されている回路を含むこともあり得る。例えば、本開示において用いられる回路という用語は、ファームウェアまたはスイッチによって機能(1つ又は複数)を実行するように構成されている特殊ハードウェア・コンポを含むことができる。別の実施形態例では、回路という用語は、機能(1つ又は複数)を実行するために動作可能なロジックを具現化するソフトウェア命令によって構成される汎用処理ユニット、メモリー等を含むことができる。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実装者(implementer)は、ロジックを具現化するソース・コードを書くことができ、ソース・コードを機械読み取り可能コードにコンパイルすることができ、この機械読み取り可能コードを汎用処理ユニットによって処理することができる。技術的現状では、ハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間には殆ど差がないというところまで発展していることを当業者は認めることができるので、特定の機能を実行するためにハードウェアまたはソフトウェアのどちらを選択するかということは、実装者に委ねられた設計選択事項である。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換することができ、更にハードウェア構造自体を等価のソフトウェア・プロセスに変換することができることを、当業者は認めることができる。つまり、ハードウェアの実現例およびソフトウェアの実現例のどちらを選択するかということは、実装者に委ねられた設計選択事項の1つである。
コンピューター241は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター241がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー222は、リード・オンリー・メモリー(ROM)223およびランダム・アクセス・メモリー(RAM)260のような揮発性および/または不揮発性メモリーの形態で、コンピューター記憶媒体を含む。基本入出力システム224(BIOS)は、起動中のように、コンピューター241内のエレメント間におけるデーター転送を補助する基本的なルーティンを含み、通例ROM223内に格納されている。RAM260は、通例、処理ユニット259が直ちにアクセス可能であるデーターおよび/またはプログラム・モジュール、または現在これによって処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図2は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228を示す。
また、コンピューター241は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例にすぎないが、図2は、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ238、リムーバブル不揮発性磁気ディスク254からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ239、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク253からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ240を示す。動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれる。ハード・ディスク・ドライブ238は、通例、インターフェース234のような非リムーバブル・メモリー・インターフェースを介してシステム・バス221に接続され、磁気ディスク・ドライブ239および光ディスク・ドライブ240は、通例、インターフェース235のようなリムーバブル・メモリー・インターフェースによって、システム・バス221に接続する。
先に論じ図2に示すドライブおよびそれらと連動するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター241のその他のデーターを格納する。図2では、例えば、ハード・ディスク・ドライブ238は、オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザは、キーボード251、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス252によって、コマンドおよび情報をコンピューター241に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザ入力インターフェース236を介して、処理ユニット259に接続されている。ユーザ入力インターフェース236は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)によって接続することも可能である。モニタ242またはその他の形式の表示装置も、ビデオ・インターフェース232のようなインターフェースを介して、システム・バス221に接続されている。モニタに加えて、コンピューターは、スピーカ244およびプリンタ243のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース233を通じて接続することができる。
コンピューター241は、リモート・コンピューター246のような1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター246は、パーソナル・コンピューター、サーバー、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター241に関して先に説明したエレメントの多くまたは全てを含むが、図2にはメモリー記憶装置247のみを示す。図2に示す論理接続は、ローカル・エリア・ネットワーク(LAN)245およびワイド・エリア・ネットワーク(WAN)249を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては、一般的である。
LANネットワーク環境で用いる場合、コンピューター241は、ネットワーク・インターフェースまたはアダプタ237を介してLAN245に接続する。WANネットワーク環境で用いる場合、コンピューター241は、通例、モデム250、またはインターネットのようなWAN249を通じて通信を確立するその他の手段を含む。モデム250は、内蔵でも外付けでもよく、ユーザ入力インターフェース236またはその他の適切な機構を介してシステム・バス221に接続することができる。ネットワーク環境では、コンピューター241に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図2は、リモート・アプリケーション・プログラム248がメモリー・デバイス247上に常駐するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
図3は、ネットワーク型または分散型計算環境の一例の模式図を示す。この環境は、計算機153、156、および157、ならびにオブジェクト155およびデーターベース158を備えている。これらのエンティティ153、155、156、157、および158は、プログラム、方法、データー・ストア、プログラマブル・ロジック等を備えること、またはこれらを利用することができる。エンティティ153、155、156、157、および158は、PDA、オーディオ/ビデオ・デバイス、MP3プレーヤ、スマート・フォン、DVDプレーヤ、ケーブル・ボックス・チューナのような同一デバイスまたは異なるデバイスの部分に跨ることや、あるいはサーバーPCによって提供される遠隔供給コンテンツ(remoted content)に対応可能な任意の計算機の周囲に及ぶこともある。各エンティティ153、155、156、157、および158は、別のエンティティ153、155、156、157、および158と、通信ネットワーク154を通じて通信することができる。これに関して、データーベース158またはその他の記憶エレメントの維持および更新には、任意のエンティティが担当すればよい。
このネットワーク154自体は、図3のシステムにサービスを提供する別の計算エンティティを備えることができ、それ自体が複数の相互接続されたネットワークを表すこともできる。ここに開示する本主題の一形態によれば、各エンティティ153、155、156、157、および158は、別個の機能プログラム・モジュールを内蔵することができ、これらのモジュールは、API、あるいはその他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを利用して、他のエンティティ153、155、156、157、および158の1つ以上のサービスを要求することもできる。
また、155のようなオブジェクトを別の計算機にホストしてもよいことは認めることができる。つまり、図示した物理的環境は、接続されているデバイスをコンピューターのように示すことができるが、このような図は単なる一例であり、物理的環境は、代わりに、PDA、テレビジョン、MP3プレーヤ等のような種々のディジタル・デバイス、インターフェース、COMオブジェクト等のようなソフトウェア・オブジェクトを備えることとして図示または記載することもできる。
分散型計算環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、複数の計算システム同士を、有線システムまたはワイヤレス・システムによって、複数のローカル・ネットワークによって、または広く分散した複数のネットワークによって、互いに接続することができる。現在、多くのネットワークはインターネットに結合されており、インターネットは、広く分散する計算のためにインフラストラクチャを提供し、多くの異なるネットワークを包含する。このようなインフラストラクチャはいずれも、インターネットに結合されているか否かには拘わらず、提供する本システムおよび方法と共に用いることができる。
ネットワーク・インフラストラクチャは、クライアント/サーバー、ピア・ツー・ピア、または混成アーキテクチャのような、ネットワーク・トポロジのホストを可能にすることができる。「クライアント」とは、別のクラスのサービスを用いるクラスまたはグループの構成員、またはそれには関係ないグループの構成員である。計算においては、クライアントがプロセスであり、即ち、大まかに命令またはタスクの集合であり、別のプログラムが提供するサービスを必要とする。クライアント・プロセスは、要求されたサービスを利用するが、他のプログラムやサービス自体に関する作業詳細について全く「知る」必要がない。クライアント/サーバー・アーキテクチャ、特に、ネットワーク型システムでは、クライアントは、常に、別のコンピューター、例えば、サーバーが提供する共有ネットワーク資源にアクセスするコンピューターである。図3の例では、任意のエンティティ153、155、156、157、および158を、状況に応じて、クライアント、サーバー、または双方と見なすことができる。そして、更に、娯楽コンソールに関しては、これはサーバーに対するクライアントとすることができる。
サーバーは、インターネットのようなリモートまたはローカル・ネットワークを通じてアクセス可能なリモート・コンピューター・システムであるのが通例であるが、必ずしもそうとは限らない。クライアント・プロセスは、第1コンピューター・システムにおいてアクティブであることができ、サーバー・プロセスは第2コンピューター・システムにおいてアクティブであることができ、通信媒体を通じて互いに通信し、こうして分散型機能を提供し、複数のクライアントがサーバーの情報収集能力を利用することを可能にする。複数の計算機またはオブジェクトにまたがって、任意のソフトウェア・オブジェクトを分散することもできる。
クライアント(1つ又は複数)およびサーバー(1つ又は複数)は、プロトコル・レイヤ(1つ又は複数)が提供する機能を利用して、互いに通信する。例えば、ハイパーテキスト・トランスファー・プロトコル(HTTP)は、ワールド・ワイド・ウェブ(WWW)即ち「ウェブ」と共に用いられる慣例的なプロトコルである。通例、インターネット・プロトコル(IP)アドレスのようなコンピューター・ネットワーク・アドレス、またはユニバーサル・リソース・ロケータ(URL)のようなその他の基準を用いて、サーバーまたはクライアント・コンピューターを互いに識別することができる。ネットワーク・アドレスをURLアドレスと呼ぶこともできる。通信は、通信媒体を通じて提供することができ、例えば、高容量通信のために、クライアント(1つ又は複数)およびサーバー(1つ又は複数)を互いにTCP/IP接続(1つ又は複数)を通じて結合することもできる。
図3において提示した一般的なフレームワークにしたがって構築することができる多様な計算環境、および図3のようなネットワーク環境における計算において生ずる可能性がある多様性に関して、本明細書において提供するシステムおよび方法を、特定の計算アーキテクチャまたはオペレーティング・システムに限定されるように解釈することは全くできない。逆に、ここに開示する主題は、いずれの1つの実施形態にも限定されず、むしろ、添付した特許請求の範囲にしたがってその広さや範囲を解釈してしかるべきである。つまり、例えば、ゲーム・コンソールおよびサーバーPCについて論じているが、スマート・フォンには入手できないデーターや機能にアクセスする手段として、同じような容易さで、完全なデスクトップをスマート・フォンに遠隔接続することもできる。
最後に、本明細書において記載する種々の技法は、ハードウェアまたはソフトウェアと共に実現することができ、しかるべき場合には双方の組み合わせで実現することもできることも、注記してしかるべきであろう。つまり、ここに開示する主題の方法、コンピューター読み取り可能媒体、およびシステム、あるいはそのある種の形態または一部は、フロッピ・ディスク、CD−ROM、ハード・ドライブ、または他の任意の機械読み取り可能記憶媒体のような有形媒体に具現化したプログラム・コード(即ち、命令)の形態をなすことができ、このプログラム・コードを、コンピューターのような機械にロードして実行すると、この機械が本主題を実施する装置となる。
プログラマブル・コンピューターにおけるプログラム・コードの実行という場合では、計算機は概略的にプロセッサー、当該プロセッサー(揮発性および不揮発性メモリーおよび/または記憶エレメントを含む)によって読み取り可能な記憶媒体、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むことができる。例えば、データー処理API等の使用によって、本開示のドメイン特有プログラミング・モデルの形態の作成および/または実現例を利用することができる1つ以上のプログラムは、好ましくは、コンピューター・システムと通信するために、上位手続き言語またはオブジェクト指向プログラミング言語で実現することが好ましい。しかしながら、プログラム(1つ又は複数)は、望ましければ、アセンブリまたは機械語で実現することもできる。いずれの場合でも、言語は、コンパイラ言語またはインタプリタ言語でもよく、ハードウェアの実現例と組み合わせることができる。
SPIプロトコルおよびコマンド構造
本明細書では、ビデオ・ゲームおよび娯楽システムに合わせた新たなワイヤレス・アクセサリの開発をサポートするプラットフォームを提供するために、種々のシステム、方法、およびコンピューター読み取り可能命令を開示する。プロセッサー間通信をサポートするのに必要なICピンの数を制限するために、単純なシリアル・インターフェースを用いるとよい。即ち、できるだけ多くの市販のCPU部品との共通インターフェースを設け、必要なデーター・トラフィックをサポートするために、シリアル・ペリフェラル・インターフェース(SPI)に基づく設計を実現するとよい。
SPIは、マスター・デバイスとスレーブ・デバイスとの間におけるデーターのシリアル交換を可能にするインターフェースである。SPIは、通例、同期プロトコルを用い、送信および受信は、マスター・マイクロコントローラーが発生するクロック信号によって誘導される。SPIインターフェースは、数台のSPIデバイスの接続を可能にし、一方マスターは、CS(チップ選択)信号によって各デバイスを選択する。
SPIは、通例、4本の信号ワイヤを備えている。
マスター出力スレーブ入力(MOSI)
マスター入力スレーブ出力(MISO)
シリアル・クロック(SCLKまたはSCK)
チップ選択(SC)
SPIは、同期シリアル・データー・リンクの標準である。デバイスは、マスター/スレーブ・モードで通信し、マスター・デバイスがデーター・フレームを開始する。複数のスレーブ・デバイスは、個別のチップ選択線を有することが許される。
各SPIクロック・サイクルの間、全二重データー送信が行われ、その中で、マスターはMOSI線において1ビットを送り、スレーブはそのビットをその同じ線から読み取り、このスレーブは1ビットをMISO線において送り、マスターはそれをその同じ線から読み取る。送信には、通例、8ビットというような、所与のワード・サイズのシフト・レジスタを2つ伴い、1つがマスター内に、そしてもう1つがスレーブ内にある。これらのシフト・レジスタは、環状に接続されている。データーは、通例、最上位ビットが最初に押し出され、一方新たな最下位ビットが同じレジスタ内に押し込まれる。レジスタから押し出した後、マスターおよびスレーブは、レジスタ値を交換したことになる。次いで、必要に応じて、このプロセスを繰り返すことができる。
この開示の例示的な非限定的形態の1つでは、スマート・トランシーバー・デバイスを設けて、ゲーム・プラットフォームに合わせた新たなワイヤレス・アクセサリの迅速な開発をサポートすることができる。一実施形態では、スマート・トランシーバーは、物理およびリンク・ワイヤレス通信レイヤの受信および送信機能を備えることができる。即ち、ワイヤレス・プロトコル・スタックのPHYおよびリンク・レイヤ、ならびにこのようなデバイスに合わせたワイヤレス・プロトコル機能を、ワイヤレス・アプリケーション特有集積回路(ASIC)に実装することができる。一実施形態では、スマート・トランシーバーがSPIバスのスレーブとなることができ、マスター制御アプリケーションがSPIバスのマスターとなることができる。
一実施形態では、ワイヤレス通信は、ワイヤレス・アクセサリ毎に時分割多元接続(TDMA)無線時間を付与する、周波数ホッピング・ディジタル無線プロトコルを用いて提供することができる。無免許の世界規模2.4GHz工業化学医療(ISM)無線帯域を利用することができる。世界規模の規制要件に準拠する完全な周波数ホッピング・スペクトル拡散(FHSS)2.4GHzISM帯域ディジタル無線トランシーバーを実現するために必要な外部コンポーネントは、最小限で済ますことができる。
標準的なSPIインターフェースの欠点は、データー転送が一度に8ビットに制限されていることである。多くの用途ではそれよりも高いコマンドおよびデーター転送能力を必要とすることがあり得るので、シリアル・インターフェースの利点を残しつつも、一層高いレベルのプロトコルが求められている。全二重データー転送によるSPIバスを通じた効率的な制御/データー伝達方法を考慮して、種々の実施形態では、フレームに基づくSPIプロトコルを開示する。これは、制御およびデーター転送をスマート・トランシーバー・デバイスに対して双方向に行うために用いることができる。即ち、このプロトコル、コマンド、および応答に合わせたフォーマット例を開示する。一実施形態では、各フレームは、ペイロード長が可変の、2バイトのヘッダーを含むことができる。ヘッダーは、2つの部分、即ち、コマンド・バイトおよび長サーバーイトを備えることができる。ペイロードの長さは、個々のコマンドによって異なってもよく、最も長いパケットは、転送の長さを定めることができる。図4は、典型的なデーター転送の例示的な図を示す。
開示するプロトコルは、全二重インターフェースを備えているので、あるデバイスが転送する情報を有していない場合、そのデバイスはアイドル・コマンドを送ることができる。開示するプロトコルは、マスター/スレーブ構造を維持することができ、マスター制御アプリケーションが通例全てのトランザクションを制御し、マスター制御アプリケーションが送信する用意ができているメッセージを有するときにはいつもで、データーを転送する。スマート・トランシーバーは、スレーブ・デバイスとして機能する(act)ことができ、回答を返送することができる。回答は、要求の結果、コマンドに対する遵守、または以前の要求からのイベントの発生の指示を示す。スマート・トランシーバーは、更に、マスター制御アプリケーションに割り込みを発生し、マスターがメッセージを読む準備ができていることを示すことができる。
開示するプロトコルは、更に、フレーム・トランザクションに適用する以下の規則も備えることができる。第1に、チップ選択は、アクティブ状態にあることができる。第2に、ヘッダーは常にリンクの両端において最初に送信することができる。一方の端部が送信すべき有効なメッセージを有していない場合、コマンド・フィールドを0x00に設定することができる。第3に、転送の長さを定めるために、最も長いフレーム(マスターからスレーブに、またはスレーブからマスターに)を用いることができる。第4に、一方側が1つよりも多い送るべきパケットを有する場合、同じフレームの中に、独立したメッセージを一緒に添付することができる。
以下の表に表した事例は、全て例示的な有効転送である。
図5から図11は、上の表において概要を示した想定場面についてのバス転送を示すタイミング図の例である。図5は、マスターが送信するデーターを有し、スレーブが送信するコマンドを有するがデーターを有していない場合を示す。図6は、マスターが送信するコマンドを有するがデーターを有しておらず、スレーブは送信するデーターを有していない場合を示す。図7は、マスターが送信するデーターを有し、スレーブも送信するデーターを有する場合を示す。図8は、マスターが送信するコマンドを有するがデーターを有しておらず、スレーブがデーターを有する場合を示す。図9は、マスターが複数のデーター・パケットを有し、スレーブも複数のデーター・パケットを有する場合を示す。図10は、マスターが多数のデーター・パケットを有し、スレーブが送信する1つのデーター・パケットを有する場合を示す。最後に、図11は、マスターが送信するデーターを有しておらず、スレーブが複数のデーター・パケットを有する場合を示す。
フレーム・ヘッダーの後には、ガード・タイムを不要とすることもできる。CS#のローからハイへの遷移を、フレーム同期に用いることができる。SPI多重スレーブ・アプリケーションをサポートするために、データー転送を終了した後(CS#によってトリガされる)、MISOパッドを三状態(tristate)に設定することができる。データー・バイトは、長サーバーイトによって定められたデーター・バイト数が送信された後「ドント・ケア」に設定することができる。
一実施形態では、スマート・トランシーバーの機能は、起動時に選択することができる。スマート・トランシーバーの機能は、所望の用途に応じて異なってもよい。更に、機能は、スマート・トランシーバーを用いる製品の種類によっても異なる場合もある。例えば、音声専用デバイスにおいてICが用いられている場合、ICは、その製品がゲーム・コントローラー・デバイスである場合とは異なる動作をすることもあり得る。SPIコマンド構造は、スマート・トランシーバーのコンフィギュレーションを設定する対象となる用途の種類に応じて変更することもできる。
スマート・トランシーバー・デバイスは、4つまでのデーターおよび音声アクセサリ、あるいは4つのデーター専用および4音声専用アクセサリ、あるいはこれらの間における任意の組み合わせを同時にサポートするように設計することができる。スマート・トランシーバーは、ワイヤレス・アクセサリに実装する場合、ワイヤレス・ビデオ・ゲーム・コンソールまたはワイヤレス対応パーソナル・コンピューター、あるいは同様のスマート・トランシーバーを装備しているその他の計算機と通信することができる。
スマート・トランシーバーは、種々の製品コンフィギュレーションをサポートするために用いることができるプラットフォームとするとよい。スマート・トランシーバー内にあるファームウェアは、チップのハードウェアを変更することなく、種々の製品バージョンをサポートするように調節することができる。ビデオ・ゲーム・システムでは、スマート・トランシーバーは、ビデオ・コンソール製品、ゲーム・コントローラー製品、および種々のペリフェラル製品をサポートするために用いることができる。
図12は、スマート・トランシーバーの一実施形態における起動シグナリングおよびメッセージングの一例を示す図である。この図を参照すると、スマート・トランシーバーは、スマート・トランシーバー起動メッセージを送ることができる(610)。次いで、マスター制御アプリケーションが起動コンフィギュレーション・メッセージ615をスマート・トランシーバーに送ることができる。起動コンフィギュレーション・メッセージは、スマート・トランシーバーに、概略的な設定に関する情報を提供することができる。概略的な設定には、用いられるSPIプロトコル、必要とされる出力クロック、EEPROMストレージの種類、およびマスター制御アプリケーションによって用いられるEEPROMの長さが含まれる。
スマート・トランシーバーは、起動コンフィギュレーション応答によって応答することができる(620)。マスター制御アプリケーションは、EEPROMデーターを検索してアプリケーションのコンフィギュレーションを得るためのコマンドを送ることができる(625)。送信されると、マスター制御アプリケーションはこのコマンドを送り、スマート・トランシーバー630からの応答を待つことができる。
マスター制御アプリケーションは、アプリケーション・コンフィギュレーション・コマンド635を送ることができる。アプリケーション・コンフィギュレーション・コマンドは、スマート・トランシーバー・チップを、マスター制御アプリケーションが必要とするモードに設定することができる。スマート・トランシーバーは、アプリケーション・コンフィギュレーション応答で応答することができる(640)。
マスター制御アプリケーションは、アプリケーションをアクティブに設定するコマンドを送ることができる(645)。スマート・トランシーバーは、次いで、「アプリケーション・アクティブ」の現行モードで応答することができる(650)。
コンフィギュレーション・スタンバイ状態では、限られたSPIコマンドしかマスター制御アプリケーションに許可されないようにするとよい。通例、スマート・トランシーバーは、この時点において任意の機能を実行するのに十分な情報を有しておらず、マスター制御アプリケーションにもっと多くのデーターを供給することを要求する。通例、この状態において許可することができるコマンドは、モード制御(即ち、給電、リセット)および起動コンフィギュレーション・メッセージングだけである。
アプリケーション未定状態(pre-application state)には、マスター制御アプリケーションが有効な起動コンフィギュレーション・メッセージを送った後に入ることができる。この状態は、より多くのSPIコマンドを許可することができるが、アプリケーションが確定していないので、個数を制限するとよい。許可されるコマンドの主要な機能は、通例、コンフィギュレーション読み出し、コンフィギュレーション設定、およびモード制御である。スマート・トランシーバーは、マスター制御アプリケーションがそれを別の状態に変えるまで、この状態に残留することができる。
アプリケーション・スタンバイ状態には、マスター制御アプリケーションがアプリケーション・コンフィギュレーションを設定した後に入ることができる。通例、アプリケーションは、マスター制御アプリケーションが状態をアクティブに設定するまで開始しない。
アプリケーション・アクティブ状態には、マスター制御アプリケーションがモードをアクティブに設定した後に、アプリケーション・スタンバイ状態から入ることができる。アプリケーション・アクティブ状態は、通例、デバイスの正常動作モードである。マスター制御アプリケーションは、アプリケーションによって許可されたコマンドを発行し続けることができる。
以下に、スマート・トランシーバーの機能をサポートするメッセージ・リストの一例を示す。コマンドは、2つの集合に分けて示す。第1の集合は、アプリケーションに独立することができるコマンドである。第2の集合は、アプリケーション特有コマンドの例を示す。通例、これらのコマンド集合は、もっと大きな完全なコマンド集合の部分集合である場合もある。
以下の表は、アプリケーションとは独立したコマンドの例をリストにして示す。コマンドの詳細(具体的なフォーマットおよびフィールドの意味)については、補足資料Aにおいて規定する。
ゲームパッド・アプリケーションは、ゲームパッド・ハンドリング(gamepad handling)と関連のあるワイヤレス・プロトコルを用いることができる。ゲームパッド・アプリケーションの音声部は、ゲームパッド規則を用いて、音声チャネルを取得することができる。以下の表は、ゲームパッド・アプリケーションが用いることができるSPIメッセージを示す。
音声デバイス・アプリケーションは、音声デバイスと関連のあるワイヤレス・プロトコルを用いることができる。ワイヤレス・アプリケーションの音声部は、音声規則を用いて、音声チャネルを取得することができる。以下の表は、音声アプリケーションが用いるSPIメッセージの一例を示す。

アプリケーション・プログラミング・インターフェース(API)
次に、APIについて説明する。一実施形態では、スレーブ・デバイスは、アプリケーション・プロセッサー(AP)と、ワイヤレス・プロトコル・プロセッサーとしてのスマート・トランシーバーとで構成することができる。APIは、アプリケーション・プロセッサーの中に配置することができる。これら2つのプロセッサーは、シリアル・ペリフェラル・インターフェース(SPI)によって接続することができる。
図13に示すように、実際のハードウェアおよびソフトウェア環境とは独立してサービスを提供することもできるが、一実施形態では、APIが、別個のアプリケーション・プロセッサー(マスター制御アプリケーション・プロセッサー)がシリアル・インターフェースを通じてスマート・トランシーバーと通信することを保証することができる。更に、別の実施形態では、APIは、包括的GPIOアプリケーションによって用いることもできる。
一実施形態では、APIは、物理無線チャネルへのアクセスおよびスマート・トランシーバー・ピンへのアクセスを扱うことができる。更に、APIは以下のタスクも担当することができる。
1.SPIドライバを用いた、SPIを通じたスマート・トランシーバーとの通信。
2.スマート・トランシーバーの設定の簡略化。
3.アプリケーションとスマート・トランシーバーとの間における電力モードおよび機能状態の同期化。
4.アプリケーションのワイヤレス・データーおよび音声送信機能に対するフレームワークの提供。
5.アプリケーションのスマート・トランシーバーとの通信のデバッグのサポート。
APIサービスには5つのグループを考慮することができる。
1.ワイヤレス・リンクを通じて固定サイズのデーター・パケットを送信および受信するデーター・サービス。
2.ワイヤレス・リンクを通じて音声パケットを送信および受信する音声サービス。このサービスの等時性をサポートするため、そして音声サンプルの符号化および復号をサポートするために特殊なメカニズムを含むこともできる。
3.他のサービスのパラメータを構成するためのレイヤ管理サービス。
4.スマート・トランシーバーの何らかの予備ピンにおいてビット指向IOを実行するためのGPIOサービス。
5.スマート・トランシーバー生産検査インターフェースへのアクセスをアプリケーションに与えるための生産検査サービス。
データー通信サービスは、図14に例示するようなサービス・プリミティブ(service primitives)に関して定めることができる。サービス・プリミティブとは、サービス提供レイヤと任意のサービス・ユーザ(タスク、レイヤ等)との間における抽象的な相互作用である。したがって、これは、ソフトウェア実現例の詳細とは独立していることができる。サービスは、目標システムに合わせて、適宜関数コールまたはオペレーティング・システムのメッセージとして実現することができる。
図15に示すように、情報ベース(IB)はAPIパラメータおよびコンフィギュレーション値を収蔵することができる。サービス・プリミティブは、4つの包括的タイプのうちの1つとすることができる。
・要求:要求プリミティブは、サービスをAPIによって開始することを要求するためにレイヤを用いてサービスから下方に受け渡すことができる。
・指示:指示プリミティブは、APIから上方に受け渡すことができる。このイベントは、論理的にリモート・サービス要求と関係付けることができ、あるいは内部APIイベントによって起こる場合もある。
・確認:確認プリミティブは、APIからアプリケーション/ネットワーク・レイヤに受け渡し、1つ以上の関連する以前のサービス要求の結果を伝えることができる。
・応答:応答プリミティブは、サービス使用レイヤからAPIに受け渡し、指示プリミティブによって以前に呼び出された手順を完了することができる。
以下の取り決めをプリミティブに用いることができる。<プリミティブ名><プリミティブ・タイプ>。<プリミティブ・タイプ>は、要求、指示、確認、または応答のうちの1つとすることができる。
サービス・プリミティブは、以下の機能を設けることができる。
...Data...: 種々の固定サイズを有するデーター・パケットの送信。
...Connect...: 接続の確立
...Disconnect...: 接続の解放
上流データー・サービスのパケット・タイプのリストの一例を以下に示す。全てのタイプは任意のシーケンスで用いることができる。最大上流スループットは、フレーム当たり48バイト(これに、16ビットまでがヘッダーに追加される)として与えることができる。フレーム期間は、8msとすることができる。総合要求スループットは、通例、この最大値を超過しない。純粋なワイヤレス音声デバイス(例えば、ヘッドセット)では、...DATA_VOICE...パケット・タイプを用いることができる。
殆どの上流パケット・タイプおよび対応するデーター(サブ−)サービスは、無線リンクにおいてはパケット整列もフロー制御も全く提供しない。これらのデーター・パケットは、再書き込み可能であると想定されている。再書き込み可能なパケットが、実現可能なスループットによって許容されるよりも速く送られると、後に送られるパケットが、先に送られたパケットを上書きする可能性がある。再書き込み可能パケットは、通例、何らかの状態情報を周期的に送信するために用いられる。
下流データー・サービスのパケット・タイプのリストの一例を以下に示す。全てのタイプは任意のシーケンスで用いることができる。最大下流スループットは、フレーム当たり8バイト(これに、16ビットまでがヘッダーに追加される)として与えることができる。フレーム期間は、8msとすることができる。総合下流スループットは、通例、この最大値を超過しない。純粋なワイヤレス音声デバイス(例えば、ヘッドセット)では、...DATA_VOICE...パケット・タイプを用いることができる。
音声サービスでは、サービス・プリミティブは以下の機能を設ける。
...TxRx...: PCM音声パケットの送信タイミングを示す。実際の音声パケットは、特殊機能GetVoiceBufferによって交換される。
...Connect...: 接続の確立
...Disconnect...: 接続の解放
...SampleRate...: 上流サンプル・レートの変更を示す。
PCMデーターは、したがって、スマート・トランシーバーによって、スループット制約を満たすように符号化することができる。PCM音声サンプルは、サンプル当たり16ビットで送信することができる(左揃え、2の補数、リトル・エンディアン・フォーマット)。
サンプル・レートは、いつでもマスター・デバイスによって変更することができる。サンプル・レートの指示を与えると、この場合では、オーディオ・ハンドラーにAD変換パラメータをしかるべく変更するきっかけとなることができる。
上流音声パケット・サイズ(属性IB_VOICE_PACKET_SIZE)および初期上流符号化タイプ(属性IB_UPSTREAM_VOICE_ENCODING_TYPE)は、IBヘッダー・ファイルにおいて設定することができる。
管理サービスは、データーや音声送信サービスには直接関係しないプリミティブ、およびレイヤ・コンフィギュレーションを情報ベース(IB)を通じて組み合わせることができる。典型的なアプリケーション環境では、IB属性は固定値を有し、アプリケーション実行の最中に変更する必要はない。
管理サービス・プリミティブは、以下の機能を設けることができる。
...Init...:APIソフトウェア初期化。
...Start...:スマート・トランシーバーとの通信の開始。
...Reset...:APIおよびスマート・トランシーバーのリセット。
...PowerDown...:スマート・トランシーバーの電源遮断。
...Bind...: マスター/スレーブ・バインディング(接続のためには欠くことができないが、必要とされるのは1回だけである)。
...StopBind...: バインディングの停止。
...Read...: スマート・トランシーバーのEEPROMの読み出し。
...Write...: スマート・トランシーバーのEEPROMの書き込み。
また、IB属性は、更なる拡張のためのオプションとして、対応するプリミティブ(ゲットおよびセット(get and set))によってアクセスすることもできる。すると、IBアクセス・プリミティブは別個の確認プリミティブを有することができる。何故なら、殆どの場合、スマート・トランシーバーとの通信が関与するからである。
スマート・トランシーバーは、予備のGPIOピンを有することができ、これらは入力または出力のいずれにも用いることができる。コンフィギュレーション設定は、IB属性を通じて行うことができる。
サービス・プリミティブは、16IOピンまでセットまたはクリアすることができ、あるいは16IOピンまでの現在の状態を、要求に応じて(確認プリミティブによって)または要請なしに(指示プリミティブによって)伝えることができる。
図16は、APIプロトコルの一実施形態について、簡略化した状態遷移図を示す。API状態は、次のように定めることができる。
INITIALIZED(初期化済み):APIを用いる準備ができている。
STARTED(開始):スマート・トランシーバーとの通信が確立され、構成されている。
CONNECTED(接続):データーおよび/または音声接続が確立され、データーおよび/または音声を送るまたは受信することができる。状態図を簡略化するために、音声接続状態および遷移は示されていないが、別個の独立したインスタンスとして存在することができる。
BINDING(結束):これは、マスター・デバイスに結束する間における過渡的状態である。通常では、CONNECTED状態に到達するためにだけ結束を行う必要はない。スレーブ・デバイスの寿命の間に1回だけしか起こらない可能性が高い。
APIの基本的構造の一例を図17に示す。図に示すのは、状態機械であり、アプリケーションによる要求を扱い、スマート・トランシーバーによって受信されたSPIメッセージおよび内部状態に応じてアプリケーションに対してイベントを発生することができる。マスター制御アプリケーション・コントローラーとスマート・トランシーバーとの間でデーターおよび音声を転送するためのバッファ機能を、APIに統合することもできる。アプリケーション・レイヤは、要求を送出するために、プリミティブ関数コールに関して、APIと通信することができる。加えて、一実施形態では、APIからのイベント・メッセージを扱うために、2つの関数GetEvent(...)およびReadEventDetails(...)がある。音声の扱いには、2つの関数PutVoiceBuffer(...)およびGetVoiceBuffer(...)を実装することができる。SPIドライバは、APIバッファを処理するための4つの関数を用いて、APIにインターフェースすることができる。
要求には2つのタイプを考えることができる。
1.対応する確認を有さないかもしれない要求。要求された動作の成果は、通例、関数コールの戻りの後でなければ分からない。
2.対応する確認を有する可能性がある要求。これらのタイプの要求には、動作を扱うために2つの異なる方法、同期および非同期があるとよい。同期実現例では、関数コールの成果は、当該関数コールの戻りの後でないと分からないが、関数は確認を待つことができ、関数が戻るまでコール・タスクを阻止することができる。対照的に、非同期の実現例は、直ちに戻る関数コールを有することができるが、動作の成果を別個に処理することができる。
指示および確認は、アプリケーションによってイベント(イベント識別子、および受信したプリミティブ・エレメントに対するポインタのリスト)として受信することができる。関数コールは、イベントを取込、イベントの詳細を読み取るために利用できる場合がある。音声処理タスクを最適化するために、音声サンプルのバッファ管理は、イベントの代わりに、別個の関数コールによって扱うとよい。基礎となるオペレーティング・システムでは、これは、タスクまたはスレッドによって受信されるメッセージによって実現することができる。
指示および確認の受信にイベント・ループを有する代わりに、コール・バック機能をAPIに登録することもできる。各指示または確認が受信されると、対応する関数をコールすることができる。
以下の表は、ユーザおよびサード・パーティのアプリケーションに利用可能なSPIコマンドを、本明細書において論じているプリミティブと相互引用したものである。1つのプリミティブが1回よりも多くリストに現れる場合、プリミティブ・パラメータ(例えば、Xair_MdDataReq)または内部ドライバ状態(例えば、Xair_MmStartReq)にしたがって該当するコマンドを選択する。FFSという印が付いているコマンドは、現在本明細書には含まれていないが、望ましければ追加することができる。
補足資料Bは、APIサービスによって提供される種々の機能の詳細を示す。
最後に、本開示は、種々の図に示したような好ましい形態に関して説明したが、他の同様の形態も用いることができ、本開示から逸脱せずに、本開示の同じ機能を実行するために、変更や追加を、記載した形態に行ってもよいことは言うまでもない。例えば、本開示の種々の形態では、プロトコルおよびAPIを開示した。しかしながら、これらの記載した形態と等価の別のメカニズムも、本開示における教示によって想起される。したがって、本開示はいずれの1つの形態にも限定されず、むしろ添付した特許請求の範囲にしたがって広さおよび範囲を解釈するものとする。
補足資料A
スマート・トランシーバー起動メッセージ
スマート・トランシーバーが最初に起動して、SPIモードが検出され、SPI転送の準備ができている場合、起動メッセージをSPI出力FIFOにロードし、「D_AVAIL#」ラインをアサートすることができる。このメッセージは、通例、コンフィギュレーション・メッセージとして用いられ、マスター制御アプリケーションに、チップのタイプおよびそのコンフィギュレーションを知らせる。スマート・トランシーバーが自動的にこのメッセージを起動時に送ることができるが、マスター制御アプリケーションは、スマート・トランシーバー起動メッセージ要求を用いて、いつでもそれを要求することができる。
スマート・トランシーバーからマスター制御アプリケーション

マスター制御アプリケーションからマスター・トランシーバー

起動コンフィギュレーション
マスター制御アプリケーションがスマート・トランシーバー起動メッセージを受信した後、起動コンフィギュレーション・メッセージをスマート・トランシーバー・チップに送ることができる。このメッセージは、スマート・トランシーバーに、それが用いているSPIプロトコル・バージョンは何かと、それが望む出力クロック速度とを知らせることができる。応答メッセージは、デバッギング・チェックのために送られたコンフィギュレーション・データーを収蔵することができる。長さが0のコマンド(ペイロードがない)をマスター制御アプリケーションが送ることによって、現在の起動コンフィギュレーションをポールすることができる。
マスター制御アプリケーションからスマート・トランシーバー

スマート・トランシーバーからマスター制御アプリケーション
応答は、起動コマンドが正しく受信されたときにその確認として、起動コマンドと共に送られたデーターを収蔵することに注意すること。
SPIドライバが用いるSPIプロトコルのバージョンが、チップがサポートするバージョンとは異なる場合、チップは、要求されたバージョンではなく、それがサポートするバージョンを返すことができる。チップが動作することができるバージョンを用いるのは、ドライバの責務である。
モード制御
マスター制御アプリケーションは、スマート・トランシーバーの動作に対して究極的な制御を行う。モード・コマンドは、マスター制御アプリケーションが、スマート・トランシーバーのモードを変更することを可能にする。異なるリセット・モードは、既知の状態から開始できるように、スマート・トランシーバー・チップをリセットする。電力モードは、スマート・トランシーバーの電源を切るか、またはそれを別の電力モードにする。モード変更メッセージは、モード変更が行われる前に、スマート・トランシーバーによって承認することができる。
モード制御ポールは、マスター制御アプリケーションに対するキープ・アライブ」メッセージを、スマート・トランシーバーが未だ異なるモードで正しく動作していると判断するため用いるための、正しい選択肢である。
マスター制御アプリケーションからスマート・トランシーバー
マスター制御アプリケーションは、このコマンドをスマート・トランシーバーに送って、モードを変更することまたは現行のモードを要求することができる。ノー・レングス(no length)が送られた場合、要求を現モードのポールと見なすことができる。

スマート・トランシーバーからマスター制御アプリケーション
モード制御応答メッセージは、SPIインターフェースにおいて、モード制御要求の受信の1m秒以内に得ることができる。
メッセージ・バッファ警告
通例、マスター制御アプリケーションは、スマート・トランシーバーが扱うことができない程速くメッセージを送ることはできない。しかしながら、スマート・トランシーバー・バッファが埋まり始めた場合、エラー・メッセージが定められる。バッファが殆ど満杯になったことをマスター制御アプリケーションに警告するためのメッセージが1つある。バッファ・タイプについての警告を解消するための別のメッセージがある。加えて、最後のメッセージが拒否されたことをスマート・トランシーバーがマスター制御アプリケーションに通知するためのメッセージがある。拒否メッセージは、マスター制御アプリケーションがバッファ警告を無視し、そのバッファにデーターをあらゆる方法で送ったときにのみ送られ、あるいは現在のアプリケーションまたは状態にとってメッセージが間違っているときに送られる。
スマート・トランシーバーからマスター制御アプリケーションへのバッファ警告
このメッセージは、1つまたは複数のバッファが殆どいっぱいになったときにスマート・トランシーバーによって送ることができる。スマート・トランシーバーのファームウェアは、少なくとも1つ以上のメッセージ(現在受信中のものは含まない)の余裕が未だあるときに警告を送ることができるように書き込むことができる。このメッセージが送られるといつでも、警告ステータスにある全てのバッファの完全なリストを送ることができる。マスター制御アプリケーションがバッファ警告を受け取ると、この警告が解消されるまで、そのタイプのバッファをもはや送ってはならない。

スマート・トランシーバーからマスター制御アプリケーションへのバッファ警告の解消
このメッセージは、警告中のバッファが十分に消去されてより多くのメッセージが許容されるようになったときに送ることができる。ペイロードは、消去されているバッファ・タイプの各々をリストに纏めることができる。これは、以前に警告タイプが設定されたことがあり、今では書き込んでも安全なバッファだけをリストに纏めることができる。

スマート・トランシーバーからマスター制御アプリーションへのメッセージ不達(message fail)
マスター制御アプリケーションの符号化(coding)が正しければ、このメッセージが送られることはないはずであるが、マスター制御アプリケーションがバッファ警告メッセージを無視し、スマート・トランシーバーが受け入れることができないバッファを送った場合、または現在のアプリケーションまたは状態にはメッセージが誤りである場合には、このメッセージが送られることがある。

EEPROMコマンド
マスター制御アプリケーションは、データーをEEPROMに書き込むこと、またはデーターをEEPROMから読み出すことを要求することができる。メッセージは、32バイトのデーターに制限されており、一度に1つのメッセージしか保留していることができない(1つのEEPROM読み出しまたは1つの書き込みメッセージ)。
EEPROM読み出し
マスター制御アプリケーションは、EEPROMからのデーターを要求することができる。これは、読み出し要求によって行われる。その後のある時点で、スマート・トランシーバー・チップがEEPROMを読み出し終えたとき、EEPROM読み出し応答メッセージと共にこのデーターをSPIを通じて戻すことができる。双方のメッセージは、EEPROMオフセットおよび読み出し長を収蔵しており、これによって、マスター制御アプリケーションは、その保留中の読み出し要求を応答と同期させることが可能になる。エラーがある場合、スマート・トランシーバーは、EEPROMデーターを読み出さずに、要求を返すことができる。このメッセージングによって、マスター制御アプリケーションのプロセッサーは、返送すべきメッセージにコンテキストを入れることが可能になる。これは、マスター制御アプリケーション・プロセッサーが望む任意の方法で用いることができる。例えば、これは、応答メッセージが受信されるときに再開するタスク番号とすることができる。
マスター制御アプリケーションからスマート・トランシーバーへのEEPROM読み出し要求

スマート・トランシーバーからマスター制御アプリケーションへのEEPROM読み出し応答

EEPROM書き込み
マスター制御アプリケーションは、不揮発性データーをEEPROMにセーブすることができる。これは、書き込み要求によって行われる。その後のある時点で、スマート・トランシーバー・チップがEEPROMにデーターを書き込みその妥当性を判断した後、SPIチャネルを通じて応答メッセージを返送して、マスター制御アプリケーションに、それが行われたことを知らせることができる。双方のメッセージは、EEPROMオフセットおよび読み出した長さを収蔵しており、マスター制御アプリケーションは、その保留中の書き込み要求を応答と同期させることが可能になる。エラーがある場合、スマート・トランシーバーはエラー・ステータスと共に要求を戻すことができる。このメッセージングによって、マスター制御アプリケーション・プロセッサーは、返送すべきメッセージにコンテキストを入れることが可能になる。これは、マスター制御アプリケーション・プロセッサーが望む任意の方法で用いることができる。例えば、これは、応答メッセージが受信されるときに再開するタスク番号とすることができる。書き込まれたデーターは、応答の中で戻すことができるので、マスター制御アプリケーションは、正しいデーターが書き込まれたことを検証することができる。
マスター制御アプリケーションからスマート・トランシーバーへのEEPROM書き込み要求

スマート・トランシーバーからマスター制御アプリケーションへのEEPROM書き込み応答
スマート・トランシーバーのファームウェアには、現在の音声タイプがわかると良い2つの部分がある。
1.リンク・レイヤは、どのタイプのデーターが上流に送られているのか知らなければならない場合がある。
2.スマート・トランシーバーのハードウェアが音声符号化/復号を行う場合、アプリケーションは符号化に用いるコーディング・タイプ(coding type)がわかるとよい。
このコメントが送信されると、スマート・トランシーバーは、必要であれば、上流経路のHW符号化タイプを変更し、更に、上流音声データーにこのタイプを添付する(tag)ことができる。ペイロードなしでこのコマンドを送った場合、スマート・トランシーバーは現在のタイプを送ることができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声符号化タイプ設定

スマート・トランシーバーからマスター制御アプリケーションへの音声符号化タイプ応答

GPIO制御
スマート・トランシーバーのICは、予備のGPIOピンを有しており、これらのピンはマスター制御アプリケーション・チップが入力または出力のために用いることができる。スマート・トランシーバーの初期化の時点において、予備用GPIOの全てを入力として構成することができ、それらのステータスは、スマート・トランシーバー起動メッセージの一部として送ることができる。メッセージによって、マスター制御アプリケーションはGPIOを構成すること、そしてGPIOに対して読み出しまたは書き込みを行うことが可能になる。入力を構成する場合、マスター制御アプリケーションは、要求された入力が変化したときはいつでも、GPIOステータス・メッセージを送るように要求することができる。これらのメッセージは、整列させて、4m秒以内にマスター制御アプリケーションに送るように準備することができる。GPIOステータス・メッセージは、バッファおよびモード・メッセージよりも優先順位が低い。
全てのGPIOコマンドにおいて、ビット0はGPIO0にマッピングし、ビット1はGPIO1にマッピングする等となる。
マスター制御アプリケーションからスマート・トランスレートシーバへのGPIO設定
マスター制御アプリケーションがスマート・トランシーバーのGPIOを用いたい場合、これらを正しく設定しなければならない。入力および出力を決定するために、別個のビット・マップがある。

スマート・トランシーバーからマスター制御アプリケーションへのGPIO設定応答

マスター制御アプリケーションからマスター・トランシーバーへのGPIO読み出し/書き込み

スマート・トランシーバーからマスター制御アプリケーションへのGPIOステータス/応答

ワイヤレス・フレーム同期
アプリケーションは、フレーム同期メッセージをフレームにおける任意の位置になるように設定することができる。デフォルトでは、フレーム同期メッセージをオフにすることができる。イネーブルされると、フレーム同期メッセージをSPIバッファにロードし、フレーム・ビット・クロックがトリガ値に達したときに、準備を整えることができる。
マスター制御アプリケーションからスマート・トランシーバーへのフレーム同期設定要求

スマート・トランシーバーからマスター制御アプリケーションへのフレーム同期設定応答

スマート・トランシーバーからマスター制御アプリケーションへのフレーム同期メッセージ

ワイヤレス音声同期
SPIポートを通過する際のスループットを向上させるために、上流および下流の音声データーを同期させて、双方のパケット・タイプが同時に全二重接続を通じて転送されるようにすることが可能である。
音声同期設定要求メッセージは、この機構(feature)をイネーブルするために用いることができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声同期設定要求
デフォルトでは、このメッセージをイネーブルすると、フレーム同期メッセージをディスエーブルすることができる。このメッセージをディスエーブルすると、フレーム同期メッセージをイネーブルすることができる。

スマート・トランシーバーからマスター制御アプリケーションへの音声同期設定応答

スマート・トランシーバーからマスター制御アプリケーションへの音声同期メッセージ
マスター制御アプリケーションは、このメッセージを用いて、SPIインターフェースを通る全二重トランスポートを開始することができる。

コンフィギュレーション・メッセージング
コンフィギュレーション・メッセージは、マスター制御アプリケーションがスマート・トランシーバー・チップを、その特定のオプションを有する正しいアプリケーションに設定することを可能にする。
アプリケーションおよびオプションの設定
このメカニズムは、マスター制御アプリケーションが正しいアプリケーションおよびそのための種々のオプションを選択することを可能にする。
マスター制御アプリケーションからスマート・トランシーバー・アプリケーションへのコンフィギュレーション設定−サード・パーティ

無効のオプション・フラグまたは音声パケット・サイズ・フィールドがスマート・トランシーバーによって検出された場合、有効なアプリケーション・コンフィギュレーション・コマンドを受信するまで、アプリケーション未定状態にい続ければよい。
ホスト接続
一旦マスター制御アプリケーションの準備が整うと、ホストへの接続開始を試すことができる。ゲームパッド・アプリケーションでは、データー接続を最初に確立することができ、一旦これが行われると、ヘッドセットが差し込まれていれば、音声接続の確立を試すことができる。一旦接続が確立されると、次の3つの異なるインスタンス(instance)のために、これらを落とす(drop)ことができる。
1.マスター制御アプリケーションがリンク・ドロップを要求する。この場合、リンクを落とし、無線(radio)をオフに切り換えることができる。マスター制御アプリケーションは、無線をオンに切り替えて新たなリンクを再確立するためには、新たな接続要求を発行することができる。
2.ホストがリンク・ドロップを要求する。この場合、リンクを落とすことができ、無線をオフに切り換えることができる。マスター制御アプリケーションには、接続が落ちたことおよび無線がオフになったことを通知することができる。マスター制御アプリケーションは、無線をオンに切り換えて、新たなリンクを再確立するためには新たな接続要求を発行することができる。
3.ホストとの同期が失われる。この場合、リンクを落とすことができ、無線をオフに切り換えることができる。マスター制御アプリケーションには、接続が落ちたことおよび無線がオフになったことを通知することができる。マスター制御アプリケーションは、無線をオンに切り換えて、新たなリンクを再確立するためには新たな接続要求を発行しなければならない場合がある。
データー接続要求
一旦アプリケーションがアップして実行すると、スマート・トランシーバーにホストに接続するように依頼することができる。スマート・トランシーバー・チップは、プロトコル規則を用いてホストを選択し、ワイヤレス・スロットを選択することができる。接続プロセスが開始すると直ぐに、ホストは接続要求応答を返すことができる。一旦スロットが得られると、接続ステータス報告を送ることができる。マスター制御アプリケーションが接続を落としたい場合、アクション(Action)を「接続を落とす」に設定し、このメッセージを送ることができる。スマート・トランシーバーは接続を落とし、無線をオフに切り換えることができる。「接続ドロップ」応答を返すことができる。加えて、リンク・ステータス・メッセージを、「マスター制御アプリケーション要求毎に落とされたスロット」というリンク・ステータスと共に送り、次いで「無線オフ」のリンク・ステータスを送ることができる。
マスター制御アプリケーションは、リンクを獲得したことを示すリンク・ステータス・メッセージを受信する前に、転送すべきいかなるデーターも送ってはならない。そうした場合、データーは流出して(flush)、送られなくなる場合もある。
マスター制御アプリケーションからスマート・トランシーバーへのデーター接続要求
このコマンドは初期報告のためのフィールドを含むことを注記しておく。

スマート・トランシーバーからマスター制御アプリケーションへのデーター接続応答

音声接続要求
一旦アプリケーションがアップして実行し、ヘッドセットを差し込んで、データー接続が得られたなら、マスター制御アプリケーションはスマート・トランシーバーに音声接続を依頼することができる。スマート・トランシーバー・チップは、ゲームパッド音声プロトコル規則を用いて、ワイヤレス・スロットを選択することができる。接続プロセスが開始すると直ぐに、ホストは接続要求応答を返送することができる。一旦スロットが得られると、接続ステータス報告を送ることができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声接続要求

スマート・トランシーバーからマスター制御アプリケーションへの音声接続応答

リンク・ステータス
マスター制御アプリケーションは、リンク・ステータスを問い合わせたい場合がある。加えて、スマート・トランシーバー・アプリケーションは、リンク・ステータスが変化したときに、メッセージを送りたい場合もある。
音声スロット可用性
マスター制御アプリケーションからスマート・トランシーバーへのリンク・ステータス要求

スマート・トランシーバーからマスター制御アプリケーションへのリンク・ステータス

コントローラー・バッファ転送
一旦アプリケーションがアップして実行し、無線リンクが得られると、転送の殆どは、送るベきデーターおよび受信したデーターのためのバッファ転送となる。プロトコルにおいて定められている各データー・タイプは、それ自体の1組のバッファを有する。上流メッセージにおいて、マスター制御アプリケーションがバッファを送ることができるのは、それらを有するからである。特定のデーター・タイプに対するバッファの割り当てが少ない場合、スマート・トランシーバー・チップは、少ないバッファ・タイプの警告を送ることができる。マスター制御アプリケーションは、「警告クリア」を得るまでは、そのタイプのバッファを1つだけ多くしか送ることができない(同時に転送されている可能性があるものも含む)。実際には、警告が決して発生しないだけの十分なバッファがあると想定する。スマート・トランシーバーがワイヤレス・チャネルからメッセージを受信すると、正しいデーター・タイプ・メッセージを用いてこれらのメッセージをマスター制御アプリケーションに送ることができる。
マスター制御アプリケーションからスマート・トラシーバ(上流)へのバッファ
コントローラー・ヘッダー報告
コントローラー・ヘッダー報告は、ワイヤレス・ヘッダーを通じて送られるステータス報告である。これらの一例は、デバイス・タイプ報告である。

コントローラー・データー

コントローラー・トランスポート

包括的報告バッファ
このバッファ・タイプは、専用のバッファ・メッセージを有していない全てのバッファ・タイプのためとすることができる。

スマート・トランシーバーからマスター制御アプリケーションへの(下流)バッファ
コントローラー・ヘッダー要求

コントローラー・データー

コントローラー・トランスポート

包括的要求バッファ
このバッファ・タイプは、逆のワイヤレス・パケット・タイプまたはサポートされていないワイヤレス・パケット・タイプの全てを扱うことができる。

音声バッファ転送
音声バッファは、規則的に1回のメッセージにおいて送ることができる最も長いデーターとすることができる。全二重バスのより良い使用を許可するために、マスター制御アプリケーションは、音声バッファを小さい断片に分割するように構成することができる。この構成は、起動時にセットすることができ、実行中にはセットすることができない。パケット0は基本タイプと見なすことができ、音声を分割しない場合、それは転送される唯一の音声パケット・タイプとなることができる。マスター制御アプリケーション・プロセッサーは、正しいデーター・タイプを音声ヘッダーに入れることができるように、スマート・トランシーバー・チップに、どのタイプのコーディングが用いられているのか知らせることができる。スマート・トランシーバーが音声符号化を実行している場合、マスター制御アプリケーションが既にセットしてあるタイプを用いることができる。スマート・トランシーバーは、SPIを通じて受信する音声パケットを追跡し、分割パケットが用いられている場合、ワイヤレス・チャネルを通じて完全なバッファが送られる前に全てのパケットが受信されたことを確認する必要がある場合もある。マスター制御アプリケーションは、それがスマート・トランシーバーから受信するデーターに対して、同様の機能を備えなければならない場合もある。
マスター制御アプリケーションからスマート・トランシーバーへの(上流)バッファ
音声ヘッダー報告

音声トランスポート

PCM音声パケット0〜7
マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプはバッファを満たすために用いることができる。コンフィギュレーション・オプション「上流音声パケット・カウント」を用いて、どのパケットを送るのか制御することができる。コマンド・コードが異なるパケットを用いて、スマート・トランシーバーが、正しいバッファ位置を指し示すように、そのDMAを設定できるようにすることができる。表43は、PCMパケットに用いられる最大パケット・サイズを示す。
全てのPCMサンプルは、16ビット、2の補数、リトル・エンディアン・フォーマットとすることができる。これが意味するのは、最初のバイトが最初のサンプルのロー・バイトであり、2番目のバイトが最初のサンプルのハイ・バイトである等ということである。加えて、16ビット未満のADCを用いる場合、サンプルを左に揃えるとよい。


スマート・トランシーバーからマスター制御アプリケーション(下流)バッファ
音声ヘッダー要求

音声トランスポート

PCM音声パケット0〜7
マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプを送ることができる。コンフィギュレーション・オプション「下流音声パケット・カウント」を用いて、パケットをいくつ送るか制御することができる。表47は、PCMパケットに用いられる最大パケット・サイズを示す。尚、パケットは、マスター制御アプリケーション・プロセッサーに、データーCRCの有効性が確認できたか否か知らせるために、ステータスのために余分なバイトを収蔵することができることを注記しておく。マスター制御アプリケーションがそのためにスマート・トランシーバーを構成した場合、「悪い」データーだけを送ることもできる。


コンフィギュレーション・メッセージング
コンフィギュレーション・メッセージは、マスター制御アプリケーションに、スマート・トランシーバー・チップを、その特定のオプションを有する正しいアプリケーションに設定することを可能にする
アプリケーションおよびオプションの設定
このメカニズムは、マスター制御アプリケーションが正しいアプリケーションおよびそのための種々のオプションを選択することを可能にする。
マスター制御アプリケーションからスマート・トランシーバー・アプリケーションへのコンフィギュレーション設定−サード・パーティ


スマート・トランシーバーからマスター制御アプリケーションへのアプリケーション・コンフィギュレーション応答

ホスト接続
一旦マスター制御アプリケーションの準備が整うと、ホストへの接続開始を試すことができる。音声デバイス・アプリケーションでは、最初にホストを検索しこれと同期を取り、次いで音声デバイス・プロトコルを用いて音声スロット接続を確立することができる。一旦接続が確立されると、次の3つの異なるインスタンス(instance)のために、これらを落とす(drop)ことができる。
1.マスター制御アプリケーションがリンク・ドロップまたは無線オフを要求する。この場合、リンクを落とすことができる。マスター制御アプリケーションが、無線オフおよびホストとの同期を要求した場合も、リンクを落とすことができ、無線をオフに切り換えることができる。いずれの場合でも、マスター制御アプリケーションは、新たなリンクを再確立するためには、新たな接続要求を発行しなければならない。
2.ホストがリンク・ドロップを要求する。この場合、リンクを落とすことができ、マスター制御アプリケーションに通知することができるが、ホストとの同期は維持することができる。これによって、ホストを検索する必要なく、今後接続を実行することが可能になる。この想定場面では、スマート・トランシーバーは、接続を試行して再確立し、そうした場合、マスター制御アプリケーションに知らせることができる。
3.ホストとの同期が失われる。この場合、スマート・トランシーバーはホストとの同期を取ろうとして、失われた接続を再確立することができる。マスター制御アプリケーションにはその推移を知らせることができるが、接続メッセージを再度送る必要はない。
音声接続要求
一旦アプリケーションがアップして実行すると、マスター制御アプリケーションはスマート・トランシーバーに音声接続を依頼することができる。スマート・トランシーバー・チップは、音声デバイス・プロトコル規則を用いてワイヤレス・スロットを選択することができる。接続プロセスが開始すると直ぐに、ホストは接続要求応答を返すことができる。一旦スロットが得られると、接続ステータス報告を送ることができる。バインディング情報がない場合、スマート・トランシーバーはエラー接続応答を返すことができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声接続要求

スマート・トランシーバーからマスター制御アプリケーションへの音声接続応答

リンク・ステータス
マスター制御アプリケーションは、リンク・ステータスに照会したい場合がある。加えて、スマート・トランシーバー・アプリケーションは、リンク・ステータスが変化したときに、メッセージを送りたい場合もある。
音声スロット可用性
マスター制御アプリケーションからスマート・トランシーバーへのリンク・ステータス要求

スマート・トランシーバーからマスター制御アプリケーションへのリンク・ステータス

音声バッファ転送
音声バッファは、規則的に1回のメッセージにおいて送ることができる最も長いデーターである。全二重バスのより良い使用を許可するために、マスター制御アプリケーションは、音声バッファを小さい断片に分割するように構成することができる。この構成は、起動時にセットすることができ、実行中にはセットすることができない。パケット0は基本タイプと見なすことができ、音声を分割しない場合、それは転送される唯一の音声パケット・タイプとなることができる。マスター制御アプリケーション・プロセッサーは、正しいデーター・タイプを音声ヘッダーに入れることができるように、スマート・トランシーバー・チップに、どのタイプのコーディングが用いられているのか知らせることができる。スマート・トランシーバーが音声符号化を実行している場合、マスター制御アプリケーションが既にセットしてあるタイプを用いることができる。スマート・トランシーバーは、SPIを通じて受信する音声パケットを追跡し、分割パケットが用いられている場合、ワイヤレス・チャネルを通じて完全なバッファが送られる前に全てのパケットが受信されたことを確認する必要がある場合もある。マスター制御アプリケーションは、それがスマート・トランシーバーから受信したデーターに対して同様の機能を設ける必要がある場合もある。
マスター制御アプリケーションからスマート・トランシーバーへの(上流)バッファ
音声ヘッダー報告

音声トランスポート
音声トランスポートは、音声デバイスにおいて、コマンドの要求およびステータスの報告に用いられる。

PCM音声パケット0〜7
マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプはバッファを満たすために用いることができる。コンフィギュレーション・オプション「上流音声パケット・カウント」を用いて、どのパケットを送るのか制御することができる。コマンド・コードが異なるパケットを用いて、スマート・トランシーバーが、正しいバッファ位置を指し示すように、そのDMAを設定できるようにすることができる。表43は、PCMパケットに用いられる最大パケット・サイズを示す。
全てのPCMサンプルは、16ビット、2の補数、リトル・エンディアン・フォーマットとすることができる。これが意味するのは、最初のバイトが最初のサンプルのロー・バイトであり、2番目のバイトが最初のサンプルのハイ・バイトである等ということである。加えて、16ビット未満のADCを用いる場合、サンプルを左に揃えるとよい。


スマート・トランシーバーからマスター制御アプリケーションへの(下流)バッファ
音声ヘッダー要求

音声トランスポート
音声デバイスにおいて、コマンド要求およびステータス報告のために、音声トランスポートを用いることができる。

PCM音声パケット0〜7
マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプが送られる。コンフィギュレーション・オプション「下流音声パケット・カウント」を用いて、パケットをいくつ送るか制御することができる。表47は、PCMパケットに用いられる最大パケット・サイズを示す。尚、パケットは、マスター制御アプリケーション・プロセッサーに、データーCRCの有効性が確認できたか否か知らせるために、ステータスのために余分なバイトを収蔵することができることを注記しておく。



補足資料B
データー・サービスの要求機能
API要求関数は、APIレベルでの通信スタックにおけるアクションを開始するために、アプリケーションからコールすることができる。API機能の前および後ろに_reqを付けることができる。
Xair_MdDataReq
Xair_MdConnectReq
Xair_MdDisconnectReq
データー・サービスについてのイベント
Xair_MdDatalnd
Xair_MdConnectConf
Xair_MdDisconnectConf
Xair_MdDisconnectlnd
Xair音声サービスのための要求機能
Xair_MvConnectReq
Xair_MvDisconnectReq
Xair音声サービスについてのイベント
Xair_MvTxRxInd
Xair_MvConnectConf
Xair_MvDisconnectConf
Xair_MvDisconnectlnd
Xair_MvSampleRatelnd
Xair管理サービスのための要求機能
Xair_MmInitReq
Xair_MmStartReq
Xair_MmResetReq
Xair_MmPowerDownReq
Xair_MmBindReq
Xair_MmstopBindReq
Xair_MmReadReq
Xair_MmWriteReq
Xair管理サービスについてのイベント
Xair_Mmsmart TransceiverComReadyInd
Xair_MmStartConf
Xair_MmRResetInd
Xair_MmBindConf
Xair_MmStopBindConf
Xair_MmReadConf
Xair_MmWriteConf
Xair_MmSyncInd
Xair GPIOサービスのための要求機能
Xair_MgIoReq
Xair GPIOサービスについてのイベント
Xair_MgIoConf
Xair_MgIoInd
Xair_MpSendRawSpiDataReq
イベントおよびバッファ処理機能
Xair_GetEvent
Xair_ReadEventDetails
Xair_PutVoiceBuffer
Xair_GetVoiceBuffer
APIのコンフィギュレーションおよび設計
APIの全てのコンフィギュレーションは、"xair_api_xib.h" ヘッダー・ファイルにおける定義によって行うことができる。ここでは、完全なAPIは、マスター制御アプリケーション・システムにおいて利用可能な資源に関して調節可能とすることができる。
RX/TXデーターを整列させるためのバッファの数は、XIB_TX_DATA_QUEUE_SIZE、XIB_EVENT_QUEUE_SIZE、XIB_RX_DATA_QUEUE_SIZE によって調節可能である。したがって、マスター制御アプリケーション・システムの利用可能なメモリー空間に関して、用いられるキュー・サイズを調節することができる。
用いられるEEPROMのタイプおよび記憶サイズは、XIB_EEPROM_TYPE、
XIB_PERSISTENT_STORE_SIZE によって構成可能である。
SPIモードは、XIB_SPI_MODE によってセットされる。
モード0...3をセットすることができる。デフォルトは、SPIモード0である。
スマート・トランシーバー・チップによって供給される出力クロックの周波数は、XIB_PROVIDED_CLOCK_FREQUENCY によってセットすることができる。クロックを12、24、または48MHzにセットすることができる。デフォルトは12MHzである。
作業アプリケーションのタイプは、XIB_APPLICATION_TYPE によってセットされる。データー、音声、または双方をセットすることができる。デフォルトはデーターである。
統合する音声デバイスの能力は、XIB_VOICE_ABILITY によってセットされる。イネーブルまたはディスエーブルにセットすることができる。デフォルトはイネーブルである。
スマート・トランシーバーが発生するフレーム同期メッセージの位置は、XIB_SYNC_EVENT_POSITION によって調節することができる。SYNC_EVENT_OFF、SYNC_EVENT_FRAMESTART、SYNC_EVENT_BROADCAST またはSYNC_EVENT_RX_FINISHEDにセットすることができる。デフォルトは、SYNC_EVENT_FRAMESTARTである。
使用される上流音声符号化タイプは、XIB_UPSTREAM_VOICE_ENCODING_TYPE によってセットする。
音声同期メッセージの発生は、XIB_VOICE_SYNC によって設定することができる。イネーブルまたはディスエーブルにセットすることができる。デフォルトはイネーブルである。
スマート・トランシーバー・チップの初期GPIO設定値は、XIB_GPIO_INPUTSによってセットすることができる。

/**< 16ビット、リトル・エンディアンのクリアされたビットは無視を意味し、セットされたビットは入力を意味する */
- XIB_GPIO_INTERRUPT_MASK
/**< 16ビット、リトル・エンディアンのクリアされたビットは無視を意味し、セットされたビットはXair_MgIoIndイベントが入力において受信されたことを意味する */
- XIB_GPIO_OUTPUTS
/**< 16ビット、リトル・エンディアンのクリアされたビットは無視を意味し、セットされたビットはこのビットが出力であることを意味する */
- XIB_GPIO_OUTPUT_TYPE
/**< 16ビット、リトル・エンディアンのクリアされたビットは、これがプッシュ/プルであることを意味し、セットされたビットはこれがオープン・ドレインであることを意味する */
- XIB_GPIO_OUTPUT_INIT
/**< 16ビット、リトル・エンディアン、初期出力状態*/
- XIB_GPIO_INPUT_TYPE
/**< 32ビット、GPIO入力ピン構成、フィールドの2ビット対を用いて、各GPIOピンを定める */

等しいサイズのデーターおよび音声パケット・バッファは、XIB_VOICE_EQ_DATA_BUFFER によってセットする。
TRUEまたはFALSEにセットすることができる。デフォルトはTRUEである。

Claims (15)

  1. ワイヤレス・プロトコル・プロセッサーを含むゲーミング・システムまたはペリフェラルであって、前記ワイヤレス・プロトコル・プロセッサーが、シリアル・ペリフェラル・インターフェース(SPI)リンクを通じて全二重コマンドおよびデーター・メッセージング・プロトコルを提供するように構成された回路を含み、該回路は、ヘッダーと可変長ペイロードとを含むデーター・パケットを形成するように構成され、前記ヘッダーはコマンド・フィールドと長さフィールドとを含み、該長さフィールドは前記可変長ペイロードのサイズを表し、前記長さフィールドは、前記コマンド・フィールドの内容に依存し、前記コマンド・フィールドは、前記ゲーミング・システムまたはペリフェラルにおいて実行する複数のソフトウェア・アプリケーション動作するように構成された第1組のコマンドと、前記ゲーミング・システムまたはペリフェラルにおいて実行する特定のソフトウェア・アプリケーションのみ動作するように構成された第2組のコマンドと、を示し、前記第1組のコマンドと前記第2組のコマンドとは各々、製品タイプによって決まる機能に関連した、ゲーミング・システムまたはペリフェラル。
  2. 請求項1記載のシステムにおいて、前記SPIリンクを通じたトランザクションは、前記データー・パケットをスレーブ・デバイスに送信するマスター・デバイスによって開始される、システム。
  3. 請求項2記載のシステムにおいて、前記回路は、更に、前記スレーブ・デバイスから応答を受信するように構成され、前記応答は、前記マスター・デバイスからの要求の結果、前記コマンドへの遵守、および以前の要求からのイベントの発生の指示のうち少なくとも1つを含む、システム。
  4. 請求項1記載のシステムにおいて、前記回路は、更に、前記機能を初期化期間中に選択するように構成された、システム。
  5. 請求項1記載のシステムにおいて、前記第1組のコマンドは、
    コマンドまたは応答非送出、モード制御、音声同期設定要求、音声コーディング・タイプの設定、リンク・ステータス要求、EEPROM読み出し要求、EEPROM書き込み要求、起動コンフィギュレーション・メッセージ、トランシーバー起動メッセージ要求、ワイヤレス・フレーム同期設定、トランスポート要求の検査、ワイヤレス・スロット・デバッグ・メッセージの要求、GPIO設定、GPIO読み出し/書き込みメッセージ、マスターEEPROM読み出し応答、およびマスターEEPROM書き込み応答、
    のうち少なくとも1つを含む、システム。
  6. 請求項1記載のシステムにおいて、前記第1組のコマンドは、
    メッセージ失敗、モード制御応答、バッファ警告、バッファ警告解消、音声同期設定応答、音声同期メッセージ、音声コーディング・タイプ応答、リンク・ステータス、EEPROM読み出し応答、EEPROM書き込み応答、起動コンフィギュレーション応答、スマート・トランシーバー起動メッセージ、ワイヤレス・フレーム同期設定応答、ワイヤレス・フレーム同期、検査、
    のうち少なくとも1つを含む、システム。
  7. 請求項1記載のシステムであって、更に、前記SPIドライバを通じて前記ワイヤレス・プロトコル・プロセッサーへのアクセスを与えるように構成された回路を含み、前記ワイヤレス・プロトコル・プロセッサーへのアクセスを提供するように構成された前記回路は、イヤレス・リンクを通じて固定サイズのデーター・パケットを送信及び受信するデーター・サービスと、前記ワイヤレス・リンクを通じて音声パケットを送信および受信する音声サービスと、他のサービスのパラメータを構成するレイヤ管理サービスと、前記ワイヤレス・プロトコル・プロセッサーの予備ピンにおいてビット指向入力/出力を実行するGPIOサービスと、前記ワイヤレス・プロトコル・プロセッサーの製品検査インターフェースへのアクセスを与える製品検査サービスとを含む、システム。
  8. シリアル・ペリフェラル・インターフェースを通じて全二重コマンドおよびデーター・メッセージング・プロトコルを提供する方法であって、
    ヘッダーと可変長のペイロードとを含む少なくとも1つのデーター・パケットを形成するステップであって、前記ヘッダーはコマンド・フィールドと長さフィールドとを含み、該長さフィールドは前記可変長ペイロードのサイズを表し、前記長さフィールドは、前記コマンド・フィールドの内容に依存し、前記コマンド・フィールドは、ーミング・システムまたはペリフェラルにおいて実行する複数のソフトウェア・アプリケーション動作するように構成された第1組のコマンドと、前記ゲーミング・システムまたはペリフェラルにおいて実行する特定のソフトウェア・アプリケーションのみ動作するように構成された第2組のコマンドと、を示す、ステップと、
    前記少なくとも1つのデーター・パケットをスレーブ・デバイスに送信することによって、トランザクションを開始するステップと、
    前記少なくとも1つのデーター・パケットに対して応答を送信するステップと、
    を含む、方法。
  9. 請求項8記載の方法において、トランザクションは、前記データー・パケットを送信するマスター・デバイスによって開始される、方法。
  10. 請求項9記載の方法において、前記応答は、前記マスター・デバイスからの要求の結果、前記コマンドへの遵守、および以前の要求からのイベントの発生の指示のうち少なくとも1つを含む、方法。
  11. 請求項8記載の方法であって、更に、機能を選択し、コマンド組を前記機能の関数として提供するステップを含む、方法。
  12. 請求項11記載の方法であって、前記機能は初期化期間中に選択され、前記機能は製品タイプによって決定される、方法。
  13. 請求項8記載の方法において、前記第1組のコマンドは、
    コマンドまたは応答非送出、モード制御、音声同期設定要求、音声コーディング・タイプの設定、リンク・ステータス要求、EEPROM読み出し要求、EEPROM書き込み要求、起動コンフィギュレーション・メッセージ、トランシーバー起動メッセージ要求、ワイヤレス・フレーム同期設定、トランスポート要求の検査、ワイヤレス・スロット・デバッグ・メッセージの要求、GPIO設定、GPIO読み出し/書き込みメッセージ、マスターEEPROM読み出し応答、およびマスターEEPROM書き込み応答、
    のうち少なくとも1つを含む、方法。
  14. 請求項8記載の方法において、前記第1組のコマンドは、
    メッセージ失敗、モード制御応答、バッファ警告、バッファ警告解消、音声同期設定応答、音声同期メッセージ、音声コーディング・タイプ応答、リンク・ステータス、EEPROM読み出し応答、EEPROM書き込み応答、起動コンフィギュレーション応答、スマート・トランシーバー起動メッセージ、ワイヤレス・フレーム同期設定応答、ワイヤレス・フレーム同期、トランスポート検査応答、GPIO設定応答/ステータス、およびGPIOステータス/応答メッセージ、
    のうち少なくとも1つを含む、方法。
  15. 請求項8記載の方法において、前記アプリケーションは、ビデオ・ゲーム・コントローラー・アプリケーション、音声アプリケーション、ビデオ・ゲーム・コンソール・アプリのうちの少なくとも1つを含む、方法。
JP2010536058A 2007-11-27 2008-11-14 ワイヤレス送受信機用インターフェース・プロトコルおよびapi Expired - Fee Related JP5250042B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US99036507P 2007-11-27 2007-11-27
US60/990,365 2007-11-27
US12/163,026 2008-06-27
US12/163,026 US8060681B2 (en) 2007-11-27 2008-06-27 Interface protocol and API for a wireless transceiver
PCT/US2008/083706 WO2009070460A2 (en) 2007-11-27 2008-11-14 Interface protocol and api for a wireless transceiver

Publications (3)

Publication Number Publication Date
JP2011505755A JP2011505755A (ja) 2011-02-24
JP2011505755A5 JP2011505755A5 (ja) 2012-01-12
JP5250042B2 true JP5250042B2 (ja) 2013-07-31

Family

ID=40670195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010536058A Expired - Fee Related JP5250042B2 (ja) 2007-11-27 2008-11-14 ワイヤレス送受信機用インターフェース・プロトコルおよびapi

Country Status (7)

Country Link
US (3) US8060681B2 (ja)
EP (1) EP2215551B1 (ja)
JP (1) JP5250042B2 (ja)
CN (1) CN101874241A (ja)
CA (1) CA2702466C (ja)
IL (2) IL204935A (ja)
WO (1) WO2009070460A2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10202430B2 (en) * 2007-10-18 2019-02-12 Mayo Foundation For Medical Education And Research IgM-mediated receptor clustering and cell modulation
US8060681B2 (en) 2007-11-27 2011-11-15 Microsoft Corporation Interface protocol and API for a wireless transceiver
US8175138B2 (en) * 2008-02-15 2012-05-08 Kylink Communications Corp. Power efficient FHSS base-band hardware architecture
US8325687B2 (en) * 2008-05-09 2012-12-04 Qualcomm Incorporated Techniques for enhanced backhaul flow control
WO2011017121A1 (en) * 2009-07-27 2011-02-10 Acciona Solar Power, Inc. Scalable solar power plant
US9245419B2 (en) 2010-02-10 2016-01-26 Leap Forward Gaming, Inc. Lottery games on an electronic gaming machine
US8336697B2 (en) * 2010-02-10 2012-12-25 Leap Forward Gaming Device health monitoring for gaming machines
US8968086B2 (en) 2010-02-10 2015-03-03 Leap Forward Gaming, Inc. Video processing and signal routing apparatus for providing picture in a picture capabilities on an electronic gaming machine
US8814706B2 (en) 2010-02-10 2014-08-26 Leap Forward Gaming, Inc. Radio candle mount
US8814681B2 (en) 2010-02-10 2014-08-26 Leap Forward Gaming, Inc. Candle device for generating display interfaces on the main display of a gaming machine
US8460091B2 (en) * 2010-02-10 2013-06-11 Leap Forward Gaming Remote power reset feature on a gaming machine
US9240100B2 (en) 2010-02-10 2016-01-19 Leap Forward Gaming Virtual players card
US8282480B2 (en) 2010-02-10 2012-10-09 Leap Forward Gaming Candle device for providing transaction verification on a gaming machine
US9355051B2 (en) * 2010-09-10 2016-05-31 Cypress Semiconductor Corporation Apparatus, method, and manufacture for using a read preamble to optimize data capture
US9223726B2 (en) 2010-09-10 2015-12-29 Cypress Semiconductor Corporation Apparatus and method for programmable read preamble with training pattern
US8990605B2 (en) 2010-09-10 2015-03-24 Spansion Llc Apparatus and method for read preamble disable
US9454504B2 (en) * 2010-09-30 2016-09-27 Hewlett-Packard Development Company, L.P. Slave device bit sequence zero driver
EP2437426B1 (de) * 2010-10-04 2015-07-22 BALLUFF GmbH Verfahren zur seriellen Datenübertragung von einem Slave zu einem Master einer Messwert-Übertragungsanordnung und Vorrichtungen zur Durchführung der Verfahren
US9319348B2 (en) 2011-05-24 2016-04-19 Cisco Technology, Inc. Octal serial gigabit media-independent interface
US20120320918A1 (en) * 2011-06-14 2012-12-20 International Business Business Machines Bridge port between hardware lan and virtual switch
US9679869B2 (en) 2011-09-02 2017-06-13 Skyworks Solutions, Inc. Transmission line for high performance radio frequency applications
US8832342B2 (en) 2011-10-28 2014-09-09 Lg Cns Co., Ltd. Traffic communication module and method of forming the same
WO2013062975A1 (en) * 2011-10-24 2013-05-02 Skyworks Solutions, Inc. Dual mode power amplifier control interface
CN104410373B (zh) 2012-06-14 2016-03-09 西凯渥资讯处理科技公司 包含相关***、装置及方法的功率放大器模块
US9158728B2 (en) 2012-09-13 2015-10-13 General Electric Company Systems and methods for improved linking of master and slave devices
US9003091B2 (en) 2012-10-18 2015-04-07 Hewlett-Packard Development Company, L.P. Flow control for a Serial Peripheral Interface bus
CN103092806A (zh) * 2013-01-18 2013-05-08 青岛海信宽带多媒体技术有限公司 基于spi数据传输时序的数据传输方法和***
TWI463326B (zh) * 2013-02-07 2014-12-01 Flash memory of the smart selector
CN103747335B (zh) * 2013-11-29 2017-03-08 乐视致新电子科技(天津)有限公司 一种智能电视模式的切换方法及装置
CN116821032A (zh) * 2013-12-08 2023-09-29 跨端口网路解决公司 用于在主机计算机之间传输数据的***和方法
EP3026569A1 (en) * 2014-11-28 2016-06-01 Gemalto Sa A communication system with a frame based communication interface
EP3026570A1 (en) * 2014-11-28 2016-06-01 Gemalto Sa A communication system comprising a full-duplex interface with a mechanism to initiate a data exchange
US20170017584A1 (en) * 2015-07-15 2017-01-19 Microchip Technology Incorporated SPI Interface With Less-Than-8-Bit Bytes And Variable Packet Size
US10503686B2 (en) * 2015-12-09 2019-12-10 Microchip Technology Incorporated SPI interface with automatic slave select generation
CN105912275A (zh) * 2016-04-27 2016-08-31 华为技术有限公司 在非易失性存储***中建立连接的方法和装置
US10289596B2 (en) * 2016-06-07 2019-05-14 Macronix International Co., Ltd. Memory and method for operating a memory with interruptible command sequence
CN109313453A (zh) * 2016-06-14 2019-02-05 深圳市大疆创新科技有限公司 支持独立于协议的可移动物体应用开发
US10366028B2 (en) * 2016-09-29 2019-07-30 Ossia Inc. Systems and methods for device communications
US10613882B2 (en) * 2016-10-14 2020-04-07 Seagate Technology Llc Active drive API
KR20180043451A (ko) * 2016-10-19 2018-04-30 삼성전자주식회사 컴퓨팅 시스템 및 그것의 동작 방법
WO2018107281A1 (en) 2016-12-12 2018-06-21 Crossport Network Solutions Inc. Ad-hoc sensing switched data circuit for connecting network hosts and peripherals
US11256641B2 (en) 2017-01-27 2022-02-22 National Instruments Corporation Asynchronous start for timed functions
US20180276175A1 (en) * 2017-03-22 2018-09-27 National Instruments Corporation Direct Network Access by a Memory Mapped Peripheral Device for Scheduled Data Transfer on the Network
US20180300264A1 (en) * 2017-04-13 2018-10-18 Intel Corporation Function states of a device coupled to a computer bus
US11573919B2 (en) * 2017-12-14 2023-02-07 Texas Instruments Incorporated Multi-slave serial communication
US10904477B2 (en) 2018-01-19 2021-01-26 Caavo Inc Device identification using media device keys
US10733121B2 (en) * 2018-05-10 2020-08-04 Qualcomm Incorporated Latency optimized I3C virtual GPIO with configurable operating mode and device skip
US10475492B1 (en) 2018-07-27 2019-11-12 Macronix International Co., Ltd. Circuit and method for read latency control
JP6781226B2 (ja) * 2018-09-25 2020-11-04 ファナック株式会社 エンコーダ及び制御システム
CN110325974B (zh) 2018-11-27 2023-09-22 深圳市汇顶科技股份有限公司 单通信接口及具有内部/外部寻址模式的方法
EP3660692B1 (en) * 2018-11-27 2021-01-27 Shenzhen Goodix Technology Co., Ltd. Single communication interface and a method with internal/external addressing mode
US10884972B2 (en) * 2019-05-08 2021-01-05 Analog Devices, Inc. Communication systems with serial peripheral interface functionality
CN110955625A (zh) * 2019-11-22 2020-04-03 上海麦腾物联网技术有限公司 一种基于spi的全双工实时通信的方法及装置
CN111625487B (zh) * 2020-04-17 2024-05-31 惠州市德赛西威汽车电子股份有限公司 一种spi通信***及其通信方法
US11971842B2 (en) 2020-08-27 2024-04-30 Sony Semiconductor Solutions Corporation Communication device, communication system, and communication method for transmitting a serial signal group conforming to a serial peripheral interface
WO2022051607A1 (en) * 2020-09-04 2022-03-10 Nemedio Inc. Systems and methods for dynamic configuration of external devices
CN112269338A (zh) * 2020-10-23 2021-01-26 阳光电源股份有限公司 基于gpio的数字控制器通信方法及***
CN112100013B (zh) * 2020-11-18 2021-09-21 北京智芯微电子科技有限公司 安全芯片spi接口测试方法、装置及***
US11556492B1 (en) * 2021-06-30 2023-01-17 Texas Instruments Incorporated Synchronous serial interface allowing communication with multiple peripheral devices using a single chip select

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1249886A (en) * 1986-05-02 1989-02-07 Claude J. Champagne Method of duplex data transmission using a send-and- wait protocol
US4739324A (en) 1986-05-22 1988-04-19 Chrysler Motors Corporation Method for serial peripheral interface (SPI) in a serial data bus
US5495482A (en) 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
US5023778A (en) 1990-03-23 1991-06-11 General Motors Corporation Interprocessor communication method
US5696766A (en) * 1995-06-02 1997-12-09 Dsc Communications Corporation Apparatus and method of synchronizing a transmitter in a subscriber terminal of a wireless telecommunications system
US6022274A (en) * 1995-11-22 2000-02-08 Nintendo Co., Ltd. Video game system using memory module
US5928345A (en) 1996-09-30 1999-07-27 Rosemont Inc. Field instrument with data bus communications protocol
US5758073A (en) * 1996-12-02 1998-05-26 Tritech Microelectronics International, Ltd. Serial interface between DSP and analog front-end device
US6370158B1 (en) * 1997-11-14 2002-04-09 Wireless Facilities, Inc. Wireless T/E Transceiver frame signaling subcontroller
US6594284B1 (en) * 1998-09-16 2003-07-15 Cirrus Logic, Inc. Network synchronization
US7103511B2 (en) 1998-10-14 2006-09-05 Statsignal Ipc, Llc Wireless communication networks for providing remote monitoring of devices
US6496487B2 (en) * 1998-11-05 2002-12-17 Visteon Global Technologies, Inc. Efficient full duplex simultaneous message transfer
US6366768B1 (en) 1998-11-09 2002-04-02 Motorola, Inc. Circuit and method of frequency synthesizer control with a serial peripheral interface
CA2280571A1 (en) * 1998-11-30 2000-05-30 Daimlerchrysler Corporation J1850 application specific integrated circuit (asic) and messaging technique
US6468160B2 (en) * 1999-04-08 2002-10-22 Nintendo Of America, Inc. Security system for video game system with hard disk drive and internet access capability
US6496498B1 (en) * 1999-11-19 2002-12-17 Siemens Information & Communication Mobile Llc Method and system for avoiding periodic bursts of interference in wireless communication between a mobile unit and a base unit
US6690719B1 (en) 2000-02-14 2004-02-10 Itran Communications Ltd. Host to modem interface
US6511378B1 (en) * 2000-05-05 2003-01-28 Intel Corporation Method of identifying game controllers in multi-player game
WO2002014784A1 (en) * 2000-08-14 2002-02-21 Snap-On Technologies, Inc. Self-calibrating 3d machine measuring system useful in motor vehicle wheel alignment
US7376769B1 (en) 2000-09-14 2008-05-20 Intel Corporation Wireless computing device having an application and wireless subsystem and method therefore
JP3467262B2 (ja) * 2000-11-10 2003-11-17 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置及び受信装置
US7230931B2 (en) * 2001-01-19 2007-06-12 Raze Technologies, Inc. Wireless access system using selectively adaptable beam forming in TDD frames and method of operation
US6603394B2 (en) * 2000-12-08 2003-08-05 Spx Corporation Multi-protocol wireless communication module
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
EP1237090A1 (en) * 2001-02-28 2002-09-04 Alcatel Serial peripheral interface master device, a serial peripheral interface slave device and a serial peripheral interface
US6731832B2 (en) * 2001-02-28 2004-05-04 Lambda Opticalsystems Corporation Detection of module insertion/removal in a modular optical network, and methods and apparatus therefor
US7120427B1 (en) 2001-03-19 2006-10-10 Cisco Systems Wireless Networking (Australia) Pty Limited CMOS wireless transceiver with programmable characteristics
US6505095B1 (en) 2001-06-19 2003-01-07 Usa Technologies, Inc. System for providing remote audit, cashless payment, and interactive transaction capabilities in a vending machine
US6622925B2 (en) 2001-10-05 2003-09-23 Enernet Corporation Apparatus and method for wireless control
EP1520270A4 (en) * 2002-07-10 2008-04-09 Gibson Guitar Corp UNIVERSAL DIGITAL COMMUNICATION AND CONTROL SYSTEM FOR CONSUMER ELECTRONIC DEVICES
US7257644B2 (en) * 2002-09-19 2007-08-14 Microsoft Corporation Systems and methods for providing presence tracking in a distributed computing system
US20040166823A1 (en) * 2003-02-21 2004-08-26 Magis Networks, Inc. Control interface scheme for wireless communication chipsets
KR100614638B1 (ko) 2003-02-26 2006-08-23 삼성전자주식회사 고속의 무선 통신에 적합한 하이브리드형 직렬 주변 장치 인터페이스 회로 및 그 방법
US7558903B2 (en) 2003-04-11 2009-07-07 The Boeing Company Interfacing a legacy data bus with a wideband wireless data resource utilizing an embedded bus controller
US7408878B2 (en) 2003-06-10 2008-08-05 Cisco Technology, Inc. System packet interface
US7120854B2 (en) * 2003-08-18 2006-10-10 Texas Instruments Incorporated Wireless access modem having downstream channel resynchronization method
KR100549614B1 (ko) 2003-11-05 2006-02-03 기륭전자 주식회사 시분할 프로토콜을 이용한 무선원격제어기 및 이를포함하는위성라디오
JP4834294B2 (ja) * 2004-01-07 2011-12-14 日立オートモティブシステムズ株式会社 データ通信装置及びそれを用いたコントローラ
US7552042B1 (en) * 2004-01-30 2009-06-23 Xilinx, Inc. Method for message processing on a programmable logic device
US7308516B2 (en) 2004-04-26 2007-12-11 Atmel Corporation Bi-directional serial interface for communication control
US20060084504A1 (en) * 2004-04-30 2006-04-20 Chan Andy K Wireless communication systems
US7413513B2 (en) 2004-09-10 2008-08-19 Igt Apparatus and methods for wireless gaming communications
US7747017B2 (en) * 2004-12-01 2010-06-29 Motorola, Inc. Method and apparatus for end-to-end clear transport protocol
KR20060064830A (ko) 2004-12-09 2006-06-14 엘지전자 주식회사 시리얼 인터페이스를 이용한 두 장치간 통신 제어 시스템및 방법
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
CN100399849C (zh) * 2005-03-31 2008-07-02 联想(北京)有限公司 多模通信设备的多模共存方法
US7323991B1 (en) * 2005-05-12 2008-01-29 Exavera Technologies Incorporated System and method for locating and communicating with personnel and equipment in a facility
US7751355B2 (en) * 2005-10-17 2010-07-06 Creative Technology Ltd Beacon frame
US20070086601A1 (en) 2005-10-17 2007-04-19 Mitchler Dennis W Flexible wireless air interface system
EP2466411B1 (en) 2005-12-02 2018-10-17 iRobot Corporation Robot system
US7502992B2 (en) * 2006-03-31 2009-03-10 Emc Corporation Method and apparatus for detecting presence of errors in data transmitted between components in a data storage system using an I2C protocol
US7689213B2 (en) 2006-04-14 2010-03-30 Litepoint Corp. Method for testing embedded wireless transceiver with minimal interaction between wireless transceiver and host processor during testing
US7640353B2 (en) * 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
KR100798926B1 (ko) * 2006-12-04 2008-01-29 한국전자통신연구원 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법
US7761633B2 (en) * 2007-01-29 2010-07-20 Microsemi Corp. - Analog Mixed Signal Group Ltd. Addressable serial peripheral interface
US8060681B2 (en) 2007-11-27 2011-11-15 Microsoft Corporation Interface protocol and API for a wireless transceiver
US9327193B2 (en) * 2008-06-27 2016-05-03 Microsoft Technology Licensing, Llc Dynamic selection of voice quality over a wireless system

Also Published As

Publication number Publication date
IL204935A (en) 2014-06-30
IL229029A (en) 2014-12-31
WO2009070460A2 (en) 2009-06-04
EP2215551B1 (en) 2014-06-11
IL204935A0 (en) 2010-11-30
CA2702466C (en) 2017-06-06
EP2215551A2 (en) 2010-08-11
US8230150B2 (en) 2012-07-24
US20120017223A1 (en) 2012-01-19
CA2702466A1 (en) 2009-06-04
JP2011505755A (ja) 2011-02-24
US8060681B2 (en) 2011-11-15
CN101874241A (zh) 2010-10-27
IL229029A0 (en) 2013-12-31
US20090138638A1 (en) 2009-05-28
WO2009070460A3 (en) 2009-08-13
US20090137318A1 (en) 2009-05-28
EP2215551A4 (en) 2012-12-05

Similar Documents

Publication Publication Date Title
JP5250042B2 (ja) ワイヤレス送受信機用インターフェース・プロトコルおよびapi
US11213743B2 (en) Method, system and electronic device for achieving remote control of computer game by game controller
JP6961686B2 (ja) トリガ動作を用いたgpuリモート通信
US10467154B2 (en) Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
US7802022B2 (en) Generic USB drivers
KR101702698B1 (ko) 적응형 프로세스 중요도
AU2016366999A1 (en) Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
US20090248934A1 (en) Interrupt dispatching method in multi-core environment and multi-core processor
TW201923605A (zh) 多分支匯流排中之裝置,事件及訊息參數相關性
TW201902142A (zh) 混合vgpio狀態交換中的輸入/輸出方向解碼
JP2008539484A (ja) ユニバーサル・シリアル・バス機能のデリゲーション
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN101937417B (zh) Usb中断端点共享
EP2724227A2 (en) Programming interface for data communications
WO2019217077A1 (en) Latency optimized i3c virtual gpio with configurable operating mode and device skip
JP5911943B2 (ja) データの少なくとも一部が処理に利用可能であることの少なくとも1つのインジケーションの少なくとも部分的な提供
WO2024000510A1 (zh) 一种处理请求的方法、装置及***
US20240064202A1 (en) Methods and apparatus to synchronize touch events
KR101352140B1 (ko) 데이터 통신 시스템
Zhou A lightweight DSP framework for OMAP3530-driven embedded devices
JP2008250496A (ja) エンジン・プロセッサ連携システム及び連携方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130412

R150 Certificate of patent or registration of utility model

Ref document number: 5250042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees