(57)【要約】【課題】この発明は、ＣＤＲ回路を有するデータ受信装置において、受信エラーを早期に検出することができるデータ受信装置を提供することを目的とする。【課題を解決するための手段】この発明は、シリアル通信の受信動作部で、ＣＤＲ回路の出力するシリアルデータを取り込むためのサンプリングクロックＳＣＬＫとシリアルデータＳＤを入力として、サンプリングクロックのエッジからシリアルデータのＨＩＧＨからＬＯＷのエッジ間隔を検出する手段１０５、１０６と、サンプリングクロックのエッジからシリアルデータのＬＯＷからＨＩＧＨのエッジ間隔を検出する手段１０９、１１０と、を備え、上記検出手段の結果によりクロックデータリカバリ回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べてエラーを検出する手段１０７，１１１とを有する。【選択図】  図１
2004242243.tif 000002
【特許請求の範囲】
【請求項１】
シリアル通信の受信動作部で、クロックデータリカバリ回路の出力するシリアルデータを取り込むためのサンプリングクロックとシリアルデータを入力として、サンプリングクロックのエッジからシリアルデータのハイ（ＨＩＧＨ）からロー（ＬＯＷ）のエッジ間隔を検出する手段と、サンプリングクロックのエッジからシリアルデータのローからハイのエッジ間隔を検出する手段と、を備え、上記検出手段の結果によりクロックデータリカバリ回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べてエラーを検出することを特徴とするデータ受信装置。
【請求項２】
シリアル通信の受信動作部で、クロックデータリカバリ回路の出力するシリアルデータを取り込むためのサンプリングクロックとシリアルデータを入力として、サンプリングクロックのエッジでセットされるフリッププロップと、このフリップフロップ出力を入力データとし、シリアルデータのエッジでセットされるフリップフロップと、シリアルデータがハイ期間に対してエラーを検出する回路と、シリアルデータがロー期間にエラーを検出する回路と、を備え、クロックデータリカバリ回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べてエラーを検出することを特徴とするデータ受信装置。
【請求項３】
シリアルデータのローからハイへの遷移がある毎に、ハイ期間に対するエラー検出回路の一部又は全てをリセットし、シリアルデータのハイからローへの遷移がある毎に、ロー期間に対するエラー検出回路の一部又は全てをリセットすることを特徴とする請求項２に記載のデータ受信装置。
【請求項４】
シリアル通信の受信動作部で、クロックデータリカバリ回路の出力するシリアルデータを取り込むためのサンプリングクロックとシリアルデータの通信レートと同等の周波数を持つ受信側のシステムクロックを入力として、シリアルデータがハイ期間であるデータ長をシステムクロックでカウントするカウント回路と、シリアルデータがロー期間であるデータ長をシステムクロックでカウントするカウント回路と、を持ち、それぞれの結果とクロックデータリカバリ回路が出力するサンプリングクロックを数えるカウント回路とを比較してシリアルデータがハイ期間のエラーを検出する回路と、シリアルデータがロー期間のエラーを検出する回路とにより、サンプリングクロックの数が正しい数を出力していない場合には、エラーを検出しエラー信号を出力することを特徴とするデータ受信装置。
【請求項５】
シリアルデータのローからハイへの遷移を検出する毎に、ハイ期間に対するエラー検出回路の一部又は全てをリセットし、シリアルデータのハイからローへの遷移を検出する毎に、ロー期間に対するエラー検出回路の一部又は全てをリセットすることを特徴とする請求項４に記載のデータ受信装置。
【請求項６】
シリアルデータのロー期間とハイ期間を測定するために、シリアルデータのハイ期間を引き延ばした信号とシリアルデータのロー期間を引き延ばした信号を用い、シリアルデータのデータ長をシステムクロックでカウントすることを特徴とする請求項４に記載のデータ受信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、クロックデータリカバリ（Ｃｌｏｃｋ  Ｄａｔａ  Ｒｅｃｏｖｅｒｙ）回路（以下、ＣＤＲという。）を用いたシリアルデータ受信装置に係り、受信データをサンプリングする際のエラー検出に関するものである。
【０００２】
【従来の技術】
シリアルデータの伝送系において、そのデータ受信部の入力段には、伝送線によって伝送されてきたシリアルデータを正しく受信するために、シリアルデータに同期して一定周期のクロックに基づいてシリアルデータのタイミングを正しく設定し直す、ＣＤＲ回路が設けられる。
【０００３】
ＣＤＲ回路が用いられるシリアル通信システムでは、一般に送信側と受信側で同じ周波数の基準クロックを用いて、お互いにあらかじめ決められた送信及び受信スピードでデータを送受信する。しかしながら、送信側から送られたデータを受信側で正確に受信するためには、送信側と受信側は同期して動作する必要がある。
【０００４】
１つの方法として、データ信号と共に同期するためのクロック信号を送信側と受信側に供給する方法もあるが、高速シリアル通信の多くの場合、特に近年の数百ＭＨｚ〜数ＧＨｚの高速データ通信では、波形の歪み、反射、ケーブル及びボード上の信号の干渉などの問題があり、通信に使うクロック信号をデータとは別に送ることはしない。その代わりに、送信側でデータに冗長なデータビットを付加して、一定時間にデータの遷移が保証するようなエンコーディングを行いデータを送信する。
【０００５】
受信側では送信側から送られてきたデータはタイミング情報を含んでいるため、データ信号自体から受信側でデータのサンプリング用クロックをＣＤＲ回路を使用して発生し、そのクロックを用いて受信データをサンプリングし、サンプリングしたあと余分なビットをデコーディングするような技術が用いられる。
【０００６】
高速シリアル通信において、例えば送信側のＮＲＺコーディングされたデータを受信側で正確に受信するためには、データに対してＣＤＲ回路を用いて、データのサンプリング用同期クロックを通常はクロックがデータの中央の位置に合うように同期クロックを生成する必要がある。
【０００７】
近年シリアル通信のインターフェイスの通信スピードが、数百Ｍｂｐｓ（ビットパーセカント）、数Ｇｂｐｓに高速化されており、高速かつ信頼性の高い通信を実現するためにはＣＤＲ回路に対してより高性能、高信頼性の回路が要求されている。
【０００８】
しかしながら、ＣＤＲ回路が正常に動作し、データに対して正確にサンプリング可能になる位置にクロックが出ているか、サンプリングクロックの出力していない場合はないか、サンプリングクロックが余分に出ているか等のエラーを検出することは、高速かつ非同期に動作するという特徴を持つため困難である。従って、受信エラーに関しては、送信データにエラー検査訂正用のコード例えば、チェックサムやＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ：巡回情調検査）をデータに付加して送信し、受信側でもＣＲＣコードをチェックすることにより受信データが正しいかをチェックする方法等が使われている。
【０００９】
しかし、上記方法においては、受信側でのエラー検査訂正用のコードは全てのデータが受信し終えるまでは、計算することができないため、データの最初のところで受信エラーを起こしても、全てのデータを受信終了するまで、受信エラーがわからない問題がある。従って受信データが長い場合には、それだけエラー検出に時間がかかる問題がある。
【００１０】
ところで、データ・ストローブ符号化方式で伝送されてくるデータ信号とストローブ信号を受信して受信データを再現するデータ受信装置にあって、データ再生される前の受信信号に対する物理的異常検査によい上記受信データのエラー検出を行うとともに、上記異常個所を上記受信データのエラー推定個所として検出するエラー検出手段を備えたデータ受信装置が提案されている（例えば、特許文献１参照。）
【００１１】
上記したデータ受信装置においては、シリアルデータのほかに、外部から供給されるストローブ信号を用いてエラー検出を行うため、外部から供給されるストローブ信号がなくシリアルデータからＣＤＲ回路を用いてデータをサンプリングする場合には、エラー検出は不可能である。
【００１２】
【特許文献１】
特開２０００−１７４８３８号公報
【００１３】
【発明が解決しようとする課題】
この発明は、ＣＤＲ回路を有するデータ受信装置において、受信エラーを早期に検出することができるデータ受信装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
この発明は、ＣＤＲ回路で生成するサンプリングクロックを直接チェックすることにより、受信データをサンプリングする際にエラーを検出する手段を提供するものである。
【００１５】
このため、この発明のデータ受信装置は、シリアル通信の受信動作部で、ＣＤＲ回路の出力するシリアルデータを取り込むためのサンプリングクロックとシリアルデータを入力として、サンプリングクロックのエッジからシリアルデータのハイ（ＨＩＧＨ）からロー（ＬＯＷ）のエッジ間隔を検出する手段と、サンプリングクロックのエッジからシリアルデータのＬＯＷからＨＩＧＨのエッジ間隔を検出する手段と、を備え、上記検出手段の結果によりクロックデータリカバリ回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べてエラーを検出することを特徴とする。
【００１６】
上記した構成によれば、データが遷移するたびにクロック数をチェックするため、データ通信の全期間のクロック数を比較するのに比べてエラーを早期に発見することができる。
【００１７】
又、この発明のデータ受信装置は、シリアル通信の受信動作部で、ＣＤＲ回路の出力するシリアルデータを取り込むためのサンプリングクロックとシリアルデータを入力として、サンプリングクロックのエッジでセットされるフリッププロップと、このフリップフロップ出力を入力データとし、シリアルデータのエッジでセットされるフリップフロップと、シリアルデータがＨＩＧＨ期間に対してエラーを検出する回路と、シリアルデータがＬＯＷ期間にエラーを検出する回路と、を備え、クロックデータリカバリ回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べてエラーを検出することを特徴とする。
【００１８】
上記した構成にすることで、、通信レートで毎サイクル変化するシリアルデータに対してもタイミングエラーを検出することができる。また、エラーの検出をデータ遷移ごとに行うため、受信データのエラー訂正用符号でチェックするのに比較して、早期にエラーを検出することが可能であり、データ通信のエラー処理に要する時間も短くなるため、データ通信のスループットが向上する。
【００１９】
更に、この発明は、シリアルデータのＬＯＷからＨＩＧＨへの遷移がある毎に、ＨＩＧＨ期間に対するエラー検出回路の一部又は全てをリセットし、シリアルデータのＨＩＧＨからＬＯＷへの遷移がある毎に、ＬＯＷ期間に対するエラー検出回路の一部又は全てをリセットするように構成すると良い。
【００２０】
上記した構成にすることで、通信レートで毎サイクル変化するシリアルデータに対してもタイミングエラーを検出することができる。
【００２１】
又、この発明のデータ受信装置は、シリアル通信の受信動作部で、クロックデータリカバリ回路の出力するシリアルデータを取り込むためのサンプリングクロックとシリアルデータの通信レートと同等の周波数を持つ受信側のシステムクロックを入力として、シリアルデータがＨＩＧＨ期間であるデータ長をシステムクロックでカウントするカウント回路と、シリアルデータがＬＯＷ期間であるデータ長をシステムクロックでカウントするカウント回路と、を持ち、それぞれの結果とクロックデータリカバリ回路が出力するサンプリングクロックを数えるカウント回路とを比較してシリアルデータがＨＩＧＨ期間のエラーを検出する回路と、シリアルデータがＬＯＷ期間のエラーを検出する回路とにより、サンプリングクロックの数が正しい数を出力していない場合には、エラーを検出しエラー信号を出力することを特徴とする。
【００２２】
上記のように構成することで、サンプリングＣＫの数が正しい数を出力していない場合には、エラーを検出しエラー信号を出力するためサンプリングＣＫの数が多い場合、少ない場合のどちらのエラーに対してもエラーを検出することが可能である。また、データが遷移する毎にエラー検出を行うため、データ通信の全期間のクロック数を比較するのに比べてエラーを早期に発見することができる。
【００２３】
更に、この発明は、シリアルデータのＬＯＷからＨＩＧＨへの遷移を検出する毎に、ＨＩＧＨ期間に対するエラー検出回路の一部又は全てをリセットし、シリアルデータのＨＩＧＨからＬＯＷへの遷移を検出する毎に、ＬＯＷ期間に対するエラー検出回路の一部又は全てをリセットするように構成すると良い。
【００２４】
上記のように構成することで、通信レートで毎サイクル変化するシリアルデータに対してもタイミングエラーを検出することができる。
【００２５】
又、この発明は、シリアルデータのＬＯＷ期間とＨＩＧＨ期間を測定するために、シリアルデータのＨＩＧＨ期間を引き延ばした信号とシリアルデータのＬＯＷ期間を引き延ばした信号を用い、シリアルデータのデータ長をシステムクロックでカウントするように構成すると良い。
【００２６】
上記のように構成することで、送信部と受信部の周波数偏差がおきても誤検出を起こさないにエラー検出回路が構成できる。
【００２７】
【発明の実施の形態】
以下、この発明の実施の形態につき図面を参照して説明する。図１は、この発明の第１の実施形態を示すブロック回路図である。この発明は、ＣＤＲ回路で生成するサンプリングクロックを直接チェックすることにより、受信データをサンプリングする際にエラーを検出するものである
【００２８】
図１において、１０１は、この発明のエラー検出回路が対象とするＣＤＲ回路である。ＣＤＲ回路１０１はシリアルデータ（ＳＤ）に対して、そのデータを正しくサンプリングするためのサンプリングクロック（ＳＣＬＫ）を生成している回路である。すなわち、ＣＤＲ回路１０１は、シリアルデータ通信において、データの受信部に、データを正しく受信するために、シリアルデータに同期した一定周期のサンプリング用クロックを生成する機能を有するものである。シリアルデータ通信において、送信側よりデータと取りこみ用クロック（ＣＬＫ）を送信するのではなく、データのみを送信する伝送系があり、その系においては受信側でそのデータを取りこむために、ＣＤＲ回路１０１が必要となる。このＣＤＲ回路１０１は、例えば、ＰＬＬ（ｐｈａｓｅ  ｌｏｃｋｅｄ  ｌｏｏｐ）回路を用いて構成され、ＰＬＬ回路で、シリアルデータの位相に対してＶＣＯ（電圧制御発振器）の発振クロックの位相が一致するようにＶＣＯ制御し、ＶＣＯの発振クロックを再生クロックとして、導出する。また、データの高速伝送に致合おうしてオーバーサンプリング型クロックリカバリ回路も提案されている。
【００２９】
この発明は、上記ＣＤＲ回路１０１からのサンプリングクロック（ＳＣＬＫ）のエラーのうち、サンプリングクロックがデータを正確に取り込むタイミングを満たしているか、データに対して正しい数のサンプリングクロックを出力しているかを調べてエラーを検出する。
【００３０】
１１４は、この発明のサンプリングクロックエラー検出回路であり、１０２はデータに対して正しいタイミング（セットアップタイムとホールドタイムを満たしている）でクロックを出力しているかをチェックするサンプルＣＫエラー検出回路である。そのサンプルＣＫエラー検出回路１０２には、シリアルデータ（ＳＤ）、ＣＤＲ回路１０１から導出されるサンプリングクロック（ＳＣＬＫ）が入力されて、エラー信号であるＳＣＬＫＥＲＲが出力されている。
【００３１】
１０３はデータ・デューティ（ＤＵＴＹ）調整部、１１２はデータ・ハイ（ＨＩＧＨ）期間エラー検出回路、１１３はデータ・ロー（ＬＯＷ）期間エラー検出回路であり、データに対して正しい数のサンプリングクロックを出力しているかを調べるブロックである。
【００３２】
データＤＵＴＹ調整部１０３は、シリアルデータのデューティ（ＤＵＴＹ）を調節してＳＤＨ（ＳＤのＨＩＧＨ期間を少し長くした信号）とＳＤＬ（ＳＤのＬＯＷ期間を少し長くした信号）を出力し、ＳＤＨをデータＨＩＧＨ期間エラー検出回路１１２に、ＳＤＬをデータＬＯＷ期間エラー検出回路１１３へ与える。
【００３３】
データＨＩＧＨ期間エラー検出回路１１２は、データのＨＩＧＨ期間のクロックエラーを調べ、データＬＯＷ期間エラー検出回路１１３はデータＬＯＷ期間のクロックエラーを調べるブロックである。
【００３４】
データＨＩＧＨ期間エラー検出回路１１２は、ＨＩＧＨカウンター制御回路１０４、ＨＩＧＨサンプル数カウント回路１０５、ＨＩＧＨデータ長カウント回路１０６、ＨＩＧＨサンプル数エラー検出回路１０７で構成されており、データＬＯＷ期間エラー検出回路１１３は、ＬＯＷカウンター制御回路１０８、ＬＯＷサンプル数カウント回路１０９、ＨＩＧＨデータカウント回路１１０、ＬＯＷサンプル数エラー検出回路１１１で構成されている。
【００３５】
ＨＩＧＨカウンター制御回路１０４は、データＤＵＴＹ調整部１０３から出力されるＳＤＨと、シリアル通信の通信レートである周波数のシステムクロックＳＹＳＣＬＫが入力されており、ＨＩＧＨデータ長カウント回路１０６にＤＨＣＮＴＣＫが出力される。ＨＩＧＨデータ長カウント回路１０６はＨＩＧＨカウンター制御回路１０４から与えられるＤＨＣＮＴクロックでカウント動作を行うカウンターであり、カウント結果ＨＤＣＮＴはＨＩＧＨサンプル数エラー検出回路１０７に出力される。
【００３６】
ＨＩＧＨサンプル数カウント回路１０５は、シリアルデータＳＤとサンプリングクロックＳＣＬＫが入力され、ＣＤＲ回路１０１で生成したサンプリングクロックＳＣＬＫの数を数えるカウンターとなっている。カウントした結果ＨＳＣＮＴはＨＩＧＨサンプル数エラー検出回路１０７に出力されている。
【００３７】
ＨＩＧＨサンプル数エラー検出回路１０７には、ＨＩＧＨサンプル数カウント回路１０５とＨＩＧＨデータ長カウント回路１０６のそれぞれの出力であるＨＳＣＮＴとＨＤＣＮＴ信号が入力され、それを比較した結果が異なればＨＳＥＲＲ信号を出力する機能を持っている。
【００３８】
また、データＬＯＷ期間エラー検出回路１１３は、データＬＯＷ期間エラー検出回路１１２と同様に構成されており、ＬＯＷカウンター制御回路１０８、ＬＯＷサンプル数カウント回路１０９、ＬＯＷデータ長カウント回路１１０、ＬＯＷサンプル数エラー検出回路１１１で構成されている。
【００３９】
ＬＯＷカウンター制御回路１０８は、データＤＵＴＹ調整部１０３から出力されるＳＤＬと、シリアル通信の通信レートである周波数のシステムクロックＳＹＳＣＬＫが入力されており、ＬＯＷデータ長カウント回路１１０にＤＬＣＮＴＣＫが出力される。ＬＯＷデータ長カウント回路１１０はＬＯＷカウンター制御回路１０８から与えられるＤＬＣＮＴクロックでカウント動作を行うカウンターであり、カウント結果ＬＤＣＮＴはＬＯＷサンプル数エラー検出回路１１１に出力される。
【００４０】
ＬＯＷサンプル数カウント回路１０９は、シリアルデータＳＤとサンプリングクロックＳＣＬＫが入力され、ＣＤＲ回路１０１で生成したサンプリングクロックＳＣＬＫの数を数えるカウンターとなっている。カウントした結果ＬＳＣＮＴはＬＯＷサンプル数エラー検出回路１１１に出力されている。
【００４１】
ＬＯＷサンプル数エラー検出回路１１１には、ＬＯＷサンプル数カウント回路１０５とＬＯＷデータ長カウント回路１０６のそれぞれの出力であるＬＳＣＮＴとＬＤＣＮＴ信号が入力され、それを比較した結果が異なればＬＳＥＲＲ信号を出力する機能を持っている。
【００４２】
以下、それぞれのブロックに関して回路構成例の図を用いてこの発明の詳細動作を説明する。
【００４３】
図２は、この発明の実施形態に用いられるサンプルリングクロック（ＣＫ）エラー検出回路１０２の一例を示す詳細回路図、図３は、図２に示す回路のタイミングチャートである。
【００４４】
サンプリングクロック（ＣＫ）エラー検出回路１０２は、データに対して正しい位置、つまりデータに対してそれを受信するに十分なセットアップタイムとホールドタイムを満たしているクロック（ＣＫ）を出力できているかを検出できる回路である。
【００４５】
図２示すように、シリアルデータＳＤ、ＣＤＲ回路１０１で生成したサンプリングクロックＳＣＬＫが入力として与えられる。
【００４６】
２０１、２０２はシリアルデータ（ＳＤ）信号を遅らせた信号ＳＤ＿Ｄ１、ＳＤ＿Ｄ２を発生する遅延回路である。
【００４７】
遅延回路２０１からの信号ＳＤ＿Ｄ１は、ナンド（ＮＡＮＤ）論理回路２０４の一方に与えられ、遅延回路２０２からの信号ＳＤ＿Ｄ２はインバータ論理回路２０３を介してＮＡＮＤ論理回路２０４に与えられる。ＮＡＮＤ論理回路２０４は、ＳＤ＿Ｄ１とＳＤ＿Ｄ２信号のインバータ論理からＰＯＳＲＥＳＸを作成し出力する。ＰＯＳＲＥＳＸは、シリアルデータＳＤがＬｏｗからＨｉｇｈに遷移するとフリップフロップ（以下、ＦＦという）２０７をリセットする信号を生成している。
【００４８】
また、遅延回路２０１からの信号ＳＤ＿Ｄ１は、インバータ論理回路２０５を介してＮＡＮＤ論理回路２０６の一方に与えられ、遅延回路２０２からの信号ＳＤ＿Ｄ２はＮＡＮＤ論理回路２０６に与えられる。このＮＡＮＤ論理回路２０６は逆にシリアルデータＳＤがＨｉｇｈからＬｏｗに遷移するとＦＦ２０９をリセットする信号ＮＥＧＲＥＳＸを生成している。
【００４９】
Ｄ−ＦＦ２０７、２０９はＤ入力がＶＣＣにつながっており、ＣＫ端子がサンプリングクロックＳＣＬＫにつながっている。したがって、リセット後にサンプリングクロックＳＣＬＫがＬｏｗからＨｉｇｈに遷移すると、ＦＦ２０７とＦＦ２０９の出力はＨｉｇｈになることになる。ＦＦ２０７の出力はＰＯＳＣＨＫ信号、ＦＦ２０９の出力はＮＥＧＣＨＫ信号としている。それぞれの出力はインバータ２０８、２１０に与えられる。インバータ２０８の出力は、ＦＦ２１２のＤ入力に接続され、インバータ２１０の出力はＦＦ２１３のＤ入力に接続されている。
【００５０】
ＦＦ２１２のＣＫ端子には、シリアルデータＳＤをインバータ２１１で反転した信号が与えられ、シリアルデータＳＤのＨｉｇｈからＬｏｗへの遷移でデータを書き換える。ＦＦ２１３のＣＫ端子には、シリアルデータＳＤが与えられ、シリアルデータＳＤのＬｏｗからＨｉｇｈへの遷移でデータを書き換える。
【００５１】
ＦＦ２１２の出力がＰＯＳＥＲＲ、ＦＦ２１３の出力がＮＥＧＥＲＲとしてそれぞれ出力され、２つの信号を論理和（ＯＲ）回路２１４でＯＲをとり、ＯＲ回路２１４よりＳＣＬＫＥＲＲ信号として出力される。
【００５２】
上記した回路動作を図３のタイミングチャートで説明する。
図３のＳＤはシリアルデータを示している、サイクル１，２及びサイクル７から１２はそれぞれ１サイクルでデータがＨ，Ｌの遷移しているパターンで、サイクル３〜６は２サイクルでデータが遷移している。
【００５３】
この図でサイクル１の先頭でシリアルデータＳＤがＬｏｗからＨｉｇｈに遷移することにより、図２の遅延回路２０１，遅延回路２０２，インバータ２０３，ＮＡＮＤ２０４の論理ゲートによりＰＯＳＲＥＳＸ信号のリセットパルスが発生する。
【００５４】
シリアルデータＳＤのＬｏｗからＨｉｇｈの遷移からＰＯＳＲＥＳＸ信号がＬｏｗになるまでの遅延時間（図中  Ｔ３−１）は、遅延回路２０１とＮＡＮＤ回路２０４のゲート遅延を合わせた時間であり、リセットパルス時間（図中  Ｔ３−２）は遅延回路２０２、インバータ２０３、ＮＡＮＤ回路２０４の遅延時間を合わせたものである。
【００５５】
ＦＦ２０７はＰＯＳＲＥＳＸでリセットされ、ＣＤＲ回路１０１で生成されるサンプリングクロックＳＣＬＫのＬｏｗからＨｉｇｈエッジにて、ＰＯＳＣＨＫ信号がＨｉｇｈに変化する。正しく動作するためには、ＦＦ２０７のリセットからクロックの立ち上がりまでのタイミングであるいわゆるクロックリカバリータイミング（図中  Ｔ３−３）を守る必要が有る。
【００５６】
したがって、シリアルデータＳＤのＬｏｗからＨｉｇｈ遷移後のサンプリングクロックＳＣＬＫのＬｏｗからＨｉｇｈエッジ期間が短いと、具体的に言えば、Ｔ３−１＋Ｔ３−２＋Ｔ３−３までの時間より短いとサンプリングクロックＳＣＬＫの立ち上がりでＰＯＳＣＨＫ信号がＨｉｇｈにならない動作になってしまう。
【００５７】
シリアルデータＳＤのＬｏｗからＨｉｇｈ遷移において、シリアルデータＳＤを取り込むためのセットアップタイミングを満たしながら正しいタイミングでサンプリングクロックＳＣＬＫが出力されているかチェックできる事になる。
【００５８】
また、通常、サンプリングクロックＳＣＬＫのＬｏｗからＨｉｇｈへの遷移で、ＰＯＳＣＨＫ信号が再びＨｉｇｈになるが、そのＨｉｇｈをＦＦ２１２でシリアルデータＳＤのＨｉｇｈからＬｏｗへの立ち下がりエッジで正しく取り込むためには、サンプリングクロックＳＣＬＫの立ち上がりエッジからシリアルデータＳＤの立ち下がりエッジがＦＦ２０７の出力遅延時間にＦＦ２１２のセットアップタイムを加算した時間を満たしている必要があり、サンプリングクロックＳＣＬＫの立ち上がりエッジから、シリアルデータＳＤの立ち下がりエッジ迄のタイミングをチェックできる事になる。
【００５９】
上記した回路構成で、シリアルデータＳＤのＨｉｇｈ期間に対するサンプリングクロックＳＣＬＫがタイミングを満たして正しい位置に出力されているかがチェックできる。
【００６０】
また、インバータ２０５、ＮＡＮＤ回路２０６、ＦＦ２０９、インバータ２１０、ＦＦ２１３の回路は類似の動作にて、シリアルデータＳＤのＨｉｇｈからＬｏｗ期間に対してサンプリングクロックＳＣＬＫがタイミングを満たして出力されているかがチェックできる。
【００６１】
図３に示す、サイクル８の３０２地点では、シリアルデータＳＤの立ち下がりからサンプリングクロックＳＣＬＫの立ち上がりまでの時間が十分でない場合を示しているが、サイクル８のＮＡＮＤ回路２０６のＮＥＧＲＥＳＸ信号により、リセットされたＦＦ２０９のＮＥＧＣＨＫ信号が通常は３０２地点ののサンプリングクロックＳＣＬＫの立ち上がりでＨＩＧＨになるが、この場合３０２地点の立ち上がりエッジの位置が、シリアルデータＳＤのＨｉｇｈからＬｏｗへの遷移からタイミングが十分でないため、セットアップ不足エラーとしてＦＦ２１３からＮＥＧＥＲＲが出力されている。
【００６２】
図３に示す３０３地点では、サイクル９の間に、サンプリングクロックＳＣＬＫが出力されず、したがって、サイクル９でＦＦ２０７のＰＯＳＣＨＫがＬｏｗのままになり、ＦＦ２１２からＰＯＳＥＲＲが出力される。このように、クロックが抜けた場合にもエラーが出力される。
【００６３】
図３に示す３０４地点では、サンプリングクロックＳＣＬＫの立ち上がりがホールドタイムを満たしていない場合を示しており、ＰＯＳＣＨＫのＬｏｗからＨｉｇｈの立ち上がり遷移が遅いため、ＰＯＳＥＲＲ信号でエラーを出力してしまう。
【００６４】
このように、図２に示す回路では、シリアルデータＳＤの遷移に対して、受信データを取り込むためにセットアップタイムとホールドタイムをを満たしているかと、クロック抜けに対してもエラーを検出できる回路となっている。しかしながら、サイクル６の３０１地点に示すように、シリアルデータＳＤの遷移が１サイクルでなく２サイクル以上にわたる場合で、シリアルデータＳＤの遷移から最初のサイクルでなく２番目以降のサイクルでＳＣＬＫが出力されていない場合には、図２にしめす回路では、エラーを検出できない問題がある。
【００６５】
この問題点を解決するために、図１に示すこの発明の第１の実施形態では、上記のように説明したサンプルクロック（ＣＫ）エラー検出回路１０２とは別に、データＤＵＴＹ調整部１０３、データＨＩＧＨ期間エラー検出回路１１２、データＬＯＷ期間エラー検出回路１１３の回路を用いてエラー検出を更に行うように構成している。
【００６６】
図４は、シリアルデータＳＤ信号のデューティ比を変更するデータＤＵＴＹ調整部１０３の一例を示す回路図である。
【００６７】
図４に示す回路には、シリアルデータＳＤが入力され、そのＨＩＧＨ期間を引き延ばしたＳＤＨ信号とそのＬｏｗ期間を引き延ばしたＳＤＬ信号を遅延回路４０１，ＯＲ回路４０２，論理積（ＡＮＤ）回路４０３の論理ゲートで生成する。
【００６８】
デューティ比を変更する目的は、シリアル通信において送信側から送られてくるデータは、送信側で使用しているクロック周波数で送られており、受信側では受信側のクロック周波数で受信を行う。しかしながら、送信側と受信側では、同じクロック周波数を使用していても、元クロックである発振子の周波数偏差や、クロックを逓倍するためのＰＬＬ等のジッタにより、送信側と受信側での周波数偏差が起きる。そのため受信側でデータをシステムクロックでサンプリングする際には、周波数偏差によりサンプリングができない場合が想定されるため、送信側の周波数であるデータを引き伸ばして必ずサンプリングできるように、図４に示す回路を用いている。
【００６９】
図４に示す回路から出力されているＳＤＨとＳＤＬはそれぞれデータＨＩＧＨ期間エラー検出回路１１２、データＬＯＷ期間エラー検出回路１１３に入力される。
【００７０】
データＨＩＧＨ期間エラー検出回路１１２とデータＬＯＷ期間エラー検出回路１１３は、シリアルデータＳＤのＨｉｇｈ期間とＬｏｗ期間のエラーをそれぞれ検出するための回路であり、動作は類似しているためデータＨＩＧＨ期間エラー検出回路１１２のＨｉｇｈ期間の部分を中心にして詳細説明を行う。
【００７１】
ＨＩＧＨサンプル数カウント回路１０５、ＬＯＷサンプル数カウント回路１０９の一例を図６に示す。ＨＩＧＨサンプル数カウント回路１０５は、シリアルデータＳＤ、ＣＤＲ回路１０１で生成したサンプリングクロックＳＣＬＫが入力として与えられる。
【００７２】
図６の上部に示すように、６０１、６０２はシリアルデータ（ＳＤ）信号を遅らせた信号ＳＤ＿Ｄ１、ＳＤ＿Ｄ２を発生する遅延回路である。
【００７３】
遅延回路６０１からの信号ＳＤ＿Ｄ１は、ＮＡＮＤ論理回路６０４の一方に与えられ、遅延回路６０２からの信号ＳＤ＿Ｄ２はインバータ論理回路６０３を介してＮＡＮＤ論理回路６０４に与えられる。ＮＡＮＤ論理回路６０４は、ＳＤ＿Ｄ１とＳＤ＿Ｄ２信号のインバータ論理からＰＯＳＲＥＳＸを作成し出力する。ＰＯＳＲＥＳＸは、シリアルデータＳＤがＬｏｗからＨｉｇｈに遷移するとＨＩＧＨサンプル数カウンター６０８をリセットする信号を生成している。
【００７４】
また、図６の下部に示すように、遅延回路６０１からの信号ＳＤ＿Ｄ１は、インバータ論理回路６０５を介してＮＡＮＤ論理回路６０６の一方に与えられ、遅延回路６０２からの信号ＳＤ＿Ｄ２はＮＡＮＤ論理回路６０６に与えられる。このＮＡＮＤ論理回路６０６は逆にシリアルデータＳＤがＨｉｇｈからＬｏｗに遷移するとＬＯＷサンプル数カウンター６０９をリセットする信号ＮＥＧＲＥＳＸを生成している。
【００７５】
ＨＩＧＨサンプル数カウンター６０８、ＬＯＷサンプル数カウンター６０９は、イネーブル付きのカウンター回路である。シリアルデータＳＤがＨＩＧＨサンプル数カウンター６０８のＥＮ端子に与えられ、サンプルクロックＳＣＬＫがＣＫ端子に与えられる。シリアルデータＳＤがＬｏｗからＨｉｇｈに遷移するとこのカウンター６０８は０にリセットされ、シリアルデータＳＤがＨＩＧＨの期間には、カウンター６０８がイネーブルになり、ＣＤＲ回路１０１から出力されるサンプリングＳＣＬＫが立ち上がるたびにカウントアップ動作が行われる。
従って、シリアルデータＳＤがＨＩＧＨ期間にＳＣＬＫに何回エッジ入力が起こったかを数える動作を行い。ＨＳＣＮＴ値として出力する。
【００７６】
一方、ＬＯＷサンプルカウンター６０９のシリアルデータＳＤがインバータ６０７を介してのＥＮ端子に与えられ、サンプルクロックＳＣＬＫがＣＫ端子に与えられる。シリアルデータＳＤがＨＩＧＨからＬＯＷに遷移するとこのカウンター６０９は０にリセットされ、シリアルデータＳＤがＬＯＷの期間には、カウンター６０９がイネーブルになり、ＣＤＲ回路１０１から出力されるサンプリングＳＣＬＫが立ち下がるたびにカウントアップ動作が行われる。
【００７７】
ＨＩＧＨサンプル数カウント回路１０５のタイミングチャートに関しては、図９から図１２に示している。
【００７８】
次に、ＨＩＧＨカウンター制御回路１０４、ＬＯＷカウンター制御回路１０８の一例を図５に示し、図５に従い説明する。なお、これら両回路の動作は類似しているためＨＩＧＨカウンター制御回路１０４の部分を中心にして詳細説明を行う。
【００７９】
ＨＩＧＨカウンター制御回路１０４は、図５の上半分に示している。図５に示すように、ＦＦ５０２、５０４のＤ入力にはデータＤＵＴＹ調整部１０３からのＳＤＨが与えられ、ＦＦ５０２のＣＫ端子には、サンプリングクロックＳＹＳＣＬＫがＦＦ５０４のＣＫ端子にはサンプリングクロックＳＹＳＣＬＫをインバータ５０１で反転した信号が接続されている。
【００８０】
ＦＦ５０２とＦＦ５０４は、サンプリングクロックＳＹＳＣＬＫのどちらかのエッジで、ＳＤＨがＨＩＧＨになるのを検出してＰＯＳＥＮ１とＮＥＧＥＮ１を出力する。
【００８１】
ＦＦ５０２のリセット端子ＲＢには、ＮＥＧＥＮ１をインバータ５０３で反転した信号が与えられ、ＦＦ５０４のリセット端子ＲＢには、ＰＯＳＥＮ１をインバータ５０５で反転した信号が与えられる。
【００８２】
ＦＦ５０２からのＱ出力ＰＯＳＥＮ１はＡＮＤ回路５１１の一方に与えられ、このＡＮＤ回路５１１の他方の入力はサンプリングクロックＳＹＣＬＫをインバータ５０１で反転された信号が与えられ、このＡＮＤ回路５１１の出力がＯＲ回路５１３の一方の入力として与えられる。
【００８３】
また、ＦＦ５０４からのＱ出力ＮＥＧＥＮ１はＡＮＤ回路５１２の一方に与えられ、このＡＮＤ回路５１２の他方の入力はサンプリングクロックＳＹＣＬＫが与えられ、このＡＮＤ回路５１２の出力がＯＲ回路５１３の他方の入力として与えられる。ＯＲ回路５１３からＨＩＧＨカウンター制御回路１０４の出力としてＤＨＣＮＴＫが出力される。
【００８４】
例えば、図９では、サンプリングクロックＳＹＳＣＬＫの立ち下がりでＮＥＧＥＮ１が立つ場合を示しており、ＮＥＧＥＮ１が立ち上がると、ＰＯＳＥＮ１出力用のＦＦ５０２はリセットされるため、ＰＯＳＥＮ１は次のＳＹＳＣＬＫの立ち上がりでセットされない回路になっている。
【００８５】
一方、ＬＯＷカウンター制御回路１０８は、図５の下半分に示している。図５に示すように、ＦＦ５０７、５０９のＤ入力にはデータＤＵＴＹ調整部１０３からのＳＤＬをインバータ５０６で反転した信号が与えられ、ＦＦ５０７のＣＫ端子には、サンプリングクロックＳＹＳＣＬＫがＦＦ５０９のＣＫ端子にはサンプリングクロックＳＹＳＣＬＫをインバータ５０１で反転した信号が接続されている。
【００８６】
ＦＦ５０７とＦＦ５０９は、サンプリングクロックＳＹＳＣＬＫのどちらかのエッジで、ＳＤＬがＬＯＷになるのを検出してＰＯＳＥＮ２とＮＥＧＥＮ２を出力する。
【００８７】
ＦＦ５０７のリセット端子ＲＢには、ＮＥＧＥＮ２をインバータ５０８で反転した信号が与えられ、ＦＦ５０９のリセット端子ＲＢには、ＰＯＳＥＮ２をインバータ５１０で反転した信号が与えられる。
【００８８】
ＦＦ５０７からのＱ出力ＰＯＳＥＮ２はＡＮＤ回路５１４の一方に与えられ、このＡＮＤ回路５１４の他方の入力はサンプリングクロックＳＹＣＬＫをインバータ５０１で反転された信号が与えられ、このＡＮＤ回路５１４の出力がＯＲ回路５１６の一方の入力として与えられる。
【００８９】
また、ＦＦ５０９からのＱ出力ＮＥＧＥＮ２はＡＮＤ回路５１５の一方に与えられ、このＡＮＤ回路５１５の他方の入力はサンプリングクロックＳＹＣＬＫが与えられ、このＡＮＤ回路５１５の出力がＯＲ回路５１６の他方の入力として与えられる。ＯＲ回路５１６からＬＯＷカウンター制御回路１０８の出力としてＤＬＣＮＴＫが出力される。
【００９０】
サンプリングクロックＳＹＳＣＬＫは送信と受信データの周波数のシステムＣＬＫで、例えば、通信が１００ＭＧＢＰＳのスピードであれば、サンプリングクロックＳＹＳＣＬＫは１００ＭＨｚのシステムクロックを用いている。
【００９１】
シリアルデータＳＤとサンプリングクロックＳＹＳＣＬＫは非同期動作であるため、図９〜図１３に示すように、シリアルデータＳＤがＨＩＧＨになってからサンプリングクロックＳＹＳＣＬＫの立ち上がりが先に検出される場合、サンプリングクロックＳＹＳＣＬＫの立ち下がりが先に検出される場合等の色々なタイミングで動作することが想定できる。
【００９２】
図５に示す回路のＰＯＳＥＮ１はＳＤＨがＨＩＧＨになってから、サンプリングクロックＳＹＳＣＬＫの立ち上がりが先に検出された場合にはＰＯＳＥＮ１がＨＩＧＨになり、サンプリングクロックＳＹＳＣＬＫの立ち下がりが先に検出された場合には、ＮＥＧＥＮ１がＨＩＧＨにセットされる。
【００９３】
図９に示すように、ＮＥＧＥＮ１がＨＩＧＨになった場合には、ＡＮＤゲート５１２とＲゲート５１３でＤＨＣＮＴＣＫが出力されることになる。
【００９４】
ＤＨカウント（ＣＮＴ）ＣＫは、ＨＩＧＨデータ長カウント回路１０６のＨＩＧＨデータ長カウント回路に入力される。また、ＤＬカウント（ＣＮＴ）ＣＫは、ＬＯＷデータ長カウント回路１１０のＬＯＷデータ長カウント回路に入力される。
【００９５】
ＨＩＧＨデータ長カウント回路１０６、ＬＯＷデータ長カウンター回路１１０の回路の一例を図７に示す。なお、これら両回路の動作は類似しているためＨＩＧＨデータ長カウント回路１０６の部分を中心にして詳細説明を行う。
【００９６】
図７の上部に示すように、７０１、７０２はシリアルデータ（ＳＤ）信号を遅らせた信号ＳＤ＿Ｄ１、ＳＤ＿Ｄ２を発生する遅延回路である。
【００９７】
遅延回路７０１からの信号ＳＤ＿Ｄ１は、ＮＡＮＤ論理回路７０４の一方に与えられ、遅延回路７０２からの信号ＳＤ＿Ｄ２はインバータ論理回路７０３を介してＮＡＮＤ論理回路７０４に与えられる。ＮＡＮＤ論理回路７０４は、ＳＤ＿Ｄ１とＳＤ＿Ｄ２信号のインバータ論理からＰＯＳＲＥＳＸを作成し出力する。ＰＯＳＲＥＳＸは、シリアルデータＳＤがＬｏｗからＨｉｇｈに遷移するとＨＩＧＨデータ長カウンター７０７をリセットする信号を生成している。ＨＩＧＨデータ長カウンター７０７のＣＫには、ＤＨＣＮＴＣＫが与えられる。出力としてＨＤＣＮＴを出力している。
【００９８】
また、図７の下部に示すように、遅延回路７０１からの信号ＳＤ＿Ｄ１は、インバータ論理回路７０５を介してＮＡＮＤ論理回路７０６の一方に与えられ、遅延回路７０２からの信号ＳＤ＿Ｄ２はＮＡＮＤ論理回路７０６に与えられる。このＮＡＮＤ論理回路７０６は逆にシリアルデータＳＤがＨｉｇｈからＬｏｗに遷移するとＬＯＷデータ長カウンター７０８をリセットする信号ＮＥＧＲＥＳＸを生成している。ＬＯＷデータ長カウンター７０８のＣＫには、ＤＬＣＮＴＣＫが与えられる。出力としてＬＤＣＮＴを出力している。
【００９９】
上記したように、ＨＩＧＨデータ長カウンター７０７は、シリアルデータＳＤがＬｏｗからＨｉｇｈに遷移するとリセット動作を行い、カウンター７０７のＣＫにはＤＨＣＮＴＣＫが接続されているため、立ち上がりエッジが入るとカウントアップ動作を行い、出力としてＨＤＣＮＴを出力している。
【０１００】
タイミングチャートは図９から図１３に示している。
【０１０１】
ＨＩＧＨサンプル数カウント回路１０５のサンプル数カウンターの出力であるＨＳＣＮＴと、ＨＩＧＨデータ長カウント回路１０６のＨＩＧＨデータ長カウンターの出力であるＨＤＣＮＴはＨＩＧＨサンプル数検出回路１０７のＨＩＧＨサンプル数エラー検出回路に入力されている。
【０１０２】
ＬＯＷサンプル数カウント回路１０９のサンプル数カウンターの出力であるＬＳＣＮＴと、ＬＯＷデータ長カウント回路１１０のＬＯＷデータ長カウンターの出力であるＬＤＣＮＴはＬＯＷサンプル数検出回路１１１のＬＯＷサンプル数エラー検出回路に入力されている。
【０１０３】
ＨＩＧＨサンプル数検出回路１０７、ＬＯＷサンプル数検出回路１１０の回路の一例を図８に示す。なお、これら両回路の動作は類似しているためＬＯＷサンプル数検出回路１０７の部分を中心にして詳細説明を行う。
【０１０４】
ＨＩＧＨカウンター制御回路１０４からの出力であるＰＯＳＥＮ１とＮＥＧＥＮ１信号とサンプルクロックＳＹＳＣＬＫで、ＨＳＬＤ１信号とＨＳＬＤ２信号を出力している。
【０１０５】
図８の上の部分に示すように、コンパレータ８０１は、ＨＳＣＮＴとＨＤＣＮＴを常に比較する組み合わせ回路であり、比較結果が同じである場合にはＬｏｗ、異なる場合にはＨｉｇｈを出力している。
【０１０６】
８０４と８０９は２入力のマルチプレクサであり、ＨＳＬＤ１，２信号がそれぞれＨＩＧＨの場合には、出力としてＨＣＯＭＰＸが選ばれ、Ｌｏｗの場合には、ＦＦ８０５、ＦＦ８０６のＱが出力される回路になっている。
【０１０７】
シリアルデータＳＤをインバータ８０２で反転した信号とＮＥＧＥＮ１の信号がＡＮＤ回路８０３に与えられ、このＡＮＤ回路８０３より、２入力マルチプレクサ８０４へ選択信号ＨＳＬＤ１を与える。また、ＦＦ８０５のＣＫには、サンプリングクロックＳＹＳＬＫをインバータ８０４で反転した信号が与えられる。
【０１０８】
また、シリアルデータＳＤをインバータ８０２で反転した信号とＰＯＳＥＮ１の信号がＡＮＤ回路８０８に与えられ、このＡＮＤ回路８０８より、２入力マルチプレクサ８０９へ選択信号ＨＳＬＤ２を与える。また、ＦＦ８１０のＣＫには、サンプリングクロックＳＹＳＬＫが与えられる。
【０１０９】
従って、ＦＦ８０５は、ＨＳＬＤ１のＨＩＧＨでサンプリングＳＹＳＣＬＫの立ち下がりのタイミングでコンパレータ８０１の比較結果が異なっていればＨＳＥＲＲ１を出力することになり、ＦＦ８１０は、ＨＳＬＤ２のＨＩＧＨでサンプリングクロックＳＹＳＣＬＫの立ち上がりのタイミングでコンパレータ８０１の比較結果が異なっていればＨＳＥＲＲ２を出力する。ＨＳＥＲＲ１とＨＳＥＲＲ２はＯＲゲート８２１により、ＨＳＥＲＲを出力する。
【０１１０】
上記のタイミングチャートは、図９から図１３に示す。
【０１１１】
また、図８の下の部分に示すように、コンパレータ８１１は、ＬＳＣＮＴとＬＤＣＮＴを常に比較する組み合わせ回路であり、比較結果が同じである場合にはＬｏｗ、異なる場合にはＨｉｇｈを出力している。
【０１１２】
８１４と８１９は２入力のマルチプレクサであり、ＬＳＬＤ１，２信号がそれぞれＨＩＧＨの場合には、出力としてＬＣＯＭＰＸが選ばれ、Ｌｏｗの場合には、ＦＦ８１５、ＦＦ８１６のＱが出力される回路になっている。
【０１１３】
シリアルデータＳＤとＮＥＧＥＮ２の信号がＡＮＤ回路８１３に与えられ、このＡＮＤ回路８１３より、２入力マルチプレクサ８１４へ選択信号ＬＳＬＤ１を与える。また、ＦＦ８１５のＣＫには、サンプリングクロックＳＹＳＬＫをインバータ８１６で反転した信号が与えられる。
【０１１４】
また、シリアルデータＳＤとＰＯＳＥＮ２の信号がＡＮＤ回路８１８に与えられ、このＡＮＤ回路８１８より、２入力マルチプレクサ８１９へ選択信号ＬＳＬＤ２を与える。また、ＦＦ８２０のＣＫには、サンプリングクロックＳＹＳＬＫが与えられる。
【０１１５】
従って、ＦＦ８１５は、ＬＳＬＤ１のＬＯＷでサンプリングＳＹＳＣＬＫの立ち上がりのタイミングでコンパレータ８１１の比較結果が異なっていればＬＳＥＲＲ１を出力することになり、ＦＦ８２０は、ＬＳＬＤ２のＨＩＧＨでサンプリングクロックＳＹＳＣＬＫの立ち下がりのタイミングでコンパレータ８１１の比較結果が異なっていればＬＳＥＲＲ２を出力する。ＬＳＥＲＲ１とｌＳＥＲＲ２はＯＲゲート８２２により、ＬＳＥＲＲを出力する。
【０１１６】
図９のタイミングチャートで、サイクル６でＣＤＲ回路１０１からのサンプリングクロックＳＣＬＫが出力されていない場合（９０１のポイント）には、ＨＳＣＮＴが２であり、ＨＤＣＮＴが３となるので、ＨＳＥＲＲ１を出力することになり、サンプリングクロックの抜けに対してエラーを検出できる。
【０１１７】
また、サンプリングクロックが必要な数よりも多く出力される場合も、ＨＳＣＮＴの値が、ＨＤＣＮＴの値よりも多くなるため、同様にエラーを検出することができる。
【０１１８】
図１に示した、サンプルＣＫエラー検出回路１０２で、サンプリングＣＫが受信データを正しく取り込むために必要な、シリアルデータＳＤに対してセットアップとホールドタイミングを守りながら出力されているかを、チェックしタイミングが満たされていない場合にはエラーを検出できる。
【０１１９】
また、サンプルＣＫエラー検出回路１０２では、検出できないサンプルＣＫの抜けや、サンプルＣＫが多く出過ぎる場合には、データＨＩＧＨ期間エラー検出回路１１２、データＬＯＷ期間検出回路１１３にてエラーを検出できる。そのため、ＣＤＲ回路１０２が発生するサンプリングクロックＳＣＬＫのエラーが検出できる。
【０１２０】
この発明におけるＣＤＲ回路のエラー検出回路は、高速シリアル通信システムで使用されているＣＤＲ回路に対して適応できるものである。
【０１２１】
【発明の効果】
上記したように、この発明によれば、データが遷移するたびにクロック数をチェックするため、データ通信の全期間のクロック数を比較するのに比べてエラーを早期に発見することができる。
【０１２２】
更に、この発明は、シリアル通信の受信動作部で、ＣＤＲ回路の出力するシリアルデータを取り込むためのサンプリングＣＫとシリアルデータＳＤを入力として、サンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを、シリアルデータＳＤがＨＩＧＨ期間に対してエラーを検出する回路とシリアルデータＳＤがＬＯＷ期間にエラーを検出する回路をそれぞれ設けて、エラーを検出するように構成することで、、通信レートで毎サイクル変化するシリアルデータに対してもタイミングエラーを検出することができる。また、エラーの検出をデータ遷移ごとに行うため、受信データのエラー訂正用符号でチェックするのに比較して、早期にエラーを検出することが可能であり、データ通信のエラー処理に要する時間も短くなるため、データ通信のスループットが向上する。
【０１２３】
更に、この発明は、シリアルデータＳＤのＬＯＷからＨＩＧＨへの遷移を検出する毎に、ＨＩＧＨ期間に対するエラー検出回路の一部又は全てをリセットし、シリアルデータのＨＩＧＨからＬＯＷへの遷移を検出毎に、ＬＯＷ期間に対するエラー検出回路の一部又は全てをリセットするように構成することで、通信レートで毎サイクル変化するシリアルデータに対してもタイミングエラーを検出することができる。
【０１２４】
更に、この発明は、ＣＤＲ回路の出力するシリアルデータＳＤを取り込むためのサンプリングＣＫとシリアルデータＳＤと通信レートと同等の周波数を持つ受信側のシステムＣＫを入力として、シリアルデータＳＤがＨＩＧＨ期間であるデータ長をシステムＣＫでカウントするカウント回路とシリアルデータＳＤがＬＯＷ期間であるデータ長をシステムＣＫでカウントするカウント回路をそれぞれ持ち、それぞれの結果とＣＤＲ回路が出力するサンプリングクロックを数えるカウント回路をそれぞれ比較してシリアルデータがＨＩＧＨ期間のエラーを検出する回路と、シリアルデータＳＤがＬＯＷ期間のエラーを検出する回路に構成することで、サンプリングＣＫの数が正しい数を出力していない場合には、エラーを検出しエラー信号を出力するためサンプリングＣＫの数が多い場合、少ない場合のどちらのエラーに対してもエラーを検出することが可能である。また、データが遷移する毎にエラー検出を行うため、データ通信の全期間のクロック数を比較するのに比べてエラーを早期に発見することができる。
【０１２５】
又、この発明は、シリアルデータＳＤのＬＯＷからＨＩＧＨへの遷移を検出する毎に、ＨＩＧＨ期間に対するエラー検出回路の一部又は全てをリセットし、シリアルデータのＨＩＧＨからＬＯＷへの遷移を検出毎に、ＬＯＷ期間に対するエラー検出回路の一部又は全てをリセットすることで、通信レートで毎サイクル変化するシリアルデータに対してもタイミングエラーを検出することができる。
【０１２６】
又、この発明は、シリアルデータＳＤのＬＯＷ期間とＨＩＧＨ期間を正確に測定するために、送信側の周波数で動作するシリアルデータＳＤそのものを用いるのではなく、シリアルデータＳＤのＨＩＧＨ期間を引き延ばした信号とシリアルデータＳＤのＬＯＷ期間を引き延ばした信号を用い、シリアルデータＳＤのデータ長をシステムＣＫでカウントすることで、送信部と受信部の周波数偏差がおきても誤検出を起こさないにエラー検出回路が構成できる。
【図面の簡単な説明】
【図１】この発明の第１の実施形態を示すブロック回路図である。
【図２】この発明のサンプルリングクロック（ＣＫ）エラー検出回路の一例の詳細を示す回路図である。
【図３】図２に示すサンプルリングクロック（ＣＫ）エラー検出回路のタイミングチャートである。
【図４】この発明に用いられるシリアルデータＳＤ信号のデューティ比を変更するデータＤＵＴＹ調整部の一例を示す回路図である。
【図５】この発明に用いられるＨＩＧＨカウンター制御回路、ＬＯＷカウンター制御回路の一例を示す回路図である。
【図６】この発明に用いられるＨＩＧＨサンプル数カウント回路、ＬＯＷサンプル数カウント回路の一例を示す回路図である。
【図７】この発明に用いられるＨＩＧＨデータ長カウント回路、ＬＯＷデータ長カウント回路の一例を示す回路図である。
【図８】この発明に用いられるＨＩＧＨサンプル数エラー検出回路、ＬＯＷサンプル数エラー検出回路の一例を示す回路図である。
【図９】この発明の実施形態にかかるサンプルクロックエラー検出動作を示すタイミングチャートである。
【図１０】この発明の実施形態にかかるサンプルクロックエラー検出動作を示すタイミングチャートである。
【図１１】この発明の実施形態にかかるサンプルクロックエラー検出動作を示すタイミングチャートである。
【図１２】この発明の実施形態にかかるサンプルクロックエラー検出動作を示すタイミングチャートである。
【符号の説明】
１０１  ＣＤＲ回路
１０２  サンプルクロック（ＣＫ）エラー検出回路
１１４  サンプリングクロックエラー検出回路
１０３  データ・デューティ（ＤＵＴＹ）調整部
１１２  データ・ハイ（ＨＩＧＨ）期間エラー検出回路
１１３  データ・ロー（ＬＯＷ）期間エラー検出回路
１０４  ＨＩＧＨカウンター制御回路
１０５  ＨＩＧＨサンプル数カウント回路
１０６  ＨＩＧＨデータ長カウント回路
１０７  ＨＩＧＨサンプル数エラー検出回路
１０８  ＬＯＷカウンター制御回路
１０９  ＬＯＷサンプル数カウント回路
１１０  ＨＩＧＨデータカウント回路
１１１  ＬＯＷサンプル数エラー検出回路
【図１】
2004242243.tif 000003
【図２】
2004242243.tif 000004
【図３】
2004242243.tif 000005
【図４】
2004242243.tif 000006
【図５】
2004242243.tif 000007
【図６】
2004242243.tif 000008
【図７】
2004242243.tif 000009
【図８】
2004242243.tif 000010
【図９】
2004242243.tif 000011
【図１０】
2004242243.tif 000012
【図１１】
2004242243.tif 000013
【図１２】
2004242243.tif 000014