(57)【特許請求の範囲】
【請求項１】
調歩同期によってデータを受信する調歩同期式通信装置において、
送信クロックに対して、２Ｓ−１倍の受信クロックを生成するクロック生成手段と、
前記クロック生成手段により生成される受信クロックに同期して受信されたデータを取り込んで、ビット毎に加算する加算手段と、
受信されたデータからスタートビットを検出するスタートビット検出手段と、
前記スタートビット検出手段によってスタートビットが検出されてから前記データのビット数をカウントするカウンタと、
前記カウンタによるカウントに基づいてストップビットの取込み順番を検出し、かつ前記クロック生成手段から２Ｓ−１回の受信クロックが出力される前に、Ｓビットにより加算値を保持する前記加算手段の最下位ビットから（Ｓ−１）番目のビットが“１”となった段階で、前記スタートビット検出手段によるスタートビットの検出を開始させるストップビット検出手段と
を具備したことを特徴とする調歩同期式通信装置。
【請求項２】
調歩同期によってデータを受信する調歩同期式通信方法であって、
送信クロックに対して、２Ｓ−１倍の受信クロックを生成するクロック生成工程と、
前記クロック生成工程により生成される受信クロックに同期して受信されたデータを取り込んで、ビット毎に加算する加算行程と、
受信されたデータからスタートビットを検出するスタートビット検出行程と、
前記スタートビット検出行程によってスタートビットが検出されてから前記データのビット数をカウントする行程と、
このカウントされたビット数に基づいてストップビットの取込み順番を検出し、かつ前記クロック生成工程により２Ｓ−１回の受信クロックが出力される前に、前記加算工程によりＳビットにより保持される加算値の最下位ビットから（Ｓ−１）番目のビットが“１”となった段階で、前記スタートビット検出行程によるスタートビットの検出を開始させるストップビット検出行程とを有する調歩同期式通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調歩同期シリアル通信において連続してデータを送受信する際のクロック誤差による受信エラーを防ぐ調歩同期式通信装置、調歩同期式通信方法に関する。
【背景技術】
【０００２】
一般に、調歩同期式通信は、スタートビットで始まりストップビットで終わるという所定長のビット列（フレーム）でデータを送信し、受信側ではこれらスタートビット及びストップビットを検出して受信データを識別する方式である。調歩同期式通信では、送信側では送信クロックに同期してデータを送信し、受信側では受信クロックに同期してデータをサンプリングする（取り込む）。従って、調歩同期式通信では、送信クロックと受信クロックが同一の周波数であることが前提となる。このため、送信クロックと受信クロックの周波数が完全に同一でない場合には、受信側で受信したデータにエラーが発生してしまう。
【０００３】
図４は、従来の調歩同期式通信を説明するためのタイミングチャートである。  
送信側の回路は、図４（ａ）に示す送信クロックに同期して、図４（ｂ）に示すように通信データを受信回路に出力する。通信データ（フレーム）の先頭にはスタートビットがあり、スタートビットに続いて複数のデータビットが連続する。最後のデータビットにパリティビットが付加され、フレームの最後にストップビットが設けられている。
【０００４】
受信側の回路は、受信データのサンプリングを行いスタートビットを検出すると、そのデータの中央で取り込むように、図４（ｃ）に示すように、受信クロックを送信クロックと同期させる。受信回路は、受信クロックのタイミングで、順次、受信データを取込む。
【０００５】
図４では、送信クロックと受信クロックの周波数が僅かに異なるため、受信データの取り込みを続けているうちに、データを取り込むタイミングがデータの中央から徐々にずれている。こうした場合、図４（ｄ）に示すように、データ取り込みのタイミングが１クロック分ずれてしまうと別のデータを取り込んでしまうためデータエラーが発生することになる。
【０００６】
従来では送信側の送信クロックと受信側の受信クロックを同一にするために、異なる周波数のクロックパルスを発生するクロック発生器を複数設けて、データ通信をする相手に合わせてクロックパルスを切り替えることで、送受信クロックを同一にすることができる調歩同期式通信装置が考えられている（特許文献１参照）。
【特許文献１】特開平９−２６１２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された調歩同期式通信装置は、複数のクロック発生器を設けることで送受信クロックを同期させることができる。
【０００８】
しかしながら、複数のクロック発生器を設けたとしても、送信側の送信クロックと完全に同期するクロックを発生させることができるクロック発生器が含まれていなければ、やはり受信クロックと送信クロックとに誤差が生じて受信エラーが発生してしまう。
【０００９】
本発明は前述した事情に考慮してなされたもので、その目的は、送信クロックと受信クロックとの間に誤差が生じたとしても受信エラーを防ぐことが可能な調歩同期式通信装置、調歩同期式通信方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、調歩同期によってデータを受信する調歩同期式通信装置において、送信クロックに対して、２Ｓ−１倍の受信クロックを生成するクロック生成手段と、前記クロック生成手段により生成される受信クロックに同期して受信されたデータを取り込んで、ビット毎に加算する加算手段と、受信されたデータからスタートビットを検出するスタートビット検出手段と、前記スタートビット検出手段によってスタートビットが検出されてから前記データのビット数をカウントするカウンタと、前記カウンタによるカウントに基づいてストップビットの取込み順番を検出し、かつ前記クロック生成手段から２Ｓ−１回の受信クロックが出力される前に、Ｓビットにより加算値を保持する前記加算手段の最下位ビットから（Ｓ−１）番目のビットが“１”となった段階で、前記スタートビット検出手段によるスタートビットの検出を開始させるストップビット検出手段とを具備したことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、受信データのストップビットを検出し、このストップビットの長さを変化させることで次フレームのスタートビットのタイミングを同期させるので、送信クロックと受信クロックとの間に誤差が生じたとしても、フレーム単位でずれを補正して受信エラーを防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。  
図１は、本実施形態における調歩同期式通信装置の構成を示すブロック図である。図１には送信側の調歩同期式通信装置１０と受信側の調歩同期式通信装置１２とを示している。調歩同期式通信装置１０，１２は、例えば情報機器内の回路基板等に実装され、基板間でデータを送受信する。本実施形態では、調歩同期式通信装置１０から調歩同期式通信装置１２に対してデータを送信する場合を例にして説明する。
【００１３】
図１中の調歩同期式通信装置１０には、データを送信するための機能として、送信クロックを生成する調歩同期送信部１５と調歩同期送信部１５とを示し、調歩同期式通信装置１２には、調歩同期式通信装置１０から送信された通信データを受信するための機能として、受信クロックを生成するクロック生成回路１６と調歩同期受信器１８とを示している。調歩同期式通信装置１０，１２には、それぞれデータ送受信するための機能が実装されているものとする。
【００１４】
調歩同期式通信装置１０の調歩同期送信部１５は、クロック生成回路１４が生成する送信クロックと同期して通信データを出力する。調歩同期式通信装置１２の調歩同期受信器１８は、クロック生成回路１６が生成する受信クロックと同期して、調歩同期送信部１５から出力された通信データを受信する。
【００１５】
クロック生成回路１４は、クロック発生器により発生されたクロックを分周することによって送信クロックを生成する。また、クロック生成回路１６も同様に、クロック生成回路１６に設けられたクロック発生器により発生されたクロックを分周することによって受信クロックを生成する。クロック生成回路１４，１６のそれぞれに設けられたクロック発生器は、例えばクロックを発生する基本周波数が異なるため、分周することで必要な送受信クロックを生成したとしても、完全に同期せず誤差（ずれ）が生じる可能性があるものとする。
【００１６】
図２は、受信側の調歩同期式通信装置１２（調歩同期受信器１８）の詳細な構成を示すブロック図である。  
クロック生成回路１６は、受信クロックを生成するもので、送信クロックより速いタイミングのクロックを生成する。例えば、クロック生成回路１６は、送信クロックの（２Ｓ−１）倍（ただし、Ｓ≧５）のクロックを生成する。以下の説明では、Ｓ＝５として、送信クロックの１６倍の受信クロックを生成するものとする。
【００１７】
図２に示すように、調歩同期受信器１８には、スタートビット検出回路２０、Ｓビット加算器２２、受信ビット取込みＳビットカウンタ２４、フレームカウンタ２６、ストップビット検出回路２８、及びシフトレジスタ２９が設けられている。
【００１８】
スタートビット検出回路２０は、送信側の調歩同期式通信装置１０から送信された通信データからスタートビットを検出し、各カウンタ（受信ビット取込みＳビットカウンタ２４、フレームカウンタ２６、Ｓビット加算器２２）を初期化する。
【００１９】
Ｓビット加算器２２は、クロック生成回路１６によって生成される受信クロックに同期して、通信データの受信ビットを取り込み、順次加算する。Ｓビット加算器２２は、Ｓビットで加算値を保持し、上位２ビットの論理和（ビット（Ｓ）＋ビット（Ｓ−１））のデータをシフトレジスタ２９及びストップビット検出回路２８に出力する。なお、ビット（Ｓ）は、最下位ビットからＳ番目のビットを示す。ここでは、Ｓ＝５としているので、ビット（５）とビット（４）の値の論理和を出力する。つまり、１６回取り込んだデータのうち、８回以上のデータが“１”である場合には、受信データとして“１”を出力する。
【００２０】
受信ビット取込みＳビットカウンタ２４は、クロック生成回路１６により生成される受信クロックをカウントし、通信データ（１ビット）を取り込むタイミングを検出してシフトレジスタ２９に通知する。受信ビット取込みＳビットカウンタ２４は、Ｓビットで受信ビットをカウントし、上位１ビット（ビット（Ｓ））が“１”となるタイミングで、Ｓビット加算器２２からの（ビット（Ｓ）＋ビット（Ｓ−１））のデータをシフトレジスタ２９に移動させる。ここでは、Ｓ＝５としているので、クロック生成回路１６は、受信クロックをカウントし、ビット（５）が“１”となるタイミングに同期させて、Ｓビット加算器２２からの論理和データをシフトレジスタ２９に移動させる。
【００２１】
フレームカウンタ２６は、スタートビット検出回路２０によってスタートビットが検出されてから１フレーム分の受信データのビット数をカウントしてストップビット検出回路２８に通知する。
【００２２】
ストップビット検出回路２８は、フレームカウンタ２６からの通知によって、１フレームの最終ビット、すなわちストップビットの取り込み順番となったことを検知する。ストップビット検出回路２８は、ストップビットの取り込み順番となったことを検知し、かつ、Ｓビット加算器２２からストップビットに該当するデータ（ストップビットを取り込んだことを示す所定値（“１”））が入力されると、Ｓビット加算器２２からの論理和データをシフトレジスタ２９に移動させると共に（ストップビット“１”）、スタートビット検出回路２０によるスタートビットの検出を再スタートさせる。すなわち、ストップビットについては、クロック生成回路１６から通信データ１ビットに相当する１６回の受信クロックが出力される前に、Ｓビット加算器２２におけるビット（Ｓ−１）が“１”となった段階で、次フレームのデータを受信する状態とする。
【００２３】
シフトレジスタ２９は、受信ビット取込みＳビットカウンタ２４あるいはストップビット検出回路２８からの通知に応じて、Ｓビット加算器２２から出力される論理和データ（ビット（Ｓ）＋ビット（Ｓ−１））を順次保持し、受信データとして出力する。
【００２４】
次に、本実施形態における調歩同期式通信装置の通信データの受信動作について説明する。  
図３は、受信側の調歩同期式通信装置１２の動作を説明するためのタイミングチャートである。  
調歩同期式通信装置１０は、クロック生成回路１４により生成される送信クロックに同期して、調歩同期送信部１５により通信データを出力する。調歩同期式通信装置１０から出力される通信データは、１フレームの先頭がスタートビットであり、スタートビットに続いて複数のデータビットが続き、データビットの後にパリティビット及びストップビットが付加されている。
【００２５】
調歩同期式通信装置１２では、クロック生成回路１６により送信クロックの（２Ｓ−１）倍（ここでは１６倍）の受信クロックが生成されている。スタートビット検出回路２０は、通信データからスタートビット開始を検出する。例えば、データがない状態では、調歩同期式通信装置１０からの信号が“１”（Ｈレベル）となっており、最初の“０”（Ｌレベル）によりスタートビットを検出する。スタートビット検出回路２０は、スタートビットを検出すると、Ｓビット加算器２２、受信ビット取込みＳビットカウンタ２４、及びフレームカウンタ２６を初期化する。
【００２６】
Ｓビット加算器２２は、クロック生成回路１６によって生成される受信クロックに同期して、通信データの受信ビットを取込み加算していく。すなわち、送信クロックの１クロックの間に調歩同期送信部１５から出力される通信データを、受信クロックに同期して１６回取込加算していくことになる。
【００２７】
また、受信ビット取込みＳビットカウンタ２４は、クロック生成回路１６により生成される受信クロックをカウントする。受信ビット取込みＳビットカウンタ２４の値が“１００００”となり、通信データを取り込むタイミングを検出するとシフトレジスタ２９に通知する。シフトレジスタ２９は、受信ビット取込みＳビットカウンタ２４からの通知に応じて、Ｓビット加算器２２から出力されるビット（５）とビット（４）の論理和データを保持する。
【００２８】
例えば、図３に示すように、スタートビットは“１”であるため、このビットのデータについて１６回取り込んで加算することにより、Ｓビット加算器２２の値は“０００００”となる。従って、ビット（５）とビット（４）の論理和データ“０”がシフトレジスタ２９に保持され、受信データのスタートビットとして出力される。フレームカウンタ２６は、１ビットのデータが受信されることによりカウントアップする。Ｓビット加算器２２の値がシフトレジスタ２９に移動された後、Ｓビット加算器２２は初期化され、次のデータについて受信クロックに同期したデータの取り込みと加算を開始する。
【００２９】
図３に示す通信データでは、スタートビットに続いてデータ“１”が出力されている。このため、Ｓビット加算器２２の値は、受信クロックに同期して１６回取り込んで加算することにより“１００００”になったものとする。この場合、ビット（５）が“１”、ビット（４）が“０”であるので、ビット（５）とビット（４）の論理和データ“１”がシフトレジスタ２９に保持され、受信データのスタートビットとして出力される。
【００３０】
以下、同様にして、調歩同期式通信装置１０から出力される通信データに対して、受信ビット取込みＳビットカウンタ２４のビット（５）が“１”となるタイミングに同期して、Ｓビット加算器２２のビット（５）とビット（４）の論理和データをシフトレジスタ２９へ移動することでデータを取り込む。
【００３１】
本実施形態では、受信されたデータの中央だけでデータを取り込まず、送信クロックより速い受信クロックに同期して複数回取り込み、このデータの加算値から受信データを生成している。従って、通信データ中にインパルス性のノイズなどが混在していたとしても、このノイズ部分を取り込んで誤ったデータを受信してしまうことがない。本実施形態では、１回の送信クロックに対して１６回データを取り込んだ加算値としているので、データにノイズが混在していてもその影響を低減し、データエラーの発生率を下げることができる。
【００３２】
図３に示す例では、送信クロックと受信クロックの周波数が僅かに異なるため、受信データの取り込みを続けているうちに、データを取り込むタイミングが徐々にずれている。
【００３３】
ストップビット検出回路２８は、フレームカウンタ２６によりカウントされた受信データのビット数をもとに、１フレームの最終ビット、すなわちストップビットの取り込み順番となったことを検知する。そして、ストップビット検出回路２８は、Ｓビット加算器２２から出力されるビット（５）とビット（４）の論理和データが“１”、すなわちＳビット加算器２２によって加算された値が“０１０００”となるのを待つ。
【００３４】
図３に示すように、パリティビット“０”が取り込まれた後、パリティビットに続くストップビットのデータ（“１”）を受信クロックに同期して取り込むと、８回目の取り込みによりＳビット加算器２２による加算値が“０１０００”となる。ストップビット検出回路２８は、シフトレジスタ２９に通信データを取り込むタイミングであることを通知する。シフトレジスタ２９は、ストップビット検出回路２８からの通知に応じて、Ｓビット加算器２２から出力されるビット（５）とビット（４）の論理和データ“１”をストップビットのデータとして保持して出力する。また、ストップビット検出回路２８は、スタートビット検出回路２０に対して、スタートビットの検出を再スタートさせる。
【００３５】
すなわち、スタートビット検出回路２０は、ストップビットを取り込むために１６回の受信クロックが出力されるのを待たないで、半分の８回の受信クロックが出力された段階で、次のフレームのデータの取り込みに移行することができる。従って、図３に示すように、送信クロックと受信クロックにずれが生じていたとしても、次のフレームの先頭（スタートビット）の取り込みタイミングが同期されることになる。こうして、送信クロックと受信クロックとの誤差を解消し、前のフレームのデータ取り込みの際に生じていたクロックのずれを次のフレームのデータ取り込みに影響させないようにできる。このため、本実施形態における調歩同期式通信装置では、送受信クロックの誤差を解消するために、フレーム間に誤差解消のための時間を空ける必要もない。
【００３６】
このようにして、１フレーム中のストップビットの部分において、送信クロックと受信クロックとのずれを補正するので、送信クロックと受信クロックとの間に誤差が生じたとしてもフレーム単位でずれを解消し、受信エラーを防ぐことが可能となる。
【００３７】
なお、前述した説明では、ストップビット検出回路２８は、Ｓビット加算器２２から出力される上位２ビットの論理和（ビット（Ｓ）＋ビット（Ｓ−１））のデータを入力するとしているが、他のビットのデータ、例えばビット（Ｓ−２）のデータを入力するようにしても良い。例えば、Ｓ＝５とした場合、Ｓビット加算器２２は、４回の受信クロックに同期してストップビットのデータを取り込むことにより“００１００”となる。ストップビット検出回路２８は、Ｓビット加算器２２からのストップビットを取り込むために１６回の受信クロックが出力されるのを待たないで、４分の１の４回の受信クロックが出力された段階で、スタートビット検出回路２０を次のフレームのデータ取り込みに移行させることができる。
【００３８】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３９】
【図１】本実施形態における調歩同期式通信装置の構成を示すブロック図。
【図２】受信側の調歩同期式通信装置１２（調歩同期受信器１８）の詳細な構成を示すブロック図。
【図３】受信側の調歩同期式通信装置１２の動作を説明するためのタイミングチャート。
【図４】従来の調歩同期式通信を説明するためのタイミングチャート。
【符号の説明】
【００４０】
１０，１２…調歩同期式通信装置、１４，１６…クロック生成回路、１５…調歩同期送信部、１８…調歩同期受信器、２０…スタートビット検出回路、２２…Ｓビット加算器、２４…受信ビット取込みＳビットカウンタ、２６…フレームカウンタ、２８…ストップビット検出回路、２９…シフトレジスタ。
【図１】
0004579872.tif 000002
【図２】
0004579872.tif 000003
【図３】
0004579872.tif 000004
【図４】
0004579872.tif 000005