(57)【要約】【課題】データ通信において、データ受信装置が検出可能なエラーの詳細な情報を、効率よくデータ送信装置に通知する。【解決手段】データエラー検出手段により検出される通信エラーの種類を示したエラーメッセージをデジタルデータとして生成するエラーメッセージ生成手段を設け、エラーメッセージを応答メッセージとして送信する。【選択図】  図３
2004222071.tif 000002
【特許請求の範囲】
【請求項１】
デジタルデータを受信するデータ受信手段と、
前記データ受信手段によって受信した前記デジタルデータに関する通信エラーを検出する通信エラー検出手段と、
前記通信エラー検出手段によって通信エラーが検出されたときにエラーが発生したことを示す応答を出力する応答送信手段と、
前記データエラー検出手段により検出される通信エラーの種類を示したエラーメッセージをデジタルデータとして生成するエラーメッセージ生成手段とを有し、
前記エラーメッセージを応答として送信するデータ通信装置。
【請求項２】
前記エラーメッセージ生成手段は、特定のビットの０、１と、特定のエラーの発生とを対応させた複数ビットの伝送フレームによるエラーメッセージを生成する請求項１記載のデータ通信装置。
【請求項３】
前記エラーメッセージは、少なくともパリティエラーと、チェックサムエラーと、ＣＲＣエラーと、ノイズエラーと、オーバーランエラーと、タイムアウトエラーと、送信データの順序関係が乱れたことを示す順序エラーと、前記データ受信装置の受信準備処理がなされていないことを示す準備未完エラーとのいずれか一つのエラーに関して、エラー発生の有無を示す情報を有する請求項１又は２に記載のデータ通信装置。
【請求項４】
前記エラーメッセージ生成手段は、１バイトのエラーメッセージを生成する請求項１〜３の何れか一項に記載のデータ通信装置。
【請求項５】
デジタルデータを出力するデータ送信手段と、
エラーメッセージを受信する応答受信手段とを有し、
前記応答受信手段で受信した前記エラーメッセージがエラーが発生しなかったことを示すときに、データ送信が正常に完了したと判断するデータ通信装置。
【請求項６】
デジタルデータを出力するデータ送信手段と、エラーメッセージを受信する応答受信手段とを有し、前記応答受信手段で受信した前記エラーメッセージがエラーが発生しなかったことを示すときに、データ送信が正常に完了したと判断する請求項１〜４の何れか一項に記載のデータ通信装置。
【請求項７】
前記データ送信手段がデータを出力した後、少なくとも前記エラーメッセージを受信するまでと、データ出力時点より一定時間経過するまでとのいずれか一つの条件が満たされるまでに限り、前記応答受信手段によるエラーメッセージの受信を許可する請求項５又は６記載のデータ通信装置。
【請求項８】
請求項１〜７の何れか一項に記載の通信装置を有する電子制御装置。
【請求項９】
請求項８記載の電子制御装置を少なくとも２つ有し、その電子制御装置間でデータ通信を行って分散制御を行う分散制御システム。
【請求項１０】
請求項９記載の分散制御システムを備えた車両。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルデータの送・受信を行うデータ通信装置に関し、特に、車載の分散制御システム等で用いられるデータ通信装置の誤り制御に関する。
【０００２】
【従来の技術】
コンピュータ同士でデジタルデータの送・受信を相互に行うデータ通信の伝送制御では、データが正しく伝送されたかどうかの確認のために、誤り制御が行われる。誤り制御には、パリティチェック、サイクリックチェック等がよく知られており、送信側で、伝送フレームに誤り検出可能なコードを付け、受信側で誤り（エラー）の有無を検出し、誤りあれば、再送を要求する応答を送信元に送信することが行われる。
【０００３】
この種のデータ通信装置として、データ伝送を行うデータ線とは別に、基準タイミング通信であることを送信側より受信側に通知するための基準タイミング通信線と、受信側で異常が検出される場合に基準タイミング通信での再送を送信側に要求する基準タイミング要求線を備えたデータ通信装置が知られている（例えば、特許文献１）。
【特許文献１】
特許第３２７１２７０号公報
【０００４】
【発明が解決しようとする課題】
自動車等の車両用制御システムにおいては、Ｘ−Ｂｙ−Ｗｉｒｅシステムに代表されるように、ドライバによる入力を電気信号に変換したうえで、データ通信によって信号入力・電子制御装置間通信・信号出力を実行する分散制御システムの実用化が研究されている。この種の分散制御システムでは、制御性能を向上させるために、より多くのデータを高速に通信し、通信エラー発生時の対応をきめ細かく行うことが要求されている。
【０００５】
データ通信においては、受信手段が検出可能なエラーには、パリティエラー、チェックサムエラー、ＣＲＣ（サイクリックチェック）エラー等、複数の種類のものが存在する。
【０００６】
このことに対し、分散制御システムで使用されるような従来のデータ通信装置では、受信エラーを検出したときに、データ通信の復旧を要求するのみであるので、どのようなエラーが発生したのかという情報を、送信元では得ることができず、受信エラーの発生に関して再発を防止するような、きめ細かい適切な処置を送信側で取ることができず、システム効率が低下する原因になる。
【０００７】
この発明は、上述の如き問題点を解消するためになされたもので、その目的とするところは、発生したエラー内容の具体的な情報を送信元で得ることができ、通信エラー発生時に、きめ細かい適切な処置を送信側で取ることを可能にする誤り制御を行うデータ通信装置を提供することにある。
【０００８】
【課題を解決するための手段】
上述の目的を達成するために、この発明によるデータ通信装置は、デジタルデータを受信するデータ受信手段と、前記データ受信手段によって受信した前記デジタルデータに関する通信エラーを検出する通信エラー検出手段と、前記通信エラー検出手段によって通信エラーが検出されたときにエラーが発生したことを示す応答を出力する応答送信手段と、前記データエラー検出手段により検出される通信エラーの種類を示したエラーメッセージをデジタルデータとして生成するエラーメッセージ生成手段とを有し、前記エラーメッセージを応答として送信する。
【０００９】
この発明によるデータ通信装置によれば、データ受信側で検出したエラーの種類を示す情報を、応答としてデータ送信装置へ送信することが行われ、データ送信装置でもデータ受信側で検出したエラーの種類の情報を得ることができる。
【００１０】
この発明によるデータ通信装置では、前記エラーメッセージ生成手段は、特定のビットの０、１と、特定のエラーの発生（種類）とを対応させた複数ビットの伝送フレームによるエラーメッセージを生成する。従って、データ受信装置で検出した特定のエラーの発生を示す情報を、簡潔なフォーマットで通信することが可能になる。
【００１１】
この発明によるデータ通信装置における前記エラーメッセージは、少なくともパリティエラーと、チェックサムエラーと、ＣＲＣエラーと、ノイズエラーと、オーバーランエラーと、タイムアウトエラーと、送信データの順序関係が乱れたことを示す順序エラーと、前記データ受信装置の受信準備処理がなされていないことを示す準備未完エラーとのいずれか一つのエラーに関して、エラー発生の有無を示す情報を有する。従って、通信エラーが発生した時に、発生したこれらのエラー内容の具体的な情報を得ることができる。
【００１２】
この発明によるデータ通信装置における前記エラーメッセージ生成手段は、１バイトのエラーメッセージを生成する。従って、市場に多く流通しているシリアル通信チップのデータ送受信機能の最小単位で、エラーメッセージの送受信を行え、効率のよいデータ通信が可能になる。
【００１３】
また、この発明によるデータ通信装置は、デジタルデータを出力するデータ送信手段と、エラーメッセージを受信する応答受信手段とを有し、前記応答受信手段で受信した前記エラーメッセージがエラーが発生しなかったことを示すときに、データ送信が正常に完了したと判断する。
【００１４】
また、この発明によるデータ通信装置によれば、受信成功時の肯定応答と、受信失敗時の否定応答とを同一のフォーマットで記述することができ、効率のよいデータ処理を実行することができる。
【００１５】
また、この発明によるデータ通信装置は、前記データ送信手段がデータを出力した後、少なくとも前記エラーメッセージを受信するまでと、データ出力時点より一定時間経過するまでとのいずれか一つの条件が満たされるまでに限り、前記応答受信手段によるエラーメッセージの受信を許可する。
【００１６】
また、この発明によるデータ通信装置によれば、応答を受信すべきでないときには応答受信機能を停止することによって、応答を受信すべきではないときに発生したノイズなどに対しては受信処理およびエラー処理を実行しなくてもよく、効率よく処理を行うことが可能になる。
【００１７】
また、この発明による電子制御装置は、上述の発明によるデータ通信装置を有するものである。この発明による電子制御装置では、高速かつエラー情報に対してきめ細かい対応が可能な、少なくともデータ受信機能とデータ送信機能のいずれか一つを有する電子制御装置が実現できる。
【００１８】
また、この発明による分散制御システムは、上述の発明によるデータ通信装置を有する電子制御装置を少なくとも２つ有し、その電子制御装置間でデータ通信を行って分散制御を行う。
【００１９】
この発明による分散制御システムによれば、高速かつエラー情報に対してきめ細かい対応が可能なデータ送受信機能を有する分散制御システムが実現できる。特に、データ送信装置とデータ受信装置とを有する電子制御装置を二つ組み合わせて双方向通信を行った場合、データ送信機能とデータ受信機能で受信手段を共有している場合と異なり、データとエラーメッセージの区別をするための情報を付与する必要がなく、効率よく通信を行うことが可能になる。
この発明による自動車等の車両は、上述の発明による分散制御システムを備えている。従って、高速かつエラー情報に対してきめ細かい対応が可能な車両が実現できる。
【００２０】
【発明の実施の形態】
以下に本発明の実施形態を図面と共に説明する。まず、本発明が実施された車両用エンジン分散制御システムの基本構成を図１を参照して説明する。
【００２１】
（構成）
この分散制御システムは、双方向にデータ通信可能な電子制御装置として、複数個（２個）の制御ユニット（ＥＣＵ）１０、３０を有する。制御ユニット１０は、プロセッサ（ＣＰＵ）１１と、メモリ１２と、データ送信装置１６と、データ受信装置１７と、エアフローセンサ等が出力するアナログ信号をＡ／Ｄ変換して入力するアナログ入力インタフェース部１８と、周辺装置を駆動するために電圧信号等を出力するアナログ出力インタフェース部１９と、クランク角度センサ等からのパルス信号を入力するデジタル入力インタフェース部２０と、周辺装置を駆動するためにパルス信号を出力するデジタル出力インタフェース部２１とを有し、これらが内部バス２２によって接続されている。
【００２２】
制御ユニット１０のメモリ１２は、アプリケーションタスク１３と、タスク制御等を行うリアルタイムオペレーティングシステム（以下、ＲＴＯＳ）１４と、所定の通信プロトコルによって送受信処理（通信処理）を管理する通信ドライバ１５とを有する。
【００２３】
制御ユニット３０は、制御ユニット１０と実質的に同一構成のものであり、プロセッサ（ＣＰＵ）３１と、メモリ３２と、アナログ入力インタフェース部３８と、アナログ出力インタフェース部３９と、デジタル入力インタフェース部４０と、デジタル出力インタフェース部４１とを有し、これらが内部バス４２によって接続されている。
【００２４】
制御ユニット３０のメモリ３２も、アプリケーションタスク３３と、タスク制御等を行ＲＴＯＳ３４と、所定の通信プロトコルによって送受信処理（通信処理）を管理する通信ドライバ３５とを有する。
【００２５】
制御ユニット１０と３０は、制御ユニット１０から制御ユニット３０への情報（デジタルデータ）送信を行うデータ送信線５１と、制御ユニット３０から制御ユニット１０への応答送信を行う応答送信線５２と、制御ユニット３０から制御ユニット１０への情報（デジタルデータ）送信を行うデータ送信線５３と、制御ユニット１０から制御ユニット３０への送信を行う応答送信線５４とにより、２重に双方向接続されている。
【００２６】
データ送信装置１６、３６は、図２に示されているように、デジタルデータの送信を行う送信データ送信手段１６１と、送信先よりエラーメッセージ等の応答フレームを受信する応答受信手段１６２とで構成される。
【００２７】
データ受信装置１７、３７は、図３に示されているように、デジタルデータの受信を行うデータ受信手段１７１と、通信エラー検出手段１７２と、エラーメッセージ生成手段１７３と、エラーメッセージ等の応答フレームを送信元に送信する応答送信手段１７４とで構成される。
【００２８】
本実施形態における送信データの一例として、２４ビット分のデータを送信する場合のフォーマットを図４に示す。送信データ全体は５ブロックのデータで構成されている。１〜４バイト目のブロックは、１バイト（８ビット）分のデータ部分と、１ビットのパリティビットで構成される。データ部分の先頭２ビットはブロックの順序をあらわす順序ビットとして用いられている。データ部分の残り６ビットはデジタルデータをあらわす情報ビットとして用いられている。また、５バイト目のブロックのデータ部分はチェックサムデータとして用いられる。この実施形態では、通信エラー検出手段（誤り検出方式）の一つとして、チェックサム方式を用いているが、ＣＲＣ（サイクリックチェック）方式を用いることもできる。
【００２９】
送信先のデータ受信装置１７あるいは３７からの応答として返信されるエラーメッセージ（応答フレーム）のフォーマットを図５に示す。エラーメッセージの伝送フレームは、１バイト（８ビット）のデータ部分と、１ビットのパリティビットを含む複数ビットで構成される。エラーメッセージのデータ部分の各ビットは、各々、０、１の２進コードで、予め割り当てられた異なる種類のデータ受信時のエラーの有無に対応している。
【００３０】
本実施形態では、第１ビットがチェックサムエラーの有無、第２ビットがパリティエラーの有無、第３ビットがノイズエラーの有無、第４ビットがオーバーランエラーの有無、第５ビットがタイムアウトエラーの有無、第６ビットが送信データの順序関係が乱れたことを示す順序エラーの有無、第７ビットがデータ受信装置の受信準備処理がなされていないことを示す準備未完エラーの有無を割り当てられている。第８ビットは機能拡張のための予備である。第９ビットのパリティビットは、エラーメッセージを受信した際の受信エラーのチェックに用いられる。なお、ＣＲＣエラー方式の場合には、第１ビットがチェックサムエラーに代えてＣＲＣエラーのビットになる。
【００３１】
（データ送受信の手順）
データ送受信シーケンスの概要を図６のフロー図を参照して説明する。まず、Ｓ１において、データ送信装置１６（３６）は、データまたは接続要求の送信処理を行う。これにより、データ送信装置１６（３６）から、データまたは接続要求が送信先のデータ受信装置３７（１７）へ送信される。
【００３２】
Ｓ２において、データ受信装置３７（１７）が、データまたは接続要求を受信すると、データ受信装置３７（１７）は、それの受信処理、エラーメッセージ（応答メッセージ）の作成処理、送信処理を実行し、データ受信装置からデータ送信装置への応答としてエラーメッセージを返信する。
【００３３】
Ｓ３において、データ送信装置１６（３６）が、送信先のデータ受信装置３７（１７）よりエラーメッセージを受信すると、エラーメッセージ（応答）の受信処理を実行する。
【００３４】
データ受信装置３７（１７）は、受信処理中に、受信タイムアウトが発生した場合には、Ｓ４において、受信タイムアウトエラー処理を行う。そして、それに応じたエラーメッセージの作成処理、送信処理を実行し、データ受信装置からデータ送信装置へエラーメッセージを返信する。
【００３５】
Ｓ５において、データ送信装置１６（３６）が、送信先のデータ受信装置３７（１７）よりエラーメッセージを受信すると、エラーメッセージ（応答）の受信処理を実行する。このエラーメッセージ受信処理は、Ｓ３のエラーメッセージ受信処理と同じである。
【００３６】
また、データ送信装置１６（３６）は、データ受信装置３７（１７）からの応答がなかった場合には、送信タイムアウトアラームが動作し、Ｓ６において、送信タイムアウトエラー処理を実行する。
【００３７】
次に、各通信処理の詳細について述べる。
（データ・接続要求送信処理）
図７はデータ・接続要求送信処理（Ｓ１）のフローチャートである。まず、データ送信か、接続要求の送信処理かによって分岐する（ステップＳ１１）。データ送信処理の場合には、各データブロックの先頭に順序ビットを書込み（ステップＳ１２）、チェックサムデータを計算してその計算結果をデータブロックに書込む（ステップＳ１３）。つづいて、パリティビットを書込み（ステップＳ１４）、データの送信を行う（ステップＳ１５）。
【００３８】
これに対し、接続要求の送信の場合には、接続要求としてブレーク信号を送信する（ステップＳ１６）。
データあるいは接続要求の送信が終了すると、送信タイムアウトアラームをセットし（ステップＳ１７）、応答受信機能の動作を許可し、データ受信装置からの応答を待つ（ステップＳ１８）。
【００３９】
（データ・接続要求受信処理）
図８はデータ・接続要求受信処理（Ｓ２）のフローチャートである。まず、ブレーク信号を受信したか否かの判断を行う（ステップＳ２１）。ブレーク信号を受信した場合には、接続要求受信処理を実行し（ステップＳ２２）、ブレーク信号の受信でない場合には、データ受信処理を実行する（ステップＳ２３）。
【００４０】
（接続要求受信処理）
図９は接続要求受信処理（ステップＳ２２）のフローチャートである。まず、受信ブロック数カウンタを初期化し（ステップＳ２２１）、エラーフラグをクリアする（ステップＳ２２２）。
次に、エラーフラグを参照してエラーメッセージを生成する（ステップＳ２２３）。エラーメッセージは、図５のフォーマットで記述され、全てのビットを０として生成する。次に、エラーメッセージを送信する（ステップＳ２２３）。最後に、接続状態フラグをセットし（ステップＳ２２５）、接続要求受信処理を終了する。
【００４１】
（データ受信処理）
図１０はデータ受信処理（ステップＳ２３）のフローチャートである。まず、先頭ブロックを受信したか否かの判定を、受信ブロック数カウンタを用いて行う（ステップＳ２３１）。受信ブロックが先頭ブロックでなかった場合には、受信タイムアウトアラームのキャンセルが行われる（ステップＳ２３２）。
【００４２】
その後、受信したデータのエラーチェック処理を行い（ステップＳ２３３）、受信データをＲＡＭ（メモリ１２あるいは３２）に書込み（ステップＳ２３４）、受信したブロック数のカウントを行う（ステップＳ２３５）。
【００４３】
次に、受信したブロックが最終ブロックかであるか否かの判定を行う（ステップＳ２３６）。最終ブロックでなかった場合には、受信タイムアウトアラームをセットして受信処理を終了する（ステップＳ２３７）。受信したブロックが最終ブロックである場合には、受信完了時のエラーチェック処理を行う（ステップＳ２３８）。そして、エラーメッセージの作成を行う（ステップＳ２３９）。そして、データ送信装置へエラーメッセージを送信する（ステップＳ２３１０）。
【００４４】
次に、エラーフラグを参照して受信エラーの有無の判定を行う（ステップＳ２３１１）。受信エラーがなかった場合には、受信成功時用関数を呼び出す（ステップＳ２３１２）。これに対し、受信エラーがあった場合には、受信失敗時用関数を呼び出し（ステップＳ２３１３）、エラーフラグをクリアし（ステップＳ２３１４）、接続状態フラグをクリアする（ステップＳ２３１５）。最後に、受信ブロック数のカウンタを初期化し（ステップＳ２３１６）、データ受信処理を終了する。
【００４５】
（データ受信時のエラーチェック処理）
図１１はデータ受信時のエラーチェック処理（ステップＳ２３３）のフローチャートである。まず、パリティエラーのチェックを行い（ステップＳ２３３１）、エラーが生じていた場合には、パリティエラーのフラグをセットする（Ｓ２３３２）。
【００４６】
次に、ノイズエラーのチェックを行い（ステップＳ２３３３）、エラーが生じていた場合には、ノイズエラーのフラグをセットする（Ｓ２３３４）。さらに、オーバランエラーのチェックを行い（ステップＳ２３３５）、エラーが生じていた場合には、オーバーランエラーのフラグをセットする（Ｓ２３３６）。
最後に、接続状態のフラグをチェックし（ステップＳ２３３７）、クリアされていた場合には、準備未完エラーのフラグをセットする（Ｓ２３３８）。
【００４７】
（データ受信完了時のエラーチェック処理）
図１２はデータ受信完了時のエラーチェック処理（ステップＳ２３８）のフローチャートである。まず、チェックサムエラーのチェックを行い（ステップＳ２３８１）、エラーが生じていた場合には、チェックサムエラーのフラグをセットする（Ｓ２３８２）。さらに、受信したデータの順序ビットを参照し、その順序関係にエラーが有るか無いかをチェックする（ステップＳ２３８３）。エラーが生じていた場合には順序エラーのフラグをセットする（Ｓ２３８４）。
【００４８】
（エラーメッセージの生成処理）
図１３はエラーメッセージの生成処理（ステップＳ２３９）のフローチャートである。まず、チェックサムエラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９１）、フラグがセットされていれば、エラーメッセージのチェックサムエラーのビットを１にする（ステップＳ２３９２）。
【００４９】
次に、パリティエラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９３）、フラグがセットされていれば、エラーメッセージのパリティエラーのビットを１にする（ステップＳ２３９４）。つづいて、ノイズエラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９５）、フラグがセットされていれば、エラーメッセージのノイズエラーのビットを１にする（ステップＳ２３９６）。
【００５０】
つづいて、オーバーランエラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９７）、フラグがセットされていれば、エラーメッセージのオーバーランエラーのビットを１にする（ステップＳ２３９８）。つづいて、タイムアウトエラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９９）、フラグがセットされていれば、エラーメッセージのタイムアウトエラーのビットを１にする（ステップＳ２３９１０）。
【００５１】
つぎに、順序エラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９１１）、フラグがセットされていれば、エラーメッセージの順序エラーのビットを１にする（ステップＳ２３９１２）。つづいて、準備未完エラーが発生しているか否かを示すフラグをチェックし（ステップＳ２３９１３）、フラグがセットされていれば、エラーメッセージの準備未完エラーのビットを１にする（ステップＳ２３９１４）。
【００５２】
（受信タイムアウトエラー処理）
図１４は受信タイムアウトエラー処理（Ｓ４）のフローチャートである。データ受信中、最終ブロックを除くデータブロックを受信後、一定時間内に新たなデータブロックを受信しなかった場合には、データ受信処理ルーチンのステップＳ２３７でセットされていた受信タイムアウトアラームが動作し、受信タイムアウトエラー処理が実行される。
【００５３】
受信タイムアウトエラー処理のルーチンが呼び出されると、まず、タイムアウトエラーフラグをセットし（ステップＳ４１）、エラーメッセージを生成する（ステップＳ４２）。エラーメッセージの生成手順は、図１３に示されているデータ受信処理ルーチンのエラーメッセージ生成と同じである。そして、エラーメッセージを送信する（ステップＳ４３）。
【００５４】
その後、データ受信失敗時用関数を呼び出し（ステップＳ４４）、エラー発生フラグをクリアし（ステップＳ４５）、受信ブロック数カウンタを初期化する（ステップＳ４６）。最後に、接続状態フラグをクリアし（ステップＳ４７）、受信タイムアウトエラー処理を終了する。
【００５５】
（エラーメッセージ受信処理）
図１５はエラーメッセージ受信処理（Ｓ３、Ｓ５）のフローチャートである。エラーメッセージ受信処理メーチンは、データ受信装置からの応答としてエラーメッセージを受信したときに呼び出される。
【００５６】
エラーメッセージ受信処理では、まず、応答の受信動作を禁止する（ステップＳ３１）。その後、エラーメッセージの受信エラーチェックを行い（ステップＳ３２）、受信したエラーメッセージに基づいてエラーフラグをセットする（ステップＳ３３）。
【００５７】
つぎに、エラー発生フラグが少なくとも一つオンになっているか否か、すなわち、エラー発生フラグが有るか否かをチェックする（ステップＳ３４）。エラーが発生していなければ、データ送信成功時関数を呼び出す（ステップＳ３５）。これに対し、エラーが発生していれば、データ送信失敗時用関数を呼び出し（ステップＳ３６）、そして、エラー発生フラグをクリアする（ステップＳ３７）。
【００５８】
（エラーメッセージ受信エラーチェック処理）
図１６はエラーメッセージ受信エラーチェック（ステップＳ３２）のフローチャートである。これは、図６に示されているような応答メッセージ自体の受信エラーチェックである。
【００５９】
まず、受信した応答メッセージのパリティエラーのチェックを行い（ステップＳ３２１）、エラーが生じていれば、パリティエラーのフラグをセットする（Ｓ３２２）。
【００６０】
次に、ノイズエラーのチェックを行い（ステップＳ３２３）、エラーが生じていれば、ノイズエラーのフラグをセットする（Ｓ３２４）。さらに、オーバーランエラーのチェックを行い（ステップＳ３２５）、エラーが生じていれば、オーバーランエラーのフラグをセットする（Ｓ３２６）。
この実施形態では、エラーメッセージ受信のエラーチェックは、上述したように、パリティエラー、ノイズエラー、オーバーランエラーの３つのである。
【００６１】
（受信エラーメッセージに基づくエラーフラグセット処理）
図１７は受信したエラーメッセージに基づいてエラーフラグをセットする処理（ステップＳ３３）のフローチャートである。
【００６２】
まず、エラーメッセージのチェックサムエラーのビットが１（オン）であるか否かをチェックし（ステップＳ３３１）、ビットが１ならば、チェックサムエラーの発生フラグをセットする（ステップＳ３３２）。次に、エラーメッセージのパリティエラーのビットが１であるか否かをチェックし（ステップＳ３３３）、ビットが１ならば、パリティエラーの発生フラグをセットする（ステップＳ３３４）。
【００６３】
更に、エラーメッセージのノイズエラーのビットが１であるか否かをチェックし（ステップＳ３３５）、ビットが１ならば、ノイズエラーの発生フラグをセットする（ステップＳ３３６）。つづいて、エラーメッセージのオーバーランエラーのビットが１であるか否かをチェックし（ステップＳ３３７）、ビットが１ならばオーバーランエラーの発生フラグをセットする（ステップＳ３３８）。
【００６４】
更に、エラーメッセージのタイムアウトエラーのビットが１であるか否かをチェックし（ステップＳ３３９）、ビットが１ならば、タイムアウトエラーの発生フラグをセットする（ステップＳ３３１０）。つづいて、エラーメッセージの順序エラーのビットが１であるか否かをチェックし（ステップＳ３３１１）、ビットが１ならば、順序エラーの発生フラグをセットする（Ｓ３３１２）。最後に、エラーメッセージの準備未完エラーのビットが１であるか否かをチェックし（ステップＳ３３１３）、ビットが１ならば、準備未完エラーの発生フラグをセットする（ステップＳ３３１４）。
【００６５】
（送信タイムアウトエラー処理）
図１８は送信タイムアウトエラー処理（Ｓ６）のフローチャートである。データブロックを送信後、一定時間内に送信先より応答がなかった場合には、送信タイムアウトエラー処理が実行される。
【００６６】
送信タイムアウトエラー処理ルーチンでは、まず、応答受信動作を禁止する（ステップＳ６１）。つづいて、タイムアウトエラーのフラグをセットする（ステップＳ６２）。その後、送信失敗時用の関数を呼び出す（ステップＳ６３）。最後に、エラー発生フラグをクリアし（ステップＳ６４）、送信タイムアウトエラー処理を終了する。
【００６７】
上述した各処理が行われることにより、次のような効果が得られる。
（１）データ受信装置側で、通信エラー検出手段１７２により検出される通信エラーの種類を示したエラーメッセージがエラーメッセージ生成手段１７３によって生成され、このエラーメッセージを応答として応答送信手段１７４によりデータ送信元に送信することができる。データ受信装置で検出したエラーの種類の情報を、応答としてデータ送信装置へ返信することによって、データ送信装置でもデータ受信装置で検出したエラーの種類の情報を得ることができる。
（２）エラーメッセージ生成手段１７３により生成されたエラーメッセージをビットワードのデータとして、特定のビットの０または１と、各ビット毎に特定のエラーの発生とを対応させることにより、データ受信装置で検出した特定のエラーの発生を示す情報を簡潔なフォーマットで通信することができる。
【００６８】
（３）エラーメッセージ生成手段１７３により生成されるエラーメッセージに、少なくともパリティエラーと、チェックサムエラーと、ＣＲＣエラーと、ノイズエラーと、オーバーランエラーと、タイムアウトエラーと、送信データの順序関係が乱れたことを示す順序エラーと、送信手段と受信手段との間の接続処理がなされていないことを示す準備未完エラーとのいずれか一つのエラーに関して、エラーが発生したことを示す情報を有することが可能になり、しかも、通信エラーが発生した時に、発生したエラー内容の具体的な情報を得ることができる。
（４）エラーメッセージのサイズは、１バイト（例えば、９ビット）で、市場に多く流通しているシリアル通信チップのデータ送受信の最小単位の通信量で効率よくエラーメッセージの送受信が行うことができる。
【００６９】
（５）エラーが発生しなかったことを示すエラーメッセージを送信側の応答受信手段１６２により受信したときに、データ送信が正常に完了したと判断することができる。また、受信成功時の肯定応答と、受信失敗時の否定応答とを同一のフォーマット（所定ビットによるエラーメッセージのフォーマット）で記述することができ、効率のよいデータ通信を実行することが可能になる。
（６）データ送信手段１６１によってデータ送信した後、少なくとも応答受信手段１６２によって応答を受信するまでと、一定時間経過するまでとのいずれか一つの条件が満たされるまでに限り、応答受信手段を動作させ、エラーメッセージの受信を許可するから、応答を受信すべきでないときには応答受信機能が停止し、応答を受信すべきではないときに発生したノイズなどに対しては、不要な受信処理およびエラー処理を実行せず、効率よく処理を行うことが可能になる。
（７）高速かつエラー情報に対してきめ細かい対応が可能なデータ送受信機能を有する電子制御装置や分散制御システムを実現でき、特に、自動車用Ｘ−Ｂｙ−Ｗｉｒｅのような通信システムを有する車両用分散制御システムを実現できる。
【００７０】
【発明の効果】
以上の説明から理解される如く、この発明によるデータ通信装置によれば、発生したエラー内容の具体的な情報を送信元で得ることができ、通信エラー発生時に、きめ細かい適切な処置を送信側で取ることが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態のデータ通信装置を有する車両用エンジン分散制御システムの基本構成を示すブロック図。
【図２】本実施形態のデータ送信装置のブロック図。
【図３】本実施形態のデータ受信装置のブロック図。
【図４】本実施形態における送信データのフォーマットを示す図。
【図５】本実施形態におけるエラーメッセージのフォーマットを示す図。
【図６】本実施形態におけるデータ通信処理の動作を示すフロー図。
【図７】本実施形態におけるデータ／接続要求送信処理のフローチャート。
【図８】本実施形態における信号受信処理のフローチャート。
【図９】本実施形態における接続要求受信処理のフローチャート。
【図１０】本実施形態におけるデータ受信処理のフローチャート。
【図１１】本実施形態におけるデータ受信処理中のエラーチェック処理のフローチャート。
【図１２】本実施形態におけるデータ受信処理中の受信完了時におけるエラーチェック処理のフローチャート。
【図１３】本実施形態におけるエラーメッセージ生成処理のフローチャート。
【図１４】本実施形態における受信タイムアウトエラー発生時の処理のフローチャート。
【図１５】本実施形態におけるエラーメッセージ受信時の処理のフローチャート。
【図１６】本実施形態におけるエラーメッセージ受信時における受信エラーチェック処理のフローチャート。
【図１７】本実施形態におけるエラーメッセージの読み込み処理のフローチャート。
【図１８】本実施形態における送信タイムアウトエラー発生時の処理のフローチャート。
【符号の説明】
１０、３０…電子制御装置（ＥＣＵ）
１６、３６…データ送信装置
１７、３７…データ受信装置
５１、５３…データ送信線
５２、５４…応答送信線
１６１…データ送信手段
１６２…応答受信手段
１７１…データ受信手段
１７２…通信エラー検出手段
１７３…エラーメッセージ生成手段
１７４…応答送信手段
【図１】
2004222071.tif 000003
【図２】
2004222071.tif 000004
【図３】
2004222071.tif 000005
【図４】
2004222071.tif 000006
【図５】
2004222071.tif 000007
【図６】
2004222071.tif 000008
【図７】
2004222071.tif 000009
【図８】
2004222071.tif 000010
【図９】
2004222071.tif 000011
【図１０】
2004222071.tif 000012
【図１１】
2004222071.tif 000013
【図１２】
2004222071.tif 000014
【図１３】
2004222071.tif 000015
【図１４】
2004222071.tif 000016
【図１５】
2004222071.tif 000017
【図１６】
2004222071.tif 000018
【図１７】
2004222071.tif 000019
【図１８】
2004222071.tif 000020