(57)【要約】【課題】車載制御ユニットのソフトウェアの不正書き換えを防止する効果を高める。【解決手段】エンジンＥＣＵ１１では、メインマイコン２１が、車両の通信線１７に接続された書換ツール１９からの書換開始通知を受けると、該書換ツール１９と所定の通信を行った後、フラッシュメモリ３２内の制御ソフトを書換ツール１９からの制御ソフトに書き換える書換処理を行う。そして、サブマイコン２２は、メインマイコン２１の端子のうち、通信線１７を介して他の装置と通信するための通信回路２３に接続される通信用端子４１，４２とは別の端子であって、当該ＥＣＵ１１において使用されていない通信用端子４３の状態をモニタし、該通信用端子４３に通信信号が与えられていることを検知するとメインマイコン２１をリセットする。このため、上記通信用端子４３からの不正アクセスによってフラッシュメモリ３２内の制御ソフトが不正に書き換えられるのを防止できる。【選択図】図１
2012242900.tif 000002
【特許請求の範囲】
【請求項１】
記憶内容が書き換え可能であると共に、制御対象を制御するためのソフトウェアが記憶された不揮発性メモリと、
前記不揮発性メモリに記憶されているソフトウェアに従って前記制御対象を制御する処理を行うマイコンと、
前記マイコンが通信線を介して他の装置と通信するための通信回路と、を備えた車載制御ユニットであり、
前記マイコンは、前記不揮発性メモリ内のソフトウェアを書き換えるための外部装置である書換ツールが前記通信線を介して当該車載制御ユニットに接続されて、前記書換ツールからの書換開始通知を受けると、前記書換ツールとの間で所定の書換許可用通信を行い、その書換許可用通信が完了した後、前記不揮発性メモリ内のソフトウェアを前記書換ツールから送信されてくるソフトウェアに書き換える書換処理を行うようになっている、車載制御ユニットにおいて、
前記マイコンをメインマイコンとして備えると共に、該メインマイコンとは別のマイコンであるサブマイコンを更に備え、
前記サブマイコンは、
前記メインマイコンの端子のうち、前記通信回路に接続される通信用端子とは別の通信用端子であって、当該車載制御ユニットにおいて使用されていない別の通信用端子の状態をモニタし、該別の通信用端子に通信信号が与えられていることを検知した場合には前記メインマイコンの動作を阻止する、監視処理を行うこと、
を特徴とする車載制御ユニット。
【請求項２】
請求項１に記載の車載制御ユニットにおいて、
前記サブマイコンは、前記メインマイコンにリセット信号を与えることで、前記メインマイコンの動作を阻止すること、
を特徴とする車載制御ユニット。
【請求項３】
請求項１又は請求項２に記載の車載制御ユニットにおいて、
前記サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを報知するための処理を行うこと、
を特徴とする車載制御ユニット。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の車載制御ユニットにおいて、
前記サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを示す履歴を不揮発性の記憶手段に記憶する処理を行うこと、
を特徴とする車載制御ユニット。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の車載制御ユニットにおいて、
前記メインマイコンは、
前記サブマイコンの端子のうち、当該車載制御ユニットにおいて使用されていない通信用端子の状態をモニタし、該通信用端子に通信信号が与えられていることを検知した場合には前記サブマイコンの動作を阻止する、監視処理を行うこと、
を特徴とする車載制御ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載される制御ユニット（車載制御ユニット）のソフトウェアが不正に書き換えられることを防止する技術に関する。
【背景技術】
【０００２】
車載制御ユニットとしては、電気的に記憶内容の書き換えが可能なＥＥＰＲＯＭやフラッシュメモリ等の不揮発性メモリ（以下、書換可能不揮発性メモリともいう）に、制御対象を制御するための制御プログラム及び制御データからなるソフトウェア（以下、制御ソフトともいう）を格納しておき、その不発性メモリ内の制御ソフトを、市場への供給後でも当該ユニットの外部から書き換えることができるようにしたもの（いわゆるオンボード書き換えが可能なもの）がある（例えば、特許文献１参照）。
【０００３】
即ち、この種の車載制御ユニットでは、通常時には、当該ユニットに搭載されているマイコンが書換可能不揮発性メモリ内の制御ソフトを実行（詳しくは、制御ソフトのうちの制御プログラムを実行）することで、その制御ソフトに従い制御対象を制御する処理を行う。一方、マイコンは、制御ソフトを書き換えるための外部装置である書換ツールが通信線を介して当該ユニットに接続されると共に、その書換ツールから書換開始通知（書換要求信号）が送信されてくると、その書換ツールとの間で予め定められた手順及び内容の書換許可用通信（制御ソフトの書き換えを実施して良いか否かを判断するための通信）を行い、その通信が正常に完了したならば、書換可能不揮発性メモリ内の制御ソフトを書換ツールから送信されてくる新たな制御ソフトに書き換える書換処理を行う。
【０００４】
また、特許文献１には、車載制御ユニットの制御ソフトが、その車載制御ユニットと互換性がないソフトウェアに書き換えられてしまうことを防止する技術が記載されている。具体的には、車載制御ユニットに識別番号を記憶させておくと共に、書換ツールに装着されるデータカードであって、新たな制御ソフトを記憶するデータカードに、その新たな制御ソフトに適合する車載制御ユニットの識別番号を示す情報を記憶させておき、車載制御ユニットは、書換ツールから通信により上記情報を取得して、その情報と自身の識別番号とが一致していなければ制御ソフトの書き換えを禁止する、という技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１４１３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、オンボード書き換えが可能な車載制御ユニットによれば、市場への供給後に制御内容を変更したい場合に、制御ソフトを書き換えることで容易に対応することができる反面、何者かによって制御ソフトが不正に書き換えられる（即ち、正規の書換ツールを用いることなく書き換えられる）懸念もある。
【０００７】
このため、制御ソフトの不正書き換えを防止する手法としては、例えば特許文献１の技術を流用することが考えられる。つまり、車載制御ユニットのマイコンは書換ツールから取得する情報と当該ユニットに記憶されている情報とを照合して両情報が一致しなければ書換処理の実行を禁止する、といった構成を採ることが考えられる。
【０００８】
そして、一般に、このような照合の思想は上記書換許可用通信に適用されており、何者かが正規の書換ツールではない外部装置（以下、非正規外部装置という）を用いて制御ソフトを不正に書き換えようとしても、上記書換許可用通信が成立せずに、延いては、制御ソフトの不正な書き換えができないようにしている。
【０００９】
しかし、制御ソフトを不正に書き換えようとする者（以下、不正行為者という）が、車載制御ユニットにおけるマイコンの端子のうち、正規の書換ツールと通信することとなる通信用端子とは別の通信用端子に何等かの通信機能付き装置を接続して、その別の通信用端子からアクセスすることにより、マイコンに制御ソフトを書き換えさせるようにする可能性もある。
【００１０】
本発明は、そのような不正行為の可能性に着目して、車載制御ユニットのソフトウェアが不正に書き換えられることの防止効果を高めることを目的としている。
【課題を解決するための手段】
【００１１】
請求項１の車載制御ユニットは、記憶内容が書き換え可能であると共に、制御対象を制御するためのソフトウェア（制御ソフト）が記憶された不揮発性メモリ（書換可能不揮発性メモリ）と、その不揮発性メモリに記憶されているソフトウェアに従って制御対象を制御する処理を行うマイコンと、マイコンが通信線を介して他の装置と通信するための通信回路とを備えている。
【００１２】
そして、マイコンは、不揮発性メモリ内のソフトウェアを書き換えるための外部装置である書換ツールが通信線を介して当該車載制御ユニットに接続されて、その書換ツールからの書換開始通知を受けると、該書換ツールとの間で所定の書換許可用通信を行い、その書換許可用通信が完了した後、不揮発性メモリ内のソフトウェアを書換ツールから送信されてくるソフトウェアに書き換える書換処理を行うようになっている。
【００１３】
尚、特許請求の範囲において、ソフトウェアとは、制御対象を制御するための制御プログラムに限らず、その制御プログラムの処理によって参照される制御データのことも含んでいる。そして、書換処理によって書き換えられる不揮発性メモリ内のソフトウェアとしては、制御プログラムと制御データとの一方であっても良いし、両方であっても良く、また、制御プログラムの一部又は制御データの一部でも良い。
【００１４】
ここで特に、請求項１の車載制御ユニットでは、前記マイコンをメインマイコンとして備えており、更に、そのメインマイコンとは別のマイコンであるサブマイコンも備えている。そして、サブマイコンは、メインマイコンの端子のうち、前記通信回路に接続される通信用端子（即ち、前記通信線を介して他の装置と通信するための通信用端子）とは別の通信用端子であって、当該車載制御ユニットにおいて使用されていない別の通信用端子の状態をモニタし、該別の通信用端子に通信信号が与えられていることを検知した場合にはメインマイコンの動作を阻止する、監視処理を行う。
【００１５】
このような車載制御ユニットによれば、不正行為者が、メインマイコンの端子のうち、正規の書換ツールと通信することとなる通信用端子とは別の不使用の通信用端子に、何等かの通信機能付き装置を接続して、その別の通信用端子からアクセスすることによりメインマイコンに不揮発性メモリ内のソフトウェアを書き換えさせようとしても、サブマイコンが、そのような不正行為を検知してメインマイコンの動作を阻止するため、ソフトウェアが不正に書き換えられることを防止することができる。
【００１６】
よって、車載制御ユニットのソフトウェア（即ち、メインマイコンが制御対象の制御に用いる制御ソフト）が不正に書き換えられることの防止効果を高めることができる。
ところで、サブマイコンは、前記監視処理において、メインマイコンの動作を阻止するためには、例えば、メインマイコンへの電源供給を遮断すれば良い。また例えば、請求項２に記載のように、サブマイコンは、メインマイコンにリセット信号を与えることで、そのメインマイコンの動作を阻止するようになっていても良い。そして、後者の構成によれば、メインマイコンの動作を阻止するための回路構成が簡単になる。
【００１７】
次に、請求項３の車載制御ユニットでは、請求項１，２の車載制御ユニットにおいて、サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを報知するための処理を行う。尚、その報知の処理としては、例えば、警告灯を点灯させたり、車室内の表示装置にメッセージを表示させたりする処理が考えられる。
【００１８】
そして、この構成によれば、カーディーラにおける車両整備者等に対して、ソフトウェアが不正に書き換えられようとした可能性があることを知らせることができる。
次に、請求項４の車載制御ユニットでは、請求項１〜３の車載制御ユニットにおいて、サブマイコンは、前記別の通信用端子に通信信号が与えられていることを検知した場合に、更に、前記不揮発性メモリ内のソフトウェアが不正に書き換えられようとした可能性があることを示す履歴を不揮発性の記憶手段に記憶する処理を行う。
【００１９】
そして、この構成によれば、前記記憶手段に記憶される履歴により、カーディーラにおける車両整備者等に対して、ソフトウェアが不正に書き換えられようとした可能性があることを知らせることができる。
【００２０】
次に、請求項５の車載制御ユニットでは、請求項１〜４の車載制御ユニットにおいて、メインマイコンは、サブマイコンの端子のうち、当該車載制御ユニットにおいて使用されていない通信用端子の状態をモニタし、該通信用端子に通信信号が与えられていることを検知した場合にはサブマイコンの動作を阻止する、監視処理を行う。
【００２１】
この構成によれば、不正行為者が、サブマイコンの不使用の通信用端子に何等かの通信機能付き装置を接続して、その通信用端子からアクセスすることにより、サブマイコンに該サブマイコンが実行する監視処理用のプログラムを消去させたり書き換えさせたりしようとしても、メインマイコンが、そのような不正行為を検知してサブマイコンの動作を阻止することとなる。
【００２２】
このため、サブマイコンが実行する監視処理用のプログラムが不正に消去されたり書き換えられたりして、そのサブマイコンによるメインマイコンに対する監視処理が無効化されてしまうことを防止することができる。よって、メインマイコンが制御対象の制御に用いる制御ソフトが不正に書き換えられることの防止効果を、一層高めることができる。
【００２３】
尚、メインマイコンは、サブマイコンの動作を阻止するためには、例えば、サブマイコンへの電源供給を遮断したり、サブマイコンにリセット信号を与えたりすれば良い。
また、メインマイコンも、サブマイコンの通信用端子に通信信号が与えられていることを検知した場合には、更に、サブマイコンのソフトウェアが不正に書き換えられようとした可能性があることを報知するための処理を行ったり、その可能性があることを示す履歴を不揮発性の記憶手段に記憶する処理を行ったりしても良い。
【図面の簡単な説明】
【００２４】
【図１】実施形態のエンジンＥＣＵの構成を表す構成図である。
【図２】エンジンＥＣＵのメインマイコンが行う書換開始通知応答処理を表すフローチャートである。
【図３】エンジンＥＣＵのサブマイコンとメインマイコンとが行う監視処理を表すフローチャートである。
【発明を実施するための形態】
【００２５】
以下に、本発明が適用された実施形態の車載制御ユニットについて説明する。尚、本実施形態の車載制御ユニットは、車両のエンジンを制御する電子制御ユニットであり、以下では、エンジンＥＣＵという。ＥＣＵとは、電子制御ユニットのことである。
【００２６】
図１に示すように、本実施形態のエンジンＥＣＵ１１は、他のＥＣＵと共に、通信線１７に接続されて、車載通信システムを構成している。他のＥＣＵとしては、例えば、車両盗難を防止するためのイモビライザ制御を行うイモビライザＥＣＵ１３や、車両のメータを制御するメータＥＣＵ１５等がある。そして、エンジンＥＣＵ１１は、それらの他のＥＣＵ１３，１５と通信線１７を介してデータ通信を行うことにより情報をやり取りしながら車両のエンジンを制御する。
【００２７】
また、通信線１７には、外部装置（車両外部の装置）を当該通信線１７に着脱可能とするためのコネクタ１８が設けられている。そして、そのコネクタ１８には、ＥＣＵ１１〜１５のうちの何れかの制御ソフト（制御プログラム及び制御データからなるソフトウェア）を書き換える際に、制御ソフト書き換え用の外部装置である書換ツール１９が取り付けられる。
【００２８】
尚、本実施形態では、ＥＣＵ１１〜１５のうち、エンジンＥＣＵ１１だけが制御ソフトのオンボード書き換えが可能となっているものとして説明する。このため、書換ツール１９は、エンジンＥＣＵ１１の制御ソフトを書き換える場合に、コネクタ１８を介して通信線１７に接続される。
【００２９】
ここで、エンジンＥＣＵ１１は、エンジンを制御するための処理を行うメインマイコン２１と、そのメインマイコン２１とは別のサブマイコン２２と、メインマイコン２１が通信線１７を介して他の装置（他のＥＣＵ１３，１５や書換ツール１９）と通信するための通信回路２３と、車載バッテリ（図示省略）の電圧であるバッテリ電圧ＶＢを降圧してメインマイコン２１及びサブマイコン２２を動作させるための一定の電源電圧ＶＤを出力する電源回路２４と、を備えている。
【００３０】
尚、本実施形態では、車両がイグニッションオンの状態（車両におけるイグニッション系の電源ラインにバッテリ電圧が供給される状態）になると、電源回路２４にバッテリ電圧ＶＢが供給され、その電源回路２４からメインマイコン２１とサブマイコン２２とに電源電圧ＶＤが出力されることにより、両マイコン２１，２２が起動する。
【００３１】
メインマイコン２１は、プログラムを実行するＣＰＵ３１と、記憶内容が書き換え可能な不揮発性メモリ（本実施形態ではフラッシュメモリ）３２と、ＣＰＵ３１による演算結果等を記憶するための揮発性のＲＡＭ３３とを備えている。
【００３２】
フラッシュメモリ３２には、記憶内容の書き換えが許可された記憶領域（以下、書換許可領域という）３２ａとは別に、記憶内容の書き換えが許可されていない記憶領域（以下、書換不能領域という）３２ｂが設けられている。そして、書換許可領域３２ａには、制御対象としてのエンジンを制御するための制御ソフト（制御プログラム及び制御データ）が記憶されており、書換不能領域３２ｂには、書換許可領域３２ａ内の制御ソフトを書き換えるための書換処理用プログラムが記憶されている。
【００３３】
そして、メインマイコン２１では、ＣＰＵ３１が、フラッシュメモリ３２内の制御ソフトを実行（詳しくは、制御ソフトのうちの制御プログラムを実行）することにより、その制御ソフトに従いエンジンを制御する処理を行う。
【００３４】
一方、サブマイコン２２も、プログラムを実行するＣＰＵ３５と、ＣＰＵ３５によって実行されるプログラムが記憶された不揮発性メモリ３６と、ＣＰＵ３５による演算結果等を記憶するための揮発性のＲＡＭ３７とを備えている。尚、本実施形態において、不揮発性メモリ３６としては、記憶内容が書き換え可能なフラッシュメモリを用いている。そして、そのフラッシュメモリ３６には、少なくとも、後述する監視処理を行うためのプログラム（監視処理用プログラム）が記憶されている。
【００３５】
また、エンジンＥＣＵ１１においては、メインマイコン２１の端子のうち、通信回路２３に接続される通信用端子（即ち、通信線１７を介して他の装置と通信するための通信用端子）４１，４２とは別の通信用端子であって、当該ＥＣＵ１１において使用されていない別の通信用端子４３と、サブマイコン２２の信号入力用の入力端子５１とが、接続されている。
【００３６】
具体的に説明すると、本実施形態において、通信線１７及び通信回路２３によって実施されるデータ通信のプロトコルは、例えば、車載通信システムで一般的に使用されるＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。このため、メインマイコン２１の端子のうち、通信回路２３に接続される通信用端子４１，４２は、ＣＡＮ通信用の受信端子（ＣＡＮ（ＲＸ））４１と送信端子（ＣＡＮ（ＴＸ））４２である。また、メインマイコン２１は、ＣＡＮ通信のための通信用端子４１，４２とは別に、例えば、調歩同期式のシリアル通信を行うための通信用端子４３，４４を備えているが、その通信用端子４３，４４は、当該ＥＣＵ１１においては不使用の端子となっている。そして、そのシリアル通信のための通信用端子４３，４４のうち、信号を入力する方の受信端子（ＳＣＩ（ＲＸ））４３が、サブマイコン２２の入力端子５１に接続されている。
【００３７】
更に、メインマイコン２１のリセット端子（ＲＥＳ）４５は、サブマイコン２２の信号出力用の出力端子５２に接続されている。
また同様に、サブマイコン２２の端子のうち、当該ＥＣＵ１１において使用されていない通信用端子５３と、メインマイコン２１の信号入力用の入力端子４６とが、接続されている。例えば、サブマイコン２２は、調歩同期式のシリアル通信を行うための通信用端子５３，５４を備えているが、その通信用端子５３，５４は、当該ＥＣＵ１１においては不使用の端子となっている。そして、そのシリアル通信のための通信用端子５３，５４のうち、信号を入力する方の受信端子（ＳＣＩ（ＲＸ））５３が、メインマイコン２１の入力端子４６に接続されている。
【００３８】
更に、サブマイコン２２のリセット端子（ＲＥＳ）５５は、メインマイコン２１の信号出力用の出力端子４７に接続されている。
一方、書換ツール１９は、処理動作の中枢部であるマイコン６１や通信回路６３や操作部６５を備えている。
【００３９】
そして、書換ツール１９では、当該書換ツール１９の使用者（通常は、エンジンＥＣＵ１１の制御ソフトを書き換える作業者）が操作部６５に対して所定の操作を行うと、マイコン６１が、エンジンＥＣＵ１１の制御ソフトを書き換えるための制御ソフト書換用処理を行う。また、書換ツール１９には、エンジンＥＣＵ１１へ送信する制御ソフト（即ち、書き換えるべき新たな制御ソフト）が記憶された所定形状の記憶媒体６７が装着されるようになっている。尚、記憶媒体６７としては、例えばカード型のメモリカードやＵＳＢメモリ等が考えられる。
【００４０】
次に、エンジンＥＣＵ１１の制御ソフトを書き換える際に、そのエンジンＥＣＵ１１のメインマイコン２１で行われる処理について、書換ツール１９側で行われる処理の内容と共に説明する。
【００４１】
エンジンＥＣＵ１１の制御ソフトを書き換える作業者が、書換ツール１９を車両の通信線１７に接続し、その後、操作部６５に対して所定の操作を行うと、書換ツール１９は、通信線１７に書換開始通知を送信する。
【００４２】
そして、エンジンＥＣＵ１１のメインマイコン２１では、フラッシュメモリ３２内の制御ソフトに従いエンジンの制御を行う通常制御期間中において、書換ツール１９からの書換開始通知を受信すると、図２の書換開始通知応答処理を行う。尚、メインマイコン２１が行う処理は、実際にはメインマイコン２１のＣＰＵ３１によって行われる。
【００４３】
図２に示すように、メインマイコン２１は、書換開始通知応答処理を開始すると、まずＳ１１０にて、現在の制御ソフトを当該ＥＣＵ１１に適合しない制御ソフトに書き換えてしまうことを防止するための品番確認用処理を行う。
【００４４】
具体的には、まず、書換ツール１９から品番要求が送信されてくるため、その品番要求を受信したなら、書換ツール１９へ当該ＥＣＵ１１の品番を送信する。すると、書換ツール１９では、記憶媒体６７に記憶されている制御ソフトのうち、当該ＥＣＵ１１の品番に適合する制御ソフトが、書き換えるべき新たな制御ソフトとして選択される。尚、エンジンＥＣＵ１１において、当該ＥＣＵ１１の品番は、例えば、フラッシュメモリ３２の書換不能領域３２ｂ、又はメインマイコン２１内の通常のＲＯＭ（図示省略）に記憶されている。
【００４５】
次にＳ１２０にて、実行対象のプログラムを切り替える。つまり、本実施形態において、このＳ１２０と上記Ｓ１１０の処理は、フラッシュメモリ３２の書換許可領域３２ａに書き換え対象の制御ソフトの一部として記憶されている所定のプログラムによって行われるため、このＳ１２０にて、フラッシュメモリ３２の書換不能領域３２ｂに記憶されている書換処理用プログラムへジャンプし、以後は、その書換処理用プログラムを実行することで、後述するＳ１３０〜Ｓ１６０の処理を行う。
【００４６】
そして、Ｓ１２０に続くＳ１３０では、通信相手が正規の書換ツール１９であるかを確認するためのセキュリティ確認用処理を行う。
具体的には、書換ツール１９と所定規則の暗号通信を何度か行い、その暗号通信が全て正常に完了したならば、通信相手が正規の書換ツール１９であると判断して、Ｓ１４０に進む。尚、図２では図示を省略しているが、上記Ｓ１３０にて、書換ツール１９との暗号通信（セキュリティ確認用処理）を正常に完了できなければ、以後の処理を中断して、最後のＳ１６０へ移行する。
【００４７】
Ｓ１４０では、書換ツール１９に制御ソフトの要求を送信する。すると、書換ツール１９から、書き換えるべき新たな制御ソフト（即ち、前述の品番確認用処理が行われたことにより書換ツール１９側で選択された制御ソフト）が送信されてくるため、フラッシュメモリ３２の書換許可領域３２ａに記憶されている制御ソフトを書換ツール１９から送信されてくる新たな制御ソフトに書き換える書換処理を行う。具体的には、書換許可領域３２ａ内のデータを消去し、その消去した領域３２ａに、書換ツール１９から受信した制御ソフト（詳しくは、制御ソフトを構成するデジタルデータ）を書き込む。尚、書き換えられる制御ソフトとしては、制御プログラムと制御データとの一方であっても、両方であっても良く、制御プログラムの一部又は制御データの一部であっても良い。
【００４８】
そして、Ｓ１４０の書換処理により、書換ツール１９からの制御ソフトを全てフラッシュメモリ３２の書換許可領域３２ａに書き込んだならば、Ｓ１５０に進み、制御ソフトの書き込みが正常に完了したか否かを確認するためのメモリチェックを行う。具体的には、フラッシュメモリ３２の書換許可領域３２ａに書き込んだ制御ソフトと、書換ツール１９から受信してＲＡＭ３３に一時的に保存している制御ソフトとを比較（ベリファイ）する。
【００４９】
このＳ１５０でのメモリチェックがＮＧならば、例えばＳ１４０の処理をやり直すが、Ｓ１５０でのメモリチェックがＯＫならば、Ｓ１６０に進む。
そして、Ｓ１６０では、書換終了後処理として、当該メインマイコン２１を再起動させるための処理を行う。尚、メインマイコン２１を再起動させるための処理としては、当該メインマイコン２１のリセット端子４５のレベルをリセットがかかる方のアクティブレベルにする処理が考えられる。また、本実施形態において、メインマイコン２１は、リセット状態から起動すると、制御ソフトを成す制御プログラムの先頭から実行するようになっているため、メインマイコン２１を再起動させるための処理としては、プログラムの実行先アドレスを制御プログラムの先頭アドレスにジャンプさせる処理でも良い。
【００５０】
このため、Ｓ１５０からＳ１６０に進んだ場合であって、フラッシュメモリ３２内の制御ソフトが、正規の書換ツール１９によって当該ＥＣＵ１１に適合する制御ソフトに正常に書き換えられた場合には、Ｓ１６０の処理により、その書き換えられた新たな制御ソフトを成す制御プログラムの実行が開始されることとなる。
【００５１】
次に、図３は、サブマイコン２２が行う監視処理を表すフローチャートである。尚、この監視処理は、フラッシュメモリ３６内の監視処理用プログラムによる処理であり、例えば一定時間毎に行われる。また、サブマイコン２２が行う処理は、実際にはサブマイコン２２のＣＰＵ３５によって行われる。
【００５２】
図３に示すように、サブマイコン２２は、監視処理を開始すると、まずＳ２１０にて、入力端子５１への入力レベルを読み取ることにより、メインマイコン２１の不使用の通信用端子４３の状態をモニタして、その通信用端子４３に通信信号が与えられているか否かを判定する。例えば、通信用端子４３の電圧レベル（入力端子５１への入力レベル）が、所定時間以内にハイとローとに所定回数以上変化したなら、通信用端子４３に通信信号が与えられていると判定する。
【００５３】
そして、このＳ２１０にて、通信用端子４３に通信信号が与えられていると判定しなかった場合には、そのまま当該監視処理を終了するが、通信用端子４３に通信信号が与えられていると判定した場合には、Ｓ２２０に進み、メインマイコン２１の動作を阻止する処理を行う。具体的な処理としては、出力端子５２からメインマイコン２１のリセット端子４５へアクティブレベルのリセット信号を出力することにより、メインマイコン２１をリセット状態にする。
【００５４】
尚、リセット信号は、例えば一定時間だけ出力するように構成することもできるが、本実施形態では、Ｓ２１０にてメインマイコン２１の通信用端子４３に通信信号が与えられていると一旦判定したならば、車両がイグニッションオフの状態になって当該ＥＣＵ１１への動作用電源としてのバッテリ電圧ＶＢが遮断されるまで、メインマイコン２１へのリセット信号を出力し続けるようになっている。また、メインマイコン２１の動作を阻止する処理としては、リセット信号を与えることに代えて、例えば、電源回路２４からメインマイコン２１に電源電圧ＶＤが供給されるのを阻止する処理でも良い。具体的には、例えば、電源回路２４からメインマイコン２１へ電源電圧ＶＤを供給するための電源ライン上に、半導体からなるスイッチを設けておき、そのスイッチをオフさせることで、メインマイコン２１への電源供給を遮断するようにしても良い。
【００５５】
そして、サブマイコン２２は、次のＳ２３０にて、メインマイコン２１におけるフラッシュメモリ３２内の制御ソフトが不正に書き換えられようとした可能性があることを報知するための報知処理を行うと共に、制御ソフトが不正に書き換えられようとした可能性があることを示す履歴を、フラッシュメモリ３６の所定領域に記憶する処理を行う。そして、その後、当該監視処理を終了する。
【００５６】
尚、報知処理としては、例えば、車室内に設けられている警告灯を点灯させたり、車室内の表示装置にメッセージを表示させたりする処理が考えられる。そして、その報知処理は、Ｓ２１０にてメインマイコン２１の通信用端子４３に通信信号が与えられていると一旦判定したならば、以後、電源電圧ＶＤの供給停止期間があったとしても、当該サブマイコン２２が動作している期間中は継続して行う。確実な報知を実現するためである。
【００５７】
一方、メインマイコン２１も、サブマイコン２２を監視対象として、図３の監視処理と同じ内容の監視処理を、例えば一定時間毎に行う。
図３におけるステップ番号を引用して説明すると、メインマイコン２１は監視処理を開始すると、まず、入力端子４６への入力レベルを読み取ることにより、サブマイコン２２の通信用端子５３の状態をモニタして、その通信用端子５３に通信信号が与えられているか否かを判定する（Ｓ２１０）。
【００５８】
そして、通信用端子５３に通信信号が与えられていると判定しなかった場合には（Ｓ２１０：ＮＯ）、そのまま当該監視処理を終了するが、通信用端子５３に通信信号が与えられていると判定した場合には（Ｓ２１０：ＹＥＳ）、サブマイコン２２の動作を阻止する処理を行う（Ｓ２２０）。具体的な処理としては、出力端子４７からサブマイコン２２のリセット端子５５へアクティブレベルのリセット信号を出力することにより、サブマイコン２２をリセット状態にする。
【００５９】
尚、メインマイコン２１からサブマイコン２２へのリセット信号も、一定時間だけ出力するように構成しても良いが、サブマイコン２２の通信用端子５３に通信信号が与えられていると一旦判定したならば、車両がイグニッションオフの状態になって当該ＥＣＵ１１への動作用電源としてのバッテリ電圧ＶＢが遮断されるまで、サブマイコン２２へのリセット信号を出力し続けるようにしても良い。また、サブマイコン２２の動作を阻止する処理としては、電源回路２４からサブマイコン２２に電源電圧ＶＤが供給されるのを阻止する処理でも良い。
【００６０】
そして更に、メインマイコン２１は、サブマイコン２２の通信用端子５３に通信信号が与えられていると判定した場合には、サブマイコン２２におけるフラッシュメモリ３６内のプログラムが不正に書き換えられようとした可能性があることを報知するための報知処理を行うと共に、そのフラッシュメモリ３６内のプログラムが不正に書き換えられようとした可能性があることを示す履歴を、フラッシュメモリ３２の所定領域に記憶する処理を行う（Ｓ２３０）。そして、その後、当該監視処理を終了する。
【００６１】
尚、メインマイコン２１が行う報知処理も、サブマイコン２２が行う前述の報知処理と同様の処理で良い。そして、その報知処理は、サブマイコン２２の通信用端子５３に通信信号が与えられていると一旦判定したならば、以後、電源電圧ＶＤの供給停止期間があったとしても、当該メインマイコン２１が動作している期間中は継続して行えば良い。
【００６２】
また、メインマイコン２１が行う監視処理は、例えば、フラッシュメモリ３２の書換許可領域３２ａと書換不能領域３２ｂとメインマイコン２１内の通常のＲＯＭ（図示省略）との、何れかに記憶されている監視処理用プログラムによって実現することができる。
【００６３】
一方、エンジンＥＣＵ１１に、サブマイコン２２が通信線１７を介して他の装置と通信（本実施形態ではＣＡＮ通信）するための通信回路が設けられていて、例えば、サブマイコン２２のフラッシュメモリ３６に記憶されているプログラムも書換ツール１９によってオンボード書き換え可能となっていても良い。
【００６４】
以上のような本実施形態のエンジンＥＣＵ１１では、サブマイコン２２が、メインマイコン２１の不使用の通信用端子４３に通信信号が与えられていることを検知すると（Ｓ２１０：ＹＥＳ）、メインマイコン２１の動作を阻止する（Ｓ２２０）。
【００６５】
このため、不正行為者が、その通信用端子４３に何等かの通信機能付き装置を接続してメインマイコン２１にフラッシュメモリ３２内の制御ソフトを書き換えさせようとしても、サブマイコン２２が、そのような不正行為を検知してメインマイコン２１の動作を停止させることとなり、制御ソフトが不正に書き換えられることを防止することができる。よって、制御ソフトが不正に書き換えられることの防止効果を高めることができる。
【００６６】
また、サブマイコン２２は、メインマイコン２１の通信用端子４３に通信信号が与えられていることを検知した場合に（Ｓ２１０：ＹＥＳ）、メインマイコン２１の制御ソフトが不正に書き換えられようとした可能性があることを報知するための報知処理と、制御ソフトが不正に書き換えられようとした可能性があることを示す履歴をフラッシュメモリ３６の所定領域に記憶する処理とを行う（Ｓ２３０）。このため、カーディーラにおける車両整備者等に対して、制御ソフトが不正に書き換えられようとした可能性があることを知らせることができる。
【００６７】
更に、メインマイコン２１も、サブマイコン２２を監視対象として、図３の監視処理と同じ内容の監視処理を行う。
このため、不正行為者が、サブマイコン２２の不使用の通信用端子５３に何等かの通信機能付き装置を接続して、サブマイコン２２に該サブマイコン２２が実行する監視処理用プログラムを消去させたり書き換えさせたりしようとしても、メインマイコン２１が、そのような不正行為を検知してサブマイコン２２の動作を停止させることとなる。
【００６８】
よって、サブマイコン２２側の監視処理用プログラムが不正に消去されたり書き換えられたりして、サブマイコン２２によるメインマイコン２１に対する監視処理が無効化されてしまうことを防止することができ、延いては、メインマイコン２１の制御ソフトが不正に書き換えられることの防止効果を、一層高めることができる。
【００６９】
尚、本実施形態では、図２のＳ１１０（品番確認用処理）とＳ１３０（セキュリティ確認用処理）とで行う書換ツール１９との通信が、書換許可用通信に相当している。また、サブマイコン２２において、図３のＳ２３０で履歴が記憶されるフラッシュメモリ３６の所定領域が、不揮発性の記憶手段に相当している。
【００７０】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【００７１】
例えば、フラッシュメモリ３２はメインマイコン２１の外部に設けられても良い。同様に、フラッシュメモリ３６はサブマイコン２２の外部に設けられても良い。
また、サブマイコン２２側では、フラッシュメモリ３６に代えて、記憶内容の書き換えが不能な不揮発性メモリを用いても良い。その場合、メインマイコン２１は、サブマイコン２２を監視対象とした監視処理を行わなくても良い。
【００７２】
また、書換可能不揮発性メモリとしては、フラッシュメモリ以外の種類のメモリ（例えばＥＥＰＲＯＭ等）を用いても良い。
また、本発明が適用されるＥＣＵは、エンジンを制御するものに限らず、他の役割を持つＥＣＵであっても良い。
【符号の説明】
【００７３】
１１…エンジンＥＣＵ、１３…イモビライザＥＣＵ、１５…メータＥＣＵ
１７…通信線、１８…コネクタ、１９…書換ツール、２１…メインマイコン
２２…サブマイコン、２３…通信回路、２４…電源回路、３１，３５…ＣＰＵ
３２，３６…フラッシュメモリ、３２ａ…書換許可領域、３２ｂ…書換不能領域
３３，３７…ＲＡＭ、４１，４２，４３，４４，５３，５４…通信用端子
４５，５５…リセット端子、４６，５１…入力端子、４７，５２…出力端子
６１…マイコン、６３…通信回路、６５…操作部、６７…記憶媒体
【図１】
2012242900.tif 000003
【図２】
2012242900.tif 000004
【図３】
2012242900.tif 000005