(57)【特許請求の範囲】
【請求項１】
書換えデータを保持する不揮発性メモリ（７）を内蔵又は外部接続した電子制御装置（３）において、
前記不揮発性メモリに保持されている書換えデータを書換える際に、旧書換えデータから新書換えデータへの差分を含むブロック単位のデータと、ソフトウェアを管理するソフト管理情報、旧書換えデータを含む前記不揮発メモリ内の書換え領域（７ａ）内の全てのデータを対象としたデータ確認情報、書込みデータの書込みを正常に完了したか否かを示すものであって、前記書込みデータの書込みを正常に完了したときにセットされる値とは異なる値が格納された書込み完了フラグを含むブロック単位のデータとを含む転送データが書換装置（２）から転送されることで、前記書換え領域に保持されている書換えデータを書換え、前記不揮発性メモリ内の書込み完了フラグには、書込み完了時に、書込みデータの書込みを正常に完了した旨を意味する値が書込まれる電子制御装置。
【請求項２】
請求項１に記載した電子制御装置において、
旧書換えデータを含む前記不揮発メモリ内の前記書換え領域内の全てのデータを対象としてデータ確認を実施する電子制御装置。
【請求項３】
請求項１又は２に記載した電子制御装置において、
前記データ確認情報がブロック単位に設けられ、旧書換えデータを含む前記不揮発メモリ内の前記書換え領域内の全てのデータを対象としたデータ確認と、ブロック単位のデータを対象としたデータ確認とを実施する電子制御装置。
【請求項４】
請求項３に記載した電子制御装置において、
関連が有る複数のブロックを対象としてデータ確認を実施する電子制御装置。
【請求項５】
請求項４に記載した電子制御装置において、
関連が有る複数のブロックとして新データを含むデータで構成された新ブロックと旧データのみで構成された旧ブロックとを対象としてデータ確認を実施する電子制御装置。
【請求項６】
請求項３から５の何れか一項に記載した電子制御装置において、
前記書換装置から消去要求を受信すると、前記書込み完了フラグが格納されているブロックのデータを消去し、書換えデータの書換え後にデータ確認を実施した結果が正常であると判定すると、そのデータを消去したブロックに格納されている前記書込み完了フラグに書込みデータの書込みを正常完了した旨を意味する値を書込む電子制御装置。
【請求項７】
請求項３から６の何れか一項に記載した電子制御装置において、
前記書換装置から書込み要求を受信すると、更新データを含むブロックのデータを消去する電子制御装置。
【請求項８】
書換装置（２）と、書換えデータを保持する不揮発性メモリ（７）を内蔵又は外部接続した電子制御装置（３）と、を備えたデータ書換えシステム（１）において、
前記書換装置は、旧書換えデータから新書換えデータへの差分を含むブロック単位のデータと、ソフトウェアを管理するソフト管理情報、旧書換えデータを含む前記不揮発メモリ内の書換え領域（７ａ）内の全てのデータを対象としたデータ確認情報、書込みデータの書込みを正常に完了したか否かを示すものであって、前記書込みデータの書込みを正常に完了したときにセットされる値とは異なる値が格納された書込み完了フラグを含むブロック単位のデータとを含む転送データを前記電子制御装置に転送し、
前記電子制御装置は、前記転送データが前記書換装置から転送されることで、前記書換え領域に保持されている書換えデータを書換え、
前記不揮発性メモリ内の書込み完了フラグには、書込み完了時に、書込みデータの書込みを正常に完了した旨を意味する値が書込まれるデータ書換えシステム。
【請求項９】
請求項８に記載したデータ書換えシステムにおいて、
前記書換装置は、前記転送データを別の電子制御装置を介して前記電子制御装置に転送するデータ書換えシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子制御装置及びデータ書換えシステムに関する。
【背景技術】
【０００２】
従来より、制御プログラムや制御パラメータ等の書換えデータを書換え領域に保持する不揮発性メモリを内蔵又は外部接続した電子制御装置が供されている。この種の電子制御装置では、不揮発性メモリ内の書換え領域に保持されている書換えデータを書換える手法として、ブロック単位で、既に書込まれている書換えデータを用いて算出した識別情報（即ちハッシュ値）と、これから書込む書換えデータを用いて算出した識別情報とを比較し、旧書換えデータから新書換えデータへの差分の有無を確認する手法が提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１８２８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記した手法では、書換えデータを書換える毎にブロック単位で識別情報を算出するので、書換え時間への影響が懸念される。又、書換えシーケンスの中で識別情報を確認するための専用コマンド（即ち確認用途の要求フレームや応答フレーム等）を設ける必要が有るので、専用コマンドの送受信処理や演算処理を行う機能を書換装置に実装する必要が有る。ところが、書換装置のＲＯＭ容量が比較的少ない構成であると、それらの機能を書換装置に実装するのが困難となる懸念が有る。加えて、書換装置のバージョン管理（即ち専用コマンドに対応するか否かの情報の管理）も煩雑となり、バージョンの選択ミスにより書換えデータの書換えを正常に実施するのが困難となる懸念も有る。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、書換えデータを書換える際の書換え時間を短縮しつつ、書換えデータの書換えを正常に実施することができる電子制御装置及びデータ書換えシステムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した発明によれば、不揮発性メモリ（７）に保持されている書換えデータを書換える際に、旧書換えデータから新書換えデータへの差分を含むブロック単位のデータと、ソフトウェアを管理するソフト管理情報、旧書換えデータを含む不揮発メモリ内の書換え領域（７ａ）内の全てのデータを対象としたデータ確認情報、書込みデータの書込みを正常に完了したか否かを示すものであって、前記書込みデータの書込みを正常に完了したときにセットされる値とは異なる値が格納された書込み完了フラグを含むブロック単位のデータとを含む転送データが書換装置（２）から転送されることで、書換え領域に保持されている書換えデータを書換え、前記不揮発性メモリ内の書込み完了フラグには、書込み完了時に、書込みデータの書込みを正常に完了した旨を意味する値が書込まれるようにした。
【０００７】
書換えデータを書換える際に書換装置から電子制御装置に転送される転送データを、旧書換えデータから新書換えデータへの差分を含むブロック単位のデータと、ソフト管理情報、データ確認情報、書込み完了フラグを含むブロック単位のデータとを含む転送データとすることで、転送されるデータ量を削減することができる。その結果、書換えデータを書換える際の書換え時間を短縮することができる。このとき、従来とは異なり、識別情報を算出することが無いので、書換えシーケンスの中で識別情報を確認するための専用コマンドを設ける必要が無くなり、専用コマンドの送受信処理や演算処理を行う機能を書換装置に実装する必要も無くなる。加えて、書換装置のバージョン管理が煩雑となることも無く、書換えデータの書換えを正常に実施するのが困難となる懸念も無くなる。これにより、書換えデータを書換える際の書換え時間を短縮しつつ、書換えデータの書換えを正常に実施することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態を示す機能ブロック図
【図２】転送データ作成処理を示すフローチャート
【図３】旧書換えデータ、新書換えデータ、転送データを示す図
【図４】シーケンス図
【図５】転送データ送信処理を示すフローチャート
【図６】転送データ受信処理を示すフローチャート
【図７】データ確認を行う対象を示す図（その１）
【図８】データ確認を行う対象を示す図（その２）
【発明を実施するための形態】
【０００９】
以下、本発明を、自動車に搭載される電子制御装置に適用した一実施形態について図面を参照して説明する。データ書換えシステム１は、書換装置２と、電子制御装置３とを有する。電子制御装置３は、装置の動作全般を制御するマイコン４を有する。マイコン４は、外部との通信制御を行う外部通信部５と、ＲＡＭ６と、ＲＯＭ７（不揮発性メモリに相当する）とを有する。ＲＯＭ７には、ソフトウェアが書換え可能な書換え領域７ａと、ソフトウェアが一旦書込まれた後では書換え不可となる非書換え領域７ｂとが設けられている。
【００１０】
電子制御装置３は、書換装置２がデータ通信ケーブル８を介して接続されることで、書換装置２から送信される書換えプログラムや書換えデータが外部通信部５に受信可能となる。書換装置２がデータ通信ケーブル８を介して電子制御装置３に接続されている状態では、作業者が書換えプログラム（即ちリプロソフト）の書込み操作を行うと、予めＲＯＭ７に格納されているファームウェアが起動し、書換えプログラムがＲＯＭ７の非書換え領域７ｂに書込まれる。又、作業者が制御プログラムや制御パラメータ等の書換えデータの書換え操作を行うと、非書換え領域７ｂに書込まれている書換えプログラムが起動し、書換えデータがＲＯＭ７の書換え領域７ａに書込まれる。
【００１１】
次に、上記した構成の作用について図２から図８を参照して説明する。書換装置２は、本発明に関連する処理として、単独で転送データ作成処理を行い、電子制御装置３と連携して転送データ送信処理を行う。電子制御装置３は、本発明に関連する処理として、書換装置２と連携して転送データ受信処理を行う。以下、それぞれの処理について順次説明する。尚、既に書込まれている書換えデータを旧書換えデータと称し、これから書込む書換えデータを新書換えデータと称する。
【００１２】
（１）転送データ作成処理
書換装置２は、転送データ作成処理を開始すると、同一のブロック単位毎に旧書換えデータと新書換えデータとの差分の有無を確認する（Ａ１）。書換装置２は、旧書換えデータから新書換えデータへの差分が有るか否かを判定し（Ａ２）、差分が有ると判定すると（Ａ２：ＹＥＳ）、その差分を登録する（Ａ３）。書換装置２は、全てのブロック単位に対して差分の有無を確認したか否かを判定し（Ｓ４）、全てのブロック単位に対して差分の有無を確認していない、即ち差分の有無を未確認のブロック単位が有ると判定すると（Ａ４：ＮＯ）、ステップＡ１に戻り、ステップＡ１以降を繰り返して行い、その差分の有無を未確認のブロック単位について差分の有無を確認する。書換装置２は、全てのブロック単位に対して差分の有無を確認した、即ち差分の有無を未確認のブロック単位が無いと判定すると（Ａ４：ＹＥＳ）、これよりも先に登録した差分を含む転送データを作成し（Ａ５）、転送データ作成処理を終了する。
【００１３】
ここで、書換装置２は、図３に示すように、旧書換えデータから新書換えデータへの差分を含むブロック単位のデータと、ソフト管理情報、データ確認情報、書込み完了フラグを含むブロック単位のデータとを含む転送データを作成する。ソフト管理情報はソフトウェアを管理する情報である。データ確認情報は旧書換えデータを含むＲＯＭ７内の書換え領域７ａ内の全てのデータを対象とした情報である。書込み完了フラグは書込みデータの書込みを正常に完了したか否かを示すフラグである。即ち、書換装置２は、旧書換えデータから新書換えデータへの差分、ソフト管理情報、データ確認情報、書込み完了フラグを含むそれぞれのブロックを、更新データを有するブロックとして転送データを作成する。
【００１４】
（２）転送データ送信処理及び転送データ受信処理
書換装置２は、転送データ送信処理を開始すると、消去要求を電子制御装置３に送信し（Ａ１１）、電子制御装置３からの応答の受信を待機する（Ａ１２）。
【００１５】
電子制御装置３は、転送データ受信処理を開始すると、書換装置２からの消去要求の受信を待機し（Ｂ１）、書換装置２から消去要求を受信したと判定すると（Ｂ１：ＹＥＳ）、書込み完了フラグが格納されているブロックのデータを消去する（Ｂ２）。電子制御装置３は、データの消去を完了すると（Ｂ３：ＹＥＳ）、肯定応答（ＡＣＫ）を書換装置２に送信し（Ｂ４）、書換装置２からの書込み要求の受信を待機する（Ｂ５）。
【００１６】
書換装置２は、消去要求を電子制御装置３に送信した後に、電子制御装置３から肯定応答を受信したと判定すると（Ａ１２：ＹＥＳ）、アドレス及びデータ長を指定する書込み要求を電子制御装置３に送信し（Ａ１３）、電子制御装置３からの応答の受信を待機する（Ａ１４）。
【００１７】
電子制御装置３は、肯定応答を書換装置２に送信した後に、書換装置２から書込み要求を受信したと判定すると（Ｂ５：ＹＥＳ）、アドレス及びデータ長により指定される該当するブロックのデータを消去する（Ｂ６）。電子制御装置３は、データの消去を完了すると（Ｂ７：ＹＥＳ）、肯定応答を書換装置２に送信し（Ｂ８）、書換装置２からの書込みデータの受信を待機する（Ｂ９）。
【００１８】
書換装置２は、書込み要求を電子制御装置３に送信した後に、電子制御装置３からの定応答を受信したと判定すると（Ａ１４：ＹＥＳ）、更新対象のブロック毎の書込みデータを電子制御装置３に送信し（Ａ１５）、電子制御装置３からの応答の受信を待機する（Ａ１６）。
【００１９】
電子制御装置３は、肯定応答を書換装置２に送信した後に、書換装置２から書込みデータを受信したと判定すると（Ｂ９：ＹＥＳ）、書込みデータを書込む（Ｂ１０）。電子制御装置３は、書込みデータの書込みを完了すると（Ｂ１１：ＹＥＳ）、肯定応答を書換装置２に送信する（Ｂ１２）。
【００２０】
書換装置２は、書込みデータを電子制御装置３に送信した後に、電子制御装置３から肯定応答を受信したと判定すると（Ａ１６：ＹＥＳ）、全ての書込みデータの送信を完了したか否かを判定する（Ａ１７）。書換装置２は、全ての書込みデータの送信を完了していない、即ち未送信の書込みデータが有ると判定すると（Ａ１７：ＮＯ）、ステップＡ１３に戻り、次のアドレス及びデータ長を指定し、ステップＡ１３以降を繰り返して行う。一方、書換装置２は、全ての書込みデータの送信を完了した、即ち未送信の書込みデータが無いと判定すると（Ａ１７：ＹＥＳ）、ベリファイ要求を電子制御装置３に送信し（Ａ１８）、電子制御装置３からの応答の受信を待機する（Ａ１９）。
【００２１】
電子制御装置３は、書込みデータの書込みを完了したと判定し、肯定応答を書換装置２に送信すると、全ての書込みデータの受信を完了したか否かを判定する（Ｂ１３）。電子制御装置３は、全ての書込みデータの受信を完了していないと判定すると（Ｂ１３：ＮＯ）、ステップＢ５に戻り、書換装置２からの書込み要求の受信を待機し、ステップＢ５以降を繰り返して行う。
【００２２】
一方、電子制御装置３は、全ての書込みデータの受信を完了したと判定すると（Ｂ１３：ＹＥＳ）、書換装置２からのベリファイ要求の受信を待機する（Ｂ１４）。電子制御装置３は、書換装置２からのベリファイ要求を受信したと判定すると（Ｂ１４：ＹＥＳ）、ＲＯＭ７内に格納されている全てのデータを対象としてデータ確認を実施する。即ち、電子制御装置３は、ＲＯＭ７内に格納されている全てのデータを対象としてＣＲＣ値を算出し（Ｂ１５）、その算出したＣＲＣ値を期待値と照合し、その算出したＣＲＣ値が期待値と一致するか否かを判定する（Ｂ１６）。電子制御装置３は、算出したＣＲＣ値が期待値と一致すると判定すると（Ｂ１６：ＹＥＳ）、ＲＯＭ７内に格納されている全てのデータを対象として認証子を算出し（Ｂ１７）、その算出した認証子を期待値と照合し、その算出した認証子が期待値と一致するか否かを判定する（Ｂ１８）。電子制御装置３は、その算出した認証子が期待値と一致すると判定すると（Ｂ１８：ＹＥＳ）、書込み完了フラグをセットし、即ち書込み完了フラグに書込みデータの書込みを正常完了した旨を意味する値を書込む（Ｂ１９）。電子制御装置３は、書込み完了フラグのセットを完了すると（Ｂ２０：ＹＥＳ）、肯定応答を書換装置２に送信し（Ｂ２１）、書換装置２からのソフト管理情報要求の受信を待機する（Ｂ２２）。尚、電子制御装置は、算出したＣＲＣ値が期待値と一致しないと判定すると（Ｂ１６：ＮＯ）、又は算出した認証子が期待値と一致しないと判定すると（Ｂ１８：ＮＯ）、否定応答（ＮＡＣＫ）を書換装置２に送信し（Ｂ２４）、転送データ受信処理を終了する。
【００２３】
電子制御装置３は、図７に示すように、関連が有る制御プログラムと制御パラメータとをセットで書換える場合には、複数のブロックを対象としてデータ確認を実施する。又、電子制御装置３は、図８に示すように、制御プログラムを書換えずに制御パラメータのみを書換える場合には、複数のブロックとして新ブロックと旧ブロックとを対象として（即ち混在して）データ確認を実施する。新ブロックとは新書換えデータを含むブロックであり、図８では新データを含む制御パラメータが格納されているブロックである。旧ブロックとは旧書換えデータのみで構成されたブロックであり、図８では旧データの制御プログラムが格納されているブロックである。
【００２４】
書換装置２は、ベリファイ要求を電子制御装置３に送信した後に、電子制御装置３から肯定応答を受信したと判定すると（Ａ１９：ＹＥＳ）、ソフト管理情報要求を電子制御装置３に送信し（Ａ２０）、電子制御装置３からのソフト管理情報の受信を待機する（Ａ２１）。
【００２５】
電子制御装置３は、肯定応答を書換装置２に送信した後に、書換装置２からソフト管理情報要求を受信したと判定すると（Ｂ２２：ＹＥＳ）、ソフト管理情報を書換装置２に送信し（Ｂ２３）、転送データ受信処理を終了する。
【００２６】
書換装置２は、電子制御装置３からのソフト管理情報を受信したと判定すると（Ａ２１：ＹＥＳ）、その受信したソフト管理情報を表示し（Ａ２２）、転送データ送信処理を終了する。
【００２７】
以上説明したように本実施形態によれば、次に示す効果を得ることができる。
電子制御装置３において、書換えデータを書換える際に書換装置２から転送される転送データを、旧書換えデータから新書換えデータへの差分を含むブロック単位のデータと、ソフト管理情報、データ確認情報、書込み完了フラグを含むブロック単位のデータとを含む転送データとすることで、転送されるデータ量を削減することができる。その結果、書換えデータを書換える際の書換え時間を短縮することができる。このとき、従来とは異なり、識別情報を算出することが無いので、書換えシーケンスの中で識別情報を確認するための専用コマンドを設ける必要が無くなり、専用コマンドの送受信処理や演算処理を行う機能を書換装置２に実装する必要も無くなる。加えて、書換装置２のバージョン管理が煩雑となることも無く、書換えデータの書換えを正常に実施するのが困難となる懸念も無くなる。これにより、書換えデータを書換える際の書換え時間を短縮しつつ、書換えデータの書換えを正常に実施することができる。
【００２８】
又、電子制御装置３において、旧書換えデータを含むＲＯＭ７内の書換え領域７ａ内の全てのデータを対象としてデータ確認を実施するようにした。書換えたデータのみを対象としてデータ確認を実施するのでなく、書換えたデータに加えて書換えていない旧書換えデータをも対象としてデータ確認を実施することで、ＲＯＭ７内の書換え領域７ａの全体を書換えた場合と同等のレベルでデータを保証することができる。
【００２９】
又、電子制御装置３において、旧書換えデータを含むＲＯＭ７内の書換え領域７ａ内の全てのデータを対象としたデータ確認と、ブロック単位のデータを対象としたデータ確認とを実施するようにした。ブロック単位のデータを対象としたデータ確認を実施することで、ブロック単位でもデータを保証することができる。
【００３０】
又、電子制御装置３において、関連が有る複数のブロックを対象としてデータ確認を実施することで、関連が有る制御プログラムと制御パラメータとを整合することができる。この場合、新ブロック、即ち新データを含むデータで構成されたブロックと、旧ブロック、即ち旧データのみで構成されたブロックとを対象としてデータ確認を実施することで、新旧に拘らずに関連が有る制御プログラムと制御パラメータとを整合することができる。
【００３１】
又、電子制御装置３において、書換装置２から消去要求を受信すると、書込み完了フラグが格納されているブロックのデータを消去し、書換えデータの書換え後にデータ確認を実施した結果が正常であると判定すると、そのデータを消去したブロックに書込み完了フラグをセットするようにした。書換えデータの書換え中に例えば電源断線等の物理障害が発生してＲＯＭ７内に新旧の書換えデータが混在する状態で再起動したとしても、制御プログラムが異常に起動するのを回避することができ、意図しない車両制御の実施を未然に回避することができる。即ち、書込み完了フラグが格納されているブロックのデータを消去しないと、書換えデータの書換え中に物理障害が発生してＲＯＭ７内に新旧の書換えデータが混在する状態で再起動し、制御プログラムが異常に起動する虞が有る。これに対し、書込み完了フラグが格納されているブロックのデータを消去することで、そのような虞を排除することができる。
【００３２】
本発明は、上記した実施形態で例示したものに限定されることなく、その範囲を逸脱しない範囲で任意に変形又は拡張することができる。
電子制御装置３に内蔵されているＲＯＭ７内の書換え領域に保持されている書換えデータを書換える構成を例示したが、ＲＯＭ７と同等の不揮発性メモリが電子制御装置３に外部接続され、その不揮発性メモリ内の書換え領域に保持されている書換えデータを書換える構成に適用しても良い。
【００３３】
書換装置２から電子制御装置３に転送データが直接転送される構成を例示したが、書換装置２から別の電子制御装置を介して電子制御装置３に転送データが転送される構成に適用しても良い。書換装置２と別の電子制御装置とが無線通信機能を有する構成であれば、書換装置２から別の電子制御装置への転送データの転送を無線通信として書換えデータを書換えることができる。
【符号の説明】
【００３４】
図面中、１はデータ書換えシステム、２は書換装置、３は電子制御装置、７はＲＯＭ（不揮発性メモリ）、７ａは書換え領域である。
【図１】
0006699324.tif 000002
【図２】
0006699324.tif 000003
【図３】
0006699324.tif 000004
【図４】
0006699324.tif 000005
【図５】
0006699324.tif 000006
【図６】
0006699324.tif 000007
【図７】
0006699324.tif 000008
【図８】
0006699324.tif 000009