(57)【特許請求の範囲】
【請求項１】
所定時間Ｔ２の無通信時間でフレームの区切りを示し、所定時間Ｔ１（＜Ｔ２）の無通信時間を含むフレームを不正フレームとみなす通信方式によりデータを受信する通信コントローラと、ＣＰＵとを備えた通信機器であって、
前記通信コントローラは、
データを受信する受信制御部と、
無通信状態を検出すると前記ＣＰＵからの指示を受けることなく計時を開始し、無通信状態のままＴ１、Ｔ２を計時すると前記ＣＰＵに通知する受信タイマと、
送信バッファを有する送信制御部と、を備え、
前記ＣＰＵは、
前記受信タイマからＴ１計時の通知を受けると、受信中のフレームのエラー検査を行ない、正常であれば当該フレームに関するリプライフレームを前記送信バッファに格納し、
前記受信タイマからＴ１計時の通知を受けた後、Ｔ２計時の通知を受ける前に前記受信制御部がデータを受信した場合に、受信中のフレームを不正とみなし、前記受信タイマからＴ２計時の通知を受けたときに、フレームの区切りとみなし、
前記送信制御部は、前記受信タイマがＴ２を計時すると、前記ＣＰＵからの指示を受けることなく前記送信バッファに格納されたリプライフレームの送信を開始する
ことを特徴とする通信機器。
【請求項２】
前記送信制御部による送信データの無通信状態を検出すると計時を開始し、無通信状態のままＴ１を計時すると前記ＣＰＵに通知する送信タイマをさらに備え、
前記ＣＰＵは、前記送信タイマから通知を受けると、処理中のデータ送信を中止することを特徴とする請求項１に記載の通信機器。
【請求項３】
前記受信制御部は、受信データを格納する受信バッファを備え、
前記受信タイマは、Ｔ１、Ｔ２を計時した旨の情報を前記受信バッファに格納することを特徴とする請求項１または２に記載の通信機器。
【請求項４】
所定時間Ｔ２の無通信時間でフレームの区切りを示し、所定時間Ｔ１（＜Ｔ２）の無通信時間を含むフレームを不正フレームとみなす通信方式によりデータを受信する通信コントローラと、ＣＰＵとを備えた通信機器であって、
前記通信コントローラは、
データを受信する受信制御部と、
無通信状態を検出すると前記ＣＰＵからの指示を受けることなく計時を開始し、無通信状態のままＴ１、Ｔ２を計時すると前記ＣＰＵに通知する受信タイマとを備え、
前記ＣＰＵは、
前記受信タイマからＴ１計時の通知を受けた後、Ｔ２計時の通知を受ける前に前記受信制御部がデータを受信した場合に、受信中のフレームを不正とみなし、前記受信タイマからＴ２計時の通知を受けたときに、フレームの区切りとみなし、
前記受信制御部は、受信データを格納する受信バッファを備え、
前記受信タイマは、Ｔ１、Ｔ２を計時した旨の情報を前記受信バッファに格納することを特徴とする通信機器。
【請求項５】
所定時間Ｔ２の無通信時間でフレームの区切りを示し、所定時間Ｔ１（＜Ｔ２）の無通信時間を含むフレームを不正フレームとみなす通信方式によりデータを受信する通信コントローラと、ＣＰＵとを備えた通信機器における通信方法であって、
前記通信コントローラが、データ受信処理中に無通信状態を検出すると前記ＣＰＵからの指示を受けることなく計時を開始し、無通信状態のままＴ１、Ｔ２を計時すると前記ＣＰＵに通知する処理を行ない、
前記ＣＰＵが、前記受信タイマからＴ１計時の通知を受けると、受信中のフレームのエラー検査を行ない、正常であれば当該フレームに関するリプライフレームを送信バッファに格納し、
前記受信タイマからＴ１計時の通知を受けた後、Ｔ２計時の通知を受ける前に、前記受信制御部がデータを受信した場合に、受信中のフレームを不正とみなし、前記受信タイマからＴ２計時の通知を受けたときに、フレームの区切りとみなすとともに、Ｔ１、Ｔ２を計時した旨の情報を、受信データを格納する受信バッファに格納する処理を行なうことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラント・オートメーション・システム等で使用されるフィールド機器等に用いられる通信機器に関し、特に、無通信時間を計測して受信制御を行なう通信機器および通信方法に関する。
【背景技術】
【０００２】
工場等における生産工程の自動化を図るシステムであるファクトリ・オートメーション、プラント・オートメーションでは、フィールド機器をネットワークで接続して制御を行なっている。ネットワークにおける通信プロトコルとしては、オープン仕様で、無償で利用できる等の理由から、Ｍｏｄｂｕｓ（登録商標）が広く採用されており、産業分野のデファクトスタンダードとなっている。以下では、フィールド機器間の通信に、Ｍｏｄｂｕｓのシリアル伝送モードであるＲＴＵ（Remote Terminal Unit）を使用した場合を例に説明する。
【０００３】
Ｍｏｄｂｕｓプロトコルは、シングルマスタ／マルチスレーブの通信方式を採用している。すなわち、１つのネットワーク上においてマスタは１つのみであり、多数のスレーブが接続される。通信に際し、マスタはスレーブのアドレスと実行させる機能（ファンクション）とを指定して、クエリ（通信の開始）を発行する。アドレス指定されたスレーブでは、指定された機能を実行し、リプライ（応答メッセージ）をマスタに返す。
【０００４】
マスタは、あるスレーブに対してクエリを発行し、リプライが返されるか、指定時間以上経過すると、次のスレーブに対してクエリを発行する動作を繰り返す。ただし、マスタは、全スレーブを対象としたブロードキャストアドレスを指定したクエリを発行することができ、この場合、各スレーブは指定された機能を実行するのみで、リプライは返さない。
【０００５】
クエリ、リプライは４〜２５６バイト長の可変長でフレームが構成されている。図６は、クエリ、リプライで用いられるフレーム構造を示している。本図に示すように、フレームは、１バイトのスレーブアドレス、１バイトのファンクションコード、０〜２５２バイトのデータ、２バイトのＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）から構成されている。
【０００６】
例えば、ＲＴＵモードの場合、フレームの区切りは、少なくとも３．５バイト（以下「３．５Ｔ」と表記する）のサイレントインターバル（無通信時間）で始まり、３．５Ｔのサイレントインターバルで終了する。ただし、同一のフレームであっても、１．５バイト（以下「１．５Ｔ」と表記する）を超えるサイレントインターバルがあった場合には、そのフレームは不正フレームであるとみなして、廃棄処理を行なうようにしている。
【０００７】
図７は、汎用マイコンに内蔵されている標準的な通信用ペリフェラルである汎用非同期送受信回路（ＵＡＲＴ）を用いて送受信制御を行なう場合の構成を示すブロック図である。
【０００８】
本図に示すように、汎用非同期送受信回路（ＵＡＲＴ）３００、ＣＰＵ４１０、第１タイマ４１１、第２タイマ４１２、プログラム用メモリ４２０、データ用メモリ４３０が、ＣＰＵバス４４０により接続されている。
【０００９】
ＵＡＲＴ３００は、受信制御部３１０、送信制御部３２０を備えており、ＣＰＵ４１０の制御により、非同期でデータの送受信を行なう。受信制御部３１０は、受信バッファ３１１を備えており、外部から受信したデータを受信バッファ３１１に格納する制御を行なうとともに、受信バッファ３１１にデータが格納されたことをＣＰＵ４１０に割り込み要求で通知する。
【００１０】
送信制御部３２０は、送信バッファ３２１を備え、ＣＰＵ４１０の制御により、送信データを送信バッファ３２１に積み込み、外部にデータ送信を行なう。このとき、送信バッファ３２１に格納されているデータが所定の値以下になると、ＣＰＵ４１０に割り込み要求で通知する。
【００１１】
ＣＰＵ４１０は、プログラム用メモリ４２０に記録されているプログラムにより、データの受信制御、受信フレームの解析、送信フレームの生成、データの送信制御を行なう。プログラム用メモリ４２０は、ＣＰＵ４１０が実行するプログラムを格納し、データ用メモリ４３０は、受信フレーム、送信フレームを一時的に格納する。
【００１２】
第１タイマ４１１は、１．５Ｔを計時するタイマであり、第２タイマ４１２は、３．５Ｔを計時するタイマである。いずれも、無通信状態を検出したＣＰＵ４１０の指示により計時を開始し、タイムアウトすると、タイムアウト割り込みをＣＰＵ４１０に発行する。
【００１３】
上記構成のスレーブにおいて、マスタからのクエリを受信し、リプライを送信する動作の概要について説明する。
【００１４】
データを受信すると、受信制御部３１０は、受信バッファ３１１に順次格納していき、受信バッファ３１１にデータが格納されたことをＣＰＵ４１０に通知する。
【００１５】
ＣＰＵ４１０は、受信バッファ３１１の受信データを順次取り出していく。受信バッファ３１１が空になると、無通信状態が開始したと判断し、第１タイマ４１１と第２タイマ４１２を起動させる。このときの動作について、図８のフローチャートを参照して説明する。
【００１６】
上述のように、ＣＰＵ４１０は、受信バッファ３１１が空になったことを検出することで、無通信状態を間接的に検出し、無通信状態を検出すると、第１タイマ４１１と第２タイマ４１２を起動させる（Ｓ２０１）。
【００１７】
第１タイマ４１１が１．５Ｔを計時する前（Ｓ２０２：Ｎｏ）に、データを受信すると（Ｓ２０３：Ｙｅｓ）、ＣＰＵ４１０は、フレームが継続しているものと判断し、両タイマを停止させて（Ｓ２０４）、正常なデータ受信を継続する（Ｓ２０５）。
【００１８】
第１タイマ４１１が１．５Ｔを計時してタイムアウトすると（Ｓ２０２：Ｙｅｓ）、フレーム区切りの可能性があるため、ＣＰＵ４１０は、それまでに受信したデータで、フレームのＣＲＣチェックを行なう（Ｓ２０６）。ＣＲＣチェックの結果、エラーであった場合（Ｓ２０７：Ｙｅｓ）は、受信データの廃棄処理を行なう（Ｓ２０８）。
【００１９】
ＣＲＣチェックの結果、エラーでなければ（Ｓ２０７：Ｎｏ）、ＣＰＵ４１０は、リプライフレームをデータ用メモリ４３０に書き込む（Ｓ２０９）。
【００２０】
第２タイマ４１２が３．５Ｔを計時する前（Ｓ２１０：Ｎｏ）に、データを受信すると（Ｓ２１１：Ｙｅｓ）、ＣＰＵ４１０は、それまでに受信した同一フレームのデータと、次に無通信時間が３．５となるまでの受信フレームは、不正フレームであると判断し、第２タイマ４１２を停止させて（Ｓ２１２）、受信データおよびデータ用メモリ４３０に書き込んだリプライフレームの廃棄処理を行なう（Ｓ２１３）。
【００２１】
第２タイマ４１２が３．５Ｔを計時してタイムアウトすると、ＣＰＵ４１０は、それまでに受信したデータのフレーム区切りであると判断し、クエリで指定された機能を実行するとともに（Ｓ２１４）、データ用メモリ４３０に書き込んだリプライフレームの送信バッファ３２１への積み込みを開始する（Ｓ２１５）。そして、所定単位で読み出して送信する処理（Ｓ２１６）を、送信が終了するまで繰り返す（Ｓ２１７）。ＣＰＵ４１０は、送信先の機器で不正フレームと判断されないために、データ送信中の無通信時間が１．５Ｔ以上とならないように送信バッファ３２１にデータを積み込むようにする。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２０１１−２３４１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２３】
フレームの区切りと、不正フレームの判定を行なうため、２つのタイマを利用し、無通信時間を計測している。２つのタイマは、ＣＰＵ４１０が、受信バッファ３１１が空になったことを検出して起動させ、その後、データを受信すると、割り込み要求を受けたＣＰＵ４１０が停止させる。このため、受信バッファ３１１が空になる度にＣＰＵ４１０はタイマ制御を行なう必要があり、処理が煩雑となる。タイマの計時時間は、１バイト分の通信時間長に依存するため、高速通信になるほどＣＰＵ４１０の処理能力が求められることになる。
【００２４】
また、フィールド機器で広く用いられている２線式は、機器全体で数十ｍＷ程度の小電力で動作させなければならないことも多く、通信処理の負荷が大きいと、他処理に費やせるリソースが減り、本来の機能に影響を与えることになる。
【００２５】
そこで、本発明は、無通信時間を計測して受信制御を行なう通信機器において、ＣＰＵの通信処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【００２６】
上記課題を解決するため、本発明の第１の態様である通信機器は、所定時間Ｔ２の無通信時間でフレームの区切りを示し、所定時間Ｔ１（＜Ｔ２）の無通信時間を含むフレームを不正フレームとみなす通信方式によりデータを受信する通信コントローラと、ＣＰＵとを備えた通信機器であって、前記通信コントローラは、データを受信する受信制御部と、無通信状態を検出すると前記ＣＰＵからの指示を受けることなく計時を開始し、無通信状態のままＴ１、Ｔ２を計時すると前記ＣＰＵに通知する受信タイマとを備え、前記ＣＰＵは、前記受信タイマからＴ１計時の通知を受けた後、Ｔ２計時の通知を受ける前に前記受信制御部がデータを受信した場合に、受信中のフレームを不正とみなし、前記受信タイマからＴ２計時の通知を受けたときに、フレームの区切りとみなすことを特徴とする。
【００２７】
ここで、送信バッファを有する送信制御部をさらに備え、前記ＣＰＵは、前記受信タイマからＴ１計時の通知を受けると、受信中のフレームのエラー検査を行ない、正常であれば当該フレームに関するリプライフレームを前記送信バッファに格納するようにしてもよい。
【００２８】
このとき、前記送信制御部は、前記受信タイマがＴ２を計時すると、前記ＣＰＵからの指示を受けることなく前記送信バッファに格納されたリプライフレームの送信を開始することができる。
【００２９】
前記送信制御部による送信データの無通信状態を検出すると計時を開始し、無通信状態のままＴ１を計時すると前記ＣＰＵに通知する送信タイマをさらに備え、前記ＣＰＵは、前記送信タイマから通知を受けると、処理中のデータ送信を中止するようにしてもよい。
【００３０】
また、前記受信制御部は、受信データを格納する受信バッファを備え、前記受信タイマは、Ｔ１、Ｔ２を計時した旨の情報を前記受信バッファに格納することができる。
【００３１】
上記課題を解決するため、本発明の第２の態様である通信方法は、所定時間Ｔ２の無通信時間でフレームの区切りを示し、所定時間Ｔ１（＜Ｔ２）の無通信時間を含むフレームを不正フレームとみなす通信方式によりデータを受信する通信コントローラと、ＣＰＵとを備えた通信機器における通信方法であって、前記通信コントローラが、データ受信処理中に無通信状態を検出すると前記ＣＰＵからの指示を受けることなく計時を開始し、無通信状態のままＴ１、Ｔ２を計時すると前記ＣＰＵに通知する処理を行ない、前記ＣＰＵが、前記受信タイマからＴ１計時の通知を受けた後、Ｔ２計時の通知を受ける前に、前記受信制御部がデータを受信した場合に、受信中のフレームを不正とみなし、前記受信タイマからＴ２計時の通知を受けたときに、フレームの区切りとみなす処理を行なうことを特徴とする。
【発明の効果】
【００３２】
本発明によれば、無通信時間を計測して受信制御を行なう通信機器において、ＣＰＵの通信処理負荷を軽減することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明を適用したフィールド機器のデータ送受信関連の構成を示すブロック図である。
【図２】タイマ起動以降動作について、説明するフローチャートである。
【図３】受信データの例を説明する図である。
【図４】タイムアウトに対応するデータを積み込まないときの受信バッファを説明する図である。
【図５】タイムアウトに対応するデータを積み込んだときの受信バッファを説明する図である。
【図６】クエリ、リプライで用いられるフレーム構造を示す図である。
【図７】汎用マイコンに内蔵されている標準的な汎用非同期送受信回路（ＵＡＲＴ）を用いて送受信制御を行なう場合の構成を示すブロック図である。
【図８】無通信状態を検出したときの、従来の動作を説明するフローチャートである。
【発明を実施するための形態】
【００３４】
本発明の実施の形態について図面を参照して説明する。図１は、本発明を適用したフィールド機器のデータ送受信関連の構成を示すブロック図である。本実施形態では、Ｍｏｄｂｕｓのシリアル伝送モードであるＲＴＵを使用した場合を例に説明するが、本発明は、無通信時間を計測して受信制御を行なうプロトコルであれば他のプロトコルにも適用することができる。
【００３５】
本図において、拡張ＵＡＲＴ１００、ＣＰＵ２１０、プログラム用メモリ２２０、データ用メモリ２３０が、ＣＰＵバス２４０により接続されている。拡張ＵＡＲＴ１００は、標準的なＵＡＲＴを拡張したものであり、例えば、通信コントローラとして実装することができる。なお、標準的なＵＡＲＴとの互換性を持たせるために、以下に説明する拡張機能を設定により無効化できることが望ましい。
【００３６】
ＣＰＵ２１０は、プログラム用メモリ２２０に記録されているプログラムにより、データの受信制御、受信フレームの解析、送信フレームの生成、データの送受信制御を行なう。本実施形態では、ＣＰＵ２１０がデータ受信制御の際にタイマ制御を行なわないことにより、ＣＰＵ２１０の負荷を軽減している。プログラム用メモリ２２０は、ＣＰＵ２１０が実行するプログラムを格納し、データ用メモリ２３０は、受信フレームを一時的に格納する。
【００３７】
拡張ＵＡＲＴ１００は、受信制御部１１０、受信データ無通信時間第１タイマ１２１、受信データ無通信時間第２タイマ１２２、送信制御部１３０、フレーム送信完了検出部１４０、送信データ無通信時間タイマ１５０を備えている。従来の標準的なＵＡＲＴと異なる構成である受信データ無通信時間第１タイマ１２１、受信データ無通信時間第２タイマ１２２、フレーム送信完了検出部１４０、送信データ無通信時間タイマ１５０は、ハードウェアで実現する。
【００３８】
受信制御部１１０は、受信バッファ１１１を備えており、外部から受信したデータを受信バッファ１１１に格納する制御を行なうとともに、受信バッファ１１１にデータが格納されたことをＣＰＵ２１０に割り込み要求で通知する。
【００３９】
受信データ無通信時間第１タイマ１２１は、１．５Ｔを計時するタイマである。受信データ無通信時間第１タイマ１２１は、受信データを監視し、無通信状態を検出すると計時を開始する。そして、１．５Ｔを計時してタイムアウトするとＣＰＵ２１０に割り込み要求で通知する。
【００４０】
受信データ無通信時間第２タイマ１２２は、３．５Ｔを計時するタイマである。受信データ無通信時間第２タイマ１２２は、受信データを監視し、無通信状態を検出すると計時を開始する。そして、３．５Ｔを計時してタイムアウトするとＣＰＵ２１０に割り込み要求で通知する。また、送信開始制御部１３２にも通知する。
【００４１】
このように、本実施形態では、ＣＰＵ２１０の指示ではなく、受信データ無通信時間第１タイマ１２１および受信データ無通信時間第２タイマ１２２自身が無通信状態を検出して計時を開始する。このため、ＣＰＵ２１０の負荷を軽減することができる。
【００４２】
送信制御部１３０は、送信バッファ１３１と送信開始制御部１３２とを備えている。送信制御部１３０は、ＣＰＵ２１０の制御により、送信データを送信バッファ１３１に積み込み、外部にデータ送信を行なう。送信開始制御部１３２は、受信データ無通信時間第２タイマ１２２が３．５Ｔを計時すると、送信バッファ１３１に格納されているデータの外部への送信を開始する。
【００４３】
フレーム送信完了検出部１４０は、送信データの送信が完了したことをＣＰＵ２１０に割り込み要求で通知する。送信完了は、例えば、ＣＰＵ２１０から通知されたデータ長分の送信を行なったことで判定することができる。
【００４４】
送信データ無通信時間タイマ１５０は、１．５Ｔを計時するタイマである。送信データ無通信時間タイマ１５０は、送信データを監視し、送信しているフレームで無通信状態が発生すると計時を開始し、無通信時間が１．５Ｔになると、ＣＰＵ２１０に割り込み要求で通知する。これは、データ送信時に無通信時間が１．５Ｔ以上になると、送信先の機器で不正データとみなされ、以降のデータ送信が無駄になってしまうことから、ＣＰＵ２１０に送信処理を中止させるためである。
【００４５】
本実施形態のフィールド機器において、マスタからのクエリを受信し、リプライを送信する動作の概要について説明する。
【００４６】
データを受信すると、受信制御部１１０は、受信バッファ１１１に順次格納していき、受信バッファ１１１にデータが格納されたことをＣＰＵ２１０に通知する。ＣＰＵ２１０は、受信バッファ１１１の受信データを順次取り出していく。
【００４７】
受信データ無通信時間第１タイマ１２１と受信データ無通信時間第２タイマ１２２は、受信データを監視し、無通信状態を検出すると計時を開始する。なお、従来どおり、受信バッファ１１１が空になったことで間接的に無通信状態を検出するようにしてもよい。
【００４８】
タイマ起動以降の動作について、図２のフローチャートを参照して説明する。上述のように、無通信状態を検出して、受信データ無通信時間第１タイマ１２１と受信データ無通信時間第２タイマ１２２が起動する（Ｓ１０１）。
【００４９】
受信データ無通信時間第１タイマ１２１が１．５Ｔを計時する前（Ｓ１０２：Ｎｏ）に、データを受信すると（Ｓ１０３：Ｙｅｓ）、両タイマは停止する（Ｓ１０４）。また、ＣＰＵ２１０は、フレームが継続しているものと判断し、正常なデータ受信を継続する（Ｓ１０５）。なお、その後、再度無通信状態になると、両タイマは再起動する（Ｓ１０１）。
【００５０】
受信データ無通信時間第１タイマ１２１が１．５Ｔを計時してタイムアウトすると（Ｓ１０２：Ｙｅｓ）、フレーム区切りの可能性があるため、ＣＰＵ２１０は、それまでに受信したデータで、フレームのＣＲＣチェックを行なう（Ｓ１０６）。ＣＲＣチェックの結果、エラーであった場合（１０７：Ｙｅｓ）は、受信データの廃棄処理を行なう（Ｓ１０８）。
【００５１】
ＣＲＣチェックの結果、エラーでなければ（Ｓ１０７：Ｎｏ）、ＣＰＵ２１０は、リプライフレームを送信バッファ１３１に積み込む（Ｓ１０９）。この段階では、送信バッファ１３１からの読み出しおよび送信は行なわない。このとき、送信フレームのサイズをフレーム送信完了検出部１４０に設定するようにしてもよい。
【００５２】
このように、本実施形態では、１．５Ｔ経過後に、リプライフレームをデータ用メモリ２３０に一旦格納するのではなく、送信バッファ１３１に直接積み込むようにしている。このため、３．５Ｔ経過後に、データ用メモリ２３０から送信バッファ１３１への積み込みを行なうことなく、即座にリプライフレームの送信を開始することができる。なお、送信バッファ１３１に積み込んだリプライフレームの送信開始処理は、送信開始制御部１３２が行なう。
【００５３】
すなわち、従来は、正常なデータ受信の場合、無通信時間の３．５Ｔ経過後に、リプライの送信バッファへの積み込みを開始するようにしていた。このため、３．５Ｔ経過時点から実際のデータ送信開始までにラグが発生し、通信効率が低下していた。これは、従来の標準的なＵＡＲＴでは、外部へのデータ送信を停止状態にしておき、送信バッファにデータを積み込んでから、任意のタイミングで送信開始することができなかったからである。
【００５４】
これに対し、本実施形態では、送信開始制御部１３２を設けることで、送信バッファ１３１に積み込んだデータを、任意のタイミングで外部に送信できるようにしているため、３．５Ｔ経過時点から即座に外部へのデータ送信が可能となっている。
【００５５】
受信データ無通信時間第２タイマ１２２が３．５Ｔを計時する前（Ｓ１１０：Ｎｏ）に、データを受信すると（Ｓ１１１：Ｙｅｓ）、受信データ無通信時間第２タイマ１２２は停止する（Ｓ１１２）。また、ＣＰＵ２１０は、それまでに受信した同一フレームのデータと、次に無通信時間が３．５Ｔとなるまでの受信フレームは、不正フレームであると判断し、受信データおよび送信バッファ１３１に積み込んだリプライフレームの廃棄処理を行なう（Ｓ１１３）。なお、その後、再度無通信状態を検出すると、両タイマは再起動する（Ｓ１０１）。
【００５６】
受信データ無通信時間第２タイマ１２２が３．５Ｔを計時してタイムアウトすると（Ｓ１１０：Ｙｅｓ）、ＣＰＵ２１０は、それまでに受信したデータのフレーム区切りであると判断し、クエリで指定された機能を実行する（Ｓ１１４）。
【００５７】
また、送信開始制御部１３２は、送信バッファ１３１に積み込まれたリプライフレームの読み出しを開始し、外部への送信を行なう（Ｓ１１５）。送信開始制御部１３２は、受信データ無通信時間第２タイマ１２２が３．５Ｔを計時してタイムアウトすると、ＣＰＵ２１０の送信開始指示なしで、データ送信を開始するため、タイムラグをなくすとともに、ＣＰＵ２１０の負荷を軽減することができる。
【００５８】
リプライフレームの外部への送信が開始すると、送信データ無通信時間タイマ１５０は、送信データを監視し、無通信状態になると計時を開始し、無通信状態が１．５Ｔに達してタイムアウトすると（Ｓ１１６：Ｙｅｓ）、ＣＰＵ２１０に通知する。通知を受けたＣＰＵ２１０は、送信を中断するとともに、送信バッファ１３１に積み込まれている未通信のデータを廃棄する（Ｓ１１７）。上述のように、無通信時間が１．５Ｔになると送信先の機器で不正データとみなされるため、以降のデータ処理を行なわないことにより、ＣＰＵ負荷を軽減するとともに、ネットワークの通信効率を向上させることができる。
【００５９】
すなわち、従来の汎用的なＵＡＲＴでは、送信時の無通信時間の判定を行なうことができなかったため、フレーム送信中に１．５Ｔ以上の無通信時間が発生した場合であっても、そのままリプライフレームとして用意したデータを最後まで送信するようになっていた。これらのデータは、送信先の機器で不正データとして廃棄されるため、無駄なデータであり、通信効率を低下させるものであった。これに対して、本実施形態では、送信データ無通信時間タイマ１５０を設け、１．５Ｔの無通信時間を検出すると、以降のデータ送信を中止するようにしている。これにより、上述のようにネットワーク通信効率低下を防ぐとともに、ＣＰＵ２１０の負荷を軽減している。
【００６０】
無通信状態が１．５Ｔに達することなく、フレーム送信完了検出部１４０が送信完了を検出すると（Ｓ１１８：Ｙｅｓ）、データ送信が正常に終了したとして、本処理を終了する。なお、フレーム送信完了検出部１４０は、例えば、ＣＰＵ２１０により設定された送信フレームのサイズ分のデータ送信を行なうことで、送信完了を検出することができる。
【００６１】
なお、本実施形態では、受信データ無通信時間第１タイマ１２１および送信データ無通信時間タイマ１５０が計時する時間を１．５Ｔとし、受信データ無通信時間第２タイマ１２２が計時する時間を３．５Ｔとしたが、これらの計時時間は使用する通信プロトコルに応じて適宜変更することができる。また、受信の際の無通信時間を計測するために受信データ無通信時間第１タイマ１２１と受信データ無通信時間第２タイマ１２２とを設けていたが、１つのタイマで１．５Ｔと３．５Ｔとを計時するようにしてもよい。
【００６２】
また、受信の際に、受信バッファ１１１に格納されたフレームの先頭で自身宛（ブロードキャストを含む）のフレームか否かを判定し、自身宛でなければ、以降のデータを削除することでＣＰＵ２１０の負荷を一層軽減するようにしてもよい。
【００６３】
また、上述の実施形態では、受信データ無通信時間第１タイマ１２１および受信データ無通信時間第２タイマ１２２が、タイムアウト状態を割り込み要求でＣＰＵ２１０に通知していた。これは、通信負荷がＣＰＵ２１０にとって低く、ＣＰＵ２１０が割り込みに対して確実に応答でき、割り込みの取りこぼしが発生しないことを前提とした処理である。
【００６４】
これに対し、通信負荷がＣＰＵ２１０にとって高く、ＣＰＵ２１０が割り込みに対して応答できない可能性がある場合には、無通信状態のタイムアウト状態を示すデータを、その事象発生時に受信バッファ１１１に積み込むことで、割り込みの取りこぼしによる弊害を防ぐことができる。
【００６５】
例えば、図３に示すように、データＡ〜データＥで構成される第１フレームにおいて、データＣとデータＤとの間で、１．５Ｔ超３．５Ｔ未満の無通信時間が発生したとする。そして、３．５Ｔ以上の無通信時間の後に、データＦ…で構成される第２フレームを正常に受信したとする。このとき、ＣＰＵ２１０は、第１フレームを不正データとみなし、廃棄する必要がある。
【００６６】
このような場合に、割り込みの取りこぼしが発生すると、図４に示すように、ＣＰＵ２１０は、受信バッファ１１１を参照しただけでは、第１フレームと第２フレームとの区切りを識別することができない。
【００６７】
これに対し、受信データ無通信時間第１タイマ１２１および受信データ無通信時間第２タイマ１２２のタイムアウト時に対応するデータを受信バッファ１１１に積み込むことで、図５に示すように第１フレームと、第２フレームとの区切りを識別することができるようになり、不正データである第１フレームを廃棄することが容易に可能となる。
【００６８】
なお、本図の例では、データＣとデータＤとの間で、１．５Ｔのタイムアウトだけが発生していることから、第１フレームが不正なフレームであることが示され、データＥとデータＦとの間で、１．５Ｔのタイムアウトおよび３．５Ｔのタイムアウトが発生していることから、フレーム区切りであることが示されている。
【符号の説明】
【００６９】
１００…拡張ＵＡＲＴ、１１０…受信制御部、１１１…受信バッファ、１２１…受信データ無通信時間第１タイマ、１２２…受信データ無通信時間第２タイマ、１３０…送信制御部、１３１…送信バッファ、１３２…送信開始制御部、１４０…フレーム送信完了検出部、１５０…送信データ無通信時間タイマ、２１０…ＣＰＵ、２２０…プログラム用メモリ、２３０…データ用メモリ、２４０…ＣＰＵバス、３００…汎用非同期送受信回路（ＵＡＲＴ）、３１０…受信制御部、３１１…受信バッファ、３２０…送信制御部、３２１…送信バッファ、４１０…ＣＰＵ、４１１…第１タイマ、４１２…第２タイマ、４２０…プログラム用メモリ、４３０…データ用メモリ、４４０…ＣＰＵバス
【図１】
0005994255.tif 000002
【図２】
0005994255.tif 000003
【図３】
0005994255.tif 000004
【図４】
0005994255.tif 000005
【図５】
0005994255.tif 000006
【図６】
0005994255.tif 000007
【図７】
0005994255.tif 000008
【図８】
0005994255.tif 000009