電子コンポーネントのサイズが減少し、性能に対する期待が増大するにつれて、以前は計装化されていなかったか、またはそれほど計装化されていなかったデバイスに、より多くのコンポーネントが含められている。このような増大する計装化に向けての努力は、従来は、コンポーネント間で信号をやりとりするために使用される通信インフラストラクチャによって制限されてきた。例えば、自動車(ならびにロボットシステム等の、他の閉鎖系システムおよび/またはモバイルシステム)におけるマイクロホン、カメラ等のセンサの増殖は、コンポーネント間の過剰な量の配線をもたらした。このような過剰な配線は、システムの複雑性および重量の増大、ならびに性能および信頼性の減少を伴っている。
本明細書では、2線式バス(例えば、対撚り線)を介して低レイテンシの時分割多重化(TDM)通信を提供する通信システムが説明される。これらのシステムでは、双方向性同期データ(例えば、デジタルオーディオ)、クロック、および同期信号が2線式バスによって提供され得、バス上のノード間のポイントツーポイント直接接続をサポートし、異なる場所にある複数のデイジーチェーンされたノードがTDMチャネルコンテンツに寄与し、またはそれを消費することを可能にする。これらの通信システムは、同じ2線式バスを介して、下流トラフィック(例えば、マスタノードから最後のスレーブノードへ)、上流トラフィック(例えば、スレーブノードからマスタノードへ)、および配電を可能にする。
以下の詳細な説明において、本明細書の一部を形成する添付図面を参照する。添付図面において、同様の数字は全体にわたって同様の部分を指し、実施可能な実施形態が例証として示されている。他の実施形態が利用され得、本開示の範囲から逸脱することなしに構造的または論理的変更がなされ得ることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で受け取られるべきではない。
様々な動作は、請求対象の主題を理解する上で最も役立つ様式で、複数の別々の動作として順番に説明されることがある。しかしながら、説明の順序は、これらの動作が必然的に順序に依存することを暗示するものとして解釈されるべきではない。特に、これらの動作は、提示の順序で実行されなくてもよい。説明する動作は、説明する実施形態とは異なる順序で実行され得る。様々な更なる動作が実行されてもよく、かつ/または説明する動作は、更なる実施形態では省略されてもよい。
本開示において、「Aおよび/またはB」という文言は、(A)、(B)、または(AおよびB)を意味する。本開示において、「A、B、および/またはC」という文言は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)、または(A、B、およびC)を意味する。
本明細書では様々なコンポーネントが単数形で(例えば、「プロセッサ」、「周辺デバイス」等)言及または例示されることがあるが、これは、単純に論述の容易性のためであり、単数形で言及されるいかなる要素も、本明細書の教示による複数のそのような要素を含み得る。
説明では、「一実施形態では(in an embodiment)」または「実施形態では(in embodiments)」という文言を使用するが、これらは各々、1つまたは2つ以上の同じまたは異なる実施形態を指すことがある。更に、本開示の実施形態に関して使用される「備える(comprising)」、「含む(including)」、「有する(having)」等の用語は、同義である。本明細書で使用する場合、「回路」という用語は、1つまたは2つ以上のソフトウェアプログラムもしくはファームウェアプログラムを実行する特定用途向け集積回路(ASIC)、電子回路、および光回路、プロセッサ(共有、専用、もしくは群)、ならびに/もしくはメモリ(共有、専用、もしくは群)、論理回路の組み合わせ、ならびに/または説明する機能を提供する他の好適なハードウェアを指し得、それらの一部であり得、またはそれらを含み得る。マスタノードは、本明細書においてマスタ「デバイス」とも呼ばれ得る。同様に、スレーブノードは、本明細書においてスレーブ「デバイス」とも呼ばれ得る。
本明細書に記載のいずれの実施形態も、本出願が優先権を主張する任意の先行特許出願に開示されている任意の好適な関連実施形態に従って実行され得る。特に、任意の優先権出願に開示されている車載オーディオバス(A2B)システムの任意の実施形態が、本明細書に記載の実施形態との任意の組み合わせにおいて実装され得る。例えば、2013年7月12日に出願された米国仮出願第61/845,542号で論じられているように、動力切替および診断が本明細書に記載の2線式通信システムに含まれてもよい。別の実施例では、2013年7月8日に出願された米国仮出願第61/843,902号で論じられているように、復号器が、本明細書に記載の2線式通信システムに含まれてもよい。別の実施例では、2013年7月8日に出願された米国仮出願第61/843,896号で論じられているように、デジタル位相検出器が、本明細書に記載の2線式通信システムに含まれてもよい。別の実施例では、本明細書に記載の2線式通信システムは、2013年7月8日に出願された米国仮出願第61/843,891号で論じられているステートマシン機能を含んでもよい。
図1は、様々な実施形態による、例証的な半二重2線式通信システム100のブロック図である。システム100は、ホスト110、マスタノード102、および少なくとも1つのスレーブノード104を含む。図1では、3つのスレーブノード(0、1、および2)が図示されている。図1における3つのスレーブノード104の描写は、単純に例証的なものであり、システム100は、所望により、1つまたは2つ以上のスレーブノード104を含んでもよい。
マスタノード102は、2線式バス106を介してスレーブノード104と通信し得る。バス106は、バス106沿いのノードをデイジーチェーン方式で接続する、バス106沿いの隣接するノード間の異なる2線式バスリンクを含んでもよい。例えば、図1に図示されるように、バス106は、マスタノード102をスレーブノード0に連結するリンク、スレーブノード0をスレーブノード1に連結するリンク、およびスレーブノード1をスレーブノード2に連結するリンクを含んでもよい。バス106のリンクは各々、単一の対撚り線(例えば、非シールド対撚り線)から形成されてもよい。
ホスト110は、マスタノード102をプログラムし、バス106に沿って送信される様々なペイロードの発信者および受信者として機能するプロセッサを含んでもよい。特に、ホスト110は、バス106に沿って生起するアイ・スクエアド・シー・サウンド(I2S)通信のマスタであってもよい。ホスト110は、I2S/時分割多重化(TDM)バスおよび/またはアイ・スクエアド・シー(I2C)バスを介してマスタノード102と通信してもよい。いくつかの実施形態では、マスタノード102は、ホスト110のハウジング内に位置付けられた送受信器(例えば、図2に関連して以下で論じるノード送受信器120)であってもよい。マスタノード102は、構成およびリードバックのためにI2Cバスを介してホスト110によってプログラム可能であってもよく、スレーブノード104の全てのクロック、同期、およびフレームを生成するように構成されてもよい。いくつかの実施形態では、マスタノード102内のホスト110との間のI2C制御バスの拡張部分は、バス106を介して送信されるデータストリームに埋め込まれてもよく、ホスト110に1つまたは2つ以上のスレーブノード104のレジスタおよびステータス情報への直接アクセスを許可し、I2C対I2C遠隔通信を可能にしてホスト110が周辺装置108を制御することを可能にする。
マスタノード102は、「下流」信号(例えば、バス106に沿ってマスタノード102から離れたところへ送信されるデータ信号、電力信号等)を生成し、「上流」信号(例えば、バス106に沿ってマスタノード102に向けて送信される)を受信し得る。マスタノード102は、バス106を介して同期データ送信のためのクロック信号を提供してもよい。本明細書で使用する場合、「同期データ」は、バス106沿いの同じノードとの間を往復する2つの相続く送信の間に一定の時間間隔がある、連続的にストリーム配信されるデータ(例えば、オーディオ信号)を含み得る。いくつかの実施形態では、マスタノード102によって提供されるクロック信号は、ホスト110によってマスタノード102に提供されるI2S入力から得られてもよい。スレーブノード104は、バス106上で下流に、またはバス106上で上流に送信されるデータフレームの可能な宛先を表すアドレス可能なネットワーク接続点であってもよい。スレーブノード104は、下流データフレームまたは上流データフレームの可能な発信元も表し得る。システム100は、制御情報および他のデータがバス106を介してあるノードから次のノードに両方向に送信されることを可能にしてもよい。1つまたは2つ以上のスレーブノード104は、バス106を介して送信される信号によって電力供給されてもよい。
特に、マスタノード102とスレーブノード104との各々は、正極上流端末(「AP」として表示される)、負極上流端末(「AN」として表示される)、正極下流端末(「BP」として表示される)、および負極下流端末(「BN」として表示される)を含んでもよい。ノードの正極下流端末および負極下流端末はそれぞれ、隣接する下流ノードの正極上流端末および負極上流端末に連結されてもよい。図1に示されるように、マスタノード102は、正極上流端末および負極上流端末を含んでもよいが、これらの端末は、使用されなくてもよい。他の実施形態では、マスタノード102は、正極上流端末および負極上流端末を含まなくてもよい。バス106沿いの最後のスレーブノード104(図1のスレーブノード2)は、正極下流端末および負極下流端末を含んでも良いが、これらの端末は、使用されなくてもよい。他の実施形態では、バス沿いの最後のスレーブノード104は、正極下流端末および負極下流端末を含まなくてもよい。
以下で詳細に論じるように、マスタノード102は、同期制御フレームを、任意追加的に1つまたは2つ以上のスレーブノード104向けのデータと共に、周期的に下流に送出してもよい。例えば、マスタノード102は、同期制御フレームを1024ビット(スーパーフレームを表す)ごとに48kHzの周波数で送信してもよく、バス106上の実効ビットレートは49.152Mbpsになる。例えば44.1kHzを含む他のレートがサポートされてもよい。同期制御フレームは、スレーブノード104が各スーパーフレームの始まりを識別することを可能にしてもよく、また物理層の符号化/信号伝送と組み合わせて、各スレーブノード104がその内部動作クロックをバス106から得ることを可能にしてもよい。同期制御フレームは、同期の開始を信号伝送するためのプリアンブル、ならびに様々なアドレス指定モード(例えば、通常、ブロードキャスト、発見)、構成情報(例えば、スレーブノード104のレジスタへの書き込み)、I2C情報の伝達、スレーブノード104における特定の汎用入出力(GPIO)ピンの遠隔制御、および他のサービスを可能にする制御フィールドを含んでもよい。プリアンブルおよびペイロードデータに続く同期制御フレームの一部は、同期制御フレーム内の情報が新しいプリアンブルと間違われる可能性を低減し、関連する電磁放射のスペクトルを平坦化するために、スクランブル化されてもよい。
同期制御フレームは、マスタノード102によって最後のスレーブノード104として構成されたか、またはそれ自身が最後のスレーブノード104として自己識別した最後のスレーブノード104(すなわち、図1のスレーブノード2)に到達するまで、(任意追加的に、マスタノード102から到来し得るが、追加的もしくは代替的に1つまたは2つ以上の上流スレーブノード104もしくはスレーブノード104自体から到来し得る他のデータと共に)スレーブノード104の間を通されてもよい。同期制御フレームを受信すると、最後のスレーブノード104は、同期応答フレームと、それに続いて最後のスレーブノード104が送信することを許可されている任意のデータ(例えば、指定されたタイムスロットにおける24ビットのオーディオサンプル)を送信してもよい。同期応答フレームは、(任意追加的に下流スレーブノード104からのデータと共に)スレーブノード104の間を上流に通されてもよく、各スレーブノード104は、同期応答フレームに基づいて、スレーブノード104が送信することを許可されるタイムスロット(もしあれば)を識別することができてもよい。
いくつかの実施形態では、システム100内の1つまたは2つ以上のスレーブノード104が、周辺デバイス108に連結され、それと通信してもよい。例えば、以下で論じるように、スレーブノード104は、I2S、パルス密度変調(PDM)、TDM、および/またはI2Cプロトコルを使用して関連付けられた周辺デバイス108からデータを読み出し、かつ/またはそれにデータを書き込むように構成されてもよい。本明細書では「周辺デバイス108」は単数形で言及されることがあるものの、これは、単純に論述の容易性のためであり、単一のスレーブノード104は、周辺デバイスに連結されなくてもよく、または1つもしくは2つ以上の周辺デバイスに連結されてもよい。周辺デバイス108に含まれ得る周辺デバイスの例としては、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、アナログ−デジタル変換器(ADC)、デジタル−アナログ変換器(DAC)、コーデック、マイクロホン、マイクロホンアレイ、スピーカ、オーディオ増幅器、プロトコルアナライザ、加速度計もしくは他の運動センサ、環境条件センサ(例えば、温度センサ、湿度センサ、および/もしくはガスセンサ)、有線通信送受信器もしくは無線通信送受信器、表示デバイス(例えば、タッチスクリーン表示器)、ユーザインターフェースコンポーネント(例えば、ボタン、ダイアル、もしくは他の調整つまみ)、カメラ(例えば、ビデオカメラ)、メモリデバイス、またはデータを送信および/もしくは受信する任意の他の好適なデバイスが挙げられる。本明細書では、異なる周辺デバイス構成のいくつかの例を詳細に論じる。
いくつかの実施形態では、周辺デバイス108は、アイ・スクエアド・シー・サウンド(I2S)通信のために構成された任意のデバイスを含んでもよい。周辺デバイス108は、I2Sプロトコルを介して関連付けられたスレーブノード104と通信してもよい。いくつかの実施形態では、周辺デバイス108は、アイ・スクエアド・シー(I2C)通信のために構成された任意のデバイスを含んでもよい。周辺デバイス108は、I2Cプロトコルを介して関連付けられたスレーブノード104と通信してもよい。いくつかの実施形態では、スレーブノード104は、いずれの周辺デバイス108にも連結されなくてもよい。
スレーブノード104およびその関連付けられた周辺デバイス108は、別々のハウジング内に収容され、有線通信接続もしくは無線通信接続を通じて連結されてもよく、または共通のハウジング内に収容されてもよい。例えば、周辺デバイス108として接続されるスピーカは、関連付けられたスレーブノード104のためのハードウェアが他のスピーカコンポーネントを含むハウジング内に収容されるように、関連付けられたスレーブノード104(例えば、図2に関連して以下で論じるノード送受信器120)のためのハードウェアと共にパッケージ化されてもよい。同じことは、任意の種類の周辺デバイス108にも当てはまり得る。
上記で論じたように、ホスト110は、多チャネルのI2S通信プロトコルおよびI2C通信プロトコルを使用してマスタノード102と通信し、それを制御してもよい。特に、ホスト110は、I2Sを介してマスタノード102内のフレームバッファ(図示せず)にデータを送信してもよく、マスタノード102は、フレームバッファからデータを読み出し、データをバス106に沿って送信してもよい。類似的に、マスタノード102は、バス106を介して受信したデータをフレームバッファ内に記憶してもよく、次いで、I2Sを介してホスト110にデータを送信してもよい。
各スレーブノード104は、マスタノード102からの通信によって構成され得る内部制御レジスタを有してもよい。いくつかのこのようなレジスタを以下で詳細に論じる。各スレーブノード104は、下流データを受信してもよく、データを更に下流に再送信してもよい。各スレーブノード104は、上流データを受信および/もしくは生成し、かつ/もしくはデータを上流に再送信し、かつ/またはデータをおよび上流トランザクションに追加してもよい。
バス106沿いの通信は、周期的なスーパーフレーム内で発生してもよい。各スーパーフレームは、下流同期制御フレームと共に開始し、下流送信の期間(「下流部分」とも呼ばれる)、上流送信の期間(「上流部分」とも呼ばれる)、および無送信の期間(バス106は駆動されない)に分割され、別の下流同期制御フレームの送信の直前に終了してもよい。マスタノード102は、1つまたは2つ以上のスレーブノード104に送信するいくつかの下流部分および1つまたは2つ以上のスレーブノード104から受信するいくつかの上流部分と共に、(ホスト110によって)プログラムされてもよい。各スレーブノード104は、バス106の下方へ再送信するいくつかの下流部分、消費するいくつかの下流部分、バス106の上方へ再送信するいくつかの上流部分、およびスレーブノード104がスレーブノード104から受信したデータを関連付けられた周辺デバイス108から送信し得るいくつかの上流部分と共に、(マスタノード102によって)プログラムされてもよい。バス106沿いの通信は、図2〜12に関連して以下で更に詳細に論じる。
マスタノード102およびスレーブノード104の各々は、システム100のコンポーネント間の通信を管理する送受信器を含んでもよい。図2は、様々な実施形態による、図1のシステム100のノード(例えば、マスタノード102またはスレーブノード104)に含まれ得るノード送受信器120のブロック図である。いくつかの実施形態では、ノード送受信器120は、システム100のノードの各々に含まれてもよく、ノード送受信器120がマスタ(例えば、MSTRピンがハイのとき)として機能すべきか、またはスレーブ(例えば、MSTRピンがローのとき)として機能すべきかを示す制御信号がマスタ(MSTR)ピンを介してノード送受信器120に提供されてもよい。
ノード送受信器120は、上流送受信器122および下流送受信器124を含んでもよい。上流送受信器122は、図1に関連して上記で論じた正極上流端末および負極上流端末に連結されてもよく、下流送受信器124は、図1に関連して上記で論じた正極下流端末および負極下流端末に連結されてもよい。いくつかの実施形態では、上流送受信器122および下流送受信器124は各々、差動信号(DS)送受信器であってもよい。いくつかの実施形態では、上流送受信器122は、低電圧DS(LVDS)送受信器であってもよく、下流送受信器124は、LVDS送受信器であってもよい。システム100内の各ノードは、バス106に交流結合されてもよく、データ信号は、所定の形態のDS(例えば、LVDSもしくはマルチポイントLVDS(MLVDS)または類似の信号伝送)を使用して、バス106を介してタイミング情報を提供するための適切な符号化(例えば、差動マンチェスター符号化、バイフェーズマーク符号化、マンチェスター符号化、ラン長制限のある非ゼロ復帰反転(NRZI)符号化、または任意の他の好適な符号化)と共に、バス106に沿って(例えば、上流送受信器122および/または下流送受信器124を介して)伝達されてもよい。いくつかの実施形態では、バス106は、同軸ケーブルによって提供されてもよく、上流信号および下流信号は、同軸ケーブルを駆動するシングルエンド信号であってもよい。
上流送受信器122および下流送受信器124は、バスプロトコル回路126と通信してもよく、バスプロトコル回路126は、数ある他のコンポーネントの中でも、位相同期ループ(PLL)128および電圧レギュレータ回路130と通信してもよい。ノード送受信器120が電源投入されると、電圧レギュレータ回路130は、PLL128によって電源投入リセットとして使用される「電源良好」信号を出してもよい。
上述のように、システム100内の1つまたは2つ以上のスレーブノード104は、バス106を介して送信される電力をデータと同時に受信してもよい。配電のため(スレーブノード104のうちいくつかはそれらに提供されるローカル電力を専ら有するように構成されてもよいため、これは任意追加的である)、マスタノード102は、マスタノード102とスレーブノード0との間のバスリンクに直流バイアスをかけてもよい(例えば、下流端末のうちの1つを電圧レギュレータによって提供される電圧源に、他の下流端末をグランドに、接続することによって)。直流バイアスは、5V、8V、自動車バッテリーの電圧、またはより高い電圧等の所定の電圧であってもよい。相続く各スレーブノード104は、その上流バスリンクを選択的に利用して電力を回収してもよい(例えば、電圧レギュレータ回路130を使用して)。この電力を使用して、スレーブノード104自体(および、任意追加的に、スレーブノード104に連結された1つまたは2つ以上の周辺デバイス108)に動力供給してもよい。スレーブノード104はまた、上流バスリンクまたはローカル電源のいずれかから回収された電力によって、次に続くスレーブノード104のために、下流バスリンクに選択的にバイアスをかけてもよい。例えば、スレーブノード0は、上流バスリンク106に対する直流バイアスを使用して、スレーブノード0自体および/または1つもしくは2つ以上の関連付けられた周辺デバイス108のための電力を回収してもよく、かつ/またはスレーブノード0は、その上流バスリンク106から電力を回収して、その下流バスリンク106にバイアスをかけてもよい。
よって、いくつかの実施形態では、システム100内の各ノードは、下流バスリンクを介して次の下流ノードに電力を提供してもよい。ノードへの電力供給は、シーケンス化された様式で実行されてもよい。例えば、バス106を介してスレーブノード0を発見および構成した後、マスタノード102は、スレーブノード1に電力を提供するため、スレーブノード0に、その下流バスリンク106に電力を提供するように命令してもよい。スレーブノード1が発見および構成された後、マスタノード102は、スレーブノード2に(および同様にバス106に連結された更なるスレーブノード104に電力を提供するため、スレーブノード1に、その下流バスリンク106に電力を提供するように命令してもよい。いくつかの実施形態では、1つまたは2つ以上のスレーブノード104は、その上流バスリンクから電力供給される代わりに、またはそれに追加して、ローカルで電力供給されてもよい。いくつかのこのような実施形態では、所与のスレーブノード104のローカル電源を使用して、1つまたは2つ以上の下流スレーブノードに電力を提供してもよい。
いくつかの実施形態では、上流フィルタリング回路132が、上流送受信器122と電圧レギュレータ回路130との間に配されてもよく、下流フィルタリング回路131が、下流送受信器124と電圧レギュレータ回路130との間に配されてもよい。バス106の各リンクは交流(信号)コンポーネントおよび直流(電力)コンポーネントを有していてもよいため、上流フィルタリング回路132および下流フィルタリング回路131は、交流コンポーネントおよび直流コンポーネントを分離し、交流コンポーネントを上流送受信器122および下流送受信器124に提供し、直流コンポーネントを電圧レギュレータ130に提供してもよい。上流送受信器122および下流送受信器124のライン側の交流結合は、送受信器122および124をライン上の直流コンポーネントから実質的に隔離し、高速双方向通信を可能にする。上記で論じたように、直流コンポーネントは、電力供給のために利用されてもよく、上流フィルタリング回路132および下流フィルタリング回路131は、電圧レギュレータ回路130に提供される交流コンポーネントを低減するために、例えばフェライト、コモンモードチョーク、またはインダクタを含んでもよい。いくつかの実施形態では、上流フィルタリング回路132は、上流送受信器122に含まれてもよく、かつ/または下流フィルタリング回路131は、下流送受信器124に含まれてもよい。他の実施形態では、フィルタリング回路は、送受信器122および124の外部にあってもよい。上流フィルタリング回路132および下流フィルタリング回路131からVSSN端末を通じてリターン電流が提供されてもよく、VSSN端末は、ノード送受信器120を通じてVSS(例えば、グランド)に接続してもよい。上流フィルタリング回路132および下流フィルタリング回路131は、電流接続およびリターン電流接続のための直流電圧端末を含んでもよい。
ノード送受信器120は、ノード送受信器120と外部デバイス155との間のI2S、TDM、およびPDM通信のための送受信器127を含んでもよい。本明細書では「外部デバイス155」は単数形で言及されることがあるものの、これは、単純に例証の容易性のためであり、複数の外部デバイスが、I2S/TDM/PDM送受信器127を介してノード送受信器120と通信してもよい。当技術分野において公知のように、I2Sプロトコルは、(例えば、プリント回路基板上のオーディオチップ間で)パルス符号変調(PCM)情報を運ぶためのものである。本明細書で使用する場合、「I2S/TDM」は、TDMを使用してI2Sステレオ(2チャネル)コンテンツを複数チャネルへ拡張することを指し得る。当技術分野において公知のように、PDMは、シグマデルタ変換器で使用されてもよく、特にPDMフォーマットは、オーバーサンプリングされたデシメーション前の1ビットのシグマデルタADC信号を表し得る。PDMフォーマットは、デジタルマイクロホンの出力フォーマットとしてしばしば使用される。I2S/TDM/PDM送受信器127は、バスプロトコル回路126および外部デバイス155との通信のためのピンと連通していてもよい。BCLK、SYNC、DTX[1:0]、およびDRX[1:0]の6つのピンが、図2に図示されている。BCLKピンは、I2Sビットクロックのために使用されてもよく、SYNCピンは、I2Sフレーム同期信号のために使用されてもよく、DTX[1:0]ピンおよびDRX[1:0]ピンはそれぞれ、データチャネルを送信および受信するために使用される。2つの送信ピン(DTX[1:0])および2つの受信ピン(DRX[1:0])が図2に図示されているものの、任意の所望の数の受信ピンおよび/または送信ピンが使用されてもよい。
ノード送受信器120がマスタノード102に含まれる場合、外部デバイス155は、ホスト110を含んでもよく、I2S/TDM/PDM送受信器127は、ホスト110のI2Sインターフェースクロックと同期してホスト110からデータを受信し、データをホスト110に送出できるI2Sスレーブ(BCLKおよびSYNCに関して)を提供してもよい。特に、I2Sフレーム同期信号は、SYNCピンにおいてホスト110からの入力として受信されてもよく、PLL128は、その信号を使用してクロックを生成してもよい。ノード送受信器120がスレーブノード104に含まれる場合、外部デバイス155は、1つまたは2つ以上の周辺デバイス108を含んでもよく、I2S/TDM/PDM送受信器127は、周辺デバイス108とのI2S通信を制御できるI2Sクロックマスタ(BCLKおよびSYNCに関して)を提供してもよい。特に、I2S/TDM/PDM送受信器127は、I2Sフレーム同期信号をSYNCピンにおいて出力として提供してもよい。ノード送受信器120内のレジスタは、どのI2S/TDMチャネルがデータスロットとしてバス106を介して送信されているか、およびいくつのI2S/TDMチャネルがデータスロットとしてバス106を介して送信されているかを決定し得る。ノード送受信器120内のTDMモード(TDMMODE)レジスタは、いくつのTDMチャネルが連続するSYNCパルスの間に収まるかの値をTDM送信ピンまたはTDM受信ピンに記憶させてもよい。チャネルサイズの知識と共に、ノード送受信器120は、サンプリング時間(例えば、48kHz)内のビット量に合致するように、BCLKレートを自動的に設定してもよい。
ノード送受信器120は、ノード送受信器120と外部デバイス157との間のI2C通信のための送受信器129を含んでもよい。本明細書では「外部デバイス157」は単数形で言及されることがあるものの、これは、単純に例証の容易性のためであり、複数の外部デバイスが、I2C送受信器129を介してノード送受信器120と通信してもよい。当技術分野において公知のように、I2Cプロトコルは、クロック(SCL)ラインおよびデータライン(SDA)を使用してデータ転送を提供する。I2C送受信器129は、バスプロトコル回路126および外部デバイス157との通信のためのピンと連通していてもよい。ADR1、ADR2、SDA、およびSCLの4つのピンが、図2に図示されている。ADR1およびADR2は、ノード送受信器120がI2Cスレーブとして機能する場合(例えば、ノード送受信器120がマスタノード102に含まれる場合)、ノード送受信器120によって使用されるI2Cアドレスを修正するために使用され得、SDAおよびSCLはそれぞれ、I2Cシリアルデータおよびシリアルクロック信号のために使用される。ノード送受信器120がマスタノード102に含まれる場合、外部デバイス157は、ホスト110を含んでもよく、I2C送受信器129は、ホスト110からプログラミング命令を受信することができるI2Cスレーブを提供してもよい。特に、I2Cシリアルクロック信号は、SCLピンにおいてレジスタアクセスのためのホスト110からの入力として受信されてもよい。。ノード送受信器120がスレーブノード104に含まれる場合、外部デバイス157は、周辺デバイス108を含んでもよく、I2C送受信器129は、バス106を介してホスト110によって提供され、ノード送受信器120に送信される命令に従ってI2C送受信器が1つまたは2つ以上の周辺デバイスをプログラムすることを可能にするI2Cマスタを提供してもよい。特に、I2C送受信器129は、I2Cシリアルクロック信号をSCLピンにおいて出力として提供してもよい。
ノード送受信器120は、バスプロトコル回路126と連通している割込み要求(IRQ)ピンを含んでもよい。ノード送受信器120がI2C送受信器129を介してマスタノード102に含まれる場合、バスプロトコル回路126は、イベント駆動型割込み要求をIRQピンを介してホスト110に向けて提供してもよい。ノード送受信器120がスレーブノード104に含まれる場合(例えば、MSTRピンがローの場合)、IRQピンは、割込み要求能力を有するGPIOピンとして機能し得る。
システム100は、いくつかの異なる動作モードで動作し得る。バス106上のノードは各々、どの動作モードが現在有効化されているかを示すレジスタを有してもよい。実装され得る様々な動作モードの例の説明が以下に続く。スタンバイ動作モードでは、バス活動は、グローバルな省力化を有効化するために低減される。必要とされる唯一のトラフィックは、各ノードのPLL(例えば、PLL128)を同期された状態に保つための最低限の下流プリアンブルである。スタンバイ動作モードでは、バス106を介した読み出しおよび書き込みはサポートされない。発見動作モードでは、マスタノード102は、バス106に沿って所定の信号を送出し、バス106に沿って分散するスレーブノード104のトポロジーをマップ化するために好適な応答を待ってもよい。通常動作モードでは、スレーブノード104への完全なレジスタアクセスおよびスレーブノード104からの完全なレジスタアクセス、ならびにバス106を介した周辺デバイス108へのアクセスおよび周辺デバイス108からのアクセスが利用可能である。通常モードは、同期上流データの有無を問わず、かつ同期下流データの有無を問わず、ホスト110によってグローバルに構成されてもよい。
図3は、様々な実施形態による、システム100において通信に使用される同期制御フレーム180の一部の図である。特に、同期制御フレーム180は、以下で論じるように、データクロック回復およびPLL同期に使用され得る。上述のように、バス106を介した通信は、両方向で発生し得るため、通信は、下流部分と上流部分とに時分割多重化(time―multiplexed)され得る。下流部分では、同期制御フレームおよび下流データが、マスタノード102から送信され得る一方、上流部分では、同期応答フレームおよび上流データが、スレーブノード104の各々からマスタノード102に送信され得る。同期制御フレーム180は、プリアンブル182および制御データ184を含んでもよい。各スレーブノード104は、受信した同期制御フレーム180のプリアンブル182を、PLL128にフィードするためのタイムベースとして使用するように構成されてもよい。これを促進するため、プリアンブル182は、正当な制御データ184の「規則」に従わず、よって、制御データ184から容易に区別され得る。
例えば、いくつかの実施形態では、バス106にそった通信は、最初にクロック、ゼロで遷移の差動マンチェスター符号化スキームを使用して符号化されてもよい。このような符号化スキームによれば、各ビットタイムは、クロック遷移と共に始まる。データ値が0である場合、符号化された信号は、ビットタイムの中間で再び遷移する。データ値が1である場合、符号化された信号は、再び遷移することはない。図5に図示されるプリアンブル182は、符号化プロトコルに違反していることがあり(例えば、ビットタイム5、7、および8の始めに発生しないクロック遷移を有することによって)、これは、プリアンブル182が、制御データ184のいかなる適法な(例えば、正確に符号化された)パターンにも合致しないことがあることを意味する。加えて、プリアンブル182は、制御データ184のために適法なパターンをとり、単一のビットタイムまたは複数のビットタイムの期間バス106を強制的にハイまたはローにすることによっては、再生することはできない。図5に図示されるプリアンブル182は、単純に例証的なものであり、同期制御フレーム180は、任意の好適な様式で制御データ184によって使用される符号化に違反し得る異なるプリアンブル182を含んでもよい。
バスプロトコル回路126は、バス106から回復されたクロックで動作し、フレーム同期インジケータをPLL128に送出する同期制御フレーム180を検出する差動マンチェスター復号器回路を含んでもよい。このような様式で、同期制御フレーム180は、システムクロックまたはより高速なオーバーサンプリングクロックを使用することなしに検出され得る。結果として、スレーブノード104は、スレーブノード104に水晶クロックソースを必要とすることなしにバス106からPLL同期信号を受信することができる。
上述のように、バス106に沿った通信は、周期的なスーパーフレーム内で発生してもよい。図4は、様々な実施形態による、スーパーフレーム190の図である。図6に示されるように、スーパーフレームは、同期制御フレーム180と共に始まってもよい。同期制御フレーム180がPLL128のタイミングソースとして使用される場合、スーパーフレームが通信される頻度(「スーパーフレーム周波数」)は、同期信号周波数と同じであってもよい。オーディオデータがバス106に沿って送信されるいくつかの実施形態では、スーパーフレーム周波数は、システム100で使用されるオーディオサンプリング周波数(例えば、48kHzまたは44.1kHzのいずれか)と同じであってもよいが、任意の好適なスーパーフレーム周波数が使用され得る。各スーパーフレーム190は、下流送信期間192、上流送信期間194、および無送信期間196(例えば、バス106が駆動されないとき)に分割され得る。
図4では、スーパーフレーム190は、初期下流送信期間192および後の上流送信期間194と共に示されている。下流送信期間192は、同期制御フレーム180およびX個の下流データスロット198を含んでもよく、ここでXは0であってもよい。上記で論じたように、バス106上の実質的に全ての信号は、ライン符号化されてもよく、同期信号は、同期制御フレーム180の同期プリアンブル182の形態で、マスタノード102から最後のスレーブノード104(例えば、スレーブノード104C)へ下流に転送されてもよい。下流へのTDM同期データは、同期制御フレーム180の後のX個の下流データスロット198に含まれていてもよい。下流データスロット198は、等しい幅を有してもよい。上記で論じたように、PLL128は、バス106を介した通信のタイミングを決定するためにノードが使用するクロックを提供してもよい。バス106がオーディオデータを送信するために使用されるいくつかの実施形態では、PLL128は、オーディオサンプリング周波数の倍数(例えば、オーディオサンプリング周波数の1024倍で、各スーパーフレームでは1024ビットクロックとなる)で動作してもよい。
上流送信期間194は、同期応答フレーム197およびY個の上流データスロット199を含んでもよく、ここでYは0であってもよい。いくつかの実施形態では、各スレーブノード104は、下流データスロット198の一部を消費してもよい。最後のスレーブノード(例えば、図1のスレーブノード2)は、(最後のスレーブノードのレジスタに記憶された所定の応答時間後に)同期応答フレーム197によって応答してもよい。上流へのTDM同期データは、同期応答フレーム197の直後に各スレーブノード104によって上流データスロット199に追加されてもよい。上流データスロット199は、等しい幅を有してもよい。最後のスレーブノードではないスレーブノード104(例えば、図1のスレーブノード0および1)は、そのレジスタのうちの1つの読み出しがスーパーフレーム190の同期制御フレーム180においてリクエストされた場合、または遠隔のI2C読み出しがスーパーフレーム190の同期制御フレーム180においてリクエストされた場合、受信した同期応答フレーム197をそれ自身の上流応答で置き換えてもよい。
上記で論じたように、同期制御フレーム180は、各下流送信を開始してもよい。いくつかの実施形態では、同期制御フレーム180は、長さ64ビットであってもよいが、任意の他の好適な長さが使用されてもよい。上述のように、同期制御フレーム180は、プリアンブル182と共に始まってもよい。いくつかの実施形態では、同期制御フレーム180がスレーブノード104によって下流スレーブノード104に再送信されるとき、プリアンブル182は、再送信されるのではなく、送信するスレーブノード104によって生成されてもよい。
同期制御フレーム180の制御データ184は、バス106を介したトランザクションを制御するために使用されるデータを含むフィールドを含んでもよい。これらのフィールドの例を以下で論じる。いくつかの実施形態は、図5に図示されている。特に図5は、様々な実施形態による、通常モード、I2Cモード、および発見モードにおける同期制御フレーム180の例示的なフォーマットを図示している。いくつかの実施形態では、スタンバイモードでは、通常モードへの遷移が送出されるまでスレーブノード104が同期制御フレーム180を全て受信する必要がないように、完全に異なるプリアンブル182または同期制御フレーム180が使用されてもよい。
いくつかの実施形態では、同期制御フレーム180は、計数(CNT)フィールドを含んでもよい。CNTフィールドは、任意の好適な長さ(例えば、2ビット)を有し得、その前のスーパーフレームで使用された値からインクリメントされてもよい(フィールド長を除いて)。予期しないCNT値を受信したスレーブノード104は割込みを返すようにプログラムされてもよい。
いくつかの実施形態では、同期制御フレーム180は、ノードアドレス指定モード(NAM)フィールドを含んでもよい。NAMフィールドは、任意の好適な長さ(例えば、2ビット)を有し得、バス106を介したスレーブノード104のレジスタへのアクセスを制御するために使用されてもよい。通常モードでは、スレーブノード104のレジスタは、スレーブノード104のIDおよびレジスタのアドレスに基づいて読み出され、かつ/または書き込まれてもよい。ブロードキャストトランザクションは、各スレーブノード104によって受け取られるべき書き込みである。いくつかの実施形態では、NAMフィールドは、「なし」(例えば、いかなる特定のスレーブノード104宛てでもないデータ)、「通常」(例えば、以下で論じるアドレスフィールドで指定された特定のスレーブノード104へのユニキャストデータ)、「ブロードキャスト」(例えば、全てのスレーブノード104宛て)、および「発見」を含む4つのノードアドレス指定モードを提供してもよい。
いくつかの実施形態では、同期制御フレーム180は、I2Cフィールドを含んでもよい。I2Cフィールドは、任意の好適な長さ(例えば、1ビット)を有し得、下流送信期間192がI2Cトランザクションを含むことを示すために使用され得る。I2Cフィールドは、関連付けられたスレーブノード104に対してI2Cスレーブとして機能する周辺デバイス108に遠隔アクセスする命令をホスト110が提供したことを示し得る。
いくつかの実施形態では、同期制御フレーム180は、ノードフィールドを含んでもよい。ノードフィールドは、任意の好適な長さ(例えば、4ビット)を有し得、どのスレーブノードが通常アクセスおよびI2Cアクセスのためにアドレス指定されていることを示すために使用され得る。発見モードでは、このフィールドは、スレーブノード104のノードIDレジスタ内に、新たに発見されたスレーブノード104の識別子をプログラムするために使用され得る。以下で論じるように、システム100内の各スレーブノード104には、該スレーブノード104がマスタノード102によって発見されたとき、一意的なIDが割り当てられ得る。いくつかの実施形態ではマスタノード102はノードIDを有さない一方、他の実施形態ではマスタノード102はノードIDを有し得る。いくつかの実施形態では、バス106(例えば、図1のスレーブノード0)上のマスタノード102にアタッチされたスレーブノード104は、スレーブノード0となり、相続く各スレーブノード104は、その前のスレーブノードよりも1高い数を有する。しかしながら、これは単純に例証的なものであり、任意の好適なスレーブノード識別システムが使用され得る。
いくつかの実施形態では、同期制御フレーム180は、読み出し/書き込み(RW)フィールドを含んでもよい。RWフィールドは、任意の好適な長さ(例えば、1ビット)を有し得、通常アクセスが読み出し(例えば、RW==1)であるか、または書き込み(例えば、RW==0)であるかを制御するために使用され得る。
いくつかの実施形態では、同期制御フレーム180は、アドレスフィールドを含んでもよい。アドレスフィールドは、任意の好適な長さ(例えば、8ビット)を有し得、バス106を通じてスレーブノード104の特定のレジスタをアドレス指定するために使用され得る。I2Cトランザクションの場合、アドレスフィールドは、開始/停止、待機、RW、およびデータVLD等のI2C制御値によって置き換えられ得る。発見トランザクションの場合、アドレスフィールドは、所定の値(例えば、図5に図示されているような)を有し得る。
いくつかの実施形態では、同期制御フレーム180は、データフィールドを含んでもよい。データフィールドは、任意の好適な長さ(例えば、8ビット)を有し得、通常書き込み、I2C書き込み、およびブロードキャスト書き込みのために使用され得る。4で乗算されたRESPCYCS値は、新たに発見されたノードが、受信した同期制御フレーム180の開始と送信する同期応答フレーム197の開始との間にいくつのサイクルが経過するのを許容すべきかを決定するために使用され得る。NAMフィールドが発見モードを示している場合、以下で論じるノードアドレスおよびデータフィールドは、好適な任意追加的な乗数(例えば、4)によって乗算されると、同期制御フレーム180の終了から同期応答フレーム197の開始までの時間をビットで示すRESPCYCS値として符号化され得る。これは、新たに発見されたスレーブノード104が、上流送信のための適切なタイムスロットを決定することを可能にする。
いくつかの実施形態では、同期制御フレーム180は、巡回冗長検査(CRC)フィールドを含んでもよい。CRCフィールドは、任意の好適な長さ(例えば、16ビット)を有し得、プリアンブル182に続いて同期制御フレーム180の制御データ184のCRC値を送信するために使用され得る。いくつかの実施形態では、CRCは、CCITT−CRCエラー検出スキームに従って計算され得る。
いくつかの実施形態では、プリアンブル182とCRCフィールドとの間の同期制御フレーム180の少なくとも一部は、この間隔内のビットシーケンスが周期的にプリアンブル182に合致する(よって、新たなスーパーフレーム190の開始としてスレーブノード104によって誤解され得る)可能性を低減させるために、かつ上述のような電磁放射を低減させるために、スクランブル化され得る。いくつかのこのような実施形態では、同期制御フレーム180のCNTフィールドは、スクランブル化されるフィールドが、あるスーパーフレームと次のスーパーフレームとの間で異なってスクランブル化されることを確保するスクランブル化ロジックによって使用され得る。本明細書に記載のシステム100の様々な実施形態は、スクランブル化を省略し得る。
プリアンブル182がスレーブノード104によって一意的に識別され得ることを確保するために、またはプリアンブル182が同期制御フレーム180内の別の箇所に現れる可能性を低減するために、上記で論じたようなスクランブル化および/またはエラー符号化等の技法に加えて、またはそれらの代わりに、他の技法が使用され得る。例えば、より長い同期シーケンスが、同期制御フレーム180の残部の特定の符号化がそれに合致する可能性を低減させるように、使用されてもよい。追加的または代替的に、同期制御フレームの残部は、「0」または「1」の固定値を適切なビットに置くこと等によって、同期シーケンスが発生しないように構造化され得る。
マスタノード102は、バス106上の通信に固有のリクエストとI2Cリクエストとの両方を含め、読み出しリクエストおよび書き込みリクエストをスレーブノード104に送出し得る。例えば、マスタノード102は、読み出しリクエストおよび書き込みリクエスト(RWフィールドを使用して示される)を1つまたは2つ以上の指定されたスレーブノード104に送出し得(NAMフィールドおよびノードフィールドを使用して)、該リクエストがバス106に固有のスレーブノード104に対するリクエストであるか、スレーブノード104に対するI2Cリクエストであるか、またはスレーブノード104の1つもしくは2つ以上のI2Cポートにおいてスレーブノード104に連結されたI2C対応周辺デバイス108に渡されるべきI2Cリクエストであるかを示し得る。
上流通信に目を転じると、同期応答フレーム197は、各上流送信を開始し得る。いくつかの実施形態では、同期応答フレーム197は、長さ64ビットであってもよいが、任意の他の好適な長さが使用されてもよい。同期応答フレーム197はまた、同期制御フレーム180のプリアンブル182に関連して上記で論じたように、プリアンブルと、それに続いてデータ部分を含んでもよい。下流送信の終了時に、バス106上の最後のスレーブノード104は、RESPCYCSカウンタが満了するまで待機し、次いで、同期応答フレーム197を上流に送信し始めてもよい。上流スレーブノード104が通常の読み出しトランザクションまたは書き込みトランザクションの対象である場合、スレーブノード104は、それ自身の同期応答フレーム197を生成し、下流から受信した同期応答フレーム197を置き換えてもよい。いずれかのスレーブノード104が予想される時間に下流スレーブノード104からの同期応答フレーム197に遭遇しない場合、該スレーブノード104は、それ自身の同期応答フレーム197を生成し、それを上流に送信し始める。
同期応答フレーム197のデータ部分は、応答情報をマスタノード102に通信するために使用されるデータを含むフィールドを含んでもよい。これらのフィールドの例を以下で論じる。いくつかの実施形態は、図6に図示されている。特に、図6は、様々な実施形態による、通常モード、I2Cモード、および発見モードにおける同期応答フレーム197の例示的なフォーマットを図示している。
いくつかの実施形態では、同期応答フレーム197は、計数(CNT)フィールドを含んでもよい。CNTフィールドは、任意の好適な長さ(例えば、2ビット)を有し得、その前に受信した同期制御フレーム180内のCNTフィールドの値を送信するために使用され得る。
いくつかの実施形態では、同期応答フレーム197は、肯定応答(ACK)フィールドを含んでもよい。ACKフィールドは、任意の好適な長さ(例えば、2ビット)を有し得、スレーブノード104が同期応答フレーム197を生成する際、該スレーブノード104によって、その前の同期制御フレーム180で受信したコマンドに対して肯定応答を行うために挿入され得る。ACKフィールド内で通信され得る例示的なインジケータの例としては、待機、肯定応答、否定応答(NACK)、および再試行が挙げられる。いくつかの実施形態では、ACKフィールドは、それを受信し、ブロードキャストメッセージを処理した(例えば、マスタノード102にブロードキャスト肯定応答を送信することによって)スレーブノード104によって肯定応答を送信するためにサイズ決定され得る。いくつかのこのような実施形態では、スレーブノード104はまた、該スレーブノード104が送信すべきデータを有するかどうか(これは、例えば、キーパッドもしくはタッチスクリーンからの非TDM入力等の要求に基づく上流送信のために、もしくはスレーブノード104がエラー条件もしくは緊急条件を報告することを希望する場合等の優先的な上流送信のために、使用され得る)を示し得る。
いくつかの実施形態では、同期応答フレーム197は、I2Cフィールドを含んでもよい。I2Cフィールドは、任意の好適な長さ(例えば、1ビット)を有し得、その前に受信した同期制御フレーム180内のI2Cフィールドの値を送信するために使用され得る。
いくつかの実施形態では、同期応答フレーム197は、ノードフィールドを含んでもよい。ノードフィールドは、任意の好適な長さ(例えば、4ビット)を有し得、同期応答フレーム197を生成するスレーブノード104のIDを送信するために使用され得る。
いくつかの実施形態では、同期応答フレーム197は、データフィールドを含んでもよい。データフィールドは、任意の好適な長さ(例えば、8ビット)を有し得、その値は、トランザクションの種類および同期応答フレーム197を生成するスレーブノード104のACK応答に依存し得る。発見トランザクションの場合、データフィールドは、その前に受信した同期制御フレーム180内のRESPCYCSフィールドの値を含んでもよい。ACKフィールドがNACKを示す場合、または同期応答フレーム197がブロードキャストトランザクションに応答する場合、データフィールドは、ブロードキャスト肯定応答(BA)インジケータ(最後のスレーブノード104は、ブロードキャスト書き込みがエラーなしに受信されたか示し得る)、発見エラー(DER)インジケータ(発見トランザクションにおいて新たに発見されたスレーブノード104が既存のスレーブノード104に合致するかどうか示す)、およびCRCエラー(CER)インジケータ(CRCエラーによってNACKが引き起こされたかどうか示す)を含んでもよい。
いくつかの実施形態では、同期応答フレーム197は、CRCフィールドを含んでもよい。CRCフィールドは、任意の好適な長さ(例えば、16ビット)を有し得、プリアンブルとCRCフィールドとの間の同期応答フレーム197の部分のCRC値を送信するために使用され得る。
いくつかの実施形態では、同期応答フレーム197は、割込み要求(IRQ)フィールドを含んでもよい。IRQフィールドは、任意の好適な長さ(例えば、1ビット)を有し得、スレーブノード104から割込みが信号伝送されたことを示すために使用され得る。
いくつかの実施形態では、同期応答フレーム197は、IRQノード(IRQNODE)フィールドを含んでもよい。IRQNODEフィールドは、任意の好適な長さ(例えば、4ビット)を有し得、IRQフィールドによって提出された割込みを信号伝送したスレーブノード104のIDを送信するために使用され得る。いくつかの実施形態では、IRQフィールドを生成するためのスレーブノード104は、それ自身のIDをIRQNODEフィールドに挿入する。
いくつかの実施形態では、同期応答フレーム197は、第2のCRC(CRC−4)フィールドを含んでもよい。CRC−4フィールドは、任意の好適な長さ(例えば、4ビット)を有し得、IRQフィールドおよびIRQNODEフィールドのCRC値を送信するために使用され得る。
いくつかの実施形態では、同期応答フレーム197は、IRQフィールド、IRQNODEフィールド、およびCRC−4フィールドを同期応答フレーム197の最後のビット(例えば、最後の10ビット)として含んでもよい。上記で論じたように、これらの割込み関連フィールドは、それら自身のCRC保護を、CRC−4の形態で有し得る(よって、その前のCRCフィールドによって保護されない)。割込みをマスタノード102に信号伝送する必要があるいずれのスレーブノード104も、その割込み情報をこれらのフィールド内に挿入する。いくつかの実施形態では、未解決の割込みを有するスレーブノード104は、同様に未解決の割込みを有する更に下流のいずれのスレーブノード104よりも高い優先順位を有し得る。バス106沿いの最後のスレーブノード104(例えば、図1のスレーブノード2)は、常にこれらの割込みフィールドを事前設定してもよい。最後のスレーブノード104が未解決の割込みを有さない場合、最後のスレーブノード104は、IRQビットを0に設定し、IRQNODEフィールドをそのノードIDに設定し、正しいCRC−4値を提供し得る。便宜上、割込みを伝達する同期応答フレーム197は、本明細書において「割込みフレーム」と呼ばれ得る。
いくつかの実施形態では、プリアンブル182とCRCフィールドとの間の同期応答フレーム197の少なくとも一部は、放射を低減させるためにスクランブル化され得る。いくつかのこのような実施形態では、同期応答フレーム197のCNTフィールドは、スクランブル化されるフィールドが、あるスーパーフレームと次のスーパーフレームとの間で異なってスクランブル化されることを確保するスクランブル化ロジックによって使用され得る。本明細書に記載のシステム100の様々な実施形態は、スクランブル化を省略し得る。
プリアンブル182がスレーブノード104によって一意的に識別され得ることを確保するために、またはプリアンブル182が同期応答フレーム197内の別の箇所に現れる可能性を低減するために、上記で論じたようなスクランブル化および/またはエラー符号化等の技法に加えて、またはそれらの代わりに、他の技法が使用され得る。例えば、より長い同期シーケンスが、同期応答フレーム180の残部の特定の符号化がそれに合致する可能性を低減させるように、使用されてもよい。追加的または代替的に、同期応答フレームの残部は、「0」または「1」の固定値を適切なビットに置くこと等によって、同期シーケンスが発生しないように構造化され得る。
図7は、様々な実施形態による、図2のバスプロトコル回路126のブロック図である。バスプロトコル回路126は、本明細書に記載のバス106のプロトコルに従ってノード送受信器120の動作を制御する制御回路154を含んでもよい。特に、制御回路154は、送信用の同期フレーム(例えば、上記で論じたような同期制御フレームまたは同期応答フレーム)の生成、受信した同期フレームの処理、および受信した同期制御フレームで指定されている制御動作の実行を制御し得る。制御回路154は、以下で論じるように、プログラマブルなレジスタを含んでもよい。制御回路154は、同期制御フレームを生成および受信し、受信したメッセージ(例えば、バスプロトコル回路126がスレーブノード104に含まれる場合は、同期制御フレームに関連付けられたメッセージ、またはバスプロトコル回路126がマスタノード102に含まれる場合は、I2Cデバイスからのメッセージ)に適切に反応し、異なる動作モード(例えば、通常、発見、スタンバイ等)に対してフレーム形成を調節し得る。
ノード送受信器120がバス106に沿った送信用のデータを準備しているとき、プリアンブル回路156は、送信用の同期フレームのプリアンブルを生成し、受信した同期フレームからプリアンブルを受信するように構成され得る。いくつかの実施形態では、下流同期制御フレームのプリアンブルは、1024ビットごとにマスタノード102によって送出され得る。上記で論じたように、1つまたは2つ以上のスレーブノード104は、下流同期制御フレームのプリアンブルに同期し、該プリアンブルから位相の揃ったローカルのマスタクロックを生成し得る。
巡回冗長検査(CRC)挿入回路158は、送信用の同期フレームの1つまたは2つ以上のCRCを生成するように構成され得る。フレーム形成/圧縮回路160は、I2S/TDM/PDM送受信器127(例えば、送受信器127に関連付けられたフレームバッファから)および/またはI2C送受信器129からの着信データを受け取り、任意追加的に該データを圧縮し、任意追加的に該データのパリティ検査ビットまたは誤り訂正符号(ECC)を生成するように構成され得る。多重化器(MUX)162は、プリアンブル回路156からのプリアンブル、同期フレーム、およびデータを多重化し、送信用のストリームに入れ得る。いくつかの実施形態では、送信ストリームは、スクランブル化回路164によって送信前にスクランブル化され得る。
例えば、いくつかの実施形態では、フレーム形成/圧縮回路160は、浮動小数点圧縮スキームを適用し得る。このような実施形態では、制御回路154は、数のなかにいくつの繰り返し符号ビットがあるか示す3つのビットと、それに続いて符号ビットおよびN−4ビットのデータを送信し得、ここで、Nは、バス106を介して送信されるデータのサイズである。データ圧縮の使用は、所望の場合、マスタノード102によって構成され得る。
いくつかの実施形態では、ノード送受信器120に入来する受信ストリームは、スクランブル化解除回路166によってスクランブル化解除され得る。多重化解除器(DEMUX)168は、受信ストリームからのプリアンブル、同期フレーム、およびデータを多重化解除し得る。受信側のCRC検査回路159は、受信した同期フレームを検査して正しいCRCを見出し得る。CRC検査回路159が着信同期制御フレーム180内にCRC失敗を発見すると、制御回路154は、該失敗について通知され得、同期制御フレーム180の制御データ184内のいずれの制御コマンドも実行しない。CRC検査回路159が着信同期応答フレーム197内にCRC失敗を発見すると、制御回路154は、該失敗について通知され得、割込みフレームでホスト110に送信するために割込みを生成し得る。フレーム形成解除/圧縮解除回路170は、受信データを受け入れ、任意追加的にそのパリティを検査し、任意追加的にエラー検出および訂正を実行し(例えば、単一エラー訂正〜二重誤り検出(SECDED)、任意追加的にデータを圧縮解除し得、かつI2S/TDM/PDM送受信器127(例えば、送受信器127に関連付けられたフレームバッファ)および/またはI2C送受信器129に受信データを書き込み得る。
上記で論じたように、上流データおよび下流データは、スーパーフレーム190内のTDMデータスロットにおいてバス106に沿って送信され得る。制御回路154は、バス106上のこれらのデータスロットを管理するための専用のレジスタを含んでもよく、そのいくつかの例を以下で論じる。制御回路154がマスタノード102に含まれる場合、これらのレジスタの値は、ホスト110によって制御回路154内にプログラムされ得る。制御回路154がスレーブノード104に含まれる場合、これらのレジスタの値は、マスタノード102によって制御回路154内にプログラムされ得る。
いくつかの実施形態では、制御回路154は、下流スロット(DNSLOTS)レジスタを含んでもよい。ノード送受信器120がマスタノード102に含まれる場合、このレジスタは、下流データスロットの総数の値を保持し得る。このレジスタはまた、マスタノード102内のI2S/TDM/PDM送受信器127によるI2S/TDM/PDMの組み合わせの受信のために使用されるデータスロットの数を定義し得る。スレーブノード104では、LDNSLOTSに関連して以下で更に詳細に論じるように、このレジスタは、ローカルで生成された下流スロットの追加前または追加後に下流の次のスレーブノード104に渡されるデータスロットの数を定義し得る。
いくつかの実施形態では、制御回路154は、ローカルの下流スロット(LDNSLOTS)レジスタを含んでもよい。このレジスタは、マスタノード102内で未使用であってもよい。スレーブノード104では、このレジスタは、スレーブノード104が使用し、再送信しないデータスロットの数を定義し得る。あるいは、このレジスタは、スレーブノード104が下流データリンク106に寄与し得るスロットの数を定義し得る。
いくつかの実施形態では、制御回路154は、上流スロット(UPSLOTS)レジスタを含んでもよい。マスタノード102では、このレジスタは、上流データスロットの総数の値を保持し得る。このレジスタはまた、マスタノード102内のI2S/TDM/PDM送受信器127によるI2S/TDM送信のために使用されるスロットの数を定義し得る。スレーブノード104では、このレジスタは、スレーブノード104がそれ自身のデータを追加し始める前に上流に渡されるデータスロットの数を定義し得る。
いくつかの実施形態では、制御回路154は、ローカルの上流スロット(LUPSLOTS)レジスタを含んでもよい。このレジスタは、マスタノード102内で未使用であってもよい。スレーブノード104では、このレジスタは、スレーブノード104が下流から受信したデータに、該データが上流に送出される前に、追加するデータスロットの数を定義し得る。このレジスタはまた、スレーブノード104内のI2S/TDM/PDM送受信器127によるI2S/TDM/PDMの組み合わせの受信のために使用されるデータスロットの数を定義し得る。
いくつかの実施形態では、制御回路154は、ブロードキャスト下流スロット(BCDNSLOTS)レジスタを含んでもよい。このレジスタは、マスタノード102内で未使用であってもよい。スレーブノード104では、このレジスタは、ブロードキャストデータスロットの数を定義し得る。いくつかの実施形態では、ブロードキャストデータスロットは、常にデータフィールドの始まりに位置し得る。ブロードキャストデータスロットのデータは、複数のスレーブノード104によって使用され得、それらが使用されるか否かにかかわらず、全てのスレーブノード104によって下流に渡され得る。
いくつかの実施形態では、制御回路154は、スロットフォーマット(SLOTFMT)レジスタを含んでもよい。このレジスタは、上流送信用または下流送信用のデータのフォーマットを定義し得る。I2S/TDM/PDM送受信器127のデータサイズはまた、このレジスタによって決定され得る。いくつかの実施形態では、正当なデータサイズには、8、12、16、20、24、28、および32ビットが含まれる。このレジスタはまた、下流トラフィック用または上流トラフィック用に浮動小数点圧縮を有効化するビットを含んでもよい。浮動小数点圧縮が有効化されると、I2S/TDMのデータサイズは、バス106を介したデータサイズよりも4ビット大きくなり得る。システム100内の全てのノードは、データスロットが有効化される場合、同じSLOTFMT値を有し得、全てのノードは、全てのノードが同じ値で更新されるように、ブロードキャスト書き込みによってプログラムされ得る。
図8〜11は、本明細書に記載のバスプロトコルの様々な実施形態による、バス106に沿った情報のやりとりの例を図示する。特に、図8〜11は、各スレーブノード104が周辺デバイス108として1つもしくは2つ以上のスピーカおよび/または1つもしくは2つ以上のマイクロホンに連結される実施形態を図示している。周辺デバイス108の任意の所望の配置は、本明細書に記載の技法に従って、任意の特定のスレーブノード104に連結され得るため、これは単純に例証的なものである。
第一に、図8は、様々な実施形態による、バス106上の双方向通信のための信号伝送およびタイミングの考慮事項を図示する。図8に描かれるスレーブノード104は、様々な数のセンサ/アクチュエータ要素を有し、ゆえに異なる量のデータが様々なスレーブノード104に送出され得、または様々なスレーブノード104から受信され得る。具体的には、スレーブノード1は2つの要素を有し、スレーブノード4は4つの要素を有し、スレーブノード5は3つの要素を有する。ゆえに、マスタノード102によって送信されるデータは、スレーブノード1のための2つのタイムスロット、スレーブノード4のための4つのタイムスロット、およびスレーブノード5のための3つのタイムスロットを含む。同様に、スレーブノード0は3つの要素を有し、スレーブノード2は3つの要素を有し、スレーブノード3は3つの要素を有し、スレーブノード6は1つの要素を有し、スレーブノード7は4つの要素を有する。ゆえに、それらのスレーブノード104によって上流に送信されるデータは、対応する数のタイムスロットを含む。要素とタイムスロットとの間に1対1の相関が存在しなくてもよいことに留意されたい。例えば、周辺デバイス108に含まれる3つのマイクロホンを有するマイクロホンアレイは、3つのマイクロホンからの信号(およびことによると、マスタノード102または他のスレーブノード104から受信した情報も)を組み合わせて、処理の種類に応じて単一のタイムスロットまたは複数のタイムスロットに対応し得る単一のデータサンプルを生成するデジタル信号プロセッサを含んでもよい。
図8では、マスタノード102は、同期制御フレーム(SCF)と、それに続いて特定のスレーブノード104(SD)に連結されたスピーカのためのデータを送信する。相続く各スレーブノード104は、同期制御フレームを転送し、また少なくとも下流スレーブノード104宛てのいずれのデータも転送する。特定のスレーブノード104は、全てのデータを転送してもよく、またはそのスレーブノード104宛てのデータを除去してもよい。最後のスレーブノード104が同期制御フレームを受信すると、そのスレーブノード104は、同期応答フレーム(SRF)と、任意追加的にそれに続いてスレーブノード104が送信することが許容されている任意のデータを送信する。相続く各スレーブノード104は、同期応答フレームを下流スレーブノード104からの任意のデータと共に転送し、任意追加的に該特定のスレーブノード104(MD)に連結された1つまたは2つ以上のマイクロホンからのデータを挿入する。図8の実施例では、マスタノード102は、データをスレーブノード1、4、および5(図8にアクティブスピーカとして描かれている)に送出し、スレーブノード7、6、3、2、および0(図8にマイクロホンアレイとして描かれている)からデータを受信する。
図9〜11は、システム100における様々な例示的なデータ送信動作を図示する。図9〜11では、SCFは、隣接するノード間でタイミングの揃ったものとして図示されている一方、SRFは、隣接するノード間でタイミングの遅延したものとして図示されている。これは、単純に図示する容易性のためであり、SCFおよびSRFの両方は、ノードごとに同様のタイミング遅延を有し得る。スロット「Y」は、下流データの一部であってもよい。
図9は、下流送受信器124の見地から、様々な実施形態による、動的な下流送信からのデータ除去および上流送信へのデータ挿入を概略的に図示する。図9では、図8と同様に、マスタノード102は、同期制御フレーム(SCF)と、それに続いてスレーブノード1、4、および5(SD)のためのデータを逆の順序で(例えば、スレーブノード5のためのデータ、それに続いてスレーブノード4のためのデータ、それに続いてスレーブノード1のためのデータ等)(マスタとラベル付けされた列を参照されたい)送信する。スレーブノード1がこの送信を受信すると、スレーブノード1は、それ自身のデータを除去し、同期制御フレームと、それに続いてスレーブノード5および4のためのデータのみをスレーブノード2に転送する。スレーブノード2および3は、スレーブノード1によって転送されたデータがスレーブノード4(スレーブ3とラベル付けされた列を参照されたい)によって受信されるように、データを変更せずに転送する(スレーブ2とラベル付けされた列を参照されたい)。スレーブノード4は、それ自身のデータを除去し、同期制御フレームと、それに続いてスレーブノード5のためのデータのみをスレーブノード5に転送する。同様に、スレーブノード5は、それ自身のデータを除去し、同期制御フレームのみをスレーブノード6に転送する。スレーブノード6は、同期制御フレームをスレーブノード7に転送する(スレーブ6とラベル付けされた列を参照されたい)。
この時点で、スレーブノード7は、同期応答フレーム(SRF)と、それに続いてそれ自身のデータをスレーブノード6に送信する(スレーブ6とラベル付けされた列を参照されたい)。スレーブノード6は、同期応答フレームをスレーブノード7からのデータおよびそれ自身のデータと共にスレーブノード5に転送し、次いで、スレーブノード5は、同期応答フレームをスレーブノード7および6からのデータと共にスレーブノード4に転送する。スレーブノード4は、追加すべきデータを有さず、ゆえに単純に該データをスレーブノード3(スレーブ3とラベル付けされた列を参照されたい)に転送し、スレーブノード3は、該データをそれ自身のデータと共にスレーブノード2(スレーブ2とラベル付けされた列を参照されたい)に転送し、次いで、スレーブノード2は、該データをそれ自身のデータと共にスレーブノード1に転送する。スレーブノード1は、追加すべきデータを有さず、ゆえに該データをスレーブノード0に転送し、スレーブノード0は、該データをそれ自身のデータと共に転送する。結果として、マスタノード102は、同期応答フレームと、それに続いてスレーブノード7、6、3、2、および0からのデータを受信する(マスタとラベル付けされた列を参照されたい)。
図10は、図9と同様に、下流送受信器124の見地から、動的な下流送信からのデータ除去および上流送信へのデータ挿入を図示するものの、図10では、スレーブノード104は、マスタノード102がデータを下流へ、全てのスレーブノード104へ送出し、全てのスレーブノード104から戻るデータを受信するように、周辺デバイス108としてのセンサおよびアクチュエータの両方と連結されている。また図10では、データは、その宛先またはその発信元のノードアドレスに基づいて順序付けられる。「Y」とラベル付けされたデータスロットは、データ整合性検査またはデータ訂正のために使用され得る。いくつかの実施形態では、「Y」とラベル付けされたデータスロットは、追加的または代替的に下流データに含まれ得る。
図11は、図9と同様に、下流送受信器124の見地から、動的な下流送信からのデータ除去および上流送信へのデータ挿入の別の実施例を図示するものの、図11では、データは、逆の順序ではなく逐次的順序で下流および上流に伝達される。各スレーブノード104におけるバッファリングは、データを選択的に追加、除去、および/または転送することを可能にする。
上記で論じたように、各スレーブノード104は、下流送信もしくは上流送信からデータを除去し得、かつ/または下流送信もしくは上流送信にデータを追加し得る。よって、例えば、マスタノード102は、別々のデータサンプルをいくつかのスレーブノード104の各々に送信し得、このような各スレーブノード104は、それ自身のデータサンプルを除去し、下流スレーブ向けのデータのみを転送し得る。一方、スレーブノード104は、下流スレーブノード104からデータを受信し、該データを更なるデータと共に転送し得る。できるだけ少ない必要なデータを送信することの1つの利点は、システム100によって全体として消費される電力量を低減させることである。
システム100は、具体的にはスレーブノード104の下流スロットの使用法の構成を通じて、マスタノード102からスレーブノード104へのブロードキャスト送信(およびマルチキャスト送信)もサポートし得る。各スレーブノード104は、ブロードキャスト送信を処理し、それを次のスレーブノード104に渡し得るものの、特定のスレーブノード104は、該ブロードキャストメッセージを「消費」し得る(すなわち、該ブロードキャスト送信を次のスレーブノード104に渡さない)。
システム100は、上流送信(例えば、特定のスレーブノード104から1つまたは2つ以上の他のスレーブノード104へ)もサポートし得る。このような上流送信は、ユニキャスト上流送信、マルチキャスト上流送信、および/またはブロードキャスト上流送信を含んでもよい。上流へのアドレス指定の場合、下流送信に関連して上記で論じたように、スレーブノード104は、スレーブノード104の上流スロットの使用法の構成に基づいて、データを上流送信から除去するか否かおよび/または上流送信を次の上流スレーブノード104に渡すべきか否かを決定し得る。よって、例えば、データは、特定のスレーブノード104によって、該データをマスタノード102に渡すことに加えて、またはその代わりに、1つまたは2つ以上の他のスレーブノード104に渡され得る。このようなスレーブ対スレーブ関係は、例えば、マスタノード102を介して構成され得る。
よって、様々な実施形態では、スレーブノード104は、情報を選択的に転送、削除、および追加する能力を有するアクティブ/インテリジェントな中継ノードとして動作し得る。各スレーブノード104は、それが中でデータを受信/送信する関係するタイムスロット(複数可)を知っているため、スレーブノード104は、必ずしもデータの全てを復号/検討することなしにこのような機能をおおむね実行し得、よって、タイムスロットからデータを削除し、またはタイムスロットにデータを追加し得る。スレーブノード104は全てのデータを復号/吟味しなくてもよいことがあるにもかかわらず、スレーブノード104は、典型的に、それが送信/転送するデータを再クロックする。これは、システム100の堅牢性を改善し得る。
いくつかの実施形態では、バス106は、リングトポロジーにおける一方向性通信のために構成され得る。例えば、図12は、リングトポロジーにおけるマスタノード102および4つのスレーブノード104の配置1200を図示し、様々な実施形態による、配置1200における一方向性通信のための信号伝送およびタイミングの考慮事項を図示する。このような実施形態では、ノード内の送受信器120は、上流通信および下流通信のための2つの双方向性送受信器ではなく、受信専用送受信器(マスタIN)および送信専用送受信器(マスタOUT)を有し得る。図12に図示されるリンク層同期スキームでは、マスタノード102は、同期制御フレーム(SCF)180と、任意追加的にそれに続いて様々なスレーブノード104に連結された3つのスピーカのための「下流」データ1202を送信し(図8〜11に関連して上記で論じたように、異なるスピーカのためのデータは、任意の好適な順序で配置され得る)、相続く各スレーブノード104は、同期制御フレーム180を先行するスレーブノード104からのあらゆる「上流」データおよびそれ自身の「上流」データと共に転送して、「上流」データ1204を提供する(図8〜11に関連して上記で論じたように、例えば、8つの異なるマイクロホンからのデータは、任意の好適な順序で配置され得る)。
本明細書に記載のように、データは、システム100の要素間でいくつかの方法のうちのいずれでも通信され得る。いくつかの実施形態では、データは、一連の同期データスロットの一部として、スレーブノード104によって上流に(例えば、データスロット199を使用して)、またはスレーブノード104もしくはマスタノード102によって下流に(例えば、データスロット198を使用して)、送出され得る。このようなデータの量は、データスロット内のビット数を変更することによって、または特別なデータスロットを含めることによって、調節され得る。システム100では、データはまた、同期制御フレーム180または同期応答フレーム197に含めることによって通信され得る。このようにして通信されるデータとしては、ホスト110からのI2C制御データ(スレーブノード104に関連付けられた周辺デバイス108からの応答を含む)、ホスト110/マスタノード102からスレーブノード104への書き込みアクセスおよびスレーブノード104からホスト110/マスタノード102への読み出しアクセスを含み得るスレーブノード104のレジスタへのアクセス(例えば、スロットおよびインターフェースの発見および構成のための)、ならびに周辺デバイス108からホスト110への割込みを介したイベント信号伝送が挙げられる。いくつかの実施形態では、GPIOピンは、スレーブノード104からマスタノード102に情報を伝達するために使用され得る(例えば、マスタノード102にI2Cを介してGPIOピンをポーリングさせることによって、またはスレーブノード104のノード送受信器120に割込み要求ピンで割込みを生成させることによって)。例えば、いくつかのこのような実施形態では、ホスト110は、情報をI2Cを介してマスタノード102に送出し得、次いで、マスタノード102は、その情報をGPIOピンを介してスレーブに送出し得る。バス106を介して送信されるとして本明細書に記載のいずれの種類のデータも、これらの通信経路のうちの任意の1つまたは2つ以上を使用して送信され得る。システム100内の他の種類のデータおよびデータ通信技法が、本明細書で開示され得る。
本開示の実施形態は、所望のように構成するために、任意の好適なハードウェアおよび/またはソフトウェアを使用してシステム内に実装され得る。図13は、様々な実施形態による、システム100においてホストまたはノード(例えば、ホスト110、マスタノード102、またはスレーブノード104)として機能し得るデバイス1300を概略的に図示する。いくつかのコンポーネントが、デバイス1300に含まれるとして図13に図示されているが、これらのコンポーネントのうちの任意の1つまたは2つ以上は、用途に好適なように、省略または複製され得る。
なお、様々な実施形態では、デバイス1300は、図13に図示されるコンポーネントのうちの1つまたは2つ以上を含まないことがあるが、デバイス1300は、該1つまたは2つ以上のコンポーネントを連結するためのインターフェース回路を含んでもよい。例えば、デバイス1300は、表示デバイス1306を含まないことがあるが、表示デバイス1306が連結され得る表示デバイスインターフェース回路(例えば、コネクタおよび駆動回路)を含んでもよい。別の一連の実施例では、デバイス1300は、オーディオ入力デバイス1324またはオーディオ出力デバイス1308を含まないことがあるが、オーディオ入力デバイス1324またはオーディオ出力デバイス1308が連結され得るオーディオ入力デバイスインターフェース回路またはオーディオ出力デバイスインターフェース回路(例えば、コネクタおよび支援回路)を含んでもよい。
デバイス1300は、本明細書に記載の実施形態のうちのいずれかによる、デバイス1300がバス106に連結されるときバス106沿いの通信を管理するためのノード送受信器120を含んでもよい。デバイス1300は、ノード送受信器120に含まれるか、またはノード送受信器120とは別個であり得る処理デバイス1302(例えば、1つまたは2つ以上の処理デバイス)を含んでもよい。本明細書で使用する場合、「処理デバイス」という用語は、レジスタおよび/またはメモリからの電子データを処理し、その電子データをレジスタおよび/またはメモリに記憶され得る他の電子データに変換するデバイスの任意のデバイスまたは部分を指し得る。処理デバイス1302としては、1つまたは2つ以上のデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、中央処理装置(CPU)、グラフィック処理装置(GPU)、暗号プロセッサ、または任意の他の好適な処理デバイスが挙げられる。デバイス1300は、メモリ1304を含んでもよく、メモリ1304はそれ自身、揮発性メモリ(例えば、動的ランダムアクセスメモリ(DRAM))、非揮発性メモリ(例えば、読み出し専用メモリ(ROM))、フラッシュメモリ、ソリッドステートメモリ、および/またはハードディスクドライブ等の1つまたは2つ以上のメモリデバイスを含んでもよい。
いくつかの実施形態では、メモリ1304は、デバイス1300に本明細書に開示の技法のうちの任意の好適なものを実行させるプログラミング命令の作業用コピーまたは永続的コピーを記憶するために用いられ得る。いくつかの実施形態では、上記に記載の技法を実行するための機械アクセス可能な媒体(非一時的なコンピュータ可読記憶媒体を含む)、方法、システム、およびデバイスは、2線式バスを介した通信のための本明細書に開示の実施形態の例証的な実施例である。例えば、コンピュータ可読媒体(例えば、メモリ1304)には、処理デバイス1302に含まれる処理デバイスのうちの1つまたは2つ以上によって実行されると、デバイス1300に本明細書に開示の技法のうちのいずれかを実行させる命令が記憶され得る。
いくつかの実施形態では、デバイス1300は、別の通信チップ1312(例えば、1つまたは2つ以上の他の通信チップ)を含んでもよい。例えば、通信チップ1312は、デバイス1300へのデータ転送およびデバイス1300からのデータ転送のための無線通信を管理するために構成され得る。「無線」という用語およびその派生語は、変調される電磁放射の使用によって非ソリッド媒体を通じてデータを通信し得る回路、デバイス、システム、方法、技法、通信チャネル等を説明するために使用され得る。該用語は、関連するデバイスがいかなる配線も含まないことは暗示しないものの、いくつかの実施形態では含まないことがある。
通信チップ1312は、Wi−Fi(IEEE802.11ファミリー)、IEEE802.16規格(例えば、IEEE802.16−2005年修正)、Long−Term Evolution(LTE)プロジェクトならびにあらゆる修正、更新、および/または改訂(例えば、Advanced LTEプロジェクト、ウルトラ・モバイル・ブロードバンド(UMB)プロジェクト(「3GPP2」とも呼ばれる)等)を含む米国電気電子学会(IEEE)規格を含むが、これらに限定されない、いくつかの無線規格またはプロトコルのうちの任意のものを実装し得る。IEEE802.16準拠の広帯域無線接続(BWA)ネットワークは、一般にWiMAXネットワークと呼ばれ、IEEE802.16規格の適合性試験および相互運用性試験に合格した製品に対する認証マークであるWorldwide Interoperability for Microwave Accessを表す頭字語である。1つまたは2つ以上の通信チップ1312は、Global System for Mobile Communication(GSM(登録商標))、General Packet Radio Service(GPRS)、Universal Mobile Telecommunications System(UMTS)、High Speed Packet Access(HSPA)、Evolved HSPA(E−HSPA)、またはLTEネットワークに従って動作し得る。該1つまたは2つ以上の通信チップ1312は、Enhanced Data for GSM(登録商標) Evolution(EDGE)、GSM(登録商標) EDGE Radio Access Network(GERAN)、Universal Terrestrial Radio Access Network(UTRAN)、またはEvolved UTRAN(E−UTRAN)に従って動作し得る。該1つまたは2つ以上の通信チップ1312は、符号分割多重接続(CDMA)、時分割多重接続(TDMA)、Digital Enhanced Cordless Telecommunications(DECT)、Evolution−Data Optimized(EV−DO)、およびそれらの派生物、ならびに3G、4G、5G、およびそれ以降と呼ばれる任意の他の無線プロトコルに従って動作し得る。他の実施形態では、通信チップ1312は、他の無線プロトコルに従って動作し得る。デバイス1300は、無線通信を促進し、かつ/または他の無線通信(AMもしくはFM無線送信等の)を受信するアンテナ1322を含んでもよい。
いくつかの実施形態では、通信チップ1312は、本明細書に記載のバス106のためのプロトコル以外のプロトコルを使用して有線通信を管理し得る。有線通信としては、電気通信プロトコル、光通信プロトコル、または任意の他の好適な通信プロトコルが挙げられる。通信チップ1312によって有効化され得る有線通信プロトコルの例としては、イーサネット(登録商標)、コントローラエリアネットワーク(CAN)、I2C、Media−Oriented Systems Transport(MOST)、または任意の他の好適な有線通信プロトコルが挙げられる。
上述のように、通信チップ1312は、複数の通信チップを含んでもよい。例えば、第1の通信チップ1312は、Wi−FiまたはBluetooth(登録商標)等の近距離無線通信専用であってもよく、第2の通信チップ1312は、GPS、EDGE、GPRS、CDMA、WiMAX、LTE、EV−DOその他の長距離無線通信専用であってもよい。いくつかの実施形態では、第1の通信チップ1312は、無線通信専用であってもよく、第2の通信チップ1312は、有線通信専用であってもよい。
デバイス1300は、バッテリー/電源回路1314を含んでもよい。バッテリー/電源回路1314は、1つもしくは2つ以上のエネルギー蓄積装置(例えば、バッテリーもしくはキャパシタ)および/またはデバイス1300のコンポーネントをデバイス1300とは別個のエネルギー源(例えば、交流ライン電源、自動車バッテリーによって提供される電圧等)に連結するための回路を含んでもよい。例えば、バッテリー/電源回路1314は、図2に関連して上記で論じた上流フィルタリング回路132および下流フィルタリング回路131を含んでもよく、バス106上でバイアスによって充電され得る。
デバイス1300は、表示デバイス1306(または上記で論じたような対応するインターフェース回路)を含んでもよい。表示デバイス1306は、例えば、ヘッドアップ表示装置、コンピュータモニタ、プロジェクタ、タッチスクリーン表示装置、液晶表示装置(LCD)、発光ダイオード表示装置、またはフラットパネル表示装置等の任意の視覚的インジケータを含んでもよい。
デバイス1300は、オーディオ出力デバイス1308(または上記で論じたような対応するインターフェース回路)を含んでもよい。オーディオ出力デバイス1308は、例えば、スピーカ、ヘッドホン、またはイヤホン等の、可聴インジケータを生成する任意のデバイスを含んでもよい。
デバイス1300は、オーディオ入力デバイス1324(または上記で論じたような対応するインターフェース回路)を含んでもよい。オーディオ入力デバイス1324は、マイクロホン、マイクロホンアレイ、またはデジタル楽器(例えば、電子楽器デジタルインターフェース(MIDI)出力を有する楽器)等の、音を表す信号を生成する任意のデバイスを含んでもよい。
デバイス1300は、全地球測位システム(GPS)デバイス1318(または上記で論じたような対応するインターフェース回路)を含んでもよい。GPSデバイス1318は、当技術分野において公知のように、衛星系システムと連通していてもよく、デバイス1300の位置を受信し得る。
デバイス1300は、別の出力デバイス1310(または上記で論じたような対応するインターフェース回路)を含んでもよい。該別の出力デバイス1310の例としては、オーディオコーデック、ビデオコーデック、プリンタ、他のデバイスに情報を提供するための有線送信器もしくは無線送信器、または更なる記憶デバイスが挙げられる。なお、本明細書に記載の周辺デバイス108のうちの任意の好適なものが、該別の出力デバイス1310に含まれてもよい。
デバイス1300は、別の入力デバイス1320(または上記で論じたような対応するインターフェース回路)を含んでもよい。該別の入力デバイス1320の例としては、加速度計、回転儀、画像取込デバイス、キーボード、マウス、スタイラス、タッチパッド等のカーソル制御デバイス、バーコード読取り機、クイックレスポンス(QR)コード読取り機、または無線周波数識別(RFID)読取り機が挙げられる。なお、本明細書に記載のセンサまたは周辺デバイス108のうちの任意の好適なものが、該別の入力デバイス1320に含まれてもよい。
デバイス1300に関連して上記に記載した表示装置、入力デバイス、出力デバイス、通信デバイス、またはメモリデバイスのうちの任意の好適なものが、システム100の周辺デバイス108として機能してもよい。代替的または追加的に、デバイス1300に関連して上記に記載した表示装置、入力デバイス、出力デバイス、通信デバイス、またはメモリデバイスのうちの好適なものは、ホスト(例えば、ホスト110)またはノード(例えば、マスタノード102もしくはスレーブノード104)に含まれ得る。
より低いサンプルレートをサポートするためのデシメーションおよびより高いサンプルレートをサポートするための複数のスロットの使用
いくつかの実施形態では、バス106のノードは、単一の高帯域オーディオサンプルレート(例えば、44.1kHz〜48kHz)をサポートし得る。しかしながら、多くのデジタルオーディオ信号は、バス106によってサポートされる全オーディオスペクトルを必ずしも常に必要とするわけではない。例えば、いくつかのオーディオ雑音除去用途は、バス106を介して送信されているオーディオ信号のうちのいくつかについては、全帯域を必要とはしないことがある。全帯域を必要としない信号をデシメートすることによって、複数のチャネルが、単一のオーディオストリーム内に「詰め込まれ」得、バス106沿いの異なるスレーブノード104に独立して分配され得る。例えば、デシメートされたオーディオストリームとしては、マルチチャネルの雑音除去ストリーム、マルチチャネルのアクティブサウンドオーディオ、または他のより低帯域ストリームが挙げられる。40kHzよりも低いサンプリングレートは、例えば、人の音声、低品質オーディオ、およびFMラジオの送信用には十分であり得る。
等時性デジタルオーディオネットワーク(例えば、バス106)内では、複数のオーディオストリームを提供するための従来の手法は、通常、最も高いオーディオ帯域のチャネルのニーズによって選択されるサンプルレートで全てのストリームが提供されることを必要とする。他の全てのチャネルは、その同じ高サンプルオーディオレートを維持するように強制され得、したがって、その高サンプルオーディオレートが必要でない場合はデジタルスループットが浪費され得る。デジタルバスの全スループットに限りがある以上、この従来の冗長性は、可能な送信チャネル数を低下させ得る。
そうではなくて、オーディオがデシメートされる場合、バス106は、マスタノード102においてストリームを多重化しスレーブノード104において1つまたは2つ以上のチャネルを選択的に聴取または受信することによって、複数のオーディオチャネルが単一のオーディオスロット内で送信されることを可能にし得る。
デジタルオーディオ信号がバス106のスーパーフレームレートよりも高いサンプルレートを必要とする場合、オーディオ信号を複数のチャネルを介して(例えば、単一のスーパーフレーム190内の複数のデータスロットにおいて)送信することによって、バス106を使用してより高いサンプルレートをサポートすることも可能である。例えば、スレーブノード104は、複数のデータスロットを使用してスーパーフレームレートよりも高いサンプルレートで送信し得る(例えば、2つのデータスロットでスーパーフレームレートを二倍にする、4つのデータスロットでスーパーフレームレートを四倍にする等)。48kHzよりも高いサンプリングレートは、例えば、より高品質のオーディオ(例えば、プロフェッショナルオーディオ)およびDVDオーディオに望ましいことがある。
スレーブノード104において2倍および4倍のサンプリングレートをサポートするため、マスタノード102は、そのホスト110へのサンプリング周波数インターフェースにおいて、2倍および4倍のTDMデータチャネル数を使用し得る。サンプルレートを増大させるため、複数のチャネルの全体および/またはチャネルの一部が使用され得る。
いくつかの実施形態では、単一の周辺デバイス108(スレーブノード104に関連付けられた)のためのデータが、下流データスロット198のうちの複数を占有し得る。このデータは、例えば、オーディオデータであってもよい。いくつかの実施形態では、単一の周辺デバイス108(スレーブノード104に関連付けられた)からのデータが、上流データスロット199のうちの複数を占有し得る。例えば、図14は、本明細書に記載のバスプロトコルの様々な実施形態による、2線式バス106に沿った情報のやりとりの例を図示する。図14の「マスタ送信」列に示されるように、1つの下流データスロットは、スレーブノード1に関連付けられたスピーカ宛てのスピーカデータによって占有され得、2つの下流データスロット(SD2(1)およびSD2(2))は、スレーブノード2に関連付けられたスピーカ宛てのスピーカデータによって占有され得る。よって、スレーブノード2に関連付けられたスピーカは、スレーブノード1に関連付けられたスピーカのレートの2倍でデータを受信し得る。複数のデータスロットの類似的な使用は、上流データスロット199において発生してもよい。
いくつかの実施形態では、第1のスーパーフレーム190の上流データスロット199内の特定のデータスロットが第1の周辺デバイスからのデータを含んでもよい一方、第2のスーパーフレーム190の上流データスロット199内のその特定のデータスロットは第2の異なる周辺デバイスからのデータを含んでもよい。例えば、図14の「マスタ受信」列内の第1の同期応答フレームの後に示されるように、第1の上流データスロットはスレーブノード1に関連付けられたマイクロホンからのマイクロホンデータによって占有され得、第2の上流データスロットはスレーブノード0(MD0A)に関連付けられたマイクロホンAからのマイクロホンデータによって占有され得る。図14の「マスタ受信」列内の第2の同期応答フレームの後に示されるように、第1の上流データスロットはスレーブノード1に関連付けられたマイクロホンからのマイクロホンデータによって占有され得るが、第2の上流データスロットはスレーブノード0(MD0B)に関連付けられたマイクロホンBからのマイクロホンデータによって占有され得る。よって、スレーブノード1に関連付けられたマイクロホンは、スレーブノード104に関連付けられたマイクロホンのレートの2倍でバス106上でデータを提供し得る。複数のデータスロットの類似的な使用は、下流データスロット198において発生してもよい。図14は同じスレーブノードに関連付けられた複数の周辺デバイスが特定の上流データスロットを共有する実施例を図示しているものの、いくつかの実施形態では、異なるスレーブノードに関連付けられた複数の周辺デバイスが特定の上流データスロットを共有し得る。
上述のように、スレーブノード104は、I2S/TDMバスを介して(例えば、ノード送受信器120のI2S/TDM/PDM送受信器127を使用して)周辺デバイス108と連結され、スーパーフレームレートよりも低いレートで周辺デバイス108と通信し得る。スレーブノード104における設定は、スレーブ対周辺装置の通信がスーパーフレームレートに対してどの係数で低減されるか(例えば、2の係数、4の係数等)を決定し得、スレーブノード104に連結された複数の周辺デバイス108(または単一の周辺デバイス108への複数のチャネル)は、時分割多重化によってスレーブノード104とマスタノード102との間の通信スロットを共有し得る(例えば、2つの周辺デバイス108がマスタノード102とスレーブノード104との間の所与の通信スロットに交互にデータを載せ得る)。いくつかの実施形態では、データレートが低減されるときに「低減データレート」の周辺デバイス108がデータをスレーブノード104に送り返すのに長時間かかる場合、スレーブノード104は、データがマスタノード102に送信されるべき時間に先立って整数の数のスーパーフレームにおいてSYNC信号を周辺デバイス108に送信し得る(該整数は、スレーブノード104に記憶される)。
いくつかの実施形態では、ノード送受信器120のI2S/TDM/PDM送受信器127は、スーパーフレームレートに対して低減レートで動作し得る。例えば、48kHzのスーパーフレームレートにおける許容可能な低減レートとしては、24kHz、12kHz、6kHz、4kHz、3kHz、2.4kHz、2kHz、1.71kHz、および1.5kHzが挙げられる。ノード送受信器127は、上流または下流のI2S/TDM/PDM送受信器127によって受信されるデータを送出し得る。異なるスレーブノード104のI2S/TDM/PDM送受信器127は、異なるレートで動作し得る。いくつかの実施形態では、マスタノード102のI2S/TDM/PDM送受信器127は、システム100内の最も高いデータレートで動作し得る。
いくつかの実施形態では、バス106上のデータスロットは、連続的なフルオーディオレート(例えば、48kHz)で駆動されるように、またはデータを含まないスーパーフレーム190のデータスロットを飛ばすことによって低減レートで駆動されるように(例えば、システム100内の周辺デバイス108として「低減サンプリングレート」のマイクロホンノードしか存在しない場合)、構成され得る。この手法は、バス106上のチャネル帯域を増大させることなしにバス106上の活動レベルを低減させることによって、電力を節約し得る。
いくつかの実施形態では、バス106上のデータスロットは、連続的なフルオーディオレートで駆動されるように、またはスーパーフレーム190のデータスロットを飛ばすことなしに特定のスレーブノード104のバスデータスロットを複数のI2S/TDMチャネルに時分割することによって低減レートで駆動されるように、構成され得る。この手法は、異なる種類の周辺デバイス108がバス106に沿ってスレーブノード104に連結されているとき有利であり得る(例えば、スレーブノード104に連結された多軸加速度計、別のスレーブノード104に連結されたマイクロホンノードまたは増幅器ノード等)。この手法は、バス106上のチャネル帯域を増大させ、いくらかの電力を節約し得る。
バス106上のノードは、低減レート動作に関する構成情報を記憶するために、1つまたは2つ以上のレジスタを含んでもよい(例えば、メモリ1304内に)。例えば、I2SRRATEレジスタは、スーパーフレームレートを低減I2Sレートに分割するために使用され得るフィールドRRDIVを定義し得る。例えば、上記で論じたように、48kHzのスーパーフレームレートの場合、RRDIVは、いくつかの実施形態では、24kHz、12kHz、6kHz、4kHz、3kHz、2.4kHz、2kHz、1.71kHz、または1.5kHzの低減レートに設定され得る。I2SRRATEレジスタは、バス106上で低減レートデータスロットを有効化させるために使用され得る制御ビットRBUSも含んでもよい。いくつかの実施形態では、I2SRRATEレジスタは、その値がバスの全てのノード内で必ず同じになるようにするためにマスタ専用、自動ブロードキャストとして定義され得る一方、他の実施形態では、このようである必要はない。
I2SRATEレジスタは、スレーブノードのI2S/TDMレートをスーパーフレームレートの整数倍として選択するために使用されるフィールド(例えば、3ビットフィード)を含んでもよく、またはスーパーフレームレートの分数である。I2SRATEレジスタは、スーパーフレームレートを満たすためにI2S/TDMデータの低減または複製を確実化することによって増大レートのスレーブノード104におけるRXデータの取扱いを制御するために使用されるREDUCEビットも含んでもよい。共有フィールドは、バス106上のデータスロットの共有の有効化を可能にし得る。
I2SRRCTLレジスタは、ノードの処理デバイス1302が、新しい低減レートのサンプルを含むフルレートフレームを追跡することを許可するために使用されるビットを提供し得る。I2SRRCTLレジスタ内のENVLSBビットを設定すると、新しくサンプルが送信されるときに各データチャネルの最下位ビット(LSB)が設定され、さもなければクリアされる結果となり得る。I2SRRCTL内のENXBITビットを設定すると、各データチャネルのデータワードのLSBの後の特別なビットが利用される結果となり得る。この特別なビットは、新しくサンプルが送信されるとき設定され、さもなければクリアされ得る。いくつかの実施形態では、データワード長は、チャネル幅より小さくてもよく(例えば、32ビットのI2Sチャネルにおいて24ビットデータワード)、この特別なビットは、新しいサンプルを指示し得る(一方、チャネル内の残りのビットは、依然としてエラーデータを指示し得る)。I2SRRCTLレジスタ内のENSTRBビットを設定すると、ADR1ピンを、低減レートデータが更新されたフレームを指示するストロボとして構成し得る。I2SRRCTLレジスタ内のENCHANビットを設定すると、「フルレート」ノードの場合、該ノードを、低減レートデータが更新されたフレームを指示する特別なI2S/TDMデータチャネルを生成するように構成し得る。
I2SRRSOFFSレジスタは、低減レートのスレーブノード104内のSYNCエッジをスーパーフレームのインクリメントによって移動させるために使用されるフィールドを提供し得る。I2SRRSOFFSレジスタのRRSOFFSETフィールドは、低減レートのスレーブノード104のSYNCエッジをいくつかのスーパーフレームの分早く移動させるために使用される値を記憶し得る。このレジスタは、I2S/TDM受信データがアクセス時間の2つ以上のスーパーフレーム190を必要とするとき、バス106を介して転送されている低減レートデータのレイテンシを最小化するために使用され得る。いくつかの実施形態では、低減レートのスレーブノード104において、アクティブなSYNCエッジは、データがホスト110または他のプロセッサに送信されるべきよりも2個のスーパーフレーム190の分前に発生し得る。RRSOFFSETをNに設定すると、SYNCエッジをN個のスーパーフレームの分早く発生させ得る。受信データは、RRSOFFSETの値にかかわらず、依然として同じスーパーフレーム190内でバス106上を送信され得る。
補助電力およびバッテリー電力の送信
上記で論じたように、スレーブノード104は、それら自身の電源によってローカルで電力供給され得、かつ/またはバス106から電力を取り出し得る。いくつかの実施形態では、スレーブノード104は、周辺デバイス108としてスレーブノード104に関連付けられた増幅器に電力供給するための補助出力電力を取り出し、十分なオーディオを増幅器によって(およびことによると、同じまたは異なるスレーブノード104に接続された他の増幅器との組み合わせにおいて)生成し、スピーカに電力供給し得る。増幅器は、「インテリジェント」であってもよく(例えば、それ自身のデジタル信号処理能力を有する)、またはそうでなくてもよい(例えば、デジタル信号処理なし)。
バス106を介して補助電力を送信することは、スレーブノード104の主要ローカル電源が停電する緊急状態において特に有利であり得る。車両では、例えば、警告メッセージおよび他のアラートが依然としてオーディオシステムを介して送信され得る。バス106から補助電力を取り出すことは、ローカル電源の(例えば、アクティブスピーカと関連付けられた)スレーブノード104への接続および配線に関連するコストも排除し得る。
なお、バス106が電力をスレーブノード104に供給する実施形態では、バス106は、ローカル蓄電をサポートする電流を提供し得(例えば、1つまたは2つ以上のバッテリー、キャパシタ、スーパーキャパシタを充電するため)、それによって、スレーブノード104(例えば、オーディオ増幅器)に関連付けられた周辺デバイス108に電力供給するための更なるローカル電力またはファントム電源の必要性を低減または排除する。いくつかの実施形態では、バス106から到来する限られた電力は、ローカルエネルギー蓄積装置を有するスレーブノード106にフィードするために使用され得、エネルギー蓄積装置は、ピーク電力需要時には必要なエネルギーを提供する一方、低電力需要時に充電される。これは、高い波高率を有するオーディオ信号に応用される場合、特に有利であり得る。いくつかの実施形態では、ローカルバッテリーは、ローカルで電力供給されるスレーブノード104においても有用であり得る(例えば、ローカル電源の線径を低減させるために)。
図15は、スレーブノード104がエネルギー蓄積装置1502および周辺デバイス108(例えば、スピーカ)に連結されている配置1500のブロック図である。いくつかの実施形態では、スレーブノード104は、バス106から電力を取り出し得(例えば、図1および2に関連して上記で論じたように)、少なくとも部分的にエネルギーをエネルギー蓄積装置1502に蓄積するためにその電力を使用し得る。エネルギー蓄積装置1502は、キャパシタまたはバッテリー等の任意の好適なエネルギー蓄積装置を含んでもよい。特に、スレーブノード104のノード送受信器120(図示せず)は、バス106を介して電圧バイアスを受信する電源回路1314を含み、電圧バイアスからのエネルギーをエネルギー蓄積装置1502に提供し得る。スレーブノード104は、スピーカ108を駆動するためにエネルギー蓄積装置1502を選択的に使用し得る。いくつかの実施形態では、スレーブノード104は、バス106上に電力を運び、別のスレーブノード104に電力を供給するために、エネルギー蓄積装置1502を選択的に使用し得る。エネルギー蓄積装置1502は、増幅器、送受信器、および/もしくは他のコンポーネントまたは周辺デバイス108(例えば、デジタル信号プロセッサ、ADC、DAC、バッテリー管理回路等)に接続し得る。
スピーカとマイクロホンの両方を周辺デバイスとして有するノード
いくつかの実施形態では、スレーブノード104は、周辺デバイス108としてのスピーカと関連付けられ得(主に下流通信を使用して)、周辺デバイス108としてのマイクロホンと関連付けられ得(主に上流通信を使用して)、またはスピーカおよびマイクロホンの組み合わせと関連付けられ得る(バス106によってサポートされる上流通信および下流通信の両方を使用して)。スレーブノード104のスピーカおよびマイクロホンの数は、用途に応じて変動し得、任意の好適な組み合わせであってよい。周辺デバイスとしてのスピーカおよびマイクロホンの両方に関連付けられたスレーブノード104のいくつかの実施例を本明細書に記載する。これらの実施形態のうちのいくつかでは、スレーブノード104のノード送受信器120の周辺デバイス通信回路(I2S/TDM/PDM送受信器127、I2C送受信器129、または1つもしくは2つ以上の割込み要求能力を有するGPIOピン等)は、少なくとも1つのスピーカおよび少なくとも1つのマイクロホンと通信し得る。ホスト110は、(マスタノード102を介して)データをバス106上にプッシュして、これらのデバイスと通信し、かつ/またはこれらのデバイスから(マスタノード102を介して)バス106からのデータを受信し得る。
衝突時におけるセンシング
システム100が車両に含まれるいくつかの実施形態では、バス106は、衝突時に車両の保全性および事故のレベルを理解する助けとして、デジタルネットワークを提供し得る。マイクロホンおよび/または他のセンサ(周辺デバイス108内に含まれる)は、関連付けられたスレーブノード104付近の環境状態を感知するために使用され得、感知された情報は、車両の安全性および保全性に関する情報を収集することを希望するアプリケーションへと上流または下流に送信され得る。他の感知の例としては、数あるなかでも、超音波センサ、視覚センサ、または電気機械センサ(例えば、加速度計および回転儀)が挙げられる。
会議システム
いくつかの実施形態では、システム100は、あるスレーブノード104(または複数のスレーブノード106)に関連付けられたマイクロホンによってサンプリングされたオーディオを、別のスレーブノード104(または複数の他のスレーブノード104)に関連付けられたスピーカに分散し得る。例えば、バス106は、オーディオ通信が乗客と運転手との間で、運転手から後部座席へ、または任意の一対の場所の間で提供され得るように、車両(例えば、自動車、リムジン、バス、ミニバン、航空機等)周辺で取得したローカルなマイクロホン情報を分配し得る。システム100のいくつかの実施形態は、スレーブノード104のうちの任意の1つに関連付けられたマイクロホンによってサンプリングされたオーディオを、バス106によって提供されるオーディオネットワーク内の多くの他のスレーブノード104に、ブロードキャストし得る。バス106は、任意の好適な2点間で任意の他のデータも送信し得る(例えば、メッセージ、データファイル、コンテンツストリーム等)。
いくつかの実施形態では、スレーブノード104は、マイクロホンおよび会議ユーザインターフェース要素と通信する周辺デバイス通信回路(ノード送受信器120のI2S/TDM/PDM送受信器127、I2C送受信器129、または割込み要求能力を有する1つもしくは2つ以上のGPIOピン等)を含んでもよい(例えば、周辺デバイス108として)。ユーザは、マイクロホンからのオーディオをバス106に連結された別のデバイスに提供することを希望するとき、会議ユーザインターフェース要素を作動させ得る。会議ユーザインターフェース要素は、例えば、ボタン、身振り認識デバイス、(例えば、会議を開始および終了するコマンドを認識する音声認識タスクを実行し得る処理デバイスに連結された)マイクロホン、またはタッチスクリーン表示器の指定された部分であってもよい。会議ユーザインターフェース要素がユーザによって作動されると、スレーブノード104は、マイクロホンからのデータを、1つまたは2つ以上の他のデバイス(例えば、ノードまたはホスト110)による受信および/または再生のために、バス104上の上流および/または下流に提供し得る。いくつかの実施形態では、ホスト110は、マイクロホンデータを受信し得、それを再生のためにバス106上の別のスレーブノード104にルーティングし得る。スレーブノード104は、会議ユーザインターフェース要素の作動に応答して、マイクロホンデータの発信元および/またはマイクロホンデータの所望の宛先(a)を示すルーティングデータも提供し得る。
例えば、図16は、ホスト110、マスタノード102、および2つのスレーブノード104、ならびにそれらに関連付けられた周辺デバイス108の配置1600を、配置1600のホスト110によって実行され得る、配置1600にわたってオーディオを選択的にルーティングする方法1602の流れ図と共に、描く。配置1600では、スレーブノード0は、単一のスピーカと関連付けられ得る一方、スレーブノード1は、スピーカ、マイクロホン、および上記で論じた会議ユーザインターフェース要素として機能するボタンと関連付けられ得る。方法1602は、配置1600内のデータのルーティングに対する「ホスト中心型」手法を表し得る。
1604において、ホスト110は、音楽0をスレーブノード0に提供し得る。音楽0は、「通常」動作中にスレーブノード0にルーティングされる任意の所望のデータストリームを表す。いくつかの実施形態では、音楽0は、ビデオデータ、音声データ、または任意の他の好適なデータであってもよい。ホスト110は、1604において、本明細書に開示の任意のバスプロトコルを使用して、マスタノード102を介してバス106を介して音楽0をスレーブノード0に提供し得る。
1606において、ホスト110は、音楽1をスレーブノード1に提供し得る。音楽1は、「通常」動作中にスレーブノード1にルーティングされる任意の所望のデータストリームを表す。いくつかの実施形態では、音楽1は、ビデオデータ、音声データ、または任意の他の好適なデータであってもよい。ホスト110は、1606において、本明細書に開示の任意のバスプロトコルを使用して、マスタノード102を介してバス106を介して音楽1をスレーブノード1に提供し得る。
1608において、ホスト110は、スレーブノード1からボタンデータを受信し得る。ボタンデータは、ボタンの状態(例えば、ボタンがユーザによって押下されたかどうか)を示し得る。ホスト110は、1608において、本明細書に開示の任意のバスプロトコルを使用して、マスタノード102を介してバス106を介してスレーブノード1からボタンデータを受信し得る。
1610において、ホスト110は、スレーブノード1からマイクロホンデータを受信し得る。マイクロホンデータは、スレーブノード1に関連付けられた周辺デバイス108としてのマイクロホンによって取り込まれたオーディオデータであってもよい。ホスト110は、1610において、本明細書に開示の任意のバスプロトコルを使用して、マスタノード102を介してバス106を介してスレーブノード1からマイクロホンデータを受信し得る。
1612において、ホスト110は、1608において受信したボタンデータが、ボタンがユーザによって押されたことを示しているかどうか決定し得る。1612において、ホスト110がボタンは押されていないと決定すると、ホスト110は、1604に戻り、音楽0をスレーブノード0に提供し続け得る。
1612において、ホスト110がボタンが押されたと決定すると、ホスト110は、1614に進み、スレーブノード1からのマイクロホンデータをスレーブノード0に提供し得る。ホスト110は、音楽1の代わりにマイクロホンデータをスレーブノード1に提供し、マイクロホンデータのために音楽1を中断し得る。スレーブノード1は、マイクロホンデータをそれに関連付けられたスピーカに提供し、よって、スレーブノード1に関連付けられたマイクロホンによって収集されたオーディオをスレーブノード0に関連付けられたスピーカに提供し得る。1614において、ホスト110は、本明細書に開示の任意のバスプロトコルを使用して、マスタノード102を介してバス106を介してマイクロホンデータをスレーブノード1に提供し得る。
1616において、ホスト110は、音楽1をスレーブノード1に提供することを中断し得(スレーブノード1に関連付けられたマイクロホンがそのデータをバス上の他のデバイスに送信している間、スレーブノード1に関連付けられたスピーカを静かにするため)、次いで1612に戻り、ボタンが依然として押されているかどうか決定し得る。いくつかの実施形態では、1616において、ホスト110は、音楽1のボリュームを、その提供を中断する代わりに、低減させ得る。いくつかの実施形態では、1616において、ホスト110は、音楽1のボリュームを、その提供を中断する代わりに、消音し得る。
図17は、様々な実施形態による、配置1500にわたってのオーディオの選択的ルーティングの間に、図16の配置1600のスレーブノード0によって実行され得る方法1700の流れ図である。方法1700は、配置1600内のデータのルーティングに対する「スレーブ中心型」手法を表し得る。
1702において、スレーブノード0は、ホスト110から音楽0を受信し得る。1604に関連して上記で論じたように、音楽0は、「通常」動作中にスレーブノード0にルーティングされる任意の所望のデータストリームを表す。いくつかの実施形態では、音楽0は、ビデオデータ、音声データ、または任意の他の好適なデータであってもよい。1702において、ホスト110は、本明細書に開示の任意のバスプロトコルを使用して、マスタノード102を介してバス106を介して音楽0をスレーブノード0に提供し得る。
1704において、スレーブノード0は、スレーブノード0に関連付けられた周辺デバイス108としてのスピーカに音楽0を提供し得る。応答して、スピーカは、音楽0を可聴信号として出力し得る。
1706において、スレーブノード0は、スレーブノード1からボタンデータを受信し得る。ボタンデータは、スレーブノード1に関連付けられたボタンの状態(例えば、ボタンがユーザによって押下されたかどうか)を示し得る。いくつかの実施形態では、スレーブノード0は、バス106を介して直接スレーブノード1からボタンデータを受信し得る(例えば、データが先ずマスタノード102に行く必要なしに)。いくつかの実施形態では、スレーブノード0は、マスタノード102を介して、かつ/またはホスト110を介してスレーブノード1からボタンデータを受信し得る。一般に、1706において、スレーブノード0は、本明細書に開示の任意のバスプロトコルを使用して、スレーブノード1からボタンデータを受信し得る。
1708において、スレーブノード0は、スレーブノード1からマイクロホンデータを受信し得る。マイクロホンデータは、スレーブノード1に関連付けられた周辺デバイス108としてのマイクロホンによって取り込まれたオーディオデータであってもよい。いくつかの実施形態では、スレーブノード0は、バス106を介して直接スレーブノード1からマイクロホンデータを受信し得る(例えば、データが先ずマスタノード102に行く必要なしに)。いくつかの実施形態では、スレーブノード0は、マスタノード102を介して、かつ/またはホスト110を介してスレーブノード1からマイクロホンデータを受信し得る。一般に、1708において、スレーブノード0は、本明細書に開示の任意のバスプロトコルを使用して、スレーブノード1からマイクロホンデータを受信し得る。
1710において、スレーブノード0は、1706において受信したボタンデータが、ボタンがユーザによって押されたことを示しているかどうか決定し得る。1710において、スレーブノード0がボタンは押されていないと決定すると、スレーブノード0は、1702に戻り、ホスト110から音楽0を受信し続ける。
1710において、スレーブノード0がボタンが押されたと決定すると、スレーブノード0は、1712に進み、マイクロホンデータをスレーブノード0に関連付けられたスピーカに提供し得る。スレーブノード0は、音楽0の代わりにマイクロホンデータをスピーカに提供し、マイクロホンデータのために音楽0を中断し得る。スレーブノード0は、次いで、1710に戻り、ボタンが依然として押されているかどうか決定し得る。
音声通話のルーティング
いくつかの実施形態では、システム100は、単一の受信器からの着信音声通話および発信音声通話をルーティングする(例えば、車両内の異なる位置にわたって通話をルーティングする)ためのデジタルオーディオネットワークを提供し得る。低レイテンシの下流チャネルおよび上流チャネルを活かして、高品質の音声通話が、車両全体にわたって多くの興味深い方法でルーティングされ得る。
いくつかの実施形態では、スレーブノード104は、無線送受信器と連結された周辺デバイス通信回路(ノード送受信器120のI2S/TDM/PDM送受信器127、I2C送受信器129、または割込み要求能力を有する1つもしくは2つ以上のGPIOピン等)を周辺デバイス108として含んでもよい。無線送受信器は、音声通話を受信し得、スレーブノード104は、音声通話を表すデータをバス106上に載せ得る(例えば、上流または下流へ)。
例えば、図18は、無線送受信器がスレーブノード1に関連付けられた周辺デバイス108内に含まれるシステム100の実施形態を描く。スレーブノード1は、本明細書に開示の任意のバスプロトコルに従って、無線送受信器から音声通話データを受信し得、それをシステム100内の(上流および/または下流の)他のデバイスに提供し得る。スレーブノード1はまた、本明細書に開示の任意のバスプロトコルに従って、システム100内の任意の他のデバイスからデータを受信し、発信音声送信に含めるためにそれを無線送受信器に提供し得る。
別の実施例では、図19は、無線送受信器1902がホスト110に連結されている(例えば、任意の好適な通信プロトコルを使用して)システム100の実施形態を描く。ホスト110は、本明細書に開示の任意のバスプロトコルに従って、無線送受信器1902からデータを受信し、それをシステム100内の他のデバイスに提供し得る。ホスト110はまた、本明細書に開示の任意のバスプロトコルに従って、システム100内の任意の他のデバイスからデータを受信し、発信音声送信に含めるためにそれを無線送受信器1902に提供し得る。
通信受信器および通信送信器
音声通話から無線送受信器に関連して上記で論じたように、バス106に接続されたスレーブノード104の周辺デバイス108としてスピーカおよびマイクロホンを提供する代わりに、またはそれに加えて、スレーブノード104は、周辺デバイス108として、1つまたは2つ以上の通信送受信器に関連付けられ得る。このような送受信器の例としては、Bluetooth(登録商標)モジュール、ニアフィールド送受信器、無線インターネット送受信器、イーサネット(登録商標)送受信器、イーサネット(登録商標)オーディオビデオブリッジング(EAVB)送受信器、モノのインターネット(IoT)アプリケーションにおいてデータを送信するために使用される送受信器等が挙げられる。システム100は、下流オーディオ通信および上流オーディオ通信だけでなくストリーミング通信も提供するようにバス106を拡張する物理層通信リンクを事実上提供し得る。オーディオ情報、ビデオ情報、および任意の好適な情報が、バスを使用して同期的に送信され得る(I2S/TDM/PDM送受信器127およびI2C送受信器129に関連して上記で論じたように、データは、オーディオI2S/TDM、I2C、IRQ等と同時に送信される)。この機能は、時間符号化された媒体を供給および受信するために、または異なるデータストリーム間のタイミングが重要である用途において、特に有利であり得る。図18および19を参照して上記で論じた実施形態は、任意の好適な通信受信器および通信送信器にも当てはまり得る。
例えば、いくつかの実施形態では、スレーブノード104に関連付けられたBluetooth(登録商標)モジュールは、信号がシステム100内の他のデバイスに供給され得るように、モバイルデバイスと通信し、Bluetooth(登録商標)を介してバス106に(例えば、スレーブノード104またはマスタノード102に)信号を送信し得る(例えば、オーディオ信号は、バス106に接続されたスレーブノード104に関連付けられたスピーカによって再生され得る)。より一般には、本明細書に開示のバスプロトコルは、他の通信システムへのブリッジとして、かつ/または複数の通信システムをブリッジするために、使用され得る。
コンテンツのルーティング
いくつかの実施形態では、システム100は、オーディオコンテンツが任意の1つまたは2つ以上のスレーブノード104にローカルで送信されることを可能にするデジタルオーディオネットワークを提供し得る。例えば、システム100は、デジタルオーディオネットワークの異なる部分(例えば、リアチャネル、フロントチャネル、車両の特定の座席にあるスピーカ等)にオーディオを選択的にルーティングするように構成され得る。この機能の例は、図16および17を参照して上記で論じた。オーディオに加えて、このような選択的なルーティングは、任意の他の好適な種類のストリーミングコンテンツに応用され得る。
自動ミキシング
いくつかの実施形態では、システム100によって有効化されるノード間通信は、周辺デバイス108に含まれる多くのマイクロホンからオーディオ信号を収集し、システム100によって実装されるデジタル分散オーディオネットワーク内のダブルトークおよび/またはエコーを防止するために使用され得る。特に、バス106上の異なるスレーブノード104は、バス106上で送信されているオーディオ信号の存在を認識してもよく、応答してオーディオ出力を調節することによって調整してもよい。図16および17に関連して上記で示したように、複数のオーディオソースをどのように適切に調整するかに関する制御上の意思決定は、分散方式で(例えば、1つまたは2つ以上のスレーブノード104に含まれる処理デバイス1302によって)、または中央集中方式で(例えば、マスタノード102に含まれる処理デバイス1302もしくはホスト110によって)なされ得る。
ビームフォーミング
いくつかの実施形態では、バス106上の複数のスレーブノード104に同期オーディオコンテンツを供給および収集するシステム100の能力は、ビームフォーミング用途をサポートし得る。このような用途としては、スピーカがどこに位置するか検出すること、および/または出力オーディオが必ず特定の区域に焦点化されるように(ただし、該区域外では低減した可聴度もしくは不可聴な状態で)ビームフォーミングすることが挙げられる。任意の好適なオーディオ焦点化送信または受信の用途も、システム100を活用し得る。
マイクロホンの接続性
いくつかの実施形態では、システム100は、既存のアナログマイクロホン、コネクタ、および前置増幅器と互換性があり、標準3心シールドマイクロホンケーブル配線を使用して動作する、マイクロホンデジタル相互接続を提供するために使用され得る。
デジタルマイクロホンをプロフェッショナルオーディオおよび拡声に導入する試みは、以前からなされてきた。これらの試みにおいて、オーディオ信号は、カプセルで直接アナログからデジタルに変換され、次いでデジタルで送信されてきた。この手法は、カスタムマイクロホン、特殊なデジタルケーブル配線、およびデジタル受信器を必要とし、よって、プロフェッショナルオーディオエコシステムの残部とは互換性がなかった。
システム100は、標準マイクロホンオスXLRコネクタ(またはマイクロホンに接続された他のカバー)に含まれるADCを、ノード送受信器120を使用してバス106に接続することによって、デジタル相互接続システムを提供するために使用され得る。ADCは、任意の既存のアナログダイナミック型マイクロホン、エレクトレットコンデンサ型マイクロホン、またはコンデンサ型マイクロホンの出力に直接連結され得、標準マイクロホンのバイアス48Vの「ファントム電源」を介して電力供給され得る。ADCは、アナログマイクロホン信号をデジタル信号に変換し得、そのデジタル信号は、標準マイクロホンケーブル配線を使用して、バス106を介して(ノード送受信器120を介して)送信され得る。ほとんどの実施形態では、バス106を介した通信の特徴である高周波信号は、一組の共有導体上で相互に干渉することなしに低周波アナログマイクロホン信号と組み合わされ得、両者は、同じケーブル上で送信され、所望に応じて容易に分離され得る。バス106は2線式リンクから形成されるため、リンクは、標準マイクロホンケーブル配線によって提供され得る。また、バス106を介した通信は典型的に標準オーディオよりもはるかに高い周波数で行われるため、バス106を介した通信は、マイクロホンケーブル配線上で後方互換性/前方互換性のために既存のアナログマイクロホン信号と組み合わされ得る。
マイクロホンの受信側では、いくつかの異なる相互接続配置が使用され得る。いくつかの実施形態では、相互接続は、ノード送受信器120およびデジタル出力を含んでもよく、デジタル出力は、標準S/PDIF、AES/EBU、AES42、またはオーディオ受信デバイス(例えば、ミキサーもしくはオーディオ入力デバイス)への接続のための別のデジタルフォーマットに変換され得る。いくつかの実施形態では、相互接続は、ノード送受信器およびDACを含んでもよく、アナログ信号を標準マイクロホン入力に送出し得る。このような手法の利点としては、アナログ相互接続ではなく低雑音のデジタル相互接続を使用することが挙げられる。いくつかの実施形態では、相互接続はアナログマイクロホン入力に接続し得、ノード送受信器120を介して送信されている信号はオーディオ帯域外であり、よってアナログ機器と後方互換である。いくつかの実施形態では、相互接続は、デジタル出力およびアナログ信号の両方のための二重の受信器接続部を含んでもよく、異なる用途のためにデジタル信号とアナログ信号との間で選択を行う選択肢をユーザに提供する(例えば、二次プリアンプおよび変換のためのアナログ信号)。
いくつかの実施形態では、ノード送受信器120およびDACが、XLRコネクタまたは48Vの「ファントム電源」を使用して電力供給される相互接続ボックス内に直接内蔵されてもよい。配置全体は、ノード送受信器120および変換器をマイクロホンコネクタの内側に有する標準マイクロホンケーブルを含んでもよい。
これらの実施形態は、複数のマイクロホン設定に応用され、「デジタルスネーク」を構築するために使用され得る。このような実施形態では、いかなる大きな多心ケーブル配線または特殊なデジタルケーブル配線も必要とされることなしに、複数のマイクロホン信号(アナログまたはデジタルのいずれか)が組み合わされ、1本の標準マイクロホンケーブルを介してバス106を介して送信され得る。受信側では、上記に記載したように、ノード送受信器120は、標準オーディオハードウェアへの相互接続のために各オーディオ入力チャネルを分離し得る。
図20〜23は、様々な実施形態による、システム100に含まれ得るマイクロホン2002、マイクロホンケーブル2010、およびオーディオ受信デバイス2020の例示的な配置を描く。これらの配置の各々において、マイクロホン2002は、ケーブルコネクタ2004を有する。マイクロホンケーブル2010は、ケーブルコネクタ2004に連結する第1のコネクタ2006と、オーディオ受信デバイス2020に連結する第2のコネクタ2012とを有する。1つまたは2つ以上の導体が、第1のコネクタ2006と第2のコネクタ2012とを連結し、その間でデータを送信する。1つまたは2つ以上の導体は、例えば、標準マイクロホンケーブル配線であってもよい。オーディオ受信デバイス2020は、マイクロホンケーブル2010の第2のコネクタ2012に連結するケーブルコネクタ2018を有し得る。いくつかの実施形態では、ケーブルコネクタ2004、第1のコネクタ2006、第2のコネクタ2012、およびケーブルコネクタ2018は、XLRコネクタであってもよく、または任意の他の好適な幾何形状を有してもよい。
図20は、ADC2008が、第1のコネクタ2006内またはそれに近接して配され、第2のコネクタ2012内またはそれに近接して配されたノード送受信器120に提供されるアナログマイクロホン信号からデジタル出力を生成する、配置2000を描く。ノード送受信器120の出力は、上流の4本のワイヤ対上の送信のための上流信号および/または下流の4本のワイヤ対上の送信のための下流信号を提供する4本のワイヤを含んでもよい。ADC2008のデジタル出力は、ノード送受信器120の出力に並行して提供され得る(例えば、それ自身のワイヤ(複数可)上で)。オーディオ受信デバイス2020のケーブルコネクタ2018は、ノード送受信器120の出力を通信する4本のワイヤを受け入れ、それら4本のワイヤ上の信号をバス106にルーティングし得、ADC2008のデジタル出力を通信するワイヤを受け入れ、そのデジタル出力を任意の好適なデジタルオーディオ入力にルーティングし得る。
図21は、ADC2008が、第1のコネクタ2006内またはそれに近接して配され、アナログマイクロホン信号からデジタル出力を生成する、配置2100を描く。このデジタル出力は、第2のコネクタ2012内またはそれに近接して配されたノード送受信器120に提供される。図20に関連して上記で論じたように、ノード送受信器120の出力は、上流の4本のワイヤ対上の送信のための上流信号および/または下流の4本のワイヤ対上の送信のための下流信号を提供する4本のワイヤを含んでもよい。ADC2008のデジタル出力は、第2のコネクタ2012内またはそれに近接して配されたDAC2016に並行して提供され得る。DAC2016のアナログ出力は、ノード送受信器120の出力に並行して提供され得る(例えば、それ自身のワイヤ(複数可)上で)。オーディオ受信デバイス2020のケーブルコネクタ2018は、ノード送受信器120の出力を通信する4本のワイヤを受け入れ、それら4本のワイヤ上の信号をバス106にルーティングし得、DAC2016のアナログ出力を通信するワイヤを受け入れ、そのアナログ出力を任意の好適なアナログオーディオ入力にルーティングし得る。
図22は、ADC2008が、第1のコネクタ2006内またはそれに近接して配され、同じく第1のコネクタ2006内またはそれに近接して配されたノード送受信器120に提供されるアナログマイクロホン信号からデジタル出力を生成する、配置2200を描く。ノード送受信器120の出力は、上流の4本のワイヤ対上の送信のための上流信号および/または下流の4本のワイヤ対上の送信のための下流信号を提供する4本のワイヤを含んでもよい。マイクロホン2002のアナログ出力は、ノード送受信器120の出力と組み合わされ得る(例えば、一組の少なくとも4本の共有ワイヤ上で)。オーディオ受信デバイス2020のケーブルコネクタ2018は、マイクロホン2002のアナログ出力と組み合わされたノード送受信器120の出力を通信する4本のワイヤを受け入れ、それらの4本のワイヤをバス106および任意の好適なアナログオーディオ入力にルーティングし得る。上記で論じたように、バス106を介して通信される信号は、一般にアナログオーディオ信号とは周波数が重複しないため、信号は、同じ一組の導体上を送信され得、所望の信号が取り出され得る(例えば、フィルタリングによって、または最終的な受信デバイスが他の周波数帯域内の信号を認識できないことによって)。
図23は、ADC2008が、第1のコネクタ2006内またはそれに近接して配され、アナログマイクロホン信号からデジタル出力を生成する、配置2300を描く。このデジタル出力は、第2のコネクタ2012内またはそれに近接して配されたノード送受信器120に提供される。図20に関連して上記で論じたように、ノード送受信器120の出力は、上流の4本のワイヤ対上の送信のための上流信号および/または下流の4本のワイヤ対上の送信のための下流信号を提供する4本のワイヤを含んでもよい。ADC2008のデジタル出力は、第2のコネクタ2012内でノード送受信器120の出力に並行して提供され得(例えば、それ自身のワイヤ(複数可)上で)、マイクロホン2002からのアナログマイクロホン信号は、第2のコネクタ2012内で両者に並行して提供され得る(例えば、それ自身のワイヤ(複数可)上で)。オーディオ受信デバイス2020のケーブルコネクタ2018は、ノード送受信器120の出力を通信する4本のワイヤを受け入れ、それら4本のワイヤ上の信号をバス106にルーティングし、アナログマイクロホン信号を通信するワイヤを受け入れ、そのアナログ信号を任意の好適なアナログオーディオ入力にルーティングし、ADC2008のデジタル出力を通信するワイヤを受け入れ、そのデジタル信号を任意の好適なデジタルオーディオ入力にルーティングし得る。
図20〜23はマイクロホンケーブル2010内の様々な位置における様々なコンポーネントを図示しているものの、これらの配置は、単純に例証的なものであり、コンポーネントは、好適なように再配置され得る。例えば、いくつかの実施形態では、コンポーネントのうちのいくつかまたは全て(例えば、ADC2008、ノード送受信器120、および/またはDAC2016)は、ケーブルコネクタ2004またはケーブルコネクタ2018内に位置付けられ得る。上記で論じたように、いくつかの実施形態では、アナログマイクロホン信号は、ノード送受信器120によって生成されるバス106上のトラフィックおよび/またはADC2008によって生成されるアナログマイクロホン信号のデジタル表現と導体を共有し得る。
バス上のノードとしての無線受信機
音声通話から無線送受信器に関連して上記で論じたように、バス106に接続されたスレーブノード104の周辺デバイス108としてスピーカおよびマイクロホンを提供する代わりに、またはそれに追加して、スレーブノード104はまた、周辺デバイス108として、FM(周波数変調)受信器、AM(振幅変調)受信器、衛星無線受信機、テレビ/メディア受信器、または他の無線通信信号受信器等の1つまたは2つ以上の無線受信機と関連付けられ得る。従来の車両環境では、受信器は、屋根、後方窓、後方スポイラー、または車両の他の部分に装着されたアンテナを有し、長尺ワイヤが、アンテナを車両の前方のヘッド無線ユニットに接続する。この従来型の手法は長尺ワイヤによる電磁干渉を被り得、このことは、長尺ワイヤにわたって運ばれている信号の周波数に干渉しないように、他の車載エレクトロニクスが注意深く設計および制御されなければならないことを必要とし得る。
これらの問題を軽減し、設計の柔軟性および性能を改善するため、システム100のいくつかの実施形態では、ノード送受信器120(例えば、スレーブノード104に含まれる)は、車両の屋根または他の部分に連結されたアンテナと連通している周辺デバイス通信回路を含んでもよく、周辺デバイス通信回路は、有線接続を介してアンテナと通信し得る。ノード送受信器120は、アンテナの近くに位置付けられ得、アンテナによって受信されるデータは、アンテナをヘッドユニットに連結する単一の長尺導体を介してではなく、バス106を介してヘッドユニット(例えば、ヘッドユニットに含まれるマスタノード102またはホスト110)に通信され得る。これは、受信したデータを他の車載エレクトロニクスからの干渉にそれほど影響されやすくない周波数帯域においてデジタル的に送信することによって、電磁干渉の問題を低減または排除し得る。
図24は、様々な実施形態による、車両の屋根に連結されたアンテナ2404にスレーブノード104が近接している配置2400を図示する。アンテナ2404(およびあらゆる関連付けられた無線受信機回路)は、スレーブノード104の周辺デバイス108であってもよく、受信した無線データを任意の好適な周辺デバイス通信回路を介してスレーブノード104に提供し得る。スレーブノード104は、受信した無線データを(例えば、未処理または処理された形態で)バス106を介して車両のヘッドユニット2402内のマスタノード102に提供し得る。
アンテナと通信する周辺デバイス通信回路(例えば、ノード送受信器120のI2S/TDM/PDM送受信器127、I2C送受信器129、および/または1つもしくは2つ以上の割込み要求能力を有するGPIOピン)は、アンテナに関連付けられた無線受信機のための既存のI2Sおよび/またはI2Cインターフェースとインターフェース接続し得、よって、ノード送受信器120は、無線受信機と容易にインターフェース接続し得る。いくつかの実施形態では、ノード送受信器120は、受信した無線信号(通常、好適なキャリア周波数に固定されている)を処理してから受信した無線信号をバス106を介して(例えば、スーパーフレームレートに対応するオーディオサンプリング周波数で)送信するサンプルレート変換器(例えば、内蔵型)も提供し得る。次いで、無線受信機から受信されたデータは、バス106上のスレーブノード104へと(例えば、スピーカへ、またはユーザへの別の供給のために)上流または下流に送信され得る。
圧縮ビデオのトランスポート
上記で論じたように、オーディオをバス106を介して送信することに加えて、またはその代わりに、ビデオがバス106を介して送信され得る。いくつかの実施形態では、適切なデータレートを有する圧縮ビデオ(または、後方視認カメラまたは後部座席のビデオモニタ等の低品質ビデオ)は、バス106を介しても送信され得る。例えば、カメラからの圧縮ビデオが送信され得、またはビデオ表示器のための圧縮ビデオが送信され得る。
ユーザインターフェースの調整つまみ
マイクロホンおよび任意の好適なセンサは、ユーザインターフェースを提供し、オーディオ用途を改善する周辺デバイス108として、システム106内に含められ得る。車両環境におけるマイクロホンおよび/またはセンサの用途としては、ハンドフリーのユーザインターフェース、(例えば、音声制御/コマンド)、テレマティクス、運転者の監視、緊急時支援/ロードサービス、および身振り認識用途が挙げられる。例えば、マイクロホンは、シートベルトまたは車両内の任意の好適な位置に組込まれ得る。バス106は、マイクロホンおよび任意の好適なセンサによって収集されたオーディオデータを送信するための効率的な通信チャネルを提供し得る。いくつかの実施形態では、身振り認識センサ、押しボタン、メモリデバイス、表示器等の任意の好適なI2Cデバイスも、システム100に含まれ得る(例えば、周辺デバイス108として、ノード送受信器120に含まれるI2C送受信器129と通信し得る)。
バックプレーンの接続性
いくつかの実施形態では、システム100は、異なるサブシステム(例えば、異なる制御ボードに含まれるか、または同じボード上にある)を低レイテンシで相互接続するために使用され得る。特に、システム100は、複数のボードをデイジーチェーンしてはるかに大きいシステムを構築するために使用され得る。システム100はまた、より小さいデバイスを有するボードを同じバス106を介して相互接続し得る。数あるなかでも、会議室、娯楽システム、インターホンシステム、スマートホーム、監視システム、および緊急時システムは、バス106を活用してサブシステムを相互接続し得る。
いくつかの実施形態では、システム100は、興行舞台、録音スタジオ、または任意の他の好適な娯楽環境のためのオーディオビジュアル機器を相互接続するために使用され得る。オーディオビジュアル機器を相互接続するために必要とされる配線は、2線式バス106を使用することによって、従来の太いケーブルの技法と比較すると有利に低減され得る。オーディオビジュアル機器としては、スピーカ、ミキシングコンソール、楽器、タイムコード生成機器、照明機器、増幅器、ビデオ表示器、花火、および任意の他の好適な機器が挙げられる。例えば、図25は、複数の種類のオーディオビジュアル機器が、ノード送受信器120を含み、よってスレーブノード104として機能し、バス106に沿って通信し得る配置2500を図示する。特に、マスタコンサルト2502は、ホスト110およびマスタノード102を含んでもよく、ノード送受信器120は、ミキシングコンソール2504、楽器2506、照明機器2508、増幅器2510、スピーカ2512、および花火コンソール2514内に含まれてもよく、またはそれらに連結されてもよい。これらの機器の各々は、周辺デバイス108として機能し得、それに関連付けられたノード送受信器120と、任意の好適な周辺デバイス通信回路(例えば、I2S/TDM/PDM送受信器127、I2C送受信器129、および/または割込み要求能力を有する1つもしくは2つ以上のGPIOピン)を使用して、通信し得る。これらの機器からのデータは、本明細書に開示の任意のバスプロトコルに従って、ノード送受信器120によってバス106沿いの他の機器に提供され得る。
システム100は、任意の好適な環境において機器を相互接続するために使用され得る。例えば、システム100は、多くのセンサおよびサブシステムを有する医療機器(例えば、患者モニタリング用途のための)を、図25に関連して上記で論じた様式において相互接続するために使用され得る。2線式バス106の使用は、これらのセンサおよびシステムを接続する配線を従来の手法と比較して低減させ得る。
振動計測
いくつかの実施形態では、システム100は、炭素繊維材料等の、材料が応力試験を受ける際または使用中に、該材料の多くの部分を監視するように配置されたマイクロホンおよび他のセンサを相互接続するために使用され得る。材料としては、例えば、シート状材料、物体、鉄道線路、橋、車両、または建物が挙げられる。これらのマイクロホンおよび他のセンサ、ならびに/または材料もしくは物体の構造試験のための刺激を生成するデバイスも、本明細書に開示の任意のバスプロトコルに従って、システム100内のバス106を使用して効果的に接続され得る。
制御システム
いくつかの実施形態では、上記で論じたように、システム100は、低レイテンシのデイジーチェーンされた通信アーキテクチャを提供し得る。システム100のデータ転送における低レイテンシおよび同期性のため、システム100は、制御システム、とりわけ配線の低減による恩恵を受け得る制御システムおよび/またはバス106によって供給される電力で動作し得る制御システムのための効果的な通信チャネルを提供し得る。制御システムは、システム100を有利に使用して、制御機能を達成するためにバス106上のノード間でコマンドを通信、またはバス106上のノードの状態に関連付けられたデータを通信し得る。
システム100が耐障害性要件を有するシステム内に実装される場合、スレーブノード104は、スレーブノード104のうちの任意の1つが最後のスレーブノード104としてプロビジョニングされ得るリング構成のバス上に接続され得る。リング構成の例は、図12に関連して上記で論じた。リング内のバスリンクが故障しても、リング構成は、ノード間接続を維持するための耐故障性構成を提供し得る。バス106はまた、リング内の適切な最後のスレーブノード104を発見し障害から復旧するために、本明細書で論じたノード発見メカニズムを活用し得る。
低レイテンシ通信リンクを介した分散処理
システム100は、異なるスレーブノード104間で処理作業を分散するために使用され得る。上記で論じたように、これは、低レイテンシ通信リンクが依然としてノードを相互接続している状態で、ノードにおいてローカル処理を実行することが望ましい制御システムにとって、有利であり得る。例えば、セキュリティ機能/安全機能が、複数のスレーブノード104間で分散され得る。スレーブノード104は、そのスレーブノード104に関連付けられた1つまたは2つ以上の周辺デバイス108(例えば、ロボット四肢を監視および制御するデバイス)が力を過剰行使するのを、またはローカルで検出された問題に性急に反応するのを、防止するためのメカニズムを実装し得る。システム100は、情報をスレーブノード104から中央集中型プロセッサにただちに送信する必要性(これは、システムを危うくする可能性を有する)を軽減または防止し得る分散ローカル処理を有効化し得る。
いくつかの実施形態では、システム100のブロードキャスト機能は、スレーブノード104によって、他のスレーブノード104の周辺デバイス108として機能する他のセンサ/サーボ/アクチュエータに注意を向けるために、かつ中央プロセッサ(例えば、ホスト110における)に依存することなしに適宜反応するために、用いられ得る。
システム100によって有効化される分散処理を活用すると、義肢および他のロボット用途は、マッスルメモリと同等の処理を付与され得、スレーブノード104は、マスタノード102および/またはホスト110の干渉なしに、それら自身の環境および状態を独立して処理し、それらに反応し得る。
義肢
システム100の様々な実施形態は、義肢/ロボット四肢、およびロボット一般にしばしば見出される制御システムに有利に応用され得る。センサおよびアクチュエータ、ならびにロボットシステムを使用するこのようなセンサおよびアクチュエータは、スレーブノード104の周辺デバイス108としてバス106上で機能し得る。上記で論じたように、いくつかの実施形態では、これらのセンサおよびアクチュエータは、バス106によっても電力供給され得る。有利には、配線は、大きなワイヤの束ではなく、デイジーチェーンされた2線式システムにまとめられ得、よってロボットのフォームファクタ上の利点を提供する。
1つの例が、膝関節が1つまたは2つ以上の足センサからの情報を必要とし、足関節が1つまたは2つ以上の膝センサからの情報を必要とするロボット脚である。従来、中央集中型プロセッサは、多くのワイヤを使用してセンサおよびアクチュエータに接続されていた。システム100を利用すると、ワイヤの数はこの従来の手法から低減され得、よって情報が、本明細書に開示の任意のバスプロトコル技法に従って、バス106を介してグローバルに分配されるため、より高速なローカル処理を可能にする。
例えば、図26は、膝関節2602、足首関節2604、および足関節2606を有するロボット四肢2600を図示する。図26は、ロボット四肢2600のセンサおよびアクチュエータがロボット四肢2600に沿ってデータを通信することを可能にするために使用され得る、システム100の配置2608も図示する。特に、配置2608は、膝センサを含む周辺デバイス108を有するスレーブノード0、膝アクチュエータを含む周辺デバイス108を有するスレーブノード1、足首センサを含む周辺デバイス108を有するスレーブノード2、足首アクチュエータを含む周辺デバイス108を有するスレーブノード3、足センサを含む周辺デバイス108を有するスレーブノード4、および足アクチュエータを含む周辺デバイス108を有するスレーブノード5を含んでもよい。周辺デバイス108に含まれるセンサのうちのいずれかによって生成されるデータは、関連付けられたスレーブノード104に通信され得、次いで、他のスレーブノード104のうちの1つまたは2つ以上に最終的に到達するように(例えば、周辺デバイス108に含まれるアクチュエータのうちのいずれかを駆動する際の使用のために)、上流および/または下流に通信され得る。
ロボット四肢に関連して上記で論じたのと同じ利点はまた、多くのより小さいエレクトロニクスサブシステム(各々がサブシステムのための何らかのローカル処理を実行する)を必要とするいかなるロボットシステムにも当てはまり得る。センサおよびサーボを接続するシステム100のロボットにおける使用は、センサおよびアクチュエータを接続することに限定されず、システム100は、メモリ、プロセッサ、スピーカ、マイクロホン、照明、無線受信機等の任意の好適な電子デバイスを接続するために使用され得る。例えば、システム100は、ゲームアプリケーションにおける身体センサのネットワーク、体動の研究、または体動によって他の機械類を制御することに応用され得る。
センサネットワークまたはデバイスネットワーク
システム100は、低レイテンシ通信リンクを提供しつつ配線を低減させる任意の好適な制御システムを実装するために使用され得る。これらの制御システムには、機械類(大規模工業用重機械類)、組立てライン機器(多くのコントローラおよびセンサを有する)、ドローン(自動飛行ロボット)、自動制御システム、動力付き制御システム等が含まれる。これらの制御システムのうちの多くでは、センサ(もしくはセンサブロック)、コントローラ、および/またはアクチュエータ(例えば、小型アクチュエータ)等のデバイスは、同調して動いてそれらのそれぞれの機能を提供し得、システム100は、これらのデバイスに電力を供給しつつ過度の配線量(および重量)なしに、これらのデバイス間の効果的な低レイテンシ通信リンクを提供し得る。センサネットワークは、一般に、システム100の特長を活かして配線を低減し得、バス106をセンサのための電力供給ネットワークとしても使用し得る。
分散知能サポート
いくつかの実施形態では、スレーブノード104およびホスト110は各々、それらの間の通信のためのメールボックスを含み、受信し、かつ送信し得る。いくつかの実施形態は、メールボックス通信にI2Cを使用し得る。スレーブノード104のI2Cインターフェース(例えば、I2C送受信器129によって管理される)は、処理デバイスがI2Cを介してスレーブノード104をプログラムし、メールボックスへの読み出しおよび/または書き込みを開始できるように、I2Cスレーブとして構成され得る。
いくつかの実施形態では、スレーブノード104のノード送受信器120は、ホスト110の処理デバイス1302とスレーブノード104の処理デバイス1302(例えば、ノード送受信器120とは別の処理デバイス)との間の通信のための入力「メールボックス」および出力「メールボックス」として使用され得るレジスタを含み、受信し、かつ送信し得る。ホスト110およびスレーブノード104は、メールボックスへのデータ書き込みの完了時にトリガされる割込みによって、それらのそれぞれのメールボックス内のデータについて通知され得る。ノード送受信器120は、関係するメールボックスへのデータ書き込みの完了時に、スレーブノード104に含まれる処理デバイス1302への割込みを生成するように構成され得る。
図27は、スレーブノード0が、(マスタノード102を介して)ホスト110の受信メールボックス2704および送信メールボックス2708と通信するために使用され得る受信メールボックス2710および送信メールボックス2712を有するノード送受信器120を含む、配置2700のブロック図である。特に、受信メールボックス2710に提供されるデータは、ノード送受信器120によって生成される割込みを介してスレーブノード0の処理デバイス1302に通信され得、スレーブノード0の処理デバイス1302は、ホスト110に送信するためのデータが送信メールボックス2712内にあることをノード送受信器120に通知し得る。
ノード送受信器120は、これらのメールボックスの制御のためのいくつかのレジスタを含んでもよい。いくつかの実施形態では、MBOX0CTLレジスタおよびMBOX1CTLレジスタは、これらのメールボックスを有効化し、メールボックスの方向、メッセージ長、および割込み有効化を制御するフィールドを提供し得る。
メールボックス0は、既定では受信メールボックス(例えば、ホスト110によって書き込まれ、スレーブノード104の処理デバイス1302によって読み出される受信メールボックス2710)として構成され得る。メールボックス1は、既定では送信メールボックス(例えば、スレーブノード104の処理デバイス1302によって書き込まれ、ホスト110によって読み出される送信メールボックス2712)として構成され得る。
MBOXxCTLレジスタのMBxLENフィールドは、関連付けられたメールボックスの長さを定義し得る。このフィールドが0である場合、MBOXxB0がメールボックスの終端バイトであってもよい。このフィールドが1である場合、MBOXxB1がメールボックスの終端バイトであってもよい。このフィールドが2である場合、MBOXxB2がメールボックスの終端バイトであってもよい。このフィールドが3である場合、MBOXxB3がメールボックスの終端バイトであってもよい。
有効化された受信メールボックスについては、MBOXxCTLレジスタのMBxFIENビットが設定されている場合、関連付けられたメールボックスの終端バイトがホスト110によって書き込まれ、ノード送受信器120がバス再試行は必要ではないと決定した後で、スレーブノード104の処理デバイス1302への割込みが発生し得る。MBOXxCTLレジスタのMBxEIENフィールドが設定されている場合、関連付けられたメールボックスの終端バイトがスレーブノード104の処理デバイス1302によって読み出された後で、ホスト110への割込みが発生し得る。
有効化された送信メールボックスについては、MBxFIENフィールドが設定されている場合、関連付けられたメールボックスの終端バイトがスレーブノード104の処理デバイス1302によって書き込まれた後で、ホスト110への割込みが発生し得る。MBxEIEN失敗が設定されている場合、関連付けられたメールボックスの終端バイトがホスト110によって読み取られ、ノード送受信器120がバス再試行は必要ではないと決定した後で、スレーブノード104の処理デバイス1302への割込みが発生し得る。
いくつかの実施形態では、MBOX0STATレジスタおよびMBOX1STATレジスタは、メールボックスのステータス情報を提供し得る。メールボックスが満杯になると、MBOXxSTATレジスタの関連付けられたMBxFULLビットはハイに移行し得、MBxEMPTYビットはローに移行し得る。メールボックスが空になると、MBOXxSTATレジスタの関連付けられたMBxEMPTYビットはハイに遷移し得、MBxFULLビットはローに遷移し得る。MBOXxSTATレジスタに含まれるMBxEIRQビットおよびMBxFIRQビットは、関連付けられたメールボックスがホスト110またはローカルプロセッサ(例えば、スレーブノード104の処理デバイス1302)への割込みを信号で送るとハイに遷移し得、割込みがホスト110またはローカルプロセッサによって処理されるとローに遷移し得る。
いくつかの実施形態では、MBOX0BnレジスタおよびMBOX1Bnレジスタは、メールボックスデータを含んでもよい。いくつかの実施例では、各メールボックスは、最大32ビットのデータを保持し得る。MBOXxBnレジスタ内のMBxLENフィールドは、メールボックス内のアクティブなバイト数を定義し得る。いくつかの実施形態では、各メールボックスは、8ビット、16ビット、24ビット、または32ビットメッセージをサポートし得る。
センササポート
いくつかの車両用途では、システム100は、車室の左側および右側にそれぞれ位置付けられた2つのマイクロホンを相互接続するバス106上のスレーブノード104の配置と、バス106上でスレーブノード104に連結され、マイクロホンの間に、かつフロントガラスの近くに位置決めされた環境センサとを含んでもよい。環境センサは、温度および湿度(例えば、防曇機能および気候制御機能のために)ならびに/または環境ガス(例えば、アンモニア、一酸化炭素、二酸化窒素)を、乗客の快適性を改善するための空気の再ルーティングを行うために、計測し得る。マイクロホンは、例えば、微小電気機械システム(MEMS)マイクロホンアレイであってもよい。
いくつかの実施形態では、スレーブノード104のノード送受信器120は、車両内の環境センサ(湿度センサ、温度センサ、および/またはガスセンサ等)と連通している周辺デバイス通信回路(例えば、I2S/TDM/PDM送受信器127、I2C送受信器129、および/または割込み要求能力を有する1つもしくは2つ以上のGPIOピン)を含む。いくつかの実施形態では、ホスト110は、スレーブノード104、バス106、およびマスタノード102を介してホスト110に送信される環境センサからのデータに基づいて、車両内の気候制御システムのための制御命令を生成し得る。例えば、図28は、スレーブノード0(車室の左側)がマイクロホンおよびスピーカを含む周辺デバイス108を有し、スレーブノード1(フロントガラス2802に近接する)が湿度センサおよび/または温度センサを含む周辺デバイス108を有し、スレーブノード2がガスセンサを含む周辺デバイス108を有し、スレーブノード3(車室の右側)がマイクロホンおよびスピーカを含む周辺デバイス108を有する、システム100の配置2800を図示する。
マイクロホンが車室の左側および右側で車両内に含まれる場合(例えば、雑音低減および/またはビームフォーミングのために)、これらのマイクロホンを連結するために使用されるケーブル配線は、フロントガラス区域に近接して気候制御機能(暖房、換気および空調(HVAC)ならびに/または空気監視の機能)を実行する周辺デバイスに連結された中間スレーブノード104によって区切られ得る。いくつかのシナリオでは、スレーブノード104の周辺デバイスは、車両内のHVACシステムが「ジャストインタイム」で曇りを防止するように動作し得るように、湿度情報および/または温度情報を提供し得、フロントガラス面における露点の計測を許容し、フロントガラスの曇りの予測を可能にする、湿度センサおよび/または温度センサを含んでもよい。このようなシステムは、「常時オン」または手動制御のHVACシステムよりもエネルギーを節約し得ると共に、フロントガラスの曇りを防止することによって車両動作時の安全性を改善し得る。いくつかの実施形態において使用され得る湿度センサおよび/または温度センサの例は、Measurement Specialties(ハンプトン、バージニア州)によって製造されているHTU21Dセンサである。同様に、車両車室の空気内の不要な化学物質の存在を検出するガスセンサによって生成されるデータは、車両内のHVACシステムの動作をトリガし、換気を改善し、化学物質の濃度を低減させるために使用され得る。いくつかの実施形態において使用され得るガスセンサの例は、SGX Sensortech(スイス)によって製造されているMiCS−6814センサである。
一体型加速度計
いくつかの実施形態では、スレーブノード104は、ノード送受信器120と同じボード(例えば、上流送受信器122および/または下流送受信器124)内に一体化された加速度計(例えば、多軸加速度計)を含む周辺デバイス108に関連付けられ得る。マイクロホンおよびスピーカなどのオーディオ入力およびオーディオ出力も、同じボードに連結され得る。このような実施形態の1つの用途は、車台の振動が計測され、オーディオ成分が除去される道路雑音除去であってもよい。
試験機器サポート
いくつかの実施形態では、ノード送受信器120は、ノード送受信器120が、マスタノード挙動およびスレーブノード挙動の両方(例えば、どの信号がマスタおよび/もしくはスレーブから到来し、かつ/またはマスタおよび/もしくはスレーブに行くのか)に関してバス106の一部分において上流および/または下流の活動を監視する、「バスモニターモード」すなわち「BMM」で構成され得る。いくつかの実施形態では、ノード送受信器120の上流送受信器122は、下流に来るデータを監視し、それをプロトコルアナライザに提供する(例えば、I2S/TDM/PDM送受信器127を使用するI2Sバスを介して)。バスモニターモードで動作するノード送受信器120は、本明細書において「バスモニター」または「BM」と呼ばれ得る。このモードでは、ノード送受信器120の下流送受信器124は、無効化され得る。バスモニターは、他のスレーブノード104とデイジーチェーンされないことがあるが、監視対象のスレーブノード104のすぐ上流の一対のワイヤを傍受し得、典型的なスレーブノード104におけるノード送受信器120の全ての機能を有するわけではないものの、マスタノード102によって発見され得る。バスモニターは、バスモニターと通信するプロセッサによって初期構成され得る(例えば、I2Cプロトコルを介して)。
よって、いくつかの実施形態では、バスモニターとして機能するノード送受信器120は、バス106を介して上流デバイスから受信した信号をプロトコルアナライザに提供する周辺デバイス通信回路(例えば、I2S/TDM/PDM送受信器127、I2C送受信器129、および/または割込み要求能力を有する1つもしくは2つ以上のGPIOピン)を含んでもよい。いくつかの実施形態では、バスモニターモードで動作するノード送受信器120は、その下流送受信器124が無効化され得る。上流送受信器122は、専らデータを受信し、送信しないように構成され得る。
図29は、様々な実施形態による、システム100およびバスモニターの要素の配置2900のブロック図である。配置2900において、バスモニターデバイス2902は、I2Cおよび/またはI2Sを介してバスモニター2906と連通している(例えば、I2S/TDM/PDM送受信器127および/またはバスモニターのI2C送受信器129を使用して)バスモニター2906および処理デバイス2908を含んでもよい。処理デバイス2908は、図13に関連して上記で論じた処理デバイス1302のうちのいずれかの形態をとり得る。BMM2906は、スレーブノード1のすぐ上流のバス106の2線を傍受し得、分離回路2904が、BMM2906とバス106との間に配され得る。分離回路2904は、バス106をBMM2906の負荷から分離するアナログ回路を含んでもよい。
いくつかの実施形態では、バスモニターモードは、ノード送受信器120がスニファとも呼ばれる受動BMとして機能することを可能にし得る。BMは、そのI2Sポートを使用してトラフィックをバス106からプロトコルアナライザに送信し得る。BMは、バス同期制御フレーム180の制御書き込みをスヌープし、そのバス特性をBMが監視しているスレーブノード104のバス特性に合致するように構成するという意味でシステム100内において受動的であってもよいが、同期制御フレーム180には応答しない。
BMはデイジーチェーンされないため、上流送受信器122は、上流データおよび下流データの両方を見ることができる。いくつかの実施形態では、上流送受信器122を介して下流データを受信すると、BMは、受信した同期制御フレーム180およびその対応する下流データスロット198を下流フレームバッファ内にロードし得る。いくつかの実施形態では、上流送受信器122を介して上流データを受信すると、BMは、受信した同期応答フレームおよびその対応する上流データスロットを上流フレームバッファ内にロードし得る。BMは、下流データおよび上流データの両方を、プロトコルアナライザ(例えば、処理デバイス2908)への提供のために、I2S/TDM/PDM送受信器127に提供し得る。
ノード送受信器120は、BMMをサポートする1つまたは2つ以上のレジスタを含んでもよい。いくつかの実施形態では、ノード送受信器120は、BMMCFGレジスタを含んでもよい。BMMCFGレジスタは、BMMENビット(ノード送受信器120がBMMで動作すべきか否かを示す)、BMMRXENビット(ノード送受信器がBMMである場合に上流送受信器122を有効化または無効化する)、およびBMMNDSCノード(システム100の始動プロセスおよび発見プロセスが、BMがアタッチおよび有効化される前に発生すべきか、または後に発生すべきかを示す)を含んでもよい。
図30は、様々な実施形態による、BMの動作を開始するための方法3000の流れ図である。方法3000は、バスモニターデバイス2902内の処理デバイス2908によって実行され得、BM2906に関連して実行されたように記載され得る。
3002において、処理デバイス2908は、BM2906においてBMMを有効化し得る。BMMを有効化する前に、BM2906は、ノード送受信器120の既定の標準構成に戻り得る。3002においてBMMを有効化することは、上記で論じたBMMENビットを設定することを含んでもよい。
3004において、処理デバイス2908は、監視対象のスレーブノード104(例えば、図29のスレーブノード1)の上流のバス106のリンクにBMをアタッチした後、BM2906内の上流送受信器122を有効化し得る。3004において上流送受信器122を有効化することは、上記で論じたBMMRXENビットを設定することを含んでもよい。
3006において、処理デバイス2908は、I2C送受信器129を介して送出したコマンドを使用して、BM2906のI2S/TDM/PDM送受信器127を送信用に構成し得る。
3008において、BM2906がホスト110によって発見され、BM2906のPLL128がロックした後、処理デバイス2908は、BM2906のI2S/TDM/PDM送受信器127を介してバス106からデータを受信し得る。上述のように、BM2906は、バス同期制御フレーム180の制御書き込みをスヌープし、そのバス特性(例えば、DNSLOTSおよびUPSLOTSの値)を、監視されているスレーブノード104(例えば、図29のスレーブノード1)のバス特性に合致するように、構成し得る。
BMは、BMがアタッチされているバス106の一部を盗聴し得、発見中にBMがバス106を監視することが許可される場合、下流スレーブノード104の構成も学習し得る。いくつかの監視されるパラメータは、バス106全体(例えば、全てのスレーブノード104)に、いくつかは、すぐ下流のスレーブノード104に、更にいくつかは、更に下流のスレーブノード104に、当てはまり得る。BMは、発見を監視し、最近の発見からのパラメータを記憶し、既知の設定を使用し、または復号が首尾よく達成される(例えば、音楽データが首尾よく復号される)まで異なるパラメータ変動を試行し得る。
いくつかの実施形態では、バス106上を下流に送信されるペイロードは、BMとして機能するスレーブノード104にマスタノード102を通じてリレーされる制御命令によってホスト110がこの機能を有効化する場合にのみ、盗聴され得る。いくつかのこのような実施形態では、BMがマスタノード102を通じてその通りに構成されない場合、BMは、同期制御フレームデータおよび応答フレームデータのみ出力(「盗聴」)し得るが、データスロット内のペイロードは出力(「盗聴」)できない。データはスクランブル化され、BMはホスト110が許可する場合にのみペイロードデータにアクセスし得るため、これは、一定レベルのコンテンツ保護を提供し得る。
GPIO対GPIO通信
いくつかの実施形態では、ノード送受信器120は、初期プログラミング後のホスト110の介入なしに、複数のノード送受信器120間で汎用入出力(GPIO)をサポートし得る。いくつかのこのような実施形態では、ホスト110は、ノード送受信器120の仮想ポートの初期設定のためにのみ必要とされ得る。
いくつかの実施形態では、いくつかの仮想ポート(例えば、8個の仮想ポート)が使用され得る。マスタノード102は、仮想ポート(「GPIOバスポート」、「仮想ポートイメージ」、または「仮想ポートミラー」とも呼ばれ得る)を管理し得、状態は、マスタノード102からGPIODDATレジスタ(以下で論じる)を読み出すことによって理解され得る。いくつかのレジスタ(例えば、10または11個のレジスタ)は、各ノード送受信器120(例えば、スレーブノード104の)がGPIOピンを仮想ポートにマッピングするのを可能にするために使用され得る。いくつかの実施形態では、GPIOピンは、入力(これは、仮想ポートを変更し得る)であっても、または出力(これは、仮想ポートを反映し得る)であってもよい。いくつかの実施形態では、複数の仮想ポートが1つのGPIO出力ピンにマッピングされてもよい(例えば、値は、合せてOR演算される)。いくつかの実施形態では、複数のGPIO入力ピンが、1つの仮想ポートにマッピングされてもよい。例えば、複数のGPIO入力ピン値が、たとえそれらが複数のノード送受信器120から到来するとしても、合せてOR演算され得る。
図31〜43は、GPIO対GPIO通信のシステムおよび技法の様々な実施例を図示する。これらの図に図示されているか、またはこれらの図に関連して以下で論じるいずれの実施形態も、本明細書に開示のいずれの他の実施形態とも組み合わせられ得る。これらの図における具体的な数の要素の使用または図示(例えば、図31に図示されるような、GPIODENレジスタの8ビット)は、単純に例であり、システムおよび技法は、いずれの要素についても、任意の所望の適切な数に応用され得、またはそれらを組み込み得る。なお、レジスタ、変数、データスロット等の具体的な名称は、本明細書において例証の明快性のために使用されていることがあるが、本明細書に記載の使用されるいずれのデータ構造も、任意の好適な名称または他の識別子を有し得る。
いくつかの実施形態では、レジスタまたは他のデータ構造は、GPIO対GPIO機能に関するデータを記憶するために使用され得る。様々な例示的なレジスタおよびそれらの動作を、図31〜34に関連して以下で論じる。例えば、図31は、ノード送受信器120の各GPIOピンのための有効化ビットを提供し得る遠隔GPIO有効化(GPIODEN)レジスタの実施例を描く。これらのビットのうちの1つを設定することは、ローカルノード送受信器120がGPIOピンを1つまたは2つ以上の仮想ポートにマッピングすることを可能にし得る。いくつかの実施形態では、ピンは、以下の表1に従ってGPIOから利用可能でなければならない。いくつかの実施形態では、
GPIODENレジスタ内の
IODxEN(各汎用IOピンxに対応する1つのビット
IODxENを有する)が設定される場合、該ピンは、遠隔GPIOのための出力になる。さもなければ、該ピンは、遠隔GPIOに対する入力になる。いくつかの実施形態では、IOxIENを設定する必要がないことがある(
GPIODENレジスタに類似的に構成されたGPIOIENレジスタ内に)。
表1.GPIOからのピン利用可能性を決定する
図32は、ノード送受信器120におけるGPIOピンと仮想ポートとの間のマッピング機能を制御し得る遠隔GPIOマスク(GPIODnMSK)レジスタの実施例を描く。いくつかの実施形態では、GPIOピンが入力である場合、ローカルのノード送受信器120は、ハイであるIODnMSKビットに対応する仮想ポートを更新する。GPIOピンが出力である場合、ハイであるIODnMSKビットに対応する仮想ポートを合せてOR演算し、GPIO出力値を生成することができる。
図33は、ノード送受信器120の仮想ポートの値を提供し得る遠隔GPIOデータ(GPIODDAT)レジスタの実施例を描く。いくつかの実施形態では、このレジスタは、読み出し専用であってもよい。いくつかの実施形態では、ホスト110は、常にこのレジスタをマスタノード102から読み出し得る。
図34は、GPIOピンの入力または出力への反転を有効化し得る遠隔GPIO反転(GPIODINV)レジスタの実施例を描く。GPIOピンが仮想ポートに対する入力である場合、反転は、該ピンからの入口において適用され得る。GPIOピンが仮想ポートからの出力である場合、反転は、該ピンへの出口において適用され得る。複数のノード送受信器120が同じ仮想ポートを更新している場合、GPIODINVレジスタ設定を使用して、挙動をワイヤードORからワイヤードANDに変更することができる。例えば、複数のハイアクティブGPIOビットのワイヤードANDを構築するためには、GPIO入力とGPIO出力が反転されるべきである。
いくつかの実施形態では、2つ以上のノード送受信器120が同じ仮想ポートにマッピングされたGPIO入力を有する場合、入力ピンは、仮想ポートへのワイヤードORとして取り扱うことができる。仮想ポートがロー(非アクティブ)のとき、仮想ポートを設定するいかなるリクエストも、システム内のスレーブノード104のノード送受信器120にわたって全てのGPIODDATレジスタを更新するブロードキャスト書き込みをマスタノード102から生じさせる結果となり得る。仮想ポートがハイ(アクティブ)のとき、仮想ポートをクリアするいかなるリクエストも、全てのスレーブノード104が該リクエストについて投票できるようにする特別なコマンドをマスタノード102から生じさせる。スレーブノード104のうちのいずれかが該リクエストを拒絶すると、マスタノード102は該リクエストの拒絶を理解し、GPIODDATレジスタはそれらの値を保持する。いずれのスレーブノード104も該リクエストを拒絶しないと、マスタノード102は該リクエストの受け入れを理解し、引き続いてGPIODDAT値を更新する。
図35は、GPIODDATの更新を管理するための例示的なステートマシンを描く。いくつかの実施形態では、ステートマシンは、マスタノード102によって、またはシステム100内の任意の他の好適なデバイスによって実行され得る。例証の明快性のため、マスタノード102によって実行される図35のステートマシンを以下で論じる。マスタノード102がバスのGPIOポートをクリアすることを決定するか、またはマスタノード102がバスのGPIOポートをクリアするリクエストと共にSRFを受信すると、マスタノード102は、アイドル状態3502から検査状態3504に遷移し得る。マスタノード102は、肯定応答(ACK)または否定応答(NACK)が受信されるまで検査状態3504にとどまり得る。NACKが受信された場合(バスのGPIOポートをクリアすることに少なくとも1つのスレーブノード104が「同意」しなかったことを意味する)、マスタノード102は、バスのGPIOポートを変更することなしにアイドル状態3502に戻り得る。マスタノード102が検査状態にある間にNACKが受信されないと、マスタノード102は、更新状態3506に遷移し、新しい値のブロードキャスト書き込みを行い得る。マスタノード102は、更新に対して肯定応答が行われるまで、更新状態3506にとどまり得る。ひとたび更新に対して肯定応答がなされると、マスタノード102は、アイドル状態3502に戻り得る。マスタノード102がバスのGPIOポートを設定することを決定するか、またはマスタノード102がバスのGPIOポートを設定するリクエストと共にSRFを受信すると(検査状態3504を通過することなしに)、マスタノード102は、アイドル状態3502から更新状態3506に直接遷移し得る。
以下の実施例は、本明細書に記載の遠隔GPIO機能に関する1つの具体的な使用シナリオを例証する。マスタノードのDRX1ピンからスレーブノード2のADR1/IO1ピンへ:
・0x04をマスタノードのGPIOD6MSKに書き込み、DRX1を仮想ポート2にマッピングする
・0x40をマスタノードのGPIODENに書き込み、DRX1に対する遠隔GPIOアクセスを有効化する
・0x02をスレーブノード2のGPIOOENに書き込み、ADR1/IO1のためのGPIO出力を有効化する
・0x04をスレーブノード2のGPIOD2MSKに書き込み、仮想ポート2をADR1/IO1にマップする
・0x02をスレーブノード2のGPIODENに書き込み、ADR1/IO1に対する遠隔GPIOアクセスを有効化する
・マスタノード102上のDRX1が遷移する都度、マスタノード102は、図35のステートマシンを通過し得る
・スレーブノード2がGPIODDATへのブロードキャスト書き込みに遭遇する都度、GPIODDATのビット2の値は、ADR1/IO1ピン上で駆動される
スレーブノード1のDTX1ピンからマスタノード102のADR1/IO1ピンへ:
・0x10をスレーブノード1のGPIOD4MSKに書き込み、DTX1を仮想ポート4にマッピングする
・0x10をスレーブノード1のGPIODENに書き込み、DTX1に対する遠隔GPIOアクセスを有効化する
・0x02をマスタノード102のGPIOOENに書き込み、ADR1/IO1のためのGPIO出力を有効化する
・0x10をマスタノード102のGPIOD2MSKに書き込み、仮想ポート4をADR1/IO1にマッピングする
・0x02をマスタノード102のGPIODENに書き込み、ADR1/IO1に対する遠隔GPIOアクセスを有効化する
・スレーブノード1上のDTX1が遷移する都度、スレーブノード1は、仮想ポート4における変更および変更の方向(設定またはクリア)を示す特別なSRFを送出し得る
・マスタノードがこの特別なSRFを受信する都度、マスタノードは、図35のステートマシンを通過し得る
・スレーブノード1がGPIODDATの更新値の検査を受信すると、スレーブノード1は、仮想ポート4に対する変更を受諾としてマークし得る
スレーブノード0〜2上のADR1/IO1ピンからマスタノード102のADR1/IO1ピンへ:
・0x01をスレーブノード2のGPIOD2MSKに書き込み、ADR1/IO1を仮想ポート0にマッピングする
・0x02をスレーブノード2のGPIODENに書き込み、ADR1/IO1に対する遠隔GPIOアクセスを有効化する
・0x01をスレーブノード1のGPIOD2MSKに書き込み、ADR1/IO1を仮想ポート0にマッピングする
・0x02をスレーブノード1のGPIODENに書き込み、ADR1/IO1に対する遠隔GPIOアクセスを有効化する
・0x01をスレーブノード0のGPIOD2MSKに書き込み、ADR1/IO1を仮想ポート0にマッピングする
・0x02をスレーブノード0のGPIODENに書き込み、ADR1/IO1に対する遠隔GPIOアクセスを有効化する
・0x02をマスタノード102のGPIOOENに書き込み、ADR1/IO1のためのGPIO出力を有効化する
・0x01をマスタノード102のGPIOD2MSKに書き込み、仮想ポート0をADR1/IO1にマッピングする
・0x02をマスタノード102のGPIODENに書き込み、ADR1/IO1に対する遠隔GPIOアクセスを有効化する
・マスタノード102が仮想ポートに対する変更を示すSRFに遭遇する都度、マスタノード102は、図35のステートマシンを通過し得る
・GPIODDATに対するブロードキャスト書き込みがACKによって終了すると、マスタノード102内のGPIODDATの値は更新され得、ビット0の値はADR1/IO1ピンに反映され得る
図36および37は、複数のスレーブノード104が仮想ポート0に対する入力としてマッピングされ、マスタノード102が仮想ポート0からの出力としてマッピングされているシステム挙動の実施例を図示する。図36において、スレーブノード0は仮想ポート0のクリアをリクエストし、これは拒絶される。特に、GPIOピンは、スレーブノード0上でハイからローに遷移し、クリアリクエストを含むSRFがスレーブノード0によって生成される。マスタノード102は、検査状態に移行し(図35に図示されるステートマシンにより)、ポート0をクリアできるか検査するSCFを送出する。このリクエストは、GPIO入力ピンがハイであるため、スレーブノード2によって拒絶される。
図37において、スレーブノード2は仮想ポート0のクリアをリクエストし、これは受け入れられる。スレーブノード2上でGPIOピンがハイからローに遷移した後、クリアリクエストを含むSRFがスレーブノード2によって生成される。マスタノード102は、検査状態に移行し(図35に図示されるステートマシンにより)、ポート0をクリアできるか検査するSCFを送出する。このリクエストは受け入れられ、マスタノード102は更新状態に移行する。ひとたびGPIODDATのブロードキャスト書き込みが終了すると、マスタノード102上の出力GPIOピンはハイからローに遷移する。
遠隔GPIO機能の様々な実施形態を支えるロジックは、いくつかの形態のうちのいずれをとってもよい。例えば、図38は、本明細書に記載のような、遠隔GPIOロジックのシステムレベルの可視化を提供する。図39および40は、それぞれ、本明細書に記載のような、遠隔GPIOの入力ピンおよび出力ピンに関する例示的なGPIODnMSKクロスバーを示す。
上記で論じたように、遠隔GPIO機能は、異なるスレーブノード104からの入力ピンを仮想ポート(例えば、仮想8ビットポート)に組み合わせるOR論理を含んでもよい。各スレーブノード104内の各出力ピンに対して、仮想ポートから1ビットが選択され得る。上記で論じたように、AND論理は、入力および出力を反転することによって達成され得る。図41は、マスタノード102およびスレーブノード104の例示的な配置における例示的な遠隔GPIO機能を図示する。図41の配置において、スレーブノード0、1、および2の各々は、それに関連付けられた周辺デバイス108の一部としてスピーカを有する。スレーブノード0、1、および2は、別々に遠隔GPIOを介してそれらのスピーカからホスト110(例えば、DSP)にオーバードライブ信号を送出し得、ホスト110は、スレーブノード0、1、および2の全てのスピーカに消音信号を同時に送出し得る。いくつかの実施形態では、GPIO対GPIOのレイテンシは、3オーディオクロックサイクル以下(例えば、62.5マイクロ秒以下)であってもよい。
図42および43は、スレーブノード104からの異なる寄与について、異なるGPIODnMSK設定およびGPIODINV設定、ならびにそれらのGPIOOENの値に対する影響を図示する。図42において、仮想ポートビット0における「0」は、GPIOピン2における「ロー」の入力、GPIODINVの位置2における非反転ビット「0」、GPIOOENの位置2における入力有効化の「0」、およびGPIOD2MSKの位置0における「1」の結果である。仮想ポートビット1における「1」は、GPIO入力ピン4における「ハイ」の入力、GPIODINVの位置4における反転ビット「1」、GPIOOENの位置4における入力有効化の「0」、およびGPIOD4MSKの位置1における「1」の結果である。仮想ポートビット2における「1」は、GPIO入力ピン7における「ロー」の入力、GPIODINVの位置7における反転ビット「1」、GPIOOENの位置7における入力有効化の「0」、およびGPIOD7MSKの位置2における「1」の結果である。
図43は、図42の入力ピン設定に出力ピンを追加している。特に、GPIOピン0における「ロー」の出力は、仮想ポートビット3における「0」、GPIOD0MSKの位置3における「1」、GPIOOENの位置0における出力有効化の「1」、およびGPIODINVの位置0における非反転の「0」の結果である。GPIOピン3における「ハイ」の出力は、仮想ポートビット4における「1」、GPIOD3MSKの位置4における「1」、GPIOOENの位置3における出力有効化の「1」、およびGPIODINVの位置3における非反転の「0」の結果である。GPIOピン5における「ロー」の出力は、仮想ポートビット4における「1」、GPIOD5MSKの位置4における「1」、GPIOOENの位置5における出力有効化の「1」、およびGPIODINVの位置5における反転の「1」の結果である。GPIODnMSKのいくつかの実施形態では、ピンは、GPIOから利用可能でなければならない(例えば、I2S/TDMまたはPDMのために使用されるのではなく)。
本明細書に記載のいずれの実施形態も、本明細書に記載のいずれかの実施形態に従って、任意の所望の組み合わせにおいて、GPIO対GPIO通信機能と組み合わせることができる。
以下の段落は、本明細書に開示の様々な実施形態の実施例を提供する。
実施例A1は、低レイテンシ通信のためのスレーブノード送受信器であって、2線式バスを介して上流デバイスから送信された第1の信号を受信し、第2の信号を2線式バスを介して上流デバイスに送信する上流送受信器回路と、第3の信号を下流に、2線式バスを介して下流デバイスに提供し、第4の信号を2線式バスを介して下流デバイスから受信する下流送受信器回路と、スレーブノード送受信器において第1の信号内の同期制御フレームのプリアンブルに基づいてクロック信号を生成するクロック回路と、を含み、スレーブノード送受信器による2線式バスを介した信号の受信および提供のタイミングがクロック信号に基づいている、スレーブノード送受信器である。
実施例A2は、実施例A1の主題を含んでもよく、同期制御フレームは第1の信号のスーパーフレーム内の下流データに関連付けられ、下流データは複数のデータスロットを含み、スレーブノード送受信器と連通している単一の周辺デバイスのためのデータは複数のデータスロットのうちの2つ以上を占有すると更に指定し得る。
実施例A3は、実施例A2の主題を含んでもよく、単一の周辺デバイスのためのデータはオーディオデータであると更に指定し得る。
実施例A4は、実施例A1〜A3のうちのいずれかの主題を含んでもよく、第1の信号は第1の同期制御フレームおよび関連付けられた第1の下流データならびに第2の同期制御フレームおよび関連付けられた第2の下流データを含み、第1の下流データは特定のインデックスを有し、スレーブノード送受信器と連通している第1の周辺デバイスのためのデータを含むデータスロットを含み、第2の下流データは特定のインデックスを有し、第1の周辺デバイスとは異なるスレーブノード送受信器と連通している第2の周辺デバイスのためのデータを含むデータスロットを含むと更に指定し得る。
実施例A5は、実施例A4の主題を含んでもよく、第1の周辺デバイスおよび第2の周辺デバイスは異なるマイクロホンであると更に指定し得る。
実施例A6は、実施例A1〜A5のうちのいずれかの主題を含んでもよく、第2の信号は同期応答フレームを含み、同期応答フレームは第2の信号のスーパーフレーム内の上流データに関連付けられ、上流データは複数のデータスロットを含み、スレーブノード送受信器と連通している単一の周辺デバイスに発するデータは複数のデータスロットのうちの2つ以上を占有すると更に指定し得る。
実施例A7は、実施例A6の主題を含んでもよく、単一の周辺デバイスに発するデータはオーディオデータであると更に指定し得る。
実施例A8は、実施例A1〜A7のうちのいずれかの主題を含んでもよく、第2の信号は第1の同期応答フレームおよび関連付けられた第1の上流データならびに第2の同期応答フレームおよび関連付けられた第2の上流データを含み、
第1の上流データは特定のインデックスを有し、スレーブノード送受信器と連通している第1の周辺デバイスに発するデータを含むデータスロットを含み、第2の上流データは特定のインデックスを有し、第1の周辺デバイスとは異なるスレーブノード送受信器と連通している第2の周辺デバイスに発するデータを含むデータスロットを含むと更に指定し得る。
実施例A9は、実施例A8の主題を含んでもよく、第1の周辺デバイスおよび第2の周辺デバイスは異なるマイクロホンであると更に指定し得る。
実施例A10は、実施例A1〜A9のうちのいずれかの主題を含んでもよく、電圧バイアスを2線式バスを介して上流デバイスから受電し、電圧バイアスからのエネルギーをスレーブノード送受信器に連結されたエネルギー蓄積装置に提供する電源回路を更に含んでもよい。
実施例A11は、実施例A1〜A10のうちのいずれかの主題を含んでもよく、少なくとも1つのスピーカおよび少なくとも1つのマイクロホンと通信する周辺デバイス通信回路を更に含んでもよい。
実施例A12は、実施例A11の主題を含んでもよく、周辺デバイス通信回路はアイ・スクエアド・シー・サウンド(I2S)送受信器、時分割多重(TDM)送受信器、パルス密度変調(PDM)送受信器、アイ・スクエアド・シー(I2C)送受信器、または汎用入出力(GPIO)ピンを備えることを更に指定し得る。
実施例A13は、実施例A1〜A12のうちのいずれかの主題を含んでもよく、マイクロホンおよび会議ユーザインターフェース要素と通信する周辺デバイス通信回路であって、ユーザがマイクロホンからのオーディオを2線式バスに連結された別のデバイスに提供することを希望する場合、ユーザは会議ユーザインターフェース要素を作動させ、会議ユーザインターフェース要素が作動される場合、第2の信号はマイクロホンに発するデータを含む、周辺デバイス通信回路、を更に含んでもよい。
実施例A14は、実施例A1〜A13のうちのいずれかの主題を含んでもよく、無線送受信器と通信する周辺デバイス通信回路であって、無線送受信器が音声通話を受信し、上流送受信器回路が第2の信号内に音声通話を表すデータを含める、周辺デバイス通信回路、を更に含んでもよい。
実施例A15は、実施例A1〜A14のうちのいずれかの主題を含んでもよく、上流デバイスは無線送受信器に連結され、無線送受信器は音声通話を受信し、上流送受信器回路は第1の信号内の音声通話を表すデータを受信すると更に指定し得る。
実施例A16は、実施例A1〜A15のうちのいずれかの主題を含んでもよく、ホストデバイスは2線式バスのマスタデバイスに連結され、ホストデバイスは無線送受信器に連結され、無線送受信器は音声通話を受信し、上流送受信器回路は第1の信号内の音声通話を表すデータを受信すると更に指定し得る。
実施例A17は、実施例A1〜A16のうちのいずれかの主題を含んでもよく、車両の屋根または他の部分に連結されたアンテナと連通し、有線接続を介してアンテナと通信する周辺デバイス通信回路を更に含んでもよい。
実施例A18は、実施例A17の主題を含んでもよく、上流デバイスは車両のヘッドユニットに位置付けられたマスタデバイスであると更に指定し得る。
実施例A19は、実施例A1〜A18のうちのいずれかの主題を含んでもよく、スレーブノード送受信器はスピーカ、ミキシングコンソール、楽器、タイムコード生成機器、増幅器、ビデオ表示器、または花火コンソール内に含まれることを更に指定し得る。
実施例A20は、実施例A1〜A19のうちのいずれかの主題を含んでもよく、ロボット四肢の関節におけるセンサまたはアクチュエータと連通している周辺デバイス通信回路を更に含んでもよい。
実施例A21は、実施例A1〜A20のうちのいずれかの主題を含んでもよく、受信メールボックスおよび送信メールボックスであって、データが送信メールボックスに提供されるとき、ホストデバイスが下流デバイスへの送信のための割込みを生成し、データが受信メールボックスに提供されるとき、下流デバイスがホストデバイスへの送信のための割込みを生成する、受信メールボックスおよび送信メールボックス、を更に含んでもよい。
実施例A22は、実施例A1〜A21のうちのいずれかの主題を含んでもよく、車両内の湿度センサまたは温度センサと連通している周辺デバイス通信回路を更に含んでもよい。
実施例A23は、実施例A1〜A22のうちのいずれかの主題を含んでもよく、車両内のガスセンサと連通している周辺デバイス通信回路を更に含んでもよい。
実施例A24は、実施例A1〜A23のうちのいずれかの主題を含んでもよく、第1の信号または第2の信号をプロトコルアナライザに提供する周辺デバイス通信回路を更に含んでもよく、下流送受信器回路は無効化されている。
実施例A25は、実施例A1〜A24のうちのいずれかの主題を含んでもよく、データは同期制御フレーム内で下流に送信されることを更に指定し得る。
実施例A26は、実施例A1〜A25のうちのいずれかの主題を含んでもよく、データは同期応答フレーム内で上流に送信されることを更に指定し得る。
実施例B1は、低レイテンシ通信のためのマスタノード送受信器であって、ホストデバイスからクロック情報を提供するI2S信号を受信するアイ・スクエアド・シー・サウンド(I2S)受信器と、クロック情報に基づいてクロック信号を生成するクロック回路と、第1の信号を下流に、2線式バスを介して下流デバイスに提供し、第2の信号を2線式バスを介して下流デバイスから受信する下流送受信器回路とを含み、第1の信号の同期制御フレームのプリアンブルはクロック信号に基づいており、下流デバイスはプリアンブルに基づいてそれ自身のクロック信号を生成する、マスタノード送受信器、である。
実施例B2は、実施例B1の主題を含んでもよく、同期制御フレームは第1の信号のスーパーフレーム内の下流データに関連付けられ、下流データは複数のデータスロットを含み、下流デバイスに連結された単一の周辺デバイスのためのデータは複数のデータスロットのうちの2つ以上を占有すると更に指定し得る。
実施例B3は、実施例B2の主題を含んでもよく、単一の周辺デバイスのためのデータはオーディオデータであると更に指定し得る。
実施例B4は、実施例B1〜B3のうちのいずれかの主題を含んでもよく、第1の信号は第1の同期制御フレームおよび関連付けられた第1の下流データならびに第2の同期制御フレームおよび関連付けられた第2の下流データを含み、第1の下流データは特定のインデックスを有し、下流デバイスに連結された第1の周辺デバイスのためのデータを含むデータスロットを含み、第2の下流データは特定のインデックスを有し、第1の周辺デバイスとは異なる下流デバイスに連結された第2の周辺デバイスのためのデータを含むデータスロットを含むと更に指定し得る。
実施例B5は、実施例B4の主題を含んでもよく、第1の周辺デバイスおよび第2の周辺デバイスは異なるマイクロホンであると更に指定し得る。
実施例B6は、実施例B1〜B5のうちのいずれかの主題を含んでもよく、第2の信号は同期応答フレームを含み、同期応答フレームは第2の信号のスーパーフレーム内の上流データに関連付けられ、上流データは複数のデータスロットを含み、下流デバイスに連結された単一の周辺デバイスに発するデータは複数のデータスロットのうちの2つ以上を占有すると更に指定し得る。
実施例B7は、実施例B6の主題を含んでもよく、単一の周辺デバイスに発するデータはオーディオデータであると更に指定し得る。
実施例B8は、実施例B1〜B7のうちのいずれかの主題を含んでもよく、第2の信号は第1の同期応答フレームおよび関連付けられた第1の上流データならびに第2の同期応答フレームおよび関連付けられた第2の上流データを含み、第1の上流データは特定のインデックスを有し、下流デバイスに連結された第1の周辺デバイスに発するデータを含むデータスロットを含み、第2の上流データは特定のインデックスを有し、第1の周辺デバイスとは異なる下流デバイスに連結された第2の周辺デバイスに発するデータを含むデータスロットを含むと更に指定し得る。
実施例B9は、実施例B8の主題を含んでもよく、第1の周辺デバイスおよび第2の周辺デバイスは異なるマイクロホンであると更に指定し得る。
実施例B10は、実施例B1〜B9のうちのいずれかの主題を含んでもよく、第1の信号は下流デバイスに連結された少なくとも1つのスピーカのためのデータを含み、第2の信号は下流デバイスに連結された少なくとも1つのマイクロホンに発するデータを含むと更に指定し得る。
実施例B11は、実施例B1〜B10のうちのいずれかの主題を含んでもよく、無線送受信器と通信する周辺デバイス通信回路であって、無線送受信器が音声通話を受信し、下流送受信器回路が音声通話を表すデータを第1の信号内に含める、周辺デバイス通信回路、を更に含んでもよい。
実施例B12は、実施例B1〜B11のうちのいずれかの主題を含んでもよく、下流デバイスは無線送受信器に連結され、無線送受信器は音声通話を受信し、下流送受信器回路は第2の信号内の音声通話を表すデータを受信すると更に指定し得る。
実施例C1は、I2S信号をマスタノード送受信器に提供するアイ・スクエアド・シー・サウンド(I2S)送受信器回路であって、マスタノード送受信器が2線式バスのマスタであり、I2S信号がクロック情報を提供し、マスタノード送受信器がクロック情報に基づいてクロック信号を生成し、マスタノード送受信器が第1の信号を下流に、2線式バスを介して下流デバイスに向けて提供し、第1の信号の同期制御フレームのプリアンブルがクロック信号に基づいており、下流デバイスがプリアンブルに基づいてそれ自身のクロック信号を生成する、アイ・スクエアド・シー・サウンド(I2S)送受信器回路と、第1のI2C信号をマスタノード送受信器から受信し、第2のI2C信号をマスタノード送受信器に提供するアイ・スクエアド・シー(I2C)送受信器回路と、第1のI2C信号に基づいて下流デバイスのためのデータを生成する処理回路と、を含み、下流デバイスのためのデータが第2のI2C信号内に含められ、マスタノード送受信器によって2線式バスを介して下流デバイスに送信される、ホストデバイスである。
実施例C2は、実施例C1の主題を含んでもよく、第1の信号は下流デバイスに連結された少なくとも1つのスピーカのためのデータを含むと更に指定し得る。
実施例C3は、実施例C1〜C2のうちのいずれかの主題を含んでもよく、I2S送受信器回路は2線式バスおよびマスタノード送受信器を介して、下流デバイスに連結されたマイクロホンからオーディオを受信し、I2C送受信器回路は2線式バスおよびマスタノード送受信器を介して、下流デバイスに連結された会議ユーザインターフェース要素をユーザが作動させたという表示を受信し、I2S送受信器回路は該表示に応答して、かつ2線式バスおよびマスタノード送受信器を介して、2線式バス上の別の下流デバイスにオーディオを提供すると更に指定し得る。
実施例C4は、実施例C1〜C3のうちのいずれかの主題を含んでもよく、下流デバイスは無線送受信器に連結され、無線送受信器は音声通話を受信し、I2C送受信器回路はマスタノード送受信器および2線式バスを介して音声通話を表すデータを受信すると更に指定し得る。
実施例C5は、実施例C1〜C4のうちのいずれかの主題を含んでもよく、下流デバイスは車両の屋根または他の部分に連結されたアンテナに配線され、マスタノード送受信器は車両のヘッドユニットに位置付けられると更に指定し得る。
実施例C6は、実施例C1〜C5のうちのいずれかの主題を含んでもよく、ホストデバイスは受信メールボックスおよび送信メールボックスであって、データが送信メールボックスに提供されるとき、ホストデバイスが下流デバイスへの送信のための割込みを生成する、受信メールボックスおよび送信メールボックス、を含むと更に指定し得る。
実施例C7は、実施例C1〜C6のうちのいずれかの主題を含んでもよく、下流デバイスは車両内の環境センサに連結され、処理回路はマスタノード送受信器および2線式バスを介してホストデバイスに送信されるセンサからのデータに基づいて車両内の気候制御システムのための制御命令を生成すると更に指定し得る。
実施例D1は、マイクロホンに連結する第1のコネクタと;オーディオ受信デバイスに連結する第2のコネクタと;第1のコネクタと第2のコネクタとの間でデータを送信する導体と;スレーブノード送受信器であって、2線式バスを介して上流デバイスから送信される第1の信号を受信し、第2の信号を2線式バスを介して上流デバイスに提供する上流送受信器回路と、第1の信号内の同期制御フレームのプリアンブルに基づいてスレーブノード送受信器でクロック信号を生成するクロック回路であって、ノード送受信器による2線式バスを介した信号の受信および提供のタイミングがクロック信号に基づく、クロック回路と、第1のコネクタと第2のコネクタとの間で送信されるデータを受信する導体に連結された周辺デバイス通信回路と、を含み、データが第2の信号に含まれる、スレーブノード送受信器と;を含むマイクロホンケーブルである。
実施例D2は、実施例D1の主題を含んでもよく、スレーブノード送受信器は第1のコネクタ内に含まれると更に指定し得る。
実施例D3は、実施例D1〜D2のうちのいずれかの主題を含んでもよく、スレーブノード送受信器は第2のコネクタ内に含まれると更に指定し得る。
実施例D4は、実施例D1〜D3のうちのいずれかの主題を含んでもよく、スレーブノード送受信器は第1のコネクタと第2のコネクタとの間に配されると更に指定し得る。
実施例D5は、実施例D1〜D4のうちのいずれかの主題を含んでもよく、第1のコネクタで受信されたアナログマイクロホン入力をデジタル信号に変換するアナログ−デジタル変換器(ADC)を更に含んでもよく、第2のコネクタの第1のコネクタの間で送信されるデータはデジタル信号を含むと更に指定し得る。
実施例D6は、実施例D5の主題を含んでもよく、第2のコネクタは第2の信号およびデジタル信号をオーディオ受信デバイスに提供すると更に指定し得る。
実施例D7は、実施例D5〜D6のうちのいずれかの主題を含んでもよく、第2のコネクタは第2の信号およびアナログマイクロホン入力をオーディオ受信デバイスに提供すると更に指定し得る。
実施例D8は、実施例D7の主題を含んでもよく、第2の信号およびアナログマイクロホン入力を提供するは第2の信号とアナログマイクロホン入力との和を提供するを含むと更に指定し得る。
実施例D9は、実施例D7〜D8のうちのいずれかの主題を含んでもよく、第2のコネクタはデジタル信号をオーディオ受信デバイスに更に提供すると更に指定し得る。
実施例D10は、実施例D5〜D9のうちのいずれかの主題を含んでもよく、デジタル信号をアナログ信号に変換するデジタル−アナログ変換器を更に含んでもよい。
実施例D11は、実施例D10の主題を含んでもよく、第2のコネクタは第2の信号およびアナログ信号をオーディオ受信デバイスに提供すると更に指定し得る。
実施例E1は、2線式バスリンクを介して実施例Bのうちのいずれかのマスタノード送受信器に連結された、実施例Aのうちのいずれかのスレーブノード送受信器のうちの1つまたは2つ以上を含むシステムである。
実施例E2は、実施例E1の主題を含んでもよく、マスタノード送受信器に連結された実施例Cのうちのいずれかのホストデバイスを更に含んでもよい。
実施例E3は、本明細書に開示の技法のうちのいずれかによる方法である。
実施例E4は、本明細書に開示の技法のうちのいずれかを実行するための手段を含むデバイスである。
実施例E5は、システムの1つまたは2つ以上の処理デバイスによる実行に応答して本明細書に開示の技法のうちのいずれかをシステムに実行させる命令を有する、1つまたは2つ以上の非一時的なコンピュータ可読媒体である。
実施例F1は、本明細書に開示のGPIO対GPIO通信機能のいずれかの実施形態を含んでもよい。
実施例F2は、上記の実施例A〜Eのうちのいずれかの主題を含んでもよく、本明細書に開示のGPIO対GPIO通信機能のいずれかの実施形態を更に含んでもよい。
実施例G1は、低レイテンシ通信システムにおけるマスタノード送受信器であって、下流デバイスへのバスを介して、仮想ポートを識別する仮想ポート識別子を下流デバイスの汎用入出力(GPIO)ピンに割り当て、下流デバイスへのバスを介して、入力ピンまたは出力ピンになるGPIOピンを割り当てる下流送受信器回路を含む、マスタノード送受信器である。
実施例G2は、実施例G1の主題を含んでもよく、仮想ポート識別子はGPIOピンに関連付けられた仮想ポート番号の表示を含むと更に指定し得る。
実施例G3は、実施例G2の主題を含んでもよく、下流デバイスは第1の下流デバイスであり、第1の下流デバイスのGPIOピンは第1のGPIOピンであり、下流送受信器回路は、第1の下流デバイスとは異なる第2の下流デバイスへのバスを介して、仮想ポート識別子を第2の下流デバイスの第2のGPIOピンに割り当てると更に指定し得る。
実施例G4は、実施例G3の主題を含んでもよく、第1のGPIOピンが入力ピンであり、第2のGPIOピンが入力ピンであるとき、第1のGPIOピンの値と第2のGPIOピンの値についてOR論理演算を実行し仮想ポートの値を決定するGPIOデータ回路を更に含んでもよい。
実施例G5は、実施例G2〜4のうちのいずれかの主題を含んでもよく、仮想ポートは第1の仮想ポートであり、仮想ポート番号は第1の仮想ポート番号であり、下流送受信器回路は、下流デバイスへのバスを介して、第2の仮想ポート識別子を下流デバイスのGPIOピンに更に割り当て、第2の仮想ポート識別子は第1の仮想ポート番号とは異なる第2の仮想ポート番号を含み、第2の仮想ポート識別子は第1の仮想ポートとは異なる第2の仮想ポートを識別すると更に指定し得る。
実施例G6は、実施例G5の主題を含んでもよく、GPIOピンが出力ピンであるとき、下流デバイスは第1の仮想ポートの値と第2の仮想ポートの値についてOR論理演算を実行しGPIOピンの値を決定すると更に指定し得る。
実施例G7は、実施例G1〜6のうちのいずれかの主題を含んでもよく、下流送受信器回路は、下流デバイスへのバスを介して、仮想ポートを設定またはクリアする命令を更に送信すると更に指定し得る。
実施例G8は、実施例G7の主題を含んでもよく、下流デバイスは第1の下流デバイスであり、下流送受信器回路は、第2の下流デバイスからバスを介して、仮想ポートを設定またはクリアするリクエストを更に受信し、下流送受信器回路は仮想ポートを設定またはクリアするリクエストの受信に応答して仮想ポートを設定またはクリアする命令を送信すると更に指定し得る。
実施例G9は、実施例G7の主題を含んでもよく、命令は仮想ポートをクリアするものであり、マスタノード送受信器はバス上のマスタノード送受信器の下流の少なくとも1つのデバイスが命令を拒絶していることを決定し、決定に応答して、仮想ポートをマスタノード送受信器のメモリ内に設定されているように維持するGPIOデータ回路を更に含むと更に指定し得る。
実施例G10は、実施例G9の主題を含んでもよく、決定は少なくとも1つの下流のデバイスから受信した否定応答を識別することを含むと更に指定し得る。
実施例G11は、実施例G7の主題を含んでもよく、命令は仮想ポートを設定するものであり、マスタノード送受信器は仮想ポートをマスタノード送受信器のメモリ内に設定するGPIOデータ回路を更に含むと更に指定し得る。
実施例G12は、実施例G1〜11のうちのいずれかの主題を含んでもよく、マスタノード送受信器をホストデバイスに通信可能に連結するホストインターフェース回路を更に含んでもよい。
実施例G13は、実施例G12の主題を含んでもよく、ホストインターフェース回路はアイ・スクエアド・シー(I2C)回路を含むと更に指定し得る。
実施例G14は、実施例G1〜13のうちのいずれかの主題を含んでもよく、バスは2線式バスであると更に指定し得る。
実施例H1は、低レイテンシ通信システムにおけるスレーブノード送受信器であって、マスタノード送受信器からバスを介して、仮想ポートを識別する仮想ポート識別子の、スレーブノード送受信器の汎用入出力(GPIO)ピンへの割り当てを受信し、マスタノード送受信器からバスを介して、入力ピンまたは出力ピンとしてのGPIOピンの割り当てを受信する、上流送受信器回路を含む。
実施例H2は、実施例H1の主題を含んでもよく、仮想ポート識別子はGPIOピンに関連付けられた仮想ポート番号の表示を含み、GPIOピンは第1のGPIOピンであり、上流送受信器回路は、マスタノード送受信器からバスを介して、下流デバイスの第2のGPIOピンへの仮想ポート識別子の割り当てを更に受信し、下流デバイスはバス上でスレーブノード送受信器から下流にあると更に指定し得る。
実施例H3は、実施例H2の主題を含んでもよく、バスを介して下流に、下流デバイスの第2のGPIOピンへの仮想ポート識別子の割り当てを送信する下流送受信器回路を更に含んでもよい。
実施例H4は、実施例H1〜3のうちのいずれかの主題を含んでもよく、GPIOピンの値を反転させるGPIOデータ回路を更に含んでもよい。
実施例H5は、実施例H1〜4のうちのいずれかの主題を含んでもよく、上流送受信器回路は、マスタノード送受信器からバスを介して、GPIOピンの値を変更する命令を更に受信すると更に指定し得る。
実施例H6は、実施例H1〜5のうちのいずれかの主題を含んでもよく、GPIOピンはスレーブノード送受信器の複数のGPIOピンのうちの1つであると更に指定し得る。