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