(57)【要約】【課題】通信データの解析により通信速度の検出を行い、検出結果に応じて通信速度切り替えを行う装置および方法を実現する。【解決手段】調歩同期方式のシリアル通信を実行する通信装置において、通信相手から受信する通信データのビット変化を検出してローパルスの継続期間であるローパルス幅を計測し、計測されたローパルス幅が低速通信データ対応のビット幅相当のローパルス幅であるか否かの判定に基づいて通信データが高速通信であるか低速通信であるかを判定する構成とした。本構成により通信速度が不明の通信相手からの通信データの速度検出が可能となり、相手に合わせた通信速度に切り替えて通信を成立させる制御が可能となる。【選択図】図１４
2010124268.tif 000002
【特許請求の範囲】
【請求項１】
調歩同期方式のシリアル通信を実行する通信実行部と、
前記通信実行部が通信相手から受信する通信データのビット変化を検出するビット変化検出部と、
前記ビット変化検出部の検出するビット変化位置によって規定されるローパルスの継続期間であるローパルス幅を計測するタイマと、
前記タイマによって計測されるローパルス幅に応じて、前記通信データの通信速度判定処理を行う制御部を有し、
前記制御部は、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅であることの確認に基づいて、前記通信データの通信速度が低速通信であると判定する構成であるデータ通信装置。
【請求項２】
前記制御部は、
データ通信装置が高速通信モードに設定されている場合に、前記通信データの通信速度が低速通信であると判定した場合、通信モードを低速通信モードに設定する制御を行う構成である請求項１に記載のデータ通信装置。
【請求項３】
前記制御部は、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅でないことの確認に基づいて、前記通信データの通信速度が高速通信であると判定する構成である請求項１に記載のデータ通信装置。
【請求項４】
前記制御部は、
データ通信装置が低速通信モードに設定されている場合に、前記通信データの通信速度が高速通信であると判定した場合、通信モードを高速通信モードに設定する制御を行う構成である請求項３に記載のデータ通信装置。
【請求項５】
前記制御部は、
前記ビット変化検出部から、前記通信データ中の信号の立ち下がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を開始させ、
前記ビット変化検出部から前記通信データ中の信号の立ち上がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を終了させてローパルス幅情報を取得する構成である請求項１に記載のデータ通信装置。
【請求項６】
前記制御部は、
前記ビット変化検出部から、前記通信データ中のフレーム先頭のワードに対応するスタートビットの開始位置に対応する信号の立ち下がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を開始させ、
前記ビット変化検出部から前記通信データ中の信号の立ち上がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を終了させてローパルス幅情報を取得する構成である請求項１に記載のデータ通信装置。
【請求項７】
前記制御部は、
通信データが高速通信であるか低速通信であるかを判定するためのデータとして、ローパルス幅の複数の値の各々が高速通信または低速通信のいずれであるかを対応付けたテーブルを有し、該テーブルを参照して前記タイマによって計測されるローパルス幅に応じて前記通信データの通信速度判定処理を行う構成である請求項１に記載のデータ通信装置。
【請求項８】
前記制御部は、
前記通信データに含まれるコマンドに応じて、通信速度の切り替え許容モードと禁止モードとの設定変更を行う構成である請求項１に記載のデータ通信装置。
【請求項９】
前記データ通信装置は、情報処理装置本体に着脱可能な通信部を有するバッテリーであり、前記通信相手との通信処理を実行する構成である請求項１〜８いずれかに記載のデータ通信装置。
【請求項１０】
前記通信相手は、バッテリーの装着されるカメラである請求項９に記載のデータ通信装置。
【請求項１１】
データ通信装置において実行する通信制御方法であり、
通信実行部が、調歩同期方式のシリアル通信を実行する通信実行ステップと、
ビット変化検出部が、前記通信実行部が通信相手から受信する通信データのビット変化を検出するビット変化検出ステップと、
タイマが、前記ビット変化検出部の検出するビット変化位置によって規定されるローパルスの継続期間であるローパルス幅を計測する時間計測ステップと、
制御部が、前記タイマによって計測されるローパルス幅に応じて、前記通信データの通信速度判定処理を実行し、判定結果に応じて通信モードの変更を行う制御ステップを有し、
前記制御ステップは、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅であることの確認に基づいて、前記通信データの通信速度が低速通信であると判定するステップである通信制御方法。
【請求項１２】
データ通信装置において通信制御処理を実行させるプログラムであり、
通信実行部に、調歩同期方式のシリアル通信を実行させる通信実行ステップと、
ビット変化検出部に、前記通信実行部が通信相手から受信する通信データのビット変化を検出させるビット変化検出ステップと、
タイマに、前記ビット変化検出部の検出するビット変化位置によって規定されるローパルスの継続期間であるローパルス幅を計測させる時間計測ステップと、
制御部に、前記タイマによって計測されるローパルス幅に応じて、前記通信データの通信速度判定処理を実行し、判定結果に応じて通信モードの変更を行わせる制御ステップを有し、
前記制御ステップは、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅であることの確認に基づいて、前記通信データの通信速度が低速通信であると判定させるステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信装置、および通信制御方法、並びにプログラムに関する。さらに詳細には、調歩同期方式によるシリアル通信を行うデータ通信装置、および通信制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
シリアル通信によるデータ通信の通信方式として調歩同期方式が知られている。調歩同期方式に従ったシリアルデータ通信の概要について図１を参照して説明する。図１には、
（ａ）調歩同期方式に従ったシリアルデータ通信を行う通信構成例、
（ｂ）通信データのデータ構成例、
これらの一例を示している。
【０００３】
例えば、図１（ａ）に示す通信部（マスタ）１０と通信部（スレーブ）２０との間でシリアルデータ通信が行われる。通信部（マスタ）１０と通信部（スレーブ）２０の各々は、それぞれ送受信端子を有し、送受信端子を介してデータ送信またはデータ受信を行う。
【０００４】
通信部（マスタ）１０と通信部（スレーブ）２０との間で転送される通信データは、図１（ｂ）に示すように、スタートビットとストップビットとの間に送信対象とするデータを設定した構成となる。具体的には、例えば、
スタートビット＝１ビット
データビット=８ビット
ストップビット＝１ビット
このような構成からなる通信データを送信側で生成して受信側に出力される。このようにデータビットを１バイト（８ビット）単位でスタートビットとストップビットで挟む設定とした通信データを生成して送信する。
【０００５】
なお、図１（ｂ）に示す通信データは、送信データを構成するデータ量に応じて連続して転送されることになる。例えば１６バイトデータを送信する場合は、図１（ｂ）に示す通信データが１６個設定されて所定間隔で送信される。データ受信側では、スタートビットとストップビットとの間にあるデータを受信対象のデータとして識別することができる。例えばスタートビットは１ビットの［Ｌｏｗ（０）］、ストップビットは１ビットの［Ｈｉｇｈ（１）］と規定する。受信側ではこのルールに従ってスタート／ストップビットを識別して、その間のデータを取得して解析することができる。
【０００６】
なお、図１（ｂ）に示す例は、スタート／ストップビット間に８ビットのデータビットを設定した例であるが、スタート／ストップビット間に設定するデータは８ビットのデータビットに限るものではない。例えば８ビットデータにさらにエラー訂正用のパリティビットを付加する構成なども可能である。
【０００７】
なお、データ受信側においてスタート／ストップビットを識別するためには、１ビット幅についての情報が必要となる。１ビット幅はデータ送受信双方において一致した認識を持つことが必要となる。データ受信側ではクロックを用いて１ビット幅を検出し、上記の手法に従ってデータの取得を行うことができる。
【０００８】
１ビットの幅は様々な設定が可能である。１ビット幅を短い時間に設定すれば通信速度を速めることが可能となる。データ受信側では、スタートビットの１ビット幅を測定することによりデータ通信速度の判定を行う。具体的には、スタートビットの１ビット幅が、受信側で利用するクロック信号の何クロック分に相当するかをカウントする。
【０００９】
なお、シリアルデータ通信における通信速度は、１秒あたりのビット数（ｂｐｓ：ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）として規定されるボーレート（Ｂａｕｄ  Ｒａｔｅ）で表現されることが多い。データ送信側とデータ受信側では同じボーレートでの処理が必要となる。このため、シリアル通信では予め固定されたボーレートを利用するか、または、送信側が、受信側の利用ボーレートを確認して受信側のボーレートに併せて送信データを生成して送信する処理が行われる。
【００１０】
送信側が受信側の利用ボーレートを確認する処理は例えば以下の処理によって行われる。まず、送信側が複数のボーレートで試験的な送信を実行し、受信側からの応答の有無を確認する。送信側は受信側からの応答があったボーレートを受信側で利用可能なボーレートであると判断する。送信側は、そのボーレートでデータの本送信を行う。このような事前処理を行なえば、データ送受信両サイドで統一したボーレートでの処理が可能となる。
【００１１】
データ受信側では、スタートビットの１ビット幅に相当するクロック数を判定し、その後のデータビットは、そのクロック数を基準として、各ビットの（１／０）判定を行う。従って、正確なデータの送受信のためには、スタートビットの１ビット幅を正確に計測することが必要となる。
【００１２】
しかし、図１（ｂ）に示すように、スタートビットとデータビットとは連続して設定されており、スタートビットとデータビットの明確な区別ができない場合がある。例えば、スタートビットが１ビットの［Ｌｏｗ（０）］として設定されている場合、その直後のデータビットの最初のビットのビット値がスタートビットのビット値［Ｌｏｗ（０）］と同じ［Ｌｏｗ（０）］になった場合、スタートビットとのデータビットの境界判別が困難となる。このような場合に１ビット幅の計測が困難になる。
【００１３】
このような問題を解決する手法を開示した従来技術として、例えば特許文献１（特開２００７−２５９０９４号公報）がある。特許文献１はスタートビットを２ビットの交番データ、すなわち［１０］または［０１］の２ビット構成としている。この構成により、受信側ではスタートビットに含まれるパルスの立ち下がりと立ち上がりの双方を確実に検出することが可能となり、精度の高いビット幅検出を行うことを可能としている。
【００１４】
また、特許文献２（特開２００１−１６８８５３号公報）では、ビット幅計測用の特別のコマンドを用意して、受信側ではこのコマンドを利用してスタートビットのビット幅の計測を行う構成としている。
【００１５】
このような従来技術の構成によって１ビット幅の計測を高精度に行うことは可能となる。しかし、特許文献１の手法では、スタートビットに２ビットを使用することになり、転送データに対するスタートビットの占有率が高まり、結果としてデータ送信レートが低下してしまうという問題がある。
【００１６】
また、特許文献２の手法では、事前に特別のコマンドの送受信を行なって計測を行うことが必要であり、処理効率が低下するという問題がある。また、データ送信側で通信速度、すなわちボーレートの変更を行った場合、速度切り替え処理の発生ごとに、特別のコマンドを送信して計測を行うことが必要となり、通信速度の切り替えが発生する構成においては著しく処理効率が大きく低下してしまうという問題がある。
【００１７】
【特許文献１】特開２００７−２５９０９４号公報
【特許文献２】特開２００１−１６８８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本願は、例えば上述の問題点に鑑みてなされたものであり、調歩同期方式によるシリアル通信処理を行う構成において、データ送信側で通信速度の切り替えを行った場合でも、データ受信側で正しいビット幅検出による転送データの解析を可能としたデータ通信装置、および通信制御方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の第１の側面は、
調歩同期方式のシリアル通信を実行する通信実行部と、
前記通信実行部が通信相手から受信する通信データのビット変化を検出するビット変化検出部と、
前記ビット変化検出部の検出するビット変化位置によって規定されるローパルスの継続期間であるローパルス幅を計測するタイマと、
前記タイマによって計測されるローパルス幅に応じて、前記通信データの通信速度判定処理を行う制御部を有し、
前記制御部は、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅であることの確認に基づいて、前記通信データの通信速度が低速通信であると判定する構成であるデータ通信装置にある。
【００２０】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、データ通信装置が高速通信モードに設定されている場合に、前記通信データの通信速度が低速通信であると判定した場合、通信モードを低速通信モードに設定する制御を行う構成である。
【００２１】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅でないことの確認に基づいて、前記通信データの通信速度が高速通信であると判定する構成である。
【００２２】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、データ通信装置が低速通信モードに設定されている場合に、前記通信データの通信速度が高速通信であると判定した場合、通信モードを高速通信モードに設定する制御を行う構成である。
【００２３】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、前記ビット変化検出部から、前記通信データ中の信号の立ち下がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を開始させ、前記ビット変化検出部から前記通信データ中の信号の立ち上がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を終了させてローパルス幅情報を取得する構成である。
【００２４】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、前記ビット変化検出部から、前記通信データ中のフレーム先頭のワードに対応するスタートビットの開始位置に対応する信号の立ち下がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を開始させ、前記ビット変化検出部から前記通信データ中の信号の立ち上がり検出情報を入力し、該検出をトリガとして前記タイマによる時間計測を終了させてローパルス幅情報を取得する構成である。
【００２５】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、通信データが高速通信であるか低速通信であるかを判定するためのデータとして、ローパルス幅の複数の値の各々が高速通信または低速通信のいずれであるかを対応付けたテーブルを有し、該テーブルを参照して前記タイマによって計測されるローパルス幅に応じて前記通信データの通信速度判定処理を行う構成である。
【００２６】
さらに、本発明のデータ通信装置の一実施態様において、前記制御部は、前記通信データに含まれるコマンドに応じて、通信速度の切り替え許容モードと禁止モードとの設定変更を行う構成である。
【００２７】
さらに、本発明のデータ通信装置の一実施態様において、前記データ通信装置は、情報処理装置本体に着脱可能な通信部を有するバッテリーであり、前記通信相手との通信処理を実行する構成である。
【００２８】
さらに、本発明のデータ通信装置の一実施態様において、前記通信相手は、バッテリーの装着されるカメラである。
【００２９】
さらに、本発明の第２の側面は、
データ通信装置において実行する通信制御方法であり、
通信実行部が、調歩同期方式のシリアル通信を実行する通信実行ステップと、
ビット変化検出部が、前記通信実行部が通信相手から受信する通信データのビット変化を検出するビット変化検出ステップと、
タイマが、前記ビット変化検出部の検出するビット変化位置によって規定されるローパルスの継続期間であるローパルス幅を計測する時間計測ステップと、
制御部が、前記タイマによって計測されるローパルス幅に応じて、前記通信データの通信速度判定処理を実行し、判定結果に応じて通信モードの変更を行う制御ステップを有し、
前記制御ステップは、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅であることの確認に基づいて、前記通信データの通信速度が低速通信であると判定するステップである通信制御方法にある。
【００３０】
さらに、本発明の第３の側面は、
データ通信装置において通信制御処理を実行させるプログラムであり、
通信実行部に、調歩同期方式のシリアル通信を実行させる通信実行ステップと、
ビット変化検出部に、前記通信実行部が通信相手から受信する通信データのビット変化を検出させるビット変化検出ステップと、
タイマに、前記ビット変化検出部の検出するビット変化位置によって規定されるローパルスの継続期間であるローパルス幅を計測させる時間計測ステップと、
制御部に、前記タイマによって計測されるローパルス幅に応じて、前記通信データの通信速度判定処理を実行し、判定結果に応じて通信モードの変更を行わせる制御ステップを有し、
前記制御ステップは、
前記ローパルス幅が、低速通信データ対応のビット幅相当のローパルス幅であることの確認に基づいて、前記通信データの通信速度が低速通信であると判定させるステップを含むプログラムにある。
【００３１】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３３】
本発明の一実施例構成によれば、調歩同期方式のシリアル通信を実行する通信装置において、通信相手から受信する通信データのビット変化を検出してローパルスの継続期間であるローパルス幅を計測し、計測されたローパルス幅が低速通信データ対応のビット幅相当のローパルス幅であるか否かの判定に基づいて通信データが高速通信であるか低速通信であるかを判定する構成とした。本構成により通信速度が不明の通信相手からの通信データの速度検出が可能となり、相手に合わせた通信速度に切り替えて通信を成立させる制御が可能となる。
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照しながら本発明のデータ通信装置、および通信制御方法、並びにプログラムの詳細について説明する。説明は以下の項目に従って行う。
（１）データ通信システムおよびデータ通信装置の構成例
（２）データ通信装置の実行する通信速度判定処理例１
（３）データ通信装置の実行する通信速度判定処理例２
（４）通信処理の具体例
（５）データ通信装置の処理の詳細
（６）データ通信装置の実行する処理シーケンス
【００３５】
（１）データ通信システムおよびデータ通信装置の構成例
まず、本発明の適用可能なデータ通信システムの概要について説明する。本発明のデータ通信装置は調歩同期方式のシリアル通信を行う。さらに、異なる通信速度の通信データに対する処理を行う構成を持つ。
【００３６】
図２に本発明のデータ通信装置を利用したデータ通信システムの構成例を示す。図２において、本発明のデータ通信装置は、通信部ｂ（スレーブ）２００である。通信部ｂ２００は、通信部ａ１（マスタ）１１０、または通信部ａ２（マスタ）１２０と調歩同期方式のシリアル通信を行う。
【００３７】
通信部ｂ（スレーブ）２００は、通信部ａ１（マスタ）１１０とは通信速度Ａ、例えば高速（８１９２ｂｐｓ）の通信速度での通信を行う。また、通信部ａ２（マスタ）１２０とは、通信速度Ｂ、例えば低速（２０４８ｂｐｓ）の通信速度での通信を行う。
【００３８】
各通信部は例えば情報処理装置の本体とバッテリーによって構成される。具体的には、通信部ａ１（マスタ）１１０と、通信部ａ２（マスタ）１２０はそれぞれ異なるビデオカメラやスチルカメラなどのカメラ本体であり、通信部ｂ（スレーブ）２００はこれらのカメラ本体に装着されるバッテリーである。
【００３９】
バッテリーである通信部ｂ（スレーブ）２００にはＣＰＵ、メモリなどが備えられ、カメラ本体である通信部ａ１（マスタ）１１０、または通信部ａ２（マスタ）１２０との通信を行い、例えばカメラの機種名などの情報をバッテリー内のメモリに記録し、本体からの要求に応じてこれらの記録データの読み出しや書き込みを行う。バッテリーとカメラ本体とは、データ書き込み要求やデータ読み取り要求などのコマンドや、書き込みデータや読み取りデータの送受信をシリアル通信によって行う。通信部ａ１（マスタ）１１０と、通信部ａ２（マスタ）１２０もそれぞれ通信制御などを行うＣＰＵ等からなる制御部を備えている。
【００４０】
バッテリーである通信部ｂ（スレーブ）２００は様々なカメラに装着される可能性がある。図２に示すように、例えば、
通信速度Ａ（８１９２ｂｐｓ）のシリアル通信を実行する機能を持つカメラ本体としての通信部（ホスト）１１０、
通信速度Ｂ（２０４８ｂｐｓ）のシリアル通信を実行する機能を持つカメラ本体としての通信部（ホスト）１２０、
このように異なる通信速度でのシリアル通信を行う通信部と接続して通信を行うことが必要となる。
【００４１】
従って、通信部ｂ（スレーブ）２００は、複数の異なる通信速度のシリアル通信データを受信して解釈することが必要となる。さらに、複数の異なる通信速度のシリアル通信データを送信することも可能な構成であることが要求される。
【００４２】
通信部ｂ（スレーブ）２００は、通信部ｂ（スレーブ）２００に接続された通信部（ホスト）の実行する通信の通信速度を解析し、その通信速度に対応する通信速度でのデータ送信を行い、受信データの解析を行う。すなわち通信速度自動切り替え機能を持つ。
【００４３】
なお、先に説明したようにシリアルデータ通信における通信速度は、１秒あたりのビット数（ｂｐｓ）として規定されるボーレートで表現されることが多い。データ送信側とデータ受信側では同じボーレートでの処理が必要となる。通信部ｂ（スレーブ）２００は、通信部ｂ（スレーブ）２００に接続された通信部（ホスト）の実行する通信のボーレートを解析して、そのボーレートでの受信データの取得、解釈を実行し、そのボーレートでのデータ送信を実行する。
【００４４】
図３に、通信部ｂ２００と、通信部ａ１，１１０または通信部ａ２，１２０との間で実行されるシリアル通信の通信データ例を示す。通信部ｂ２００は、調歩同期方式のシリアル通信を行う。図３には、
（ａ）通信データ例
（ｂ）ワード構成例
これらを示している。
【００４５】
調歩同期方式のシリアル通信では先に説明したように、スタートビットとストップビットとの間に送信対象とするデータを設定して送信が行われる。例えば、
スタートビット＝１ビット
データビット=８ビット
ストップビット＝１ビット
このような構成からなる通信データを１ワード(１ｗｏｒｄ)とする。データ送信側では、このワード単位のデータを生成して受信側に出力する。なお、図３（ａ）に示すように、複数ワード（図ではワード０〜３の４ワード）を１フレーム（１Ｆｒａｍｅ）とする。フレームは１つの通信単位である。
【００４６】
一般的に１線式のシリアル通信では、各ワード（Ｗｏｒｄ）毎に、通信部ａ（マスタ）、または通信部ｂ（スレーブ）側のどちらか一方がデータを出力するかが規定される。しかし、１ワード(１ｗｏｒｄ)は８Ｂｉｔ（１Ｂｙｔｅ）のデータによって構成されており、表現可能なデータ種類は、２８＝２５６パターンのデータのみとなる。単純なコマンドやデータ送受信のみを実行する場合は、このような設定でも通信可能であるが、高機能化したシステムではこの表現データ数では不足する。
【００４７】
このため、複数ワードからなるフレームを１通信単位として設定し、フレーム単位での相互通信を行う。これにより表現できるデータを増やすことが可能となる。なお、フレーム（Ｆｒａｍｅ）の開始位置は、一定時間ローパルス（ＬｏｗＰｕｌｓｅ）が発生しないハイパルス区間以後の最初のローパルス発生位置によって識別することができる。このフレーム最初のローパルスは、フレームの先頭ワードのスタートビットの位置に対応する。
【００４８】
図４を参照して本発明の一実施例に係るデータ通信装置の構成例について説明する。この図４に示すデータ通信装置は、図２に示す通信部ｂ（スレーブ）２００の内部構成である。すなわち通信速度切り替え機能を持つ通信装置である。
【００４９】
通信部ｂ２００は、図４に示すように、通信実行部２１０、割り込み処理部２２０、タイマ２３０、制御部（ＣＰＵ）２４０、ＣＰＵバス２５０を有する。
【００５０】
通信実行部２１０は、出力部２１１、入力部２１２、通信速度設定部２１３を有する。出力部２１１は、シリアル通信データを通信相手（本例では通信部（ホスト））に出力し、入力部２１２は通信相手からのシリアル通信データを入力する。なお、通信データは、先に図３を参照して説明したスタートビット、データビット、ストップビットによって構成されるワードデータである。フレーム単位で出力または入力する。通信速度設定部２１３は、通信相手の通信速度に一致する通信速度の設定を行う。なお、通信実行部２１０は、例えばＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ）等のシリアルインタフェースによって構成される。なお、ＰＩＯを利用した構成とすることも可能である。
【００５１】
割り込み処理部２２０は、通信相手からの送信データを入力し、ビット値（Ｈｉｇｈ／Ｌｏｗ）が変化する部分を検出するビット変化検出部２２１を有する。
タイマ２３０は、制御部２４０の指示により時間計測を行う時間計測部２３１を有する。
【００５２】
制御部２４０は、プログラム実行部としてのＣＰＵを有し、図示しないメモリに格納されたプログラムに従った処理を行い、通信実行部２１０、割り込み制御部２２０、タイマ２３０の処理制御を実行する。なお、制御部２４０は、通信速度算出部２４１を有し、通信相手からの入力データの通信速度の算出処理を実行する。
ＣＰＵバス２５０は、通信実行部２１０、割り込み制御部２２０、タイマ２３０、制御部２５０間のデータやコマンド転送に利用されるバスである。
【００５３】
図に示す記号Ａ〜Ｎは、各構成部間で入出力されるデータやコマンドなどの信号である。以下、信号Ａ〜Ｎの意味について示す。
【００５４】
信号Ａは、シリアル出力データを示す信号であり、制御部２４０が生成し、通信実行部２１０に入力され、出力部２１１を介して外部に出力される。
信号Ｂは、シリアル入力データを示す信号であり、外部の通信相手から入力するシリアル通信データであり、入力部２１２を介して制御部２４０に入力される。
【００５５】
信号Ｃは、制御部２４０の通信速度算出部２４１の算出した通信速度、すなわち、通信相手から入力するシリアル通信データの解析によって算出した通信相手が適用している通信速度情報である。この通信速度情報が、通信実行部２１０の通信速度設定部２１３に提供される。通信速度設定部２１３は、制御部２４０から入力する通信速度に一致する通信速度でシリアル通信データの出力を行い、入力する通信データの処理を行うように通信実行部２１０を設定する。
【００５６】
信号Ｄは、制御部２４０から設定された通信速度の基準となる制御信号であり、出力部２１１、入力部２１２に提供される。出力部２１１はこの制御信号に従って出力するシリアル通信データのパルス幅の決定を行う。入力部２１２は、この制御信号に従って、通信相手から入力する通信データの解析を行う。例えばスタートビット、データビット、ストップビットなどの区別を行う。
【００５７】
信号Ｅは、シリアル通信の送信信号である。
信号Ｆは、シリアル通信の受信信号である。
これら信号Ｅ，Ｆは、先に図３を参照して説明したスタートビット、データビット、ストップビットによって構成されるワードを含む通信データである。さらに、１つ以上のワードからなるフレームが設定された通信データである場合もある。
【００５８】
信号Ｇは、制御部２４０がプログラムに従って設定する信号であり、割り込み処理部２２０のビット変化検出部２２１において検出すべき信号変化の態様を決定する信号である。具体的には、ビット変化がローからハイになる立ち上がり部を検出するか、ビット変化がハイからローになる立ち下がり部を検出するかを設定する信号である。なお、この制御信号を利用した具体的な処理シーケンスについては後述する。
【００５９】
信号Ｈは、シリアル通信の割り込み処理部２２０のビット変化検出部２２１においてビット変化部が検出された場合に、制御部２４０に対して出力する割り込み信号である。この割り込み信号が制御部２４０に入力に応じて、制御部２４０はタイマ２３０における時間計測の開始または終了させる制御などを行う。
【００６０】
信号Ｉは、通信相手からのシリアル通信の受信信号である。割り込み処理部２２０のビット変化検出部２２１は、通信相手からのシリアル通信データを入力して、ビット変化がローからハイになる立ち上がり部、またはビット変化がハイからローになる立ち下がり部を検出する処理を行う。
【００６１】
信号Ｊは、制御部２４０からタイマ２３０の時間計測部２３１に入力される信号であり、時間計測の開始または終了を指示する制御信号である。
信号Ｋは、タイマ２３０の時間計測部２３１の計測した時間の読み出しデータである。制御部２４０の指示に応じて読み出される。
【００６２】
信号Ｌは、割り込み処理部２２０の出力する信号Ｈ（割り込み信号）と、タイマ２３０の出力する信号Ｋ（時間計測部２３１の計測した時間）に対応する制御部２４０に対する入力信号である。制御部２４０の通信速度算出部２４１は、これらの入力情報を利用して、通信相手から入力するシリアル通信データの通信速度の算出を行う。
【００６３】
信号Ｍは、制御部の出力信号であり、以下の信号（Ｍ１）〜（Ｍ３）が含まれる。
（Ｍ１）制御部２４０の通信速度算出部２４１の算出した通信速度情報（通信実行部２１０に対する入力信号Ｃに相当する）
（Ｍ２）制御部２４０がプログラムに従って設定した信号であり、割り込み処理部２２０のビット変化検出部２２１において検出すべき信号変化の態様（ハイからローまたはローからハイ）を決定する信号（割り込み処理部２２０に対する入力信号Ｇに相当する）
（Ｍ３）制御部２４０からタイマ２３０の時間計測部２３１に出力される信号であり、時間計測の開始または終了を指示する制御信号（タイマ２３０に対する入力信号Ｊに相当する）
なお、各構成部間の信号はＣＰＵバス２５０を介して転送される。
【００６４】
（２）データ通信装置の実行する通信速度判定処理例１
次に、図５を参照して、データ通信装置の実行する通信速度判定処理例１について説明する。すなわち、通信部ｂ２００の実行する通信速度判定処理である。通信部ｂ２００は通信相手から入力するシリアル通信データの解析を実行して受信データの通信速度を算出する。
【００６５】
通信部ｂ２００は、受信データの通信速度を算出した後、さらに、送信データの通信速度を受信データの通信速度に合わせた速度に設定する。さらに、通信相手から入力する通信データの解析に際しても、その通信速度に対応したビット幅でのスタートビット、データビットなどの判定を行い通信速度に適合した正確なデータ取得を行う。
【００６６】
通信部ｂ２００は、複数の通信速度での通信が可能な構成であり、通信相手から入力するシリアル通信データの通信速度を解析し、その通信速度での処理、すなわちデータ送信処理および受信データの解析を行う自動速度切り替え処理を実行する構成を持つ。
【００６７】
本処理例では、受信データの通信速度算出処理は１フレーム単位で実行する。例えば図５（ａ）にはワード０〜ワード３の４ワードからなる１フレームを示している。
ワード０のスタートビット３０１の立ち下がり（ハイからローへの変化点）を基点に、次に発生するパルスの立ち上がり（ローからハイへの変化ビット）までの時間を計測する。
【００６８】
図４に示す割り込み処理部２２０のビット変化検出部２２１が、受信データの立ち下がりや立ち上がりなどのビット変化を検出し検出情報が制御部２４０へ伝達され、これをトリガとして制御部２４０の制御の下でタイマ２３０の時間計測部２３１によって時間計測が行われる。
【００６９】
図５（ｂ）に通信速度解析例を示す。１ワードは、
１ビットのスタートビット（ロー（０））、
８ビットのデータビット、
１ビットのストップビット（ハイ（１））、
これらのビットデータによって構成される。
【００７０】
なお、ここで説明する処理例は、通信相手から送信されて入力するシリアル通信データが高速（８１９２ｂｐｓ）通信である場合と、その１／４の速度の低速（２０４８ｂｐｓ）通信である場合のいずれかであり、これらのどちらの通信速度であるかを判定する処理例である。この判定処理は、制御部２４０の通信速度算出部２４１の処理として行われる。
【００７１】
図５の［（ｂ１）通信データ例］に示すように、通信相手から入力するシリアル通信データが高速（８１９２ｂｐｓ）である場合の８ビットの１ワードに相当するデータが、低速（２０４８ｂｐｓ）通信である場合にはスタートビットと、データビット部の１ビット分のデータ領域しか含まれないことになる。
【００７２】
８ビットのデータビットは多くの場合、ロー（０）とハイ（１）の混在するビットデータである。従って、パルスの立ち上がり（ローからハイへの変化ビット）はデータビットの１〜８ビットのいずれかで発生する可能性が高い。この場合、時間計測は、データビットの最初のハイ（１）までの時間となり、８種類の計測時間が発生する可能性がある。さらに、８ビットのデータビットが全てローである場合は、ストップビットによる立ち上がりまでの時間が計測される。
【００７３】
なお、初期的には、通信先からの入力データは高速（８１９２ｂｐｓ）通信であると仮定してタイマによる計測が開始される。
図５の［（ｂ２）ローパルス幅（ローパルス継続時間）］には、高速通信（８１９２ｂｐｓ）と仮定した場合のデータビットの１〜８ビットが最初の立ち上がりとなる場合（Ａ〜Ｈ）と、およびストップビットが最初の立ち上がりとなる場合（Ｉ）、さらに高速通信（８１９２ｂｐｓ）におけるストップビット位置より先に最初の立ち上がりが発生する場合（Ｊ）についての計測時間を示している。
【００７４】
なお、図に示すＡ〜Ｉの各区間は、高速通信（８１９２ｂｐｓ）と仮定した場合のデータビットの１〜８ビットの切り替わり位置を中心とした１ビット幅分とする。
【００７５】
図５の［（ｂ３）判定結果］はこれらの図５（ｂ２）に示す計測時間が計測された場合の判定結果を示している。判定結果には、通信相手から入力するシリアル通信データの通信速度が高速（８１９２ｂｐｓ）であるか低速（２０４８ｂｐｓ）であるか、さらに、これらの判断結果に基づくデータビットの構成を示している。例えば制御部２４０のメモリには、この判定結果を得るためのテーブルが格納されている。すなわち、通信データが高速通信であるか低速通信であるかを判定するためのデータとして、ローパルス幅の複数の値の各々が高速通信または低速通信のいずれであるかを対応付けたテーブルを格納し、制御部２４０は、このテーブルを参照してタイマによって計測されるローパルス幅に応じて通信データの通信速度判定処理を行う。
【００７６】
図５（ｂ３）の判定結果には上から９つのエントリを示しているが、これらは、図５（ｂ２）のタイマ計測時間（Ａ〜Ｊ）に対応している。すなわち、ワード０のスタートビット３０１の立ち下がり（ハイからローへの変化点）からのローパルス幅（ローパルス継続時間）が図５（ｂ２）に示すＡ〜Ｊの各々の場合について、以下のような判定を行う。
【００７７】
ローパルス幅（ローパルス継続時間）＝Ａ
これは、高速通信のデータビットの第１ビット位置（ビット０）でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［１＊＊＊＊＊＊＊］である。なお、［＊］は０または１を示す。
【００７８】
ローパルス幅（ローパルス継続時間）＝Ｂ
これは、高速通信のデータビットの第２ビット位置（ビット１）でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［０１＊＊＊＊＊＊］である。
【００７９】
ローパルス幅（ローパルス継続時間）＝Ｃ
これは、高速通信のデータビットの第３ビット位置（ビット２）でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［００１＊＊＊＊＊］である。
【００８０】
ローパルス幅（ローパルス継続時間）＝Ｄ
これは、高速通信のデータビットの第４ビット位置（ビット３）でローからハイに変化した場合に対応する。
また、これは、低速通信のデータビットの第１ビット位置（ビット０）でローからハイに変化した場合に対応する。
この場合は、通信速度は低速（２０４８ｂｐｓ）であると判定する。
データビットは［１＊＊＊＊＊＊＊］である。
【００８１】
ローパルス幅（ローパルス継続時間）＝Ｅ
これは、高速通信のデータビットの第５ビット位置（ビット４）でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［００００１＊＊＊］である。
【００８２】
ローパルス幅（ローパルス継続時間）＝Ｆ
これは、高速通信のデータビットの第６ビット位置（ビット５）でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［０００００１＊＊］である。
【００８３】
ローパルス幅（ローパルス継続時間）＝Ｇ
これは、高速通信のデータビットの第７ビット位置（ビット６）でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［００００００１＊］である。
【００８４】
ローパルス幅（ローパルス継続時間）＝Ｈ
これは、高速通信のデータビットの第８ビット位置（ビット７）でローからハイに変化した場合に対応する。
また、これは、低速通信のデータビットの第２ビット位置（ビット１）でローからハイに変化した場合に対応する。
この場合は、通信速度は低速（２０４８ｂｐｓ）であると判定する。
データビットは［０１＊＊＊＊＊＊］である。
【００８５】
ローパルス幅（ローパルス継続時間）＝Ｉ
これは、高速通信のストップビット位置でローからハイに変化した場合に対応する。
この場合は、通信速度は高速（８１９２ｂｐｓ）であると判定する。
データビットは［００００００００］である。
【００８６】
ローパルス幅（ローパルス継続時間）＝Ｊ
これは、高速通信のストップビット位置までにローからハイに変化しない場合に対応する。
この場合は、通信速度は低速（２０４８ｂｐｓ）であると判定する。
データビットは不明である。
【００８７】
このように、フレームの最初のワード０のスタートビットの立ち下がり（ハイからローへの変化点）からのローパルス幅（ローパルス継続時間）が、
高速（８１９２ｂｐｓ）通信における第１〜第３ビット（ビット０〜２）、
高速（８１９２ｂｐｓ）通信における第５〜第７ビット（ビット４〜６）、
高速（８１９２ｂｐｓ）通信におけるストップビット、
これらの位置である場合は、通信速度は高速（８１９２ｂｐｓ）通信であると判定する。
【００８８】
これら以外の場合は、低速（２０４８ｂｐｓ）通信であると判定する。すなわち、フレームの最初のワード０のスタートビットの立ち下がり（ハイからローへの変化点）からのローパルス幅（ローパルス継続時間）が、
高速（８１９２ｂｐｓ）通信における第４ビット（ビット３）、
高速（８１９２ｂｐｓ）通信における第８ビット（ビット７）、
高速（８１９２ｂｐｓ）通信におけるストップビット位置を越える場合、
これらの位置である場合は、通信速度は低速（２０４８ｂｐｓ）通信であると判定する。
【００８９】
この処理を確実に行うため、ワードに設定される可能性のあるデータビット中、以下の２つのパターンからなるデータ、
［０００１＊＊＊＊］
［０００００００１］
これらのデータはフレーム最初のワード（ワード０）では利用しない設定とする。あるいは無効データとして処理を行う。
【００９０】
通信部ｂ２００は、このように通信相手から入力するフレームの最初の立ち下がりからのローパルス継続時間を計測して通信データの通信速度を解析する。なお、初期設定として通信速度は高速（８１９２ｂｐｓ）であると仮定し、上記の計測によって、低速（２０４８ｂｐｓ）であると判定された場合は、低速モードへの切り替えを行う。すなわち、送信データを低速（２０４８ｂｐｓ）に切り替え、受信データの解析も低速（２０４８ｂｐｓ）対応の処理に切り替える処理を行うことになる。
【００９１】
本処理例では、通信部ｂ２００は、フレームの最初のワードの最初の立ち下がりからのローパルス継続時間を計測し、計測されたローパルス幅が高速（８１９２ｂｐｓ）通信にのみ発生するローパルス幅である場合は、高速モードでの処理、すなわち高速（８１９２ｂｐｓ）通信対応の設定とし、計測されたローパルス幅が低速（２０４８ｂｐｓ）通信に発生するローパルス幅である場合は、低速モードへの切り替え、すなわち低速（２０４８ｂｐｓ）通信対応の設定とする処理を行う。
【００９２】
なお、高速モード、すなわち高速（８１９２ｂｐｓ）通信対応の設定とは、送信データを高速（８１９２ｂｐｓ）通信データとして構成して送信し、受信データの処理も高速（８１９２ｂｐｓ）通信データに対応するビット幅での処理を行う設定である。低速モード、すなわち低速（２０４８ｂｐｓ）通信対応の設定とは、送信データを低速（２０４８ｂｐｓ）通信データとして構成して送信し、受信データの処理も低速（２０４８ｂｐｓ）通信データに対応するビット幅での処理を行う設定である。
【００９３】
先に説明した従来技術、すなわち特許文献１（特開２００７−２５９０９４号公報）、あるいは特許文献２（特開２００１−１６８８５３号公報）では、いずれも１ビットまたは２ビットからなるスタートビットのビット幅計測により通信速度の判定を行う構成である。これに対して、本願発明は、スタートビットから始まるローパルスの継続時間を計測し、この計測時間に応じて通信速度の判定を行う構成である。
【００９４】
特許文献１や特許文献２の処理では、スタートビットの最後のビット値とデータビットの最初のビット値が等しくなり正確な速度検出が困難になるのを避けるために、スタートビットの最後のビット値と等しい値をデータビットの最初のビットとして利用しない設定とするなどの工夫が必要となる。この場合８ビットのデータは実質的に７ビットのデータとしてしか利用できない。これは、結果として、２５６種類の８ビットデータ中、半分の１２８種類のデータが利用できないことに等しい。
【００９５】
これに対して、本発明の構成では、前述したように、利用しないデータビットは、
（ａ）［０００１＊＊＊＊］
（ｂ）［０００００００１］
これらの２つのパターンのデータである。上記データ（ａ）は全部で１６種類であり、本発明の処理で利用できないデータは２５６種類の８ビットデータ中、１６＋１＝１７種類のみとなる。このように本発明の構成を適用することで、より多くのデータ構成を有効に利用可能となる。
【００９６】
（３）データ通信装置の実行する通信速度判定処理例２
図５を参照して説明した通信速度判定処理例１は、フレームを構成する最初のワード（ワード０）のみを解析対象とした処理例である。しかし、上述の通信速度判定処理例１では、ワード０を解析対象とした通信速度判定処理に失敗した場合、次のフレームのワード０まで待って、再度解析を行うことが必要となる。
【００９７】
例えば送信側が誤って禁止されたデータ、すなわち、
（ａ）［０００１＊＊＊＊］
（ｂ）［０００００００１］
これらのパターンのデータを送信した場合や、信号線にノイズが発生して解析に失敗した場合などにおいて、受信データに基づく通信速度判定処理を行う通信部ｂ２００は誤った通信速度を判定結果としてしまう場合がある。
【００９８】
このような場合、通信部ｂ２００は通信データを高速（８１９２ｂｐｓ）モードから低速（２０４８ｂｐｓ）モードに切り替えてしまう。しかし、通信相手からの通信データが実際は、高速（８１９２ｂｐｓ）であるので、通信部ｂ２００は、結果としてデータ解釈ができずエラーとなってしまう。このエラーが発生した後、再度速度判定処理を行うことになる。しかし、この結果、解釈できない無駄な通信データが多く発生することになり処理効率が低下してしまう。
【００９９】
以下に説明する処理例は、このような問題を解決するものである。以下に説明する処理例ではフレームを構成する最初のワード（ワード０）のみならず、全てのワードにおけるローパルス幅（ローパルス継続時間）を計測する。全てのワードにおけるローパルス幅（ローパルス継続時間）の計測結果に基づいて通信速度の判定を行う。
【０１００】
本処理例について図６を参照して説明する。図６には、
（ａ）ワード単位のローパルス幅検出例
（ｂ）速度検出、切り替え処理例
これらの説明図を示している。
【０１０１】
本処理例では、図６（ａ）に示すように、フレームの先頭ワード（ワード０）のみならず、フレームを構成するすべてのワードについてローパルス幅、すなわちローパルスの継続時間を計測する。
【０１０２】
図６（ａ）に示す例において、（ａ１）は、通信部ｂ２００が受信するデータを構成する１つのワードを示している。初期設定では、受信データは高速（８１９２ｂｐｓ）通信であると仮定した処理を行う。図６（ａ１）は、高速（８１９２ｂｐｓ）通信である場合の１ワードのスタートビット、データビットの構成を示している。
【０１０３】
本処理例では、このワードに対して、すべてのローパルス幅、すなわちローパルス幅（ローパルス継続時間）を計測する。図に示すように、
スタートビットがロー［０］、
データビットが［１１０００１０１］、
このような設定の場合、図６（ａ２）に示すように、ロー［０］パルスのパルス幅として、1〜3の３つの時間が計測される。
1はスタートビット［０］のパルス幅である。
2はデータビット中に発生した高速（８１９２ｂｐｓ）通信と仮定した場合の３ビット幅分のパルス幅である。
3は、データビット中に発生した高速（８１９２ｂｐｓ）通信と仮定した場合の１ビット幅分のパルス幅である。
【０１０４】
図４に示す割り込み処理部２２０のビット変化検出部２２１が、受信データの立ち下がりや立ち上がりなどのビット変化を検出し検出情報が制御部２４０へ伝達され、これをトリガとして制御部２４０の制御の下でタイマ２３０の時間計測部２３１によってパルス幅に対応する時間計測が行われる。
【０１０５】
本処理例では、このようなローパルス幅の計測をすべてのワードに対して実行する。計測したローパルス幅に従って、受信データが高速（８１９２ｂｐｓ）通信であるか低速（２０４８ｂｐｓ）通信であるかを判定する。この判定処理は、制御部２４０の通信速度算出部２４１の処理として行われる。判定処理は、先に説明した図５（ｂ３）に示す判定結果とほぼ同様である。
すなわち、
計測したローパルス幅が、高速（８１９２ｂｐｓ）通信の１〜３ビット幅分、または５〜７ビット幅分である場合は、高速（８１９２ｂｐｓ）通信であると判定する。
計測したローパルス幅が、高速（８１９２ｂｐｓ）通信の４ビット幅分または８ビット幅分（＝低速（２０４８ｂｐｓ）通信の１ビット幅分または２ビット幅分）、またはそれ以上である場合は、低速（２０４８ｂｐｓ）通信であると判定する。
【０１０６】
図６（ｂ）には、ワード０〜ワード３の４ワードからなる１フレームデータを受信した場合の通信部ｂ２００における処理例を示している。
【０１０７】
通信部ｂ２００は、ステップＳ１１〜Ｓ１４の順に処理を行う。
まずステップＳ１１において、フレーム先頭のワード０を処理対象としてローパルス幅の計測を行う。
ここで、ワード０に含まれるデータビットは［０００１＊＊＊＊］の禁止パターンのデータであったとする。通信部ｂ２００は、先に説明した処理例１と同様のローパルス幅計測によって、
高速（８１９２ｂｐｓ）通信の４ビット幅分＝低速（２０４８ｂｐｓ）通信の１ビット幅分のローパルス幅を計測することになる。この結果、先に説明した図５（ｂ）の判定処理に従って、この受信データは高速（８１９２ｂｐｓ）通信ではなく低速（２０４８ｂｐｓ）通信であると判定する。受信部は、この時点で高速（８１９２ｂｐｓ）通信に対応する処理設定から、低速（２０４８ｂｐｓ）通信に対応する処理設定に変更する。
【０１０８】
次にステップＳ１２において、通信部ｂ２００は、ワード１のローパルス幅計測を行う。ここでは、図に示すように、
高速（８１９２ｂｐｓ）通信の２ビット幅分
高速（８１９２ｂｐｓ）通信の１ビット幅分
高速（８１９２ｂｐｓ）通信の１ビット幅分
これらの３つのローパルス幅が計測される。
これらの３つのローパルス幅は、すべて高速（８１９２ｂｐｓ）通信であると判定されるパルス幅である。通信部ｂ２００は、この時点で、低速（２０４８ｂｐｓ）通信に対応する処理設定から、高速（８１９２ｂｐｓ）通信に対応する処理設定に変更する。
【０１０９】
次にステップＳ１３において、通信部ｂ２００は、ワード２のローパルス幅計測を行う。ここでは、図に示すように、
高速（８１９２ｂｐｓ）通信の４ビット幅分（＝低速（２０４８ｂｐｓ）通信の１ビット幅分）
このローパルス幅が計測される。このローパルス幅は、低速（２０４８ｂｐｓ）通信であると判定されるパルス幅である。
本処理例では、低速（２０４８ｂｐｓ）通信から高速（８１９２ｂｐｓ）通信への切り替えは、即時実行するが、高速（８１９２ｂｐｓ）通信から低速（２０４８ｂｐｓ）通信への設定変更は、ワード０のスタートビットからのローパルス幅計測時にのみ行う。
従って、この時点では高速（８１９２ｂｐｓ）通信の設定を維持する。
【０１１０】
次にステップＳ１４において、通信部ｂ２００は、ワード３のローパルス幅計測を行う。ここでは、図に示すように、
高速（８１９２ｂｐｓ）通信の１ビット幅分
この１つのローパルス幅が計測される。この１つのローパルス幅は、高速（８１９２ｂｐｓ）通信であると判定されるパルス幅である。通信部ｂ２００は、この時点で設定が高速（８１９２ｂｐｓ）通信であるので、そのまま高速（８１９２ｂｐｓ）通信対応の設定を継続する。なお、この時点で低速（２０４８ｂｐｓ）通信に対応する処理設定がなされている場合は、即座に高速（８１９２ｂｐｓ）通信に対応する処理設定に変更する。
【０１１１】
このように、本処理例では、すべてのワードにおいてローパルス幅の計測を行い、いずれかのワードにおいて計測されたローパルス幅が高速（８１９２ｂｐｓ）通信にのみ発生するローパルス幅である場合は、通信部ｂ２００は即座に高速モード、すなわち高速（８１９２ｂｐｓ）通信対応の設定に切り替える。具体的には送信データを高速（８１９２ｂｐｓ）通信データとして構成して送信し、受信データの処理も高速（８１９２ｂｐｓ）通信データに対応するビット幅での処理を行う。
【０１１２】
このような処理を行うことで、高速通信を誤って低速通信と判定して設定を変更してしまった場合においても、即座に高速通信の設定に戻すことが可能となる。具体的には、例えばデータ送信側が誤って禁止パターンのデータを送信してしまった場合やノイズ等によって受信データの解析処理にエラーが発生し、誤って低速通信データであると判定した場合などに、即座に高速通信データ対応の設定に戻すことが可能となる。
【０１１３】
なお、本処理例２においても、処理例１と同様、
［０００１＊＊＊＊］
［０００００００１］
これらのデータはフレーム最初のワード（ワード０）では利用しない設定とする。あるいは無効データとして処理を行う。フレームを構成する２番目以降のワードには、これらのデータの利用を許容してもよい。すなわちデータ制限を行なわない設定としてよい。
【０１１４】
ワード１〜３においてデータ制限を行わない場合、高速（８１９２ｂｐｓ）通信データとしても低速（２０４８ｂｐｓ）通信データとしても解釈可能なワード構成は、スタートビット［Ｓ＝０］とした場合、［Ｓ０００１１１１１］、［Ｓ０００００００１］、［Ｓ０００１００００］、これら３パターンしかない。
【０１１５】
これらのデータビット構成がワード１〜ワード３において発生した場合は、通信部ｂ２００は、低速通信データであると判定することになるが、この判定のみでは、通信部の設定を高速通信モードから低速通信モードに変更することはない。本処理例では、高速通信モードから低速通信モードに変更する処理は、フレーム最初のワードの先頭のローパルス幅の計測に基づく場合に制限しているからである。
【０１１６】
すなわち、次のフレームの最初のワードの先頭のローパルス幅の計測を実行して、そのローパルス幅が図５（ｂ３）の判定に基づいて低速通信である場合に限り、低速通信モードへの変更を行う。しかし、本処理例２においても、処理例１と同様、
［０００１＊＊＊＊］
［０００００００１］
これらのデータはフレーム最初のワード（ワード０）では利用しない設定としているため、高速通信である場合は、禁止データビットの送信や誤った判定がない限り、ここで低速通信であると判定される可能性はない。
【０１１７】
このように、本処理例では、低速通信モードから高速通信モードへの変更は、フレーム途中のワードの検出情報に基づいて即座に行うが、高速モードから低速モードへの変更は、フレーム最初のワードの先頭のローパルス幅の計測に基づいて行う。この処理によって、１つのフレームの先頭ワードで誤って低速通信と解釈され、低速通信モードに誤設定された場合でも同一フレームの後続ワードのローパルス幅計測に基づいて高速通信モードに戻すことが可能であり、次のフレームからは高速通信モードで有効なデータの送受信を行うことが可能となる。
【０１１８】
（４）通信処理の具体例
次に４ワードを１フレームとして設定したシリアルデータ通信処理の具体例について説明する。
【０１１９】
図７に、４ワードを１フレームとして設定したシリアルデータ通信処理の１つの具体例を示す。図７には、
（ａ）フレーム構成例
（ｂ）コマンドに対する処理例
これらの説明図を示している。
【０１２０】
図７（ａ）に示すように１フレームを構成するワード０〜ワード３は、以下のように対応付けされているものとする。
ワード０：制御の方法（コマンド）をデータビットとして格納したワード
ワード１：制御項目をデータビットとして格納したワード
ワード２：制御内容をデータビットとして格納したワード
ワード３：制御結果をデータビットとして格納したワード
【０１２１】
さらに、ワード０に設定されるコマンドは以下の３種類とする。
［００Ｈ］：処理なし（通信系のリセット）
［１０Ｈ］：通信部ａ（マスタ）から通信部ｂ（スレーブ）への制御
［２０Ｈ］：通信部ｂ（スレーブ）から通信部ａ（マスタ）への制御
なお、Ｈは１６進数を示し、
［００Ｈ］＝［００００００００］
［ｈｈＨ］＝［１１１１１１１１］
である。
【０１２２】
図７（ｂ）はこれらのコマンドを含むフレームを受信した通信部ｂ側の処理について示している。
［００Ｈ］以外の定義されているコマンド（Ｃｏｍｍａｎｄ）である［１０Ｈ］または［２０Ｈ］を、通信部ｂが正常に受け付けた場合は、通信速度の自動切り替えを禁止する。すなわち、上述した処理例１または処理例２において説明したパルス幅の計測に基づく通信速度の判定を停止し、判定結果に基づく通信モードの切り替えを禁止する。
【０１２３】
実際に通信部ａ側は、低速（２０４８ｂｐｓ）通信、または高速（８１９２ｂｐｓ）通信のいずれかの通信を行うため、正常にコマンドを通信部ｂ側が受け付けた場合は、双方が共通する通信モードでデータ送受信が成立していることになる。従って、それ以降、通信部ａと通信部ｂの接続が切り離されるまで、通信速度の自動切り替えが不要となり、通信速度を固定させることが必要となる。
【０１２４】
従って、処理の定義されたコマンド［１０Ｈ］または［２０Ｈ］を、通信部ｂが正常に受け付けた場合は、通信速度の自動切り替えを禁止する。
【０１２５】
その他のコマンドの受信が正常に行われた場合と、コマンドが正常に受信できなかった場合は、いずれも通信速度の自動切り替えを許可する。すなわち、上述した処理例１または処理例２において説明したパルス幅計測を実行して通信速度の判定を行い、判定結果に基づく通信モードの切り替えを実行する。
【０１２６】
また、故意に通信部ａ側が通信速度を切り替えようとする場合は、通信部ａは、コマンド［００Ｈ］を通信部ｂに対して送出する。この処理によって、通信部ｂは、通信速度の自動切り替え禁止を解除し、通信部ｂ側の通信速度の自動切り替えが許容される。その後に、通信部ａ側は、切り替えた通信速度で通信を行う。
【０１２７】
通信部ｂは、上述した処理例１または処理例２において説明したパルス幅計測を実行して通信速度の判定を行い、判定結果に基づく通信モードの切り替えを実行する。この処理によって、通信部ａと通信部ｂ側との間で、切り替え後の通信速度での通信が成立することになる。
【０１２８】
図７（ｂ）に示すように、異常受信の場合、すなわち通信部ｂ側が通信を正常に受信できなかった場合も通信速度自動切り替えを許可状態とする。この場合も、上述した処理例１または処理例２において説明したパルス幅計測を実行して通信速度の判定を行い、判定結果に基づく通信モードの切り替え処理を実行する。
【０１２９】
また、通信部ａの入れ替え処理、たとえば図２に示す通信部ｂ２００を通信部ａ１，１１０からはずし、通信部ａ２，１２０に接続する処理、あるいはその逆の処理を想定し、通信部ｂ２００が、予め設定した一定時間通信が行われないことを検出した場合、通信部ｂ２００においてコマンド[００Ｈ]と同様の処理を自動的に行なう。
【０１３０】
すなわち、通信部ｂの通信速度自動切り替えが禁止状態にあった場合でも、通信部ｂが、予め設定した一定時間通信が行われないことを検出した場合、禁止状態を解除し、通信速度自動切り替え許可状態に設定する。この設定によって、新たな通信部ａの新たな通信速度での通信データに対する通信速度判定が行われることになり、異なる通信速度で通信する異なる通信部ａの切り替えに対応可能となる。
【０１３１】
なお、通信速度自動切り替え禁止状態においても、通信部ｂ側の設定されている通信速度と異なる速度の通信データを受信した場合は、通信異常が発生することになる。この場合、通信速度自動切り替え禁止は解除され、上述した処理例１または処理例２において説明したパルス幅計測を実行して通信速度の判定を行い、判定結果に基づく通信モードの切り替え処理が実行される。
【０１３２】
図８〜図１０に具体的な通信処理例を示す。
図８には、以下の（Ａ）〜（Ｄ）の４つの処理例を示している。
（Ａ）高速（８１９２ｂｐｓ）通信に固定した通信処理例
（Ｂ）低速（２０４８ｂｐｓ）通信に固定した通信処理例
（Ｃ）通信部ａからコマンド［００Ｈ］を通信部ｂに出力して、高速（８１９２ｂｐｓ）通信と低速（２０４８ｂｐｓ）通信の切り替えを行う処理例
（Ｄ）通信部ｂが通信速度切り替え禁止状態にある場合、異常受信によって通信速度切り替えを行う処理例
【０１３３】
まず、（Ａ）高速（８１９２ｂｐｓ）通信に固定した通信処理例の場合について説明する。前述したように、通信部ｂの初期設定は、高速（８１９２ｂｐｓ）通信モードにある。従って通信部ａから高速（８１９２ｂｐｓ）通信データを受信した場合、高速（８１９２ｂｐｓ）通信モードで受信データの解析を行う。従って、この場合、先頭フレームから正しい受信データの解析が可能となり、正常受信が可能となる。
【０１３４】
なお、通信部ｂは初期状態として通信速度の自動切り替えが許容されているが、コマンド［１０Ｈ］、または［２０Ｈ］を正常受信したことで、通信速度の自動切り替えが禁止され、その後は、高速（８１９２ｂｐｓ）通信モードでの処理が継続される。
【０１３５】
次に、（Ｂ）低速（２０４８ｂｐｓ）通信に固定した通信処理例の場合について説明する。通信部ｂの初期設定は、高速（８１９２ｂｐｓ）通信モードにある。通信部ｂは初期状態として通信速度の自動切り替えが許容されている。従って通信部ａから低速（２０４８ｂｐｓ）通信データを受信した場合、最初のフレームに対して、上述の処理例１または処理例２により、パルス幅計測を実行して通信速度の判定を行う。
【０１３６】
この場合、最初の受信フレーム４１１は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、２番目以降のフレーム４１２は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１３７】
次に、（Ｃ）通信部ａからコマンド［００Ｈ］を通信部ｂに出力して、高速（８１９２ｂｐｓ）通信と低速（２０４８ｂｐｓ）通信の切り替えを行う処理例について説明する。
【０１３８】
通信部ａは、フレーム４２１，４２２を高速（８１９２ｂｐｓ）通信モードで送信し、フレーム４２２においてコマンド［００Ｈ］を送信する。コマンド［００Ｈ］を受信した通信部ｂは、通信速度の自動切り替えの禁止モードから許容モードへ変更する。
【０１３９】
その後、通信部ａは、通信速度を切り替えて低速（２０４８ｂｐｓ）通信でフレーム４２３以降を送信する。通信部ｂは、低速（２０４８ｂｐｓ）通信で通信部ａが出力した最初のフレーム４２３に対して、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）通信であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。
【０１４０】
この場合、低速（２０４８ｂｐｓ）通信に切り替えた後の最初の受信フレーム４２３は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、２番目以降のフレーム４２４，４２５は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１４１】
さらに、通信部ａは、フレーム４２５においてコマンド［００Ｈ］を送信する。コマンド［００Ｈ］を受信した通信部ｂは、通信速度の自動切り替えの禁止モードから許容モードへ変更する。通信部ａは、再度、通信速度を切り替えて高速（８１９２ｂｐｓ）通信でフレーム４２６以降を送信する。
【０１４２】
通信部ｂは、高速（８１９２ｂｐｓ）通信で通信部ａが出力した最初のフレーム４２６に対して、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、高速（８１９２ｂｐｓ）通信であることを識別して通信モードを高速（８１９２ｂｐｓ）通信モードに切り替える。
【０１４３】
この場合、高速（８１９２ｂｐｓ）通信に切り替えた後の最初の受信フレーム４２６は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、その後のフレーム４２７，４２８は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１４４】
次に、（Ｄ）通信部ｂが通信速度切り替え禁止状態にある場合、異常受信によって通信速度切り替えを行う処理例について説明する。
【０１４５】
フレーム４３１は、高速（８１９２ｂｐｓ）通信フレームであり、通信部ｂは、初期設定が高速（８１９２ｂｐｓ）通信であるので、処理可能となる。その後、通信部ａはコマンド［００］を送信することなしに、突然通信速度の切り替えを行い、低速（２０４８ｂｐｓ）通信モードでフレーム４３２〜４３４を送信する。
【０１４６】
通信部ｂは、フレーム４３１を受信した時点で正常受信状態にあり、通信速度の自動切り替えが禁止状態になっている。しかし、その後の低速（２０４８ｂｐｓ）のフレーム４３２の受信時点で、通信部ｂは高速（８１９２ｂｐｓ）通信モードにあり、フレーム４３２を解析できない。従って、異常受信であると判定し、この時点で通信部ｂは、通信速度の自動切り替えを禁止状態から許容状態に切り替える。その後のフレーム４３３を利用して、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。
【０１４７】
この場合、通信部ａが低速（２０４８ｂｐｓ）通信に切り替えた後の最初の受信フレーム４３２は異常受信となり、また、次のフレーム４３３は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、その後のフレーム４３４は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１４８】
さらに、通信部ａはコマンド［００］を送信することなしに、突然通信速度の切り替えを行い、高速（８１９２ｂｐｓ）通信モードでフレーム４３５〜４３７を送信する。
【０１４９】
通信部ｂは、フレーム４３４を受信した時点で正常受信状態にあり、通信速度の自動切り替えが禁止状態になっている。しかし、その後の高速（８１９２ｂｐｓ）のフレーム４３５の受信時点で、通信部ｂは低速（２０４８ｂｐｓ）通信モードにあり、フレーム４３５を解析できない。従って、異常受信であると判定し、この時点で通信部ｂは、通信速度の自動切り替えを禁止状態から許容状態に切り替える。その後のフレーム４３６を利用して、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、高速（８１９２ｂｐｓ）であることを識別して通信モードを高速（８１９２ｂｐｓ）通信モードに切り替える。
【０１５０】
この場合、通信部ａが高速（８１９２ｂｐｓ）通信に切り替えた後の最初の受信フレーム４３５は異常受信となり、また、次のフレーム４３６は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、その後のフレーム４３７は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１５１】
次に、図９を参照して、通信停止期間が予め設定された閾値時間以上となった場合の処理例について説明する。先に説明したように通信部ｂは予め設定した閾値時間以上、通信停止期間があった場合、通信速度の自動切り替えが禁止状態にある場合、禁止状態から許容状態に切り替える処理を行う。通信部ｂは予め設定した閾値時間以上、通信停止期間があった場合、初期状態に設定される。初期状態は、高速（８１９２ｂｐｓ）通信モードでかつ、通信速度の自動切り替え許容状態である。
【０１５２】
図９に示すマーク４５１は、閾値時間以上の経過を示している。通信部ｂは、このマーク４５１の時点で、通信速度の自動切り替え禁止状態にある場合、禁止状態から許容状態に切り替える処理を行う。
【０１５３】
図９には、以下の（Ａ）〜（Ｄ）の４つの処理例を示している。いずれも閾値時間以上の通信停止状態を含む例である。
（Ａ）高速（８１９２ｂｐｓ）通信に固定した通信処理例
（Ｂ）低速（２０４８ｂｐｓ）通信に固定した通信処理例
（Ｃ）低速（２０４８ｂｐｓ）通信から高速（８１９２ｂｐｓ）通信への切り替え処理例
（Ｄ）高速（８１９２ｂｐｓ）通信から低速（２０４８ｂｐｓ）通信への切り替え処理例
【０１５４】
まず、（Ａ）高速（８１９２ｂｐｓ）通信に固定した通信処理例の場合について説明する。前述したように、通信部ｂの初期設定は、高速（８１９２ｂｐｓ）通信モードにある。従って通信部ａから高速（８１９２ｂｐｓ）通信データを受信した場合、高速（８１９２ｂｐｓ）通信モードで受信データの解析を行う。従って、この場合、先頭フレームから正しい受信データの解析が可能となり、正常受信が可能となる。
【０１５５】
また、通信停止期間が予め設定した閾値以上経過した場合、通信部ｂは初期状態に移行する。初期状態は、高速（８１９２ｂｐｓ）通信モードでかつ、通信速度の自動切り替え許容状態である。従って図９（Ａ）に示すマーク４５１以降において、通信部ｂは初期状態としての高速（８１９２ｂｐｓ）通信モードに設定されており、受信する高速（８１９２ｂｐｓ）通信データは、高速（８１９２ｂｐｓ）通信モードに設定された通信部ｂにおいて正しく受信される。
【０１５６】
次に、（Ｂ）低速（２０４８ｂｐｓ）通信に固定した通信処理例の場合について説明する。通信部ｂの初期設定は、高速（８１９２ｂｐｓ）通信モードにある。通信部ｂは初期状態として通信速度の自動切り替えが許容されている。従って通信部ａから低速（２０４８ｂｐｓ）通信データを受信した場合、最初のフレーム４６１に対して、上述の処理例１または処理例２により、パルス幅計測を実行して通信速度の判定を行う。
【０１５７】
この場合、最初の受信フレーム４６１は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、２番目以降のフレーム４６２は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１５８】
次にマーク４５１として示す予め設定した閾値以上の通信停止期間が発生すると、通信部ｂは初期状態に移行する。初期状態は、高速（８１９２ｂｐｓ）通信モードでかつ、通信速度の自動切り替え許容状態である。従って図９（Ｂ）に示すマーク４５１以降において、通信部ｂは初期状態としての高速（８１９２ｂｐｓ）通信モードに設定され、通信速度の自動切り替え許容状態にある。
【０１５９】
ここで、最初に受信する低速（２０４８ｂｐｓ）通信データとしてのフレーム４６３は通信速度の判定用フレームとされる。上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）通信であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。
【０１６０】
この場合、一定時間経過後の最初の受信フレーム４６３は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、２番目以降のフレーム４６４，４６５は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１６１】
次に、（Ｃ）低速（２０４８ｂｐｓ）通信から高速（８１９２ｂｐｓ）通信への切り替え処理例について説明する。
【０１６２】
通信部ｂの初期状態で最初に受信する低速（２０４８ｂｐｓ）通信のフレーム４７１は通信部ｂにおいて通信速度の判定用フレームとされる。上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）通信であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。フレーム４７２は正常受信できる。
【０１６３】
次にマーク４５１として示す予め設定した閾値以上の通信停止期間が発生すると、通信部ｂは初期状態に移行する。初期状態は、高速（８１９２ｂｐｓ）通信モードでかつ、通信速度の自動切り替え許容状態である。従って図９（Ｃ）に示すマーク４５１以降において、通信部ｂは初期状態としての高速（８１９２ｂｐｓ）通信モードに設定され、通信速度の自動切り替え許容状態にある。
【０１６４】
その後、通信部ａから高速（８１９２ｂｐｓ）通信モードに従ったフレーム４７３〜４７５は通信部ｂにおいて正常受信される。
【０１６５】
次に、（Ｄ）高速（８１９２ｂｐｓ）通信から低速（２０４８ｂｐｓ）通信への切り替え処理例について説明する。
【０１６６】
通信部ｂの初期状態（高速通信モード）で受信する高速（８１９２ｂｐｓ）通信のフレーム４８１，４８２は通信部ｂにおいて正常受信される。
【０１６７】
次にマーク４５１として示す予め設定した閾値以上の通信停止期間が発生すると、通信部ｂは初期状態に移行する。初期状態は、高速（８１９２ｂｐｓ）通信モードでかつ、通信速度の自動切り替え許容状態である。従って図９（Ｄ）に示すマーク４５１以降において、通信部ｂは初期状態としての高速（８１９２ｂｐｓ）通信モードに設定され、通信速度の自動切り替え許容状態にある。
【０１６８】
ここで、最初に受信する低速（２０４８ｂｐｓ）通信データとしてのフレーム４８３は通信速度の判定用フレームとされる。上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）通信であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。
【０１６９】
この場合、一定時間経過後の最初の受信フレーム４８３は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、２番目以降のフレーム４８４は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１７０】
図８、図９では１フレームに４ワードが含まれる場合の処理例である。次に、図１０を参照して１フレーム＝１ワードとした場合の処理例について説明する。
【０１７１】
図１０には、以下の（Ａ）〜（Ｃ）の３つの処理例を示している。いずれも１フレーム＝１ワードとした処理例である。
（Ａ）低速（２０４８ｂｐｓ）通信に固定した通信処理例
（Ｂ）コマンドによる低速（２０４８ｂｐｓ）通信と高速（８１９２ｂｐｓ）通信の切り替え処理例
（Ｃ）コマンドを使用しない低速（２０４８ｂｐｓ）通信と高速（８１９２ｂｐｓ）通信の切り替え処理例
【０１７２】
まず、低速（２０４８ｂｐｓ）通信に固定した通信処理例について説明する。通信部ｂの初期設定は、高速（８１９２ｂｐｓ）通信モードにある。通信部ｂは初期状態として通信速度の自動切り替えが許容されている。従って通信部ａから低速（２０４８ｂｐｓ）通信データを受信した場合、最初のフレーム５１１に対して、上述の処理例１または処理例２により、パルス幅計測を実行して通信速度の判定を行う。なお、本処理例において、１フレームは１ワードのみであり、１ワードを利用して通信速度判定を完了させることになる。
【０１７３】
この場合、最初の受信フレーム５１１は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、２番目以降のフレーム５１２，５１３・・・は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。なお１フレーム＝１ワードである。
【０１７４】
次に、（Ｂ）コマンドによる低速（２０４８ｂｐｓ）通信と高速（８１９２ｂｐｓ）通信の切り替え処理例について説明する。
【０１７５】
通信部ｂの初期状態（高速通信モード）で受信する高速（８１９２ｂｐｓ）通信のフレーム５２１は通信部ｂにおいて正常受信される。通信部ａはその後、高速（８１９２ｂｐｓ）通信の複数フレーム５２２を利用してコマンド［００Ｈ］を通信部ｂに送信する。
【０１７６】
通信部ｂは、コマンド［００Ｈ］受信により、通信速度の自動切り替え禁止状態を解除して許容状態に移行する。その後、通信部ａから低速（２０４８ｂｐｓ）通信のフレーム５２３を受信し、このフレーム５２３を通信速度の判定用フレームとする。このフレーム５２３に対して、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）通信であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。その後は、低速（２０４８ｂｐｓ）通信モードで通信を行う。
【０１７７】
通信部ａは、その後、低速（２０４８ｂｐｓ）通信モードでコマンド［００Ｈ］を通信部ｂに送信する。フレーム５２４等を利用した送信処理である。
【０１７８】
通信部ｂは、コマンド［００Ｈ］受信により、通信速度の自動切り替え禁止状態を解除して許容状態に移行する。その後、通信部ａから高速（８１９２ｂｐｓ）通信のフレーム５２５を受信し、このフレーム５２５を通信速度の判定用フレームとする。このフレーム５２５に対して、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、高速（８１９２ｂｐｓ）通信であることを識別して通信モードを高速（８１９２ｂｐｓ）通信モードに切り替える。その後は、高速（８１９２ｂｐｓ）通信モードで通信を行う。
【０１７９】
次に、（Ｃ）コマンドを使用しない低速（２０４８ｂｐｓ）通信と高速（８１９２ｂｐｓ）通信の切り替え処理例について説明する。
【０１８０】
通信部ｂの初期状態（高速通信モード）で受信する高速（８１９２ｂｐｓ）通信のフレーム５３１他は通信部ｂにおいて正常受信される。通信部ａはその後、コマンドを送信することなく、通信速度切り替えを行い、低速（２０４８ｂｐｓ）通信のフレーム５３２を送信する。
【０１８１】
通信部ｂは、高速通信モードフレーム５３２を受信し異常受信となる。この時点で通信部ｂは、通信速度の自動切り替え禁止状態から許容状態へ切り替える。通信部ｂは、次のフレーム５３３を通信速度の判定用フレームとして、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、低速（２０４８ｂｐｓ）通信であることを識別して通信モードを低速（２０４８ｂｐｓ）通信モードに切り替える。
【０１８２】
この場合、通信部ａが低速（２０４８ｂｐｓ）通信に切り替えた後の最初の受信フレーム５３２は異常受信となり、また、次のフレーム５３３は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、その後のフレーム５３４は、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１８３】
さらに、通信部ａは、フレーム５３５から高速（８１９２ｂｐｓ）通信に切り替えて送信を行う。
【０１８４】
通信部ｂは、低速通信モードで、高速通信フレーム５３５を受信するので、異常受信となる。この時点で通信部ｂは、通信速度の自動切り替え禁止状態から許容状態へ切り替える。通信部ｂは、次のフレーム５３６を通信速度の判定用フレームとして、上述した処理例１または処理例２に従ったパルス幅計測を実行して通信速度の判定を行う。この判定処理によって、高速（８１９２ｂｐｓ）通信であることを識別して通信モードを高速（８１９２ｂｐｓ）通信モードに切り替える。
【０１８５】
この場合、通信部ａが高速（８１９２ｂｐｓ）通信に切り替えた後の最初の受信フレーム５３５は異常受信となり、また、次のフレーム５３６は、通信速度判定処理に適用されることになり、通信データの取得ができず、有効な通信データとして利用できない。しかし、その後のフレームは、判定結果に基づく通信速度の切り替えが実行された後の処理フレームとしての対応が可能となり、有効な通信データとして利用できる。
【０１８６】
（５）データ通信装置の処理の詳細
次に、図１１を参照して通信部ｂ２００の構成要素と各処理との対応関係について説明する。
初期状態においては、通信実行部２１０は、高速（８１９２ｂｐｓ）通信モードでデータを送受信する。すなわち、出力部２１１を介して出力するデータは、高速（８１９２ｂｐｓ）通信に対応したビット幅でワードやフレームを設定したシリアル通信データとして出力する。また入力部２１２を介して入力するシリアル通信データに対しては高速（８１９２ｂｐｓ）通信に対応したビット幅でスタートビット、データビット等を解析し、データを取得する。なお、初期状態で出力部２１１から最初に出力するコマンドは［００Ｈ］とする。
【０１８７】
割り込み処理部２２０におけるビット変化検出部２２１は、初期状態では、立ち下がり検出処理を行い、割込許可状態に設定されている。
タイマ２３０における時間計測部２３１は、初期状態では、停止状態とする。
【０１８８】
この初期状態で、シリアル通信データが通信相手である通信部ａから入力される。入力データは、図１１（ａ）に示す入力データ５０１であるとする。時間［ｔ１］の位置において、信号線がハイからローへ変化する。すなわち立ち下がりを示す。
【０１８９】
この入力データは、図１１に示す経路［Ｉ］によって割り込み処理部２２０のビット変化検出部２２１に入力される。ビット変化検出部２２１は、初期状態で立ち下がり検出を行う設定であり、この時間［ｔ１］の立ち下がりが検出される。検出情報は、経路［Ｈ］，［Ｌ］によって制御部２４０の通信速度算出部２４１に入力される。
【０１９０】
制御部２４０の通信速度算出部２４１は、入力データの立ち下がりの検出をトリガとして、経路［Ｍ］，［Ｊ］を経由して、タイマ２３０の時間計測部２３１に時間計測を開始させる。この処理はローパルス幅の計測処理の開始である。さらに、制御部２４０の通信速度算出部２４１は、この時間計測の開始に併せて割り込み処理部２２０のビット変化検出部２２１の設定を立ち上がり検出／割込許可状態に設定変更する。
【０１９１】
次に、図１１（ａ）に示す時間［ｔ２］の位置において、フレーム最初のワード０（Ｗｏｒｄ０）のデータビットの値に応じて信号線がローからハイへ変化する。すなわち立ち上がりを示す。
【０１９２】
この入力データは、図１１に示す経路［Ｉ］によって割り込み処理部２２０のビット変化検出部２２１に入力される。ビット変化検出部２２１は、この時点で立ち上がり検出を行う設定であり、この時間［ｔ２］の立ち上がりが検出される。検出情報は、経路［Ｈ］，［Ｌ］によって制御部２４０の通信速度算出部２４１に入力される。
【０１９３】
制御部２４０の通信速度算出部２４１は、入力データの立ち上がりの検出をトリガとして、経路［Ｍ］，［Ｊ］を経由して、タイマ２３０の時間計測部２３１に時間計測を終了させる。ここまでの計測時間［Ｔ１２］が、ローパルス幅（ローパルス継続時間）として経路［Ｋ］，［Ｌ］を介して制御部２４０の通信速度算出部２４１に入力される。これがローパルス幅である。さらに、制御部２４０の通信速度算出部２４１は、この時間計測の終了に併せて割り込み処理部２２０のビット変化検出部２２１の設定を立ち下がり検出／割込許可状態に設定変更し、時間計測部の計測時間を０に戻し、再度計測を開始する。この計測は、ハイパルス区間の計測となる。
【０１９４】
制御部２４０の通信速度算出部２４１は、入力した計測時間［Ｔ１２］を、ローパルス幅（ローパルス継続時間）として、入力データの通信速度の判定を行なう。判定処理は、図５（ｂ２）に示すローパルス幅に基づいて、図５（ｂ３）に示す判定結果を得る処理として行われる。
【０１９５】
具体的には、先に説明したように、フレームの最初のワード０のスタートビットの立ち下がり（ハイからローへの変化点）からのローパルス幅（ローパルス継続時間）である［Ｔ１２］が、
高速（８１９２ｂｐｓ）通信における第１〜第３ビット（ビット０〜２）、
高速（８１９２ｂｐｓ）通信における第５〜第７ビット（ビット４〜６）、
高速（８１９２ｂｐｓ）通信におけるストップビット、
これらの位置である場合は、通信速度は高速（８１９２ｂｐｓ）通信であると判定する。
【０１９６】
これら以外の場合は、低速（２０４８ｂｐｓ）通信であると判定する。すなわち、フレームの最初のワード０のスタートビットの立ち下がり（ハイからローへの変化点）からのローパルス幅（ローパルス継続時間）が、
高速（８１９２ｂｐｓ）通信における第４ビット（ビット３）、
高速（８１９２ｂｐｓ）通信における第８ビット（ビット７）、
高速（８１９２ｂｐｓ）通信におけるストップビット位置を越える場合、
これらの位置である場合は、通信速度は低速（２０４８ｂｐｓ）通信であると判定する。
【０１９７】
具体的には、例えば時間［Ｔ１２］が、低速（２０４８ｂｐｓ）の１Ｂｉｔ幅（４８８μｓｅｃ±６０μｓｅｃ）または２Ｂｉｔ幅（９７６μｓｅｃ±６０μｓｅｃ）に入っている場合、通信部ｂが通信速度自動切り替え許可設定にある場合に、通信モードを高速（８１９２ｂｐｓ）通信モードから低速（２０４８ｂｐｓ）通信モードに切り替える処理を行う。切り替え制御は、制御部２４０から経路［Ｍ］，［Ｃ］を経由して通信実行部２１０の通信速度設定部２１３に通知される。
【０１９８】
通信速度設定部２１３は、制御部からの通知に基づいて、通信モードを高速（８１９２ｂｐｓ）通信モードから低速（２０４８ｂｐｓ）通信モードに切り替える処理を行う。具体的には、出力部２１１を介して出力するシリアル通信データを低速（２０４８ｂｐｓ）通信モード対応のそう品データとし、さらに入力部２１２を介して似有力するシリアル通信データの解析を低速（２０４８ｂｐｓ）通信モードでの解析に変更する。
【０１９９】
なお、通信部ｂの現状の設定が低速（２０４８ｂｐｓ）通信モードである場合において、時間［Ｔ１２］、すなわち、フレームの最初のワード０のスタートビットの立ち下がり（ハイからローへの変化点）からのローパルス幅（ローパルス継続時間）である［Ｔ１２］が、
高速（８１９２ｂｐｓ）通信における第１〜第３ビット（ビット０〜２）、
高速（８１９２ｂｐｓ）通信における第５〜第７ビット（ビット４〜６）、
高速（８１９２ｂｐｓ）通信におけるストップビット、
これらの位置である場合は、通信速度は高速（８１９２ｂｐｓ）通信であると判定され、低速（２０４８ｂｐｓ）通信モードから高速（８１９２ｂｐｓ）通信モードへの変更処理が行われる。
【０２００】
さらに、図１１（ａ）に示す時間［ｔ３］の位置において、信号線が立ち下がる。この立ち下がり信号も、経路［Ｉ］によって割り込み処理部２２０のビット変化検出部２２１に入力され、立ち下がりが検出される。検出情報は、経路［Ｈ］，［Ｌ］によって制御部２４０の通信速度算出部２４１に入力される。検出情報は、経路［Ｈ］，［Ｌ］によって制御部２４０の通信速度算出部２４１に入力される。
【０２０１】
制御部２４０の通信速度算出部２４１は、入力データの立ち下がりの検出をトリガとして、経路［Ｍ］，［Ｊ］を経由して、タイマ２３０の時間計測部２３１に時間計測を終了させる。ここまでの計測時間［Ｔ２３］が、ハイパルス幅（ハイパルス継続時間）として経路［Ｋ］，［Ｌ］を介して制御部２４０の通信速度算出部２４１に入力される。さらに、制御部２４０の通信速度算出部２４１は、この時間計測の終了に併せて割り込み処理部２２０のビット変化検出部２２１の設定を立ち上がり検出／割込許可状態に設定変更し、時間計測部の計測時間を０に戻し、再度計測を開始する。この計測は、ローパルス区間の計測となる。
【０２０２】
制御部の通信速度算出部２４１は、ハイパルス幅［Ｔ２３］が、フレーム間隔の基準となる間隔の時間を超えていた場合、このハイパルス区間がフレーム区間であると判定し、この立ち下がりをフレーム最初のワード（ワード０）のスタートビットの立ち下がり位置と判定する。この場合は、この立ち下がりからのローパルス幅に基づく速度判定処理を行うことになる。先に説明した時間［ｔ１］の処理である。
【０２０３】
図１１に示す例では、時間［ｔ３］の立ち下がりは、データビット内の立ち下がりであり、時間［Ｔ２３］はフレーム間隔に対応する時間ではないのでこの解釈はなされない。先に説明した処理例１に従った処理を行う場合、ハイパルス幅の計測のみを繰り返し実行して、そのハイパルス幅がフレーム間隔に対応する時間となった場合に、この立ち下がりからのローパルス幅に基づく速度判定処理を行うことになる。
【０２０４】
ただし、先に説明した処理例２に従った処理を行う場合は、すべてのローパルス幅の計測を行う。この場合、制御部２４０は、タイマ２３０の時間計測部２３１に時間［ｔ３］からのローパルス幅の計測を開始させる。さらに、制御部２４０の通信速度算出部２４１は、この時間計測の開始に併せて割り込み処理部２２０のビット変化検出部２２１の設定を立ち上がり検出／割込許可状態に設定変更する。
【０２０５】
次に、図１１（ａ）に示す時間［ｔ４］の位置において、データビットの値に応じて信号線がローからハイへ変化する。すなわち立ち上がりを示す。この入力データは、図１１に示す経路［Ｉ］によって割り込み処理部２２０のビット変化検出部２２１に入力される。ビット変化検出部２２１は、この時点で立ち上がり検出を行う設定であり、この時間［ｔ２］の立ち上がりが検出される。検出情報は、経路［Ｈ］，［Ｌ］によって制御部２４０の通信速度算出部２４１に入力される。
【０２０６】
制御部２４０の通信速度算出部２４１は、入力データの立ち上がりの検出をトリガとして、経路［Ｍ］，［Ｊ］を経由して、タイマ２３０の時間計測部２３１に時間計測を終了させる。ここまでの計測時間［Ｔ３４］が、ローパルス幅（ローパルス継続時間）として経路［Ｋ］，［Ｌ］を介して制御部２４０の通信速度算出部２４１に入力される。これがローパルス幅である。さらに、制御部２４０の通信速度算出部２４１は、この時間計測の終了に併せて割り込み処理部２２０のビット変化検出部２２１の設定を立ち下がり検出／割込許可状態に設定変更し、時間計測部の計測時間を０に戻し、再度計測を開始する。この計測は、ハイパルス区間の計測となる。
【０２０７】
制御部２４０の通信速度算出部２４１は、入力した計測時間［Ｔ３４］を、ローパルス幅（ローパルス継続時間）として、入力データの通信速度の判定を行なう。判定処理は、図５（ｂ２）に示すローパルス幅に基づいて、図５（ｂ３）に示す判定結果を得る処理として行われる。この処理は先に説明した処理例２に対応する処理である。
【０２０８】
時間［ｔ４］〜［ｔ５］の処理は、時間［ｔ２］〜［ｔ３］の処理と同様であり、時間［ｔ５］〜［ｔ６］の処理は、時間［ｔ３］〜［ｔ４］の処理と同様の処理である。
【０２０９】
時間［ｔ６］〜［ｔ８］の処理は、時間［ｔ２］〜［ｔ３］の処理と同様の処理でありハイパルス幅の計測となる。ただし、時間［ｔ６］〜［ｔ８］のハイパルス幅計測処理において時間［Ｔ６８］がフレーム間隔に相当すると判定された場合、時間［ｔ８］の立ち下がりは、フレーム最初のスタートビットの立ち下がりであると判定され、処理例１，２のいずれでもローパルス幅計測に基づく通信速度判定処理が行われる。
【０２１０】
時間［Ｔ６８］がフレーム間隔に相当しないと判定された場合、時間［ｔ８］の立ち下がりは、フレーム最初のスタートビットの立ち下がりでないと判定され、処理例１ではローパルス幅計測に基づく通信速度判定処理が行われないが、処理例２では、ローパルス幅計測に基づく通信速度判定処理が行われる。
【０２１１】
なお、１ワードの終了時点、例えば時間［ｔ７］において、通信データの正常な受信が実行されたか異常受信となったかの判定が行われる。また正常受信である場合は、シリアル通信データの入力タイミングであるか出力タイミングであるかの判定も実行される。これらの判定処理は制御部２４０において行われる。制御部２４０の判定に基づいて通信実行部２１０に制御信号が出力され、制御に従って通信が実行される。
【０２１２】
また、制御部２４０は、正常受信または異常受信の状態に応じて、通信速度自動切り替えの禁止設定と許容設定の切り替えを行う。この切り替えは、コマンドの種類にも依存する処理であり、先に図７（ｂ）を参照して説明した処理が実行される。
【０２１３】
なお、先に説明したが、通信停止時間が一定時間を越えた場合は、コマンド［００Ｈ］の受信時と同様、通信速度自動切り替えの禁止設定から許容設定への切り替えを行う。通信停止時間の継続時間も制御部２４０の制御の下で、タイマ２３０の時間計測部２３１が計測を行い計測結果が、制御部２４０に通知される。制御部２４０は通信停止時間が一定時間を越えたか否かを判定し、超えたと判定した場合は、コマンド［００Ｈ］の受信時と同様、通信速度自動切り替えの禁止設定から許容設定への切り替えを行う。
【０２１４】
（６）データ通信装置の実行する処理シーケンス
次に、図１２〜図１４に示すフローチャートを参照して通信部ｂ２００の実行する処理シーケンスについて説明する。なお、図１２〜図１４の各フローチャートは以下の処理に対応する。
図１２＝全体処理を説明するフローチャート、
図１３＝通信実行部２１０におけるデータ受信をトリガとして実行する処理を説明するフローチャート、
図１４＝割込み処理部２２０の処理をトリガとして実行する処理を説明するフローチャート、
なお、図１２〜図１４の各処理は制御部２４０の制御の下で行われる。具体的には、制御部２４０のメモリに格納されたプログラムに従って各種の制御コマンドが各処理部、すなわち通信実行部２１０、割込み処理部２２０、タイマ２３０に対して制御部２４０から出力されて各処理部の制御が行われる。
【０２１５】
まず、図１２に示す全体処理を説明するフローチャートについて説明する。図１２のステップＳ１０１〜Ｓ１０３は、通信部ｂ２００が通信処理を開始する際に実行する初期設定ステップである。
【０２１６】
ステップＳ１０１は、通信実行部２１０の初期設定である。ステップＳ１０１では、まず、通信実行部２１０の通信速度設定部２１３が適用する通信速度を高速（８１９２ｂｐｓ）通信モードとする設定を行う。さらに、通信速度の自動切換えを許容した設定とする。
【０２１７】
ステップＳ１０２は、タイマ２３０の初期設定ステップである。タイマ２３０の時間計測部２３１をすべてクリアする。なお、時間計測継続期間の上限についても設定する構成としてもよい。時間計測継続期間が所定の上限値を超えた場合は時間計測を停止し、リセットする処理を自動実行させる設定である。
【０２１８】
ステップＳ１０３は、割り込み処理部２２０の初期設定ステップである。ステップＳ１０３において、割込み処理部２３０のビット変化検出部２３１の検出対象を立ち下がり検出、すなわちハイからローの信号線変化を検出する設定とする。さらに、割込み許可状態に設定する。
【０２１９】
これらの初期設定の後、ステップＳ１０４において通信処理が実行される。すなわち図２に示す通信部ａ１，１１０、通信部ａ２，１２０などとの通信を開始する。ステップＳ１０５では通信処理の終了確認を行い、継続している場合は、ステップＳ１０４の通信処理を継続し、終了判定で処理が終了する。
【０２２０】
次に、図１３に示すフローチャートを参照して、通信処理実行中の通信実行部２１０におけるデータ受信をトリガとして実行する処理シーケンスについて説明する。図１３に示す処理は、通信実行部２１０におけるデータ受信をトリガとして、主に通信実行部２１０と制御部２４０において行われる処理である。
【０２２１】
ステップＳ２０１において、受信したシリアル通信データが正常に受信されたか否かを判定する。これは、例えば受信データからのスタートビット、データビット、ストップビットの検出に成功し、受信データを取得できたか否かによって判定することができる。なお、初期段階において通信部ｂ２００は、高速（８１９２ｂｐｓ）通信モードに設定されているので、通信相手からの受信データが高速（８１９２ｂｐｓ）通信である場合には正常受信することが可能であるが、通信相手からの受信データが低速（２０４８ｂｐｓ）通信である場合には正常受信することができず、異常受信となる。
【０２２２】
正常受信されたと判定されると、ステップＳ２０２に進む。ステップＳ２０２では、正常受信したデータに含まれるコマンドの種類が［００Ｈ］以外のコマンドであるか否かを判定する。
【０２２３】
コマンドは先に図７を参照して説明したように、以下の種類が定義されているものとする。
［００Ｈ］：処理なし（通信系のリセット）
［１０Ｈ］：通信部ａ（マスタ）から通信部ｂ（スレーブ）への制御
［２０Ｈ］：通信部ｂ（スレーブ）から通信部ａ（マスタ）への制御
【０２２４】
コマンド［１０Ｈ］，［２０Ｈ］は、処理が規定され、これらのコマンドの受信時には双方が共通する通信モードでデータ送受信が成立していることになる。従って、それ以降、通信部ａと通信部ｂの接続が切り離されるまで、通信速度の自動切り替えが不要となり、通信速度を固定させる。この処理がステップＳ２０３の処理である。
【０２２５】
ステップＳ２０３において、通信速度の自動切り替えの禁止設定を行い、その後、ステップＳ２０４において受信データに対する処理を行う。例えばコマンドに従った処理などである。
【０２２６】
一方、ステップＳ２０２において、受信コマンドが［００Ｈ］であると判定された場合は、ステップＳ２１２に進む。ステップＳ２１２では、通信速度の自動切り替えの許可設定を行う。この処理は先に図７を参照して説明したコマンド［００Ｈ］に従った処理である。前述したように、例えば通信部ａはコマンド［００Ｈ］を送信した後、通信速度の切り替えを行う。
【０２２７】
さらに、ステップＳ２０１において、受信データの正常受信ができなかったと判定した場合は、ステップＳ２１１に進む。ステップＳ２１１では、通信速度の設定を初期設定である高速（８１９２ｂｐｓ）に設定して、ステップＳ２１２において、通信速度の自動切り替えの許可設定を行う。この後、受信するデータを適用して先に説明した通信速度の判定処理が行われることになる。
【０２２８】
次に、図１４に示すフローチャートを参照して割込み処理部２２０の処理をトリガとして実行する処理シーケンスについて説明する。図１４に示す処理は、割込み処理部２２０のビット変化検出部２２１におけるビット変化検出をトリガとして、主に割り込み処理部２２０と制御部２４０において行われる処理である。
【０２２９】
まず、ステップＳ３０１において、割込み処理部２２０のビット変化検出部２２１において、受信信号から立ち下がり検出または立ち上がり検出がなされたかを判定する。立ち下がり検出がなされた場合はステップＳ３０２に進み、立ち上がり検出がなされた場合はステップＳ３１１に進む。
【０２３０】
受信信号から立ち下がり検出がなされ、ステップＳ３０２に進む。ステップＳ３０２では、立ち下がりまでに計測された時間、この場合はハイパルス幅に対応する時間である。このハイパルス幅と予め保持しているフレーム間隔とを比較する。この処理は制御部２４０において行われる。制御部内のメモリにはフレーム間隔についてのデータが保持されている。ステップＳ３０２の判定がＹｅｓ、すなわち、ハイパルス幅がフレーム間隔以上であると判定した場合は、ステップＳ３０３に進む。
【０２３１】
ステップＳ３０３では、通信速度切り替え用時間計測を開始する。この処理は、ステップＳ３０１において検出した立ち下がりがフレームの最初のワードのスタートビットの立ち下がりであるとの判定に基づく処理である。すなわち先の処理例１、処理例２において説明したワード０のスタートビットの立ち下がりからのローパルス幅の計測開始処理に対応する。
【０２３２】
ステップＳ３０５では、割り込み処理部２２０のビット変化検出部２２１の設定を立ち上がり検出の設定として割り込み許可に設定する。この設定により、割り込み処理部２２０のビット変化検出部２２１は受信信号の立ち上がり（ローパルスの終端）を検出して制御部２４０に通知することになる。
【０２３３】
ステップＳ３０２において、ハイパルス幅に対応する時間がフレーム間隔以上でないと判定した場合は、ステップＳ３０４に進む。ステップＳ３０４では、通信速度修正用時間計測を開始する。この処理は前述した処理例２の処理に対応し、ワードのすべてのローパルス幅の計測処理に対応する処理である。その後、ステップＳ３０５に進み、割り込み処理部２２０のビット変化検出部２２１の設定を立ち上がり検出の設定として割り込み許可に設定する。この設定により、割り込み処理部２２０のビット変化検出部２２１は受信信号の立ち上がり（ローパルスの終端）を検出して制御部２４０に通知することになる。
【０２３４】
ステップＳ３０１において、割込み処理部２２０のビット変化検出部２２１が、受信信号から立ち上がりを検出した場合はステップＳ３１１に進む。ステップＳ３１１では、通信速度切り替え用時間の計測中であるか否かを判定する。すなわちローパルス幅の計測中であるか否かの判定である。
【０２３５】
ステップＳ３１１の判定がＹｅｓ、すなわち、通信速度切り替え用時間の計測中である場合は、ステップＳ３１２に進む。ステップＳ３１２では、計測したローパルス幅が、低速（２０４８ｂｐｓ）通信対応のパルス幅であるか否かを判定する。この判定処理は、先に図５を参照して説明した判定処理に対応する。
【０２３６】
すなわち、計測したローパルス幅が、高速（８１９２ｂｐｓ）通信の１〜３ビット幅分、または５〜７ビット幅分である場合は、高速（８１９２ｂｐｓ）通信であると判定する。計測したローパルス幅が、高速（８１９２ｂｐｓ）通信の４ビット幅分または８ビット幅分（＝低速（２０４８ｂｐｓ）通信の１ビット幅分または２ビット幅分）、またはそれ以上である場合は、低速（２０４８ｂｐｓ）通信であると判定する。
【０２３７】
ステップＳ３１２の判定処理において、低速（２０４８ｂｐｓ）対応のローパルス幅が検出されたと判定した場合は、ステップＳ３１３に進む。ステップＳ３１３では、通信速度を低速（２０４８ｂｐｓ）通信に設定する。
【０２３８】
一方、ステップＳ３１２の判定処理において、低速（２０４８ｂｐｓ）対応のローパルス幅が検出されなかったと判定した場合は、ステップＳ３２１に進む。ステップＳ３２１では、通信速度を高速（８１９２ｂｐｓ）通信に設定する。
【０２３９】
その後、ステップＳ３１４に進み、フレーム間隔用の時間計測を開始する。すなわちハイパルス区間の測定開始である。ステップＳ３１５では、割り込み処理部２２０のビット変化検出部２２１の設定を立ち下がり検出の設定として割り込み許可に設定する。この設定により、割り込み処理部２２０のビット変化検出部２２１は受信信号の立ち下がり（ハイパルスの終端）を検出して制御部２４０に通知することになる。
【０２４０】
一方、ステップＳ３１１における判定がＮｏ、すなわち、通信速度切り替え用時間の計測中でない場合は、ステップＳ３３１に進む。これは、通信速度修正用の時間計測である場合が該当する。すなわち処理例２において説明したフレーム先頭のスタートビットからのローパルス区間以外のローパルス幅の計測期間に対応する。
【０２４１】
ステップＳ３３１では、低速（２０４８ｂｐｓ）以外のパルス幅が検出されたか否かを判定する。判定がＹｅｓの場合は、通信が高速（８１９２ｂｐｓ）通信であると判定し、ステップＳ３３２において、通信速度を高速（８１９２ｂｐｓ）通信に設定する。
【０２４２】
その後、ステップＳ３１４に進み、フレーム間隔用の時間計測を開始する。すなわちハイパルス区間の測定開始である。ステップＳ３１５では、割り込み処理部２２０のビット変化検出部２２１の設定を立ち下がり検出の設定として割り込み許可に設定する。この設定により、割り込み処理部２２０のビット変化検出部２２１は受信信号の立ち下がり（ハイパルスの終端）を検出して制御部２４０に通知することになる。
【０２４３】
このような処理によってローパルス幅、ハイパルス幅が随時計測され、通信速度の自動切り替えが行われることになる。
【０２４４】
本発明のデータ通信装置を適用することで、例えば以下の効果を奏することができる。例えばカメラに接続するバッテリーの通信部として利用することで、高速通信の可能なカメラと低速通信のみが可能なカメラの双方に装着可能なバッテリーを実現することが可能となり、様々な機器に対応可能な１つのバッテリーを生産可能となる。また、上述した本発明に従った自動速度切り替え処理は、現行のハードウェアの構成を大きく変更することなくプログラムの変更で対応可能であり、大きなコストアップを行うことなく対応できる。
【０２４５】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０２４６】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０２４７】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０２４８】
以上、説明したように、本発明の一実施例構成によれば、調歩同期方式のシリアル通信を実行する通信装置において、通信相手から受信する通信データのビット変化を検出してローパルスの継続期間であるローパルス幅を計測し、計測されたローパルス幅が低速通信データ対応のビット幅相当のローパルス幅であるか否かの判定に基づいて通信データが高速通信であるか低速通信であるかを判定する構成とした。本構成により通信速度が不明の通信相手からの通信データの速度検出が可能となり、相手に合わせた通信速度に切り替えて通信を成立させる制御が可能となる。
【図面の簡単な説明】
【０２４９】
【図１】調歩同期方式に従ったシリアルデータ通信の概要について説明する図である。
【図２】本発明のデータ通信装置を利用したデータ通信システムの構成例を示す図である。
【図３】図２に示す通信部ｂ２００と、通信部ａ１，１１０または通信部ａ２，１２０との間で実行されるシリアル通信の通信データ例を示す図である。
【図４】本発明の一実施例に係るデータ通信装置の構成例について説明する図である。
【図５】データ通信装置の実行する通信速度判定処理例１について説明する図である。
【図６】データ通信装置の実行する通信速度判定処理例２について説明する図である。
【図７】４ワードを１フレームとして設定したシリアルデータ通信処理の１つの具体例とコマンド対応の処理例について説明する図である。
【図８】本発明の一実施例に係るデータ通信装置の具体的な通信処理例について説明する図である。
【図９】本発明の一実施例に係るデータ通信装置の具体的な通信処理例について説明する図である。
【図１０】本発明の一実施例に係るデータ通信装置の具体的な通信処理例について説明する図である。
【図１１】本発明に従ったデータ通信装置の処理シーケンスについて説明する図である。
【図１２】本発明に従ったデータ通信装置の処理シーケンスについて説明するフローチャートを示す図である。
【図１３】本発明に従ったデータ通信装置の処理シーケンスについて説明するフローチャートを示す図である。
【図１４】本発明に従ったデータ通信装置の処理シーケンスについて説明するフローチャートを示す図である。
【符号の説明】
【０２５０】
１０  通信部
２０  通信部
１１０，１２０  通信部ａ
２００  通信部ｂ
２１０  通信実行部
２１１  出力部
２１２  入力部
２１３  通信速度設定部
２２０  割り込み処理部
２２１  ビット変化検出部
２３０  タイマ
２３１  時間計測部
２４０  制御部（ＣＰＵ）
２４１  通信速度算出部
２５０  ＣＰＵバス
【図１】
2010124268.tif 000003
【図２】
2010124268.tif 000004
【図３】
2010124268.tif 000005
【図４】
2010124268.tif 000006
【図５】
2010124268.tif 000007
【図６】
2010124268.tif 000008
【図７】
2010124268.tif 000009
【図８】
2010124268.tif 000010
【図９】
2010124268.tif 000011
【図１０】
2010124268.tif 000012
【図１１】
2010124268.tif 000013
【図１２】
2010124268.tif 000014
【図１３】
2010124268.tif 000015
【図１４】
2010124268.tif 000016