(57)【要約】  非同期シリアルインターフェースを介して通信する送信器と受信器と間のクロック同期化の改善に関するシステム及び方法が開示される。リングトポロジー（１３０）において、マスターデバイス（１０５）が双周波数符号化ビットストリームを用いて通信する複数のスレーブ（Ｓ１〜Ｓ３）に接続される。ホストデバイスが非ゼロ復帰データ符号化を用いてマスターデバイスと通信する。各スレーブは、マスターからデータを受信し、マスターが特定データに関する要件を示さない限りこのデータをリング内の次のスレーブに送信し、リング周辺で０の値と共にプレースホルダービットを伝送する。特定のスレーブが、プレースホルダービットを反転することによりマスターに返送されるべき情報でプレースホルダービットを「フィルインする」ことができる。受信デバイスと送信デバイスの間のクロック同期化は、システムクロックからデータサンプリングクロックを生成するために分数レート乗算器を用いることにより改善される。分母を調節することにより、サンプリングクロックは、送信デバイスから受信される非同期シリアルデータストリームのボーレートに一致するように同調され得る。説明される実施形態はパワー管理、データ取得（ＤＡＱ）等を含む。
2014519752.tif 000002
【特許請求の範囲】
【請求項１】
改善された非同期シリアル通信のための方法であって、
受信デバイスで、トランスミッタから所定のビットストリームを受信すること、
前記所定のビットストリームの間システムクロックのサイクル数をカウントすること、
分子及び分母を有する分数レート乗算器を生成することであって、前記分母がシステムクロックサイクルの前記カウントされた数に基づくこと、
前記分数レート乗算器を前記システムクロックに適用することによって、オーバーサンプリングクロックを生成すること、及び
前記オーバーサンプリングクロックを用いて受信されるデータビットシーケンスをサンプリングすること、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、非ゼロ復帰（ＮＲＺ）符号化を用いて前記ビットストリームを符号化すること、及び、ユニバーサル非同期レシーバ／トランスミッタ（ＵＡＲＴ）プロトコルを介して通信することを更に含む、方法。
【請求項３】
請求項１に記載の方法であって、連続双周波数符号化を用いて前記ビットストリームを符号化することを更に含む、方法。
【請求項４】
請求項３に記載の方法であって、リングネットワークにおいて複数の受信デバイスと前記トランスミッタとを接続することを更に含み、前記受信デバイスがスレーブと指定される、方法。
【請求項５】
請求項４に記載の方法であって、
前記ビットシーケンスがスレーブにアドレス指定されていること、及び、前記トランスミッタが前記スレーブからのデータの戻しを要求していることを判別するために、前記ビットシーケンスをパースすること、
ビット時間の途中に前記ビットシーケンスを反転させることによって、前記ビットシーケンス内の複数のプレースホルダービットのうちの１つにフィルイン（ｆｉｌｌ  ｉｎ）すること、及び、
前記反転されたビットシーケンスを前記リングネットワーク上の後続のスレーブに転送すること、
を更に含む、方法。
【請求項６】
請求項１に記載の方法であって、マスタークロック上のプリスケーリング分周器を用いることによって前記システムを生成することを更に含む、方法。
【請求項７】
請求項１に記載の方法であって、一定の分子を設定すること、及び、前記分母を調節することによって前記データサンプリングクロックを同調することを更に含む、方法。
【請求項８】
請求項１に記載の方法であって、前記受信されるデータビットシーケンスが、バッテリ管理システム内の複数のセルに関する電圧及び温度情報を含み、前記方法が、更なる診断のために前記ビットシーケンスをホストコントローラに伝送することを更に含む、方法。
【請求項９】
請求項１に記載の方法であって、前記所定のビットシーケンスがスタートビット及びストップビットを含み、前記方法が、前記所定のビットシーケンスの前記スタートビットの受信に応答して、前記システムクロックの数をカウントすることを更に含む、方法。
【請求項１０】
リングネットワークにおけるシリアル通信のための方法であって、
スレーブデバイスで、前記リングネットワーク上のマスターデバイスからビットシーケンスを受信することであって、前記ビットシーケンスが双周波数符号化を用いて符号化されること、
オーバーサンプリングクロックを、前記受信されるビットシーケンスのボーレートに同期させること、
前記ビットシーケンスが前記スレーブデバイスにアドレス指定されていること、及び、前記マスターデバイスが前記スレーブからのデータの戻しを要求していることを判別するために、前記ビットシーケンスをパースすること、
ビット時間の途中に前記ビットシーケンスを反転させることによって、前記ビットシーケンス内の複数のプレースホルダービットのうちの１つにフィルインすること、及び、
前記反転されたビットシーケンスを前記リングネットワーク上の後続のスレーブに転送すること、
を含み、
前記ビットシーケンス内の各ビットの開始が、前記マスターデバイスが１回目に０を表すように、２回目に１を表すように前記ビットシーケンスを反転することによってシグナリングされる、
方法。
【請求項１１】
請求項１０に記載の方法であって、前記マスターデバイスが応答を必要としないことを判別すること、及び、前記ビットシーケンスを次のスレーブデバイスに未変更で転送することを更に含む、方法。
【請求項１２】
請求項１０に記載の方法であって、前記オーバーサンプリングクロックを同期化することが、
所定のビットシーケンスにわたりシステムクロックサイクルの数をカウントすることによって、システムクロックと伝送されるビットシーケンスの前記ボーレートとの間の差を監視すること、
固定分子及び可変分母を有する分数レート乗算器を生成することであって、前記分母が前記システムクロックサイクルのカウントされた数に等しいこと、
前記システムクロックを前記分子対前記分母の比で乗算することによって、前記オーバーサンプリングクロックを生成すること、及び、
前記オーバーサンプリングクロックを用いて前記トランスミッタからデータビットシーケンスをサンプリングすること、
を更に含む、方法。
【請求項１３】
リングネットワークにおけるシリアル通信のためのシステムであって、
マスターデバイスと、
前記リングネットワークを形成する前記マスターデバイスに接続される複数のスレーブデバイスと、
前記マスターデバイスと外部ホストデバイスとの間のインターフェースと、
ビットストリームを生成し、前記リングネットワークにわたってビットシーケンスを伝送するための、前記マスターデバイス上のロジックであって、前記ビットストリームがデータのリードバックのための１つ又は複数のプレースホルダービットを含む、前記ロジックと、
宛先アドレスを決定するために前記ビットストリームをパースするため、及び、前記ビットストリーム内で要求された任意のリードバックデータを付加するための、第１のスレーブデバイス上のロジックと、
を含む、システム。
【請求項１４】
請求項１３に記載のシステムであって、前記第１のスレーブデバイス上の前記ロジックが、
前記ビットストリームが前記第１のスレーブデバイスにアドレス指定されていることを判別するために、前記ビットストリームをパースするため、
予め定義されたビット時間の途中に前記ビットストリームを反転させることにより、前記複数のプレースホルダービットのうちの１つを変更することによって、前記ビットストリームにリードバックデータを付加するため、及び、
前記反転されたビットストリームを、前記リングネットワーク上の前記複数のスレーブデバイスのうちの１つに転送するため、
のロジックである、システム。
【請求項１５】
請求項１４に記載のシステムであって、前記インターフェースを介して前記マスターデバイスと通信するホストデバイスを更に含む、システム。
【請求項１６】
請求項１５に記載のシステムであって、前記スレーブデバイスがセルに結合され、前記リードバックデータが前記セルに関する電圧及び温度を含み、前記ホストデバイスがバッテリ管理システム内のコントローラである、システム。
【請求項１７】
請求項１６に記載のシステムであって、
前記ホストデバイスからの所定のビットシーケンスの受信の間システムクロックサイクルの数をカウントするため、
分子及び分母を有する分数レート乗算器を生成するため、
前記分数レート乗算器を前記システムクロックに適用することによってオーバーサンプリングクロックを生成するため、及び
前記データサンプリングクロックを用いて前記ホストデバイスからデータビットシーケンスをサンプリングするための、
前記インターフェース上のロジックを更に含み、
前記所定のビットシーケンスが、スタートビット及びストップビットを有し、非ゼロ復帰（ＮＲＺ）符号化を用いて符号化され、
前記分母がシステムクロックサイクルの前記カウントされた数に基づいている、
システム。
【請求項１８】
請求項１３に記載のシステムであって、
前記ホストデバイスからの所定のビットシーケンスの受信の間システムクロックサイクルの数をカウントするため、
分子及び分母を有する分数レート乗算器を生成するため、
前記分数レート乗算器を前記システムクロックに適用することによってオーバーサンプリングクロックを生成するため、及び
前記データサンプリングクロックを用いて前記ホストデバイスからデータビットシーケンスをサンプリングするための、
前記インターフェース上のロジックを更に含み、
前記分母がシステムクロックサイクルの前記カウントされた数に基づいている、
システム。
【請求項１９】
請求項１３に記載のシステムであって、前記ビットシーケンスを反転させるために前記第１のスレーブデバイスに結合されるＸ−ＯＲゲートを更に含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は通信ネットワークに関し、特に、非同期シリアルデータネットワーク内の要素の同期化の改善に関する。
【背景技術】
【０００２】
データ通信において、データ転送のための形式にはシリアル及びパラレルの２つの明確な形式がある。シリアルデータ転送では、データは一度に１つのシンボルが、例えば有線、光ファイバ、又はワイヤレス接続などの、単一の通信チャネル又はリンクを介して転送される。パラレルデータ転送では、複数のシンボルが、対応する複数のチャネルを介して同時に転送される。データは、通常、バイナリ形式で表され、シンボルは、１又はゼロなどの１つ又は複数のバイナリデータビットを符号化し得る。
【０００３】
パラレル通信に勝るシリアル通信の利点の１つは、送受信回路、印刷回路基板領域、集積回路ピン、コネクタ、及びケーブルなどの、実装する物理リソースが、シリアルインターフェースの方が少ないことである。手短に言えば、シリアルインターフェースは、低コストで、コンパクトで、ポータブルなシステムを実装するために有利である。例えば、バッテリ管理システムは、直列に接続された多数のリチウムイオンバッテリセルを含むものがある。これらのシステムにおいて、３〜４ボルト（Ｖ）の何百個ものセルが、最高８００Ｖ又はそれ以上のバッテリパックに直列に接続され得る。これらのバッテリ管理システムは、ハイブリッド電気自動車、バス、ゴルフカート、フォークリフト、モーターボートなどの、いくつかの応用例で用いられる。
【０００４】
ユニバーサル非同期レシーバ／トランスミッタ（ＵＡＲＴ）は、シリアルインターフェースを実装するデバイスの一例である。ＵＡＲＴは、現代のコンピューティング及び通信において至ることころにあり、当分野では長い歴史を有する。ＵＡＲＴの或る標準的な実装は、ＲＳ−２３２トランシーバに見られる。ＲＳ−２３２規格は、米国電子工業会（ＥＩＡ）によって最初にリリースされた１９６０年代にはじまる。本規格は、より高いデータレートを取り入れ、互換性のギャップを埋めながら、経時的に発展してきた。ＲＳ−２３２規格の最新版は、１９９７年１０月付けのＥＴＡ／ＴＩＡ−２３２−Ｆである。プロトコルは、これらの通信を妥当なコストで処理する複雑さを含む集積回路（ＩＣ）の可用性から恩恵を受けた。
【０００５】
ＵＡＲＴは、１つはデータの送信用１つはデータの受信用という２つのシリアルチャネルを備え、全二重で動作する。ＵＡＲＴプロトコルデータはシンボル当たり１ビットのフレームで伝送され、データは非ゼロ復帰（ＮＲＺ）符号化を用いてバイナリ形式で表される。典型的なＵＡＲＴフレームは、スタートビット、８データビット、及びストップビットを含む。その他の変形（付加的ストップビット、より少ないデータビット、初歩的な誤り検出用のパリティビットなど）も可能である。ＲＳ−２３２バスドライバは反転並びにレベルシフトするため、ロジック１はバス上の負電圧であり、ロジック０は正電圧である。
【０００６】
ＵＡＲＴは、通常はクロック動作ロジック又は同期ロジックを用いて構成される。「非同期」という用語は、クロック信号がインターフェースプロトコルの一部として伝送されないことから生じている。実際に、送信及び受信ＵＡＲＴのクロックは、異なる位相及び周波数を有し得る。したがって、２つのＵＡＲＴが通信するとき、トランスミッタ及びレシーバの両方が、ボーレートとも呼ばれるシンボルレートについて、あらかじめ一致しなければならない。受信ＵＡＲＴは、スタートビット及びストップビットを監視することによって、データフレームの制限を認識し、所定のボーレートに基づいて各ビットに最適なデータサンプリングポイントを決定する。
【０００７】
ＵＡＲＴレシーバは、一般に、オーバーサンプリングクロックを用いてそれら自体をデータフレームに同期させる。例えば、ＵＡＲＴはボーレートの１６倍のサンプルクロックを用い得る。新しいフレームが、スタートビット開始時に立ち下がりエッジによって認識される。ＵＡＲＴは、この立ち下がりエッジでカウンタをリセットし、スタートビットの中間が８クロックサイクル後に発生すること、及び、その後、各後続ビットの中間ポイントが１６クロックサイクルごとに現れることを予期する。ビットは中間ポイントにおいてサンプリングされる。別の方法は、単に中間ポイント（１６サイクルのうちのサイクル８）で１回ではなく、中間ポイントの前後のサイクルでも（１６サイクルのうちのサイクル７、８、及び９）、各ビットをサンプリングすることを含む。サンプルに３票決議（vote-of-three）が適用されることによって、いずれか１つのサンプルを損なうノイズによって生じるデータ誤りが回避される。
【０００８】
トランスミッタ及びレシーバクロックの周波数安定性は、データの正確な転送を試みる際の問題である。受信及び送信ＵＡＲＴクロック周波数が違い過ぎると、データ誤りが生じる可能性がある。データフレームのタイミングは送信ＵＡＲＴのクロックに基づいている。受信ＵＡＲＴは、スタートビットの検出に基づいてフレームに同期する。フレーム内の残りのビットがサンプリングされるにつれて、トランスミッタとレシーバとの間に周波数の不一致があれば累積され、ビットのサンプリングポイントは実際の中間ポイントから外れることになる。この偏差がビットの有効データウィンドウの境界を超え、ビットのサンプリングが早すぎるか又は遅すぎる場合に、データ誤りが生じる。これは、長い容量性ＲＳ−２３２バスによって引き起こされるような、有限（及び通常は低速）伝送の立ち上がり及び立ち下がり時間により、有効データウィンドウが縮小されるという事実によって悪化する可能性があるため、レベルが定まった中間ポイント近くまでサンプリングすることが更に重要となる。クロック周波数許容差は、一般にパーセンテージで記述される。例えば、通常のシナリオにおけるトランスミッタとレシーバとの間の周波数不一致は約３〜４％を超えてはならず、正確な許容差は、ビットに対する有効データウィンドウのオーバーサンプリング周波数及びサイズに依存する。この不一致を超えると、スタートビットとの初期の同期化後のデータサンプリングポイントの累積ドリフトにつながり、結果として、ビット遷移の未定義領域の間サンプリング或いは誤ビットのサンプリングなどの、サンプリング誤りが生じる可能性がある。
【０００９】
送信クロックと受信クロックを一致させるために水晶発振器が用いられてきたが、これらは、コスト重視の適用例には費用がかかり過ぎ、低電力の適用例には電力を消費し過ぎる可能性がある。ＲＣ発振器は、埋め込み型回路で一般に見られる選択肢であるが、プロセス、電圧、及び温度の変動、すなわち、条件の変化に応じた周波数変化、に敏感である。これらの影響を補償するには、より大きくより高い電流回路の設計と時間のかかるデバイストリミングが必要であるが、これらはすべて望ましくない。例えば、前述のバッテリ管理システムにおいて、リチウムイオンバッテリセルが揮発性であるため、セルの電圧及び温度を注意深く監視する必要がある。特に充電及び放電の間、監視及び制御により、過剰電圧（過充電）、過小電圧（過放電）、並びに、高温及び低温条件が回避される。この責務に対処するために、特別なバッテリ管理集積回路（ＩＣ）が開発されている。これらのデータ取得デバイスは、セルの電圧及び温度を監視するための入力、並びにこれらの量をアナログ形式からデジタル形式に変換するための回路を含む。各セルの電圧及び各セル（又はセルの小グループ）の温度を個々に監視しなければならないため、１つのデバイスを何百ものセルを監視するように構築するのは実用的ではない。このデバイスは大きくなり過ぎる（ピンが多すぎる）ことになり、システム内の高電圧が、このデバイスを一般に利用可能なシリコン技術で構築することを妨げる。加えて、バッテリパックの物理的寸法は、すべてのセルの配線を単一デバイスに戻さなければならない場合、ロングワイヤ輻輳配線を必要とし得る。
【００１０】
ＵＡＲＴは、様々なボーレートで動作するように設計され得る。ロジック設計を簡略化するために異なる各ボーレートについて同数のビット当たりサンプルを維持すること、及び、ボーレートに比例したサンプルノイズに対する耐性のスケーリングを提供することが望ましい。これは通常、最高ボーレートよりも大きな周波数でＵＡＲＴにシステムクロックを提供すること、及び、望ましいサンプリングクロック周波数を生成するために整数分周器を用いることによって達成される。表１は、１６倍オーバーサンプリングクロックを生成するために８．１９２ＭＨｚシステムクロックが用いられると想定した、異なるボーレートについての本方法を示す。９６００ビット／秒のボーレートの場合、理想的なサンプリングクロックは９６００×１６＝１５３．６ｋＨｚとなる。しかしながら整数分周器を用いると、生成され得る最も近い周波数は１５４．５６６ｋＨｚである。これは、信頼できるデータ伝送として許容し得る０．６２９％の誤りを表す。
【表１】
2014519752.tif 000003
【００１１】
表１を更に考察すると、ボーレートが上昇するにつれてサンプリングクロック誤りが増加することがわかる。３８４００ｂｐｓについての誤り（２．５６％）は辛うじて許容し得るが、７６８００ｂｐｓについての誤りは明らかに許容できず、結果としてデータサンプリング誤りとなり得る。更にこの誤りは、温度変動などによるシステムクロックの付加的ドリフトの主因ではない。また、トランスミッタ内のクロックのいかなる誤りの主因でもない。
【００１２】
非同期シリアル通信におけるクロック不一致の影響を緩和するために用いられ得る方法の１つは、ＮＲＺ符号化ではなく連続双周波数（bi-frequency）符号化などの、代替信号方式を含む。ＮＲＺ符号化とは異なり、連続双周波数符号化は、あらゆるビットのスタート時に信号遷移を提供する。ゼロ及び１データビットは、ビット時間の途中に第２の遷移が存在するかどうかによって区別される。例えば、ゼロは、ビット時間開始時に単一の遷移があり、ビット時間の残りには付加的遷移がないことによって特徴付けられる。これに対して１は、ビット時間開始時に第１の遷移があり、ビット時間の途中に第２の遷移があることによって特徴付けられる。
【００１３】
連続双周波数符号化は、受信デバイスがスタートビットのみではなく各ビットの開始に同期することができるため、より大きなクロック周波数不一致に寛容である。実際のところ、従来のＵＡＲＴプロトコルにおけるスタートビット及びストップビットは、もはや不要である。各ビットが同期されるため、後続の各ビットが受信されても誤りは累積せず、１６倍のオーバーサンプリングを用いる場合、２０％を超えるクロック周波数の不一致が許容され得る。しかしながら、許容差は改善されるものの、さらなる改善が求められる。
【００１４】
非同期シリアルインターフェースは一般に、リングネットワークなどの様々なネットワークトポロジーにおいてノードを接続するために用いられる。リングネットワークは、ノードが閉ループで接続されるネットワークトポロジーである。各ノードは、任意の特定のノードから始まり、他のすべてのノードを通る経路をトラバースし、開始ノードに戻るように、厳密に２つの他のノードに接続される。各ノードは、システム又はデバイスを表す接続ポイントであり、リング内のデバイスはノード間の接続を介して互いに通信する。中間ノードは、隣接しないノードがリング周辺で互いに通信可能となるように、それらの隣接ノード間でデータを渡すことが可能である。ネットワークの異なるノード内の通信回路は、通常は共通クロックを共有せず、すなわち非同期である。
【００１５】
同期されていないクロックの問題を克服するために、デバイス間のシリアル通信のための改良されたシステム及び方法が求められており、これはリングネットワークなどの様々なトポロジーの通信ネットワーク内で適用可能である。
【発明の概要】
【００１６】
本発明は、非同期シリアルインターフェースを介して通信する送信デバイスと受信デバイスとの間のクロックの許容される周波数許容差を改善するためのシステム及び方法を提供することにより上記の問題に対処し、更に、リングネットワークなどのネットワークトポロジーにおいてこれらの改善を可能にする。
【００１７】
システムの一実施形態は、非同期シリアルインターフェースを介して通信する送信デバイス及び受信デバイスを含み、送信デバイスは所定のビットシーケンスを伝送する。受信デバイスは、所定のビットシーケンスの間システムクロックサイクル数をカウントし、分数乗算器を用いて、受信したデータのボーレートに比例するオーバーサンプリングクロックを生成し、これは付加的な受信データをサンプリングするために用いられる。オーバーサンプリングクロック周波数は、固定分子及び可変分母の分数によって乗算されたシステムクロック周波数に等しく、分母は所定のビットシーケンスの間カウントされたシステムクロックサイクルの数に等しい。
【００１８】
システム内の送信デバイス及び受信デバイスは、非ゼロ復帰（ＮＲＺ）データ符号化を備えたＵＡＲＴプロトコルを用いて通信可能であり、この場合、所定のビットシーケンスは、いくつかの交番する「１」ビット及び「０」ビットである。代替として、送信デバイス及び受信デバイスは、連続双周波数符号化データを用いて通信可能であり、この場合、所定のビットシーケンスはいくつかの連続する「０」ビットである。
【００１９】
更に、双周波数符号化データを用いる場合、複数のデバイスをリングネットワークトポロジーで接続可能であって、１つのデバイスはマスターと呼ばれる送信デバイスであり、残りのデバイスはスレーブと呼ばれる受信デバイスである。マスターは、各スレーブによって受信される所定のビットシーケンスを伝送し、各スレーブはそのオーバーサンプリングクロックを受信されたデータのボーレートに同期させる。データがマスターから１つ又は複数のスレーブに伝送されているとき、各スレーブはデータを受信し、そのデータをリング内の次のスレーブに未変更で送信する。マスターがスレーブから逆にデータを受信したい場合、マスターはリング周辺で「０」の値と共にプレースホルダービットを伝送する。特定のスレーブが、「０」を送信するために未変更のデータを渡すことによって、又は、「１」を送信するために予め定義されたビット時間の途中にデータを反転させることによって、マスターに送信されるべき情報でプレースホルダービットを「フィルイン（ｆｉｌｌ−ｉｎ）する」ことが可能である。マスターは、データビットがリング内の最後のスレーブデバイスから戻されたときに、この情報を読み取る。バッテリ管理システムにおいて、１つ又は複数のセルで安全でない状態が発生したかどうかを判別するために、この情報を電圧及び温度情報を解釈する中央コントローラへと送り返すことができる。その後、中央コントローラ（ホスト）は、システムのオペレータを変更すること、セルの充電及び／又は放電を中止するために回路ブレーカを開くこと、或いは、安全でない状態を軽減するための何らかの他の処置を講じることなど、適切な処置を講じることができる。加えて、マスターデバイスは、過剰又は過小の電圧又は温度条件を検出する機能など、一定量のそれ独自のインテリジェンスを含み得るか、或いは、セルの電圧又は電荷バランシングを制御する機能などの付加的な動作モードを有し得る。双方向通信は、ホストコントローラがデータ取得デバイスのモード及び機能を構成し得、その後、状態及び測定情報をリードバックし得ることを保証する。これは典型的に、直列接続された（又はデイジーチェーン接続された）通信インターフェースを用いることによって成される。
【００２０】
別の例示の実施形態において、本発明は改善された非同期シリアル通信のための方法であり、この方法は、所定のビットシーケンスをトランスミッタから受信すること、所定のビットシーケンスにわたってシステムクロックサイクル数をカウントすることによってシステムクロックと送信ボーレートとの間の差を監視すること、固定分子及び可変分母を有する分数レート乗算器を用いてオーバーサンプリングクロックを生成すること、並びに、オーバーサンプリングクロックを用いてトランスミッタからデータビットシーケンスをサンプリングすることを含む。分母は、カウントされたシステムクロックサイクルの数に等しく、オーバーサンプリングクロックは、システムクロックを分子対分母の比で乗算することによって生成される。
【００２１】
また、この方法は、「０」の値を有するプレースホルダービットを含む双周波数符号化データをマスターから受信すること、及び、プレースホルダービットを「フィルインする」ことによりデータをマスターに返信することであって、このデータは「１」を送信するためにビット時間の途中に反転されることを、含み得る。
【００２２】
この方法は、シンプルであり、広範なボーレート及び同調領域にわたってスケーラブルである。電力消費、及びサンプリングされるノイズに対する耐性は、同一の動作及び性能を維持しながら、オーバーサンプリングクロック周波数に、したがってボーレートとスケーリングする。加えて、本発明は、送信デバイスと受信デバイスとの間のクロックを緊密に一致させる必要性を減少させる。本発明の他のシステム、方法、特徴、及び利点は、当業者であれば以下の図面及び詳細な説明を考察することにより明らかとなろう。
【図面の簡単な説明】
【００２３】
【図１Ａ】本発明の例示の一実施形態に従った、リングネットワークにおけるシリアル通信のためのシステムを示す。
【００２４】
【図１Ｂ】本発明の例示の一実施形態に従ったバッテリ管理システムを示す。
【００２５】
【図２】本発明の例示の一実施形態に従った双周波数符号化ビットストリームを示す。
【００２６】
【図３】本発明の例示の一実施形態に従った、ビットストリームにおけるリードバックデータを示す。
【００２７】
【図４】本発明の例示の一実施形態に従った、データインバータを含むシステムを示す。
【００２８】
【図５】本発明の例示の一実施形態に従った、ＮＲＺ形式で符号化されたＵＡＲＴシリアルビットストリームを示す。
【００２９】
【図６】本発明の例示の一実施形態に従った、オーバーサンプリングクロックの生成を示す。
【００３０】
【図７】本発明の例示の一実施形態に従った、受信ＵＡＲＴを同期化するための方法を示す。
【００３１】
【図８】本発明の例示の一実施形態に従った、リングネットワークにおけるシリアル通信のための方法を示す。
【発明を実施するための形態】
【００３２】
本発明は、デバイス間のシリアル通信を改善するための新規な技法を提示する。リングネットワークにおいて複数のデバイスが接続される。１つのデバイスがマスターデバイスとして定義され、残りのデバイスがスレーブデバイスとして定義される。マスターデバイスは、連続双周波数符号化ビットストリームを用いて任意のスレーブと通信する。マスターデバイスによって伝送されるシリアルデータは、リング周辺を各スレーブまで移動し、その後マスターに戻る。各ビットの開始は、リング内の第１のスレーブに接続されたラインの状態を反転するマスターによってシグナリングされる。マスターは、予め定義されたビット時間の途中に、２度目のライン反転によって「１」ビットをシグナリングすることができる。そうでなければ、ビットは「０」と解釈される。データがマスターから１つ又は複数のスレーブに伝送されているとき、各スレーブはデータを受信し、これを未変更でリング内の次のスレーブに送信する。マスターがスレーブから逆にデータを受信したい場合、マスターはリング周辺で「０」の値を有するプレースホルダービットを送信する。特定のスレーブが、「０」を送信するために未変更のデータを渡すことによって、又は、「１」を送信するために予め定義されたビット時間の途中にデータを反転させることによって、マスターに送信されるべき情報でプレースホルダービットを「フィルインする」ことができる。マスターは、データビットがリング内の最後のスレーブデバイスから戻されたときに、この情報を読む。また、マスターデバイスは、外部のホストデバイスと通信するためのＵＡＲＴインターフェースを含む。リングネットワーク内のデータは連続双周波数符号化を介して伝送されるが、ＵＡＲＴで送信及び受信されるデータは、ＮＲＺ符号化され、スタート及びストップフレーミングビットを含む。
【００３３】
データは、送信デバイスにおけるローカルシステムクロックの周波数に基づく特定のボーレートで伝送される。受信デバイスは、受信されたデータを適切にサンプリングするために、伝送されたボーレートに同期させなければならない。理想的には、受信デバイス内のオーバーサンプリングクロックは、ボーレートの厳密な整数倍、例えばボーレートの周波数の１６倍、となる。しかしながら、温度などの環境条件の変化により、発振器精度及びドリフトにおける固有の制限によって生じる、送信デバイス及び受信デバイス内のローカルシステムクロック間の周波数の差が、オーバーサンプリングクロックがボーレートの正確な倍数になることを妨げるため、同期化の差がサンプリング誤り及びデータ伝送失敗につながる可能性がある。この問題を解決するために、リング内のデバイスには、送信デバイスと受信デバイスとの間の、すなわち、マスターデバイスからスレーブデバイスへ、並びに外部ホストデバイスからマスターデバイスへの、クロック同期化を改善するためのロジックが装備される。ローカルシステムクロックからデータオーバーサンプリングクロックを生成するために、受信デバイス内において分数レート乗算器が用いられる。分数は、分子及び分母の２つの値として記憶される。オーバーサンプリングクロック周波数は、分子対分母の比で乗算されたシステムクロック周波数に等しい。分数レート乗算器は、当分野で知られており、例えばＭ／Ｎ整数ＰＬＬを用いるなどのいくつかの方式で実装可能である。分子を一定に保ち、分母のみを調節することによって、オーバーサンプリングクロックを、送信デバイスから受信される非同期シリアルデータストリームのボーレートの一定倍に一致するように同調させることができる。オーバーサンプリングクロックは、所定のビットシーケンス後に受信されるシリアルデータをサンプリングするための基準として用いられる。
【００３４】
分母は、所定のビットシーケンス内のシステムクロックサイクル数をカウントすることによって、自動的に決定される。同期化に先立ち、ビットシーケンスは、システムクロックを用いてシリアルデータをサンプリングすることによってシーケンス内の遷移を検出することにより識別され得る。ＮＲＺ符号化の場合、所定のビットシーケンスは所定数の交番する「１」及び「０」であり、ビット当たり１遷移となる。連続双周波数符号化の場合、所定のビットシーケンスはいくつかの「０」ビットであり、この場合もビット当たり１遷移となる。例えば、ＮＲＺの場合の所定のビットシーケンスは、スタートビット（「０」）、８つの交番するデータビット（「１０１０１０１０」）、及びストップビット（「１」）を有する単一フレームであり得、システムクロックサイクルの数は、第１のビットの立ち上がりエッジ及びストップビットの立ち上がりエッジによって定められる８つのデータビットにわたってカウントされる。連続双周波数符号化の場合、例示の所定のビットシーケンスは「００００００」などの偶数個のゼロであり、システムクロックサイクルの数は、第１のビットの立ち上がり／立ち下がりエッジ及び最後のゼロに続く次のビットの立ち上がり／立ち下がりエッジによって定められる、偶数個のビットにわたってカウントされる。システムクロックは等しい数の高パルス及び低パルスを有するために偶数個のビットにわたってカウントされるため、有限かつ異なる立ち上がり時間及び立ち下がり時間によって生じる高パルス幅及び低パルス幅におけるいかなる差も平均化する。その結果のカウントは、分母の値として直接使用される。同調の解像度及び範囲は、分子及び分母のサイズによってのみ制限される。
【００３５】
この解決策は、シンプルであり、広範なボーレート及び同調領域にわたってスケーラブルである。電力消費、及びサンプリングされるノイズに対する耐性は、同一の動作及び性能を維持しながら、オーバーサンプリングクロック周波数、したがってボーレートとスケーリングする。
【００３６】
本明細書及び本開示全体で使用されるように、ユニバーサル非同期レシーバ／トランスミッタ（ＵＡＲＴ）という用語は、非同期シリアルインターフェースを実装する任意のコンピュータハードウェア又はソフトウェアである。ＵＡＲＴは一般に、ＥＩＡ  ＲＳ−２３２などの他の通信規格に関連して用いられる。ＵＡＲＴは、コンピュータ又は周辺デバイスシリアルポートを介したシリアル通信に用いられる集積回路の一部であり得る。ＵＡＲＴは、一般にマイクロコントローラ内に含められる。２重ＵＡＲＴ又はＤＵＡＲＴは、２つのＵＡＲＴを単一チップに組み合わせる。送信ＵＡＲＴは、データのバイトを取り、個々のビットを順次に伝送する。受信ＵＡＲＴは、ビットを完全なバイトに再アセンブルする。
【００３７】
ビットは信号ワイヤで伝送される。信号は多くの異なる形であり得る。電圧シグナリングに関する規格の例が、ＥＩＡからのＲＳ−２３２、ＲＳ−４２２、及びＲＳ−４８５である。いくつかのシグナリング方式では電線を用いない。こうした例が、光ファイバ、ＩｒＤＡ（赤外線）、及びそのシリアルポートプロファイル（ＳＰＰ）の（ワイヤレス）ブルートゥースである。いくつかのシグナリング方式は、（有線又は無線で）搬送波信号の変調を用いる。電話回線モデムによるオーディオ信号の変調、データ無線によるＲＦ変調、及び電力線通信用のＤＣ−ＬＩＮが、その例である。シリアル通信は、「全二重」（同時に送受信する）又は「半二重」（デバイスは送信及び受信を交代で行う）であり得る。
【００３８】
ＵＡＲＴ、マスター、スレーブ、ホスト、及び他のデバイスは、プロセッサ、メモリ、トランシーバ、入力、及び出力を有し得る。メモリは、アプリケーション、ソフトウェア、又はロジックを記憶する。プロセッサの例は、コンピュータプロセッサ（処理ユニット）、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、及びマイクロコントローラなどである。ロジックを記憶し得るメモリの例は、ＲＡＭ（ランダムアクセスメモリ）、フラッシュメモリ、ＲＯＭＳ（読み取り専用メモリ）、ＥＰＲＯＭＳ（消去可能プログラマブル読み取り専用メモリ）、及びＥＥＰＲＯＭＳ（電気的消去可能プログラマブル読み取り専用メモリ）を含む。
【００３９】
本明細書及び本開示全体を通じて用いられる「ロジック」とは、プロセッサが他のデータ及び情報を操作及び伝送できるようにするために適用され得る、命令信号及び／又はデータの形式を有する任意の情報を指す。ロジックは、メモリに記憶される信号から形成され得る。ソフトウェアはこうしたロジックの一例である。ロジックは、デジタル及び／又はアナログのハードウェア回路、例えば、論理ＡＮＤ、ＯＲ、ＸＯＲ、ＮＡＮＤ、ＮＯＲ、及び他の論理演算を含むハードウェア回路、によって構成されてもよい。ロジックは非同期であってもよく、又は、その動作がクロックに同期されることを意味する同期であってよい。ロジックは、組み合わせであってもよく、又は順次であってよい。順次ロジックでは、システムの状態は１つ又は複数の記憶要素内で維持される。ロジックはソフトウェア及びハードウェアの組み合わせで形成され得る。ネットワーク上で、ロジックはサーバ又はサーバ複合体上にプログラミングされ得る。特定のロジックユニットは、単一のロジック位置、ユニット、又はデバイスに限定されない。
【００４０】
以下の説明では、図面全体にわたって最も対応して示す構造（例えば１３２及び２３２など）は、同じ特性を備え、同じ構造及び機能を対象としていると仮定され得る。対応して示す要素間に指摘されていない差があり、この差が、特定の実施形態に対する要素の非対応的構造又は機能となる場合、その特定の実施形態に対して与えられたその相反する説明に従うものとする。
【００４１】
図１Ａ及びＢは、本発明の例示の実施形態に従った、リングネットワークにおけるシリアル通信のためのシステムを示す。デバイス１０１、１０２、及び１０３は、垂直インターフェーススタックで配置され、非同期シリアルインターフェースバスを介して互いに通信する。デバイス１０１、１０２、及び１０３はそれぞれ、対応するスレーブユニットＳ１、Ｓ２、及びＳ３を有する。スレーブＳ１〜Ｓ３は、スレーブが、所定のビットシーケンスを検出すること、及びそれらのオーバーサンプリングクロックを受信したビットストリームのボーレートと同期させることを可能にするロジックを含む。底部デバイス１０１は、底部スレーブＳ１並びにマスターユニット１０５を有する。マスターユニット１０５は、スレーブＳ１〜Ｓ３を指令し、インターフェース１２０及び１０７と通信もする。インターフェース１０７はＳＰＩインターフェースであり、インターフェース１２０はＵＡＲＴである。ＵＡＲＴ１２０は、ＵＡＲＴ１２０が、所定のビットシーケンスを検出すること、及びオーバーサンプリングクロックを受信したビットストリームのボーレートと同期させることを可能にするロジックを含む。インターフェース１２０及び１０７の何れか又は両方が、ホストデバイス１１５に接続している。ＵＡＲＴ１２０の１つの機能が、リング全体にわたって伝搬されるように、ホスト１１５からマスター１０５へのデータ／命令を変換することである。リング内の各デバイス１０１〜１０３は、バッテリ管理、データ取得（ＤＡＱ）などの、それぞれのスレーブと通信する他の機能１０９を含む。他の機能１０９は、データストレージ、電力供給、マイクロコントローラなどの機能であり得る。
【００４２】
マスター１０５によって送信されたデータストリーム１１０は、リング周辺を各スレーブへと移動した後、マスター１０５に戻る。マスター１０５がデバイス１０１〜１０３に情報を送信すると、各スレーブＳ１〜Ｓ３は、そのデータを受信し、リング内の次のスレーブに送信する。リング内の最後のスレーブ（デバイス１０３内の上部スレーブＳ３）は、デバイス１０１〜１０３を介してデータをマスターに返信し、そのため、論理リングが形成される。リングの論理フローはボックス１３０で表す。データストリーム１１０は、連続双周波数符号化される。各ビットの開始は、リング内の第１のスレーブに接続されたラインの状態を反転するマスターによってシグナリングされる。マスターは、予め定義されたビット時間の途中の２度目のライン反転によって「１」ビットをシグナリングすることができる。そうでなければ、ビットは「０」と解釈される。データがマスターから１つ又は複数のスレーブに伝送されているとき、各スレーブは、そのデータを受信し、これを未変更でリング内の次のスレーブに送信する。
【００４３】
リング内の各デバイス１０１〜１０３には固有のアドレスが割り当てられる。ビットストリーム１１０は、宛先スレーブアドレスを識別する情報と、デバイスによって実行されるべき命令とを含む。スレーブは、ビットストリームを受信し、データをパースし、命令がそのスレーブに向けられているか否かを判別するためのロジックを含む。マスターがスレーブから逆にデータを受信したい場合、ビットストリーム１１０は、宛先スレーブアドレス、要求されたデータを識別する命令、及びそれに続く、「０」の値を有するプレースホルダービットを含む。データは、ビットストリーム１１０内のプレースホルダービットを変更することによって、マスターに返信される。「０」を送信するには、アドレス指定されたスレーブは、リング内の次のデバイスにプレースホルダービットを未変更で渡す。「１」をマスターに送信するには、スレーブは、ビット時間の途中にリング内の次のデバイスに接続されたラインを反転させる。このようにして、特定のスレーブが、マスター１０５に返信されるべき情報でプレースホルダービットを「フィルインする」ことができる。マスター１０５は、データビットが上部スレーブデバイス１０３から戻されるときに、この情報を読み取る。１つのスレーブ１０１〜１０３のみが、任意の所与のプレースホルダービットを変更する。排他的ＯＲ（Ｘ−ＯＲ）機能が、ラインの状態を反転させるために信号経路内の各スレーブによって使用される。
【００４４】
本構成は、たとえリング内の各デバイスを接続しているラインが異なる状態にあり得る場合も、双周波数符号化方式の連続性を維持する。連続双周波数符号化は、フレーム化されたビットシーケンスを必要とせず、代わりに、単一の遷移又は「エッジ」がビット時間の開始を定義する。これにより、単に全バイトのスタートビットを同期化するよりも高いクロック許容差を提供するビット単位同期化が可能となる。これは、フレーミングビットを用いない他のインターフェース、例えばシリアル周辺インターフェース（ＳＰＩ）、との互換性にうまく機能する。リングトポロジーは、各デバイスを介する伝搬遅延に対して寛容であり、リングの完全性に関してマスターにフィードバックを提供するという利点を有する。本発明は、スレーブにおける不要な処理によって生じる遅延を最小限にしながら、これらの利点の組み合わせを可能にする。
【００４５】
図１Ｂは、上記の例示の実施形態がバッテリ管理システム内で用いられている特定の適用例を示す。バッテリ管理システムが、各デバイス１０１〜１０３を用いて一度に６〜１２個のセルを監視し得、セル自体と同様にして順次通信し得、その結果、複数の直列接続されたリチウムセルを監視するために直列接続されたデバイスとなる。これらのデータ取得デバイスによって取得された情報は、安全でない状況がセルの１つ又は複数で生じたかどうかを判別するために電圧及び温度情報を解釈する中央コントローラ（ホストデバイス１１５）に返信され得る。
【００４６】
本実施形態において、セル１０９のアレイが、例えば、図１Ａのデバイス１０１〜１０３の一部を構成し得るシステムを形成するために、互いに直列に接続される。この場合、セルの管理は付加的機能１０９である。デジタル取得（ＤＡＱ）デバイス１０５ａ、１０５ｂ、１０５ｃ、及び１０５ｄが、更に互いに直列に接続され、セル１０９の複数のアレイと通信するためのインターフェースを有する。図示された実施形態において、ＤＡＱデバイス１０５ａ〜１０５ｄはそれぞれ５つのセルと通信しているが、システムの範囲に応じて他の構成が可能である。ＤＡＱデバイス１０５ａ〜１０５ｄは、スタックに配置され、非同期シリアルインターフェースバスを介して互いと通信する。ＤＡＱデバイス１０５ａ〜１０５ｄは、それらが、所定のビットシーケンスを検出すること、及びそれらのオーバーサンプリングクロックをＤＡＱデバイス１０５ａからの受信したビットストリームのボーレートに同期させることを可能にするロジックを含む。したがってＤＡＱデバイス１０５ａは、図１Ａのコンテキスト内ではマスターとみなされ得るため、ＤＡＱデバイス１０５ａ〜１０５ｄに、セル１０９のそれらの部分の、電力レベル、電圧、温度などを測定するように指令する。
【００４７】
ＤＡＱデバイス１０５ａは、更にホスト１１５と通信し、ホストシリアル通信バス１２１を介してホスト１１５からコマンドを受信する。ＤＡＱ１０５ａは、それが、所定のビットシーケンスを検出すること、及びオーバーサンプリングクロックをホスト１１５から受信されるビットストリームのボーレートと同期させること、並びに、スタック全体を通じて伝搬されるように、ホスト１１５からすべてのＤＡＱデバイス１０５ａ〜１０５ｂへのデータ／命令を変換することを可能にするＵＡＲＴロジックを更に含み得る。ＤＡＱ１０５ａによって伝送されるデータストリームが、図１Ａに関して上記で説明したように、システムを介して各ＤＡＱデバイスへ伝搬され、その後戻される。ビットストリームは、セル１０９の対応する部分の、電力レベル、状態などを表す値のためのプレースホルダービットを含む。情報は、セルの１つ又は複数で安全でない状況が生じたかどうかを判別するために電圧及び温度情報を解釈するホスト１１５に通信される。その後ホスト１１５は、システムのオペレータを変更すること、セル１０９の充電及び／又は放電を中止するために回路ブレーカを開くこと、或いは、安全でない状況を軽減するための何らかの他の処置を講じることなどの、適切な処置を講じることができる。加えて、ＤＡＱ１０５ａ〜１０５ｄは、過剰又は過小の電圧又は温度条件を検出する能力などの、一定量のそれら自体のインテリジェンスを含み得るか、或いは、セルの電圧又は電荷バランシングを制御する能力などの付加的な動作モードを有し得る。双方向通信は、ホストコントローラがデータ取得デバイスのモード及び機能を構築し得、その後、状態及び測定情報をリードバックし得ることを保証する。
【００４８】
図２は、本発明の例示の実施形態に従った、双周波数符号化ビットストリーム２１０を示す。受信デバイスが、ライン上の変化を検出するために、例えば１６倍ビットレートのオーバーサンプリングクロックでサンプリングすることによって、シリアルデータストリーム又はビットシーケンス２１０を監視する。各ビットは、ビット時間内に含まれる。データライン２１０上の変化がエッジとみなされ、これを検出すると、ビット時間に等しいオーバーサンプリングクロックサイクルの数に対し、例えば、１６倍オーバーサンプリングレートに対して１６サイクルに対し、カウントが開始される。カウントの間、他の遷移が現れない場合、０として処理される。カウントの間他のエッジが現れた場合、１として処理される。
【００４９】
図３は、本発明の例示の実施形態に従った、ビットストリームにおけるリードバックデータを示す。シリアルビットストリーム３１０が、連続双周波数符号化形式でマスターによって伝送され、スレーブによって受信されるデータを表す。ビットストリーム３１０は、ビットストリームの開始時に送信される第１のセクション３１４を含み、受信スレーブ（Ｓ１〜Ｓ３）オーバーサンプリングクロックを送信されたボーレートに同期させるために用いられる偶数のゼロを含む。データを返信するためのスレーブの場合、マスターは、ビットシーケンス３１０のセクション３１８に示される一連の「空」又はゼロ値ビットスロットを送信する。シリアルビットストリーム３１０のセクション３１６は、宛先スレーブアドレスと、要求されたデータを識別するための命令とを含む。
【００５０】
シリアルビットストリーム３１２は、マスターにデータを返信するためにスレーブによって変更されたビットストリームを表す。「空」ビットスロット３１８は、「０」（ビット時間当たり単一エッジ）に等しい。スレーブは、「０」を認識し、シリアルデータアウト３１２に示されるように、データを返信するために空ビットスロットを修正する。スレーブは、「０」を示すためにビットスロットを空のままにしておく。スレーブは、「１」を表すために、空ビットスロットの中間を反転してエッジを付加する。スレーブがリング内の次のデバイスにビットストリームを渡すため、唯一の遅延は伝搬遅延である。スレーブは、ビットストリームをリアルタイムで分析し、いかなるクロックサイクル遅延も付加しない。これにより、スレーブがリングに最小の待ち時間を付加し、そのため、最小の遅延を累積しながら多数のデバイスで構成されるスレーブの大規模スタックを可能にすることが保証される。
【００５１】
図４は、本発明の例示の一実施形態に従った、反転機能を含むシステムを示す。図４に示すシステムは、例えば図１のデバイス１０１〜１０３などの汎用デバイスの一部である。ステアリングロジックが、動作のためのデバイスを底部、中央、又は上部デバイスとして構成するように提供される。スタック内の底部デバイス１０１として構成される場合、ＵＡＲＴ４０５及びＳＰＩ４０６は、ホスト４０７とマスターデバイス４０３との間のインターフェースを提供する。マスター４０３は、マルチプレクサ４１０の「１」入力を選択することにより、シリアルインターフェースＳＤＩを介して連続双周波数符号化ビットストリームを用いてスレーブ４０４と通信する。ＳＤＩを介して伝送されるビットストリームは、排他的ＯＲ（Ｘ−ＯＲ）機能４０８において信号４１６と組み合わされる。未変更のビットストリームを渡すために、スレーブ４０４は信号４１６を未変更のままとする。スレーブ４０４がアドレス指定され、データをマスターに返信するようにマスター４０３によって命令されるとき、スレーブは、ＳＤＩを介して受信されるビットストリームを監視し、各プレースホルダービットの開始を定めるエッジを識別する。「０」値でプレースホルダービットを「フィルインする」ために、スレーブ４０４はプレースホルダービットを未変更で渡すことを可能にする。プレースホルダービットを「１」値で「フィルイン」するため、プレースホルダービットの開始を定めるエッジの検出に続いて、スレーブ４０４はビット時間の半分に等しい時間待機し、その後、信号４１６の状態をその反対の状態に変更する。連続双周波数符号化シグナリングは、ビットストリームにおける遷移のみに依存する。これは、レベル（「０」又は「１」）に依存せず、エッジが立ち上がりであるか又は立ち下がりであるかにも依存しない。そのため、信号４１６の初期状態は「１」又は「０」のいずれかであり得る。唯一の要件は、プレースホルダービットを「１」値でフィルインする際に、ビット時間の途中で状態が変化する場合を除き、信号４１６が一定のままであることである。ビットストリームは、ＡＮＤ機能への「〜ｔｏｐ」信号を論理「１」に設定することにより、リング内の次のデバイスに渡される。反対に、マスターがリング内の最後のデバイスからＳＤＯを介して戻りビットストリームを受信するために、マルチプレクサ４１２を制御する「ｔｏｐ」信号は「０」に設定される。
【００５２】
スタック内の中間デバイスとして構成される場合、スレーブ４０４は、マルチプレクサ４１０の「０」入力を選択することによって、インターフェースＵＰ＿Ｓを介してシリアルビットストリームを受信する。ビットストリームは、マルチプレクサ４１２を制御する「ｔｏｐ」信号を「０」に設定し、ＡＮＤ機能４２０への信号４１８を「１」に等しく設定することによって、シリアルインターフェースＤＮ＿ＮからＤＮ＿Ｓへ、戻り経路内でマスターデバイスに渡される。中間デバイス内のスレーブ４０４の動作は、底部デバイスにおいて説明した動作と同一である。
【００５３】
スタック内の上部デバイスとして構成される場合、スレーブ４０４は、中間デバイスに対して説明したものと同様に、インターフェースＵＰ＿Ｓを介してシリアルビットストリームを受信する。しかしながら、ＵＰ＿Ｎインターフェースを介してビットストリームを渡すのではなく、マルチプレクサ４１２を制御する「ｔｏｐ」信号を「１」に設定し、ＡＮＤ機能内への信号４１８を「１」に等しく設定することにより、ビットストリームは、ＤＮ＿Ｓインターフェースを介してマスターに戻るようにループバックされる。上部デバイス内のスレーブ４０４の動作は、底部及び中間デバイスにおいて説明した動作と同一である。
【００５４】
図５は、本発明の例示の一実施形態に従った、ＮＲＺ形式で符号化されたＵＡＲＴシリアルビットストリームを示す。ビットストリーム５１０が、ＵＡＲＴプロトコルに従った典型的なデータフレーム５２０を示す。データフレームは、論理「０」値に等しいスタートビット５１２で開始し、その後、８個のデータビットＤ１〜Ｄ８が続き、論理「１」値に等しいストップビット５１４によって終結される。当分野ではこのデータフレーム上の変形、例えば、第２のストップビットの付加、７個のビットのデータ長さ、及びストップビット前にパリティビットを含めることなど、が知られている。受信デバイスがオーバーサンプリングクロックをビットストリームのボーレートに同期させることができるように、データフレームの前に所定のビットシーケンスが提供される。所定のビットシーケンスは、スタートビット５１２を含み、その後「１」と「０」との間で交番する８個のデータビット５１８が続き、ストップビット５１４によって終結される。同期化メカニズムの知識のない送信デバイスがシーケンスを生成できるように、この特定の所定のビットシーケンスは、通常のデータフレーム５２０とのその類似性のために選択される。しかしながら、他の所定のビットシーケンスも可能であり、唯一の要件は、受信デバイスが既知数のビット時間を定めるビットストリーム内の境界を検出できることである。この所定のビットシーケンスは、図１及び図４に示したシステム内のデバイス１１５及び４０７などのホストデバイスによって生成される。
【００５５】
図６は、本発明の例示の一実施形態に従った、受信されるビットストリームのボーレートにオーバーサンプリングクロックを同期させるためのシステムを示す。マスタークロック６２１からシステムクロック６２４が生成される。システムクロックは、マスタークロックと等しく設定されてもよい。代替として、システムクロックは、プリスケーリング整数分周器６２３を用いて生成され得、この場合、システムクロック周波数は、整数Ｍで分周されたマスタークロックの周波数に等しい。システムクロックは、図３に示した３１４及び図５に示した５１８などの、所定のビットシーケンスをサンプリングするために用いられる。たとえ、シーケンス３１４が、連続双周波数形式で符号化され、いくつかの連続する「０」値を表し、シーケンス５１８が、ＮＲＺ形式で符号化され、いくつかの交番する「１」及び「０」値を表す場合であっても、所定のビットシーケンス３１４及び５１８は本質的に同一であることに留意されたい。したがって、オーバーサンプリングクロック同期化のための同じシステムが両方に適用され得る。
【００５６】
受信デバイス６２７が、シリアルビットストリーム６２８の一部として所定のビットシーケンスを受信し、システムクロック６２４によって決められるインタバルでこれをサンプリングする。受信デバイスは、ビットストリームにおける遷移を検出し、所定のビットシーケンスの範囲を識別する。例えば図５のビットストリーム５１０を考えてみると、受信デバイスはスタートビット５１２のリーディングエッジ（leading edge）で高から低への遷移を検出する。次に受信デバイスは、第１のデータビットの立ち上がりエッジで開始し、ストップビット５１４の立ち上がりエッジで終了する９つのエッジのシーケンスを検出し、インタバルにわたって生じるシステムクロックサイクルの数をカウントする。同数の高パルス及び低パルスを有するために偶数のビットが選択され、そのため、有限で異なる立ち上がり時間及び立ち下がり時間によって生じる、高及び低のパルス幅におけるいずれの差異も平均化する。奇数のビットも用いられ得るが、立ち上がり時間及び立ち下がり時間が大幅に異なる場合は正確ではない可能性がある。
【００５７】
所定のビットシーケンスに続いて、受信デバイス６２７は、オーバーサンプリングクロックを用いて受信ビットストリーム６２８をサンプリングする。ビットストリームとの同期を維持するために、ビット当たりのサンプル数は、例えば１６などの既知の定数でなければならない。更に、ロジック設計を簡略化するために異なるボーレートについて同数のビット当たりサンプルを維持すること、及び、ボーレートに比例したサンプルノイズに対する耐性のスケーリングを提供することが望ましい。この目的は分数乗算器６２５によって達成され、分数乗算器６２５は、固定分子Ｎ対調節可能分母Ｄの比で乗算されるシステムクロックの周波数に等しい周波数を有するオーバーサンプリングクロックを生成する。分母は、所定のビットシーケンスにわたって、システムクロックサイクルのカウントに等しく設定される。
【００５８】
システムの有効性の例として、受信されたビットストリーム６２８のボーレートが既知であり且つ一定であって、受信デバイスが８．１９２ＭＨｚのマスタークロック６２１を有し、分数乗算器６２５が０．６の固定値に設定され、１６のオーバーサンプリング係数が望ましいケースを考えてみる。表２は、様々なボーレートについてこれがどのように達成されるかを示している。例えば９６００ビット／秒のシリアルビットストリームのケースでは、マスタークロックは整数分周器６２３を用いてプリスケーリングされ、ここでＭは３２に設定され、それによって２５６ｋＨｚのシステムクロック６２４を生成する。分数乗算器６２５はシステムクロックに０．６を乗算し、１５３．６ｋＨｚのサンプリングクロック６２６が生じ、これは９６００ビット／秒のボーレートの正確に１６倍である。同様に、それぞれ１９２００、３８４００、及び７６８００ビット／秒のボーレートについて、プリスケーリング係数Ｍを１６、８、及び４に変更することによって、表２の残りのボーレートについても、ボーレートの正確に１６倍のオーバーサンプリングクロックが達成される。
【表２】
2014519752.tif 000004
【００５９】
これは、表１のように単に整数分周器を用いるよりもはるかに改善されているが、この例は実用では起こり得ない可能性が高い。受信されるビットストリームのボーレートは、正確でない可能性が高く、温度の変化及び送信回路の老朽化などの他の要素に伴ってドリフトする可能性がある。また、受信デバイスのマスタークロックは、正確に８．１９２ＭＨｚでない可能性があり、温度変化及びクロック生成回路の老朽化によってドリフトする可能性もある。
【００６０】
図６のシステムがこの問題をどのように克服できるかを示すために、受信されるビットストリーム６２８のボーレートが１００００ビット／秒であるケースを考えると、マスタークロック６２１は８．０ＭＨｚであり、整数分周器６２３は３２の固定係数Ｍを有し、そのため、システムクロック周波数は８．０ＭＨｚを３２で分周した２５０．０ｋＨｚに等しくなる。分数乗算器６２５が０．６に固定された場合、１５０．０ｋＨｚのオーバーサンプリングクロック周波数が生じることになる。１００００ビット／秒ボーレートについて望ましい１６倍オーバーサンプリングレートは、１６０ｋＨｚである。したがって、分数乗算器６２５における固定乗算係数が０．６であると、サンプリング周波数誤りは（１６０ｋＨｚ−１５０ｋＨｚ）／１６０ｋＨｚ＝６．２５％であり、ＵＡＲＴビットストリームの場合にサンプリング誤りを生じさせ得る。
【００６１】
この問題は、分数乗算器６２５の分子Ｎを例えば１２８などの固定値にすること、及び分母Ｄを０〜２５５の範囲の可変８ビット値にすることによって克服される。１００００ビット／秒では、８００μｓ（マイクロ秒）の期間にわたって８ビットの所定のビットシーケンスが生じ得る。システムクロック期間は周波数の逆数であり、この例では１／２５０．０ｋＨｚ＝４μｓとなる。したがって、所定のビットシーケンスにわたるシステムクロック期間のカウントは２００となる。この値を分数乗算器６２５内の分母Ｄとして用いると、１２８／２００＝０．６４の係数となる。この係数にシステムクロック６２４が乗算され、その結果のオーバーサンプリング周波数は２５０．０ｋＨｚ×０．６４＝１６０．０ｋＨｚであり、これは受信されたビットストリームのボーレートの正確に１６倍であるため、サンプリング誤りは生じない。
【００６２】
公称分数乗算係数を０．６と想定すると、８ビットの分母を超える１２８を用いることで、受信するオーバーサンプリングクロックを＋／−２０％よりも大きく同調させることができる。分母Ｄ＝２１３のとき、０．６の公称乗算係数が達成される。より広い同調範囲にわたって調節するために、より大きな分母を用いることができる。所定のビットシーケンスの長さは、送信デバイスにおけるシステムクロックに基づく受信されたビットストリームのボーレートに基づき、所定のビットシーケンスにわたってカウントされるシステムクロック数は、受信デバイスのクロックに基づく。送信デバイスにおけるシステムクロックが受信デバイスにおけるシステムクロックよりも遅くなっている場合、受信デバイスはより多くのサイクルをカウントし、送信デバイスにおけるシステムクロックが受信デバイスにおけるシステムクロックよりも速い場合、受信デバイスは所定のビットシーケンスにわたってより少ないサイクルをカウントする。言い換えれば、送信されるボーレートが減少するにつれて分母は大きくなり、それに対応してオーバーサンプリングクロックは遅くなる。同様に、送信されるボーレートが増加するにつれて分母は小さくなり、それに対応してオーバーサンプリングクロックは速くなる。
【００６３】
図７は、本発明の例示の実施形態に従った、受信デバイスを受信されたシリアルビットストリームに同期させるための方法を示す。この方法は、本発明に従って構成されるデバイスで開始する（Ｓ７６０）。次にデバイスは、トランスミッタから所定のビットシーケンスを受信し、このビットシーケンスをシステムクロックを用いてサンプリングする（Ｓ７６２）。その後、デバイスは、所定のビットシーケンスのインタバルにわたってシステムクロックサイクルの数をカウントする（Ｓ７６４）。その結果生じるカウントを用いて、分数レート乗算器の分母をこのカウントに等しく調節することにより、乗算係数を生成する（Ｓ７６６）。その後、分数レート乗算器をシステムクロックに適用することにより、データオーバーサンプリングクロックが生成される（Ｓ７６８）。デバイスは、その後、このオーバーサンプリングクロックを用いて、トランスミッタからシリアルビットストリームをサンプリングする（Ｓ７７０）。
【００６４】
図８は、本発明の例示の実施形態に従った、リングネットワークにおけるシリアル通信のための方法を示す。フローチャートは点線で分割されている。点線の左のイベントはマスターデバイスによって実行され、右のイベントはスレーブデバイスによって実行される。マスターデバイス上のロジックがシリアルビットストリームを生成し（Ｓ８８０）、リングネットワーク全体にわたりビットストリームを伝送する（Ｓ８８２）。ビットストリームは、ビットストリームのボーレートに同期させるためにスレーブデバイスによって用いられる所定のビットシーケンスと、宛先スレーブを識別するアドレスと、データをリードバックするための命令と、データのリードバックのための１つ又は複数のプレースホルダービットとを含む。スレーブデバイス上のロジックが、所定のビットシーケンスを検出し、オーバーサンプリングクロックをビットストリームのボーレートに同期させる（Ｓ８８４）。その後、スレーブデバイスは、リードバック命令がスレーブデバイスにアドレス指定されるかどうかを判別するために、オーバーサンプリングクロックを用いてビットストリームをサンプリングする（Ｓ８８６）。リードバックが必要な場合、ビットシーケンスを反転させることにより、複数のプレースホルダービットのうちの１つ又は複数が変更される（Ｓ８９０）。いずれのケースにおいても、シーケンスは反転されるか否かにかかわらず、リングネットワーク上の後続のスレーブデバイスに転送される（Ｓ８９２）。
【００６５】
当業者であれば、本発明の特許請求の範囲内で、説明された実施形態に対して改変が成され得ること、及び多くの他の実施形態が可能であることが理解されよう。
【図１Ａ】
2014519752.tif 000005
【図１Ｂ】
2014519752.tif 000006
【図２】
2014519752.tif 000007
【図３】
2014519752.tif 000008
【図４】
2014519752.tif 000009
【図５】
2014519752.tif 000010
【図６】
2014519752.tif 000011
【図７】
2014519752.tif 000012
【図８】
2014519752.tif 000013
【国際調査報告】
2014519752.tif 000014
2014519752.tif 000015