(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
<1.車両制御システムの構成>
図1は、本発明に係る実施の形態としての車両制御システム1の構成を示したブロック図である。なお、
図1では、車両制御システム1の構成のうち主に本発明に係る要部の構成のみを抽出して示している。
車両制御システム1は、車輪を駆動するための動力源としてエンジンと
電動機とを備えたハイブリッド車としての車両に備えられ、車載制御装置として、ハイブリッド制御ユニット2、エンジン制御ユニット3、走安制御ユニット4、運転支援制御ユニット5、メータ制御ユニット6、エアバッグ制御ユニット7、通信制御ユニット8を備えている。これらの各制御ユニットは、例えばCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を有するマイクロコンピュータを備えて構成され、それぞれがバス配線9を介して接続されることで互いに通信可能とされている。
本例では、バス配線9を介した各制御ユニット間の通信は、CAN(Controller Area Network)通信規格に従った方式で行われる。以下、バス配線9による通信路を「バス通信路」と表記する。
【0017】
エンジン制御ユニット3は、車両に設けられたエンジンについての燃料噴射制御、点火制御、吸入空気量調節制御などの各種運転制御を行う。エンジン制御ユニット3には、車両の走行速度を車速として検出する車速センサ10、エンジンの回転数を検出するエンジン回転数センサ11、アクセルペダルの踏み込み量をアクセル開度として検出するアクセル開度センサ12、スロットルバルブの開度をスロットル開度として検出するスロットル開度センサ13等、エンジン制御に関連する各種のセンサが接続されており、エンジン制御ユニット3はエンジンの運転制御にあたってこれらセンサによる検出値を用いる。
また、エンジン制御ユニット3は、上記各種センサによる検出値を必要に応じてハイブリッド制御ユニット2や運転支援制御ユニット5等の所要の制御ユニットにバス配線9を介して送信する。
【0018】
ハイブリッド制御ユニット2は、運転者の操作入力やエンジン制御ユニット3から受信されるアクセル開度等の車両情報を表す値に基づき、エンジン制御ユニット3、回転電機制御部20、充電制御部21に対する指示を行って車両の動作をコントロールする。
回転電機制御部20は、ハイブリッド制御ユニット2からの指示に基づき、車両に設けられた走行用の回転電機(例えばモータ・ジェネレータ)についての駆動制御を行う。充電制御部21は、ハイブリッド制御ユニット2からの指示に基づき、車両に上記回転電機の電源として設けられた走行用バッテリの充電制御を行う。本例において、充電制御部21は、モータ・ジェネレータとしての上記回転電機が回生回転により発電した電力に基づき走行用バッテリを充電させる制御を行う。
【0019】
ハイブリッド制御ユニット2は、エンジン制御ユニット3から受信したアクセル開度値に基づき、運転者によるアクセル操作量に応じた要求トルクT(車輪に出力すべきトルク)を計算し、要求トルクTに対応する要求駆動力により車両を走行させるためのエンジン、回転電機の動作制御をエンジン制御ユニット3、回転電機制御部20に実行させる。また、走行用バッテリのSOC(State Of Charge:充電率)に基づき、充電制御部21に走行用バッテリを充電させる制御を実行させる。
ハイブリッド車における走行モードとしては、EV(Electric Vehicle)走行モード、及びハイブリッド走行モードがあり、ハイブリッド制御ユニット2は車両の状態に応じてこれらの走行モードを切り替える。EV走行モード時においてハイブリッド制御ユニット2は、アクセル開度値に基づき計算した要求トルクTに基づき回転電機に要求されるトルク(「要求トルクTb」と表記)を計算し、該要求トルクTbを回転電機制御部20に指示して回転電機の動作を制御する。
また、ハイブリッド走行モード時においてハイブリッド制御ユニット2は、要求トルクTに基づきエンジンに要求されるトルク(「要求トルクTe」と表記)と回転電機の要求トルクTbとを計算し、要求トルクTeをエンジン制御ユニット3に、要求トルクTbを回転電機制御部20にそれぞれ指示してエンジン、回転電機の動作を制御する。
【0020】
走安制御ユニット4は、例えばVDC(Vehicle Dynamics Control)等、車両の走行安定性に係る制御を行う制御ユニットとされる。走安制御ユニット4には、例えばヨーレートセンサ14等の所定のセンサが接続され、該接続されたセンサによる検出値に基づいて走行安定性に係る制御を実行する。
【0021】
運転支援制御ユニット5は、例えばオートクルーズ制御や操舵支援制御等、各種の運転支援制御を行う。運転支援制御ユニット5は、これら運転支援制御を行うにあたって車外環境センサ15による検出値を用いる。車外環境センサ15は、車両外部に存在する先行車や歩行者、車線等の物体を検出するための撮像素子等のセンサを包括的に示したものである。運転支援制御ユニット5は、車外環境センサ15による検出値に基づき検出した物体の情報に基づいて、アクセルやステアリング等の運転支援制御に必要な各部を制御する。
なお、物体検出にあたり用いるセンサは撮像素子に限定されず、例えばミリ波レーダ等の他のセンサを用いることもできる。
【0022】
メータ制御ユニット6は、車両におけるメータパネル内等に設けられた各種の表示部について表示制御を行う。表示部としては、メータパネル内に設けられたスピードメータやタコメータ等の各種メータやMFD(Multi Function Display)、その他運転者に情報提示を行うための表示デバイスを挙げることができる。メータ制御ユニット6は、エンジン制御ユニット3から適宜受信される車速、エンジン回転数の値に基づいてスピードメータ、タコメータによる表示動作を制御する。また、メータ制御ユニット6には車両の外気温を検出する外気温センサ16等の所定のセンサが接続されており、該接続されたセンサによる検出値に基づいて表示部の表示制御を行う。なお、MFDは、車両の総走行距離や外気温、瞬間燃費等といった各種の情報の表示に用いられる。
【0023】
エアバッグ制御ユニット7は、車両に設けられたエアバッグの動作制御を行う。エアバッグ制御ユニット7には、車両に対する物体衝突を検出する衝突センサ17等、所定のセンサが接続され、該接続されたセンサによる検出値に基づいてエアバッグの動作制御を行う。
【0024】
通信制御ユニット8は、車両の外部装置との間で通信を行うことが可能とされた制御ユニットである。通信制御ユニット8にはアンテナが備えられており、該アンテナを介して外部装置との間で無線による通信を行うことが可能とされている。
【0025】
また、車両制御システム1においては、バス配線9に対して外部装置コネクタ18が接続されている。外部装置コネクタ18は、車両の故障診断装置等としての外部装置を接続するためのコネクタとされている。該外部装置コネクタ18が設けられることで、故障診断装置等の外部装置が各制御ユニットとの間でバス配線9を介して通信を行うことが可能とされる。
【0026】
<2.通信データについて>
ここで、CAN通信規格が採用された本例の車両制御システム1において、各制御ユニット間のバス配線9を介したデータのやりとりは、データフレームとしてのメッセージにより行われる。
【0027】
図2は、該データフレームとしてのメッセージのデータ構造例を示した図である。
先ず、データフレームの先頭は該データフレームの開始を表すSOF(Start Of Frame)とされ、SOFに続く領域はID(Identifier)とされている。IDは、例えば11ビットで成り、主としてデータ内容や送信元ノードを識別するために使用される。また、別の働きとして、通信調停の優先順位を決定するためにも用いられる。11ビットで成るIDにより、データフレームとしては2048種類の識別が可能とされる。各ノードは、該IDに基づき、データフレームによる送信データ(後述のデータフィールドで送信されるデータ)を受信すべきか否かを判定することができる。
【0028】
IDに続く領域はRTR(Remote Transmission Request)とされ、データフレームとリモートフレームを識別するために使用される。データフレームの場合、RTRはドミナントとなっている。また、RTRに続く領域はコントロールフィールドとされる。該コントロールフィールドにはDLC(Data Length Code)が含まれ、該DLCによって後続のデータフィールドにおいて何バイトのデータが送信されるかが表される。
【0029】
コントロールフィールドに続くデータフィールドは、送信対象とされるデータ(値)が格納される領域である。コントロールフィールドでは、1バイト単位で0〜8バイト(0〜64ビット)のデータを送信可能とされている。
【0030】
データフィールドに続く領域はCRC(Cyclic Redundancy Check)フィールドであり、受信側のノードがデータフレームによる送信データを正しく受信できたか否かをチェックするためのチェックサムとして機能する。
【0031】
CRCフィールドに続く領域は、受信側のノードが送信データを正しく受信できたか否か否かの確認値を返すためのACK(Acknowledgement)フィールドとされ、該ACKフィールドに続く領域はデータフレームの終わりを表すEOF(End Of Frame)とされている。
【0032】
<3.実施の形態の改竄対応制御>
[3-1.第1例]
ここで、前述のようにチェックサムは、ノイズ等による通信不良に起因した送受信データ間の変化有無を検出するのには好適であるが、いわゆるハッキング行為によってバス通信路上のメッセージがチェックサムごと書き換えるような改竄が行われてしまうと、受信メッセージの正しさを確認することが不能となる虞がある。このような改竄は、例えば通信制御ユニット8や外部装置コネクタ18を介して継続的に行われ得る。
車両制御システム1では、アクセル開度やエンジン回転数等といった車両情報がメッセージによって制御ユニット間でやりとりされるが、上記のような改竄が行われると受信ユニット側で誤った車両情報に基づく制御が行われ、車両の十分な安全性確保ができなくなる虞がある。
【0033】
このため、実施の形態の車両制御システム1では、バス通信路を介して接続された少なくとも一つの制御ユニットに以下で説明する機能を付加する。なお、以下では該機能が付加された制御ユニットの例としてエンジン制御ユニット3を挙げる。
【0034】
図3は、第1例におけるエンジン制御ユニット3の機能構成を表した機能ブロック図である。図示するようにエンジン制御ユニット3は、送出処理部F1、保持処理部F2、改竄判定処理部F3、及び第一通知処理部F4を有するものとして表すことができる。
【0035】
送出処理部F1は、送信対象値を含むメッセージをバス通信路に送出する。送信対象値とは、バス通信路を介してやりとりされるメッセージの「データフィールド」において送信する対象とされた値であり、エンジン制御ユニット3であれば、例えばアクセル開度値やエンジン回転数の値等、接続されたセンサによる検出値などが該当する。送出処理部F1は、送信対象値の送信タスクの発生に応じ、「データフィールド」に送信対象値を含んだメッセージをバス通信路に送出する。
【0036】
保持処理部F2は、送信対象値をRAM(エンジン制御ユニット3のRAM)等のメモリに保持する処理を行う。本例の保持処理部F2は、送出処理部F1が送出したメッセージ内に含まれる送信対象値と同一の値を保持する処理を行う。
【0037】
改竄判定処理部F3は、送出処理部F1によりバス通信路に送出されたメッセージを取得し、該取得したメッセージに含まれる送信対象値(「取得値」)と保持処理部F2により保持された送信対象値(「保持値」)とを比較した結果に基づき、バス通信路に送出された送信対象値の改竄有無を判定する。具体的には、取得値が保持値と一致するか否かを判別し、一致する場合は改竄無し、一致しない場合は改竄有りとの判定結果を得る。
【0038】
第一通知処理部F4は、改竄判定処理部F3により改竄有りと判定されたことに応じて、第一通知メッセージをバス通信路に送出する。具体的には、「ID」として改竄があったことを表す値を含んだメッセージを第一通知メッセージとして送出する。
【0039】
ここで、本例の車両制御システム1においては、メッセージの種類として「メッセージの改竄があった旨を通知するメッセージ(「第一通知メッセージ」と表記)」との種類が定義されており、当該「第一通知メッセージ」に対応する「ID」の値が予め定められている。第一通知処理部F4は、このように「第一通知メッセージ」に対して予め定められた値を「ID」に含んだメッセージをバス通信路に送出する。
【0040】
車両制御システム1において、バス配線9に接続された各制御ユニットのうち少なくともエンジン制御ユニット3(つまり送信側ユニット)を除いた各制御ユニットは、上記のようにバス通信路に送出された第一通知メッセージを受信する。そして、該第一通知メッセージを受信した制御ユニットは、フェールセーフモードに移行する。
これにより、改竄値を用いた車両制御が実行されてしまうことの防止が図られ、車両の安全性確保を図ることができる。
【0041】
なお、バス配線9に接続された各制御ユニットのうち、例えばメータ制御ユニット6のように運転者に対する通知手段について制御を行う制御ユニットには、第一通知メッセージの受信に応じて、通知手段により改竄があった旨を運転者に通知させる制御を行わせることができる。このような通知が行われることで、運転者が車両を停止させる等の安全策を採ることが期待でき、改竄に対する安全性能を高めることができる。
【0042】
図4は、
図3により説明した第1例としての各機能を実現するために実行されるべき処理の手順を示したフローチャートである。
図4において、エンジン制御ユニット3は、ステップS101で送信対象値の送信タスク発生を待機し、該送信タスクの発生に応じ、ステップS102で送信対象値の送信処理、すなわち送信対象値を含むメッセージをバス通信路に送出する処理を行う。
【0043】
ステップS102に続くステップS103でエンジン制御ユニット3は、送信値保持処理を行う。すなわち、ステップS102で送出したメッセージに含まれる送信対象値と同一の値をRAM等のメモリに保持する処理を行う。
【0044】
ステップS103に続くステップS104でエンジン制御ユニット3は、バス通信路に送出されたメッセージ(ステップS102で送出したメッセージ)を取得する。さらに、続くステップS105でエンジン制御ユニット3は、ステップS104で取得したメッセージに含まれる送信対象値(取得値)と、ステップS103で保持した送信対象値とが一致するか否かを判定し、一致していれば
図4に示す処理を終了し、一致していなければステップS106に進んで上述した第一通知メッセージをバス通信路に送出し、
図4に示す処理を終える。
【0045】
なお、上記では送信対象値の保持処理として、送出したメッセージに含まれる送信対象値(以下「送信値」と表記)と同一の値を保持する例を挙げたが、送信値と保持値とが同一であることは必須でない。例えば、送信対象値がセンサの検出値である場合において、ステップS102によるメッセージの送出直後に該センサの検出値を取得し、該取得した検出値を保持するといったことも可能であり、その場合、送信値(取得値)と保持値とが同一となる保証はない。このように送信値と保持値とが異なり得る場合、ステップS105の判定処理としては、例えば取得値と保持値との差が一定値以下であるか否か等の判定を行うようにする。
また、送信対象値の保持は、ステップS102によるメッセージ送出前に予め行っておくことも可能である。
【0046】
[3-2.第2例]
続いて、第2例について説明する。なお、以下の説明において、既に説明済みとなった部分と同様となる部分については同一の符号やステップ番号を付して重複説明を避ける。
【0047】
先の第1例では、送信対象値の送信元となる制御ユニットは、全ての送信対象値について送信対象値の保持及び保持値を用いた改竄判定を行っていたが、第2例では、改竄が行われた場合に安全性確保が困難となると予測される送信対象値(以下「要対策値」と表記)とそうでない送信対象値とを予め区分しておき、要対策値のみを対象として送信対象値の保持及び保持値を用いた改竄判定を行う。
なお、第1例の場合と同様、第2例としての機能は各制御ユニットのうち少なくとも一つの制御ユニットに付加されればよい。この場合も該当機能が付加された制御ユニットの例としてエンジン制御ユニット3を挙げる。
【0048】
図5は、第2例におけるエンジン制御ユニット3の機能構成を表した機能ブロック図である。この場合のエンジン制御ユニット3は、前述した送出処理部F1、保持処理部F2、改竄判定処理部F3、及び第一通知処理部F4を有すると共に、第一対象値判定処理部F5と制御処理部F6とを有している。
【0049】
第一対象値判定処理部F5は、送信対象値が特定種類の値であるか否かを判定する。具体的には、メッセージにより送信する送信対象値が上述した要対策値であるか否かを判定する。この場合、エンジン制御ユニット3におけるROM等のメモリには、要対策値の一覧情報が記憶され、エンジン制御ユニット3は該一覧情報に基づいて要対策値であるか否かの判定を行う。要対策値の例としては、エンジン制御ユニット3であれば、車速やエンジン回転数の値、スロットル開度値等を挙げることができる。或いは、ハイブリッド制御ユニット2であれば、前述した要求トルクTeの値等を挙げることができる。
【0050】
制御処理部F6は、第一対象値判定処理部F5により特定種類の値と判定された送信対象値のみを対象として改竄判定処理部F3による判定を実行させる。すなわち、要対策値であると判定された送信対象値のみを対象として改竄判定処理部F3による改竄判定を実行させる。
【0051】
このような第2例としての機能により、送信対象値の送信元となる制御ユニットは、自身が送信し得る全ての送信対象値を対象して送信対象値の保持や改竄判定を行う必要がなくなるため、処理負担の軽減が図られる。
【0052】
図6は、第2例としての各機能を実現するために実行されるべき処理の手順を示したフローチャートである。
この場合のエンジン制御ユニット3は、ステップS102で送信対象値の送信処理を実行したことに応じ、ステップS201で送信値は特定種類の値であるか否かを判定する。すなわち、ステップS102で送出したメッセージに含まれる送信対象値が要対策値であるか否かを判定する。ステップS201において、送信値が特定種類の値でない場合、エンジン制御ユニット3はステップS101に戻り、一方、送信値が特定種類の値であれば、エンジン制御ユニット3はステップS104に処理を進める。つまり、送信対象値が要対策値である場合のみ、ステップS103の保持処理やステップS105による改竄判定処理が実行される。
【0053】
[3-3.第3例]
第2例では、送信対象値の送信元となる制御ユニットが要対策値か否かの判定を行うものとしたが、第3例は、要対策値か否かの判定を第一通知メッセージの受信側となる制御ユニットにおいて行う。
ここで、前提として、第3例においては、送信対象値の送信元となる制御ユニットにおいて、第一通知処理部F4が送出する第一通知メッセージに変更が加えられる。すなわち、第3例における第一通知メッセージには、改竄があった旨を表す通知情報と共に、改竄判定処理部F3により改竄有りと判定された送信対象値の識別情報が含まれる。
第3例では、メッセージにおける「ID」の値として、単に個々の送信対象値を識別するのみでなく、改竄が行われた送信対象値であるか否かをも識別可能とする値が予め定義されている。換言すれば、個々の送信対象値に対応する「ID」の値として、改竄無し/改竄有りをそれぞれ表す2種の値が定義されている。
第3例における第一通知処理部F4は、送信対象値が改竄有りと判定されたことに応じて、該送信対象値に対応する上記2種の「ID」の値のうち改竄有りを表す方の値を含んだメッセージを第一通知メッセージとしてバス通信路に送出する。
【0054】
上記前提を踏まえ、第3例としての機能について説明する。第3例としての機能は、各制御ユニットのうち少なくとも一つの制御ユニットに付加されればよいが、以下の説明では該機能が付加された制御ユニットの例としてハイブリッド制御ユニット2を挙げる。
【0055】
図7は、第3例におけるハイブリッド制御ユニット2の機能構成を示した機能ブロック図である。
第3例におけるハイブリッド制御ユニット2は、受信処理部F7、及び第二対象値判定処理部F8を有している。受信処理部F7は、バス通信路に送出された第一通知メッセージを受信する。第二対象値判定処理部F8は、受信処理部F7が受信した第一通知メッセージに基づき識別される送信対象値が特定種類の値であるか否かを判定する。すなわち、第一通知メッセージに含まれる「ID」の値に基づき識別される送信対象値が、ハイブリッド制御ユニット2に対して設定された要対策値であるか否かを判定する。
この場合のハイブリッド制御ユニット2には、要対策値の一覧情報として、他の制御ユニットから受信し自身の制御に用いる得る値のうち改竄が行われると安全性確保が困難となると予測される値の一覧情報がROM等のメモリに記憶されており、第二対象値判定処理部F8は該一覧情報に基づいて、第一通知メッセージから識別される送信対象値が要対策値であるか否かを判定する。
【0056】
ハイブリッド制御ユニット2は、第二対象値判定処理部F8により要対策値であると判定されたことに応じて、フェールセーフモードに移行する。これにより、車両の安全性確保を図ることができる。
【0057】
上記のような第3例としての機能により、送信対象値の送信元となる制御ユニットに特定種類の値であるか否かの判定(第一判定処理部F3による判定)を行わせる必要がなくなる。このため、特にエンジン制御ユニット3等、送信すべき送信対象値の種類が比較的多い(つまり送信処理負担が比較的大きい)制御ユニットに該判定に伴う処理負担を負わせずに済み、バス通信路を介した制御ユニット間の通信の円滑化を図ることができる。
【0058】
第3例の機能について、ハイブリッド制御ユニット2以外への適用例として、エンジン制御ユニット3に適用した場合を説明する。この場合、エンジン制御ユニット3に設定される要対策値としては、エアバック制御ユニット7が送信する衝突検知信号の値があるとする。エンジン制御ユニット3は該衝突検知信号を受信すると、燃料カットを行いエンジンを停止させる。但し、該衝突検知信号が改竄された場合は、上記第3例としての機能により、改竄値に応じた燃料カットは行わず、フェールセーフモードに移行する。これにより、運転者の意に反してエンジンが強制停止されてしまうことの防止が図られ、車両の安全性確保が図られる。
【0059】
[3-4.第4例]
第4例は、単体の改竄では安全性に影響を与えないが、他の値と共に改竄されると安全性確保が困難となると予測される送信対象値の組合せが存在する場合への対応策である。例えば、エンジン制御ユニット3が送信するA値と、運転支援制御ユニット5が送信するB値とを用いた制御をハイブリッド制御ユニット2が行うという前提において、A値単体、B値単体の改竄によってはそれぞれ安全性に影響を与えないが、改竄されたA値及びB値を用いた制御が行われることで安全性の確保が困難化するといったケースへの対応策である。
以下の説明では、送信対象値の送信元となる制御ユニットとしてエンジン制御ユニット3を代表として例示する。
【0060】
図8は、第4例におけるエンジン制御ユニット3の機能構成を示した機能ブロック図である。
第4例におけるエンジン制御ユニット3は、送出処理部F1、保持処理部F2、及び改竄判定処理部F3を有すると共に、第一通知処理部F4’を有している。第一通知処理部F4’は、第3例で説明した第一通知処理部F4と同様、改竄判定処理部F3により送信対象値が改竄有りと判定されたことに応じて、該送信対象値に対応する2種の「ID」の値のうち改竄有りを表す値を含んだメッセージを送出する。第4例においては、このように第一通知処理部F4’が送出する第一通知メッセージ、すなわち単体の送信対象値について改竄が有った旨及び該送信対象値の別を表す情報を含んだメッセージのことを「仮通知メッセージ」と表記する。
【0061】
第4例では、バス通信路に接続された各制御ユニットのうち少なくとも一つの制御ユニットが上記の仮通知メッセージを受信し、
図9に示す各機能を実現する処理を実行する。ここでは、該当する制御ユニットの例としてメータ制御ユニット6を挙げる。
【0062】
図9において、メータ制御ユニット6は、受信処理部F7と共に、対象組合せ判定処理部F9、及び第二通知処理部F10を有している。
この場合、受信処理部F7は、エンジン制御ユニット3等の或る制御ユニットにおける第一通知処理部F4’が送出した仮通知メッセージとしての第一通知メッセージを受信する。第一通知処理部F4’を有する制御ユニットが複数存在していれば、受信処理部F7はそれら制御ユニットの第一通知処理部F4’が送出したそれぞれの仮通知メッセージを受信することになる。
【0063】
対象組合せ判定処理部F9は、受信処理部F7によって異なる送信対象値についての仮通知メッセージが受信された場合に、受信された各仮通知メッセージに基づき識別される改竄有りと判定された送信対象値の組合せが特定組合せであるか否かを判定する。
この場合のメータ制御ユニット6においては、上記したA値とB値の組合せのように、改竄が行われると安全性確保が困難となると予測される送信対象値の組合せ(以下「要対策組合せ」と表記)の一覧情報がROM等のメモリに記憶されており、対象値判定処理部F8は該一覧情報に基づき、受信された各仮通知メッセージから識別される送信対象値の組合せが要対策組合せであるか否かを判定する。
【0064】
第二通知処理部F10は、対象組合せ判定処理部F9により特定組合せであると判定されたことに応じて、仮通知メッセージとは異なる第二通知メッセージをバス通信路に送出する。すなわち、受信された各仮通知メッセージに基づき識別される送信対象値の組合せが要対策組合せであると判定されたことに応じて、仮通知メッセージとは異なる本通知メッセージをバス通信路に送出する。
第4例においては、要対策組合せとしての送信対象値の組合せごとに、該組合せに含まれる各送信対象値の別とそれら送信対象値が改竄された旨とを表す「ID」の値が定義されている。例えば、上記のA値及びB値の例であれば、これらA値とB値の別と共に改竄が行われた旨を表す「ID」の値が定義されている。
第二通知処理部F10は、対象組合せ判定処理部F9により要対策組合せであると判定されたことに応じて、上記のように要対策組合せごとに定義された「ID」の値のうち、該当する要対策組合せに対応する「ID」の値を含んだメッセージを本通知メッセージとして送出する。
【0065】
送出された本通知メッセージは、該本通知メッセージを受信すべきとされた制御ユニットによって受信される。具体的に、第4例においては、各制御ユニットごとに、本通知メッセージが含み得る「ID」の値、つまり要対策組合せごとに定義された「ID」の値のうち受信すべき「ID」の値が設定されている。例えば、上記A値、B値の例であれば、ハイブリッド制御ユニット2には受信すべき本通知メッセージの「ID」の値としてこれらA値とB値の組合せに対応する「ID」の値(「Vab」と表記する)が設定されている。ハイブリッド制御ユニット2は、本通知メッセージに含まれる「ID」の値が「Vab」であれば、該本通知メッセージを受信する。
【0066】
第4例において、本通知メッセージを受信した制御ユニットは、フェールセーフモードに移行する。これにより、要対策組合せに該当する各送信対象値が改竄されたとしても、それらの送信対象値を用いた制御を行う制御ユニットにおいて改竄値に基づく制御が行われてしまうことを防止でき、車両の安全性確保を図ることができる。すなわち、送信対象値の改竄として、単体の改竄により安全性確保が困難となると予測される送信対象値の改竄以外の多様な改竄に対して安全性確保を図ることができる。
【0067】
なお、第4例においても、先の第1例や第2例の場合と同様に、送信対象値の送信元となる制御ユニットは、要対策値、すなわち単体の改竄により安全性確保が困難となると予測される送信対象値についても改竄有無の判定を行う。第4例における第一通知処理部F4’は、改竄有りと判定された送信対象値が要対策値としての送信対象値であるか否かの判定を行い、改竄有りと判定された送信対象値が要対策値でなければ、上述した仮通知メッセージとしての通知メッセージを送出し、改竄有りと判定された送信対象値が要対策値であった場合は、要対策値が改竄された旨を表す「ID」の値を含んだ通知メッセージを送出する。以下、改竄有りと判定された送信対象値が要対策値であった場合に送出される上記の通知メッセージを便宜上「要対策改竄通知メッセージ」と表記する。
【0068】
第4例において、要対策改竄通知メッセージは、該要対策改竄通知メッセージを受信すべきとされた制御ユニットによって受信される。具体的に、第4例においては、各制御ユニットごとに、要対策改竄通知メッセージが含み得る「ID」の値、つまり要対策値ごとに定義された「ID」の値のうち受信すべき「ID」の値が設定されている。
要対策改竄通知メッセージを受信した制御ユニットは、フェールセーフモードに移行する。これにより、要対策値に該当する送信対象値が改竄された場合において、該送信対象値に基づく制御が行われてしまうことの防止が図られ、車両の安全性確保を図ることができる。
【0069】
図10のフローチャートは、上記した第4例としての機能のうち、送信対象値の送信元となる制御ユニットが有する機能の実現のために実行されるべき処理の手順を示している。また、
図11のフローチャートは、第4例としての機能のうち第二通知メッセージ(本通知メッセージ)の送出元となる制御ユニットが有する機能の実現のために実行されるべき処理の手順を示している。なお、ここでも、送信対象値の送信元となる制御ユニットとしてはエンジン制御ユニット3を代表として例示し、本通知メッセージの送出元となる制御ユニットの例としてはメータ制御ユニット6を挙げる。
【0070】
先ず、
図10に示す処理は、ステップS101〜S105の処理については先の
図4で説明したものと同様となる。この場合、エンジン制御ユニット3は、ステップS105で取得値と保持値が一致していないと判定したことに応じ、ステップS301に進んで特定種類の値か否か、具体的には送信対象値が要対策値か否かを判定する。ステップS301で特定種類の値であると判定した場合、エンジン制御ユニット3はステップS302に進み、要対策改竄通知メッセージをバス通信路に送出して
図10に示す処理を終える。
上述のように、要対策改竄通知メッセージは該メッセージを受信すべきとされた制御ユニットによって受信され、該メッセージを受信した制御ユニットはフェールセーフモードに移行し、これにより車両の安全性確保が図られる。
【0071】
一方、ステップS301で特定種類の値でないと判定した場合、エンジン制御ユニット3はステップS303に進み仮通知メッセージをバス通信路に送出して
図10に示す処理を終える。
【0072】
続いて、
図11の処理を説明する。
図11において、メータ制御ユニット6は、ステップS401で仮通知メッセージを受信するまで待機し、仮通知メッセージを受信した場合は、ステップS402で仮通知メッセージを複数種類受信したか否かを判定する。具体的には、過去所定時間以内にそれぞれ異なる送信対象値についての仮通知メッセージを受信したか否かを判定する。
仮通知メッセージを複数種類受信していないと判定した場合、メータ制御ユニット6は
図11に示す処理を終える。すなわち、要対策値以外の送信対象値が単体で改竄されても、本通知メッセージは送出されない。
【0073】
一方、仮通知メッセージを複数種類受信したと判定した場合、メータ制御ユニット6はステップS403に進み、受信組合せが特定組合せと一致するか否かを判定する。すなわち、受信したそれぞれの仮通知メッセージに基づき識別される改竄有りと判定された送信対象値の組合せが、要対策組合せとして定められた特定の送信対象値の組合せと一致するか否かを判定する。
受信組合せが特定組合せと一致しないと判定した場合、メータ制御ユニット6は
図11に示す処理を終える。
【0074】
受信組合せが特定組合せと一致すると判定した場合、メータ制御ユニット6はステップS404に進み、該当する各値についての本通知メッセージをバス通信路に送出し、
図11に示す処理を終える。すなわち、「ID」の値として、各仮通知メッセージに基づき識別される各送信対象値が改竄された旨を表す「ID」の値を含んだ本通知メッセージをバス通信路に送出する。
上述のように、本通知メッセージは該メッセージを受信すべきとされた制御ユニットによって受信され、該メッセージを受信した制御ユニットはフェールセーフモードに移行し、これにより車両の安全性確保が図られる。
【0075】
[3-5.第5例]
上記では、改竄の通知メッセージを受信した制御ユニットがフェールセーフモードに移行する例を挙げたが、改竄が行われたことに応じて、該当する送信対象値の真値(改竄されていない送信対象値)を含む通知メッセージをバス通信路に送出することで、真値に基づく制御が行われるようにすることもできる。
例えば、上述した第1例や第2例の場合において、送信対象値の改竄判定を行う制御ユニットが、改竄有りと判定したことに応じて、第一通知メッセージ内に改竄有りと判定された送信対象値の真値を格納してバス通信路に送出する構成を採ることができる。この際、送信対象値がセンサ検出値であれば、該当するセンサ検出値を真値として第一通知メッセージ内に格納する。
【0076】
ここで、上記のような真値を含むメッセージ送出を行うことによると、或る送信対象値(以下「送信対象値X」と表記する)についてメッセージの改竄が行われた場合には、バス通信路には、送信対象値Xの改竄値を含んだ改竄メッセージと、送信対象値Xの真値を含んだ第一通知メッセージとが送出されることになる。この場合、メッセージの「ID」の値としては、個々の送信対象値に対応する「ID」の値として、改竄無し/改竄有りをそれぞれ表す2種の値を定義しておき、第一通知メッセージには、「ID」の値として送信対象値Xに対応する値のうち改竄有りを表す値を含ませる。また、この場合の第一通知メッセージにおいて、「データフィールド」には送信対象値Xの真値を含ませる。なおこの際、改竄メッセージとしては「データフィールド」と「CRCフィールド」の値を改竄したものであるため、「ID」の値としては送信対象値Xに対応する値のうち改竄無しを表す方の値が含まれていることになる。
【0077】
この場合、送信対象値Xを他ユニットから受信して制御を行う制御ユニットは、メッセージ内の「ID」の値に基づき、改竄メッセージと上記の第一通知メッセージとを受信することになるが、第5例において当該制御ユニットは、第一通知メッセージを受信した以降、改竄メッセージ内の送信対象値Xは使用せず、第一通知メッセージ内の真値としての送信対象値Xを用いて制御を行うように構成しておく。
これにより、改竄に対して車両制御を中断せずに、真値に基づき適正な車両制御を継続して行うことができる。
【0078】
なお、第3例に適用する場合には、真値を含む第一通知メッセージを受信した制御ユニットが、該第一通知メッセージに基づき識別される送信対象値が要対策値であるか否かを判定し、要対策値である場合にのみ該第一通知メッセージ内の真値を用いた制御を行うようにすればよい。
【0079】
また、第4例のように送信対象値の組合せ改竄について対策する場合においても、上記のような真値の送信を行うことができる。
第4例の場合、仮通知メッセージの送出元となる制御ユニットが、仮通知メッセージ内のデータフィールドに真値を含ませる。本通知メッセージの送出元となる制御ユニットは、仮通知メッセージに基づき識別される送信対象値の組合せが要対策組合せであると判定されたことに応じて、本通知メッセージとして、該当する送信対象値ごとに、それぞれの真値を含ませた本通知メッセージをバス通信路に送出する。この場合、本通知メッセージを受信した制御ユニットは、改竄メッセージ内の送信対象値は使用せず、受信した本通知メッセージ内の真値を用いて制御を行う。
【0080】
なお、上記のような第4例への適用の場合、仮通知メッセージ内に真値を含ませることは必須ではない。その場合、仮通知メッセージを受信する制御ユニットでは、受信した複数種類の仮通知メッセージに基づき識別される送信対象値の組合せが要対策組合せであると判定したことに応じて、それら改竄有りと判定された送信対象値の送信元となる制御ユニットに真値メッセージ(詳細は後述)の送出を要求するための要求メッセージを送出する。要求メッセージを受信した制御ユニットは、「データフィールド」に真値を含み且つ該当する送信対象値が改竄された旨を表す「ID」の値を含んだ真値メッセージを送出する。この真値メッセージは、「ID」の定義により、該当する送信対象値を用いて制御を行う制御ユニットに受信されるようにしておく。真値メッセージを受信した制御ユニットは、以降、受信した真値メッセージに含まれる真値を使用した制御を行う。
例えばこのような手法により、改竄に対して車両制御を中断させずに安全性確保を図る上で、仮通知メッセージ内に真値を含ませる必要がなくなる。
【0081】
<4.実施の形態のまとめ>
上記のように実施の形態の車両制御システム(1)は、バス通信路を介して複数の車載制御装置(制御ユニット)が通信可能に接続された車両制御システムであって、車載制御装置のうち少なくとも一つの車載制御装置が、以下の各部を備えている。
すなわち、送信対象値を含むメッセージをバス通信路に送出する送出部(送出処理部F1)と、送信対象値を保持する保持部(保持処理部F2)と、バス通信路に送出されたメッセージを取得し、該取得したメッセージに含まれる送信対象値と保持部により保持された送信対象値とを比較した結果に基づき、バス通信路に送出された送信対象値の改竄有無を判定する改竄判定部(改竄判定処理部F3)と、改竄判定部により改竄有りと判定されたことに応じて第一通知メッセージをバス通信路に送出する第一通知部(第一通知処理部F4、F4’)とを備えているものである。
【0082】
上記の改竄判定部により、チェックサムごと書き換えるメッセージの改竄有無を適正に判定することが可能とされる。そして、上記の第一通知部により、メッセージ改竄があった旨をバス通信路に接続された他の車載制御装置に通知可能とされ、該通知を受けた他の車載制御装置は、例えばフェールセーフモードに移行する等、改竄値を用いた車両制御を行わない措置をとることが可能とされる。
従って、メッセージが改竄された場合にも車両の安全性確保が図られるようにすることができる。
【0083】
また、実施の形態の車両制御システムにおいては、送出部、保持部、改竄判定部、及び第一通知部を備える車載制御装置が、送信対象値が特定種類の値であるか否かを判定する第一対象値判定部(第一対象値判定処理部F5)と、第一対象値判定部により特定種類の値と判定された送信対象値のみを対象として改竄判定部による判定を実行させる制御部(制御処理部F6)とを備えている。
【0084】
これにより、全ての送信対象値を対象として送信対象値の保持や改竄判定を行う必要がなくなるため、処理負担の軽減を図ることができる。
【0085】
さらに、実施の形態の車両制御システムにおいては、第一通知部は、第一通知メッセージとして、改竄判定部により改竄有りと判定された送信対象値の識別情報を含むメッセージを送出し、車載制御装置のうち少なくとも一つの車載制御装置が、バス通信路に送出された第一通知メッセージを受信する受信部と、受信部が受信した第一通知メッセージに基づき識別される送信対象値が特定種類の値であるか否かを判定する第二対象値判定部(第二対象値判定処理部F8)とを備えている。
【0086】
これにより、送信対象値の送信元となる車載制御装置に特定種類の値か否かを判定させる必要がなくなる。
従って、送信すべき送信対象値の種類が多い車載制御装置に特定種類の値か否かの判定に伴う処理負担を負わせないようにすることが可能となり、バス通信路を介した車載制御装置間の通信の円滑化を図ることができる。
【0087】
さらにまた、実施の形態の車両制御システムにおいては、第一通知部は、第一通知メッセージとして、改竄判定部により改竄有りと判定された送信対象値の識別情報を含むメッセージ(仮通知メッセージ)を送出し、車載制御装置のうち少なくとも一つの車載制御装置が、バス通信路に送出された第一通知メッセージを受信する受信部と、受信部によって異なる送信対象値についての第一通知メッセージが受信された場合に、受信された各第一通知メッセージに基づき識別される改竄有りと判定された送信対象値の組合せが特定組合せであるか否かを判定する対象組合せ判定部(対象組合せ判定処理部F9)と、対象組合せ判定部により特定組合せであると判定されたことに応じて、第一通知メッセージとは異なる第二通知メッセージ(本通知メッセージ)をバス通信路に送出する第二通知部(第二通知処理部F10)とを備えている。
【0088】
これにより、単体の改竄により安全性確保が困難となると予測される送信対象値の改竄以外の多様な改竄に対して安全性確保を図ることができる。
【0089】
また、実施の形態の車両制御システムにおいては、第一通知部は、改竄有りと判定された送信対象値の真値を含む第一通知メッセージをバス通信路に送出する。
【0090】
これにより、改竄に対して車両の安全性確保を図る上で、車両制御を中断せずに真値に基づき適正な車両制御を継続して行うことができる。
【0091】
<5.変形例>
なお、本発明は上記した具体例に限定されず、多様な変形例が考えられる。
例えば、上記では、バス通信路上でやりとりされるメッセージにおける「ID」を改竄有無の通知情報として用いる例を挙げたが、メッセージにフラグの領域を設けて、該フラグのON/OFFを改竄有無の通知情報として機能させることもできる。これは、「ID」のビット数が比較的少ない場合に有効な手法である。
なお、第5例のように真値を用いる場合、フラグ=「1」(改竄有り)としたメッセージ内に真値を格納して送出すればよい。