(57)【要約】【課題】  デジタル・シリアル・バスのためのシリアル・ピアツーピア・インターフェースおよびこれを操作するための方法を提供することにある。【解決手段】  開示されたシリアル・バス・インターフェースは、スレーブからの応答が期待される定義済み間隔を除き、ほとんどの時間、バス・マスタのドライバ・バッファをアクティブに保持する。これは、スレーブの非終端遠端で反射されたマスタから送信された要求パケットの要求エコーが終端されることを保証するものである。このような信号エコーに関する移動時間は、マスタとスレーブとの間のワイヤ長の距離あるいは伝送ラインの電気特性またはその両方によって定義することができる。スレーブは、要求パケットを受信し、何らかの処理時間を追加し、プログラム可能遅延素子によって遅延された応答を送信することができる。応答パケットは、追加の移動遅延後にマスタに到着することができる。その時点で、要求エコーはすでに終端されており、もはやデータ伝送を妨害しない。プログラム可能遅延素子は、応答パケットがマスタ側に到着する点まで正確に前述の間隔を移動する。このような応答が受信された後、ドライバ・バッファはもう一度活動化され、スレーブ側の一致したドライバ・バッファは非活動化される。アクティブ終端のため、応答エコーは、追加の一往復後にキャンセルされる。その時間中、スレーブ側のレシーバ・バッファ上の入力はすべて無視される。
2006527549.tif 000002
【特許請求の範囲】
【請求項１】
バス・マスタと少なくとも１つのバス・スレーブとの間のデジタル・シリアル・バスで使用するシリアル・ピアツーピア・インターフェースを操作するための方法であり、
前記シリアル・ピアツーピア・インターフェースは、クロック周期がデータ・ライン上のデータの移動時間より短い範囲内の動作を可能にする少なくとも１つの双方向データ・ラインと１つの単一方向クロック・ラインとから構成され、
前記バス・マスタは、データを受信するための少なくとも１つのバス・マスタ・ドライバ・バッファを有し、
前記方法は、前記バス・マスタによって送信された要求データ・パケットに応答して前記少なくとも１つのバス・スレーブによって送信される応答データ・パケットが期待される特定の時間間隔を除き、前記バス・マスタ・ドライバ・バッファをアクティブに保持するステップを有する方法。
【請求項２】
前記バス・マスタが要求データ・パケットを送信し、前記少なくとも１つのバス・スレーブが前記要求データ・パケットを受信し、特定の遅延分だけ遅延された前記要求データ・パケットに応答データ・パケットを送信し、前記応答データ・パケットが追加の移動時間後に前記バス・マスタに到着し、前記バス・マスタへの前記応答データ・パケットの到着の時点で、前記要求データ・パケットのエコーがすでに終端されており、もはやデータ伝送を妨害しない、請求項１に記載の方法。
【請求項３】
前記応答データ・パケットが前記バス・マスタによって受信された後、前記バス・マスタ・ドライバ・バッファがもう一度活動化され、前記バス・スレーブ側の一致したバス・スレーブ・ドライバ・バッファが非活動化され、アクティブ終端のため、応答エコーが追加の一往復後にキャンセルされ、その時間中、前記バス・スレーブ側のバス・スレーブ・レシーバ・バッファ上の入力がすべて無視される、請求項１または２に記載の方法。
【請求項４】
前記バス・マスタが少なくとも２つのバス・スレーブに相互接続するシリアル・バス環境で使用するために、前記バス・マスタが要求パケットを送信した後、前記少なくとも２つのバス・スレーブからのすべての応答パケットが同じ時間遅延で送信されるように、前記少なくとも２つのバス・スレーブの個々の遅延を設定する、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記バス・マスタ内の前記少なくとも２つのバス・スレーブのそれぞれについて移動時間遅延を個別に補正せずに、前記少なくとも２つのバス・スレーブと前記バス・マスタとの間のデータ伝送を多重化する、請求項４に記載の方法。
【請求項６】
データを受信するための少なくとも１つのバス・マスタ・ドライバ・バッファを有するバス・マスタと少なくとも１つのバス・スレーブとの間のデジタル・シリアル・バスで使用するためのシリアル・ピアツーピア・インターフェースであり、
クロック周期がデータ・ライン上のデータの移動時間より短い範囲内の動作を可能にする少なくとも１つの双方向データ・ラインと１つの単一方向クロック・ラインと、
前記バス・マスタによって送信された要求パケットに応答して前記少なくとも１つのバス・スレーブによって送信される応答パケットが前記バス・マスタに到着することが期待される時点まで、前記少なくとも１つのバス・マスタ・ドライバ・バッファがデータを受信するためにアクティブである時間間隔を移動する少なくとも１つの調整可能な遅延素子と
を有するシリアル・ピアツーピア・インターフェース。
【請求項７】
前記応答パケットが前記バス・マスタで受信された後、前記バス・マスタ・ドライバ・バッファを再活動化するための手段をさらに有し、
前記バス・スレーブ側の一致したバス・スレーブ・ドライバ・バッファが非活動化され、前記バス・スレーブ側のバス・スレーブ・レシーバ・バッファ上の入力がすべて無視される、請求項６に記載のシリアル・ピアツーピア・インターフェース。
【請求項８】
前記バス・マスタ側に配置された第１の調整可能な遅延素子であって、前記バス・マスタによって送信された要求パケットに応答して前記少なくとも１つのバス・スレーブによって送信される応答パケットが前記バス・マスタに到着することが期待される時点まで、前記少なくとも１つのバス・マスタ・ドライバ・バッファがデータを受信するためにアクティブである前記時間間隔を移動する第１の調整可能な遅延素子と、
前記少なくとも１つのバス・スレーブ側に配置された少なくとも第２の調整可能な遅延素子であって、前記少なくとも１つのバス・マスタ・ドライバ・バッファがアクティブである前記時間間隔を連続的に減分するための少なくとも第２の調整可能な遅延素子と
を有する、請求項７に記載のシリアル・ピアツーピア・インターフェース。
【請求項９】
請求項６ないし８のいずれかに記載のシリアル・ピアツーピア・インターフェースとともに使用するための周辺装置であり、
データを受信するための少なくとも１つのドライバ・バッファと、
前記少なくとも１つのバス・マスタ・ドライバ・バッファがアクティブである前記時間間隔を連続的に減分するための少なくとも１つの調整可能な遅延素子と
を有する周辺装置。
【請求項１０】
請求項６に記載のシリアル・ピアツーピア・インターフェースにおいて、同じ双方向データ・ラインを使用するバス・マスタの要求に関して少なくとも１つのバス・スレーブの応答を調整するための方法において、
前記少なくとも１つのバス・スレーブが、時間に関して応答のシフトを可能にする調整可能な遅延素子を有し、
モニター・スキャンにおいて、前記バス・マスタが、前記少なくとも１つのバス・スレーブからのデータが期待される特定のウィンドウをモニターし、
前記バス・マスタの制御下で、前記少なくとも１つのバス・スレーブが前記バス・マスタによって送信された要求に応答して応答を送信し始め、
前記バス・マスタが、始めに、前記データ・ライン上の信号の往復時間より高い値に前記遅延を設定し、前記少なくとも１つのバス・スレーブ内の前記遅延を減少し、前記少なくとも１つのバス・スレーブからの前記応答をモニターし、前記少なくとも１つのバス・スレーブ内で設定された前記遅延を減少し、前記少なくとも１つのバス・スレーブの前記応答を前記バス・マスタによって決定された受信時間ウィンドウに正確に一致させる特定の遅延を決定する方法。
【請求項１１】
前記バス・マスタの調整可能な遅延素子によるマスタ遅延（ＴＭｄｅｌａｙ）および前記バス・スレーブの調整可能な遅延素子によるスレーブ遅延（ＴＳｄｅｌａｙ）を所定の最大値に設定するステップと、
前記バス・マスタから前記バス・スレーブにデータ・パケットを送信するステップと、
前記バス・マスタが前記バス・スレーブからの応答パケットを待っている前記特定のウィンドウ内で前記バス・マスタの状態を「待ち状態」に変更するステップと、
有効な応答パケットが前記バス・スレーブから受信されたかどうかを前記バス・マスタによりチェックするステップと、
前記バス・マスタが有効な応答パケットを前記バス・スレーブから受信していないことが前記チェックするステップで明らかになった場合に、特定の所定の量だけ前記スレーブ遅延（ＴＳｄｅｌａｙ）を減分し、追加のデータ・パケットを前記バス・マスタから前記バス・スレーブに送信するステップと、
そうではなく、前記バス・マスタが有効な応答パケットを前記バス・スレーブから受信したことが前記チェック・ステップで明らかになった場合に、前記スレーブ遅延（ＴＳｄｅｌａｙ）の現行値を保管し、保管した前記スレーブ遅延（ＴＳｄｅｌａｙ）の前記現行値の分だけ前記マスタ遅延（ＴＭｄｅｌａｙ）を減少させるステップと、
前記スレーブ遅延（ＴＳｄｅｌａｙ）をゼロに設定するステップと、
を有する、請求項１０に記載の方法。
【請求項１２】
少なくとも２つのバス・スレーブを備えた環境において、
前記少なくとも２つのバス・スレーブのすべてについて請求項１１に記載の前記各ステップを連続的に実行し、前記少なくとも２つのバス・スレーブのそれぞれについて結果として得られるマスタ遅延（ＴＭｄｅｌａｙ）値を保管するステップと、
保管したすべてのマスタ遅延（ＴＭｄｅｌａｙ）値のうちの最大値に前記マスタ遅延（ＴＭｄｅｌａｙ）を設定するステップと、
一方で、前記ステップで設定される前記マスタ遅延（ＴＭｄｅｌａｙ）の前記最大値と、他方で、前記少なくとも２つのバス・スレーブのそれぞれについて保管した前記それぞれのマスタ遅延（ＴＭｄｅｌａｙ）値との差だけ、すべてのスレーブ遅延（ＴＳｄｅｌａｙ）値を調整するステップと、
を有する、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタル・シリアル・バスに関し、より具体的には、周辺装置の時間依存型直列相互接続のためのシリアル・バス・インターフェースおよびこれを操作する方法に関する。
【背景技術】
【０００２】
エンターテインメント・エレクトロニクス、ファブリック・オートメーション、およびコンピュータ・システム（たとえば、サーバ、メインフレームなど）、リモート・アクタ／センサ・インターフェースを有する周辺装置の組込み制御の領域では、例えばＩ2Ｃのようなシリアル・バス規格を使用して、そのレジスタの読取りおよび書込みならびに環境情報の取得または設定のために周辺装置にアクセスする。このようなシリアル・バス規格（仕様）は、相互接続ワイヤおよびインターフェース構造、ならびに（組込み）システム内の通信のためのすべてのフォーマットおよび手順、すなわち、通信プロトコルによって定義される。特に、通信プロトコルは、混乱、データ損失、および情報の遮断の可能性をすべて回避する。
【０００３】
Ｉ2Ｃ（ＩＩＣ＝イントラ・インテグレーテッド・サーキット）バスは、詳細には、ユニバーサル２線式バスである。すなわち、このバスは、それぞれがワイヤード「ＯＲ」になっているクロック・ラインおよびデータ・ラインから構成される（図１）。これは、休止中または論理「１」を伝送するときに、クロック・ラインおよびデータ・ラインが大きい電気抵抗値によって引き上げられ、その結果、バス上に実現されたコントローラ・チップのオープン・コレクタ出力のうちの１つまたは複数によって引き下げられ得ることを意味する。このプルアップ抵抗のために、バスがフリーであるときに、どちらのライン（クロック・ラインおよびデータ・ライン）も「ハイ」状態になる。マスタは通常、クロック速度を決定するが、バス上の特定のチップは、クロック・サイクルを延長することにより、伝送を減速することができる。バスに接続された周辺装置はソフトウェアによって完全にアドレス指定される。加えて、新しい装置または機能は、既存のＩ2Ｃバス上に容易にクリッピングすることができる。データは、１００ｋＨｚ、４００ｋＨｚ、または３．４ＭＨｚの速度でマスタとスレーブとの間で伝送される。Ｉ2Ｃバス上のクロック信号の生成は常にマスタ装置の責任である。すなわち、各マスタ装置は、バス上でデータを転送するときに、それ自体のクロック信号を生成し送信する。加えて、Ｉ2Ｃバス・プロトコルにより、クロック速度が異なる種々の装置がバスに接続されている場合に、より高速装置はより低速装置と通信することができ、バス・クロック・ソースを定義することができる。
【０００４】
もう一度、図１を参照すると、前述の通り、Ｉ2Ｃバスの一実現例は、そのバスに接続された装置間で情報を伝達するシリアル・データ（ＳＤＡ）ワイヤおよびシリアル・クロック（ＳＣＬ）ワイヤという２本のワイヤを有する。各装置は、固有のアドレスによって認識され、装置の機能に応じて、情報の送信機能及び／又は受信機能として動作することができる。たとえば、ＬＣＤドライバはデータの受信のみ行い、メモリはデータの受信および送信のいずれも行うことができる。加えて、装置は、データ転送を実行するときに、マスタまたはスレーブと見なすこともできる。一例として、マスタは、バス上でデータ転送を開始し、その転送を許可するためのクロック信号を生成する装置である。その時点で、アドレス指定された装置はいずれもスレーブと見なされる。
【０００５】
Ｉ2Ｃバスは、いわゆる「組込みアプリケーション」のための典型的な解決策であり、すなわち、制御、診断、および電源管理のバスとして、様々なマイクロコントローラベースの民生品および遠隔通信アプリケーションで使用される。Ｉ2Ｃバスに関する典型的な応用分野は、テレビ受像機のような装置やデジタル・コードレス電話（ＤＥＣＴ）の電話基地局のような電話装置の内部であり（すなわち、そこに組み込まれ）、そのバスは例えば、１メートルを大きく上回るわけではない。
【０００６】
これに関連して言及すべきその他の既知のシリアル・インターフェース仕様は、周辺装置とコンピュータとの間の高速データ転送のための既知の「ＦｉｒｅＷｉｒｅ（商標）」インターフェース、ならびに、コンピュータとアドオン装置（オーディオ・プレーヤ、ジョイスティック、キーボード、電話、スキャナ、およびプリンタなど）との間のプラグ・アンド・プレイ・インターフェースである既知の「ユニバーサル・シリアル・バス（ＵＳＢ）」インターフェースなどを挙げることができる。
【０００７】
シリアル・バスは一般にパラレル・バス程のスループット能力を持っていないが、有利なことに、必要とする配線が少なくなり、ＩＣ接続ピンも少ない。しかし、前述の限られた電子コンパートメント内では、これらのシリアル・バスは、リモート機能にアクセスするためにこれらのバスを使用する、担当のコントローラと比べて、低速（１００Ｋビット／秒〜３Ｍビット／秒）でしか動作しない。したがって、コントローラは、リモート・アクセスが完了するまで、大量の処理能力を浪費して待たなければならない。さらに、これらのバスは、同じワイヤ上のマルチドロップ参加者として複数の周辺装置を接続するようにレイアウトされることがある。このような実現例はある程度の配線努力を省くものであるが、バス上の１つのエレメントが故障しただけでも、セットアップ全体が完全な故障にさらされるので、特に信頼性および可用性に関して弱点をもたらすものでもある。
【０００８】
したがって、高い可用性と耐障害性を実現するとともに並行保守の諸態様をカバーするために、異なるセットアップを選択しなければならない。各周辺装置は、これらの周辺装置を駆動するために担当のコントローラに対するそれ自体の相互接続を必要とする。しかし、前述のＵＳＢのような標準のバスでは、依然として帯域幅が小さいという問題が存在し、ＵＳＢドライブのようなより高度な規格へ移行するには、より多くのピン数とフロントエンド同期回路におけるより多くの努力が必要である。
【０００９】
したがって、上述の応用分野で使用することができ、特に、種々の周辺装置間のクロック速度、回路（回線）長などの変動および相違に対して耐性のあるシリアル・バス・インターフェースおよびこれを操作するための方法を提供することが望ましい。これに関して、「時間依存型」とは、クロック・サイクル時間がマスタとそれに接続された周辺装置との間のランタイムよりかなり低いことを意味することが強調される。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の基礎となる考え方は、スレーブからの応答が期待される定義済み時間間隔を除き、ほとんどの時間、バス・マスタのドライバ・バッファをアクティブに保持することである。この手法は、スレーブの非終端遠端で反射されたマスタから送信された要求パケットによって引き起こされた信号エコーが終端されることを保証するものである。このような信号エコーに関する移動時間は、マスタとスレーブとの間のワイヤ長の距離あるいは伝送ラインの電気特性またはその両方によって定義される。
【課題を解決するための手段】
【００１１】
本発明の好ましい一実施形態によれば、デジタル・シリアル・バスのためのシリアル・ピアツーピア・インターフェースおよびこれを操作するための一致した方法が提案され、このシリアル・バスはバス・マスタと少なくとも１つのバス・スレーブとを有し、シリアル・ピアツーピア・インターフェースは、任意のクロック周波数での動作、特に、クロック周期がデータ・ライン上のデータの移動時間より短い範囲内の動作を可能にする少なくとも１つの双方向データ・ラインと１つの単一方向クロック・ラインから構成され、バス・マスタは、データの送信あるいは受信またはその両方を行うための少なくとも１つのドライバ・バッファを有する。提案されたインターフェースおよび方法は、特に、少なくとも１つのバス・スレーブからの応答が期待される定義済み時間間隔を除き、ドライバ・バッファをアクティブに保持する。したがって、スレーブの非終端遠端で反射されたマスタから送信された要求パケットの要求エコーは自動的に終端される。
【００１２】
換言すれば、スレーブは、要求パケットを受信し、何らかの処理時間を追加し、特定の時間遅延分だけ遅延された応答を送信する。応答パケットは、追加の移動遅延後にマスタに到着する。その時点で、要求エコーはすでに終端されており、もはやデータ伝送を妨害しない。
【００１３】
提案されたバス・インターフェースは、応答パケットがマスタ側に到着する点まで正確に前述の間隔を移動するマスタ側ならびにスレーブ側の調整可能な遅延素子を有する。このような応答が受信された後、ドライバ・バッファはもう一度活動化され、スレーブ側の一致したドライバ・バッファは非活動化される。アクティブ終端（active termination）のため、応答エコーは、追加の一往復後にキャンセルされる。その時間中、スレーブ側のレシーバ・バッファ上の入力はすべて無視される。
【００１４】
本明細書で提案された手法は、２本のワイヤによりインターフェース上のコントローラによる周辺装置（１００・・・１０００）の高いファンアウトの駆動を可能にし、同時に、高いデータ伝送速度を達成することができ、２地点間相互接続は耐障害性および並行保守を可能にする。さらに、データ転送速度はコントローラ内のマスタ・インスタンスによって制御することができ、周辺スレーブでは発振器またはフェーズロックループ（ＰＬＬ）のような追加のコンポーネントは一切不要である。また、伝送ラインのそれぞれの端部でアクティブのドライバを常に１つだけ備えることにより、この実現例は、低抵抗終端バスの利点を保持するが、平均して高い駆動電流を回避しながら、標準電圧レベルでのドライバおよびレシーバ・バッファの使用を可能にする。
【００１５】
高周波数での双方向データ交換のために本明細書に記載した方法は、１本のデータ・ラインのみに限定されず、同じ遅延で並列にしかもこのようなインターフェースのスループットを高めるために加えられたクロックと同期して動作する任意の数の双方向データ・ラインに適用できることは、注目すべきことである。
【００１６】
加えて、提案されたシリアル・インターフェース／バス・プロトコルおよび装置は、広い周波数領域内で任意のコンシューマ・エレクトロニクス（テレビ受像機、セット・トップ・ボックス、ＤＶＤプレーヤ、デジタル・ビデオ・カメラ、デジタル・フォンなど）を含むがそれに限定されない少なくとも２つの時間依存型デジタル端末装置の相互接続を可能にし、装置間の絶対的および相対的ケーブル長とは無関係に、これらの相互接続装置の正確なタイミング調整を可能にする。
【００１７】
さらに、提案されたシリアル・インターフェースおよびこれを操作するための方法は、顕著なクロック速度あるいは顕著なシリアル・バス・ライン長またはその両方を備えた装置を含む前述の環境において基礎となるシリアル・バスの完全自動自己較正も可能にする。
【００１８】
以下の説明では、添付図面を参照して、本発明の追加の特徴および利点が明らかになる好ましい諸実施形態により、本発明についてより詳細に説明する。
【発明を実施するための最良の形態】
【００１９】
図１は、既知のＩ2Ｃシリアル・バス規格の典型的な構造を描写するものである。これは、シリアル・クロック・ライン（ＳＣＬ）１０と、シリアル・データ・ライン（ＳＤＡ）１５から構成される。この例では、２つのＩ2Ｃマスタ２０、２５および２つのＩ2Ｃスレーブ３０、３５がＩ2Ｃバスのクロック・ライン１０およびデータ・ライン１５に接続されている。クロック・ライン１０およびデータ・ライン１５はいずれも、供給電圧５０（＋Ｕ）によって駆動され、２つの高インピーダンス（この例では概してそれぞれ「２．２キロオーム」の範囲内）抵抗４０、４５によりそれぞれ２つの供給ライン５２、５４を介して終端される。図示のＩ2Ｃバスは「マルチドロップ」バスであり、これは、いくつかのマスタ装置とスレーブ装置をバスに接続できることを意味する。
【００２０】
すべての接続装置はオープン・コレクタ・ドライバであるので、高レベル信号を達成するために、図示のＩ2Ｃバス構造はさらに、前記高インピーダンス・プルアップ抵抗４０、４５を有する。したがって、このバスはライン・インピーダンスで終端せず、これは、信号およびクロック周期はデータ・ライン１５に沿った電気パルスの移動時間よりかなり長くなければならないことを意味する。加えて、バスのマルチドロップ・ネットワークは、高速動作で大量の電気反射を生成することになるであろう。
【００２１】
図２には、図１に描写したバス構造内の低インピーダンス・ライン６０上でどのように無反射伝送が達成されるかが示されている。ライン６０は、両方の端末端部に、反射を回避するためにライン・インピーダンスと一致しなければならない抵抗６５、６５’（Ｒ１）および抵抗７０、７０’（Ｒ２）を有する。したがって、このようなライン用のドライバ７５、７５’（バス上でデータを送信するためのもの）および８０、８０’（バスからデータを受信するためのもの）は、ラインのもう一方の端部で適切な電圧の揺れ（voltage swing）を取得するために大電流を駆動しなければならない。これは、標準電圧レベルをサポートするための高電力消費を引き起こすか、または低い閾値の特殊レシーバおよび雑音排除性のための潜在的差動伝送を必要とする。例えば、２Ｖの電圧の揺れで５０オームのラインを駆動するには４０ｍＡの駆動電流を必要とする。これは複数ライン・サポートのために数ワットを増加する（add-up）ことになるであろう。
【００２２】
図３は、本発明によるシリアル・バス・インターフェースの好ましい一実施形態を示し、マスタ（組込みコントローラ機能）１００は例示的に、個別のピアツーピア（２地点間）ライン接続部１１０〜１２０を介して３つのスレーブ（周辺装置１〜ｎ）１２５に接続されている。組込みコントローラ機能１００は、組込みコントローラ機能１００の内部バス・インターフェースに接続するシリアル・マスタ機能１０５を含む。シリアル・マスタ機能１０５は、コントローラ・コアからの読取りまたは書込みアクセスにより、マスタをプログラミングし、周辺装置１２５との間でシリアル・インターフェース１１０、１１５、および１２０の使用によりデータを送受信できるようにする複数のレジスタを含む。
【００２３】
周辺インターフェース（装置）１２５は、シリアル・スレーブ機能１３０と、追加のローカル・レジスタおよびアクタ／センサ・インターフェース１３５とを含む。マスタ機能１０５によって送信されたデータは周辺装置１２５内のこれらのインターフェース上で作用し、これらのインターフェースからの状況情報はマスタからの読取りの使用によりマスタ機能に送信される。各シリアル・インターフェース１１０〜１２０は２本のワイヤからなり、一方は半二重動作モードでデータを伝達し、もう一方は隣接クロックである。すべてのデータは、マスタ機能１０５から供給されるこのクロックに同期して両方向に伝送される。
【００２４】
データ信号保全性を考慮に入れながら、シリアル・バス・システム内の図示の配線１１０〜１２０の適切な物理的レイアウトにより、使用すべきクロック周波数は、ＤＣから高周波数までの広い範囲で調整可能である。周波数の上限は、クロックとデータとの間のスキューおよびランタイム遅延効果によりデータおよびクロック・エッジの同期が取れなくなるような減衰、ならびにチップ・シリコンおよびボード・レイアウト特性により、コントローラとリモート装置との間の距離によって示される。このような上限は５００ＭＨｚの範囲内にすることができ、数メートルまでの距離は低周波数でカバーすることができる。これらのインターフェースがオフカード（off-card）で駆動される場合、インピーダンス整合同軸ケーブルを使用することにより、信号品質を保持することができる。同期設計のため、多種多様な実現例および要件をカバーすることができる。
【００２５】
図４は、組込みコントローラ１００内のマスタ機能１０５と周辺装置１２５内のスレーブ機能１３０との間の信号経路の詳細を示している。
【００２６】
クロック信号は、装置１００上の出力ピンの近くに位置する抵抗２４０とともに、伝送ライン２４５のインピーダンスと整合するコントローラ内部の出力バッファ２０５によって駆動される。クロック信号は入力バッファ２５０によって受信され、この入力バッファは少なくともスレーブ機能１３０に供給し、周辺装置１２５の内部および外部の追加の装置機能を提供することができる。双方向データ信号は、出力バッファ２５５および入力バッファ２６５によってマスタ機能１０５に相互接続される。どちらのバッファも、モジュール１００上に配置された同じピン２２０によってライン・インピーダンス整合抵抗２１５に接続される。出力バッファ２５５は周辺装置１２５へのデータ伝送のために制御信号２２５により使用可能になり、データ・ライン２１０は任意の反射信号パターンのための終端を必要とする。
【００２７】
周辺装置１２５は、次に直列終端抵抗２５０が続くピン２３０に接続する同じ双方向データ入力２７０および出力２６０を提供する。出力バッファ２６０は、スレーブ機能１３０からの制御ライン２３５により使用可能になる。
【００２８】
マスタ機能１０５とスレーブ機能１３０との間でデータを交換するために、定義済みデータ・プロトコルを使用することができる。このようなプロトコルは、好ましい一実施形態では、どのタイプのデータが送信または要求されるかというタグ情報と、スレーブ内の特定のレジスタを選択するためのアドレス情報、ならびにデータ部分とから構成される。また、周辺装置１２５でリセット動作を発行するために、特殊パターンが存在する可能性もある。スレーブから未指定情報または状況情報を要求するために、追加の特殊パターンが存在する可能性もある。マスタは常に、トランザクションのシーケンスを完全に制御している。したがって、マスタは、トランザクションを開始するためにスレーブ１３０にタグを送信する。この配置はデータおよびクロック信号が同期的に処理装置２９０に到着できるようにし、処理装置２９０は非直列化（de-serialize）機能と状態マシンとを含む。この機能およびこの状態マシンの詳細については、図５〜図７に関連して以下により詳細に説明する。
【００２９】
実現されたプロトコルに応じて、処理装置２９０は応答パケットをアセンブルし、それを処理装置２８０に返送するが、処理装置２８０も状態マシンと非直列化機能を含む。受信中に、処理装置２８０は、受信バッファ２６５が全電圧の揺れでライン終端によって低減されない応答を取得できるようにするために要求が送信された後の特定の時間フレームの間、制御ライン２２５によりドライバ２５５を使用不可にする。これは、受信バッファ２６５が周知のトランジスタ・トランジスタ・ロジック（ＴＴＬ）または低電圧トランジスタ・ロジック（ＬＶＴＬ）の標準電圧レベルで動作できるようにする。
【００３０】
クロック周期（逆数周波数（reciprocalfrequency））が信号の往復遅延の範囲内になるかまたはこのような時間以下である場合、遅延素子２７５の追加の機能が作用するようになる。遅延素子２７５は、スレーブからの応答が到着する時間ウィンドウを除き、ラインの連続終端を可能にする。信号反射は、信号生成ドライバ自体からますます分離して発生し、ライン上でエコーとして別々に移動し、インターフェース上で使用するクロック周波数およびライン長に応じてレシーバでひずみを引き起こす可能性があるので、その他の全時間中の終端が必要である。このような影響を克服するための単純な方法は、ラインの少なくとも一方の端部でのアクティブ終端である。クロックおよびデータは常にスレーブ入力で同期しているので、遅延補正またはライン長に依存せずに、スレーブが常にマスタからメッセージを受信し、それをデコードできることを通知することは、価値のあることである。
【００３１】
図５〜図７は、マスタ側２８０とスレーブ側２９０の２つの処理装置に関して伝送ライン２１０上のデータ・パターンの関係を示している。
【００３２】
図５には、図４に描写した伝送ライン上でどのようにデータ・パケットが伝送されるかがタイミング図により示されている。同図の上部には、図４に描写したドライバ２２５および２３５の対応するドライバ状態とともに、マスタによって送受信されるデータ・パケットが示されている。下部には、図３に示したスレーブ（周辺装置）１２５のうちの１つに関する対応するバス・インターフェース状態が示されている。
【００３３】
同図の上部に描写したパラメータ「ＴＭｄｅｌａｙ」は、応答受信ウィンドウに関するマスタ側のプログラム可能遅延（図４に描写した処理装置２７５に含まれるもの）である。換言すれば、本発明によるこのパラメータは、マスタ側に到着する応答パケットを完全に受信できるマスタのアクティブ応答状態を調整するために使用される。それに対応して、もう１つのパラメータ「ＴＳｄｅｌａｙ」は、応答を送信するためのスレーブのプログラム可能遅延（図４に描写した処理装置２９５に含まれるもの）であり、これは、マスタから到着したデータ・パケットに応答してデータ・パケットを送信するためにスレーブ（複数も可）の側で時間ウィンドウを調整するために使用される。
【００３４】
図５からより詳細に分かるように、処理装置２８０に含まれる前述の状態マシンは、スレーブからの応答が期待される定義済み間隔Ｔ＿ｒｅｃ５１５を除き、データ・パターンを送信するかどうかとは無関係に、制御信号２２５の使用により、その時間の大部分、ドライバ・バッファ２５５をアクティブ（「ハイ」状態）に保持する。このメカニズムは、非終端遠端のピン２３０で反射されたマスタ機能１０５から送信された要求パケット５００の要求エコー５０５が、直列抵抗２１５および活動化バッファ２５５の組合せにより、近端で終端されることを保証する。要求エコー５０５に関する移動時間は、Ｔ２ｌを評価するものであり、マスタ機能１０５とスレーブ機能１３０との間のワイヤ長ｌの距離ならびに伝送媒体の電気特性によって定義される。
【００３５】
スレーブ機能１３０は、時間Ｔｌ後に要求パケット５００を５２５で受信し、装置２９０の何らかの処理時間「Ｔ＿ｐｒｏｃ」を追加し、プログラム可能遅延素子２９５によって遅延された応答パケット５３０を送信する。応答パケット５３０は、Ｔｌという追加の移動遅延後に５１０でマスタに到着する。その時点で、要求エコー５０５はすでに終端されており、もはやデータ伝送を妨害しない。
【００３６】
応答パケット５３０の受信５１０中に、マスタ側のバッファ２５５はトライステートであり、処理装置２８０は入力モードで動作する。マスタがこのような入力の準備をし、ドライバ・バッファ２５５を使用不可にしなければならない正確な時点は信号移動時間Ｔｌに依存するので、処理装置２８０によって駆動されたドライバ使用可能信号２２５を調整するために測定方法が必要である。処理装置２８０は、応答パケット５３０が５１０でマスタに到着する時点まで正確にトライステート・ウィンドウＴ＿ｒｅｃを移動するプログラム可能遅延素子２７５を実現する。応答パケット５３０が５１０で受信された後、ドライバ・バッファ２５５はもう一度活動化され、スレーブ側のドライバ・バッファ２６０は非活動化される。ピン２２０におけるアクティブ終端のため、追加の時間Ｔｌ後に５２０でマスタに到着する応答パケット５３０の応答エコー５３５は、追加の一往復後にキャンセルされる。その時間中、スレーブ１２５のレシーバ・バッファ２７０上の入力はすべて無視される。
【００３７】
遅延調整のための方法
図６は、前述の遅延調整中の電気条件をより詳細に示している。調整ステップ中に、パラメータ「ＴＭｄｅｌａｙ」はまず、要求パケットのいずれかのエコーが終端されることを保証するように最大値に設定される。したがって、パラメータ「ＴＳｄｅｌａｙ」も、マスタによって送信されるデータ・パケットがスレーブ側で完全に受信できるようにするために最大値に設定される。「ＴＳｄｅｌａｙ」の最大値は「ＴＭｄｅｌａｙ」と等しいかまたはそれを超えることができ、いずれの最大値も信号の往復時間を超える遅延を可能にしなければならない。
【００３８】
調整フェーズ中に、マスタから適切な情報を送信することにより、スレーブ内のパラメータ「ＴＳｄｅｌａｙ」を段階的に減分することにより、応答パケット５３０がマスタの受信ウィンドウに連続的に近づく。
【００３９】
マスタ機能１０５およびスレーブ機能１３０内の正確な遅延を設定するために適用されるこの方法が本発明の一部であることが強調される。この方法は、シリアル・インターフェースのクロック周期が信号Ｔｌの移動時間の範囲内であるかまたはそれより短く、信号反射によって引き起こされる重大なエコーがピン２２０および２３０で発生する場合に必要である。これらのエコーの遅延はライン２１０および２４５のライン長ｌならびに伝送ラインの誘電特性に依存するので、計算推奨を示すのではなく、マスタ１０５上の受信ウィンドウを調整するために、経験的方法が使用される。
【００４０】
受信ウィンドウを正確な遅延に設定するためのスキャンを開始するために、マスタ機能内の遅延装置２７５およびスレーブ内の遅延２９５はいずれも前述の最大遅延に設定されるが、この最大遅延はエコーＴ２ｌに関する往復時間を超える範囲内でなければならない。それにより、遅延２９５は、遅延２７５に等しいかまたはそれより大きくなければならない。概して、どちらの遅延もスレーブに伝送されるクロックのクロック・サイクルの倍数として示される。次にマスタは、スレーブから短い応答を要求し始め、その受信ウィンドウＴ＿ｒｅｃ中にスレーブからの応答をモニターする。各応答後、スレーブ機能１３０内の遅延２９５は、マスタから送信された適切なコマンドによって減分される。受信ウィンドウＴ＿ｒｅｃについて設定された時間的な位置が、応答Ｔｌに関する移動時間に、遅延素子２９５内で設定された実際の遅延を加えたものに等しい場合、２つの遅延装置２７５および２９５の正確な調整が見つかり、マスタは有効な応答を取得する。この設定は、両方の遅延装置からクロック・サイクル数単位で同じ遅延を引くことにより、応答において最小遅延になるよう最適化することができる。
【００４１】
他の一実施形態では、遅延装置２９５は、１クロック・サイクルのうちのプログラム可能な数のサブサイクル遅延を追加するための能力も含むことができる。これらのサブサイクルは、遅延装置２９５内に構築された遅延連鎖から生成することができる。このような特徴は、マスタ側のデータ遷移をローカル・クロック基準に調整するのに役に立つ。この調整に関するもう１つの解決策は、マスタ側で受信されたデータ・ストリームのオーバサンプリングおよびクロック・ドメインに対する再同期である。この場合、スレーブ側ではサブサイクル遅延機能は一切不要である。
【００４２】
遅延調整を見つけるための上記の方法として、増加させるための短い遅延ではなく、減少される大きい遅延から始めなければならないことは、注目すべきことである。エコーはまずＴ＿ｒｅｃウィンドウで検出され、遅延に関する間違った設定を送達するので、後者の手順は問題を引き起こすことになる。
【００４３】
図８は、単一スレーブ（すなわち、周辺装置１つのみ）環境の場合に前述の遅延調整のために必要な手順ステップをより詳細に例示するための流れ図を示している。図示のルーチンはステップ６００から始まり、そこでマスタの遅延パラメータ「ＴＭｄｅｌａｙ」が経験的に事前決定された最大値ＴＭｄｅｌａｙ＿ｍａｘに設定される。次のステップ６０５では、それに応じてスレーブの遅延パラメータ「ＴＳｄｅｌａｙ」が同様に経験的に事前決定された最大値ＴＳｄｅｌａｙ＿ｍａｘに設定される。上記のように２つの遅延パラメータを初期設定した後、次のステップ６１０では、マスタは特定のメッセージ（データ・パケット）をスレーブに送信する。この後、上述の経験的に事前決定された応答ウィンドウＴｒｅｃ内で、ステップ６１５で、マスタが待ち状態に切り替わり、そこでスレーブから応答パケットを完全に受信することができる。換言すれば、スレーブによってマスタに送信された応答パケットは、そのパケットが時間ウィンドウＴｒｅｃ内にマスタに到着した場合にのみマスタによって受信されることになる。２つのステップ６１０および６１５は既知の「ポーリング」アルゴリズムと見なすことができることは、注目すべきことである。
【００４４】
６１０でデータ・パケットをスレーブに送信した後、マスタは６２０で、任意の有効な応答パケットをスレーブから受信したかどうかをチェックする。有効性とは、受信したパケットが時間ウィンドウＴｒｅｃ内で完全に受信されていないために損傷を受けたり不完全になったりしていないことを意味する。マスタが有効な応答パケットを受信しなかった場合、パラメータ「ＴＳｄｅｌａｙ」は６２５で、特定の経験的に事前決定された量だけ減分され、次に手順はステップ６１０にジャンプして戻り、他のデータ・パケットをもう一度スレーブに送信する。図示のループ６１０〜６２０は、有効な応答パケットがマスタによって一切受信されない限り、繰り返される。
【００４５】
マスタが有効な応答パケットをスレーブから受信したことがチェック６２０で明らかになった場合、すなわち、パラメータ「ＴＳｄｅｌａｙ」の現行値が、マスタがスレーブから応答パケットを受信できるようにするために適切なものである場合、ステップ６３０に継続し、そこでマスタの遅延パラメータ「ＴＭｄｅｌａｙ」がパラメータ「ＴＳｄｅｌａｙ」の現行値分だけ減少し、換言すれば、その差（ＴＭｄｅｌａｙ−ＴＳｄｅｌａｙ）に設定される。スレーブ側のタイミング要件も満足するために、パラメータ「ＴＳｄｅｌａｙ」はステップ６３５で、マスタとスレーブとの間の有効な相対遅延を保持するためにゼロに設定される。換言すれば、前述の通り、マスタとスレーブとの間の相対遅延のみが関心事なので、ステップ６３０および６３５はオフセット除去またはオフセット減算を定義するだけである。
【００４６】
複数ラインの多重化
次に図７を参照すると、異なるライン長を備えた２つの異なるスレーブがマスタによって供応される多重アプリケーションに関する電気条件がより詳細に示されている。マスタは常に、同じ時間遅延「ＴＭｄｅｌａｙ」で、すなわち、要求送信後に、「スレーブ１」または「スレーブ２」から応答を受信する。そのライン長Ｌ１は第２のスレーブのＬ２より短いので、「スレーブ１」は「スレーブ２」と比較してより高い遅延値「ＴＳｄｅｌａｙ１」にプログラミングされる。「スレーブ２」はより短い遅延値「ＴＳｄｅｌａｙ２」にプログラミングされる。最長ライン長を備えたスレーブはＴＳｄｅｌａｙ＝０に設定することができ、他の各スレーブでは、マスタへのより短い相互接続Ｌｘを人為的に延長し、最長ライン相互接続でスレーブと比較して同じ遅延で応答を提供するように、特定の遅延＞０がプログラミングされる。この実現例は、各スレーブ内の遅延素子２９５を活用するだけであり、マスタに関する追加のリソース要件が一切ないので、この方法は、１つのマスタによって多重化された任意の数のスレーブの実現を可能にする。
【００４７】
前述の調整メカニズムは、１つのマスタ機能１０５と周辺装置１２５内の１つのスレーブ機能１３０との間のシリアル・プロトコルを駆動するために正確な遅延の調整を可能にするものである。図３に図示した通り、本発明の第２の部分は、各リンクが異なる長さを有する可能性があり、したがって、マスタと種々の周辺装置との間の信号Ｔｌの移動時間が変動する場合に、複数のシリアル・リンク１１０〜１２０を多重化して駆動するためのマスタの能力である。上述の遅延調整方法は、各スレーブ内の遅延を具体的にプログラミングすることにより、各個別ライン１１０〜１２０に関する調整を見つけることを可能にする。また、応答パケットと受信ウィンドウＴ＿ｒｅｃを同じ時点で位置決めする装置２７５および２９５内の任意の遅延セットの間、データ交換が機能することも示されていた。したがって、特定のラインについて装置２７５および２９５内で必要な最小遅延より高い遅延を選択することは、より長いライン２１０と同等である。これを複数リンクに関する調整に適用すると、最大距離を備えたこのリンクを見つけ、このようなリンクに関する遅延で受信ウィンドウＴ＿ｒｅｃを処理しなければならない。次に、他の周辺装置内の他の遅延をすべて再計算し、受信ウィンドウＴ＿ｒｅｃの新しい位置に調整することができる。この結果として、任意のスレーブと通信するためにドライバ・バッファ２２５を制御する遅延に関してマスタ内でまったく同じ設定が得られ、異なるデータ・ラインに切り替えるだけでマスタ内のマルチプレクサ機能の非常に単純な実現例が可能になる。
【００４８】
さらに、特定のブロードキャスト機能をすべての周辺装置に同時に適用することができ、これはすべての周辺装置からの同期応答を同時に送達し、その応答の活用を単純化することにもなる。たとえば、プラグ検出またはアライブ情報は、すべてのスレーブからの同期応答とともにマスタによって要求することができる。このような情報ポーリングに関する応答は周期的に実行することができ、スレーブからの追加の状況情報、たとえば、スレーブの割込み情報と組み合わせることができる。
【００４９】
図８と同様に、図９では、複数スレーブ（すなわち、少なくとも２つの周辺装置）環境の場合に前述の遅延調整のために必要な手順ステップが流れ図によりより詳細に例示されている。図示のルーチンはステップ７００から始まる。ステップ７０２では、整変数ｎが値ゼロで初期設定される。この整変数は、複数スレーブ環境の各スレーブにスレーブ番号を割り当てるために以下の手順で使用される。ステップ７０３では、整変数ｎは「１」だけ増分され、次のステップ７０５では、単一スレーブ環境で実行されたすべての手順ステップ６００〜６３５が所与のスレーブｎについて実施される。上述の通り、前述のステップ６００〜６３５の結果はマスタの遅延パラメータ「ＴＭｄｅｌａｙ」の調整済みの値である。したがって、ステップ７１０では、各スレーブｎについて対応する「ＴＭｄｅｌａｙ」の値が挿入されるテーブルが生成される。チェック・ステップ７１５により、基礎となる複数スレーブ環境のすべてのスレーブについてステップ６００〜６３５が実行される。
【００５０】
７１０でスレーブ番号１〜ｎ（ｎ＞１）を備えたすべてのスレーブに関するテーブルを生成した後、ステップ７２０では、マスタの遅延パラメータ「ＴＭｄｅｌａｙ」は、７１０で生成されたテーブルの右側の欄に含まれるすべてのＴＭｄｅｌａｙ値のうちの最大値に設定される。加えて、ステップ７２５では、すべてのスレーブの遅延パラメータ「ＴＳｄｅｌａｙ」の値は、ステップ７２０で設定されたパラメータ「ＴＭｄｅｌａｙ」の最大値と、あるスレーブ番号を備えた基礎となるスレーブに関するテーブル７１０に含まれる「ＴＭｄｅｌａｙ」の値という２つの値の差（Δ）の値によって調整される。最後の２つのステップ７２０および７２５の組合せにより、遅延パラメータ「ＴＭｄｅｌａｙ」および「ＴＳｄｅｌａｙ」の最終値が、すべてのスレーブの潜在的に異なるラインおよびクロック要件（それぞれの異なるクロック速度、ケーブル長などを含む）と互換性があることが保証される。
【図面の簡単な説明】
【００５１】
【図１】既知のＩ2Ｃシリアル・バス規格のバス構造および配線の概略図である。
【図２】従来技術のシリアル・バス・システムの欠点を例示するための図１のシリアル・バス構造のより単純な図である。
【図３】シリアル・バス・インターフェースを介して複数の周辺装置に接続する本発明による組込みコントローラ機能の概略ブロック図である。
【図４】図３に示した組込みコントローラと周辺装置のスレーブ機能との間の信号経路の詳細を示す図である。
【図５】マスタ側とスレーブ側の２つの処理装置に関して図４に描写した伝送ライン上のデータ・パターンの関係を示す図である。
【図６】マスタ側とスレーブ側の２つの処理装置に関して図４に描写した伝送ライン上のデータ・パターンの関係を示す図である。
【図７】マスタ側とスレーブ側の２つの処理装置に関して図４に描写した伝送ライン上のデータ・パターンの関係を示す図である。
【図８】本発明による時間遅延調整のための方法を例示するための流れ図である。
【図９】本発明による時間遅延調整のための方法を例示するための流れ図である。
【図１】
2006527549.tif 000003
【図２】
2006527549.tif 000004
【図３】
2006527549.tif 000005
【図４】
2006527549.tif 000006
【図５】
2006527549.tif 000007
【図６】
2006527549.tif 000008
【図７】
2006527549.tif 000009
【図８】
2006527549.tif 000010
【図９】
2006527549.tif 000011
【国際調査報告】
2006527549.tif 000012
2006527549.tif 000013
2006527549.tif 000014
2006527549.tif 000015