(57)【特許請求の範囲】
【請求項１】
複数の種類のデータを周期的に送受信する複数の電子制御装置の間の通信異常を検知する通信異常検知装置において、前記複数の電子制御装置の一方は、前記複数の種類のデータの内、今回送信すべきデータを決定し、少なくとも前記決定した送信すべきデータの種類に応じたコマンドを他方に送信し、前記他方に、受信した前記コマンドに応じてウオッチドッグタイマの値を初期化するウオッチドッグパルスの周期を変更させると共に、前記変更されたウオッチドッグパルスの周期を計測し、前記計測されたウオッチドッグパルスの周期が前記送信したコマンドに応じて変更されていないとき、前記通信異常があると検知することを特徴とする通信異常検知装置。
【請求項２】
前記一方は、前記一方と他方の演算負荷に基づいて前記複数種の制御データの内、今回送信すべきデータを決定することを特徴とする請求項１記載の通信異常検知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信異常検知装置に関し、より具体的には複数の電子制御装置の間の通信異常を検知する装置に関する。
【背景技術】
【０００２】
一般的に内燃機関には、それを制御する上で燃料噴射装置（インジェクタ）、点火装置（イグナイタ）およびスロットルバルブなどの駆動をそれぞれ電子的に制御すべく複数の電子制御装置（ＥＣＵ(Electronic Control Unit)）が設けられる。各電子制御装置はＣＡＮ(Controller Area Network)通信などにより、それらを駆動制御するために必要となる複数種のデータを互いに送受信する。従来、複数種のデータを送受信する電子制御装置の間の通信異常を検知するものとして様々なものが提案されている。
【０００３】
例えば、下記の特許文献１にあっては、送信側の電子制御装置において複数の数値データを送信するに際し、複数の数値データの合計値を送信データに付加すると共に、受信側の電子制御装置において受信した複数の数値データの合計値を算出し、算出された合計値と受信した合計値を比較して確認することにより、電子制御装置の間の通信異常を検知している。また、下記の特許文献２にあっては、送信側の電子制御装置において送信データに通信毎に変化する監視情報、具体的には通信毎に１と０のいずれか交互に変化させられるフラグを付加して送信すると共に、受信側の電子制御装置において当該フラグの通信毎の変化を監視することにより、電子制御装置の間の通信異常を検知している。
【特許文献１】特許第３１５６４９３号
【特許文献２】特開２００１−１９７１５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した特許文献に記載の通信異常検知は、送信側の電子制御装置において確認用あるいは監視用のデータを送信データに付加して送信し、受信側の電子制御装置においてそれを確認あるいは監視する構成であることから、送信側の電子制御装置が通信毎に送信データを更新することができずに同一内容のデータを繰り返して送信するといった通信異常を検知することができなかった。また、送信データに確認用あるいは監視用のデータを別途設ける必要があることから、通信リソースを有効に利用する点では改善の余地があった。
【０００５】
従って、この発明の目的は上記した課題を解決し、複数の種類のデータを周期的に送受信する複数の電子制御装置の間の通信異常を検知する通信異常検知装置において、同一内容のデータを繰り返して送信するといった通信異常を検知すると共に、送信データに確認用あるいは監視用のデータを別途設けることなく、通信リソースを有効に利用するようにした通信異常検知装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記の目的を解決するために、請求項１にあっては、複数の種類のデータを周期的に送受信する複数の電子制御装置の間の通信異常を検知する通信異常検知装置において、前記複数の電子制御装置の一方は、前記複数の種類のデータの内、今回送信すべきデータを決定し、少なくとも前記決定した送信すべきデータの種類に応じたコマンドを他方に送信し、前記他方に、受信した前記コマンドに応じてウオッチドッグタイマの値を初期化するウオッチドッグパルスの周期を変更させると共に、前記変更されたウオッチドッグパルスの周期を計測し、前記計測されたウオッチドッグパルスの周期が前記送信したコマンドに応じて変更されていないとき、前記通信異常があると検知する如く構成した。
【０００７】
また、請求項２にあっては、前記一方は、前記一方と他方の演算負荷に基づいて前記複数種の制御データの内、今回送信すべきデータを決定する如く構成した。
【０００８】
上記において「通信異常」とは、電子制御装置の一方が同一内容のデータを繰り返して送信するといった通信内容の異常をいうが、電子制御装置の他方における受信異常や演算異常を含むものと解しても良い。
【発明の効果】
【０００９】
請求項１にあっては、複数の種類のデータを周期的に送受信する複数の電子制御装置の一方は、複数の種類のデータの内、今回送信すべきデータを決定し、少なくとも決定した送信すべきデータの種類に応じたコマンドを他方に送信し、他方に、受信したコマンドに応じてウオッチドッグタイマの値を初期化するウオッチドッグパルスの周期を変更させると共に、変更されたウオッチドッグパルスの周期を計測し、計測されたウオッチドッグパルスの周期が送信したコマンドに応じて変更されていないとき、通信異常があると検知するように構成したので、同一内容のデータを繰り返して送信するといった通信異常を検知することができる。
【００１０】
即ち、電子制御装置の一方は、複数の種類のデータの内、今回送信すべきデータを決定し、少なくともその決定した送信すべきデータの種類に応じたコマンドを他方に送信し、他方に、受信したコマンドに応じてウオッチドッグパルスの周期を変更させるにも関わらず、一方において計測される他方のウオッチドッグパルスの周期が送信したコマンドに応じて変更されていない場合にあっては、電子制御装置の一方が送信内容を更新することができず、前回通信時と同一内容のデータを送信する状況が想定されるため、上記のような通信異常を検知することができる。
【００１１】
また、複数の種類のデータの内、今回送信すべきデータを利用して通信異常を検知するため、送信データに確認用あるいは監視用のデータを別途設ける必要がなく、よって通信リソースを有効に利用することができる。
【００１２】
請求項２に係る通信異常検知装置にあっては、一方は、一方と他方の演算負荷に基づいて複数種の制御データの内、今回送信すべきデータを決定するように構成、換言すれば一方と他方の演算負荷に応じてウオッチドッグパルスの周期が設定されるように構成したので、一方がウオッチドッグパルスの周期を計測するために要する演算負荷と他方がウオッチドッグパルスを生成するために要する演算負荷を不要に増大させることなく、上記の効果を得ることができる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面に即してこの発明に係る通信異常検知装置を実施するための最良の形態について説明する。
【実施例１】
【００１４】
図１は、この発明の第１実施例に係る通信異常検知装置を含む複数の電子制御装置を示すブロック図である。
【００１５】
図１において、符号１０は、内燃機関（以下、「エンジン」という）の燃料噴射装置（インジェクタ）および点火装置（イグナイタ）を電子的に制御する電子制御装置（ＥＣＵ(Electronic Control Unit)。以下、「エンジン制御ユニット」という）（電子制御装置の一方）を示す（図中に「ＵＮＩＴ１」と示す）。符号１２は、スロットルバルブを電子的に制御する電子制御装置（ＥＣＵ(Electronic Control Unit)。以下「スロットルバルブ制御ユニット」という）（電子制御装置の他方）を示す（図中に「ＵＮＩＴ２」と示す）。
【００１６】
エンジン制御ユニット１０は中央演算装置たるＣＰＵ１０ａと、各種プログラムを格納するＲＯＭ（図示なし）と、各種センサから出力されたデータやＣＰＵ１０ａで演算されたデータを一時的に記憶するＲＡＭ（図示なし）からなり、各種プログラムに従って制御対象たる燃料噴射装置および点火装置の駆動を制御する。スロットルバルブ制御ユニット１２も同様なＣＰＵ１２ａ、ＲＯＭ（図示なし）、ＲＡＭ（図示なし）からなり、各種プログラムに従ってスロットルバルブの駆動を制御する。
【００１７】
エンジン制御ユニット１０とスロットルバルブ制御ユニット１２は通信線１４を介して接続され、データを他方へ送信すると共に、他方からデータを受信するための送受信機１０ｂ，１２ｂをそれぞれ備える。各送受信機１０ｂ，１２ｂはそれぞれのＣＰＵ内部に配置されるＣＡＮコントローラ１０ｃ，１２ｃによって制御される。このように、エンジン制御ユニット１０とスロットルバルブ制御ユニット１２は、いわゆるＣＡＮ(Controller Area Network)通信によって接続され、データ送受信自在とされる。
【００１８】
エンジン制御ユニット１０は、アクセル開度センサ、スロットル開度センサ、吸気圧センサなどに接続され、各種センサの出力データが入力される。具体的に、出力データはアクセル開度ＡＰ，スロットル開度θｔｈ，吸気圧ＰＡなどである。スロットルバルブ制御ユニット１２は、バッテリ電圧センサ、ホールセンサなどに接続され、各種センサの出力データが入力される。具体的に、出力データはバッテリ電圧ＶＢ，ホール電流ＩＨなどである。エンジン制御ユニット１０とスロットルバルブ制御ユニット１２は、それら複数種のデータをＣＡＮ通信を介して周期的に相互に送受信する。
【００１９】
また、スロットルバルブ制御ユニット１２はＣＰＵ１２ａの動作を監視するウオッチドッグタイマ１２ｄを備える。具体的に、ウオッチドッグタイマ１２ｄはＣＰＵ１２ａに所定の周期毎に信号（以下、「ウオッチドッグパルス」という）を発生させて自身に送信させると共に、所定時間経過してもＣＰＵ１２ａからウオッチドッグパルスが送信されないとき、ＣＰＵ１２ａの動作に割り込みをかけてＣＰＵ１２ａを再起動する。
【００２０】
ＣＰＵ１２ａが発生するウオッチドッグパルスは、専用線１６を介してエンジン制御ユニット１０のＣＰＵ１０ａにも送信される。ＣＰＵ１０ａは、送信されるウオッチドッグパルスの周期を適宜なタイマを用いて計測可能に構成される。
【００２１】
この発明に係る通信異常検知装置はＣＡＮコントローラからなると共に、複数種のデータを一方から他方に送信するに際し、エンジン制御ユニット１０とスロットルバルブ制御ユニット１２の間のＣＡＮ通信の異常を検知する。次図以降のフロー・チャートから通信異常検知について具体的に説明する。
【００２２】
図２は、送信側の電子制御装置が実行する通信異常検知に係るフロー・チャートである。送信側の電子制御装置としてはエンジン制御ユニット１０とスロットルバルブ制御ユニット１２のいずれも妥当するが、説明の便宜上、ここではエンジン制御ユニット１０を送信側の電子制御装置とする。具体的に、図２のフロー・チャートはエンジン制御ユニット１０のＣＡＮコントローラ１０ｃによって実行されるプログラムである。
【００２３】
まずＳ１０において、エンジン制御ユニット１０とスロットルバルブ制御ユニット１２の演算負荷に応じてコマンドＣＭＤが発行される。例えば、エンジン制御ユニット１０の演算負荷が高く、スロットルバルブ制御ユニット１２の演算負荷が低い場合には１のコマンドＣＭＤが発行される。逆にエンジン制御ユニット１０の演算負荷が低く、スロットルバルブ制御ユニット１２の演算負荷が高い場合にはｎのコマンドＣＭＤが発行される。尚、演算負荷の高低は各種センサの出力データに基づいて推定される。
【００２４】
コマンドＣＭＤは、１からｎ（ｎ≧２）までの自然数の内のいずれかの数値である。ｎはエンジン制御ユニット１０が送信すべきデータ種の総数に相当する。ここで、データの種類毎に異なるコマンドＣＭＤが割り当てられる。例えば、アクセル開度ＡＰには１、スロットル開度θｔｈには２，吸気圧ＰＡには３のコマンドＣＭＤが割り当てられる。
【００２５】
次いでＳ１２に進み、コマンドＣＭＤとそれに割り当てられたデータ種の数値を送信データとして送信する。ここで送信について具体的には、ＣＡＮコントローラ１０ｃがそれらを送信するように送受信機１０ｂに指示し、送受信機１０ｂがそれらを今回の送信データとして更新して送信する。また、送信データの内、少なくともコマンドＣＭＤは前記したＲＡＭに一時的に記憶される。
【００２６】
尚、Ｓ１２において複数種のデータを周期毎に送信するように、Ｓ１０においてはエンジン制御ユニット１０とスロットルバルブ制御ユニット１２の演算負荷に応じてコマンドＣＭＤを発行しつつも一定の期間で全てのコマンドＣＭＤを発行するように構成される。
【００２７】
次いで、送信データを受信する受信側の電子制御装置について説明する。
【００２８】
図３は、受信側の電子制御装置が実行する通信異常検知に係るフロー・チャートである。ここでは、スロットルバルブ制御ユニット１２を受信側の電子制御装置として説明する。具体的には、図３のフロー・チャートはスロットルバルブ制御ユニット１２のＣＡＮコントローラ１２ｃによって実行されるプログラムである。
【００２９】
Ｓ１００において、エンジン制御ユニット１０から送信されたコマンドＣＭＤとそれに割り当てられたデータ種の数値を受信したか否か判断される。否定されるときにはプログラムをスキップする一方、肯定されるときにはＳ１０２に進んで受信したコマンドＣＭＤが１であるか否か判断される。
【００３０】
Ｓ１０２で肯定されるとき、Ｓ１０４に進んで１の認識コードＩＤが作成されると共に、Ｓ１０６に進んでウオッチドッグパルスの周期として周期Ａが設定される。一方、Ｓ１０２で否定されるとき、Ｓ１０８に進んで受信したコマンドＣＭＤが２であるか否か判断される。Ｓ１０８で肯定されるとき、Ｓ１１０に進んで２の認識コードＩＤが作成されると共に、Ｓ１１２に進んでウオッチドッグパルスの周期として周期Ｂが設定される。一方、Ｓ１０８で否定されるとき、以降は同様に、Ｓ１１４からＳ１１６のステップに示す如く、受信したコマンドＣＭＤが３，４，５，・・・ｎであるか否か判断され、肯定されるとき、３，４，５，・・・ｎの認識コードＩＤが作成されると共に、ウオッチドッグパルスの周期として周期Ｃ，Ｄ，Ｅ・・・Ｎが設定される。このように、認識コードＩＤも１からｎ（ｎ≧２）までの自然数であると共に、受信したコマンドＣＭＤと同一の認識コードＩＤが作成される。また、受信したコマンドＣＭＤに応じてウオッチドッグパルスの周期が設定（変更）される。
【００３１】
次いでＳ１２０に進み、作成された認識コードＩＤを返信データとしてエンジン制御ユニット１０に返信する。ここで返信について具体的には、ＣＡＮコントローラ１２ｃが今回作成した認識コードＩＤを返信するように送受信機１２ｂに指示し、送受信機１２ｂが認識コードＩＤを今回の返信データとして更新してエンジン制御ユニット１０に返信する。尚、Ｓ１１４において否定されるとき、プログラムをスキップする。
【００３２】
図２に戻って送信側のフロー・チャートの説明を続けると、Ｓ１４において、スロットルバルブ制御ユニット１２からの返信データ、即ち認識コードＩＤを受信したか否か判断する。Ｓ１２において送信データを送信した後、適度な時間が経過しても認識コードＩＤを受信しないときにはＳ１４で否定され、Ｓ１２に戻って再度同一の送信データをスロットルバルブ制御ユニット１２に送信する。このように、エンジン制御ユニット１０は、スロットルバルブ制御ユニット１２からの返信データを受信しない限り、同一種のデータを繰り返し送信する。
【００３３】
一方、認識コードＩＤを受信するとＳ１４で肯定されてＳ１６に進み、前記したようにＣＰＵ１０ａにおいてウオッチドッグパルスの周期が計測される。
【００３４】
次いでＳ１８に進み、計測されたウオッチドッグパルスの周期が設定周期と一致するか否か判断される。設定周期とは、Ｓ１０において発行されるコマンドＣＭＤに対応して予め設定されるウオッチドッグパルスの周期である。設定周期自体は、スロットルバルブ制御ユニット１２において受信したコマンドＣＭＤに応じて設定される周期Ａ，Ｂ，Ｃ，・・・Ｎと同一である。
【００３５】
Ｓ１８で肯定されるとき、エンジン制御ユニット１０とスロットルバルブ制御ユニット１２の間の通信は正常であると判断され、Ｓ１０に戻って新たなコマンドＣＭＤが発行される。
【００３６】
一方、Ｓ１８で否定されるとき、Ｓ２０に進んでＳ１８において計測周期と設定周期が一致しないと判断された回数を適宜なカウンタを用いて計測する。次いでＳ２２に進み、一致しないと判断された回数が所定回数に達したか否か判断される。Ｓ２２で否定されるときはＳ１６に戻る一方、Ｓ２２で肯定されるとき、Ｓ２４に進んでエンジン制御ユニット１０とスロットルバルブ制御ユニット１２の間の通信は異常であると判断する。通信が異常であると判断されるときにはプログラムを終了し、それ以降のデータの送信を停止する。
【００３７】
Ｓ１８において計測されたウオッチドッグパルスの周期と設定周期が一致しない場合としては、Ｓ１２においてＣＡＮコントローラ１０ｃが今回発行したコマンドＣＭＤとそれに対応するデータ種の数値を送信するように送受信機１０ｂに指示するにも関わらず、送受信機１０ｂがそれらを今回の送信データとして更新することができずに前回送信したコマンドＣＭＤとそれに対応するデータ種の数値を繰り返し送信する場合が考えられる。即ち、この場合、スロットルバルブ制御ユニット１２は前回と同一のコマンドＣＭＤを受信することから、前回と同一のウオッチドッグパルスの周期が設定される結果、Ｓ１８において両者が一致しないと判断される。
【００３８】
尚、送受信機１２ｂの受信異常やＣＡＮコントローラ１０ｃ，１２ｃの演算異常が生じている場合にもＳ１８などにおいて両者が一致しないと判断され得るが、それらの事象が生じる可能性は低く無視できる程度である。
【００３９】
このように、エンジン制御ユニット１０は、複数の種類のデータの内、今回送信すべきコマンドＣＭＤを発行・送信し、スロットルバルブ制御ユニット１２に、受信したコマンドＣＭＤに応じてウオッチドッグタイマの値を初期化するウオッチドッグパルスの周期を変更させると共に、変更されたウオッチドッグパルスの周期を計測し、計測されたウオッチドッグパルスの周期が送信したコマンドＣＭＤに応じて変更されているか否かを判断することから、変更されていない場合にはエンジン制御ユニット１０において同一内容のデータを繰り返して送信するといった通信異常が生じていることを検知することができる。また、複数の種類のデータの内、今回送信すべきデータを利用して通信異常を検知するため、送信データに確認用あるいは監視用のデータを別途設ける必要がなく、よって通信リソースを有効に利用することができる。
【００４０】
また、エンジン制御ユニット１０は、エンジン制御ユニット１０とスロットルバルブ制御ユニット１２の演算負荷に基づいて今回送信すべきコマンドＣＭＤを決定することから、換言すればエンジン制御ユニット１０とスロットルバルブ制御ユニット１２の演算負荷に応じてウオッチドッグパルスの周期が設定されることから、エンジン制御ユニット１０がウオッチドッグパルスの周期を計測するために要する演算負荷とスロットルバルブ制御ユニット１２がウオッチドッグパルスを生成するために要する演算負荷を不要に増大させることなく、上記の通信異常を検知することができる。
【実施例２】
【００４１】
次いで、この発明の第２実施例に係る通信異常検知装置について説明する。
【００４２】
図４は、第２実施例に係る通信異常検知装置についての送信側の電子制御装置が実行する、図２と同様なフロー・チャートである。また、図５は、第２実施例に係る通信異常検知装置についての受信側の電子制御装置が実行する、図３と同様なフロー・チャートである。尚、両図において第１実施例と共通の構成については、同一の符号を付して説明を省略する。
【００４３】
第１実施例と相違する点に焦点をおいて説明すると、第２実施例にあっては、送信側のエンジン制御ユニット１０は送信データとしてコマンドＣＭＤのみを送信すると共に、受信側のスロットルバルブ制御ユニット１２は識別コードＩＤと受信したコマンドＣＭＤに対応するデータ種の数値からなる返信データを返信するように構成した。
【００４４】
図４フロー・チャートのＳ１２ａに示すように、送信側のエンジン制御ユニット１０はコマンドＣＭＤのみからなる送信データを受信側のスロットルバルブ制御ユニット１２に送信する。また、図５フロー・チャートのＳ１００ａに示すように、受信側のスロットルバルブ制御ユニット１２はコマンドＣＭＤを受信したか否か判断する。
【００４５】
Ｓ１２０ａにおいては、識別コードＩＤと受信したコマンドＣＭＤに対応するデータ種の数値からなる返信データを作成し、それをエンジン制御ユニット１０に返信する。ここで、例えば受信したコマンドＣＭＤが１であれば、１の識別コードＩＤとバッテリ電圧ＶＢの数値からなる返信データを作成して送信する。また、例えば受信したコマンドＣＭＤが２であれば、２の識別コードＩＤとホール電流ＩＨの数値からなる返信データを作成して送信する。
【００４６】
図４フロー・チャートのＳ１４ａに示すように、送信側のエンジン制御ユニット１０において識別コードＩＤと数値からなる返信データを受信したか否か判断される。
【００４７】
残余の構成は第１実施例と同様である。よって、第２実施例に係る通信異常検知装置にあっても、第１実施例と同様な効果を得ることができる。即ち、エンジン制御ユニット１０において同一内容のデータを繰り返して送信するといった通信異常が生じていることを検知することができると共に、複数の種類のデータの内、今回返信させるべきデータを決定してその種のデータを返信させることを利用して通信異常を検知するため、返信データに確認用あるいは監視用のデータを別途設ける必要がなく、よって通信リソースを有効に利用することができる。
【００４８】
以上のように、この発明の第１および第２実施例にあっては、複数の種類（ｎ種類）のデータを周期的に送受信する複数の電子制御装置（エンジン制御ユニット１０，スロットルバルブ制御ユニット１２）の間の通信異常を検知する通信異常検知装置において、前記複数の電子制御装置の一方（エンジン制御ユニット１０）は、前記複数の種類のデータの内、今回送信すべきデータ（コマンドＣＭＤ＋数値、またはコマンドＣＭＤ）を決定し、少なくとも前記決定した送信すべきコマンドＣＭＤを他方（スロットルバルブ制御ユニット１２）に送信し（Ｓ１２，Ｓ１２ａ）、前記他方に、受信した前記コマンドＣＭＤ（データの種類）に応じてウオッチドッグタイマ１２ｄの値を初期化するウオッチドッグパルスの周期を変更させると共に（Ｓ１０２，Ｓ１０６，Ｓ１０８，Ｓ１１２，Ｓ１１４，Ｓ１１８）、前記変更されたウオッチドッグパルスの周期を計測し（Ｓ１６）、前記計測されたウオッチドッグパルスの周期が前記送信したコマンドＣＭＤ（データの種類）に応じて変更されていないとき、前記通信異常があると検知する（Ｓ１８からＳ２４）如く構成した。
【００４９】
前記一方は、前記一方と他方の演算負荷に基づいて前記複数種の制御データの内、今回送信すべきデータを決定する（Ｓ１０）如く構成した。
【００５０】
尚、上記において、送信側の電子制御装置をエンジン制御ユニット１０、受信側の電子制御装置をスロットルバルブ制御ユニット１２として説明したが、逆であっても良い。
【図面の簡単な説明】
【００５１】
【図１】この発明の第１実施例に係る通信異常検知装置を含む複数の電子制御装置を示すブロック図である。
【図２】図１に示す通信異常検知装置の送信側の電子制御装置が実行するフロー・チャートである。
【図３】図１に示す通信異常検知装置の受信側の電子制御装置が実行するフロー・チャートである。
【図４】この発明の第２実施例に係る通信異常検知装置の送信側の電子制御装置が実行する、図２と同様なフロー・チャートである。
【図５】この発明の第２実施例に係る通信異常検知装置の受信側の電子制御装置が実行する、図３と同様なフロー・チャートである。
【符号の説明】
【００５２】
１０：エンジン制御ユニット、１２：スロットルバルブ制御ユニット、１４：通信線、１６：専用線
【図１】
0005329794.tif 000002
【図２】
0005329794.tif 000003
【図３】
0005329794.tif 000004
【図４】
0005329794.tif 000005
【図５】
0005329794.tif 000006