(57)【要約】      （修正有）【課題】多数決によるデータ検出を可能にしてノイズに強い通信を可能にし、さらに、通信クロックとデータ通信速度との不整合に伴うタイミングのずれをできるだけ抑えることができるシリアル通信装置を提供する。【解決手段】  シリアルデータを通信クロックに同期して受信するシリアル通信装置であって、基準クロックを所定の分周値に応じて分周して、基準クロックの分周値の数毎に通信クロック（C-CLK）を発生し、さらに、隣接する通信クロック間において基準クロックの任意番目のタイミングで補助クロック（S-CLK）を発生するクロック発生ユニットと、シリアルデータ（RDX）を受信し、１ビットのデータを、少なくとも隣接する通信クロック(C-CLK）とその間の補助クロック（S-CLK）を含むサンプリングタイミングでサンプリングし、当該サンプリングした複数のサンプリングデータの多数決にしたがって１ビットのデータを判定するデータ判定回路とを有する。【選択図】    図１２
2005167663.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータを通信クロックに同期して受信するシリアル通信装置において、
基準クロックを所定の分周値に応じて分周して、前記基準クロックの前記分周値の数毎に通信クロックを発生し、さらに、隣接する前記通信クロック間において前記基準クロックの任意番目のタイミングで補助クロックを発生するクロック発生ユニットと、
前記シリアルデータを受信し、１ビットのデータを、少なくとも隣接する通信クロックとその間の補助クロックとを含むサンプリングタイミングでサンプリングし、当該サンプリングした複数のサンプリングデータの多数決にしたがって前記１ビットのデータを判定するデータ判定回路とを有することを特徴とするシリアル通信装置。
【請求項２】
請求項１において、
前記所定の分周値が奇数の場合は、前記クロック発生ユニットは、隣接する通信クロック間の中心タイミングからずれた基準クロックのタイミングで補助クロックを発生することを特徴とするシリアル通信装置。
【請求項３】
請求項１において、
前記所定の分周値が偶数の場合は、前記クロック発生ユニットは、隣接する通信クロック間の中心タイミングと一致する基準クロックのタイミングで、若しく当該中心タイミングからずれた基準クロックのタイミングで、補助クロックを発生することを特徴とするシリアル通信装置。
【請求項４】
請求項１において、
前記クロック発生ユニットは、前記分周値に対応する値が設定される分周値レジスタと、当該設定値を前記基準クロックに同期してダウンカウントまたは当該設定値まで前記基準クロックに同期してアップカウントして、前記基準クロックの分周値の数毎に通信クロックを生成するカウンタとを有することを特徴とするシリアル通信装置。
【請求項５】
請求項４において、
前記クロック発生ユニットは、さらに、前記カウンタの値が当該設定値の１／２、１／２＋１、または１／２−１の値に達するたびに前記補助クロックを生成することを特徴とするシリアル通信装置。
【請求項６】
請求項１において、
前記データ判定回路は、前記通信クロックに同期して前記シリアルデータを取り込む第１のフリップフロップと、前記補助クロックに同期して前記シリアルデータを取り込む第２のフリップフロップと、１ビットのデータに対して、所定のタイミングにおいて、前記第１及び第２のフリップフロップのデータと当該所定のタイミングでのシリアルデータとの多数決を判定して、受信データを生成することを特徴とするシリアル通信装置。
【請求項７】
請求項１において、
前記通信クロックの周期が、前記シリアルデータの周期の１／４になるように、前記分周値が設定されていることを特徴とするシリアル通信装置。
【請求項８】
シリアルデータを通信クロックに同期して受信するシリアル通信装置において、
分周値に対応する値が設定可能であり、基準クロックを前記設定値に応じて分周して、前記基準クロックの前記分周値の数毎に通信クロックを発生し、さらに、隣接する１対の通信クロック間において補助クロックを発生するクロック発生ユニットと、
前記シリアルデータを受信し、１ビットのデータを、少なくとも前記隣接する１対の通信クロックとその間の補助クロックとを含むサンプリングタイミングでサンプリングし、当該サンプリングした複数のサンプリングデータの多数決にしたがって前記１ビットのデータを判定するデータ判定回路とを有することを特徴とするシリアル通信装置。
【請求項９】
請求項８において、
前記クロック発生ユニットに設定される分周値に対応する値は、前記シリアルデータの周期に適合するように設定されることを特徴とするシリアル通信装置。
【請求項１０】
請求項８において、
前記クロック発生ユニットは、前記基準クロックに同期してカウントするカウンタを有し、当該カウンタのカウント値が前記分周値に達するたびに前記通信クロックが生成され、前記カウント値が前記分周値の約１／２に達するたびに前記補助クロックが生成されることを特徴とするシリアル通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信装置に関し、特に、通信速度の誤差に対応可能でノイズによる受信データの検出エラーを防止することができるシリアル通信装置に関する。
【背景技術】
【０００２】
ホストコンピュータと外部プロセッサとの間などの通信手段として、調歩同期式（UART：Universal Asynchronous Receiver Transmitter）シリアル通信が広く用いられている。調歩同期式シリアル通信では、送信側と受信側とが共通の同期クロックにしたがってデータ通信を行うのではなく、あらかじめデータ通信速度を設定しておき、受信側はその通信速度に整合したサンプリングクロックで受信データを判定する。そのため、データの通信速度（周期）とサンプリングクロックの周期との不整合が受信データの判定において問題となる。
【０００３】
図１は、調歩同期式シリアル通信の原理を説明する図である。ホストコンピュータとシリアル通信ケーブルを介して接続された外部プロセッサ内のシリアル通信装置は、受信データRDXとして、例えば８ビットシリアルデータDATAの先頭に挿入された１ビットのＬレベル信号からなるスタートビットSTABを受信することで、受信データのサンプリング検出を開始し、サンプルクロックSMP-CLKのＨレベルに同期して、受信データRDXのＨレベルまたはＬレベルを検出する。そして、８ビットのシリアルデータDATAの後に挿入されるパリティビットPABとＨレベルのストップビットSTOBを検出すると、１フレームのシリアル通信を終了する。通信をしていない状態ではデータ信号はＨレベルにされている。
【０００４】
このように、サンプリングクロックSMP-CLKの周期は、受信データのシリアル通信速度（周期）と整合させておく必要があり、通常は、設計段階においてあらかじめ決められた通信速度のスペックにあわせて、サンプリングクロックの周期も設定される。
【０００５】
図２は、従来のシリアル通信装置の概略構成図である。このシリアル通信装置は、受信ユニット１０と、送信ユニット２０と、それらに通信用のクロックを供給する通信クロック生成ユニット３０とを有する。図示しないシリアル通信路から受信した受信データRDXは、データ受信回路１２に受信され、通信クロック生成ユニット３０から供給される通信用クロックC-CLKまたはサンプリングクロックSMP-CLKに同期して受信データを検出し、シリアル・パラレル変換回路１４によりパラレルデータ１４Ｓに変換される。一方、送信対象のパラレルデータ２４Ｓは、パラレル・シリアル変換回路２４によりシリアルデータに変換され、通信駆動回路２２が、通信クロックC-CLKに同期して送信データ信号TXBを駆動する。
【０００６】
かかる調歩同期式のシリアル通信装置については、例えば以下の特許文献１，２に開示されている。
【０００７】
図３は、従来のシリアル通信装置の問題点を示す図である。調歩同期式シリアル通信は、送受信間で同期クロックを共有することなく、非同期でシリアルデータの送受信を行う。したがって、受信側では通信速度（シリアルデータの周期）に整合した周期のサンプリングクロックでデータを検出する必要がある。しかしながら、サンプリングクロックは、受信側において基準クロックを分周するなどにより生成されるため、必ずしも通信速度（周期）に完全に整合した周期を持つとはかぎらない。そのため、図３に示されるように、スタートビットSTABの検出に応答してサンプリングクロックSMP-CLKを生成しても、シリアルデータの周期とサンプリングクロックの周期との間に誤差があると、１フレーム内において、サンプリングクロックのタイミングがシリアルデータの各ビットのタイミングとずれてしまい、受信エラーを発生する場合がある。
【０００８】
このような問題点を解決するために、特許文献２では、サンプリングクロックの発生タイミングを任意のタイミングに変更可能にすることが提案されている。しかし、そのようなタイミングの変更は、ソフトウエア処理によるものであり、その処理が負担となり、またタイミング変更のための回路も必要になる。
【特許文献１】特開１１−２７５１７５号公報
【特許文献２】特開２００２−５１０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一方、サンプリングクロックのタイミングで受信信号にノイズ発生した場合は、検出データが誤ったデータになる。例えば、Ｌレベルの受信信号にＨレベルのノイズが発生すると、たまたまノイズ重畳時とサンプリングクロックとが一致した場合は、受信データがＨレベルと検出され誤った検出データになる。このようなノイズの問題点を解決するために、１ビットのデータ転送に複数サイクルの通信クロックを利用し、１ビットのデータを複数の通信クロックでサンプリングし複数のサンプリングデータの多数決によりデータ検出を行うことが提案されている。
【００１０】
しかしながら、ノイズに強い通信を可能にするために上記多数決によるデータ検出を行うためには、１ビットのデータ検出に複数の通信クロックのサンプリングタイミングを利用する必要がある。このため、シリアルデータの１周期内のサンプリング期間が長くなり、図３に示した通信クロック（サンプリングクロック）とデータ通信速度との不整合に伴うタイミングのずれの影響がますます大きくなる。
【００１１】
そこで、本発明の目的は、多数決によるデータ検出を可能にしてノイズに強い通信を可能にし、さらに、通信クロックとデータ通信速度との不整合に伴うタイミングのずれをできるだけ抑えることができるシリアル通信装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明の第１の側面は、シリアルデータを通信クロックに同期して受信するシリアル通信装置において、
基準クロックを所定の分周値に応じて分周して、前記基準クロックの前記分周値の数毎に通信クロックを発生し、さらに、隣接する前記通信クロック間において前記基準クロックの任意番目のタイミングで補助クロックを発生するクロック発生ユニットと、
前記シリアルデータを受信し、１ビットのデータを、少なくとも隣接する通信クロックとその間の補助クロックを含むサンプリングタイミングでサンプリングし、当該サンプリングした複数のサンプリングデータの多数決にしたがって前記１ビットのデータを判定するデータ判定回路とを有することを特徴とする。
【００１３】
上記発明の第１の側面において、好ましい実施例では、前記所定の分周値が奇数の場合は、前記クロック発生ユニットは、隣接する通信クロック間の中心タイミングからずれた基準クロックのタイミングで補助クロックを発生する。また、前記所定の分周値が偶数の場合は、前記クロック発生ユニットは、隣接する通信クロック間の中心タイミングと一致する基準クロックのタイミングで、若しく当該中心タイミングからはずれた基準クロックのタイミングで、補助クロックを発生する。
【発明の効果】
【００１４】
上記発明の第１の側面によれば、クロック発生ユニットが基準クロックの分周値の数毎に通信クロックを発生することで、通信クロックのタイミングが分周値に対応した細かい分解能で調整され、通信クロックの周期と受信シリアルデータの通信速度（周期）との不整合をより小さく抑えることができる。さらに、クロック発生ユニットは、補助クロックを隣接する通信クロックの間の任意のタイミングで発生させ、少なくとも隣接する２つの通信クロックとその間の補助クロックを含む複数のタイミングでサンプリングした複数のサンプリングデータから、多数決論理によりデータ判定を行う。したがって、多数決判定によりノイズに強い通信を可能にするとともに、１ビットのデータサイクル期間においてサンプリング期間を短くすることができ、前記通信クロックと通信速度の不整合にともなう受信エラーを抑えることができる。
【００１５】
また、上記の好ましい実施例によれば、所定の分周値を奇数または偶数に設定して通信クロックのタイミングを通信速度（周期）にできるだけ整合するようにベストに調整可能にし、その調整済みの通信クロックの間に補助クロックを発生する。特に、所定の分周値が奇数であっても、補助クロックのタイミングを隣接する通信クロックの中心タイミングからずらして基準クロックのタイミングで補助クロックを発生する。このように、好ましい実施例は、通信速度（周期）に対する通信クロックの周期のずれをできるだけ抑えるような比較的大きな分周値を選択しても、隣接する通信クロックの間に補助クロックを生成して、多数決判定のためのサンプリング期間を狭くすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１７】
図４は、本実施の形態におけるシリアル通信装置の構成図である。このシリアル通信装置は、図２の従来例と同様に、受信データRDXを受信する受信ユニット１０と、送信データTDXを送信する送信ユニット２０と、通信クロックなどを生成しそれらに供給する通信クロック生成ユニット３０とを有する。
【００１８】
受信ユニット１０は、受信データRDXの１フレームの先頭に挿入されるスタートビットを検出してスタートビット検出信号STBDを生成するスタートビット検出回路１６と、スタートビット検出回路１６からのスタートビット検出信号STBDのタイミング後に、各ビットのデータを複数サンプリングによる多数決により判定するデータ判定回路１８と、データ判定回路１８により判定されたシリアルデータＳ１８をパラレルデータに変換するシリアル・パラレル変換回路１４とを有する。変換されたパラレル受信データＳ１４は、データレジスタ５０に格納され、バスインターフェース５２を介して、システム内のデータバス５４に出力される。
【００１９】
また、送信ユニット２０は、データバス５４からバスインターフェース５２を介してデータレジスタ５０に格納されたパラレル通信データＳ２４を、シリアルデータに変換するパラレル・シリアル変換回路２４と、シリアル送信データを送出する送信駆動回路２２とを有する。
【００２０】
さらに、通信クロック生成ユニット３０には、分周値レジスタ３２が設けられ、データバス５４を介して設定されたもしくは予め設定された分周値が格納される。そして、通信クロック生成ユニット３０は、スタートビット検出信号STBDに応答して、基準クロックR-CLKの分周を開始し、基準クロックR-CLKの分周値の数毎に通信クロックC-CLKを生成し、さらに、隣接する通信クロックの間であって任意の基準クロックのタイミングで補助クロックを生成する。補助クロックの生成タイミングは、隣接する通信クロック間のほぼ中央の基準クロックのタイミングに設定されることが好ましいが、中央からいずれかの方向にずれていても良い。
【００２１】
データ判定回路１８は、少なくとも隣接する通信クロックC-CLKとその間の補助クロックS-CLKのタイミングを含む複数のタイミングで１ビットの受信データをサンプリングし、それら複数のサンプリングデータの多数決により受信データを判定する。通信クロックと補助クロックとを利用したサンプリングにより、ノイズに強く、サンプリング期間を短くして受信データの通信速度（周期）と可能な限り整合させたサンプリングタイミングを提供することができることが、以下の説明により明らかになる。
【００２２】
本実施の形態のシリアル通信装置は、１ビットのデータ転送に複数サイクルの通信クロックを使用する。しかも、１ビットのデータあたりの通信クロックのサイクル数をできるだけ少なくして、通信クロックのタイミング調整の分解能をできるだけ高くしている。タイミング調整の分解能を高くすることにより、通信速度（周期）と通信クロックのタイミングとのずれをできるだけ少なくすることが可能になる。その理由について以下にて説明する。
【００２３】
従来の調歩同期シリアル通信において、１ビットのデータ転送に８または１６サイクルの通信クロックを使用することが提案されている。そして、シリアル通信装置は、この通信クロックをデータ送受信のイネーブル信号として使用し、スタートビットの検出、受信データの判定、送信データの駆動を行う。通信クロックは、チップ内の基準クロックを分周して生成され、その分周値を任意に設定することで、通信クロックのタイミングを任意の通信速度（周期）に整合するように調整する。
【００２４】
調歩同期通信の場合、受信データは、シリアル通信装置の基準クロックおよび通信クロックとは非同期に入力される。したがって、スタートビット検出回路１６は、常に受信データをサンプリングし、データフレームの開始を検出する。そのために、スタートビットのサンプリングが通信クロックC-CLKのタイミングで行われる。
【００２５】
図５は、スタートビット検出回路の動作説明図である。この例は、１ビットのデータに対して８サイクルの通信クロックC-CLKが使用される例である。図１で説明したように、調歩同期シリアル通信における無通信レベルはＨレベルであり、データのフレームは１ビットのスタートビットSTABから開始される。そこで、スタートビット検出回路１６は、通信クロックC-CLKのタイミングで受信データRDXをサンプリングし、連続してＬレベルが検出されるとスタートビットとみなす。図５の例では、連続して４回、Ｌレベルを検出すると、スタートビットと判定している。さらに、スタートビット以降のデータDATAのサンプリングポイントSMPが決定される。このサンプリングポイントSMPは、通信速度（周期）と通信クロックの周期との不整合を考慮すると、できるだけ１ビットのデータ期間の中央付近の通信クロックであることが望ましい。したがって、図５の例では、連続して４回Ｌレベルを検出した時の、４回目の通信クロックをサンプリングタイミングクロックと決定している。
【００２６】
図５（Ａ）と図５（Ｂ）とは、受信データのタイミングがわずかにずれているが、それに伴って、図５（Ａ）で連続してＬレベルを検出する４つの通信クロックと、図５（Ｂ）で連続してＬレベルを検出する４つの通信クロックとは、１サイクルずれている。このように、１ビットのデータ期間に、複数の通信クロックを生成してサンプリングタイミングとすることで、非同期で受信される受信データの周期と整合するサンプリングタイミングSMPを選択することができる。
【００２７】
次に、通信クロック生成ユニットの分周動作を説明して、通信速度（周期）とのタイミングのずれが発生することを説明する。
【００２８】
図６は、通信クロック生成ユニットの一般的な分周回路の構成図である。通信クロック生成ユニット３０は、分周値設定レジスタ３２と、セレクタ３４と、フリップフロップ３５及び減算器３７からなるダウンカウンタ３６と、比較器３８とを有する。最初に、ダウンカウンタ３６のフリップフロップ３５には、分周値設定レジスタ３２に設定された分周値が取り込まれ、基準クロックR-CLKに応答して減算器３７の出力がセレクタ３４を介して取り込まれることで、分周値がダウンカウントされる。そのカウント値CNTがゼロになるタイミングで比較器３８が生成するリセット信号Ｓ３８により、セレクタ３４が切り換えられ、基準クロックR-CLKに応答して分周値設定レジスタ３２の分周値が再度フリップフロップ３５にリロードされる。
【００２９】
図６の動作波形図に示されるように、８つの基準クロックR-CLK毎に通信クロックC-CLKを発生する場合、つまり分周値Ｍを８に設定する場合（Ｍ＝８）は、分周値Ｍより１少ないＭ−１＝７がレジスタ３２に設定される。したがって、リセット時にフリップフロップ３５に格納されるカウンタ値CNTは、分周値Ｍ−１＝７となる。そして、カウンタ値CNTは７，６，５，４．．．０とダウンカウントされ、カウント値CNT＝０になるたびに分周値Ｍ−１＝７にリセットされる。つまり、通信クロックC-CLKは、８つの基準クロックR-CLK毎に生成される。そして、ダウンカウンタ３６のダウンカウントの開始タイミングは、連続する８つの基準クロックのうちどの基準クロックをリセットタイミングに選択するかにより決定される。さらに、通信クロックのサイクル（周期）は、設定される分周値によって調整可能である。分周値を８より大きくすればより長いサイクルになり、分周値を８より小さくすればより短いサイクルになる。つまり、分周値Ｍを８とし（Ｍ＝８）８基準クロックを基本サイクルとする通信クロックC-CLKの調整可能なサイクルの分解能は、通信クロックの周期の約１／８であることが理解される。
【００３０】
図６のクロック生成回路は、ダウンカウンタ３６の代わりにアップカウンタで構成することもできる。その場合は、減算器３７の代わりに加算器が設けられ、フリップフロップ３４はリセット信号Ｓ３８でゼロにリセットされ、比較器の比較値がレジスタ３２に設定された値になる。
【００３１】
図７は、通信クロックのサイクルの誤差を説明する波形図である。図７において、通信データRDXの通信周期、つまり１ビットのデータ期間に、分周値Ｍ（＝８）個の通信クロックを発生させる例である。通信データの周期に完全に整合する通信クロックC-CLK(1)に対して、システム内の基準クロックR-CLKを分周して生成される通信クロックC-CLK(2)は、そのサイクルにわずかな誤差ｄ１を有する。これは、基準クロックR-CLKの速度（周期）と通信データの速度（周期）とを完全に整合させることは、現実には困難な場合が多いことが理由であり、その基準クロックを分周して通信クロックを生成するかぎり、理想的な通信クロックとはわずかな誤差が生じる。
【００３２】
したがって、１ビットのデータ期間に８つの通信クロックを発生させると、１ビットのデータ期間における通信クロックサイクルの誤差ｄ２は、d1×８になる。そして、調歩同期通信の１フレームは、図１に示したように、１ビットのスタートビットと、７または８ビットのデータと、１ビットのパリティビットと、１または２ビットのストップビットの合計９ビットから１２ビットで構成される。そのため、１フレーム当たりの通信クロックの周期の誤差は、１ビット当たりの誤差ｄ２の９〜１２倍になり、通信クロックの周期の誤差ｄ１の７２倍から９６倍になる。
【００３３】
前述したとおり、通信クロックの周期は、基準クロックの周波数に影響され、基準クロックの周期をＮ、分周値をＭとすると、通信クロックの周期ＸはＸ＝Ｎ×Ｍとなる。そして、データ１ビットの周期Ｙは、通信クロックの周期Ｘの８倍に等しくするためには、Ｙ＝８×Ｎ×Ｍになるように分周値Ｍを調整しなければならない。基準クロックR-CLKの周期Ｎは通常固定的だからである。そして、分周値Ｍは通常整数しか取りえないので、分周値Ｍの分解能でしか通信クロックの周期を調整することができない。
【００３４】
図８は、通信クロックの周期の調整分解能を高めた例を示す波形図である。この例は、１ビットのデータ期間に対して４つの通信クロックC-CLKを発生させる例であり、図６に示した通信クロック発生ユニットの分周値を、図７の分周値Ｍ＝８の２倍の１６に設定した例である。分周値Ｍを１６に設定することで、１６個の基準クロック毎に通信クロックC-CLKが生成され、通信クロックの周期が２倍に長くなる。それに伴って、通信クロックの周期の調整は、基準となる周期（１６個の基準クロックサイクル）に対して１／１６の分解能で行うことが可能になる。つまり、分周値＝１６を１５にしたり１７にしたりすることで、より狭い分解能での調整が可能になる。１ビットのデータ期間に８つの通信クロックを発生する図７では、基準となる分周器Ｍ＝８を７にしたり９にしたりするだけであり、通信クロックの周期あたりの分解能はより大きくなる。
【００３５】
その結果、通信クロックの１サイクル当たりの誤差ｄ１は、通信クロックのサイクルが長くなったことにより、図７の場合に比較して小さくなる。それにともない、１ビットのデータ期間当たりの誤差ｄ２も小さくなる。このように、１ビットのデータ期間における通信クロックのサイクルまたは数をできるだけ少なくすることで、生成可能な通信クロックC-CLK(2)の理想的な通信クロックC-CLK(1)との誤差を小さくすることができ、通信クロックの周期と通信データの周期との不整合を可能な限り小さくすることができる。
【００３６】
図９は、多数決によるデータ判定の動作を説明する波形図である。ノイズに強いシリアル通信を行うためには、受信データのサンプリングタイミングを複数にして、複数（望ましくは奇数）のサンプリングデータの多数決によりデータ判定をすることが望ましい。そこで、図９では、４つの通信クロックC-CLKのうち、２，３，４番目の通信クロックをサンプリングクロックとして採用する。そして、各サンプリング点でのサンプリングデータの多数決により、受信データを判定している。図９の例では、３番目の通信クロックのサンプリングタイミングでノイズが重畳していても、２番目と４番目の通信クロックでのサンプリングデータが正しいため、多数決判定により正しい受信データ「０＝Ｌ」が判定されている。
【００３７】
ところが、通信クロックの周期の誤差を抑えるために、１ビットのデータ期間に４つの通信クロックサイクルを割り当てると、多数決判定に最低必要な３つのサンプリングクロックが発生する期間が長くなる。つまり、図７に示した１ビットのデータ期間に８つの通信クロックサイクルを割り当てる場合の多数決判定期間DBM(8)（Decision by Majority）よりも、図８に示した１ビットのデータ期間に４つの通信クロックサイクルを割り当てる場合の多数決判定期間DBM(4)のほうが長くなる。その結果、複数ビットで構成される１フレーム内において、多数決判定期間がシリアル通信データの周期と整合できなくなるおそれがある。
【００３８】
図１０は、多数決によるデータ判定の動作の問題点を説明する波形図である。１ビットあたりに４通信クロックサイクルを割り当てて、２，３，４番目の通信クロックでのサンプリングデータを多数決処理した場合、前述したとおり、多数決判定期間が長くなる。それに伴って、受信データRDX1のようにその周期がスペック通りの場合は、多数決判定を適切に行うことができるが、通信回線に起因する受信データの周期の揺らぎにより、受信データRDX2のようにその周期がスペックより短くなると、多数決判定期間DBM(4)がデータ期間と不整合となり、多数決判定が不適切に行われてしまう。図１０の例では、４番目の通信クロックが次のデータ期間にずれこみ、次のデータをサンプリングしている。
【００３９】
図１０に示すとおり、受信データの周期の揺らぎと、１フレーム内の通信クロックの誤差の累積とが相まって、多数決判定に支障をきたす場合がある。
【００４０】
図１１は、本実施の形態における通信クロック生成ユニットの構成図である。この通信クロック生成ユニット３０は、分周値Ｍに対してＭ−１が設定される分周値設定レジスタ３２と、セレクタ３４と、複数ビットのフリップフロップ３５及び減算器３７からなるダウンカウンタ３６と、比較器３８とを有する。ここまでは、図６の例と同じである。したがって、ダウンカウンタ３６のダウンカウント動作とリセット動作は、図６と同じである。
【００４１】
図１１の通信クロック生成ユニット３０は、さらに、分周値設定レジスタ３２の設定された値Ｍ−１の約１／２の値を生成する補助クロックタイミング生成部６０と、カウント値CNTを減算した値と補助クロックタイミング生成部６０が生成する値（Ｍ−１）／２の値とを比較して、一致したタイミングで補助クロックを生成する補助クロック生成部６２とを有する。
【００４２】
補助クロックタイミング生成部６０は、例えば、分周値設定レジスタ３２に設定された値Ｍ−１を１ビット右シフトするシフト回路で構成される。あるいは、値Ｍ−１を１ビット右シフトして＋１する回路であってもよい。または、分周値Ｍが偶数の場合と奇数の場合で、１ビット右シフト後にそれぞれ＋１したり、＋１しなかったりする構成でもよい。
【００４３】
図１１の通信クロック発生ユニット３０は、図６と同様に、分周値設定レジスタ３２に設定した値Ｍ−１に応じて、基準クロックR-CLKの分周値Ｍの数毎に通信クロックC-CLKを発生する。つまり、図６の回路と同様に、ダウンカウンタ３６のカウント値CNTが０になるタイミングで、比較器３８が通信クロックC-CLKを発生する。そして、補助クロック生成部６２は、カウント値CNTが設定値Ｍ−１と０との間の任意のタイミングで補助クロックを発生する。
【００４４】
図１２は、本実施の形態における通信クロックと補助クロックとを利用した多数決処理を説明する波形図である。通信クロック発生ユニット３０が生成する通信クロックC-CLKと補助クロックS-CLKとが、データ判定回路１８に供給され、データ判定回路１８は、２番目と３番目の通信クロックC-CLKと、その間に発生する補助クロックS-CLKのタイミングで、受信データRDX2をサンプリングし、３つのサンプリングデータの多数決により受信データを判定する。図１０の波形図のゆらぎにより周期が短くなった受信データRDX2と同じように、図１２の例では受信データRDX2の周期が短くなり、４番目の通信クロックが受信データの期間内に入っていない。しかしながら、サンプリングタイミングが、隣接する２つの通信クロックC-CLKとその間に生成される補助クロックS-CLKになっており、その多数決判定期間DBMが短くなっている。その結果、適切なサンプリングが可能になり、多数決判定を適正に行うことができる。
【００４５】
１ビットのデータ期間に割り当てられる通信クロックの数は、ハードウエア構成の要請などから、２のべき乗、４，８，１６，３２．．．．にするのが好ましい。その場合、通信クロックの周期の通信速度（周期）に対する誤差を最小にするためには、できるだけその数を少なくするのが好ましい。そして、多数決処理をするために、それらの２のべき乗の数の通信クロックのうち、データの周期における中央部に位置する隣接通信クロック対とその間に生成される補助クロックとを利用して、受信データをサンプリングし、３つのサンプリングデータを検出するのが好ましい。したがって、１ビットのデータに対して通信クロックの数を４個にする場合は、２番目と３番目の通信クロックとその間の補助クロックをサンプリングタイミングにする。また、１ビットのデータに対して通信クロックの数を８個にする場合は、４番目と５番目の通信クロックとその間の補助クロックをサンプリングタイミングにする。通信クロックの周期の誤差を最小にする観点から、前者の例が最も好ましいことになる。
【００４６】
図１２に示される本実施の形態における通信クロックと補助クロックは、図６及び図７に示した周期の短い８つの通信クロックとは明らかに異なる。すなわち、図６及び図７に示した１ビットのデータ期間に８つの通信クロックを割り当てる場合には、通信クロックは、分周値８個の基準クロック毎に毎回発生する。そして、この通信クロックの周期は、分周値Ｍ＝８を可変設定することで調整可能であるが、その調整の分解能は１サイクルに対して１／８である。
【００４７】
それに対して、本実施の形態における通信クロックと補助クロックとからなるサンプリングクロックは、必ずしも同じ基準クロック数毎に発生するものではない。通信クロックは、分周値Ｍ（例えば１５や１６）に対応する基準クロック数毎に必ず発生するが、通信クロックと補助クロックとからなるサンプリングクロックは、所定の基準クロック数毎に必ず発生するとは限らない。レジスタに設定されるのは通信クロックの発生タイミングである分周値Ｍ（正確にはＭ−１）であり、補助クロックは隣接する通信クロック間の任意のタイミングで発生するように設定されるだけである。したがって、隣接する通信クロックの中心タイミングと異なるタイミングで補助クロックが発生することを許可している。そして、通信クロック及び補助クロックの各々は、図６及び図７に示した通信クロックの分周値（Ｍ＝８）よりも大きい分周値Ｍ（例えばＭ＝１５、１６）に対応する基準クロック数毎に発生しているので、図１２に示した通信クロックと補助クロックとからなるサンプリングクロックの調整の分解能は図６及び図７に示した通信クロックのそれよりも高くなる。
【００４８】
図１３は、本実施の形態における通信クロック発生回路の動作を説明する波形図である。図１３（Ａ）は、分周値Ｍ＝１７で１７個の基準クロックR-CLK毎に通信クロックが生成される例である。フリップフロップ３５に分周値Ｍ−１＝１６がロードされ、基準クロックR-CLKに同期してダウンカウントされ、カウント値CNTがゼロになるたびに、通信クロックC-CLKが生成されている。そして、補助クロックタイミング生成部６０が、分周値Ｍ−１＝１６（10000）を１ビット右シフトした補助クロックタイミング値（1000＝８）を、補助クロック発生部６２に与える。そして、補助クロック発生部６２は、カウント値CNTが８になるタイミングで、補助クロックS-CLKを生成する。したがって、図１３（Ａ）に示されるとおり、Ｍ＝１７個の基準クロックR-CLKが発生するたびに毎回、通信クロックC-CLKが生成され、隣接する通信クロックC-CLKの中心近傍のタイミングで補助クロックS-CLKが生成される。通信クロックとそれに続く補助クロックとの間には、８個の基準クロックR-CLKが発生するのに対して、補助クロックとそれに続く通信クロックとの間には、７個の基準クロックR-CLKが発生している。つまり、図１３（Ａ）の通信クロック及び補助クロックは、図６、図７に示した分周値Ｍ＝８の通信クロックとは異なる。
【００４９】
図１３（Ｂ）は、分周値Ｍ＝１６で１６個の基準クロックR-CLK毎に通信クロックが生成される例である。図１３（Ａ）と同様に、フリップフロップ３５に分周値Ｍ−１＝１５がロードされ、基準クロックR-CLKに同期してダウンカウントされ、カウント値CNTがゼロになるたびに、通信クロックC-CLKが生成されている。そして、補助クロックタイミング生成部６０が、分周値Ｍ−１＝１５（011111）を１ビット右シフトした補助クロックタイミング値（0111＝７）を、補助クロック発生部６２に与える。そして、補助クロック発生部６２は、カウント値CNTが７になるタイミングで、補助クロックS-CLKを生成する。したがって、図１３（Ｂ）に示されるとおり、Ｍ＝１６個の基準クロックR-CLKが発生するたびに毎回、通信クロックC-CLKが生成され、隣接する通信クロックC-CLKの中心近傍のタイミングで補助クロックS-CLKが生成される。但し、この場合は、通信クロックとそれに続く補助クロックとの間には、８個の基準クロックR-CLKが発生するのに対して、補助クロックとそれに続く通信クロックとの間には、６個の基準クロックR-CLKが発生している。つまり、この場合の通信クロックと補助クロックも、図６、図７に示した分周値Ｍ＝８の通信クロックとは異なる。
【００５０】
上記の説明から理解されるように、分周値Ｍ＝１８が設定されると、通信クロックC-CLKは、１８個の基準クロックごとに生成され、カウンタ値が1000＝８のタイミングで補助クロックS-CLKが生成される。つまり、通信クロックとそれに続く補助クロックとの間には、９個の基準クロックR-CLKが発生するのに対して、補助クロックとそれに続く通信クロックとの間には、７個の基準クロックR-CLKが発生する。
【００５１】
図１１の通信クロック発生ユニット３０内の補助クロックタイミング生成部６０が、１ビット右シフトしてから＋１する構成の場合は、図１３（Ａ）の例では、カウンタ値が９のタイミングで補助クロックが生成され、図１３（Ｂ）の例では、カウンタ値が８のタイミングで補助クロックが生成される。したがって、図１３（Ａ）のように分周値Ｍが奇数、つまり奇数基準クロックごとに通信クロックが生成される場合、であれば、補助クロックの発生タイミングは隣接する通信クロックの中央からずれるが、図１３（Ｂ）のように分周値Ｍが偶数、つまり偶数基準クロックごとに通信クロックが生成される場合、であれば、補助クロックの発生タイミングは隣接する通信クロックの中央と一致する。つまり、この場合は、図１３（Ｂ）の通信クロックと補助クロックは、図６、図７に示した分周値Ｍ＝８の通信クロックと同じになる。
【００５２】
通信クロック発生ユニット３０内の補助クロックタイミング生成部６０が、分周値Ｍが奇数の時は１ビット右シフトするだけであり、分周値Ｍが偶数の時は１ビット右シフトしてから＋１する構成の場合は、図１３（Ａ）の例では、カウンタ値が８のタイミングで補助クロックが生成され、図１３（Ｂ）の例では、カウンタ値が８のタイミングで補助クロックが生成される。
【００５３】
図１４は、本実施の形態における別の通信クロック生成ユニットの構成図である。この通信クロック生成ユニット３０は、フリップフロップ３５と加算器６３とからなるアップカウンタ３９を有し、さらに、アップカウンタのカウント値と分周値設定レジスタ３２の設定値とを比較して一致するときに通信クロックC-CLKを生成する比較器６４と、補助クロックタイミング生成部６０により生成される分周値設定レジスタの設定値の１／２の値とカウント値とを比較して一致するときに補助クロックS-CLKを生成する比較器６５とを有する。その動作は、比較器６４が一致を検出するたびに発生するリセット信号Ｓ３８に応答して、フリップフロップ３５がゼロにリセットされ、その後は基準クロックR-CLKに同期してカウントアップを行う。そして、カウント値が分周値設定レジスタ３２の設定値と一致するときに比較器６４が通信クロックC-CLKを発生し、設定値の１／２と一致するときに比較器６５が補助クロックS-CLKを発生する。
【００５４】
図１５は、本実施の形態におけるさらに別の通信クロック生成ユニットの構成図である。この通信クロック発生回路は、図１１のように１ビット右シフト機能を有する補助クロックタイミング発生部６０を利用せずに、補助クロックレジスタ６６を設けて、そのレジスタ値とカウンタ値CNTとを比較する補助クロック発生部６７により補助クロックS-CLKを発生させている。それ以外の構成は図１１と同じである。この場合は、補助クロックを隣接する通信クロックの間の任意のタイミングに設定することができる。
【００５５】
さらに、補助クロックの発生タイミングを、レジスタの分周値Ｍを１ビット右シフトしたカウント値とそれに＋１したカウント値とに交互に変更するようにしてもよい。そのようにすることで、図１３（Ａ）のような例において、補助クロックS-CLKのタイミングの平均値が通信クロックC-CLKのほぼ中央になり、ノイズに対する強さを増すことができる。
【００５６】
図１６は、本実施の形態におけるデータ判定回路の構成図である。データ判定回路１８は、基準クロックの分周値の数毎に生成される通信クロックC-CLKとその間に生成される補助クロックS-CLKとにより受信データを３回サンプリングし、それらサンプリングデータを多数決判定する。フリップフロップFF1は、受信するシリアルデータRDXを通信クロックC-CLKがＨレベルの時に基準クロックR-CLKに同期して取り込み、フリップフロップFF2は、受信するシリアルデータRDXを補助クロックS-CLKがＨレベルの時に基準クロックR-CLKに同期して取り込む。そして、３つのANDゲートAND1,2,3とORゲートOR1とは、フリップフロップFF1の出力と、フリップフロップFF2の出力と、瞬間的に受信しているデータRDXとの多数決を判定する回路であり、３つのサンプリングデータの３対の組合せのうち１つでも一致すると、その組合せ入力に対するANDゲートがＨレベルを出力する。
【００５７】
フリップフロップ７０とインクリメント回路７２とでリングカウンタが構成され、スタートビット検出回路１６からのスタートビット検出信号STBDによりリセットされ、通信クロックC-CLKがＨになるたびにカウントアップされ、シリアルデータのサイクル毎に０から３までリングカウントする。そして、比較回路７４は、リングカウンタのカウント出力が２になるとANDゲートAND4にＨレベルを出力し、次の通信クロックC-CLKがＨレベルになるときに、フリップフロップFF3をイネーブル状態にする。フリップフロップFF3は、イネーブル状態にされると、基準クロックR-CLKに同期してORゲートの出力を取り込み、受信データＳ１８が出力される。
【００５８】
図１７は、データ判定回路の動作を説明する波形図である。このデータ波形図を参照しながら、データ判定回路の動作を説明する。先頭ビットのデータサイクルが始まるときに、カウンタのフリップフロップ７０は、図示しないスタートビット検出信号STBDに応答してリセットされ、カウント値は０になっている。また、その後のデータサイクルが始まるときは、２ビットのフリップフロップ７０はインクリメント回路７２のインクリメントによりカウント値０を取り込む。そこで、通信クロックC-CLKがＨレベルになるたびに、シリアルデータRDXの信号がフリップフロップFF1に取り込まれ、補助クロックS-CLKがＨレベルになるたびに、シリアルデータRDXの信号がフリップフロップFF2に取り込まれる。また、カウント値が２の期間中に通信クロックC-CLKがＨレベルにになる時に、多数決判定結果がフリップフロップFF3に取り込まれる。
【００５９】
したがって、カウンタ値が２になる以前の連続する通信クロックとその間の補助クロックのタイミングが３つのサンプリングタイミングSP1,SP2,SP3となる。図１５の例では、３番目のサンプリングタイミングSP3では受信シリアルデータRDXにはノイズが重畳されているが、１，２番目のサンプリングタイミングSP1,SP2での検出データがいずれもＬレベルであるため、３つの入力がＬ，Ｌ，Ｈであり、ANDゲートAND1,2,3の出力は全てＬレベルとなる。その結果、フリップフロップFF3にはＬレベルが取り込まれ、受信データＳ１８としてＬレベルが判定される。このように、データ判定回路１８は、リングカウンタによりサンプリングすべき３つのクロックタイミングを検出し、その時の多数決結果を受信データとして出力している。
【００６０】
上記の実施の形態では、隣接する通信クロックの間に１つの補助クロックを発生しているが、奇数の補助クロックを発生してもよい。その場合に、補助クロックのみをサンプリングクロックとして利用することも可能である。
【００６１】
また、上記の実施の形態では、全ての隣接する通信クロックの間に補助クロックを発生しているが、１データサイクル期間に４つの通信クロックを発生させる場合において、データサイクルの２番目と３番目の通信クロックの間にのみ補助クロックを発生させるようにしてもよい。或いは、１データサイクル期間に８つの通信クロックを発生させる場合においては、データサイクルの４番目と５番目の通信クロックの間にもに補助クロックを発生させるようにしてもよい。
【００６２】
但し、通信クロックの周期を高分解能で制御可能として通信クロックの周期とデータ通信の周期とをベストに調整可能にするためには、１データサイクル内の通信クロックの数をできるだけ少なくし、通信クロックの周期をできるだけ長くすることが望ましい。そのような理由から、１データサイクル内の通信クロックの数は４個にするのが好ましい。その場合は、上記実施の形態のように、１データサイクル内の２，３番目の通信クロックとその間の補助クロックとをサンプリングクロックとして利用することになる。
【００６３】
以上の実施の形態をまとめると以下の付記の通りである。
【００６４】
（付記１）シリアルデータを通信クロックに同期して受信するシリアル通信装置において、
基準クロックを所定の分周値に応じて分周して、前記基準クロックの前記分周値の数毎に通信クロックを発生し、さらに、隣接する前記通信クロック間において前記基準クロックの任意番目のタイミングで補助クロックを発生するクロック発生ユニットと、
前記シリアルデータを受信し、１ビットのデータを、少なくとも隣接する通信クロックとその間の補助クロックとを含むサンプリングタイミングでサンプリングし、当該サンプリングした複数のサンプリングデータの多数決にしたがって前記１ビットのデータを判定するデータ判定回路とを有することを特徴とするシリアル通信装置。
【００６５】
（付記２）付記１において、
前記所定の分周値が奇数の場合は、前記クロック発生ユニットは、隣接する通信クロック間の中心タイミングからずれた基準クロックのタイミングで補助クロックを発生することを特徴とするシリアル通信装置。
【００６６】
（付記３）付記１において、
前記所定の分周値が偶数の場合は、前記クロック発生ユニットは、隣接する通信クロック間の中心タイミングと一致する基準クロックのタイミングで、若しく当該中心タイミングからずれた基準クロックのタイミングで、補助クロックを発生することを特徴とするシリアル通信装置。
【００６７】
（付記４）付記１において、
前記クロック発生ユニットは、前記分周値に対応する値が設定される分周値レジスタと、当該設定値を前記基準クロックに同期してダウンカウントまたは当該設定値まで前記基準クロックに同期してアップカウントして、前記基準クロックの分周値の数毎に通信クロックを生成するカウンタとを有することを特徴とするシリアル通信装置。
【００６８】
（付記５）付記４において、
前記クロック発生ユニットは、さらに、前記カウンタの値が当該設定値の１／２、１／２＋１、または１／２−１の値に達するたびに前記補助クロックを生成することを特徴とするシリアル通信装置。
【００６９】
（付記６）付記４において、
前記クロック発生ユニットは、さらに、前記補助クロックを発生するタイミングを設定する補助クロックレジスタと、前記カウンタの値が当該補助クロックレジスタの設定値に達するたびに前記補助クロックを生成する補助クロック生成回路とを有することを特徴とするシリアル通信装置。
【００７０】
（付記７）付記１において、
前記データ判定回路は、前記通信クロックに同期して前記シリアルデータを取り込む第１のフリップフロップと、前記補助クロックに同期して前記シリアルデータを取り込む第２のフリップフロップと、１ビットのデータに対して、所定のタイミングにおいて、前記第１及び第２のフリップフロップのデータと当該所定のタイミングでのシリアルデータとの多数決を判定して、受信データを生成することを特徴とするシリアル通信装置。
【００７１】
（付記８）付記７において、
前記データ判定回路は、さらに、前記１ビットのデータ期間に生成される前記通信クロックの数を繰り返しカウントする通信クロックカウンタを有し、当該通信クロックカウンタのカウント値が前記通信クロックの数の約１／２に達するたびに、前記多数決判定を行うことを特徴とするシリアル通信装置。
【００７２】
（付記９）付記８において、
前記データ判定回路内の通信クロックカウンタは、前記シリアルデータの先頭のスタートビットに応答して、当該カウント動作を開始することを特徴とするシリアル通信装置。
【００７３】
（付記１０）付記１において、
前記基準クロックは、前記シリアルデータを受信する装置側で生成されることを特徴とするシリアル通信装置。
【００７４】
（付記１１）付記１において、
前記通信クロックの周期が、前記シリアルデータの周期の１／４になるように、前記分周値が設定されていることを特徴とするシリアル通信装置。
【００７５】
（付記１２）シリアルデータを通信クロックに同期して受信するシリアル通信装置において、
分周値に対応する値が設定可能であり、基準クロックを前記設定値に応じて分周して、前記基準クロックの前記分周値の数毎に通信クロックを発生し、さらに、隣接する１対の通信クロック間において補助クロックを発生するクロック発生ユニットと、
前記シリアルデータを受信し、１ビットのデータを、少なくとも前記隣接する１対の通信クロックとその間の補助クロックとを含むサンプリングタイミングでサンプリングし、当該サンプリングした複数のサンプリングデータの多数決にしたがって前記１ビットのデータを判定するデータ判定回路とを有することを特徴とするシリアル通信装置。
【００７６】
（付記１３）付記１２において、
前記クロック発生ユニットに設定される分周値に対応する値は、前記シリアルデータの周期に適合するように設定されることを特徴とするシリアル通信装置。
【００７７】
（付記１４）付記１２において、
前記クロック発生ユニットは、前記基準クロックに同期してカウントするカウンタを有し、当該カウンタのカウント値が前記分周値に達するたびに前記通信クロックが生成され、前記カウント値が前記分周値の約１／２に達するたびに前記補助クロックが生成されることを特徴とするシリアル通信装置。
【図面の簡単な説明】
【００７８】
【図１】調歩同期式シリアル通信の原理を説明する図である。
【図２】従来のシリアル通信装置の概略構成図である。
【図３】従来のシリアル通信装置の問題点を示す図である。
【図４】本実施の形態におけるシリアル通信装置の構成図である。
【図５】スタートビット検出回路の動作説明図である。
【図６】通信クロック生成ユニットの一般的な分周回路の構成図である。
【図７】通信クロックのサイクルの誤差を説明する波形図である。
【図８】通信クロックの周期の調整分解能を高めた例を示す波形図である。
【図９】多数決によるデータ判定の動作を説明する波形図である。
【図１０】多数決によるデータ判定の動作の問題点を説明する波形図である。
【図１１】本実施の形態における通信クロック生成ユニットの構成図である。
【図１２】本実施の形態における通信クロックと補助クロックとを利用した多数決処理を説明する波形図である。
【図１３】本実施の形態における通信クロック発生回路の動作を説明する波形図である。
【図１４】本実施の形態における別の通信クロック生成ユニットの構成図である。
【図１５】本実施の形態におけるさらに別の通信クロック生成ユニットの構成図である。
【図１６】本実施の形態におけるデータ判定回路の構成図である。
【図１７】データ判定回路の動作を説明する波形図である。
【符号の説明】
【００７９】
１０：受信ユニット、１６：スタートビット検出回路、１８：データ判定回路
３０：クロック生成ユニット、３２：分周値設定レジスタ
C-CLK：通信クロック、S-CLK：補助クロック、R-CLK：基準クロック
RDX：受信シリアルデータ
【図１】
2005167663.tif 000003
【図２】
2005167663.tif 000004
【図３】
2005167663.tif 000005
【図４】
2005167663.tif 000006
【図５】
2005167663.tif 000007
【図６】
2005167663.tif 000008
【図７】
2005167663.tif 000009
【図８】
2005167663.tif 000010
【図９】
2005167663.tif 000011
【図１０】
2005167663.tif 000012
【図１１】
2005167663.tif 000013
【図１２】
2005167663.tif 000014
【図１３】
2005167663.tif 000015
【図１４】
2005167663.tif 000016
【図１５】
2005167663.tif 000017
【図１６】
2005167663.tif 000018
【図１７】
2005167663.tif 000019