説明

車載制御ユニット

【課題】車載制御ユニットのソフトウェアの不正書き換えを防止する効果を高める。
【解決手段】エンジンECU11では、メインマイコン21が、車両の通信線17に接続された書換ツール19からの書換開始通知を受けると、該書換ツール19と所定の通信を行った後、フラッシュメモリ32内の制御ソフトを書換ツール19からの制御ソフトに書き換える書換処理を行う。そして、サブマイコン22は、メインマイコン21の端子のうち、通信線17を介して他の装置と通信するための通信回路23に接続される通信用端子41,42とは別の端子であって、当該ECU11において使用されていない通信用端子43の状態をモニタし、該通信用端子43に通信信号が与えられていることを検知するとメインマイコン21をリセットする。このため、上記通信用端子43からの不正アクセスによってフラッシュメモリ32内の制御ソフトが不正に書き換えられるのを防止できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両に搭載される制御ユニット(車載制御ユニット)のソフトウェアが不正に書き換えられることを防止する技術に関する。
【背景技術】
【0002】
車載制御ユニットとしては、電気的に記憶内容の書き換えが可能なEEPROMやフラッシュメモリ等の不揮発性メモリ(以下、書換可能不揮発性メモリともいう)に、制御対象を制御するための制御プログラム及び制御データからなるソフトウェア(以下、制御ソフトともいう)を格納しておき、その不発性メモリ内の制御ソフトを、市場への供給後でも当該ユニットの外部から書き換えることができるようにしたもの(いわゆるオンボード書き換えが可能なもの)がある(例えば、特許文献1参照)。
【0003】
即ち、この種の車載制御ユニットでは、通常時には、当該ユニットに搭載されているマイコンが書換可能不揮発性メモリ内の制御ソフトを実行(詳しくは、制御ソフトのうちの制御プログラムを実行)することで、その制御ソフトに従い制御対象を制御する処理を行う。一方、マイコンは、制御ソフトを書き換えるための外部装置である書換ツールが通信線を介して当該ユニットに接続されると共に、その書換ツールから書換開始通知(書換要求信号)が送信されてくると、その書換ツールとの間で予め定められた手順及び内容の書換許可用通信(制御ソフトの書き換えを実施して良いか否かを判断するための通信)を行い、その通信が正常に完了したならば、書換可能不揮発性メモリ内の制御ソフトを書換ツールから送信されてくる新たな制御ソフトに書き換える書換処理を行う。
【0004】
また、特許文献1には、車載制御ユニットの制御ソフトが、その車載制御ユニットと互換性がないソフトウェアに書き換えられてしまうことを防止する技術が記載されている。具体的には、車載制御ユニットに識別番号を記憶させておくと共に、書換ツールに装着されるデータカードであって、新たな制御ソフトを記憶するデータカードに、その新たな制御ソフトに適合する車載制御ユニットの識別番号を示す情報を記憶させておき、車載制御ユニットは、書換ツールから通信により上記情報を取得して、その情報と自身の識別番号とが一致していなければ制御ソフトの書き換えを禁止する、という技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−141394号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、オンボード書き換えが可能な車載制御ユニットによれば、市場への供給後に制御内容を変更したい場合に、制御ソフトを書き換えることで容易に対応することができる反面、何者かによって制御ソフトが不正に書き換えられる(即ち、正規の書換ツールを用いることなく書き換えられる)懸念もある。
【0007】
このため、制御ソフトの不正書き換えを防止する手法としては、例えば特許文献1の技術を流用することが考えられる。つまり、車載制御ユニットのマイコンは書換ツールから取得する情報と当該ユニットに記憶されている情報とを照合して両情報が一致しなければ書換処理の実行を禁止する、といった構成を採ることが考えられる。
【0008】
そして、一般に、このような照合の思想は上記書換許可用通信に適用されており、何者かが正規の書換ツールではない外部装置(以下、非正規外部装置という)を用いて制御ソフトを不正に書き換えようとしても、上記書換許可用通信が成立せずに、延いては、制御ソフトの不正な書き換えができないようにしている。
【0009】
しかし、制御ソフトを不正に書き換えようとする者(以下、不正行為者という)が、車載制御ユニットにおけるマイコンの端子のうち、正規の書換ツールと通信することとなる通信用端子とは別の通信用端子に何等かの通信機能付き装置を接続して、その別の通信用端子からアクセスすることにより、マイコンに制御ソフトを書き換えさせるようにする可能性もある。
【0010】
本発明は、そのような不正行為の可能性に着目して、車載制御ユニットのソフトウェアが不正に書き換えられることの防止効果を高めることを目的としている。
【課題を解決するための手段】
【0011】
請求項1の車載制御ユニットは、記憶内容が書き換え可能であると共に、制御対象を制御するためのソフトウェア(制御ソフト)が記憶された不揮発性メモリ(書換可能不揮発性メモリ)と、その不揮発性メモリに記憶されているソフトウェアに従って制御対象を制御する処理を行うマイコンと、マイコンが通信線を介して他の装置と通信するための通信回路とを備えている。
【0012】
そして、マイコンは、不揮発性メモリ内のソフトウェアを書き換えるための外部装置である書換ツールが通信線を介して当該車載制御ユニットに接続されて、その書換ツールからの書換開始通知を受けると、該書換ツールとの間で所定の書換許可用通信を行い、その書換許可用通信が完了した後、不揮発性メモリ内のソフトウェアを書換ツールから送信されてくるソフトウェアに書き換える書換処理を行うようになっている。
【0013】
尚、特許請求の範囲において、ソフトウェアとは、制御対象を制御するための制御プログラムに限らず、その制御プログラムの処理によって参照される制御データのことも含んでいる。そして、書換処理によって書き換えられる不揮発性メモリ内のソフトウェアとしては、制御プログラムと制御データとの一方であっても良いし、両方であっても良く、また、制御プログラムの一部又は制御データの一部でも良い。
【0014】
ここで特に、請求項1の車載制御ユニットでは、前記マイコンをメインマイコンとして備えており、更に、そのメインマイコンとは別のマイコンであるサブマイコンも備えている。そして、サブマイコンは、メインマイコンの端子のうち、前記通信回路に接続される通信用端子(即ち、前記通信線を介して他の装置と通信するための通信用端子)とは別の通信用端子であって、当該車載制御ユニットにおいて使用されていない別の通信用端子の状態をモニタし、該別の通信用端子に通信信号が与えられていることを検知した場合にはメインマイコンの動作を阻止する、監視処理を行う。
【0015】
このような車載制御ユニットによれば、不正行為者が、メインマイコンの端子のうち、正規の書換ツールと通信することとなる通信用端子とは別の不使用の通信用端子に、何等かの通信機能付き装置を接続して、その別の通信用端子からアクセスすることによりメインマイコンに不揮発性メモリ内のソフトウェアを書き換えさせようとしても、サブマイコンが、そのような不正行為を検知してメインマイコンの動作を阻止するため、ソフトウェアが不正に書き換えられることを防止することができる。
【0016】
よって、車載制御ユニットのソフトウェア(即ち、メインマイコンが制御対象の制御に用いる制御ソフト)が不正に書き換えられることの防止効果を高めることができる。
ところで、サブマイコンは、前記監視処理において、メインマイコンの動作を阻止するためには、例えば、メインマイコンへの電源供給を遮断すれば良い。また例えば、請求項2に記載のように、サブマイコンは、メインマイコンにリセット信号を与えることで、そのメインマイコンの動作を阻止するようになっていても良い。そして、後者の構成によれば、メインマイコンの動作を阻止するための回路構成が簡単になる。
【0017】
次に、請求項3の車載制御ユニットでは、請求項1,2の車載制御ユニットにおいて、サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを報知するための処理を行う。尚、その報知の処理としては、例えば、警告灯を点灯させたり、車室内の表示装置にメッセージを表示させたりする処理が考えられる。
【0018】
そして、この構成によれば、カーディーラにおける車両整備者等に対して、ソフトウェアが不正に書き換えられようとした可能性があることを知らせることができる。
次に、請求項4の車載制御ユニットでは、請求項1〜3の車載制御ユニットにおいて、サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを示す履歴を不揮発性の記憶手段に記憶する処理を行う。
【0019】
そして、この構成によれば、前記記憶手段に記憶される履歴により、カーディーラにおける車両整備者等に対して、ソフトウェアが不正に書き換えられようとした可能性があることを知らせることができる。
【0020】
次に、請求項5の車載制御ユニットでは、請求項1〜4の車載制御ユニットにおいて、メインマイコンは、サブマイコンの端子のうち、当該車載制御ユニットにおいて使用されていない通信用端子の状態をモニタし、該通信用端子に通信信号が与えられていることを検知した場合にはサブマイコンの動作を阻止する、監視処理を行う。
【0021】
この構成によれば、不正行為者が、サブマイコンの不使用の通信用端子に何等かの通信機能付き装置を接続して、その通信用端子からアクセスすることにより、サブマイコンに該サブマイコンが実行する監視処理用のプログラムを消去させたり書き換えさせたりしようとしても、メインマイコンが、そのような不正行為を検知してサブマイコンの動作を阻止することとなる。
【0022】
このため、サブマイコンが実行する監視処理用のプログラムが不正に消去されたり書き換えられたりして、そのサブマイコンによるメインマイコンに対する監視処理が無効化されてしまうことを防止することができる。よって、メインマイコンが制御対象の制御に用いる制御ソフトが不正に書き換えられることの防止効果を、一層高めることができる。
【0023】
尚、メインマイコンは、サブマイコンの動作を阻止するためには、例えば、サブマイコンへの電源供給を遮断したり、サブマイコンにリセット信号を与えたりすれば良い。
また、メインマイコンも、サブマイコンの通信用端子に通信信号が与えられていることを検知した場合には、更に、サブマイコンのソフトウェアが不正に書き換えられようとした可能性があることを報知するための処理を行ったり、その可能性があることを示す履歴を不揮発性の記憶手段に記憶する処理を行ったりしても良い。
【図面の簡単な説明】
【0024】
【図1】実施形態のエンジンECUの構成を表す構成図である。
【図2】エンジンECUのメインマイコンが行う書換開始通知応答処理を表すフローチャートである。
【図3】エンジンECUのサブマイコンとメインマイコンとが行う監視処理を表すフローチャートである。
【発明を実施するための形態】
【0025】
以下に、本発明が適用された実施形態の車載制御ユニットについて説明する。尚、本実施形態の車載制御ユニットは、車両のエンジンを制御する電子制御ユニットであり、以下では、エンジンECUという。ECUとは、電子制御ユニットのことである。
【0026】
図1に示すように、本実施形態のエンジンECU11は、他のECUと共に、通信線17に接続されて、車載通信システムを構成している。他のECUとしては、例えば、車両盗難を防止するためのイモビライザ制御を行うイモビライザECU13や、車両のメータを制御するメータECU15等がある。そして、エンジンECU11は、それらの他のECU13,15と通信線17を介してデータ通信を行うことにより情報をやり取りしながら車両のエンジンを制御する。
【0027】
また、通信線17には、外部装置(車両外部の装置)を当該通信線17に着脱可能とするためのコネクタ18が設けられている。そして、そのコネクタ18には、ECU11〜15のうちの何れかの制御ソフト(制御プログラム及び制御データからなるソフトウェア)を書き換える際に、制御ソフト書き換え用の外部装置である書換ツール19が取り付けられる。
【0028】
尚、本実施形態では、ECU11〜15のうち、エンジンECU11だけが制御ソフトのオンボード書き換えが可能となっているものとして説明する。このため、書換ツール19は、エンジンECU11の制御ソフトを書き換える場合に、コネクタ18を介して通信線17に接続される。
【0029】
ここで、エンジンECU11は、エンジンを制御するための処理を行うメインマイコン21と、そのメインマイコン21とは別のサブマイコン22と、メインマイコン21が通信線17を介して他の装置(他のECU13,15や書換ツール19)と通信するための通信回路23と、車載バッテリ(図示省略)の電圧であるバッテリ電圧VBを降圧してメインマイコン21及びサブマイコン22を動作させるための一定の電源電圧VDを出力する電源回路24と、を備えている。
【0030】
尚、本実施形態では、車両がイグニッションオンの状態(車両におけるイグニッション系の電源ラインにバッテリ電圧が供給される状態)になると、電源回路24にバッテリ電圧VBが供給され、その電源回路24からメインマイコン21とサブマイコン22とに電源電圧VDが出力されることにより、両マイコン21,22が起動する。
【0031】
メインマイコン21は、プログラムを実行するCPU31と、記憶内容が書き換え可能な不揮発性メモリ(本実施形態ではフラッシュメモリ)32と、CPU31による演算結果等を記憶するための揮発性のRAM33とを備えている。
【0032】
フラッシュメモリ32には、記憶内容の書き換えが許可された記憶領域(以下、書換許可領域という)32aとは別に、記憶内容の書き換えが許可されていない記憶領域(以下、書換不能領域という)32bが設けられている。そして、書換許可領域32aには、制御対象としてのエンジンを制御するための制御ソフト(制御プログラム及び制御データ)が記憶されており、書換不能領域32bには、書換許可領域32a内の制御ソフトを書き換えるための書換処理用プログラムが記憶されている。
【0033】
そして、メインマイコン21では、CPU31が、フラッシュメモリ32内の制御ソフトを実行(詳しくは、制御ソフトのうちの制御プログラムを実行)することにより、その制御ソフトに従いエンジンを制御する処理を行う。
【0034】
一方、サブマイコン22も、プログラムを実行するCPU35と、CPU35によって実行されるプログラムが記憶された不揮発性メモリ36と、CPU35による演算結果等を記憶するための揮発性のRAM37とを備えている。尚、本実施形態において、不揮発性メモリ36としては、記憶内容が書き換え可能なフラッシュメモリを用いている。そして、そのフラッシュメモリ36には、少なくとも、後述する監視処理を行うためのプログラム(監視処理用プログラム)が記憶されている。
【0035】
また、エンジンECU11においては、メインマイコン21の端子のうち、通信回路23に接続される通信用端子(即ち、通信線17を介して他の装置と通信するための通信用端子)41,42とは別の通信用端子であって、当該ECU11において使用されていない別の通信用端子43と、サブマイコン22の信号入力用の入力端子51とが、接続されている。
【0036】
具体的に説明すると、本実施形態において、通信線17及び通信回路23によって実施されるデータ通信のプロトコルは、例えば、車載通信システムで一般的に使用されるCAN(Controller Area Network)である。このため、メインマイコン21の端子のうち、通信回路23に接続される通信用端子41,42は、CAN通信用の受信端子(CAN(RX))41と送信端子(CAN(TX))42である。また、メインマイコン21は、CAN通信のための通信用端子41,42とは別に、例えば、調歩同期式のシリアル通信を行うための通信用端子43,44を備えているが、その通信用端子43,44は、当該ECU11においては不使用の端子となっている。そして、そのシリアル通信のための通信用端子43,44のうち、信号を入力する方の受信端子(SCI(RX))43が、サブマイコン22の入力端子51に接続されている。
【0037】
更に、メインマイコン21のリセット端子(RES)45は、サブマイコン22の信号出力用の出力端子52に接続されている。
また同様に、サブマイコン22の端子のうち、当該ECU11において使用されていない通信用端子53と、メインマイコン21の信号入力用の入力端子46とが、接続されている。例えば、サブマイコン22は、調歩同期式のシリアル通信を行うための通信用端子53,54を備えているが、その通信用端子53,54は、当該ECU11においては不使用の端子となっている。そして、そのシリアル通信のための通信用端子53,54のうち、信号を入力する方の受信端子(SCI(RX))53が、メインマイコン21の入力端子46に接続されている。
【0038】
更に、サブマイコン22のリセット端子(RES)55は、メインマイコン21の信号出力用の出力端子47に接続されている。
一方、書換ツール19は、処理動作の中枢部であるマイコン61や通信回路63や操作部65を備えている。
【0039】
そして、書換ツール19では、当該書換ツール19の使用者(通常は、エンジンECU11の制御ソフトを書き換える作業者)が操作部65に対して所定の操作を行うと、マイコン61が、エンジンECU11の制御ソフトを書き換えるための制御ソフト書換用処理を行う。また、書換ツール19には、エンジンECU11へ送信する制御ソフト(即ち、書き換えるべき新たな制御ソフト)が記憶された所定形状の記憶媒体67が装着されるようになっている。尚、記憶媒体67としては、例えばカード型のメモリカードやUSBメモリ等が考えられる。
【0040】
次に、エンジンECU11の制御ソフトを書き換える際に、そのエンジンECU11のメインマイコン21で行われる処理について、書換ツール19側で行われる処理の内容と共に説明する。
【0041】
エンジンECU11の制御ソフトを書き換える作業者が、書換ツール19を車両の通信線17に接続し、その後、操作部65に対して所定の操作を行うと、書換ツール19は、通信線17に書換開始通知を送信する。
【0042】
そして、エンジンECU11のメインマイコン21では、フラッシュメモリ32内の制御ソフトに従いエンジンの制御を行う通常制御期間中において、書換ツール19からの書換開始通知を受信すると、図2の書換開始通知応答処理を行う。尚、メインマイコン21が行う処理は、実際にはメインマイコン21のCPU31によって行われる。
【0043】
図2に示すように、メインマイコン21は、書換開始通知応答処理を開始すると、まずS110にて、現在の制御ソフトを当該ECU11に適合しない制御ソフトに書き換えてしまうことを防止するための品番確認用処理を行う。
【0044】
具体的には、まず、書換ツール19から品番要求が送信されてくるため、その品番要求を受信したなら、書換ツール19へ当該ECU11の品番を送信する。すると、書換ツール19では、記憶媒体67に記憶されている制御ソフトのうち、当該ECU11の品番に適合する制御ソフトが、書き換えるべき新たな制御ソフトとして選択される。尚、エンジンECU11において、当該ECU11の品番は、例えば、フラッシュメモリ32の書換不能領域32b、又はメインマイコン21内の通常のROM(図示省略)に記憶されている。
【0045】
次にS120にて、実行対象のプログラムを切り替える。つまり、本実施形態において、このS120と上記S110の処理は、フラッシュメモリ32の書換許可領域32aに書き換え対象の制御ソフトの一部として記憶されている所定のプログラムによって行われるため、このS120にて、フラッシュメモリ32の書換不能領域32bに記憶されている書換処理用プログラムへジャンプし、以後は、その書換処理用プログラムを実行することで、後述するS130〜S160の処理を行う。
【0046】
そして、S120に続くS130では、通信相手が正規の書換ツール19であるかを確認するためのセキュリティ確認用処理を行う。
具体的には、書換ツール19と所定規則の暗号通信を何度か行い、その暗号通信が全て正常に完了したならば、通信相手が正規の書換ツール19であると判断して、S140に進む。尚、図2では図示を省略しているが、上記S130にて、書換ツール19との暗号通信(セキュリティ確認用処理)を正常に完了できなければ、以後の処理を中断して、最後のS160へ移行する。
【0047】
S140では、書換ツール19に制御ソフトの要求を送信する。すると、書換ツール19から、書き換えるべき新たな制御ソフト(即ち、前述の品番確認用処理が行われたことにより書換ツール19側で選択された制御ソフト)が送信されてくるため、フラッシュメモリ32の書換許可領域32aに記憶されている制御ソフトを書換ツール19から送信されてくる新たな制御ソフトに書き換える書換処理を行う。具体的には、書換許可領域32a内のデータを消去し、その消去した領域32aに、書換ツール19から受信した制御ソフト(詳しくは、制御ソフトを構成するデジタルデータ)を書き込む。尚、書き換えられる制御ソフトとしては、制御プログラムと制御データとの一方であっても、両方であっても良く、制御プログラムの一部又は制御データの一部であっても良い。
【0048】
そして、S140の書換処理により、書換ツール19からの制御ソフトを全てフラッシュメモリ32の書換許可領域32aに書き込んだならば、S150に進み、制御ソフトの書き込みが正常に完了したか否かを確認するためのメモリチェックを行う。具体的には、フラッシュメモリ32の書換許可領域32aに書き込んだ制御ソフトと、書換ツール19から受信してRAM33に一時的に保存している制御ソフトとを比較(ベリファイ)する。
【0049】
このS150でのメモリチェックがNGならば、例えばS140の処理をやり直すが、S150でのメモリチェックがOKならば、S160に進む。
そして、S160では、書換終了後処理として、当該メインマイコン21を再起動させるための処理を行う。尚、メインマイコン21を再起動させるための処理としては、当該メインマイコン21のリセット端子45のレベルをリセットがかかる方のアクティブレベルにする処理が考えられる。また、本実施形態において、メインマイコン21は、リセット状態から起動すると、制御ソフトを成す制御プログラムの先頭から実行するようになっているため、メインマイコン21を再起動させるための処理としては、プログラムの実行先アドレスを制御プログラムの先頭アドレスにジャンプさせる処理でも良い。
【0050】
このため、S150からS160に進んだ場合であって、フラッシュメモリ32内の制御ソフトが、正規の書換ツール19によって当該ECU11に適合する制御ソフトに正常に書き換えられた場合には、S160の処理により、その書き換えられた新たな制御ソフトを成す制御プログラムの実行が開始されることとなる。
【0051】
次に、図3は、サブマイコン22が行う監視処理を表すフローチャートである。尚、この監視処理は、フラッシュメモリ36内の監視処理用プログラムによる処理であり、例えば一定時間毎に行われる。また、サブマイコン22が行う処理は、実際にはサブマイコン22のCPU35によって行われる。
【0052】
図3に示すように、サブマイコン22は、監視処理を開始すると、まずS210にて、入力端子51への入力レベルを読み取ることにより、メインマイコン21の不使用の通信用端子43の状態をモニタして、その通信用端子43に通信信号が与えられているか否かを判定する。例えば、通信用端子43の電圧レベル(入力端子51への入力レベル)が、所定時間以内にハイとローとに所定回数以上変化したなら、通信用端子43に通信信号が与えられていると判定する。
【0053】
そして、このS210にて、通信用端子43に通信信号が与えられていると判定しなかった場合には、そのまま当該監視処理を終了するが、通信用端子43に通信信号が与えられていると判定した場合には、S220に進み、メインマイコン21の動作を阻止する処理を行う。具体的な処理としては、出力端子52からメインマイコン21のリセット端子45へアクティブレベルのリセット信号を出力することにより、メインマイコン21をリセット状態にする。
【0054】
尚、リセット信号は、例えば一定時間だけ出力するように構成することもできるが、本実施形態では、S210にてメインマイコン21の通信用端子43に通信信号が与えられていると一旦判定したならば、車両がイグニッションオフの状態になって当該ECU11への動作用電源としてのバッテリ電圧VBが遮断されるまで、メインマイコン21へのリセット信号を出力し続けるようになっている。また、メインマイコン21の動作を阻止する処理としては、リセット信号を与えることに代えて、例えば、電源回路24からメインマイコン21に電源電圧VDが供給されるのを阻止する処理でも良い。具体的には、例えば、電源回路24からメインマイコン21へ電源電圧VDを供給するための電源ライン上に、半導体からなるスイッチを設けておき、そのスイッチをオフさせることで、メインマイコン21への電源供給を遮断するようにしても良い。
【0055】
そして、サブマイコン22は、次のS230にて、メインマイコン21におけるフラッシュメモリ32内の制御ソフトが不正に書き換えられようとした可能性があることを報知するための報知処理を行うと共に、制御ソフトが不正に書き換えられようとした可能性があることを示す履歴を、フラッシュメモリ36の所定領域に記憶する処理を行う。そして、その後、当該監視処理を終了する。
【0056】
尚、報知処理としては、例えば、車室内に設けられている警告灯を点灯させたり、車室内の表示装置にメッセージを表示させたりする処理が考えられる。そして、その報知処理は、S210にてメインマイコン21の通信用端子43に通信信号が与えられていると一旦判定したならば、以後、電源電圧VDの供給停止期間があったとしても、当該サブマイコン22が動作している期間中は継続して行う。確実な報知を実現するためである。
【0057】
一方、メインマイコン21も、サブマイコン22を監視対象として、図3の監視処理と同じ内容の監視処理を、例えば一定時間毎に行う。
図3におけるステップ番号を引用して説明すると、メインマイコン21は監視処理を開始すると、まず、入力端子46への入力レベルを読み取ることにより、サブマイコン22の通信用端子53の状態をモニタして、その通信用端子53に通信信号が与えられているか否かを判定する(S210)。
【0058】
そして、通信用端子53に通信信号が与えられていると判定しなかった場合には(S210:NO)、そのまま当該監視処理を終了するが、通信用端子53に通信信号が与えられていると判定した場合には(S210:YES)、サブマイコン22の動作を阻止する処理を行う(S220)。具体的な処理としては、出力端子47からサブマイコン22のリセット端子55へアクティブレベルのリセット信号を出力することにより、サブマイコン22をリセット状態にする。
【0059】
尚、メインマイコン21からサブマイコン22へのリセット信号も、一定時間だけ出力するように構成しても良いが、サブマイコン22の通信用端子53に通信信号が与えられていると一旦判定したならば、車両がイグニッションオフの状態になって当該ECU11への動作用電源としてのバッテリ電圧VBが遮断されるまで、サブマイコン22へのリセット信号を出力し続けるようにしても良い。また、サブマイコン22の動作を阻止する処理としては、電源回路24からサブマイコン22に電源電圧VDが供給されるのを阻止する処理でも良い。
【0060】
そして更に、メインマイコン21は、サブマイコン22の通信用端子53に通信信号が与えられていると判定した場合には、サブマイコン22におけるフラッシュメモリ36内のプログラムが不正に書き換えられようとした可能性があることを報知するための報知処理を行うと共に、そのフラッシュメモリ36内のプログラムが不正に書き換えられようとした可能性があることを示す履歴を、フラッシュメモリ32の所定領域に記憶する処理を行う(S230)。そして、その後、当該監視処理を終了する。
【0061】
尚、メインマイコン21が行う報知処理も、サブマイコン22が行う前述の報知処理と同様の処理で良い。そして、その報知処理は、サブマイコン22の通信用端子53に通信信号が与えられていると一旦判定したならば、以後、電源電圧VDの供給停止期間があったとしても、当該メインマイコン21が動作している期間中は継続して行えば良い。
【0062】
また、メインマイコン21が行う監視処理は、例えば、フラッシュメモリ32の書換許可領域32aと書換不能領域32bとメインマイコン21内の通常のROM(図示省略)との、何れかに記憶されている監視処理用プログラムによって実現することができる。
【0063】
一方、エンジンECU11に、サブマイコン22が通信線17を介して他の装置と通信(本実施形態ではCAN通信)するための通信回路が設けられていて、例えば、サブマイコン22のフラッシュメモリ36に記憶されているプログラムも書換ツール19によってオンボード書き換え可能となっていても良い。
【0064】
以上のような本実施形態のエンジンECU11では、サブマイコン22が、メインマイコン21の不使用の通信用端子43に通信信号が与えられていることを検知すると(S210:YES)、メインマイコン21の動作を阻止する(S220)。
【0065】
このため、不正行為者が、その通信用端子43に何等かの通信機能付き装置を接続してメインマイコン21にフラッシュメモリ32内の制御ソフトを書き換えさせようとしても、サブマイコン22が、そのような不正行為を検知してメインマイコン21の動作を停止させることとなり、制御ソフトが不正に書き換えられることを防止することができる。よって、制御ソフトが不正に書き換えられることの防止効果を高めることができる。
【0066】
また、サブマイコン22は、メインマイコン21の通信用端子43に通信信号が与えられていることを検知した場合に(S210:YES)、メインマイコン21の制御ソフトが不正に書き換えられようとした可能性があることを報知するための報知処理と、制御ソフトが不正に書き換えられようとした可能性があることを示す履歴をフラッシュメモリ36の所定領域に記憶する処理とを行う(S230)。このため、カーディーラにおける車両整備者等に対して、制御ソフトが不正に書き換えられようとした可能性があることを知らせることができる。
【0067】
更に、メインマイコン21も、サブマイコン22を監視対象として、図3の監視処理と同じ内容の監視処理を行う。
このため、不正行為者が、サブマイコン22の不使用の通信用端子53に何等かの通信機能付き装置を接続して、サブマイコン22に該サブマイコン22が実行する監視処理用プログラムを消去させたり書き換えさせたりしようとしても、メインマイコン21が、そのような不正行為を検知してサブマイコン22の動作を停止させることとなる。
【0068】
よって、サブマイコン22側の監視処理用プログラムが不正に消去されたり書き換えられたりして、サブマイコン22によるメインマイコン21に対する監視処理が無効化されてしまうことを防止することができ、延いては、メインマイコン21の制御ソフトが不正に書き換えられることの防止効果を、一層高めることができる。
【0069】
尚、本実施形態では、図2のS110(品番確認用処理)とS130(セキュリティ確認用処理)とで行う書換ツール19との通信が、書換許可用通信に相当している。また、サブマイコン22において、図3のS230で履歴が記憶されるフラッシュメモリ36の所定領域が、不揮発性の記憶手段に相当している。
【0070】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【0071】
例えば、フラッシュメモリ32はメインマイコン21の外部に設けられても良い。同様に、フラッシュメモリ36はサブマイコン22の外部に設けられても良い。
また、サブマイコン22側では、フラッシュメモリ36に代えて、記憶内容の書き換えが不能な不揮発性メモリを用いても良い。その場合、メインマイコン21は、サブマイコン22を監視対象とした監視処理を行わなくても良い。
【0072】
また、書換可能不揮発性メモリとしては、フラッシュメモリ以外の種類のメモリ(例えばEEPROM等)を用いても良い。
また、本発明が適用されるECUは、エンジンを制御するものに限らず、他の役割を持つECUであっても良い。
【符号の説明】
【0073】
11…エンジンECU、13…イモビライザECU、15…メータECU
17…通信線、18…コネクタ、19…書換ツール、21…メインマイコン
22…サブマイコン、23…通信回路、24…電源回路、31,35…CPU
32,36…フラッシュメモリ、32a…書換許可領域、32b…書換不能領域
33,37…RAM、41,42,43,44,53,54…通信用端子
45,55…リセット端子、46,51…入力端子、47,52…出力端子
61…マイコン、63…通信回路、65…操作部、67…記憶媒体

【特許請求の範囲】
【請求項1】
記憶内容が書き換え可能であると共に、制御対象を制御するためのソフトウェアが記憶された不揮発性メモリと、
前記不揮発性メモリに記憶されているソフトウェアに従って前記制御対象を制御する処理を行うマイコンと、
前記マイコンが通信線を介して他の装置と通信するための通信回路と、を備えた車載制御ユニットであり、
前記マイコンは、前記不揮発性メモリ内のソフトウェアを書き換えるための外部装置である書換ツールが前記通信線を介して当該車載制御ユニットに接続されて、前記書換ツールからの書換開始通知を受けると、前記書換ツールとの間で所定の書換許可用通信を行い、その書換許可用通信が完了した後、前記不揮発性メモリ内のソフトウェアを前記書換ツールから送信されてくるソフトウェアに書き換える書換処理を行うようになっている、車載制御ユニットにおいて、
前記マイコンをメインマイコンとして備えると共に、該メインマイコンとは別のマイコンであるサブマイコンを更に備え、
前記サブマイコンは、
前記メインマイコンの端子のうち、前記通信回路に接続される通信用端子とは別の通信用端子であって、当該車載制御ユニットにおいて使用されていない別の通信用端子の状態をモニタし、該別の通信用端子に通信信号が与えられていることを検知した場合には前記メインマイコンの動作を阻止する、監視処理を行うこと、
を特徴とする車載制御ユニット。
【請求項2】
請求項1に記載の車載制御ユニットにおいて、
前記サブマイコンは、前記メインマイコンにリセット信号を与えることで、前記メインマイコンの動作を阻止すること、
を特徴とする車載制御ユニット。
【請求項3】
請求項1又は請求項2に記載の車載制御ユニットにおいて、
前記サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを報知するための処理を行うこと、
を特徴とする車載制御ユニット。
【請求項4】
請求項1ないし請求項3の何れか1項に記載の車載制御ユニットにおいて、
前記サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを示す履歴を不揮発性の記憶手段に記憶する処理を行うこと、
を特徴とする車載制御ユニット。
【請求項5】
請求項1ないし請求項4の何れか1項に記載の車載制御ユニットにおいて、
前記メインマイコンは、
前記サブマイコンの端子のうち、当該車載制御ユニットにおいて使用されていない通信用端子の状態をモニタし、該通信用端子に通信信号が与えられていることを検知した場合には前記サブマイコンの動作を阻止する、監視処理を行うこと、
を特徴とする車載制御ユニット。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate