(57)【要約】【課題】設計時のタイミング調整を容易とする受信回路及びエラー検出方法を提供すること【解決手段】本発明にかかる受信回路は、位相の異なる複数のクロックを用いて、矩形波としてデータが遷移する受信シリアルデータビット列をサンプリングして、前記サンプリングされた受信シリアルデータビットを用いて受信データビット列を生成するＤＬ回路部１と、前記サンプリングされた前記受信シリアルデータビットのうち、所定期間内に位相の異なるクロックを用いてサンプリングされた前記受信シリアルデータビットの値が一致するか否かを比較した結果に基づいて前記受信データビット列のエラー区間を検出するＰＤ回路部２と、を備えるものである。【選択図】図１
2012222497.tif 000002
【特許請求の範囲】
【請求項１】
位相の異なる複数のクロックを用いて、矩形波としてデータが遷移する受信シリアルデータビット列をサンプリングして、前記サンプリングされた受信シリアルデータビットを用いて受信データビット列を生成する受信データビット列生成部と、
前記サンプリングされた前記受信シリアルデータビットのうち、所定期間内に位相の異なるクロックを用いてサンプリングされた前記受信シリアルデータビットの値が一致するか否かを比較した結果に基づいて前記受信データビット列のエラー区間を検出するエラー検出部と、を備える受信回路。
【請求項２】
前記複数のクロックは、
第１のクロックと、前記第１のクロックと第１の位相差を有する第２のクロックと、前記第１のクロックと前記第１の位相差よりも大きな位相差を有する第３のクロックとを含み、
前記受信データビット列生成部は、
前記第１のクロック及び前記第３のクロックを用いてサンプリングされた前記受信シリアルデータビットを用いて受信データビット列を生成する、請求項１記載の受信回路。
【請求項３】
前記エラー検出部は、
前記所定期間内において、前記第１のクロックを用いてサンプリングされた第１の受信シリアルデータビットと、前記第２のクロックを用いてサンプリングされた第２の受信シリアルデータビットとが異なり、前記第２の受信シリアルデータビットと前記第３のクロックを用いてサンプリングされた第３の受信シリアルデータビットとが異なる場合に、前記受信データビット列において、前記第１及び第３の受信シリアルデータビットを含む区間をエラー区間として検出する、請求項２記載の受信回路。
【請求項４】
前記所定期間内において、前記第１の受信シリアルデータビットと前記第２の受信シリアルデータビットとが異なり、前記第２の受信シリアルデータビットと前記第３の受信シリアルデータビットとが一致する場合、前記第１乃至第３のクロックを時間軸とは反対方向へシフトするように位相を調整し、
前記所定期間内において、前記第１の受信シリアルデータビットと前記第２の受信シリアルデータビットとが一致し、前記第２の受信シリアルデータビットと前記第３の受信シリアルデータビットとが異なる場合、前記第１乃至第３のクロックを時間方向へシフトするように位相を調整する位相調整部をさらに備える請求項３記載の受信回路。
【請求項５】
前記エラー検出部においてエラー区間が検出された場合に、前記第１の受信シリアルデータビットを反転させた前半ビット反転データを含む第１の受信データビット列と、前記第３の受信シリアルデータを反転させた後半ビット反転データを含む第２の受信データビット列とを生成するビット反転部と、
前記第１及び第２の受信ビットデータ列それぞれの正常性を判定する正常性判定部と
前記正常性判定部における判定結果及び前記エラー検出部におけるエラー検出結果に応じて前記第１又は第２の受信データビット列を選択するセレクタと、をさらに備える請求項３又は４記載の受信回路。
【請求項６】
前記正常性判定部は、
前記第１の受信ビットデータ列の正常性を判定する第１の正常性判定部と、
前記第２の受信ビットデータ列の正常性を判定する第２の正常性判定部と、
前記エラー検出部において、１回目に検出されたエラー区間においては前記第１の受信シリアルデータビットを反転させ、２回目に検出されたエラー区間においては前記第３の受信シリアルデータビットを反転させたデータを含む第３の受信データビット列の正常性を判定する第３の正常性判定部と、
前記エラー検出部において、１回目に検出されたエラー区間においては前記第３の受信シリアルデータビットを反転させ、２回目に検出されたエラー区間においては前記第１のシリアルデータビットを反転させたデータを含む第４の受信データビット列の正常性を判定する第４の正常性判定部と、を有し、
前記セレクタは、
前記第１乃至第４の正常性判定部における判定結果及び前記エラー検出部におけるエラー検出結果に応じて前記第１乃至第４の受信データビット列のいずれか１つを選択する、請求項５記載の受信回路。
【請求項７】
前記後半ビット反転データを格納する後半ビット格納バッファと、
前記１回目にエラーが検出された場合に前記前半ビット反転データを格納する第１の前半ビット格納バッファと、
前記２回目にエラーが検出された場合に前記前半ビット反転データを格納する第２の前半ビット格納バッファと、をさらに備え、
前記セレクタは、
前記第１の受信ビットデータ列が正常と判定され、前記第２乃至第４の受信ビットデータ列が異常と判定された場合、前記第１回目にエラーが検出された場合、前記第１の前半ビット格納バッファに格納されている前半ビット反転データを選択し、前記第２回目にエラーが検出された場合、前記第２の前半ビット格納バッファに格納されている前半ビット反転データを選択し、
前記第２の受信ビットデータ列が正常と判定され、前記第１、第３及び第４の受信ビットデータ列が異常と判定された場合、前記第１回目及び第２回目にエラーが検出された場合ともに前記後半ビット格納バッファに格納されている後半ビット反転データを選択し、
前記第３の受信ビットデータ列が正常と判定され、前記第１、第２及び第４の受信ビットデータ列が異常と判定された場合、前記１回目にエラーが検出された場合、前記第１の前半ビット格納バッファに格納されている前半ビット反転データを選択し、前記第２回目にエラーが検出された場合、前記後半ビット格納バッファに格納されている後半ビット反転データを選択し、
前記第４の受信ビットデータ列が正常と判定され、前記第１乃至第３の受信ビットデータ列が異常と判定された場合、前記１回目にエラーが検出された場合、前記後半ビット格納バッファに格納されている後半ビット反転データを選択し、前記２回目にエラーが検出された場合、前記第２の前半ビット格納バッファに格納されている前半ビット反転データを選択する、請求項６記載の受信回路。
【請求項８】
前記エラーが検出された区間の前記受信データビットを含むデータを格納している前記後半ビット格納バッファの格納場所を示す識別子を管理するエラーバッファをさらに備える、請求項７記載の受信回路。
【請求項９】
前記正常性判定部は、ＣＲＣを用いて前記第１及び第２の受信ビットデータ列それぞれの正常性を判定する、請求項５乃至８のいずれか１項に記載の受信回路。
【請求項１０】
位相の異なる複数のクロックを用いて、矩形波としてデータが遷移する受信シリアルデータビット列をサンプリングして、前記サンプリングされた受信シリアルデータビットを用いて受信データビット列を生成し、
前記サンプリングされた前記受信シリアルデータビットのうち、所定期間内に位相の異なるクロックを用いてサンプリングされた前記受信シリアルデータビットの値が一致するか否かを比較した結果に基づいて前記受信データビット列のエラー区間を検出するエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は位相の異なるクロックを用いて受信データをサンプリングする受信回路及びエラー検出方法に関する。
【背景技術】
【０００２】
現在、装置間又は回路間等の高速データ転送においては、高データレートを容易に実現することができるシリアル転送が主に用いられている。高速シリアル転送には、クロックをデータ中に埋め込んだエンベデッドクロック方式が用いられている。受信側装置又は回路（以下、受信側装置等と称する）は、ＣＤＲ（Clock Data Recovery）により、シリアルデータからエンベデッドクロックを検出する。受信側装置等は、受信データと受信データをサンプリングするクロックの位相を同期し、データを受け取ることができる。しかし、シリアルデータや、受信側ＰＬＬにジッタが加わると、同期が外れ、誤ったデータを受け取ってしまう場合がある。
【０００３】
特許文献１には、受信データを早期に検出することを目的としたデータ受信装置の構成が開示されている。具体的には、データ受信装置は、シリアル通信受信動作部において、ＣＤＲ回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べる機能が具備している。これにより、受け取ったデータにエラーが発生するか否かをリアルタイムに検出することができる。
【０００４】
図９を用いて、特許文献１に開示されているデータ受信装置の構成について説明する。ＣＤＲ回路１０１はシリアルデータ（ＳＤ）に対して、そのデータを正しくサンプリングするためのサンプリング・クロック（ＳＣＬＫ）を生成している回路である。すなわち、ＣＤＲ回路１０１は、シリアルデータ通信において、データの受信部に、データを正しく受信するために、シリアルデータに同期した一定周期のサンプリング用クロックを生成する機能を有する。シリアルデータ通信において、送信側からデータと取りこみ用クロック（ＣＬＫ）とを送信するのではなく、データのみを送信する伝送系があり、その系においては受信側でそのデータを取りこむ。そのため、ＣＤＲ回路１０１が必要となる。このＣＤＲ回路１０１は、例えば、ＰＬＬ（ｐｈａｓｅ  ｌｏｃｋｅｄ  ｌｏｏｐ）回路を用いて構成される。ＰＬＬ回路において、シリアルデータの位相に対してＶＣＯ（電圧制御発振器）の発振クロックの位相が一致するようにＶＣＯ制御し、ＰＬＬは、ＶＣＯの発振クロックを再生クロックとして導出する。
【０００５】
また、データの高速伝送に対応するようにオーバーサンプリング型クロックリカバリ回路も提案されている。オーバーサンプリング型クロックリカバリ回路は、上記ＣＤＲ回路１０１からのサンプリング・クロック（ＳＣＬＫ）のエラーのうち、サンプリングクロックがデータを正確に取り込むタイミングを満たしているか、データに対して正しい数のサンプリングクロックを出力しているかを調べてエラーを検出する。
【０００６】
１１４は、サンプリングクロックエラー検出回路であり、１０２は、データに対して正しいタイミング（セットアップタイムとホールドタイムを満たしている）でクロックを出力しているかをチェックするサンプルＣＫエラー検出回路である。そのサンプルＣＫエラー検出回路１０２には、シリアルデータ（ＳＤ）、ＣＤＲ回路１０１から導出されるサンプリング・クロック（ＳＣＬＫ）が入力されて、エラー信号であるＳＣＬＫＥＲＲが出力される。
【０００７】
１０３はデータデューティ（ＤＵＴＹ）調整部、１１２はデータハイ（ＨＩＧＨ）期間エラー検出回路、１１３はデータロー（ＬＯＷ）期間エラー検出回路であり、データに対して正しい数のサンプリングクロックを出力しているかを調べるブロックである。データＤＵＴＹ調整部１０３は、シリアルデータのデューティ（ＤＵＴＹ）を調節してＳＤ Ｈ（ＳＤのＨＩＧＨ期間を少し長くした信号）とＳＤＬ（ＳＤのＬＯＷ期間を少し長くした信号）を出力し、ＳＤＨをデータＨＩＧＨ期間エラー検出回路１１２に、ＳＤＬをデータＬＯＷ期間エラー検出回路１１３へ与える。
【０００８】
データＨＩＧＨ期間エラー検出回路１１２は、データのＨＩＧＨ期間のクロックエラーを調べ、データＬＯＷ期間エラー検出回路１１３はデータＬＯＷ期間のクロックエラーを調べるブロックである。データＨＩＧＨ期間エラー検出回路１１２は、ＨＩＧＨカウンター制御回路１０４、ＨＩＧＨサンプル数カウント回路１０５、ＨＩＧＨデータ長カウント回路１０６、ＨＩＧＨサンプル数エラー検出回路１０７で構成されており、データＬＯＷ期間エラー検出回路１１３は、ＬＯＷカウンター制御回路１０８、ＬＯＷサンプル数カウント回路１０９、ＨＩＧＨデータカウント回路１１０、ＬＯＷサンプル数エラー検出回路１１１で構成されている。
【０００９】
ＨＩＧＨカウンター制御回路１０４は、データＤＵＴＹ調整部１０３から出力されるＳＤＨと、シリアル通信の通信レートである周波数のシステムクロックＳＹＳＣＬＫが入力されており、ＨＩＧＨデータ長カウント回路１０６にＤＨＣＮＴＣＫが出力される。ＨＩＧＨデータ長カウント回路１０６はＨＩＧＨカウンター制御回路１０４から与えられるＤＨＣＮＴクロックでカウント動作を行うカウンターであり、カウント結果ＨＤＣＮＴはＨＩＧＨサンプル数エラー検出回路１０７に出力される。
【００１０】
ＨＩＧＨサンプル数カウント回路１０５は、シリアルデータＳＤとサンプリングクロックＳＣＬＫが入力され、ＣＤＲ回路１０１で生成したサンプリングクロックＳＣＬＫの数を数えるカウンターとなっている。カウントした結果ＨＳＣＮＴはＨＩＧＨサンプル数エラー検出回路１０７に出力される。ＨＩＧＨサンプル数エラー検出回路１０７には、ＨＩＧＨサンプル数カウント回路１０５とＨＩＧＨデータ長カウント回路１０６のそれぞれの出力であるＨＳＣＮＴとＨＤＣＮＴ信号が入力され、それを比較した結果が異なればＨＳＥＲＲ信号を出力する機能を持っている。
【００１１】
また、データＬＯＷ期間エラー検出回路１１３は、データＨＩＧＨ期間エラー検出回路１１２と同様に構成されており、ＬＯＷカウンター制御回路１０８、ＬＯＷサンプル数カウント回路１０９、ＬＯＷデータ長カウント回路１１０、ＬＯＷサンプル数エラー検出回路１１１で構成されている。ＬＯＷカウンター制御回路１０８は、データＤＵＴＹ調整部１０３から出力されるＳＤＬと、シリアル通信の通信レートである周波数のシステムクロックＳＹＳＣＬＫが入力されており、ＬＯＷデータ長カウント回路１１０にＤＬＣＮＴＣＫが出力される。ＬＯＷデータ長カウント回路１１０はＬＯＷカウンター制御回路１０８から与えられるＤＬＣＮＴクロックでカウント動作を行うカウンターであり、カウント結果ＬＤＣＮＴはＬＯＷサンプル数エラー検出回路１１１に出力される。
【００１２】
ＬＯＷサンプル数カウント回路１０９は、シリアルデータＳＤとサンプリングクロックＳＣＬＫが入力され、ＣＤＲ回路１０１で生成したサンプリングクロックＳＣＬＫの数を数えるカウンターとなっている。カウントした結果ＬＳＣＮＴは、ＬＯＷサンプル数エラー検出回路１１１に出力される。ＬＯＷサンプル数エラー検出回路１１１には、ＬＯＷサンプル数カウント回路１０５とＬＯＷデータ長カウント回路１０６のそれぞれの出力であるＬＳＣＮＴとＬＤＣＮＴ信号が入力され、それを比較した結果が異なればＬＳＥＲＲ信号を出力する機能を持っている。
【００１３】
また、特許文献２には、真のシンボル値を示す点を示すナイキスト点のデータバッファの中央位置からのずれを検出し、補正することにより、確実なシンボル検出を可能とするシンボル検出装置が開示されている。
【００１４】
また、特許文献３には、入力データのデューティが１００％から大きくずれている場合であっても、正常な識別動作が行われるようにしたクロックデータ再生方法が開示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００４−２４２２４３号公報
【特許文献２】特開２００７−０３６９７６号公報
【特許文献３】特開２００８−２２７７８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかし、特許文献１に開示されているデータ受信装置は、設計時のタイミング設計が困難であるという問題がある。具体的には、特許文献１に開示されているデータ受信装置は、検出回路を設けることにより、早期にエラー検出を行うものである。しかし、データサンプリング回路とは別に、検出回路を設けているため、仮に、データサンプリング回路と検出回路がそれぞれデータをサンプリングするタイミングがずれてしまうと、データサンプリング回路は正しくデータをサンプリングできているにも関わらず、検出回路がエラーを検出する恐れがある。また、データサンプリング回路は誤ったデータをサンプリングしているにも関わらず、検出回路がエラーを検出しなかったりする恐れもある。このため、データサンプリング回路と検出回路が同じタイミングでデータをサンプリングするように、設計時にタイミング調整が必要である。しかし、データサンプリング回路と検出回路は高速で動作する回路であるため、設計時のタイミング調整が困難となる。また、特許文献２及び３にも、上述した問題を解決する方法等については開示されていない。
【課題を解決するための手段】
【００１７】
本発明の第１の態様にかかる受信回路は、複数のクロックを用いて受信データをサンプリングし、サンプリングされた複数の受信データビット列について、所定期間内にそのデータビットの値が一致するか否かを比較し、受信データのエラーを検出する。
【００１８】
このような受信回路を設けることにより、複数のクロック毎にサンプリングデータを生成することができる。そのため、それぞれのサンプリングデータの値を比較することにより、複数のサンプリングデータを用いて生成された受信データビット列のエラー区間を検出することができる。
【００１９】
本発明の第２の態様にかかるエラー検出方法は、複数のクロックを用いて、受信データをサンプリングし、サンプリングされた複数の受信データビット列について、所定期間内にそのデータビットの値が一致するか否かを比較し、受信データのエラーを検出する。
【００２０】
このようなエラー検出方法を用いることにより、複数のクロック毎にサンプリングデータを生成することができる。そのため、それぞれのサンプリングデータの値を比較することにより、複数のサンプリングデータを用いて生成された受信データビット列のエラー区間を検出することができる。
【発明の効果】
【００２１】
本発明により、設計時のタイミング調整を容易とする受信回路及びエラー検出方法を提供することができる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態１にかかるＣＤＲ回路の構成図である。
【図２】実施の形態１にかかる多相クロックを用いてサンプリングする場合のタイミングチャートである。
【図３】実施の形態１にかかる多相クロックを用いてサンプリングする場合のタイミングチャートである。
【図４】実施の形態１にかかる訂正回路の構成図である。
【図５】実施の形態１にかかるビット反転回路部における反転動作のタイミングチャートである。
【図６】実施の形態１にかかるビット反転回路部の構成図である。
【図７】実施の形態２にかかる訂正回路の構成図である。
【図８】実施の形態３にかかる訂正回路の構成図である。
【図９】特許文献１にかかるデータ受信装置の構成図である。
【発明を実施するための形態】
【００２３】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて本発明の実施の形態１にかかるＣＤＲ回路部７の構成例と、ＣＤＲ回路部７と、ＰＬＬ回路部５及び受信シリアルデータビット入力ポート１９との接続例とについて説明する。なお、ＣＤＲ回路部７、ＰＬＬ回路部５及び受信シリアルデータビット入力ポート１９は、シリアルデータを受信する受信回路に含まれる。
【００２４】
ＣＤＲ回路部７は、ＤＬ（ダイレクトラッチ）回路部１と、ＰＤ（フェーズディテクタ）回路部２と、ＣＤＲコントローラ回路部３と、ＰＩ（フェーズインタポレタ）回路部４とを備えている。
【００２５】
ＤＬ回路部１は、受信シリアル入力ポート１９から入力された受信シリアルデータビット列を、位相が調整された多相クロック（以下、多相クロック（位相調整後）と称する）を用いてサンプリングし、サンプリングデータ、および受信データビット列を生成する。さらに、ＤＬ回路部１は、多相クロックを用いて、サンプリングクロックを生成する。受信シリアルデータビット列は、矩形波としてデータが遷移するビット列である。つまり、受信シリアルデータビット列は、「１０１０」のようにデータが交互に変化するビット列であり、「１１１０」のように、連続した同一のデータを有さないビット列である。
【００２６】
多相クロックは、位相の異なる複数のクロックから構成される。例えば、多相クロックは、基準クロック（ＣＬＫ０）と、ＣＬＫ０と９０度位相が異なるＣＬＫ９０と、ＣＬＫ０と１８０度位相が異なるＣＬＫ１８０と、ＣＬＫ０と２７０度位相が異なるＣＬＫ２７０とから構成される。ＣＬＫ０を用いてサンプリングされたデータをＣＬＫ０サンプリングデータとし、ＣＬＫ９０を用いてサンプリングされたデータをＣＬＫ９０サンプリングデータとし、ＣＬＫ１８０を用いてサンプリングされたデータをＣＬＫ１８０サンプリングデータとし、ＣＬＫ２７０を用いてサンプリングされたデータをＣＬＫ２７０とする。
【００２７】
受信データビット列は、上述したサンプリングデータのうち、いくつかのサンプリングデータを組み合わせて生成される。たとえば、受信データビット列は、ＣＬＫ０サンプリングデータと、ＣＬＫ１８０サンプリングデータを組み合わせて生成されてもよい。
【００２８】
サンプリングクロックは、受信データビット列を生成するために用いられたクロックから構成される。例えば、サンプリングクロックは、ＣＬＫ０とＣＬＫ１８０とから構成される。
【００２９】
ＤＬ回路部１は、生成した受信データビット列及びサンプリングクロックをビット反転回路部６へ出力し、サンプリングデータをＰＤ回路部２へ出力する。
【００３０】
ＰＤ回路部２は、ＤＬ回路部１から出力されたサンプリングデータの位相差を検出し、ＣＤＲコントローラ回路部３へ位相差検出信号を出力する。さらに、位相の異なるクロックを用いて生成されたサンプルデータの値を比較して、受信データビット列におけるエラー区間を検出する。検出されたエラー区間は、ＣＤＲエラー信号としてリタイミング回路部１２へ出力される。リタイミング回路部１２及びエラー区間の検出については、後に詳細に説明する。
【００３１】
ＣＤＲコントローラ回路部３は、ＰＤ回路部２から出力された位相差検出信号に基づいて、多相クロック（オリジナル）の位相を調整するために、ＰＩ回路部４へＰＩ制御信号を出力する。ＰＩ回路部４は、ＣＤＲコントローラ回路部３からのＰＩ制御信号に基づき、多相クロック（オリジナル）の位相を調整した多相クロック（位相調整後）を生成する。多相クロック（オリジナル）は、ＰＬＬ回路部５から出力される多相クロックである。ＰＬＬ回路部５は、ＶＣＯ（電圧制御発振器）により構成され、位相の異なる複数のクロックをＰＩ回路部４へ出力する。
【００３２】
続いて、図２を用いて、受信シリアルデータビット１ビット当たり、２つのサンプリングクロックの立ち上がりタイミングにおいてサンプリングする場合のタイミングチャートを説明する。図２においては、ＣＬＫ０とＣＬＫ１８０との立ち上がりタイミングにサンプリングしたデータを受信データビットとして用いる例が示されている。ＣＬＫ０サンプリングデータは、ＣＬＫ０の立ち上がりタイミングにおいてデータＡ１及びデータＡ３をサンプリングする。また、ＣＬＫ１８０サンプリングデータは、ＣＬＫ１８０の立ち上がりタイミングにおいてデータＡ２及びＡ４をサンプリングする。受信データビット列は、ＣＬＫ０サンプリングデータと、ＣＬＫ１８０サンプリングデータとが組み合わされ、データＡ１〜Ａ４が含まれている。
【００３３】
ここで、ＰＤ回路部２及びＣＤＲコントローラ回路部３における位相差検出処理について説明する。図２の例においては、ＣＬＫ０サンプリングデータは、データＡ１及びＡ３を含み、ＣＬＫ９０サンプリングデータは、データＡ２及びＡ４を含んでいる。このように、ＣＬＫ０とＣＬＫ９０とを用いてサンプリングしたデータはそれぞれ異なる。ＰＤ回路部２は、ＣＬＫ０サンプリングデータとＣＬＫ９０サンプリングデータとが異なることを示す位相差検出信号をＣＤＲコントローラ回路部３へ出力する。
【００３４】
ＣＤＲコントローラ回路部３は、ＣＬＫ０サンプリングデータとＣＬＫ９０サンプリングデータとが異なることを示す位相差検出信号を受け取った場合、ＣＬＫ０、９０、１８０及び２７０の位相を時間軸と反対方向へシフトさせるように、ＰＩ制御信号をＰＩ回路部４へ出力する。また、ＣＤＲコントローラ回路部３は、ＣＬＫ９０サンプリングデータとＣＬＫ１８０サンプリングデータとが異なることを示す位相差検出信号を受け取った場合、ＣＬＫ０、９０、１８０及び２７０の位相を時間軸方向へシフトさせるように、ＰＩ制御信号をＰＩ回路部４へ出力する。これにより、受信シリアルデータをサンプリングするＣＬＫ０とＣＬＫ１８０とは、データの中心をサンプリングする状態となり、安定して受信シリアルデータビットをサンプリングすることができる。
【００３５】
続いて、図３のタイミングチャートを用いて、エラー検出処理について説明する。図３は、図２と同様に、ＣＬＫ０とＣＬＫ１８０との立ち上がりタイミングにサンプリングしたデータを受信データビットとして用いる例が示されている。図３に示されているように、ＣＬＫ０サンプリングデータは、データＡ１及びデータＡ３をサンプリングし、ＣＬＫ１８０サンプリングデータは、データＡ３及びデータＡ４をサンプリングしている。そのため、これらのサンプリングデータを用いて、受信データビット列を生成する場合、データＡ２がサンプリングされず、誤った受信データビット列が生成される。
【００３６】
ＣＬＫ０がｔ４０のタイミングにおいてサンプリングした受信シリアルデータビットと、ＣＬＫ９０がｔ４１のタイミングにおいてサンプリングした受信シリアルデータビットの値が異なり、かつ、ＣＬＫ９０がｔ４１のタイミングにおいて受信した受信シリアルデータビットと、ＣＬＫ１８０がｔ４２のタイミングでサンプリングした受信シリアルデータビットの値とが異なる場合、ＰＤ回路部２は、受信データビット列におけるデータＡ１及びＡ３の連続した２サイクル期間においてエラーが発生したと判定する。そのため、ＰＤ回路部２は、受信データビット列におけるデータＡ１及びＡ３の連続した２サイクル期間に対し、ＣＤＲエラー信号をアクティブ（Ｈｉｇｈ）に設定し、出力する。ＣＤＲエラー信号によって、受信データビットの２ビットのうち、どちらかの受信データビットが誤っていることは特定されるが、どちらの受信データビットが誤っているかは特定されない。
【００３７】
タイミングｔ４０は、ＣＬＫ０の立ち上がりタイミングであり、タイミングｔ４２は、ＣＬＫ０の立ち下がりタイミング及びＣＬＫ１８０の立ち上がりタイミングである。タイミングｔ４１は、タイミングｔ４０とｔ４２との間であって、ＣＬＫ９０の立ち上がりタイミングである。つまり、ＣＬＫ０の立ち上がりタイミングから、次の立ち上がりタイミングまでを１クロックとすると、ｔ４０とｔ４２とは０．５クロックの期間を有する。
【００３８】
続いて、図４を用いて本発明の実施の形態１にかかる訂正回路の構成例について説明する。訂正回路５０は、シリアルデータを受信する受信回路に含まれる。訂正回路５０は、ビット反転回路部６と、１０ｂ８ｂ変換回路部８と、ＣＲＣ回路部９と、１０ｂ８ｂ変換回路部１０と、ＣＲＣ回路部１１と、リタイミング回路部１２と、データバッファ１３と、代替データバッファ１４と、ＣＤＲエラーバッファ１５と、ＡＮＤ回路１６と、ＡＮＤ回路１７と、セレクタ１８と、ＣＲＣエラー出力２１と、データ出力２２とを備えている。
【００３９】
ビット反転回路部６は、ＣＤＲエラー信号がインアクティブ（Ｌｏｗ）の時は、受信データビットをそのまま前半ビット反転データと後半ビット反転データとして１０ｂ８ｂ変換回路部８及び１０へ出力する。ビット反転回路部６は、前半ビット反転データを１０ｂ８ｂ変換回路部８へ出力し、後半ビット反転データを１０ｂ８ｂ変換回路部１０へ出力する。ビット反転回路部６は、ＰＤ回路部２からＣＤＲエラー信号を受け取る。
【００４０】
ビット反転回路部６は、ＣＤＲエラー信号がアクティブ（Ｈｉｇｈ）、かつサンプリングクロックがＨｉｇｈの場合、該当する受信データビットを反転したデータを前半ビット反転データとして１０ｂ８ｂ変換回路部８へ出力する。また、ビット反転回路部６は、ＣＤＲエラー信号がアクティブ（Ｈｉｇｈ）、かつサンプリングクロックがＨｉｇｈの場合、該当する受信データビットをそのまま後半ビット反転データとして１０ｂ８ｂ変換回路部１０へ出力する。
【００４１】
ビット反転回路部６は、ＣＤＲエラー信号がアクティブ（Ｈｉｇｈ）、かつサンプリングクロックがＬｏｗの場合、該当する受信データビットを反転したデータを後半ビット反転データとして１０ｂ８ｂ変換回路部８及び１０へ出力する。また、ビット反転回路部６は、ＣＤＲエラー信号がアクティブ（Ｈｉｇｈ）、かつサンプリングクロックがＬｏｗの場合、該当する受信データビットをそのまま前半ビット反転データとして１０ｂ８ｂ変換回路部８へ出力する。
【００４２】
ここで、図５を用いてビット反転回路部６における反転動作のタイミングチャートについて説明する。ビット反転回路部６は、ＣＤＲエラー信号がインアクティブに設定されているｔ２０からｔ２２までの期間及びｔ２４からｔ２５までの期間においては、受信データビットをそのまま前半ビット反転データと後半ビット反転データとして出力する。ビット反転回路部６は、ＣＤＲエラー信号がアクティブに設定されかつサンプリングクロックがＨｉｇｈに設定されているｔ２２からｔ２３までの期間においては、受信データビットを反転して、前半ビット反転データを出力する。ビット反転回路部６は、ＣＤＲエラー信号がアクティブに設定されかつサンプリングクロックがＬｏｗに設定されているｔ２３からｔ２４までの期間においては、受信データビットを反転して後半ビット反転データを出力する。
【００４３】
次に、図６を用いてビット反転回路部６の回路構成例について説明する。ビット反転回路部６は、ＸＯＲ回路４０及び４１と、セレクタ４２及び４３とを備えている。ＤＬ回路部１から出力される受信データビットは、ＸＯＲ回路４０及び４１と、セレクタ４２及び４３へ入力される。また、ＰＤ回路部２から出力されるＣＤＲエラーは、ＸＯＲ回路４０及び４１へ入力される。ＸＯＲ回路４０及びＸＯＲ回路４１は、受信データビット及びＣＤＲエラーの値に基づいて、ＸＯＲ演算を実施し、演算結果をセレクタ４２及び４３へ出力する。また、セレクタ４２及び４３は、受信データビット及びＤＬ回路部１からサンプリングクロックを受け取る。
【００４４】
セレクタ４２は、Ｌｏｗに設定されたサンプリングクロックを受け取った場合、ＸＯＲ回路４０から出力された演算結果を後半ビット反転データ出力ポートへ出力し、Ｈｉｇｈに設定されたサンプリングクロックを受け取った場合、受け取った受信データビットを後半ビット反転データ出力ポートへ出力する。セレクタ４３は、Ｌｏｗに設定されたサンプリングクロックを受け取った場合、受け取った受信データビットを前半ビット反転データ出力ポートへ出力し、Ｈｉｇｈに設定されたサンプリングクロックを受け取った場合、ＸＯＲ回路４１から出力された演算結果を前半ビット反転データ出力ポートへ出力する。
【００４５】
このようにして、ビット反転回路部６は、ＣＤＲエラー信号がＨｉｇｈに該当する受信データビットの２ビットのうち、一方を反転させたデータを前半ビット反転データ及び後半ビット反転データとして出力する。
【００４６】
図４に戻り、１０ｂ８ｂ変換回路部８、１０は、エンベデッドクロックが埋め込まれた１０ビット受信データビットから、元の８ビットデータを復元する回路である。１０ｂ８ｂ変換回路部８及び１０の回路構成は同一である。１０ｂ８ｂ変換回路部８、１０には、ビット反転回路部６により補正された前半ビット反転データ又は後半ビット反転データがそれぞれ入力される。
【００４７】
データバッファ１３は、１０ｂ８ｂ変換回路部１０により復元された８ビットデータを格納するバッファである。データバッファ１３は、５１２〜２０４８バイト毎にＣＲＣを確認した後にデータ出力２２からデータを出力できるよう、十分な深さ、つまり十分な容量を有している。
【００４８】
リタイミング回路部１２は、ＣＤＲエラーを有する１０ｂ８ｂ変換後の８ビットデータがデータバッファ１３及び代替データバッファ１４に格納されるタイミングでアクティブとなるＣＤＲエラーフラグ信号を生成する。
【００４９】
代替データバッファ１４は、ＣＤＲエラーフラグ信号がアクティブの時に、１０ｂ８ｂ変換回路８により復元された８ビットデータを格納し、ＣＤＲエラーフラグ信号がインアクティブの時は、代替データバッファ１４に格納されている値を維持するバッファである。代替データバッファ１４は、８ビットデータ１つを格納することができる。
【００５０】
ＣＲＣ回路部９及び１１は、１０ｂ８ｂ変換回路部８及び１０から出力される出力データを５１２〜２０４８バイト毎に、ＣＲＣチェックをする。ＣＲＣ回路部９及び１１は、ＣＲＣエラーを検出した場合、ＣＲＣエラー信号を生成する。ＣＲＣ回路部９及び１１の回路構成は同一である。ＣＲＣエラー信号は、Ｈｉｇｈレベルに設定された信号である。
【００５１】
ＣＤＲエラーバッファ１５は、ＣＤＲエラーフラグを格納するバッファである。ＣＤＲエラーバッファ１５は、ＣＤＲエラーに該当するデータバッファのラインに対しエラーフラグを記録する。
【００５２】
ＡＮＤ回路１６は、ＣＤＲエラーバッファ１５からエラーフラグが出力されかつＣＲＣ回路部１１からＣＲＣエラー信号が出力された場合、Ｈｉｇｈに設定された信号を出力する。これ以外の場合、ＡＮＤ回路１６は、Ｌｏｗに設定された信号を出力する。
【００５３】
ＡＮＤ回路１７は、ＣＲＣ回路部１１及び９のどちらか片方の結果がエラーでなければ（Ｌｏｗ）、ＣＲＣエラー出力ポート２１からエラー無し（Ｌｏｗ）として通知する。ＡＮＤ回路１７は、両方の結果がエラー（Ｈｉｇｈ）であったならば、ＣＲＣエラー出力ポート２１からエラーあり（Ｈｉｇｈ）を出力する。
【００５４】
セレクタ１８は、ＡＮＤ回路１６から出力される信号がＨｉｇｈレベルに設定されている場合、代替データバッファ１４のデータを選択し、代替データバッファ１４のデータが、データ出力ポート２２から出力される。セレクタ１８は、ＡＮＤ回路１６から出力される信号がＬｏｗレベルに設定されている場合、データバッファ１３のデータを選択し、データバッファ１３のデータが、データ出力ポート２２から出力される。
【００５５】
データバッファ１３内のデータは、５１２〜２０４８バイト毎に送信されるＣＲＣをチェックした後に、順次、データ出力２２から上位層へ出力される。この時、ＣＲＣ回路部１１の出力がＣＲＣエラーを示しており、かつＣＤＲエラーバッファ１５の出力がエラーフラグを示していたならば、後半ビット反転データのデータ訂正が間違えていた、すなわちＤＬ回路部１が取りそこなったのは、前半サイクルであり、前半ビット反転データの方が正しいことになる。よってこの時は、セレクタ１８は、データバッファ１３のデータの代わりに、代替データバッファ１４のデータを選択し、データ出力２２から出力する。
【００５６】
また、ＣＲＣ回路部１１の出力がＣＲＣエラーを示しておらず、かつＣＤＲエラーバッファ１５がエラーフラグを示していたならば、後半ビット反転データのデータ訂正は正しい、すなわち、ＤＬ回路部１が取り損なったのは、後半サイクルであり、後半ビット反転データの方が正しいことになる。よってこの時は、セレクタ１８は、データバッファ１３のデータを選択し、データ出力２２から出力する。
【００５７】
また、ＣＤＲエラーバッファ１５がエラーフラグを示していない場合、ＤＬ回路部１が取り損なったデータはない。そのため、セレクタ１８は、データバッファ１３のデータを選択し、データ出力２２から出力する。
【００５８】
訂正回路５０は、データと共にＣＲＣエラー信号も上位層へ出力する。２つのＣＲＣエラー信号のいずれか片方でもエラー無しであればエラー無し（Ｌｏｗ）を、また、２つのＣＲＣエラー信号がともにエラーの場合、エラーあり（Ｈｉｇｈ）を出力する。
【００５９】
以上説明したように、本発明の実施の形態１にかかる受信回路を用いることにより、ＤＬ回路部１が受信シリアルデータビットのサンプリングに失敗したことを、専用のエラー検出回路を設けることなく、通常の位相調整に用いられるサンプリングデータに基づいて検出することができる。そのため、専用のエラー検出回路とサンプリングデータ結果の不一致を懸念する必要がないため、容易に受信回路におけるタイミング設計を行うことができる。
【００６０】
また、訂正回路５０を用いることにより、送信側へ誤りが検出されたデータの再送信を要求することなくデータを訂正することができる。これにより、受信エラーが発生しても、転送レートを低下させることなくデータを訂正することができる。
【００６１】
（実施の形態２）
続いて、図７を用いて本発明の実施の形態２にかかる訂正回路６０の構成例について説明する。図４の訂正回路においては、データバッファ１３に対応するＣＤＲエラーバッファ１５が１ビットずつ設けられたが、図７の訂正回路６０においては、ＣＤＲエラーが発生したデータのバッファ番号を格納するバッファ構成にする。その他の構成については、図４の訂正回路と同様であるため、詳細な説明を省略する。ＣＤＲエラーバッファ２０は、ＣＤＲエラーフラグがアクティブ（Ｈｉｇｈ）となった場合に、１０ｂ８ｂ変換回路部１０の出力データを格納したデータバッファ１３のライン番号を記録する。ＣＤＲエラーフラグがアクティブとなった場合のデータが、データバッファ１３からセレクタ１８へ出力されるとき、ＣＤＲエラーバッファ２０の出力はアクティブとなり、ＡＮＤ回路１６へ出力される。
【００６２】
以上説明したように、本発明の実施の形態２における訂正回路６０を用いることにより、図４における訂正回路と比較して、ＣＤＲエラーバッファのサイズが小さくなる。そのため、回路規模の増加を抑制することができる。
【００６３】
（実施の形態３）
続いて、図８を用いて本発明の実施の形態３にかかる訂正回路７０の構成例について説明する。訂正回路７０は、ビット反転回路部６と、１０ｂ８ｂ変換回路部８及び１０と、ＣＲＣ回路部９、１１、２４及び２６と、リタイミング回路部１２と、データバッファ１３と、ＣＤＲエラーバッファ１５、３１及び３２と、ＡＮＤ回路１７と、ＣＲＣエラー出力２１と、データ出力２２と、代替データバッファ選択回路２３と、セレクタ２７と、代替データバッファ２８及び２９と、３３及び３４と、を備えている。なお、図４と同一の構成要素については同一の符号を使用し、詳細な説明は省略する。
【００６４】
訂正回路７０は、図４の訂正回路と比較して、ＣＲＣ回路部を２つと、代替データバッファを１つ追加している。図４の訂正回路は、１回のＣＲＣチェック期間において発生する１ビットのエラーを補正することが可能であり、訂正回路７０は、１回のＣＲＣチェック期間において発生する２ビットのエラーを補正することが可能である。
【００６５】
ＣＲＣ回路部９は、常に前半ビット反転データのＣＲＣをチェックする。ＣＲＣ回路部１１は、常に後半ビット反転データのＣＲＣをチェックする。これに対して、ＣＲＣ回路部２４とＣＲＣ回路部２６とは、前半ビット反転データと後半ビット反転データとが組み合わされたデータのＣＲＣをチェックする。
【００６６】
セレクタ３３は、１０ｂ８ｂ変換回路部８から出力される前半ビット反転データをＣＲＣ回路部２４へ出力し、１回目のＣＤＲエラーが検出された時も１０ｂ８ｂ変換回路部８から出力される前半ビット反転データをＣＲＣ回路部２４へ出力する。セレクタ３３は、１回目のＣＤＲエラーが検出された後は、１０ｂ８ｂ変換回路部１０から出力される後半ビット反転データをＣＲＣ回路部２４へ出力する。セレクタ３４は、１０ｂ８ｂ変換回路部１０から出力される後半ビット反転データをＣＲＣ回路部２６へ出力し、１回目のＣＤＲエラーが検出された時も１０ｂ８ｂ変換回路部１０から出力される後半ビット反転データをＣＲＣ回路部２６へ出力する。セレクタ３４は、１回目のＣＤＲエラーが検出された後は、１０ｂ８ｂ変換回路部８から出力される前半ビット反転データをＣＲＣ回路部２６へ出力する。セレクタ３３及び３４は、リタイミング回路部１２から出力されるＣＤＲエラーフラグに基づいて出力するデータを切り替える。
【００６７】
代替データバッファ２８は、１回目のＣＤＲエラーに該当する受信データビットの前半ビットを反転させたデータを含む８ビットデータを格納し、代替データバッファ２９は、２回目のＣＤＲエラーに該当する受信データビットの前半ビットを反転させたデータを含む８ビットデータを格納する。
【００６８】
代替データバッファ２８及び２９は、ＣＤＲエラーフラグ信号がアクティブの時に、１０ｂ８ｂ変換回路８により復元された８ビットデータを格納し、ＣＤＲエラーフラグ信号がインアクティブの時は、代替データバッファ２８及び２９に格納されている値を保持するバッファであり、８ビットデータ１つを格納することができる。代替データバッファ２８及び２９へ出力されるＣＤＲエラーフラグ信号は、ＡＮＤ回路３１及び３２と、代替データバッファ選択回路２３とを用いて制御される。１回目にＣＤＲエラーとなった時は、代替データバッファ選択回路２３からＡＮＤ回路３１に対してアクティブ状態の信号が出力され、ＡＮＤ回路３１からアクティブ状態のＣＤＲエラーフラグ信号が出力される。２回目にＣＤＲエラーとなった時は、代替データバッファ選択回路２３からＡＮＤ回路３２に対してアクティブ状態の信号が出力され、ＡＮＤ回路３２からアクティブ状態のＣＤＲエラーフラグ信号が出力される。
【００６９】
次に、セレクタ２７のデータ選択処理動作について説明する。２回発生したＣＤＲエラーに対し、１回目、２回目とも後半ビットを反転することで、データが正しく補正できたならば、ＣＲＣ回路部１１の出力はインアクティブとなる。２回発生したＣＤＲエラーに対し、１回目、２回目とも前半ビットを反転することで、データが正しく補正できたならば、ＣＲＣ回路部９の出力はインアクティブとなる。
【００７０】
２回発生したＣＤＲエラーの内、１回目は前半ビットを反転し、２回目は後半ビットを反転することで、データが正しく補正できたならば、ＣＲＣ回路部２４の出力はインアクティブとなる。２回発生したＣＤＲエラーの内、１回目は後半ビットデータを反転し、２回目は前半ビットを反転することで、データが正しく補正できたならば、ＣＲＣ回路部２６の出力はインアクティブとなる。
【００７１】
ＣＤＲエラーバッファ１５の出力がインアクティブ（Ｌｏｗ）である場合、セレクタ２７は、データバッファ１３のデータを選択し、選択したデータをデータ出力２２から出力する。
【００７２】
ＣＤＲエラーバッファ１５の出力がアクティブ（Ｈｉｇｈ）である場合、セレクタ２７は、ＣＲＣ回路部９、１１、２４及び２６の出力結果に応じて、次のようにデータを選択する。ＣＲＣ回路部１１から出力されるデータがインアクティブである場合、セレクタ２７は、データバッファ１３のデータを選択する。ＣＲＣ回路部９から出力されるデータがインアクティブである場合、セレクタ２７は、ＣＤＲエラーバッファ１５から１回目にアクティブに設定されたデータが出力された際には、代替データバッファ２８のデータを選択し、２回目のアクティブに設定されたデータが出力された際には、代替データバッファ２９のデータを選択する。
【００７３】
ＣＲＣ回路部２４から出力されるデータがインアクティブである場合、セレクタ２７は、ＣＤＲエラーバッファ１５から１回目にアクティブに設定されたデータが出力された際には、代替データバッファ２８のデータを選択し、２回目のアクティブに設定されたデータが出力された際には、データバッファ１３のデータを選択する。ＣＲＣ回路部２６から出力されるデータがインアクティブである場合、セレクタ２７は、ＣＤＲエラーバッファ１５から１回目にアクティブに設定されたデータが出力された際には、データバッファ１３のデータを選択し、２回目のアクティブに設定されたデータが出力された際には、代替データバッファ２９のデータを選択する。
【００７４】
以上説明したように本発明の実施の形態３にかかる訂正回路７０を用いた場合、１回のＣＲＣチェック期間において２ビットのエラーが発生した場合においても、正しいデータに補正することができる。また、１回のＣＲＣチェック期間において３ビット以上のエラーが発生した場合においても、ＣＲＣ回路部と代替データバッファを追加することにより、補正することが可能である。
【００７５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７６】
１  ＤＬ回路部
２  ＰＤ回路部
３  ＣＤＲコントローラ回路部
４  ＰＩ回路部
５  ＰＬＬ回路部
６  ビット反転回路部
７  ＣＤＲ回路部
８  １０ｂ８ｂ変換回路部
９  ＣＲＣ回路部
１０  １０ｂ８ｂ変換回路部
１１  ＣＲＣ回路部
１２  リタイミング回路部
１３  データバッファ
１４  代替データバッファ
１５  ＣＤＲエラーバッファ
１６  ＡＮＤ回路
１７  ＡＮＤ回路
１８  セレクタ
１９  受信シリアルデータビット入力ポート
２１  ＣＲＣエラー出力
２２  データ出力
２３  代替データバッファ選択回路
２４  ＣＲＣ回路部
２６  ＣＲＣ回路部
２７  セレクタ
２８  代替データバッファ
２９  代替データバッファ
３１  ＡＮＤ回路
３２  ＡＮＤ回路
３３  セレクタ
３４  セレクタ
４０  ＸＯＲ回路
４１  ＸＯＲ回路
４２  セレクタ
４３  セレクタ
５０  訂正回路
【図１】
2012222497.tif 000003
【図２】
2012222497.tif 000004
【図３】
2012222497.tif 000005
【図４】
2012222497.tif 000006
【図５】
2012222497.tif 000007
【図６】
2012222497.tif 000008
【図７】
2012222497.tif 000009
【図８】
2012222497.tif 000010
【図９】
2012222497.tif 000011