説明

電子制御装置

【課題】制御プログラム等を書換可能不揮発性メモリに記憶するための記憶容量の減少を抑制
【解決手段】ECU1は、プログラムに従って処理を行うCPU11と、制御プログラム(以下、制御Pという)と制御Pの内容を書き換えるための書換プログラム(以下、書換Pという)とを記憶するフラッシュメモリ(以下、FMという)15とを備え、CPU11が、通常時には、FM15に記憶された制御Pに従って制御処理を行い、予め設定された書換許可条件が成立した場合には、FM15に記憶された書換Pに従って、制御Pの内容を書き換える書換処理を行うように構成され、書換Pは、圧縮された状態でFM15に記憶されており、書換許可条件の成立時に、FM15に記憶されている書換Pを解凍して、解凍後の書換Pを、記憶内容の読み出し及び書き込みが可能なRAM17に書き込み、CPU11に、RAM17内の書換Pに従って書換処理を行わせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の制御対象の制御に用いる制御プログラムをオンボード書き換え可能な電子制御装置に関する。
【背景技術】
【0002】
従来、例えば自動車のエンジンやトランスミッション等を制御する電子制御装置として、電気的に記憶内容の書き換え(詳しくは、データの消去および書き込み)が可能なフラッシュメモリやEEPROM等の書換可能不揮発性メモリを備え、その書換可能不揮発性メモリに記憶された制御プログラムおよび制御データを、当該装置の完成状態で書き換えることができるようにした所謂オンボード書き換え可能なものが知られている。
【0003】
すなわち、この種の電子制御装置では、それに搭載されたマイクロコンピュータの主要部を成すCPU(中央演算処理装置)が、通常時には、書換可能不揮発性メモリ内の制御プログラムおよび制御データに従って、エンジン等の制御対象を制御するための制御処理を行うが、例えば別途接続されるデータ書換装置から書換信号を受けると、上記書換可能不揮発性メモリの記憶内容(つまり、制御プログラムを構成するデータ、および制御プログラムの実行時に参照される制御データ)を、上記データ書換装置から送信される新たなデータに書き換えるための書換処理を行う(例えば、特許文献1を参照)。
【0004】
また、書換可能不揮発性メモリに記憶された制御プログラムが書き換え可能に構成された電子制御装置において、上記データ書換装置から新たなデータを電子制御装置に送信する際のデータ漏洩、および電子制御装置に記憶される制御プログラムと制御データの改ざんを防止するために、暗号化されたデータを上記データ書換装置から電子制御装置に送信するように構成されたものが知られている(例えば、特許文献2を参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−259371号公報
【特許文献2】特開2000−337209号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献2に記載のように暗号化されたデータを用いて制御プログラム等を書き換える技術では、暗号化されたデータを復号するための処理が必要となり、その分、書換処理に要する時間が長くなるという問題が生じる。これに対しては、暗号化されたデータを復号するための変換テーブル(以下、復号化テーブルという)を予め保持し、この復号化テーブルを用いて復号することにより復号に要する時間を短縮する手法が考えられる。しかし、書換処理のためのプログラムと復号化テーブルとを予め書換可能不揮発性メモリに記憶しておく必要があるため、その分、制御プログラム等を書換可能不揮発性メモリに記憶するための記憶容量が減少してしまうという問題があった。
【0007】
本発明は、こうした問題に鑑みてなされたものであり、制御プログラム等を書換可能不揮発性メモリに記憶するための記憶容量の減少を抑制することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するためになされた請求項1に記載の電子制御装置は、プログラムに従って処理を行う演算処理手段と、記憶内容の書き換えが可能であるとともに、所定の制御対象を制御するための制御プログラムと、制御プログラムの内容を書き換えるための書換プログラムとを記憶する書換可能不揮発性メモリとを備え、演算処理手段が、通常時には、書換可能不揮発性メモリに記憶された制御プログラムに従って、制御対象を制御するための制御処理を行い、予め設定された書換条件が成立した場合には、書換可能不揮発性メモリに記憶された書換プログラムに従って、制御プログラムの内容を書き換える書換処理を行うように構成され、書換プログラムは、圧縮された状態で書換可能不揮発性メモリに記憶されており、書換プログラム実行手段は、書換条件が成立した場合に、書換可能不揮発性メモリに記憶されている書換プログラムを解凍して、解凍後の書換プログラムを、記憶内容の読み出し及び書き込みが可能な揮発性メモリに書き込み、演算処理手段に、揮発性メモリ内の書換プログラムに従って書換処理を行わせる。
【0009】
このように構成された電子制御装置では、書換プログラムが、圧縮された状態で書換可能不揮発性メモリに記憶されているため、圧縮されていない状態で書換プログラムを記憶する場合と比較して、データを書換可能不揮発性メモリに記憶するための記憶容量を低減することができる。これにより、制御プログラム等を書換可能不揮発性メモリに記憶するための記憶容量の減少を抑制することができる。
【0010】
さらに、書換プログラムは、圧縮された状態で書換可能不揮発性メモリに記憶されており、そのままでは書換処理を行うことができないデータ配列に変更されている。このため、演算処理手段にプログラム暴走が生じて、書換可能不揮発性メモリ内の書換プログラムが実行されたとしても、書換可能不揮発性メモリの記憶内容が不適当に書き換えられてしまうことがない。
【0011】
また請求項1に記載の電子制御装置において、請求項2に記載のように、書換処理は、制御プログラムの内容を書き換えるために当該電子制御装置に接続されるデータ書換装置から、予め設定された暗号化式で用いられる鍵情報を受信すると、鍵情報を用いた暗号化式に基づいて、復号に必要な全ての平文を暗号化することによって、全ての平文のそれぞれについて平文と暗号文との対応関係が設定された復号化テーブルを作成し、さらに、鍵情報を用いた暗号化式に基づいて暗号化された制御プログラムをデータ書換装置から受信すると、受信した制御プログラムを復号化テーブルを用いて復号し、復号した制御プログラムを書換可能不揮発性メモリに書き込むことにより、制御プログラムの内容を書き換えるようにしてもよい。
【0012】
このように構成された電子制御装置によれば、暗号化された制御プログラムを復号するために用いる復号化テーブルを予め書換可能不揮発性メモリに記憶しておく必要がないため、その分、データを書換可能不揮発性メモリに記憶するための記憶容量を低減することができる。これにより、制御プログラム等を書換可能不揮発性メモリに記憶するための記憶容量の減少を抑制することができる。
【図面の簡単な説明】
【0013】
【図1】ECU1の構成を示すブロック図である。
【図2】フラッシュメモリ15内のプログラム配置を示す図である。
【図3】ECU1のマイコン5で実行される処理を示すフローチャートである。
【図4】復号化テーブル作成方法を説明するための図である。
【発明を実施するための形態】
【0014】
以下に本発明の実施形態について図面とともに説明する。
図1は、本実施形態の電子制御装置(以下、ECUという)1の構成を示すブロック図である。図2は、フラッシュメモリ15内のプログラム配置を示す図である。
【0015】
ECU1は、車両に搭載され、図1に示すように、エンジンの運転状態を検出する様々なセンサからの信号を入力して波形処理を行う入力回路3と、入力回路3からのセンサ信号に基づき、エンジンを制御するための様々な処理を行うマイクロコンピュータ(以下、マイコンという)5と、マイコン5からの制御信号に応じて、エンジンに取り付けられたインジェクタ(燃料噴射弁)およびイグナイタ等のアクチュエータへ駆動信号を出力する出力回路7とを備えている。
【0016】
そしてECU1は、マイコン5がエンジンを制御するために用いるプログラムを、オンボード書き換え可能に構成されており、そのプログラムを書き換える際には、当該ECU1にデータ書換装置9が接続される。またマイコン5は、プログラムに従って処理を行うCPU11と、CPU11によって実行されるプログラムを格納する不揮発性のフラッシュメモリ15と、CPU11の演算結果等を一時格納するための揮発性メモリであるRAM17と、入力回路3等からの信号を受け取るとともに出力回路7に制御信号を出力するためのI/O19と、データ書換装置9との間でデータ通信を行うための通信回路21と、各種レジスタ(不図示)等を備えている。
【0017】
ここでフラッシュメモリ15は、所定の書換電圧が印加された状態でデータの書き換え(消去および書き込み)が可能な不揮発性ROMである。なおECU1には、マイコン5からの指令に応じてフラッシュメモリ15に上記書換電圧を印加する電圧印加回路(不図示)が設けられている。
【0018】
そして図2に示すように、フラッシュメモリ15には、マイコン5のリセット解除直後に実行されるブートプログラム50と、エンジンを制御するための制御プログラム52(詳しくは、エンジン制御用の制御プログラムを構成するデータと、その制御プログラムの実行時に参照される制御データ)と、フラッシュメモリ15の記憶内容(すなわち、制御プログラムを構成するデータおよび制御データ)を、データ書換装置9から送信される新たなデータに書き換えるための書換プログラム51とが記憶されている。なお、書換プログラム51は圧縮された状態でフラッシュメモリ15に記憶されている。
【0019】
このように構成されたECU1において、マイコン5のCPU11は、リセット解除直後に、フラッシュメモリ15内のブートプログラム50を実行し、データ書換装置9が接続されていない通常時には、そのブートプログラム50にてフラッシュメモリ15内の制御プログラム52をコールして、エンジンを制御するための制御処理を行う。
【0020】
また、マイコン5のCPU11は、ブートプログラム50の実行時に、後述する書換許可条件が成立していると判断すると、圧縮された状態でフラッシュメモリ15に記憶されている書換プログラム51を解凍してRAM17に書き込む。
【0021】
そしてCPU11は、RAM17内の書換プログラム51を実行することにより、フラッシュメモリ15内のデータを、データ書換装置9から送信される新たなデータ(すなわち、新たなエンジン制御用の制御プログラムおよび制御データ)に書き換える書換処理を行う。
【0022】
一方、データ書換装置9は、ECU1側のマイコン5にフラッシュメモリ15の書き換えを行わせるための処理を実行するマイコン(不図示)を主要部として構成されている。またデータ書換装置9には、図1に示すように、ECU1の動作モードを、エンジンの制御を行う通常モードからフラッシュメモリ15内のデータを書き換える書換モードに変更させるためのモード切換スイッチSWが設けられている。
【0023】
そして、データ書換装置9とECU1との接続は、データ書換装置9側の雌コネクタ23FとECU1に設けられた雄コネクタ23Mとを嵌合することにより行われる。すなわち、上記両コネクタ23F,23Mが嵌合されると、通信線25を介して、データ書換装置9側のマイコンとECU1側のマイコン5との間におけるシリアルデータ通信が可能となる。また、データ書換装置9側でモード切換スイッチSWを介して接地電位(0V)に接続される信号線27が、ECU1側で抵抗器Rにより所定の電源電圧(本実施形態では5V)にプルアップされたモード判定用信号ラインLに接続される。よって、データ書換装置9側でモード切換スイッチSWがオンされると、ECU1側においては上記モード判定用信号ラインLがハイレベル(5V)からロウレベル(0V)に変化することとなる。そして、ECU1のマイコン5は、ブートプログラム50の実行を開始した時に、モード判定用信号ラインLがロウレベルであれば、書換許可条件が成立したと判断して、自己の動作モードを通常モードから書換モードへと移行させる。
【0024】
またデータ書換装置9は、モード切換スイッチSWがオンされると、通信線25を介して復号化キー情報(後述)をECU1へ送信するように構成される。
次に、ECU1のマイコン5で実行される処理について、図3を用いて説明する。図3は、ECU1のマイコン5で実行される処理を示すフローチャートであり、そのステップ(以下、単に「S」と記す)100〜S130の処理が、フラッシュメモリ15内のブートプログラム50によって実行され、S200の処理が、フラッシュメモリ15内の制御プログラム52によって実行される。そして、S300〜S330の処理が、解凍後の書換プログラム51によって実行される。
【0025】
ECU1では、車両のイグニッションスイッチ(不図示)のオンに伴い電源が投入されると、マイコン5のCPU11がリセット状態から動作を開始して、ブートプログラム50の実行を開始し、図3に示すように、まずS100にて、書換許可条件が成立しているか否かを、モード判定用信号ラインLがロウレベルであるか否かによって判断する。そして、モード判定用信号ラインLがロウレベルでない場合には、書換許可条件が非成立であると判断して(S100:NO)、通常モードの動作を行うためにS110へ進み、このS110にて、フラッシュメモリ15内の制御プログラム52へジャンプする。
【0026】
すると、その後は、S200に示すように、フラッシュメモリ15内の制御プログラム52が実行されて、エンジンを制御するための制御処理が行われることとなる。なお、この制御処理は、入力回路3からの各種センサ信号とフラッシュメモリ15に格納されている制御データとに基づき、エンジンに対する最適な燃料噴射量や点火時期等を演算し、その演算結果に応じて、インジェクタおよびイグナイタ等のアクチュエータを駆動するための制御信号を出力回路7に出力するといった手順で実行される。
【0027】
一方、ブートプログラム50において、上記S100で書換許可条件が成立していると判断した場合(S100:YES)、すなわち、ECU1にデータ書換装置9が接続されてモード切換スイッチSWがONされたことにより、モード判定用信号ラインLがロウレベルであった場合には、書換モードの動作を行うためにS120に移行する。
【0028】
そしてS120にて、データ書換装置9から復号化キー情報を受信したか否かを判断する。ここで、復号化キー情報を受信していない場合には(S120:NO)、S120の処理を繰り返すことにより、復号化キー情報を受信するまで待機する。一方、復号化キー情報を受信した場合には(S120:YES)、S130にて、フラッシュメモリ15内の書換プログラム51を解凍するとともに、その解凍後の書換プログラム51をRAM17に書き込む(転送する)。
【0029】
そしてS140にて、S130でRAM17に転送した解凍後の書換プログラム51へジャンプする。すると、CPU11は上記解凍後の書込プログラム51をRAM17上で実行することとなり、これによりS300〜S350の書換処理が行われる。
【0030】
すなわち、まずS300にて、データ書換装置9から受信した復号化キー情報と演算式とを用いて復号化テーブルを作成する。ここで、具体的な復号化テーブル作成方法を図4を用いて説明する。
【0031】
まず、復号化テーブルを図4(a)に示すように初期化する。すなわち、復号化テーブルは、複数の暗号文のそれぞれについて、その暗号文と平文との対応関係が記載されたものであり、S300では、各暗号文に対応する平文の値を0に設定することにより復号化テーブルを初期化する。
【0032】
次に、例えば下式(1)で表される暗号化式を用い、例えば図4(b)に示すように、復号に必要な全ての平文Vそれぞれに対応する暗号文Uを算出する。
【0033】
【数1】

【0034】
なお式(1)において、NおよびKはECU1側で保持している定数、Jは上記の復号化キー情報である。
そして図4(c)に示すように、初期化された復号化テーブルにおける複数の暗号文の値それぞれについて、対応する平文の値を、0から、上記算出結果で得られた対応関係に基づいて置き換える。
【0035】
例えば、図4(c)の復号化テーブルでは、暗号文0,1,3に対応する平文はV0,V1,V3である。すなわち、式(1)によって、平文V0,V1,V3に対応する暗号文がそれぞれ0,1,3であるという算出結果が得られたことを表している。また、暗号文2,4に対応する平文は0である。すなわち、暗号文2,4に対応する平文は存在しないことを表している。
【0036】
さらにS310にて、フラッシュメモリ15内の制御プログラム52を消去する。
その後S320にて、データ書換装置9から送信されて来る所定バイト分の書換データ(つまり、フラッシュメモリ15に格納すべき新たなデータのうちの所定バイト分)を受信したか否かを判断する。ここで、所定バイト分の書換データを受信していない場合には(S320:NO)、S320の処理を繰り返すことにより、所定バイト分の書換データを受信するまで待機する。なお、この書換データは暗号化されている。
【0037】
一方、所定バイト分の書換データを受信した場合には(S320:YES)、S330にて、S300で作成した復号化テーブルを用いて、受信した書換データを復号し、さらにS340にて、復号した書換データを、フラッシュメモリ15内において制御プログラム52を記憶する領域に書き込む。
【0038】
次にS350にて、フラッシュメモリ15の全データの書き換えが完了したか否かを判断する。ここで、全データの書き換えが完了していない場合には(S350:NO)、S320に戻る。一方、フラッシュメモリ15の全データの書き換えが完了した場合には(S350:YES)、処理を終了して無処理状態となる。
【0039】
このように構成されたECU1は、プログラムに従って処理を行うCPU11と、記憶内容の書き換えが可能であるとともに、エンジンを制御するための制御プログラム52と、制御プログラム52の内容を書き換えるための書換プログラム51とを記憶するフラッシュメモリ15とを備え、CPU11が、通常時には、フラッシュメモリ15に記憶された制御プログラム52に従って、エンジンを制御するための制御処理を行い、予め設定された書換許可条件が成立した場合には、フラッシュメモリ15に記憶された書換プログラム51に従って、制御プログラム52の内容を書き換える書換処理を行うように構成され、書換プログラム51は、圧縮された状態でフラッシュメモリ15に記憶されており、書換許可条件が成立した場合に、フラッシュメモリ15に記憶されている書換プログラム51を解凍して、解凍後の書換プログラム51を、記憶内容の読み出し及び書き込みが可能なRAM17に書き込み、CPU11に、RAM17内の書換プログラム51に従って書換処理を行わせる(S130,S140)。
【0040】
このように構成されたECU1では、書換プログラム51が、圧縮された状態でフラッシュメモリ15に記憶されているため、圧縮されていない状態で書換プログラム51を記憶する場合と比較して、データをフラッシュメモリ15に記憶するための記憶容量を低減することができる。これにより、制御プログラム52等をフラッシュメモリ15に記憶するための記憶容量の減少を抑制することができる。
【0041】
さらに、書換プログラム51は、圧縮された状態でフラッシュメモリ15に記憶されており、そのままでは書換処理を行うことができないデータ配列に変更されている。このため、CPU11にプログラム暴走が生じて、フラッシュメモリ15内の書換プログラム51が実行されたとしても、フラッシュメモリ15の記憶内容が不適当に書き換えられてしまうことがない。
【0042】
また書換処理は、制御プログラム52の内容を書き換えるためにECU1に接続されるデータ書換装置9から、上式(1)で表される暗号化式で用いられる復号化キー情報を受信すると、復号化キー情報を用いた上式(1)の暗号化式に基づいて、復号に必要な全ての平文を暗号化することによって、全ての平文のそれぞれについて平文と暗号文との対応関係が設定された復号化テーブルを作成し、さらに、復号化キー情報を用いた上式(1)の暗号化式に基づいて暗号化された書換データをデータ書換装置9から受信すると、受信した書換データを復号化テーブルを用いて復号し、復号した書換データをフラッシュメモリ15に書き込むことにより、制御プログラムの内容を書き換える(S300〜S350)。
【0043】
これにより、暗号化された書換データを復号するために用いる復号化テーブルを予めフラッシュメモリ15に記憶しておく必要がないため、その分、データをフラッシュメモリ15に記憶するための記憶容量を低減することができる。これにより、制御プログラム52等をフラッシュメモリ15に記憶するための記憶容量の減少を抑制することができる。
【0044】
以上説明した実施形態において、CPU11は本発明における演算処理手段、フラッシュメモリ15は本発明における書換可能不揮発性メモリ、RAM17は本発明における揮発性メモリ、S130およびS140の処理は本発明における書換プログラム実行手段、書換許可条件は本発明における書換条件、式(1)は本発明における暗号化式、復号化キー情報は本発明における鍵情報である。
【0045】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態においては、式(1)で表される暗号化式を用いて復号化テーブルを作成するものを示したが、暗号化式は、式(1)に限定されるものではなく、鍵情報を用いて暗号化と復号を行うことができるものであればよい。
【符号の説明】
【0046】
1…ECU、3…入力回路、5…マイコン、7…出力回路、9…データ書換装置、11…CPU、15…フラッシュメモリ、17…RAM、19…I/O、21…通信回路、23F…雌コネクタ、23M…雄コネクタ、25…通信線、27…信号線、50…ブートプログラム、51…書換プログラム、52…制御プログラム

【特許請求の範囲】
【請求項1】
プログラムに従って処理を行う演算処理手段と、
記憶内容の書き換えが可能であるとともに、所定の制御対象を制御するための制御プログラムと、前記制御プログラムの内容を書き換えるための書換プログラムとを記憶する書換可能不揮発性メモリと、
前記演算処理手段が、通常時には、前記書換可能不揮発性メモリに記憶された前記制御プログラムに従って、前記制御対象を制御するための制御処理を行い、予め設定された書換条件が成立した場合には、前記書換可能不揮発性メモリに記憶された前記書換プログラムに従って、前記制御プログラムの内容を書き換える書換処理を行うように構成された電子制御装置であって、
前記書換プログラムは、圧縮された状態で前記書換可能不揮発性メモリに記憶されており、
さらに、前記書換条件が成立した場合に、前記書換可能不揮発性メモリに記憶されている前記書換プログラムを解凍して、解凍後の前記書換プログラムを、記憶内容の読み出し及び書き込みが可能な揮発性メモリに書き込み、前記演算処理手段に、前記揮発性メモリ内の書換プログラムに従って前記書換処理を行わせる書換プログラム実行手段を備える
ことを特徴とする電子制御装置。
【請求項2】
前記書換処理は、
前記制御プログラムの内容を書き換えるために当該電子制御装置に接続されるデータ書換装置から、予め設定された暗号化式で用いられる鍵情報を受信すると、前記鍵情報を用いた前記暗号化式に基づいて、復号に必要な全ての平文を暗号化することによって、前記全ての平文のそれぞれについて平文と暗号文との対応関係が設定された復号化テーブルを作成し、
さらに、前記鍵情報を用いた前記暗号化式に基づいて暗号化された前記制御プログラムを前記データ書換装置から受信すると、受信した前記制御プログラムを前記復号化テーブルを用いて復号し、復号した前記制御プログラムを前記書換可能不揮発性メモリに書き込むことにより、前記制御プログラムの内容を書き換える
ことを特徴とする請求項1に記載の電子制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−243257(P2012−243257A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−115930(P2011−115930)
【出願日】平成23年5月24日(2011.5.24)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】