(57)【要約】【課題】  低消費電力を実現しながら転送クロックによるデータの適正なサンプリングを実現できるインターフェース回路及び電子機器を提供すること。【解決手段】  インターフェース回路は、データ転送用の差動信号線を介して転送されるデータＤＴＯを、クロック転送用の差動信号線を介して転送されるクロックＣＬＫに基づいてサンプリングするサンプリング回路９０と、サンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するプリアンブルエラー検出回路１００を含む。サンプリング回路９０は、クロックの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングされたデータについてプリアンブルエラーが通知された場合には、他方のエッジでサンプリングされたデータをサンプリングデータＳＰＤとして出力する。プラスコードのプリアンブルコードを検出せずにマイナスコードのプリアンブルコードを検出する。【選択図】        図９
2005142643.tif 000002
【特許請求の範囲】
【請求項１】
差動信号インターフェースを備えたインターフェース回路であって、
データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックに基づいてサンプリングするサンプリング回路と、
前記サンプリング回路によりサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するプリアンブルエラー検出回路とを含み、
前記サンプリング回路が、
クロック転送用の差動信号線を介して転送されるクロックの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングされたデータについてプリアンブルエラーが通知された場合には、前記一方とは異なる他方のエッジでサンプリングされたデータを、サンプリングデータとして出力することを特徴とするインターフェース回路。
【請求項２】
請求項１において、
前記プリアンブルエラー検出回路が、
プラスコードのプリアンブルコードに続いてマイナスコードのプリアンブルコードがデータ転送用の差動信号線を介して転送される場合に、プラスコードのプリアンブルコードの検出処理を行わずにマイナスコードのプリアンブルコードの検出処理を行い、マイナスコードのプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知することを特徴とするインターフェース回路。
【請求項３】
差動信号インターフェースを備えたインターフェース回路であって、
データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックに基づいてサンプリングするサンプリング回路と、
前記サンプリング回路によりサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するプリアンブルエラー検出回路とを含み、
前記プリアンブルエラー検出回路が、
プラスコードのプリアンブルコードに続いてマイナスコードのプリアンブルコードがデータ転送用の差動信号線を介して転送される場合に、プラスコードのプリアンブルコードの検出処理を行わずにマイナスコードのプリアンブルコードの検出処理を行い、マイナスコードのプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知することを特徴とするインターフェース回路。
【請求項４】
請求項２又は３において、
前記プリアンブルエラー検出回路が、
アイドル状態を表す第１のレベルから第２のレベルにデータが変化した後、プラスコードのプリアンブルコードとマイナスコードのプリアンブルコードの転送に必要な期間よりも長い所与の検出期間が経過するまで、マイナスコードのプリアンブルコードの検出処理を行い、前記検出期間内にマイナスコードのプリアンブルコードが検出されなかった場合に、プリアンブルエラーを通知することを特徴とするインターフェース回路。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記プリアンブルエラー検出回路が、
プリアンブルコードの非検出回数をカウントするエラーカウント回路を含み、非検出回数が所与の回数になった場合にプリアンブルエラーを通知することを特徴とするインターフェース回路。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記サンプリング回路が、
データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングする第１のサンプリング回路と、
データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックの前記一方とは異なる他方のエッジでサンプリングする第２のサンプリング回路と、
前記第１のサンプリング回路でサンプリングされたデータと前記第２のサンプリング回路でサンプリングされたデータのいずれかを選択して、サンプリングデータとして出力するデータセレクタとを含み、
前記プリアンブルエラー検出回路が、
前記第１のサンプリング回路でサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知する第１のプリアンブルエラー検出回路と、
前記第２のサンプリング回路でサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知する第２のプリアンブルエラー検出回路とを含み、
前記データセレクタが、
前記第１のプリアンブルエラー検出回路からプリアンブルエラーが通知された場合には、前記第２のサンプリング回路でサンプリングされたデータを選択して、サンプリングデータとして出力することを特徴とするインターフェース回路。
【請求項７】
請求項６において、
前記データセレクタが、
前記第１、第２のプリアンブルエラー検出回路のいずれからもプリアンブルエラーが通知されなかった場合には、前記第１のサンプリング回路でサンプリングされたデータを選択して、サンプリングデータとして出力することを特徴とするインターフェース回路。
【請求項８】
請求項６又は７において、
前記第１のプリアンブルエラー検出回路が、
アイドル状態を表す第１のレベルから第２のレベルにデータが変化した後、所与の検出期間が経過するのをカウントする第１の検出期間カウント回路を含み、検出期間内にプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知し、
前記第２のプリアンブルエラー検出回路が、
アイドル状態を表す第１のレベルから第２のレベルにデータが変化した後、所与の検出期間が経過するのをカウントする第２の検出期間カウント回路を含み、検出期間内にプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知することを特徴とするインターフェース回路。
【請求項９】
請求項８において、
前記第１、第２の検出期間カウント回路が、
プラスコードのプリアンブルコードに続いてマイナスコードのプリアンブルコードがデータ転送用の差動信号線を介して転送される場合に、プラスコードのプリアンブルコードとマイナスコードのプリアンブルコードの転送に必要な期間よりも長い検出期間の経過をカウントし、
前記第１、第２のプリアンブルエラー検出回路が、
前記検出期間内にマイナスコードのプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知することを特徴とするインターフェース回路。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記プリアンブルコードが、ビット幅を拡張する符号化方式により得られる特殊コードに割り当てられてデータ転送用の差動信号線を介して転送されるコードであることを特徴とするインターフェース回路。
【請求項１１】
請求項１乃至１０のいずれかのインターフェース回路と、
通信デバイス、プロセッサ、撮像デバイス、及び表示デバイスの少なくとも１つと、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターフェース回路、及び電子機器に関する。
【背景技術】
【０００２】
近年、ＥＭＩノイズの低減などを目的としたインターフェースとしてＬＶＤＳ（Low Voltage Differential Signaling）などの高速シリアル転送インターフェースが脚光を浴びている。この高速シリアル転送インターフェースでは、トランスミッタ回路がシリアル化されたデータを差動信号（Differential Signals）により送信し、レシーバ回路が差動信号を差動増幅することでデータ転送を実現する。このような高速シリアル転送インターフェースとしてはＤＶＩ（Digital Visual Interface）などが知られている。
【０００３】
このような高速シリアルインターフェースでは、レシーバ側が、トランスミッタ側から送信されるデータをクロックでサンプリングして同期化する必要がある。このような同期化を実現する第１の方式として、立ち上がりエッジと立ち下がりエッジの両方で転送データをサンプリングできるクロックをトランスミッタ側がレシーバ側に転送し、レシーバ側がこの転送クロックに基づいて両エッジでデータをサンプリングする両エッジ方式がある。しかしながら、この両エッジ方式では、トランスミッタ側のＰＬＬ回路でクロックを２倍に逓倍化する必要があり、ＰＬＬ回路の消費電流が増えてしまう。
【０００４】
また第２の方式として、レシーバ側が、トランスミッタ側から転送されてきたクロックをＰＬＬ回路により逓倍化し、逓倍化したクロックでデータをオーバーサンプリングし、データの遷移点を検知してスキュー調整を行う方式がある。しかしながらこの方式では、遷移点を検知するための複雑なスキュー調整回路やＰＬＬ回路がレシーバ側に必要になり、回路の大規模化や消費電力の増加などの問題を招く。
【特許文献１】特開２００３−２１８８４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、低消費電力を実現しながら転送クロックによるデータの適正なサンプリングを実現できるインターフェース回路及び電子機器を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、差動信号インターフェースを備えたインターフェース回路であって、データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックに基づいてサンプリングするサンプリング回路と、前記サンプリング回路によりサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するプリアンブルエラー検出回路とを含み、前記サンプリング回路が、クロック転送用の差動信号線を介して転送されるクロックの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングされたデータについてプリアンブルエラーが通知された場合には、前記一方とは異なる他方のエッジでサンプリングされたデータを、サンプリングデータとして出力するインターフェース回路に関係する。
【０００７】
本発明によれば、プリアンブルコードの検出処理が行われ、プリアンブルコードが検出されなかった場合にプリアンブルエラーが通知される。そして、クロックの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングされたデータについてプリアンブルエラーが通知されると、他方のエッジでサンプリングされたデータが、サンプリングデータとして出力される。例えば立ち上がりエッジでサンプリングされたデータについてプリアンブルエラーが検出されて通知されると、立ち下がりエッジでサンプリングされたデータが、サンプリングデータとして後段の回路（例えばシリアル／パラレル変換回路）に出力される。このように本発明では片エッジ（single edge）方式を採用しているため、低消費電力化が期待できる。また差動信号線によりシリアル転送できるプリアンブルコードを上手く利用してサンプリングエッジの切り替えを行っているため、回路の小規模化や低消費電力化の実現が可能になる。
【０００８】
また本発明は、前記プリアンブルエラー検出回路が、プラスコードのプリアンブルコードに続いてマイナスコードのプリアンブルコードがデータ転送用の差動信号線を介して転送される場合に、プラスコードのプリアンブルコードの検出処理を行わずにマイナスコードのプリアンブルコードの検出処理を行い、マイナスコードのプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するようにしてもよい。
【０００９】
また本発明は、差動信号インターフェースを備えたインターフェース回路であって、データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックに基づいてサンプリングするサンプリング回路と、前記サンプリング回路によりサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するプリアンブルエラー検出回路とを含み、前記プリアンブルエラー検出回路が、プラスコードのプリアンブルコードに続いてマイナスコードのプリアンブルコードがデータ転送用の差動信号線を介して転送される場合に、プラスコードのプリアンブルコードの検出処理を行わずにマイナスコードのプリアンブルコードの検出処理を行い、マイナスコードのプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するインターフェース回路に関係する。
【００１０】
本発明によれば、プラスコードのプリアンブルコードを無視して、マイナスコードのプリアンブルコードの検出処理が行われ、マイナスコードのプリアンブルコードが検出されなかった場合に、プリアンブルエラーが通知される。このようにマイナスコードのプリアンブルコードのみを検出するようにすれば、プラスコードのプリアンブルコードの先頭ビットでのレベル変化に追従できずに検出エラーが発生した場合にも、その検出エラーによりプリアンブルエラーが通知されてしまう事態を防止できる。これによりデータ転送の信頼性を向上できる。
【００１１】
また本発明では、前記プリアンブルエラー検出回路が、アイドル状態を表す第１のレベルから第２のレベルにデータが変化した後、プラスコードのプリアンブルコードとマイナスコードのプリアンブルコードの転送に必要な期間よりも長い所与の検出期間が経過するまで、マイナスコードのプリアンブルコードの検出処理を行い、前記検出期間内にマイナスコードのプリアンブルコードが検出されなかった場合に、プリアンブルエラーを通知するようにしてもよい。
【００１２】
このように、マイナスコードのプリアンブルコードの検出期間を、プラスコードのプリアンブルコードとマイナスコードのプリアンブルコードの転送に必要な期間よりも長い期間に設定すれば、プラスコードのプリアンブルコードの先頭ビット等の検出エラーが生じた場合にも、マイナスコードのプリアンブルコードを確実に検出できるようになる。
【００１３】
また本発明では、前記プリアンブルエラー検出回路が、プリアンブルコードの非検出回数をカウントするエラーカウント回路を含み、非検出回数が所与の回数になった場合にプリアンブルエラーを通知するようにしてもよい。
【００１４】
このようにすれば、伝送路の雑音等が要因となってプリアンブルコードを検出できなかったような場合にも、プリアンブルエラーが誤って通知されてしまう事態を防止できる。
【００１５】
また本発明では、前記サンプリング回路が、データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングする第１のサンプリング回路と、データ転送用の差動信号線を介して転送されるデータを、クロック転送用の差動信号線を介して転送されるクロックの前記一方とは異なる他方のエッジでサンプリングする第２のサンプリング回路と、前記第１のサンプリング回路でサンプリングされたデータと前記第２のサンプリング回路でサンプリングされたデータのいずれかを選択して、サンプリングデータとして出力するデータセレクタとを含み、前記プリアンブルエラー検出回路が、前記第１のサンプリング回路でサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知する第１のプリアンブルエラー検出回路と、前記第２のサンプリング回路でサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーを通知する第２のプリアンブルエラー検出回路とを含み、前記データセレクタが、前記第１のプリアンブルエラー検出回路からプリアンブルエラーが通知された場合には、前記第２のサンプリング回路でサンプリングされたデータを選択して、サンプリングデータとして出力するようにしてもよい。
【００１６】
このような構成にすれば、サンプリングデータに基づくプリアンブルエラーの検出と、その検出結果に基づくサンプリングデータの選択とを確実に行うことが可能になる。  
【００１７】
また本発明では、前記データセレクタが、前記第１、第２のプリアンブルエラー検出回路のいずれからもプリアンブルエラーが通知されなかった場合には、前記第１のサンプリング回路でサンプリングされたデータを選択して、サンプリングデータとして出力するようにしてもよい。
【００１８】
このようにすれば、第１、第２のプリアンブルエラー検出回路のいずれからもプリアンブルエラーが通知されなかった場合には、一方のエッジでサンプリングされたデータが優先されて、サンプリンデータとして出力されるようになる。
【００１９】
また本発明では、前記第１のプリアンブルエラー検出回路が、アイドル状態を表す第１のレベルから第２のレベルにデータが変化した後、所与の検出期間が経過するのをカウントする第１の検出期間カウント回路を含み、検出期間内にプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知し、前記第２のプリアンブルエラー検出回路が、アイドル状態を表す第１のレベルから第２のレベルにデータが変化した後、所与の検出期間が経過するのをカウントする第２の検出期間カウント回路を含み、検出期間内にプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するようにしてもよい。
【００２０】
このようにすれば、適正な検出期間を設定してプリアンブルエラーを検出・通知できるようになる。
【００２１】
また本発明では、前記第１、第２の検出期間カウント回路が、プラスコードのプリアンブルコードに続いてマイナスコードのプリアンブルコードがデータ転送用の差動信号線を介して転送される場合に、プラスコードのプリアンブルコードとマイナスコードのプリアンブルコードの転送に必要な期間よりも長い検出期間の経過をカウントし、前記第１、第２のプリアンブルエラー検出回路が、前記検出期間内にマイナスコードのプリアンブルコードが検出されなかった場合にプリアンブルエラーを通知するようにしてもよい。
【００２２】
このように、マイナスコードのプリアンブルコードの検出期間を、プラスコードのプリアンブルコードとマイナスコードのプリアンブルコードの転送に必要な期間よりも長い期間に設定すれば、プラスコードのプリアンブルコードの先頭ビット等の検出エラーが生じた場合にも、マイナスコードのプリアンブルコードを確実に検出できるようになる。
【００２３】
また本発明では、前記プリアンブルコードが、ビット幅を拡張する符号化方式により得られる特殊コードに割り当てられてデータ転送用の差動信号線を介して転送されるコードであってもよい。
【００２４】
このような符号化方式を採用すれば、プリアンブルコードをシリアル転送して、プリアンブルエラーの検出及び通知に利用することが可能になる。
【００２５】
また本発明は、上記のいずれかのインターフェース回路と、通信デバイス、プロセッサ、撮像デバイス、及び表示デバイスの少なくとも１つとを含む電子機器に関係する。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２７】
１．差動信号によるデータ転送方式
まず図１を用いて本実施形態のデータ転送手法の概要について説明する。なお本実施形態において、ホストデバイス１０はクロックを供給する側であり、ターゲットデバイス３０は、供給されたクロックをシステムクロックとして使用して動作する側である。
【００２８】
図１においてＤＴＯ＋、ＤＴＯ−はホストデバイス１０（広義にはデバイス）がターゲットデバイス３０（広義にはデバイス）に出力するデータ（ＯＵＴデータ）である。ＣＬＫ＋、ＣＬＫ−は、ホストデバイス１０がターゲットデバイス３０に供給するクロックである。ホストデバイス１０はＣＬＫ＋／−のエッジ（例えば立ち上がりエッジ。立ち下がりエッジでもよい）に同期してＤＴＯ＋／−を出力する。従ってターゲットデバイス３０は、ＣＬＫ＋／−を用いてＤＴＯ＋／−をサンプリングして取り込むことができる。更に図１では、ターゲットデバイス３０はホストデバイス１０から供給されたクロックＣＬＫ＋／−に基づいて動作する。即ちＣＬＫ＋／−はターゲットデバイス３０のシステムクロックになる。このためＰＬＬ（Phase Locked Loop）回路１２は（広義にはクロック生成回路）はホストデバイス１０に設けられ、ターゲットデバイス３０には設けられていない。
【００２９】
ＤＴＩ＋、ＤＴＩ−はターゲットデバイス３０がホストデバイス１０に出力するデータ（ＩＮデータ）である。ＳＴＢ＋、ＳＴＢ−は、ターゲットデバイス３０がホストデバイス１０に供給するストローブ（広義にはクロック）である。ターゲットデバイス３０はホストデバイス１０から供給されたＣＬＫ＋／−に基づいてＳＴＢ＋／−を生成して出力する。そしてターゲットデバイス３０はＳＴＢ＋／−のエッジ（例えば立ち上がりエッジ。立ち下がりエッジでもよい）に同期してＤＴＩ＋／−を出力する。従ってホストデバイス１０は、ＳＴＢ＋／−を用いてＤＴＩ＋／−をサンプリングして取り込むことができる。
【００３０】
ＤＴＯ＋／−、ＣＬＫ＋／−、ＤＴＩ＋／−、ＳＴＢ＋／−の各々は、トランスミッタ回路（ドライバ回路）がこれらの各々に対応する差動信号線（Differential Signal Lines）を例えば電流駆動することにより送信される。なお、より高速な転送を実現するためには、ＤＴＯ＋／−、ＤＴＩ＋／−の各差動信号線を２ペア以上設ければよい。
【００３１】
ホストデバイス１０のインターフェース回路２０は、ＯＵＴ転送用（広義にはデータ転送用）、クロック転送用のトランスミッタ回路２２、２４や、ＩＮ転送用（広義にはデータ転送用）、ストローブ転送用（広義にはクロック転送用）のレシーバ回路２６、２８を含む。ターゲットデバイス３０のインターフェース回路４０は、ＯＵＴ転送用、クロック転送用のレシーバ回路４２、４４や、ＩＮ転送用、ストローブ転送用のトランスミッタ回路４６、４８を含む。なおこれらの回路ブロックの一部を含まない構成としてもよい。
【００３２】
ＯＵＴ転送用、クロック転送用のトランスミッタ回路２２、２４は、各々、ＤＴＯ＋／−、ＣＬＫ＋／−の差動信号線を電流駆動することでＤＴＯ＋／−、ＣＬＫ＋／−を送信する。ＯＵＴ転送用、クロック転送用のレシーバ回路４２、４４は、各々、ＤＴＯ＋／−、ＣＬＫ＋／−の差動信号線に流れる電流に基づいて電流・電圧変換を行い、電流・電圧変換により得られた差動電圧信号（第１、第２の電圧信号）の比較処理（差動増幅処理）を行うことで、ＤＴＯ＋／−、ＣＬＫ＋／−を受信する。
【００３３】
ＩＮ転送用、クロック転送用のトランスミッタ回路４６、４８は、各々、ＤＴＩ＋／−、ＳＴＢ＋／−の差動信号線を電流駆動することでＤＴＩ＋／−、ＳＴＢ＋／−を送信する。ＩＮ転送用、ストローブ転送用のレシーバ回路２６、２８は、各々、ＤＴＩ＋／−、ＳＴＢ＋／−の差動信号線に流れる電流に基づいて電流・電圧変換を行い、電流・電圧変換により得られた差動電圧信号（第１、第２の電圧信号）の比較処理（差動増幅処理）を行うことで、ＤＴＩ＋／−、ＳＴＢ＋／−を受信する。
【００３４】
２．インターフェス回路の構成例
図２、図３にインターフェース回路の詳細な構成例を示す。なお本実施形態のインターフェース回路は図２、図３の構成に限定されず、図２、図３の回路ブロックの一部を省略した構成にできる。即ち本実施形態のインターフェース回路では少なくともサンプリング回路とプリアンブルエラー検出回路を含めばよく（或いはサンプリング回路とプリアンブルエラー検出回路とレシーバ回路を含めばよく）、それ以外の回路ブロックは省略できる。
【００３５】
図２はホスト側のインターフェース回路２０の構成例である。図２においてトランザクション層回路５０は、データ転送のトランザクション層に関する処理を行う。具体的にはリクエストパケットやアクノリッジパケットなどのパケットの転送指示を行う。
【００３６】
パケット生成＆転送アボート回路５２は、トランザクション層回路５０により転送指示されたパケット（パケットのヘッダ）を生成するための処理や、データ転送をアボートするための処理を行う。具体的にはパケット生成＆転送アボート回路５２は、８Ｂ／１０Ｂエンコード回路５４からＴｘＳｔｒｏｂｅを受け、ＴｘＤａｔａ、ＴｘＶａｌｉｄ、ＴｘＡｂｏｒｔを出力する。ここでＴｘＤａｔａはパケットを構成する送信データであり、例えば８ビットのパラレルデータである。ＴｘＶａｌｉｄは送信パケットのスタートからエンドまでの期間でアクティブになる信号であり、送信準備が出来たことを示す信号である。ＴｘＳｔｒｏｂｅはデータの受信完了を示す信号である。ＴｘＡｂｏｒｔはデータの送信を中止する場合にアクティブになる信号である。
【００３７】
８Ｂ／１０Ｂエンコード回路５４は、８Ｂ／１０Ｂ符号化方式（広義にはビット幅を拡張する符号化方式）によるエンコード処理を行う。８Ｂ／１０Ｂエンコード回路５４が含むコード付加回路５５は、８Ｂ／１０Ｂ符号化により得られたプリアンブルコードやスタートコードやアボートコードの付加処理を行う。
【００３８】
８Ｂ／１０Ｂ符号化では８ビットのデータが１０ビットのデータに変換される。この８Ｂ／１０Ｂ符号化によれば、「０」や「１」が連続するデータであっても、符号化後は信号のビット変化が多くなり、雑音などに起因する転送エラーの発生を低減できる。また８Ｂ／１０Ｂ符号化によれば、ビット幅が８ビットから１０ビットに拡張されるため、データ以外にも図４に示すような特殊コード（制御コード）を送信することが可能になる。８Ｂ／１０Ｂエンコード回路５４のコード付加回路５５は、この８Ｂ／１０Ｂ符号化を利用してプリアンブルコードやスタートコードやアボートコードの付加処理を行う。なおビット幅を拡張する符号化方式は８Ｂ／１０Ｂ符号化方式には限定されず、例えばＫビットをＬ（Ｌ＞Ｋ）ビットに拡張する符号化方式であればよい。
【００３９】
本実施形態では、８Ｂ／１０Ｂ符号化（ビット幅を拡張する符号化）により得られる特殊コードに、プリアンブルコードやストップコードやアボートコードを割り当てて、データ転送用の差動信号線（ＤＴＯ、ＤＴＩ）を介して転送している。例えば図４では、Ｋ２８．１、Ｋ２８．２、Ｋ２８．３のコードが、各々、プリアンブルコード、ストップコード、アボートコードに割り当てられて、データ転送用の差動信号線（ＤＴＯ、ＤＴＩ）を介して転送される。するとレシーバ側は、８Ｂ／１０Ｂ符号化方式におけるデコード処理を行って、Ｋ２８．１、Ｋ２８．２、Ｋ２８．３のコードを検出することで、プリアンブルコード、ストップコード、アボートコードを検出する。ここでプリアンブルコードは、例えばアイドル状態の後、最初に転送されるパケットの先頭を示すためのコードである。
【００４０】
なお図４に示すようにそれぞれのコードには、プラスコード（ポジティブシンボルのコード）とマイナスコード（ネガティブシンボルのコード）がある。マイナスコードはプラスコードの各ビットをビット反転したコードである。例えばマイナスコードのプリアンブルコード（００１１１１１００１）は、プラスコードのプリアンブルコード（１１０００００１１０）の各ビットを反転したコードになっている。そしてプラスコードのプリアンブルコード（以下、適宜ＰＲＥ＋と示す）では、最初のビットが１となっている一方で、マイナスコードのプリアンブルコード（以下、適宜ＰＲＥ−と示す）では最初のビットが「０」になっている。従って、「０」（第１のレベル）のデータが続くアイドル状態に続いて、ＰＲＥ＋が転送されると、ＰＲＥ＋の先頭ビットではデータが「０」（第１のレベル）から「１」（第２のレベル）に変化することになる。
【００４１】
パラレル／シリアル変換回路５６は、８Ｂ／１０Ｂエンコード回路５４から受けたパラレルのデータをシリアルのデータに変換する。そしてＯＵＴ転送用トランスミッタ回路２２は、パラレル／シリアル変換回路５６からのシリアルデータを受け、ＤＴＯ＋／−の差動信号線を駆動して、データを送信する。またクロック転送用トランスミッタ回路２４は、ＰＬＬ回路１２で生成されたクロックを受け、ＣＬＫ＋／−の差動信号線を駆動して、クロックを送信する。なお、これらのトランスミッタ回路２２、２４は、差動信号線を電流駆動（又は電圧駆動）するためのアナログ回路で構成される。またＰＬＬ回路１２で生成されたクロックは分周回路１４により分周されて、インターフェース回路内の回路ブロック（パラレルデータを処理するブロック）に供給される。
【００４２】
ＩＮ転送用レシーバ回路２６は、ＤＴＩ＋／−の差動信号線を介して転送されるデータを受信し、受信したシリアルのデータをシリアル／パラレル変換回路６０に出力する。ストローブ転送用レシーバ回路２８は、ＳＴＢ＋／−の差動信号線を介して転送されるストローブ（クロック）を受信し、受信したストローブを出力する。これらのレシーバ回路２６、２８は、差動信号線の駆動電流（又は駆動電圧）を検知するアナログ回路により構成される。
【００４３】
シリアル／パラレル変換回路６０は、ＤＴＩ＋／−の差動信号線を介して転送されるシリアルのデータをパラレルのデータに変換する。より具体的にはシリアル／パラレル変換回路６０が含むサンプリング回路９１は、ＤＴＩ＋／−の差動信号線を介して転送されるデータを、ＳＴＢ＋／−の差動信号線を介して転送されるストローブ（クロック）に基づいてサンプリングする。そしてシリアル／パラレル変換回路６０は、サンプリングされたシリアルのデータをパラレルのデータに変換する。またシリアル／パラレル変換回路６０が含むプリアンブルエラー検出回路１０１は、サンプリング回路９１によりサンプリングされたデータに基づいてプリアンブルコードの検出処理を行い、プリアンブルコードが検出されないエラー状態であるプリアンブルエラーを検出する。
【００４４】
８Ｂ／１０Ｂデコード回路６２は、８Ｂ／１０Ｂ符号化方式におけるデコード処理を行う。８Ｂ／１０Ｂデコード回路６２が含むコード・アイドル検出回路６３は、スタートコードやアボートコードの検出処理や、差動信号線のアイドル状態の検出処理を行う。
【００４５】
エラー信号生成回路６４は、プリアンブルエラー検出回路１０１でプリアンブルエラーが検出されたり、コード・アイドル検出回路６３でディスパリティエラーやデコードエラーが検出されると、エラー信号ＲｘＥｒｒｏｒを生成してトランザクション層回路５０に出力する。
【００４６】
ＦＩＦＯ６５は、８Ｂ／１０Ｂデコード回路６２からデコード後のデータを受け、ＲｘＤａｔａとしてパケット解析＆ヘッダ・データ分離回路６８に出力する。Ｉ／Ｆ信号生成回路６６は、ＲｘＶａｌｉｄ、ＲｘＳｔｒｏｂｅなどのインターフェース信号を生成して、パケット解析＆ヘッダ・データ分離回路６８に出力する。ここでＲｘＤａｔａは８Ｂ／１０Ｂデコード後の受信データであり、例えば８ビットのパラレルデータである。ＲｘＶａｌｉｄは受信パケットのスタートからエンドまでの期間でアクティブになる信号であり、データが存在することを示す信号である。ＲｘＳｔｒｏｂｅはトランザクション層回路５０へのデータ供給用のストローブ信号である。
【００４７】
パケット解析＆ヘッダ・データ分離回路６８は、受信パケットの解析処理や、受信パケットのヘッダとデータを分離する処理を行う。
【００４８】
図３はターゲット側のインターフェース回路４０の構成例である。図３の回路７０、７２、７４、７５、７６、８０、９０、１００、８２、８３、８４、８５、８６、８８の構成及び動作は、図２の回路５０、５２、５４、５５、５６、６０、９１、１０１、６２、６３、６４、６５、６６、６８とほぼ同様であるため、説明を省略する。なおＴｘＳｐｅｅｄは送信データの転送レートを指示するための信号である。またストローブ制御＆分周回路１６は、クロック転送用レシーバ回路４４で受信したクロックを受け、クロックの分周等を行って、ストローブ信号としてストローブ転送用トランスミッタ回路４８に出力する。また分周回路１８は、クロック転送用レシーバ回路４４で受信したクロックを受け、分周したクロックをインターフェース回路内の回路ブロックに供給する。
【００４９】
図５（Ａ）はクロックＣＬＫとデータＤＴＯの関係を表すタイミング波形例である。図５（Ａ）に示すようにホスト側のトランスミッタ回路は、クロックＣＬＫとＣＬＫの立ち上がりエッジ（立ち下がりエッジでもよい）に同期したデータＤＴＯとをターゲット側のレシーバ回路に送信する。従ってターゲット側のレシーバ回路は、通常の場合には、送信されたクロックＣＬＫの立ち上がりエッジでデータＤＴＯをサンプリングすることになる。
【００５０】
図５（Ａ）のような片エッジ（single edge）方式を採用することで、両エッジ方式に比べて、図２のホスト側インターフェース回路のＰＬＬ回路１２のクロック周波数を約１／２にすることができ、低消費電力化を図れる。またターゲット側インターフェース回路に、クロックの逓倍化のためのＰＬＬ回路や複雑な構成のスキュー調整回路を設ける必要がないため、回路の小規模化、低消費電力化を図れる。
【００５１】
なお図５（Ａ）に示すように本実施形態では、アイドル状態では０（第１のレベル）のデータが転送される。そしてアイドル状態の後、プラスコードのプリアンブルコードＰＲＥ＋が転送され、それに続いてマイナスコードのプリアンブルコードＰＲＥ−が転送される。その後、データパケットが転送され、転送が終了するとストップコードＳＴＯＰ＋／−が転送される。またパケットとパケットの切れ目には、８Ｂ／１０Ｂ符号化によるエンコード後のコードの１個分以上の期間ＴＩＤＬＥが設けられる。８Ｂ／１０Ｂ符号化では「０」が１０ビット以上続くことはない。従って転送終了時のストップコードにエラーがあった場合にも、次のパケット転送で確実に再度同期を取れることになる。
【００５２】
なお図５（Ａ）ではデータパケットの転送に先立ってＰＲＥ＋とＰＲＥ−の組み合わせは１回しか転送されていないが、ＰＲＥ＋とＰＲＥ−の組み合わせを複数回転送するようにしてもよい。また図５（Ｂ）に、ストローブＳＴＢとＩＮデータＤＴＩの関係を表すタイミング波形図を示す。
【００５３】
３．サンプリングクロックのエッジの切り替え
次に本実施形態のサンプリング回路、プリアンブルエラー検出回路の詳細について説明する。なお以下では図３のターゲット側のサンプリング回路９０、プリアンブルエラー検出回路１００の構成及び動作について主に説明するが、図２のホスト側のサンプリング回路９１、プリアンブルエラー検出回路１０１の構成及び動作も同様である。
【００５４】
本実施形態では、差動信号インターフェースを備えたインターフェース回路において、図５（Ａ）（Ｂ）に示すような片エッジ方式を採用することで、回路の小規模化、低消費電力化に成功している。しかしながらこの片エッジ方式では、回路や伝送路でのスキューが原因となって、データサンプリング時のセットアップタイムやホールドタイムを十分に確保できず、サンプリングエラー（セットアップエラー、ホールドエラー）が生じる可能性がある。例えばクロックのサンプリングエッジがデータの遷移点に一致すると、適正なサンプリングができなくなる。特に差動信号線での転送レートが速いとサンプリングエラーが生じる可能性が高くなる。そこで、このようなサンプリングエラーの発生を防止するために、本実施形態では以下に説明する手法を採用している。
【００５５】
図６（Ａ）においてサンプリング回路９０は、データ転送用の差動信号線を介して転送されるデータＤＴＯ（データ転送用のレシーバ回路によりＣＭＯＳ電圧レベルに変換された後のデータ）を、クロック転送用の差動信号線を介して転送されるクロックＣＬＫ（クロック転送用のレシーバ回路によりＣＭＯＳ電圧レベルに変換された後のクロック）に基づいてサンプリングする。またプリアンブルエラー検出回路１００は、プリアンブルコードの検出処理を行い、プリアンブルコードが検出されなかった場合にプリアンブルエラーをサンプリング回路９０などに通知する。このプリアンブルエラーは例えばエラー通知信号ＰＲＥＥＲを用いて通知される。
【００５６】
そしてサンプリング回路９０は、クロックＣＬＫの立ち上がりエッジ及び立ち下がりエッジの一方のエッジでサンプリングされたデータについてのプリアンブルエラーがプリアンブルエラー検出回路１００から通知された場合には、その一方とは異なる他方のエッジでサンプリングされたデータを、サンプリングデータＳＰＤとして出力する。そしてこの出力されたサンプリングデータＳＰＤがパラレルデータに変換される。
【００５７】
例えば図６（Ａ）ではＣＬＫ（ＳＴＢ）の立ち上がりエッジでデータＤＴＯ（ＤＴＩ）をサンプリングしている。本実施形態では、このように立ち上がりエッジ（片エッジ）でサンプリングされたデータについてプリアンブルエラーが通知された場合には、サンプリングクロックのエッジを、立ち下がりエッジに切り替える。そして図６（Ｃ）に示すように立ち下がりエッジでサンプリングされたデータをサンプリングデータＳＰＤとして出力する。このようにすることで、片エッジ方式であってもセットアップタイムやホールドタイムを十分に確保でき、サンプリングエラーの発生を防止できる。従って、回路の小規模化及び低消費電力化と適正なデータのサンプリングとを両立できる。
【００５８】
なおプリアンブルエラーの通知に基づいて例えば立ち下がりエッジ（広義には他方のエッジ）に切り替えてサンプリングした場合には、そのサンプリングデータＳＰＤを、立ち上がりエッジ（広義には一方のエッジ）でサンプリングし直して、後段の回路（シリアル／パラレル変換回路等）に出力することが望ましい。
【００５９】
差動信号線を用いないパラレル転送では、片エッジ方式でクロックを転送してデータをサンプリングした場合に、サンプリングエラーが生じることはほとんどない。またパラレル転送では図４に示すようなシリアルのプリアンブルコードを転送できないため、本実施形態のようなプリアンブルエラーに基づくエッジ切り替え手法を実現できない。
【００６０】
一方、差動信号線を用いるシリアル転送では、トランスミッタ回路やレシーバ回路はアナログ回路であり、電流駆動等によって差動信号線を駆動する方式であるため、転送データと転送クロックとの間に大きなスキューが生じる可能性が高い。このため、差動信号線を用いる従来のシリアル転送では、クロックを逓倍化してオーバーサンプリングクロックを生成するＰＬＬ回路をレシーバ側に設け、データの遷移点を検知してスキュー調整を行ってデータをサンプリングする手法が一般的であった。
【００６１】
しかしながら、この手法では、オーバーサンプリングクロックを生成するＰＬＬ回路の消費電力が大きくなったり、スキュー調整回路の規模が大きくなるため、回路の小規模化や低消費電力化を実現することが難しい。
【００６２】
これに対して本実施形態では、差動信号線を用いるシリアル転送でありながら図５（Ａ）（Ｂ）に示すような片エッジ方式を採用しているため、クロックを逓倍化するためのＰＬＬ回路をトランスミッタ側に設ける必要が無く、低消費電力化を実現できる。また本実施形態では、シリアル転送ではパラレル転送とは異なり図４に示すようなシリアルのプリアンブルコードを転送できることに着目し、プリアンブルエラーが生じたことを条件にサンプリングクロックのエッジを切り替える手法を採用している。従って、複雑な構成のスキュー調整回路を設ける必要が無くなり、サンプリングエラーの発生防止と低消費電力化の両立を実現できる。
【００６３】
図７（Ａ）にサンプリング回路９０の構成例を示す。フリップフロップＦＦ１（第１の保持回路）は、クロックＣＬＫの立ち上がりエッジでデータＤＴＯをサンプリングして保持する。一方、クロックＣＬＫの信号レベルはインバータ回路ＩＮＶ１により反転されているため、フリップフロップＦＦ２（第２の保持回路）は、クロックＣＬＫの立ち下がりエッジでデータＤＴＯをサンプリングして保持することになる。
【００６４】
そしてエラー通知信号ＰＲＥＥＲが非アクティブの場合（プリアンブルエラーが通知されない場合）には、データセレクタ９６は、フリップフロップＦＦ１でサンプリングされたデータＳＰＤ１を選択して、最終的なサンプリングデータＳＰＤとして出力する。またフリップフロップＦＦ１がイネーブルにされ、フリップフロップＦＦ２がディスエーブルにされる。
【００６５】
一方、エラー通知信号ＰＲＥＥＲがアクティブの場合（プリアンブルエラーが通知された場合）には、データセレクタ９６は、フリップフロップＦＦ２でサンプリングされたデータＳＰＤ２を選択して、最終的なサンプリングデータＳＰＤとして出力する。またフリップフロップＦＦ２がイネーブルにされ、フリップフロップＦＦ１がディスエーブルにされる。このようにすることで、プリアンブルエラーの通知に基づくサンプリングクロックのエッジ切り替えを実現できる。
【００６６】
なお図７（Ｂ）に示すように、プリアンブルエラー検出回路１００にエラーカウント回路１１０を含ませてもよい。このエラーカウント回路１１０は、プリアンブルコード（例えばＰＲＥ−）の非検出回数（プリアンブルエラーの回数）をカウントする。そしてプリアンブルエラー検出回路１００は、プリアンブルコードの非検出回数（プリアンブルエラーの回数）が所与の回数（例えば２回以上）になった場合に、エラー通知信号ＰＲＥＥＲをアクティブにして、プリアンブルエラーを通知する。このようにすることで、プリアンブルエラーの誤検出が要因となってサンプリングクロックのエッジが切り替わってしまうという事態を防止できる。
【００６７】
即ち差動信号線を用いたシリアル転送では、伝送路に生じる雑音等によりデータのビット反転が生じ、プリアンブルエラーが検出されてしまう場合がある。このような場合に、１回のプリアンブルエラーの検出だけでプリアンブルエラーが通知されて、サンプリングクロックのエッジが切り替わってしまうと、本来は正しいエッジでデータがサンプリングされていたのにもかかわらず、間違ったエッジでデータがサンプリングされてしまう事態が生じる可能性がある。
【００６８】
図７（Ｂ）のようなエラーカウント回路１１０を設け、プリアンブルエラーが複数回検出されたことを条件にプリアンブルエラーをサンプリング回路９０等に通知するようにすれば、上記のような事態の発生を防止でき、データ転送の信頼性を向上できる。
【００６９】
４．マイナスコードのプリアンブルコードの検出
本実施形態では図５（Ａ）（Ｂ）に示すように、差動信号線がアイドル状態である場合には、「０」のデータが転送される。そしてこのアイドル状態の後、プラスコードのプリアンブルコードＰＲＥ＋が転送され、それに続いてマイナスコードのプリアンブルコードＰＲＥ−が転送され、その後、データパケットが転送される。そして図４に示すようにプリアンブルコードＰＲＥ＋の先頭ビットは「１」になっている。従って、長い期間のアイドル状態の後、プリアンブルコードＰＲＥ＋が転送された場合には、「０」が長く続いた後にデータが「１」に急激に変化するようになるため、このデータの変化をアナログ回路であるレシーバ回路等が適正に検出できない可能性がある。そしてこのように「０」から「１」へのデータの変化を適正に検出できないと、プリアンブルコードＰＲＥ＋を正しいサンプリングエッジでサンプリングしているのにもかかわらず、プリアンブルエラーが誤って通知されてしまい、サンプリングエッジが誤って切り替えられてしまう事態が生じる。
【００７０】
そこで本実施形態では図８に示すように、プラスコードのプリアンブルコードＰＲＥ＋を無視して検出せずに、マイナスコードのプリアンブルコードＰＲＥ−だけを検出するようにする。そしてプリアンブルコードＰＲＥ−が検出されなかったことを条件に（ＰＲＥ−が１又は複数回検出されなかったことを条件に）、エラー通知信号ＰＲＥＥＲをアクティブにして、プリアンブルエラーを通知する。
【００７１】
このようにプリアンブルコードＰＲＥ−だけを検出するようにすれば、ＰＲＥ＋の先頭ビットでの「０」から「１」へのデータの変化を検出できなかった場合にも、ＰＲＥ＋は無視されるため、プリアンブルエラーが検出されることはない。従ってプリアンブルエラーの誤通知によりサンプリングエッジが誤って切り替えられてしまう事態を防止できる。
【００７２】
なお図８において期間ＴＰＲＥは、アイドル状態を表す「０」から「１」にデータが変化した後、プリアンブルコードＰＲＥ＋とＰＲＥ−の転送に必要な期間である。例えば図４のようにＰＲＥ＋、ＰＲＥ−が１０ビットのコードである場合には、期間ＴＰＲＥは２０ビットのデータを転送するのに必要な期間である。この場合に、プリアンブルコードＰＲＥ−の検出処理は、「０」から「１」にデータが変化した後、期間ＴＰＲＥよりも長い検出期間ＴＤＥＣが経過するまで行うことが望ましい。そしてこの検出期間ＴＤＥＣ内にＰＲＥ−が検出されなかった場合（ＰＲＥ−が１又は複数回検出されなかった場合）に、プリアンブルエラーを通知するようにする。このようにすればＰＲＥ−を確実に検出できるようになる。
【００７３】
即ち前述のように、ＰＲＥ＋の先頭のビットにおいてデータが「０」から「１」に急激に変化すると、アナログ回路であるレシーバ回路がその変化に追従できずに、検出エラーが生じる可能性がある。従って、検出期間ＴＤＥＣを期間ＴＰＲＥと同じ長さに設定してしまうと、ＰＲＥ−の最終ビット等を検出できずに、誤ったプリアンブルエラーが通知される事態が生じる。
【００７４】
これに対して図８のように、検出期間ＴＤＥＣを期間ＴＰＲＥよりも長い期間に設定すれば、ＰＲＥ＋の先頭ビットで検出エラーが生じても、ＰＲＥ−の最終ビット等は適正に検出できるため、上記のような事態の発生を防止できる。
【００７５】
なお検出期間ＴＤＥＣの経過は、後述するように検出期間のカウント回路により計測できる。具体的には期間ＴＰＲＥは２０ビットの期間であるため、検出期間ＴＤＥＣとして例えば２１ビット以上の期間を設定し、検出期間カウント回路により、この２１ビット以上の検出期間ＴＤＥＣの経過をカウントすればよい。またプリアンブルコードＰＲＥ＋を検出せずにＰＲＥ−の検出だけを行ってプリアンブルエラーを通知する手法は、サンプリングエッジの切り替えを行う構成のみならず、サンプリングエッジの切り替えを行わない構成においても適用できる。
【００７６】
５．詳細な構成例
図９にサンプリング回路９０、プリアンブルエラー検出回路１００の詳細な構成例を示す。図９では、サンプリング回路９０が、第１、第２のサンプリング回路９２−１、９２−２とデータセレクタ９６と選択信号生成回路９８を含む。なおこれらの回路ブロックの一部を省略してもよい。
【００７７】
ここで第１のサンプリング回路９２−１は、データ転送用の差動信号線を介して転送されるデータＤＴＯ（ＤＴＩ）を、クロック転送用の差動信号線を介して転送されるクロックＣＬＫの立ち上がりエッジ（広義には、立ち上がりエッジ及び立ち下がりエッジの一方のエッジ）でサンプリングする。一方、第２のサンプリング回路９２−２は、ＤＴＯをＣＬＫの立ち下がりエッジ（広義には、上記の一方とは異なる他方のエッジ）でサンプリングする。
【００７８】
データセレクタ９６は、第１のサンプリング回路９２−１でサンプリングされたデータＳＰＤ１と第２のサンプリング回路９２−２でサンプリングされたデータＳＰＤ２のいずれかを選択して、サンプリングデータＳＰＤとして出力する。
【００７９】
選択信号生成回路９８は、プリアンブルエラー検出回路１００からのエラー通知信号ＰＲＥＥＲ１、ＰＲＥＥＲ２を受け、選択信号ＳＥＬを生成する。データセレクタ９６は、この生成された選択信号ＳＥＬに基づいてＳＰＤ１、ＳＰＤ２のいずれかを選択してＳＰＤとして出力する。
【００８０】
プリアンブルエラー検出回路１００は第１、第２のプリアンブルエラー検出回路１０２−１、１０２−２を含む。第１のプリアンブルエラー検出回路１０２−１は、第１のサンプリング回路９２−１でサンプリングされたデータＳＰＤ１に基づいてプリアンブルコード（例えばＰＲＥ−）の検出処理を行い、プリアンブルコードが検出されなかった場合には、エラー通知信号ＰＲＥＥＲ１をアクティブにして、プリアンブルエラーを通知する。一方、第２のプリアンブルエラー検出回路１０２−２は、第２のサンプリング回路９２−２でサンプリングされたデータＳＰＤ２に基づいてプリアンブルコード（例えばＰＲＥ−）の検出処理を行い、プリアンブルコードが検出されなかった場合には、エラー通知信号ＰＲＥＥＲ２をアクティブにして、プリアンブルエラーを通知する。
【００８１】
そして本実施形態ではデータセレクタ９６が、第１のプリアンブルエラー検出回路１０２−１からプリアンブルエラーが通知された場合には、第２のサンプリング回路９２−２からのＳＰＤ２を選択してＳＰＤとして出力する。具体的にはエラー通知信号ＰＲＥＥＲ１がアクティブになると、選択信号生成回路９８は、データセレクタ９６にＳＰＤ２を選択させる選択信号ＳＥＬを生成する。
【００８２】
なおデータセレクタ９６は、第１、第２のプリアンブルエラー検出回路１０２−１、１０２−２のいずれからもプリアンブルエラーが通知されなかった場合には、第１のサンプリング回路９２−１でサンプリングされたデータＳＰＤ１を選択してＳＰＤとして出力する。具体的にはエラー通知信号ＰＲＥＥＲ１、ＰＲＥＥＲ２のいずれもがアクティブではない場合には、選択信号生成回路９８は、データセレクタ９６にＳＰＤ１を選択させる選択信号ＳＥＬを生成する。
【００８３】
図９のような構成にすれば、クロックによるデータのサンプリングと、これらのサンプリングデータに基づくプリアンブルエラーの検出と、その検出結果に基づくサンプリングデータの選択とを確実に行うことが可能になる。
【００８４】
図１０に、第１、第２のサンプリング回路９２−１、９２−２、第１、第２のプリアンブルエラー検出回路１０２−１、１０２−２の詳細な構成例を示す。
【００８５】
第１のサンプリング回路９２−１は、データＤＴＯ（ＤＴＩ）が初段に入力され、複数のフリップフロップＦＦ１１〜ＦＦ２０により構成されるシフトレジスタを含む。これらのフリップフロップＦＦ１１〜ＦＦ２０のクロック端子にはクロックＣＬＫが入力され、ＦＦ１１〜ＦＦ２０はＣＬＫの立ち上がりエッジでデータを保持（サンプリング）する。第２のサンプリング回路９２−２は、データＤＴＯ（ＤＴＩ）が初段に入力され、複数のフリップフロップＦＦ２１〜ＦＦ３０により構成されるシフトレジスタを含む。これらのフリップフロップＦＦ２１〜ＦＦ３０のクロック端子には、インバータ回路ＩＮＶ２によるＣＬＫの反転信号が入力されるため、ＦＦ２１〜ＦＦ３０はＣＬＫの立ち下がりエッジでデータを保持（サンプリング）することになる。
【００８６】
第１のプリアンブルエラー検出回路１０２−１は、第１の先頭ビット検出回路１０３−１と第１の検出期間カウント回路１０４−１と第１のプリアンブルコード検出回路１０５−１と第１のアイドル検出回路１０６−１と第１のエッジ検出回路１０７−１と第１のエラーカウント回路１１０−１を含む。一方、第２のプリアンブルエラー検出回路１０２−２は、第２の先頭ビット検出回路１０３−２と第２の検出期間カウント回路１０４−２と第２のプリアンブルコード検出回路１０５−２と第２のアイドル検出回路１０６−２と第２のエッジ検出回路１０７−２と第２のエラーカウント回路１１０−２を含む。なおこれらの回路ブロックの一部を省略する構成としてもよい。
【００８７】
第１、第２の先頭ビット検出回路１０３−１、１０３−２は、プリアンブルコードＰＲＥ＋の先頭ビットを検出する。具体的には第１、第２の先頭ビット検出回路１０３−１、１０３−２には初段のフリップフロップＦＦ１１、ＦＦ２１の出力が入力され、アイドル状態を表す「０」から「１」にデータが変化した場合に、その変化を検出して、カウントスタート信号ＣＳＴ１、ＣＳＴ２をアクティブにする。
【００８８】
第１、第２の検出期間カウント回路１０４−１、１０４−２は、カウントスタート信号ＣＳＴ１、ＣＳＴ２がアクティブになると、検出期間の経過をカウントする動作を開始する。具体的には図８に示すように、この検出期間ＴＤＥＣは期間ＴＰＲＥよりも長い期間に設定されており、例えば２２ビットの期間になっている。そして第１、第２の検出期間カウント回路１０４−１、１０４−２は、ＣＳＴ１、ＣＳＴ２がアクティブになると、クロックＣＬＫに同期したカウントアップ動作を開始し、カウント値が例えば２２を超えると、信号ＣＱ１、ＣＱ２をアクティブ（「１」）にする。また第１、第２の検出期間カウント回路１０４−１、１０４−２のカウント動作は、信号ＲＶＤ１、ＲＶＤ２がアクティ（「１」）になるとクリア（リセット）される。
【００８９】
プリアンブルコード検出回路１０５−１、１０５−２は、プリアンブルコードＰＲＥ−の検出を行う。具体的にはプリアンブルコード検出回路１０５−１は、フリップフロップＦＦ２０〜ＦＦ１１のビット値が、図４のＰＲＥ−のコード（００１１１１１００１）に一致した場合に、コード検出信号ＣＤＥＣ１をアクティブ（「１」）にする。一方、プリアンブルコード検出回路１０５−２は、フリップフロップＦＦ３０〜ＦＦ２１のビット値が、ＰＲＥ−のコード（００１１１１１００１）に一致した場合に、コード検出信号ＣＤＥＣ２をアクティブ（「１」）にする。これらのプリアンブルコード検出回路１０５−１、１０５−２は図１０に示すような接続のＮＯＲ回路、ＡＮＤ回路等により構成される（排他的論理和回路により構成してもよい）。
【００９０】
アイドル検出回路１０６−１、１０６−２はデータ転送のアイドル状態を検出する回路である。具体的にはアイドル検出回路１０６−１、１０６−２は、フリップフロップＦＦ２０〜ＦＦ１１、ＦＦ３０〜ＦＦ１１のビット値が（００００００００００）になった場合に、アイドル検出信号ＩＤＥＣ１、ＩＤＥＣ２をアクティブ（「１」）にする。これらのアイドル検出回路１０６−１、１０６−２は図１０に示すように、フリップフロップＦＦ２０〜ＦＦ１１、ＦＦ３０〜ＦＦ２１の出力が入力されるＮＯＲ（ＯＲ）回路により構成できる。
【００９１】
第１、第２のエッジ検出回路１０７−１、１０７−２は、アイドル検出信号ＩＤＥＣ１、ＩＤＥＣ２がアクティブ（「１」）になるとリセットされ、信号ＥＱ１、ＥＱ２を非アクティブ（「０」）にする。一方、コード検出信号ＣＤＥＣ１、ＣＤＥＣ２がアクティブ（「１」）になると、信号ＥＱ１、ＥＱ２をアクティブ（「１」）にする。
【００９２】
第１、第２のエラーカウント回路１１０−１、１１０−２は、検出期間ＴＤＥＣ内においてプリアンブルコードＰＲＥ−が検出されると、そのカウント値をリセットする。即ち信号ＣＱ１、ＣＱ２が「０」の状態で（検出期間ＴＤＥＣ内で）、信号ＥＱ１、ＥＱ２が「１」になると（ＰＲＥ−が検出されると）、そのカウント値をリセットする。また第１、第２のエラーカウント回路１１０−１、１１０−２は、検出期間ＴＤＥＣが経過したのにもかかわらず、プリアンブルコードＰＲＥ−が検出されない場合には、そのカウント値をカウントアップする。即ち信号ＣＱ１、ＣＱ２が「１」の状態で、信号ＥＱ１、ＥＱ２が「０」であると（ＰＲＥ−が検出されないと）、そのカウント値をカウントアップする。そして第１、第２のエラーカウント回路１１０−１、１１０−２は、カウント値が所与の数（例えば２以上）になると、エラー通知信号ＰＲＥＥＲ１、ＰＲＥＥＲ２をアクティブにする。
【００９３】
選択信号生成回路９８は、エラー通知信号ＰＲＥＥＲ１、ＰＲＥＥＲ２が共に非アクティブの場合には、選択信号ＳＥＬを「１」に設定して、データセレクタ９６にデータＳＰＤ１を選択させる。即ち通常の場合には立ち上がりエッジの方を優先し、立ち上がりエッジでサンプリングされたデータＳＰＤ１が出力されるようにする。一方、エラー通知信号ＰＲＥＥＲ１がアクティブになると、選択信号ＳＥＬを「０」に設定して、データセレクタ９６にＳＰＤ１ではなくＳＰＤ２を選択させる。即ち立ち上がりエッジでサンプリングされたデータに所与の回数だけＰＲＥ−が検出されると、サンプリングエッジの切り替えが行われ、立ち下がりエッジでサンプリングされたデータＳＰＤ２がサンプリングデータＳＰＤとして出力されるようになる。
【００９４】
図１０のような構成にすることで、プリアンブルエラーの通知に基づくサンプリングクロックのエッジ切り替えを実現できる。なおＰＲＥ＋を無視してＰＲＥ−だけを検出する図８の手法を採用する一方で、サンプリングクロックのエッジ切り替えを行わない場合には、例えば図９、図１０の第２のサンプリング回路９２−２、データセレクタ９６、選択信号生成回路９８、第２のプリアンブルエラー検出回路１０２−２等を省略する構成とすればよい。
【００９５】
６．電子機器
図１１に本実施形態の電子機器の構成例を示す。この電子機器は本実施形態で説明したインターフェース回路５０２、５１２、５１４、５２２、５３２を含む。またベースバンドエンジン５００（広義には通信デバイス）、アプリケーションエンジン５１０（広義にはプロセッサ）、カメラ５４０（広義には撮像デバイス）、或いはＬＣＤ５５０（広義には表示デバイス）を含む。なおこれらの一部を省略する構成としてもよい。図１１の構成によればカメラ機能とＬＣＤ（Liquid Crystal Display）の表示機能を有する携帯電話を実現できる。但し本実施形態の電子機器は携帯電話には限定されず、デジタルカメラ、ＰＤＡ、電子手帳、電子辞書、或いは携帯型情報端末など種々の電子機器に適用できる。
【００９６】
図１１に示すようにベースバンドエンジン５００に設けられたホスト側インターフェース回路５０２と、アプリケーションエンジン５１０（グラフィックエンジン）に設けられたターゲット側インターフェース回路５１２との間で、本実施形態で説明したデータ転送やクロック転送が行われる。またアプリケーションエンジン５１０に設けられたホスト側インターフェース回路５１４と、カメラインターフェース５２０やＬＣＤインターフェース５３０に設けられたターゲット側インターフェース回路５２２、５３２との間でも、本実施形態で説明したデータ転送やクロック転送が行われる。
【００９７】
図１１の構成によれば、パラレルバスを介してデータ転送を行っていた従来の電子機器に比べて、ＥＭＩノイズを低減したり、実装の容易化を図れる。またインターフェース回路の小規模化、省電力化を実現することで、電子機器の更なる省電力化を図れる。
【００９８】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（一方のエッジ、他方のエッジ、ビット幅を拡張する符号化方式、デバイス、クロック、データ転送、通信デバイス、プロセッサ、撮像デバイス、表示デバイス等）として引用された用語（立ち上がりエッジ、立ち下がりエッジ、８Ｂ／１０Ｂ符号化方式、ホストデバイス・ターゲットデバイス、ストローブ、ＩＮ転送・ＯＵＴ転送、ベースバンドエンジン、アプリケーションエンジン、カメラ、ＬＣＤ等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【００９９】
また本実施形態のインターフェース回路の構成も図１〜図３等で説明した構成に限定されず、サンプリング回路やプリアンブルエラー検出回路の構成も図９、図１０等で説明した構成に限定されない。
【図面の簡単な説明】
【０１００】
【図１】差動信号線を用いる本実施形態のデータ転送制御手法の説明図。
【図２】ホスト側のインターフェース回路の構成例。
【図３】ターゲット側のインターフェース回路の構成例。
【図４】８Ｂ／１０Ｂ符号化方式の特殊コードの説明図。
【図５】図５（Ａ）（Ｂ）はデータとクロックの関係の説明図。
【図６】図６（Ａ）（Ｂ）はサンプリング回路、プリアンブルエラー検出回路の説明図。
【図７】図７（Ａ）（Ｂ）はサンプリング回路、プリアンブルエラー検出回路の説明図。
【図８】ＰＲＥ＋を無視してＰＲＥ−だけを検出する手法の説明図。
【図９】サンプリング回路、プリアンブルエラー検出回路の詳細例。
【図１０】サンプリング回路、プリアンブルエラー検出回路の詳細例。
【図１１】電子機器の構成例。
【符号の説明】
【０１０１】
１０  ホストデバイス、１２  ＰＬＬ回路、２０  インターフェース回路、
２２、２４  ＯＵＴ転送用、クロック転送用のトランスミッタ回路、
２６、２８  ＩＮ転送用、ストローブ転送用のレシーバ回路、
３０  ターゲットデバイス、４０  インターフェース回路、
４２、４４  ＯＵＴ転送用、クロック転送用のレシーバ回路、
４６、４８  ＩＮ転送用、ストローブ転送用のトランスミッタ回路、
５０、７０  トランザクション層回路、５２、７２  パケット生成＆転送アボート回路、
５４、７４  ８Ｂ／１０Ｂエンコード回路、５５、７５  コード付加回路、
５６、７６  パラレル／シリアル変換回路、６０、８０  シリアル／パラレル変換回路、
６２、８２  ８Ｂ／１０Ｂデコード回路、６３、８３  コード・アイドル検出回路、
６５、８５  ＦＩＦＯ、６６、８６  Ｉ／Ｆ信号生成回路、
６８、８８  パケット解析＆ヘッダ・データ分離回路、
９０、９１  サンプリング回路、９２−１、９２−２  第１、第２のサンプリング回路、９６  データセレクタ、９８  選択信号生成回路、１００、１０１  プリアンブルエラー検出回路、１０２−１、１０２−２  第１、第２のプリアンブルエラー検出回路、１０３−１、１０３−２  第１、第２の先頭ビット検出回路、１０４−１、１０４−２  第１、第２の検出期間カウント回路、１０５−１、１０５−２  第１、第２のプリアンブルコード検出回路、１０６−１、１０６−２  第１、第２のアイドル検出回路、１０７−１、１０７−２  第１、第２のエッジ検出回路、１１０−１、１１０−２  第１、第２のエラーカウント回路、
【図１】
2005142643.tif 000003
【図２】
2005142643.tif 000004
【図３】
2005142643.tif 000005
【図４】
2005142643.tif 000006
【図５】
2005142643.tif 000007
【図６】
2005142643.tif 000008
【図７】
2005142643.tif 000009
【図８】
2005142643.tif 000010
【図９】
2005142643.tif 000011
【図１０】
2005142643.tif 000012
【図１１】
2005142643.tif 000013