説明

シリアルディジタルデータ通信インターフェイス

伝播遅延が数クロックサイクル長までおよび、ゆっくりと変動する可能性のある、データ送信機12からデータ受信機14へのデータ伝送のシリアルプロトコルおよびインターフェイス。データ受信機は、データ送信機にクロックを供給する。受信機または送信機のいずれかによって供給される同期信号は、クロックによって制御される転送レートで、データ伝送のフレームを始動させる。同期信号は、フレーム長として知られている、データヘッダーとそれに続く所定の数のデータビットの送信を調整する。データ受信機は、ヘッダービットを使用して、後続のデータビットをサンプリングする時間を決定する。フレームの長さは、ビット誤りを発生させるほど大きく伝播遅延ライン特性が変化しないことの十分な見込みを得るように限定される。システムは、各フレームの始点において、再同期する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シリアル通信インターフェイスの分野に関するとともに、送受信装置間のチャネルに伝播遅延が存在する状態で、送受信装置間で高速レートのデータ伝送を行うための方法に関する。
【背景技術】
【0002】
関係する出願の相互参照
本出願は、35USC119(e)下で、参照により本明細書に組み入れてある2006年9月21日付け出願の「Digital Data Communication For Data Converters」という名称の米国特許仮出願第60/846177号の利益を主張するものである。
【0003】
一般に、データ送信機(すなわち、ディジタルデータ出力を有する装置)は、他の装置(例えば、データ受信機)へのディジタルデータの配信を、しばしば高速レートで、かつシリアル通信チャネル上で行う必要がある。多くの場合に、装置間の通信に使用されるクロックレート(速度)は、十分に高速であるために、伝播遅延の問題が存在する。未詳の、変動性のある、または過大な伝播遅延があると、受信機と送信機を同期させて同期を維持すること、およびディジタルデータを確実に伝送することについて困難な問題が生じる。そのような環境において使用されるシリアル通信プロトコルに加えて、そのようなプロトコルを実現するための装置および方法には、送信機と受信機の間の同期に対して伝播遅延耐性のある手法を組み入れなければならない。さらに、これらの装置および方法は、信号発生に際して、信号分散および信号変動に対する耐性を有していなくてはならない。
【0004】
現在、別個のチップ上のデバイス間での通信用のクロック速度は、通常約125MHzであり、これに対して、デバイスが同一チップ上にある場合には、約375MHzの速度が使用されることもある。将来的には、より高速度となる可能性がある。これらの速度において、デバイスは、信号伝播遅延におけるかなりの量のばらつき(variability)を吸収しなくてはならない。信号遅延(signaling delay)における差異および変化が、例えば、製作工程に固有の変動、時間変動する環境条件、電源変動、およびその他の要因によって生じることがある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
商業製品に対してコストは重要な考慮事項であるので、高価な製品だけに整合性があるのではなく、ディジタルシステムにおける送信機および受信機などの装置を実現するのに頻繁に使用される、低コスト書替え可能ゲートアレイ(FPGA:field programmable gate array)などの、低コスト製品にも整合性のある、シリアル通信プロトコルおよびインターフェイスに対する要求がある。
また、送信機がその送信レートを受信機が受けることのできる送信レートに調整することのできる、シリアルデータ通信を可能にするインターフェイスおよびインターフェイス方法に対する要求もある。
【課題を解決するための手段】
【0006】
これらのニーズは、チャネル伝播遅延およびその遅延における遅い変動を吸収する、1つまたは2つ以上のデータ送信機と、1つのデータ受信機の間で通信を行うためのシリアルプロトコルおよびインターフェイスによって対処される。このプロトコルは、データ受信機とデータ送信機の間に3つの論理チャネル:クロックチャネル、同期チャネル、およびデータチャネルを必要とする。図示されているように、論理チャネルのそれぞれは、1つまたは2つ以上の導体の別個の物理チャネルによって得られるが、想定されるように、その他の実現形態も可能である。
【0007】
クロックチャネル上では、データ受信機によって供給されるクロック信号CLKが、データ送信機に供給される。同期チャネル上では、データ受信機によって供給される同期信号SYNCが、フレーム(すなわち、データ伝送ユニット)の送信を要求するのにデータ送信機によって使用される。その他のいくつかの態様においては、受信機はフレームを要求せず、SYNCの送信は、データ送信機からデータ受信機に行われて、フレームの送信を示す。最後に、データチャネル上では、データ信号DOUTがデータ送信機からデータ受信機に送信される。
【0008】
フレームとは、データチャネル上でヘッダーおよび/またはデータが送信されている期間である。フレーム長は、1フレーム中に送信される合計ビット数であり、アプリオリに両装置(すなわち、その設計)によって合意されているか、またはデータ送信機またはデータ受信機のいずれかによって決められる。新しいフレームの要求(すなわち、その開始)は、同期チャネル上でデータ受信機によって送信される(とともに、データ送信機によって受信される)。データが送信されていない場合(すなわち、フレーム中以外の時間においては)、同期チャネルは、データ送信機によってモニタリングされ、データ送信機が同期信号を読み取ると、データ受信機が新フレームを要求していると判定される。
【0009】
新フレームの要求が受信されると、所定の数のデータビットがその後に続くヘッダービットが、データチャネル上で送信機から受信機に、シリアルに送信される。受信機からのクロック信号を使用する、ビット送信レートは、受信機による正確なデータ検出を確実にするために、クロックレートの約1/3以下の速度でなくてはならない。
データ受信機は、新フレームの要求の後に、データチャネルをモニタリングし、最初にヘッダービットを検出する。ヘッダービットは、後続のビットに対するサンプリング時間を決定するために、データ受信機によって使用される。フレームが完了すると、データ信号は、所定のアイドル状態に設定される。
【0010】
本発明は、いくつかの観点を有し、それらは単独で、または他の観点と組み合わせて、実現または実施してもよい。第1の観点によれば、データ送信機とデータ受信機の間のバイナリ信号のシリアル通信のための方法が提供され、このバイナリ信号は、第1のバイナリ値を表わす第1の論理レベルと第2のバイナリ値を表わす第2の論理レベルの間で変動する。この方法においては、クロック信号は、所定のクロックレートでデータ受信機からデータ送信機へ送信される。同期信号は、データ受信機からデータ送信機へ送信される。フレームの送信は、同期信号に応答して初期化される。バイナリデータ信号は、フレームが初期化されると、所定の最小ビットレートでデータ送信機からデータ受信機へ送信され、前記データ信号はヘッダーコードを含み、複数のデータビットがこれに続く。フレームの初期化に続いて、前記バイナリデータ信号が、受信機において受信されて、ヘッダーコードが検出される。ヘッダーコード検出に応答して、フレーム内の残りのデータビットに対して、データビットサンプリング時間が決定されて、データ受信機において、それぞれの前記データビットの論理値が、前記データビットサンプリング時間において特定される。
【0011】
データ伝送に使用される所定の名目ビットレートは、好ましくはクロックレートの1/3以下である。
同期信号に応答してフレームの送信を初期化することには、フレームを初期化するという要求を示す同期の、論理レベルにおける変化を検出することを含めてもよい。フレームは、同期信号の論理レベルのさらなる変化の検出時に、終了してもよい。
フレーム長は固定または可変としてもよい。可変フレーム長の場合には、データ信号には、ヘッダーコード内、またはその後に符号化されたフレーム長を含めてもよい。
【0012】
データ受信機においてヘッダーコードを検出することには、名目ビットレートの少なくとも3倍のレートでヘッダーコードをサンプリングすること、第1のヘッダービットの検出を示すサンプル数を計数すること、および前記計数に応答して、フレーム内の残りのデータビットに対するサンプリング時間を設定することを含めてもよい。
データ受信機においてヘッダーコードを検出することには、データビットレートに等しいクロックレートを有するマスタークロックの、複数の追加の、位相シフトした相当物を生成すること、マスタークロックおよび位相シフトされたマスタークロック相当物のそれぞれで、データ信号をサンプリングすること、およびマスタークロックまたは追加の相当クロックの1つのいずれかを選択して、フレーム内の後続のデータビットに対する前記データビットサンプリング時間を指定して、該時間にデータビットをサンプリングすることを含めてもよい。
【0013】
態様によっては、そのような方法には、外部源から、外部クロック信号と呼ばれる、クロック信号を受信すること、その外部クロック信号のクロックレートが所定の最小レートを超えるかどうかを判定し、そうであれば、受信機内で使用するための内部クロック信号として外部クロック信号を再生成し、そうでなければ、そのレートが前記所定の最小レートを超えるクロック信号を発生させることによって、前記受信機内で使用するための内部クロック信号を生成すること、および送信機へと送信されるクロック信号を生成する際に、その内部クロック信号を使用することをさらに含めてもよい。
【0014】
別の観点によれば、データ送信機からのフレーム(該フレームは、1つまたは2つ以上のヘッダービットおよび1つまたは2つ以上のデータビットを含む)内のバイナリ信号のシリアル通信を受信し、受信したバイナリ信号をバイナリデータに復号して送信されたビットを特定する、データ受信機が提供される。そのような受信機は、送信機にクロック信号を供給するクロック発生器;フレームを開始するための同期信号を送信機に供給する同期信号源;シリアル通信を受信し、ヘッダーコードを検出し、シリアル通信をサンプリングしてそのデータビットを復号するためのデータビットサンプリング時間を決定し、このデータビットサンプリング時間に、受信したシリアル通信の論理レベルをサンプリングして、対応するデータビット値を供給する、状態マシンを含み、該状態マシンは、有限の複数の可能性のあるサンプル時間の中からサンプリング時間を選択することによって、データビットサンプリング時間を決定し、受信ビット値の名目中央値の近傍をサンプリングする。
【0015】
態様によっては、クロック発生器は、送信機がシリアルに伝達されるバイナリ信号においてビットを送信するビットレートの、少なくとも3倍のレートのクロック信号を供給する。
同様に、態様によっては、同期信号源が、同期信号の論理レベルを変更することによって送信機からのフレームを要求する。
【0016】
同期信号源は、第1の論理レベルから第2の論理レベルに同期信号を変更することによって送信器からのフレームを要求してもよく、同期信号を第2の論理レベルから第1の論理レベルに変更することによってフレームの終了を要求してもよい。
態様によっては、状態マシンが、マスタークロックの各クロックサイクルに、受信したシリアル通信をサンプリングし、第1のヘッダービットの検出回数を計数し、それからデータビットサンプリング時間を決定するように適合させてもよい。
【0017】
ヘッダーコードを検出するために、状態マシンは、データビットレートに等しいクロック速度で、マスタークロックを位相シフトさせることによって、追加のクロックを生成し、各クロックにおいてデータ信号をサンプリングし、マスタークロックまたは追加のクロックの1つのいずれかを選択して、データビットサンプリング時間を指定するように適合させてもよい。
別の観点によれば、受信機が送信機に同期信号を供給する代わりに、送信機が同期信号発生器を備え、この同期信号発生器が、フレームが後に続くことを示す同期信号を、受信機に供給してもよい。例えば、送信機は、周期同期信号を発生させるタイミング回路を備えてもよい。
【0018】
さらに他の観点または態様においては、シリアル通信列が、それぞれの名目データビットセルの持続時間中に複数回サンプリングされて、各サンプルをレジスタまたはその他の一時記憶装置に記憶して、次いで、データビットセルの名目中央値に近い、それらの複数サンプルの1つだけを、受信データビット値として選択してもよい。結果的に、そのような方法を実現するための受信機は、複数サンプルを取得するための装置およびそれらのサンプルからビットセルの名目中央値に近いサンプルを選択するための装置を含む、本発明の別の観点を含む。例えば、そのような複数のサンプルは、互いに位相がシフトされた、3つ(またはそれよりも多い)マスタークロックを使用して得てもよい。
【0019】
別の観点は、同期信号に応答して開始して、第1のレートでクロックを受信し、データフレームを組み立て、それを第1のレートの1/3以下のレートで送信する、送信機である。
本発明およびその態様は、以下の詳細な説明を、添付の図面を合わせ読めばより詳細に理解できるであろう。図において、要素は必ずしも正しい縮尺では描かれていない。全体として、複数の図に表われる同一の要素は、同一の参照名称によって識別される。
【図面の簡単な説明】
【0020】
【図1】本明細書において教示される概念による、複数のデータ送信機およびデータ受信機、ならびにそれらの間の通信インターフェイスを示す、本発明の観点を実施するための装置の例証的な態様の簡易ブロック図である。
【図2】データ受信機の動作を説明するフローチャートである。
【図3】データ送信機の動作を説明するフローチャートである。
【図4】例示態様における、フレーム中の例示クロック、同期信号およびデータ信号の間の関係を図解する1組の波形である。
【図5】本明細書で教示される、第1のヘッダービットの検出および検出規則の適用のための2つの態様を図解するのに有用な、1組の波形および表である。
【図6】ビット送信レートがクロックレートの1/3のである、データ送信機の例証的実施例の動作を説明するフローチャートである。
【図7】ビット送信レートがクロックレートの1/3のである、データ受信機の例証的実施例の動作を説明するフローチャートである。
【図8】DOUTが、3つの位相シフトマスタークロックによって決定される時間などの、ビットセル中に複数回、サンプリングされる場合の、DOUTのサンプリングの選択を図解する簡易ブロック図である。
【発明を実施するための形態】
【0021】
シリアル通信インターフェイスおよびプロトコルを、周期的にのみ同期が必要となるように、指定された長さのフレーム内でデータが送信される、データ送信機とデータ受信機の間の通信に対して説明する。この手法は、伝播遅延およびビットエッジタイミングにおける変動に対して許容度が高い。
図1を参照すると、データは、N個のデータ送信機12からデータ受信機14に送信され、ここでNは整数である。(複数送信機および単一受信機が示されているが、本発明は、もちろん単一送信機/単一受信機環境、多数送信機/多数受信機環境にも適用することができる。)各データ送信機は、アナログ・ディジタル変換器(ADC)、電流/ディジタル変換器(IDC)、その他など、ディジタルデータ出力を生成するある数のデバイスの任意のものとすることができる。個々のデータ送信機は、12−iと番号付けされており、ここで添え字iは1からNの範囲である。通信は、同期チャネル16、クロックチャネル18、およびN個のデータチャネル20上で行われる。
【0022】
典型的なデータ受信機は、例えば、プログラム可能ゲートアレイ(FPGA)、専用の論理回路またはその他の回路内、適当にプログラムされた汎用の、または特別にプログラムされた、マイクロプロセッサまたはマイクロコントローラ、あるいはその他の形態で具現化される、有限状態マシン(FSM:finite state machine)として実現してもよい。当業者には、本明細書において与えられる状態説明から、FSMを実現する方法が分かる。
【0023】
データ受信機およびデータ送信機の動作の概要
ここでは、データ受信機およびデータ送信機の動作についての高レベルの概要を示す。
データ受信機の動作が図2に図解されている。初期化ステップ26は、受信機がオンにされるか、またはリセットされるときに始まる。初期化ステップは、送信機へのCLK信号の送信を開始すること、およびSYNC信号がフレームを要求していなことを確実にすることを含む。マスタークロック信号が内部的に生成されて、入力データに対する可能なサンプリング時間の組が得られる。
【0024】
ステップ28において、フレーム要求が、適当な時間に送信される。次いで、DOUTが、データヘッダーに対してモニタリングされる(ステップ30)。データヘッダーが検出されると、決定規則論理が適用されて、データサンプリング時間を決定する(ステップ32)。データは、フレームの終端に到達するまで、適当なサンプリング時間にサンプリングされる(ステップ34)。次いで、動作は、新しいフレームに備えてステップ28に戻る。
【0025】
データ送信機の動作が図3に図解されている。初期化ステップ36は、送信機がオンにされるか、またはリセットされたときに始まる。初期化ステップは、DOUTを所定のアイドル値に設定することを含む。ステップ38において、送信機は、フレームの送信の要求に対して、同期チャネルをモニタリングする。フレーム要求を受信すると、データヘッダーが、ステップ40でDOUTに書き込まれ、続いて送信データが続く(ステップ42)。フレームの終わりに(ステップ44)において、DOUTを所定のアイドル状態に設定するなどの、完成ステップが実施される。次いで、送信機は新しいフレーム要求を待ち受ける。
【0026】
データ受信機とデータ送信機の間の通信
バイナリ(すなわち、ディジタル論理)信号が、データ送信機群とデータ受信機の間で伝送される。所与の時間において、各信号は、その送信機によって第1の論理レベルまたは第2の論理レベルへと駆動される。一般化を損うことなく、単に例としてのみ、第1の論理レベルが、図4および図5におけるローレベルで表わされる、「0」であり、第2の論理レベルが、図4および図5におけるハイレベルで表わされる、「1」である場合を考える。当業者は、逆の場合に加えて、多値論理信号の使用も同様に可能であることに気付く。
【0027】
例示態様において、各データ送信機12−iは、3つの対応する物理チャネルに具現化されて示された、3つの論理チャネルによってデータ受信機14に接続されている。同期信号SYNCおよびクロック信号CLKのそれぞれは、それ自体の対応するチャネル(それぞれ16および18)上をデータ受信機14からデータ送信機12に並列に(並列供給は必須ではないが)送信される。データ信号DOUT−iは、第3のチャネル20−i上を、データ送信機12−iからデータ受信機14に送信される。すなわち、この例示態様において、各データ送信機は、3つのチャネルに接続されており、これに対してデータ受信機はN+2個のチャネルに接続されている。
【0028】
クロック信号は、クロックレートの2倍に等しいレートで、0と1の間を交番することによってデータ送信機に対して時間を維持している。クロックレートは、信号CLK上での0から1への遷移において発生する上昇端(rising edge)の頻度である。CLKの上昇端において、データ送信機は、データ書込み操作などの操作を実行する。クロックレートが一定であることは必須ではなく、また特定のクロックデューティサイクルを使用することも必須ではない。
本質的に、データ受信機からデータ送信機へのクロックの伝送において、いくらかの伝播遅延があるとともに、データ送信機におけるクロック端とデータビットの生成との間にいくらかの遅延がある。次いで、送信機から受信機への伝播遅延がある。受信したビットのサンプリングのタイミングを正しく決めて、送信されたデータの確実な検出/復号を可能にするために、対処しなくてはならないのは、この累積遅延である。
【0029】
態様によっては、外部クロック信号ECLKは、データ受信機の入力としてもよい。データ受信機14内のクロック発生器22は、ECLK信号を内部クロック信号ICLKとして再生成してもよく、または別の態様においては、ECLKの周波数を特定して、その周波数がある閾値より低いと、ICLK信号を生成する周波数を増大させるか、またはそうでなければECLK信号をICLKとして再生成する。同期&クロック制御(Synchronization & Clock Control)回路24は、ICLKを使用してクロック信号CLKを生成する。
最も簡単な態様においては、回路24は、CLKがICLKに直接接続されるように、通過部(pass through)として作用する。CLKが一連のバーストまたはパルスからなる態様も想定される。各バーストは、一連のクロックサイクルを含み、これに対してバースト間にはクロックサイクルは存在しない。
【0030】
同期信号は、データ送信機によるフレームの送信を要求するのに、受信機によって使用される。多くの態様が可能である。例示態様においては、同期チャネル上で0に1が続くとフレームの要求を合図する。別の態様においては、連続読取りでのSYNC信号の値の変化(0から1、または1から0へのいずれか)は新フレームに対する要求を示す。態様によっては、外部同期信号ESYNCがデータ受信機への入力であって、これが、データ受信機にトリガーをかけてフレームを要求させる。ESYNCは、フレームの初期化を要求する、SNYC信号として、データ受信機によって適切に再生成される。回路24は、2つの信号を直接接続することによって、ESYNC信号をSYNCとして再生成してもよい。他の態様においては、回路24は、ESYNC信号からSYNC信号を抽出または生成してもよい。
【0031】
図4を参照すると、チャネル20−i上のデータ信号DOUT−iは1フレーム分の情報を送信し、これにはヘッダー46に続いてある数のデータビット48が含まれる。アイドル間隔50が連続するフレームを分離するが、任意選択で省略してもよい。1フレームの間に送信されるビットの合計数は、フレーム長と呼ばれる。態様によっては、フレーム長は、データ送信機とデータ受信機とによってアプリオリに一致させられる。それは、例えば、送信機および/または受信機のハードウエアおよび/またはソフトウエア中に設計される、固定数としてもよい。
【0032】
可変フレーム長を使用してもよい。一代替態様において、SNYC信号はフレームの終了を要求するのに使用してもよい。例えば、SYNCの値の0から1への変化が、フレームの送信を要求し、これに対して1から0への変化がフレームの終了を要求してもよい。態様によっては、最後のデータビットについて曖昧さを避けるために、データビットの後に送信されるフッターコード(footer code)を使用してもよい。可変長フレームが用いられる場合には、ヘッダーの一部を、例えば、フレームの長さの指示を含む1連のビットとしてもよい。
フレームの完了時に、データ信号は、所定のアイドル状態(0または1のいずれか)に設定するのが好ましい。
【0033】
送信プロトコルの説明
送信プロトコルを説明するために、ここで、クロック信号CLK52のレートが一定速度に維持され、フレームサイズが合計5ビット(ヘッダーを含む)に事前設定され、SYNC54が0から1に切り換わることによってフレームを初期化する、図4における信号関係の非限定の実施例を考える。この実施例におけるフレームヘッダー46は、1に続いて0を含む2ビットパターンであり、データ信号所定アイドル状態は0であり、データビットレートは、3クロックサイクル毎に1ビットである。図4における信号は、データ送信機において測定されるように、示してある。簡単にするために、DOUT−iは、この図ではDOUT56と書かれている。
【0034】
一般に、ヘッダーは任意所望の長さのものでよい。もちろん、当業者であれば気付くように、その他のヘッダーパターンを用いてもよい。望ましい場合には、ヘッダーパターンの選択を、その目的で設けられたレジスタ(図示せず)に記録してもよい。
従来式NRZコードが、ヘッダービットを含むデータを(マンチェスタ(Manchester)コーディングなしで)伝送するのに使用される。全ビット間隔にわたってハイレベルを生成することによって「1」が合図され、全ビット間隔にわたってローレベルを生成することによって「0」が合図される。受信機において、上述したように、状態マシンは本明細書に説明した方法にしたがって動作して、送信されたデータ信号と受信されたクロック信号の間にある程度の時間スキューがある場合においてでも、ビット位置および値を導き出す。適正に設計された受信機、受信機クロックレートとビットレートの間の3(またはそれより大きい)の倍数、および各フレームの開始時に送信されるヘッダーパターンの形態における周期的同期パターンを用いると、システムは、受信機から送信機へ、そしてその戻りの重大な伝播遅延、ならびに回路内の伝播遅延を吸収することができる。
【0035】
この実施例は、SYNC54およびDOUT56が両方0である、アイドル状態50にあるシステムで始まる。時間58aにおいて、SYNC信号54の状態は0から1に変化して、データ受信機が新しいフレームの始まりを要求したことを示す。SYNC信号54は、時間58bに次のクロックサイクルにおいて読み取られる。データ送信機は、これを新フレームの要求と認識して、次のクロックサイクル(時間58c)にDOUT56上でヘッダーコード46の送信を開始する。
【0036】
データビット48が、時間58eで始まり、3クロックサイクル当り1ビットのレートで続く。この実施例においては、フレームサイズは、3つのデータビット48を可能にする。データビット列101の選択は、説明のためのものである。ここで、時間58dにおいて、SYNC信号は0に戻ることに注意されたい。この例示態様においては、このことは、データ送信機による応答にトリガーをかけない。
時間58fにおいて、所定の数のデータビットが送信されており、DOUTは、新しいフレームに備えてアイドル状態に戻る。新しいフレーム要求は、時間58a’において送られて、時間58b’において検出される。ここで、この態様においては、先行ビットにおいてSYNCが0と読み取られない限りは、フレーム要求は検出されないことに留意されたい。
【0037】
受信ビットサンプリング
次に、伝播遅延およびそのばらつきのために、ビット毎に、またクロック信号に対して、偏った(skewed)時間に到着する可能性のある、受信データビットをサンプリングする方法について考える。この話題は、図5および関連する表1および表2を参照して、考察する。
信号DOUTは、いくらかの伝播遅延(未知で、いくぶん制御不能であり、可変でもあり得る)の後にデータ受信機に到着する。好ましくは、フレーム間のアイドル時間は、先のフレームの最後のデータビットが1である場合には、少なくとも2クロックサイクルの長さである。これによって、受信機が、第1のヘッダービットの直前に、0を読み取ることを確実にし、データ受信機が、ヘッダーの開始を明確に識別することを可能にする。DOUTは、サンプリング時間を設定するためのマスタークロックを使用して読み取られる。
【0038】
図5に示す、例示態様60においては、マスタークロックMCLKは、CLKとクロックレートが同じである。第1のヘッダービットが読み取られる、MCLKサイクルは、引き続き、データビットサンプリング時間を選択するのに使用される。
例示態様62において、マスタークロックMCLK1は、データビットレートに等しいクロックレートを有する。2つの追加のマスタークロック信号MCLK2およびMCLK3は、MCLK1の位相を、それぞれ120度および240度シフトすることによって生成される。データビットサンプリング時間は、第1のヘッダーがどのクロックにおいて読み取られるかに基づいて決定される。伝播遅延および信号タイミングの不確実性に応じて、ヘッダービットが読み取られるクロック数またはクロックサイクル数は、2、3、または4とすることができる。
【0039】
両方の例示態様に対して、考察したようなクロックレートとデータビットレートの関係があると、ビットサンプリングの4つの事例64が可能である。これらが図5に示されている。事例64aにおいて、第1のヘッダービットは、伝播遅延の結果として引き延ばされており、その結果として4回の検出がある。事例64bにおいて、へッダービットは、マスタークロックに対して遅延しており、結果として3回の検出が生じている。事例64cにおいては、クロック端に対して信号は早く、やはり3回の検出が生じている。事例64dにおいては、パルスが短く、結果として2回の検出だけが生じている。データ受信機は、ヘッダービットの検出によって判定される決定ルールを使用して、どのクロックサイクルにDOUTをサンプリングするかを決定する。2つの決定ルールが適切である。
1)第2回目の1の検出に対応する時間にサンプリングする、または
2)最後から2番目の1の検出に対応する時間にサンプリングする。
【0040】
単一マスタークロックが使用される場合には、例示態様60におけるように、対応する時間は決定端(decision edges)であり、これは、最初に選択されたサンプリング時間を過ぎた、3つのクロックサイクルの倍数である。選択規則の適用が表Iに示されている。
【表1】

【0041】
位相シフトマスタークロックが使用される、例示態様62においては、選択されたサンプリングクロックの各上昇端において、データ信号がサンプリングされる。選択規則の適用が表IIに示されている。
【表2】

【0042】
これらの規則は、できる限りビットの中心近くで発生するサンプルが、チャネル伝播遅延におけるばらつきに対する耐性を最大化することを確実にする。伝播遅延が、フレーム中で大きく変わりすぎる場合には、もちろんのこと、サンプリング時間は、適切なビットに対応しなくなり、ビットを二重サンプリングするか、ビットをサンプリングしないか、またはビット間の遷移域に位置する可能性がある。各状況は、誤りを生じる可能性がある。フレームサイズが事前設定されている場合には、それは、データ送信機およびデータ受信機の両方に知られていなくてはならず、予想される伝播遅延変動に基づいて許容できる誤りの見込み(likelihood)を与えるようなものでなくてはならない。
【0043】
例示態様におけるデータ送信機の動作
データ送信機の動作が、図6においてフローチャートとして、例示態様に対してさらに示されている。この例示態様では、3クロックサイクル毎に1ビットのレートでデータが送信され、バイナリヘッダーは10であり、1フレーム内のデータビットの数はプライオリにM(図5および6において、Mは3である)であると仮定されている。フレーム要求は、SYNC信号の0から1への遷移として検出される。
【0044】
初期化ステップ76は、受信機がオンにされるか、リセットされるときに始まる。この初期化ステップは、DOUTを0に設定することを含む。送信機は、最初にSYNCを読み取ること(ステップ78)によってフレーム要求を探索し、それが0であるかどうかを判定する(ステップ80)。ステップ80において、SYNCが0であると検出され、後続のSYNCの読み取り時(ステップ82)に、1と検出された(ステップ84)る場合には、フレームが初期化される。フレーム要求が受信された後に、第1のヘッダービットがDOUTに書き込まれる(ステップ86)。これは、ステップ88において3サイクルの間、保持される。書き込みすべきヘッダービットがまだあるので(ステップ90)、ステップ86に戻ると、次のヘッダービット0が書き込まれる。
【0045】
ヘッダーを送信した後に、データがDOUTに書き込まれる。ステップ92において、データ送信機は、そのフレームに対して送信すべきすべてのデータビットが送出されたかどうかを判定する。さらにデータを送る必要があるときには、ステップ94において次のビットがDOUTに書き込まれる。ステップ96は、データビットが3サイクルの間、保持されていることを確実にする。M番目のデータが、送られていない場合には(ステップ92)、データ送信機はステップ94に戻る。
M番目データビットが送信された後に、DOUTは0に設定される(ステップ98)。次のフレーム要求を探索する前に、データ送信機は、少なくとも2サイクルの間、DOUTが0に保持されることを確実にする(ステップ100)。これによって、後続のフレームにおけるヘッダービットの適切な検出が確実になる。
ここで、データ受信機の動作を説明する。
【0046】
例示態様におけるデータ受信機の動作
データ受信機の動作が、本例示態様に対して、図7におけるフローチャートとしてさらに示されている。当業者であれば、図7のフローチャートに示す態様は、FPGAにおけるFSMなどの、様々な方法で実現できることを理解するであろう。
態様60において示した形態のマスタークロックが使用される。初期化ステップ102は、受信機がオンにされるか、またはリセットされたときに始まる。初期化ステップには、CLK信号の送信を開始すること、およびSYNCに0を書き込むこと(すなわち、SYNC信号値を0に設定すること)が含まれる。ステップ104において、受信機は、新フレーム要求を送信することの要求を待ち受ける。フレーム要求は、その他の内部回路またはESYNCから来る可能性もある。
【0047】
フレーム要求を行うと決定されると、ステップ106においてSYNC信号に1の値が書き込まれる(すなわち、SYNC信号は、ハイレベル、または1レベルに上げられる)。次いで、受信機は、1が読み取られるまで(ステップ110)、各クロックサイクルにDOUT信号を読み取る(ステップ108)。これは図5における時間66に対応する。これは、データ受信機とデータ送信機との間の総信号遅延(total signaling delay)、およびデータ送信機が応答するのに要する時間に応じて、ステップ106においてフレーム要求が送られた時間を過ぎてからの、任意の数のクロックサイクルとすることもできる。
【0048】
DOUT上で1が読み取られると(ステップ110)、フレーム要求がデータ送信機によって認識されるので、SYNCに0が書き込まれる(ステップ112)。データ受信機は、DOUTの読み取りを続け(ステップ114)、0を探索する(ステップ116)。これは図5における時間68に対応する。この例証的態様において、適用される決定規則は、「最後から2番目の1の検出に対応する時間においてサンプリングすること」である。この直後のクロックサイクルは、サンプリング時間(時間70a)に対応し、対応するステップ、ステップ118において、DOUTが読み取られる。データ受信機が、次のサンプリング時間を持ち受けているので、時間72aおよび74aにそれぞれ対応する、ステップ120および122においては、いかなる動作も必要ではない。最後のデータビットは読み取られていないと仮定して(ステップ124)、動作は、ステップ118に戻り、時間70bにおいて次のビットを読み取る。サイクルは、フレーム内のM番目のビットが読み取られるまで続き(時間70c、70dなどでの読取り)、その後に、データ受信機はステップ104に戻る。
なお、ステップ118の最初の実行は、時間70aにおける第2のヘッダーの読取りであることに留意されたい。これは余分な読取り動作であるが、これはフローチャートを簡略化する。
【0049】
フレームサイズがデータ受信機によって決定される態様
フレームの終端がデータ受信機によって決定されると、信号遅延を変えるための配線をモニタリングするために、データ信号の追加のサンプルを取り込まなくてはならない。例えば、図5における事例64aおよび64dにおいて、サンプリング時間の選択のための規則は、異なる結果につながる。両方の規則を、サンプルが不一致となるまで延長することを許可されたフレームに使用することもできる。事例64bおよび64cに対して、両方の規則は、同一のサンプリング時間を選択する結果になる。両方の場合において、第1のヘッダービットの3つのサンプルが作成される。第1または第3のサンプリング時間に不一致が見いだされるまで、3つすべての時間におけるデータ信号をモニタリングし、その後に、不一致があるまで残りの2つについてサンプリングすることによって、フレーム長さを大幅に延長することができる。
【0050】
フレームサイズがデータ受信機によって決定される場合には、データ信号が、データが連続して1または0である、長いストレッチを含まないことが必要である。これらの状況下において、受信機は、伝播遅延における変化を検出する手段を有さず、連続する1または0の数を正確に数えることができない。この状況を回避するために、コーディング機構を、データ送信装置によって実現することもできる。
【0051】
複数サンプリングクロックを使用する態様
別の態様においては、それぞれがデータビットレートで生成される3つのマスタークロック信号、MCLK1、MCLK2、およびMCLK3によるなどのように、データビットレートにおいて(すなわち、データセル毎に)3つ以上のサンプルが、取り込まれる。MCLK2およびMCLK3は、MCLK1の位相シフトバージョン(例えば、それに対して、それぞれ120度および240度シフト)としてもよい(しかしそうでなくてもよい)。一態様において、各マスタークロックでDOUTがサンプリングされて、検出結果が記録される。データ値として使用するサンプルの選択は、後に行ってもよい。例えば、図8に示すように、それぞれMCLK1、MCLK2、およびMCLK3に対応する、DOUTのサンプル128a、128bおよび128cは、それぞれレジスタ130a、130b、および130cに供給される。これらのレジスタは、MUX126に接続され、このMUX126は、制御信号132によって制御される。制御信号132は、上記で考察した決定アルゴリズムを実装する、追加の回路(図示せず)によって駆動され、特定のデータビットに対するサンプルを選択するのに、どのマスタークロックを使用すべきかを決定、選択する。DOUTの選択された読取り値は、次いで、MUXによって出力信号134に書き込まれる。
【0052】
データ送信機によって同期が初期化される態様
態様によっては、データ送信機が、データ受信機に、同期信号を介して、それが1フレームのデータを送出している(または送出しようとしている)ことを指示することも想定できる。すなわち、そのような態様においては、同期信号を発生させるのは、受信機ではなく、送信機である。データ送信機から同期信号を受信すると、データ受信機は、DOUT上のフレームヘッダーおよびデータを検出する。そのような態様は、例えば、データ送信機が、ある量のデータを収集して、データ受信機にデータを配信するのに適当な時間であると判定する場合に、適切である。代替的に、同期信号の発生のトリガーをかけるタイマーを送信機に含めてもよい。
【0053】
本発明の概念と、そのような発明概念および観点の1つまたは2つ以上を実施するための可能な態様の特定の例示実現形態とについて説明したが、本発明の観点は、他の様々な方法で実現できることは当業者には明白であろう。本発明の趣旨の範囲であり、それから逸脱しない、当業者であれば自然に思いつくような、そのような他の実現形態は、本開示によって示唆し、その範囲に含めることを意図するものである。したがって、本発明は考察した例に限定されるものではなく、またはそれらによって限定されるものでもなく、添付の請求項とその均等物によってのみ限定される。

【特許請求の範囲】
【請求項1】
データ送信機とデータ受信機の間のバイナリ信号のシリアル通信において、前記バイナリ信号は、第1のバイナリ値を表わす第1の論理レベルと第2のバイナリ値を表わす第2の論理レベルと間で変動する、バイナリ信号のシリアル通信の方法であって、
所定のクロックレートで、前記データ受信機から前記データ送信機にクロック信号を送信すること;
前記データ受信機から前記データ送信機に同期信号を送信すること;
前記同期信号に応答してフレームの送信を初期化すること;
前記フレームの初期化時に、前記データ送信機から前記データ受信機に所定の名目ビットレートで、ヘッダーコードとそれに続く複数のデータビットを含む、バイナリデータ信号を送信すること;
前記フレームの初期化に続いて、前記受信機において前記バイナリデータ信号を受信し、前記ヘッダーコードを検出し、該ヘッダーコード検出に応じて、前記フレーム内の残りのデータビットに対するデータビットサンプリング時間を決定すること、および
前記データ受信機において、前記データビットサンプリング時間に、それぞれの前記データビットの論理値を検出することを含む、前記方法。
【請求項2】
データ送信に使用される所定の名目ビットレートが、クロックレートの1/3以下である、請求項1に記載の方法。
【請求項3】
同期信号に応答してフレームの送信を初期化することが、フレームを初期化するという要求を示す前記同期の論理レベルにおける変化を検出することを含む、請求項1に記載の方法。
【請求項4】
同期信号の論理レベルのさらなる変化を検出すると、フレームを終了させることをさらに含む、請求項3に記載の方法。
【請求項5】
データ信号が、ヘッダーコード内またはその後に、符号化されたフレーム長を含む、請求項1に記載の方法。
【請求項6】
データ受信機においてヘッダーコードを検出することが、
名目ビットレートの少なくとも3倍のレートでヘッダーコードをサンプリングすること;
第1のヘッダービットの検出を示すサンプル数を計数すること;および
前記計数に応じて、フレーム内の残りのデータビットに対するサンプリング時間を設定することを含む、請求項1に記載の方法。
【請求項7】
データ受信機においてヘッダーコードを検出することが、
データビットレートに等しいクロックレートを有するマスタークロックの、複数の追加の位相シフト相当物を生成すること、
前記マスタークロックでデータ信号およびそれの位相シフトされた相当物のそれぞれをサンプリングすること;および
前記マスタークロックまたは追加の相当クロックの1つのいずれかを選択して、フレーム内の後続のデータビットのための前記データビットサンプリング時間を設定し、前記時間にデータビットをサンプリングすることを含む、請求項1に記載の方法。
【請求項8】
外部源から、外部クロック信号と呼ばれる、クロック信号を受信するステップ、
前記外部クロック信号のクロックレートが、所定の最小レートを超えるかどうかを判定し、そうであれば、受信機内で使用するための内部クロック信号として前記外部クロック信号を再生成し、そうでなければ、そのレートが前記所定の最小レートを超えるクロック信号を発生させることによって、前記受信機内で使用するための内部クロック信号を生成するステップ、および
前記送信機へと送信されるクロック信号を生成する際に前記内部クロック信号を使用するステップをさらに含む、請求項1に記載の方法。
【請求項9】
1つまたは2つ以上のヘッダービットおよび1つまたは2つ以上のデータビットを含む、データ送信機からのフレーム内の、バイナリ信号のシリアル通信を受信し、該受信したバイナリ信号をバイナリデータに復号して送信されたビットを特定する、データ受信機であって、
前記送信機にクロック信号を供給するクロック発生器;
フレームを開始するための同期信号を前記送信機に供給する同期信号源;
前記シリアル通信を受信し、ヘッダーコードを検出し、前記シリアル通信をサンプリングしてそのデータビットを復号するためのデータビットサンプリング時間を決定し、該データビットサンプリング時間に、受信したシリアル通信の論理レベルをサンプリングして、対応するデータビット値を供給する、状態マシンを含み、
該状態マシンは、有限の複数の可能性のあるサンプル時間の中からサンプリング時間を選択することによってデータビットサンプリング時間を決定し、受信ビット値の名目中央値の近傍をサンプリングする、前記データ受信機。
【請求項10】
クロック発生器は、送信機がシリアル通信されるバイナリ信号においてビットを送信するビットレートの、少なくとも3倍のレートでクロック信号を供給する、請求項9に記載のデータ受信機。
【請求項11】
同期信号源が、同期信号の論理レベルを変更することによって送信機からのフレームを要求する、請求項9に記載のデータ受信機。
【請求項12】
同期信号源が、第1の論理レベルから第2の論理レベルに同期信号を変更することによって送信機からフレームを要求するとともに、前記同期信号を第2の論理レベルから第1の論理レベルに変更することによってフレームの終了を要求することをさらに含む、請求項9に記載のデータ受信機。
【請求項13】
状態マシンが、マスタークロックの各クロックサイクルに、受信したシリアル通信をサンプリングし、第1のヘッダービットの検出回数を計数し、それからデータビットサンプリング時間を決定する、請求項9に記載のデータ受信機。
【請求項14】
ヘッダーコードを検出するために、状態マシンは、データビットレートに等しいクロック速度で、マスタークロックを位相シフトさせることによって追加のクロックを生成し、各クロックにおいてデータ信号をサンプリングし、マスタークロックまたは追加のクロックの1つのいずれかを選択して、データビットサンプリング時間を指定するように適合されている、請求項9に記載のデータ受信機。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2010−504698(P2010−504698A)
【公表日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2009−529261(P2009−529261)
【出願日】平成19年9月21日(2007.9.21)
【国際出願番号】PCT/US2007/020526
【国際公開番号】WO2008/036413
【国際公開日】平成20年3月27日(2008.3.27)
【出願人】(501144003)アナログ・デバイシズ・インコーポレーテッド (51)
【Fターム(参考)】