(57)【特許請求の範囲】
【請求項１】
入力された受信データの立ち下がりを検出する立ち下がり検出部と，
前記立ち下がり検出部で検出された前記受信データの立ち下がりの検出に応じて，それぞれ異なるタイミングでビット長毎にデータサンプリングする複数のサンプリングタイミングを生成するサンプリングタイミング生成部と，
前記複数のサンプリングタイミングそれぞれで，スタートビットからストップビットまでの期間および前記ストップビット以降のアイドル期間を含む期間の所定ビット数分データサンプリングされた複数のデータ列を取得し，前記複数のデータ列のうち，前記スタートビットの値と、前記ストップビットの値と、前記アイドル期間を示すアイドル設定値とに基づいて正常なデータ列を選択するデータ処理部と、を備えることを特徴とするシリアルデータ受信装置。
【請求項２】
前記データ処理部は，前記正常なデータ列として複数のデータ列が選択された場合，前記複数の正常なデータ列のうち，最も多い同一のデータ列を選択することを特徴とする請求項１に記載のシリアルデータ受信装置。
【請求項３】
前記データ処理部は，前記複数のデータ列から正常なデータ列が抽出できない場合，さらにデータサンプリングを続け，前記サンプリングタイミングのうちの最新のサンプリングタイミングでデータサンプリングされたビットを末尾とするビットシフトされた前記所定ビット数分の複数のデータ列から，前記スタートビットの値と，前記ストップビットの値と、前記アイドル設定値とに基づいて正常なデータ列を選択することを特徴とする請求項１または請求項２に記載のシリアルデータ受信装置。
【請求項４】
前記データ処理部は，所定数Ｍ（Ｍ≧２）の前記複数のサンプリングタイミングそれぞれで最初にデータサンプリングされたビットデータがスタートビットの値であるかどうか判定し，スタートビットの値であると判定されたビットデータ数が所定数Ｎ以上（Ｍ＞Ｎ）の場合に，データサンプリングを続行し，前記所定ビット数分データサンプリングされた複数のデータ列を取得することを特徴とする請求項１乃至３のいずれか１項に記載のシリアルデータ受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，調歩同期シリアル通信に用いられるシリアルデータ受信装置に関する。
【背景技術】
【０００２】
調歩同期シリアル通信は，データを転送する毎に，データの先頭にデータ送信開始の信号（スタートビット）と，データの末尾にデータ送信終了の信号（ストップビット）を付加して送受信を行う通信方式である。
【０００３】
図１は，調歩同期シリアル通信のデータフォーマットを示す図である。例えば，８ビットのデータビットD0-D7の先頭に論理レベルLowのスタートビットが付加され，データビットD0-D7の末尾に論理レベルHighのストップビットが付加される。
【０００４】
図２は，調歩同期シリアル通信のデータ受信のタイムチャートである。まず，スタートビットを検出するために，受信データの立ち下がりエッジが検出される。時刻t10でエッジ検出信号が出力されると，カウンタが，そのタイミングでカウントを開始する。図２の例では，カウンタは，システムクロックの周波数に応じてビット長を１０カウントする。最初のデータサンプリングは，立ち下がり検出タイミングからビット長の１／２のタイミング（時刻t11）で行われる。サンプリングされたデータがLowであるかどうか判定され，Lowであれば，当該データをスタートビットと判定し，Highであれば，ノイズと判定し，カウンタをリセットしてサンプリングを停止する。
【０００５】
時刻t11のサンプリングがLowであれば，スタートビットと判定し，続いて，時刻t13のサンプリングタイミングからビット長経過タイミング毎に，８ビット分の各データをサンプリングする。なお，図２では，データD0のサンプリングタイミング時刻t12と，データD7のサンプリングタイミングt13のみ図示され，データD1-D6のサンプリングタイミングの図示は省略されている。さらに，データD7のサンプリング後，ストップビットをサンプリングする（時刻t14）。サンプリングされた各データはシフトレジスタに格納され，ストップビットがHighであれば，正常受信と判断し，８ビットパラレルデータとして出力される。ストップビットがLowであれば受信エラーと判定する。
【０００６】
また，ビット長とほぼ同等の周波数のクロックを用いて受信データをサンプリングする技術も知られている（特許文献１）。当該技術では，位相が等間隔で異なる複数のクロックで受信データをそれぞれサンプリングし，各サンプリングデータをシフトレジスタに保持し，スタートビットを検出できたクロックでサンプリングしたデータを出力する。
【０００７】
このように，調歩同期シリアル通信におけるデータ受信は，スタートビットの立ち下がりを検出し，その検出タイミングを基準にデータをサンプリングするタイミングを決定する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１２３９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら，スタートビットにノイズが発生した場合，又は，アイドル状態でノイズが発生した場合，サンプリングタイミングにずれが生じ，誤ったデータを取得するおそれがある。
【００１０】
図３乃至図５は，ノイズ発生によりサンプリングタイミングにずれが生じる例を説明する図である。図３はスタートビットの先頭にLowノイズが発生した場合を示す図，図４はスタートビット中にHighノイズが発生した場合を示す図，図５はアイドル状態でLowノイズが発生した場合を示す図である。
【００１１】
図３において，スタートビットの先頭にLowノイズが発生すると，そのLowノイズの立ち下がりによるエッジ検出信号の出力（時刻t20）に基づいて，本来のスタートビットの立ち下がりタイミングよりも早いタイミングでカウンタがカウントを開始し，サンプリングタイミングがずれる。最初のデータサンプリングは，エッジ検出信号の出力タイミングからビット長の１／２のタイミング（時刻t21）で行われ，時刻t21でサンプリングされたデータがLowであると，スタートビットと判定し，続いて，時刻t21のサンプリングタイミングからビット長経過タイミング毎に，８ビット分の各データをサンプリングすることになる。このとき，スタートビットの先頭で発生したLowノイズにより，サンプリングタイミングがずれているため，図示されるように，例えばデータD0のサンプリングタイミングt22が，スタートビットとデータD0の変化点にあたると，サンプリングされるデータ値が不安定となり，正しいデータを取得できないおそれがある。データD1-D7及びストップビットについても，同様に，サンプリングされるデータ値が不安定となる。また，データ値が不安定となり，ストップビットがLowとなると，受信エラーとなる。
【００１２】
一方，図４において，スタートビット中にHighノイズが発生すると，本来のスタートビットの立ち下がりタイミングよりも遅いタイミング（時刻t30）でエッジ検出信号が出力され，カウンタがカウントを開始し，サンプリングタイミングがずれる。このサンプリングタイミングのずれにより，図示されるように，エッジ検出信号の出力タイミング(t30)からビット長の１／２のタイミング（時刻t31）が，スタートビットとデータD0の変化点にあたってしまうと，サンプリングされるデータ値が不安定となり，サンプリングデータがHighであれば，その後のデータサンプリングは行われなくなる。また，サンプリングLowであれば，データサンプリングは続けられるが，続くデータD0のサンプリングタイミングt32も，データD0とデータD1の変化点にあたり，正しいデータを取得できないおそれがある。データD1-D7及びストップビットについても，同様に，サンプリングされるデータ値が不安定となる。また，データ値が不安定となり，ストップビットがLowとなると，受信エラーとなる。
【００１３】
さらに，図５において，受信アイドル期間中にLowノイズが発生し，当該Lowノイズの立ち下がりが検出され，時刻t40でエッジ検出信号が出力されると，カウンタがカウントを開始し，１ビット分以上サンプリングタイミングがずれる。
【００１４】
最初のデータサンプリングは，エッジ検出信号の出力タイミングからビット長の１／２のタイミング（時刻t41）で行われ，時刻t41でもLowノイズ発生状態であると，サンプリングされたデータもLowとなり，スタートビットと判定される。続いて，時刻t41のサンプリングタイミングからビット長経過タイミング毎に，８ビット分の各データをサンプリングすることになる。このとき，時刻t41の直後に本来のスタートビットから始まるデータの受信が開始されると，時刻t41からビット長経過タイミングの時刻t42でスタートビットのサンプリングデータをデータD0のデータとしてサンプリングし，正しいデータに対してサンプリングデータが１ビット分ずれる。同様に，時刻t43からビット長経過タイミングの時刻t45でデータD0のサンプリングデータをデータD1のデータとして，１ビット分ずれてサンプリングしてしまう。データD1-D7及びストップビットについても，同様に，1ビットずれてサンプリングされる。このように，サンプリングが１ビット早まってずれた場合，データビットD0-D7まですべてサンプリングされるものの，ストップビットの値としてサンプリングされるデータD7のデータ値がLowであると，受信エラーとなる。また，データD7のデータ値がHighであっても，１ビットずれているため，正しいデータを取得できない。
【００１５】
このように，ノイズが発生して，本来のスタートビットの立ち下がりタイミングと異なるタイミングで立ち下がりが検出され，サンプリングタイミングがずれると，正しいデータを取得できない場合がある。
【００１６】
そこで，本発明の目的は，ノイズが発生した場合に正しいデータを取得することができるシリアルデータ受信装置を提供することにある。
【課題を解決するための手段】
【００１７】
シリアルデータ受信装置は，入力された受信データの立ち下がりを検出する立ち下がり検出部と，立ち下がり検出部で検出された受信データの立ち下がりの検出に応じて，それぞれ異なるタイミングでビット長毎にデータサンプリングする複数のサンプリングタイミングを生成するサンプリングタイミング生成部と，複数のサンプリングタイミングそれぞれで，スタートビットからストップビットまでの期間およびストップビット以降のアイドル期間を含む期間の所定ビット数分データサンプリングされた複数のデータ列を取得し，複数のデータ列のうち，スタートビットの値と、ストップビットの値と、アイドル期間を示すアイドル設定値とに基づいて正常なデータ列を選択するデータ処理部と、を備える。
【発明の効果】
【００１８】
調歩同期シリアル通信において，スタートビット中若しくはスタートビット前にノイズが発生した場合に，正しいデータ列を選択することができる。
【図面の簡単な説明】
【００１９】
【図１】調歩同期シリアル通信のデータフォーマットを示す図である。
【図２】調歩同期シリアル通信のデータ受信のタイムチャートである。
【図３】ノイズ発生によりサンプリングタイミングにずれが生じる例を説明する図である。
【図４】ノイズ発生によりサンプリングタイミングにずれが生じる例を説明する図である。
【図５】ノイズ発生によりサンプリングタイミングにずれが生じる例を説明する図である。
【図６】本実施の形態におけるシリアルデータ受信装置の構成例を示す図である。
【図７】図６の構成例におけるサンプリングポイントを説明する図である。
【図８】シリアルデータ受信装置の第一の動作例を説明するフローチャートである。
【図９】ノイズが発生しない正常時の第一の動作例のタイミングチャートである。
【図１０】図９の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。
【図１１】スタートビットの先頭にLowノイズが発生した場合の第一の動作例のタイミングチャートである。
【図１２】図１１の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。
【図１３】スタートビット中にHighノイズが発生した場合の第一の動作例のタイミングチャートである。
【図１４】図１３の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。
【図１５】シリアルデータ受信装置の第二の動作例を説明するフローチャートである。
【図１６】スタートビット受信前のアイドル期間中にLowノイズが発生した場合の第二の動作例のタイミングチャートである。
【図１７】図１６の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。
【発明を実施するための形態】
【００２０】
図６は，本実施の形態におけるシリアルデータ受信装置の構成例を示す図である。シリアルデータ受信装置は，立ち下がり検出回路１１，サンプリングカウンタ回路１２，サンプリングイネーブル生成回路１３，複数のシフトレジスタ（４つのシフトレジスタ１４−１，１４−２，１４−３，１４−４を例示）及びデータ処理回路１５を備える。
【００２１】
立ち下がり検出回路１１は，受信シリアルデータの立ち下がりを検出する。サンプリングカウンタ回路１２は，サンプリングの基準タイミングをカウントする。周期設定値により任意のカウント周期を設定することができる。サンプリングイネーブル生成回路１３は，サンプリングカウンタ回路１２のカウント値に基づいて，サンプリングポイントのタイミングで，シフトレジスタ１４−１，１４−２，１４−３，１４−４にイネーブル信号を供給する。サンプリングポイント設定値により，各シフトレジスタ１４−１，１４−２，１４−３，１４−４に任意のサンプリングポイントを設定することができる。
【００２２】
サンプリングポイントは，１ビットのデータに対するサンプリングタイミングであり，各シフトレジスタ１４−１，１４−２，１４−３，１４−４に対して，互いにずれたサンプリングポイントが設定される。
【００２３】
図７は，図６の構成例におけるサンプリングポイントを説明する図である。サンプリングポイントは，サンプリングカウンタ回路１２の起動（カウント値０）から２カウント時，４カウント時，６カウント時，８カウント時であり，図６の構成例では，１ビットのデータに対して４回サンプリングが行われる。各サンプリングポイントは，サンプリングポイント設定値により設定される。
【００２４】
シフトレジスタ１４−１，１４−２，１４−３，１４−４は，サンプリングポイント毎に受信シリアルデータを保持する。１ビットのデータに対するサンプリングポイントがｎ回の場合，ｎ個のシフトレジスタが設けられる。図６の構成例では，４回のサンプリングポイント数に対応して，４つのシフトレジスタ１４−１，１４−２，１４−３，１４−４が設けられる。
【００２５】
データ処理回路１５は，各シフトレジスタ１４−１，１４−２，１４−３，１４−４からのデータ列を受信し，受信したデータ列の中から正常なデータ列を選択し，選択したデータ列を出力する。データ処理回路１５には，データ長設定値及びスタートビット基準設定値，さらには，必要に応じてアイドル設定値が設定される。
【００２６】
次に，図６のシリアルデータ受信装置の動作について説明する。
【００２７】
図８は，シリアルデータ受信装置の第一の動作例を説明するフローチャートである。また，図９乃至図１４は，シリアルデータ受信装置の第一の動作例を説明する図である。具体的には，図９はノイズが発生しない正常時の第一の動作例のタイミングチャートである。図１０は図９の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。図１１は，スタートビットの先頭にLowノイズが発生した場合の第一の動作例のタイミングチャートである。図１２は図１１の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。図１３はスタートビット中にHighノイズが発生した場合の第一の動作例のタイミングチャートである。図１４は図１３の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。図９を参照しながら，図８に従って，第一の動作例の全体動作を説明する。
【００２８】
立ち下がり検出回路１１は，受信シリアルデータの立ち下がりを検出すると，エッジ検出信号をサンプリングカウンタ回路１２へ出力する（Ｓ１０，図９の時刻t50）。サンプリングカウンタ回路１２は，エッジ検出信号を受信すると起動し（Ｓ１１），起動するとカウントを開始し，周期設定値で設定された値までカウントアップする。本実施例では，周期設定値「１０」が設定され，１ビットを１０カウントする。カウンタ値は，サンプリングイネーブル生成回路１３及びデータ処理回路１５に出力される。
【００２９】
サンプリングイネーブル生成回路１３は，サンプリングカウンタ回路１２からのカウンタ値と，複数のサンプリングポイント設定値とに基づいて，２カウントずつシフトされたイネーブル信号（１），（２），（３），（４）を生成し，それぞれ各シフトレジスタ１４−１，１４−２，１４−３，１４−４に出力する。
【００３０】
シフトレジスタ１４−１，１４−２，１４−３，１４−４は，それぞれイネーブル信号（１），（２），（３），（４）のタイミング(t51，t52，t53，t54)で，最初の１ビット分のデータ値をサンプリングし，サンプリングしたデータ値をデータ処理回路１５に出力する（Ｓ１２）。
【００３１】
データ処理回路１５は，サンプリングカウンタ回路１２からのカウンタ値とデータ長設定値とによりビットセレクト信号を回路内部で生成し，各シフトレジスタ１４−１，１４−２，１４−３，１４−４からのデータ受信を開始する。データビットが８ビットの場合，データ長は，スタートビットとストップビットを含め１０ビットであるので，データ長設定値は「１０」が設定される。
【００３２】
カウンタ値が最高値（図８の例では，サンプリングカウンタ「１０」）となるタイミングで，データ処理回路１５のビットセレクト信号が生成され，ビットセレクト信号の出力タイミング毎に，データ処理回路１５内部のビットセレクトカウンタによるカウントアップが行われる。データ処理回路１５は，ビットセレクト信号により，データ処理イネーブル状態となり，ビットセレクトカウンタのカウント毎に，シフトレジスタ１４−１，１４−２，１４−３，１４−４でサンプリングされたデータを１ビットずつ取得する。ビットセレクトカウンタのカウント値が「１０」となると，データ取得イネーブルとなり，データ取得を終了する。
【００３３】
データ処理回路１５は，シフトレジスタ１４−１，１４−２，１４−３，１４−４でサンプリングされた最初の１ビット分のデータ値を受け取ると（データ処理イネーブルがHigh且つビットセレクトカウンタが「１」のとき），立ち下がり検出回路１１で検出された立ち下がりがスタートビットであるかどうかを判定する（Ｓ１３）。判定基準は，スタートビット判定基準値で設定される。具体的には，データ処理回路１５は，シフトレジスタ１４−１，１４−２，１４−３，１４−４の最初の１ビット分のデータ値のうち，Lowの数がスタートビット基準設定値Ｘ（例えばＸ＝２）以上であればスタートビットと判定し，Ｘ個未満であれば，ノイズと判定する。データ処理回路１５は，ノイズと判定した場合，リセット信号をサンプリングカウンタ回路１２に出力し，サンプリングカウンタ回路１２を初期化する（Ｓ１４）。サンプリングカウンタ回路１２は，初期化後，次の立ち下がりによりエッジ検出信号の受信まで起動しない。スタートビットと判定された場合，リセット信号は出力されず，サンプリングが続行される（Ｓ１５）。
【００３４】
シフトレジスタ１４−１，１４−２，１４−３，１４−４は，それぞれ各ビットにおけるイネーブル信号（１），（２），（３），（４）のタイミングにおけるデータ値をサンプリングし，サンプリングしたデータ値をデータ処理回路１５に出力する。
【００３５】
ビットセレクト信号がストップビットまで生成されると，すなわち，ビットセレクト信号がデータ長設定値分生成されると，データ取得イネーブルがHighとなり，データ処理イネーブル及びビットセレクトカウンタがリセットされる。データ処理回路１５は，シフトレジスタ１４−１，１４−２，１４−３，１４−４から，データ長設定値である１０ビット分のデータ列（１），（２），（３），（４）を受信する（Ｓ１６）。
【００３６】
図１０は，図９の第一の動作例により，データ処理回路１５がシフトレジスタ１４−１，１４−２，１４−３，１４−４から取得するデータ列（１），（２），（３），（４）示す。データ処理回路１５は，データ列（１），（２），（３），（４）を受信すると，各データ列のスタートビットとストップビットの判定を行う（Ｓ１７）。具体的には，データ処理回路１５は，各データ列の最初のビットがLowであるかどうか判定し，さらに，末尾のビットがHighであるかどうか判定する。そして，データ処理回路１５は，最初のビットがLowであり且つ末尾のビットがHighであるデータ列のみを正常なデータ列として抽出する。
【００３７】
図１０に示すように，図９の第一の動作例では，データ列（１），（２），（３），（４）すべてが正常なデータ列として抽出される。データ処理回路１５は，正常なデータ列が複数種類ある場合は，抽出された正常なデータ列に対して多数決処理を行い，最も多い同一のデータ列を選択し，出力する（Ｓ１８）。図９の第一の動作例では，図１０に示すように，データ列（１），（２），（３），（４）すべて同一であるため，多数決処理を行うことなく，データ列（１），（２），（３），（４）のうちのいずれか一つ（例えば，最も小さい番号のデータ列（１））が出力される。
【００３８】
選択したデータを出力後，データ処理回路１５は，サンプリングカウンタ回路１２にリセット信号を出力し，サンプリングカウンタ回路１２を初期化する。なお，正常なデータ列のうちの最も多い同一のデータ列の組み合わせが２組以上ある場合は，いずれかの組（例えば，最も小さい番号のデータ列を含む組）のデータ列が選択され，そのうちの一つが出力される。
【００３９】
また，正常なデータ列が抽出されなかった場合は，データ処理回路１５は，受信データを出力せず，受信エラー信号を出力し，さらに，サンプリングカウンタ回路１２にリセット信号を出力し，サンプリングカウンタ回路１２を初期化する（Ｓ１４）。
【００４０】
次に，図１１を参照して，スタートビットの先頭にLowノイズが発生した場合の第一の動作例について説明する。図１１に示されるように，スタートビットの先頭に例えば約４カウント分のLowノイズが発生し，そのLowノイズ発生により，本来のスタートビットの開始タイミングよりも早いタイミング(時刻t60)でエッジ検出信号が出力される。データ処理回路１５は，図８で説明した動作に従って，データ列（１），（２），（３），（４）を取得する。
【００４１】
図１２（ａ）は，図１１の第一の動作例により，データ処理回路１５がシフトレジスタ１４−１，１４−２，１４−３，１４−４から取得するデータ列（１），（２），（３），（４）示す。図１１の第一の動作例では，スタートビットの先頭でのLowノイズ発生により，サンプリングタイミングが早まるため，図１２（ａ）に示すように，データ列（１）は，１ビット目にLowノイズ，２ビット目にスタートビット，３ビット目−１０ビット目（末尾）に８ビット分のデータビットD0-D7となる。一方，データ列（２），（３），（４）は，正常に， 1ビット目にスタートビット，２ビット目−９ビット目に，８ビット分のデータビットD0-D7，末尾の１０ビット目にストップビットとなる。
【００４２】
スタートビット判定では，データ列（１），（２），（３），（４）ともに，１ビット目がLowとなるので，スタートビットと判定され，サンプリングが続行され，図１１（ａ）に示すデータ列（１），（２），（３），（４）が取得される。
【００４３】
データ処理回路１５は，まず，図１２（ａ）に示すデータ列（１），（２），（３），（４）に対して，スタートビットとストップビットの判定を行う。データ列（１）の１ビット目がLowであると，データ列（１），（２），（３），（４）の１ビット目はスタートビットと判定される。一方，データ列（１）の末尾は，データビットD7であり，図１２（ｂ）に示すように，データビットD7がLowであれば，ストップビットと判定されず，データ列（１）は正常なデータ列ではないと判定され，データ列（１）は廃棄される。残ったデータ列（２），（３），（４）は正常なデータ列として抽出され，これらは同一のデータ列であり，他のデータ列がないので，多数決処理を行わずに，データ列（２），（３），（４）が選択され，そのうちの一つ（例えばデータ列（２））が出力される。
【００４４】
反対に，図１２（ｃ）に示すように，末尾のデータビットD7がHighであれば，データ列（１）は正常なデータ列として抽出される。この場合，ノイズを含むデータ列（１）も正常なデータ列として抽出されるが，データ処理回路１５は，抽出された正常なデータ列に対して多数決処理を行い，最も多い同一のデータ列を選択し，出力する。そうすると，データ列（２），（３），（４）は同一のデータ列であるのに対し，データ列（１）のみが異なるデータ列となるため，データ列（２），（３），（４）が最も多い同一のデータ列となる。従って，データ列（２），（３），（４）が選択され，そのうちの一つ（例えばデータ列（２））が出力される。
【００４５】
次に，図１３を参照して，スタートビット中にHighノイズが発生した場合の第一の動作例について説明する。スタートビット中に例えば約４カウント分のHighノイズが発生し，そのHighノイズ発生により，本来のスタートビットの開始タイミングよりも遅いタイミング(t70)でエッジ検出信号が出力される。データ処理回路１５は，図８で説明した動作に従って，データ列（１），（２），（３），（４）を取得する。
【００４６】
図１４（ａ）は，図１３の第一の動作例により，データ処理回路１５がシフトレジスタ１４−１，１４−２，１４−３，１４−４から取得するデータ列（１），（２），（３），（４）示す。図１３の第一の動作例では，スタートビットの先頭でのHighノイズ発生により，サンプリングタイミングが遅れ，図１４（ａ）に示すように，データ列（４）は，１ビット−８ビット目に，８ビットのデータビットD0−D7，９ビット目にストップビット，末尾の１０ビット目にアイドルとなる。一方，データ列（１），（２），（３）は，正常に，１ビット目にスタートビット，２ビット−９ビット目に，８ビット分のデータビットD0−D7，末尾の１０ビット目にストップビットとなる。
【００４７】
なお，スタートビット判定では，データ列（４）の１ビット目D0がHighであった場合でも，残りのデータ列（１），（２），（３）は１ビット目がLowとなるので，スタートビットと判定され，スタートビット基準設定値ＸがＸ≦３であれば，サンプリングが続行され，図１４（ａ）に示すデータ列（１），（２），（３），（４）が取得される。
【００４８】
データ処理回路１５は，まず，図１４（ａ）に示すデータ列（１），（２），（３），（４）に対して，スタートビットとストップビットの判定を行う。データ列（４）の１ビット目は，データビットD0であり，図１４（ｂ）に示すように，データビットD0がHighであれば，スタートビットと判定されず，データ列（４）は正常なデータ列ではないと判定され，データ列（４）は廃棄される。残ったデータ列（１），（２），（３）は正常なデータ列として抽出され，これらは同一のデータ列であり，他のデータ列がないので，多数決処理を行わずに，データ列（１），（２），（３）が選択され，そのうちの一つ（例えばデータ列（１））が出力される。
【００４９】
反対に，図１４（ｃ）に示すように，１ビット目のデータビットD0がLowであれば，データ列（４）は正常なデータ列として抽出される。この場合，ノイズを含むデータ列（４）も正常なデータ列として抽出されるが，データ処理回路１５は，次に，抽出された正常なデータ列に対して多数決処理を行い，最も多い同一のデータ列を選択し，出力する。そうすると，データ列（１），（２），（３）は同一のデータ列であるのに対し，データ列（４）のみが異なるデータ列となるため，データ列（１），（２），（３）が最も多い同一のデータ列となる。従って，データ列（１），（２），（３）が選択され，そのうちの一つ（例えばデータ列（１））が出力される。
【００５０】
このように，第一の動作例では，スタートビットからストップビットまでのビット数分を，ビット長毎に複数の異なるサンプリングタイミングでサンプリングし，複数のデータ列を取得し，複数のデータ列のパターンマッチを行い，スタートビットとストップビットの正常なデータ列を選択することにより，ノイズを含むデータ列を排除し，正しいデータ列を選択することができる。正常なデータ列が複数種類抽出された場合は，多数決処理により最も多い同一のデータ列を選択することで，正しいデータ列を選択することができる。
【００５１】
図１５は，シリアルデータ受信装置の第二の動作例を説明するフローチャートである。図１６は，スタートビット受信前のアイドル期間中にLowノイズが発生した場合の第二の動作例のタイミングチャートである。図１７は，図１６の動作により取得されるデータ列（１），（２），（３），（４）を示す図である。
【００５２】
図１５の第二の動作例のフローチャートを，図８の第一の動作例のフローチャートと比較すると，第二の動作例では，ステップＳ２６において，データ長設定値分に加えて，アイドル設定値分のビット数をサンプリングする。すなわち，第二の動作例は，ストップビット以降のアイドルをさらにサンプリングし，アイドルを含む複数のデータ列の多数決処理を行う点で，第一の動作例と異なる。ストップビット以降のアイドルをサンプリングするビット数は，アイドル設定値で設定される。例えば，データ長設定値が「１０」，アイドル設定値「３」であれば，立ち下がり検出後，１３ビット分のデータがサンプリングされる。
【００５３】
また，Ｓ２７において，スタートビット，スタートビット及びアイドルを用いて正常なデータ列を抽出し，抽出できなかった場合は，さらに１ビット分サンプリングが行われ（Ｓ２９），正常なデータ列が抽出されるまで繰り返される。また，正常なデータ列が複数種類抽出された場合は，多数決処理により最も多い同一のデータ列が選択される（Ｓ２８）。
【００５４】
図１６を参照して，第二の動作例を説明する。スタートビット受信前のアイドル期間中にLowノイズが発生すると，そのLowノイズ発生により，立ち下がり検出回路１１により本来のスタートビットの開始タイミングよりも早いタイミング(t80)でエッジ検出信号が出力され，サンプリングカウンタ回路１２が起動する。サンプリングカウンタ回路１２のカウントアップ動作により，図８で説明した動作と同様に，サンプリングイネーブル生成回路１３は，互いにずれたイネーブル信号（１），（２），（３），（４）を出力し，シフトレジスタ１４−１，１４−２，１４−３，１４−４は，イネーブル信号（１），（２），（３），（４）の出力タイミングに応じて，データをサンプリングする。スタートビット基準値以上のデータ値がLow であればスタートビットと判定する。
【００５５】
データ処理回路１５は，データ長設定値とアイドル設定値を合計した数（図１６の例では，「１３」）のビットセレクト信号を生成し，図１７（ａ）に示すそれぞれ１３ビット分の複数のデータ列（１），（２），（３），（４）を取得する。
【００５６】
そして，データ処理回路１５は，まず，図１７（ａ）に示すデータ列（１），（２），（３），（４）に対して，スタートビット，ストップビット及びアイドルの判定を行う。具体的には，データ処理回路１５は，各データ列の１ビット目がLowであるかどうか判定し，さらに，１０ビット目がHighであるかどうか判定し，さらに，１１ビット目-１３ビット目がアイドルであるかどうか判定する。そして，データ処理回路１５は，１ビット目がLowであり且つ１０ビット目がHighであり，１１ビット目-１３ビット目がアイドルであるデータ列のみを正常なデータ列として抽出する。
【００５７】
図１７（ａ）に示すデータ列（１），（２），（３），（４）については，データ列（４）は，１ビット目がアイドルであるため，正常なデータ列として抽出されず，取得したデータ列（１），（２），（３），（４）の中から，正常なデータ列が抽出されない。また，データ列（１），（２），（３）は，１ビット目はLowとなるが，１０ビット目がデータビットD7となり，データビットD7がLowであると，ストップビットと判定されず，データ列（１），（２），（３）は正常なデータ列として抽出されず，全データ列から正常なデータ列が抽出されない（図１７（ｂ））。また，データ列（１），（２），（３）の１０ビット目がHighである場合，ストップビットと判定されてしまうが，１１ビット目がストップビット(High)であり，アイドルでないので，この場合も正常なデータ列として抽出されない。
【００５８】
全データ列から正常なデータ列が抽出されなかった場合，第二の動作例では，サンプリングを停止せず，正常なデータ列が抽出されるまで，サンプリングが続けられる。１４ビット目が取得されると，データ列（１），（２），（３），（４）は，１ビットシフトし，図１７（ｃ）に示すように，直近でサンプリングされた１４ビット目を末尾とするビットシフトされた１３ビット分のデータ列となり，図１７（ｃ）に示すデータ列（１），（２），（３），（４）に対して，再度スタートビット，ストップビット及びアイドルの判定を行う。図１７（ｃ）に示すデータ列（１），（２），（３），（４）は，図１７（ａ）に示すデータ列に対して１ビット分シフトすることで，データ列（１），（２），（３）は正常なデータ列として抽出される。データ列（４）は，正常なデータ列として抽出されず，廃棄される。
【００５９】
データ処理回路１５は，正常なデータとして抽出されたデータ列（１），（２），（３）に対して多数決処理を行う。この場合，データ列（１），（２），（３）は，すべて同一のデータ列であり，他のデータ列がないので，多数決処理を行うことなく，データ列（１），（２），（３）が選択され，そのうちの一つ（例えばデータ列（１））が出力される（図１７（ｄ））。データ列が選択されると，データ処理回路１５は，ビットセレクトカウンタ，データ取得イネーブルをリセットする。さらに，データ処理回路１５は，サンプリングカウンタ回路１２にリセット信号を出力し，サンプリングカウンタ回路１２を初期化する。
【００６０】
このように，第二の動作例では，少なくともスタートビットからストップビット，さらにストップビット以降のアイドルを含むビット数分を，ビット長毎に複数の異なるサンプリングタイミングでサンプリングし，複数のデータ列を取得し，複数のデータ列を取得し，複数のデータ列のパターンマッチを行い，スタートビット，ストップビット及びアイドルが正常なデータ列を選択することにより，ノイズを含むデータ列を排除し，正しいデータ列を選択することができる。正常なデータ列が複数種類抽出された場合は，多数決処理により最も多い同一のデータ列を選択することで，正しいデータ列を選択することができる。特に，スタートビット前にノイズが発生した場合でも，受信データが廃棄されることなく，正しいデータを得ることができる。
【符号の説明】
【００６１】
１１：立ち下がり検出回路，１２：サンプリングカウンタ回路，１３：サンプリングイネーブル生成回路，１４−１，１４−２，１４−３，１４−４：シフトレジスタ，１５：データ処理回路
【図１】
0005556567.tif 000002
【図２】
0005556567.tif 000003
【図３】
0005556567.tif 000004
【図４】
0005556567.tif 000005
【図５】
0005556567.tif 000006
【図６】
0005556567.tif 000007
【図７】
0005556567.tif 000008
【図８】
0005556567.tif 000009
【図９】
0005556567.tif 000010
【図１０】
0005556567.tif 000011
【図１１】
0005556567.tif 000012
【図１２】
0005556567.tif 000013
【図１３】
0005556567.tif 000014
【図１４】
0005556567.tif 000015
【図１５】
0005556567.tif 000016
【図１６】
0005556567.tif 000017
【図１７】
0005556567.tif 000018