(57)【要約】【課題】受信側を小型の構成で伝送路によるスキューを補正でき高精度な周波数・位相制御を可能とする。【解決手段】伝送クロックと、該伝送クロックに同期し任意のビット幅を有する伝送データとを出力するデータ送信手段と、伝送クロックを用いて伝送データをサンプリングすることにより伝送データを受信するデータ受信手段とを備え、データ受信手段は、入力される伝送データと伝送クロックの位相関係から生成される、位相同期しているか否かを示す位相判定信号を、データ送信手段に出力する機能を有し、データ送信手段は、伝送クロックよりも高周波数の高周波クロックを生成するクロック生成部と、高周波クロックを基準として伝送クロックを生成する伝送クロック生成部と、高周波クロックを基準として、位相判定信号に基づいて伝送クロックとの位相誤差を補正した伝送データを生成する伝送データ生成部とを有する。【選択図】図１
2010219891.tif 000002
【特許請求の範囲】
【請求項１】
伝送クロックと、該伝送クロックに同期し任意のビット幅を有する伝送データとを出力するデータ送信手段と、前記伝送クロックを用いて前記伝送データをサンプリングすることにより前記伝送データを受信するデータ受信手段とを備えるデータ通信システムにおいて、
前記データ受信手段は、入力される伝送データと前記伝送クロックの位相関係から生成される、位相同期しているか否かを示す位相判定信号を、前記データ送信手段に出力する機能を有し、
前記データ送信手段は、前記伝送クロックよりも高周波数の高周波クロックを生成するクロック生成部と、
前記高周波クロックを基準として前記伝送クロックを生成する伝送クロック生成部と、
前記高周波クロックを基準として、前記位相判定信号に基づいて前記伝送クロックとの位相誤差を補正した前記伝送データを生成する伝送データ生成部と、
を有することを特徴とするデータ通信システム。
【請求項２】
前記高周波クロックは、周期Ｔを有し、位相差としてＴ／Ｐずつ順に位相をずらした相数Ｐの多相クロックであり、
前記データ送信手段は、
前記多相クロックの位相差Ｔ／Ｐを基準として、前記伝送クロックを生成する伝送クロック生成部と、
前記多相クロックの位相差Ｔ／Ｐを基準として、前記位相判定信号に基づいて前記伝送クロックとの位相誤差を補正した前記伝送データを生成する伝送データ生成部と、
を有することを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記伝送クロック及び前記伝送データの周波数に、ＳＳＣ変調に代表される任意の変調を、前記高周波クロックを基準として、デジタル演算によって施すことを特徴とする請求項１に記載のデータ通信システム。
【請求項４】
前記伝送クロック及び前記伝送データの周波数に、ＳＳＣ変調に代表される任意の変調を、前記多相クロックの位相差Ｔ／Ｐを基準として、デジタル演算によって施すことを特徴とする請求項２に記載のデータ通信システム。
【請求項５】
伝送クロックと、該伝送クロックに同期し任意のビット幅を有する伝送データとを出力するデータ送信手段と、前記伝送クロックを用いて前記伝送データをサンプリングすることにより前記伝送データを受信するデータ受信手段とを備えるデータ通信システムにおいて、
前記データ受信手段は、受信側でのデータの取り込みタイミングを表す受信同期クロックと、入力される伝送データと前記伝送クロックの位相関係から生成される、位相同期しているか否かを示す位相判定信号とを、前記データ送信手段に出力する機能を有し、
前記データ送信手段は、前記伝送クロックよりも高周波数の高周波クロックを生成するクロック生成部と、
前記高周波クロックを基準として前記伝送クロックを生成する伝送クロック生成部と、
前記高周波クロックを基準として、前記受信同期クロックおよび前記位相判定信号に基づいて前記伝送クロックとの位相誤差を補正した前記伝送データを生成する伝送データ生成部と、
を有することを特徴とするデータ通信システム。
【請求項６】
前記高周波クロックは、周期Ｔを有し、位相差としてＴ／Ｐずつ順に位相をずらした相数Ｐの多相クロックであり、
前記データ送信手段は、
前記多相クロックの位相差Ｔ／Ｐを基準として、前記伝送クロックを生成する伝送クロック生成部と、
前記多相クロックの位相差Ｔ／Ｐを基準として、前記受信同期クロックに基づいて前記伝送クロックとの位相誤差を補正した前記伝送データを生成する伝送データ生成部と、
を有することを特徴とする請求項５に記載のデータ通信システム。
【請求項７】
前記伝送クロック及び前記伝送データの周波数に、ＳＳＣ変調に代表される任意の変調を、前記高周波クロックを基準として、デジタル演算によって施すことを特徴とする請求項５に記載のデータ通信システム。
【請求項８】
前記伝送クロック及び前記伝送データの周波数に、ＳＳＣ変調に代表される任意の変調を、前記多相クロックの位相差Ｔ／Ｐを基準として、デジタル演算によって施すことを特徴とする請求項６に記載のデータ通信システム。
【請求項９】
画像形成装置において、該画像形成装置内の半導体チップ間もしくはボード間の画像データ通信に、請求項１乃至請求項８のいずれか一項に記載のデータ通信システムが用いられていることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関し、特にレーザプリンタ、デジタル複写機、その他の画像形成装置の内部の半導体チップ間もしくはＰＣＢボード間における画像データ通信に好適なデータ通信技術に関する。
【背景技術】
【０００２】
近年、機器間や、ボード間、チップ間における大容量かつ高速のデータ伝送の要求を満たすため、様々な高速インターフェイス規格が提唱されている。従来より大容量かつ高速のデータ伝送のために取られてきた方法として、伝送クロック周波数を高くしたり、データのビット数を増やしたりして、単位時間あたりの伝送ビット数を増加させることが挙げられる。しかし、伝送されるビットが増加すると、そのビットを伝送するための伝送路設計が困難になるという問題がある。また、伝送クロック周波数が高くなると、クロックとデータの各ビット間のスキューにより取り込みエラーが発生しやすくなる。単一クロックでの伝送を実現するためには、クロックとデータの全ビットの配線長をすべて等しくしなければならず、伝送路設計はますます困難なものとなる。
【０００３】
このようなスキューの問題に対して、特許文献１に開示の方法が提案されている。これは、受信したクロックを元に多数のクロックを生成し、それぞれのクロックで受信データをサンプリングし、その中で最も確からしいものを決定することで、取り込みエラーを低減するものである。また、特許文献２に開示の方法も提案されている。これは、受信側回路においてクロックの振幅を検出し、検出された値から伝送路の周波数特性を推定してクロックとデータのスキューを求め、適切なクロックでデータを取り込むようにするものである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
これらのいずれの方法も、エラー低減のための補正はデータ受信側において実施される。しかし、例えば受信側チップを小型にする必要性がある場合や、高電源電圧が必要なため微細な半導体プロセスを使用できないといった場合には、エラー低減のための補正回路を受信側チップ内部に搭載することが困難になる。具体的には図３２に示すような画像形成装置内部のメインコントローラから画像データをエンジン側に送信するシステムにおいて、エンジン側に大規模な回路を載せられない場合や、発光素子を光らせるために高電圧が必要であり、そのために補正回路に大きなプロセスルールを使用することでスピード的に不足する場合や、画像エンジンのチップ数が多くそのチップサイズを小さくしたい場合などが挙げられる。そういった場合には、受信側チップに補正のための回路を搭載することは困難である。
【０００５】
一方、上述したようなクロックとデータのスキューの問題を解決するための手法として近年、高速インターフェイス規格の多くに、シリアル伝送方式が採用されるようになった。シリアル伝送においては、伝送されるデータにクロックが重畳され（エンベデッドクロック）、データ受信部では、受信したデータからこのクロックを抽出し、抽出されたクロック信号に基づいて受信データを復元している。これらの復元動作を行う回路をクロックデータリカバリ（ＣＤＲ）回路と呼んでいる。ＣＤＲ回路は通常ＰＬＬを内部に搭載しており、回路規模が比較的大きいものとなる。そのため、上述したように、受信側の回路規模を大きくできない場合は、受信側にＣＤＲを必要とするシリアル伝送を使用することは困難となる。
【０００６】
本発明は、上記に鑑みてなされたものであって、受信側を小型の構成で、伝送路によるスキューを補正でき、さらに高精度な周波数・位相制御を可能とするデータ通信システムおよび該データ通信システムを用いた画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明のデータ通信システムは、伝送クロックと、該伝送クロックに同期し任意のビット幅を有する伝送データとを出力するデータ送信手段と、前記伝送クロックを用いて前記伝送データをサンプリングすることにより前記伝送データを受信するデータ受信手段とを備えるデータ通信システムにおいて、前記データ受信手段は、入力される伝送データと前記伝送クロックの位相関係から生成される、位相同期しているか否かを示す位相判定信号を、前記データ送信手段に出力する機能を有し、前記データ送信手段は、前記伝送クロックよりも高周波数の高周波クロックを生成するクロック生成部と、前記高周波クロックを基準として前記伝送クロックを生成する伝送クロック生成部と、前記高周波クロックを基準として、前記位相判定信号に基づいて前記伝送クロックとの位相誤差を補正した前記伝送データを生成する伝送データ生成部と、を有することを特徴とする。
【０００８】
また、本発明のデータ通信システムは、伝送クロックと、該伝送クロックに同期し任意のビット幅を有する伝送データとを出力するデータ送信手段と、前記伝送クロックを用いて前記伝送データをサンプリングすることにより前記伝送データを受信するデータ受信手段とを備えるデータ通信システムにおいて、前記データ受信手段は、受信側でのデータの取り込みタイミングを表す受信同期クロックと、入力される伝送データと前記伝送クロックの位相関係から生成される、位相同期しているか否かを示す位相判定信号とを、前記データ送信手段に出力する機能を有し、前記データ送信手段は、前記伝送クロックよりも高周波数の高周波クロックを生成するクロック生成部と、前記高周波クロックを基準として前記伝送クロックを生成する伝送クロック生成部と、前記高周波クロックを基準として、前記受信同期クロックおよび前記位相判定信号に基づいて前記伝送クロックとの位相誤差を補正した前記伝送データを生成する伝送データ生成部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、送信側から伝送データおよび伝送クロックを送り、受信側のデータ取り込み時の位相関係に合わせて伝送データの位相を調整することにより、受信側を小型の構成で、伝送路によるスキューを補正することができる。また、送信側の伝送データ生成の基準となる高周波クロックを多相クロックにすることにより、さらに高精度な周波数・位相制御が可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施形態にかかるデータ通信システムの全体構成を示すブロック図である。
【図２】図２は、図１のデータ通信システムにおけるデータ送信部の第１の構成例を示すブロック図である。
【図３】図３は、分周比設定信号ＲｅｆＭが整数でない場合の動作を実現する周波数演算部３の構成例を示すブロック図である。
【図４】図４は、周波数演算部がＳＳＣ変調機能を持つ場合の構成例を示すブロック図である。
【図５】図５は、伝送データ生成部の構成を示すブロック図である。
【図６】図６は、伝送データ生成部の動作を説明するタイミング図である。
【図７】図７は、位相補正情報生成部の動作を説明するためのフローチャートである。
【図８】図８は、位相補正用データと、関連する信号の一例を示す図である。
【図９】図９は、位相補正用データの第２の例を示す図である。
【図１０】図１０は、第１の実施の形態における第２の構成例として示すデータ送信部を示す構成図である。
【図１１】図１１は、図１０のデータ送信部に備わる高周波クロック生成部で生成する各クロックのタイミングを示す図である。
【図１２】図１２は、図１０の高周波クロック生成部の構成例を示す図である。
【図１３】図１３は、図１０の計数部の構成例を示す図である。
【図１４】図１４は、図１０の伝送クロック出力部の構成例を示す図である。
【図１５】図１５は、図１０の計数部及び伝送クロック出力部における各信号のタイミングの一例を示す図である。
【図１６】図１６は、第１の実施の形態における伝送クロック出力部の第２の構成例を示す図である。
【図１７】図１７は、図１０の計数部、及び伝送クロック出力部の第２の構成例における各信号のタイミングの一例を示す図である。
【図１８】図１８は、図１０の伝送データ生成部の構成例を示す図である。
【図１９】図１９は、図１０の伝送データ生成部の動作を説明するタイミング図である。
【図２０】図２０は、本発明によるデータ通信システムの第２の実施形態の全体構成を示すブロック図である。
【図２１】図２１は、図２０のデータ通信システムにおけるデータ送信部の第１の構成例を示すブロック図である。
【図２２】図２２は、図２１の比較部の構成例を示すブロック図である。
【図２３】図２３は、図２１の一部信号のタイミング図の一例を示す図である。
【図２４】図２４は、図２１の周波数演算部の構成例を示すブロック図である。
【図２５】図２５は、図２１の周波数演算部の他の構成例を示すブロック図である。
【図２６】図２６は、ループフィルタを除くＤＰＬＬ制御系のループゲインを示す図である。
【図２７】図２７は、図２１のフィルタの構成例を示す図である。
【図２８】図２８は、第２の実施形態におけるデータ送信部の第２の構成例を示す図である。
【図２９】図２９は、図２８の計数部及び伝送クロック出力部における各信号のタイミングの一例を示す図である。
【図３０】図３０は、図２８の比較部の構成例を示す図である。
【図３１】図３１は、図２８の比較部における各信号のタイミングの一例を示す図である。
【図３２】図３２は、周知の画像形成装置内の半導体チップ間もしくはＰＣＢボード間における画像データ通信に本発明を適用した例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかるデータ通信システムの実施の形態を詳細に説明する。
【００１２】
［第１の実施形態］
はじめに、本発明の第１の実施形態にかかるデータ通信システムの構成について図１を用いて説明する。図１は、第１の実施形態にかかるデータ通信システムの全体構成を示すブロック図である。
【００１３】
図１に示すように、送信側チップにはデータ送信部１０１が搭載され、受信側チップにはデータ受信部１０２が搭載される。
【００１４】
詳細は後述するが、データ送信部１０１は、基準クロックＲｅｆＣＬＫＴｘと、データと、分周比設定信号ＲｅｆＭと、データ受信部１０２からの位相判定信号の各信号が入力され、伝送クロックＴｘＣＬＫ及び伝送データをデータ受信部１０２へ出力する。データ受信部１０２は、データ送信部１０１からの伝送クロックＴｘＣＬＫと伝送データが入力され、受信データと、データ送信部１０１への位相判定信号（詳細は後述）の各信号を出力する。送信側チップと受信側チップは同一ボード上もしくは異なるボード上に実装される。異なるボード上に実装された場合、ボード間の接続はコネクタを介して直接接続されるか、もしくはハーネスやツイストペアケーブルなどを用いて接続されることを想定している。また上記伝送データはＧＮＤ基準のシングルエンド出力でもよいし、差動出力にしてもよい。また、伝送データは任意のチャネル数（ビット幅）でデータ送信を行うことができる。
【００１５】
（第１の実施形態におけるデータ送信部の第１の構成例）
続いて、図１のデータ送信部１の詳細（第１の構成例）を、図２を用いて説明する。
図２は、図１のデータ通信システムにおけるデータ送信部１０１の第１の構成例を示すブロック図である。
【００１６】
図２において、高周波クロック生成部１０１は、入力される基準クロックＲｅｆＣＬＫＴｘを基に、それを逓倍した高周波クロックＶＣＬＫを生成するものであり、周知のＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路により構成される。入力する基準クロックＲｅｆＣＬＫＴｘを例えば精度のよい水晶発振出力を用いることにより、精度のよい高周波クロックＶＣＬＫが得られる。
【００１７】
分周器２は、この高周波クロックＶＣＬＫを分周することで、伝送クロックＴｘＣＬＫを生成する。この分周器２は、例えばＭ進カウンタにより構成され、カウント値ｃｏｕｎｔＭをさらに出力する。また、分周比Ｍは、周波数演算部３からの分周比指示信号Ｍｎｏｗに従って変更される。
【００１８】
周波数演算部３は、入力される分周比設定信号ＲｅｆＭに基づいて分周比指示信号Ｍｎｏｗを生成する。このように伝送クロックＴｘＣＬＫは、安定かつ高精度に発振させた高周波クロックＶＣＬＫを分周することにより生成されるので、この分周比指示信号Ｍｎｏｗを変更することにより、瞬時にかつ安定的に伝送クロックの周波数を変更することが可能となる。
【００１９】
また、伝送データ生成部４は、高周波クロックＶＣＬＫを基準に、入力されるデータから伝送データを生成する。この際、データ受信部１０２から供給される位相判定信号に基づいて伝送データの位相を変更することで、受信側にとって最適な位相でデータを出力することができるようになる。なお、ここでの伝送データの位相設定の詳細については後述する。また、図２では伝送データ生成部４は一つであるが、必要なビット幅の分だけ並列に拡張することができる。また、周波数演算部３が出力する分周比指示信号Ｍｎｏｗは、高周波クロックＶＣＬＫのカウント数であり、整数である。ただし、分周比設定信号ＲｅｆＭが整数でない場合でも、下記のようにして、周波数演算部３がＭｎｏｗを切り替えることで、平均すれば所望の周波数となるＴｘＣＬＫを得ることができる。
【００２０】
図３に、このような分周比設定信号ＲｅｆＭが整数でない場合の動作を実現する周波数演算部３の構成例を示す。図３の回路は高周波クロックＶＣＬＫで動作する。
【００２１】
入力信号ＲｅｆＭは、整数部分Ｍｉｎｔと小数部分Ｍｄｅｃに分けられ、小数部分Ｍｄｅｃは積算器５に入力される。積算器５はＭｄｅｃを積算してゆき、１を越えた時に整数部分Ｍｃａｌを出力する。またこの出力の際、積算器５は積算値から整数部分Ｍｃａｌを引き、小数部分のみを残す。加算器６はＲｅｆＭの整数部分Ｍｉｎｔと積算器５の出力Ｍｃａｌを加算し、分周比指示信号Ｍｎｏｗとして出力する。このようにすることで、図２のデータ送信部１０１は整数でない分周比ＲｅｆＭに対しても平均すれば所望の周波数となるＴｘＣＬＫを生成することができる。
【００２２】
また、ＴｘＣＬＫに所望のスペクトルを持たせるＳＳＣ変調をかけるようなデジタル演算機能を周波数演算部３に持たせることもできる。図４は、周波数演算部３がＳＳＣ変調機能を持つ場合の構成例を示したものである。このうち、加算部７は図３に示したものと同様であるため、その詳細な説明は省略する。
【００２３】
変調位相カウンタ８は、ＶＣＬＫ（図４にて図示せず）によってインクリメントされ、カウント値Ｐｃｏｕｎｔをメモリ９へ出力する。メモリ９は、変換テーブルとして機能し、入力されたＰｃｏｕｎｔの値に応じて変調信号Ｍｆｉｎｅを出力する。加算器１０はＲｅｆＭにＭｆｉｎｅを加算した値を基にしてＭｎｏｗを生成する。所望の変調周波数・範囲に適した値をメモリ９にあらかじめ設定することで、所望の変調がかかったＴｘＣＬＫを生成することができる。メモリ９の値はデジタル値であるので、変調の設定を変更することも容易である。
【００２４】
次に、伝送データ生成部４の構成とその動作を図５および図６を用いて説明する。
図５は伝送データ生成部４の構成を示すブロック図であり、図６は、伝送データ生成部４の動作を説明するタイミング図である。ここでは、データＤａｔａは１ｂｉｔデータであり、これを基に、伝送データＭｄａｔａが生成される。
【００２５】
図６において、（ａ）ＶＣＬＫの矢印は高周波クロック（周期Ｔｖ）の立ち上がりを示し、（ｂ）ｃｏｕｎｔＭは分周器２でカウントしたカウント値であり、今、ＲｅｆＭ＝Ｍｎｏｗ＝１６と設定されているものとする。（ｃ）ＴｘＣＬＫは伝送クロックであり、ここでは周期は１６Ｔｖとなっている。（ｄ）ＤａｔａはＴｘＣＬＫに同期して入力されるデータである。このデータの値に従って出力される伝送データ（ｅ）Ｍｄａｔａのパルス幅ＴｗはＴｘＣＬＫ周期と同一となっている。
【００２６】
伝送データＭｄａｔａの生成は高周波クロックＶＣＬＫを基準にし、位相補正情報生成部１３によって生成された位相補正情報Ｎｐｃに基づいて行われる。Ｎｐｃは伝送データＤａｔａをＴｘＣＬＫに対してどれだけ遅延させるかを表すものである。図５中のデータ変調部１１は、ｃｏｕｎｔＭ＝Ｍｎｏｗの時にＤａｔａをラッチしてＤｍとして出力する。
【００２７】
データ遅延部１２は、上記ＤｍをＶＣＬＫでＮｐｃサイクル分遅延させて、Ｍｄａｔａを生成する。例として図６中（ｅ−１）のＭｄａｔａはＮｐｃ＝０、（ｅ−２）のＭｄａｔａはＮｐｃ＝１、（ｅ−３）のＭｄａｔａはＮｐｃ＝８の時のそれぞれの伝送データ出力を示したものである。これにより、データ受信部１０２においては、各チャネルの伝送データのほぼ中央でＴｘＣＬＫが立ち上がるように設定することができるようになり、データ取り込みミスが起こりにくくなり良好な通信システムを実現することができる。
【００２８】
続いて、図５に示す位相補正情報生成部１３の詳細な動作について、図７を用いて説明する。図７は、位相補正情報生成部１３の動作を説明するためのフローチャートである。
【００２９】
図７においてステップＳ７０１は位相補正情報設定工程であり、ここで位相補正情報は０もしくは正の整数であり初期値は０であるとする。
【００３０】
ステップＳ７０２は位相補正用データ送信工程であり、ここで位相補正用データとはこのデータ通信システムによって予め定められたデータパターンであって、位相判定時に伝送データ生成部４により出力される。その詳細は図８を用いて後述する。
【００３１】
ステップＳ７０３は、伝送データとしての位相補正用データと伝送クロックＴｘＣＬＫが位相同期しているか否かを示す位相判定信号により分岐処理する工程である。この位相判定信号は、データ受信部１０２において、上記位相補正用データを受信することにより下記のようにして生成され、フラグ“１”が立つことにより位相同期したと判定をする。ここでの判定（本明細書において、位相判定と称す）がＮｏの場合にはステップＳ７０１に戻り位相補正情報を１だけインクリメントする。そして再びステップＳ７０２にて新しい位相補正情報に応じた位相補正用データを送信し、受信した位相判定信号によりステップＳ７０３の判断をする。以上のルーチンをステップＳ７０３での位相判定の結果がＹｅｓになるまで繰り返す。そして位相判定の結果がＹｅｓになったとき、その時点での位相補正情報から算出される確定された位相補正情報を設定する。ここでの位相補正情報の具体的な算出方法は後述する。
【００３２】
ここで、図８に位相補正用データと、関連する信号の一例を示す。図８（Ａ）の例では、（ａ）の位相補正情報は０であり、（ｂ）の位相補正用データはデータ受信部１０２が受信する伝送クロックＴｘＣＬＫの周期Ｔｔｘの５倍のパルス幅をもつパルスである。データ送信部１０１が、この位相補正用データをデータ受信部１０２に送信した時、データ受信部１０２は、データ“１”を５回連続で検出する。この時、（ｅ）の位相判定信号は０のままである。
【００３３】
次に図８（Ｂ）の例では、（ａ）の位相補正情報は“２４”であり、その時の位相補正用データは図８（ａ）に示した位相補正用データよりも立ち上がり時刻が２４＊Ｔｖだけ遅れたパルスとなっている。したがって、この位相補正用データのパルス幅は５＊Ｔｔｘ−２４＊Ｔｖとなる。ここでＴｖは、高周波クロックＶＣＬＫの周期もしくは多相クロックの位相差（Ｔ／Ｐ）であり、演算の単位時間となる。この時データ受信部１０２における（ｄ）の受信データはデータ１の数が１つ減り４つとなる。この場合位相判定信号にフラグ“１”が立つ。位相判定信号はこのように生成される。またこのとき、位相補正用データの立ち上がりと伝送クロックＴｘＣＬＫの立ち上がりはほぼ同時刻であり、位相補正情報を１ずつインクリメントしていった場合には、演算単位時間Ｔｖの精度で伝送されるデータと伝送クロックＴｘＣＬＫの位相を合わせることができる。
【００３４】
この後、実際に送信側に設定する位相補正情報は、現在の位相補正情報の値に、伝送クロックＴｘＣＬＫの周期Ｔｔｘの半周期を演算単位時間Ｔｖの単位で表した数だけ足すもしくは引くことにより算出する。
【００３５】
一例として、位相判定終了時の位相補正情報をＮｐｃ’とし、実際に設定する位相補正情報をＮｐｃとし、Ｔｔｘ＝１６０＊Ｔｖとすると、
Ｎｐｃ  ＝  Ｎｐｃ’  ＋  （Ｔｔｘ／２）／Ｔｖ
から求まるＮｐｃが設定される。図８（Ｂ）に示した例では、Ｎｐｃ’＝２４で、Ｎｐｃ＝１０４となる。ただし、Ｎｐｃ’  ＞  （Ｔｔｘ／２）／Ｔｖの場合には、
Ｎｐｃ  ＝  Ｎｐｃ’  −  （Ｔｔｘ／２）／Ｔｖ
とした方がよい。
【００３６】
実際のデータ通信時に、このように設定された位相補正情報に従って、伝送データをＮｐｃ＊Ｔｖだけ遅延させてやることにより、各チャネルの伝送データのほぼ中央でＴｘＣＬＫが立ち上がるように（図示せず）設定することができ、データ受信部１０２においてデータ取り込みミスが起こりにくくなる。
【００３７】
また、一般のデータ通信システムにおいて、伝送路はある周波数特性を持ち、周波数が高くなると信号の振幅が減衰し、パルス幅を正確に伝送できなくなるといったことが起こる。実際の位相補正用データのパルス幅を設定するときには、この伝送路特性を考慮し設定する必要がある。図８（Ａ）では位相補正用データのパルス幅は送信クロックＴｘＣＬＫの周期Ｔｔｘの５倍としたが、実際はその通信システムにおける伝送路特性を考慮し、その伝送路によって影響を受けない（パルス幅が縮まらない）パルス幅に設定する。
【００３８】
次に、図９（Ａ）および図９（Ｂ）に、位相補正用データの第２の例を示す。
【００３９】
図９（Ａ）の例では、位相補正情報は０であり、位相補正用データは受信クロックの周期Ｔｔｘの５倍から、ある定められた時間ΔＴを引いた５＊Ｔｔｘ−ΔＴのパルス幅をもつパルスである。この位相補正用データをデータ受信部１０２に送信した時、データ受信部１０２が受信する位相補正用データと伝送クロックＴｘＣＬＫの位相関係により、データ受信部１０２において受信されるデータは“１”が５回連続する場合と４回連続する場合が発生する。図９（Ａ）の例はデータ“１”が５回連続する場合である。この時、位相判定信号は０のままである。
【００４０】
次に図９（Ｂ）の例では、（ａ）の位相補正情報は２４であり、その時の位相補正用データは、図９（Ａ）の位相補正用データよりも立ち上がり時刻、立ち下がり時刻共に２４＊Ｔｖだけ遅れたパルスとなる。ここでＴｖは演算単位時間（高周波クロックＶＣＬＫの周期もしくは多相クロックの位相差（Ｔ／Ｐ））である。この時データ受信部１０２で受信される（ｄ）の受信データはデータ“１”の数が１つ減り４つとなる。この場合、位相判定信号はフラグ“１”が立つ。位相判定信号はこのように生成される。またこのとき、位相補正用データの立ち上がりと受信クロックの立ち上がりはほぼ同時刻であり、位相補正情報を１ずつインクリメントしていった場合には、演算単位時間の精度で位相を合わせることができる。
【００４１】
この後、実際に送信側に設定する位相補正情報は、現在の位相補正情報の値に、伝送クロックＴｘＣＬＫの周期Ｔｔｘの半周期を演算単位時間で表した数だけ足すもしくは引くことにより算出する。
【００４２】
例えば、位相判定終了時の位相補正情報をＮｐｃ’とし、実際に設定する位相補正情報をＮｐｃとし、Ｔｔｘ＝１６０＊Ｔｖとすると、
Ｎｐｃ  ＝  Ｎｐｃ’  ＋  （Ｔｔｘ／２）／Ｔｖ
から求まるＮｐｃが設定される。図９（Ｂ）に示した例では、Ｎｐｃ’＝２４で、Ｎｐｃ＝１０４となる。ただし、Ｎｐｃ’  ＞  （Ｔｔｘ／２）／Ｔｖの場合には、
Ｎｐｃ  ＝  Ｎｐｃ’  −  （Ｔｔｘ／２）／Ｔｖ
とした方がよい。
【００４３】
なお、ΔＴの時間としては、位相判定が正確に行えるくらい十分大きく設定する必要があるが、あまり大きくし過ぎると位相同期精度が悪くなるので、その点を考慮して設定する必要がある。
【００４４】
以上述べた位相補正にかかる動作は、伝送されるデータの各ビットについてそれぞれ行うことで、全てのビットを、単一の伝送クロックでエラー無く取り込むことができる。
【００４５】
（第１の実施形態におけるデータ送信部の第２の構成例）
次に、第１の実施形態におけるデータ送信部の第２の構成例について説明する。なお、受信側の構成は前述のものと同様である。
【００４６】
まず、第２の構成例として示すデータ送信部１０１ｂの構成の概要とその動作について図１０および図１１を用いて説明する。図１０は、本実施形態におけるデータ送信部１０１ｂを示す構成図であり、図１１は、データ送信部１０１ｂに備わる高周波クロック生成部２１で生成する各クロックのタイミングを示す図である。
【００４７】
図１０のデータ送信部１０１ｂにおいて、高周波クロック生成部２１は、基準クロックＲｅｆＣＬＫＴｘを逓倍し、位相差が等間隔の多相クロックを生成するものである。なお、本実施形態では１６位相（すなわち、相数Ｐ＝１６）の多相クロックＶＣＬＫ０〜１５を生成するものとする。また、この多相クロックのうちの１つをＱ分周（ここではＱ＝４とする）した内部動作用クロックＧＣＬＫを生成し、図示はしないがデータ送信部１０１ｂの各部へ供給する。  
【００４８】
図１１に示す（ａ−０）〜（ａ−１５）は多相クロックＶＣＬＫ０〜１５を示しており、ＶＣＬＫ０からＶＣＬＫ１５まで順に等間隔の位相差を有しており、図１１において隣り合うクロックの位相差（Ｔ／Ｐ；ここで、ＴはＶＣＬＫの周期）を表す時間間隔をＴｖとする。また、（ｂ）に示すＧＣＬＫは（ａ−０）のＶＣＬＫ０を４分周したクロックである。
【００４９】
図１０のデータ送信部１０１ｂは、基本的に上記クロックＧＣＬＫを動作クロックとして動作する。図１１に示すように、ＧＣＬＫを４分割した期間を順にＱＴ０，ＱＴ１，ＱＴ２，ＱＴ３と称し、また多相クロックＶＣＬＫ０〜１５の立ち上がりにそれぞれ対応したクロックサイクル内の時刻（ＰＨ０を基準とする相対的な時間）を位相ＰＨ０〜ＰＨ１５と称することとする。この期間ＱＴ０〜３と位相ＰＨ０〜１５とによりＧＣＬＫ中の時間情報ＱＰを表す。ここで時間情報ＱＰは０〜６３の６４値であり、本実施形態ではこの多相クロックにおける位相差Ｔｖを基準として伝送クロックＴｘＣＬＫを生成する。つまり伝送クロックの周波数を制御する演算を、動作クロックＧＣＬＫを基準に、時間情報ＱＰ（ＱＴ，ＰＨ）の演算を行うことにより行う。
【００５０】
図１０において計数部２３は、周波数演算部２２からの分周比指示信号Ｍｎｏｗに従って時間を計数するものである。この計数部２３は、計数値がＭｎｏｗに達する度に、ＧＣＬＫに同期したＳＥＴｐｌｓ信号と時間情報ＳＥＴｑｐとからなるＳｅｔ信号を生成する。さらに、このＳｅｔ信号からＭｎｏｗ／２にあたる時間を計数し、ＧＣＬＫに同期したＲＳＴｐｌｓ信号と時間情報ＲＳＴｑｐとからなるＲｓｔ信号を生成する。この計数する時間単位は、多相クロックＶＣＬＫ０〜１５の位相差Ｔｖである。
【００５１】
伝送クロック出力部２４は、計数部２３より供給されるＳｅｔ信号及びＲｓｔ信号に従って「Ｈ」＜−＞「Ｌ」を切り替えて伝送クロックＴｘＣＬＫを生成し出力する。これらの詳細構成及び動作説明は後述する。また、伝送データ生成部２５はＶＣＬＫ０〜１５を基準に伝送データを生成する。この際、データ受信部１０２から供給される位相判定信号に基づいて伝送データの位相を変更することで、受信側にとって最適な位相でデータを出力することができるようになる。図１０では伝送データ生成部２５を一つだけ示しているが、必要なビット幅の分だけ並列に拡張して構わない。なお、周波数演算部２２は、図２の周波数演算部３と同様の機能を果たし、構成も同様であるのでその詳細な説明は省略する。
【００５２】
続いて、本実施形態におけるデータ送信部１０１ｂを構成する各部の詳細をさらに説明する。
【００５３】
（高周波クロック生成部２１）
図１２に、高周波クロック生成部２１の構成例を示す。
【００５４】
この高周波クロック生成部２１は、基準クロックＲｅｆＣＬＫＴｘから、多相クロックＶＣＬＫ０〜１５と内部動作用クロックＧＣＬＫを生成する。電圧制御発振器（ＶＣＯ）３３は、８段の差動バッファ３４ａ〜ｈを接続したリングオシレータで構成され、１６位相のクロックＶＣＬＫ０〜１５を生成する。分周器３０はこの多相クロックのうちの１つ（ここではＶＣＬＫ８）をＮｖ分周する。位相周波数検出器（ＰＦＤ）３１は基準クロックＲｅｆＣＬＫＴｘと分周器３０出力との位相比較を行い、この位相差情報に基づき内在するチャージポンプを駆動する。ローパスフィルタ（ＬＰＦ）３２はチャージポンプ出力を平滑化し制御電圧ＶｃをＶＣＯ３３に供給する。ＶＣＯ３３内の差動バッファ３４ａ〜ｈはこの制御電圧Ｖｃに従って遅延量が変化し、位相同期制御が行われる。
【００５５】
例えば基準クロックＲｅｆＣＬＫＴｘとして１００ＭＨｚのクロックを供給し、分周比Ｎｖを２０とすると、多相クロックＶＣＬＫ０〜１５は２ＧＨｚで、ＶＣＬＫ０からＶＣＬＫ１５まで順に等間隔の位相差を有するクロックが生成できる。また、分周器３５は多相クロックＶＣＬＫ０〜１５のうちの１つ（ここではＶＣＬＫ０）をＱ分周（ここではＱ＝４とする）してクロックＧＣＬＫを生成する。なお、適用し得る多相クロックの相数は本実施例の１６に限らないが、演算の簡便性より２のべき乗がもっとも望ましい。同様にＧＣＬＫを生成するための分周比Ｑも２のべき乗がもっとも望ましい。
【００５６】
（計数部２３及び伝送クロック出力部２４）
図１３に、計数部２３の構成例を示し、図１４に、伝送クロック出力部２４の構成例を示す。さらに、図１５には、計数部２３及び伝送クロック出力部２４における各信号のタイミングの一例を示している。これらの図に基づき、分周比指示信号Ｍｎｏｗに従って伝送クロックＴｘＣＬＫを生成するための詳細構成ならびにその動作を説明する。
【００５７】
図１３における各部は、クロックＧＣＬＫに同期して動作する。ＳＥＴ時間演算部７０は、現在のＴｘＣＬＫ立ち上がり時間情報（ＳＥＴｑｐ）に分周比指示信号Ｍｎｏｗを加算し、次のＴｘＣＬＫの立ち上がり時間を表すセット時間情報ｎｅｘｔＳを演算して出力するものであり、この演算の更新はカウンタ７２からのｐＳｅｔ信号により行う。なお、セット時間情報ｎｅｘｔＳを６４で割った商をｎｅｘｔＳｃ、余りをｎｅｘｔＳｑｐとする。つまりｎｅｘｔＳｃ＝ｎｅｘｔＳ［ＭＳＢ：６］（すなわちｎｅｘｔＳのＭＳＢから第６ｂｉｔまで）、ｎｅｘｔＳｑｐ＝ｎｅｘｔＳ［５：０］（すなわちｎｅｘｔＳの第５ｂｉｔからＬＳＢまで）とする。
【００５８】
ＲＳＴ時間演算部７１は、現在のＴｘＣＬＫ立ち上がり時間情報（ＳＥＴｑｐ）に分周比指示信号Ｍｎｏｗの１／２を加算し、次のＴｘＣＬＫの立ち下がり時間を表すリセット時間情報ｎｅｘｔＲを演算して出力するものであり、この演算の更新はカウンタ７２からのｐＳｅｔ信号により行う。また、リセット時間情報ｎｅｘｔＲを６４で割った商をｎｅｘｔＲｃ、余りをｎｅｘｔＲｑｐとする。つまりｎｅｘｔＲｃ＝ｎｅｘｔＲ［ＭＳＢ：６］、ｎｅｘｔＲｑｐ＝ｎｅｘｔＲ［５：０］とする。なお、現在のＴｘＣＬＫ立ち上がり時間情報にＭｎｏｗ／２を加算するのは、ＴｘＣＬＫのデューティをほぼ５０％にするためであり、デューティ５０％を要求しない場合はこの演算を簡略化できるような値を加算するようにしても良い。
【００５９】
カウンタ７２は、クロックＧＣＬＫを基準としてｎｅｘｔＳｃサイクルのカウントを行い、ｐＳｅｔ信号を生成する。このｐＳｅｔ信号が「Ｈ」の時カウンタは「１」にクリアされ、カウント値がｎｅｘｔＳｃと一致する時、ｐＳｅｔ信号を「Ｈ」とする。
【００６０】
Ｆ／Ｆ７３はｐＳｅｔ信号を１ＧＣＬＫ分遅延させてＳＥＴｐｌｓ信号を生成するフリップフロップである。Ｆ／Ｆ７４は、ｐＳｅｔ信号をイネーブルとしてｎｅｘｔＳｑｐをラッチし、ＳＥＴｑｐ信号を生成するフリップフロップである。このＳＥＴｐｌｓ信号はＴｘＣＬＫの立ち上がりをＧＣＬＫ単位で指定し、これに同期したＳＥＴｑｐ信号によりそのＧＣＬＫサイクル内での立ち上がり時間情報を指定する。これらのＳＥＴｐｌｓ信号とＳＥＴｑｐ信号の組をＳｅｔ信号と称し、伝送クロック出力部２４に供給する。
【００６１】
カウンタ７５は、クロックＧＣＬＫを基準としてｎｅｘｔＲｃサイクルのカウントを行い、ＲＳＴｐｌｓ信号を生成する。ＳＥＴｐｌｓが「Ｈ」の時カウンタを「１」にクリアし、カウント値がｎｅｘｔＲｃに一致する時、ＲＳＴｐｌｓ信号を「Ｈ」とする。Ｆ／Ｆ７６は、ＳＥＴｐｌｓ信号をイネーブル信号としてｎｅｘｔＲｑｐ信号をラッチし、ＲＳＴｑｐ信号を生成するフリップフロップである。このＲＳＴｐｌｓ信号はＴｘＣＬＫの立ち下がりをＧＣＬＫ単位で指定し、ＲＳＴｑｐ信号によりそのＧＣＬＫサイクル内での立ち下がり時間情報を指定する。これらのＲＳＴｐｌｓ信号とＲＳＴｑｐ信号の組をＲｓｔ信号と称し、伝送クロック出力部２４に供給する。なお、ＳＥＴｑｐ信号及びＲＳＴｑｐ信号は、それぞれＳＥＴｐｌｓ及びＲＳＴｐｌｓ信号が「Ｈ」の時有効となっていればよいので、各部の制御タイミングはこの実施形態のみに限定されるものではない。
【００６２】
続いて、伝送クロック出力部２４の第１の構成例を図１４に示す。
【００６３】
図１４において、遅延部７７は、多相クロックＶＣＬＫ０〜１５を基準として、計数部２３から供給されるＳＥＴｐｌｓを時間情報ＳＥＴｑｐに従って遅延させたパルスＳを出力するものである。このパルスＳはＳＥＴｐｌｓをＳＥＴｑｐ＊Ｔｖだけ遅延させたパルスとなる。この遅延部７７には、ＧＣＬＫサイクル中の期間ＱＴ０〜３を特定するためクロックＧＣＬＫも入力する。あるいはＧＣＬＫの代わりに期間ＱＴ０〜３を示す期間信号ＱＴを入力しても良い（この場合は高周波クロック生成部２１でこのＱＴ信号を生成する）。
【００６４】
遅延部７８は、同様に、多相クロックＶＣＬＫ０〜１５を基準として、計数部２３から供給されるＲＳＴｐｌｓを時間情報ＲＳＴｑｐに従って遅延させたパルスＲを出力するものである。このパルスＲはＲＳＴｐｌｓをＲＳＴｑｐ＊Ｔｖだけ遅延させたパルスとなる。
ＳＲ−Ｆ／Ｆ７９は、パルスＳの立ち上がりで出力を「Ｈ」にセットし、パルスＲの立ち上がりで出力を「Ｌ」にリセットした伝送クロックＴｘＣＬＫを出力するＳｅｔ−Ｒｅｓｅｔフリップフロップである。
【００６５】
ここで、以上のように構成された計数部２３及び伝送クロック出力部２４におけるタイミングチャートを図１５に示す。
【００６６】
図１５において、（ａ）はＧＣＬＫ、（ｂ）のＭｎｏｗは周波数演算部２２から供給される分周比指示信号であり、図示したように入力されるものとする。
（ｃ−１）のｎｅｘｔＳはＳＥＴ時間演算部７０で演算される次のＴｘＣＬＫの立ち上がり時間を表す。図１５の例ではまず多相クロックであるＶＣＬＫの１０番目の位相（ＰＨ１０）でＴｘＣＬＫが立ち上がるようになっており、次のＴｘＣＬＫの立ち上がりは１０＋Ｍｎｏｗ＝２５０Ｔｖ後となる。ここで図中右辺のカンマの前（同図向かって左側）の数値はｎｅｘｔＳｃを表し、カンマの後（同図向かって右側）の数値はｎｅｘｔＳｑｐを表す。次のｎｅｘｔＳは、ｎｅｘｔＳｑｐ＋Ｍｎｏｗ＝２９８となる。
【００６７】
（ｃ−２）のｎｅｘｔＲはＲＳＴ時間演算部７１で演算される次のＴｘＣＬＫの立ち下がり時間を表す。次のＴｘＣＬＫ立ち上がり時間（同図の例で最初は１０）にＭｎｏｗ／２を加算した値（＝１３０）がＴｘＣＬＫの立下り時間となる。（ｃ−１）のｎｅｘｔＳと同様に右辺のカンマの前の数値はｎｅｘｔＲｃを表し、カンマの後の数値はｎｅｘｔＲｑｐを表す。
（ｄ）のｐＳｅｔは、ＳＥＴｑｐ信号を更新するためにＳＥＴｐｌｓの１ＧＣＬＫ前に出力するパルスであり、カウンタ７２のカウント値がｎｅｘｔＳｃと一致した時「Ｈ」となる。なお、図中示した括弧付き数字はｎｅｘｔＳｃのカウント値を表す。
【００６８】
（ｅ−１）ＳＥＴｐｌｓは、ｐＳｅｔ信号を１ＧＣＬＫ遅延させたパルスであり、ＴｘＣＬＫの立ち上がりをＧＣＬＫ単位で指定する。
（ｅ−２）ＳＥＴｑｐは、ＳＥＴｐｌｓの遅延値を示すＴｘＣＬＫ立ち上がり時間情報となるものであり、（ｄ）のｐＳｅｔが「Ｈ」の時の（ｃ−１）のｎｅｘｔＳｑｐの値に更新されるものである。
【００６９】
（ｆ−１）のＲＳＴｐｌｓはＴｘＣＬＫの立ち下がりをＧＣＬＫ単位で指定したパルスであり、カウンタ７５のカウント値がｎｅｘｔＲｃと一致した時「Ｈ」となる。
（ｆ−２）のＲＳＴｑｐは、ＲＳＴｐｌｓの遅延値を示すＴｘＣＬＫ立ち下がり時間情報となるものである。
【００７０】
（ｇ−１）のＳは、（ｅ−１）のＳＥＴｐｌｓを、対応する（ｅ−２）のＳＥＴｑｐの値だけ遅延させたパルスであり、遅延値の単位は多相クロックＶＣＬＫ０〜１５の位相差Ｔｖである。同様に、（ｇ−２）のＲは、（ｆ−１）のＲＳＴｐｌｓを、対応する（ｆ−２）のＲＳＴｑｐの値だけ遅延させたパルスである。
（ｈ）のＴｘＣＬＫは、（ｇ−１）のＳの立ち上がりで「Ｈ」に、（ｇ−２）のＲの立ち上がりで「Ｌ」として生成される伝送クロックである。
【００７１】
上記のように構成される計数部２３及び伝送クロック出力部２４により、伝送クロックＴｘＣＬＫが生成される。
【００７２】
続いて、伝送クロック出力部２４の第２の構成例について説明する。図１６は、伝送クロック出力部２４の第２の構成例を示す図である。さらに、図１７は、計数部２３及び伝送クロック出力部２４の第２の構成例における各信号のタイミングの一例を示す図である。なお、計数部２３の動作は上述した通りであるのでその説明は省略する。
【００７３】
図１６において、クロックパターン生成部８０は、ＳＥＴｐｌｓ，ＳＥＴｑｐ，ＲＳＴｐｌｓ，ＲＳＴｐｌｓの各信号に基づいてＴｘＣＬＫの出力パターンを表すＣＫＤａｔａを生成する。ＣＫＤａｔａはＧＣＬＫ中に含まれるＶＣＬＫの位相数（１６＊４）だけのビット幅（＝６４）を持ち、図１７の例ではＣＫＤａｔａ［６３：０］と表される。
【００７４】
図１７において、（ａ）はＧＣＬＫである。Ｍｎｏｗ、ｎｅｘｔＳ，ｎｅｘｔＲ，ｐＳｅｔは図１５に示した例と同様であり、（ｅ−１）のＳＥＴｐｌｓ，（ｅ−２）のＳＥＴｑｐ，（ｆ−１）のＲＳＴｐｌｓ，（ｆ−２）のＲＳＴｑｐも図１５の例と同様となる。
【００７５】
（ｅ−１）のＳＥＴｐｌｓ信号がアサートされると、ＣＫＤａｔａはＭＳＢから（ＳＥＴｑｐ−１）ビット目までを「０」とし、ＳＥＴｑｐビット目以降を「１」とする。その後、（ｆ−１）のＲＳＴｐｌｓ信号がアサートされるまでは、（ｉ）のＣＫＤａｔａは全ビットが「１」となる。
【００７６】
（ｆ−１）のＲＳＴｐｌｓ信号がアサートされると、ＣＫＤａｔａはＭＳＢから（ＲＳＴｑｐ−１）ビット目までを「１」とし、それ以降のビットを「０」とする。以降、次に（ｅ−１）のＳＥＴｐｌｓ信号がアサートされるまでは（ｉ）のＣＫＤａｔａは全ビットが「０」となる。
【００７７】
図１６に示すシリアライザ８１は、ＶＣＬＫ０〜１５を基準として、図１７（ｉ）のＣＫＤａｔａをＭＳＢ側からシリアライズし、（ｈ）のＴｘＣＬＫを生成する。
【００７８】
次に、伝送データ生成部２５の構成例とその動作を図１８および図１９を用いて説明する。図１８は、伝送データ生成部２５の構成例であり、図１９は、伝送データ生成部２５の動作を説明するタイミング図である。なお、ここではＧＣＬＫ及びＶＣＬＫについては図１５の例と同様であるとする。また、図１９の（ｊ）のデータＤａｔａはＴｘＣＬＫと同期した１ｂｉｔデータであり、これを元に（ｍ）の伝送データＭｄａｔａが生成される。
【００７９】
位相補正情報生成部４３は、位相判定信号を元に位相補正信号Ｎｐｃを生成する。位相補正情報生成部４３の動作については図５のもの（１３）と同様であるため、その詳細な説明は省略する。
【００８０】
遅延情報加算部４２は、計数部２３から入力されるＮｅｘｔＳ及びｐＳｅｔ信号に対して、Ｎｐｃで定められるだけの遅延補正を行い、それぞれＮｅｘｔＳ’、ｐＳｅｔ’として出力する。遅延情報加算部４２による補正は、基本的にｐＳｅｔ’＝ｐＳｅｔでありＮｅｘｔＳ’＝ＮｅｘｔＳ＋Ｎｐｃであるが、ＮｅｘｔＳ’が、ＧＣＬＫに含まれるＶＣＬＫ位相数（この例では６４）以上となる場合は、その数を引いた値となり、その場合にはｐＳｅｔ’はｐＳｅｔに１ＧＣＬＫ分の遅延を持たせたものとなる。
【００８１】
データパターン生成部４０は、入力される１ビットＤａｔａからデータパターンＤｐｔｎを生成する。ＤｐｔｎはＧＣＬＫに含まれるＶＣＬＫ位相数（ここでは６４）分のビット幅をもつデータ列である。データパターン生成部４０は、ｐＳｅｔ＝「Ｈ」の時のＤａｔａの値をＤｍとして内部に保持する。そして、ｐＳｅｔ’＝「Ｈ」の時に、ＭＳＢから数えてＮｅｘｔＳ’ビット目以降をＤｍとする。以降、次にｐＳｅｔ’＝Ｈとなるまで、Ｄｐｔｎの全ビットはＤｍで与えられる。次にｐＳｅｔ’＝Ｈとなった時には、新しいＤｍとＮｅｘｔＳ’の値に基づいてＤｐｔｎを生成する。
【００８２】
シリアライザ４１は、ＶＣＬＫを基準に、ＤｐｔｎをＭＳＢから順にシリアライズし、Ｍｄａｔａとして出力する。こうして、ＴｘＣＬＫからＮｐｃ＊Ｔｖだけ遅延させた伝送データＭｄａｔａを得ることができる。これにより、データ受信部１０２においては、位相判定信号を使って各チャネルの伝送データのほぼ中央でＴｘＣＬＫが立ち上がるように（図示せず）設定することができ、データ取り込みミスが起こりにくくなり良好な通信システムを実現することができる。
【００８３】
以上説明したように、第１の構成例のデータ送信部によれば、高精度に生成された高周波クロックを基準として伝送クロック及び伝送データを生成し、また高周波クロックを基準として伝送データの位相を調整することにより、伝送路長の差異などの要因によるデータスキューを補正することができる。したがって、エラーなく大容量のデータ伝送を行うことができ、また伝送路の設計も容易に行うことができる。
【００８４】
また、データの変調はデジタル的に行うため、伝送データの多ビット化への拡張が容易である。また、デジタル的に周波数変調を行うことで、出力周波数は基準クロック周波数に依存しないため、他のシステムへの組み込みが容易であり、且つＳＳＣ変調などの任意のクロック変調に柔軟に対応することができる。また、受信側にクロック生成回路を持つ必要がないために回路規模の低減につながる。
【００８５】
さらに、第２の構成例のデータ送信部１０１ｂを用いれば、高周波クロックの代わりに多相クロックを用いることで、クロックの周波数を高くせず済むので、回路の設計が容易となり消費電流も低減できる。
【００８６】
［第２の実施形態］
次に、本発明によるデータ通信システムの第２の実施形態について説明する。図２０に、本発明によるデータ通信システムの第２の実施形態の全体構成を示す。
【００８７】
図２０において送信側チップにはデータ送信部２０１が、受信側チップにはデータ受信部２０２が搭載される。データ送信部２０１は、ＲｅｆＣＬＫＴｘ、データ、ＲｅｆＮ、位相判定信号、Ｒｘ同期クロック（受信同期クロック）の各信号が入力され、ＴｘＣＬＫ及び伝送データを出力する（詳細は後述）。
【００８８】
また、データ受信部２０２には、ＴｘＣＬＫと伝送データが入力され、受信データ、位相判定信号、Ｒｘ同期クロックの各信号を出力する。同図に示すＲｘ同期クロックは、受信側チップに限らず、受信側のシステム全体におけるいずれかから出力されるようにしても構わない。送信側チップと受信側チップは同一ボード上もしくは異なるボード上に実装される。異なるボード上に実装された場合、ボード間の接続はコネクタにおいて直接接続もしくはハーネスやツイストペアケーブルなどで接続されることを想定している。また伝送データはＧＮＤ基準のシングルエンド出力でもよいし、差動出力にしてもよい。図２０に示す本実施形態におけるデータ通信システムにおいて、伝送データは任意のチャネル数（ビット幅）でデータ送信を行うことができる。
【００８９】
（第２の実施形態におけるデータ送信部の第１の構成例）
続いて、図２０のデータ送信部２０１の詳細を、図２１を用いて説明する。図２１は、図２０のデータ通信システムにおけるデータ送信部２０１の第１の構成例を示すブロック図である。図２１において、高周波クロック生成部１、分周器（１／Ｍ）２、伝送データ生成部４の動作は、図２に示したものと同様であるため、その詳細な説明は省略する。また、図２１では、伝送データ生成部４は一つだが、必要なビット幅の分だけ並列に拡張して構わない。
【００９０】
Ｒｘ同期検出部５０は、データ受信部２０２から送られるＲｘ同期クロックの立ち上がりエッジを、高周波クロックＶＣＬＫを基準として検出するものである。このＲｘ同期検出部５０は、Ｒｘ同期クロックの立ち上がりを検出すると、伝送クロックＴｘＣＬＫに同期した検出パルスＲＤｐｌｓとカウント値ＲＤｍを出力する。
【００９１】
比較部５１は、検出パルスＲＤｐｌｓの時間間隔Ｔｒｘを検出し、通信データレートおよびＲｘ同期クロックの設定周期に応じて予め定められた基準時間間隔と、計測した時間間隔Ｔｒｘとの差を誤差Ｌｅｒｒとして算出する。つまり適正な基準時間間隔と計測時間間隔Ｔｒｘとの差が、送信側と受信側での周波数の差として現れる。
【００９２】
この誤差Ｌｅｒｒは高周波クロックＶＣＬＫを基準としてカウントし演算を行っても良いが、高周波クロックＶＣＬＫは非常に高周波であり、またカウントするビット数も非常に大きくなるので、回路規模、消費電力の点で不利である。そこで本実施形態では、時間間隔Ｔｒｘを、伝送クロックＴｘＣＬＫを基準としてカウントし、予め定められた基準値ＲｅｆＮとの比較をして、最後に高周波クロック基準の誤差Ｌｅｒｒとして変換をし、出力している。
【００９３】
フィルタ５２は、誤差Ｌｅｒｒをフィルタリングして誤差データＥｒｒを出力するデジタルフィルタであり、例えば簡単には、直近の数周期分の誤差Ｌｅｒｒの平均をとり誤差データＥｒｒを得る。
【００９４】
周波数演算部５３は、誤差データＥｒｒに従って適正な伝送クロック周波数を算出し、これを分周比指示信号Ｍｎｏｗに変換して出力する。高周波クロック周期をＴｖ、伝送クロック周期をＴｔｘとし、今、Ｔｔｘ＝Ｋ＊Ｔｖとして伝送クロック周波数を設定して送信した時、目標値Ｔｔｘ’（Ｔｔｘ’＝Ｋ’＊Ｔｖ）との誤差Ｅｒｒが周波数演算部５３に入力される。従って、ＲｅｆＮ＊Ｔｔｘ’＝ＲｅｆＮ＊Ｔｔｘ  ＋  Ｅｒｒ＊Ｔｖとなる。よって、
Ｋ’＝Ｋ  ＋  Ｅｒｒ／ＲｅｆＮ  ・・・（１）
としてＫ’を設定するようにすれば、伝送クロック周波数を目標値に制御することができる。
【００９５】
本実施形態では、Ｒｘ同期クロックを参照クロックとして、ＴｘＣＬＫおよび伝送データをＲｘ同期クロックと同期させるように、分周器２、比較部５１、フィルタ５２及び周波数演算部５３でデジタルＰＬＬ制御を行っている。これにより、伝送クロックが変動してもＴｘＣＬＫがそれに追随し、誤差を高精度に補正できる。なお、フィルタ５２の特性がこのＰＬＬ制御特性を決定するので、制御系が安定になるようにフィルタ特性が決定される。また、Ｋ’＝Ｋ＋α・Ｅｒｒ／ＲｅｆＮとしてループゲインを変えるようにしても良い。
【００９６】
また、分周器２の分周数Ｍは正の整数であるので、伝送クロックの設定値Ｋを次のようにして分周比指示信号Ｍｎｏｗに変換すると、丸め誤差を低減することができ、より精度のよい伝送クロックが得られる。例えば、通常は設定値Ｋを四捨五入して整数に丸めた値をＭとし、Ｍｎｏｗ＝Ｍとして、伝送クロックのＣサイクルに１回、Ｍｎｏｗ＝Ｍ＋１またはＭ−１とすることにより、Ｋ＝Ｍ±１／Ｃとなり丸め誤差を低減できる。また丸め誤差の振り分けも均等に行えるので、伝送クロックの局所的な偏差も抑えられる。この場合は前記Ｍ値とＣ値を制御するようにすればよい。
【００９７】
続いて、図２２に、比較部５１の構成例を示すとともに、図２３に、図２１の一部信号のタイミング図の一例を示し、これに基づき比較部５１の詳細動作説明を行う。
【００９８】
図２３において、（ａ）のＲｘ同期クロックはデータ受信部２０２におけるデータの取り込みタイミングを表す同期信号であり、前述のようにＲｘ同期検出部５０に入力される。（ｃ）のＶＣＬＫは高周波クロック生成部１で生成される高周波クロックの立ち上がりエッジを示している。（ｄ）のｃｏｕｎｔＭは分周器２で高周波クロックＶＣＬＫを基準としてカウントされるカウント値であり、（ｅ）のＴｘＣＬＫは（ｄ）のｃｏｕｎｔＭが０の時立ち上がる伝送クロックである。
【００９９】
（ｆ）のＲＤｐｌｓは、（ａ）のＲｘ同期クロックの立ち上がりを示す、ＴｘＣＬＫに同期したパルスであり、（ｇ）のＲＤｍは、（ａ）のＲｘ同期クロックの立ち上がり時の（ｄ）のｃｏｕｎｔＭの値である。（ｈ−１）のｃｏｕｎｔＮ’は、伝送クロックＴｘＣＬＫを基準としてカウントするカウンタ（下記のカウンタ５５）の値であり、（ｆ）のＲＤｐｌｓの立ち下がりで０にリセットされる。また（ｈ−２）のｃｏｕｎｔＮは、（ｈ−１）のｃｏｕｎｔＮ’が０にリセットされる直前の値を保持する。
【０１００】
図２２の比較部５１において、カウンタ５５は、伝送クロックＴｘＣＬＫを基準にカウントするカウンタであり、ＲＤｐｌｓの立ち下がりで０にリセットされ、その直前の値をｃｏｕｎｔＮに保持し出力する。減算部５６はｃｏｕｎｔＮから基準カウント値ＲｅｆＮの減算を行い、減算結果ｄｉｆｆＮを出力する。誤差演算部５７は、下記の演算を行い高周波クロックＶＣＬＫ周期Ｔｖを単位とする誤差Ｌｅｒｒを出力する。
【０１０１】
Ｌｅｒｒ  ＝  ｄｉｆｆＮ＊Ｋ  ＋  ＲＤｍ
ここで、ｄｉｆｆＮ  ＝  ｎ  −  ＲｅｆＮ、  ＲＤｍ  ＝  ｍ２、Ｔｔｘ  ＝  Ｋ＊Ｔｖであり、ＴｔｘはＴｘＣＬＫの周期、ｎとｍ２はそれぞれＲｘ同期クロックの立ち上がりから次の立ち上がりまでのＴｘＣＬＫのサイクル数と位相誤差である。
【０１０２】
次に、周波数演算部５３の詳細を、図２４を用いて説明する。図２４は、周波数演算部５３の構成例を示すブロック図である。
【０１０３】
演算部６０は、演算部６０が保持している現在の設定値Ｍ，Ｃ，Ｒと、誤差データＥｒｒとから次の設定値ＮｅｘｔＭ，ＮｅｘｔＣ，ＮｅｘｔＲ，Ｋを演算する。この現在の設定値Ｍ，Ｃ，Ｒの関係は、Ｔｔｘ＝（Ｍ±１／Ｃ）Ｔｖであり、Ｃ＝ＲｅｆＮ／Ｒである。これらの式と前述の（１）式より、
Ｍ’  ＋  Ｒ’／Ｎｒ  ＝  Ｍ  ＋  Ｒ／Ｎｒ  ＋  Ｅｒｒ／Ｎｒ、
Ｃ’  ＝  Ｎｒ／Ｒ’
と表される。ここで、Ｍ’＝ＮｅｘｔＭ、  Ｃ’＝ＮｅｘｔＣ、Ｒ’＝ＮｅｘｔＲ、Ｎｒ＝ＲｅｆＮである。このとき、演算は次の手順で行う。
【０１０４】
＜１＞  Ｒ＋Ｅｒｒ  （＝ＴｍｐＲとする）を計算する。
＜２＞  ＴｍｐＲ＞Ｎｒ／２であれば、Ｍ’＝Ｍ＋１とし、Ｒ’＝ＴｍｐＲ−Ｎｒとする。ＴｍｐＲ＜−Ｎｒ／２であれば、Ｍ’＝Ｍ−１とし、Ｒ’＝ＴｍｐＲ＋Ｎｒとする。それ以外は、Ｍ’＝Ｍ，  Ｒ’＝ＴｍｐＲとする。
＜３＞  Ｎｒ÷Ｒ’の商をＣ’とする。なお、Ｒ’＝０であれば、Ｃ’＝０とする。
また、設定値Ｋは、Ｋ＝Ｍ±１／Ｃとして求められ、演算部６０から出力される。
【０１０５】
レジスタＲｅｇＭ６１は、上記の演算により求めたＭ値を保持しておくデータ保持部である。また、演算制御部６４からの更新信号Ｒｅｎｅｗに従いレジスタ値をＮｅｘｔＭに更新する。同様にレジスタＲｅｇＣ６２は現在設定しているＣ値を保持しておくデータ保持部であり、レジスタＲｅｇＲ６３は現在設定しているＲ値を保持しておくデータ保持部である。それぞれ更新信号Ｒｅｎｅｗに従いレジスタ値をＮｅｘｔＣ，ＮｅｘｔＲに更新する。なお、ＣｓｉｇｎはＣ値の符号を示す。
【０１０６】
カウンタ６６はＴｘＣＬＫを基準としてＣ値をカウント（０からＣ−１まで）するもので、カウント値がＣ−１となったとき、Ｃｓｉｇｎが正を示していれば＋１を、負を示していれば−１を出力し、それ以外の時は０を出力する。なお、Ｃ＝０の時は常に０を出力する。加算器６５は、レジスタＲｅｇＭ６１の出力するＭ値とカウンタ６６の出力する値とを加算し、その結果を分周比指示信号Ｍｎｏｗとして出力する。よって、ＴｘＣＬＫのＣサイクルに１回、Ｍ値が＋１または−１されるように変換され、伝送クロックの平均周期は（Ｍ±１／Ｃ）＊Ｔｖとなる。
【０１０７】
演算制御部６４は上述した演算を制御するものであり、ＲＤｐｌｓを検出してから誤差データＥｒｒ及びＮｅｘｔＭ，ＮｅｘｔＣ，ＮｅｘｔＲの演算が確定するまで待って、更新信号Ｒｅｎｅｗをアクティブにし、各レジスタの値をＮｅｘｔ値に更新する。なおこの際、ＴｘＣＬＫに同期して更新すればｃｏｕｎｔＭの値が更新された後のＭを越えていることはないため誤動作の可能性を防ぐことができる。
【０１０８】
続いて、周波数演算部５３の他の構成例の詳細を説明する。図２５は、周波数演算部５３の他の構成例を示すブロック図である。
【０１０９】
演算制御部６４は、図２４のものと同様にしてこの周波数演算部５３における演算を制御するものである。演算部６０ｂは、演算部６０ｂが保持している現在の設定値Ｍ，Ｆと、誤差データＥｒｒとから次の設定値ＮｅｘｔＭ，ＮｅｘｔＦ，Ｋを演算し出力するものである。この例では、伝送クロック周波数の設定値Ｋを次のようにして分周比指示信号Ｍｎｏｗに変換する。すなわち、設定値Ｋの整数部をＭとし、小数部をａ桁（２進数表記）の値Ｆに丸める。そして２＾ａ（＝Ｎａとする；Ｎａは小数部の桁数で決まる固有の定数）サイクルにＦ回、Ｍｎｏｗ＝Ｍ＋１とすることにより、Ｋ＝Ｍ＋Ｆ／Ｎａと設定される。ここで設定値による丸め誤差は最大ｒｅｆＮ／Ｎａとなるので、所望の誤差許容値に収まるように小数部の桁数ａを決定すればよい。また、局所的な周波数偏差を抑えるため＋１加算するＦ回のサイクルは均等に振り分けられるようにする。この機能は変換部６９が担う。よって前述の（１）式とこのＫの関係式により、
Ｍ’  ＋  Ｆ’／Ｎａ  ＝  Ｍ＋Ｆ／Ｎａ  ＋Ｅｒｒ／Ｎｒ
（ここで、Ｍ’＝ＮｅｘｔＭ、Ｆ’＝ＮｅｘｔＦ）となる。したがって、演算は次の手順で行う。
【０１１０】
＜１＞  Ｆ＋（Ｅｒｒ／Ｎｒ）＊Ｎａ（＝ＴｍｐＦとする）を計算する。Ｎａは２＾ａであるので、ここでの＊Ｎａの演算は被乗数（Ｅｒｒ／Ｎｒ）の上位ａビットを取ればよく、またＮｒはこの周波数制御を行っている間は固定であるので、予めＮｒの逆数を計算しておいてこれをＥｒｒに乗算すれば演算は簡便に行える。
＜２＞  ＴｍｐＦ＞Ｎａであれば、Ｍ’＝Ｍ＋１、Ｆ’＝ＴｍｐＦ−Ｎａとする。ＴｍｐＦ＜０であれば、Ｍ’＝Ｍ−１、Ｆ’＝ＴｍｐＦ＋Ｎａとする。
【０１１１】
図２４と同様にレジスタＲｅｇＭ６１ｂは上記の演算により求められたＭ値を保持しておくデータ保持部であり、レジスタＲｅｇＦ６７は同様にＦ値を保持しておくデータ保持部である。そして更新信号Ｒｅｎｅｗに従いレジスタ値をＮｅｘｔＣ、ＮｅｘｔＲに更新する。
【０１１２】
カウンタ６８は、ＴｘＣＬＫを基準にカウントするａビットカウンタであり、そのカウント値ｃｏｕｎｔＡを出力する。
【０１１３】
変換部６９は、カウント値ｃｏｕｎｔＡに従い、Ｎａ（＝２＾ａ）サイクル中、Ｆサイクルは「１」を、残りのＮａ−Ｆサイクルは「０」として信号ＵＰ（＋１／０）を出力する。このＵＰ信号の生成は、カウント値ｃｏｕｎｔＡ［ａ−１：０］のビット並びを逆転させたｃｏｕｎｔＡ［０：ａ−１］をＡｒｅｖとして、ＡｒｅｖがＦより小さい場合１とするようにすれば（すなわちＵＰ＝（Ａｒｅｖ＜Ｆ））、Ｎａサイクル中均等にＦ回「１」が生成される。
【０１１４】
加算器６５ｂはレジスタＲｅｇＭ６１ｂの出力するＭと変換部６９の出力するＵＰとを加算し、結果を分周比指示信号Ｍｎｏｗとして出力する。よって、ＴｘＣＬＫのＮａサイクルにＦ回、Ｍ値が＋１加算されるように変換され、伝送クロックの平均周期は（Ｍ＋Ｆ／Ｎａ）Ｔｖとなる。
【０１１５】
前述したように、伝送クロック周波数の制御はＲｘ同期クロック１周期毎に誤差Ｌｅｒｒを検出し、これが０になるようにデジタルＰＬＬ制御を行っている。図２１のフィルタ５２は制御ループ内に置かれたデジタルフィルタであり、このフィルタ特性を変更することにより、制御帯域を設定できる。以下にフィルタの設定例を示す。
【０１１６】
まず、ループフィルタを除くＤＰＬＬ制御系のループゲインは、図２６の（ａ）に示すようになる。ここでｆｓはサンプリング周波数であり、ここではＲｘ同期クロック周波数である。この制御系に同図の（ｂ）のような特性を持つラグリードフィルタを挿入し、（ｃ）のループゲインとすることにより、制御系を安定化させることができる。
【０１１７】
ここで、τ１＝１／（２πｆ１）、τ２＝１／（２πｆ２）とすると、ループフィルタの伝達関数Ｈ（ｓ）は次式のようになる。
Ｈ（ｓ）＝（１＋τ２ｓ）／（１＋τ１ｓ）
【０１１８】
上式を、双一次変換（ｓ＝（２／Ｔ）＊｛（１−ｚ＾−１）／（１＋ｚ＾−１）｝）してｚ変換形式にし、さらにＴ＝１として正規化すれば、ループフィルタの伝達関数Ｈ（ｚ）は次式となる。
Ｈ（ｚ）＝（ｂ０＋ｂ１ｚ＾−１）／（１＋ａ１ｚ＾−１）
ここで、ａ１＝（１−２τ１）／（１＋２τ１）、ｂ０＝（１＋２τ２）／（１＋２τ１）、ｂ１＝（１−２τ２）／（１＋２τ１）である。
【０１１９】
図２７に、上式の伝達関数Ｈ（ｚ）を実現するフィルタ５２の構成例を示す。これは一次のＩＩＲ型フィルタであり、加算器８５及び８６はそれぞれの入力を加算し、乗算器８２、８３、８４はそれぞれ入力に対し、係数：−ａ１、ｂ１、ｂ０を掛けた値を出力し、遅延素子８７は中間変数ｗを１サンプル毎遅延させる。このフィルタに誤差Ｌｅｒｒを入力すれば、誤差データＥｒｒを得る。また、乗算器の各係数を変更する手段を設ければ、動的にフィルタ特性を変更可能となる。なお、本例のフィルタ特性及び構成は一例であり、もちろんその他の構成のフィルタを用いることができる。デジタルフィルタについては公知技術であるので、その他の構成の例示は省略する。
【０１２０】
（第２の実施形態におけるデータ送信部の第２の構成例）
次に、図２０に示したデータ通信システムにおけるデータ送信部２０１の第２の構成例（２０１ｂ）について図２８を用いて説明する。図２８は、第２の実施形態におけるデータ送信部２０１の第２の構成例（２０１ｂ）を示す図である。
【０１２１】
なお、受信側の構成は、前述した、第２の実施形態におけるデータ通信システムの受信側と同様である。また、図２８のデータ送信部２０１ｂにおいて、高周波クロック生成部２１、伝送クロック出力部２４、伝送データ生成部２５は、第１の実施形態における図１０のものと同様であるため、その詳細な説明は省略する。
【０１２２】
Ｒｘ同期検出部９０は、Ｒｘ同期クロックの立ち上がりエッジを多相クロックＶＣＬＫ０〜１５を基準として検出するものである。このＲｘ同期検出部９０は、Ｒｘ同期クロックの立ち上がりを検出すると、クロックＧＣＬＫに同期した検出パルスＲＤｐｌｓと、立ち上がり時の期間ＱＴと位相ＰＨを示す時間情報ＲＤｑｐを出力する。
【０１２３】
計数部９２は、周波数演算部９１からの分周比指示信号Ｍｎｏｗに従って時間を計数するものである。この計数部９２は、計数値がＭｎｏｗに達する度にＧＣＬＫに同期したＳＥＴｐｌｓ信号と時間情報ＳＥＴｑｐとからなるＳｅｔ信号を生成し出力する。さらに、このＳｅｔ信号からＭｎｏｗ／２にあたる時間を計数し、ＧＣＬＫに同期したＲＳＴｐｌｓ信号と時間情報ＲＳＴｑｐとからなるＲｓｔ信号を生成し出力する。この計数する時間単位は多相クロックＶＣＬＫ０〜１５の位相差Ｔｖである。
【０１２４】
比較部９３は、検出パルスＲＤｐｌｓの時間間隔Ｔｒｘを検出し、通信データレートおよびＲｘ同期クロックの設定周期に応じて予め定められた基準時間間隔と、計測した時間間隔Ｔｒｘとの差を誤差Ｌｅｒｒとして算出する。つまり適正な基準時間間隔と計測時間間隔Ｔｒｘとの差が、送信側と受信側の周波数の差として現れる。ここでは、ＲＤｐｌｓが立ち上がってから次に立ち上がるまでの期間中に入力されるＳＥＴｐｌｓの数をカウントし、この値と基準値ＲｅｆＮとの比較をし、さらに各パルスの時間情報とから誤差Ｌｅｒｒとして変換している。この誤差の単位は位相差Ｔｖである。
【０１２５】
フィルタ９４は、誤差Ｌｅｒｒをフィルタリングして誤差データＥｒｒを出力するデジタルフィルタである。周波数演算部９１は誤差データＥｒｒに従って適正な伝送クロック周波数を算出し、これを分周比指示信号Ｍｎｏｗに変換して出力する。高周波クロック周期をＴｖ、伝送クロック周期をＴｔｘとし、今、Ｔｔｘ＝Ｋ＊Ｔｖとして伝送クロック周波数を設定して送信した時、目標値Ｔｔｘ’（Ｔｔｘ’＝Ｋ’＊Ｔｖ）との誤差Ｅｒｒが入力される。よって、前述と同様に（１）式により求めたＫ’を設定するようにすれば、伝送クロック周波数を目標値に制御することができる。
【０１２６】
なお、これらフィルタ９４及び周波数演算部９１は、図２１のフィルタ５２及び周波数演算部５３と同様の機能を果たし、構成も同様に適用できるのでその詳細な説明は省略する。また、本実施例はＲｘ同期クロックの立ち上がりに位相同期してＴｘＣＬＫの生成を開始する以外は図２１の構成例と同様であり、計数部９２は図１３に示した構成例で実現できるため、詳細な説明は省略する。
【０１２７】
図２９に、計数部９２及び伝送クロック出力部２４における各信号のタイミングの一例を示す。以下では、図２９に基づき、分周比指示信号Ｍｎｏｗに従って伝送クロックＴｘＣＬＫを生成する詳細動作を説明する。
【０１２８】
図２９において、（ａ）はＧＣＬＫである。Ｒｘ同期検出部９０では、（ｂ）のＲｘ同期クロックの立ち上がりを検出すると、その次のＧＣＬＫ１サイクルが「Ｈ」となるタイミングで（ｃ−１）に示すＲＤｐｌｓ信号を出力する。またＧＣＬＫサイクル内のどの時刻で立ち上がったかを示す（ｃ−２）のＲＤｑｐ信号（本例ではその値を１０とする）も出力する。
【０１２９】
（ｄ）のＭｎｏｗは周波数演算部９１から供給される分周比指示信号であり、図示したように入力されるものとする。
（ｅ−１）のｎｅｘｔＳは計数部９２内ＳＥＴ時間演算部（図示せず）で演算される次のＴｘＣＬＫの立ち上がり時間を表す。最初はＲｘ同期クロックの立ち上がりに同期してＴｘＣＬＫが立ち上がるようになっているので、次のＴｘＣＬＫの立ち上がりはＳＥＴｑｐ＋Ｍｎｏｗ＝２５０Ｔｖ後となる。ここで図中の右辺のカンマの前の数値はｎｅｘｔＳｃを、カンマの後の数値はｎｅｘｔＳｑｐを表す。またその次のｎｅｘｔＳは、ｎｅｘｔＳｑｐ＋Ｍｎｏｗ＝２９８となる。
【０１３０】
（ｅ−２）のｎｅｘｔＲは計数部９２内のＲＳＴ時間演算部（図示せず）で演算される次のＴｘＣＬＫの立ち下がり時間を表す。まずはＲｘ同期クロックの立ち上がり時間（同図の例で最初は１０）にＭｎｏｗ／２を加算した値（＝１３０）がＴｘＣＬＫの立下り時間となる。（ｅ−１）のｎｅｘｔＳと同様に右辺のカンマの前の数値はｎｅｘｔＲｃを、カンマの後の数値はｎｅｘｔＲｑｐを表す。
【０１３１】
（ｆ）のｐＳｅｔは、ＳＥＴｑｐ信号を更新するためにＳＥＴｐｌｓの１ＧＣＬＫ前に出力するパルスであり、計数部９２の内部カウント値がｎｅｘｔＳｃと一致した時「Ｈ」となる。なお、図中示した括弧付き数字はｎｅｘｔＳｃのカウント値を表す。
（ｇ−１）のＳＥＴｐｌｓは、ＲＤｐｌｓとｐＳｅｔ信号を１ＧＣＬＫ遅延させたパルスであり、ＴｘＣＬＫの立ち上がりをＧＣＬＫ単位で指定する。
（ｇ−２）のＳＥＴｑｐはこのＳＥＴｐｌｓの遅延値を示すＴｘＣＬＫ立ち上がり時間情報であり、（ｆ）ｐＳｅｔが「Ｈ」の時の（ｅ−１）ｎｅｘｔＳｑｐの値に更新していく。
【０１３２】
（ｈ−１）のＲＳＴｐｌｓはＴｘＣＬＫの立ち下がりをＧＣＬＫ単位で指定したパルスであり、計数部９２の内部カウンタのカウント値がｎｅｘｔＲｃと一致した時「Ｈ」となる。
（ｈ−２）のＲＳＴｑｐはＲＳＴｐｌｓの遅延値を示すＴｘＣＬＫ立ち下がり時間情報である。
【０１３３】
（ｉ−１）のＳは、（ｇ−１）のＳＥＴｐｌｓを、対応する（ｇ−２）のＳＥＴｑｐの値だけ遅延させたパルスであり、遅延値の単位は多相クロックＶＣＬＫ０〜１５の位相差Ｔｖである。同様に、（ｉ−２）のＲは、（ｈ−１）のＲＳＴｐｌｓを、対応する（ｈ−２）のＲＳＴｑｐの値だけ遅延させたパルスである。（ｊ）のＴｘＣＬＫは、（ｉ−１）のＳの立ち上がりで「Ｈ」に、（ｉ−２）のＲの立ち上がりで「Ｌ」として生成される伝送クロックである。
【０１３４】
次に、図３０に、比較部９３の構成例を示す。また、図３１は、比較部９３における各信号のタイミングの一例を示す図であり、この図に基づき比較部９３の詳細な動作説明を行う。
【０１３５】
図３０において、カウンタ９８は、ＲＤｐｌｓの立ち下がりで‘０’クリアし、ｐＳｅｔ信号を基準としてインクリメントするカウンタであり、そのカウント値ｃｏｕｎｔＮを出力する。減算部９５は、ＲＤｄｅｔが「Ｈ」の時のカウンタ９８の出力値ｃｏｕｎｔＮ（図３１ではｎ）から基準カウント値ＲｅｆＮの減算を行い、減算結果ｄｉｆｆＮ（＝ｎ−ＲｅｆＮ）を出力する。
【０１３６】
誤差検出部９７は、ＲＤｄｅｔが「Ｈ」の時のＳＥＴｑｐ及びＳＥＴｃｎｔをそれぞれＥｎｄｑｐ、Ｅｎｄｃｎｔとすると、次式の演算を行い、位相差ｄｉｆｆＭを算出する。
ｄｉｆｆＭ  ＝  Ｅｎｄｃｎｔ＊Ｍｐ＋（ＲＤｑｐ−Ｅｎｄｑｐ）
ここでＭｐはＧＣＬＫの時間情報分割数であり、本実施例では６４である。また図３１の例ではｄｉｆｆＭ＝１４４となる。
【０１３７】
誤差演算部９６は、下記の演算を行い多相クロックＶＣＬＫ０〜１５の位相差Ｔｖを単位とする誤差Ｌｅｒｒを出力する。
Ｌｅｒｒ  ＝  ｄｉｆｆＮ＊Ｋ＋ｄｉｆｆＭ
ここで、Ｋ  ＝  Ｔｔｘ／Ｔｖであり、ＴｔｘはＴｘＣＬＫの周期である。
このようにして、図２８中の周波数演算部９１、計数部９２、比較部９３、フィルタ９４は、ＴｘＣＬＫがＲｘ同期クロックに同期したクロックとなり、Ｌｅｒｒ＝０となるよう制御するデジタルＰＬＬとして動作する。
【０１３８】
図３１において、（ａ）はＧＣＬＫである。（ｂ）はＲｘ同期クロックであり、このＲｘ同期クロックの立ち上がりの時間間隔がＴｒｘである。（ｃ）はＲＤｐｌｓである。また、（ｄ−２）のＲＤｑｐはＲｘ同期クロックの時間情報である。さらに（ｅ−１）のＳＥＴｐｌｓ、（ｅ−２）のＳＥＴｑｐはＴｘＣＬＫの立ち上がりを表す時間情報である。これらは前述したので説明は省略する。
【０１３９】
（ｅ−３）のＳＥＴｃｎｔは計数部９２でのカウント値である。本例ではＭｎｏｗ＝１９２で一定とする。このとき前述したように伝送クロック出力部２４において（ｆ）のＴｘＣＬＫが生成される。ＴｘＣＬＫはＲｘ同期クロックの丁度２ＧＣＬＫ後に同期して生成される。よって、（ｃ）のＲＤｐｌｓを１ＧＣＬＫ遅延させた（ｄ−１）のＲＤｄｅｔが「Ｈ」の時の各信号値から誤差Ｌｅｒｒを検出する。
【０１４０】
（ｇ）はｐＳｅｔであり、（ｈ）のｃｏｕｎｔＮは、（ｃ）のＲＤｐｌｓの立ち下がりで’０’クリアされ、（ｇ）のｐＳｅｔ信号によりインクリメントされる、図３０中のカウンタ９８のカウント値である。これらより、Ｒｘ同期クロックの立ち上がりから次の立ち上がりまでのＴｘＣＬＫのサイクル数ｎと位相誤差ｍ２を検出する。
【０１４１】
以上説明したように、第２の実施形態におけるデータ送受信部の第２の構成例によれば、高精度に生成された高周波クロックを基準とし伝送クロック及び伝送データを生成し、また高周波クロックを基準として伝送データの位相を調整することにより、伝送路長の差異などの要因によるデータスキューを補正することができる。したがって、エラーなく大容量のデータ伝送を行うことができ、また伝送路の設計も容易に行うことができる。
【０１４２】
また、伝送クロック及び伝送データはＲｘ同期クロックに同期するように生成されるため、受信側のシステム要求に対応した伝送クロックを高精度に生成することができる。また、データの変調はデジタル的に行うため、伝送データの多ビット化への拡張が容易である。また、デジタル的に周波数変調を行うことにより、出力周波数は基準クロック周波数に依存しないため、他のシステムへの組み込みが容易であり、且つＳＳＣ変調などの任意のクロック変調に柔軟に対応することができる。
【０１４３】
［画像形成装置への適用］
以上説明してきた各データ通信システムを、図３２に示す、レーザプリンタ、デジタル複写機等、周知の画像形成装置内の半導体チップ間もしくはＰＣＢボード間における画像データ通信に適用することができる。その場合、以下のような利点がある。
【０１４４】
一般的なデータ通信方式において、伝送されるクロックとデータの間には伝送路長の差異などによるスキューが発生する。そのため、クロック周波数はデータスキューが生じても通信エラーが発生しない程度に低くする必要があり、データレートが高くできないという問題があった。前述のデータ通信システムでは、データの出力位相を各ビットごとに設定することができるため、データ通信クロックは通常のものより高く設定することができ、また基板等の伝送路設計が容易なものにできる。また、伝送クロックを受信システムと同期して生成することで、伝送クロックをそのまま受信側のシステムクロックや画像形成装置の画素クロックとして使用することができ、回路規模の縮小にもつながる。
【０１４５】
一般に図３２のような画像形成装置では、受信側の回路規模が小さいことが望ましい。そのため、受信側システムクロック生成、伝送データ位相調整などの複雑な機能を全て送信側に持つ構成は好適である。
【０１４６】
以上説明したように、本発明による第１の実施形態のデータ通信システムによれば、データ送信部において、高精度に生成された高周波クロックＶＣＬＫあるいは多相クロックＶＣＬＫ０〜１５を基準として伝送クロックを生成し、位相補正期間内に伝送クロックと伝送データ各ビットとの位相関係を調整し位相誤差を補正するするシーケンスをもつことにより、伝送クロックに位相同期した伝送データを生成でき、データ受信エラーのほとんどない通信システムを実現できる。
【０１４７】
さらに、本発明による第２の実施形態のデータ通信システムによれば、Ｒｘ同期クロックに合わせて伝送クロック周波数を制御しているので、受信クロックの周波数に変動があってもこの誤差を高精度に補正できる伝送クロックが生成できる。
【０１４８】
さらに、伝送クロックの生成及び伝送データの生成は多相クロックＶＣＬＫ０〜１５の位相差Ｔｖの単位で正確に制御できるので、多相クロックの発振周波数を高くしなくてもよく、回路の設計が容易となり消費電流も低減できる。さらには、多相クロックの１つをさらに分周したクロックＧＣＬＫで動作するようにしているので、動作周波数がさらに低下され、消費電流の低減ができる。
【０１４９】
また、受信側のシステムに同期したクロックとデータを同時に送信することで、受信側ではＣＤＲなどの大規模回路を用意する必要はなく、簡易な構成で実現することが可能となる。また送信側ではデジタル的に周波数変調を行うため、受信チップの数に合わせてアナログＰＬＬを用意する必要がなく、基準となるクロックは全ての通信チャネルにおいて同一にすることができる。
【０１５０】
さらに画像形成装置内での画像データ通信に適用することにより一般的な通信方式に比べて通信システムとして要求されるエラーレートを高く（緩く）することができる。
【０１５１】
また、伝送データと伝送クロックを同時に送信するため、受信側はクロック生成回路を持つ必要が無く、簡易な構成で実現することが可能となる。またデジタル的に周波数変調を行うため、受信チップの数に合わせてアナログＰＬＬを用意する必要がなく、基準となるクロックは全ての通信チャネルにおいて同一にすることができる。また、送信クロックを受信側のシステムに同期して生成することもできるため、受信側のシステムクロックを送信側で生成することもできる。
【符号の説明】
【０１５２】
１  高周波クロック生成部
２  分周器
３  周波数演算部
４  伝送データ生成部
５  積算器
６  加算器
７  加算部
８  変調位相カウンタ
９  メモリ
１０  加算器
１１  データ変調部
１２  データ遅延部
１３  位相補正情報生成部
２１  高周波クロック生成部
２２  周波数演算部
２３  計数部
２４  伝送クロック出力部
２５  伝送データ生成部
３０  分周器（１／Ｎｖ）
３１  ＰＦＤ
３２  ＬＰＦ
３３  ＶＣＯ
３４ａ〜３４ｈ  差動バッファ
３５  分周器（１／４）
４０  データパターン生成部
４１  シリアライザ
４２  遅延情報加算部
４３  位相補正情報生成部
５０  Ｒｘ同期検出部
５１  比較部
５２  フィルタ
５３  周波数演算部
５５  カウンタ
５６  減算部
５７  誤差演算部
６０，６０ｂ  演算部
６１，６１ｂ  ＲｅｇＭ
６２  ＲｅｇＣ
６３  ＲｅｇＲ
６４  演算制御部
６５，６５ｂ  加算器
６６  カウンタ
６７  ＲｅｇＦ
６８  カウンタ
６９  変換部
７０  ＳＥＴ時間演算部
７１  ＲＳＴ時間演算部
７２，７５  カウンタ
７３，７４，７６  Ｆ／Ｆ
７７，７８  遅延部
７９  ＳＲ−Ｆ／Ｆ
８０  クロックパターン生成部
８１  シリアライザ
８２，８３，８４  乗算器
８５，８６  加算器
８７  遅延素子
９０  Ｒｘ同期検出部
９１  周波数演算部
９２  計数部
９３  比較部
９４  フィルタ
９５  減算部
９６  誤差演算部
９７  誤差検出部
９８  カウンタ
１０１，１０１ｂ，２０１，２０１ｂ  データ送信部
１０２，２０２  データ受信部
【先行技術文献】
【特許文献】
【０１５３】
【特許文献１】特表２００４−５３５０９２号公報
【特許文献２】特開２００５−８６３７９号公報
【図１】
2010219891.tif 000003
【図２】
2010219891.tif 000004
【図３】
2010219891.tif 000005
【図４】
2010219891.tif 000006
【図５】
2010219891.tif 000007
【図６】
2010219891.tif 000008
【図７】
2010219891.tif 000009
【図８】
2010219891.tif 000010
【図９】
2010219891.tif 000011
【図１０】
2010219891.tif 000012
【図１１】
2010219891.tif 000013
【図１２】
2010219891.tif 000014
【図１３】
2010219891.tif 000015
【図１４】
2010219891.tif 000016
【図１５】
2010219891.tif 000017
【図１６】
2010219891.tif 000018
【図１７】
2010219891.tif 000019
【図１８】
2010219891.tif 000020
【図１９】
2010219891.tif 000021
【図２０】
2010219891.tif 000022
【図２１】
2010219891.tif 000023
【図２２】
2010219891.tif 000024
【図２３】
2010219891.tif 000025
【図２４】
2010219891.tif 000026
【図２５】
2010219891.tif 000027
【図２６】
2010219891.tif 000028
【図２７】
2010219891.tif 000029
【図２８】
2010219891.tif 000030
【図２９】
2010219891.tif 000031
【図３０】
2010219891.tif 000032
【図３１】
2010219891.tif 000033
【図３２】
2010219891.tif 000034