(57)【要約】【課題】単純な構成で容易に正確な同期クロックを生成できる受信装置、その累積範囲更新方法及びそのプログラムを提供する。【解決手段】送信回路１１０から変調されたシリアルデータを所定の伝送路を介して入力し、これを復調する受信回路１１と、復調したシリアルデータに含まれるクロック信号の幅を発振回路１６から入力された基準クロックに基づいて検出するクロック幅検出カウンタ１２と、クロック幅検出カウンタ１２で検出されたクロック信号の幅の出現回数を所定の範囲毎に累積する頻度テーブル１３と、頻度テーブル１３において累積された出現回数が最も多い範囲を検出する最頻度検出回路１４と、最頻度検出回路１４で検出された範囲に基づいてシリアルデータと同期を図るための同期クロックを生成する同期クロック生成カウンタ１５と、同期クロックに基づいてシリアルデータと同期を図る同期回路１７とを有する。【選択図】          図２
2004363833.tif 000002
【特許請求の範囲】
【請求項１】
アイドル信号を含むシリアルデータを受信する受信手段と、前記受信手段で受信したアイドル信号に含まれるパルス幅を検出する検出手段と、
前記検出手段で検出した前記アイドル信号の各パルスの幅の出現回数を所定の範囲毎に累積する累積手段と、
前記累積手段で累積された前記所定の範囲毎の出現回数のうち最も大きい値に対応した範囲に基づいて前記シリアルデータの同期クロックを生成する同期クロック生成手段と
を有することを特徴とする受信装置。
【請求項２】
前記最も大きい値に対応した範囲が前記所定の範囲全体の中央に位置するように、該所定の範囲全体をシフトさせる所定範囲シフト手段を有することを特徴とする請求項１記載の受信装置。
【請求項３】
前記累積手段に累積された所定の範囲ごとの出現回数に応じて、前記所定の範囲を拡大／縮小する所定範囲拡大／縮小手段と
を有することを特徴とする請求項１又は２記載の受信装置。
【請求項４】
前記同期クロック生成手段は、前記第１の範囲の中心値に基づいて前記同期クロックを生成することを特徴とする請求項１から３の何れか１項に記載の受信装置。
【請求項５】
前記検出手段は前記アイドル信号の幅を所定ビット長のデータ列として出力し、
前記累積手段はアドレスに対応づけられたメモリ領域に前記出現頻度を格納するテーブルであり、
前記検出手段から出力された前記データ列をデコードしてアドレスを生成し、該アドレスに対応づけられた領域に格納された出現回数をインクリメントするデコード手段を有することを特徴とする請求項１から４の何れか項に記載の受信装置。
【請求項６】
前記検出手段は前記アイドル信号の幅を所定ビット長のデータ列として出力し、
前記累積手段はアドレスに対応づけられたカウンタを前記所定の領域毎に有して構成され、
前記検出手段から出力された前記データ列をデコードしてアドレスを生成し、該アドレスに対応づけられたカウンタのカウント値をインクリメントするデコード手段を有することを特徴とする請求項１から４の何れか項に記載の受信装置。
【請求項７】
受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信方法であって、
前記所定の範囲毎に累積された出現回数のうち最も多い値に対応した範囲を特定する第１の段階と、
該第１の段階で特定した前記第１の範囲が全体の中央に位置するように前記所定の範囲をシフトさせる第２の段階と
を有することを特徴とする受信方法。
【請求項８】
受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信方法であって、
受信した前記アイドル信号の数と前記所定の範囲毎に累積された出現回数とを比較する第１の段階と、
該第１の段階による比較の結果に基づいて前記所定の範囲を拡大／縮小する第２の段階と
を有することを特徴とする受信方法。
【請求項９】
受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信装置を制御するコンピュータを機能させるためのプログラムであって、
前記所定の範囲毎に累積された出現回数のうち最も多い値に対応した範囲を特定する第１の処理と、
該第１の処理で特定した前記第１の範囲が前記所定の範囲全体の中央に位置するように前記所定の範囲をシフトさせる第２の処理と
を前記コンピュータに実行させるためのプログラム。
【請求項１０】
受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信装置を制御するコンピュータを機能させるためのプログラムであって、
受信した前記アイドル信号の数と前記所定の範囲毎に累積された出現回数とを比較する第１の処理と、
該第１の処理による比較の結果に基づいて前記所定の範囲を拡大／縮小する第２の処理と
を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はシリアル伝送方式で用いられる受信装置に関し、特にシリアル伝送のクロック検出に関する。
【０００２】
【従来の技術】
図１に、従来技術における一般的なシリアル伝送方式の受信装置１００の構成を示す（例えば特許文献１参照）。図１に示すように、受信装置１００は、送信回路１１０から所定の伝送路を介して変調されたシリアルデータを入力し、これを復調する受信回路１０１と、復調したシリアルデータに含まれるクロック信号の遷移幅を発振回路１０３から入力された基準クロックに基づいて検出するクロック幅検出カウンタ１０２と、クロック幅検出カウンタ１０２で検出されたクロック信号の幅に基づいてシリアルデータと同期を図るための同期クロックを生成する同期クロック生成カウンタ１０４と、同期クロックに基づいてシリアルデータと同期を図る同期回路１０５とを有して構成される。
【０００３】
このような構成において、発振回路１０３に例えばＣＲ発振回路等の比較的精度の低いクロック生成手段を用いた場合、クロック信号との同期を正確に図ることが難しい。このような問題を解決する方法としては、例えば以下に示す特許文献２に開示されるように、クロック信号の幅の偏差値を算出し、最も頻度の多い偏差値又は偏差値の平均値に基づいて同期を調整する方法が考えられる。
【０００４】
【特許文献１】
特開平８−９８２８４号公報
【特許文献２】
国際公開第０１／１００６７号パンフレット
【０００５】
【発明が解決しようとする課題】
しかしながら、例えば特許文献２で開示された技術のような、偏差値を用いる統計処理は複雑であり、これを用いて同期クロックの生成を実現した場合、回路規模も大型化してしまうという問題が発生する。
【０００６】
そこで本発明は、単純な構成で容易に正確な同期クロックを生成できる受信装置、その累積範囲更新方法及びそのプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
かかる目的を達成するために、本発明は、請求項１記載のように、アイドル信号を含むシリアルデータを受信する受信手段と、前記受信手段で受信したアイドル信号に含まれるパルス幅を検出する検出手段と、前記検出手段で検出した前記アイドル信号の各パルスの幅の出現回数を所定の範囲毎に累積する累積手段と、前記累積手段で累積された前記所定の範囲毎の出現回数のうち最も大きい値に対応した範囲に基づいて前記シリアルデータの同期クロックを生成する同期クロック生成手段とを有して構成される。所定の範囲毎にアイドル信号の幅の出現回数を累積し、最も大きい値（最頻値）となった範囲に基づいて同期クロックの幅を調整するように構成することで、複雑な統計処理等を必要とせずに、正確な同期クロックを容易な構成で生成することができる。また、最頻値を使用しているため、平均値を使用した場合と比較して、ノイズの影響を受けにくく、より的確に同期クロックを生成できる。
【０００８】
また、請求項１記載の前記受信装置は、好ましくは請求項２記載のように、前記最も大きい値に対応した範囲が前記所定の範囲全体の中央に位置するように、該所定の範囲全体をシフトさせる所定範囲シフト手段をして構成される。最頻値に対応する範囲が中心範囲となるように全範囲及び各範囲をシフトすることで、アイドル信号の幅が大きく変化するような状況においても、的確に正確な同期クロックを生成することが可能となる。
【０００９】
また、請求項１又は２記載の前記受信装置は、好ましくは請求項３記載のように、前記累積手段に累積された所定の範囲ごとの出現回数に応じて、前記所定の範囲を拡大／縮小する所定範囲拡大／縮小手段を有して構成される。出現するカウント値の分布が全範囲に対して非常に広い又は狭い場合でも累積手段の全範囲及び各範囲の幅を必要に応じて変更することができるため、同期精度を向上させることができ、より的確な同期クロックを生成することが可能となる。
【００１０】
また、請求項１から３の何れか１項に記載の前記同期クロック生成手段は、例えば請求項４記載のように、前記第１の範囲の中心値に基づいて前記同期クロックを生成するように構成されても良い。同期クロックの生成に使用する値を予め第１の範囲の中心値と決定しておくことで、処理を省略することができ、構成を簡略化できる。
【００１１】
また、請求項１から４の何れか１項に記載の前記受信装置は、例えば請求項５記載のように、前記検出手段が前記アイドル信号の幅を所定ビット長のデータ列として出力し、前記累積手段がアドレスに対応づけられたメモリ領域に前記出現頻度を格納するテーブルであり、前記検出手段から出力された前記データ列をデコードしてアドレスを生成し、該アドレスに対応づけられた領域に格納された出現回数をインクリメントするデコード手段を有して構成されてもよい。累積手段のメモリ領域に対応したアドレスをデータ列に基づいてデコードする手段を設けることで、例えばデータ列の上位ビットのみを用いて対象となるメモリ領域を特定することが可能となり、構成を簡略化できる。また、これを高速処理が可能なハードウェア資源で実現することができるため、結果として通信速度を向上させることができる。
【００１２】
また、請求項１から４の何れか１項に記載の前記受信装置は、例えば請求項６記載のように、前記検出手段が前記アイドル信号の幅を所定ビット長のデータ列として出力し、前記累積手段がアドレスに対応づけられたカウンタを前記所定の領域毎に有して構成され、前記検出手段から出力された前記データ列をデコードしてアドレスを生成し、該アドレスに対応づけられたカウンタのカウント値をインクリメントするデコード手段を有して構成されても良い。累積手段のカウンタに対応したアドレスをデータ列に基づいてデコードする手段を設けることで、例えばデータ列の上位ビットのみを用いて対象となるカウンタを特定することが可能となり、構成を簡略化できる。また、これを高速処理が可能なハードウェア資源で実現することができるため、結果として通信速度を向上させることができる。
【００１３】
また、本発明は、請求項７記載のように、受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信方法であって、前記所定の範囲毎に累積された出現回数のうち最も多い値に対応した範囲を特定する第１の段階と、該第１の段階で特定した前記第１の範囲が全体の中央に位置するように前記所定の範囲をシフトさせる第２の段階とを有して構成される。所定の範囲毎にアイドル信号の幅の出現回数を累積し、最も大きい値（最頻値）となった範囲に基づいて同期クロックの幅を調整するようにして、複雑な統計処理等を必要とせずに、正確な同期クロックを容易な構成で生成することができる受信装置において、最頻値に対応する範囲が中心範囲となるように全範囲及び各範囲をシフトできるように構成することで、アイドル信号の幅が大きく変化するような状況においても、的確に正確な同期クロックを生成することが可能となる。また、最頻値を使用しているため、平均値を使用した場合と比較して、ノイズの影響を受けにくく、より的確に同期クロックを生成できる。
【００１４】
また、本発明は、請求項８記載のように、受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信方法であって、受信した前記アイドル信号の数と前記所定の範囲毎に累積された出現回数とを比較する第１の段階と、該第１の段階による比較の結果に基づいて前記所定の範囲を拡大／縮小する第２の段階とを有して構成される。所定の範囲毎にアイドル信号の幅の出現回数を累積し、最も大きい値（最頻値）となった範囲に基づいて同期クロックの幅を調整するようにして、複雑な統計処理等を必要とせずに、正確な同期クロックを容易な構成で生成することができる受信装置において、出現するカウント値の分布が全範囲に対して非常に広い又は狭い場合でも累積手段の全範囲及び各範囲の幅を必要に応じて変更することができるように構成することで、同期精度を向上させることができ、より的確な同期クロックを生成することが可能となる。また、最頻値を使用しているため、平均値を使用した場合と比較して、ノイズの影響を受けにくく、より的確に同期クロックを生成できる。
【００１５】
また、本発明は、請求項９記載のように、受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信装置を制御するコンピュータを機能させるためのプログラムであって、前記所定の範囲毎に累積された出現回数のうち最も多い値に対応した範囲を特定する第１の処理と、該第１の処理で特定した前記第１の範囲が前記所定の範囲全体の中央に位置するように前記所定の範囲をシフトさせる第２の処理とを前記コンピュータに実行させる。所定の範囲毎にアイドル信号の幅の出現回数を累積し、最も大きい値（最頻値）となった範囲に基づいて同期クロックの幅を調整するようにして、複雑な統計処理等を必要とせずに、正確な同期クロックを容易な構成で生成することができる受信装置において、最頻値に対応する範囲が中心範囲となるように全範囲及び各範囲をシフトできるように構成することで、アイドル信号の幅が大きく変化するような状況においても、的確に正確な同期クロックを生成することが可能となる。また、最頻値を使用しているため、平均値を使用した場合と比較して、ノイズの影響を受けにくく、より的確に同期クロックを生成できる。
【００１６】
また、本発明は、請求項１０記載のように、受信したシリアルデータに含まれるアイドル信号の幅の出現回数を所定の範囲毎に累積し、累積された前記所定の範囲毎の出現回数に基づいて前記シリアルデータの同期クロックを生成する受信装置を制御するコンピュータを機能させるためのプログラムであって、受信した前記アイドル信号の数と前記所定の範囲毎に累積された出現回数とを比較する第１の処理と、該第１の処理による比較の結果に基づいて前記所定の範囲を拡大／縮小する第２の処理とを前記コンピュータに実行させる。所定の範囲毎にアイドル信号の幅の出現回数を累積し、最も大きい値（最頻値）となった範囲に基づいて同期クロックの幅を調整するようにして、複雑な統計処理等を必要とせずに、正確な同期クロックを容易な構成で生成することができる受信装置において、出現するカウント値の分布が全範囲に対して非常に広い又は狭い場合でも累積手段の全範囲及び各範囲の幅を必要に応じて変更することができるように構成することで、同期精度を向上させることができ、より的確な同期クロックを生成することが可能となる。また、最頻値を使用しているため、平均値を使用した場合と比較して、ノイズの影響を受けにくく、より的確に同期クロックを生成できる。
【００１７】
【発明の実施の形態】
以下、本発明を好適に実施した形態について図面を用いて詳細に説明する。
【００１８】
〔第１の実施形態〕
先ず、本発明の第１の実施形態について図面を用いて詳細に説明する。図２は、本実施形態によるシリアル伝送方式の受信装置１の構成を示すブロック図である。尚、本実施形態による受信装置１は、例えば赤外線を用いたシリアル伝送方式で使用されるものである。但し、この他に、キーレスエントリや簡易型リモートコントローラ等に適用することも可能である。
【００１９】
図２に示すように、受信装置１は、送信回路１１０から変調されたシリアルデータを所定の伝送路を介して入力し、これを復調する受信回路１１と、復調したシリアルデータに含まれるクロック信号の遷移幅（周期に相当：以下、単に幅という）を発振回路１６から入力された基準クロック（サンプリングクロックともいう）に基づいて検出するクロック幅検出カウンタ１２と、クロック幅検出カウンタ１２で検出されたクロック信号の幅の出現回数（頻度でもよい）を所定の範囲毎に累積する頻度テーブル１３と、頻度テーブル１３において累積された出現回数（以下、累積値という）が最も多い範囲（尚、最も多い出現回数を最頻値という）を検出する最頻度検出回路１４と、最頻度検出回路１４で検出された範囲に基づいてシリアルデータと同期を図るための同期クロックを生成する同期クロック生成カウンタ１５と、同期クロックに基づいてシリアルデータと同期を図る同期回路１７とを有して構成される。
【００２０】
図３（ａ）に、受信回路１１にて復調されたシリアルデータを示す。一般的にシリアル伝送方式では、例えばデューティ比が５０％の矩形パルスが使用され、その状態の遷移（‘Ｈ（Ｈｉｇｈ）’，‘Ｌ（Ｌｏｗ）’の遷移）により‘１’，‘０’のデータが表現される。シリアルデータに含まれるデータ信号の先にはアイドル信号が配置される。アイドル信号とは通信状態がアイドリングであることを示す信号であり、データの送受信が行われていない状態において常時又は適宜送受信される。本実施形態では、このアイドル信号をシリアルデータのクロック信号として使用する。図３（ａ）に示す例では、周期Ｔ１，Ｔ２，Ｔ３，Ｔ４（＝Ｔ２）の間隔で入力された５つのアイドル信号（クロック信号）を対象としてクロック信号の幅を検出した場合を例に挙げる。尚、本実施形態において使用するアイドル信号の数は、多いほどクロック信号の幅の補正を正確に行うことが可能となるが、処理の高速化等を考慮した場合、数〜１６ビット程度が好ましい数となる。
【００２１】
受信回路１１にて復調されたシリアルデータは、クロック幅検出カウンタ１２及び同期回路１７にそれぞれ入力される。また、クロック幅検出カウンタ１２には、ＣＲ発振器やＬＣ発振器や水晶発振器やセラミック発振器等を含んで構成された発振回路１６で発振された基準クロックも入力される。尚、必要に応じて分周器や逓倍器等を含んで構成しても良い。
【００２２】
図３（ｂ）に、基準クロックの一例を示す。図３（ｂ）に示すように、基準クロックは、クロック信号の周期よりも短い周期ｔ（例えば数十Ｈｚ〜数ＭＨｚ程度）を有している。クロック幅検出カウンタ１２は、入力されたシリアルデータのクロック信号の幅を基準クロックを用いてカウントする。また、クロック幅検出カウンタ１２は、カウントした値（以下、これをカウント値という）を例えば所定長ビットのデータ列で得る。その後、クロック幅検出カウンタ１２は、頻度テーブル１３における得られたデータ列（カウント値）を含むカウント値の所定の範囲（以下、単に範囲という）を特定し、これに対応づけられたメモリ領域に格納された累積値を１インクリメントする。図３（ｂ）に示す例では、Ｔ１／ｔ，Ｔ２／ｔ，Ｔ３／ｔ，Ｔ４／ｔのカウント値がそれぞれ得られ、この値に基づいて頻度テーブル１３が更新された。尚、以下の説明では、６０≦Ｔ１／ｔ≦６９，７０≦Ｔ２／ｔ＝Ｔ４／ｔ≦７９，８０≦Ｔ３／ｔ≦８９とする。また、この他に、頻度テーブル１３がクロック幅検出カウンタ１２から入力されたカウント値に基づいて該当するメモリ領域を特定し、これに格納された累積値を１インクリメントするように構成しても良い。
【００２３】
頻度テーブル１３は、上述にもあるように、範囲毎のカウント値の出現回数を累積している。図４に、本実施形態による頻度テーブル１３のテーブル構造の例を示す。図４に示すように、頻度テーブル１３は、例えば１０カウントの幅を持った範囲毎に、この範囲に含まれるカウント値が出現した回数（累積値に相当）を格納している。従って、図４に示す例は、‘６０’〜‘６９’の範囲に含まれるカウント値が一回（Ｔ１／ｔ）得られ、‘７０’〜‘７９’の範囲に含まれるカウント値が二回（Ｔ２／ｔ，Ｔ４／ｔ）得られ、‘８０’〜‘８９’の範囲に含まれるカウント値が一回（Ｔ３／ｔ）得られた場合を示している。
【００２４】
このような頻度テーブル１３は、例えばＥＥＰ−ＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓｅａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  ＯｎｌｙＭｅｍｏｒｙ）等のような消去およびプログラム可能な読み取り専用メモリ又はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を用いて構成することができる。更に、この他、カウンタ等を用いても同様に実現することができる。即ち、所定長ビットで入力されたカウント値に基づいてアドレスをデコードし、このアドレスに対応づけておいたカウンタの値（カウント値：累積値に相当）を１インクリメントするように構成する。
【００２５】
最頻値検出回路１４は、頻度テーブル１３において最も累積値の大きい範囲を特定し、この範囲の例えば中心の値（図４では７５）、又は予め対応づけておいた値を、基準クロックを分周するためのカウント数として同期クロック生成カウンタ１５に入力する。但し、複数の範囲で累積値が最頻値となった場合、これらの範囲の中心をカウント数とするか、又は前回の最頻値の範囲に近い方の範囲に基づいてカウント数を決定するとよい。
【００２６】
同期クロック生成カウンタ１５には発振回路１６から基準クロックも入力されている。同期クロック生成カウンタ１５は、最頻値検出回路１４から入力されたカウント数に基づいて基準クロックをカウントすることで周期Ｔ（＝７５×ｔ）の同期クロックを生成し、これをシリアルデータにおけるデータ信号の略中央で立ち上がるように出力する。図３（ｃ）に、同期クロックの一例を示す。また、生成された同期クロックは同期回路１７に入力される。
【００２７】
同期回路１７は例えばシフトレジスタ等で構成されており、同期クロック生成カウンタ１５から入力された同期クロックに基づいて受信回路１１から入力されたシリアルデータと同期し、これをパラレルデータに変換して出力する。
【００２８】
以上のように、所定の範囲毎にクロック信号の幅の出現回数を累積し、最頻値となった範囲のカウント数に基づいて同期クロックの幅を調整するように構成することで、複雑な統計処理等を必要とせずに、正確な同期クロックを容易な構成で生成することができる。
【００２９】
また、上記した構成（１１，１２，１３，１４，１５，１６，１７）の内、少なくともクロック幅検出カウンタ１２と頻度テーブル１３と同期クロック生成カウンタ１５とを同一のチップ上に形成することで、装置全体の小型化を図ることができる。また、発振回路１６に例えばＣＲ発振器等を適用した場合、これも同一にチップ化できるため、作製が容易となり、且つ更なる装置全体の小型化も可能となる。
【００３０】
また、図２では、同期回路１７以降の回路構成を示していないが、例えばデコーダや送信回路や暗号化回路等が設けられる。これらは上述したチップと同一に形成することも可能であり、装置全体をより小型化することができる。
【００３１】
〔第２の実施形態〕
また、頻度テーブル１３における各範囲をビットの単位で決定することで、構成をより簡略化することもできる。以下、これを第２の実施形態として図面を用いて詳細に説明する。
【００３２】
図５は、本実施形態による頻度テーブル２３の構成を示すテーブルである。図５に示すように、頻度テーブル２３の範囲をビットの倍数（図５では３ビット：１０進数に直すと‘８’）で区切ることで、実際に使用するカウント値を、これの上位ビットのみとすることが可能となる。尚、図７ではカウント値を８ビットで構成し、実際に使用するビットを上位５ビットとした場合を例示している。即ち、本実施形態では、クロック幅検出カウンタ１２が検出したカウント値の上位ビット（５ビット）のみを頻度テーブル２３に入力し、これに対応するメモリ領域に格納された累積値又はカウンタの値を１インクリメントする。尚、この場合、下位３ビットを計測するためのクロック幅検出カウンタ１２のカウンタを省略することもできる。
【００３３】
以上のような構成により、第１の実施形態と同様に、統計処理等の複雑なデータ解析を必要とせず、容易な構成で且つ正確な同期クロックを生成することができる。更に、これを実現する構成をより簡略化することもできる。尚、他の構成は第１の実施形態と同様であるため、ここでは説明を省略する。
【００３４】
〔第３の実施形態〕
次に、本発明の第３の実施形態を図面を用いて詳細に説明する。上記した各実施形態では、頻度テーブル１３（又は２３）の各範囲が固定されていた。ところが、出現するカウント値の分布のピークが頻度テーブル１３（又は２３）における全範囲の中央付近とならない場合も存在する。本実施形態は、このような場合に頻度テーブル１３（又は２３）の範囲をシフトすることができるように構成する。これにより、確実に正確な同期クロックを生成することが可能とる。
【００３５】
図６は、本実施形態による受信装置３の構成を示すブロック図である。図６に示すように、受信装置３は、図２に示す受信装置１と同様の構成において、頻度テーブル１３が、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算処理装置で構成された制御部３０により接続されている。即ち、制御部３０が頻度テーブル１３の累積値に基づいて、これの範囲を変更する手段（所定範囲シフト手段）として機能するように構成されている。この概要を図７を用いて説明する。
【００３６】
先ず、図７（ａ）に示すように、頻度テーブル１３は、全範囲が‘３０’〜‘７９’であって、その中心に位置する範囲（中心範囲）が‘５０’〜‘５９’である。そこで、累積値が最も大きい範囲（＝最頻値に対応する範囲）が‘７０’〜‘７９’となった場合、即ち、最頻値と対応する範囲と中心範囲とが異なる場合、制御部３０は、図７（ｂ）に示すように、中心範囲が最頻値を格納する範囲となるように、全範囲及び各範囲をシフト（又は更新）する。その後、受信装置３は、第１の実施形態で説明したように、頻度テーブル１３をインクリメントし、累積値の最も大きい範囲、換言すれば最頻値と対応する範囲に基づいて、最適なカウント数を特定し、このカウント数に基づいて同期クロックを生成する。
【００３７】
次に、図８を用いて制御部３０の動作を説明する。制御部３０は、定期的又はシリアルデータを受信したことが例えば受信回路１１等から通知されると、先ず、頻度テーブル１３を参照する（ステップＳ１０１）。次に、参照した頻度テーブル１３における現在の中心範囲と（ステップＳ１０２），最頻値に対応する範囲と（ステップＳ１０３）を特定し、特定した現在の中心範囲と最頻値に対応する範囲とを比較する（ステップＳ１０４）。この比較の結果、現在の中心範囲と最頻値に対応する範囲とが異なる場合（ステップＳ１０４のＮｏ）、制御部３０は、最頻値に対応する範囲が中心範囲となるように全範囲及び各範囲をシフト（変更）する（ステップＳ１０５）。その後、頻度テーブル３３における累積値をリセットし（ステップＳ１０６）、処理を終了する。また、ステップＳ１０４の判定の結果、現在の中心範囲と最頻値に対応する範囲とが一致する場合（ステップＳ１０４のＹｅｓ）、制御部３０はそのまま処理を終了する。尚、ステップＳ１０６に示す累積値をリセットする処理の代わりに、更新後の範囲に更新前の同一範囲の累積値を格納する処理を設けてもよい。
【００３８】
このような動作は、例えばプログラムで構成され、図示しない所定のメモリ等に格納された該プログラムを制御部３０が読み出し、ＲＡＭ等に作業領域を確保しつつこれを実行することで実現される。
【００３９】
以上のように構成することで、本実施形態によれば、クロック信号の幅が大きく変化するような状況においても、的確に正確な同期クロックを生成することが可能となる。尚、他の構成は上記した各実施形態と同様であるため、ここでは説明を省略する。
【００４０】
〔第４の実施形態〕
また、第３の実施形態では、プログラムを用いて頻度テーブル１３の全範囲及び個別の範囲をシフト（更新）するように構成されていた。以下では、これをハードウェアで構成した場合について、第４の実施形態として図面を用いて詳細に説明する。
【００４１】
図９は、本実施形態による受信装置４の構成を示すブロック図である。尚、本実施形態では、頻度テーブル１３の代わりにアップカウンタ等で構成した頻度カウンタ４３を用いた場合について説明する。
【００４２】
図９に示すように、本実施形態による受信装置４は、頻度カウンタ４３の入力段にデコーダ４０が設けられている。デコーダ４０は、カウント幅検出カウンタ１２から入力されたカウント値に基づいて、これを含む範囲が対応づけられたカウンタ（頻度カウンタ４３）のアドレスをデコードし、得られたアドレスのカウンタを１インクリメントする。最頻値検出回路１４は、頻度カウンタ４３における最頻値のカウンタに対応づけられたカウント数を同期クロック生成カウンタ１５へ出力する。ここまでは第１の実施形態から容易に想到できる構成である。
【００４３】
また、本実施形態では、デコーダ４０がクロック幅検出カウンタ１２から入力されたカウント値又は最頻度検出回路１４から入力されたカウント数に基づいて動作モードを切り換える、即ち頻度カウンタ４３の各カウンタに割り当てるカウンタ値の範囲を切り換えるように構成する。これを図１０を用いて、より詳細に説明する。
【００４４】
図１０に示すように、本実施形態によるデコーダ４０は、クロック幅検出カウンタ１２から入力されたカウント値又は最頻度検出回路１４から入力されたカウント数の内、上位ビット（例えばカウント値を５ビットとした場合では上位３ビット）に基づいて、モードＬ，モードＭ，モードＨを切り換える。モードＬは頻度カウンタ４３の全範囲を値の小さい側へシフトさせたモードである。モードＨは頻度カウンタ４３の全範囲を値の大きい側へシフトさせたモードである。また、モードＭは、頻度カウンタ４３の全範囲をこれらの中間に位置させたモードである。図１１にモードとカウント値の上位ビットとの関係を示す。
【００４５】
図１１に示すように、本実施形態では、例えばカウント値及びカウント数を５ビットで構成した場合、デコーダ４０が、例えばこれの上位３ビットを用いてモードを切り換える。図１１に示す例では、上位３ビットが‘０００’〜‘０１１’である場合、モードを‘Ｌ’に切り替え、‘０１０’〜‘１０１’である場合、モードを‘Ｍ’に切り替え、‘１００’〜‘１１１’である場合、モードを‘Ｈ’に切り替える。尚、各モードを設定する際の上位ビットの範囲に重なりを持たせることで、モードの切り替えが煩雑化することを防止できる。即ち、上位ビットの範囲の境界付近にカウント値及びカウント数が集中した場合でも、必要以上に頻繁にモードが切り替わることを防止するために、範囲に重なりを持たせておく。
【００４６】
以上のような構成において、デコーダ４０は、初期の段階では最初にクロック幅検出カウンタ１２から入力されたカウント値に基づいてモードの切り替えを行い、その後は最頻値検出回路１４から入力されたカウント数に基づいてモードの切り替えを行う。
【００４７】
これにより、本実施形態では、ハードウェア構成を用いて第３の実施形態と同様の効果を奏することが可能となる。また、この際、カウント値又はカウント数の上位ビットのみを用いてモードを切り替えるため、構成を容易なものとすることができる。また、これを高速処理が可能なハードウェア資源で実現することができるため、結果として通信速度を向上させることができる。尚、他の構成は、上記した各実施形態と同様であるため、ここでは説明を省略する。
【００４８】
〔第５の実施形態〕
次に、本発明の第５の実施形態を図面を用いて詳細に説明する。上記した各実施形態では、頻度テーブル（又は頻度カウンタ）の全範囲及び各範囲の幅が固定されていた。これに対し、本実施形態は、出現するカウント値の分布が全範囲に対して非常に広い又は狭い場合でも的確な同期クロックを生成することを可能とするために、頻度テーブル（又は頻度カウンタ）の全範囲及び各範囲の幅を必要に応じて変更することができるように構成する。これにより、同期精度を向上させることができるため、より的確な同期クロックを生成することが可能となる。
【００４９】
図１２は、本実施形態による受信装置５の構成を示すブロック図である。図１２に示すように、受信装置５は、図２に示す受信装置１と同様の構成において、入力されたクロック信号の数をカウントするクロックカウンタ５１を有し、且つ頻度テーブル１３が演算処理装置で構成された制御部５０と接続されている。また、制御部５０にはクロックカウンタ５１のカウント値が入力されるようにも構成されている。即ち、制御部５０がクロックカウンタ５１と頻度テーブル１３とに基づいて、頻度テーブル１３の範囲を更新する手段（所定範囲拡大／縮小手段）として機能するように構成されている。この概要を図１３を用いて説明する。
【００５０】
先ず、図１３（ａ）に示すように、頻度テーブル１３の全範囲に含まれた累積値の合計値が入力された全クロック信号の数、即ちクロックカウンタ５１のカウント値と同じ又は略等しく（換言すれば頻度テーブル１３の全範囲外のカウント値を示すクロック信号が殆ど無く）、その際のクロック信号の幅の分布が中心範囲に偏った若しくは中心範囲の累積値が最頻値である場合、制御部５０は、中心範囲の中心の値（図１３では７５）を維持しつつ、各範囲を縮小して全範囲を狭めるように、頻度テーブル１３を更新する。尚、図１３（ａ）では全範囲内のクロック信号の数が１０であり、全クロック信号の数が１２である。即ち、両者が略等しい。このように頻度テーブル１３を更新することで、図１３（ｂ）に示すように、頻度テーブル１３の全体範囲が狭められ、より詳細且つ的確に最頻値を示す範囲を特定することが可能となる。
【００５１】
また、上記とは逆に、例えば全範囲に含まれた累積値の合計値が入力されたクロック信号の数よりも非常に少ない場合、換言すれば頻度テーブル１３の全範囲外のカウント値を示すクロック信号が非常に多い場合（例えば、全範囲内のクロック信号の数が１０で、全範囲外のクロック信号の数が２０となるなどのように、半分以上が全範囲外である場合）、制御部５０は中心範囲の中心の値（図１３では７５）を維持しつつ、各範囲を拡大して全範囲を広げるように、頻度テーブル１３を更新する。これにより、広く分布した場合でも的確に最も出現頻度の高い範囲を特定することが可能となる。
【００５２】
次に、以上のような処理を実現する制御部５０の動作を図１４のフローチャートを用いて詳細に説明する。
【００５３】
図１４において、制御部５０は、先ず、クロックカウンタ５１のカウント値Ｎｓを取得する（ステップＳ２０１）。次に、制御部５０は頻度テーブル１３を参照し（ステップＳ２０２）、頻度テーブル１３における各範囲の累積値を合計して合計値Ｎｆを算出する（ステップＳ２０３）。このように、全クロック信号の数（カウント値Ｎｓ）と頻度テーブル１３の全範囲に含まれるクロック信号の数（合計値Ｎｆ）とを得ると、制御部５０は、これらを比較する（ステップＳ２０４）。
【００５４】
ステップＳ２０４の比較の結果、カウント値Ｎｓが合計値Ｎｆよりも十分に小さい、例えば予め定めておいた所定数よりも小さい場合（ステップＳ２０５のＹｅｓ：尚、この際の所定数は、全クロック信号の数の半分等のような、頻度テーブル１３の全範囲外のクロック信号の数が誤差として無視できない程度を規定できる値とする）、制御部５０は、次に頻度テーブル１３における中心範囲の累積値が最頻値であるか否かを判定し（ステップＳ２０６）、中心範囲の累積値が最頻値である場合（ステップＳ２０６のＹｅｓ）、中心範囲の中心を維持しつつ各範囲を縮小して全範囲を狭めるように頻度テーブル１３を更新する（ステップＳ２０７）。尚、ステップ２０６の判定の結果、中心範囲の累積値が最頻値でない場合、制御部５０は、そのまま処理を終了する。
【００５５】
また、ステップＳ２０４の比較の結果、カウント値Ｎｆが合計値Ｎｆよりも十分に小さくなく（ステップＳ２０５のＮｏ）、且つカウント値Ｎｆが合計値Ｎｆよりも十分に大きい、例えば予め定めておいた所定数よりも大きい場合（ステップＳ２０８のＹｅｓ：尚、この際の所定数は、全クロック信号の数の半分等のような、頻度テーブル１３の全範囲が出現頻度の分布に対して明らかに余分に広いことを規定できる値とする）、制御部５０は、中心範囲の中心を維持しつつ各範囲を拡大して全範囲を広げるように頻度テーブル１３を更新する（ステップＳ２０９）。
【００５６】
以上のステップＳ２０７又はＳ２０９の後、制御部５０は、累積値をリセットし（ステップＳ２１０）、処理を終了する。また、ステップＳ２０８の結果、カウント値Ｎｆが合計値Ｎｆよりも十分に大きくない場合（ステップＳ２０８のＮｏ）、制御部５０はそのまま処理を終了する。
【００５７】
このような動作は、例えばプログラムで構成され、図示しない所定のメモリ等に格納された該プログラムを制御部５０が読み出し、ＲＡＭ等に作業領域を確保しつつこれを実行することで実現される。
【００５８】
また、以上では、頻度テーブル１３の累積値の合計値Ｎｆと全クロック信号の数Ｎｓとの比に基づいて動作するように構成していたが、これを例えばクロックカウンタ５１のカウント値が所定の値となった際に、クロックカウンタ５１が制御部５０へカウント値を通知し、制御部５０がこれをトリガとして動作を開始するようにも構成することができる。このように構成した場合、比較する対象（Ｎｓ及びＮｆ）の大きさがある程度規定できるため、上記の動作における所定数を固定の値とすることが可能である。
【００５９】
以上のように構成することで、本実施形態によれば、出現するカウント値の分布が全範囲に対して非常に広い又は狭い場合でも頻度テーブル（又は頻度カウンタ）の全範囲及び各範囲の幅を必要に応じて変更することができるため、同期精度を向上させることができ、より的確な同期クロックを生成することが可能となる。尚、他の構成は上記した各実施形態と同様であるため、ここでは説明を省略する。
【００６０】
〔第６の実施形態〕
また、第５の実施形態では、プログラムを用いて頻度テーブル１３の全範囲及び個別の範囲を更新するように構成されていた。以下では、これをハードウェアで構成した場合について、第６の実施形態として図面を用いて詳細に説明する。
【００６１】
図１５は、本実施形態による受信装置６の構成を示すブロック図である。尚、本実施形態では、上述の第４の実施形態と同様に、頻度テーブル１３の代わりにアップダウンカウンタ等で構成した頻度カウンタ４３を用いた場合について説明する。
【００６２】
図１５に示すように、本実施形態による受信装置６は、頻度カウンタ４３の入力段にデコーダ６０が設けられている。デコーダ６０は、カウント幅検出カウンタ１２から入力されたカウント値に基づいて、これを含む範囲が対応づけられたカウンタ（頻度カウンタ４３）のアドレスをデコードし、得られたアドレスのカウンタを１インクリメントする。最頻値検出回路１４は、頻度カウンタ４３における最頻値のカウンタに対応づけられたカウント数を同期クロック生成カウンタ１５へ出力する。ここまでは第１の実施形態から容易に想到できる構成である。
【００６３】
この他、受信装置６は、入力されたクロック信号の数をカウントするクロックカウンタ６１と、頻度カウンタ４３の各範囲の累積値を合計する加算器６２と、クロックカウンタ６１でカウントされたカウント値（Ｎｓ：第５の実施形態参照）と加算器６２で加算された累積値の合計値Ｎｆ（第５の実施形態参照）とを比較する比較器６３とを有して構成されている。また、比較器６３における比較結果はデコーダ６０に入力される。従って、本実施形態では、デコーダ６０が比較器６３から入力された比較結果に基づいて動作モードを切り換える、即ち頻度カウンタ４３の各カウンタに割り当てる範囲を切り換えるように構成する。
【００６４】
より詳細には、デコーダ６０は、例えば比較器６３によりカウント値Ｎｓが合計値Ｎｆよりも所定数（第５の実施形態参照）大きい場合、頻度カウンタ４３の各範囲の幅が大きいモード（これをモードＷとする）に動作を切り替える。また、また、カウント値Ｎｓが合計値Ｎｆよりも所定数（第５の実施形態参照）小さい場合、頻度カウンタ４３の各範囲の幅が小さいモード（これをモードＮとする）に切り替える。これ以外ではモードを、モードＷとＮとの中間の幅を有するモード（これをモードＡとする）に切り替える。尚、各モードと頻度カウンタ４３の各範囲の幅との関係は例えば図１６に示すように構成する。
【００６５】
以上のように構成することで、本実施形態では、ハードウェア構成を用いて第５の実施形態と同様な効果を奏することが可能となる。尚、他の構成は上記した各実施形態と同様であるため、ここでは説明を省略する。
【００６６】
〔第７の実施形態〕
また、第６の実施形態とは別に、頻度カウンタ４３の全範囲及び個別の範囲をハードウェアにより更新するための構成を、以下に第７の実施形態として図面を用いて詳細に説明する。
【００６７】
第６の実施形態では、入力されたクロック信号の数と頻度カウンタ４３の各範囲に累積された累積値の合計とを比較し、この結果に基づいてデコーダ６０のモードを切り替えるように構成していた。このため、第６の実施形態による受信装置６では、入力されたクロック信号の数をカウントするクロックカウンタ６１が設けられていた。これに対し、本実施形態では、図１７に示す受信装置７のように、頻度カウンタ４３の全範囲外のカウント値がデコーダ６０に入力されたことを検出するための範囲外検出回路７１と、頻度カウンタ４３の各範囲における上端部と下端部との少なくとも一方（より好ましくは両方）の範囲が未カウント（カウント値＝０）であることを検出するための端部未カウント検出回路７２とを設ける。
【００６８】
以上の構成を、図１８を用いてより詳細に説明する。図１８に示すように、デコーダ６０には、クロック幅検出カウンタ１２からカウント値が入力される。デコーダ６０は、入力されたカウント値に基づいて頻度カウンタ４３における該当するカウンタのアドレスをデコードし、このアドレスのカウンタを１インクリメントする。また、デコーダ６０は、入力されたカウント値が頻度カウンタ４３における範囲外である場合、範囲外検出回路７１へのアドレス（尚、頻度カウンタ４３のアドレス以外を全て範囲外検出回路７１のアドレスとしてもよい）をデコードし、このアドレスへ信号を出力することで、範囲外検出回路７１のフラグを立てる。範囲外検出回路７１は、フラグが立てられると、デコーダ６０の動作モードを現在の動作モードよりも１段階、広い範囲の動作モードへ切り替える。これにより、例えば現在デコーダ６０の動作モードがモードＮであればモードＡへ、またモードＡであればモードＷへ切り替えられる。但し、現在の動作モードが最も広い範囲の動作モードであった場合、範囲外検出回路７１又はデコーダ６０は動作モードの切り替えを行わない。
【００６９】
また、端部未カウント検出回路７２は、頻度カウンタ４３における各範囲のうち全範囲の上限を含む範囲（これを上端部の範囲とする）と下限を含む範囲（これを下端部の範囲とする）との少なくとも一方（より好ましくは両方）のカウンタが未カウント（カウント値＝０）であることを検出した場合、デコーダ６０の動作モードを現在の動作モードよりも１段階、狭い範囲の動作モードへ切り替える。これにより、例えば現在デコーダ６０の動作モードがモードＷであればモードＡへ、またモードＡであればモードＷへ切り替えられる。但し、現在の動作モードが最も狭い範囲の動作モードであった場合、端部未カウント検出回路７２又はデコーダ６０は動作モードの切り替えを行わない。
【００７０】
以上のように構成することで、本実施形態では、入力されたクロック信号の数と頻度カウンタ４３の各範囲に累積された累積値の合計とを比較するためのクロックカウンタ６１，加算器６２及び比較器６３等の複雑な構成を必要とせず、例えばフリップフロップ（ＦＦ）等の簡素な構成を用いて、頻度テーブル（又は頻度カウンタ）の全範囲及び各範囲の幅を更新することを実現することができるため、回路規模の縮小を大幅に縮小することが可能となる。尚、他の構成は上記した各実施形態と同様であるため、ここでは説明を省略する。
【００７１】
また、本実施形態において、図１９に示すように、範囲外検出回路７１の出力段にカウンタ７３を設け、このカウンタ７３で所定のカウント値がカウントされた場合、デコーダ６０の動作モードを１段階広く切り替えるように構成することも可能である。これにより、動作モードの頻繁な切り替えが抑えられ、安定した動作を実現できる。尚、このカウンタ７３は、数ビットのカウンタであればよい。尚、カウンタ７３を範囲外検出回路７１の入力段に設けた場合でも、同様に、動作モードの頻繁な切り替えが抑えられ、安定した動作を実現できる。
【００７２】
更に、図１９に示すように、端部未カウント検出回路７２の出力段にカウンタ７３と同様のカウンタ７４を設け、このカウンタ７４で所定のカウント値がカウントされた場合、デコーダ６０の動作モードを１段階狭く切り替えるように構成することも可能である。これにより、動作モードの頻繁な切り替えが抑えられ、安定した動作を実現できる。尚、このカウンタ７４は、数ビットのカウンタであればよい。尚、カウンタ７４を端部未カウント検出回路７２の入力段に設けた場合でも、同様に、動作モードの頻繁な切り替えが抑えられ、安定した動作を実現できる。
【００７３】
〔他の実施形態〕
以上、説明した実施形態は本発明の好適な一実施形態にすぎず、本発明はその趣旨を逸脱しない限り種々変形して実施可能である。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、単純な構成で容易に正確な同期クロックを生成できる受信装置、その累積範囲更新方法及びそのプログラムが実現できる。
【図面の簡単な説明】
【図１】従来技術による受信装置１００の構成を示すブロック図である。
【図２】本発明の第１の実施形態による受信装置１の構成を示すブロック図である。
【図３】本発明の第１の実施形態で使用するシリアルデータ（ａ）と基準クロック（ｂ）と同期クロック（ｃ）とを説明するための図である。
【図４】図２に示す頻度テーブル１３の構成例を示す図である。
【図５】本発明の第２の実施形態による頻度テーブル２３の構成例を示す図である。
【図６】本発明の第３の実施形態による受信装置３の構成を示すブロック図である。
【図７】本発明の第３の実施形態による頻度テーブル１３の更新処理を説明するための図であり、（ａ）は更新前を示し、（ｂ）は更新後を示す図である。
【図８】図６の制御部３０の動作を示すフローチャートである。
【図９】本発明の第４の実施形態による受信装置４の構成を示すブロック図である。
【図１０】図１０のデコーダ４０に着目した図である。
【図１１】本発明の第４の実施形態におけるモードと頻度カウンタ４３の全範囲との対応例を説明するための図である。
【図１２】本発明の第５の実施形態による受信装置５の構成を示すブロック図である。
【図１３】本発明の第５の実施形態による頻度テーブル１３の更新処理を説明するための図であり、（ａ）は更新前を示し、（ｂ）は更新後を示す図である。
【図１４】図１２の制御部５０の動作を説明するためのフローチャートである。
【図１５】本発明の第６の実施形態による受信装置６の構成を示すブロック図である。
【図１６】本発明の第６の実施形態におけるモードと頻度カウンタ４３の全範囲との対応例を説明するための図である。
【図１７】本発明の第７の実施形態による受信装置７の構成を示すブロック図である。
【図１８】図１７に示す受信装置７におけるデコーダ６０，範囲外検出回路７１及び端部未カウント検出回路７２の構成をより詳細に説明するためのブロック図である。
【図１９】範囲外検出回路７１の出力段及び端部未カウント検出回路７２の出力段にカウンタ７３及び７４を設けた場合の構成を示すブロック図である。
【符号の説明】
１、３、４、５、６、７  受信装置
１１  受信回路
１２  クロック幅検出カウンタ
１３、２３  頻度テーブル
１４  最頻値検出回路
１５  同期クロック生成カウンタ
１６  発振回路
１７  同期回路
３０、５０  制御部
４０、６０  デコーダ
４３  頻度カウンタ
５１、６１  クロックカウンタ
６２  加算器
６３  比較器
７１  範囲外検出回路
７２  端部未カウント検出回路
７３、７４  カウンタ
【図１】
2004363833.tif 000003
【図２】
2004363833.tif 000004
【図３】
2004363833.tif 000005
【図４】
2004363833.tif 000006
【図５】
2004363833.tif 000007
【図６】
2004363833.tif 000008
【図７】
2004363833.tif 000009
【図８】
2004363833.tif 000010
【図９】
2004363833.tif 000011
【図１０】
2004363833.tif 000012
【図１１】
2004363833.tif 000013
【図１２】
2004363833.tif 000014
【図１３】
2004363833.tif 000015
【図１４】
2004363833.tif 000016
【図１５】
2004363833.tif 000017
【図１６】
2004363833.tif 000018
【図１７】
2004363833.tif 000019
【図１８】
2004363833.tif 000020
【図１９】
2004363833.tif 000021