(57)【特許請求の範囲】
【請求項１】
スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントするカウンタと、
前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、前記カウンタによりカウントされるカウント値の上限値を変更する変更部と、
を含む調歩同期式シリアルデータ取得装置。
【請求項２】
前記変更部は、前記クロックの第１遷移と第２遷移とで前記スタートビットを検出し、前記スタートビットを前記第１遷移で先に検出した場合に前記上限値を減算せず、前記スタートビットを前記第２遷移で先に検出した場合に前記上限値を減算する請求項１に記載の調歩同期式シリアルデータ取得装置。
【請求項３】
前記変更部により減算された前記上限値が前記カウンタによりカウントされた場合に、前記カウンタのカウント値はリセットされ、かつ、前記上限値は減算前の値に復帰する請求項２に記載の調歩同期式シリアルデータ取得装置。
【請求項４】
前記カウンタは、前記第１遷移でカウントする請求項２又は請求項３に記載の調歩同期式シリアルデータ取得装置。
【請求項５】
スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントし、
前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、カウントしたカウント値の上限値を変更することを含む調歩同期式シリアルデータ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法に関する。
【背景技術】
【０００２】
調歩同期式シリアル通信では、クロックを伝送する信号線のように、常にシリアルデータの同期をとるための制御用信号線が存在しない。そのため、各通信回路内で通信用のクロックに基づいてボーレートを生成して通信を行っている。当然、各信号回路内で生成されるボーレートには誤差が生じる。ボーレートの誤差は、シリアルデータの取得タイミングの誤差となって現れる。
【０００３】
従来の調歩同期式シリアル通信では、一例として図７に示すように、受信データが受信回路内で生成されたボーレートの立ち上がりエッジ（固定化されたタイミング）でサンプリングされる。そして、各通信回路間のボーレートの誤差は、ストップビット検出時に受信回路内で生成されたボーレートのハイレベル区間が調整されることによって補正される。
【０００４】
また、特許文献１には、ボーレートの誤差を抑制するための技術として、受信データを同期化する同期クロックの出力を制御する同期回路が開示されている。この同期回路では、受信データの開始位置が検出クロックの立ち上がりエッジと立ち下がりエッジで検出され、立ち上がりエッジ及び立ち下がりエッジのうち開始位置の検出に近い方の同期クロックが出力される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２１６８３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
数十ｋＨｚオーダのクロックである低速のクロックでサンプリングする方式を採用した場合、一例として図９（図９に示す例では、３８．４ｋＨｚのクロック）に示すように、スタートビットが入力されるタイミングによっては、スタートビットの検出が最大で１クロック分遅れてしまうという問題点がある。
【０００７】
一方、特許文献１に記載の技術では、立ち上がりエッジで動作する回路と立ち下がりエッジで動作する回路とが必要になるため、ボーレートを生成するカウンタの回路規模が倍増してしまう。
【０００８】
また、シリアルデータの取得タイミングの誤差を抑制する技術として、クロックの何れかのエッジで検出されたかによって全ての動作クロックエッジを動的に切り替えるサンプリング方式も考えられる。しかし、この方式は、現在の主流であるＲＴＬ（Register Transfer Level）による同期設計（例えば、クロックの立ち上がりでデータを取得することを前提とした設計）や、同期設計を前提とした静的タイミング解析（ＳＴＡ）で推奨されていない。その上、難易度の高い設計や検証が必要になる。
【０００９】
本発明は上記問題点を解決するために成されたものであり、シリアルデータの取得タイミングの誤差を簡易な構成で抑制することができる調歩同期式シリアルデータ取得装置及び調歩同期式シリアルデータ取得方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１に記載の調歩同期式シリアルデータ取得装置は、スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントするカウンタと、前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、前記カウンタによりカウントされるカウント値の上限値を変更する変更部と、を含む。
【００１１】
上記目的を達成するために、請求項５に記載の調歩同期式シリアルデータ取得方法は、スタートビットを含むシリアルデータの取得タイミングを規定するクロックが入力される回数をカウントし、前記スタートビットが入力されたタイミングでの前記クロックの遷移に応じて、前記スタートビットに対応する期間内に、カウントしたカウント値の上限値を変更することを含む。
【発明の効果】
【００１２】
本発明によれば、シリアルデータの取得タイミングの誤差を簡易な構成で抑制することができる、という効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る調歩同期式シリアルデータ取得装置の構成の一例を示すブロック図である。
【図２】実施形態に係る調歩同期式シリアルデータ取得装置に含まれるスタートビット検出回路及び検出タイミング判別回路の構成の一例を示す回路図である。
【図３】実施形態に係る調歩同期式シリアルデータ取得装置においてクロックの立ち上がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出される場合の信号の遷移状態の一例を示すタイムチャートである。
【図４】実施形態に係る調歩同期式シリアルデータ取得装置においてクロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出される場合の信号の遷移状態の一例を示すタイムチャートである。
【図５】実施形態に係る調歩同期式シリアルデータ取得装置で実行されるカウント処理の流れの一例を示すフローチャートである。
【図６】実施形態に係る調歩同期式シリアルデータ取得装置の構成の変形例を示すブロック図である。
【図７】受信回路内のボーレートの誤差をストップビット検出時に補正される場合の受信データ、送信回路内のボーレート、及び受信回路内のボーレートの遷移状態の一例を示すタイムチャートである。
【図８】高速のクロックと受信データとの対応関係の一例を示すタイムチャートである。
【図９】低速のクロックと受信データとの対応関係の一例を示すタイムチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明を実施するための形態例について詳細に説明する。
【００１５】
一例として図１に示すように、調歩同期式シリアルデータ取得装置１０は、調歩同期式でシリアルデータを１フレーム毎に取得する装置であり、低速発振回路１２、カウンタ１４、変更部１６、及び受信データ取得部１８を含む。なお、１フレーム分のシリアルデータとは、例えば、Ｍビットのスタートビット、Ｎ（≧Ｍ）ビットのデータビット、Ｍビットのパリティビット、及びＭビットのストップビットを含むデータを指す。
【００１６】
低速発振回路１２は、シリアルデータの取得タイミングを規定するクロックとして３８．４ｋＨｚのクロックを生成して出力する。
【００１７】
カウンタ１４は、低速発振回路１２に接続されており、低速発振回路１２からクロックが入力される回数をカウントする。なお、本実施形態では、１クロック毎にカウント値が１加算され、カウンタ１４により“０”から“２”又は“３”までカウントアップされる。
【００１８】
変更部１６は、スタートビットが入力されたタイミングでのクロックの遷移に応じて、カウンタ１４によりカウントされるスタートビットに対応するカウント値の上限値を変更する。なお、クロックの遷移とは、クロックの立ち上がり及び立ち下がりを指す。また、本実施形態では、スタートビットが入力されたタイミングでのクロックの遷移に応じて、カウント値の上限値として“２”と“３”が選択的に採用される。
【００１９】
変更部１６は、スタートビット検出回路２０、検出タイミング判別回路２２、及び減算回路２４を含む。スタートビット検出回路２０及び検出タイミング判別回路２２は、低速発振回路１２に接続されており、クロックが入力される。
【００２０】
スタートビット検出回路２０には、受信データが入力される。ここで、受信データとは、例えば、調歩同期式シリアルデータ取得装置１０の入力ポート（図示省略）に入力されたシリアルデータを指す。スタートビット検出回路２０は、低速発振回路１２に接続されており、クロックの立ち上がりエッジと立ち下がりエッジとのうちのスタートビットが入力されたタイミングで先に入力されたエッジでスタートビットを検出する。そして、スタートビット検出回路２０は、検出タイミング判別回路２２に接続されており、スタートビットを検出すると、スタートビットを検出したことを示すスタートビット検出信号を検出タイミング判別回路２２に出力する。
【００２１】
また、スタートビット検出回路２０は、カウンタ１４に接続されており、立ち上がりエッジでスタートビットを検出すると、カウントの開始を指示するカウントスタート信号をカウンタ１４に出力する。カウンタ１４は、カウントスタート信号が入力されると、カウントを“０”から開始する。
【００２２】
なお、本実施形態において、クロックの立ち上がりは本発明に係る第１遷移の一例であり、クロックの立ち下がりは本発明に係る第２遷移の一例である。
【００２３】
検出タイミング判別回路２２は、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち下がりエッジで先にスタートビットが検出されたか否かを判別する。検出タイミング判別回路２２は、カウンタ１４及び減算回路２４に接続されており、立ち下がりエッジで先にスタートビットが検出されたと判別した場合に、減算指示信号を減算回路２４に出力する。減算指示信号は、カウント値の上限値を１減算することを指示する信号である。
【００２４】
減算回路２４は、カウンタ１４に接続されており、カウント値が入力される。減算回路２４は、入力された減算指示信号及びカウント値に基づいて、カウンタ１４のカウント値をクリアする（カウント値を“０”に戻す）ことを指示するカウントクリア信号をカウンタ１４及び検出タイミング判別回路２２に出力する。カウンタ１４は、カウントクリア信号が入力されると、カウント値をクリアする。検出タイミング判別回路２２は、カウントクリア信号が入力されると、減算指示信号をクリアする。なお、カウントクリア信号は、減算指示信号が入力された状態の減算回路２４に対してカウント値の上限値（例えば、“３”）を１減算したカウント値（例えば、“２”）が入力された場合に、減算回路２４によって出力される。また、カウントクリア信号は、減算指示信号がクリアされると、これ以降、カウンタ１４から減算回路２４にカウント値の上限値（例えば、“３”）が入力される毎に減算回路２４によって出力される。
【００２５】
受信データ取得部１８は、シフトレジスタ２６及び受信レジスタ２８を含む。シフトレジスタ２６は、低速発振回路１２、カウンタ１４、及び受信レジスタ２８に接続されており、カウント値の上限値である“３”が入力されると、受信データを取得する。そして、シフトレジスタ２６は、取得した受信データをクロックに応じて受信レジスタ２８に出力する。受信レジスタ２８は、シフトレジスタ２６から入力された受信データを保持する。
【００２６】
一例として図２に示すように、スタートビット検出回路２０は、インバータ３０、第１フリップフロップ３２、及び第２フリップフロップ３４を含む。また、検出タイミング判別回路２２は、第１ＡＮＤ回路３６、第２ＡＮＤ回路３８、ＯＲ回路４０、及び第３フリップフロップ４２を含む。なお、第１フリップフロップ３２、第２フリップフロップ３４、及び第３フリップフロップ４２は、Ｄ型のフリップフロップである。
【００２７】
インバータ３０には、受信データが入力される。インバータ３０は、入力された受信データを反転して出力する。
【００２８】
第１フリップフロップ３２の一方の入力端子には、インバータ３０の出力端子が接続されており、インバータ３０によって反転された受信データが入力される。第１フリップフロップ３２の他方の入力端子には、反転されたクロックが入力される。第１フリップフロップ３２の出力端子には、第１ＡＮＤ回路３６の一方の入力端子が接続されている。第１フリップフロップ３２は、クロックの立ち下がりエッジで受信データのスタートビットを検出し、スタートビット信号を第１ＡＮＤ回路３６の一方の入力端子に出力する。
【００２９】
第２フリップフロップ３４の一方の入力端子には、インバータ３０の出力端子が接続されており、インバータ３０によって反転された受信データが入力される。第２フリップフロップ３２の他方の入力端子には、クロックが入力される。第２フリップフロップ３４の出力端子には、第１ＡＮＤ回路３６の他方の入力端子が接続されるとともにカウンタ１４が接続されている。第２フリップフロップ３４は、クロックの立ち上がりエッジで受信データのスタートビットを検出し、スタートビット信号を第２ＡＮＤ回路３６の他方の入力端子に出力するとともに、カウンタ１４にカウントスタート信号を出力する。
【００３０】
第２ＡＮＤ回路３６の一方の入力端子には、第１フリップフロップ３４からスタートビット信号が入力される。第２ＡＮＤ回路３６の他方の入力端子には、第２フリップフロップ３４から、反転されたスタートビット信号が入力される。第２ＡＮＤ回路３６の出力端子には、ＯＲ回路４０の一方の入力端子が接続されている。
【００３１】
第２ＡＮＤ回路３６は、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち下がりエッジで先にスタートビットが検出された場合に判別信号を出力する。また、第２ＡＮＤ回路３６は、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち上がりエッジで先にスタートビットが検出された場合に判別信号を出力しない。なお、ここで、判別信号とは、クロックの立ち上がりエッジ及び立ち下がりエッジのうちの立ち下がりエッジで先にスタートビットが検出されたと判別したことを示す信号を指す。
【００３２】
ＯＲ回路４０の出力端子には、第２ＡＮＤ回路３８の一方の入力端子が接続されている。第２ＡＮＤ回路３８の他方の入力端子には、反転されたカウントクリア信号が入力される。第２ＡＮＤ回路３８の出力端子には、第３フリップフロップ４２の一方の入力端子が接続されている。第３フリップフロップ４２の他方の入力端子には、クロックが入力される。第３フリップフロップ４２の出力端子には、ＯＲ回路４０の他方の入力端子及び減算回路２４が接続されている。
【００３３】
第３フリップフロップ４２は、ＯＲ回路４０の第１入力端子に判別信号が入力されると、減算指示信号を減算回路２４（図１参照）に出力し、反転されたカウントクリア信号が第２ＡＮＤ回路３８に入力されると、減算指示信号をクリアする。
【００３４】
次に、調歩同期式シリアルデータ取得装置１０の動作について説明する。
【００３５】
なお、以下では、説明の便宜上、１フレーム分のシリアルデータである受信データが調歩同期式シリアルデータ取得装置１０によって取得される場合について説明する。また、以下では、説明の便宜上、受信データの取得がクロックの立ち上がりエッジで行われることを前提として説明する。また、以下では、受信データが９６００ｂｐｓで受信されたシリアルデータである場合について説明する。この場合、各ビットの幅は約０．１０４ミリ秒（１ｓ／９６００ｂ）であり、３８．４ｋＨｚ（０．０２６ミリ秒）の４クロック分に相当する。更に、以下では、説明の便宜上、信号レベルがハイレベルの信号をＨ信号と称し、信号レベルがローレベルの信号をＬ信号と称する。
【００３６】
先ず、図３を参照して、スタートビット検出回路２０によりクロックの立ち上がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出される場合について説明する。
【００３７】
一例として図３に示すように、入力された受信データに含まれるスタートビットが第１フリップフロップ３２によってクロックの立ち下がりエッジで検出されると、第１フリップフロップ３２の出力がローレベルからハイレベルに遷移し、Ｈ信号であるスタートビット検出信号が第１フリップフロップ３２により出力される。
【００３８】
第２フリップフロップ３４によりスタートビット検出信号が出力されていない状態で第１フリップフロップ３２から第１ＡＮＤ回路３６にスタートビット検出信号が入力されると、第１ＡＮＤ回路３６により半クロック分のＨ信号である判別信号が出力される。判別信号がＯＲ回路４０に入力されると、ＯＲ回路４０により半クロック分のＨ信号が出力され、ＯＲ回路４０から第２ＡＮＤ回路３８にＨ信号が入力されると、第２ＡＮＤ回路３８により半クロック分のＨ信号が出力される。
【００３９】
ここで、第２フリップフロップ３４によってクロックの立ち上がりエッジでスタートビットが検出されると、第２フリップフロップ３４の出力がローレベルからハイレベルに遷移し、Ｈ信号であるスタートビット検出信号が第２フリップフロップ３４により出力される。
【００４０】
第２フリップフロップ３４からカウンタ１４にスタートビット検出信号がカウントスタート信号として入力されると、カウンタ１４によるカウントが“０”から開始される。カウンタ１４のカウント値は１クロックにつき１加算され、減算回路２４及びシフトレジスタ２６に出力される。
【００４１】
第２ＡＮＤ回路３８から第３フリップフロップ４２にＨ信号が入力されると、３クロック分のＨ信号である減算指示信号が減算回路２４に出力される。
【００４２】
減算指示信号が入力された状態の減算回路２４にカウント値の“２”が入力されると、減算回路２４により１クロック分のＨ信号であるカウントクリア信号がカウンタ１４及び第２ＡＮＤ回路３８に出力される。減算回路２４からカウンタ１４にカウントクリア信号が入力されると、カウント値の“２”がクリアされてカウント値が“０”にリセットされる。また、減算回路２４から第２ＡＮＤ回路３８にカウントクリア信号が入力されると、第３フリップフロップ４２の出力がハイレベルからローレベルに遷移して減算指示信号がクリアされる。減算指示信号がクリアされると、これ以降のデータ取得（例えば、データビットの取得）では、カウント値の上限値が“２”から“３”に復帰する。
【００４３】
減算指示信号がクリアされると、これ以降、カウンタ１４によりクロックの入力に応じて“０”からカウントが開始され、カウント値が減算回路２４及びシフトレジスタ２６に出力される。カウント値の上限値である“３”がシフトレジスタ２６に入力されると、シフトレジスタ２６により受信データが取得される。シフトレジスタ２６によって取得された受信データは、クロックに同期して受信レジスタ２８に出力される。シフトレジスタ２６から受信レジスタ２８に入力された受信データは、受信レジスタ２８によって保持される。
【００４４】
減算回路２４にカウント値の“３”が入力されると、減算回路２４によりカウントクリア信号がカウンタ１４に出力される。減算回路２４からカウンタ１４にカウントクリア信号が入力されると、カウント値の“３”がクリアされ、再び“０”からカウントが開始される。
【００４５】
次に、図４を参照して、スタートビット検出回路２０によりクロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出される場合について説明する。
【００４６】
一例として図４に示すように、入力された受信データに含まれるスタートビットが第２フリップフロップ３４によってクロックの立ち上がりでエッジが検出されると、第２フリップフロップ３４によりスタートビット信号が出力される。
【００４７】
第２フリップフロップ３４によってスタートビットが検出されてから半クロックが経過して第１フリップフロップ３２によってクロックの立ち下がりエッジでスタートビットが検出されると、第１フリップフロップ３２によりスタートビット信号が出力される。
【００４８】
このように、クロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出されると、第１ＡＮＤ回路３６により判別信号が出力されない。そのため、第３フリップフロップ４２により減算指示信号も出力されない。
【００４９】
第２フリップフロップ３４からカウンタ１４にスタートビット検出信号がカウントスタート信号として入力されると、カウンタ１４によるカウントが“０”から開始される。カウンタ１４のカウント値は減算回路２４及びシフトレジスタ２６に出力される。
【００５０】
減算指示信号が入力されていない状態の減算回路２４にカウント値の上限値である“３”が入力されると、減算回路２４によりカウントクリア信号がカウンタ１４に出力される。減算回路２４からカウンタ１４にカウントクリア信号が入力されると、カウント値の“３”がクリアされてカウント値が“０”にリセットされる。
【００５１】
これ以降、カウンタ１４によりクロックの入力に応じてカウントされ、カウント値が減算回路２４及びシフトレジスタ２６に出力される。カウント値の上限値である“３”がシフトレジスタ２６に入力されると、シフトレジスタ２６により受信データが取得される。シフトレジスタ２６によって取得された受信データは、クロックに同期して受信レジスタ２８に出力される。シフトレジスタ２６から受信レジスタ２８に入力された受信データは、受信レジスタ２８によって保持される。また、減算回路２４にカウント値の“３”が入力されると、減算回路２４からカウンタ１４にカウントクリア信号が入力され、カウント値の“３”クリアされてカウント値が“０”にリセットされる。
【００５２】
次に、調歩同期式シリアルデータ取得装置１０によって実行されるカウント処理について図５を参照して説明する。
【００５３】
図５に示すカウント処理では、先ず、ステップ１００で、変更部１６は、スタートビットが入力されたか否かを判定する。ステップ１００において、スタートビットが入力されていない場合は、判定が否定されて、ステップ１００の判定が再び行われる。ステップ１００において、スタートビットが入力された場合は、判定が肯定されて、ステップ１０２へ移行する。
【００５４】
ステップ１０２で、変更部１６は、ステップ１００にてスタートビットがクロックの立ち上がりエッジで入力されたか否かを判定する。ステップ１０２において、ステップ１００にてスタートビットがクロックの立ち下がりエッジで入力された場合は、判定が否定されて、ステップ１０４へ移行する。ステップ１０２において、ステップ１００にてスタートビットがクロックの立ち上がりエッジで入力された場合は、判定が肯定されて、ステップ１０８へ移行する。
【００５５】
ステップ１０４で、変更部１６は、減算指示信号を生成することでカウンタ１４のカウント値の上限値を“３”から“２”に変更し、その後、ステップ１０６へ移行する。
【００５６】
ステップ１０６で、変更部１６は、クロックの立ち上がりエッジが入力されたか否かを判定する。ステップ１０６において、クロックの立ち上がりエッジが入力されていない場合は、判定が否定されて、ステップ１０６の判定が再び行われる。ステップ１０６において、クロックの立ち上がりエッジが入力された場合は、判定が肯定されて、ステップ１０８へ移行する。
【００５７】
ステップ１０８で、カウンタ１４は、カウントを“０”から開始し、その後、ステップ１１０へ移行する。
【００５８】
ステップ１１０で、カウンタ１４は、クロックの立ち上がりエッジが入力されたか否かを判定する。ステップ１１０において、クロックの立ち上がりエッジが入力されていない場合は、判定が否定されて、ステップ１１０の判定が再び行われる。ステップ１１０において、クロックの立ち上がりエッジが入力された場合は、判定が肯定されて、ステップ１１２へ移行する。
【００５９】
ステップ１１２で、カウンタ１４は、カウント値に１を加算し、その後、ステップ１１４へ移行する。
【００６０】
ステップ１１４で、変更部１６は、カウンタ１４のカウント値が上限値に達したか否かを判定する。ステップ１１４において、カウンタ１４のカウント値が上限値に達していない場合は、判定が否定されて、ステップ１１０へ移行する。ステップ１１４において、カウンタ１４のカウント値が上限値に達した場合は、判定が肯定されて、ステップ１１６へ移行する。
【００６１】
ステップ１１６で、変更部１６は、現時点でのカウンタ１４のカウント値の上限値がステップ１０４の処理で変更された後の上限値（＝２）か否かを判定する。ステップ１１６において、現時点でのカウンタ１４のカウント値の上限値がステップ１０４の処理で変更された後の上限値の場合（上限値＝２の場合）は、判定が肯定されて、ステップ１１８へ移行する。ステップ１１６において、現時点でのカウンタ１４のカウント値の上限値がステップ１０４の処理で変更された後の上限値でない場合（上限値＝３の場合）は、判定が否定されて、ステップ１２０へ移行する。
【００６２】
ステップ１１８で、変更部１６は、減算指示信号をクリアすることでカウンタ１４のカウント値の上限値（＝２）を元の値（＝３）に戻し、その後、ステップ１２０へ移行する。
【００６３】
ステップ１２０で、変更部１６は、カウントクリア信号をカウンタ１４に出力し、その後、ステップ１２２へ移行する。ステップ１２０の処理が実行されることによってカウントクリア信号がカウンタ１４に入力されると、カウント値がクリアされる。
【００６４】
ステップ１２２で、変更部１６は、ストップビットが入力されたか否かを判定する。ステップ１２２において、スタートビットが入力されていない場合は、判定が否定されて、ステップ１０６へ移行する。ステップ１２２において、スタートビットが入力された場合は、判定が肯定されて、本カウント処理を終了する。
【００６５】
以上説明したように、調歩同期式シリアルデータ取得装置１０では、変更部１６により、受信データに含まれるスタートビットが入力されたタイミングでのクロックの遷移に応じて、スタートビットに対応するカウント値の上限値が変更される。すなわち、スタートビットが入力されたタイミングでのクロックの遷移が立ち上がりの場合は、スタートビットに対応するカウント値の上限値が“３”となり、スタートビットが入力されたタイミングでのクロックの遷移が立ち下がりの場合は、スタートビットに対応するカウント値の上限値が“２”となる。これにより、スタートビットの検出遅れが半クロック分抑制され、結果的に、１フレーム分の受信データの取得タイミングの誤差が半クロック分の誤差に抑制される。
【００６６】
ところで、仮に、１フレーム分のサンプリングに要するクロック数が４４クロックから４５クロックになると、４５／４４＊１００＝１０２．２７となり、受信データの取得タイミングの誤差として約２．２７％の誤差が生じる。つまり、これが１クロック分の誤差である。一般的に調歩同期式シリアル通信では、１フレーム当たり約３％が許容される誤差の上限とされているため、約２．２７％の誤差が生じると、通信相手に許容される誤差は０．７３％（＝３−２．２７）になってしまう。
【００６７】
これに対し、調歩同期式シリアルデータ取得装置１０によれば、受信データの取得タイミングの誤差が半クロック分の誤差である約１．１３％の誤差に抑制されるので、１クロック分の誤差が生じる場合に比べ、通信相手の誤差の許容範囲が拡がる。
【００６８】
一方、従来の調歩同期式シリアル通信では、受信データの先頭のデータであるスタートビットの検出精度を高くするために、一例として図８に示すように、数ＭＨｚオーダのクロックである高速化されたクロックでサンプリングする方式が多く採用されている。
【００６９】
しかし、高速化されたクロックでサンプリングする方式を採用した場合、高周波数でクロックが生成されるため、電流を無駄に消費してしまうという問題点がある。
【００７０】
これに対し、調歩同期式シリアルデータ取得装置１０によれば、受信データの取得タイミングの誤差を抑制するにあたって、高周波数でクロックを生成する必要がないので、高速化されたクロックでサンプリングする方式を採用した場合に比べ、消費電流の増加が抑制される。
【００７１】
また、調歩同期式シリアルデータ取得装置１０によれば、１フレーム分の受信データのうちのスタートビットに関してのみカウント値の上限値が変更されるようにすれば良い。よって、調歩同期式シリアルデータ取得装置１０は、ＲＴＬによる同期設計を前提としている場合において、クロックの何れのエッジでサンプリングしたかによって全ての動作クロックエッジを動的に切り替えるという従来技術に比べ、ＲＴＬによる同期設計の難易度を低くすることができる。
【００７２】
また、調歩同期式シリアルデータ取得装置１０は、クロックの立ち上がりエッジで動作する回路及びクロックの立ち上がりエッジで動作する回路により制御される出力段でクロックをセレクトするという従来技術に比べ、回路規模の増大を抑制することができる。
【００７３】
このように、調歩同期式シリアルデータ取得装置１０は、受信データの取得タイミングの誤差を簡易な構成で抑制することができる。
【００７４】
また、調歩同期式シリアルデータ取得装置１０では、クロックの立ち上がりエッジと立ち下がりエッジとでスタートビットが検出される。そして、クロックの立ち上がりエッジで先にスタートビットが検出された場合、クロックの立ち上がりエッジに対して半クロック以内にスタートビットが検出されたと判断され、カウント値の上限値が減算されない。また、クロックの立ち下がりエッジで先にスタートビットが検出された場合、スタートビットの検出が半クロック以上遅れたと判断され、カウント値の上限値が１減算される。すなわち、クロックの立ち下がりエッジで先にスタートビットが検出された場合、スタートビット区間を−１クロックすることで０．５（＝１−０．５）クロックの誤差が抑制される。
【００７５】
これにより、調歩同期式シリアルデータ取得装置１０では、１フレーム分の受信データのうちのスタートビットの検出のみに対して２倍の周波数のクロックを適用した場合と同様の効果が得られる。
【００７６】
また、調歩同期式シリアルデータ取得装置１０では、実際に２倍の周波数のクロックが生成されるわけではなく、クロックの立ち上がりエッジと立ち下がりエッジとでスタートビットが検出される。よって、実際に２倍の周波数のクロックが生成される場合に比べ、少ない消費電流で受信データの取得タイミングの誤差が抑制され、回路規模の増大も抑制される。
【００７７】
また、調歩同期式シリアルデータ取得装置１０では、減算された上限値である“２”がカウンタ１４によりカウントされた場合に、カウンタ１４のカウント値がリセットされ、かつ、上限値が、減算される前の値である“３”に戻される。これにより、調歩同期式シリアルデータ取得装置１０は、カウント値の上限値が減算された場合であっても、上限値が減算されない場合と同様の構成でデータビットを取得することができる。
【００７８】
また、調歩同期式シリアルデータ取得装置１０では、カウンタ１４によるカウントがクロックの立ち上がりエッジで行われる。これにより、調歩同期式シリアルデータ取得装置１０は、カウント値の上限値が変更された場合であっても、カウント値の上限値がカウントされるタイミングをスタートビットの終了位置に合わせることができる。
【００７９】
なお、上記実施形態では、変更部１６を有する調歩同期式シリアルデータ取得装置１０を例示したが、これに限らず、例えば、図６に示すように、調歩同期式シリアルデータ取得装置５０であっても本発明は成立する。
【００８０】
ここで、図６を参照して、調歩同期式シリアルデータ取得装置１０と調歩同期式シリアルデータ取得装置５０との相違点について説明する。調歩同期式シリアルデータ取得装置５０は、調歩同期式シリアルデータ取得装置１０に比べ、変更部１６に代えてサンプリング部５２を有する点、カウンタ部５４を有する点、及び受信データ取得部１８に代えて受信データ取得部５６を有する点が異なる。
【００８１】
サンプリング部５２は、スタートビット検出回路５８及び検出タイミング判別回路６０を有する。サンプリング部５２には、受信データ及びクロックが入力される。サンプリング部５２に入力された受信データ及びクロックは、スタートビット検出回路５８に入力される。スタートビット検出回路５８は、スタートビット検出信号を検出タイミング判別回路６０に出力すると共に、カウントスタート信号を生成する。検出タイミング判別回路６０は、減算指示信号を生成する。サンプリング部５２は、カウントスタート信号及び減算指示信号をカウンタ部５４に出力する。
【００８２】
カウンタ部５４は、クロックが入力される回数をカウントするカウント回路であるカウンタ６２、及び減算回路６４を有する。カウンタ部５４は、減算回路６４によって生成されたカウントクリア信号をサンプリング部５２に出力する。減算回路６４は、カウントクリア信号をカウンタ６２に出力する。カウンタ部５４にカウントスタート信号が入力されると、カウンタ６２はカウントを開始する。カウンタ６２は、カウント値を減算回路に出力する。カウンタ部５４は、カウンタ６２のカウント値を受信データ取得部５６に出力する。
【００８３】
受信データ取得部５６は、シフトレジスタ６６及び受信レジスタ６８を有する。受信データ取得部５６には、カウント値、受信データ、及びクロックが入力される。受信データ取得部５６にカウント値がシフトレジスタ６６に入力されると、シフトレジスタ６６は、受信データを取得し、取得した受信データをクロックに同期して受信レジスタ６８に出力する。受信レジスタ６８は、入力された受信データを保持する。
【００８４】
また、上記実施形態では、受信データがクロックの立ち上がりで取得されることを前提として、クロックの立ち上がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出された場合にカウント値の上限値が減算される場合を例示したが、本発明はこれに限定されるものではない。例えば、受信データがクロックの立ち下がりで取得されることを前提として、クロックの立ち下がりエッジよりも先にクロックの立ち上がりエッジでスタートビットが検出された場合にカウント値の上限値が減算されるようにしてもよい。但し、この場合、クロックの立ち下がりエッジよりも先にクロックの立ち下がりエッジでスタートビットが検出された場合にカウント値の上限値が減算されないようにする。
【００８５】
また、上記実施形態では、４クロック毎にカウント値がリセットされる場合を例示したが、４クロック未満又は５クロック以上のクロック数毎にカウント値がリセットされるようにしてもよい。
【００８６】
また、上記実施形態では、シリアルデータの取得がクロックの立ち上がりエッジで行われることを前提としているため、カウンタ１４によるカウントがクロックの立ち上がりエッジで行われる場合を例示したが、本発明はこれに限定されるものではない。すなわち、シリアルデータの取得がクロックの立ち下がりエッジで行われる場合には、カウンタ１４によるカウントがクロックの立ち下がりエッジで行われるようにすればよい。
【００８７】
また、上記実施形態では、低速のクロックを例示したが、本発明は高速のクロックであっても成立することは言うまでもない。
【００８８】
以上の実施形態に関し、更に以下の付記を開示する。
【００８９】
（付記１）
スタートビットを含むシリアルデータと前記シリアルデータの取得タイミングを規定するクロックとが入力される調歩同期式シリアルデータ取得装置であって、
前記クロックが入力される回数をカウントするカウンタ部と、
前記カウンタ部によりカウントされる前記スタートビットに対応するカウント値の上限値を変更する減算回路と、を含む調歩同期式シリアルデータ取得装置。
【００９０】
（付記２）
前記カウンタ部は、前記減算回路を有する付記１に記載の調歩同期式シリアルデータ取得装置。
【００９１】
（付記３）
前記クロックの第１遷移と第２遷移とで前記スタートビットを検出すると共に、前記スタートビットを検出した際の前記クロックの遷移に応じて、前記上限値の減算を指示する減算指示信号を前記減算回路に出力するサンプリング部を更に含み、
前記減算回路は、前記サンプリング部から前記減算指示信号が入力された場合に、前記上限値を減算することで前記上限値を変更する付記１又は付記２に記載の調歩同期式シリアルデータ取得装置。
【００９２】
（付記４）
前記サンプリング部は、前記スタートビットを前記第１遷移で先に検出した場合に前記減算指示信号を出力せず、前記スタートビットを前記第２遷移で先に検出した場合に前記減算指示信号を出力する付記３に記載の調歩同期式シリアルデータ取得装置。
【００９３】
（付記５）
前記カウンタ部は、前記回数をカウントするカウント回路を有し、
前記減算回路は、前記カウント値をクリアすることを指示するカウントクリア信号を前記カウント回路及び前記サンプリング部に出力し、
前記カウント回路は、前記減算回路から前記カウントクリア信号が入力された場合に前記カウント値をクリアし、
前記サンプリング部は、前記減算回路から前記カウントクリア信号が入力された場合に前記減算指示信号をクリアする付記３又は付記４に記載の調歩同期式シリアルデータ取得装置。
【００９４】
（付記６）
前記サンプリング部は、前記第１遷移と前記第２遷移とで前記スタートビットを検出するスタートビット検出回路と、前記スタートビット検出回路によって前記第１遷移と前記第２遷移との何れで先に前記スタートビットが検出されたかを判別し、前記スタートビット検出回路によって前記スタートビットが前記第１遷移で先に検出された場合に前記減算指示信号を出力せず、前記スタートビット検出回路によって前記スタートビットが前記第２遷移で先に検出された場合に前記減算指示信号を出力する検出タイミング判別回路と、を有する付記３から付記５の何れか１つに記載の調歩同期式シリアルデータ取得装置。
【００９５】
（付記７）
前記スタートビット検出回路は、前記第１遷移で前記スタートビットを検出した場合に、前記カウンタ部による前記回数のカウントの開始を指示するカウントスタート信号を前記カウンタ部に出力し、前記カウンタ部は、前記カウントスタート信号が入力された場合に、前記カウントを開始する付記６に記載の調歩同期式シリアルデータ取得装置。
【００９６】
（付記８）
前記減算指示信号は、前記上限値を１減算することを指示する信号である付記３から付記７の何れか１つに記載の調歩同期式シリアルデータ取得装置。
【符号の説明】
【００９７】
１０  調歩同期式シリアルデータ取得装置
１４，６２  カウンタ
１６，５２  変更部
【図１】
0006378966.tif 000002
【図２】
0006378966.tif 000003
【図３】
0006378966.tif 000004
【図４】
0006378966.tif 000005
【図５】
0006378966.tif 000006
【図６】
0006378966.tif 000007
【図７】
0006378966.tif 000008
【図８】
0006378966.tif 000009
【図９】
0006378966.tif 000010