(57)【要約】【課題】不揮発性メモリのデータが書き換えられるときに、更新データの識別コードの演算結果を速やかに得ることができる、自動車用電子制御装置を提供する。【解決手段】自動車用電子制御装置は、電気的に記憶内容が書き換え可能な不揮発性メモリを備え、外部からの指示によって不揮発性メモリのデータを書き換える第１のモードと、不揮発性メモリに格納された制御用プログラムにしたがって制御対象機器を制御する第２のモードとに切替え可能であり、第１のモードにおいて外部から送られた更新データを不揮発性メモリに書き込む処理中に更新データの識別コードを演算する。【選択図】図８
2019016086.tif 000002
【特許請求の範囲】
【請求項１】
電気的に記憶内容が書き換え可能な不揮発性メモリを備え、外部からの指示によって前記不揮発性メモリのデータを書き換える第１のモードと、前記不揮発性メモリに格納された制御用プログラムにしたがって制御対象機器を制御する第２のモードとに切替え可能な自動車用電子制御装置であって、
前記第１のモードにおいて外部から送られた更新データを前記不揮発性メモリに書き込む書き込み処理中に前記更新データの識別コードを演算する識別コード演算手段を有する、
自動車用電子制御装置。
【請求項２】
前記識別コード演算手段は、前記書き込み処理中の処理待ち状態で前記識別コードを演算する、
請求項１記載の自動車用電子制御装置。
【請求項３】
前記自動車用電子制御装置は、揮発性メモリを更に備え、
前記識別コード演算手段は、前記書き込み処理において前記更新データを前記揮発性メモリに一時的に保存する処理中に前記識別コードを演算する、
請求項１又は請求項２記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置に関し、詳しくは、不揮発性メモリのデータを書き換えるときに更新データの識別コードを演算する技術に関する。
【背景技術】
【０００２】
特許文献１には、電気的に書き換え可能な不揮発性メモリの内容を保証する内容保証値（ＣＶＮ：Calibration Verification Number）を演算するＣＶＮ演算手段を備えた制御装置が開示されている。
この制御装置は、不揮発性メモリに書き換え用データを書き込む処理を実行したときに、ＣＶＮ演算手段の演算が終了した後にこの演算結果を出力するよう構成される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−０５６２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、制御用プログラムなどが書き換えられた後に起動された自動車用電子制御装置が、制御用プログラムにしたがって制御対象機器を制御する状態で更新データの識別コード（プログラムコードのチェックサム値などからなるＣＶＮ）を演算する場合、制御処理の合間（空き時間）で識別コードを演算することになるため、識別コードの演算完了に時間を要することになる。
このため、自動車用電子制御装置が起動されてから、更新データの識別コードを車両診断装置などに応答するまでに長い時間を要するという問題があった。
【０００５】
本発明は、従来の実情に鑑みてなされたものであり、その目的は、不揮発性メモリのデータが書き換えられるときに、更新データの識別コードの演算結果を速やかに得ることができる、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、その１つの態様において、外部からの指示によって不揮発性メモリのデータを書き換えるモードにおいて、外部から送られた更新データを不揮発性メモリに書き込む書き込み処理中に更新データの識別コードを演算する。
【発明の効果】
【０００７】
本発明によれば、不揮発性メモリのデータが書き換えられるときに、更新データの識別コードの演算完了を早めることができる。
【図面の簡単な説明】
【０００８】
【図１】自動車用電子制御装置の一態様を示す構成ブロック図である。
【図２】書き換えシステムの一態様を示す概略図である。
【図３】書換えツールの一態様を示す構成ブロック図である。
【図４】フラッシュＥＥＰＲＯＭのデータを書き換え動作の手順を示すタイムチャートである。
【図５】フラッシュＥＥＰＲＯＭのデータを書き換え動作の流れを概略的に示すフローチャートである。
【図６】書き換え動作とＣＶＮ計算プロセスの進行状況との相関を例示するタイムチャートである。
【図７】フラッシュＥＥＰＲＯＭの書き換え処理後の通常モードでのＣＶＮ計算プロセスを例示するタイムチャートである。
【図８】リプログラミングタスクにおける書き換え処理及びＣＶＮ計算の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明に係る自動車用電子制御装置の実施形態を図面に基づいて説明する。
図１は、自動車用電子制御装置の一態様を示す構成ブロック図である。
図１の自動車用電子制御装置１００（以下、ＥＣＵ１００と称する。）は、自動車に搭載された各種の制御対象機器、例えば、燃料噴射弁、変速機、電動ブレーキシステム、ＡＢＳ（Antilock Brake System）、可変バルブタイミング機構、可変圧縮比機構などを制御する電子機器であって、マイクロコンピュータを内蔵している。
【００１０】
具体的には、ＥＣＵ１００は、ＣＰＵ（Central Processing Unit）などのプロセッサ１１０と、ネットワークに接続するための通信回路１２０と、不揮発性メモリの一例としてのフラッシュＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）１３０と、揮発性メモリの一例としてのＲＡＭ（Random Access Memory）１４０と、プロセッサ１１０、通信回路１２０、フラッシュＥＥＰＲＯＭ１３０及びＲＡＭ１４０を相互に接続するバス１５０と、を有している。
【００１１】
フラッシュＥＥＰＲＯＭ１３０は、電気的にデータを消去及び書込むことで、データの書換えが可能な不揮発性メモリであり、前述の制御対象機器を制御するための制御用プログラム（アプリケーションプログラム）や制御データ（定数、マップなどの制御パラメータ）が格納される。
そして、プロセッサ１１０は、フラッシュＥＥＰＲＯＭ１３０に格納されている制御用プログラム及び制御データにしたがってプログラムの処理を実行する。
【００１２】
図２は、ＥＣＵ１００のフラッシュＥＥＰＲＯＭ１３０に格納されている制御用プログラムや制御データを書き換えるための書き換えシステムの一態様を示す。
書き換え対象となるＥＣＵ１００は、ＣＡＮ（Controller Area Network）、シリアル通信、ＦｌｅｘＲａｙ（登録商標）などのネットワークケーブル２００を介して、書換えツール３００に着脱可能に接続される。
【００１３】
なお、書き換えシステムは、ＥＣＵ１００と書換えツール３００とをネットワークケーブル２００を使用した有線で接続するシステムに限定されず、無線送受信器を使用した無線で接続するシステムとすることができる。
書換えツール３００は、作業者がＥＣＵ１００（フラッシュＥＥＰＲＯＭ１３０）の書き換え作業を行うために使用する電子機器であり、例えば汎用のパーソナルコンピュータなどのコンピュータで構成される。
【００１４】
図３は、書換えツール３００の一態様を示す構成ブロック図である。
書換えツール３００は、ＣＰＵなどのプロセッサ３１０と、ネットワークに接続するための通信回路３２０と、ハードディスク装置、ＳＳＤ（Solid State Drive）などのストレージ３３０と、マンマシンインターフェースとしての入出力装置３４０と、プロセッサ３１０、通信回路３２０、ストレージ３３０及び入出力装置３４０を相互に接続するバス３５０とを有している。
【００１５】
入出力装置３４０は、ＬＣＤ（Liquid Crystal Display）などの視覚表示装置と、キーボードと、マウスなどのポインティングデバイスとを含む。
ストレージ３３０は、例えば、図示しないネットワークに接続されたＮＡＳ（Network Attached Storage）、サーバのストレージなどであってもよい。
【００１６】
ストレージ３３０には、ＥＣＵ１００のフラッシュＥＥＰＲＯＭ１３０に格納される制御用プログラムや制御データなどを書き換えるための更新データ（更新版の制御用プログラム、更新版の制御データ）が格納されている。
そして、ＥＣＵ１００は、外部装置である書換えツール３００からの指示によってフラッシュＥＥＰＲＯＭ１３０のデータ（制御用プログラム、制御データ）を書き換える第１のモードと、フラッシュＥＥＰＲＯＭ１３０に格納された制御用プログラムにしたがって制御対象機器を制御する第２のモードとに切替え可能に構成されている。
【００１７】
図４は、フラッシュＥＥＰＲＯＭ１３０のデータを書き換える動作（リプログラミング動作）の手順を示すタイムチャートであり、図５は、書き換え動作の流れを概略的に示すフローチャートである。
以下では、図４及び図５に基づき、フラッシュＥＥＰＲＯＭ１３０のデータの書き換え動作を説明する。
【００１８】
通常処理（Ｓ１０）の状態で書換えツール３００から書き換え指示があると（図４の時刻ｔ１）、リプログラミングタスク（Ｓ１１）が起動し、まず、フラッシュＥＥＰＲＯＭ１３０の書き換え領域の消去動作（Ｓ１２）が開始される。
そして、フラッシュＥＥＰＲＯＭ１３０の消去が完了すると（図４の時刻ｔ２）、データバッファリング／書き込み動作（Ｓ１３，Ｓ１４）に移行する。
【００１９】
このデータバッファリング／書き込み動作においては、書換えツール３００からネットワークを介して送られてくる更新データをＲＡＭ１４０に一時的に保存する処理（Ｓ１３：データバッファリング処理）と、ＲＡＭ１４０に保存された更新データの容量が書き込み単位に達するとフラッシュＥＥＰＲＯＭ１３０に書き込む処理（Ｓ１４：書き込み処理）とが繰り返される。
そして、更新データのＲＡＭ１４０への保存、フラッシュＥＥＰＲＯＭ１３０への書き込みを繰り返し、更新データの書き込みが完了すると（図４の時刻ｔ３）、次いで、ベリファイ（verify）動作（Ｓ１５）に移行する。
【００２０】
ベリファイ動作（Ｓ１５）は、フラッシュＥＥＰＲＯＭ１３０に書き込まれたデータに誤りがないかをチェックする動作であり、書き込みデータに誤りがなければ、書き換え動作の正常完了を履歴として保存し（図４の時刻ｔ４）、ＥＣＵ１００はリセットされる（Ｓ１６）。
また、ＥＣＵ１００は、フラッシュＥＥＰＲＯＭ１３０への更新データの書き込み処理中に、更新データについてＣＶＮ（Calibration Verification Number）を演算するよう構成されている（Ｓ１７）。
【００２１】
ＣＶＮは、ソフトウエア照合用番号として用いられる識別コードであり、プログラムコードのチェックサム値として演算される。そして、このＣＶＮを外部の診断装置などに出力することで更新データ（書き換えられた制御用プログラムや制御データ）の正当性が保証され、ＥＣＵ１００の不正改造が抑制される。
換言すれば、ＣＶＮは、フラッシュＥＥＰＲＯＭ１３０のデータ（更新内容）を保証する内容保証値であり、ＥＣＵ１００は、更新データの識別コードを演算する識別コード演算手段としての機能を備える。
【００２２】
書き換え動作においては、前述のように、ＲＡＭ１４０に一時的に保存した更新データの容量が書き込み単位に達するまでは書き込み動作は実施されず、また、ネットワーク受信のタイミングにも制約があるため、更新データのＲＡＭ１４０への保存処理中にプロセッサ１１０の空き時間（処理待ち状態）が発生する。そこで、ＥＣＵ１００は、書き込み処理中（更新データをＲＡＭ１４０に一時的に保存する処理中）の処理待ち状態で、更新データのＣＶＮを演算するよう構成されている。
【００２３】
つまり、図４及び図５に示すように、更新データのＲＡＭ１４０への保存処理中に発生する空き時間を利用して、ＣＶＮ計算動作が実行される。
なお、ＣＶＮの演算結果はフラッシュＥＥＰＲＯＭ１３０又は個別の不揮発性メモリに書き込まれる。
【００２４】
図６は、更新データのＲＡＭ１４０への保存処理及び更新データのフラッシュＥＥＰＲＯＭ１３０への書き込み処理を繰り返す書き換え動作と、ＣＶＮ計算プロセスの進行状況との相関を例示する図である。
ＣＶＮ計算動作は、書き込み単位での書き込み終了時点から次の書き込み単位での書き込み開始までの間の更新データのＲＡＭ１４０への保存処理中に空き時間を利用して実施され、書き込み単位での書き込み処理中においてＣＶＮ計算動作は実施されない。
【００２５】
したがって、更新データのＲＡＭ１４０への保存処理中に、ＣＶＮ計算プロセスが進行し、書き込み単位での書き込み処理中はＣＶＮ計算プロセスが中断される。
なお、ベリファイ動作中も空き時間（処理待ち状態）を利用してＣＶＮ計算を実施させることができる。したがって、更新データのＲＡＭ１４０への保存処理中にＣＶＮ計算を終えることができなかった場合に、残っているＣＶＮ計算をベリファイ動作中に実施させることができる。
【００２６】
また、更新データのＲＡＭ１４０への保存処理中に、書き込み単位の更新データについてのＣＶＮ計算を終えることができない場合は、書き込み動作の開始を遅らせてＣＶＮ計算を実行させることができる。
このようにして、ベリファイ動作終了までに全ての更新データについてのＣＶＮ計算を終えれば、ＥＣＵ１００がリセットされ、初期化処理（初期化モード）を経て通常モード（第２のモード）に移行したときには、直ちにＣＶＮ応答（ＣＶＮの外部への送信）を実施できる。
したがって、外部からのＣＶＮの応答要求に対し、書き換え処理後にＥＣＵ１００がリセットされてから所定時間内にＣＶＮを返信（応答）することができる。
【００２７】
例えば、図７に示すように、フラッシュＥＥＰＲＯＭ１３０の書き換え処理後にＥＣＵ１００がリセットされ、制御動作を行う通常モード（第２のモード）になってから、空き時間（処理待ち状態）を利用してＣＶＮの計算を行わせる場合には、種々の制御動作のための演算負荷が大きくＣＶＮ計算を行える空き時間を充分に確保することができず、更新データについてのＣＶＮ（プログラムコードのチェックサム値）の演算を終えるのに長い時間を要してしまう。
これに対し、書き換えに伴うリセット前の書き換え処理中（更新データのＲＡＭ１４０への保存処理中）にＣＶＮ計算を行わせれば、リセット時点でＣＶＮの演算を予め完了させておくことが可能になり、通常モードに移行した直後にＣＶＮを応答でき、フラッシュＥＥＰＲＯＭ１３０の記憶内容の保証をより確かなものとすることができる。
【００２８】
なお、ＥＣＵ１００は、ベリファイ動作終了までに更新データについてのＣＶＮ計算を終えることができない場合に、リセット後の通常モードになってからの空き時間で残るＣＶＮ計算を実行することができる。
この場合も、書き換え処理中（更新データのＲＡＭ１４０への保存処理中）にＣＶＮ計算が進んでいるから、リセット後に通常モードになってからＣＶＮ計算を終えるまでの時間を充分に短くすることができる。
【００２９】
図８は、リプログラミングタスクにおける書き換え処理及びＣＶＮ計算の流れを示すフローチャートである。
まず、ＥＣＵ１００は、ステップＳ５０１で、フラッシュＥＥＰＲＯＭ１３０の書き換え領域を消去する処理を実施し、次のステップＳ５０２では、消去処理が完了したか否かを判断する。
【００３０】
そして、ＥＣＵ１００は、消去処理が完了していない場合、ステップＳ５０１に戻って消去処理を継続させ、消去処理が完了するとステップＳ５０３に進む。
ＥＣＵ１００は、ステップＳ５０３で、書換えツール３００からネットワークを介して送られてくる更新データをＲＡＭ１４０に一時的に保存するデータバッファリング処理を実施する。
【００３１】
そして、ＥＣＵ１００は、ステップＳ５０４で、ＲＡＭ１４０に保存した更新データの容量が書き込み単位に達したか否かを判断し、書き込み単位に達していない場合は、ステップＳ５０５に進む。
ＥＣＵ１００は、ステップＳ５０５で、空き時間で更新データについてのＣＶＮの計算を実行し、ステップＳ５０３のデータバッファリング処理に戻る。
なお、ステップＳ５０５で、ＥＣＵ１００は、ＣＶＮ計算よりも書換えツール３００とのネットワーク通信（ＣＡＮ通信）が優先し、ネットワーク通信が発生するとＣＶＮ計算を中断する。
【００３２】
一方、ＥＣＵ１００は、ステップＳ５０４で、ＲＡＭ１４０に保存した更新データの容量が書き込み単位に達したと判断すると、ステップＳ５０６に進み、ＲＡＭ１４０に一時的に保存した更新データをフラッシュＥＥＰＲＯＭ１３０に書き込む処理を実施する。
そして、ＥＣＵ１００は、次のステップＳ５０７で、更新データのフラッシュＥＥＰＲＯＭ１３０への書き込みが全て終わったか否かを判断し、書き込み処理が残っている場合はステップＳ５０３のバッファリング処理に戻る。
【００３３】
つまり、ＥＣＵ１００は、データバッファリング処理と書き込み処理とを繰り返し、書き込み単位毎にフラッシュＥＥＰＲＯＭ１３０に更新データを書き込み、更新データのバッファリング処理中の空き時間でＣＶＮ計算を実行する。
更新データのフラッシュＥＥＰＲＯＭ１３０への書き込みが全て終わると、ＥＣＵ１００は、ステップＳ５０８に進み、フラッシュＥＥＰＲＯＭ１３０に書き込んだデータ（更新プログラム、更新データ）に誤りがないかをチェックする動作であるベリファイ確認を実行する。
【００３４】
ＥＣＵ１００は、次のステップＳ５０９でベリファイ確認が終了したか否かを判断し、ベリファイ確認が終了していなければステップＳ５０８に戻ってベリファイ確認を継続して実行する。
一方、ベリファイ確認が終了すると、ＥＣＵ１００は、ステップＳ５１０で、リセット処理によって初期化モードに移行する。
【００３５】
上記実施形態で説明した各技術的思想は、矛盾が生じない限りにおいて、適宜組み合わせて使用することができる。
また、好ましい実施形態を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
例えば、ＥＣＵ１００は、更新データの書き込み完了までにＣＶＮ計算が終わらず、ベリファイ中にＣＶＮ計算の残りを実行する場合、ＣＶＮ計算の完了を待ってベリファイの終了とすることができる。
【００３６】
また、更新データの識別コードは、プログラムコードのチェックサム値に限定されるものではなく、本発明は、更新データに固有のものとして演算される種々の識別コードの演算に適用できる。
【００３７】
ここで、上述した実施形態から把握し得る技術的思想について、以下に記載する。
自動車用電子制御装置は、その一態様において、電気的に記憶内容が書き換え可能であるとともに制御用プログラムが格納される不揮発性メモリと、揮発性メモリと、プログラム処理を実行するプロセッサと、を備え、
前記不揮発性メモリに格納される制御用プログラムを書き換える処理として、更新データを前記揮発性メモリに一時的に保存するバッファリング処理を含み、
前記バッファリング処理中に前記更新データの識別コードを演算する、
自動車用電子制御装置。
【符号の説明】
【００３８】
１００…自動車用電子制御装置（ＥＣＵ）、１１０…プロセッサ、１３０…フラッシュＥＥＰＲＯＭ（不揮発性メモリ）、１４０…ＲＡＭ（揮発性メモリ）、３００…書換えツール
【図１】
2019016086.tif 000003
【図２】
2019016086.tif 000004
【図３】
2019016086.tif 000005
【図４】
2019016086.tif 000006
【図５】
2019016086.tif 000007
【図６】
2019016086.tif 000008
【図７】
2019016086.tif 000009
【図８】
2019016086.tif 000010