(57)【特許請求の範囲】
【請求項１】
シリアルデータをサンプリングしてデータを再生するデータ再生回路であって、
シリアル通信で受信したシリアルデータを前記シリアルデータの通信レートより高い周波数のクロックでサンプリングし、ｎ（ｎは２以上の整数）ビットのパラレルデータと、前記クロックの１／ｎの周波数のクロックとを出力するオーバーサンプリング部と、
前記パラレルデータのエッジ位置を検出し、エッジデータとして出力するエッジ検出部と、
前記オーバーサンプリング部が出力する次回の前記パラレルデータのエッジ位置を位相比較部が出力する位相制御信号から予測し、エッジ予測位置データとして出力すると共に、前記エッジ予測位置データから半位相ずらしたデータをサンプリング位置データとして出力するエッジ位置計算部と、
前記エッジ検出部が出力した前記エッジデータと、前記エッジ位置計算部が出力した前記エッジ予測位置データとを比較し、位相制御信号を出力する位相比較部と、
前記オーバーサンプリング部が出力するパラレルデータから前記エッジ位置計算部が出力する前記サンプリング位置データによりデータの抽出を行い、リカバリデータとして、該データの有効性を示すデータイネーブルと共に出力する前記データサンプリング部と、
を有することを特徴とするデータ再生回路。
【請求項２】
前記オーバーサンプリング部に高速通信のＩＰコアを使用することを特徴とする請求項１に記載のデータ再生回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーボユニットなどのユニット間の通信を行う場合、各ユニットの制御クロックの周波数偏差の影響をなくすため、通信データに重畳されたクロックを分離し、データのサンプリングを行うデータ再生用回路に関する。
【背景技術】
【０００２】
ユニット間の通信を行う場合、各ユニットの制御クロックの周波数偏差の影響をなくすため、通信データに重畳されたクロックを分離し、データのサンプリングを行うデータ再生用回路であるクロックデータリカバリ回路を使用することがある。ＡＳＩＣにクロックデータリカバリ回路を含める場合、クロックデータリカバリ回路はＡＳＩＣベンダで専用設計となる。そのため、通信周波数の異なる新しいＡＳＩＣを作成する場合、クロックデータリカバリ回路を新たに設計する必要があり、開発期間が長くなっていた。なお、ＡＳＩＣとは特定用途向け集積回路のことで、ある用途に特化して機能するように設計された集積回路（ＩＣ）のことである。
【０００３】
この問題を解決する手段として、特許文献１のようなオーバーサンプリング型のデータ再生回路を使用することが考えられる。このようなデータ再生回路では、シリアルデータの転送レートより低い周波数のクロックを、位相をずらして複数用意し、それぞれのクロックでシリアルデータをサンプリングしパラレルデータにすることで、使用するクロックの周波数を下げることができるためデータ再生回路の設計が容易となった。
【０００４】
オーバーサンプリング型データ再生回路では、シリアル通信のシリアルデータ１ビットに対し、オーバーサンプリング回数が多いほど、シリアルデータ再生のためのサンプリング位置を細かく調整でき、再生の精度を上げることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２６２１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のオーバーサンプリング型データ再生回路では、シリアルデータをオーバーサンプリングして得られたパラレルデータのエッジ位置が、前回のエッジ位置から大きく変化することがないように、シリアル通信のデータレートはオーバーサンプリング回路が出力するパラレルデータの周波数に対して整数倍（具体例ではシリアル通信の２ｂｉｔをオーバーサンプリングして、１回のパラレルデータとして出力となっている。）である必要がある。そのため、パラレルデータのビット数が決まっている場合には、使用可能なオーバーサンプリング周波数に制限ができ、オーバーサンプリングの回数を最大に出来ないという問題があった。
【０００７】
図９は従来のデータ再生回路を説明する図である。データ再生回路３０は、オーバーサンプリング部３１、エッジ検出部３２、サンプリングクロック選択部３３、位相比較部３４、データサンプリング部３５を備えている。
【０００８】
オーバーサンプリング部３１はシリアル通信で受信したデータを、シリアルデータの通信レートより高い周波数のクロックでサンプリングし、ｎビットのパラレルデータ（ｐｄａｔａ）と前記クロックの１／ｎの周波数のクロック（ｒｃｌｋ）を出力する。
【０００９】
図１０に示される例では、オーバーサンプリング部３１ではシリアル通信のデータレートの６倍の周波数でオーバーサンプリングし、シリアル通信データの２ビットを１２ビットのパラレルデータ（ｐｄａｔａ）として出力している。
【００１０】
エッジ検出部３２はオーバーサンプリング部３１の出力するパラレルデータ（ｐｄａｔａ）のエッジ位置を検出する。サンプリングクロック選択部３３では、あらかじめ用意してあるｓｍｐｌ＿ｃｌｋ１〜ｓｍｐｌ＿ｃｌｋ６の中からサンプリングクロックを位相比較部３４が出力する位相制御信号（ｃｎｔｄｎ，ｃｎｔｕｐ）により選択する。位相制御信号（位相の変化（増加）を示す信号ｃｎｔｄｎ，位相の変化（減少）を示す信号ｃｎｔｕｐ）の入力が無い場合には前回と同じサンプリングクロックを、位相制御信号（ｃｎｔｄｎ，ｃｎｔｕｐ）が入力された場合には、入力された信号に応じて、一つ大きい、又は一つ小さいサンプリングクロックを出力する。
【００１１】
位相比較部３４では、エッジ検出部３２が実際に検出したエッジの位置（ｅｄｇｄａｔａ）と、現在のサンプリングクロック（ｓｍｐｌ＿ｃｌｋ）のエッジ位置を比較し、位相制御信号（ｃｎｔｄｎ，ｃｎｔｕｐ）を出力する。
【００１２】
データサンプリング部３５では、オーバーサンプリング部３１の出力するパラレルデータ（ｐｄａｔａ）とサンプリングクロック選択部３３が出力するサンプリングクロック（ｓｍｐｌ＿ｃｌｋ）を用いて、リカバリデータを抽出し、出力する。
【００１３】
データ再生回路３０において、サンプリングクロック選択部３３がサンプリングクロックの選択を行うためには、オーバーサンプリング部３１が出力するパラレルデータ（ｐｄａｔａ）のエッジ位置が、前回のエッジ位置から大きく変化することがないことが必要である。そのため、シリアル通信のデータレートはオーバーサンプリング部３１が出力するパラレルデータの周波数に対して整数倍である必要がある。パラレルデータ（ｐｄａｔａ）が１２ビットの場合、オーバーサンプリングクロックには、最高でシリアル通信のデータレートの１２倍の周波数が使用できる。しかし、この周波数でセットアップホールド時間等の問題によりオーバーサンプリング部３１の回路が構成できない場合には、オーバーサンプリングクロック（ｃｌｋ）はシリアル通信のデータレートの６倍の周波数に、それでも構成できない場合には、４倍の周波数になってしまい、自由にオーバーサンプリングクロック（ｃｌｋ）の周波数を選べないという問題がある。
【００１４】
一方、ＡＳＩＣや、ＦＰＧＡ（ＦＰＧＡは製造後に購入者や設計者が構成を設定できる集積回路である。）には一般に普及しているギガビットイーサネット（登録商標）等の高速通信のＩＰコアが用意されており、単純につまり容易にオーバーサンプリング回数を増やす手段を備えている。
【００１５】
そこで、本発明の目的は、上記従来技術の問題点に鑑み、シリアルデータの通信レートとオーバーサンプリング回路が出力するパラレルデータの周波数の間に依存性が無く、オーバーサンプリングクロックを最大周波数にすることで、回路の精度を高めることが可能なデータ再生回路を提供することである。
【課題を解決するための手段】
【００１６】
本発明は、課題を解決するため、シリアル通信により受信したデータを高速通信のＩＰによりオーバーサンプリングし、得られたパラレルデータからエッジの位置を検出し、さらに次のエッジがどこに来るのかを予測し、予測したエッジの位置と実際に受信したエッジの位置を比較し、パラレルデータのサンプリング位置の調整を行う。
【００１７】
そして、本願の請求項１に係る発明は、シリアルデータをサンプリングしてデータを再生するデータ再生回路であって、シリアル通信で受信したシリアルデータを前記シリアルデータの通信レートより高い周波数のクロックでサンプリングし、ｎ（ｎは２以上の整数）ビットのパラレルデータと、前記クロックの１／ｎの周波数のクロックとを出力するオーバーサンプリング部と、前記パラレルデータのエッジ位置を検出し、エッジデータとして出力するエッジ検出部と、前記オーバーサンプリング部が出力する次回の前記パラレルデータのエッジ位置を位相比較部が出力する位相制御信号から予測し、エッジ予測位置データとして出力すると共に、前記エッジ予測位置データから半位相ずらしたデータをサンプリング位置データとして出力するエッジ位置計算部と、前記エッジ検出部が出力した前記エッジデータと、前記エッジ位置計算部が出力した前記エッジ予測位置データとを比較し、位相制御信号を出力する位相比較部と、前記オーバーサンプリング部が出力するパラレルデータから前記エッジ位置計算部が出力する前記サンプリング位置データによりデータの抽出を行い、リカバリデータとして、該データの有効性を示すデータイネーブルと共に出力する前記データサンプリング部と、を有することを特徴とするデータ再生回路である。
【００１８】
請求項１に係る発明により、シリアルデータの通信レートはオーバーサンプリング回路が出力するパラレルデータの周波数に対して整数倍でなくても、シリアルデータの再生が可能となるため、オーバーサンプリングクロックを最大周波数にでき、データ再生回路の精度を高めることが出来る。
【００１９】
請求項２に係る発明は、前記オーバーサンプリング部に高速通信のＩＰコアを使用することを特徴とする請求項１に記載のデータ再生回路である。  
請求項２に係る発明により、高周波で動作し、タイミング調整の難しいオーバーサンプリング回路に既設計の高速通信のＩＰを使用するため、ＡＳＩＣの開発が容易になる。
【発明の効果】
【００２０】
本発明により、シリアルデータの通信レートはオーバーサンプリング回路が出力するパラレルデータの周波数に対して整数倍でなくてもよいため、オーバーサンプリングクロックを最大周波数にでき、回路の精度を高めることが可能なデータ再生回路を提供できる。
【図面の簡単な説明】
【００２１】
【図１】本発明に係るデータ再生回路を説明するブロック図である。
【図２】図１のオーバーサンプリング部の動作を説明する図である。
【図３】図１のエッジ検出部の動作を説明する図である。
【図４】図１のエッジ位置計算部の動作を説明する図である（その１）。
【図５】図１のエッジ位置計算部の動作を説明する図である（その２）。
【図６】図１の位相比較部の動作を説明する図である（その１）。
【図７】図１の位相比較部の動作を説明する図である（その２）。
【図８】図１のデータサンプリング部の動作を説明する図である。
【図９】従来のデータ再生回路を説明するブロック図である。
【図１０】図９のオーバーサンプリング部の動作を説明する図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面と共に説明する。  
図１は本発明に係るデータ再生回路のブロック図である。データ再生回路１０はオーバーサンプリング部１１と、エッジ検出部１２と、エッジ位置計算部１３と、位相比較部１４と、データサンプリング部１５を備えている。
【００２３】
オーバーサンプリング部１１はシリアル通信で受信したデータ（ｓｄａｔａ）を、シリアルデータの通信レートより高い周波数のクロックであるオーバーサンプリングクロック（ｃｌｋ）でサンプリングし、ｎビットのパラレルデータ（ｐｄａｔａ）と前記クロックの１／ｎの周波数のクロック（ｒｃｌｋ）を出力する。ここで、ｎは２以上の整数である。このオーバーサンプリング部１１はＡＳＩＣベンダ、ＦＰＧＡメーカが所持しているギガビットイーサネット（登録商標）等の高速通信のＩＰであってもよい。オーバーサンプリング部１１以外の回路はオーバーサンプリング部１１が出力する１／ｎの周波数のクロック（ｒｃｌｋ）によって動作する。
【００２４】
エッジ検出部１２はオーバーサンプリング部１１が出力するパラレルデータのエッジ位置を検出する。エッジ位置計算部１３はシリアル通信レートとオーバーサンプリングクロックの周波数の割合と、位相比較部１４が出力する位相制御信号をもとに、オーバーサンプリング部の出力する次回のパラレルデータのエッジの位置を予測する。また、予測したエッジの位置から半位相ずらしたデータをサンプリング位置データとして出力する。
【００２５】
位相比較部１４では、エッジ検出部１２が実際に検出したエッジの位置と、エッジ位置計算部１３が予測したエッジ位置を比較し、位相制御信号を出力する。データサンプリング部１５では、オーバーサンプリング部１１の出力するｎビットのパラレルデータ（ｐｄａｔａ）からエッジ位置計算部１３が出力するサンプリング位置データの情報を用いて、シリアルデータのリカバリデータとして抽出し、リカバリデータ（ｒｄａｔａ）とそのデータが有効かどうかを示すデータイネーブル（ｒｄａｔａ＿ｅｎ）を出力する。
【００２６】
上述したように、データ再生回路１０はオーバーサンプリング部１１が出力する１／ｎの周波数のクロック（ｒｃｌｋ）と、データサンプリング部１５が出力するリカバリデータ（ｒｄａｔａ）とデータイネーブル（ｒｄａｔａ＿ｅｎ）を出力する。データ再生回路１０は、オーバーサンプリングクロック周波数を最大にでき、データ再生回路１０の精度を上げることが出来る。また、高周波数で動作する必要があるオーバーサンプリング部１１に、ＡＳＩＣベンダやＦＰＧＡメーカが所持している高速通信のＩＰを用いるため、開発が容易となり、開発期間の短縮が可能である。
【００２７】
以下、データ再生回路１０の各部の動作を説明する。  
図２はオーバーサンプリング部の動作を説明する図である。オーバーサンプリング部１１では、シリアル通信で受信したデータ（ｓｄａｔａ）をオーバーサンプリングクロック（ｃｌｋ）でサンプリングし、サンプリングデータを取得する。取得したサンプリングデータは、オーバーサンプリングクロック（ｃｌｋ）の１／ｎの周波数のクロックｒｃｌｋと共に、ｎビットのパラレルデータ（ｐｄａｔａ）としてオーバーサンプリング部１１から出力される。オーバーサンプリングクロックの１／ｎの周波数のクロックｒｃｌｋはオーバーサンプリング部１１以外のデータ再生回路１０でクロックとして用いられる。
【００２８】
図２ではシリアルデータの６倍の周波数のオーバーサンプリングクロック（ｃｌｋ）でサンプリングし、ｎビットのパラレルデータｐｄａｔａは２０ビット、オーバーサンプリングクロックの１／ｎの周波数のクロックｒｃｌｋはオーバーサンプリングクロック（ｃｌｋ）の１／２０の周波数となっているが、一例であり、本発明を制限するものではない。以下の説明も同様である。このオーバーサンプリング部１１にＡＳＩＣベンダやＦＰＧＡメーカの既に所持している高速シリアルデータ受信用ＩＰを流用することで、開発工数が削減可能になる。
【００２９】
図３はエッジ検出部の動作を説明する図である。  
エッジ検出部１２はオーバーサンプリング部の出力するパラレルデータのエッジ位置を検出する。
【００３０】
エッジ検出部１２ではｎビットのパラレルデータｐｄａｔａと、１クロック前のｎビットのパラレルデータｐｄａｔａの最上位ビットと今回のｎビットのパラレルデータｐｄａｔａの最下位ビットから最上位ビットの１ビット前までを連結したデータを排他的論理和回路２０に入力することによって、排他的論理和回路２０の出力がｎビットのパラレルデータｐｄａｔａのエッジ位置を示すエッジ位置データｅｄｇｄａｔａとなる。
【００３１】
図４，図５はエッジ位置計算部の動作を説明する図である。  
エッジ位置計算部１３では、シリアル通信のデータレートとオーバーサンプリング部１１で使用したオーバーサンプリングクロックｃｌｋの周波数の比率を半分にしたビット数毎に０と１が反転したリングバッファ２１を用意する。図５に示される例では、シリアルデータ１ビットに対して６倍の周波数でオーバーサンプリングしているため、３ビット毎に０と１が続いている。
【００３２】
読み出しの先頭位置を示すリードポインタ２２から時計回りにｎビットのパラレルデータｐｄａｔａのビット長の２０ビットをエッジ予測位置データｃａｌｃ＿ｅｄｇとして出力する。リードポインタ２２は基本的にクロック毎に時計回りにｎビットのパラレルデータｐｄａｔａのビット長と同じ２０進むが、後述の位相比較部１４から位相の変化を示す信号ｃｎｔｕｐ、あるいはｃｎｔｄｎ信号が入力された場合には、それぞれｎビットのパラレルデータｐｄａｔａのビット長より１少ない１９、あるいは１長い２１進む。
【００３３】
エッジ予測位置データｃａｌｃ＿ｅｄｇは０から１に変化するところにｎビットのパラレルデータｐｄａｔａのエッジが来るように制御されている。そのため、ｎビットのパラレルデータｐｄａｔａのサンプリング位置としてはｃａｌｃ＿ｅｄｇが１から０に変化する点となる。１クロック前のｃａｌｃ＿ｅｄｇの最上位ビットと今回のｃａｌｃ＿ｅｄｇの最下位ビットから最上位ビットの１ビット前までを連結したデータと、今回のｃａｌｃ＿ｅｄｇの反転を論理積回路２３に入力した出力がｎビットのパラレルデータｐｄａｔａのサンプリング位置を示すｓｍｐｌ＿ｐｏｉｎｔとなる。
【００３４】
図６，図７は位相比較部の動作を説明する図である。  
位相比較部１４では、初めにエッジ位置データｅｄｇｄａｔａとエッジ予測位置データｃａｌｃ＿ｅｄｇを比べることで、シリアルデータの位相が進んでいるか、遅れているかを監視する。エッジ予測位置データｃａｌｃ＿ｅｄｇは０から１になる所に理想的なエッジが来るよう制御されているため、エッジ位置データｅｄｇｄａｔａとエッジ予測位置データｃａｌｃ＿ｅｄｇを論理積回路２４に入力することで、エッジが遅れている場合、それを示す信号ｕｐに１を出力する。また、エッジ位置データｅｄｇｄａｔａと反転したｃａｌｃ＿ｅｄｇを論理積回路２５に入力することで、エッジが早い場合、それを示す信号ｄｎに１を出力する。
【００３５】
これらの信号ｕｐとｄｎを直接位相制御に使用すると、応答性が高くなりすぎてしまい、ノイズやジッタ等に過敏に反応する可能性があるため、適当なフィルタリング処理が必要である。例えば、特許文献１と同様に、これらの信号をカウンタ２６に入力し、何回か入力された時点で位相制御信号ｃｎｔｕｐ，ｃｎｔｄｎを出力する。具体的にはカウンタ２６にｕｐが入力すると＋１、ｄｎが入力すると−１とし、＋８になるとｃｎｔｕｐが出力されカウンタは０に戻り、−８になるとｃｎｔｄｎが出力されカウンタは０に戻る。図７では２個目のデータ入力時にカウンタは−６でｄｎが３入力されたため、次のクロックでカウンタ２６が−８−１となり、ｃｎｔｄｎを出力し、カウンタの値は−１となっている。これらの位相制御信号ｃｎｔｕｐとｃｎｔｄｎは前述のエッジ位置計算部１３の入力となり、位相制御に使用される。
【００３６】
図８はデータサンプリング部の動作を説明する図である。  
データサンプリング部１５ではｓｍｐｌ＿ｐｏｉｎｔで１となっているビット位置のｐｄａｔａのデータをｒｄａｔａに出力する。また、ｓｍｐｌ＿ｐｏｉｎｔの１となっているビット数をデータイネーブルｒｄａｔａ＿ｅｎに１を立て出力する。図８に示される例でリカバリデータｒｄａｔａとｒｄａｔａ＿ｅｎが６ビットあるのは他のシリアル通信のデータレートでも使うことを考えているためである。
【符号の説明】
【００３７】
１０  データ再生回路
１１  オーバーサンプリング部
１２  エッジ検出部
１３  エッジ位置計算部
１４  位相比較部
１５  データサンプリング部
２０  排他的論理和回路
２１  リングバッファ
２２  ポインタ
２３，２４，２５  論理積
２６  カウンタ
３０  データ再生回路
３１  オーバーサンプリング部
３２  エッジ検出部
３３  サンプリングクロック選択部
３４  位相比較部
３５  データサンプリング部
ｓｄａｔａ  シリアル通信で受信したデータ
ｃｌｋ  オーバーサンプリングクロック
ｐｄａｔａ  ｎビットのパラレルデータ
ｒｃｌｋ  オーバーサンプリングクロックの１／ｎの周波数のクロック
ｅｄｇｄａｔａ  エッジ位置データ
ｃａｌｃ＿ｅｄｇ  エッジ予測位置データ
ｓｍｐｌ＿ｐｏｉｎｔ  サンプリング位置データ
ｃｎｔｕｐ  位相の変化（増加）を示す信号
ｃｎｔｄｎ  位相の変化（減少）を示す信号
ｒｄａｔａ  リカバリデータ
ｒｄａｔａ＿ｅｎ  データイネーブル
【要約】
【課題】オーバーサンプリングクロックを最大周波数にでき、精度を高めることが可能なデータ再生回路を提供する。
【解決手段】オーバーサンプリング部１１はシリアル通信で受信したデータを、シリアルデータの通信レートより高い周波数のクロックでサンプリングし、ｎビットのパラレルデータと前記クロックの１／ｎの周波数のクロックを出力する。エッジ検出部１２はパラレルデータのエッジ位置を検出する。エッジ位置計算部１３は次回のパラレルデータのエッジの位置を予測し、サンプリング位置データとして出力する。位相比較部１４では、エッジ検出部１２が実際に検出したエッジの位置と、エッジ位置計算部１３が予測したエッジ位置を比較し、位相制御信号を出力する。データサンプリング部１５では、シリアルデータのリカバリデータを抽出し、リカバリデータとそのデータが有効かどうかを示すデータイネーブルを出力する。
【選択図】図１【図１】
0005883101.tif 000002
【図２】
0005883101.tif 000003
【図３】
0005883101.tif 000004
【図４】
0005883101.tif 000005
【図５】
0005883101.tif 000006
【図６】
0005883101.tif 000007
【図７】
0005883101.tif 000008
【図８】
0005883101.tif 000009
【図９】
0005883101.tif 000010
【図１０】
0005883101.tif 000011