特許第6246119号(P6246119)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本テキサス・インスツルメンツ株式会社の特許一覧
<>
  • 特許6246119-シリアル通信インターフェース 図000004
  • 特許6246119-シリアル通信インターフェース 図000005
  • 特許6246119-シリアル通信インターフェース 図000006
  • 特許6246119-シリアル通信インターフェース 図000007
  • 特許6246119-シリアル通信インターフェース 図000008
  • 特許6246119-シリアル通信インターフェース 図000009
  • 特許6246119-シリアル通信インターフェース 図000010
  • 特許6246119-シリアル通信インターフェース 図000011
  • 特許6246119-シリアル通信インターフェース 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6246119
(24)【登録日】2017年11月24日
(45)【発行日】2017年12月13日
(54)【発明の名称】シリアル通信インターフェース
(51)【国際特許分類】
   H04L 7/04 20060101AFI20171204BHJP
   H04L 12/42 20060101ALI20171204BHJP
   H04L 25/49 20060101ALI20171204BHJP
   H04L 25/08 20060101ALI20171204BHJP
   G06F 13/38 20060101ALI20171204BHJP
【FI】
   H04L7/04 200
   H04L12/42 Z
   H04L25/49 N
   H04L25/08 Z
   G06F13/38 350
【請求項の数】18
【全頁数】21
(21)【出願番号】特願2014-512921(P2014-512921)
(86)(22)【出願日】2012年5月21日
(65)【公表番号】特表2014-519752(P2014-519752A)
(43)【公表日】2014年8月14日
(86)【国際出願番号】US2012038825
(87)【国際公開番号】WO2012162234
(87)【国際公開日】20121129
【審査請求日】2015年5月20日
(31)【優先権主張番号】13/112,743
(32)【優先日】2011年5月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ株式会社
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【上記1名の代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】ジョン マイケル ロス
【審査官】 谷岡 佳彦
(56)【参考文献】
【文献】 特表2010−524421(JP,A)
【文献】 特開2010−161918(JP,A)
【文献】 米国特許出願公開第2009/0146610(US,A1)
【文献】 特開平08−006885(JP,A)
【文献】 特開昭63−144634(JP,A)
【文献】 米国特許第06970525(US,B1)
【文献】 特開2001−168853(JP,A)
【文献】 特開2002−353985(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/04
G06F 13/38
H04L 12/42
H04L 25/08
H04L 25/49
(57)【特許請求の範囲】
【請求項1】
改善された非同期シリアル通信のための方法であって、
トランスミッタから所定のビットストリームを受信デバイスで受信すること
前記所定のビットストリームの間システムクロックのサイクル数をカウントすること
分子及び分母を有する分数レート乗算器を生成することであって、前記分母がシステムクロックサイクルの前記カウントされた数に基づく、前記分数レート乗算器を生成すること
前記分数レート乗算器を前記システムクロックに適用することによってオーバーサンプリングクロックを生成すること
前記オーバーサンプリングクロックを用いて受信されるデータビットシーケンスをサンプリングすることであって、前記データビットシーケンスがバッテリ管理システム内の複数のセルに関する電圧及び温度情報を含む、前記サンプリングすることと
更なる診断のために前記ビットシーケンスをホストコントローラに伝送することと、
複数の受信デバイスとトランスミッタとをリングネットワークにおいて接続することであって、前記トランスミッタがマスターであり、前記受信デバイスがスレーブとして指定され、各スレーブが、マスターからのデータを受信し、前記マスターが特定データに関する要件を示さない限りリング内の次のスレーブにそれを未変更で送信する、前記接続することと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
非ゼロ復帰(NRZ)符号化を用いて前記ビットストリームを符号化すること、ユニバーサル非同期レシーバ/トランスミッタ(UART)プロトコルを介して通信することを更に含む、方法。
【請求項3】
請求項1に記載の方法であって、
連続双周波数符号化を用いて前記ビットストリームを符号化することを更に含む、方法。
【請求項4】
請求項1に記載の方法であって、
前記ビットシーケンスがスレーブにアドレス指定されていること、及び、前記トランスミッタが前記スレーブからのデータの戻しを要求していることを判別するために、前記ビットシーケンスをパースすることと、
ビット時間の途中に前記ビットシーケンス内の複数のプレースホルダービットの1つを反転することによって前記スレーブから前記マスター「1」を送信することと、
前記反転されたビットシーケンスを前記リングネットワーク上の後続のスレーブに転送することと、
を更に含む、方法。
【請求項5】
請求項1に記載の方法であって、
マスタークロック上のプリスケーリング分周器を用いることによって前記システムクロックを生成することを更に含む、方法。
【請求項6】
請求項1に記載の方法であって、
一定の分子を設定すること、前記分母を調節することによって前記データサンプリングクロックを同調することを更に含む、方法。
【請求項7】
請求項1に記載の方法であって、
前記所定のビットシーケンスがスタートビットストップビットを含み、
前記方法が、前記所定のビットシーケンスの前記スタートビットの受信に応答して、前記システムクロックの数をカウントすることを更に含む、方法。
【請求項8】
リングネットワークにおけるシリアル通信のための方法であって、
前記リングネットワーク上のマスターデバイスからのビットシーケンスをスレーブデバイスで受信することであって、前記ビットシーケンスが双周波数符号化を用いて符号化されており、受信されたビットシーケンスがバッテリ管理システム内の複数のセルに関する電圧及び温度情報を含む、前記受信することと、
更なる診断のために前記ビットシーケンスをホストコントローラに伝送することと、
オーバーサンプリングクロックを前記受信されたビットシーケンスのボーレートに同期させることと、
前記ビットシーケンスが前記スレーブデバイスにアドレス指定されているかどうか、及び、前記マスターデバイスが前記スレーブからのデータの戻しを要求しているかどうかを判別するために、前記ビットシーケンスをパースすることと、
前記マスターが特定データに関する要件を示さない限り、前記ビットシーケンスをリング内の次のスレーブに未変更で送信することと、
前記マスタが前記スレーブからのデータの戻しを要求している場合に、ビット時間の途中に前記ビットシーケンスを反転させることによって、前記ビットシーケンス内の複数のプレースホルダービットのうちの1つにフィルインすることと、
前記反転されたビットシーケンスを前記リングネットワーク上の後続のスレーブに転送することと、
を含み、
前記ビットシーケンス内の各ビットの開始が、前記ビットシーケンスを反転することによってシグナリングされる、方法。
【請求項9】
請求項に記載の方法であって、
前記マスターデバイスが応答を必要としないことを判別すること、前記ビットシーケンスを次のスレーブデバイスに未変更で転送することを更に含む、方法。
【請求項10】
請求項に記載の方法であって、
前記オーバーサンプリングクロックを同期化することが、
所定のビットシーケンスにわたりシステムクロックサイクルの数をカウントすることによって、システムクロックと伝送されるビットシーケンスの前記ボーレートとの間の差を監視すること
固定分子及び可変分母を有する分数レート乗算器を生成することであって、前記分母が前記システムクロックサイクルのカウントされた数に等しい、前記分数レート乗算器を生成すること
前記システムクロックを前記分子対前記分母の比で乗算することによって、前記オーバーサンプリングクロックを生成すること
前記オーバーサンプリングクロックを用いて前記トランスミッタからデータビットシーケンスをサンプリングすること
を更に含む、方法。
【請求項11】
リングネットワークにおけるシリアル通信のためのシステムであって、
マスターデバイスと、
前記リングネットワークを形成する前記マスターデバイスに接続される複数のスレーブデバイスと、
前記マスターデバイスと外部ホストデバイスとの間のインターフェースと、
ビットストリームを生成し、前記リングネットワークにわたってビットシーケンスを伝送するための、前記マスターデバイス上のロジックであって、前記ビットストリームがデータのリードバックのための1つ又は複数のプレースホルダービットと、バッテリ管理システム内の複数のセルに関する電圧及び温度情報とを含む、前記ロジックと、
宛先アドレスを決定するために前記ビットストリームをパースするため、及び、前記ビットストリーム内で要求された任意のリードバックデータを付加するための、第1のスレーブデバイス上のロジックであって、前記マスターによってデータが要求されない場合に前記スレーブが前記ビットシーケンスを前記リング内の次のスレーブに未変更で送信する、前記第1のスレーブデバイス上のロジックと、
を含む、システム。
【請求項12】
請求項11に記載のシステムであって、
前記第1のスレーブデバイス上の前記ロジックが、
前記ビットストリームが前記第1のスレーブデバイスにアドレス指定されていることを判別するために、前記ビットストリームをパースし、
予め定義されたビット時間の途中に前記ビットストリーム内のビット論理「1」に反転させることにより、前記複数のプレースホルダービットのうちの1つを変更することによって、前記ビットストリームにリードバックデータを付加し、
前記反転されたビットストリームを、前記リングネットワーク上の前記複数のスレーブデバイスのうちの1つに転送する、
ためのロジックである、システム。
【請求項13】
請求項12に記載のシステムであって、
前記インターフェースを介して前記マスターデバイスと通信するホストデバイスを更に含む、システム。
【請求項14】
請求項13に記載のシステムであって、
前記スレーブデバイスがセルに結合され、前記リードバックデータが前記セルに関する電圧及び温度を含み、前記ホストデバイスがバッテリ管理システム内のコントローラである、システム。
【請求項15】
請求項14に記載のシステムであって、
前記ホストデバイスからの所定のビットシーケンスの受信の間システムクロックサイクルの数をカウント
分子及び分母を有する分数レート乗算器を生成
前記分数レート乗算器を前記システムクロックに適用することによってオーバーサンプリングクロックを生成
前記データサンプリングクロックを用いて前記ホストデバイスからデータビットシーケンスをサンプリングする、
ための前記インターフェース上のロジックを更に含み、
前記所定のビットシーケンスが、スタートビットストップビットを有し、非ゼロ復帰(NRZ)符号化を用いて符号化されており
前記分母がシステムクロックサイクルの前記カウントされた数に基づいている、システム。
【請求項16】
請求項15に記載のシステムであって、
前記ロジックが、更に、固定分子を選択し、前記分母を調節することにより前記データサンプリングクロックを同調するためのものである、システム。
【請求項17】
請求項11に記載のシステムであって、
前記ホストデバイスからの所定のビットシーケンスの受信の間システムクロックサイクルの数をカウント
分子及び分母を有する分数レート乗算器を生成
前記分数レート乗算器を前記システムクロックに適用することによってオーバーサンプリングクロックを生成
前記データサンプリングクロックを用いて前記ホストデバイスからデータビットシーケンスをサンプリングする、
ための前記インターフェース上のロジックを更に含み、
前記分母がシステムクロックサイクルの前記カウントされた数に基づいている、システム。
【請求項18】
請求項11に記載のシステムであって、
前記ビットシーケンスを反転させるために前記第1のスレーブデバイスに結合されるX−ORゲートを更に含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は通信ネットワークに関し、特に、非同期シリアルデータネットワーク内の要素の同期化の改善に関する。
【背景技術】
【0002】
データ通信において、データ転送のための形式にはシリアル及びパラレルの2つの明確な形式がある。シリアルデータ転送では、データは一度に1つのシンボルが、例えば有線、光ファイバ、又はワイヤレス接続などの、単一の通信チャネル又はリンクを介して転送される。パラレルデータ転送では、複数のシンボルが、対応する複数のチャネルを介して同時に転送される。データは、通常、バイナリ形式で表され、シンボルは、1又はゼロなどの1つ又は複数のバイナリデータビットを符号化し得る。
【0003】
パラレル通信に勝るシリアル通信の利点の1つは、送受信回路、印刷回路基板領域、集積回路ピン、コネクタ、及びケーブルなどの、実装する物理リソースが、シリアルインターフェースの方が少ないことである。手短に言えば、シリアルインターフェースは、低コストで、コンパクトで、ポータブルなシステムを実装するために有利である。例えば、バッテリ管理システムは、直列に接続された多数のリチウムイオンバッテリセルを含むものがある。これらのシステムにおいて、3〜4ボルト(V)の何百個ものセルが、最高800V又はそれ以上のバッテリパックに直列に接続され得る。これらのバッテリ管理システムは、ハイブリッド電気自動車、バス、ゴルフカート、フォークリフト、モーターボートなどの、いくつかの応用例で用いられる。
【0004】
ユニバーサル非同期レシーバ/トランスミッタ(UART)は、シリアルインターフェースを実装するデバイスの一例である。UARTは、現代のコンピューティング及び通信において至ることころにあり、当分野では長い歴史を有する。UARTの或る標準的な実装は、RS−232トランシーバに見られる。RS−232規格は、米国電子工業会(EIA)によって最初にリリースされた1960年代にはじまる。本規格は、より高いデータレートを取り入れ、互換性のギャップを埋めながら、経時的に発展してきた。RS−232規格の最新版は、1997年10月付けのETA/TIA−232−Fである。プロトコルは、これらの通信を妥当なコストで処理する複雑さを含む集積回路(IC)の可用性から恩恵を受けた。
【0005】
UARTは、1つはデータの送信用1つはデータの受信用という2つのシリアルチャネルを備え、全二重で動作する。UARTプロトコルデータはシンボル当たり1ビットのフレームで伝送され、データは非ゼロ復帰(NRZ)符号化を用いてバイナリ形式で表される。典型的なUARTフレームは、スタートビット、8データビット、及びストップビットを含む。その他の変形(付加的ストップビット、より少ないデータビット、初歩的な誤り検出用のパリティビットなど)も可能である。RS−232バスドライバは反転並びにレベルシフトするため、ロジック1はバス上の負電圧であり、ロジック0は正電圧である。
【0006】
UARTは、通常はクロック動作ロジック又は同期ロジックを用いて構成される。「非同期」という用語は、クロック信号がインターフェースプロトコルの一部として伝送されないことから生じている。実際に、送信及び受信UARTのクロックは、異なる位相及び周波数を有し得る。したがって、2つのUARTが通信するとき、トランスミッタ及びレシーバの両方が、ボーレートとも呼ばれるシンボルレートについて、あらかじめ一致しなければならない。受信UARTは、スタートビット及びストップビットを監視することによって、データフレームの制限を認識し、所定のボーレートに基づいて各ビットに最適なデータサンプリングポイントを決定する。
【0007】
UARTレシーバは、一般に、オーバーサンプリングクロックを用いてそれら自体をデータフレームに同期させる。例えば、UARTはボーレートの16倍のサンプルクロックを用い得る。新しいフレームが、スタートビット開始時に立ち下がりエッジによって認識される。UARTは、この立ち下がりエッジでカウンタをリセットし、スタートビットの中間が8クロックサイクル後に発生すること、及び、その後、各後続ビットの中間ポイントが16クロックサイクルごとに現れることを予期する。ビットは中間ポイントにおいてサンプリングされる。別の方法は、単に中間ポイント(16サイクルのうちのサイクル8)で1回ではなく、中間ポイントの前後のサイクルでも(16サイクルのうちのサイクル7、8、及び9)、各ビットをサンプリングすることを含む。サンプルに3票決議(vote-of-three)が適用されることによって、いずれか1つのサンプルを損なうノイズによって生じるデータ誤りが回避される。
【0008】
トランスミッタ及びレシーバクロックの周波数安定性は、データの正確な転送を試みる際の問題である。受信及び送信UARTクロック周波数が違い過ぎると、データ誤りが生じる可能性がある。データフレームのタイミングは送信UARTのクロックに基づいている。受信UARTは、スタートビットの検出に基づいてフレームに同期する。フレーム内の残りのビットがサンプリングされるにつれて、トランスミッタとレシーバとの間に周波数の不一致があれば累積され、ビットのサンプリングポイントは実際の中間ポイントから外れることになる。この偏差がビットの有効データウィンドウの境界を超え、ビットのサンプリングが早すぎるか又は遅すぎる場合に、データ誤りが生じる。これは、長い容量性RS−232バスによって引き起こされるような、有限(及び通常は低速)伝送の立ち上がり及び立ち下がり時間により、有効データウィンドウが縮小されるという事実によって悪化する可能性があるため、レベルが定まった中間ポイント近くまでサンプリングすることが更に重要となる。クロック周波数許容差は、一般にパーセンテージで記述される。例えば、通常のシナリオにおけるトランスミッタとレシーバとの間の周波数不一致は約3〜4%を超えてはならず、正確な許容差は、ビットに対する有効データウィンドウのオーバーサンプリング周波数及びサイズに依存する。この不一致を超えると、スタートビットとの初期の同期化後のデータサンプリングポイントの累積ドリフトにつながり、結果として、ビット遷移の未定義領域の間サンプリング或いは誤ビットのサンプリングなどの、サンプリング誤りが生じる可能性がある。
【0009】
送信クロックと受信クロックを一致させるために水晶発振器が用いられてきたが、これらは、コスト重視の適用例には費用がかかり過ぎ、低電力の適用例には電力を消費し過ぎる可能性がある。RC発振器は、埋め込み型回路で一般に見られる選択肢であるが、プロセス、電圧、及び温度の変動、すなわち、条件の変化に応じた周波数変化、に敏感である。これらの影響を補償するには、より大きくより高い電流回路の設計と時間のかかるデバイストリミングが必要であるが、これらはすべて望ましくない。例えば、前述のバッテリ管理システムにおいて、リチウムイオンバッテリセルが揮発性であるため、セルの電圧及び温度を注意深く監視する必要がある。特に充電及び放電の間、監視及び制御により、過剰電圧(過充電)、過小電圧(過放電)、並びに、高温及び低温条件が回避される。この責務に対処するために、特別なバッテリ管理集積回路(IC)が開発されている。これらのデータ取得デバイスは、セルの電圧及び温度を監視するための入力、並びにこれらの量をアナログ形式からデジタル形式に変換するための回路を含む。各セルの電圧及び各セル(又はセルの小グループ)の温度を個々に監視しなければならないため、1つのデバイスを何百ものセルを監視するように構築するのは実用的ではない。このデバイスは大きくなり過ぎる(ピンが多すぎる)ことになり、システム内の高電圧が、このデバイスを一般に利用可能なシリコン技術で構築することを妨げる。加えて、バッテリパックの物理的寸法は、すべてのセルの配線を単一デバイスに戻さなければならない場合、ロングワイヤ輻輳配線を必要とし得る。
【0010】
UARTは、様々なボーレートで動作するように設計され得る。ロジック設計を簡略化するために異なる各ボーレートについて同数のビット当たりサンプルを維持すること、及び、ボーレートに比例したサンプルノイズに対する耐性のスケーリングを提供することが望ましい。これは通常、最高ボーレートよりも大きな周波数でUARTにシステムクロックを提供すること、及び、望ましいサンプリングクロック周波数を生成するために整数分周器を用いることによって達成される。表1は、16倍オーバーサンプリングクロックを生成するために8.192MHzシステムクロックが用いられると想定した、異なるボーレートについての本方法を示す。9600ビット/秒のボーレートの場合、理想的なサンプリングクロックは9600×16=153.6kHzとなる。しかしながら整数分周器を用いると、生成され得る最も近い周波数は154.566kHzである。これは、信頼できるデータ伝送として許容し得る0.629%の誤りを表す。
【表1】
【0011】
表1を更に考察すると、ボーレートが上昇するにつれてサンプリングクロック誤りが増加することがわかる。38400bpsについての誤り(2.56%)は辛うじて許容し得るが、76800bpsについての誤りは明らかに許容できず、結果としてデータサンプリング誤りとなり得る。更にこの誤りは、温度変動などによるシステムクロックの付加的ドリフトの主因ではない。また、トランスミッタ内のクロックのいかなる誤りの主因でもない。
【0012】
非同期シリアル通信におけるクロック不一致の影響を緩和するために用いられ得る方法の1つは、NRZ符号化ではなく連続双周波数(bi-frequency)符号化などの、代替信号方式を含む。NRZ符号化とは異なり、連続双周波数符号化は、あらゆるビットのスタート時に信号遷移を提供する。ゼロ及び1データビットは、ビット時間の途中に第2の遷移が存在するかどうかによって区別される。例えば、ゼロは、ビット時間開始時に単一の遷移があり、ビット時間の残りには付加的遷移がないことによって特徴付けられる。これに対して1は、ビット時間開始時に第1の遷移があり、ビット時間の途中に第2の遷移があることによって特徴付けられる。
【0013】
連続双周波数符号化は、受信デバイスがスタートビットのみではなく各ビットの開始に同期することができるため、より大きなクロック周波数不一致に寛容である。実際のところ、従来のUARTプロトコルにおけるスタートビット及びストップビットは、もはや不要である。各ビットが同期されるため、後続の各ビットが受信されても誤りは累積せず、16倍のオーバーサンプリングを用いる場合、20%を超えるクロック周波数の不一致が許容され得る。しかしながら、許容差は改善されるものの、さらなる改善が求められる。
【0014】
非同期シリアルインターフェースは一般に、リングネットワークなどの様々なネットワークトポロジーにおいてノードを接続するために用いられる。リングネットワークは、ノードが閉ループで接続されるネットワークトポロジーである。各ノードは、任意の特定のノードから始まり、他のすべてのノードを通る経路をトラバースし、開始ノードに戻るように、厳密に2つの他のノードに接続される。各ノードは、システム又はデバイスを表す接続ポイントであり、リング内のデバイスはノード間の接続を介して互いに通信する。中間ノードは、隣接しないノードがリング周辺で互いに通信可能となるように、それらの隣接ノード間でデータを渡すことが可能である。ネットワークの異なるノード内の通信回路は、通常は共通クロックを共有せず、すなわち非同期である。
【0015】
同期されていないクロックの問題を克服するために、デバイス間のシリアル通信のための改良されたシステム及び方法が求められており、これはリングネットワークなどの様々なトポロジーの通信ネットワーク内で適用可能である。
【発明の概要】
【0016】
本発明は、非同期シリアルインターフェースを介して通信する送信デバイスと受信デバイスとの間のクロックの許容される周波数許容差を改善するためのシステム及び方法を提供することにより上記の問題に対処し、更に、リングネットワークなどのネットワークトポロジーにおいてこれらの改善を可能にする。
【0017】
システムの一実施形態は、非同期シリアルインターフェースを介して通信する送信デバイス及び受信デバイスを含み、送信デバイスは所定のビットシーケンスを伝送する。受信デバイスは、所定のビットシーケンスの間システムクロックサイクル数をカウントし、分数乗算器を用いて、受信したデータのボーレートに比例するオーバーサンプリングクロックを生成し、これは付加的な受信データをサンプリングするために用いられる。オーバーサンプリングクロック周波数は、固定分子及び可変分母の分数によって乗算されたシステムクロック周波数に等しく、分母は所定のビットシーケンスの間カウントされたシステムクロックサイクルの数に等しい。
【0018】
システム内の送信デバイス及び受信デバイスは、非ゼロ復帰(NRZ)データ符号化を備えたUARTプロトコルを用いて通信可能であり、この場合、所定のビットシーケンスは、いくつかの交番する「1」ビット及び「0」ビットである。代替として、送信デバイス及び受信デバイスは、連続双周波数符号化データを用いて通信可能であり、この場合、所定のビットシーケンスはいくつかの連続する「0」ビットである。
【0019】
更に、双周波数符号化データを用いる場合、複数のデバイスをリングネットワークトポロジーで接続可能であって、1つのデバイスはマスターと呼ばれる送信デバイスであり、残りのデバイスはスレーブと呼ばれる受信デバイスである。マスターは、各スレーブによって受信される所定のビットシーケンスを伝送し、各スレーブはそのオーバーサンプリングクロックを受信されたデータのボーレートに同期させる。データがマスターから1つ又は複数のスレーブに伝送されているとき、各スレーブはデータを受信し、そのデータをリング内の次のスレーブに未変更で送信する。マスターがスレーブから逆にデータを受信したい場合、マスターはリング周辺で「0」の値と共にプレースホルダービットを伝送する。特定のスレーブが、「0」を送信するために未変更のデータを渡すことによって、又は、「1」を送信するために予め定義されたビット時間の途中にデータを反転させることによって、マスターに送信されるべき情報でプレースホルダービットを「フィルイン(fill−in)する」ことが可能である。マスターは、データビットがリング内の最後のスレーブデバイスから戻されたときに、この情報を読み取る。バッテリ管理システムにおいて、1つ又は複数のセルで安全でない状態が発生したかどうかを判別するために、この情報を電圧及び温度情報を解釈する中央コントローラへと送り返すことができる。その後、中央コントローラ(ホスト)は、システムのオペレータを変更すること、セルの充電及び/又は放電を中止するために回路ブレーカを開くこと、或いは、安全でない状態を軽減するための何らかの他の処置を講じることなど、適切な処置を講じることができる。加えて、マスターデバイスは、過剰又は過小の電圧又は温度条件を検出する機能など、一定量のそれ独自のインテリジェンスを含み得るか、或いは、セルの電圧又は電荷バランシングを制御する機能などの付加的な動作モードを有し得る。双方向通信は、ホストコントローラがデータ取得デバイスのモード及び機能を構成し得、その後、状態及び測定情報をリードバックし得ることを保証する。これは典型的に、直列接続された(又はデイジーチェーン接続された)通信インターフェースを用いることによって成される。
【0020】
別の例示の実施形態において、本発明は改善された非同期シリアル通信のための方法であり、この方法は、所定のビットシーケンスをトランスミッタから受信すること、所定のビットシーケンスにわたってシステムクロックサイクル数をカウントすることによってシステムクロックと送信ボーレートとの間の差を監視すること、固定分子及び可変分母を有する分数レート乗算器を用いてオーバーサンプリングクロックを生成すること、並びに、オーバーサンプリングクロックを用いてトランスミッタからデータビットシーケンスをサンプリングすることを含む。分母は、カウントされたシステムクロックサイクルの数に等しく、オーバーサンプリングクロックは、システムクロックを分子対分母の比で乗算することによって生成される。
【0021】
また、この方法は、「0」の値を有するプレースホルダービットを含む双周波数符号化データをマスターから受信すること、及び、プレースホルダービットを「フィルインする」ことによりデータをマスターに返信することであって、このデータは「1」を送信するためにビット時間の途中に反転されることを、含み得る。
【0022】
この方法は、シンプルであり、広範なボーレート及び同調領域にわたってスケーラブルである。電力消費、及びサンプリングされるノイズに対する耐性は、同一の動作及び性能を維持しながら、オーバーサンプリングクロック周波数に、したがってボーレートとスケーリングする。加えて、本発明は、送信デバイスと受信デバイスとの間のクロックを緊密に一致させる必要性を減少させる。本発明の他のシステム、方法、特徴、及び利点は、当業者であれば以下の図面及び詳細な説明を考察することにより明らかとなろう。
【図面の簡単な説明】
【0023】
図1A】本発明の例示の一実施形態に従った、リングネットワークにおけるシリアル通信のためのシステムを示す。
【0024】
図1B】本発明の例示の一実施形態に従ったバッテリ管理システムを示す。
【0025】
図2】本発明の例示の一実施形態に従った双周波数符号化ビットストリームを示す。
【0026】
図3】本発明の例示の一実施形態に従った、ビットストリームにおけるリードバックデータを示す。
【0027】
図4】本発明の例示の一実施形態に従った、データインバータを含むシステムを示す。
【0028】
図5】本発明の例示の一実施形態に従った、NRZ形式で符号化されたUARTシリアルビットストリームを示す。
【0029】
図6】本発明の例示の一実施形態に従った、オーバーサンプリングクロックの生成を示す。
【0030】
図7】本発明の例示の一実施形態に従った、受信UARTを同期化するための方法を示す。
【0031】
図8】本発明の例示の一実施形態に従った、リングネットワークにおけるシリアル通信のための方法を示す。
【発明を実施するための形態】
【0032】
本発明は、デバイス間のシリアル通信を改善するための新規な技法を提示する。リングネットワークにおいて複数のデバイスが接続される。1つのデバイスがマスターデバイスとして定義され、残りのデバイスがスレーブデバイスとして定義される。マスターデバイスは、連続双周波数符号化ビットストリームを用いて任意のスレーブと通信する。マスターデバイスによって伝送されるシリアルデータは、リング周辺を各スレーブまで移動し、その後マスターに戻る。各ビットの開始は、リング内の第1のスレーブに接続されたラインの状態を反転するマスターによってシグナリングされる。マスターは、予め定義されたビット時間の途中に、2度目のライン反転によって「1」ビットをシグナリングすることができる。そうでなければ、ビットは「0」と解釈される。データがマスターから1つ又は複数のスレーブに伝送されているとき、各スレーブはデータを受信し、これを未変更でリング内の次のスレーブに送信する。マスターがスレーブから逆にデータを受信したい場合、マスターはリング周辺で「0」の値を有するプレースホルダービットを送信する。特定のスレーブが、「0」を送信するために未変更のデータを渡すことによって、又は、「1」を送信するために予め定義されたビット時間の途中にデータを反転させることによって、マスターに送信されるべき情報でプレースホルダービットを「フィルインする」ことができる。マスターは、データビットがリング内の最後のスレーブデバイスから戻されたときに、この情報を読む。また、マスターデバイスは、外部のホストデバイスと通信するためのUARTインターフェースを含む。リングネットワーク内のデータは連続双周波数符号化を介して伝送されるが、UARTで送信及び受信されるデータは、NRZ符号化され、スタート及びストップフレーミングビットを含む。
【0033】
データは、送信デバイスにおけるローカルシステムクロックの周波数に基づく特定のボーレートで伝送される。受信デバイスは、受信されたデータを適切にサンプリングするために、伝送されたボーレートに同期させなければならない。理想的には、受信デバイス内のオーバーサンプリングクロックは、ボーレートの厳密な整数倍、例えばボーレートの周波数の16倍、となる。しかしながら、温度などの環境条件の変化により、発振器精度及びドリフトにおける固有の制限によって生じる、送信デバイス及び受信デバイス内のローカルシステムクロック間の周波数の差が、オーバーサンプリングクロックがボーレートの正確な倍数になることを妨げるため、同期化の差がサンプリング誤り及びデータ伝送失敗につながる可能性がある。この問題を解決するために、リング内のデバイスには、送信デバイスと受信デバイスとの間の、すなわち、マスターデバイスからスレーブデバイスへ、並びに外部ホストデバイスからマスターデバイスへの、クロック同期化を改善するためのロジックが装備される。ローカルシステムクロックからデータオーバーサンプリングクロックを生成するために、受信デバイス内において分数レート乗算器が用いられる。分数は、分子及び分母の2つの値として記憶される。オーバーサンプリングクロック周波数は、分子対分母の比で乗算されたシステムクロック周波数に等しい。分数レート乗算器は、当分野で知られており、例えばM/N整数PLLを用いるなどのいくつかの方式で実装可能である。分子を一定に保ち、分母のみを調節することによって、オーバーサンプリングクロックを、送信デバイスから受信される非同期シリアルデータストリームのボーレートの一定倍に一致するように同調させることができる。オーバーサンプリングクロックは、所定のビットシーケンス後に受信されるシリアルデータをサンプリングするための基準として用いられる。
【0034】
分母は、所定のビットシーケンス内のシステムクロックサイクル数をカウントすることによって、自動的に決定される。同期化に先立ち、ビットシーケンスは、システムクロックを用いてシリアルデータをサンプリングすることによってシーケンス内の遷移を検出することにより識別され得る。NRZ符号化の場合、所定のビットシーケンスは所定数の交番する「1」及び「0」であり、ビット当たり1遷移となる。連続双周波数符号化の場合、所定のビットシーケンスはいくつかの「0」ビットであり、この場合もビット当たり1遷移となる。例えば、NRZの場合の所定のビットシーケンスは、スタートビット(「0」)、8つの交番するデータビット(「10101010」)、及びストップビット(「1」)を有する単一フレームであり得、システムクロックサイクルの数は、第1のビットの立ち上がりエッジ及びストップビットの立ち上がりエッジによって定められる8つのデータビットにわたってカウントされる。連続双周波数符号化の場合、例示の所定のビットシーケンスは「000000」などの偶数個のゼロであり、システムクロックサイクルの数は、第1のビットの立ち上がり/立ち下がりエッジ及び最後のゼロに続く次のビットの立ち上がり/立ち下がりエッジによって定められる、偶数個のビットにわたってカウントされる。システムクロックは等しい数の高パルス及び低パルスを有するために偶数個のビットにわたってカウントされるため、有限かつ異なる立ち上がり時間及び立ち下がり時間によって生じる高パルス幅及び低パルス幅におけるいかなる差も平均化する。その結果のカウントは、分母の値として直接使用される。同調の解像度及び範囲は、分子及び分母のサイズによってのみ制限される。
【0035】
この解決策は、シンプルであり、広範なボーレート及び同調領域にわたってスケーラブルである。電力消費、及びサンプリングされるノイズに対する耐性は、同一の動作及び性能を維持しながら、オーバーサンプリングクロック周波数、したがってボーレートとスケーリングする。
【0036】
本明細書及び本開示全体で使用されるように、ユニバーサル非同期レシーバ/トランスミッタ(UART)という用語は、非同期シリアルインターフェースを実装する任意のコンピュータハードウェア又はソフトウェアである。UARTは一般に、EIA RS−232などの他の通信規格に関連して用いられる。UARTは、コンピュータ又は周辺デバイスシリアルポートを介したシリアル通信に用いられる集積回路の一部であり得る。UARTは、一般にマイクロコントローラ内に含められる。2重UART又はDUARTは、2つのUARTを単一チップに組み合わせる。送信UARTは、データのバイトを取り、個々のビットを順次に伝送する。受信UARTは、ビットを完全なバイトに再アセンブルする。
【0037】
ビットは信号ワイヤで伝送される。信号は多くの異なる形であり得る。電圧シグナリングに関する規格の例が、EIAからのRS−232、RS−422、及びRS−485である。いくつかのシグナリング方式では電線を用いない。こうした例が、光ファイバ、IrDA(赤外線)、及びそのシリアルポートプロファイル(SPP)の(ワイヤレス)ブルートゥースである。いくつかのシグナリング方式は、(有線又は無線で)搬送波信号の変調を用いる。電話回線モデムによるオーディオ信号の変調、データ無線によるRF変調、及び電力線通信用のDC−LINが、その例である。シリアル通信は、「全二重」(同時に送受信する)又は「半二重」(デバイスは送信及び受信を交代で行う)であり得る。
【0038】
UART、マスター、スレーブ、ホスト、及び他のデバイスは、プロセッサ、メモリ、トランシーバ、入力、及び出力を有し得る。メモリは、アプリケーション、ソフトウェア、又はロジックを記憶する。プロセッサの例は、コンピュータプロセッサ(処理ユニット)、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、及びマイクロコントローラなどである。ロジックを記憶し得るメモリの例は、RAM(ランダムアクセスメモリ)、フラッシュメモリ、ROMS(読み取り専用メモリ)、EPROMS(消去可能プログラマブル読み取り専用メモリ)、及びEEPROMS(電気的消去可能プログラマブル読み取り専用メモリ)を含む。
【0039】
本明細書及び本開示全体を通じて用いられる「ロジック」とは、プロセッサが他のデータ及び情報を操作及び伝送できるようにするために適用され得る、命令信号及び/又はデータの形式を有する任意の情報を指す。ロジックは、メモリに記憶される信号から形成され得る。ソフトウェアはこうしたロジックの一例である。ロジックは、デジタル及び/又はアナログのハードウェア回路、例えば、論理AND、OR、XOR、NAND、NOR、及び他の論理演算を含むハードウェア回路、によって構成されてもよい。ロジックは非同期であってもよく、又は、その動作がクロックに同期されることを意味する同期であってよい。ロジックは、組み合わせであってもよく、又は順次であってよい。順次ロジックでは、システムの状態は1つ又は複数の記憶要素内で維持される。ロジックはソフトウェア及びハードウェアの組み合わせで形成され得る。ネットワーク上で、ロジックはサーバ又はサーバ複合体上にプログラミングされ得る。特定のロジックユニットは、単一のロジック位置、ユニット、又はデバイスに限定されない。
【0040】
以下の説明では、図面全体にわたって最も対応して示す構造(例えば132及び232など)は、同じ特性を備え、同じ構造及び機能を対象としていると仮定され得る。対応して示す要素間に指摘されていない差があり、この差が、特定の実施形態に対する要素の非対応的構造又は機能となる場合、その特定の実施形態に対して与えられたその相反する説明に従うものとする。
【0041】
図1A及びBは、本発明の例示の実施形態に従った、リングネットワークにおけるシリアル通信のためのシステムを示す。デバイス101、102、及び103は、垂直インターフェーススタックで配置され、非同期シリアルインターフェースバスを介して互いに通信する。デバイス101、102、及び103はそれぞれ、対応するスレーブユニットS1、S2、及びS3を有する。スレーブS1〜S3は、スレーブが、所定のビットシーケンスを検出すること、及びそれらのオーバーサンプリングクロックを受信したビットストリームのボーレートと同期させることを可能にするロジックを含む。底部デバイス101は、底部スレーブS1並びにマスターユニット105を有する。マスターユニット105は、スレーブS1〜S3を指令し、インターフェース120及び107と通信もする。インターフェース107はSPIインターフェースであり、インターフェース120はUARTである。UART120は、UART120が、所定のビットシーケンスを検出すること、及びオーバーサンプリングクロックを受信したビットストリームのボーレートと同期させることを可能にするロジックを含む。インターフェース120及び107の何れか又は両方が、ホストデバイス115に接続している。UART120の1つの機能が、リング全体にわたって伝搬されるように、ホスト115からマスター105へのデータ/命令を変換することである。リング内の各デバイス101〜103は、バッテリ管理、データ取得(DAQ)などの、それぞれのスレーブと通信する他の機能109を含む。他の機能109は、データストレージ、電力供給、マイクロコントローラなどの機能であり得る。
【0042】
マスター105によって送信されたデータストリーム110は、リング周辺を各スレーブへと移動した後、マスター105に戻る。マスター105がデバイス101〜103に情報を送信すると、各スレーブS1〜S3は、そのデータを受信し、リング内の次のスレーブに送信する。リング内の最後のスレーブ(デバイス103内の上部スレーブS3)は、デバイス101〜103を介してデータをマスターに返信し、そのため、論理リングが形成される。リングの論理フローはボックス130で表す。データストリーム110は、連続双周波数符号化される。各ビットの開始は、リング内の第1のスレーブに接続されたラインの状態を反転するマスターによってシグナリングされる。マスターは、予め定義されたビット時間の途中の2度目のライン反転によって「1」ビットをシグナリングすることができる。そうでなければ、ビットは「0」と解釈される。データがマスターから1つ又は複数のスレーブに伝送されているとき、各スレーブは、そのデータを受信し、これを未変更でリング内の次のスレーブに送信する。
【0043】
リング内の各デバイス101〜103には固有のアドレスが割り当てられる。ビットストリーム110は、宛先スレーブアドレスを識別する情報と、デバイスによって実行されるべき命令とを含む。スレーブは、ビットストリームを受信し、データをパースし、命令がそのスレーブに向けられているか否かを判別するためのロジックを含む。マスターがスレーブから逆にデータを受信したい場合、ビットストリーム110は、宛先スレーブアドレス、要求されたデータを識別する命令、及びそれに続く、「0」の値を有するプレースホルダービットを含む。データは、ビットストリーム110内のプレースホルダービットを変更することによって、マスターに返信される。「0」を送信するには、アドレス指定されたスレーブは、リング内の次のデバイスにプレースホルダービットを未変更で渡す。「1」をマスターに送信するには、スレーブは、ビット時間の途中にリング内の次のデバイスに接続されたラインを反転させる。このようにして、特定のスレーブが、マスター105に返信されるべき情報でプレースホルダービットを「フィルインする」ことができる。マスター105は、データビットが上部スレーブデバイス103から戻されるときに、この情報を読み取る。1つのスレーブ101〜103のみが、任意の所与のプレースホルダービットを変更する。排他的OR(X−OR)機能が、ラインの状態を反転させるために信号経路内の各スレーブによって使用される。
【0044】
本構成は、たとえリング内の各デバイスを接続しているラインが異なる状態にあり得る場合も、双周波数符号化方式の連続性を維持する。連続双周波数符号化は、フレーム化されたビットシーケンスを必要とせず、代わりに、単一の遷移又は「エッジ」がビット時間の開始を定義する。これにより、単に全バイトのスタートビットを同期化するよりも高いクロック許容差を提供するビット単位同期化が可能となる。これは、フレーミングビットを用いない他のインターフェース、例えばシリアル周辺インターフェース(SPI)、との互換性にうまく機能する。リングトポロジーは、各デバイスを介する伝搬遅延に対して寛容であり、リングの完全性に関してマスターにフィードバックを提供するという利点を有する。本発明は、スレーブにおける不要な処理によって生じる遅延を最小限にしながら、これらの利点の組み合わせを可能にする。
【0045】
図1Bは、上記の例示の実施形態がバッテリ管理システム内で用いられている特定の適用例を示す。バッテリ管理システムが、各デバイス101〜103を用いて一度に6〜12個のセルを監視し得、セル自体と同様にして順次通信し得、その結果、複数の直列接続されたリチウムセルを監視するために直列接続されたデバイスとなる。これらのデータ取得デバイスによって取得された情報は、安全でない状況がセルの1つ又は複数で生じたかどうかを判別するために電圧及び温度情報を解釈する中央コントローラ(ホストデバイス115)に返信され得る。
【0046】
本実施形態において、セル109のアレイが、例えば、図1Aのデバイス101〜103の一部を構成し得るシステムを形成するために、互いに直列に接続される。この場合、セルの管理は付加的機能109である。デジタル取得(DAQ)デバイス105a、105b、105c、及び105dが、更に互いに直列に接続され、セル109の複数のアレイと通信するためのインターフェースを有する。図示された実施形態において、DAQデバイス105a〜105dはそれぞれ5つのセルと通信しているが、システムの範囲に応じて他の構成が可能である。DAQデバイス105a〜105dは、スタックに配置され、非同期シリアルインターフェースバスを介して互いと通信する。DAQデバイス105a〜105dは、それらが、所定のビットシーケンスを検出すること、及びそれらのオーバーサンプリングクロックをDAQデバイス105aからの受信したビットストリームのボーレートに同期させることを可能にするロジックを含む。したがってDAQデバイス105aは、図1Aのコンテキスト内ではマスターとみなされ得るため、DAQデバイス105a〜105dに、セル109のそれらの部分の、電力レベル、電圧、温度などを測定するように指令する。
【0047】
DAQデバイス105aは、更にホスト115と通信し、ホストシリアル通信バス121を介してホスト115からコマンドを受信する。DAQ105aは、それが、所定のビットシーケンスを検出すること、及びオーバーサンプリングクロックをホスト115から受信されるビットストリームのボーレートと同期させること、並びに、スタック全体を通じて伝搬されるように、ホスト115からすべてのDAQデバイス105a〜105bへのデータ/命令を変換することを可能にするUARTロジックを更に含み得る。DAQ105aによって伝送されるデータストリームが、図1Aに関して上記で説明したように、システムを介して各DAQデバイスへ伝搬され、その後戻される。ビットストリームは、セル109の対応する部分の、電力レベル、状態などを表す値のためのプレースホルダービットを含む。情報は、セルの1つ又は複数で安全でない状況が生じたかどうかを判別するために電圧及び温度情報を解釈するホスト115に通信される。その後ホスト115は、システムのオペレータを変更すること、セル109の充電及び/又は放電を中止するために回路ブレーカを開くこと、或いは、安全でない状況を軽減するための何らかの他の処置を講じることなどの、適切な処置を講じることができる。加えて、DAQ105a〜105dは、過剰又は過小の電圧又は温度条件を検出する能力などの、一定量のそれら自体のインテリジェンスを含み得るか、或いは、セルの電圧又は電荷バランシングを制御する能力などの付加的な動作モードを有し得る。双方向通信は、ホストコントローラがデータ取得デバイスのモード及び機能を構築し得、その後、状態及び測定情報をリードバックし得ることを保証する。
【0048】
図2は、本発明の例示の実施形態に従った、双周波数符号化ビットストリーム210を示す。受信デバイスが、ライン上の変化を検出するために、例えば16倍ビットレートのオーバーサンプリングクロックでサンプリングすることによって、シリアルデータストリーム又はビットシーケンス210を監視する。各ビットは、ビット時間内に含まれる。データライン210上の変化がエッジとみなされ、これを検出すると、ビット時間に等しいオーバーサンプリングクロックサイクルの数に対し、例えば、16倍オーバーサンプリングレートに対して16サイクルに対し、カウントが開始される。カウントの間、他の遷移が現れない場合、0として処理される。カウントの間他のエッジが現れた場合、1として処理される。
【0049】
図3は、本発明の例示の実施形態に従った、ビットストリームにおけるリードバックデータを示す。シリアルビットストリーム310が、連続双周波数符号化形式でマスターによって伝送され、スレーブによって受信されるデータを表す。ビットストリーム310は、ビットストリームの開始時に送信される第1のセクション314を含み、受信スレーブ(S1〜S3)オーバーサンプリングクロックを送信されたボーレートに同期させるために用いられる偶数のゼロを含む。データを返信するためのスレーブの場合、マスターは、ビットシーケンス310のセクション318に示される一連の「空」又はゼロ値ビットスロットを送信する。シリアルビットストリーム310のセクション316は、宛先スレーブアドレスと、要求されたデータを識別するための命令とを含む。
【0050】
シリアルビットストリーム312は、マスターにデータを返信するためにスレーブによって変更されたビットストリームを表す。「空」ビットスロット318は、「0」(ビット時間当たり単一エッジ)に等しい。スレーブは、「0」を認識し、シリアルデータアウト312に示されるように、データを返信するために空ビットスロットを修正する。スレーブは、「0」を示すためにビットスロットを空のままにしておく。スレーブは、「1」を表すために、空ビットスロットの中間を反転してエッジを付加する。スレーブがリング内の次のデバイスにビットストリームを渡すため、唯一の遅延は伝搬遅延である。スレーブは、ビットストリームをリアルタイムで分析し、いかなるクロックサイクル遅延も付加しない。これにより、スレーブがリングに最小の待ち時間を付加し、そのため、最小の遅延を累積しながら多数のデバイスで構成されるスレーブの大規模スタックを可能にすることが保証される。
【0051】
図4は、本発明の例示の一実施形態に従った、反転機能を含むシステムを示す。図4に示すシステムは、例えば図1のデバイス101〜103などの汎用デバイスの一部である。ステアリングロジックが、動作のためのデバイスを底部、中央、又は上部デバイスとして構成するように提供される。スタック内の底部デバイス101として構成される場合、UART405及びSPI406は、ホスト407とマスターデバイス403との間のインターフェースを提供する。マスター403は、マルチプレクサ410の「1」入力を選択することにより、シリアルインターフェースSDIを介して連続双周波数符号化ビットストリームを用いてスレーブ404と通信する。SDIを介して伝送されるビットストリームは、排他的OR(X−OR)機能408において信号416と組み合わされる。未変更のビットストリームを渡すために、スレーブ404は信号416を未変更のままとする。スレーブ404がアドレス指定され、データをマスターに返信するようにマスター403によって命令されるとき、スレーブは、SDIを介して受信されるビットストリームを監視し、各プレースホルダービットの開始を定めるエッジを識別する。「0」値でプレースホルダービットを「フィルインする」ために、スレーブ404はプレースホルダービットを未変更で渡すことを可能にする。プレースホルダービットを「1」値で「フィルイン」するため、プレースホルダービットの開始を定めるエッジの検出に続いて、スレーブ404はビット時間の半分に等しい時間待機し、その後、信号416の状態をその反対の状態に変更する。連続双周波数符号化シグナリングは、ビットストリームにおける遷移のみに依存する。これは、レベル(「0」又は「1」)に依存せず、エッジが立ち上がりであるか又は立ち下がりであるかにも依存しない。そのため、信号416の初期状態は「1」又は「0」のいずれかであり得る。唯一の要件は、プレースホルダービットを「1」値でフィルインする際に、ビット時間の途中で状態が変化する場合を除き、信号416が一定のままであることである。ビットストリームは、AND機能への「〜top」信号を論理「1」に設定することにより、リング内の次のデバイスに渡される。反対に、マスターがリング内の最後のデバイスからSDOを介して戻りビットストリームを受信するために、マルチプレクサ412を制御する「top」信号は「0」に設定される。
【0052】
スタック内の中間デバイスとして構成される場合、スレーブ404は、マルチプレクサ410の「0」入力を選択することによって、インターフェースUP_Sを介してシリアルビットストリームを受信する。ビットストリームは、マルチプレクサ412を制御する「top」信号を「0」に設定し、AND機能420への信号418を「1」に等しく設定することによって、シリアルインターフェースDN_NからDN_Sへ、戻り経路内でマスターデバイスに渡される。中間デバイス内のスレーブ404の動作は、底部デバイスにおいて説明した動作と同一である。
【0053】
スタック内の上部デバイスとして構成される場合、スレーブ404は、中間デバイスに対して説明したものと同様に、インターフェースUP_Sを介してシリアルビットストリームを受信する。しかしながら、UP_Nインターフェースを介してビットストリームを渡すのではなく、マルチプレクサ412を制御する「top」信号を「1」に設定し、AND機能内への信号418を「1」に等しく設定することにより、ビットストリームは、DN_Sインターフェースを介してマスターに戻るようにループバックされる。上部デバイス内のスレーブ404の動作は、底部及び中間デバイスにおいて説明した動作と同一である。
【0054】
図5は、本発明の例示の一実施形態に従った、NRZ形式で符号化されたUARTシリアルビットストリームを示す。ビットストリーム510が、UARTプロトコルに従った典型的なデータフレーム520を示す。データフレームは、論理「0」値に等しいスタートビット512で開始し、その後、8個のデータビットD1〜D8が続き、論理「1」値に等しいストップビット514によって終結される。当分野ではこのデータフレーム上の変形、例えば、第2のストップビットの付加、7個のビットのデータ長さ、及びストップビット前にパリティビットを含めることなど、が知られている。受信デバイスがオーバーサンプリングクロックをビットストリームのボーレートに同期させることができるように、データフレームの前に所定のビットシーケンスが提供される。所定のビットシーケンスは、スタートビット512を含み、その後「1」と「0」との間で交番する8個のデータビット518が続き、ストップビット514によって終結される。同期化メカニズムの知識のない送信デバイスがシーケンスを生成できるように、この特定の所定のビットシーケンスは、通常のデータフレーム520とのその類似性のために選択される。しかしながら、他の所定のビットシーケンスも可能であり、唯一の要件は、受信デバイスが既知数のビット時間を定めるビットストリーム内の境界を検出できることである。この所定のビットシーケンスは、図1及び図4に示したシステム内のデバイス115及び407などのホストデバイスによって生成される。
【0055】
図6は、本発明の例示の一実施形態に従った、受信されるビットストリームのボーレートにオーバーサンプリングクロックを同期させるためのシステムを示す。マスタークロック621からシステムクロック624が生成される。システムクロックは、マスタークロックと等しく設定されてもよい。代替として、システムクロックは、プリスケーリング整数分周器623を用いて生成され得、この場合、システムクロック周波数は、整数Mで分周されたマスタークロックの周波数に等しい。システムクロックは、図3に示した314及び図5に示した518などの、所定のビットシーケンスをサンプリングするために用いられる。たとえ、シーケンス314が、連続双周波数形式で符号化され、いくつかの連続する「0」値を表し、シーケンス518が、NRZ形式で符号化され、いくつかの交番する「1」及び「0」値を表す場合であっても、所定のビットシーケンス314及び518は本質的に同一であることに留意されたい。したがって、オーバーサンプリングクロック同期化のための同じシステムが両方に適用され得る。
【0056】
受信デバイス627が、シリアルビットストリーム628の一部として所定のビットシーケンスを受信し、システムクロック624によって決められるインタバルでこれをサンプリングする。受信デバイスは、ビットストリームにおける遷移を検出し、所定のビットシーケンスの範囲を識別する。例えば図5のビットストリーム510を考えてみると、受信デバイスはスタートビット512のリーディングエッジ(leading edge)で高から低への遷移を検出する。次に受信デバイスは、第1のデータビットの立ち上がりエッジで開始し、ストップビット514の立ち上がりエッジで終了する9つのエッジのシーケンスを検出し、インタバルにわたって生じるシステムクロックサイクルの数をカウントする。同数の高パルス及び低パルスを有するために偶数のビットが選択され、そのため、有限で異なる立ち上がり時間及び立ち下がり時間によって生じる、高及び低のパルス幅におけるいずれの差異も平均化する。奇数のビットも用いられ得るが、立ち上がり時間及び立ち下がり時間が大幅に異なる場合は正確ではない可能性がある。
【0057】
所定のビットシーケンスに続いて、受信デバイス627は、オーバーサンプリングクロックを用いて受信ビットストリーム628をサンプリングする。ビットストリームとの同期を維持するために、ビット当たりのサンプル数は、例えば16などの既知の定数でなければならない。更に、ロジック設計を簡略化するために異なるボーレートについて同数のビット当たりサンプルを維持すること、及び、ボーレートに比例したサンプルノイズに対する耐性のスケーリングを提供することが望ましい。この目的は分数乗算器625によって達成され、分数乗算器625は、固定分子N対調節可能分母Dの比で乗算されるシステムクロックの周波数に等しい周波数を有するオーバーサンプリングクロックを生成する。分母は、所定のビットシーケンスにわたって、システムクロックサイクルのカウントに等しく設定される。
【0058】
システムの有効性の例として、受信されたビットストリーム628のボーレートが既知であり且つ一定であって、受信デバイスが8.192MHzのマスタークロック621を有し、分数乗算器625が0.6の固定値に設定され、16のオーバーサンプリング係数が望ましいケースを考えてみる。表2は、様々なボーレートについてこれがどのように達成されるかを示している。例えば9600ビット/秒のシリアルビットストリームのケースでは、マスタークロックは整数分周器623を用いてプリスケーリングされ、ここでMは32に設定され、それによって256kHzのシステムクロック624を生成する。分数乗算器625はシステムクロックに0.6を乗算し、153.6kHzのサンプリングクロック626が生じ、これは9600ビット/秒のボーレートの正確に16倍である。同様に、それぞれ19200、38400、及び76800ビット/秒のボーレートについて、プリスケーリング係数Mを16、8、及び4に変更することによって、表2の残りのボーレートについても、ボーレートの正確に16倍のオーバーサンプリングクロックが達成される。
【表2】
【0059】
これは、表1のように単に整数分周器を用いるよりもはるかに改善されているが、この例は実用では起こり得ない可能性が高い。受信されるビットストリームのボーレートは、正確でない可能性が高く、温度の変化及び送信回路の老朽化などの他の要素に伴ってドリフトする可能性がある。また、受信デバイスのマスタークロックは、正確に8.192MHzでない可能性があり、温度変化及びクロック生成回路の老朽化によってドリフトする可能性もある。
【0060】
図6のシステムがこの問題をどのように克服できるかを示すために、受信されるビットストリーム628のボーレートが10000ビット/秒であるケースを考えると、マスタークロック621は8.0MHzであり、整数分周器623は32の固定係数Mを有し、そのため、システムクロック周波数は8.0MHzを32で分周した250.0kHzに等しくなる。分数乗算器625が0.6に固定された場合、150.0kHzのオーバーサンプリングクロック周波数が生じることになる。10000ビット/秒ボーレートについて望ましい16倍オーバーサンプリングレートは、160kHzである。したがって、分数乗算器625における固定乗算係数が0.6であると、サンプリング周波数誤りは(160kHz−150kHz)/160kHz=6.25%であり、UARTビットストリームの場合にサンプリング誤りを生じさせ得る。
【0061】
この問題は、分数乗算器625の分子Nを例えば128などの固定値にすること、及び分母Dを0〜255の範囲の可変8ビット値にすることによって克服される。10000ビット/秒では、800μs(マイクロ秒)の期間にわたって8ビットの所定のビットシーケンスが生じ得る。システムクロック期間は周波数の逆数であり、この例では1/250.0kHz=4μsとなる。したがって、所定のビットシーケンスにわたるシステムクロック期間のカウントは200となる。この値を分数乗算器625内の分母Dとして用いると、128/200=0.64の係数となる。この係数にシステムクロック624が乗算され、その結果のオーバーサンプリング周波数は250.0kHz×0.64=160.0kHzであり、これは受信されたビットストリームのボーレートの正確に16倍であるため、サンプリング誤りは生じない。
【0062】
公称分数乗算係数を0.6と想定すると、8ビットの分母を超える128を用いることで、受信するオーバーサンプリングクロックを+/−20%よりも大きく同調させることができる。分母D=213のとき、0.6の公称乗算係数が達成される。より広い同調範囲にわたって調節するために、より大きな分母を用いることができる。所定のビットシーケンスの長さは、送信デバイスにおけるシステムクロックに基づく受信されたビットストリームのボーレートに基づき、所定のビットシーケンスにわたってカウントされるシステムクロック数は、受信デバイスのクロックに基づく。送信デバイスにおけるシステムクロックが受信デバイスにおけるシステムクロックよりも遅くなっている場合、受信デバイスはより多くのサイクルをカウントし、送信デバイスにおけるシステムクロックが受信デバイスにおけるシステムクロックよりも速い場合、受信デバイスは所定のビットシーケンスにわたってより少ないサイクルをカウントする。言い換えれば、送信されるボーレートが減少するにつれて分母は大きくなり、それに対応してオーバーサンプリングクロックは遅くなる。同様に、送信されるボーレートが増加するにつれて分母は小さくなり、それに対応してオーバーサンプリングクロックは速くなる。
【0063】
図7は、本発明の例示の実施形態に従った、受信デバイスを受信されたシリアルビットストリームに同期させるための方法を示す。この方法は、本発明に従って構成されるデバイスで開始する(S760)。次にデバイスは、トランスミッタから所定のビットシーケンスを受信し、このビットシーケンスをシステムクロックを用いてサンプリングする(S762)。その後、デバイスは、所定のビットシーケンスのインタバルにわたってシステムクロックサイクルの数をカウントする(S764)。その結果生じるカウントを用いて、分数レート乗算器の分母をこのカウントに等しく調節することにより、乗算係数を生成する(S766)。その後、分数レート乗算器をシステムクロックに適用することにより、データオーバーサンプリングクロックが生成される(S768)。デバイスは、その後、このオーバーサンプリングクロックを用いて、トランスミッタからシリアルビットストリームをサンプリングする(S770)。
【0064】
図8は、本発明の例示の実施形態に従った、リングネットワークにおけるシリアル通信のための方法を示す。フローチャートは点線で分割されている。点線の左のイベントはマスターデバイスによって実行され、右のイベントはスレーブデバイスによって実行される。マスターデバイス上のロジックがシリアルビットストリームを生成し(S880)、リングネットワーク全体にわたりビットストリームを伝送する(S882)。ビットストリームは、ビットストリームのボーレートに同期させるためにスレーブデバイスによって用いられる所定のビットシーケンスと、宛先スレーブを識別するアドレスと、データをリードバックするための命令と、データのリードバックのための1つ又は複数のプレースホルダービットとを含む。スレーブデバイス上のロジックが、所定のビットシーケンスを検出し、オーバーサンプリングクロックをビットストリームのボーレートに同期させる(S884)。その後、スレーブデバイスは、リードバック命令がスレーブデバイスにアドレス指定されるかどうかを判別するために、オーバーサンプリングクロックを用いてビットストリームをサンプリングする(S886)。リードバックが必要な場合、ビットシーケンスを反転させることにより、複数のプレースホルダービットのうちの1つ又は複数が変更される(S890)。いずれのケースにおいても、シーケンスは反転されるか否かにかかわらず、リングネットワーク上の後続のスレーブデバイスに転送される(S892)。
【0065】
当業者であれば、本発明の特許請求の範囲内で、説明された実施形態に対して改変が成され得ること、及び多くの他の実施形態が可能であることが理解されよう。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8