(57)【要約】【課題】制御プログラムの書き換えを行う場合に、通信傍受の恐れを低減して安全に制御プログラムの書き換えができ、しかも書き換えに伴う作業効率を向上することができる電子制御装置を提供することにある。【解決手段】少なくとも第１の中央制御ユニットと第２の中央制御ユニットを備え、第１の中央制御ユニットは、圧縮、暗号化された書き換え用の制御プログラムをプログラム書き換え装置から受信して揮発性メモリに記憶させる通信処理を実行し、第２の中央制御ユニットは、第１の中央制御ユニットにより受信された書き換え用の制御プログラムの復号、解凍処理を実行すると共に、復号、解凍処理された書き換え用の制御プログラムを不揮発メモリに書き込む書き込み処理を実行する。【選択図】図１
2019040488.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御処理を実行する少なくとも第１の中央制御ユニット及び第２の中央制御ユニットと、前記制御処理を実行するための制御プログラムと前記制御プログラムを書き換える書き換えプログラムを記憶する不揮発性メモリと、一時的な記憶機能を備えた揮発性メモリと、外部のプログラム書き換え装置と通信を行なう通信部を備えた電子制御装置であって、
前記第１の中央制御ユニットは、圧縮、暗号化された書き換え用制御プログラムを前記プログラム書き換え装置から受信して前記揮発性メモリの受信バッファに格納する通信処理を実行し、
前記第２の中央制御ユニットは、前記第１の中央制御ユニットにより受信された前記書き換え用制御プログラムの解凍、復号化処理を実行すると共に、前記解凍、復号化処理された前記書き換え用制御プログラムを前記不揮発性メモリに書き込む書き込み処理を実行する
ことを特徴とする電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記第２の中央制御ユニットは、前記揮発性メモリに格納された前記書き換え用制御プログラムから所定の書き込み実行データ量分だけ読み出し、前記解凍、復号化処理して前記不揮発性メモリに書き込む処理を実行する
することを特徴とする電子制御装置。
【請求項３】
請求項２に記載の電子制御装置において、
前記第２の中央制御ユニットは、前記揮発性メモリから読み出した前記書き込み実行データ量分の前記書き込み用制御プログラムを解凍、復号した前記書き込み用制御プログラムと、前記不揮発性メモリに書き込まれた前記書き込み用制御プログラムとが一致しない場合は、前記解凍、復号化処理と前記書き込み処理を再度実行する
ことを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の中央制御ユニットを備えたコンピュータを使用した電子制御装置に係り、特に自動車に使用され、制御プログラムを外部から書き換えることができる電子制御装置に関するものである。
【背景技術】
【０００２】
従来、記憶内容の書き換えが可能な不揮発性メモリに制御プログラムを記憶する電子制御装置において、制御プログラムの書き換えに要する時間を短縮するために、例えば、特開２０００−２０３８９号公報(特許文献１)に記載のように、外部から受信した制御プログラムを受信バッファに格納する格納処理と、受信バッファに格納された制御プログラムを不揮発性メモリに書き込むことにより制御プログラムを書き換える書き込み処理とを並行に実行するものが知られている。しかしながら、特許文献１に記載の技術では、短い時間単位で見ると、格納処理と、書き込み処理及びベリファイ処理との何れか一方の処理しか実行できない時間が存在し、制御プログラムの書き換えに要する時間が長くなってしまうという問題があった。
【０００３】
このような問題を解決するため、複数の中央制御ユニットを利用し、並列処理を行って負荷分散を行なうと共に、ＲＯＭの書き換え時間を短縮するという方法が提案されている。この方法は、中央制御ユニットを２個有し、それぞれ自動車の内燃機関を制御するための制御処理を並列的に実行する。更に、記憶内容の書き換えが可能なフラッシュＲＯＭを備えるようにし、このフラッシュＲＯＭに制御プログラムが記憶されている。
【０００４】
そして、中央制御ユニットは、フラッシュＲＯＭに記憶されている制御プログラムの内容を書き換えるための制御プログラムを外部から受信すると、受信した制御プログラムを受信バッファに格納する。中央制御ユニットは、受信バッファに格納された制御プログラムをフラッシュＲＯＭに書き込むことにより、フラッシュＲＯＭに新たな制御プログラムの内容を書き換えるものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２０３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、制御プログラムの書き換えを行う際、複数の中央制御ユニットでデータの送受信処理と書き換え処理を並列に実行するが、その制御プログラムのデータが傍受されるという懸念がある。更には、制御プログラムの書き換えに伴う通信回数を低減して作業効率を向上することが望まれている。例えば、制御プログラムの送受信を無線通信で行う場合には、特に制御プログラムのデータが傍受される恐れがある。このため、高い信頼性を確保して安全に制御プログラムの書き換えを行うことが重要となる。更に、書き換える制御プログラムの容量が大きいと、中央制御ユニットとプログラム書き換え装置の間の通信回数が増大して、書き換えに伴う作業効率が悪くなるという課題も有している。もちろん、無線通信以外にもＣＡＮ通信を行なう場合も例外ではない。
【０００７】
本発明の目的は、制御プログラムの書き換えを行う場合に、通信傍受の恐れを低減して安全に制御プログラムの書き換えができ、しかも書き換えに伴う作業効率を向上することができる電子制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の特徴は、少なくとも第１の中央制御ユニットと第２の中央制御ユニットを備え、第１の中央制御ユニットは、圧縮、暗号化された書き換え用の制御プログラムをプログラム書き換え装置から受信して揮発性メモリに記憶させる通信処理を実行し、第２の中央制御ユニットは、第１の中央制御ユニットにより受信された書き換え用の制御プログラムの解凍、復号化処理を実行すると共に、解凍、復号化処理された書き換え用の制御プログラムを不揮発メモリに書き込む書き込み処理を実行する、ところにある。
【発明の効果】
【０００９】
本発明によれば、制御プログラムの書き換えを行う場合に、書き換え用の制御プログラムに暗号処理を施して通信傍受の恐れを低減して安全に制御プログラムの書き換えができ、しかも書き換え用の制御プログラムに圧縮処理を施して通信回数を低減して書き換えに伴う作業効率を向上することができるようになる。
【図面の簡単な説明】
【００１０】
【図１】本発明の代表的な実施形態になる電子制御装置の構成図である。
【図２】本実施形態になる第１の中央制御ユニットの動作を説明する制御フローチャート図である。
【図３】本実施形態になる第２の中央制御ユニットの動作を説明する制御フローチャート図である。
【図４】図２に示す第１書き換え処理の詳細を示す制御フローチャート図である。
【図５】図３に示す第２書き換え処理の詳細を示す制御フローチャート図である。
【図６】第１の中央制御ユニットの第２の中央制御ユニットを処理を説明する模式図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を用いて詳細に説明するが、本発明は以下の実施形態に限定されることなく、本発明の技術的な概念の中で種々の変形例や応用例をもその範囲に含むものである。
【００１２】
図１において、本実施形態になる電子制御装置１０(以下、ＥＣＵ１０と表記する)は、自動車に搭載された内燃機関を制御するものであり、例えば燃料噴射量や点火時期、吸気弁や排気弁の開閉位相を制御するための制御パラメータを求めるものである。ＥＣＵ１０は、図１に示すように、一般的にマルチコア方式と呼ばれる、複数の中央制御ユニットを備えるコンピュータ(以下、単にコンピュータと表記する)１１と、通信回路１２とを有している。
【００１３】
コンピュータ１１は、第１の中央制御ユニット１３(以下、第１のＣＰＵ１３と表記する)、第２の中央制御ユニット１４(以下、第２のＣＰＵ１４と表記する)、不揮発性メモリであるフラッシュＲＯＭ１５、揮発性メモリであるＲＡＭ１６、及び通信部としてのＣＡＮモジュール１７を備えており、これらはバス１８で接続されている。第１のＣＰＵ１３、第２のＣＰＵ１４は、フラッシュＲＯＭ１５に記憶された制御プログラムに基づいて、上述した制御パラメータを求める演算処理を実行する。
【００１４】
フラッシュＲＯＭ１５は、記憶内容を書き換え可能な不揮発性メモリである。フラッシュＲＯＭ１５には、「ブートプログラム」、「制御プログラム」、及び「書き換えプログラム」等が記憶されている。ブートプログラムは、コンピュータ１１のリセット解除直後に実行されるプログラムである。制御プログラムは、内燃機機関の燃料噴射量や点火時期等を制御するためのプログラムである。この制御プログラムは、制御用の制御プログラムを構成するプログラムデータと、その制御プログラムの実行時に参照される制御データとを含んでいる。書き換えプログラムは、フラッシュＲＯＭ１５の記憶内容、すなわち、制御プログラムを構成するプログラムデータと、制御データを書き換えるためのプログラムである。
【００１５】
これらのブートプログラム、制御プログラム、及び書き換えプログラムは、第１のＣＰＵ１３、及び第２のＣＰＵ１４の夫々を制御するためにフラッシュＲＯＭ１５に記憶されている。以下、第１のＣＰＵ１３が実行するブートプログラム、制御プログラム、及び書き換えプログラムを、それぞれ「第１ブートプログラム」、「第１制御プログラム」、及び「第１書き換えプログラム」と定義する。同様に、第２のＣＰＵ１４が実行するブートプログラム、制御プログラム、及び書き換えプログラムを、それぞれ「第２ブートプログラム」、「第２制御プログラム」、及び「第２書き換えプログラム」と定義する。
【００１６】
ＲＡＭ１６は揮発性メモリであり、第１のＣＰＵ１３、第２のＣＰＵ１４の演算結果等を一時的に記憶する機能を備えている。また、ＲＡＭ１６には、受信バッファ１９が設けられている。受信バッファ１９は、フラッシュＲＯＭ１５に記憶される制御プログラムの書き換え等を行うため、プログラム書き換え装置２０から受信した書き換え用の制御プログラムのデータを一時的に記憶するための記憶領域である。この書き換え用の制御プログラムのデータはＣＡＮモジュール１７で変換され受信バッファ１９に記憶される。
【００１７】
ＣＡＮモジュール１７は、通信回路１２を介して通信フレームを送受信する送受信制御、及び他のＥＣＵ（不図示）から同時に通信フレームが送信された場合の調停を行う調停制御等のＣＡＮ通信プロトコルに従った制御を実行するものである。
【００１８】
また、第１のＣＰＵ１３と第２のＣＰＵ１４との間、第１のＣＰＵ１３及び第２のＣＰＵ１４とフラッシュＲＯＭ１５との間、第１のＣＰＵ１３及び第２のＣＰＵ１４とＲＡＭ１６との間、第１のＣＰＵ１３及び第２のＣＰＵ１４とＣＡＮモジュール１７との間は、バス１８でデータ通信可能に接続されている。
【００１９】
通信回路１２は、コンピュータ１１のＣＡＮモジュール１７から入力するデジタル信号をＣＡＮ通信プロトコルに従う差動信号に変換して通信線２１へ出力するとともに、通信線２１から入力する差動信号をデジタル信号に変換してＣＡＮモジュール１５へ出力する。
【００２０】
また通信回路１２には、プログラム書き換え装置２０が通信線２１を介して接続されており、このプログラム書き換え装置２０は、例えば、コネクタ２２を介して着脱可能になっており、制御プログラムの書き換え時にＥＣＵ１０に接続される。尚、プログラム書き換え装置２０は、コンピュータ、及び表示装置を備えたハンディタイプのプログラム書き換え装置または小型のパーソナルコンピュータ等から構成されている。
【００２１】
次に、プログラム書き換え装置２０から送信される制御プログラムについて説明する。尚、本実施形態の制御プログラムのデータは圧縮、暗号化されている。つまり、プログラム書き換え装置２０から送信される制御プログラムのデータは、送信前に圧縮、暗号化が実行されている。
【００２２】
ここで、コンピュータ１１がＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）等を有する場合は、ＨＳＭで生成した公開鍵や共通鍵を使用することができる。また、コンピュータ１１がＨＳＭを持たない場合、或いはＨＳＭの処理能力が低い(例えば、処理速度が遅い)場合は、コンピュータ１１に暗号化プログラムを実装し、そのプログラムで生成した公開鍵や秘密鍵を使用することができる。そして、プログラム書き換え装置２０から送信される制御プログラムのデータは公開鍵や共通鍵によって、プログラム書き換え装置２０で暗号化が行われる。この暗号化方式は自由に設定することができ、制限はないものである。更に、暗号化された制御プログラムのデータは所定の圧縮方法で圧縮されている。プログラム書き換え装置２０が行う圧縮方式に制限はなく、圧縮方式は自由に設定できる。
【００２３】
このように構成されたＥＣＵ１０において、コンピュータ１１の第１のＣＰＵ１３は、リセット解除直後にフラッシュＲＯＭ１５内の第１ブートプログラムを実行し、同様に第２のＣＰＵ１４は、リセット解除直後にフラッシュＲＯＭ１５内の第２ブートプログラムを実行する。
【００２４】
次に、コンピュータ１１の第１のＣＰＵ１３で実行される制御処理を説明するが、図２は第１のＣＰＵ１３で実行される処理を示す制御フローチャートである。図２におけるステップＳ２０〜Ｓ２４の処理がフラッシュＲＯＭ１５内の第１ブートプログラムによって実行され、また、ステップＳ２５の処理がフラッシュＲＯＭ１５内の第１制御プログラムによって実行され、ステップＳ２６の処理が、フラッシュＲＯＭ１５内の第１書き換えプログラムによって実行されるものである。
【００２５】
≪ステップＳ２０≫
ステップＳ２０においては、自動車のイグニッションスイッチのオンに伴い電源が投入されると、コンピュータ１１の第１のＣＰＵ１３がリセット状態から動作を開始して、第１ブートプログラムの実行を開始し、プログラム書き換え装置２０からプログラム書き換え用求を受信したか否かを判断する。尚、プログラム書き換え要求には、書き込まれるプログラムの総データ量を示す総書き込みデータ量情報、及び圧縮、暗号化に関する情報が含まれている。プログラム書き換え要求を受信していない場合はステップＳ２１に移行し、プログラム書き換え要求を受信している場合はステップＳ２３に移行する。
【００２６】
≪ステップＳ２１≫
ステップＳ２１においては、第１制御プログラムが既にフラッシュＲＯＭ１５に書き込まれているか否かを判断する。ここで、第１制御プログラムが書き込まれていない場合には再びステップ２０に戻って上述の処理を繰り返すようになる。一方、第１制御プログラムが書き込まれている場合にはステップＳ２２に移行する。
【００２７】
≪ステップＳ２２≫、≪ステップＳ２５≫
ステップＳ２２においては、フラッシュＲＯＭ１５内の第１制御プログラムへジャンプする。これにより、フラッシュＲＯＭ１５内の第１制御プログラムが実行されて、ステップＳ２５における内燃機関を制御するための演算制御処理が実行される。
【００２８】
≪ステップＳ２３≫
ステップＳ２０でプログラム書き換え要求を受信した場合には、ステップＳ２３において、受信したプログラム書き換え要求を第２のＣＰＵ１４へ送信する。その後にステップＳ２４に移行する。
【００２９】
≪ステップＳ２４≫、≪ステップＳ２６≫
ステップＳ２４において、フラッシュＲＯＭ１５内の第１書き換えプログラムへジャンプする。これにより、フラッシュＲＯＭ１５内の第１書き換えプログラムが実行されて、ステップＳ２６における第１書き換え処理が実行される。第１書き換え処理については後述する。
【００３０】
次に、コンピュータ１１の第２のＣＰＵ１４で実行される制御処理を説明するが、図３は第２のＣＰＵ１４で実行される処理を示す制御フローチャートである。図３におけるステップＳ３０〜Ｓ３４の処理がフラッシュＲＯＭ１５内の第２ブートプログラムによって実行され、また、ステップＳ３５の処理がフラッシュＲＯＭ１５内の第２制御プログラムによって実行され、ステップＳ３６の処理が、フラッシュＲＯＭ１５内の第２書き換えプログラムによって実行されるものである。
【００３１】
≪ステップＳ３０≫
ステップＳ３０においては、自動車のイグニッションスイッチのオンに伴い電源が投入されると、コンピュータ１１の第２のＣＰＵ１４がリセット状態から動作を開始して、第２ブートプログラムの実行を開始し、第１のＣＰＵ１３からプログラム書き換え用求を受信したか否かを判断する。プログラム書き換え要求を受信していない場合はステップＳ３１に移行し、プログラム書き換え要求を受信している場合はステップＳ３４に移行する。
【００３２】
≪ステップＳ３１≫
ステップＳ３１においては、第２制御プログラムが既にフラッシュＲＯＭ１５に書き込まれているか否かを判断する。ここで、第２制御プログラムが書き込まれていない場合には再びステップ３０に戻って上述の処理を繰り返すようになる。一方、第２制御プログラムが書き込まれている場合にはステップＳ３２に移行する。
【００３３】
≪ステップＳ３２≫、≪ステップＳ３５≫
ステップＳ３２においては、フラッシュＲＯＭ１５内の第２制御プログラムへジャンプする。これにより、フラッシュＲＯＭ１５内の第２制御プログラムが実行されて、ステップＳ３５における内燃機関を制御するための演算制御処理が実行される。
【００３４】
≪ステップＳ３４≫、≪ステップＳ３６≫
ステップＳ３４において、フラッシュＲＯＭ１５内の第２書き換えプログラムへジャンプする。これにより、フラッシュＲＯＭ１５内の第２書き換えプログラムが実行されて、ステップＳ３６における第２書き換え処理が実行される。第２書き換え処理については後述する。
【００３５】
次に、第１のＣＰＵ１３がステップＳ２６で実行する第１書き換え処理の詳細を図４に基づき説明する。
【００３６】
≪ステップＳ２６０≫
Ｓ２６０にて、プログラム書き換え装置２０から送信されて来る書き換え用の制御プログラムをＣＡＮモジュール１７が新たに受信したか否かを判断する。この判断で、書き換え用の制御プログラムを受信していない場合にはステップＳ２６４に移行し、書き換え用の制御プログラムを受信している場合にはステップＳ２６１に移行する。
【００３７】
≪ステップＳ２６１≫
ステップＳ２６１において、受信した書き換え用の制御プログラムをＲＡＭ１６内の受信バッファ１９に一時的に格納する。格納処理が終了するとステップＳ２６２に移行する。
【００３８】
尚、この他に書き換え用の制御プログラムを受信する際、図１に示すフラッシュＲＯＭ１５内のプログラム格納エリア２３にある、書き換え機能とＨＳＭを使用しない場合の暗号化機能を備えたプログラムを、ＲＡＭ１６内のプログラム実行エリア２４に展開することも可能である。これによって、暗号の複合化と書き換えを実行することができる。ただ、この場合は、書き換え終了後にＲＡＭ１６のプログラム実行エリアに展開したプログラムは削除される構成となっている。
【００３９】
≪ステップＳ２６２≫
ステップＳ２６２において、ＲＡＭ１６の受信バッファ１９に格納された書き換え用の制御プログラムのデータ量（以下、格納データ量と表記する）が予め設定された書込実行データ量以上であるか否かを判断する。ここで、格納データ量が書込実行データ量未満である場合にはステップＳ２６４に移行する。一方、格納データ量が書込実行データ量以上である場合にはステップＳ２６３に移行する。
【００４０】
≪ステップＳ２６３≫
ステップＳ２６３において、第２のＣＰＵ１４へ書き込み処理要求を送信して、その後にステップＳ２６４に移行する。
【００４１】
≪ステップＳ２６４≫
ステップＳ２６０で「ＮＯ」と判断され、或いはステップＳ２６２で「ＮＯ」と判断され、或いはステップＳ２６３で書き込み要求を送信するとステップＳ２６４が実行される。ステップＳ２６４においては、第２のＣＰＵ１４から書き込み完了応答(これについては後述する)を受信したか否かを判断する。ここで、書き込み完了応答を受信していない場合はステップＳ２６０に戻って、上述の制御ステップの処理を繰り返すものである。一方、書き込み完了応答を受信している場合はステップＳ２６５に移行する。
【００４２】
≪ステップＳ２６５≫
ステップＳ２６５においては、ＲＡＭ１６に設けられた第１書き込み回数カウンタをインクリメント（＋１）する。そして、第１書き込み回数カウンタがカウントアップされるとステップＳ２６６に移行する。
【００４３】
≪ステップＳ２６６≫
ステップＳ２６６において、第１書き込み回数カウンタの計数値（以下、第１書き込み回数と表記する）が終了判定回数以上であるか否かを判断する。尚、終了判定回数は、総書き込みデータ量を書き込み実行データ量で除した除算値である。
【００４４】
ここで、第１書き込み回数が終了判定回数未満であると判断された場合には、再びステップＳ２６０に戻って上述の制御ステップを繰り返すものである。一方、第１書き込み回数が終了判定回数以上であると判断された場合は、今回の制御プログラムの書き換え要求で書き込むべき制御プログラムに関する全ての書き込みが終了したと判断し、第１書き換え処理を終了する。
【００４５】
このように、図４に示す制御フローを実行することによって、プログラム書き換え装置２０から送信されてくる圧縮、暗号化された書き換え用の制御プログラムをＲＡＭ１６の受信バッファ１９に格納する通信処理を行うことができるようになる。
【００４６】
次に、第２のＣＰＵ１４がステップＳ３６で実行する第２書き換え処理の詳細を図５に基づき説明する。
【００４７】
≪ステップＳ３６０≫
Ｓ３６０において、第１のＣＰＵ１３で実行されているステップＳ２６３からの書き込み処理要求を受信したか否かを判断する。この判断で、書き込み処理要求を受信していない場合には、ステップＳ３６０に戻ってこの処理を繰り返すことにより、書き込み処理要求を受信するまで待機する。一方、書き込み処理要求を受信するとステップＳ３６１に移行する。
【００４８】
≪ステップＳ３６１≫
ステップＳ３６１において、ＲＡＭ１６内の受信バッファ１９から、フラッシュＲＯＭ１５に書き込まれていない圧縮、暗号化された制御プログラム（以下、未解凍書き込みデータと表記する）を所定の書き込み実行データ量分だけ読み出し、読み出した未解凍書き込みデータを解凍、復号化処理を実行して、フラッシュＲＯＭ１５に書き込み可能な制御プログラム（以下、未書き込みデータという）を生成する。
【００４９】
ステップＳ３６１で実行される、圧縮、暗号化されたデータを解凍、復号するには、図２のステップＳ２０で受け取った圧縮、暗号に関する情報に基づき行うことができる。また、暗号化されたデータを復号するには、ＥＣＵ１０内にＨＳＭを持つ場合は、ＨＳＭで生成した秘密鍵を使用して、ＨＳＭで復号化を実行することができる。また、ＨＳＭを持たない場合、或いはＨＣＭの能力が低い場合は、復号化プログラムを実装して、生成した秘密鍵を用いて復号化を実行することができる。制御プログラムの解凍、復号が終了するとステップＳ３６２に移行する。
【００５０】
≪ステップＳ３６２≫
ステップＳ３６２において、解凍、復号が終了した未書き込みデータをフラッシュＲＯＭ１５に書き込む。書き込みが終了するとステップＳ３６３に移行する。
【００５１】
≪ステップＳ３６３≫
ステップＳ３６２で書き込み実行データ量分の未書き込みデータをフラッシュＲＯＭ１５への書き込むと、ステップＳ３６３において、書き込んだデータのベリファイ（ｖｅｒｉｆｙ）処理を実行する。このベリファイ処理が終了するとステップＳ３６４に移行する。
【００５２】
≪ステップＳ３６４≫
ステップＳ３６３でのベリファイ処理の結果に基づいて、ＲＡＭ１６の受信バッファ１９から読み出した解凍と復号を行ったデータと、フラッシュＲＯＭ１３に書き込まれたデータが互いに一致しているかを判断する。ここで、両データが一致していない場合にはステップＳ３６１に戻って上述の制御ステップを繰り返すことになる。一方、両データが一致している場合にはステップＳ３６５に移行する。
【００５３】
≪ステップＳ３６５≫
ステップＳ３６５においては、ＲＡＭ１６に設けられた第２書き込み回数カウンタをインクリメント（＋１）する。そして、第２書き込み回数カウンタがカウントアップされるとステップＳ３６６に移行する。
【００５４】
≪ステップＳ３６６≫
ステップＳ３６６においては、第１のＣＰＵ１３へ書き込み完了応答を送信する。この書き込み完了応答の送信が終了するとステップＳ３６７に移行する。
【００５５】
≪ステップＳ３６７≫
ステップＳ３６７において、第２書き込み回数カウンタの計数値（以下、第２書き込み回数と表記する）が終了判定回数以上であるか否かを判断する。ここで、第２書込回数が終了判定回数未満である場合にはステップＳ３６０に戻って、上述の処理を繰り返すことになる。一方、第２書込回数が終了判定回数以上である場合には第２書き換え処理を終了することになる。
【００５６】
以上に述べたように、上述したＥＣＵ１０においては、第１のＣＰＵ１３、及び第２のＣＰＵ１４を有し、これらは内燃機関の制御パラメータを演算して内燃機関を制御する機能を実行する。そして、ＥＣＵ１０はフラッシュＲＯＭ１５を備えており、フラッシュＲＯＭ１５は記憶内容の書き換えが可能であり、制御処理を実行するための制御プログラムと、制御プログラムを書き換える書き換えプログラムを記憶しているものである。
【００５７】
そして、第１のＣＰＵ１３は、書き換え用の圧縮、暗号化された制御プログラムを外部から受信すると、受信した書き換え用の制御プログラムを、フラッシュＲＯＭ１５に書き込む前にＲＡＭ１６の受信バッファ１９に一時的に格納する。
【００５８】
更に、第２のＣＰＵ１４は、受信バッファ１９に格納された圧縮、暗合化された書き換え用の制御プログラムを、所定の方法で解凍した後にＨＳＭ、或いは実装されている復号化プログラムで復号して、未書き込みデータを生成してベリファイ処理した後に、その未書き込みデータをフラッシュＲＯＭ１５に書き込むことにより、フラッシュＲＯＭ１５に記憶されている制御プログラムの内容を書き換えることができるようになる。
【００５９】
本実施形態では図６に示すように、第１のＣＰＵ１３で圧縮、暗合化された書き換え用の制御プログラムを受信バッファ１９に格納する処理を行ない、第２のＣＰＵ１４で受信バッファ１９に格納されたデータを解凍、復号し、書き換え用の制御プログラムの一致を確認すると共に、フラッシュＲＯＭ１５に書き換え用の制御プログラムを書き込むようにしている。
【００６０】
図６において、第１のＣＰＵ１３が、プログラム書き換え装置２０から受信した圧縮、暗合化された書き換え用の制御プログラムＤ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６、……を順次、受信バッファ１９に格納する。そして、第１のＣＰＵ１３が書き換え用の制御プログラムＤ４、Ｄ５、Ｄ６、……を格納する処理を行っている間に、第２のＣＰＵ１４は、書き換え用の制御プログラムＤ１、Ｄ２、Ｄ３の解凍、復号を行い、フラッシュＲＯＭ１５に書き込む処理と、書き換え用の制御プログラムＤ１、Ｄ２、Ｄ３のベリファイを実行している。これにより、書き換え用の制御プログラムを受信バッファ１９に格納する処理と、解凍、復号とフラッシュＲＯＭ１５に書き換え用の制御プログラムを書き込むとともに書き換え用の制御プログラムの一致を確認する処理との何れか一方しか実行できないという事態の発生を抑制し、制御プログラムの書き換え時間を短縮することができる。
【００６１】
更に、制御プログラムが傍受されたとしても、制御プログラムが暗号化されているので、傍受者は制御プログラムの復号が困難であるため、信頼性の確保が可能となる。また、制御プログラムを圧縮しているため、通信回数を削減することができ、書き換えにかかる時間を短縮することができる。
【００６２】
本発明の実施形態においては、コンピュータが２個の中央制御ユニットを備えるものを示したが、３個以上の中央制御ユニットを備えるようにしてもよい。また、ＥＣＵの制御対象が内燃機関であるが、これに限定されるものではなく、例えば自動変速機であってもよいものである。更に、フラッシュＲＯＭに制御プログラムを記憶するものを示したが、制御プログラムの記憶媒体としてはこれに限定されるものではなく、例えばＥＥＰＲＯＭのように記憶内容の書き換えが可能な不揮発性メモリであればよいものである。
【００６３】
尚、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である
【符号の説明】
【００６４】
１０…電子制御装置、１１…マルチコア方式のコンピュータ、１２…通信回路、１３…第１の中央制御ユニット、１４…第２の中央制御ユニット、１５…フラッシュＲＯＭ、１６…ＲＡＭ、１７…ＣＡＮモジュール、１８…バス、１９…受信バッファ、２０…プログラム書き換え装置、２１…通信線、２２…コネクタ、２３…プログラム格納エリア、２４…プログラム実行エリア。
【図１】
2019040488.tif 000003
【図２】
2019040488.tif 000004
【図３】
2019040488.tif 000005
【図４】
2019040488.tif 000006
【図５】
2019040488.tif 000007
【図６】
2019040488.tif 000008