(57)【特許請求の範囲】
【請求項１】
マイクロコンピュータのパラレルバスを介して送信用データメモリに書き込まれた送信内容のデータを、通信エラーを検出するための誤り検出用データを付加して多重通信バスに送出するとともに、多重通信バスから受信したデータを上記誤り検出用データを用いてチェックし、通信エラーがない場合、受信データを受信用データメモリにストアする通信手段を備えた多重通信装置であって、
上記パラレルバスを介して上記送信用データメモリに書き込む送信内容のデータを、該データのエラーを検出するための第２の誤り検出用データを付加して上記送信用データメモリに書き込む手段と、
上記受信用データメモリから上記パラレルバスを介して読み込むデータを、該データに含まれる上記第２の誤り検出用データを用いて正常か否かを判定する手段と、
上記受信用データメモリから読み込んだデータが正常であると判定した場合、上記通信手段が新たなデータを受信する前に、上記受信用データメモリの上記第２の誤り検出用データを格納するエリアに任意のデータを書き込む手段とを備えたことを特徴とする多重通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信処理を専用に行う通信手段を備えた多重通信装置に関し、詳しくは、多重通信バスから正常に受信したデータをマイクロコンピュータ内に取り込む際、メモリ異常やバス上のノイズによるデータの誤りを検出する多重通信装置に関する。
【０００２】
【従来の技術】
近年、自動車等の車両においては、複数の電子制御ユニット（ＥＣＵ）を搭載してエンジン、トランスミッション、サスペンション、エアコン等の様々な制御を各ＥＣＵで分担するようになり、これら複数のＥＣＵを多重通信バスで接続し、制御データや制御指令等のやり取りを行なうことでトータルな制御性の向上を図るようにしている。
【０００３】
このようなシステムでは、各ＥＣＵに、多重通信バスを介した通信処理を専用に行う通信コントローラ等の通信手段をＥＣＵ内のマイクロコンピュータのパラレルバスに接続し、制御処理を担うＣＰＵを通信処理から解放して負荷を軽減するようにしたものが多い。
【０００４】
例えば、特開平６−２６８５８１号公報には、各部の動作を制御するＣＰＵにパラレルバスを介して１つの親局を接続すると共に、この親局（マスター局）に多重通信バスを介して複数の子局（スレーブ局）を接続し、ＣＰＵからの制御指令や制御データを親局から子局に多重通信バスを介して送信し、また、親局が多重通信バスを介して受信した子局からのデータをＣＰＵに供給する移動体用多重通信装置が開示されている。
【０００５】
【発明が解決しようとする課題】
ところで、データ通信においては、１伝送単位毎に、相手先で必要とするデータに対し、宛先や識別コード等のデータ、通信制御用のコード等を付加すると共に、通信のバス上に混入するノイズの影響等に起因する伝送上の誤りを検出するための誤り検出用データを付加して送信することが一般的に行われており、誤り検出用データとしては、１伝送単位毎にビット列を２進数とみなして予め定められた多項式で除算した余りをチェックビットとして付加するＣＲＣチェック方式、データの総和を付加するサムチェック方式、一定単位毎に１ビットの冗長ビットを付加するパリティチェック方式等によるデータが用いられる。
【０００６】
しかしながら、通信処理を専用に行う通信コントローラによって制御処理を担うＣＰＵの負荷を軽減しようとする場合、通信コントローラでは上述の誤り検出用データを用いて多重通信バス上で生じるエラーを検出し、異常処理等を行うことが可能であるものの、マイクロコンピュータのパラレルバスを介しての通信コントローラとＣＰＵとの間のデータのやり取りに関して発生する異常を検出することは困難である。
【０００７】
このため、従来では、マイクロコンピュータのメモリの異常やパラレルバス上に乗ったノイズによる異常、更には、通信コントローラ自身に備えた送受信用データメモリに異常が発生し、通信コントローラとＣＰＵとの間で誤ったデータがやり取りされた場合であっても、通信が正常に行われている限り、誤ったデータを正常とみなして使用する可能性があり、システム全体の信頼性を低下させる原因となる。
【０００８】
本発明は上記事情に鑑みてなされたもので、多重通信バスから正常に受信したデータをマイクロコンピュータ内に取り込む際、メモリ異常やバス上のノイズによるデータの誤りをチェックし、システムの信頼性を向上することのできる多重通信装置を提供することを目的としている。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明は、マイクロコンピュータのパラレルバスを介して送信用データメモリに書き込まれた送信内容のデータを、通信エラーを検出するための誤り検出用データを付加して多重通信バスに送出するとともに、多重通信バスから受信したデータを上記誤り検出用データを用いてチェックし、通信エラーがない場合、受信データを受信用データメモリにストアする通信手段を備えた多重通信装置であって、上記パラレルバスを介して上記送信用データメモリに書き込む送信内容のデータを、該データのエラーを検出するための第２の誤り検出用データを付加して上記送信用データメモリに書き込む手段と、上記受信用データメモリから上記パラレルバスを介して読み込むデータを、該データに含まれる上記第２の誤り検出用データを用いて正常か否かを判定する手段と、上記受信用データメモリから読み込んだデータが正常であると判定した場合、上記通信手段が新たなデータを受信する前に、上記受信用データメモリの上記第２の誤り検出用データを格納するエリアに任意のデータを書き込む手段とを備えたことを特徴とする。
【００１２】
すなわち、請求項１記載の発明では、送信内容データに第２の誤り検出用データを付加し、パラレルバスを介して送信用データメモリに書き込むと、通信手段が通信エラーを検出するための誤り検出用データを付加して多重通信バスに送出する。そして、通信手段が多重通信バスを介してデータを受信し、誤り検出用データを用いて通信エラーがないことを確認した上で受信用データメモリに格納すると、この受信用データメモリからパラレルバスを介してデータを読み込み、第２の誤り検出用データを用いて読み込んだデータが正常か否かを判定することで、メモリ異常やパラレルバス上のノイズ等による通信内容データの誤りを検出する。そして、受信用データメモリから読み込んだデータが正常であると判定した場合、通信手段が新たなデータを受信する前に、受信用データメモリの第２の誤り検出用データを格納するエリアに任意のデータを書き込むことで、通信手段が新たなデータを受信してデータを更新しない限り通信上のエラー発生或いはマイクロコンピュータ内での異常発生であることを認識可能とし、また、受信データが変更されることを待つことなく、メモリ異常を早期に検出可能とする。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図４は本発明の実施の第１形態に係わり、図１は通信フォーマットを示す説明図、図２はＥＣＵの送信動作に係わる処理を示すフローチャート、図３はＥＣＵの受信動作に係わる処理を示すフローチャート、図４は制御システムの要部構成を示す説明図である。
【００１６】
図４は、例えば自動車等の車両に搭載される複数の電子制御ユニット（ＥＣＵ）を多重通信系を介して結合してなる制御システムの構成を示し、図においては、複数のＥＣＵをＥＣＵ１０とＥＣＵ２０とで代表し、ＥＣＵ１０とＥＣＵ２０とが多重通信バス３０を介して接続されると共に、図示しない他のＥＣＵに多重通信バス３０を介して接続されている。以下、各ＥＣＵ間の通信を、ＥＣＵ１０とＥＣＵ２０との間の通信として説明する。
【００１７】
ＥＣＵ１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、図示しないセンサ・スイッチ類やアクチュエータ類が接続される入出力（Ｉ／Ｏ）インターフェース１４、多重通信バス３０を介した通信処理を専用に行う通信手段としての通信コントローラ１５をパラレルバス１６を介して互いに接続してなるマイクロコンピュータを中心として構成され、その他、各部に安定化電源を供給する電源回路１７を備えている。
【００１８】
ＥＣＵ２０も同様であり、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、Ｉ／Ｏインターフェース２４、通信コントローラ２５をパラレルバス２６を介して互いに接続してなるマイクロコンピュータを備え、その他、各部に安定化電源を供給する電源回路２７を備えている。
【００１９】
ＥＣＵ１０とＥＣＵ２０との間の多重通信バス３０を介した通信は、専用の通信コントローラ１５，２５によって管理・制御され、ＣＰＵ１１，２１の通信処理に要する負荷を軽減しつつ、多重通信バス３０に混入するノイズの影響等に起因する伝送上の誤りを検出し、確実且つ高速なデータ伝送を実現することができる。
【００２０】
すなわち、例えばＥＣＵ１０からＥＣＵ２０へデータを送信する場合、ＥＣＵ１０側では、ＣＰＵ１１が、例えばエンジン回転数やスロットル開度といった制御データ等の送信対象とする内容データをパラレルバス１６を介して通信コントローラ１５内の送信用データメモリに書き込み、送信を許可すると、通信コントローラ１５では、送信用データメモリに書き込まれたデータに、宛先や識別コード等のデータ、ＣＲＣチェック方式、サムチェック方式、パリティチェック方式等による伝送上のエラーを検出するための誤り検出用データ、その他、通信制御用のコード等を通信の１パケット毎に付加し、多重通信バス３０に送出する。
【００２１】
受信側のＥＣＵ２０では、通信コントローラ２５が多重通信バス３０からデータを受信し、受信した１パケット毎のデータを、ＣＲＣチェックコードやサムチェックデータ等によって伝送上の異常がないか否かをチェックする。そして、正常に通信で伝送上の誤りが無ければ、通信コントローラ２５内の受信用データメモリに格納し、異常であれば、再度、送信を要求する等の処理を行う。
【００２２】
ここで、各ＥＣＵを結合する多重通信系としては、高速通信に対応可能な通信ネットワークを採用することが望ましく、本形態では、車両の通信ネットワークとしてＩＳＯの標準プロトコルの一つであるＣＡＮ（Controller Area Network）を例に取って説明する。
【００２３】
周知のように、ＣＡＮのメッセージは、データ送信用のデータフレーム、送信要求のリモートフレーム、通信エラー検出時のエラーフレーム、受信側が受信準備未了時に出力するオーバーロードフレームの４種類であり、制御データや制御指令等の送受信に使用されるデータフレームは、図１に示されるフォーマットを備えている。
【００２４】
すなわち、データフレームでは、通信開始のスタートオブフレームに続くアービトレーションフレームに、メッセージの優先順位を決定すると共にメッセージの宛先・内容を識別するためのアイデンティファイアが格納され、さらに、通信制御用のコントロールフィールドに続くデータフィールドに、制御指令や制御データ等の送信とするデータが格納される。データフィールドの後は、通信エラーチェック用のＣＲＣフィールド、メッセージの終わりを示すエンドオブフレーム等が続き、エンドオブフレームとスタートオブフレームとの間がメッセージとメッセージとの間を示すインターフレームスペースとなる。
【００２５】
データフィールドは、ｎバイトの可変長フィールド（ｎ＝０〜８：ｎ＝０でリモートフレーム）であり、各ＥＣＵ間の制御データに関する通信では、ｎ＝１〜８のデータフィールドにおいて、１バイト或いは２バイト毎に、例えば、バッテリ電圧、エンジン回転数、スロットル開度等の各制御項目を割り当てることができ、また、１バイトの各ビット毎に各種スイッチのＯＮ，ＯＦＦ状態、変速機のレンジ位置等を割り当てることができる。
【００２６】
この場合、多重通信バス３０を介した通信上のエラーは通信コントローラ１５，２５によってチェックされるが、通信コントローラ１５とＣＰＵ１１との間のデータのやり取り、或いは通信コントローラ２５とＣＰＵ２１との間のデータのやり取りに際し、通信コントローラ１５，２５内のメモリやＲＡＭ１３，２３の送受信バッファエリアに発生する一過性の異常、パラレルバス１６，２６上のノイズ等によって発生する異常を、通信コントローラ１５，２５側で検出することは困難である。
【００２７】
従って、多重通信バス３０を介した通信で異常が発生していないにも拘わらず、ＥＣＵ１０内部の通信コントローラ１５とＣＰＵ１１との間や、ＥＣＵ２０内部の通信コントローラ２５とＣＰＵ２１との間で、誤ったデータがやり取りされる可能性がある。
【００２８】
このため、各ＥＣＵ１０，２０の各ＣＰＵ１１，２１では、送信時、通信コントローラ１５，２５が通信上のエラーを検出するために送信の１パケット（１フレーム）毎に付加するＣＲＣチェックコード等の誤り検出用データとは別に、制御指令や制御データ等の送信対象とする内容データに対し、この送信内容データのエラーを検出するためのＣＲＣチェックコードやサムチェックデータ等の第２の誤り検出用データを付加するようにしており、この第２の誤り検出用データを付加したデータを、データフィールドに格納するデータとして、パラレルバス１６，２６を介して通信コントローラ１５，２５内の送信用データメモリに書き込む。
【００２９】
同時に、ＣＰＵ１１，２１は、通信コントローラ１５，２５の受信用データメモリからパラレルバス１６，２６を介して読み込むデータフィールドの内容に対し、読み込んだデータに誤りがないか否かをデータフィールド内に含まれる第２の誤り検出用データを用いて判定するようにしており、通信コントローラ１５，２５内のメモリやＲＡＭ１３，２３の送受信バッファエリアに発生する異常、パラレルバス１６，２６上のノイズ等によって発生する異常等によるデータ化けを検出することができる。
【００３０】
本形態では、データフィールドに含める第２の誤り検出用データとしてサムチェックデータを用いるようにしており、図１に示すように、データフィルードの送信内容データＤＡＴＡ１，ＤＡＴＡ２，ＤＡＴＡ３，…に、データＤＡＴＡ１，ＤＡＴＡ２，ＤＡＴＡ３，…の総和を取った１バイト或いは２バイトのサムチェックデータＳＵＭを付加する。
【００３１】
すなわち、各ＥＣＵ１０，２０の各マイクロコンピュータには、送信内容データに第２の誤り検出用データを付加して通信コントローラ１５，２５の送信用データメモリに書き込む手段、及び、通信コントローラ１５，２５の受信用データメモリから読み込むデータを第２の誤り検出用データを用いて正常か否かを判定する手段としての機能が備えられており、具体的には、図２及び図３のフローチャートに示す処理において、各手段の機能を実現する。
【００３２】
以下、各ＥＣＵにおける送信動作及び受信動作について、図２及び図３のフローチャートを用いて説明する。
【００３３】
図２は、各ＥＣＵにおける送信時の動作を示すフローチャートであり、例えば、ＥＣＵ１０からＥＣＵ２０を対象として制御データを送信する場合、先ず、ステップＳ１０でＣＰＵ１１が送信内容の制御データＤＡＴＡ１，ＤＡＴＡ２，ＤＡＴＡ３，ＤＡＴＡ４，ＤＡＴＡ５，ＤＡＴＡ６，ＤＡＴＡ７を全て加算し、サムチェックデータＤＡＴＡ８を算出する。
【００３４】
次いで、ステップＳ２０で、制御データＤＡＴＡ１〜ＤＡＴＡ７の末尾にサムチェックデータＤＡＴＡ８を付加したデータを通信コントローラ１５の送信用データメモリに書き込み、通信コントローラ１５に送信開始を許可して、本来の制御処理に戻る。
【００３５】
ステップＳ３０以降は通信コントローラ１５側の処理であり、ステップＳ３０で、送信用データメモリに書き込まれたデータＤＡＴＡ１〜ＤＡＴＡ８をデータフィールドに格納し、前後に、アイデンティファイアを格納したアービトレーションフレームやＣＲＣチェックコードを格納したＣＲＣフィールド等を付加して１パケットの通信メッセージを生成する。そして、ステップＳ４０で、多重通信バス３０上に優先順位が上位のメッセージが送出されていないことを確認した上でパケットを多重通信バス３０に送出し、今回の送信動作を完了する。
【００３６】
一方、図３は多重通信バス３０上に送出されたデータに対する受信動作を示すフローチャートであり、受信側であるＥＣＵ２０では、ステップＳ５０で、通信コントローラ２５が多重通信バス３０から受信したデータに対するＣＲＣチェックを行い、その結果、異常であれば、ステップＳ６０へ分岐し、エラーフレームの送出による他のＥＣＵへの異常通達やリモートフレームの送出による再送信要求等の異常時処理を行って今回の受信動作を完了する。
【００３７】
また、ステップＳ５０での受信データに対するＣＲＣチェックの結果、正常である場合には、メッセージのアイデンティファイアから取り込むべきデータか否かを識別し、予めＣＰＵ２１によって指定されたアイデンティファイアと一致する場合、受信用データメモリに受信データを書き込み、例えば割り込みをかける等してデータ受信があったことをＣＰＵ２１に知らせ、次のメッセージの受信に備える。
【００３８】
続くステップＳ７０以降はＣＰＵ２１側の処理であり、ステップＳ７０で、受信データからアイデンティファイア、ＣＲＣチェックコード、その他の制御コードを外したデータフィールドの内容を、ＣＰＵ２１が通信コントローラ２５の受信用データメモリから読み込み、一旦、ＲＡＭ２３の送受信バッファエリアにストアする。
【００３９】
次に、ステップＳ８０で、各データＤＡＴＡ１〜ＤＡＴＡ７を加算して総和を取り、最後のサムチェックデータＤＡＴＡ８と比較する。そして、データＤＡＴＡ１〜ＤＡＴＡ７の総和と、サムチェックデータＤＡＴＡ８とが一致した場合、ＲＡＭ２３の送受信バッファエリアにストアしたデータの内容は正しいと判定し、ステップＳ９０でデータＤＡＴＡ１〜ＤＡＴＡ７を制御データとして用いた処理を行い、今回の受信動作を完了する。
【００４０】
また、ステップＳ８０で、データＤＡＴＡ１〜ＤＡＴＡ７の総和とサムチェックデータＤＡＴＡ８とが一致しない場合には、ＲＡＭ２３の送受信バッファエリアにストアしたデータの内容には誤りがあると判定し、ステップＳ１００で、ＲＡＭ２３の送受信バッファエリアのデータを破棄し、前回のデータを使用する等の異常処理を行って今回の受信動作を完了する。
【００４１】
これにより、多重通信バス３０上に乗るノイズ等の影響による通信上のエラーを通信コントローラ１５や通信コントローラ２５で検出し、ＣＰＵ１１，２１に負荷をかけることなく異常時処理を行えると同時に、ＣＰＵ１１，２１と通信コントローラ１５，２５との間におけるＲＡＭ１３，２３の異常やパラレルバス１６，２６上のノイズ等によるデータ化けを検出することが可能となり、各ＥＣＵのマイクロコンピュータ内での送信内容データのやり取りを保証し、システム全体の信頼性を向上することができる。
【００４２】
図５は本発明の実施の第２形態に係わり、ＥＣＵの受信動作に係わる処理を示すフローチャートである。
【００４３】
第２形態は、通信コントローラからのデータ受信を知らせる割り込み等による新たな負荷をＣＰＵ側に生じることなく、受信データが更新されなかったことを検出可能とするものであり、受信用データメモリから読み込んだデータが正常であると判定した場合、通信コントローラが新たなデータを受信する前に、受信用データメモリの第２の誤り検出用データを格納するエリアに任意のデータを書き込む機能を追加するものである。
【００４４】
すなわち、例えばＥＣＵ２０を受信側として説明すると、図５に示すように、第１形態と同様、ステップＳ５０でのＣＲＣチェック結果、正常であり、ステップＳ７０を経てステップＳ８０へ進むと、ＣＰＵ２１がデータＤＡＴＡ１〜ＤＡＴＡ７の総和とサムチェックデータＤＡＴＡ８とを比較する。
【００４５】
そして、サムチェックが正常である場合には、ステップＳ８０からステップＳ８５へ進んで、通信コントローラ２５の受信用データメモリのサムチェックデータＤＡＴＡ８が格納されるエリアに、ＣＰＵ２１が任意の数値（例えばａａＨ）を書き込み、ステップＳ９０で、データＤＡＴＡ１〜ＤＡＴＡ７を制御データとして用いた処理を行い、今回の受信動作を完了する。
【００４６】
これにより、システムとして送受信が一定周期で行われるよう規定されており、データ受信の度に通信コントローラ２５からＣＰＵ２１へ割り込み等をかけず、一定周期毎にＣＰＵ２１が通信コントローラ２５の受信用データメモリを読みに行く場合、次の周期で受信が行われずに受信データが更新されなかったとき、データＤＡＴＡ１〜ＤＡＴＡ７の総和と任意の数値で書き換えられたサムチェックデータＤＡＴＡ８とが一致しないことになり、ＣＰＵ２１は、通信上のエラーによってデータ受信がなく前周期のデータのままである、或いは内部での異常発生によるサムチェックの不一致であるといったことを認識でき、異常動作を未然に防止することができる。
【００４７】
また、送受信が一定周期で行われるとは限らず、前回のデータと同じデータが継続して送られるような場合、前述の第１形態では、通信コントローラ１５，２５のデータメモリエリア、或いは、ＲＡＭ１３，２３の送受信用バッファエリアにビット固着等の異常が発生すると、それまでと違うデータが送られるまで異常を検出することは困難であるが、本形態では、受信データを正常に受け取った後、新たなデータを受信する前にサムチェックデータＤＡＴＡ８を任意の数値で書き換えるため、受信データが変更されることを待つことなく早期にメモリ異常を検出することができる。
【００４８】
【発明の効果】
以上説明したように、請求項１記載の発明によれば、送信内容データに第２の誤り検出用データを付加し、パラレルバスを介して送信用データメモリに書き込むと、通信手段が通信エラーを検出するための誤り検出用データを付加して多重通信バスに送出する。そして、通信手段が多重通信バスを介してデータを受信し、誤り検出用データを用いて通信エラーがないことを確認した上で受信用データメモリに格納すると、この受信用データメモリからパラレルバスを介してデータを読み込み、第２の誤り検出用データを用いて読み込んだデータが正常か否かを判定するので、多重通信バスから正常に受信したデータをマイクロコンピュータ内に取り込む際、メモリ異常やバス上のノイズによるデータの誤りを検出ことができ、システムの信頼性を向上することができる。そして、受信用データメモリから読み込んだデータが正常であると判定した場合、通信手段が新たなデータを受信する前に、受信用データメモリの第２の誤り検出用データを格納するエリアに任意のデータを書き込むので、通信手段が新たなデータを受信してデータを更新しない限り通信上のエラー発生或いはマイクロコンピュータ内での異常発生であることを認識させることができ、また、受信データが変更されることを待つことなく、メモリ異常を早期に検出することができる。
【図面の簡単な説明】
【図１】本発明の実施の第１形態に係わり、通信フォーマットを示す説明図
【図２】同上、ＥＣＵの送信動作に係わる処理を示すフローチャート
【図３】同上、ＥＣＵの受信動作に係わる処理を示すフローチャート
【図４】同上、制御システムの要部構成を示す説明図
【図５】本発明の実施の第２形態に係わり、ＥＣＵの受信動作に係わる処理を示すフローチャート
【符号の説明】
１１，２１…ＣＰＵ
１５，２５…通信コントローラ（通信手段）
１６，２６…パラレルバス
３０      …多重通信バス
ＤＡＴＡ１〜ＤＡＴＡ７…送信内容データ
ＳＵＭ，ＤＡＴＡ８…サムチェックデータ（第２の誤り検出用データ）
【図１】
0003639455.tif 000002
【図２】
0003639455.tif 000003
【図３】
0003639455.tif 000004
【図４】
0003639455.tif 000005
【図５】
0003639455.tif 000006