(57)【要約】  第1のラインおよび第2のラインを含むバスを有するデバイスが提供される。デバイスの第1のセットがバスに結合され、第1の動作モードにおいて、データ送信のために第1のラインを使用し、第1のクロック信号のために第2のラインを使用するように構成される。1つまたは複数の追加のラインが、2つ以上のデバイス間でシグナリングを送信するためにデバイスの第1のセット内で2つ以上のデバイス間を接続する。デバイスの第2のセットが、第2の動作モードにおいてデータ送信のためにバスおよび追加のラインのうちの少なくとも1本のラインを使用するようにさらに構成され、第2の動作モードにおいて、シンボルが、第1のライン、第2のライン、および追加のラインのうちの少なくとも1本のラインにわたって符号化される。
2017520053.tif 000002
【特許請求の範囲】
【請求項１】
第1のラインおよび第2のラインを含むバスと、
前記バスに結合され、第1の動作モードにおいてデータ送信のために前記第1のラインを使用し、第1のクロック信号のために前記第2のラインを使用するように構成されたデバイスの第1のセットと、
2つ以上のデバイス間でシグナリングを送信するための、デバイスの前記第1のセット内の2つ以上のデバイスを接続する1つまたは複数の追加のラインと、
第2の動作モードにおいてデータ送信のために前記バスおよび前記追加のラインのうちの少なくとも1本のラインを使用するようにさらに構成された、デバイスの前記第1のセット内のデバイスの第2のセットとを備え、前記第2の動作モードにおいて、シンボルが、前記第1のライン、前記第2のライン、および前記追加のラインのうちの前記少なくとも1本のラインにわたって符号化される、装置。
【請求項２】
デバイスの前記第1のセットおよびデバイスの前記第2のセットが、前記第1の動作モードと前記第2の動作モードの両方において、前記第1のラインおよび前記第2のラインのうちの少なくとも1本のラインを同時に監視する、請求項1に記載の装置。
【請求項３】
前記第1の動作モードにおいて、デバイスの前記第2のセットからのマスタデバイスが、前記バスの前記第1のラインを介してデバイスの前記第1のセットまたはデバイスの前記第2のセットからスレーブデバイスにデータを送信する、請求項1に記載の装置。
【請求項４】
前記第2の動作モードにおいて、デバイスの前記第2のセットからのマスタデバイスが、前記バスの前記第1のラインおよび前記第2のラインならびに前記追加のラインのうちの前記少なくとも1本のラインを介して、デバイスの前記第2のセットからスレーブデバイスにデータを送信する、請求項1に記載の装置。
【請求項５】
前記第1の動作モードが、前記バスを介してデータ送信のための第1のプロトコルを実施し、前記第2の動作モードが、前記バスおよび前記追加のラインのうちの前記少なくとも1本のラインを介してデータ送信のための第2のプロトコルを実施する、請求項1に記載の装置。
【請求項６】
前記第2の動作モードにおいて、デバイスの前記第1のセットが、有効なスレーブノードアドレスの検出を禁止するリセットインジケータを、前記第1のラインおよび前記第2のラインを介して受信する、請求項1に記載の装置。
【請求項７】
前記第2の動作モードにおいて、リセットインジケータまたは停止インジケータが、データ送信の間に前記第1のラインまたは前記第2のライン内で回避される、請求項1に記載の装置。
【請求項８】
前記第1の動作モードの間に、デバイスの前記第2のセットからのマスタノードが、前記第2の動作モードへの切替えをデバイスの前記第2のセットに示す第1のビットシーケンスを、前記第1のラインを介して送る、請求項1に記載の装置。
【請求項９】
前記第2の動作モードの間に、マスタノードが、前記第1の動作モードへの切替えをデバイスの前記第2のセットに示す退出シンボルシーケンスを、前記バスを介して送る、請求項1に記載の装置。
【請求項１０】
前記第2の動作モードにおいて、第2のクロック信号が、前記バスおよび前記追加のラインのうちの前記少なくとも1本のラインを介してシンボル遷移内に埋め込まれる、請求項1に記載の装置。
【請求項１１】
前記第2の動作モードにおいて、前記第2のクロック信号が、ラインの第1のサブセットを介してシンボル遷移内に埋め込まれる一方で、第3のクロック信号が、ラインの第2のサブセットを介してシンボル遷移内に埋め込まれる、請求項10に記載の装置。
【請求項１２】
デバイスの前記第2のセット内の1つまたは複数のデバイスが、前記第1の動作モードと前記第2の動作モードの両方において動作することが可能である、請求項1に記載の装置。
【請求項１３】
前記第1の動作モードにおいて、前記1つまたは複数の追加のラインが、デバイスの前記第1のセットまたはデバイスの前記第2のセット内でスレーブデバイスからマスタデバイスに伝達される割込みのために使用される、請求項1に記載の装置。
【請求項１４】
前記第2の動作モードにおいて、デバイスの前記第2のセット内のマスタデバイスが、
デバイスの前記第2のセット内の特定のスレーブデバイスを有する利用可能なラインの数を確認することと、
前記利用可能なラインのうちの1つまたは複数を選択することと、
前記バスおよび前記利用可能なラインのうちの前記選択された1つまたは複数のラインを利用するために前記第2の動作モードにおいて使用されるプロトコルを動的に適合させることと
を行うように適合される、請求項1に記載の装置。
【請求項１５】
前記第2の動作モードにおいて使用される前記プロトコルが、送信のためのシンボルを符号化するために変化する数のラインを使用するように適合される、請求項14に記載の装置。
【請求項１６】
合計3つのラインが、前記シンボルを符号化するために前記第2の動作モードにおいて使用されるとき、複数のシンボルが、7進ベース数としてさらに符号化される、請求項1に記載の装置。
【請求項１７】
合計4つのラインが、前記シンボルを符号化するために前記第2の動作モードにおいて使用されるとき、複数のシンボルが、15進ベース数としてさらに符号化される、請求項1に記載の装置。
【請求項１８】
データ送信のためにバスの第1のラインを使用し、第1のクロック信号のために前記バスの第2のラインを使用するように構成されたデバイスの第1のセットを、第1の動作モードに従って動作させるステップと、
2つ以上のデバイス間でシグナリングを送信するためにデバイスの前記第1のセット内の前記2つ以上のデバイスを接続する1つまたは複数の追加のラインの可用性を決定するステップと、
データ送信のために前記バスおよび前記追加のラインのうちの少なくとも1本のラインを使用するように構成された第2の動作モードに従って、デバイスの前記第1のセット内のデバイスの第2のセットを動作させるステップとを含み、前記第2の動作モードにおいて、シンボルが、前記第1のライン、前記第2のライン、および前記追加のラインのうちの前記少なくとも1本のラインにわたって符号化される、方法。
【請求項１９】
前記第1の動作モードにおいて割込み信号を伝達するために前記1つまたは複数の追加のラインを使用するステップ
をさらに含む、請求項18に記載の方法。
【請求項２０】
前記1つまたは複数の追加のラインが、デバイスの前記第2のセット内の少なくとも3つのデバイスに結合された共有ラインを備える、請求項18に記載の方法。
【請求項２１】
2線式シリアルバスに結合された第1のデバイスによって実行される方法であって、
前記2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して、前記2線式シリアルバスに結合された第2のデバイスとの接続を前記2線式シリアルバスで確立するステップと、
前記第1のデバイスと前記第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定するステップと、
前記2線式バスおよび前記1つまたは複数の追加のラインを含むラインの組合せを介して、送信のためのシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化するステップであって、クロック情報が、シンボルの前記シーケンス内の連続するシンボルのペア間の遷移内に符号化される、符号化するステップと、
ラインの前記組合せを介してシンボルの前記シーケンスを送信するステップとを含む、方法。
【請求項２２】
前記既定の基本プロトコルが、データ通信の集積回路間(I2C)モードに準拠するかまたはそれと互換性がある、請求項21に記載の方法。
【請求項２３】
前記既定の基本プロトコルが、前記第1のデバイスと前記第2のデバイスとの間で割込み信号を送信するために、前記1つまたは複数の追加のラインを使用する、請求項21に記載の方法。
【請求項２４】
前記1つまたは複数の追加のラインが、少なくとも3つのデバイスに結合された共有ラインを備える、請求項21に記載の方法。
【請求項２５】
シンボルの前記シーケンスの各々が、合計3本の線がシンボルのシーケンス内のデータを符号化するために使用されるとき、12個のシンボルを含み、33ビットの2進ワードを符号化する、請求項21に記載の方法。
【請求項２６】
前記高データレートプロトコルを使用してラインの前記組合せを介してシンボルの前記シーケンスを送信した後、前記既定の基本プロトコルを使用して前記2線式シリアルバス上で通信するステップをさらに含む、請求項21に記載の方法。
【請求項２７】
前記既定の基本プロトコルが、前記2線式シリアルバスを介して通信するためにだけ使用される、請求項21に記載の方法。
【請求項２８】
前記高データレートプロトコルのクロック情報が、前記2線式シリアルバスのシグナリング状態の遷移内に符号化される、請求項21に記載の方法。
【請求項２９】
前記高データレートプロトコルのクロック情報が、ラインの前記組合せのシグナリング状態の遷移内に符号化される、請求項21に記載の方法。
【請求項３０】
ラインの組合せが少なくとも3つの合計に等しいとき、シンボルの前記シーケンスの各々が、7進ベース数として符号化される、請求項21に記載の方法。
【請求項３１】
ラインの組合せが少なくとも4本のラインの合計に等しいとき、シンボルの前記シーケンスの各々が、15進ベース数として符号化される、請求項21に記載の方法。
【請求項３２】
2線式シリアルバスと、
第1のデバイスを前記2線式シリアルバスに結合するように適合され、前記2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して通信するように構成された通信インターフェースを含む第1のデバイスと、
前記2線式シリアルバスに結合され、前記既定の基本プロトコルを使用して通信するように構成された第2のデバイスと、
前記通信インターフェースに結合された処理回路とを備え、前記処理回路が、
前記第1のデバイスと前記第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定することと、
前記2線式バスおよび前記1つまたは複数の追加のラインを含むラインの組合せを介して、送信のためのシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化することであって、クロック情報が、シンボルの前記シーケンス内の連続するシンボルのペア間の遷移内に符号化される、符号化することと、
ラインの前記組合せを介してシンボルの前記シーケンスを送信することとを行うように構成される、装置。
【請求項３３】
前記既定の基本プロトコルが、前記第1のデバイスと前記第2のデバイスとの間で割込み信号を送信するために、前記1つまたは複数の追加のラインを使用する、請求項32に記載の装置。
【請求項３４】
前記1つまたは複数の追加のラインが、少なくとも3つのデバイスに結合された共有ラインを備える、請求項33に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれる、2014年6月18日に米国特許庁に出願された仮特許出願第62/013,818号および2015年6月2日に米国特許庁に出願された非仮特許出願第14/728,777号の優先権および利益を主張する。
【０００２】
本開示は、一般にホストプロセッサと周辺デバイスとの間のインターフェースに関し、より詳細には、次世代センサとレガシーセンサの両方を接続して複数の動作モードに対応するインターフェースおよび動的調整可能な共有バスに関する。
【背景技術】
【０００３】
セルラー電話などのモバイルデバイスの製造業者は、モバイルデバイスの構成要素を、異なる製造業者を含む様々なソースから取得し得る。たとえば、モバイルコンピューティングデバイスにおけるアプリケーションプロセッサは、第1の製造業者から取得されることがあり、モバイルコンピューティングデバイスによって採用されるセンサは、1つまたは複数の他の製造業者から取得されることがある。様々な規格ベースのインターフェースまたは独自仕様インターフェースが定義されており、一般に、特定の用途またはタイプのアプリケーションを対象とする。たとえば、セルラー電話は、モバイル業界プロセッサインターフェースアライアンス(MIPI)によって指定される集積回路間(I2C)互換バス規格と互換性があるかまたはそれに準拠する通信インターフェースを使用し得る。
【０００４】
I2Cインターフェースは、特定のアプリケーションのために最適化され得る、広く採用される通信インターフェースとなった。たとえば、MIPI規格は、マスタおよび1つまたは複数のスレーブを接続するバスとして構成された、2線式、双方向、半二重のシリアルインターフェースを使用する、カメラ制御インターフェース(CCI)を定義する。したがって、CCIプロトコルは、I2Cのシリアルクロック(SCL)ラインおよびシリアルデータ(SDA)ラインを使用し、CCIデバイスおよびI2Cデバイスは、2つ以上のCCIデバイスがCCIプロトコルを使用して通信しながら、I2Cバスを伴う任意の通信がI2Cプロトコルを使用してもよいように、同じバス上に配備され得る。より最近のバージョンのCCIは、より高速な信号速度をサポートするために、修正されたプロトコルを使用してより高いスループットを提供することができる。同様に、I2Cは、センサインターフェースのために実装されてよい。しかしながら、レガシーセンサをサポートするための後方互換性および「常時接続」タイプのアプリケーションに対する節電の必要性を伴う新しいセンサの出現により、レガシーI2Cの能力を超える高いデータレートスループットが要求されている。そのようなより高いスループット速度を目標とするいくつかのセンサの例には、統合センサ(aggregated sensors)、センサハブ、タッチセンサ、低解像度カメラセンサなどがある。しかしながら、同じバス上でレガシーセンサの動作に同時に対応しながら、次世代センサデバイスのためにより高いスループットをいかにして提供するかという挑戦課題が残されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
異なるタイプの周辺装置または協働するデバイスをプロセッサに接続するバスとして構成されたシリアルインターフェース上で最適化された通信を提供することが、現在求められている。
【課題を解決するための手段】
【０００６】
本明細書で開示する実施形態は、センサグローバルバス(SGbus)などの2線式シリアルバスの性能を改善し得るシステム、方法、および装置を提供する。
【０００７】
本開示の一態様では、データ通信の方法は、1つまたは複数のスレーブデバイスが結合される共有バスを介してマスタデバイスとして動作する第1のデバイスに関する。第1のデバイスは、既定の基本プロトコルを使用して、2線式シリアルバスに結合された第2のデバイスとの接続を2線式シリアルバス上で確立してもよい。第1のデバイスは、第1のデバイスと第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のコネクタ、線、および/またはラインの可用性を決定してよい。より高速の動作モードにおいて、第1のデバイスは、既定の基本プロトコルから、既定の基本プロトコルより高いデータスループットを有する第2のプロトコルの使用に切り替えてよい。第2のプロトコルは、コネクタ、ラインおよび/または線の組合せを介してシンボルのシーケンスを送信するために、2線式バスと少なくとも1つまたは複数の追加のコネクタ、ラインおよび/または線とを含むラインの組合せを介して送信のためにシンボルのシーケンス内のデータを符号化してよい。クロック情報は、2線式バスと少なくとも1つまたは複数の追加のコネクタ、ラインおよび/または線とを介して送信されるシンボルのシーケンス内の連続するシンボルのペア間の遷移内に符号化されてよい。
【０００８】
別の態様では、既定の基本プロトコルは、I2Cモードのデータ通信に準拠するかまたはそれと互換性のあるプロトコルを含む。既定の基本プロトコルは、2線式バスの第1の線がシリアルデータ通信に使用され、2線式バスの第2の線がクロック信号に使用されるCCIデータトランスポートモードに類似することがある。
【０００９】
一例では、データを転送するためにI2C内で使用される2線式ベースのプロトコルとは対照的に、高データレート(HDR)プロトコルは、コード化シンボルに基づいて実装されてよい。このHDRプロトコルでは、クロックは、データストリーム内(たとえば、シンボル遷移内)に埋め込まれてよい。このDHRプロトコルはセンサアプリケーションに適合されてよく、シンボルコーディングは、(たとえば、既定の基本プロトコルにおいて他の目的のために使用されるラインを再目的化することによって)3つ以上の線を使用するように拡張されてよい。デバイス間で動作可能な他のタイプのバスおよび/またはインターフェースもまた、そのようなHDRプロトコルに従って動作するように適合されてよいことに留意されたい。加えて、シンボルコーディングは、2つ、3つ、またはそれ以上の線上に実装されてもよい。様々な実装形態では、埋め込みクロックは、1本のライン/線または複数のラインを介して送信されてよい。加えて、複数の埋め込みクロックが、異なるラインまたはラインのセットを介して送信されてよい。埋め込みクロックの各々は、たとえば、異なる構成をサポートしてよい。
【００１０】
別の態様では、1つまたは複数の追加のコネクタ、ラインおよび/または線は、第1のデバイスと第2のデバイスとの間で割込み信号を送信するために動作可能であるコネクタ、ラインおよび/または線を含んでよい。1つまたは複数の追加のコネクタ、ラインおよび/または線は、第1のデバイス(たとえば、マスタデバイス)と1つまたは複数のスレーブデバイスとの間で結合される共有のコネクタ、ラインおよび/または線を含んでよい。たとえば、一例では、コネクタ、ラインおよび/または線は、第1のデバイスと第2のデバイスとの間だけに延びてよい。別の例では、コネクタ、ラインおよび/または線は、第1のデバイス、第2のデバイスおよび第3のデバイスの間に延びてもよい。
【００１１】
別の態様では、シンボルのシーケンスの各々は、12個のシンボルを含んでよい。シンボルのシーケンスの各々は、たとえば、3つの線にわたって展開されるとき、33ビット2進ワードを符号化してよい。
【００１２】
別の態様では、第2のプロトコル(たとえば、シンボルのシーケンス)を使用して3つ以上の線、導体および/またはラインを使用して通信した後、2線式シリアルバス上の通信は、2線式シリアルバスと関係付けられた既定の基本プロトコルに従って再開してよい。既定の基本プロトコルを使用する通信は、一般に、2線式シリアルバスだけを伴う。
【００１３】
別の態様では、クロック情報は、2線式シリアルバスのみのシグナリング状態の遷移内に符号化されてよい。クロック情報は、コネクタの組合せのシグナリング状態の遷移内に符号化されてよい。
【００１４】
本開示の一態様では、デバイスは、第1のラインおよび第2のラインを有するバスと、バスに結合され、第1の動作モードにおいて、データ送信のために第1のラインを使用し、第1のクロック信号のために第2のラインを使用するように構成されたデバイスの第1のセットと、2つ以上のデバイス間でシグナリングを送信するためにデバイスの第1のセット内のデバイスのうちの2つ以上を接続する1つまたは複数の追加のラインと、第2の動作モードにおいてデータ送信のためにバスおよび追加のラインのうちの少なくとも1本のラインを使用するようにさらに構成された、デバイスの第1のセット内のデバイスの第2のセットとを含む。第2の動作モードにおいて、シンボルは、第1のライン、第2のライン、および追加のラインのうちの少なくとも1つにわたって符号化される。
【００１５】
デバイスの第1のセットおよびデバイスの第2のセットは、動作の第1のモードと第2のモードの両方において、第1のラインおよび第2のラインのうちの少なくとも1本のラインを同時に監視してよい。デバイスの第1のセットおよびデバイスの第2のセットは、動作の第1のモードと第2のモードの両方において、第1のラインと第2のラインの両方のラインを同時に監視する。
【００１６】
第1の動作モードにおける動作の一例では、デバイスの第2のセット内のマスタデバイスは、バスの第1のラインを介してデバイスの第1のセットまたはデバイスの第2のセット内のスレーブデバイスにデータを送信する。第1の動作モードは、バスを介してデータ送信のための第1のプロトコルを実施してよく、第2の動作モードは、バスおよび追加のラインのうちの少なくとも1本のラインを介してデータ送信のための第2のプロトコルを実施してよい。第1の動作モードでは、デバイスの第2のセット内のマスタノードは、第2の動作モードへの切替えをデバイスの第2のセットに示す第1のビットシーケンスを、第1のラインを介して送ってよい。
【００１７】
第2の動作モードにおける動作の一例では、デバイスの第2のセット内のマスタデバイスは、バスの第1のラインおよび第2のラインならびに追加のラインのうちの少なくとも1本のラインを介して、デバイスの第2のセット内のスレーブデバイスにデータを送信する。第2の動作モードでは、デバイスの第1のセットは、有効なスレーブノードアドレスの検出を禁止するリセットインジケータを、第1のラインおよび第2のラインを介して受信してよい。第2の動作モードでは、リセットインジケータおよび/または停止インジケータは、データ送信の間に第1のラインおよび/または第2のライン内で回避されることがある。第2の動作モードでは、マスタノードは、第1の動作モードへの切替えをデバイスの第2のセットに示す退出シンボルシーケンスを、バスを介して送ってよい。
【００１８】
いくつかの態様によれば、第2の動作モードにおいて、第2のクロック信号が、バスおよび追加のラインのうちの少なくとも1本のラインを介してシンボル遷移内に埋め込まれる。第2のクロック信号は、ラインの第1のサブセットを介してシンボル遷移内に埋め込まれてよく、一方で第3のクロック信号は、ラインの第2のサブセットを介してシンボル遷移内に埋め込まれる。第2の動作モードにおいて、デバイスの第2のセット内のマスタデバイスは、デバイスの第2のセット内の特定のスレーブデバイスを有する利用可能なラインの数を確認することと、利用可能なラインのうちの1つまたは複数のラインを選択することと、バスおよび選択された1つまたは複数の利用可能なラインを利用するために第2の動作モードにおいて使用されるプロトコルを動的に適合させることとを行うように適合されてよい。
【００１９】
いくつかの態様によれば、プロトコルは、送信のためにシンボルを符号化するために変化するラインの数を使用するように適合される。
【００２０】
いくつかの例では、デバイスの第2のセット内の1つまたは複数のデバイスは、第1の動作モードと第2の動作モードの両方において動作することが可能である。
【００２１】
いくつかの態様によれば、第1の動作モードにおいて、1つまたは複数の追加のラインが、デバイスの第1のセットおよび/または第2のセット内でスレーブデバイスからマスタデバイスに割込みを伝達するために設けられることがある。
【００２２】
いくつかの態様によれば、少なくとも3つのラインが、シンボルを符号化するために第2の動作モードにおいて使用され、複数のシンボルが、7進ベース数としてさらに符号化される。少なくとも4つのラインが、シンボルを符号化するために第2の動作モードにおいて使用されてよく、複数のシンボルが、15進ベース数としてさらに符号化されてよい。
【００２３】
いくつかの例では、バスはI2C互換バスである。
【００２４】
本開示の一態様では、デバイスは、第1のラインおよび第2のラインを有する2線式バスと、第1のデバイスと第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定するための手段と、2線式バスおよび1つまたは複数の追加のラインを含むラインの組合せを介する送信のためにシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化するための手段であって、クロック情報がシンボルのシーケンス内の連続するシンボルのペア間の遷移内に符号化される、符号化するための手段と、ラインの組合せを介してシンボルのシーケンスを送信するための手段とを含む。
【００２５】
本開示の一態様では、コンピュータ可読媒体は、データおよび命令を記憶してよい。コンピュータ可読媒体は、非一時的記憶媒体であってもよい。命令は、処理回路の1つまたは複数のプロセッサによって実行されてよい。命令は、実行されるとき、第1のデバイスと第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定することと、2線式バスおよび1つまたは複数の追加のラインを含むラインの組合せを介する送信のためにシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化することであって、クロック情報がシンボルのシーケンス内の連続するシンボルのペア間の遷移内に符号化される、符号化することと、ラインの組合せを介してシンボルのシーケンスを送信することとを処理回路に行わせてよい。
【００２６】
本開示の一態様では、方法は、データ送信のためにバスの第1のラインを使用し、第1のクロック信号のためにバスの第2のラインを使用するように構成されたデバイスの第1のセットを第1の動作モードに従って動作させるステップと、2つ以上のデバイス間でシグナリングを送信するためにデバイスの第1のセット内のデバイスのうちの2つ以上を接続する1つまたは複数の追加のラインの可用性を決定するステップと、データ送信のためにバスおよび追加のラインのうちの少なくとも1本のラインを使用するように構成された、デバイスの第1のセット内のデバイスの第2のセットを、第2の動作モードに従って動作させるステップとを含む。第2の動作モードにおいて、シンボルは、第1のライン、第2のライン、および追加のラインのうちの少なくとも1本のラインにわたって符号化されてよい。
【００２７】
本開示の一態様では、第1のデバイスは、2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して、第1のデバイスを、2線式シリアルバスに結合された第2のデバイスを有する2線式シリアルバスに結合するように構成された通信インターフェースと、通信インターフェースに結合された処理回路とを含んでよい。処理回路は、第1のデバイス第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定することと、2線式バスおよび1つまたは複数の追加のラインを含むラインの組合せを介する送信のためにシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化することとを行うように構成されてよい。クロック情報は、シンボルのシーケンス内の連続するシンボルのペア間の遷移内に符号化され、シンボルのシーケンスをラインの組合せを介して送信する。
【図面の簡単な説明】
【００２８】
【図１】複数の利用可能な規格のうちの1つに従って選択的に動作する集積回路(IC)デバイス間のデータリンクを利用する装置を示す図である。
【図２】ICデバイス間のデータリンクを利用する装置のためのシステムアーキテクチャを示す図である。
【図３】本明細書で開示するいくつかの態様による送信機および受信機のいくつかの態様を示す図である。
【図４】本明細書で開示するいくつかの態様による、シンボルを送信するときに高データレートプロトコル(たとえば、SGbusプロトコル)のシグナリング状態を示す図である。
【図５】本明細書で開示するいくつかの態様による、データをトランスコードするための符号化方式の一例を示す図である。
【図６】I2Cの1バイト書込みデータ動作のタイミング図である。
【図７】共通のI2Cバスに接続されたI2Cデバイス(たとえば、レガシーデバイス)とSGbusデバイス(たとえば、次世代センサ)との構成を示す図である。
【図８】SGbusシリアルインターフェース上のトランザクションの開始および終了を示す図である。
【図９】I2Cプロトコルに従って送信された複数のフレームと関係付けられたタイミングを示す図である。
【図１０】意図しないI2C START条件およびI2C STOP条件の発生を示す図である。
【図１１】本明細書で開示するいくつかの態様に従って使用されてよい2線にわたる符号化方式の例のいくつかの態様を示す図である。
【図１２】センサグローバルバス送信のために使用されるシンボルコーディング方式の例を示す図である。
【図１３】センサグローバルバス送信のために使用されるシンボル符号化方式の別の例を示す図である。
【図１４】いくつかのデバイスが、本明細書で開示するいくつかの態様に従って追加のコネクタを使用してよい共通のシリアルバスに接続された異なるデバイスの構成を示す図である。
【図１５】本明細書で開示するいくつかの態様による、3つのコネクタまたは線を符号化するデータシンボルの一例を示す図である。
【図１６】本明細書で開示するいくつかの態様に従って適合されてよい処理システムを利用する装置の一例を示すブロック図である。
【図１７】本明細書で開示する1つまたは複数の態様による、SGbusを有する追加のラインを使用して通信するための第1の方法のフローチャートである。
【図１８】本明細書で開示する1つまたは複数の態様による、SGbusを有する追加のラインを使用して通信するための第2の方法のフローチャートである。
【図１９】シンボルが2線式バスおよび1つまたは複数の追加のラインの間で符号化される第2のモードにおいて1つまたは複数の追加のラインを追加するために、第1のモードにおける2線式バスを使用しかつ2線式バスを動的に調整して通信する装置のためのハードウェア実装形態の一例を示す図である。
【発明を実施するための形態】
【００２９】
図面に関して、ここで様々な態様について記述する。以下の説明では、説明の目的で、1つまたは複数の態様を完全に理解できるように多数の具体的な詳細を記載する。しかしながら、そのような態様がこれらの具体的な詳細なしに実践される場合があることは明らかであろう。
【００３０】
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連エンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってよい。例として、コンピューティングデバイス上で実行するアプリケーションとコンピューティングデバイスの両方が構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、構成要素は、1つのコンピュータ上に位置し、かつ/または2つ以上のコンピュータ間に分散する場合がある。加えて、これらの構成要素は、様々なデータ構造を記憶する様々なコンピュータ可読媒体から実行することができる。構成要素は、ローカルシステム内の、分散システム内の、および/または、インターネットなどのネットワークにわたる別の構成要素と対話する1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号などに従うローカルプロセスおよび/またはリモートプロセスにより、信号を用いて他のシステムと通信する場合がある。
【００３１】
その上、「または」という用語は、排他的な「または」よりもむしろ包括的な「または」を意味するものとする。すなわち、別段の規定がない限り、または、文脈から明白でない限り、「XはAまたはBを採用する」という句は、自然包括的並べ替えのいずれかを意味するものとする。すなわち、「XはAまたはBを採用する」という句は、以下の例のいずれかによって満たされる。XはAを採用する。XはBを採用する。またはXはAとBの両方を採用する。加えて、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段に規定されていない限り、または単数形を対象とすることが文脈から明白でない限り、概して「1つまたは複数の」を意味するものと解釈すべきである。
【００３２】
概説
2線式I2C互換バスにも結合された1つまたは複数のデバイス間で利用可能であり得る1つまたは複数の他の線を動的に再目的化することに加えて、2線式I2C互換バス使用する、動的に再設定可能な高データレートバス(たとえば、センサグローバルバスすなわちSGbus)が提供される。次いで、シンボルが、2線式バスおよび再目的化された1つまたは複数の他の線にわたって符号化される。このセンサグローバルバスは、第1の動作モードにおけるレガシーI2Cデバイス、ならびに第2の動作モードにおける次世代デバイスをサポートし得る。
【００３３】
例示的な動作環境
いくつかの態様は、電話、モバイルコンピューティングデバイス、アプライアンス、自動車用電子機器、アビオニクスシステムなど、装置のサブ構成要素を含み得る電子デバイス間に配備される通信リンクに対して適用可能であり得る。図1は、ICデバイス間の通信リンクを採用し得る装置を示す。一例では、装置100は、無線周波数(RF)トランシーバを通じて、無線アクセスネットワーク(RAN)、コアアクセスネットワーク、インターネットおよび/または別のネットワークと通信するワイヤレス通信デバイスを含み得る。装置100は、処理回路102に動作可能に結合された通信トランシーバ106を含み得る。処理回路102は、特定用途向けIC(ASIC)108などの1つまたは複数のICデバイスを含み得る。ASIC108は、1つまたは複数の処理デバイス、論理回路などを含み得る。処理回路102は、処理回路102によって実行され得る命令およびデータを維持し得るメモリデバイス112などのプロセッサ可読ストレージを含み得、かつ/またはそれに結合され得る。処理回路102は、オペレーティングシステム、および、ワイヤレスデバイスのメモリデバイス112などの記憶媒体の中に存在するソフトウェアモジュールの実行をサポートし可能にするアプリケーションプログラミングインターフェース(API)110レイヤのうちの1つまたは複数によって制御され得る。メモリデバイス112は、読取り専用メモリ(ROM)もしくはランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュカード、または処理システムおよびコンピューティングプラットフォームにおいて使用され得る任意のメモリデバイスを含み得る。処理回路102は、装置100を構成かつ操作するために使用される操作パラメータおよび他の情報を維持し得るローカルデータベース114を含み得るか、またはそれにアクセスし得る。ローカルデータベース114は、データベースモジュール、フラッシュメモリ、磁気媒体、EEPROM、光媒体、テープ、ソフトディスクまたはハードディスクなどのうちの1つまたは複数を使用して実装され得る。処理回路はまた、他の構成要素の中でも、アンテナ122、ディスプレイ124などの外部デバイス、ボタン128、キーパッド126などのオペレータ制御に動作可能に結合され得る。
【００３４】
図2は、通信バスに接続された装置200のいくつかの態様を示すブロック概略図であり、この場合、装置は、ワイヤレスモバイルデバイス、モバイル電話、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲーミングデバイス、携帯情報端末(PDA)または他のハンドヘルドデバイス、ネットブック、ノートブックコンピュータ、テレビジョン、エンターテインメントデバイス、ウェアラブルデバイスなどのうちの1つまたは複数において実施され得る。装置200は、共有バス230を使用して通信する複数のデバイス202、210、および222a〜222nを含み得る。共有バス230は、高データレートバス230によってサポートされる強化された機能のために構成されているデバイスのために、従来のI2Cバスの能力を拡張することができる。たとえば、共有バス230は、2つの線/ラインにわたってコーディングする3進数のシンボルを利用することによって、I2Cバスより高いビットレートをサポートし得る。
【００３５】
図2に示す例では、デバイス202は、共有バス230上でスレーブとして動作するように構成されてよい。デバイス202は、1つまたは複数の汎用センサ、高速センサ、指紋センサ、画像センサ(たとえば、カメラ)、タッチスクリーンセンサなどを管理するセンサ制御機能204を提供するように適応され得る。加えて、デバイス202は、構成レジスタまたは他のストレージ206と、制御論理212と、トランシーバ210と、ラインドライバ/受信機214aおよび214bとを含み得る。制御論理212は、状態機械、シーケンサ、信号プロセッサまたは汎用プロセッサなどの処理回路を含み得る。トランシーバ210は、受信機210aと、送信機210cと、タイミング、論理、およびストレージの回路および/またはデバイスを含む共通回路210bとを含み得る。一例では、送信機210cは、クロック生成回路208によって与えられたタイミングに基づいて、データを符号化および送信する。
【００３６】
例示的な2線式シンボル符号化プロトコル
図3は、本明細書で開示するいくつかの態様に従って構成された送信機300および受信機320の一例を示すブロック図である。HDR動作の場合、送信機300は、データ310を3進(ベース3)数にトランスコードすることができ、3進数は、SCLライン216およびSDAライン218の信号線など、コネクタ、線またはラインのペア上で送信されるシンボルとして符号化される。図示の例では、入力データ310の各(データワードとも呼ばれる)データ要素は、8、12、16、19、または20ビットなど、事前定義されたビット数を有し得る。トランスコーダ302は、入力データ310を受信し、データ要素ごとに3進数312のシーケンスを生成することができる。3進数312のシーケンス内の各3進数は、2ビットで符号化されてよく、3進数312の各シーケンス内に12個の3進数があり得る。3進-シンボルエンコーダ304は、ラインドライバ306を通して送信される2ビットシンボル314のストリームを生成する。図示の例では、ラインドライバ306は、オープンドレイン出力トランジスタ308を含む。しかしながら、他の例では、ラインドライバ306は、プッシュプルドライバを使用してSCLライン216およびSDAライン218の信号線を駆動することができる。エンコーダによって生成された2ビットシンボル314の出力ストリームは、連続するシンボルのペアは2つの同一のシンボルを含まないことを保証することによって、連続するシンボル314間のSCLライン216およびSDAライン218の信号線のうちの少なくとも1つの状態における遷移を有する。少なくとも1本のライン216および/または218における状態の遷移の可用性により、受信機320がデータシンボル314のストリームから受信クロック338を抽出することが可能になる。
【００３７】
高データレートインターフェースでは、受信機320は、クロックおよびデータ回復(CDR)回路328を含むか、またはそれと協働し得る。受信機320は、CDR回路328に未加工の2ビットシンボル336のストリームを与えるラインインターフェース回路326を含み得る。CDR回路328は、未加工のシンボル336から受信クロック338を抽出し、2ビットシンボル334のストリームおよび受信クロック338を、受信機320の他の回路324および322に与える。いくつかの例では、CDR回路328は、複数のクロック338を生成することができる。シンボル-3進デコーダ324は、受信クロック338を使用して、シンボル334のストリームを12個の3進数332のシーケンスに復号することができる。3進数332は、2ビットを使用して符号化され得る。次いで、トランスコーダ322は、12個の3進数332の各シーケンスを8、12、16、19、または20ビットの出力データ要素330に変換することができる。
【００３８】
図4は、本明細書で開示するいくつかの態様による、シンボルのシーケンスを送信するときの、共有バス230のシグナリング状態を示すタイミング図400を含む。図示の例では、SDAライン218とSCLライン216の両方が、データを符号化するために使用される。未処理のシンボル値402は、ライン駆動回路に、SDAライン218およびSCLライン216の各々を現在のシンボル値402の1ビットによって決定される電圧レベルに駆動させる。この例では、「2進法の1」に設定されるシンボルビットは、SDAライン218およびSCLライン216のうちの対応する1つをより高い正電圧レベルにさせる一方で、「2進法の0」に設定されるシンボルビットは、SDAライン218およびSCLライン216のうちの対応する1つをより低い負電圧レベルにさせる。図4は、SDAライン218およびSCLライン216の各々が2つの電圧レベルのうちの1つであり得るときの、シンボル422に対する4つの可能なシグナリング状態を示す表を提供する。Kビットを有するデータ要素は、L個のシンボルのシーケンス内に符号化されてよい。KおよびLの値は、符号化方式、ワードのサイズおよび構成、ならびにレイテンシを含む他のアプリケーションパラメータなどに基づいて決定されてよい。タイミング図400は、7つのスロット404を含むシンボル送信シーケンスの抜粋またはスナップショットを示し、ここで、シンボル406は、スロット404の各々の中で送信されてよい。図示の7つのスロットは、16ビットワードを符号化する12-シンボルシーケンスなど、より大きいシンボルシーケンスの一部であってよく、またはシンボルの2つ以上のシーケンス(たとえば、2、3...または6個のシンボル例)を含んでもよい。
【００３９】
本明細書で開示するいくつかの態様によれば、送信機300は、同じシンボルが、スロット404のシーケンス内の任意の2つの連続するスロット内で送信されないことを確実にするように構成または適合されてよい。したがって、SDAライン218およびSCLライン216のうちの少なくとも1つは、連続するシンボル間の各境界においてシグナリング状態を変更する。SDAライン218およびSCLライン216のいずれかのトグリングによって、新しいシンボルの開始が示される。
【００４０】
図5は、共有バス230上での送信のための埋め込みクロックをもつシンボルのシーケンス314を生成するために、3進-シンボルエンコーダ304によって使用され得る符号化方式500の一例を示す図である。符号化方式500はまた、共有バス230から受信されたシンボルから3進遷移数を抽出するために、シンボル-3進デコーダ324によって使用され得る。この符号化方式500では、共有バス230の2本の線により、4つの基本シンボルS:{0,1,2,3}の定義が可能になる。シンボルのシーケンス314、334内の任意の2つの連続するシンボルは様々な状態を有し、シンボルシーケンス0,0、1,1、2,2、および3,3は、連続するシンボルの無効な組合せである。したがって、各シンボル境界で3つのみの有効なシンボル遷移が可能であり、ここで、シンボル境界は送信クロックによって決定され、第1のシンボル(前のシンボルPs)522が終了し、第2のシンボル(現在のシンボルCs)524が開始するポイントを表す。
【００４１】
本明細書で開示するいくつかの態様によれば、3つの利用可能な遷移には、Psシンボル522ごとに遷移数の数字(T)526が割り当てられる。T526の値は、3進数によって表され得る。一例では、遷移数の数字526の値は、符号化方式用のシンボル順序付けサークル502を割り当てることによって決定され得る。シンボル順序付けサークル502は、4つの可能なシンボル用のサークル502上のロケーション504a〜504d、およびロケーション504a〜504dの間の回転の方向506を割り振る。図示の例では、回転の方向506は時計回りである。遷移数の数字526は、有効な現在のシンボル524と直前のシンボル522との間の分離を表し得る。分離は、前のシンボル522から現在のシンボルCs524に到達するために必要なシンボル順序付けサークル502上の回転の方向506に沿ったステップの数として定義され得る。ステップの数は、単一の桁のベース3数として表現され得る。シンボル間の3ステップの差分は、0base-3として表され得ることが諒解されよう。図5のテーブル520は、この手法を採用する符号化方式をまとめたものである。
【００４２】
送信機300において、前に生成されたシンボル522、および遷移数の数字526として使用される入力3進数を知ると、テーブル520は、送信されるべき現在のシンボル524をルックアップするために使用され得る。受信機320において、テーブル520は、前に受信されたシンボル522と現在受信されたシンボル524との間の遷移を表す遷移数の数字526を決定するためのルックアップとして使用され得る。
【００４３】
いくつかの態様によれば、遷移数540は、複数の遷移数の数字526から形成されてよく、各数字526は、現在のシンボルを与えられる次のシンボルを決定するために使用可能である。一例では、遷移数540は、12個の3進の数字526を含む3進数である。一般的なケースでは、各T526に対してr個の可能な遷移を有するN個の数字(T)526を有する遷移数540は、合計rNの状態を有する。12個の数字の遷移数540の例では、N=12の数字526の各々に対して合計r=4-1=3個の可能な遷移が存在し、合計312=531441の異なる状態がもたらされる。したがって、12個の数字の遷移数540は、524288の状態を必要とする19ビットの2進数を符号化することができる。残りの7153の状態は、制御コードなどを搬送するために使用されてよい。
【００４４】
複数の次世代デバイスは、1つまたは複数のレガシーI2Cデバイスとともに同じ共有バス230上で共存し得る。したがって、高データレートプロトコルは、レガシーI2Cデバイスによって無視されるか、検出されないか、またはさもなければ軽視され得るシグナリング方式を定義する。SGbusデバイスは、I2Cモードシグナリングと一致するシグナリングにおいて制御情報を送信することができ、より高速の送信速度を得るために、3進コーディングベースのプロトコルに従って符号化されたデータペイロードを送信することができる。次世代デバイスは、レガシーI2Cモードを含む、データペイロードを送信するための他の符号化モードを使用し得る。
【００４５】
図6は、I2Cの1バイト書込みデータ動作を示すタイミング図600である。マスタノードが、SCLライン216が高のままである間にSDAライン218を低に駆動することによって、I2C START条件606を与えるとき、送信が開始される。I2Cマスタノードは、I2Cバス上のどのスレーブノードにマスタノードがアクセスすることを望むかを示すために、SDAライン218上で7ビットのスレーブID602と、続いて、動作が読取り動作であるか、書込み動作であるかを示す、読取り/書込みビット612とを送り、それによって、読取り/書込みビット612は、書込み動作を示すために論理0にあり、読取り動作を示すために論理1にある。IDが7ビットのスレーブID602と一致するスレーブノードのみが、書込み(または他の)動作に応答することができる。I2Cスレーブノードがそれ自体のスレーブID602を検出するために、マスタノードは、SCLライン216上の8個のクロックパルスとともに、SDAライン218上に少なくとも8ビットを送信する。マスタノードは、SCLライン216が高のままである間にSDAライン218を高に駆動することによって、トランザクションを終了させるために、STOP条件616を与える。I2Cインターフェースは、I2C START条件606後に「Bus-Busy」状態であり、I2C STOP条件616後に「Bus-Free」状態であると見なされる。レガシーI2Cスレーブノードが高データレート動作に反応することを防止するために、この挙動が活用されて高データレート動作モードでデータを送信し得る。
【００４６】
高データレート通信は、I2CバスのSCLライン216とSDAライン218との組合せを、データ送信のためのデバイス間の1つまたは複数の他の利用可能なラインに加えて使用してよい。シンボルは、2線式I2Cバスおよび1つまたは複数の他の利用可能なラインにわたって符号化されてよい。シンボルは、I2C送信用のSCLライン216上で送信されたクロック信号パルス614の各トグルに対応する時間において送信されてよい。したがって、各フレーム送信期間内に送信されたクロックトグルの数は、送信期間ごとに送信されてよいシンボルの数を定義し得る。一例では、各フレーム送信期間内に送信されたシンボルの数は、レガシーI2Cデバイスと次世代デバイス(すなわち、レガシーI2Cデバイスより高いスループットを有するデバイス)との間の共存を容易にするために使用される技法に応じて決まることがある。一例では、共存方式は、I2C「Bus-Busy」条件に基づくことがある。I2Cバスは、I2C START条件の後からI2C STOP条件までビジーであると見なされる。STOP条件の後、I2Cバスは、「Bus-Idle」または「Bus-Free」条件にスイッチバックする。SGbus送信の間にバスビジーを保つために、意図しないI2C RESTARTおよびSTOP条件は回避される。これは、(I2Cバスの)SCLラインがHIGHである間、SDA遷移が許可されないことを意味する。これを達成するために、高データレートプロトコルは、(I2Cバスの)SCLラインHIGHを有する各シンボルの後にSCLラインLOWを有するダミーシンボルが存在し、SDAラインの論理状態を変更しないことを意味する、「ダミー変換」を実施する。その結果、HDRモードにある間(たとえば、高データレート送信が発生する間)、不必要なI2C RESTARTまたはSTOP条件を有する可能性はない。
【００４７】
I2CバスのSCLライン216および/またはSDAライン218は、クロック信号がシンボル遷移内に埋め込まれているとき、高データレートモードにおけるデータ送信に利用することができる。したがって、SDAライン218およびSCLライン216は、レガシーI2Cスレーブノードの機能に影響を与えずに、かつブリッジデバイスを使用して高データレート対応ノードからレガシーI2Cスレーブノードを隔離せずに、任意の12個のシンボルのいずれかを送信するために使用され得る。I2Cモードでは、START条件606は、I2Cマスタによってのみ与えられ得る。高データレートモードでは、START条件606は、12シンボルワードを送信することになるどのノードによっても与えられる。
【００４８】
図2〜図6に示す高データレートプロトコルは、2本の線にわたってシンボルを符号化し、シンボル遷移内にクロックを埋め込むために、既存の2線式バスを再使用する。この概念は、データスループットをさらに改善するために、追加の線/ラインに拡張されることがある。たとえば、I2Cデバイス間の割込みに使用されてよい追加の線が、高データレートプロトコルによるデータ送信のために再目的化されてよい。したがって、2線式バスに加えて、1つまたは複数の追加の線/ラインが、スループットを高めるために高データレートモード/プロトコルの間に使用されてよい。図3〜図5に示すシンボル符号化と同様に、シンボルは、追加のラインが利用可能であるときに他の高データレートモード/プロトコルにおいて3本以上のラインにわたって符号化されてよい。
【００４９】
例示的なセンサグローバルバス
2線式バスおよび1つまたは複数の追加のラインを高データレートバスとして動的に構成する一例が、センサデバイスに対して実装されてよく、「センサグローバルバス」(SGbus)と呼ばれることがある。3線/ラインを使用するシンボルコーディングは、7進数(ベース7数)に基づき得る。同様に、4線/ラインを使用するシンボルコーディングは、15進数(ベース15数)に基づき得る。異なるナンバベース(number base)が、5線/ライン以上に対して使用され得る。
【００５０】
図7は、共有バス702(たとえば、I2Cバス/SGbus)が、I2Cデバイス7041〜704k、706、ならびにSGbusデバイス712、7141〜714nおよび7161〜716mを結合する構成を示す。SGbusデバイス712、7141〜714nおよび7161〜716mは、従来のように構成されたI2Cデバイス7041〜704k、706と共存してよく、SGbusデバイス712、7141〜714nおよび7161〜716mのうちのいくつかは、要望または必要に応じて、従来のI2Cプロトコルを使用して通信することができる。共有バス702は、複数のモード、たとえばI2CモードおよびHDRモードに従って動作し得る2線式バスであってよい。そのようなHDRモードの一例のシンボルコーディングは、2線式バスおよび1つまたは複数の再目的化された追加の線/ライン718にわたって実施される。そのようなHDRモードは、レガシーデバイス(たとえば、I2C互換デバイス)および次世代デバイス(たとえば、SGbus互換デバイス)が共有バス702を共有することができるように、共有バスを介してI2Cモードと共存してよい。
【００５１】
構成および他のバス制御メッセージを含む、共有バス702上のデータ転送は、I2Cプロトコルの変更バージョンまたはI2Cプロトコルの変形形態を使用して開始され、実行され得る。一例では、すべてのトランザクションは、そのトランザクションを開始するために従来のI2Cプロトコルを使用して開始され得る。
【００５２】
図8は、本明細書で論じるSGbusプロトコルのいくつかの態様に従って動作するときの、共有バス702上の符号化論理および得られたシグナリング804に与えられるビットおよびシンボル802に関する、共有バス702上のトランザクション800を示す。最初に、バス702は、「Bus-Free」状態822であり得、制御シグナリング806は、I2Cプロトコルに従って扱われる。制御シグナリング806が、824、826で肯定応答された後、SGbusデータ交換808が発生し得、その間に、データペイロード810がSGbusマスタデバイス712に送信される。終了シーケンス812は、SGbusプロトコルによるシグナリング(データペイロード810を含む)から、I2Cプロトコルと一致するSTOP条件820として認識されるシグナリングへの遷移を与える。次いで、Bus-Free状態822を得ることができる。
【００５３】
図示の例では、共有バス702上のトランザクション800が、アドレス816(たとえば、I2CスレーブID602を参照)と後に続くコマンドコード818の連続とに先行するI2C START条件814(図6のSTART条件606も参照)によって開始され得る。コマンドコード818は、SGbus702のために使用される通信プロトコルによって事前定義されたバイト数を含み得る、可変長を有し得る。
【００５４】
一例では、コマンドコード818は、選択されたデータ転送プロトコル、および/またはデータ転送プロトコルのいくつかの特性を定義するために送信され得る。コマンドコード818は、後続のデータ転送のために使用されるべき複数の利用可能なデータ転送プロトコルのうちの1つを識別し得る。識別されたデータ転送プロトコルは、異なるデータ転送プロトコルコマンドがバス上に挿入されるまで、トランザクションを制御し得る。
【００５５】
START条件814の後、次のSTOP条件820、828まで、バス702はビジーであると見なされる。Bus-Free状態822は、SCLライン216およびSDAライン218が所定の時間期間の間に論理高状態であるとき、発生中であると定義され得る。バス702のビジー/フリー状態は、START条件606、814、およびSTOP条件616、820によって定義される。Bus-Free状態822は、STOP条件616、820の後の時間期間を含む持続時間を有し、その間に、データがSGbusプロトコルを使用して転送されるかまたはI2C互換プロトコルを使用して転送されるかにかかわらず、SCLライン216およびSDAライン218は論理高状態である。一例では、SCLライン216およびSDAライン218が論理高状態である時間期間が、バス702上で使用される最も遅いクロックの周期の2倍になるように設定され得る。たとえば、I2C高速モードでは、SCLライン216上で送信されるクロック信号は、2.5μsのクロック周期とともに、少なくとも400kHzの周波数を有し、5μs周期が、Bus-Free状態822を示すために十分であり得る。
【００５６】
図7に示すように、共有バス702は、マスタデバイス706、レガシーI2Cスレーブデバイス7041〜704kなどのレガシーI2Cデバイスと、プライマリSGbusマスタデバイス712、SGbusスレーブデバイス7141〜714n、およびSGbusセカンダリマスタデバイス7161〜716mなどの次世代デバイスとをサポートし得る。プライマリSGbusマスタデバイス712は、バス702上に存在するレガシーI2Cデバイス706、7041〜704kに関係するある動作情報を用いて事前設定されてよい。プライマリSGbusマスタデバイス712は、動作情報および他の情報がアプリケーションホストデバイスから受信された通信に応答して事前設定および/または更新され得る、不揮発性メモリを含み得る。一例によれば、レガシーI2Cデバイスは、シリアルデータ送信のために2線式共有バス702の第1の線を使用し、クロック信号のために2線式バス702の第2の線を使用してよい。同様に、次世代デバイス(たとえば、SGbusデバイス)は、2線式バス702および1つまたは複数の再目的化された追加の線/ラインにわたってコード化シンボルを使用することによって、2線式バス702および1つまたは複数の再目的化された追加の線/ライン718にわたってデータを通信してよい。2本の線/ラインが使用された例では、シンボルは、3進数(ベース3数)を使用して2本の線/ラインにわたって符号化されてよい。3本の線/ラインが使用される場合、シンボルは、7進数(ベース7数)を使用して3本の線/ラインにわたって符号化されてよい。4本の線/ラインが使用される場合、シンボルは、15進数(ベース15数)を使用して4本の線/ラインにわたって符号化されてよい。より多くの線/ラインがシンボル送信に使用されるとき、他のすなわちより高いベースの数が、シンボル符号化のために利用されてよい。
【００５７】
セカンダリSGbusマスタデバイス7161〜716m、およびSGbusスレーブデバイス7141〜714nの各々は、ランダムアドレスを内部で生成するように構成されてよい。SGbusスレーブデバイス7141〜714nは、SGbusマスタデバイス712、7161〜716mが、割り当てられたローカルアドレスをもたない1つまたは複数のSGbusスレーブデバイス7141〜714nの存在を認識し得るように、割込みを生成するかまたは予約済みアドレスを使用して割込みを発生させることができる。SGbusマスタデバイス712、7161〜716mは、割り当てられたローカルアドレスをもたないSGbusスレーブデバイス7141〜714nの間で区別するためにランダムアドレスを使用して設定プロセスを実行してよく、ここで、設定プロセスは、ローカルアドレスをSGbusスレーブデバイス7141〜714n、7161〜716mに割り当てることを伴う。ランダムアドレスは、バス702上に存在する2つのSGbusスレーブデバイス7141〜714nが、任意の所与の設定プロセスに対して同じランダムアドレスを生成する確率を十分に低下させるために十分に大きい数を使用して形成され得る。2つ以上のSGbusスレーブデバイス7141〜714nが同じランダムアドレスを生成する場合、そのようなデバイスは、SGbusマスタデバイス712、7161〜716mから同じローカルアドレスを受信し、結果として生じる衝突によって、新しいランダムアドレスを使用する再設定によってローカルアドレスを再び割り当てることが必要になることがある。一例では、SGbusスレーブデバイス7141〜714nは、設定中に使用されるランダムアドレスとして働くために48ビットの疑似ランダム数を生成してよい。いくつかの例では、疑似ランダム数のために他のビット幅が使用されてもよい。2つのSGbusスレーブデバイス7141〜714nに対して同じランダムアドレスを適用する可能性を最小化するために、適切な幅の数が、使用されてよい。
【００５８】
動作時、プライマリSGbusマスタデバイス712は、「一般呼出し」コードと、後に続く動的アドレス割振りコマンドコードとを送信し得る。次いで、プライマリSGbusマスタデバイス712は、論理高レベルにプルされ得るSDAライン218を解放しながら、バス702のSCLライン216上でクロック信号を駆動し得る。アービトレーションプロセスが後に続き、それによって、SGbusデバイス7141〜714n、7161〜716mは、それらの対応するランダムに選択された48ビットアドレスに従って、SDAライン218を駆動する。最低のアドレスをもつSGbusデバイス7141〜714n、7161〜716mは、I2Cプロトコルによって指定されるような同様の方式で、アービトレーションを勝ち取る。
【００５９】
プライマリSGbusマスタデバイス712は、SCLライン216上でクロック信号を駆動し続け、SDAライン218が解放される。次いで、SGbusデバイス7141〜714n、7161〜716mの中から勝ったデバイスは、1つまたは複数の特性バイトを転送し得る。特性バイトは、デバイスがスレーブデバイスのみとして機能するか否か、デバイスのタイプ(たとえば、加速度計)、データ幅(たとえば、16または12ビット幅)、および他の特性を含む、勝ったデバイスのいくつかの特性を識別する情報を含む。
【００６０】
プライマリSGbusマスタデバイス712は、勝ったデバイスのための7ビット幅ローカルアドレスを転送し得る。このアドレスは、プライマリSGbusマスタデバイス712が識別されたデバイスに割り当てる優先度レベルを組み込む。プライマリSGbusマスタデバイス712は、アドレスアービトレーションを求めるデバイスからの応答を受信しなくなるまで、この手順を繰り返し得る。プライマリSGbusマスタデバイス712は、手順に入ることを可能にした動的アドレス割振りコマンドコードを終了させる特定のコマンドコードを送ることによって、アービトレーション手順を終了させ得る。
【００６１】
共有バス702に接続されたセカンダリSGbusマスタデバイス7161〜716mは、アービトレーションプロセスを監視し、そのプロセス中に情報交換を取り込むことができ、セカンダリSGbusマスタデバイス7161〜716mは、バス702のためのアドレス指定、優先度、および構成情報のコピーを有するようになる。それにもかかわらず、プライマリSGbusマスタデバイス712は、SGbusスレーブデバイス7141〜714nから受信された情報を、セカンダリSGbusマスタデバイス7161〜716mに転送し得る。
【００６２】
SGbusデバイス7141〜714n、7161〜716mの各々は、動的アドレスを記憶するために使用され得る1つまたは複数の保持レジスタを有することができ、SGbus構成が、コールド電源投入後にのみ行われるようになる。2つのSGbusデバイス7141〜714nおよび/または7161〜716mが、同じランダムな48ビットアドレスを選択し、同じ特性バイトを有する場合、2つのデバイスは同じローカルアドレスを記憶し得る。二重割当ては、実際には、SGbusマスタデバイス712がデータ転送を必要とし、2つの異なるSGbusスレーブデバイス7141〜714nによって同時に送信されたデータが異なるまで、残り得る。2つのSGbusスレーブデバイス7141〜714nのうちの少なくとも1つは、バス702に接続された別のSGbusスレーブデバイス7141〜714nと同じアドレスを有することを認識することができ、バス702から外れることができる。次のBus-Free状態822において、外されたSGbusスレーブデバイス7141〜714nは、この要件のための専用の制御コードを使用して、新しいローカルアドレスを要求し得る。
【００６３】
SGbusデバイス7141〜714nおよび/または7161〜716mの各々は、プライマリSGbusマスタデバイス712によって優先度ランク付けを割り当てられる。優先度ランクは、SGbusマスタデバイス712によって、動的に割り振られたローカルアドレスのレベルを使用して定義され得、それによって、より低いアドレス値がより高い優先度ランクを有する。
【００６４】
SGbusデバイス7141〜714n、7161〜716mの各々は、「Bus-Free」状態中の任意の時間に帯域内割込み要求(IRQ)をアサートすることができる。IRQアサーション手順は、I2Cおよび他のI2C関連インターフェースにおいてバスアービトレーションのために使用される同様の手順に対応する。しかしながら、本明細書で開示するいくつかの態様によれば、いくつかの改良および強化がIRQ手順のために採用され得る。
【００６５】
一例では、SGbusスレーブデバイス7141〜714nは、SDAライン218を論理低シグナリング状態にプルすることによって、帯域内IRQをアサートすることができる。プライマリSGbusマスタデバイス712は、SDAライン218を駆動されないままにしながら、SCLライン216上でクロック信号を駆動することを開始し得る。SDAライン218は、論理高シグナリング状態の方にプルされ得る。SGbusスレーブデバイス7141〜714nは、それ自体のアドレスを送信するために、SDAライン218を駆動し得る。プライマリSGbusマスタデバイス712は、IRQを認め、次いで、SGbusスレーブデバイス7141〜714nから受信されたアドレスを使用して、REPEATED STARTを実行する。SCLライン/線924がBus-Busy状態中に高である間、およびSTOP条件908が期待されることになるとき、SDAライン/線922を低に駆動することによって、REPEATED START条件928(図9参照)が与えられる。デバイス7141〜714n、7161〜716mおよび/または7041〜704kは、REPEATED START条件928を検出した後、それらのそれぞれのアドレスについてバスを監視し得る。
【００６６】
プライマリSGbusマスタデバイス712は、たとえば前に定義されたモードが現在所望または必要とされるモードとは異なるとき、データ転送プロトコルバイトを使用して、データ転送モードを随意に構成し得る。次いで、プライマリSGbusマスタデバイス712および割り込むSGbusスレーブデバイス7141〜714nは、通信を開始し得る。バス競合はアドレス評価中に行われ、同時にバスを勝ち取ろうと試みている任意の追加のSGbusデバイス7141〜714n、7161〜716mおよび/または任意のレガシーI2Cデバイス7041〜704kは、そのアービトレーションに負けることになり、次のBus-Free状態822において再試行し得る。
【００６７】
別の例では、セカンダリSGbusマスタデバイス7161〜716mは、SGbusスレーブデバイス7141〜714nのためのものと同様である手順を使用して、帯域内IRQをアサートすることができる。プライマリSGbusマスタデバイス712が、IRQがセカンダリSGbusマスタデバイス7161〜716mによってアサートされることを認識するとき、プライマリSGbusマスタデバイス712は、SCLライン216を解放し、セカンダリSGbusマスタデバイス7161〜716mは、通信のためのターゲットデバイスをアドレス指定するために、即時REPEATED START条件928を実行する。
【００６８】
別の例では、レガシーI2Cマスタデバイス706は、セカンダリSGbusマスタデバイス7161〜716mについて説明したものと同様である手順において、IRQをアサートし得る。レガシーI2Cマスタデバイス706は、典型的には、いつそれがSGbusマスタデバイス712と競合中であるかに気づいておらず、その理由は、SGbusマスタデバイス712が等価のより高いアドレス(たとえば、111 1111)を有し、アービトレーションに負けることになるからである。
【００６９】
通信トランザクションを開始するプライマリSGbusマスタデバイス712は、アドレス呼出し中に、アドレスアービトレーション手順を評価する。任意のSGbusスレーブデバイス7141〜714n、セカンダリSGbusマスタデバイス7161〜716m、または、プライマリSGbusマスタデバイス712に割り込むことを試みるレガシーI2Cマスタデバイス706は、典型的に成功する。しかしながら、より低い優先度ランクを有するいかなるデバイスも、次のBus-Free状態822を待機しなければならないことがある。
【００７０】
場合によっては、レガシーI2Cマスタデバイス706とSGbusスレーブデバイス7141〜714nとの間で競合があり得る。プライマリSGbusマスタデバイス712は、START条件を見るとき(SDAライン218が低)、SCLライン216上でクロック信号を開始する。したがって、より高い優先度ランクを有するSGbusスレーブデバイス7141〜714nは、仮定によるとアービトレーションプロセスを勝ち取る。プライマリSGbusマスタデバイス712は、勝ったアドレスを含む、アービトレーションプロセスの結果を承知している。
【００７１】
本明細書で開示するいくつかの態様によれば、SGbusは、1つまたは複数のSGbusマスタデバイス712、7161〜716m、およびレガシーI2Cマスタデバイス706が、対応するスレーブデバイスのためのバス制御および管理機能を提供する、マルチマスタバスであり得る。SGbusにおいて採用されるいくつかのマルチマスタアービトレーションおよびバス制御手順は、IRQ手順について説明されるものなど、グローバルなルールに従い得る。したがって、I2Cルールは、レガシーI2Cマスタデバイス706が1つまたは複数のSGbusセカンダリマスタデバイス7161〜716mと競合するとき、適用され得る。
【００７２】
SGbusセカンダリマスタデバイス7161〜716mが、トランザクションを実行するためにバス702の制御を獲得するとき、SGbusセカンダリマスタデバイス7161〜716mは、トランザクションを実行することが必要とされる限りの間のみ、バス702の制御を維持する。それぞれのトランザクション後、STOP条件は、バス制御をプライマリSGbusマスタデバイス712に復帰させる。
【００７３】
レガシーI2Cマスタデバイス706は、一般にデータをレガシーI2Cスレーブデバイス7041〜704kへ転送し、他のデータ転送プロトコルが利用可能であるときでも、I2C対応プロトコルを採用する。レガシーI2Cマスタデバイス706とSGbusデバイス7141〜714n、7161〜716mとの間の通信は、システムレベルで管理され得る。一例では、プライマリSGbusマスタデバイス712は、レガシーI2Cマスタデバイス706にSGbusスレーブデバイス7141〜714nの存在を知らせ得る。プライマリSGbusマスタデバイス712は、SGbusスレーブデバイス7141〜714nのローカルアドレスおよび特性に関する情報を提供し得る。レガシーI2Cマスタデバイス706とSGbusスレーブデバイス7141〜714nとの間で得られたいかなる通信も、I2Cプロトコルと一致し得る。
【００７４】
本明細書で開示するいくつかの態様によれば、SGbusは、SGbusデバイス712、7141〜714n、または7161〜716mが、すでに動的に構成されており動作可能であるバス702に挿入され得る、ホットプラグ能力をサポートし得る。ホットプラグされたSGbusデバイス712、7141〜714n、または7161〜716mは、バス上で電源投入し、コールド電源投入と同様の条件を仮定し、ホットプラグされたSGbusデバイス712、7141〜714n、または7161〜716mは、割り当てられたローカルアドレスを最初は有していない。割り当てられたローカルアドレスを有していないデバイス712、7141〜714n、または7161〜716mは、ローカルアドレスを必要とするというインジケータとして事前定義されたバイトを使用して、IRQを実行し得る。IRQ、およびホットプラグされたSGbusデバイス712、7141〜714n、または7161〜716mのバス702上の存在を検出すると、プライマリSGbusマスタデバイス712は、本明細書で説明するような、動的アドレス割振り手順を実行し得る。動的に追加/除去される線/ラインおよびホットプラグ機能のコンテキストにおいて、モードを異なる数のアクティブな線/ラインに切り替えるための1つの条件は、追加されたSGbusデバイスによってサポートされる線/ラインの物理的な数(たとえば、そのデバイスへのトラフィックがそれのサポートされる線/ラインの数に制限され得る)、新しいSGbusデバイスによって課せられるトラフィックローディング、または追加されたSGbusデバイスを伴うバス動作に対する電力消費目標であることがある。
【００７５】
本明細書で開示するいくつかの態様によれば、SGbusは、I2Cプロトコル、CCIプロトコル、およびそれらの変形形態を含む、複数のデータ転送プロトコルをサポートしてよい。符号化方式は、所与の数のライン、線または他のコネクタに対する効率的、高信頼および/または低レイテンシなデータ転送をもたらすように選択または適合されてよい。一例では、7進コーディング(7ベース数)に基づくHDRプロトコルは、SGbusが3つのライン、線または他のコネクタを有するときにSGbus上でデータトランスポートをもたらすように使用されてよい。別の例では、HDRプロトコルは、SGbusが4つのライン、線または他のコネクタを有するときに、15進コーディング(15ベース数)に基づいてよい。他のHDRプロトコルが使用されてよく、たとえば、31進コーディング(31ベース数)が、SGbusが5つのライン、線または他のコネクタを有するときに使用されてよく、以下同様である。
【００７６】
共有バスは、I2Cプロトコルによる2ライン式共有バス702上の通信と、2ライン式バス702および少なくともいくつかの例では1つまたは複数の追加の線/ライン718を使用するSGbusプロトコルによる通信とをサポートするように構成されてよい。一例では、7進および/または15進コーディングベースの通信ならびにI2C通信用に構成された4ライン式SGbusは、2ライン式共有バス702上で実行され得るので、第1の時間間隔において、データが7進および/または15進符号化を使用して送信され得、他のデータがI2Cのシグナリング規約に従って異なる時間間隔において送信され得るようになる。別の例では、7進、15進および/または31進コーディングベースの通信ならびにI2C通信用に構成された5ライン式SGbusは、2線式共有バス702上で実行され得るので、第1の時間間隔において、データが7進、15進および/または31進符号化を使用して送信され得、他のデータがI2Cのシグナリング規約に従って異なる時間間隔において送信され得るようになる。SGbusは、7進(ベース7)、15進(ベース15)および/または7進、15進、31進、ならびに/あるいは他のコード化SGbus送信がI2Cプロトコルを侵害しないことを確実にする物理レイヤプロトコルを使用し得る。
【００７７】
図9は、I2Cバス上の複数のデータ送信に関連付けられたタイミングを示すタイミング図900および920を含む。第1の基本的な例では、STOP条件908と連続するSTART条件910との間に経過する時間期間(アイドル期間914)が長い場合があり、それによって、従来のI2Cバスはアイドル期間914の間にアイドルになる。動作時には、I2Cバスマスタが第1のSTART条件906と後に続くデータとを送信するとき、ビジー期間912が開始する。ビジー期間912は、I2CバスマスタがSTOP条件908を送信するときに終了し、アイドル期間914が後に続く。アイドル期間914は、第2のSTART条件910の送信とともに終了する。
【００７８】
また、タイミング図920を参照すると、場合によっては、I2Cバス上の連続するデータ送信間のアイドル期間914は、STOP条件908ではなくREPEATED START条件(Sr)928を送信することによって、数が減らされるかまたは除去され得る。REPEATED START条件928は、先行するデータ送信を終了させ、同時に次のデータ送信の開始を示す。SDAライン/線922上の状態遷移は、アイドル期間930後に生じるSTART条件926とREPEATED START条件928とで同一である。詳細には、SDAライン/線922は、SCLライン/線924が高である間に、高から低に遷移する。データ送信間にREPEATED START条件928を使用すると、第1のビジー期間932の直後に第2のビジー期間934が生じる。
【００７９】
SGbusにおいて、データ転送セグメントは、任意のI2Cまたは高データレート(たとえば、HDRモード)プロトコル(たとえば、2線/ラインに対する3進ベースコーディングプロトコル、3線/ラインに対する7進ベースコーディングプロトコル、4線/ラインに対する15進ベースコーディングプロトコル、など)あるいはそれらの変形形態を使用することができる。使用されるべきデータ転送プロトコルのタイプは、SGbusスレーブデバイス7141〜714nとの通信の開始時に、SGbusマスタデバイス712、または7161〜716mによって示され得る。各SGbusスレーブデバイス7141〜714nのためのデータ転送プロトコルの選択は、実際には、SGbusマスタデバイス712、または7161〜716mによって変更されるまで、そのままである。場合によっては、プライマリSGbusマスタデバイス712は、I2Cモードをデフォルトモードとして使用するために、I2Cモードと高データレートモード(たとえば、3進コーディングモード、7進コーディングモード、15進コーディングモード、など)の両方で通信することができる任意のデバイスを構成し得る。
【００８０】
データ転送からの退出は、STOP条件908をバス702上で挿入することによって実施され得、その場合、バス702はBus-Free状態822に入り得る。バス702上のトランザクションにおいて送信されたいくつかのシンボルのシーケンスは、トランザクションにおける参加者ではない1つまたは複数のデバイス7041〜704k、7141〜714n、7161〜716mの検出論理によって、STOP条件828、908、またはREPEATED START条件928として識別され得るシグナリング状態を生成し得る。
【００８１】
図10は、通常のデータ交換の間、有効なSTART条件1002の後、および有効なSTOP条件(図示せず)またはREPEATED START条件1004の前に生ずることがある、意図しないSTART条件1006、1008およびSTOP条件1010、1012の発生を示す。一例では、意図しないSTART条件1006は、SCLライン216が2つのシンボルにわたって高シグナリング状態に維持されながら、SDAライン218が2つのシンボル間の遷移において高シグナリング状態から低シグナリング状態に変化するときに発生することがある。別の例では、意図しないSTART条件1008は、SCLライン216が遷移中である間に、SDAライン218が2つのシンボル間の遷移において高シグナリング状態から低シグナリング状態に変化するときの準安定期間の間に発生することがある。別の例では、意図しないSTOP条件1010は、SCLライン216が2つのシンボルにわたって高シグナリング状態に維持されながら、SDAライン218が2つのシンボル間の遷移において低シグナリング状態から高シグナリング状態に変化するときに発生することがある。別の例では、意図しないSTOP条件1012は、SCLライン216が遷移中である間に、SDAライン218が2つのシンボル間の遷移において低シグナリング状態から高シグナリング状態に変化するときの準安定期間の間に発生することがある。
【００８２】
これらの意図しないSTART条件1006、1008およびSTOP条件1010、1012は望ましいものではなく、意図しないSTART条件1006、1008およびSTOP条件1010、1012を引き起こす可能性があるシンボルのシーケンスを識別するようにエンコーダを構成することによって回避され得る。エンコーダは、意図しないSTART条件1006、1008およびSTOP条件1010、1012の生成を回避するために、送信されたシンボルのストリームを修正してよい。一例では、コーディングプロトコルは、データ転送モードである間に意図しないSTOP条件1012を回避するために、任意の2進「01」シンボルの後、2進「00」ダミーシンボル挿入を与え得る。別の例では、コーディングプロトコルは、誤ったSTART(またはREPEATED START)条件1006、1008の後、レガシーI2Cデバイスにそのアドレスについて検査させ得る、意図しないSTART条件1006、1008を回避するために、2進「11」シンボルのいずれかの発生後に2進「10」ダミーシンボル挿入を与え得る。(2進数{00、01、10、11}は、2ビット長の2進数を指すことに留意されたい)。レガシーI2Cデバイスは、それがアドレス一致を発見する場合、誤ったSTART条件1006、1008に応答し、それによって、SGbus動作用に構成されたアクティブドライバに悪影響を及ぼすことがあることは諒解されよう。
【００８３】
高データレートモードでは、データ転送モードへのエントリポイント後に送られた最初のシンボルで開始する、バス702上で送信されたシンボルのカウントに基づいて、フレーム同期が実行され得る。SGbus動作では、REPEATED START条件928がフレーム内の12シンボルの各シーケンスまたは20シンボルの各シーケンスの前に送られる必要はない。REPEATED START条件928の不在によって、データスループットを高めることができる。
【００８４】
2本の線/ラインに対する3進コーディングの例では、フレーム同期は、誤り検出のために使用される最後の3つの最下位ビット(LSB)を検査することによって、さらに検証され得る。3進コーディングの場合、単一の誤りは、2進の復号された数の最後の3つのLSBを検査することによって、検出され得る。単一の誤りは、任意の12シンボルワード上のシンボル誤りに関係することがあり、その場合、どの2つの連続するシンボルも等しくない。シンボルは、2進数[SDA:SCL]として符号化され得、その場合、SDAライン218のシグナリング状態に対応するビットは、最上位ビット(MSB)位置にある。1つのシンボル誤りは、SDAライン218またはSCLライン216の一方または両方のサンプリングされたシグナリング状態における誤りの結果であり得る。同様の手法が、n個のLSBを検査することによって異なる数ベース(7進ベースコーディング、15進ベースコーディング、など)を使用してシンボルコーディングのために使用され得る。
【００８５】
図11は、いくつかのタイプのプロトコルに対して使用されてよい2線式シンボルコーディング(たとえば、3進ベース数コーディング)のためのシンボル遷移を示す。シンボル遷移と関係付けられたいくつかの概念が、たとえばSGbusのケースでのm本の線(たとえば、3本の線/ラインに対する7進ベース数コーディング、4本の線/ラインに対する15進ベース数コーディング、など)を含めるために拡大されてよいことが予期される。図3〜図5に関連して説明した例では、エンコーダ(たとえば、送信機300のトランスコーダ302)によって生成された遷移数1124は、サークル502上およびサークル502を横切る変位値1122として表されてよい。時計回りの変位は3進値T=1として表されてよく、反時計回りの変位は3進値T=0として表されてよく、サークル502を横切る変位(すなわち、時計回りまたは反時計回りに2ステップ)は、3進値T=2として表されてよい。
【００８６】
別の例では、他のシンボル符号化方式が、2本の線の実装形態および/または3本以上の線を使用する実装形態のために実装されてよい。3本以上の線に対してN≧3であるN本の線(W1...WN)に対する一例では、符号化は、2つの連続する状態SおよびS-1に対して、遷移数公式:
{(W1S XNOR W1S-1),(W2S XNOR W2S-1),...(WNS XNOR WNS-1)}
によって特徴づけられてよい。
【００８７】
直接の結果として、サークル502上の隣接するシンボルのいずれかに等しいシンボルを生じるライン誤りは、新しいシンボルとは見なされず、誤りはワードレベルで識別され得る。加えて、単一のシンボル誤りは、2つの隣接する3進数が修正される結果となることがある。
【００８８】
本明細書で開示するいくつかの態様によれば、誤り訂正がSGbus通信のために提供され得る。データを転送するために、情報の2進列が、ベース3(3進)数としてコーディングされた、等しい数値に変換され得る。したがって、より少ない文字が、同じ情報のためにノード間で送信される必要がある。変換された3進数は多項式の和であり、ただし、因数は3の累乗であり、係数は[0,1,2]である。
【００８９】
【数１】
2017520053.tif 000003
【００９０】
ただし、Tk=3進係数、∈[0,1,2]である。
【００９１】
1つのシンボル誤りは、2つの隣接するTk値の改変を生じることがあり、最後の和は、次の公式によって改変され得る。
±a×3n±b×3(n-1) (1)
ただし、
「n」=誤ったシンボルのランク、ならびに
「a」および「b」は、差分の係数である。
「a」および「b」係数は、以下を遵守する。
a∈[0,±1,±2]
b∈[0,±1,±2]
【００９２】
公式(1)を、次のように書くことができる。
(±3a ±b)×3(n-1) (2)
【００９３】
LSBの最後のビットが誤りによって不変のままで残されるために、公式(2)は、2の累乗の倍数でなければならない。整数倍ではない2の累乗の第1のランクは、1つのシンボル誤りが識別されるものとするように、いくつのLSBエンドビットが事前に知られていなければならないかを示す。因数3(n-1)は、3の倍数であり、改変されない場合、LSBビットを変化させることになる。
【００９４】
関連する因数(±3a ±b)の解析は、シンボル-3進コーディング図が円対称性を有するという観測に基づき得る。したがって、1点が4点すべてをカバーする。たとえば、「2」が正しいシンボルである場合、いずれかの他の正しいシンボル状況では、それは、それぞれの位置をそれらの回転された値で置き換えるために十分である。以下のTable 1(表1)は、生じる可能性のある「a」係数を示し、Table 2(表2)は、生じる可能性のある「b」係数を示す。
【００９５】
【表１】
2017520053.tif 000004
【００９６】
【表２】
2017520053.tif 000005
【００９７】
以下のTable 3(表3)は、生じる可能性のある「a」および「b」係数の組合せを示す。
【００９８】
【表３】
2017520053.tif 000006
【００９９】
可能性のある(a;b)ペアが、同じ可能性のある「誤ったシンボル」に関するものとして、同じ背景行に示されている。直接的な検査によって、それぞれ次のようになる組合せがあることが明らかである。
(±3a ±b)=2、たとえば、(1;-1)および(-1;1)、
(±3a ±b)=4、たとえば、(-2;2)および(2;-2)。
(±3a ±b)=8をもたらすことになるペアはなく、それは、(2;2)または(-2;-2)のみについて可能であったであろう。
【０１００】
したがって、LSBエンドにおける任意の既知の3ビットは、任意の1つの単一のシンボル誤りを検出することになる。たとえば、3'b000が使用され得るが、任意の他の3つの既知のビットが同じ役割を果たし得る。(3'bxxxは、3ビット長の2進数を指すことに留意されたい)。SDAライン218またはSCLライン216におけるいかなる誤りも、最後の3ビットによって検出され得る。
【０１０１】
本明細書で開示するいくつかの態様によれば、補足の誤り検査は、データ転送が進行中である間にSTOP条件908またはREPEATED START条件928を誤って識別することを回避することが必要なとき、シンボル2'b01から2'b00への強制的な変換、または、シンボル2'b11から2'b10への強制的な変換に基づき得る。複数の12シンボルまたは20シンボルフレームのデータ転送全体の完了時に、STOP条件828、908を生成するために、4つのシンボルが挿入され得、そのうちの最後の2つが、2'b01と後に続く2'b11であり得る。
【０１０２】
図12および図13を参照すると、3進コーディングの前の実装形態と現在説明しているSGbusとの間のいくつかの違いが強調され得る。たとえば、2つのコーディングスタイルは、異なるシンボルを生成し得るが、復号された3進係数は、どちらのケースも同じである。別の例では、SGbusは、バス702上の意図しない(および求められていない)STOP条件908およびREPEATED START条件928(すなわち、2'b01から2'b11への遷移、または2'b11から2'b10への変換)を回避する。次いで、いくつかのデータストリームでは、SGbusは、シンボルを送信に追加し、それによってデータスループットを低減する。
【０１０３】
第1の例では、図12のタイミング図1200は、送信機300のトランスコーダ302によって3進-シンボルエンコーダ304(図3参照)に与えられた、3進送信機(Tx)遷移数1202のシーケンスを示す。変換器は、シリアルバス230を介した受信機320への送信のために、シンボル1204のストリームを生成する。受信機320のシンボル-3進デコーダ324は、受信機(Rx)遷移数1206を生成する。Tx遷移数1202と、シンボル1204と、3進Rx遷移数1206との数の間に直接的な関係がある。
【０１０４】
第2の例では、図12のタイミング図1220は、第1のSGbusデータフレームの送信を示し、それによって、送信機(Tx)3進数1222のシーケンスがトランスコーダ302によって3進-シンボルエンコーダ304(図3参照)に与えられる。ここで、3進-シンボルエンコーダ304は、挿入された追加のシンボル1230を含むシンボル1224のストリームを生成する。受信機320のシンボル-3進デコーダ324は、受信機(Rx)遷移数1226を生成する。デコーダ324は、トランスコーダ322によって抽出される追加の数1232を含む3進Rx遷移数1226を生成する。
【０１０５】
図13は、タイミング図の例1300および1320における第3の例および第4の例を含み、それによって、第3の例1300は中間および/または最悪状況SGbusフレームに関係し、第4の例1320は最後のSGbusデータフレームに関係する。これらの例1300、1320では、3進-シンボルエンコーダ304は、挿入された追加のシンボル1310および1330を含むシンボル1304、1324のストリームを生成する。受信機320のシンボル-3進デコーダ324は、受信機(Rx)遷移数1306、1326を生成する。シンボル-3進デコーダ324は、トランスコーダ322によって抽出される追加の3進数1312および1332を含む、3進Rx遷移数1306、1326を生成する。
【０１０６】
別の例では、すべてのタイプのI2Cデバイスが、バス702に結合されると仮定され得、20シンボルの修正された3進シンボル符号化データ転送モードが使用され得、REPEATED START条件928が各20シンボルフレームの前に挿入される。このモードでは、ダミー変換が挿入されず、レガシーI2Cマスタがバス702に接続され得ない。また別の例では、レガシーI2Cデバイスのみがバス702上にあり、プライマリマスタデバイスはI2Cモードでバスを制御し、すべてのデータ転送は、バスの能力により、I2Cモードを使用する。
【０１０７】
例示的なSGbusのいくつかの特性
本明細書で開示するように、SGbusは、2本の線を使用して、マルチドロップおよびマルチマスタ能力を提供し得る、高速シリアルインターフェースバスであり得る。従来のクロック信号は必要とされず、両方の線を使用して送信されるシンボルは、データ内に符号化される。クロック情報は、連続するシンボルの各ペア間の2本の信号線のうちの少なくとも1つのシグナリング状態における遷移を保証することによって、シンボルのストリームにおいて埋め込まれる。SGbusプロトコルは、コマンドコードを使用し得る。帯域内割込み能力が提供され、低レイテンシの非同期ホットプラグがサポートされる。SGbusデバイスは、I2Cデバイスと同じバス上に共存し、同じ物理バスに接続され得るレガシーI2Cデバイスに適用される同じ制限に従うことができる。
【０１０８】
一態様では、SGbusは、コンテナアーキテクチャを使用して通信し、それによって、データ転送がバス管理要素間でカプセル化される。データは、バスに接続されたクライアントデバイスによって要求または選好されるとき、複数のプロトコルのうちの1つを使用して転送されてよい。一例では、データは、(たとえば、3本の線/ラインに対して7進数ベースの、4本の線/ラインに対して15進数ベースの、などの)シンボルコーディングプロトコルを使用して転送されてよく、別の例では、データは、(たとえば、クロックのために一方の線/ラインが使用され、シリアルデータ送信のために他方の線/ラインが使用される2線式線/ラインを介して)I2C対応プロトコルに従って転送されてよい。データペイロードは、一般に、シンボルコーディングプロトコル(たとえば、2本の線/ラインに対する3進ベース数コーディング、3本の線/ラインに対する7進ベース数コーディング、4本の線/ラインに対する15進ベース数コーディング、など)を使用して搬送されるが、レガシーI2Cスレーブは、対応するI2Cモードプロトコルにおいてアドレス指定され、ペイロードトランスポートされてよい。
【０１０９】
SGbusプロトコルに関連付けられたバス管理機能は、バスアービトレーション、帯域内割込み、ホットプラグ、マルチマスタ、およびデータ転送モードに対する出入りを含んでよい。
【０１１０】
SGbusマスタデバイスは、動的アドレス割当て能力を有し得る。SGbusマスタは、帯域内割込みのために使用されるクロック生成器、バスに接続されたデバイスのアドレスおよび特性を保持するためのレジスタベースのメモリを含み得る。SGbusマスタデバイスは、I2Cデータ転送プロトコルまたはHDRデータ転送プロトコルのいずれかを使用して(たとえば、3進ベースシンボルコーディング、7進ベースシンボルコーディング、15進ベースシンボルコーディング、などを使用して)通信し得る。
【０１１１】
SGbusスレーブは、動的にアドレス指定可能であり得、それが接続されるバスのためのそのアドレスを要求かつ受信することが可能であり得る。SGbusスレーブデバイスは、(たとえば、3進ベースシンボルコーディング、7進ベースシンボルコーディング、15進ベースシンボルコーディング、などを使用して)少なくとも高データレートプロトコルをサポートし、いくつかの例では、SGbusスレーブデバイスは、レガシーI2Cプロトコルを使用して通信することができる。
【０１１２】
SGbusは、送信中に最適化されたもの(バイトごとの最小量のエネルギー)を提供することができる、nベースのシンボルコーディング(たとえば、ここでnは3、7、15など)を採用するデータ転送プロトコルを含む、HDR転送プロトコルをサポートする。帯域内IRQ手順がサポートされ得、最小レイテンシ制限(典型的には、10μs)が課され得る。ハートビートタイプの信号の必要がないので、効率の向上が得られ得る。非同期のホットプラグ能力が提供され得る。
【０１１３】
場合によっては、システム設計の柔軟性の向上が、ローカルシステム設計レベルにおける構成によって達成される。動的アドレス指定によって、グローバルアドレス指定エンティティへの依存性が低減または除去される。動的アドレス指定は、ランダムアドレス生成器を採用し、それによって製造のオーバーヘッドを軽減する。
【０１１４】
SGbusのいくつかの実装形態は、すべてのレガシーI2Cデバイスと十分に共存することができる。しかしながら、いくつかの低速および超低コストのレガシーI2Cデバイスの存在は、レガシーI2Cマスタの使用を妨げることがある。レガシーI2Cデバイスは、あらゆるシンボルコード化フレームについて、ライン上でそれらのアドレス一致を評価する必要がない。
【０１１５】
例示的な3本以上の線のシンボルコーディングプロトコル
場合によっては、拡張された能力および速度の向上を、1つまたは複数の補助ラインの追加によって得ることができ、より多数へのコーディングベースにおける変更が可能になる。たとえば、2線式バスに加えて、多くのI2Cレガシーシステムは、マスタデバイスと1つまたは複数のスレーブデバイスとの間で1つまたは複数の専用割込みラインを使用する。マスタデバイスが、既定の基本プロトコル(たとえば、I2C)から、データシンボルが2線式バスおよび1つまたは複数の専用の割込みラインにわたって符号化される第2のプロトコルに切り替えるとき、これらの専用の割込みラインは、(2線式バスとともに)再目的化されてよい。
【０１１６】
たとえば、2線式バスに加えて単一の追加のラインを使用して、第2のプロトコルは、(2本の線上の4シンボルのみと比較して)3本の線上で8シンボルを送信することができ、したがってベース7でのコーディングが可能になる。
【０１１７】
図14を参照すると、3つ以上のコネクタまたは線が、SGbusデバイス1402、1404、1406および/または1408の間の時分割通信(timeshared communication)のために利用可能であり得、それらは、マルチワイヤ(Mwire)デバイス1402、1404、1406および/または1408と呼ばれることがある。「コネクタ」、「線」および「ライン」という用語は、本明細書では、導電経路を指すために互換的に使用されてよいことに留意されたい。いくつかの例では、「コネクタ」、「線」および「ライン」は、光学的伝導経路(optically conductive path)に適用されてよい。2線式SGbusのコモンライン216、218に加えて、追加のコネクタまたは線1412、1414および/または1416が、SGbus1410とは別個に、Mwireマスタデバイス1402を1つまたは複数のMwireスレーブデバイス1404、1406および/または1408に結合するために使用されてよい。一例では、1つのMwireスレーブデバイス1408は、単一の専用の追加のコネクタまたは線1412を使用してMwireマスタデバイス1402に接続されてよい。別の例では、1つのMwireスレーブデバイス1404は、単一の共有の追加のコネクタまたは線1416を使用してMwireマスタデバイス1402に接続されてよい。別の例では、1つのMwireスレーブデバイス1406は、2つ以上の専用のおよび/または共有の追加のコネクタまたは線1414および1416を使用してMwireマスタデバイス1402に接続されてよい。追加のコネクタまたは線1412、1414および/または1416の数、タイプおよび配列は、Mwireデバイス1402、1404、1406および/または1408の間の通信に対する帯域幅および電力消費のバランスを取るように選択され得る。いくつかの例では、追加のコネクタは、光学式または他のタイプのコネクタを含むことがある。
【０１１８】
1つまたは複数の態様によれば、2本の物理ラインより多い任意の数の線が、SGbusインターフェース内で使用され得る。線のうちの2本は、マルチワイヤ動作用に構成されていないレガシーデバイス1418、1420および/またはSGbusデバイス1422との通信に使用されるSCLライン216およびSDAライン218の線などのコモン線であってよい。レガシーデバイス1418、1420は、I2Cデバイス1418、SGbusデバイス1422、または共有バス1410に結合された他のデバイス1402、1404、1406、1408、1418、1420、1422と互換性のある2線式プロトコルを使用する別のタイプのデバイスを含んでよい。
【０１１９】
バス管理メッセージが、Mwire対応バスクライアント1402、1404、1406および1408上で実施される共有バス管理プロトコル内に含まれてよい。バス管理メッセージは、2線式(共有)バス1410を使用してMwire対応デバイス1402、1404、1406および1408の間で転送されてよい。バス管理メッセージは、アドレス調停コマンドおよび/またはメッセージ、データトランスポートモードエントリおよび退出に関するコマンドおよび/またはメッセージ、たとえば利用可能な物理線のサポートされるプロトコル、数および割振りを識別するメッセージを含む構成データの交換に使用されるコマンドおよび/またはメッセージ、ならびに通信モードを交渉または選択するためのコマンドおよび/またはメッセージを含んでよい。
【０１２０】
図14に示すように、異なるレガシークライアントデバイス1418および1420ならびにより多くの基本シグナリング能力を有するSGbusデバイス1422が、SGbusインターフェースによってサポートされてよい。共有バス1410に結合されたデバイス1402、1404、1406、1408、1418、1420、1422は、少なくとも1つのコモンモードの通信(たとえば、2線式バス1410上の既定の基本プロトコル)と互換性がある。一例では、既定の基本プロトコル(たとえば、最小公分母プロトコル)が、I2Cモードの通信をサポートし得る。この後者の例では、デバイス1402、1404、1406、1408、1418、1420、1422の各々は、既定の基本プロトコルによって定義された開始および停止条件を少なくとも認識するように適合されてよい。
【０１２１】
2つ以上のデバイス1402、1404、1406、1408、1420および/または1422は、共有バス1410に結合された他のデバイスのうちのいくつかによってサポートされない第2のプロトコルを使用して通信してよい。2つ以上のデバイス1402、1404、1406、1408、1418、1420、1422は、SGbus交換が開始された後、および/または1つまたは複数の追加のコネクタまたは線1412、1414および/または1416上のシグナリングを介して、既定の基本プロトコル(たとえば、I2Cプロトコル)を使用して他のデバイスの能力を識別してよい。少なくともいくつかの例では、共有バス1410に結合されたデバイスの構成は、デバイス1402、1404、1406、1408、1418、1420、1422内で事前定義されてよい。
【０１２２】
追加のコネクタまたは線1412、1414および/または1416は、Mwireデバイス1402、1404、1406、1408のうちの2つ以上を接続する多目的で再設定可能なコネクタ、線またはラインを含んでよい。追加のコネクタまたは線1412、1414および/または1416は、さもなければ、たとえば、イベントに関する割込み、メッセージングおよび/または通信を含むプロセッサ間通信能力を与えてよい、再目的化された接続を含んでよい。いくつかの例では、追加のコネクタまたは線1412、1414および/または1416は、設計によって設けられてよい。一例では、既定の基本プロトコルは、スレーブデバイスからマスタデバイスに割込みを送るために、追加のコネクタまたは線1412、1414および/または1416を利用することがある。第2のプロトコルにおいて、追加のコネクタまたは線1412、1414および/または1416は、2線式バスと組み合わせてデータシンボルを送信するために再目的化されることがある。
【０１２３】
マスタおよびスレーブの役割は、一般に、Mwireデバイス1402、1404、1406、1408の間で交換可能であり、図5は、デバイス1402、1404、1406、1408および/または1422のうちの2つ以上のデバイス間の単一の相互作用に関する。図示のように、現在のマスタデバイス1402は、追加のコネクタまたは線1412、1414および/または1416の組合せを使用して、他のMwireデバイス1404、1406、1408との拡張された通信能力をサポートし得る。マスタMwireデバイス1402は、それぞれ、単一の追加のコネクタまたは線1416および1412を使用して2つのスレーブデバイス1404および1408に接続される。マスタMwireデバイス1402は、追加の線1414および1416のペアを使用して1つのスレーブデバイス1406に接続される。したがって、マスタMwireデバイス1402は、トランザクションに関わるすべてのスレーブデバイス1404、1406および/または1408の能力に基づいて、通信用の線の数を選択するように構成されてよい。たとえば、Mwireマスタデバイス1402は、2線式バス1410プラス再目的化された線1414と1416の両方を使用して、データシンボルを第1のMwireスレーブデバイスB 1406に送ってもよい。加えて、Mwireマスタデバイス1402は、2線式バス1410プラス第1の再目的化された線1416を使用して、データシンボルを第2のMwireスレーブデバイスA 1404に送ってもよい。
【０１２４】
2つ以上のMwire対応デバイス1402、1404、1406および/または1408の間で送信されたデータは、適合された符号化方式(たとえば、第2のプロトコル)を使用して符号化されてよい。図2〜図14は、2本の線にわたって符号化されたデータシンボルを送信するための、2線式バスの再目的化を示した。しかしながら、一態様は、マスタデバイスとスレーブデバイスとの間の任意の追加の利用可能な線、コネクタまたはラインを再目的化することによって、図2〜図14のこのプロトコルおよび手法を3本以上の線に拡張することを提供する。このようにして、2線式バス(図2、ライン216および218)および1つまたは複数の追加のコネクタまたは線1412、1414および/または1416が、すべての線にわたって符号化されるデータシンボルを送信するために使用されてよい。様々な例では、3つのコネクタ、線またはライン216、218、1412、1414および/または1416が利用可能であるとき、データは3ビットシンボルにおいて符号化されてよく、4つのコネクタ、線またはライン216、218、1412、1414および/または1416が利用可能であるとき、データは4ビットシンボルにおいて符号化されてよく、以下同様である。
【０１２５】
図15は、3つの導体または線にわたるシンボル内のデータの符号化を示す一例を示す。7シンボルのシーケンスが示されるが、データ要素は、任意の数のシンボルおよび/または任意の数の線、ラインまたはコネクタを有するシンボルにおいて符号化されてもよい。本例では、シンボル送信間隔に対応する各時間スロット1510内で3つのコネクタ1504、1506および1508のシグナリング状態を制御するデータが、シンボル1502において符号化される。表1520は、2レベルのうちの1レベルを有し得るシグナリング状態に3ビットシンボル1502をマッピングする一例を示す。送信クロック情報が、連続するシンボル間のシグナリング状態の遷移において符号化されてよい。一例では、クロック情報は、各シンボル内の追加の1ビットを搬送するために使用されている追加のコネクタまたは線1412,1414および/または1416とともに、共通のコネクタ、線またはライン216、218のシグナリング状態遷移内に埋め込まれてよい。しかしながら、いくつかのデバイス1402、1404、1406または1408は、通信トランザクション内で使用されるコネクタのいずれかにおいて発生する遷移からクロック情報を抽出することによって、データスループットをなお一層高めるように構成されてよい。
【０１２６】
3線式接続の例では、8つの可能なシンボルが、図15の表1520に示すように定義され得る。したがって、遷移が、連続するシンボル間の各境界において保証されるべきであるとき、シンボル間の各遷移に対して7つの可能な遷移文字{T0...T6}が存在する。12個のベース7数字(すなわち、7進ナンバリング方式)を有する遷移数が、形成され得る。本明細書で論じる一般的なケースでは、各数字に対してr個の可能な遷移を有するN個の数字を有する遷移数は、合計rNの状態を有する。SGbus上で送信される12個の数字の遷移数の例では、N=12の数字526の各々に対して合計r=8-1=7個の可能な遷移が存在し、合計712=13841287201の異なる状態がもたらされ、それは、16進数0x52801AE1として表現され得る。したがって、12個の数字の遷移数は、8,589,934,592の状態を使用し得る33ビットの2進数を符号化することができる。残りの5251352610の状態は、制御コードなどを搬送するために使用され得る。
【０１２７】
図16は、本明細書において開示される1つまたは複数の機能を実施するように構成することができる処理回路1602を利用する装置のためのハードウェア実施態様の簡略化された例を示す概念図1600である。本開示の様々な態様によれば、要素、または要素の任意の部分、または要素の任意の組合せは、処理回路1602を使用して実装することができる。処理回路1602は、ハードウェアモジュールとソフトウェアモジュールの何らかの組合せによって制御される1つまたは複数のプロセッサ1604を含む場合がある。プロセッサ1604の例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、シーケンサ、ゲート論理、個別ハードウェア回路、および本開示全体にわたって記載された様々な機能を実施するように構成された他の適切なハードウェアが含まれる。1つまたは複数のプロセッサ1604は、特定の機能を実施し、ソフトウェアモジュール1616のうちの1つによって構成され、増強され、または制御されてもよい専用プロセッサを含んでもよい。1つまたは複数のプロセッサ1604は、初期化中にロードされたソフトウェアモジュール1616の組合せを通じて構成されてもよく、動作中に1つまたは複数のソフトウェアモジュール1616のローディングまたはアンローディングによってさらに構成されてもよい。
【０１２８】
図示の例では、処理回路1602は、バス1610によって概略的に表されるバスアーキテクチャを用いて実装され得る。バス1610は、処理回路1602の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。バス1610は、1つまたは複数のプロセッサ1604、ストレージ1606を含む様々な回路を一緒にリンクする。ストレージ1606は、メモリデバイスおよびマスストレージデバイスを含む場合があり、本明細書ではコンピュータ可読媒体と呼ばれる場合がある。バス1610はまた、当技術分野でよく知られているタイミングソース、タイマ、周辺機器、電圧レギュレータ、および電源管理回路などの様々な他の回路をリンクすることができ、したがって、それらのうちのいくつかはこれ以上記載されない場合がある。バスインターフェース1608は、バス1610とラインインターフェース回路1612との間のインターフェースを提供することができる。ラインインターフェース回路1612は、シリアルバスなどの送信媒体を介して様々な他の装置と通信するための手段を提供する。装置の性質に応じて、ユーザインターフェース1618(たとえば、キーパッド、ディスプレイ、スピーカー、マイクロフォン、ジョイスティック)も備えられてよく、バス1610に直接またはバスインターフェース1608を通じて通信可能に結合されてもよい。
【０１２９】
プロセッサ1604は、バス1610を管理すること、およびストレージ1606を含む場合があるコンピュータ可読媒体に記憶されたソフトウェアの実行を含む場合がある一般的な処理を担当してもよい。この点で、プロセッサ1604を含む処理回路1602は、本明細書で開示する方法、機能および技法のうちのいずれかを実装するために使用され得る。ストレージ1606は、ソフトウェアを実行するとき、プロセッサ1604によって操作されるデータを記憶するために使用されてよく、ソフトウェアは、本明細書で開示する方法のうちの任意の1つを実施するように構成されてよい。
【０１３０】
処理回路1602における1つまたは複数のプロセッサ1604は、ソフトウェアを実行することができる。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、または他の名称で呼ばれるかどうかにかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、プロシージャ、関数、アルゴリズムなどを意味するように広く解釈されるべきである。ソフトウェアは、コンピュータ可読の形でストレージ1606中または外部コンピュータ可読媒体中に存在することができる。コンピュータ可読媒体および/またはストレージ1606は、非一時的コンピュータ可読媒体であり得る。非一時的コンピュータ可読媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、「フラッシュドライブ」、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、およびコンピュータがアクセスし読み取ってもよいソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。コンピュータ可読媒体および/またはストレージ1606は、例として、搬送波、伝送路、ならびに、コンピュータがアクセスし読み取ることができるソフトウェアおよび/または命令を送信するための任意の他の適切な媒体も含み得る。コンピュータ可読可読媒体および/またはストレージ1606は、処理回路1602中に存在するか、プロセッサ1604中に存在するか、処理回路1602の外部に存在するか、または処理回路1602を含む複数のエンティティにわたって分散され得る。コンピュータ可読媒体および/またはストレージ1606は、コンピュータプログラム製品において具現化され得る。例として、コンピュータプログラム製品は、パッケージング材料中のコンピュータ可読媒体を含み得る。当業者は、特定の適用例および全体的なシステムに課された設計制約全体に応じて、本開示全体にわたって提示された記載の機能を最もよく実装する方法を認識されよう。
【０１３１】
ストレージ1606は、本明細書でソフトウェアモジュール1616と呼ばれる場合がある、ロード可能なコードセグメント、モジュール、アプリケーション、プログラムなどにおいて維持かつ/または編成されるソフトウェアを維持することができる。ソフトウェアモジュール1616の各々は、処理回路1602にインストールまたはロードされ、1つまたは複数のプロセッサ1604によって実行されると、1つまたは複数のプロセッサ1604の動作を制御するランタイムイメージ1614に寄与する命令およびデータを含み得る。実行されるとき、いくつかの命令は、処理回路1602に、本明細書で説明するいくつかの方法、アルゴリズムおよびプロセスに従って機能を実行させてよい。
【０１３２】
ソフトウェアモジュール1616のうちのいくつかは、処理回路1602の初期化中にロードされてもよく、これらのソフトウェアモジュール1616は、本明細書で開示する様々な機能の実行を可能にするように処理回路1602を構成することができる。たとえば、いくつかのソフトウェアモジュール1616は、プロセッサ1604の内部デバイスおよび/または論理回路1622を構成してよく、ラインインターフェース回路1612、バスインターフェース1608、ユーザインターフェース1618、タイマ、数学コプロセッサなどの外部デバイスへのアクセスを管理してもよい。ソフトウェアモジュール1616は、割込みハンドラおよびデバイスドライバと対話し、処理回路1602によって提供される様々なリソースへのアクセスを制御する、制御プログラムおよび/またはオペレーティングシステムを含み得る。リソースには、メモリ、ストレージ1606、処理時間、ラインインターフェース1612およびユーザインターフェース1618へのアクセスなどが含まれ得る。
【０１３３】
処理回路1602の1つまたは複数のプロセッサ1604は、多機能とすることができ、それにより、ソフトウェアモジュール1616のうちのいくつかがロードされ、異なる機能または同じ機能の異なるインスタンスを実行するように構成される。1つまたは複数のプロセッサ1604はさらに、たとえば、ユーザインターフェース1618、ラインインターフェース回路1612、およびデバイスドライバからの入力に応答して開始されたバックグラウンドタスクを管理するように適合されてよい。複数の機能の実行をサポートするために、1つまたは複数のプロセッサ1604は、マルチタスク環境を実現するように構成される場合があり、それにより、複数の機能の各々が、必要または要望に応じて、1つまたは複数のプロセッサ1604によってサービスされるタスクのセットとして実装される。一例では、マルチタスク環境は、異なるタスク間でプロセッサ1604の制御を渡す時分割プログラム1620を使用して実装される場合があり、それにより、各タスクは、任意の未処理動作の完了後、および/または割込みなどの入力に応答して、時分割プログラム1620に1つまたは複数のプロセッサ1604の制御を戻す。タスクが1つまたは複数のプロセッサ1604の制御を有するとき、処理回路は、事実上、制御するタスクに関連付けられた機能によって対処される目的に特化される。時分割プログラム1620は、オペレーティングシステム、ラウンドロビンベースで制御を移すメインループ、機能の優先度付けに従って1つもしくは複数のプロセッサ1604の制御を割り振る機能、および/または、1つもしくは複数のプロセッサ1604の制御を処理機能に提供することによって外部イベントに応答する割込み駆動のメインループを含み得る。
【０１３４】
図17は、SGbusシリアルインターフェース上のデータ通信のための方法を示すフローチャート1700である。この方法の様々なステップは、SGbusマスタデバイス220、図2に示すSGbusスレーブデバイス202、図3に示すデバイス300もしくは320、図16の処理回路1602、および/または本明細書で説明する他のデバイスの何らかの組合せを含む装置内で実行され得る。
【０１３５】
ブロック1702において、デバイスの第1のセットは、1つまたは複数のデバイスが、データ送信のためにバスの第1のラインを使用し、第1のクロック信号のためにバスの第2のラインを使用するように構成される、第1の動作モードに従って動作されてよい。
【０１３６】
ブロック1704において、2つ以上のデバイス間でシグナリングを送信するためにデバイスの第1のセット内の2つ以上のデバイスを接続する1つまたは複数の追加のラインの可用性が決定され得る。
【０１３７】
ブロック1706において、デバイスの第1のセット内のデバイスの第2のセットが、データ送信のためにバスおよび追加のラインのうちの少なくとも1本のラインを使用するように構成された第2の動作モードに従って動作され得る。第2の動作モードにおいて、シンボルは、第1のライン、第2のライン、および追加のラインのうちの少なくとも1本のラインにわたって符号化される。
【０１３８】
デバイスの第1のセットのうちの1つまたは複数が、図18に示すフローチャートに従って動作するように構成され得る。
【０１３９】
図18は、SGbusシリアルインターフェース上のデータ通信のための方法を示すフローチャート1800である。この方法の様々なステップは、SGbusマスタデバイス220、図2に示すSGbusスレーブデバイス202、図3に示すデバイス300もしくは320、図16の処理回路1602、および/または本明細書で説明する他のデバイスの何らかの組合せを含む第1のデバイスによって実行され得る。
【０１４０】
ブロック1802において、第1のデバイスは、2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して、2線式シリアルバスに結合された第2のデバイスとの接続を2線式シリアルバス上で確立し得る。既定の基本プロトコルは、データ通信の集積回路間(I2C)モードに準拠するかまたはそれと互換性のあるプロトコルであり得る。既定の基本プロトコルは、カメラ制御インターフェース(CCI)データトランスポートモードに準拠するかまたはそれと互換性を有してよい。
【０１４１】
ブロック1804において、第1のデバイスは、第1のデバイスと第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のコネクタの可用性を決定してよい。1つまたは複数の追加のコネクタは、第1のデバイスと第2のデバイスとの間で割込み信号を送信するように構成され得るかまたは動作可能であるコネクタを含んでもよい。1つまたは複数の追加のコネクタは、少なくとも3つのデバイスに結合された共有コネクタを含んでもよい。
【０１４２】
ブロック1806において、第1のデバイスは、2線式バスおよび1つまたは複数の追加のコネクタを含むコネクタの組合せを介して送信するためのシンボルのシーケンス内のデータを符号化してよい。クロック情報は、シンボルのシーケンス内の連続するシンボルのペア間の遷移内に符号化されてもよい。クロック情報は、2線式シリアルバスのシグナリング状態の遷移内に符号化されてもよい。クロック情報は、コネクタの組合せのシグナリング状態の遷移内に符号化されてもよい。シンボルのシーケンスの各々は、たとえば、12個のシンボルを含んでもよい。シンボルのシーケンスの各々は、33ビット2進ワードを符号化してもよい。
【０１４３】
ブロック1808において、第1のデバイスは、コネクタの組合せを介してシンボルのシーケンスを送信してよい。
【０１４４】
一態様では、第1のデバイスは、シンボルのシーケンスがコネクタの組合せを介して送信された後、2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して2線式シリアルバス上で通信してよい。既定の基本プロトコルを使用する2線式シリアルバス上の通信は、2線式シリアルバスのみを使用してよい。
【０１４５】
図19は、シンボルが2線式バスおよび1つまたは複数の追加のラインの間で符号化される第2のモードにおいて1つまたは複数の追加のラインを追加するために、第1のモードにおける2線式バスを使用しかつ2線式バスを動的に調整して通信する装置のためのハードウェア実装形態の一例を示す図である。装置1900は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、状態機械などのうちの1つまたは複数を含み得るプロセッサ1916を有する処理回路1902を含み得る。処理回路1902は、概してバス1920によって表されるバスアーキテクチャを用いて実装されてもよい。バス1920は、処理回路1902の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含んでもよい。バス1920は、プロセッサ1916、モジュールまたは回路1904、1906、1908、および1910、複数のコネクタまたは線を含むマルチワイヤバス1914を介して通信するように構成可能なラインインターフェース回路1912、ならびにコンピュータ可読記憶媒体1918によって表される、1つまたは複数のプロセッサおよび/またはハードウェアモジュールを含む様々な回路を一緒にリンクする。バス1920は、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの様々な他の回路をリンクする場合もあるが、これらの回路は当技術分野でよく知られており、したがってこれ以上は説明しない。
【０１４６】
プロセッサ1916は、コンピュータ可読記憶媒体1918上に記憶されたソフトウェアの実行を含む全体的な処理を担当する。ソフトウェアは、プロセッサ1916によって実行されると、処理回路1902に、任意の特定の装置について上記で説明した様々な機能を実行させる。コンピュータ可読記憶媒体1918はまた、ソフトウェアを実行するときにマルチワイヤバス1914を介して送信されたシンボルから復号されるデータを含む、プロセッサ1916によって操作されるデータを記憶するために使用されてもよい。処理回路1902は、モジュールおよび/または回路1904、1906、および1908のうちの少なくとも1つをさらに含む。モジュールおよび/または回路1904、1906、1908、および1910は、コンピュータ可読記憶媒体1918に存在する/記憶される、プロセッサ1916にロードされ、構成され、かつ動作しているソフトウェアモジュール、プロセッサ1916に結合された1つもしくは複数のハードウェアモジュール、またはそれらの何らかの組合せであり得る。モジュールおよび/または回路1904、1906、および1908は、マイクロコントローラ命令、状態機械構成パラメータ、またはそれらの何らかの組合せを含む場合がある。
【０１４７】
一構成では、装置1900は、利用可能な追加のコネクタ/ラインを決定するように、および別のデバイスと通信するためにそのようなコネクタ/ラインを構成するように適合されたコネクタ/ライン構成モジュールおよび/または回路1904を含んでよい。トランスコーダおよび/または変換器のモジュールおよび/または回路1906は、シンボルが、送信のために利用可能な線の数に対して構成されるシンボルのシーケンス内のデータを符号化するように構成されてよい。通信モジュールおよび/または回路1908は、2線式シリアルバスおよび1つまたは複数の追加のコネクタ/ラインのシグナリング状態におけるシンボルのシーケンスを送信するように構成されてよい。装置1900は、たとえば、マルチワイヤバス1914および/または装置1900の動作モードを制御するモードモジュールおよび/または回路1910を含む、追加のモジュールおよび/または回路を含む場合がある。モードモジュールおよび/または回路1910は、既定の基本プロトコル(たとえば、2線式シリアルバスを介するI2C互換プロトコル)と高データレートプロトコル(たとえば、2線式シリアルバスおよび動的に再目的化される1つまたは複数の追加のコネクタ/ラインを使用する)との間を切り替えることができる。たとえば、モード制御モジュールおよび/または回路1910は、マルチワイヤバス1914上で制御シーケンスを送信するコマンド生成モジュールを含むか、またはそれと協働する場合がある。別の例では、モード制御モジュールおよび/または回路1910は、I2C動作モードにおけるオープンドレインドライバまたはその均等物と、HDR動作モードにおけるプッシュプルドライバとを有効にするために、ラインインターフェース回路1912の再構成をもたらす場合がある。
【０１４８】
上述の手段は、たとえば、プロセッサまたは制御論理回路212と、物理レイヤドライバ210および214と、記憶媒体、デバイス、レジスタ他206との何らかの組合せを使用して実装され得る。
【０１４９】
開示したプロセスにおけるステップの特定の順序または階層は、例示的な手法の例示であることを理解されたい。設計上の選好に基づいて、プロセスにおけるステップの特定の順序または階層は再構成されてもよいことを理解されたい。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示された特定の順序または階層に限定されることを意味するものではない。
【０１５０】
上記の説明は、本明細書で説明した様々な態様を当業者が実践できるようにするために与えられている。これらの態様に対する種々の変更形態は、当業者に容易に明らかになり、本明細書において規定される一般原理は、他の態様に適用される場合がある。したがって、特許請求の範囲は本明細書に示された態様に限定されるものではなく、文言通りの特許請求の範囲に整合するすべての範囲を与えられるべきであり、単数形の要素への言及は、そのように明記されていない限り、「唯一無二の」を意味するものではなく、「1つまたは複数の」を意味するものである。別段に明記されていない限り、「いくつかの」という用語は1つまたは複数の、を指す。当業者に知られているか、または後に当業者に知られることになる、本開示全体にわたって説明される種々の態様の要素のすべての構造的および機能的均等物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。その上、本明細書で開示するものは、そのような開示が特許請求の範囲において明示的に記載されているかどうかにかかわらず、公に供することは意図されていない。いかなるクレーム要素も、要素が「ための手段」という語句を用いて明確に記述されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
【符号の説明】
【０１５１】
100  装置
102  処理回路
106  通信トランシーバ
108  特定用途向けIC(ASIC)
110  アプリケーションプログラミングインターフェース(API)
112  メモリデバイス
114  ローカルデータベース
122  アンテナ
124  ディスプレイ
126  キーパッド
128  ボタン
200  装置
202  デバイス
204  センサ制御機能
206  構成レジスタまたは他のストレージ
208  クロック生成回路
210  トランシーバ
210a  受信機
210b  共通回路
210c  送信機
212  制御論理
214a  ラインドライバ/受信機
214b  ラインドライバ/受信機
216  シリアルクロック(SCL)ライン
218  シリアルデータ(SDA)ライン
220  センサグローバルバス(SGbus)マスタデバイス
222a〜222n  デバイス
230  共有バス
300  送信機
302  トランスコーダ
304  3進-シンボルエンコーダ
306  ラインドライバ
308  オープンドレイン出力トランジスタ
310  入力データ
312  3進数
314  2ビットシンボル
320  受信機
322  トランスコーダ
324  シンボル-3進デコーダ
326  ラインインターフェース回路
328  クロックおよびデータ回復(CDR)回路
330  出力データ要素
332  3進数
334  シンボル
336  未加工のシンボル、2ビットシンボル
338  CDR回路、受信クロック
400  タイミング図
402  行シンボル値
404  7つのスロット、スロットのシーケンス
406  シンボル
422  シンボル
500  符号化方式
502  シンボル順序付けサークル
504a  サークル502上のロケーション
504b  サークル502上のロケーション
504c  サークル502上のロケーション
504d  サークル502上のロケーション
506  回転の方向
520  表
522  シンボル
524  シンボル
526  遷移数の数字
540  遷移数
600  タイミング図
602  7ビットのスレーブID
606  I2C START条件
612  読取り/書込みビット
614  クロック信号パルス
616  I2C STOP条件
702  共有バス
7041〜704k  I2Cデバイス
706  マスタデバイス、I2Cデバイス
712  SGbusデバイス、SGbusマスタデバイス
7141〜714n  SGbusスレーブデバイス
7161〜716m  SGbusセカンダリマスタデバイス
718  追加の線/ライン
800  共有バス702上のトランザクション
802  シンボル
804  シグナリング
806  制御シグナリング
808  SGbusデータ交換
810  データペイロード
812  終了シーケンス
814  I2C START条件
816  アドレス
818  コマンドコード
820  STOP条件
822  Bus-Free状態
824  肯定応答
826  肯定応答
828  STOP条件
900  タイミング図
906  第1のSTART条件
908  STOP条件
910  第2のSTART条件
912  ビジー期間
914  アイドル期間
920  タイミング図
922  SDAライン/線
924  SCLライン/線
926  START条件
928  REPEATED START条件
930  アイドル期間
932  第1のビジー期間
934  第2のビジー期間
1002  有効なSTART条件
1004  有効なSTOP条件またはREPEATED START条件
1006  意図しないSTART条件、false START (or REPEATED START)条件
1008  意図しないSTART条件、false START (or REPEATED START)条件
1010  意図しないSTOP条件
1012  意図しないSTOP条件
1122  サークル502上およびサークル502を横切る変位値
1124  遷移数
1200  タイミング図
1202  3進送信機(Tx)遷移数
1204  シンボル
1206  3進受信機(Rx)遷移数
1220  タイミング図
1222  送信機(Tx)3進数
1224  シンボル
1226  受信機(Rx)遷移数
1230  シンボル
1232  追加の数
1300  タイミング図
1304  シンボル
1306  受信機(Rx)遷移数
1310  シンボル
1312  3進数
1320  タイミング図
1324  シンボル
1326  受信機(Rx)遷移数
1330  シンボル
1332  3進数
1402  SGbusデバイス、マルチワイヤ(Mwire)マスタデバイス
1404  SGbusデバイス、マルチワイヤ(Mwire)スレーブデバイス
1406  SGbusデバイス、マルチワイヤ(Mwire)スレーブデバイス
1408  SGbusデバイス、マルチワイヤ(Mwire)スレーブデバイス
1410  SGbus、2線式バス
1412  追加のコネクタまたは線
1414  追加のコネクタまたは線
1416  追加のコネクタまたは線
1418  レガシーデバイス
1420  レガシーデバイス
1422  SGbusデバイス
1502  シンボル
1504  コネクタ
1506  コネクタ
1508  コネクタ
1510  時間スロット
1520  表
1600  概念図
1602  処理回路
1604  プロセッサ
1606  ストレージ
1608  バスインターフェース
1610  バス
1612  ラインインターフェース回路
1614  ランタイムイメージ
1616  ソフトウェアモジュール
1618  ユーザインターフェース
1620  時分割プログラム
1622  論理回路
1900  装置
1800  フローチャート
1902  処理回路
1904  モジュールまたは回路、コネクタ/ライン構成モジュールおよび/または回路
1906  モジュールまたは回路、トランスコーダおよび/または変換器のモジュールおよび/または回路
1908  モジュールまたは回路、通信モジュールおよび/または回路
1910  モジュールまたは回路、モード制御モジュールおよび/または回路
1912  ラインインターフェース回路
1914  マルチワイヤバス
1916  プロセッサ
1918  コンピュータ可読記憶媒体
1920  バス
【図１】
2017520053.tif 000007
【図２】
2017520053.tif 000008
【図３】
2017520053.tif 000009
【図４】
2017520053.tif 000010
【図５】
2017520053.tif 000011
【図６】
2017520053.tif 000012
【図７】
2017520053.tif 000013
【図８】
2017520053.tif 000014
【図９】
2017520053.tif 000015
【図１０】
2017520053.tif 000016
【図１１】
2017520053.tif 000017
【図１２】
2017520053.tif 000018
【図１３】
2017520053.tif 000019
【図１４】
2017520053.tif 000020
【図１５】
2017520053.tif 000021
【図１６】
2017520053.tif 000022
【図１７】
2017520053.tif 000023
【図１８】
2017520053.tif 000024
【図１９】
2017520053.tif 000025
【手続補正書】
【提出日】平成28年12月20日(2016.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1のラインおよび第2のラインを含むバスと、
前記バスに結合され、第1の動作モードにおいてデータ送信のために前記第1のラインを使用し、第1のクロック信号のために前記第2のラインを使用するように構成されたデバイスの第1のセットと、
2つ以上のデバイス間でシグナリングを送信するための、デバイスの前記第1のセット内の2つ以上のデバイスを接続する1つまたは複数の追加のラインと、
第2の動作モードにおいてデータ送信のために前記バスおよび前記追加のラインのうちの少なくとも1本のラインを使用するようにさらに構成された、デバイスの前記第1のセット内のデバイスの第2のセットとを備え、前記第2の動作モードにおいて、シンボルが、前記第1のライン、前記第2のライン、および前記追加のラインのうちの前記少なくとも1本のラインにわたって符号化され、前記第2の動作モードにおいて、デバイスの前記第2のセットからのマスタデバイスが、前記バスの前記第1のラインおよび前記第2のラインならびに前記追加のラインのうちの前記少なくとも1本のラインを介して、デバイスの前記第2のセットからスレーブデバイスにデータを送信する、装置。
【請求項２】
デバイスの前記第1のセットおよびデバイスの前記第2のセットが、前記第1の動作モードと前記第2の動作モードの両方において、前記第1のラインおよび前記第2のラインのうちの少なくとも1本のラインを同時に監視する、請求項1に記載の装置。
【請求項３】
前記第1の動作モードにおいて、デバイスの前記第2のセットからの前記マスタデバイスが、前記バスの前記第1のラインを介してデバイスの前記第1のセットまたはデバイスの前記第2のセットから前記スレーブデバイスにデータを送信する、請求項1に記載の装置。
【請求項４】
前記第1の動作モードが、前記バスを介してデータ送信のための第1のプロトコルを実施し、前記第2の動作モードが、前記バスおよび前記追加のラインのうちの前記少なくとも1本のラインを介してデータ送信のための第2のプロトコルを実施する、請求項1に記載の装置。
【請求項５】
前記第2の動作モードにおいて、デバイスの前記第1のセットが、有効なスレーブノードアドレスの検出を禁止するリセットインジケータを、前記第1のラインおよび前記第2のラインを介して受信する、請求項1に記載の装置。
【請求項６】
前記第2の動作モードにおいて、リセットインジケータまたは停止インジケータが、データ送信の間に前記第1のラインまたは前記第2のライン内で回避される、請求項1に記載の装置。
【請求項７】
前記第1の動作モードの間に、デバイスの前記第2のセットからのマスタノードが、前記第2の動作モードへの切替えをデバイスの前記第2のセットに示す第1のビットシーケンスを、前記第1のラインを介して送る、請求項1に記載の装置。
【請求項８】
前記第2の動作モードの間に、マスタノードが、前記第1の動作モードへの切替えをデバイスの前記第2のセットに示す退出シンボルシーケンスを、前記バスを介して送る、請求項1に記載の装置。
【請求項９】
前記第2の動作モードにおいて、第2のクロック信号が、前記バスおよび前記追加のラインのうちの前記少なくとも1本のラインを介してシンボル遷移内に埋め込まれる、請求項1に記載の装置。
【請求項１０】
前記第2の動作モードにおいて、前記第2のクロック信号が、ラインの第1のサブセットを介してシンボル遷移内に埋め込まれる一方で、第3のクロック信号が、ラインの第2のサブセットを介してシンボル遷移内に埋め込まれる、請求項9に記載の装置。
【請求項１１】
デバイスの前記第2のセット内の1つまたは複数のデバイスが、前記第1の動作モードと前記第2の動作モードの両方において動作することが可能である、請求項1に記載の装置。
【請求項１２】
前記第1の動作モードにおいて、前記1つまたは複数の追加のラインが、デバイスの前記第1のセットまたはデバイスの前記第2のセット内でスレーブデバイスから前記マスタデバイスに伝達される割込みのために使用される、請求項1に記載の装置。
【請求項１３】
前記第2の動作モードにおいて、デバイスの前記第2のセット内の前記マスタデバイスが、
デバイスの前記第2のセット内の特定のスレーブデバイスを有する利用可能なラインの数を確認することと、
前記利用可能なラインのうちの1つまたは複数を選択することと、
前記バスおよび前記利用可能なラインのうちの前記選択された1つまたは複数のラインを利用するために前記第2の動作モードにおいて使用されるプロトコルを動的に適合させることとを行うように適合される、請求項1に記載の装置。
【請求項１４】
前記第2の動作モードにおいて使用される前記プロトコルが、送信のためのシンボルを符号化するために変化する数のラインを使用するように適合される、請求項13に記載の装置。
【請求項１５】
合計3つのラインが、前記シンボルを符号化するために前記第2の動作モードにおいて使用されるとき、複数のシンボルが、7進ベース数としてさらに符号化される、請求項1に記載の装置。
【請求項１６】
合計4つのラインが、前記シンボルを符号化するために前記第2の動作モードにおいて使用されるとき、複数のシンボルが、15進ベース数としてさらに符号化される、請求項1に記載の装置。
【請求項１７】
データ送信のためにバスの第1のラインを使用し、第1のクロック信号のために前記バスの第2のラインを使用するように構成されたデバイスの第1のセットを、第1の動作モードに従って動作させるステップと、
2つ以上のデバイス間でシグナリングを送信するためにデバイスの前記第1のセット内の前記2つ以上のデバイスを接続する1つまたは複数の追加のラインの可用性を決定するステップと、
データ送信のために前記バスおよび前記追加のラインのうちの少なくとも1本のラインを使用するように構成された第2の動作モードに従って、デバイスの前記第1のセット内のデバイスの第2のセットを動作させるステップとを含み、前記第2の動作モードにおいて、シンボルが、前記第1のライン、前記第2のライン、および前記追加のラインのうちの前記少なくとも1本のラインにわたって符号化され、前記第2の動作モードにおいて、デバイスの前記第2のセットからのマスタデバイスが、前記バスの前記第1のラインおよび前記第2のラインならびに前記追加のラインのうちの前記少なくとも1本のラインを介して、デバイスの前記第2のセットからスレーブデバイスにデータを送信する、方法。
【請求項１８】
前記第1の動作モードにおいて割込み信号を伝達するために前記1つまたは複数の追加のラインを使用するステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記1つまたは複数の追加のラインが、デバイスの前記第2のセット内の少なくとも3つのデバイスに結合された共有ラインを備える、請求項17に記載の方法。
【請求項２０】
2線式シリアルバスに結合された第1のデバイスによって実行される方法であって、
前記2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して、前記2線式シリアルバスに結合された第2のデバイスとの接続を前記2線式シリアルバスで確立するステップと、
前記第1のデバイスと前記第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定するステップと、
前記2線式バスおよび前記1つまたは複数の追加のラインを含むラインの組合せを介して、送信のためのシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化するステップであって、クロック情報が、シンボルの前記シーケンス内の連続するシンボルのペア間の遷移内に符号化される、符号化するステップと、
ラインの前記組合せを介してシンボルの前記シーケンスを送信するステップとを含む、方法。
【請求項２１】
前記既定の基本プロトコルが、データ通信の集積回路間(I2C)モードに準拠するかまたはそれと互換性がある、請求項20に記載の方法。
【請求項２２】
前記既定の基本プロトコルが、前記第1のデバイスと前記第2のデバイスとの間で割込み信号を送信するために、前記1つまたは複数の追加のラインを使用する、請求項20に記載の方法。
【請求項２３】
前記1つまたは複数の追加のラインが、少なくとも3つのデバイスに結合された共有ラインを備える、請求項20に記載の方法。
【請求項２４】
シンボルの前記シーケンスの各々が、合計3本の線がシンボルのシーケンス内のデータを符号化するために使用されるとき、12個のシンボルを含み、33ビットの2進ワードを符号化する、請求項20に記載の方法。
【請求項２５】
前記高データレートプロトコルを使用してラインの前記組合せを介してシンボルの前記シーケンスを送信した後、前記既定の基本プロトコルを使用して前記2線式シリアルバス上で通信するステップをさらに含む、請求項20に記載の方法。
【請求項２６】
前記既定の基本プロトコルが、前記2線式シリアルバスを介して通信するためにだけ使用される、請求項20に記載の方法。
【請求項２７】
前記高データレートプロトコルのクロック情報が、前記2線式シリアルバスのシグナリング状態の遷移内に符号化される、請求項20に記載の方法。
【請求項２８】
前記高データレートプロトコルのクロック情報が、ラインの前記組合せのシグナリング状態の遷移内に符号化される、請求項20に記載の方法。
【請求項２９】
ラインの組合せが少なくとも3つの合計に等しいとき、シンボルの前記シーケンスの各々が、7進ベース数として符号化される、請求項20に記載の方法。
【請求項３０】
ラインの組合せが少なくとも4本のラインの合計に等しいとき、シンボルの前記シーケンスの各々が、15進ベース数として符号化される、請求項20に記載の方法。
【請求項３１】
2線式シリアルバスと、
第1のデバイスを前記2線式シリアルバスに結合するように適合され、前記2線式シリアルバスと関係付けられた既定の基本プロトコルを使用して通信するように構成された通信インターフェースを含む第1のデバイスと、
前記2線式シリアルバスに結合され、前記既定の基本プロトコルを使用して通信するように構成された第2のデバイスと、
前記通信インターフェースに結合された処理回路と
を備え、前記処理回路が、
前記第1のデバイスと前記第2のデバイスとの間のデータ通信のために設定可能な1つまたは複数の追加のラインの可用性を決定することと、
前記2線式バスおよび前記1つまたは複数の追加のラインを含むラインの組合せを介して、送信のためのシンボルのシーケンス内のデータを、高データレートプロトコルに従って符号化することであって、クロック情報が、シンボルの前記シーケンス内の連続するシンボルのペア間の遷移内に符号化される、符号化することと、
ラインの前記組合せを介してシンボルの前記シーケンスを送信することとを行うように構成される、装置。
【請求項３２】
前記既定の基本プロトコルが、前記第1のデバイスと前記第2のデバイスとの間で割込み信号を送信するために、前記1つまたは複数の追加のラインを使用する、請求項31に記載の装置。
【請求項３３】
前記1つまたは複数の追加のラインが、少なくとも3つのデバイスに結合された共有ラインを備える、請求項32に記載の装置。
【国際調査報告】
2017520053.tif 000026
2017520053.tif 000027
2017520053.tif 000028
2017520053.tif 000029
2017520053.tif 000030