(57)【要約】【課題】同期式連続データ伝送の信頼性を確保すると共に容易に設計することができるデータ送受信方法を提供する。【解決手段】データ送信装置１１は、通信開始時にテストデータをデータ受信装置１２に送信する。データ受信装置１２は、システムクロックを数倍に逓倍した内部クロックによりテストデータをサンプリングしてキャプチャ回路２３に取り込み、データ取り込みタイミング制御部２４において上記取り込みデータから最適のデータ取り込みタイミングを選択して設定する。データ受信装置１２は、通常のデータを取り込む際は、データ取り込みタイミング制御部２４において設定された最適のデータ取り込みタイミングにて受信データの取り込みを行う。【選択図】図１
2010213204.tif 000002
【特許請求の範囲】
【請求項１】
データ送信装置からシステムクロックに同期したデータをデータラインによりデータ受信装置へ送信するデータ送受信方法であって、
前記データ送信装置は通信開始時に前記データ受信装置へテストデータを送信する手段を備え、
前記データ受信装置は、システムクロックを数倍に逓倍した内部クロックにより前記テストデータをサンプリングして取り込む手段と、前記取り込みデータから有効データの取り込み区間を検出する手段と、前記検出手段により検出された有効データ取り込み区間のセンタ値を算出するセンタ値算出手段と、前記センタ値算出手段により算出されたセンタ値を保持するセンタ値保持手段と、前記センタ値保持手段に保持されたセンタ値のタイミングで前記内部クロックを選択して前記データ送信装置からの送信データを取り込むデータ受信手段とを備えることを特徴とするデータ送受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期式高速データ伝送を実施するデータ送信装置とデータ受信装置間において、データの最適取り込みタイミングを設定し、システムクロックにてデータの取り込みを行うデータ送受信方法に関する。
【背景技術】
【０００２】
従来、データ送信装置とデータ受信装置との間を伝送路にて接続し、同期を取ってデータを高速伝送する場合、データ送信装置からデータクロックと呼ばれるデータ取り込み用のクロック信号と、同クロック信号を用いてデータ出力のタイミングを同期化した有効データの両方を伝送している。これはデータ送信装置がデータクロックを用いて出力データのタイミングを調整することにより、データクロックとデータのタイミング関係が一意に固定され、両者の関係を明確に関連付けられるためである。
【０００３】
一方、データ受信装置は、データ送信装置からデータクロックとデータが同期して送られてくるため、データクロックのタイミングに従ってデータを取り込むのみで信頼性を確保したデータ取り込みが可能となる。但し、データ送信装置及びデータ受信装置間のデータクロックとデータの配線遅延を含めたタイミング関係が、データ送信装置において関連付けられた状態を維持した基板設計が実現できた場合に限られる。
【０００４】
また、本発明に関連する公知技術として、データ送信装置とデータ受信装置との間をデータ線とクロック線により接続し、データ送信装置からテストデータ及びクロックを送信し、データ受信装置側では受信したクロックの遅延時間を様々に変化させてデータを取り込み、各取り込みデータとテストデータとのマッチングを行い、誤り率の低いクロックの遅延時間を最適のクロック遅延時間として以降のデータ取り込みの際に採用するようにした技術が知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１０２７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記従来の同期式データによるデータ伝送においては、昨今の装置小型化、高機能化や構成の複雑化に伴い、データ送信装置からデータクロックとデータとの関係を維持することが困難になってきている。例えば小型化と高性能化を実現するために、少ないスペースに多ビットの伝送ラインを構成する場合、または、高機能化を実現するために複数のデータ受信装置を接続する必要が生じる。前者は、伝送ライン数が多ければ多いほど各伝送ライン間の長さを合わせる難易度が上がり、また、後者は、データ送信装置のドライブ能力を考慮し、ドライバや１対ｎのバッファを介在する必要を生じ、その遅延分を相殺する伝送ライン長を加減しなければならない。これらの作業は、パターン設計の難易度の増加と、開発期間長期化を招き、製品開発における大きな問題となる。
【０００７】
本発明は上記の課題を解決するためになされたもので、同期式連続データ伝送の信頼性を確保すると共に容易に設計することができるデータ送受信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、データ送信装置からシステムクロックに同期したデータをデータラインによりデータ受信装置へ送信するデータ送受信方法であって、前記データ送信装置は通信開始時に前記データ受信装置へテストデータを送信する手段を備え、前記データ受信装置は、システムクロックを数倍に逓倍した内部クロックにより前記テストデータをサンプリングして取り込む手段と、前記取り込みデータから有効データの取り込み区間を検出する手段と、前記検出手段により検出された有効データ取り込み区間のセンタ値を算出するセンタ値算出手段と、前記センタ値算出手段により算出されたセンタ値を保持するセンタ値保持手段と、前記センタ値保持手段に保持されたセンタ値のタイミングで前記内部クロックを選択して前記データ送信装置からの送信データを取り込むデータ受信手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、データ送信装置とデータ受信装置間の同期式高速データ伝送において、送受信装置間にデータ取り込み専用のデータクロック配線を行う必要がなくなり、ある程度のデータ間遅延や波形歪がある場合にもデータ取り込みに高い信頼性が得られると共にパターン設計を容易に行うことができ、製品の開発期間の短期化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１に係る同期式高速データ伝送システムの全体の概略構成図である。
【図２】同実施例１におけるデータ受信装置内に設けられるデータ取り込みタイミング制御部の構成を示す機能ブロック図である。
【図３】同実施例１におけるデータ取り込みタイミング制御部の具体的な構成例を示すブロック図である。
【図４】同実施例１におけるデータ取り込みタイミング制御部内の“１”タイミング検出結果保持部の構成例を示すブロック図である。
【図５】同実施例１におけるキャリブレーション動作を示すフローチャートである。
【図６】同実施例１において、データ送信装置から送信されるテストデータをデータ受信装置にてサンプリングして取り込む様子を示した概念図である。
【図７】同実施例１において、データ受信装置がテストデータを受信して処理する場合の具体的なデータ処理例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、詳細に説明する。
【実施例１】
【００１２】
図１は本発明の実施例１に係る同期式高速データ伝送システムの全体の概略構成図、図２はデータ受信装置内に設けられるデータ取り込みタイミング制御部の構成を示す機能ブロック図である。
図１において、１１はデータ送信装置、１２はデータ受信装置、１３はシステムクロック発信器である。上記データ送信装置１１とデータ受信装置１２との間は、複数本例えば８本のデータライン１４により接続される。更に、データ送信装置１１とデータ受信装置１２との間はステータスライン１５により接続され、データ送信装置１１はデータ受信装置１２の状態をステータスライン１５により読み出して確認できるようになっている。上記システムクロック発信器１３は、システムクロックCLK_SYSを発生し、データ送信装置１１及びデータ受信装置１２に供給する。データ送信装置１１は、上記システムクロックCLK_SYSに同期したデータをデータライン１４上に出力するが、通信開始時にテストデータ（キャリブレーションデータ）をデータ受信装置１２に送信する。
【００１３】
データ受信装置１２は、クロック生成器２１、CLK_CAPセレクタ２２、キャプチャ回路（CAPTURE）２３、データ取り込みタイミング制御部２４により構成される。クロック生成器２１は、システムクロック発信器１３から供給されるシステムクロックCLK_SYSをデータレートの数倍に逓倍、例えば８倍に逓倍した内部クロックCLK_CAP8を生成し、この内部クロックCLK_CAP8をCLK_CAPセレクタ２２に供給する。CLK_CAPセレクタ２２は、データ取り込みタイミング制御部２４によって制御され、通常の通信に先立つキャリブレーション時には、クロック生成器２１で生成された内部クロックCLK_CAP8をそのままキャプチャ回路２３へ出力し、キャリブレーション終了後は、クロック生成器２１で生成された内部クロックCLK_CAP8から最適タイミングのデータ取り込み用内部クロックCLK_CAPを選択してキャプチャ回路２３に供給する。
【００１４】
キャプチャ回路２３は、キャリブレーション時にはデータ送信装置１１からデータライン１４により送られてくるテストデータを上記データ取り込み用内部クロックCLK_CAP8によりサンプリングして取り込む。データ取り込みタイミング制御部２４は、キャリブレーション時にキャプチャ回路２３がサンプリングして取り込んだデータに基づいてクロック選択信号を作成してCLK_CAPセレクタ２２へ出力し、通常の通信時において最適タイミングのデータ取り込み用内部クロックCLK_CAPが選択されるようにする。
【００１５】
上記データ取り込みタイミング制御部２４は、図２に示すように構成される。
図２において、３１は全データライン“１”検出回路で、図１に示したキャプチャ回路２３の全データラインに“１”信号が取込まれた状態を検出する。この全データライン“１”検出回路３１で検出された結果は、“１”タイミング検出結果保持部３２により保持される。また、３３は全データライン“０”検出回路で、キャプチャ回路２３の全データラインに“０”信号が取込まれた状態を検出する。この全データライン“０”検出回路３３で検出された結果は、“０”タイミング検出結果保持部３４により保持される。
【００１６】
上記“１”タイミング検出結果保持部３２及び“０”タイミング検出結果保持部３４に保持されたデータは、有効データ取り込み区間検出回路３５へ送られて有効データ取り込み区間が検出される。
また、上記全データライン“１”検出回路３１の検出信号は、第１のエッジ検出回路３６へ送られる。この第１のエッジ検出回路３６は、全データライン“１”検出回路３１で検出された“１”の立ち上がりエッジを検出し、８カウント（０〜７）のエンドレス（Endless）３ビット内部カウンタ３７をリセットする。この３ビット内部カウンタ３７は、第１のエッジ検出回路３６の検出信号で「０」にリセットされ、クロック生成器２１で生成された内部クロックCLK_CAP8によりカウント動作し、そのカウント値が有効データ取り込み区間保持回路３９及び比較器４２へ送られる。
【００１７】
また、上記有効データ取り込み区間検出回路３５の検出信号は、第２のエッジ検出回路３８へ送られる。この第２のエッジ検出回路３８は、有効データ取り込み区間検出回路３５で検出された有効データ取り込み区間の立ち上がりエッジ／立ち下がりエッジを検出し、有効データ取り込み区間保持回路３９へデータ取り込みのタイミングとして出力する。
【００１８】
有効データ取り込み区間保持回路３９は、３ビット内部カウンタ３７のカウント値を上記第２のエッジ検出回路３８の出力信号に同期して読み込み、センタ値算出回路４０へ出力する。センタ値算出回路４０は、有効データ取り込み区間保持回路３９に保持された有効データ取り込み区間のセンタ値を算出される。このセンタ値は、設定値保持用３ビットＦ／Ｆ（フリップフロップ）４１により保持されて比較器４２へ送られる。比較器４２は、設定値保持用３ビットＦ／Ｆ４１に保持された有効データ取り込み区間のセンタ値と３ビット内部カウンタ３７のカウント値とを比較し、一致したときだけ“１”信号、即ち内部クロック選択信号（CLK_CAP_CAL）をCLK_CAPセレクタ２２へ出力する。また、上記センタ値算出回路４０は、センタ値を設定値保持用３ビットＦ／Ｆ４１に設定した後、信号ライン４３を介して切替信号をCLK_CAPセレクタ２２へ出力する。CLK_CAPセレクタ２２は、上記切替信号によりデータ取り込み用クロックを切替え、以後、比較器４２から内部クロック選択信号（CLK_CAP_CAL）が与えられたタイミングで、クロック生成器２１で生成された内部クロックCLK_CAP8を選択し、内部クロックCLK_CAPとしてキャプチャ回路２３へ出力する。
【００１９】
図３はデータ取り込みタイミング制御部２４の具体的な構成例を示すブロック図である。
全データライン“１”検出回路３１は、例えばＡＮＤ回路（１）によって構成しており、キャプチャ回路２３に取り込まれた全データラインが“１”となった状態を検出し、その検出信号“１”を“１”タイミング検出結果保持部３２及び第１のエッジ検出回路３６へ出力する。上記“１”タイミング検出結果保持部３２は、図４に示すように直列接続された８ビットのＦ／Ｆ３２０〜Ｆ／Ｆ３２７によりシフトレジスタを構成し、ＡＮＤ回路（１）の出力信号をクロック生成器２１で生成された内部クロックCLK_CAP8によりＦ／Ｆ３２７に読み込んでＦ／Ｆ３２０側に順次シフトし、Ｆ／Ｆ３２０から有効データ取り込み区間検出回路３５へ出力する。また、第１のエッジ検出回路３６は、ＡＮＤ回路（１）から出力される“１”の立ち上がりエッジを検出してリセット信号ＲＳＴを出力し、３ビット内部カウンタ３７をリセットする。この３ビット内部カウンタ３７は、クロック生成器２１で生成された内部クロックCLK_CAP8によってカウントアップ動作し、そのカウント値を有効データ取り込み区間保持回路３９へ出力する。
【００２０】
また、上記全データライン“０”検出回路３３は、例えばＮＯＲ回路（１）によって構成しており、キャプチャ回路２３に取り込まれた全データラインが“０”となった状態を検出し、その検出信号“１”を有効データ取り込み区間検出回路３５へ出力する。この有効データ取り込み区間検出回路３５は、例えばＡＮＤ回路（２）によって構成しており、“１”タイミング検出結果保持部３２に保持された検出結果とＮＯＲ回路（１）とのＡＮＤをとり、第２のエッジ検出回路３８へ出力する。第２のエッジ検出回路３８は、ＡＮＤ回路（２）の出力信号の立ち上がりエッジ／立ち下がりエッジを検出し、立ち上がりエッジ検出信号Rise_set、立ち下がりエッジ検出信号Fall_setを有効データ取り込み区間保持回路３９へ出力する。
【００２１】
有効データ取り込み区間保持回路３９は、３ビットＦ／Ｆ３９ａ及び３ビットＦ／Ｆ３９ｂを備え、３ビットＦ／Ｆ３９ａは第２のエッジ検出回路３８から立ち上がりエッジ検出信号Rise_setが与えられた時点で３ビット内部カウンタ３７のカウント値を保持し、３ビットＦ／Ｆ３９ｂは第２のエッジ検出回路３８から立ち下がりエッジ検出信号Fall_setが与えられた時点で３ビット内部カウンタ３７のカウント値を保持する。上記３ビットＦ／Ｆ３９ａ及び３ビットＦ／Ｆ３９ｂに保持されたデータはセンタ値算出回路４０へ送られる。センタ値算出回路４０は、上記３ビットＦ／Ｆ３９ａ及び３ビットＦ／Ｆ３９ｂに保持されたデータのセンタ値を算出する。このセンタ値は、設定値保持用３ビットＦ／Ｆ４１により保持されて比較器４２へ送られる。比較器４２は、設定値保持用３ビットＦ／Ｆ４１に保持された有効データ取り込み区間のセンタ値と３ビット内部カウンタ３７のカウント値とを比較し、一致したときだけ“１”信号（内部クロック選択信号CLK_CAP_CAL）をCLK_CAPセレクタ２２へ出力する。その後、上記CLK_CAPセレクタ２２には、センタ値算出回路４０から信号ライン４３を介して切替信号が与えられる。CLK_CAPセレクタ２２は、センタ値算出回路４０から切替信号が与えられると、クロック選択動作が切替えられ、以後、比較器４２から内部クロック選択信号CLK_CAP_CAL）が与えられたタイミングでクロック生成器２１からの内部クロックCLK_CAP8を選択し、内部クロックCLK_CAPとしてキャプチャ回路２３へ出力するように動作する。
【００２２】
次に、上記図１ないし図４における一連の動作を図５に示すフローチャートを参照して説明する。
データ送信装置１１とデータ受信装置１２との間で通信を開始する際、データ送信装置１１及びデータ受信装置１２に電源が供給されると共にシステムクロック発信器１３からシステムクロックCLK_SYSが供給されることにより、キャリブレーションの準備が完了する（ステップＡ１）。データ送信装置１１は、キャリブレーションの準備完了後、データ受信装置１２がテストデータ（キャリブレーションデータ）の待ち受け状態かどうかをステータスライン１５により確認する（ステップＡ２）。データ受信装置１２は、非待ち受け状態の場合、非待ち受け状態であることをステータスライン１５によりデータ送信装置１１へ返答する（ステップＡ３）。この場合、データ送信装置１１は１ｍｓ待機し（ステップＡ４）、その後、ステップＡ２に戻って再度データ受信装置１２の状態を確認する。
【００２３】
上記ステップＡ２において、データ受信装置１２が待ち受け状態である場合、データ受信装置１２は待ち受け状態であることをステータスライン１５によりデータ送信装置１１へ返答する（ステップＡ５）。データ送信装置１１は、データ受信装置１２が待ち受け状態であることを確認すると、システムクロックCLK_SYSに同期したテストデータをデータ受信装置１２へ送信する（ステップＡ６）。上記テストデータとしては、例えば“０１０１”を用いる。テストデータの選定は、“１”データ、“０”データにおける最適タイミングを推定することが可能であり、かつ、１データ幅時間以上の遅延偏差を生じた場合においてもタイミングの誤検出を生じないパターンとする。
【００２４】
データ受信装置１２のCLK_CAPセレクタ２２は、初期状態、すなわちセンタ値算出回路４０から切替信号が与えられるまでは、クロック生成器２１で生成された内部クロックCLK_CAP8、すなわちシステムクロックCLK_SYSを８逓倍した内部クロックを選択してキャプチャ回路２３へ出力している。従って、データ受信装置１２は、データ送信装置１１から送信されてきテストデータをデータ取り込み用内部クロックCLK_CAP8によりサンプリングしてキャプチャ回路２３に取り込み、その取り込みデータを全データライン“１”検出回路３１（ＡＮＤ回路（１））及び全データライン“０”検出回路３３（ＮＯＲ検出回路（１））とにそれぞれパラレルデータのまま入力する。このとき全データライン“１”検出回路３１及び全データライン“０”検出回路３３は、内部クロックCLK_CAP8で動作している。
【００２５】
全データライン“１”検出回路３１では、複数のデータライン１４より入力されたテストデータにおいて、同時に“１”がサンプリングされるタイミングを検出し（ステップＡ７）、全データライン“０”検出回路３３では同時に“０”がサンプリングされるタイミングを検出する。
【００２６】
最初に全データラインで“１”を取り込んだ時点をタイミング基点とするために、全データラインで“１”を検出できるタイミングが存在したかどうかを判断し（ステップＡ８）、そのタイミングが存在しなければデータの取り込み不可として処理する（ステップＡ９）。
【００２７】
図６は、データ送信装置１１からデータライン１４を介してデータ受信装置１２に送られてくるテストデータ（“１”，“０”）、例えばデータ１とデータ２をキャプチャ回路２３にて内部クロックCLK_CAP8によりサンプリングして取り込む様子を示した概念図である。図６において、（ａ）はデータ１の波形、（ｂ）はデータ１より１クロック（内部クロックCLK_CAP8）程度位相が遅れているデータ２の波形、（ｃ）は入力データをサンプリングする内部クロックCLK_CAP8の波形、（ｄ）は（１）全データラインが“１”のタイミング、及び（２）全データラインが“０”のタイミングを示している。
【００２８】
データ１、２は、“０”レベルから“１”レベルに立ち上がり、この“１”レベルを一定時間保持した後、“０”レベルに立ち下がる。この場合、データ１、２は、“０”から“１”へは瞬時に立ち上がるが、“１”から“０”には僅かな立ち下がり時間を有している。データ受信装置１２は、データ１、２を内部クロックCLK_CAP8によりサンプリングしてキャプチャ回路２３に読み込んだ場合、信号レベルが予め設定したレベルＬ１より高ければ“１”、信号レベルが予め設定したレベルＬ１より低ければ“０”として処理し、全データライン“１”、全データライン“０”のタイミングを検出する。
【００２９】
そして、上記図５のステップＡ８において、全データラインで“１”を検出できるタイミングが存在したと判断された場合、全データライン“１”検出回路３１の“１”検出結果の立ち上がりエッジを第１のエッジ検出回路３６で検出し、８カウント（０〜７）のエンドレス３ビット内部カウンタ３７をリセットして“０”から起動し（ステップＡ１０）、また同時に以降８内部クロック間における全データライン“１”検出回路３１の“１”検出結果を“１”タイミング検出結果保持部３２に連続８ビット保持する（ステップＡ１１）。但し、全データライン“１”の検出結果を“１”として保持する。
【００３０】
次に、全データライン“０”検出回路３３の“０”検出結果を“０”タイミング検出結果保持部３４にて内部クロックCLK_CAP8により１ビットずつ保持する。但し、“１”タイミング検出結果保持部３２と異なる点は、全データライン“０”の検出結果を“１”として保持することである。これは既知のテストデータにおける単位パルス信号の直後の“０”データを格納したこととなる。
【００３１】
ここで８内部クロックCLK_CAP8間の検出結果を保持するのは、内部クロック８倍でサンプリングしているため、理想的には“１”、“０”、“１”それぞれが８回ずつサンプリングできると考えられるからである。この最初の“１”タイミング検出に続き、全データライン検出結果が“１”→“０”と遷移しなければ、データライン間のスキューが大きすぎるため取り込み不可と判断する。
【００３２】
そして、上記“１”タイミング検出結果保持部３２の保持データと“０”タイミング検出結果保持部３４の保持データを有効データ取り込み区間検出回路３５に出力して有効データ取り込み区間を検出する（ステップＡ１２）。すなわち“１”タイミング検出結果保持部３２における“１”検出結果８ビット保持直後の全データライン“０”検出回路３３の“０”検出結果連続８ビットを全データライン“１”検出回路３１による“１”検出結果の１ビット目から８ビット目までと順にＡＮＤをとって比較する。この比較結果において、“１”の結果が得られたタイミング区間が入力データにおいて、“１”データ、“０”データともに有効データとして取り込まれた区間である。
【００３３】
“１”を得られたタイミング区間を知るため、ＡＮＤ結果の立ち上がり／立ち下がりを第２のエッジ検出回路３８で検出し（ステップＡ１３）、立ち上がりエッジ検出信号Rise_set及び立ち下がりエッジ検出信号Fall_setを出力し、それぞれの時点で３ビット内部カウンタ３７のカウント値を有効データ取り込み区間保持回路３９において、３ビットＦ／Ｆ３９ａ及び３ビットＦ／Ｆ３９ｂにより別々に保持する（ステップＡ１４）。この３ビットＦ／Ｆ３９ａ及び３ビットＦ／Ｆ３９ｂで保持されたカウント値のセンタ値をセンタ値算出回路４０にて算出する（ステップＡ１５）。これは、ノイズや温度特性などを考慮した場合、データの有効タイミングの前後への変動が想定されるので、より確実なデータ取り込みタイミングとして、検出された有効データ取り込み区間のセンタ値を採用するためである。
【００３４】
この場合、有効データ区間が必ず奇数とは限らないため、厳密なセンタロックが算出できない可能性があるが、前後半クロックの誤差を許容し、本実施例では後半のクロックを選択することとする。
図７は、データ送信装置１１からテストデータとして例えばデータ１、データ２をデータライン１４に出力した場合において、データ１、データ２のデータ値、３ビット内部カウンタ３７のカウント値、全データライン“１”検出回路３１であるＡＮＤ回路（１）の出力値、全データライン“０”検出回路３３であるＮＯＲ回路（１）の出力値、及び有効データ取り込み区間検出回路３５であるＡＮＤ回路（２）の出力値の具体的な例を示した図である。
【００３５】
全データライン“１”検出回路３１であるＡＮＤ回路（１）により全データラインのデータ即ちデータ１、２が“１”であることが検出されると、その検出信号によって３ビット内部カウンタ３７が“０”にリセットされ、その後、内部クロックCLK_CAP8により順次カウントアップされる。３ビット内部カウンタ３７のカウント値が「０」〜「７」まで８カウントされる間、データ１、２が共に“１”であると、“１”タイミング検出結果保持部３２のＦ／Ｆ３２０〜Ｆ／Ｆ３２７に全て“１”が保持される。このＦ／Ｆ３２０〜Ｆ／Ｆ３２７に保持されたデータは、内部クロックCLK_CAP8により順次読み出されて有効データ取り込み区間検出回路３５であるＡＮＤ回路（２）に入力され、全データライン“０”検出回路３３であるＮＯＲ回路（１）の出力値と比較される。このとき３ビット内部カウンタ３７のカウント値は、内部クロックCLK_CAP8により「０」〜「７」まで順次カウントアップされる。この場合、３ビット内部カウンタ３７のカウント値が「１」〜「６」まで順次カウントアップされる間、データ１、２は共に“０”であり、ＮＯＲ回路（１）から“１”が連続して出力され、有効データ取り込み区間検出回路３５を構成するＡＮＤ回路（２）に入力されている。
【００３６】
この結果、有効データ取り込み区間検出回路３５であるＡＮＤ回路（２）からは、３ビット内部カウンタ３７のカウント値が「１」〜「６」まで順次カウントアップされる間、“１”が連続して出力されている。この場合、３ビット内部カウンタ３７のカウント値が「０」及び「７」のときは、ＡＮＤ回路（２）の出力は「０」である。第２のエッジ検出回路３８は、ＡＮＤ回路（２）の出力が“０”から“１”に立ち上がるタイミングで立ち上がり検出信号Rise_setを有効データ取り込み区間保持回路３９の３ビットＦ／Ｆ３９ａに出力し、ＡＮＤ回路（２）の出力が“１”から“０”に立ち下がるタイミングで立ち下がり検出信号Rise_setを３ビットＦ／Ｆ３９ｂに出力する。
【００３７】
上記３ビットＦ／Ｆ３９ａは立ち上がり検出信号Rise_setにより３ビット内部カウンタ３７のカウント値「１」を読み込み、３ビットＦ／Ｆ３９ｂは立ち下がり検出信号Rise_setにより３ビット内部カウンタ３７のカウント値「６」を読み込む。
【００３８】
上記３ビットＦ／Ｆ３９ａに保持されたデータ「１」、及び３ビットＦ／Ｆ３９ｂに保持されたデータ「６」は、センタ値算出回路４０へ送られてセンタ値（中点）が算出される。つまり、本実施例では、センタ値算出回路４０において、カウント値「（１＋６）／２＝３．５」を算出し、この「３．５」を切り上げてカウント値「４」を求める。この場合、センタ値算出回路４０は上記の演算を二進数で処理し、割り算は「１ビットシフト＋切り上げ」を行い、
００１＋１１０＝１１１（２）→１００（２）＝４（１０）
の演算により、センタ値「４」を内部クロックCLK_CAPの最適タイミングとして算出する。上記センタ値算出回路４０で算出された値「４」は、設定値保持用３ビットＦ／Ｆ４１に設定され（ステップＡ１６）、比較器４２へ送られる。比較器４２は、設定値保持用３ビットＦ／Ｆ４１に設定された値と３ビット内部カウンタ３７のカウント値とを比較し、一致したときだけ“１”信号、すなわち内部クロック選択信号CLK_CAP_CALをCLK_CAPセレクタ２２へ出力する。その後、センタ値算出回路４０は、信号ライン４３によりCLK_CAPセレクタ２２に切替信号を送り、クロックの選択動作を切替える。CLK_CAPセレクタ２２は、センタ値算出回路４０から切替信号が与えられることにより、キャリブレーション終了後の通信において、比較器４２から内部クロック選択信号CLK_CAP_CALが出力されるタイミングでクロック生成器２１からの内部クロックCLK_CAP8を選択し、データ取り込み用内部クロックCLK_CAPとしてキャプチャ回路２３へ出力する。これによりセンタ値算出回路４０で算出された最適タイミングに同期したデータレートに等しい内部クロックCLK_CAPを生成することができる。
【００３９】
最後に、データ受信装置１２は、データ送信装置１１にステータスライン１５により完了報告をしてキャリブレーションを終了する（ステップＡ１７）。
上記実施例１によれば、データ送信装置１１とデータ受信装置１２間の同期式高速データ伝送において、送受信装置間にデータ取り込み専用のデータクロック配線を行う必要がなくなり、ある程度のデータ間遅延や波形歪がある場合にもデータ取り込みに信頼性を確保しつつ、パターン設計を容易に行うことができ、製品の開発期間の短期化を図ることができる。
【００４０】
なお、上記実施例１では、データ受信装置１２におけるクロック生成器２１において、システムクロック発信器１３から供給されるシステムクロックCLK_SYSを８倍に逓倍して内部クロックCLK_CAP8を生成した場合について示したが、８倍以外の逓倍数であっても良い。なお、キャプチャ回路２３における入力データに対するサンプリング速度は、データに対して８以上が望ましく、倍率が高いほど精度の高いデータ取り込みが可能となる。但し、内部クロック速度の高速化は、消費電力との兼ね合いとなるので、実現するシステム及び伝送データレートを考慮して最適な速度を選択する。
【００４１】
また、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できるものである。
【符号の説明】
【００４２】
１１…データ送信装置、１２…データ受信装置、１３…システムクロック発信器、１４…データライン、１５…ステータスライン、２１…クロック生成器、２２…CLK_CAPセレクタ、２３…キャプチャ回路、２４…データ取り込みタイミング制御部、３１…全データライン“１”検出回路、３２…“１”タイミング検出結果保持部、３３…全データライン“０”検出回路、３４…“０”タイミング検出結果保持部、３５…有効データ取り込み区間検出回路、３６…第１のエッジ検出回路、３７…３ビット内部カウンタ、３８…第２のエッジ検出回路、３９…有効データ取り込み区間保持回路、４０…センタ値算出回路、４１…設定値保持用３ビットＦ／Ｆ、４２…比較器、４３…信号ライン。
【図１】
2010213204.tif 000003
【図２】
2010213204.tif 000004
【図３】
2010213204.tif 000005
【図４】
2010213204.tif 000006
【図５】
2010213204.tif 000007
【図６】
2010213204.tif 000008
【図７】
2010213204.tif 000009