(57)【要約】【課題】デジタルロジック回路で安定したクロック抽出を可能とするクロック抽出回路の提供。【解決手段】クロック抽出回路は部クロック信号で駆動されるカウンタ（ＣＮＴ）と、前記内部クロック信号の各サイクルについて、カウンタ値と受信データの変化の有無の監視結果から、前記受信データの変化の進み、遅れ具合に応じて、次のサイクルでのカウンタ値を、通常の１つよりも余計に進めるか、現在のカウンタ値を保持し、前記カウンタ値の予め定められた所定のデータ変化許容範囲内の中心側で前記受信データが変化するように制御し、前記カウンタ値が予め定められた所定値のとき、次のサイクルでの抽出クロック信号の反転の有無を決定するデジタルロジックで構成された制御回路（ＣＴＲＬ）を備える。【選択図】図１
2012065252.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号でサンプリングされ同期化された受信データから第２のクロック信号を抽出するクロック抽出回路であって、
前記第１のクロック信号で駆動され、カウンタ値を巡回的に変化させるカウンタと、
前記第１のクロック信号と、前記受信データと、前記カウンタのカウンタ値を受け、前記第２のクロック信号を出力するデジタルロジックで構成された制御回路と、
を備え、
前記制御回路は、
前記第１のクロック信号の各サイクルで、
前記カウンタ値と、
前記受信データの変化の有無と、
の監視結果から、
前記サイクルの次のサイクルで、
前記カウンタ値を１つ進める、
前記カウンタ値を１よりも多く進める、
前記カウンタ値をそのまま保持する、
のいずれとするかを決定し、前記受信データの変化の進み・遅れ具合に応じて、次の受信データの変化が、前記カウンタ値の予め定められた所定範囲に対応するデータ変化許容範囲内の中心側に位置するように制御し、
さらに、前記サイクルの前記カウンタ値が予め定められた所定の値であるとき、次のサイクルでの前記第２のクロック信号の反転の有無を決定する、ことを特徴とするクロック抽出回路。
【請求項２】
前記制御回路は、
前記カウンタ値が予め定められた所定の値となるサイクルで、前記受信データの変化があり、且つ、
前記サイクルから、過去、予め定められた所定数のサイクル以内で受信データの変化が検出されている場合、
同期エラーと判定し、前記カウンタをリセットする制御を行う、ことを特徴とする請求項１記載のクロック抽出回路。
【請求項３】
前記制御回路は、
前記カウンタ値が予め定められた第１の所定値となるサイクルで、前記受信データの変化があり、且つ、
前記サイクルから、過去、予め定められた所定数のサイクル以内に受信データの変化が検出されず、
過去ｍ回（ｍは予め定められた正整数）の受信データの変化が全て前記カウンタ値が前記第１の所定値のときに生じている場合、
次のサイクルで、前記第１の所定値のカウンタ値をそのまま保持させ、
過去ｍ回の受信データの変化が、前記カウンタ値が前記第１の所定値以外の値でも生じている場合、
次サイクルで、前記カウンタ値を１つ進め、
前記カウンタ値が予め定められた第２の所定値となるサイクルで、
前記受信データの変化があり、且つ、
過去ｍ回の受信データの変化が全て前記カウンタ値が前記第２の所定値のときに生じている場合、
次のサイクルで前記カウンタ値を２つ進めさせ、
過去ｍ回の受信データの変化が前記カウンタ値が前記第２の所定値以外の値でも生じている場合、
次のサイクルで、前記カウンタ値を１つ進める、制御を行う、ことを特徴とする請求項１又は２に記載のクロック抽出回路。
【請求項４】
前記制御回路は、
前記カウンタ値が予め定められた所定値となるサイクルで、前記受信データの変化がない場合、次のサイクルで前記第２のクロック信号を第１の論理値から第２の論理値に反転させ、
前記カウンタ値が前記所定の値とは異なる、予め定められた別の所定の値となるサイクルにおいて、次のサイクルで前記第２のクロック信号を前記第２の論理値から前記第１の論理値に反転させる、ことを特徴とする請求項１乃至３のいずれか１項に記載のクロック抽出回路。
【請求項５】
前記制御回路は、
次のサイクルで前記カウンタ値が零となるサイクルにおいて、カウンタリセットを選択する、ことを特徴とする請求項１乃至４のいずれか１項に記載のクロック抽出回路。
【請求項６】
前記第１のクロック信号は、前記第２のクロック信号よりも周波数が高い、ことを特徴とする請求項１乃至５のいずれか１項に記載のクロック抽出回路。
【請求項７】
前記カウンタ値が、第１の値から第ｎの値を巡回的にとり、前記第１の値から第ｎの値の１つが零であり、
前記受信データは、安定時、前記カウンタ値が第ｎの値で変化するものとし、
前記制御回路は、
前記カウンタ値が、前記第１の値となるサイクルにおいて、
前記受信データの変化がある場合、
前記カウンタ値が前記第１の値となる前記サイクルから、過去、予め定められた所定数のサイクル以内に、受信データの変化が検出された場合、
同期エラーと判定し、カウンタをリセットし、
前記カウンタ値が前記第１の値となる前記サイクルにおいて、
前記受信データの変化があるとき、前記カウンタ値が前記第１の値となる前記サイクルから、過去、予め定められた所定サイクル以内に、受信データの変化が未検出であり、且つ、
過去ｍ回（ｍは予め定められた正整数）の受信データの変化が、全てカウンタ値が前記第１の値のときである場合、
次のサイクルで、前記サイクルのカウンタ値である第１の値を保持し、
前記カウンタ値が前記第１の値となる前記サイクルから、過去、予め定められた所定サイクル以内に受信データの変化が未検出であり、且つ、
過去ｍ回の受信データの変化が、カウンタ値が前記第１の値のとき以外にもある場合、
次のサイクルで、前記カウンタ値を１つインクリメントし、
前記カウンタ値が、前記第１の値となるサイクルにおいて、
前記受信データの変化が無いとき、
次のサイクルでカウンタ値を１つインクリメントする制御を行い、
前記制御回路は、
前記カウンタ値が第２の値となるサイクルにおいて、
前記受信データの変化があるとき、
前記カウンタ値が第２の値となる前記サイクルから過去、予め定められた所定サイクル以内に受信データの変化が未検出である場合、
カウンタ値を保持し、
前記カウンタ値が第２の値となる前記サイクルから過去、予め定められた所定サイクル以内に受信データの変化が検出された場合、
同期エラーと判定し、次のサイクルでカウンタをリセットし、
前記カウンタ値が第２の値となる前記サイクルにおいて、
前記受信データの変化が無いとき、
次のサイクルでカウンタ値を１つインクリメントする制御を行い、
前記制御回路は、
前記カウンタ値が第３の値となるサイクルにおいて、
前記受信データの変化があるとき、
同期エラーと判定し、次のサイクルでカウンタをリセットし、
前記カウンタ値が前記第３の値となるサイクルにおいて、
前記受信データの変化が無いとき、
次のサイクルでカウンタ値を１つインクリメントし、前記第２のクロック信号を第２の論理値とし、
前記制御回路は、
前記カウンタ値が第４乃至第（ｎ−３）のいずれかの値となる各サイクルにおいて、
前記受信データの変化があるとき、
同期エラーと判定し、次のサイクルで、カウンタをリセットし、
前記第２のクロック信号を第１の論理値とし、
前記カウンタ値が第４乃至第（ｎ−３）のいずれかの値となる前記サイクルにおいて、
前記受信データの変化が無いとき、
次のサイクルでカウンタ値を１つインクリメントする制御を行い、
前記制御回路は、
前記カウンタ値が、第（ｎ−２）の値となるサイクルにおいて、
前記受信データの変化があるとき、
次のサイクルでカウンタ値を２つ進め、前記第２のクロック信号を第１の論理値とし、
前記サイクルで前記カウンタ値が前記第（ｎ−２）の値であり、前記受信データの変化が無いとき、
次のサイクルでカウンタ値を１つインクリメントする制御を行い、
前記制御回路は、
前記カウンタ値が第（ｎ−１）の値となるサイクルにおいて、
前記受信データの変化が有る場合、
過去ｍ回（ｍは予め定められた正整数）の受信データに関して受信データの変化が全てカウンタ値が前記第（ｎ−１）の値のときである場合、
次のサイクルでカウンタ値を２つ進め、第２のクロック信号を第１の論理値とし、
過去ｍ回の受信データの変化が、カウンタ値が第（ｎ−１）の値のとき以外にもある場合、
次のサイクルでカウンタ値を１つインクリメントし、前記第２のクロック信号を第１の論理値とし、
前記カウンタ値が第（ｎ−１）の値となるサイクルにおいて、
前記受信データの変化が無い場合、
次のサイクルでカウンタ値を１つインクリメントし、前記第２のクロック信号を第１の論理値とする制御を行い、
前記カウンタ値が第ｎの値となるサイクルにおいて、
受信データの変化が有る場合と無い場合のいずれの場合も、次のサイクルでカウンタ値を第１の値とし、
前記カウンタ値が第ｎの値となるサイクルにおいて、
前記受信データの変化が有る場合、前記サイクルから過去、予め定められた所定サイクル以内に受信データの変化が検出された場合、同期エラーを出力する請求項１乃至６のいずれか１項に記載のクロック抽出回路。
【請求項８】
送信回路から送信された信号を受信し、デジタル信号の受信データを出力する受信回路と、
前記受信回路から出力される受信データを、前記第１のクロック信号でサンプルして同期化させる複数段のフリップフロップと、
前記複数段のフリップフロップから出力される同期化された受信データを入力するクロック抽出回路と、
前記複数段のフリップフロップから出力される前記同期化された受信データを、前記クロック抽出回路から出力された第２のクロック信号でサンプルするフリップフロップと、
を備え、
前記クロック抽出回路が、請求項１乃至７のいずれか１項のクロック抽出回路からなる受信装置。
【請求項９】
前記受信回路は、無線信号を受信する無線受信回路からなる、請求項８記載の受信装置。
【請求項１０】
前記受信回路は、有線シリアル信号を受信する受信回路からなる、請求項８記載の受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力デジタルデータからクロックを抽出するクロック抽出回路と該クロック抽出回路を備えた受信装置に関する。
【背景技術】
【０００２】
受信データからクロック信号を抽出するクロック抽出回路ではＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ：位相同期ループ）回路を用い、受信データに位相同期したクロック信号を抽出し、該抽出したクロック信号で受信データをサンプリングする構成が多用されている。図９は、クロック抽出回路の典型的な構成の一例を示す図である。図９において、受信装置１００は無線受信回路１０１、アナログＰＬＬ回路１０２、フリップフロップ（ＦＦ）１０３を備えている。無線受信回路１０１は、送信装置２００の無線送信回路２０１から無線送信された無線信号（例えば可視光、電波等）を光電気変換器、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）受信機等で受信し、アナログ受信信号をアナログデジタル変換器（不図示）でデジタル信号に変換し受信データを出力する。アナログＰＬＬ回路１０２は、無線受信回路１０１からの受信データを基準信号として受け、該基準信号に位相同期した抽出クロック信号を出力する。フリップフロップ１０３は、無線受信回路１０１から出力される受信データを、アナログＰＬＬ回路１０２からの抽出クロック信号でサンプルし抽出データとして出力する。アナログＰＬＬ回路１０２において位相同期しない場合、同期エラーを出力する。
【０００３】
アナログＰＬＬは、例えば図１０に示すように、受信データ（ＦＲＥＦ）と帰還分周信号（ＦＣＫＶ）の位相・周波数の差を検出する位相周波数比較器（ＰＦＤ：Ｐｈａｓｅ  Ｆｒｅｑｕｅｎｃｙ  Ｄｅｔｅｃｔｏｒ）及びＰＦＤで検出された位相差に応じた電圧を生成するチャージポンプ（ＣＰ）と、チャージポンプ（ＣＰ）の電圧を平滑化するループフィルタ（ＬＦ）と、ループフィルタ（ＬＦ）の出力電圧を制御電圧として受け、制御電圧に応じて発振周波数が可変される電圧制御発振器（ＶＣＯ）と、ＶＣＯの出力クロック（ＦＶＣＯ）をＮ分周したＰＦＤに帰還させる分周器（÷Ｎ）を備えている。なお、図１０は非特許文献１のＦｉｇ．１から引用したものである。
【０００４】
アナログＰＬＬは、例えばループフィルタ（ＬＦ）等が抵抗や容量といったアナログ素子を用いて構成されるため、素子数（部品点数）が多くなり、回路面積の増加等の問題のほか、電源電圧の低下（低電圧化）による特性の劣化等の問題がある。近年の装置は、小型化が進み、そのためには部品点数を少なくすることが必須である。ＰＬＬ等をデジタル回路で実現することで、ＦＰＧＡ（Ｆｌｏａｔｉｎｇ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）等のデジタル半導体デバイスで実現することができるため、部品点数が格段に少なくなる。
【０００５】
アナログＰＬＬの上記問題点を解消するために、アナログＰＬＬの素子をすべてデジタル構成に置き換えた全デジタルＰＬＬ（Ａｌｌ  Ｄｉｇｉｔａｌ  ＰＬＬ：ＡＤＰＬＬ）の開発も進められている。全デジタルＰＬＬ（ＡＤＰＬＬ）は、例えば図１１に示すように、図１０のＰＦＤのかわりに、位相差をデジタル符号に変換するＰ２Ｄ（Ｐｈａｓｅ  ｔｏ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｏｒ）、Ｐ２Ｄの出力を平滑化するデジタルループフィルタ（Ｄｉｇｉｔａｌ  ＬＦ）、デジタルループフィルタからのデジタル信号に応じて発振周波数を可変させるデジタル制御発振器（Ｄｉｇｉｔａｌｌｙ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ  ：ＤＣＯ）を備え、ＤＣＯの出力クロックをＮ分周してＰ２Ｄに帰還させる分周器（÷Ｎ）を備えている。
【０００６】
デジタル方式のクロック抽出回路は有線通信等の通信環境の安定した受信ジッタの小さい通信システムでは実現されているが、例えば無線通信で使用する場合、外的要因の少ない受信ジッタの小さな安定した環境でしか使用することができない。その理由は以下の通りである。
【０００７】
通常の有線による通信と比較して、例えば電波無線通信や赤外線通信、可視光通信等は、磁場影響、外乱光や反射光などの影響を受けやすい。このため、受信データのジッタが大きくなりやすい。このようにジッタの大きな受信データからクロック抽出を行うことはデジタル方式のクロック抽出回路では困難であった。
【０００８】
例えば図１１に示した全デジタルＰＬＬのＰ２Ｄを用いてクロック抽出回路を構成した場合、Ｐ２ＤはＴＤＣ（Ｔｉｍｅ  Ｔｏ  Ｄｉｇｉｔａｌ  Ｃｏｎｖｅｒｔｅｒ）を備えている。ＴＤＣは、位相差を検出する二つの信号の一方を遅延させる遅延回路列を備え、遅延回路列の各単位遅延回路の信号を二つの信号の他方で共通にサンプルする複数のフリップフロップを備え、複数のフリップフロップのうち隣接フリップフロップのサンプル値が異なる箇所を検出することで、二つの信号の位相差を単位遅延回路何段分であるかを測定している。このため、測定精度を維持しつつ位相差測定範囲を広げる場合、ＴＤＣの遅延回路列の単位遅延回路１段あたりの遅延時間を短縮し（高速化し）、単位遅延回路の段数を増大し、単位遅延回路の各段の出力をサンプルするフリップフロップの個数、遷移点検出用の論理回路の回路規模を増大させることが必要とされる。このため、位相同期可能な受信データのジッタ等が制限される。なお、図１１は非特許文献１のＦｉｇ．２から引用したものである。
【０００９】
本願についてサーチされた先行技術文献の特許文献１には、６相クロックを用いて入力データをラッチし６相クロックのうち特定の位相にてリタイミングを行うサンプリング部と、サンプリング部からの出力データの立ち上り／立下りエッジの合った位相を検出し検出結果を出力するエッジ検出部、立ち上り／立下りエッジの合った位相と現在の選択データ位置との比較結果に応じて後段カウンタ部のカウント値を増減させる信号を出力する位相判定部と、カウンタのカウンタ値がしきい値を超えた場合には、データ選択位置を前後に動かすカウンタ部と、サンプリング部の出力データのうち、カウンタ部の出力データに該当するものを後段に出力するデータ選択部を備え、ランダムジッタと周波数ずれに対応可能としたクロック抽出回路とした構成が開示されている。また特許文献２には、データ信号の遷移間の最小時間インターバルを推定し、データ信号の遷移にそれぞれ対応する複数のパルスを生成し、これらパルスの各々の持続時間を推定された最小時間インターバルに基づいて調整し、調整されたパルスを狭帯域フィルタに入力し、推定された最小時間インターバルに基づいて、狭帯域フィルタの中心周波数を判定し、調整されたパルスから狭帯域フィルタを用いてクロック信号を抽出する構成が開示されている。後述されるように、本発明は、上記特許文献等とは相違した設計方式のクロック抽出回路を提案するものである。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−１５１１２号公報
【特許文献２】特表２００３−５２６２２５号公報
【非特許文献】
【００１１】
【非特許文献１】Volodymyr Kratyuk, et al.,  "A Design Procedure for All-Digital Phase-Locked Loops Based on a Charge-Pump Phase-Locked-Loop Analogy", IEEE TRANSACTION ON CIRCUITS AND SYSTEMS II: EXPRESS BRIEFS, VOL. 54, NO.3, MARCH, 2007, pp. 247-251
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以下に関連技術の分析を与える。
【００１３】
上記したように、受信装置のクロック抽出回路において、受信データから安定したクロック信号を抽出するには、外的要因の少ない安定した環境下でデータを受信し、アナログＰＬＬ回路を用いる必要がある。このため、回路面積や部品点数が多くなる。
【００１４】
また、デジタル方式のクロック抽出回路において、ジッタの大きな受信データから安定したクロック抽出を行うことは困難である。
【００１５】
したがって、本発明の目的は、受信データからクロックを抽出する回路であって、デジタルロジック回路で安定したクロック抽出を可能とするクロック抽出回路と該クロック抽出回路を備えた受信装置を提供することにある。
【課題を解決するための手段】
【００１６】
本願で開示される発明は概略以下の構成とされる。
【００１７】
本発明によれば、第１のクロック信号でサンプリングされ同期化された受信データから第２のクロック信号を抽出するクロック抽出回路であって、
前記第１のクロック信号で駆動され、カウンタ値を巡回的に変化させるカウンタと、
前記第１のクロック信号と、前記受信データと、前記カウンタのカウンタ値を受け、前記第２のクロック信号を出力するデジタルロジックで構成された制御回路と、
を備え、
前記制御回路は、
前記第１のクロック信号の各サイクルについて、
前記カウンタ値と、
前記受信データの変化の有無と
の監視結果から、
前記サイクルの次のサイクルで、
前記カウンタ値を１つ進める、
前記カウンタ値を１よりも多く進める、
前記カウンタ値をそのまま保持する、
のいずれとするかを決定し、前記受信データの変化の進み・遅れ具合に応じて、次の受信データの変化が、前記カウンタ値の予め定められた所定範囲に対応するデータ変化許容範囲内の中心側に位置するように制御し、
さらに、前記サイクルでのカウンタ値が予め定められた所定の値であるとき、次のサイクルでの前記第２のクロック信号の反転の有無を決定するクロック抽出回路が提供される。
【発明の効果】
【００１８】
本発明によれば、デジタルロジック回路で安定したクロック抽出することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態の構成を説明する図である。
【図２】本発明の一実施形態の動作を説明するタイミング図である。
【図３】本発明の一実施形態の動作を説明するタイミング図である。
【図４】本発明の一実施形態の動作を説明するタイミング図である。
【図５】本発明の一実施形態の動作を説明するタイミング図である。
【図６】本発明の一実施形態の動作を説明するタイミング図である。
【図７】本発明の一実施形態のクロック抽出回路の動作仕様を説明する図である。
【図８】図７のカウンタ値の制御を説明する図である。
【図９】クロック抽出回路の典型回路の一例を示す図である。
【図１０】アナログＰＬＬの構成を示す図である。
【図１１】全デジタルＰＬＬの構成を示す図である。
【発明を実施するための形態】
【００２０】
本発明に係るクロック抽出回路は、例えば、電波無線通信や赤外線通信、可視光通信などの無線通信システムにおいて、受信したデータからクロックを抽出して受信処理を行う受信回路に配設される。本発明の一形態においては、第１のクロック信号（抽出用内部クロック信号）でサンプリングされ同期化された受信データから第２のクロック信号（抽出クロック信号）を抽出するクロック抽出回路は、第１のクロック信号（抽出用内部クロック信号）で駆動されるカウンタ（ＣＮＴ）と、前記第１のクロック信号と、前記受信データと、前記カウンタのカウンタ値を受け、前記第２のクロック信号を出力するデジタルロジックで構成された制御回路とを備えている。カウンタ（ＣＮＴ）は、第１のクロック信号（抽出用内部クロック信号）をカウンタクロックとして、下限値と上限値の間で巡回的にカウント動作する。例えば下限値からカウントアップし、上限値に達した場合、次のカウンタクロックで下限値に戻り、再び、カウントアップ動作する。あるいは上限値からカウントダウンし、下限値に達した場合、次のカウンタクロックで上限値に戻り、再び、カウントダウン動作する制御回路（ＣＴＲＬ）は、第１のクロック信号（抽出用内部クロック信号）と、同期化された受信データと、前記カウンタのカウンタ値とを入力し、第１のクロック信号（抽出用内部クロック信号）の各サイクルでのカウンタ値と、受信データの変化の有無との監視結果から、前記受信データの変化の進み・遅れ具合に応じて、次のサイクルでの前記カウンタ値の進め方として、
・次のサイクルでは、現在のサイクルのカウンタ値を、通常通り１つ進めるか、
・次のサイクルでは、現在のサイクルのカウンタ値をそのまま保持するか、あるいは、
・次のサイクルでが、現在のサイクルのカウンタ値を１つよりも余計に進めるか、
を決定し、次の受信データの変化が、前記カウンタ値の所定範囲に対応するデータ変化許容範囲の中心側に位置するように制御する（受信データの変化がデータ変化許容範囲の中心に位置するように、データ変化許容範囲の受信データの変化に対する位置を相対的に移動させる）。
【００２１】
すなわち、本発明の一実施形態において、制御回路は、第１のクロック信号（抽出用内部クロック信号）の各サイクルでのカウンタ値と、受信データの変化の有無と、の監視結果に基づき、受信データの変化がデータ変化許容範囲から外れそうな場合には、受信データの変化が、該データ変化許容範囲の中心側に位置するように、次のサイクルのカウンタ値を制御する。さらに、制御回路は、カウンタ値が予め定められた所定値のサイクルにおいて、次のサイクルでの前記第２のクロック信号の反転の有無を決定する。
【００２２】
本発明の一態様において、前記制御回路は、前記カウンタ値が予め定められた所定の値をとるサイクルで、前記受信データの変化があり、且つ、前記サイクルから、過去、予め定められた所定サイクル以内で受信データの変化が検出されている場合には、同期エラーと判断し、同期エラー信号を出力するとともに、前記カウンタ値を零にリセットする制御を行う構成としてもよい。
【００２３】
本発明の一態様において、前記制御回路は、前記カウンタ値が予め定められた第１の所定値となるサイクル（現在のサイクル）で、前記受信データの変化があり、且つ、前記サイクルから、過去予め定められた所定サイクル以内に受信データの変化が検出されず、現在のサイクルから過去ｍ回（ｍは予め定められた正整数）の受信データの変化が、全て、前記カウンタ値が前記第１の所定値のときに生じている場合、次のサイクルで、現在のサイクルのカウンタ値をそのまま保持させる（次の受信データの変化はデータ変化許容範囲の中心側に１サイクル移動）。一方、過去ｍ回の受信データの変化が、前記カウンタ値が前記第１の所定値以外の値でも生じている場合、次のサイクルで前記カウンタ値を１つ進める（次のサイクルの受信データとデータ変化許容範囲の相対位置を移動させない）制御を行う。
【００２４】
本発明の一態様において、前記制御回路は、前記カウンタ値が予め定められた第２の所定値となるサイクルで、前記受信データの変化があり、且つ、過去ｍ回の受信データの変化が、全て前記カウンタ値が前記第２の所定値のときに生じている場合、次のサイクルで、前記カウンタ値を２つ進めさせ（次の受信データの変化はデータ変化許容範囲に中心側に１サイクルに移動）、過去ｍ回の受信データの変化が、前記カウンタ値が前記第２の所定値以外の値でも生じている場合、次のサイクルで前記カウンタ値を１つ進める（次のサイクルの受信データの変化とデータ許容範囲の相対位置を移動させない）制御を行う。
【００２５】
本発明の一態様において、前記制御回路は、前記カウンタ値が予め定められた所定値となるサイクルで、前記受信データの変化がない場合、次のサイクルで前記第２のクロック信号を、第１の論理値から第２の論理値に反転させ、前記カウンタ値が前記所定の値とは異なる予め定められた別の所定の値となるサイクルで、前記第２のクロック信号を前記第２の論理値から前記第１の論理値に反転させる構成としてもよい。以下、具体的な実施形態に即して説明する。
【００２６】
図１は、本発明の一実施形態の構成を示す図である。図１において、送信装置２０は、無線送信回路２１からデータを無線で送信出力する。受信装置１０の無線受信回路１１は例えばアンテナで受信した無線信号（ＲＦ信号）を所定周波数帯にダウンコンバートし、アナログデジタル変換したデジタル信号を出力する。あるいは、赤外線通信、可視光通信の場合、無線受信回路１１は、赤外線又は可視光を検出し電気信号に変換する光電気変換器の出力をアナログデジタル変換したデジタル信号を出力する。
【００２７】
データ同期化回路として機能する２段のフリップフロップ１２、１３は、無線受信回路１１から非同期で入力される受信データを、抽出クロック信号の周波数よりも高い周波数の内部クロック信号である抽出用内部クロック信号ＣＬＫで同期化する。
【００２８】
クロック抽出回路１４は、２段のフリップフロップ１２、１３で同期化された受信データからクロック信号を抽出する。クロック抽出回路１４は、受信データを、抽出用内部クロック信号ＣＬＫでサンプリングし、受信データの変化点と、受信データの変化の周期から、次の受信データの変化点を予測し、受信データのジッタを考慮した抽出クロック信号を生成する。
【００２９】
フリップフロップ１５は、フリップフロップ１３の出力端子Ｑからの同期化された受信データをデータ端子Ｄに入力し、クロック抽出回路１４からの抽出クロック信号の立ち上がりエッジでサンプリングし出力端子Ｑから出力する。なお、本発明において、フリップフロップ１５は、クロック抽出回路１４からの抽出クロック信号の立ち上がりエッジでサンプルする構成に限定されるものでないことは勿論である。クロック抽出回路１４からの抽出クロック信号は、受信装置１０内の受信データに同期したクロックの供給を必要とする回路（不図示）に供給される。
【００３０】
本実施形態において、クロック抽出回路１４は、全デジタル回路で構成され、電波無線通信や赤外線通信、可視光通信のような、ジッタの大きい受信データから安定したクロックの抽出を可能としている。
【００３１】
本発明によれば、受信側でクロック抽出を行なう際に、受信データのジッタが大きい場合に対応すべく、デジタル回路のみで安定したクロック抽出を可能とする全く新規のアルゴリズムを創案し、このアルゴリズムをハードウエア記述言語で記述し、クロック抽出回路１４をハードウエアロジック（デジタルロジック）で実装した。ハードウエア回路の構成は、ハードウエア記述言語による記述の仕方、合成ツール等でバリエーションはあるが、図１に示すように、クロック抽出回路１４は、抽出用内部クロック信号ＣＬＫで駆動されるカウンタ（ＣＮＴ）と、同期化された受信データと、抽出用内部クロック信号ＣＬＫと、カウンタ（ＣＮＴ）のカウンタ値とを入力し、次のサイクルのカウント動作を制御する制御信号を出力してカウンタ（ＣＮＴ）を制御し、抽出クロック信号を出力し、正常なクロック信号が抽出できない場合等、同期エラー検出時に、同期化エラー信号を出力する制御を行うデジタルロジック回路（説明のため、制御回路（ＣＴＲＬ）という）を備えている。
【００３２】
クロック抽出回路１４は、受信装置１０の不図示のクロック生成回路で生成された抽出用内部クロック信号ＣＬＫを用いて、受信データをサンプリングし、受信データの変化点（ＨｉｇｈからＬｏｗ、ＬｏｗからＨｉｇｈへの変化）と、その変化の周期から、クロック信号を抽出する。クロック抽出回路１４は、抽出クロック信号を駆動出力する不図示の出力バッファ（ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  ＭＯＳ（Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｔｏｒ））ドライバ）を備えている。
【００３３】
本実施形態において、クロック抽出回路１４は、受信データのジッタの大きい時でも、正しくクロック信号を抽出できるように、過去の受信データの変化の監視結果から、次に受信データが変化するタイミング（サイクル）を予測し、クロック信号の抽出を行う。例えば、１回前の受信データの変化の周期が期待値よりも短ければ、次の受信データの周期は期待値通りか、あるいは期待値よりも長くなることを予測し、カウンタ値の進め方を制御し、受信データの変化が、カウンタの所定のカウンタ値の範囲に対応するデータ変化許容範囲の中心側に位置するように制御し（データ変化許容範囲の受信データの変化に対する相対的な位置を移動させる）、抽出クロック信号の抽出を行う。抽出クロック信号を活性化（例えばＨｉｇｈレベル）とするタイミングは、データ変化許容範囲の一端に対して相対的に予め定められた相対位置のカウンタ値とされ、抽出クロックの立ち上がりエッジが同期化された受信データの中心に位置するように制御される。このため、本実施形態によれば、受信ジッタの大きい無線通信においても、デジタル回路で安定したクロック抽出が可能としている。  
【００３４】
カウンタ（ＣＮＴ）、制御回路（ＣＴＲＬ）は、フリップフロップ等の順序回路、組み合わせ回路からなるデジタルロジック回路で構成され、同期化された受信データの変化と、カウンタ値によって抽出クロック信号を生成する。
【００３５】
カウンタ（ＣＮＴ）は、抽出用内部クロック信号（ＣＬＫ）で駆動され、現在のカウンタ値と、受信データの変化によって、制御回路（ＣＴＲＬ）の制御のもと、次のカウンタ値が決定される。なお、特に制限されないが、カウンタ（ＣＮＴ）は、カウンタ値として０からｎ−１までの値をとり、ｎ−１の次のクロックサイクルで０に戻るアップカウンタとする。
【００３６】
図７は、図１のクロック抽出回路１４の詳細な動作を一覧で示す図である。図７には、クロック抽出回路１４の動作仕様（機能及びタイミング動作仕様）の一例が規定されており、実際のハードウエア回路は、この動作仕様をハードウエア記述言語で記述し、論理合成することで構成されている。抽出用内部クロック信号ＣＬＫは、抽出クロック信号をｎ逓倍相等のクロック信号（周波数がｎ倍）とする。特に制限されないが、抽出用内部クロック信号ＣＬＫのデューティは５０％とし、抽出クロック信号も、安定時（ロック時）等では、デューティは５０％とする。
【００３７】
図７において、カウンタ値欄は、抽出用内部クロック信号ＣＬＫのあるサイクルにおけるクロック抽出回路１４内部のカウンタ値を示している。カウンタ値は０〜ｎ−１をとる。特に制限されないが、以下では、カウンタ値が、ｎ−１の時に、受信データが安定的に変化しているものとする。なお、図７において、受信データは、図１のフリップフロップ１３の出力（同期化された受信データ）である。同期化された受信データが予め定められた所定時間以上変化しなかった場合、同期エラーとする。
【００３８】
受信データの変化欄は、カウンタ値が同一エントリのカウンタ値欄の値のときに（当該クロックサイクルで）、クロック抽出回路１４に入力される受信データ（同期化された受信データ）が変化したか否かを示す。
【００３９】
動作欄は、カウンタ値が同一エントリのカウンタ値欄の値のときに、制御回路が出力する信号（制御信号、抽出クロック信号、同期エラー信号）、カウンタ（ＣＮＴ）の値の変化を示している。なお、図６の動作欄の動作は、カウンタ（ＣＮＴ）を駆動する抽出用内部クロック（ＣＬＫ）の１クロックサイクル内で決定され、カウンタインクリメント、＋２、カウンタ値保持、カウンタリセット、抽出クロック信号＝１／０は、当該サイクルの次のサイクルの抽出用内部クロック（ＣＬＫ）の立ち上がりエッジに同期して実行される。また、受信データは一定時間で必ず変化するため、予め定められた規定時間以上、受信データが変化しなかった場合にも、同期エラーとする。図７の仕様にしたがって、カウンタ値、受信データの有無に応じて抽出クロック信号を生成することで受信データからクロックの抽出が可能となる。
【００４０】
はじめに、図７のカウンタ値０について説明する。
【００４１】
（Ａ１）カウンタ値＝０の当該サイクル（抽出用内部クロック信号ＣＬＫの現在のサイクル）で受信データが変化しない場合、カウンタインクリメントが選択される。すなわち、次のサイクルの抽出用内部クロック信号ＣＬＫのクロックパルスの立ち上がりエッジで１つカウントアップし（カウンタインクリメント）、カウント値＝１となる。
【００４２】
（Ａ２）カウンタ値＝０の当該サイクルで受信データが変化した場合、
（Ａ３）過去２クロックサイクル（ＣＬＫ）以内に受信データの変化未検出の場合、且つ、
（Ａ４）過去ｍ回の受信データ変化が全てカウンタ０の場合、
カウンタ値保持が選択される。すなわち、制御回路（ＣＴＲＬ）は、（Ａ２）且つ（Ａ３）０且つ（Ａ４）の状態を検出すると、カウンタ（ＣＮＴ）をカウントディスエーブル状態とし、これを受け、カウンタ（ＣＮＴ）は、次のサイクルの抽出用内部クロック信号ＣＬＫのクロックパルス（立ち上がりエッジ）を受けても、カウントアップ動作せず、カウント値０を保持する。カウンタ（ＣＮＴ）のカウントディスエーブル状態は次のサイクルでのカウンタインクリメント等の選択による解除される。
【００４３】
（Ａ２）カウンタ値＝０の当該サイクルで受信データが変化した場合、且つ、
（Ａ３）過去２クロックサイクル（ＣＬＫ）以内に受信データの変化未検出の場合、且つ、
（Ａ５）過去ｍ回の受信データ変化が全てカウンタ０以外にもある場合、カウンタ（ＣＮＴ）は、カウンタインクリメントが選択される。この場合、次のサイクルの抽出用内部クロック信号ＣＬＫのクロックパルス（立ち上がりエッジ）で、１つカウントアップし（カウンタインクリメント）、カウンタ値＝１となる。
【００４４】
（Ａ２）カウンタ値＝０の当該サイクルで、受信データが変化した場合、
（Ａ６）過去２クロックサイクル（ＣＬＫ）以内に、受信データの変化が検出された場合、同期エラー発生と判定し、カウンタリセットが選択される。クロック抽出回路１４は同期エラー信号を活性化し、次のサイクルでカウンタ値は０とされる。なお、同期エラー検出時のカウンタリセットは、次のサイクルでなく現在のサイクルで非同期で行う強制リセットとしてもよい。
【００４５】
カウンタ値が０となるとは、
ａ）数ＣＬＫ前に受信データの変化があり、カウンタ値＝０となった場合と、
ｂ）数ＣＬＫ前に受信データの変化がなく、カウンタ値＝０となった場合
がある。
【００４６】
ａ）の状態でカウンタ値＝０となったときに、カウンタ値＝０で受信データに再度変化があれば、同期エラーとなる。
【００４７】
ｂ）の状態で、カウンタ値＝０のときに、カウンタ値＝０で受信データに再度変化があっても同期エラーとはならない。
【００４８】
カウンタ（ＣＮＴ）のカウンタ値が０となるのは、例えば制御回路（ＣＴＲＬ）からのカウンタリセット、又は、直前のサイクルのカウンタ値がｎ−１でカウンタインクリメント動作、直前のサイクルのカウンタ値がｎ−２でカウンタ＋２とする場合等である。
【００４９】
例えばｎ＝８の時、カウンタ（ＣＮＴ）のカウント値が０になるのは、図７より、
１）カウンタ値が０〜４の時に、受信データに変化があった場合、カウンタリセット動作により、カウンタ値＝０、
２）カウンタ値が５の時に受信データに変化があり、カウンタ値を＋２して７とし、次のクロックサイクルで受信データに変化がなかった場合、カウンタリセット動作によりカウンタ値＝０、
３）カウンタ値が６の時に、受信データに変化があった場合、カウンタ＋２として、カウンタ値＝０、
４）カウンタ値が６の時に、受信データに変化がなく、カウンタインクリメントによりカウンタ値を７とし、次のクロックサイクルで、受信データに変化がなかった場合、カウンタリセット動作により、カウンタ値＝０、
５）カウンタ値が７の時、カウンタリセット動作により、カウンタ値＝０、
となる場合である。
【００５０】
１）、３）、５）が発生して、カウンタ値が０になった場合、過去１クロックサイクル（抽出用内部クロック信号ＣＬＫ）で受信データの変化があったか否かで、抽出用内部クロック信号ＣＬＫの当該サイクルで受信データに変化があり、カウンタ値が０になったことの判断が可能であるのに対して、２）や４）では、判断できない。このため、抽出用内部クロック信号ＣＬＫの当該サイクルで受信データに変化があり、カウンタ値が０になったことを検出するために、過去２クロックサイクル（ＣＬＫ）以内に受信データが変化したか否かに基づいて判断を行う。
【００５１】
カウンタ値＝０の当該サイクルで受信データに変化があり、当該サイクルの過去２クロックサイクル以内に受信データの変化が検出された場合、同期エラーとなる（Ａ６）。
【００５２】
本実施形態においては、クロック抽出回路１４の制御回路（ＣＴＲＬ）内には、過去２クロックサイクル（ＣＬＫ）以内に受信データの変化が未検出であるか否かを示すフラグビット（不図示）を備え、このフラグビットは、受信データの変化があるとオンにセットされ、抽出用内部クロック信号ＣＬＫの２クロックサイクルの間、受信データの変化状態が変化無の場合、オフにリセットされる構成とされる。
【００５３】
ｎ＝８の場合、例えばカウンタ値が７の時に受信データが安定的に変化しているものとする。過去ｍ回（ｍ≧１）の受信データの変化が、全てカウンタ値＝０のサイクルで生じるとは、受信データの位相が遅れ気味（１クロックサイクル遅れる）であることに対応する。そこで、受信装置側において受信データの位相の遅れに追従するために、クロック抽出回路１４では、カウンタ値を０に保持する。このように、カウンタ値をずらすことで、データ変化許容範囲の真ん中で受信データが変化するようにしている。すなわち、受信データの変化が現在のサイクルも含めて連続してｍ回カウンタ値＝０で生じた場合、図８（Ａ）に示すように、次のサイクルでカウンタ値＝０を保持し、カウンタ値＝０を２サイクル分連続させることで、次の受信データｄａｔａＮ＋１の変化が、カウンタ値＝７で変化し、データ変化許容範囲（特に制限されないが、カウンタ値＝５〜０）の中心側に位置するようにしている。
【００５４】
図８（Ａ）では、ｎ＝８とされ、図７の仕様に規定されるように、受信データｄａｔａＮ−１についてカウンタ値＝６のサイクルで、抽出クロック信号＝０が選択され、次のサイクルでカウンタ値＝７、抽出クロック信号＝０（Ｌｏｗ）となり、次のサイクルのカウンタ値＝０で受信データｄａｔａＮとなり、次のサイクルでカウンタ値＝０が保持され、カウンタ値＝２のサイクルで、抽出クロック信号＝１が選択され、カウンタ値＝３となる次のサイクル（ＣＬＫ）で抽出クロック信号＝１（Ｈｉｇｈ）となる。受信データｄａｔａＮ＋１はカウンタ値＝７で変化している。抽出クロック信号はＬｏｗが５サイクル（カウンタ値＝７、０、０、１、２）、Ｈｉｇｈが４サイクル（カウンタ値＝３、４、５、６）となる。
【００５５】
安定時、カウンタ値＝７で変化する受信データが、無線伝送路によるジッタ等により、カウンタ値＝６又は０に変化するが、送信側と受信側の周波数誤差等により、受信データの変化がカウンタ値＝０で生じるようになったとする。過去ｍ回（ｍ≧１）連続して受信データ変化がカウンタ値＝０で変化しているかをチェックすることで、一時的なジッタ等により、カウンタ値＝０で受信データが変化したのか、あるいは、送信側と受信側の周波数誤差等によりカウンタ値＝０で受信データが変化するようになったのかを判別している。ｍは、送信側と受信側のクロック周波数許容誤差によって決められる。本実施形態において、ｍ（≧１）の値は、特に制限されないが、例えばｍ＝１６とされる。
【００５６】
なお、過去ｍ回（ｍ≧１）の受信データ変化が全てカウンタ値＝０であるか、カウンタ値＝０以外でも受信データの変化があるかの判定は、特に制限されないが、制御回路（ＣＴＲＬ）において、連続カウンタ（不図示）で構成される。この連続カウンタは、受信データがカウンタ値＝０で変化した場合、カウントアップし、それ以外で変化した場合、連続カウンタは０にリセットされる構成とされる。連続カウンタの値がｍ以上であれば、過去ｍ回（ｍ≧１）の受信データ変化が全てカウンタ０であることに対応し、連続カウンタの値が０からｍ−１であれば、過去ｍ回（ｍ≧１）の受信データ変化がカウンタ０以外にもあることを示している。
【００５７】
次に、図７のカウンタ値１について説明する。
【００５８】
（Ｂ１）カウンタ値が１の当該サイクル（抽出用内部クロック信号ＣＬＫ）で受信データが変化しない場合、カウンタインクリメントが選択される。カウンタ（ＣＮＴ）は次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジで１つカウントアップする（カウンタインクリメント）。
【００５９】
（Ｂ２）カウンタ値１の当該サイクルで受信データが変化した場合、
（Ｂ３）過去３クロックサイクル（ＣＬＫ）以内に受信データの変化未検出の場合、
カウンタ値を保持する。すなわち、制御回路（ＣＴＲＬ）は、（Ｂ２）且つ（Ｂ３）の状態を検出すると、カウンタ（ＣＮＴ）をカウントディスエーブル状態とし、カウンタ（ＣＮＴ）は次の抽出用内部クロック信号ＣＬＫのクロックパルス（立ち上がりエッジ）でもカウントアップ動作しない。
【００６０】
（Ｂ２）カウンタ値１の状態で受信データが変化した場合、
（Ｂ４）過去３クロックサイクル（ＣＬＫ）以内に受信データの変化を検出した場合、同期エラーと判断する。
【００６１】
抽出用内部クロック信号ＣＬＫの当該サイクルで受信データに変化があり、カウンタ値が１になったことが同期エラーでないか否かの判断は、過去３クロックサイクル（ＣＬＫ）以内に受信データの変化未検出であるかによる。これは、カウンタ値＝０で受信データの変化が有りの場合に、過去２クロックサイクル（ＣＬＫ）以内に受信データの変化未検出であるかを判断したことと同じ理由である。すなわち、カウンタ値が１となるとは、
ａ）数クロックサイクル（ＣＬＫ）前に受信データの変化があり、カウンタ値＝１となった場合と、
ｂ）数クロックサイクル（ＣＬＫ）前に受信データの変化がなく、カウンタ値＝１となった場合とがある。
【００６２】
ａ）の状態で、カウンタ値＝１のときに、受信データに再度変化があれば、同期エラーとなる。
【００６３】
ｂ）の状態で、カウンタ値＝１のときに、受信データに再度変化があっても同期エラーとはならない。カウンタ値＝１は、カウンタ値＝０の場合よりも、抽出用内部クロック信号ＣＬＫで１クロック分遅れることに対応し、３クロックサイクルとなっている。
【００６４】
次に、図７のカウンタ値＝２について説明する。
【００６５】
カウンタ値＝２の当該サイクルで、
（Ｃ１）受信データの変化があった場合、同期エラーと判断し、カウンタをリセットする。次のサイクルでカウンタ値＝０となる。
【００６６】
（Ｃ２）受信データの変化がなかった場合、カウンタをインクリメントする。さらに、抽出クロック信号＝１とし、次のサイクルの抽出用内部クロック信号ＣＬＫのクロックパルス（立ち上がりエッジ）でカウンタ値＝３、抽出クロック信号＝１（Ｈｉｇｈ）となる。なお、データ変化許容範囲の後端は、抽出クロック信号＝１（Ｈｉｇｈ）となるサイクルよりも前に位置するように設定される。
【００６７】
次に、図７のカウンタ値＝３〜ｎ−４について説明する。
【００６８】
カウンタ値＝３〜ｎ−４の当該サイクルで、
（Ｄ１）受信データの変化があった場合、同期エラーと判断し、抽出クロックを０（Ｌｏｗ）とし、カウンタをリセットする。次のサイクルでカウンタ値＝０となる。
【００６９】
（Ｄ２）受信データの変化がなかった場合、カウンタをインクリメントする。次のサイクルでカウンタ値＝４〜ｎ−３となる。
【００７０】
次に、図７のカウンタ値＝ｎ−３について説明する。
【００７１】
カウンタ値＝ｎ−３の当該サイクルで、
（Ｅ１）受信データの変化があった場合、カウンタ＋２、抽出クロック信号＝０とする。次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値はｎ−１、抽出クロック信号は０（Ｌｏｗ）となる。
【００７２】
（Ｅ２）受信データの変化がなかった場合、カウンタをインクリメントする。次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値はｎ−２となる。
【００７３】
例えばｎ＝８の例において、通常、カウンタ値＝７で受信データの変化がある場合において、カウンタ値＝５で受信データの変化があった場合、カウンタ値を＋２させ、次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値は７となり、カウンタ値を通常の１つよりも余計に進めて、次に続く受信データの変化が、データ変化許容範囲の中心に位置するように制御する。図８（Ｂ）に示すように、受信データｄａｔａＮは、カウンタ値＝５で立ち上がり変化しており、カウンタ値＝５の次のサイクルで７となる。次の周期の受信データｄａｔａＮ＋１はカウンタ値＝６で変化している。このように、受信データの変化の進み具合に応じて、カウンタ値を通常よりも余計に進めることで、次の周期の受信データｄａｔａＮ＋１の変化がデータ変化許容範囲の中心側に位置するように制御している（データ変化許容範囲を受信データの変化に対して時間的により前にくるように移動させる）。これにより、図１のフリップフロップ１５は、抽出クロック信号によって、受信データ（フリップフロップ１３の出力データ）のデータ期間（ｄａｔａ  ｐｅｒｉｏｄ）の中心付近の値をサンプルすることができる。
【００７４】
次に図７のカウンタ値＝ｎ−２について説明する。
【００７５】
カウンタ値＝ｎ−２のサイクルで、
（Ｆ１）受信データの変化があった場合、
（Ｆ２）過去ｍ回の受信データ変化が全てカウンタｎ−２の場合、カウンタ＋２、抽出クロック信号＝０とする。次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値は６＋２（ｍｏｄ  ８）＝０となり、抽出クロック信号＝０（Ｌｏｗ）となる。
【００７６】
（Ｆ３）過去ｍ回の受信データ変化がカウンタｎ−２以外にもある場合、カウンタ値ｎ−２での受信データの変化は一時的なものと判断し、カウンタインクリメントとする。また抽出クロック信号＝０とする。次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値はｎ−１となり、抽出クロック信号＝０（Ｌｏｗ）となる。
【００７７】
例えばｎ＝８の例において、通常、カウンタ値＝７で受信データの変化がある場合において、カウンタ値＝６で受信データの変化があった場合、カウンタ値を＋２させ、カウンタ値＝６の次にＣＬＫでカウンタ値＝０となり、カウンタ（ＣＮＴ）を通常より余計に進めて、次に続く受信データの変化が、データ変化許容範囲の真ん中に近づくように、データ変化許容範囲を移動させる。図８（Ｃ）に示すように、受信データｄａｔａＮは、カウンタ値＝６で変化しており、カウンタ値＝６の次のクロックサイクルでカウンタ値＝０となる。このため、次周期の受信データｄａｔａＮ＋１は、カウンタ値＝７（データ変化許容範囲に中心）で変化している。このように、カウンタ値＝ｎ−２のとき、受信データの変化の進み具合に応じて、カウンタ値を通常よりも余計に進めることで、次の周期の受信データｄａｔａＮ＋１の変化がデータ変化許容範囲の中心に位置するように制御している。
【００７８】
過去ｍ回の受信データ変化が全てカウンタ値ｎ−２であるか否かは、受信データの変化のタイミングのずれが、ジッタ等による一時的な変化か送信側と受信側の周波数誤差によるものかを判定するものである。
【００７９】
次に図７のカウンタ値＝ｎ−１について説明する。
【００８０】
カウンタ値＝ｎ−１のクロックサイクル（ＣＬＫ）で、
（Ｇ１）受信データの変化があった場合、カウンタをリセットする。
【００８１】
カウンタ値＝ｎ−１で、
（Ｇ１）受信データの変化があった場合、且つ
（Ｇ３）過去１クロックサイクル以内に受信データ変化が検出された場合、同期エラー発生とする。
【００８２】
カウンタ値＝ｎ−１で、
（Ｇ４）受信データの変化がない場合、カウンタをリセットする。
【００８３】
図２から図６は、図７の示した動作仕様にタイミング動作例を示すタイムチャートである。抽出用内部クロックは抽出クロック信号の８速度（ｎ＝８）とする。
【００８４】
図２は、カウンタ値＝７の時に受信データが安定的に変化している場合のタイムチャートである。カウンタ値＝６で受信データに変化が無く、カウンタインクリメント、抽出クロック信号＝０が選択され、次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値＝７となり、受信データが変化しているため、カウンタをリセットし、また、抽出クロック信号が１（Ｈｉｇｈ）から０（Ｌｏｗ）となる。カウンタ値＝２で受信データに変化が無く、カウンタインクリメント、抽出クロック信号＝１が選択され、次のサイクルの抽出用内部クロック信号の立ち上がりエッジでカウンタ値＝３となり、抽出クロック信号が０（Ｌｏｗ）から１（Ｈｉｇｈ）となる。送信側のクロックと受信側のクロックの周波数誤差がほとんどない場合や、無線受信部での受信ジッタがほとんどない場合でも、同期化による誤差により、図２の状態から、１クロック早くなったり遅くなったりする可能性がある。
【００８５】
図３は、受信データｄａｔａＮの変化が、図２よりも、１クロック早くなった場合のタイムチャートである。カウンタ値＝６で受信データｄａｔａＮが変化し、カウンタインクリメント、抽出クロック信号＝０が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝７、抽出クロック信号が１（Ｈｉｇｈ）から０（Ｌｏｗ）となる。カウンタ値＝２で受信データに変化が無く、カウンタインクリメント、抽出クロック信号＝１が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジで、カウンタ値＝３、抽出クロック信号が０（Ｌｏｗ）から１（Ｈｉｇｈ）となる。
【００８６】
カウンタ（ＣＮＴ）は、通常のインクリメント動作を行い、ｄａｔａＮからｄａｔａＮ＋１への変化は、ｄａｔａＮの変化が１クロックサイクル早くなる前のタイミングの間許容される。カウンタ値＝５、６、７、０までの範囲がデータ変化許容範囲となる。ただし、カウンタ値＝６で受信データの変化がｍ回連続して１クロック早くなった場合、この状態で安定したものと判断し、カウンタ（ＣＮＴ）を＋２して、次の受信データの変化の許容範囲を変更する。受信データの変化のタイミングが前回の周期より１クロックサイクル早くなった場合では、次の受信データの変化が２クロックサイクル遅くなることはあるが、２クロックサイクル早くなることはない。すなわち、受信データｄａｔａＮ−１がカウンタ値＝６で変化しており、次のｄａｔａＮは、カウンタ値＝０で変化することはあるが、カウンタ値＝４で変化することはない。
【００８７】
図４は、ｄａｔａＮの変化が、図２より２クロック早くなった場合のタイムチャートである。カウンタ値＝５で受信データが変化し、カウンタ＋２、抽出クロック信号＝０が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジで、カウンタ値＝７となり、抽出クロック信号が１（Ｈｉｇｈ）から０（Ｌｏｗ）となる。カウンタ値＝７で受信データに変化がなく、カウンタリセットが選択され、次の抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝０となる。カウンタ値＝２で受信データに変化が無く、カウンタインクリメント、抽出クロック信号＝１が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジで、カウンタ値＝３、抽出クロック信号が０（Ｌｏｗ）から１（Ｈｉｇｈ）となる。
【００８８】
受信データの変化が前回の周期より２クロックサイクル早くなった場合でも、次の受信データの変化が２クロックサイクル遅くなることはあるが、２クロックサイクル早くなることはない。受信データｄａｔａＮ−１がカウンタ値＝５で変化しており（通常８サイクルがｄａｔａＮ−１は６サイクルで変化）、次のｄａｔａＮの変化のタイミングは、カウンタ値＝７で変化することはあるが、カウンタ値＝３で変化することはない。よって、内部カウンタ（ＣＮＴ）を＋２して（カウンタ値＝５→７）、次の受信データ変化の許容範囲を、図４のように変更する。
【００８９】
図５は、ｄａｔａＮの変化が、図２より１クロック遅くなった場合のタイムチャートである。カウンタ値＝６で受信データの変化が無く、カウンタインクリメント、抽出クロック信号＝０が選択され、次のクロックサイクルで、カウンタ値＝７、抽出クロック信号が１（Ｈｉｇｈ）から０（Ｌｏｗ）となる。カウンタ値＝７のとき、受信データに変化があり、カウンタリセットとなり、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジで、カウンタ値＝０となる。カウンタ値＝２で受信データに変化が無く、カウンタインクリメント、抽出クロック信号＝１が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝３、抽出クロック信号が０（Ｌｏｗ）から１（Ｈｉｇｈ）となる。受信データの変化が前回の周期よりも１クロック遅くなった場合では、次の受信データの変化が２クロックサイクル早くなることはあるが、２クロックサイクル遅くなることはない。ｄａｔａＮ−１のサイクルが９となり、カウンタ＝０で変化した場合、次の受信データの変化はカウンタ値＝６で変化することはあるが、カウンタ値＝１で変化することはない。
【００９０】
カウンタ（ＣＮＴ）は、通常のインクリメントを行い、ｄａｔａＮからｄａｔａＮ＋１への変化は、ｄａｔａＮの変化が１クロック遅くなる前のタイミングの間、許容される。ただし、受信データの変化がｍ回連続して１クロック遅くなった場合は、この状態で安定したものと判断し、カウンタ値を保持して、次の受信データの変化の許容範囲を変更する。
【００９１】
図６は、ｄａｔａＮの変化が図２より２クロック遅くなった場合のタイムチャートである。カウンタ値＝５で受信データの変化が無く、カウンタインクリメントが選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝６で受信データの変化がなく、カウンタインクリメント、抽出クロック信号＝０が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝７、抽出クロック信号が１（Ｈｉｇｈ）から０（Ｌｏｗ）となる。カウンタ値＝７のとき、カウンタリセットとなり、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝０となる。次のクロックサイクルのカウンタ値＝１で受信データ（ｄａｔａＮ）が変化し、カウンタ保持が選択され、次のサイクルの抽出用内部クロック信号ＣＬＫの立ち上がりエッジでカウンタ値＝１とされる。このとき、受信データに変化が無く、カウンタインクリメントが選択され、次のクロックサイクルでカウンタ値＝２で、カウンタインクリメント、抽出クロック信号＝１が選択され、次のクロックサイクルでカウンタ値＝３、抽出クロックは０（Ｌｏｗ）から１（Ｈｉｇｈ）となる。受信データの変化が、前回の周期より２クロック遅くなった場合（受信データの変化の周期＝６サイクル）でも、次の受信データの変化が２クロック早くなることはあるが、２クロック遅くなることはない。カウンタ値を保持して（カウンタ値＝１→１）、次の受信データ変化の許容範囲を変更する。このような制御を適用することにより、送信側と受信側のクロック周波数誤差や入力ジッタを吸収し、正常にクロック抽出を行うことを可能としている。
【００９２】
同期化された受信データは、図１のフリップフロップにて、抽出クロック信号の立ち上がりエッジでサンプルされる。図３乃至図６に示すように、抽出クロック信号の立ち上がりエッジは、受信データ（ｄａｔａＮ、ｄａｔａＮ＋１・・・）の期間の中央付近に位置しており、送信側と受信側のクロック周波数誤差やジッタの影響を抑制し、抽出データを正確に取得することができる。
【００９３】
本実施形態においては、以下に記載するような効果を奏する。
【００９４】
過去のデータ変化周期から次にデータが変化するタイミングを予測して抽出を行なっているので、無線通信のような入力ジッタの大きい通信でも、安定したクロック抽出ができる。
【００９５】
受信回路のクロック抽出部をデジタル回路で実現しているので、受信回路にアナログ回路を必要とせず、回路面積や部品点数を削減できることである。
【００９６】
なお、上記実施形態では、無線送／受信回路として、赤外線送／受信回路や可視光送／受信回路の他に、有線のシリアル通信送／受信回路等のようにクロックを併走しない通信受信装置のクロック抽出回路（例えば受信シリアルデータからクロック及びデータを復元するクロックデータリカバリ回路）にも適用することができる。
【００９７】
なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００９８】
１０、１００  受信装置
１１、１０１  無線受信回路
１２、１３、１５、１０３  フリップフロップ
１４  クロック抽出回路
２０、２００  送信装置
２１、２０１  無線送信回路
１０２  アナログＰＬＬ回路
【図１】
2012065252.tif 000003
【図２】
2012065252.tif 000004
【図３】
2012065252.tif 000005
【図４】
2012065252.tif 000006
【図５】
2012065252.tif 000007
【図６】
2012065252.tif 000008
【図７】
2012065252.tif 000009
【図８】
2012065252.tif 000010
【図９】
2012065252.tif 000011
【図１０】
2012065252.tif 000012
【図１１】
2012065252.tif 000013