(57)【要約】【課題】ボーレートの算出精度を向上させることが可能な通信装置を提供する。【解決手段】１フレーム内に開始ビット及び終了ビットを含むシリアル信号を送受信する通信部と、通信相手装置から送信されるシリアル信号に含まれる開始ビット及び終了ビットを検出する検出部と、検出部にて開始ビットが検出された場合に計時動作を開始する一方、検出部にて終了ビットが検出された場合に計時動作を終了する計時部と、計時部の計時結果に基づいてボーレートを算出し、当該算出したボーレートを通信部に設定する設定部と、を通信装置に備える。【選択図】図１
2011091742.tif 000002
【特許請求の範囲】
【請求項１】
１フレーム内に開始ビット及び終了ビットを含むシリアル信号を送受信する通信部と、
通信相手装置から送信される前記シリアル信号に含まれる前記開始ビット及び前記終了ビットを検出する検出部と、
前記検出部にて前記開始ビットが検出された場合に計時動作を開始する一方、前記検出部にて前記終了ビットが検出された場合に前記計時動作を終了する計時部と、
前記計時部の計時結果に基づいてボーレートを算出し、当該算出したボーレートを前記通信部に設定する設定部と、
を備えることを特徴とする通信装置。
【請求項２】
前記１フレーム内において、前記開始ビットの区間はローレベルに、前記終了ビットの区間はハイレベルに、前記開始ビットと前記終了ビットとの間の区間はローレベルに設定されたシリアル信号が前記通信相手装置から送信される場合、
前記検出部は、前記シリアル信号の立下りエッジを前記開始ビットとして検出する一方、前記シリアル信号の立上がりエッジを前記終了ビットとして検出することを特徴とする請求項１記載の通信装置。
【請求項３】
前記設定部は、複数のフレームの各々について得られる前記計時部の計時結果に基づいて前記ボーレートの平均値を算出し、当該算出したボーレートの平均値を前記通信部に設定することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記通信部は、ＵＡＲＴ(Universal Asynchronous Receiver Transmitter)インタフェースであることを特徴とする請求項１〜３のいずれか一項に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
周知のように、ＵＡＲＴ(Universal Asynchronous Receiver Transmitter)インタフェースを備えるデバイス間でシリアル通信を行う場合、送信側デバイスのボーレートと同じボーレートを受信側デバイスで設定する必要がある。送信側デバイスのボーレートが既知の場合には手動操作によって受信側デバイスのボーレートを設定すれば良いが、不明の場合には受信側デバイスにおいてボーレートの自動設定を行う必要がある。
【０００３】
従来では、ボーレートの自動設定を行う方法として、受信側デバイスにおいて受信可能なタイミングが見つかるまで何度もボーレートを変えることで適切なボーレートを探索する方法（下記特許文献１〜３参照）や、受信側デバイスにおいて受信したシリアル信号を測定してボーレートを算出する方法（下記特許文献４参照）などがある。
【０００４】
なお、シリアル信号に含まれるスタートビットの期間を測定すればボーレートを算出することが可能であるが、転送経路の条件により、スタートビットの立下り遅延時間と立上り遅延時間の差が大きくなると、スタートビット期間の測定精度が低下し、ひいてはボーレートの算出精度が低下する虞がある。
【０００５】
これに対して、特許文献４の技術では、スタートビットの立下りから立上りの期間を測定するための第１のカウンタ及び第２のカウンタと、転送速度を測定するコマンドの１フレーム最後の立下り時間と立上り時間を測定するための第３のカウンタ及び第４のカウンタとを有し、スタートビットの立下りから転送データの最後の立下り、或いはスタートビットの立上りから転送データの最後の立上りの期間で転送速度（ボーレート）を算出することにより、ボーレートの算出精度の向上を図っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−３０８７９３号公報
【特許文献２】特開２００４−６４６９１９号公報
【特許文献３】特開２００５−３３３５１３号公報
【特許文献４】特開平１１−１１２５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１〜３の技術では、受信可能なタイミングが見つかるまで何度もボーレートを変える必要があるため、ボーレートを設定するまでの時間が長くなるという問題があった。また、予め決められたボーレートにしか対応できず、任意のボーレート設定には対応できないという問題があった。特許文献４の技術では上述した特許文献１〜３の問題は生じないが、ボーレートを算出するための回路構成が複雑化するという問題があった。このような回路構成の複雑化を回避するために、スタートビットの期間のみ測定することでボーレートを算出する方法を採用すると、結局、ボーレートの算出精度が低下するという問題を解決することができない。
【０００８】
本発明は、上述した事情に鑑みてなされたものであり、ボーレートの算出精度を向上させることが可能な通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る通信装置は、１フレーム内に開始ビット及び終了ビットを含むシリアル信号を送受信する通信部と、通信相手装置から送信される前記シリアル信号に含まれる前記開始ビット及び前記終了ビットを検出する検出部と、前記検出部にて前記開始ビットが検出された場合に計時動作を開始する一方、前記検出部にて前記終了ビットが検出された場合に前記計時動作を終了する計時部と、前記計時部の計時結果に基づいてボーレートを算出し、当該算出したボーレートを前記通信部に設定する設定部と、を備えることを特徴とする。
【００１０】
また、上記の通信装置において、前記１フレーム内において、前記開始ビットの区間はローレベルに、前記終了ビットの区間はハイレベルに、前記開始ビットと前記終了ビットとの間の区間はローレベルに設定されたシリアル信号が前記通信相手装置から送信される場合、前記検出部は、前記シリアル信号の立下りエッジを前記開始ビットとして検出する一方、前記シリアル信号の立上がりエッジを前記終了ビットとして検出することを特徴とする。
【００１１】
また、上記の通信装置において、前記設定部は、複数のフレームの各々について得られる前記計時部の計時結果に基づいて前記ボーレートの平均値を算出し、当該算出したボーレートの平均値を前記通信部に設定することを特徴とする。
また、上記の通信装置において、前記通信部は、ＵＡＲＴ(Universal Asynchronous Receiver Transmitter)インタフェースであることを特徴とする。
【発明の効果】
【００１２】
本発明では、通信相手装置から送信されるシリアル信号に含まれる開始ビットから終了ビットまでの、複数ビットに亘る区間の時間測定結果（計時部の計時結果）からボーレートを算出するため、ボーレートの算出精度を向上することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る通信装置１のブロック構成図である。
【図２】通常通信時に通信装置１と通信相手装置２との間で送受信されるＵＡＲＴ信号のフォーマット（ａ）と、通信接続の確立時に通信相手装置２から送信されるＵＡＲＴ信号のフォーマット（ｂ）である。
【図３】通信装置１のボーレート設定動作を示すフローチャートである。
【図４】通信装置１のボーレート設定動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について、図面を参照しながら説明する。
図１は、本実施形態における通信装置１のブロック構成図である。本実施形態における通信装置１は、通信相手装置２（例えばパーソナルコンピュータ等）とシリアル通信を行うもの（例えばモデム等）であり、ＵＡＲＴインタフェース１１、外部割込回路１２、タイマ１３及びＣＰＵ(Central Processing Unit)１４を備えている。なお、図１では、説明の便宜上、通信相手装置２の内部ブロックとしてＵＡＲＴインタフェース２１のみを図示している。
【００１５】
通信装置１において、ＵＡＲＴインタフェース１１（通信部）は、通信相手装置２のＵＡＲＴインタフェース２１との間で、１フレーム内にスタートビット（開始ビット）及びストップビット（終了ビット）を含むＵＡＲＴ信号（シリアル信号）を送受信するものである。具体的には、このＵＡＲＴインタフェース１１は、ＣＰＵ１４から入力される送信データ（パラレルデータ）をシリアル変換することで送信用のＵＡＲＴ信号を生成する一方、受信したＵＡＲＴ信号をパラレル変換することで受信データ（パラレルデータ）を生成してＣＰＵ１４へ出力する。なお、ＵＡＲＴインタフェース１１には、シリアル通信に必要なボーレート等の設定情報を設定するための設定レジスタ１１ａが設けられている。
【００１６】
外部割込回路１２（検出部）は、通信相手装置２のＵＡＲＴインタフェース２１からＵＡＲＴインタフェース１１へ送信されるＵＡＲＴ信号が分岐して入力されており、このＵＡＲＴ信号に含まれるスタートビット及びストップビットを検出するものである。具体的には、この外部割込回路１２は、ＵＡＲＴ信号の立下りエッジをスタートビットとして検出する一方、ＵＡＲＴ信号の立上がりエッジをストップビットとして検出する。なお、この外部割込回路１２は、ＵＡＲＴ信号の立下りエッジを検出したタイミングと、立上がりエッジを検出したタイミングで、ハイレベルのパルス信号をタイマ１３へ出力する。
【００１７】
タイマ１３（計時部）は、外部割込回路１２にてスタートビットが検出された場合に計時動作を開始する一方、外部割込回路１２にてストップビットが検出された場合に計時動作を終了するものである。具体的には、このタイマ１３は、外部割込回路１２から最初のパルス信号が入力されたタイミングでタイムカウンタを起動し、次のパルス信号が入力されたタイミングでタイムカウンタを停止し、その時のタイムカウンタの値（タイムカウント値）をＣＰＵ１４へ出力する。
【００１８】
ＣＰＵ１４（設定部）は、通信装置１の通信動作を統括制御するものであり、具体的には送信データを生成してＵＡＲＴインタフェース１１へ出力したり、ＵＡＲＴインタフェース１１から入力される受信データを基に所定の信号処理を行う。また、このＣＰＵ１４は、タイマ１３から入力されるタイムカウント値（計時結果）に基づいて、通信相手装置２から送信されたＵＡＲＴ信号のボーレートを算出し、当該算出したボーレートをＵＡＲＴインタフェース１１の設定レジスタ１１ａに設定するボーレート自動設定機能を有している。
【００１９】
次に、上記のように構成された本実施形態における通信装置１の動作、特にボーレート設定動作について詳細に説明する。まず、ボーレート設定動作の説明に入る前に、その前提となるＵＡＲＴ信号のフォーマットについて説明する。図２（ａ）は、通常通信時（通信接続の確立後）において、通信装置１と通信相手装置２との間で送受信されるＵＡＲＴ信号のフォーマットを示し、図２（ｂ）は、通信接続の確立時において、通信相手装置２から通信装置１へ送信されるＵＡＲＴ信号のフォーマットを示している。
【００２０】
図２（ａ）に示すように、通常通信時では、１フレーム内にスタートビット（１ビット）、データビット（８ビット）、ストップビット（１ビット）を含むＵＡＲＴ信号が通信装置１と通信相手装置２との間で送受信される。なお、ＵＡＲＴ通信では、スタートビットの区間をローレベル（「０」）に、ストップビットの区間をハイレベル（「１」）に設定するように規定されている。
【００２１】
一方、図２（ｂ）に示すように、通信接続の確立時では、「パリティ無し、データ＝００hex」という条件で生成されたＵＡＲＴ信号、つまり、１フレーム内において、スタートビットの区間はローレベルに、ストップビットの区間はハイレベルに、スタートビットとストップビットとの間の区間はローレベルに設定されたＵＡＲＴ信号が通信相手装置２から送信される。この場合、１フレーム中、９ビットがローレベルの区間となる。
【００２２】
通信装置１は、図２（ｂ）に示したように、通信接続の確立時に通信相手装置２から送信されるＵＡＲＴ信号の１フレーム内のローレベル区間の時間を測定し、その測定結果に基づいてボーレートを算出する。図３は、通信接続の確立時における通信装置１のボーレート設定動作を示すフローチャートである。
【００２３】
図３に示すように、まず、通信装置１の外部割込回路１２は、通信相手装置２から送信されるＵＡＲＴ信号を監視し、立下りエッジを検出したか否かを判定する（ステップＳ１）。このステップＳ１において、「Ｙｅｓ」の場合、外部割込回路１２は、立下りエッジを検出したタイミングで、ハイレベルのパルス信号をタイマ１３へ出力し、タイマ１３はパルス信号が入力されたタイミングでタイムカウンタを起動する（ステップＳ２）。
【００２４】
そして、外部割込回路１２は、通信相手装置２から送信されるＵＡＲＴ信号を引き続き監視し、立上がりエッジを検出したか否かを判定する（ステップＳ３）。このステップＳ３において、「Ｙｅｓ」の場合、外部割込回路１２は、立上がりエッジを検出したタイミングで、ハイレベルのパルス信号をタイマ１３へ出力し、タイマ１３はパルス信号が入力されたタイミングでタイムカウンタを停止する（ステップＳ４）。ここで、タイマ１３は、その時のタイムカウント値をＣＰＵ１４へ出力する。
【００２５】
そして、ＣＰＵ１４は、タイマ１３から入力されるタイムカウント値に基づいて、通信相手装置２から送信されたＵＡＲＴ信号のボーレートを算出する（ステップＳ５）。具体的には、タイムカウント値は、図２（ｂ）に示すＵＡＲＴ信号における１フレーム内のローレベル区間（９ビット分の区間）の時間を示す値であるため、そのローレベル区間の時間の逆数を９で割ることでボーレートを算出することができる。ＣＰＵ１４は、このように算出したボーレートをＵＡＲＴインタフェース１１の設定レジスタ１１ａに設定する（ステップＳ６）。
【００２６】
図４は、上述した通信装置１のボーレート設定動作をタイミングチャートで表したものである。この図４に示すように、ＵＡＲＴ信号の立下りエッジが検出されたタイミングで、パルス信号が外部割込回路１２からタイマ１３へ出力されてタイムカウンタが起動し、その後、ＵＡＲＴ信号の立上がりエッジが検出されたタイミングで、再度、パルス信号が外部割込回路１２からタイマ１３へ出力されてタイムカウンタが停止し、ＣＰＵ１４によってボーレートが算出されて、設定レジスタ１１ａにボーレートが設定される。
【００２７】
以上説明したように、本実施形態の通信装置１では、従来のようなスタートビットの区間だけでなく、複数ビットに亘る区間の時間測定結果からボーレートを算出するため、ボーレートの算出精度を向上することができる。また、その区間の時間を測定するために、ＵＡＲＴ信号の立下りエッジ及び立上がりエッジを検出する外部割込回路１２と、計時動作を行うタイマ１３とを設けるだけで良いので、回路構成を単純化することができる。すなわち、本実施形態の通信装置１によれば、ボーレートの算出精度の向上と、回路構成の単純化とを両立することが可能となる。
【００２８】
なお、本発明は上記実施形態に限定されず、以下のような変形例が挙げられる。
（１）上記実施形態では、通信相手装置２から送信されるＵＡＲＴ信号に含まれる１フレーム内のローレベル区間のみを測定して得られるタイムカウント値を基にボーレートを算出する場合を例示したが、複数のフレームの各々について得られるタイムカウント値に基づいてボーレートの平均値を算出し、当該算出したボーレートの平均値をＵＡＲＴインタフェース１１に設定する機能をＣＰＵ１４に設けても良い。これにより、ボーレートの算出精度をさらに向上することができる。
【００２９】
（２）上記実施形態では、１フレーム内に開始ビット及び終了ビットを含むシリアル信号を送受信する通信部としてＵＡＲＴインタフェース１１を備える通信装置１を例示したが、１フレーム内に開始ビット及び終了ビットを含むようなシリアル信号を送受信するものであれば、他のインタフェースを用いても良い。また、ＵＡＲＴ信号のフォーマットは、図２に限定されるものではない。特に、通信接続の確立時に、通信相手装置２から通信装置１へ送信するＵＡＲＴ信号における１フレーム内のローレベル区間は長い方が望ましい。
【符号の説明】
【００３０】
１…通信装置、１１…ＵＡＲＴインタフェース（通信部）、１１ａ…設定レジスタ、１２…外部割込回路（検出部）、１３…タイマ（計時部）、１４…ＣＰＵ(Central Processing Unit：設定部)、２…通信相手装置、２１…ＵＡＲＴインタフェース
【図１】
2011091742.tif 000003
【図２】
2011091742.tif 000004
【図３】
2011091742.tif 000005
【図４】
2011091742.tif 000006