JP5835271B2 - 電子制御装置およびメモリ書換方法 - Google Patents

電子制御装置およびメモリ書換方法 Download PDF

Info

Publication number
JP5835271B2
JP5835271B2 JP2013113144A JP2013113144A JP5835271B2 JP 5835271 B2 JP5835271 B2 JP 5835271B2 JP 2013113144 A JP2013113144 A JP 2013113144A JP 2013113144 A JP2013113144 A JP 2013113144A JP 5835271 B2 JP5835271 B2 JP 5835271B2
Authority
JP
Japan
Prior art keywords
verification
rewrite
data
reception
rewriting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013113144A
Other languages
English (en)
Other versions
JP2014232437A (ja
Inventor
憲治 坪井
憲治 坪井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2013113144A priority Critical patent/JP5835271B2/ja
Priority to DE102014210266.9A priority patent/DE102014210266A1/de
Publication of JP2014232437A publication Critical patent/JP2014232437A/ja
Application granted granted Critical
Publication of JP5835271B2 publication Critical patent/JP5835271B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、所定の制御対象の制御に用いる制御プログラムを書き換え可能な電子制御装置およびメモリ書換方法に関する。
従来、記憶内容の書き換えが可能な不揮発性メモリに制御プログラムを記憶する電子制御装置において、制御プログラムの書き換えに要する時間を短縮するために、書換データを外部から受信する受信処理と、受信した書換データを不揮発性メモリに書き込むことにより制御プログラムを書き換える書換処理とを並行に実行するものが知られている(例えば、特許文献1を参照)。
このように制御プログラムの書き換えが可能な電子制御装置では、受信した書換データと不揮発性メモリに書き込まれたデータとの一致を確認するベリファイ(Verification)が実行される。しかし、このベリファイでは、受信した書換データが電子制御装置にとって適切なものであるか否かを判断できない。このため、例えば、受信した書換データが第三者によって不正に書き換えられたものであっても、ベリファイにおいて上記の一致が確認されると、不正な書換データが不揮発性メモリに書き込まれてしまう。
このような問題を解決するための手法として、書き換えたデータの妥当性を確認するバリデート(Validation)が知られている。バリデートでは、例えば、検証すべきデータについて演算を実行したり外部機器との認証を実行したりして、電子制御装置にとって適した書換データであるか否かを判断する。
特開2000−20389号公報
しかし、バリデートを実行することにより、制御プログラムの書き換えに要する時間がバリデートの実行分長くなるという問題があった。
本発明は、こうした問題に鑑みてなされたものであり、制御プログラムの書き換えに要する時間を短縮することを目的とする。
上記目的を達成するためになされた第1発明の電子制御装置は、不揮発性メモリと、受信処理実行手段と、書換処理実行手段と、検証処理実行手段とを備える。
不揮発性メモリは、記憶内容の書き換えが可能であり、所定の制御対象を制御するための制御プログラムを記憶する。
そして第1発明の電子制御装置では、まず受信処理実行手段が、不揮発性メモリに記憶された制御プログラムの内容を書き換えるためのデータである書換データを外部から受信する受信処理を実行する。そして書換処理実行手段が、受信処理により受信した書換データを不揮発性メモリに書き込むことにより、不揮発性メモリに記憶された制御プログラムの内容を書き換える書換処理を実行する。また検証処理実行手段が、受信処理において書換データの受信を待っている状態であるか否か、および書換処理において不揮発性メモリへの書換データの書き込み終了を待っている状態であるか否かの少なくとも一方を条件として含むように予め設定された検証実行条件が成立した場合に、不揮発性メモリに書き込まれる書換データが適正なものであるか否かを検証する検証処理を実行する。
このように構成された電子制御装置によれば、受信処理において書換データの受信を待っている状態、または、書換処理において不揮発性メモリへの書換データの書き込み終了を待っている状態である場合に、検証処理を実行することができる。このため、受信処理の実行中であっても、書換データの受信を待っている状態であれば、検証処理を実行することができるとともに、書換処理の実行中であっても、不揮発性メモリへの書換データの書き込み終了を待っている状態であれば、検証処理を実行することができる。すなわち、制御プログラムを書き換えるために実行される受信処理または書換処理と並行して検証処理を実行することができる。
これにより、書き換え対象となる制御プログラム全体の書き込みが終了する前から検証処理を実行することができるため(すなわち、制御プログラム全体の書き込みが終了した後に検証処理を実行する必要がなくなるため)、制御プログラムの書き換えを開始してから検証処理が終了するまでの時間、すなわち制御プログラムの書き換えに要する時間を短縮することができる。
また第2発明のメモリ書換方法は、受信処理実行手順と、書換処理実行手順と、検証処理実行手順とを備える。
そして第2発明のメモリ書換方法では、まず受信処理実行手順が、記憶内容の書き換えが可能であり所定の制御対象を制御するための制御プログラムを記憶する不揮発性メモリに記憶された制御プログラムの内容を書き換えるためのデータである書換データを受信する受信処理を実行する。そして書換処理実行手順が、受信処理により受信した書換データを不揮発性メモリに書き込むことにより、不揮発性メモリに記憶された制御プログラムの内容を書き換える書換処理を実行する。また検証処理実行手順が、受信処理において書換データの受信を待っている状態であるか否か、および書換処理において不揮発性メモリへの書換データの書き込み終了を待っている状態であるか否かの少なくとも一方を条件として含むように予め設定された検証実行条件が成立した場合に、不揮発性メモリに書き込まれる書換データが適正なものであるか否かを検証する検証処理を実行する。
第2発明のメモリ書換方法は、第1発明の電子制御装置にて実行される方法であり、当該方法を実行することで、第1発明の電子制御装置と同様の効果を得ることができる。
第1実施形態のECU1の構成を示すブロック図である。 受信バッファ11と書換バッファ12の構成を示す図である。 制御プログラム実行処理を示すフローチャートである。 書換プログラム実行処理を示すフローチャートである。 受信格納処理を示すフローチャートである。 第1実施形態の書換実行処理を示すフローチャートである。 第1実施形態の検証実行処理を示すフローチャートである。 第1実施形態の受信処理と書換処理と検証処理の動作を示すタイミングチャートである。 第2実施形態のECU1の構成を示すブロック図である。 フラッシュROM3と検証バッファ13の構成を示す図である。 第2実施形態の書換実行処理を示すフローチャートである。 第2実施形態の検証実行処理を示すフローチャートである。 第2実施形態の受信処理と書換処理と検証処理の動作を示すタイミングチャートである。 書込起動前後の受信処理と書換処理と検証処理の動作を示すタイミングチャートである。 ROM用検証ポインタPT21を説明する図である。 第3実施形態の書換実行処理を示すフローチャートである。 第3実施形態の検証実行処理を示すフローチャートである。 第3実施形態の受信処理と書換処理と検証処理の動作を示すタイミングチャートである。 別の実施形態の受信処理と書換処理と検証処理の動作を示すタイミングチャートである。
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
本実施形態の電子制御装置(Electronic Control Unit)1(以下、ECU1という)は、車両に搭載され、図1に示すように、車両のエンジンEGの制御を行う。
ECU1は、CPU(中央演算装置)2、フラッシュROM3、RAM4、入出力回路5および通信回路6と、これらを相互に接続するバス7とを備える。
フラッシュROM3は、データ書き換え可能な不揮発性メモリであり、CPU2が実行するプログラムと、プログラムの実行時に参照されるデータを記憶する。
RAM4は、揮発性メモリであり、CPU2の演算結果等を一時的に記憶する。またRAM4には、受信バッファ11と書換バッファ12が設けられている。受信バッファ11は、フラッシュROM3に記憶されるプログラムの書き換え等を行うためのプログラム書換装置RPから受信したデータを一時的に記憶するための記憶領域である。書換バッファ12は、フラッシュROM3に書き込むデータを一時的に記憶するための記憶領域である。
CPU2は、エンジンEGを制御するための情報として、吸気管圧力センサ、エンジン回転数センサ、エンジン水温センサ、排気系の酸素センサ(空燃比センサ)、車速センサおよびイグニッションスイッチ等から各種信号を入出力回路5を介して入力する。なお、図1に示すエンジンEGは、エンジン本体を含め、吸気系、排気系等、エンジンに関連する系を総称して示すものであって、本実施形態では詳細な説明を省略する。
そしてCPU2は、フラッシュROM3に記憶されたプログラムに基づいて各種処理を実行する。またCPU2は、入出力回路5を介して入力される各種信号に基づいて制御演算を行い、その演算結果に基づき、点火装置およびインジェクタ等の電気負荷へ入出力回路5を介して駆動信号を出力することにより、エンジンEGの制御に関係する電気負荷を制御する。例えばCPU2は、インジェクタの開弁タイミングおよび開弁時間を演算し、その演算結果に基づいて、インジェクタを駆動するための駆動信号を出力することにより、エンジンEGへの燃料噴射を制御する。
また通信回路6は、例えばCAN(Controller Area Network)通信プロトコルに従い通信バスBSを介して他のECU(不図示)との間でメッセージを交換することにより、制御対象機器の制御に必要なデータを送受信する。また通信回路6には、フラッシュROM3に記憶されるプログラムの書き換え等を行うためのプログラム書換装置RPが、通信バスBSを介して接続される。このプログラム書換装置RPは、例えば、コネクタ(不図示)を介して着脱可能になっており、プログラムの書き換え時等にECU1に接続される。なおプログラム書換装置RPは、マイコンおよび表示装置を備えたハンディタイプの装置または小型のパソコン等である。
また、RAM4の受信バッファ11は、図2に示すように、リングバッファ構造で形成されている。このため、プログラム書換装置RPから受信した受信データは、受信した順に、受信バッファ11の先頭アドレスから順次書き込まれる。そして、受信バッファ11の最後尾アドレスに受信データが書き込まれると、次の受信データは先頭アドレスに書き込まれる(矢印AL1を参照)。
また、受信データを受信バッファ11に書き込むときに、この受信データが書き込まれる記憶領域のアドレスを指示する受信用書込ポインタPT1が設けられている。また、受信バッファ11に格納されているデータを読み出して、書換バッファ12に書き込むときに、読み出すデータが格納されている記憶領域のアドレスを指示する受信用読出ポインタPT2が設けられている。図2では、受信バッファ11からデータRD1を読み出して書換バッファ12に書き込む(矢印AL2を参照)ことにより、受信用読出ポインタPT2の指示値がデータRD1のデータ量分変化したことを示している(矢印AL3を参照)。
また、RAM4の書換バッファ12はリングバッファ構造で形成されている。このため、受信バッファ11から読み出された読出データは、読み出された順に、書換バッファ12の先頭アドレスから順次書き込まれる。そして、書換バッファ12の最後尾アドレスに読出データが書き込まれると、次の読出データは先頭アドレスに書き込まれる(矢印AL4を参照)。
また、読出データを書換バッファ12に書き込むときに、この読出データが書き込まれる記憶領域のアドレスを指示する書換用書込ポインタPT3が設けられている。図2では、受信バッファ11からデータRD1を読み出して書換バッファ12に書き込む(矢印AL2を参照)ことにより、書換用書込ポインタPT3の指示値がデータRD1のデータ量分変化したことを示している(矢印AL5を参照)。
また、書換バッファ12に格納されているデータをフラッシュROM3に書き込むときに、フラッシュROM3に書き込むために書換バッファ12から読み出すデータが格納されている記憶領域のアドレスを指示する書換用読出ポインタPT4が設けられている。
また、書換バッファ12に格納されているデータを検証(バリデート)するときに、検証するデータが格納されている記憶領域のアドレスを指示する書換用検証ポインタPT5が設けられている。
このように構成されたECU1において、CPU2は、後述する制御プログラム実行処理、書換プログラム実行処理、受信格納処理、書換実行処理および検証実行処理を実行する。
まず、CPU2が実行する制御プログラム実行処理の手順を説明する。制御プログラム実行処理は、ECU1が起動した直後に1回のみ実行される処理である。
この制御プログラム実行処理が実行されると、CPU2は、図3に示すように、まずS10にて、フラッシュROM3に制御プログラムが既に書き込まれているか否かを判断する。ここで、制御プログラムが書き込まれていない場合には(S10:NO)、S10の処理を繰り返すことにより、フラッシュROM3に制御プログラムが書き込まれるまで待機する。なお、この制御プログラムは、エンジンEGを制御するためのプログラムである。
一方、制御プログラムが既に書き込まれている場合には(S10:YES)、S20にて、検証(バリデート(validate))の結果に基づいて、フラッシュROM3に書き込まれている制御プログラムが適正なものであるか否かを判断する。ここで、書き込まれている制御プログラムが適正なものでない場合には(S20:NO)、S10に移行し、上述の処理を繰り返す。
一方、書き込まれている制御プログラムが適正なものである場合には(S20:YES)、S30にて、フラッシュROM3に書き込まれている制御プログラムの実行を開始し、制御プログラム実行処理を終了する。
次に、CPU2が実行する書換プログラム実行処理の手順を説明する。書換プログラム実行処理は、ECU1が起動した直後に1回のみ実行される処理である。
この書換プログラム実行処理が実行されると、CPU2は、図4に示すように、まずS110にて、通信回路6を介してプログラム書換装置RPからプログラム書換要求を受信したか否かを判断する。ここで、プログラム書換要求を受信していない場合には(S110:NO)、S110の処理を繰り返すことにより、プログラム書換要求を受信するまで待機する。
一方、プログラム書換要求を受信した場合には(S110:YES)、S120にて、制御プログラムを書き換えるための書換プログラムを通信回路6を介してプログラム書換装置RPから取得する。そしてS130にて、取得した書換プログラムの実行を開始し、書換プログラム実行処理を終了する。
次に、CPU2が実行する受信格納処理の手順を説明する。受信格納処理は、書換プログラム内に記述されている処理であり、書換プログラムの実行が開始されると処理を開始し、制御プログラムの書き換えが終了すると、処理を終了する。
この受信格納処理が実行されると、CPU2は、図5に示すように、まずS210にて、書換処理(S320の処理)を実行中であるか否かを判断する。ここで、制御プログラムの書き換えを実行していない場合には(S210:NO)、S230に移行する。一方、書換処理を実行中である場合には(S210:YES)、S220にて、データ書き込みの終了を待っている状態(以下、書込終了待ち状態という)であるか否かを判断する。なお書込終了待ち状態とは、CPU2がフラッシュROM3に対して書き込みの指示を送信し、その後にフラッシュROM3からの書き込み終了の通知をCPU2が待っている状態をいう。
ここで、書込終了待ち状態でない場合には(S220:NO)、S210に移行し、上述の処理を繰り返す。一方、書込終了待ち状態である場合には(S220:YES)、S230に移行する。
そしてS230に移行すると、今回のプログラム書換要求で書き換えられる新しい制御プログラムを示すデータをプログラム書換装置RPから通信回路6を介して受信する処理(以下、受信処理という)を実行する。
そしてS240にて、S230での受信処理により、プログラム書換装置RPから新たにデータを受信したか否かを判断する。ここで、新たにデータを受信していない場合には(S240:NO)、S210に移行し、上述の処理を繰り返す。
一方、新たにデータを受信した場合には(S240:YES)、S250にて、受信したデータを、受信して順に受信バッファ11に格納する。さらにS260にて、受信用書込ポインタPT1を更新する。具体的には、S250で受信バッファ11に格納したデータ量分、受信用書込ポインタPT1の指示値を変化させる。
そしてS270にて、受信バッファ11に格納されているデータのうち書換バッファ12に格納されていないものを、受信バッファ11から読み出して、書換バッファ12に格納する。さらにS280にて、受信用読出ポインタPT2と書換用書込ポインタPT3を更新する。具体的には、S270で書換バッファ12に格納したデータ量分、受信用読出ポインタPT2と書換用書込ポインタPT3の指示値を変化させる。
その後S290にて、今回のプログラム書換要求で書き換えるべき制御プログラムに関する全ての書き換えが終了したか否かを判断する。ここで、全ての書き換えが終了していない場合には(S290:NO)、S210に移行し、上述の処理を繰り返す。一方、全ての書き換えが終了していない場合には(S290:NO)、受信格納処理を終了する。
次に、CPU2が実行する書換実行処理の手順を説明する。書換実行処理は、書換プログラム内に記述されている処理であり、書換プログラムの実行が開始されると処理を開始し、制御プログラムの書き換えが終了すると、処理を終了する。
この書換実行処理が実行されると、CPU2は、図6に示すように、まずS310にて、書換バッファ12に格納されているデータのうちフラッシュROM3に書き込まれていないものがあるか否かを判断する。具体的には、書換用書込ポインタPT3の指示値と書換用読出ポインタPT4の指示値が互いに一致してない場合に、フラッシュROM3に書き込まれていないデータがあると判断する。
ここで、フラッシュROM3に書き込まれていないデータ(以下、未書込データという)がない場合には(S310:NO)、S310の処理を繰り返すことにより、未書込データが書換バッファ12に格納されるまで待機する。
一方、未書込データがある場合には(S310:YES)、S320にて、未書込データを書換バッファ12から読み出し、読み出したデータをフラッシュROM3に書き込むことにより、制御プログラムを書き換える書換処理を実行する。
その後S330にて、S320で書き込んだデータのベリファイ(verify)を実行する。具体的には、書換バッファ12から読み出したデータと、フラッシュROM3に書き込まれたデータが互いに一致しているか否かを確認する。
そしてS340にて、S330でのベリファイの結果に基づいて、書換バッファ12から読み出したデータと、フラッシュROM3に書き込まれたデータが互いに一致しているかを判断する。ここで、両データが一致していない場合には(S340:NO)、S320に移行し、上述の処理を繰り返す。
一方、両データが一致している場合には(S340:YES)、S350にて、書換用読出ポインタPT4を更新する。具体的には、S320で書換バッファ12から読み出したデータ量分、書換用読出ポインタPT4の指示値を変化させる。
その後S360にて、今回のプログラム書換要求で書き換えるべき制御プログラムに関する全ての書き換えが終了したか否かを判断する。ここで、全ての書き換えが終了していない場合には(S360:NO)、S310に移行し、上述の処理を繰り返す。一方、全ての書き換えが終了した場合には(S360:YES)、書換実行処理を終了する。
次に、CPU2が実行する検証実行処理の手順を説明する。検証実行処理は、書換プログラム内に記述されている処理であり、書換プログラムの実行が開始されると処理を開始し、制御プログラムの書き換えが終了すると、処理を終了する。
この検証実行処理が実行されると、CPU2は、図7に示すように、まずS410にて、書換処理(S320の処理)を実行中であるか否かを判断する。ここで、書換処理を実行していない場合には(S410:NO)、S430に移行する。一方、書換処理を実行中である場合には(S410:YES)、S420にて、書込終了待ち状態であるか否かを判断する。
ここで、書込終了待ち状態でない場合には(S420:NO)、S410に移行し、上述の処理を繰り返す。一方、書込終了待ち状態である場合には(S420:YES)、S430に移行する。
そしてS430に移行すると、受信処理(S230の処理)を実行中であるか否かを判断する。ここで、受信処理を実行していない場合には(S430:NO)、S450に移行する。一方、受信処理を実行中である場合には(S430:YES)、S440にて、プログラム書換装置RPからのデータの受信を待っている状態(以下、受信待ち状態という)であるか否かを判断する。なお受信待ち状態とは、例えば、受信処理の実行中において、メッセージの受信を完了してから次のメッセージの受信が開始されるまでCPU2が待っている状態をいう。
ここで、受信待ち状態でない場合には(S440:NO)、S410に移行し、上述の処理を繰り返す。一方、受信待ち状態である場合には(S440:YES)、S450に移行する。
そしてS450に移行すると、書換バッファ12に格納されているデータのうち検証(バリデート)が行われていないものがあるか否かを判断する。具体的には、書換用書込ポインタPT3の指示値と書換用検証ポインタPT5の指示値が互いに一致してない場合に、検証(バリデート)が行われていないデータがあると判断する。
ここで、検証が行われていないデータ(以下、未検証データという)がない場合には(S450:NO)、S410に移行し、上述の処理を繰り返す。
一方、未検証データがある場合には(S450:YES)、S460にて、検証処理を実行する。具体的には、まず、書換バッファ12に格納されているデータのうち、書換用検証ポインタPT5が指示するアドレスから予め設定された検証単位分のアドレスまでのデータを読み出す。そして、読み出したデータについて、例えばサム計算またはCRC計算などの認証用演算を実行し、この演算値と、読み出したデータに対してプログラム書換装置RP側で予め付与された検証用データの値とを比較し、両者が一致している場合に、読み出したデータが適正であると判断するとともに、両者が不一致である場合に、読み出したデータが不適正であると判断する。
そしてS470にて、書換用検証ポインタPT5を更新する。具体的には、S460で検証(バリデート)を実行したデータ量分、書換用検証ポインタPT5の指示値を変化させる。
その後S480にて、今回のプログラム書換要求で書き換えるべき制御プログラムに関する全ての検証(バリデート)が終了したか否かを判断する。ここで、全ての検証が終了していない場合には(S480:NO)、S410に移行し、上述の処理を繰り返す。一方、全ての検証が終了した場合には(S480:YES)、検証実行処理を終了する。
このように構成されたECU1では、まず、フラッシュROM3に記憶された制御プログラムの内容を書き換えるための書換データを外部から受信する受信処理を実行する(S230)。そして、受信処理により受信した書換データをフラッシュROM3に書き込むことにより、フラッシュROM3に記憶された制御プログラムの内容を書き換える書換処理を実行する(S320)。また、受信処理が実行されていない状態(S430:NO)または受信処理において書換データの受信を待っている状態(S440:YES)であることと、書換処理が実行されていない状態(S410:NO)または書換処理において不揮発性メモリへの書換データの書き込み終了を待っている状態(S420:YES)であることの両方が成り立っている場合に、不揮発性メモリに書き込まれる書換データが適正なものであるか否かを検証する検証処理を実行する(S460)。
このため、受信処理の実行中であっても、書換データの受信を待っている状態であれば、検証処理を実行することができるとともに、書換処理の実行中であっても、不揮発性メモリへの書換データの書き込み終了を待っている状態であれば、検証処理を実行することができる。すなわち、例えば図8に示すように、制御プログラムを書き換えるために実行される受信処理または書換処理と並行して検証処理を実行することができる。
図8では、受信処理RP01,RP02,RP03,・・・・,RP14が順次実行されており、まず受信処理RP01の実行中に、書換処理WP01と検証処理VP01が開始される(時刻t01を参照)。書換処理WP01は、受信処理RP01で受信したデータを書き込む。検証処理VP01は、書換処理WP01で書き込むデータを検証する。これにより、受信処理RP01,RP02,RP03と書換処理WP01と検証処理VP01とが並行に実行される。
また、受信処理RP04の開始前に、書換処理WP02が開始され(時刻t02を参照)、その後に検証処理VP02が開始される。書換処理WP02は、受信処理RP02,RP03で受信したデータを書き込む。検証処理VP02は、書換処理WP02で書き込むデータを検証する。これにより、受信処理RP04,RP05,RP06と書換処理WP02と検証処理VP02とが並行に実行される。
また、受信処理RP07の開始前に、書換処理WP03が開始され(時刻t03を参照)、その後に検証処理VP03が開始される。書換処理WP03は、受信処理RP04,RP05,RP06で受信したデータを書き込む。検証処理VP03は、書換処理WP03で書き込むデータを検証する。これにより、受信処理RP07,RP08,RP09,RP10と書換処理WP03と検証処理VP03とが並行に実行される。
また、受信処理RP11の開始前に、書換処理WP04が開始され(時刻t04を参照)、その後に検証処理VP04が開始される。書換処理WP04は、受信処理RP07,RP08,RP09,RP10で受信したデータを書き込む。検証処理VP04は、書換処理WP04で書き込むデータを検証する。これにより、受信処理RP11,RP12,RP13,RP14と書換処理WP04と検証処理VP04とが並行に実行される。
これにより、書き換え対象となる制御プログラム全体の書き込みが終了する前から検証処理を実行することができるため(すなわち、制御プログラム全体の書き込みが終了した後に検証処理を実行する必要がなくなるため)、制御プログラムの書き換えを開始してから検証処理が終了するまでの時間、すなわち制御プログラムの書き換えに要する時間を短縮することができる。
またECU1は、書換処理によりフラッシュROM3に書き込む書換データを、フラッシュROM3に書き込む前に一時的に記憶する書換バッファ12を備え、書換バッファ12に記憶されている書換データに対して検証処理を実行する。
これにより、フラッシュROM3に書き込む書換データの検証を、フラッシュROM3からデータを読み出すことなく行うことができる。なお、書換処理の実行中にはフラッシュROM3からデータを読み出すことができない。しかし、フラッシュROM3ではなく書換バッファ12に記憶されている書換データに対して検証処理を実行することができるため、書換処理の実行中であっても、不揮発性メモリへの書換データの書き込み終了を待っている状態であれば、検証処理を実行することができる。
また書換バッファ12は、リングバッファ構造で形成されている。すなわち、書換バッファ12の最後尾アドレスに書換データが書き込まれると、次の書換データは書換バッファ12の先頭アドレスに書き込まれる。このため、書換バッファ12に書き込まれている書換データに対する検証が全て終了していない状態で、新たに書換バッファ12に書き込まれる場合には、未検証の書換データを先頭アドレスに移動させる必要がなくなる。一方、書換バッファ12がリングバッファ構造でない場合には、最後尾アドレスに書換データが書き込まれるとデータをそれ以上書き込めなくなるため、データを書き込む領域を確保するために、未検証の書換データを先頭アドレスに移動させる必要がある。
以上説明した実施形態において、フラッシュROM3は本発明における不揮発性メモリ、S230の処理は本発明における受信処理実行手段および受信処理実行手順、S320の処理は本発明における書換処理実行手段および書換処理実行手順、S460の処理は本発明における検証処理実行手段および検証処理実行手順である。
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分を説明する。
第2実施形態のECU1は、ECU1の構成と書換実行処理と検証処理が変更された点以外は第1実施形態と同じである。
まずECU1の構成は、図9に示すように、RAM4に検証バッファ13が更に設けられている点以外は第1実施形態と同じである。
検証バッファ13は、図10に示すように、リングバッファ構造で形成されている。このため、フラッシュROM3から読み出された読出データは、読み出された順に検証バッファ13の先頭アドレスから順次書き込まれる。そして、検証バッファ13の最後尾アドレスに読出データが書き込まれると、次の読出データは先頭アドレスに書き込まれる(矢印AL11を参照)。
また、フラッシュROM3に書き込まれているデータを読み出して検証バッファ13に書き込むときに、読み出すデータが格納されている記憶領域のアドレスを指示するROM用読出ポインタPT11が設けられている。図11では、フラッシュROM3からデータRD11を読み出して検証バッファ13に書き込む(矢印AL12を参照)ことにより、ROM用読出ポインタPT11の指示値がデータRD11のデータ量分変化したことを示している(矢印AL13を参照)。
また、データをフラッシュROM3に書き込むときに、このデータが書き込まれる記憶領域のアドレスを指示するROM用書込ポインタPT12が設けられている。
また、読出データを検証バッファ13に書き込むときに、この読出データが書き込まれる記憶領域のアドレスを指示する検証用書込ポインタPT13が設けられている。図10では、フラッシュROM3からデータRD11を読み出して検証バッファ13に書き込む(矢印AL12を参照)ことにより、検証用書込ポインタPT13の指示値がデータRD1のデータ量分変化したことを示している(矢印AL14を参照)。
また、検証バッファ13に格納されているデータを検証(バリデート)するときに、検証するデータが格納されている記憶領域のアドレスを指示する検証用検証ポインタPT14が設けられている。
次に、第2実施形態の書換実行処理を説明する。第2実施形態の書換実行処理は、図11に示すように、S303とS306とS342とS345とS355の処理が追加された点と、S350の処理が省略された点以外は第1実施形態と同じである。
すなわち、この書換実行処理が実行されると、CPU2は、まずS303にて、今回のプログラム書換要求で書き換えるべき制御プログラムとは別に既にフラッシュROM3に書き込まれている制御プログラムのうち検証が行われていないデータを、フラッシュROM3から読み出して、検証バッファ13に格納する。
そしてS306にて、ROM用読出ポインタPT11と検証用書込ポインタPT13と検証用検証ポインタPT14を更新する。具体的には、ROM用読出ポインタPT11を、今回のプログラム書換要求で書き換えるべき制御プログラムが書き込まれる記憶領域の先頭アドレスに設定する。また検証用書込ポインタPT13を、S303で検証バッファ13に格納されたデータの最後尾アドレスの次のアドレスに設定する。また検証用検証ポインタPT14を、S303で検証バッファ13に格納されたデータの先頭アドレスに設定する。そしてS306の処理が終了すると、S310に移行する。
またS340にて、書換バッファ12から読み出したデータと、フラッシュROM3に書き込まれたデータが互いに一致している場合に(S340:YES)、S342にて、ROM用書込ポインタPT12を更新する。具体的には、S320でフラッシュROM3に書き込んだデータ量分、ROM用書込ポインタPT12の指示値を変化させる。
そしてS345にて、フラッシュROM3に書き込まれたデータのうち検証バッファ13に格納されていないもの、すなわち、ROM用読出ポインタPT11が示すアドレスと、ROM用書込ポインタPT12が示すアドレスの間に書き込まれているデータを、フラッシュROM3から読み出して、検証バッファ13に格納する。さらにS355にて、ROM用読出ポインタPT11と検証用書込ポインタPT13を更新する。具体的には、S345で検証バッファ13に格納したデータ量分、ROM用読出ポインタPT11と検証用書込ポインタPT13の指示値を変化させる。そしてS355の処理が終了すると、S360に移行する。
次に、第2実施形態の検証実行処理を説明する。
この検証実行処理が実行されると、CPU2は、図12に示すように、まずS510にて、書換処理(S320の処理)を実行中であるか否かを判断する。ここで、書換処理を実行していない場合には(S510:NO)、S530に移行する。一方、書換処理を実行中である場合には(S510:YES)、S520にて、書込終了待ち状態であるか否かを判断する。
ここで、書込終了待ち状態でない場合には(S520:NO)、S510に移行し、上述の処理を繰り返す。一方、書込終了待ち状態である場合には(S520:YES)、S530に移行する。
そしてS530に移行すると、受信処理(S230の処理)を実行中であるか否かを判断する。ここで、受信処理を実行していない場合には(S530:NO)、S550に移行する。一方、受信処理を実行中である場合には(S530:YES)、S540にて、プログラム書換装置RPからのデータの受信を待っている状態(以下、受信待ち状態という)であるか否かを判断する。
ここで、受信待ち状態でない場合には(S540:NO)、S510に移行し、上述の処理を繰り返す。一方、受信待ち状態である場合には(S540:YES)、S550に移行する。
そしてS450に移行すると、検証バッファ13に格納されているデータのうち検証(バリデート)が行われていないものがあるか否かを判断する。具体的には、検証用書込ポインタPT13の指示値と検証用検証ポインタPT14の指示値が互いに一致してない場合に、検証(バリデート)が行われていないデータがあると判断する。
ここで、検証が行われていないデータ(以下、未検証データという)がない場合には(S550:NO)S510に移行し、上述の処理を繰り返す。
一方、未検証データがある場合には(S550:YES)、S560にて、検証処理を実行する。具体的には、まず、検証バッファ13に格納されているデータのうち、検証用検証ポインタPT14が指示するアドレスから予め設定された検証単位分のアドレスまでのデータを読み出す。そして、読み出したデータについて、例えばサム計算またはCRC計算などの認証用演算を実行し、この演算値と、読み出したデータに対してプログラム書換装置RP側で予め付与された検証用データの値とを比較し、両者が一致している場合に、読み出したデータが適正であると判断するとともに、両者が不一致である場合に、読み出したデータが不適正であると判断する。
そしてS570にて、検証用検証ポインタPT14を更新する。具体的には、S560で検証(バリデート)を実行したデータ量分、検証用検証ポインタPT14の指示値を変化させる。
その後S580にて、今回のプログラム書換要求で書き換えるべき制御プログラムに関する全ての検証(バリデート)が終了したか否かを判断する。ここで、全ての検証が終了していない場合には(S580:NO)、S510に移行し、上述の処理を繰り返す。一方、全ての検証が終了した場合には(S580:YES)、検証実行処理を終了する。
このように構成されたECU1では、まず、フラッシュROM3に記憶された制御プログラムの内容を書き換えるための書換データを外部から受信する受信処理を実行する(S230)。そして、受信処理により受信した書換データをフラッシュROM3に書き込むことにより、フラッシュROM3に記憶された制御プログラムの内容を書き換える書換処理を実行する(S320)。また、受信処理が実行されていない状態(S530:NO)または受信処理において書換データの受信を待っている状態(S540:YES)であることと、書換処理が実行されていない状態(S510:NO)または書換処理において不揮発性メモリへの書換データの書き込み終了を待っている状態(S520:YES)であることの両方が成り立っている場合に、不揮発性メモリに書き込まれる書換データが適正なものであるか否かを検証する検証処理を実行する(S560)。
このため、受信処理の実行中であっても、書換データの受信を待っている状態であれば、検証処理を実行することができるとともに、書換処理の実行中であっても、不揮発性メモリへの書換データの書き込み終了を待っている状態であれば、検証処理を実行することができる。すなわち、例えば図13および図14に示すように、制御プログラムを書き換えるために実行される受信処理または書換処理と並行して検証処理を実行することができる。これにより、第1実施形態と同様に、制御プログラムの書き換えに要する時間を短縮することができる。
図13では、受信処理RP01,RP02,RP03,・・・・,RP14が順次実行されており、受信処理RP01の開始前に検証処理VP11が開始される(時刻t11を参照)。そして受信処理RP01の実行中に、書換処理WP11が開始される(時刻t12を参照)。書換処理WP11は、受信処理RP01で受信したデータを書き込む。検証処理VP11は、書換処理WP11の前にフラッシュROM3に書き込まれたデータ(例えば、部分書換により書き込まれたデータ)を検証する。これにより、受信処理RP01,RP02,RP03と書換処理WP11と検証処理VP11とが並行に実行される。
また、受信処理RP04の開始前に、書換処理WP12が開始され(時刻t13を参照)、その後に検証処理VP12が開始される。書換処理WP12は、受信処理RP02,RP03で受信したデータを書き込む。検証処理VP12は、書換処理WP11,WP12で書き込むデータを検証する。これにより、受信処理RP04,RP05,RP06と書換処理WP12と検証処理VP11,VP12とが並行に実行される。
また、受信処理RP07の開始前に、書換処理WP13が開始され(時刻t14を参照)、その後に検証処理VP13が開始される。書換処理WP13は、受信処理RP04,RP05,RP06で受信したデータを書き込む。検証処理VP13は、書換処理WP13で書き込むデータを検証する。これにより、受信処理RP07,RP08,RP09,RP10と書換処理WP13と検証処理VP12,VP13とが並行に実行される。
また、受信処理RP11の開始前に、書換処理WP14が開始され(時刻t15を参照)、その後に検証処理VP14が開始される。書換処理WP14は、受信処理RP07,RP08,RP09,RP10で受信したデータを書き込む。検証処理VP14は、書換処理WP14で書き込むデータを検証する。これにより、受信処理RP11,RP12,RP13,RP14と書換処理WP14と検証処理VP13,VP14とが並行に実行される。
また図14では、書込起動WP21の前に、受信処理RP21と検証処理VP21とが並行に実行されるとともに、書込起動WP21の後に、受信処理RP22と書換処理WP22と検証処理VP22とが並行に実行されることを示している。
またECU1は、フラッシュROM3に書き込まれた書換データを一時的に記憶する検証バッファ13を備え、検証バッファ13に記憶されている書換データに対して検証処理を実行する。
これにより、フラッシュROM3に書き込む書換データの検証を、フラッシュROM3からデータを読み出すことなく行うことができる。このため、第1実施形態と同様に、書換処理の実行中であっても、不揮発性メモリへの書換データの書き込み終了を待っている状態であれば、検証処理を実行することができる。
また、今回のプログラム書換要求を受信した時点で、前回のプログラム書換要求に基づく書換処理によりフラッシュROM3に書き込まれた書換データが未検証のまま検証バッファ13に残っている場合には、今回のプログラム書換要求のプログラム書換要求に基づく書換処理と並行して、前回のプログラム書換要求に基づく書換処理による書換データの検証を継続することができる。
また検証バッファ13は、リングバッファ構造で形成されている。このため、第1実施形態と同様に、検証バッファ13に書き込まれている書換データに対する検証が全て終了していない状態で、新たに検証バッファ13に書き込まれる場合には、未検証の書換データを先頭アドレスに移動させる必要がなくなる。
以上説明した実施形態において、S560の処理は本発明における検証処理実行手段および検証処理実行手順である。
(第3実施形態)
以下に本発明の第3実施形態を図面とともに説明する。なお第3実施形態では、第1実施形態と異なる部分を説明する。
第3実施形態のECU1は、ECU1の構成と書換実行処理と検証実行処理が変更された点以外は第1実施形態と同じである。
まずECU1の構成は、書換用検証ポインタPT5が省略されている点と、図15に示すように、フラッシュROM3に書き込まれているデータを検証(バリデート)するときに、検証するデータが書き込まれている記憶領域のアドレスを指示するROM用検証ポインタPT21が設けられている点以外は第1実施形態と同じである。
次に、第3実施形態の書換実行処理を説明する。第3実施形態の書換実行処理は、図16に示すように、S308の処理が追加された点以外は第1実施形態と同じである。
すなわち、この書換実行処理が実行されると、CPU2は、まずS308にて、ROM用検証ポインタPT21を更新する。具体的には、ROM用検証ポインタPT21を、今回のプログラム書換要求で書き換えるべき制御プログラムとは別に既にフラッシュROM3に書き込まれている制御プログラムのうち検証が行われていないデータの記憶領域の先頭アドレスに設定する。そしてS308の処理が終了すると、S310に移行する。
次に、第3実施形態の検証実行処理を説明する。
この検証実行処理が実行されると、CPU2は、図17に示すように、まずS610にて、書換処理(S320の処理)を実行中であるか否かを判断する。書換処理を実行中である場合には(S610:YES)、S610に移行し、S610の処理を繰り返す。一方書換処理を実行していない場合には(S610:NO)、S620にて、受信処理(S230の処理)を実行中であるか否かを判断する。ここで、受信処理を実行していない場合には(S620:NO)、S640に移行する。
一方、受信処理を実行中である場合には(S620:YES)、S630にて、受信待ち状態であるか否かを判断する。ここで、受信待ち状態でない場合には(S630:NO)、S610に移行し、上述の処理を繰り返す。一方、受信待ち状態である場合には(S630:YES)、S640に移行する。
そしてS640に移行すると、検証処理を実行する。具体的には、まず、フラッシュROM3に書き込まれているデータのうち、ROM用検証ポインタPT21が指示するアドレスから予め設定された検証単位分のアドレスまでのデータを読み出す。そして、読み出したデータについて、例えばサム計算またはCRC計算などの認証用演算を実行し、この演算値と、読み出したデータに対してプログラム書換装置RP側で予め付与された検証用データの値とを比較し、両者が一致している場合に、読み出したデータが適正であると判断するとともに、両者が不一致である場合に、読み出したデータが不適正であると判断する。
そしてS650にて、ROM用検証ポインタを更新する。具体的には、S640で検証(バリデート)を実行したデータ量分、ROM用検証ポインタの指示値を変化させる。
その後S660にて、今回のプログラム書換要求で書き換えるべき制御プログラムに関する全ての検証(バリデート)が終了したか否かを判断する。ここで、全ての検証が終了していない場合には(S660:NO)、S610に移行し、上述の処理を繰り返す。一方、全ての検証が終了した場合には(S660:YES)、検証実行処理を終了する。
このように構成されたECU1では、まず、フラッシュROM3に記憶された制御プログラムの内容を書き換えるための書換データを外部から受信する受信処理を実行する(S230)。そして、受信処理により受信した書換データをフラッシュROM3に書き込むことにより、フラッシュROM3に記憶された制御プログラムの内容を書き換える書換処理を実行する(S320)。また、受信処理が実行されていない状態(S620:NO)または受信処理において書換データの受信を待っている状態(S630:YES)であることと、書換処理が実行されていない状態(S610:NO)であることの両方が成り立っている場合に、不揮発性メモリに書き込まれる書換データが適正なものであるか否かを検証する検証処理を実行する(S640)。
このため、受信処理の実行中であっても、書換データの受信を待っている状態であれば、検証処理を実行することができる。すなわち、例えば図18に示すように、受信処理と検証処理とを並行に実行することができる。これにより、第1実施形態と同様に、制御プログラムの書き換えに要する時間を短縮することができる。
図18では、受信処理RP01,RP02,RP03,・・・・,RP14が順次実行されており、受信処理RP01の開始前に検証処理VP31が開始される(時刻t31を参照)。そして受信処理RP01の実行中に、書換処理WP31が開始される(時刻t32を参照)。このため、書換処理WP31の開始前に検証処理VP31が終了する。書換処理WP31は、受信処理RP01で受信したデータを書き込む。検証処理VP31は、書換処理WP31の前にフラッシュROM3に書き込まれたデータを検証する。これにより、受信処理RP01と検証処理VP31とが並行に実行される。
また、書換処理WP31が終了すると検証処理VP32が開始される(時刻t33を参照)。そして、受信処理RP04の開始前に、書換処理WP32が開始される。(時刻t34を参照)。このため、書換処理WP32の開始前に検証処理VP31が終了する。書換処理WP32は、受信処理RP02,RP03で受信したデータを書き込む。検証処理VP32は、書換処理WP31の前にフラッシュROM3に書き込まれたデータを検証する。これにより、受信処理RP03と検証処理VP32とが並行に実行される。
また、書換処理WP32が終了すると検証処理VP33が開始される(時刻t35を参照)。そして、受信処理RP07の開始前に、書換処理WP33が開始される。(時刻t36を参照)。このため、書換処理WP33の開始前に検証処理VP33が終了する。書換処理WP33は、受信処理RP04,RP05,RP06で受信したデータを書き込む。検証処理VP33は、書換処理WP31の前にフラッシュROM3に書き込まれたデータを検証する。
また、書換処理WP33が終了すると検証処理VP34が開始される(時刻t37を参照)。そして、受信処理RP11の開始前に、書換処理WP34が開始される。(時刻t38を参照)。このため、書換処理WP34の開始前に検証処理VP34が終了する。書換処理WP34は、受信処理RP07,RP08,RP09,RP10で受信したデータを書き込む。検証処理VP34は、書換処理WP11の前にフラッシュROM3に書き込まれたデータを検証する。これにより、受信処理RP10と検証処理VP34とが並行に実行される。
またECU1は、フラッシュROM3に書き込まれた書換データに対して検証処理を実行する。これにより、検証バッファ13を設けることができる程度の記憶容量の余裕をRAM4が有していない場合であっても、検証処理を実行することができる。
また、今回のプログラム書換要求を受信した時点で、前回のプログラム書換要求に基づく書換処理によりフラッシュROM3に書き込まれた書換データが未検証のまま残っている場合には、今回のプログラム書換要求のプログラム書換要求に基づく書換処理と並行して、前回のプログラム書換要求に基づく書換処理による書換データの検証を継続することができる。
以上説明した実施形態において、S640の処理は本発明における検証処理実行手段および検証処理実行手順である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、ECU1の制御対象が車両のエンジンであるものを示したが、これに限定されるものではなく、例えば自動変速機であってもよい。
また上記実施形態では、フラッシュROM3に制御プログラムを記憶するものを示したが、制御プログラムの記憶媒体としてはこれに限定されるものではなく、例えばEEPROMのように記憶内容の書き換えが可能な不揮発性メモリであればよい。
また上記実施形態では、書換プログラムをプログラム書換装置RPから取得するものを示したが、ECU1が予めフラッシュROM3内に書換プログラムを記憶していてもよい。
また上記実施形態では、書換バッファ12と検証バッファ13がリングバッファ構造で形成されているものを示したが、リングバッファ構造ではない通常の構造であってもよい。但し、通常の構造の場合には、新たなデータが書き込まれる前に、既に書き込まれているデータを先頭アドレスに移動させる必要がある。
また上記実施形態では、S20にて、書き込まれている制御プログラムが適正なものであるか否かを判断するものを示した。しかし、書き込まれている制御プログラムが適正なものでないと検証処理で判断されたときにおいて、制御プログラムが既に書き込まれていても、制御プログラムが書き込まれていないとS10の処理で判断されるようにする場合には、S20の処理を不要とすることができる。例えば、書き換えと検証(バリデート)の両方が正常であるか否かを示す識別値を記憶する領域を設け、書き換えの開始時に識別値を消去する。そして、書き換えが正常に終了するとともに検証結果が正常である場合に、予め設定された値の識別値を再度記憶する一方、書き換えが途絶したり検証結果が異常であったりした場合には、識別値の記憶を禁止する。これにより、識別値に基づいて、制御プログラムが正常に書き込まれたか否かを判断することが可能になるとともに、書き込まれた制御プログラムが適正であるか否かを判断する処理を不要とすることができる。
また上記実施形態では、受信処理と書換処理と検証処理とを並行に実行するものと、受信処理と検証処理とを並行に実行するものを示した。しかし、例えば図19に示すように、書換処理と検証処理とを並行に実行するようにしてもよい。なお図19は、複数回の受信処理の後に、複数回の受信処理で受信したデータを一括してフラッシュROMに書き込む書換処理を実行し、書換処理の終了後に、受信処理を再開するように構成された電子制御装置において、検証処理が、書換処理と並行に実行されるとともに、受信処理と受信処理との間で実行されることを示している。
1…ECU、3…フラッシュROM

Claims (11)

  1. 記憶内容の書き換えが可能であり、所定の制御対象を制御するための制御プログラムを記憶する不揮発性メモリ(3)と、
    前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換えるためのデータである書換データを外部から受信する受信処理を実行する受信処理実行手段(S230)と、
    前記受信処理により受信した前記書換データを前記不揮発性メモリに書き込むことにより、前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換える書換処理を実行する書換処理実行手段(S320)と、
    前記受信処理において前記書換データの受信を待っている状態であるか否か、および前記書換処理において前記不揮発性メモリへの前記書換データの書き込み終了を待っている状態であるか否かの少なくとも一方を条件として含むように予め設定された検証実行条件が成立した場合に、前記不揮発性メモリに書き込まれる前記書換データが適正なものであるか否かを検証する検証処理を実行する検証処理実行手段(S460,S560,S640)とを備える
    ことを特徴とする電子制御装置(1)。
  2. 前記検証処理実行手段(S460,S560)は、
    前記受信処理が実行されていない状態または前記受信処理において前記書換データの受信を待っている状態であることを第1判断状態とし、前記書換処理が実行されていない状態または前記書換処理において前記不揮発性メモリへの前記書換データの書き込み終了を待っている状態であることを第2判断状態とし、前記第1判断状態であり且つ前記第2判断状態であることを第1検証実行条件として、前記第1検証実行条件を前記検証実行条件として採用する
    ことを特徴とする請求項1に記載の電子制御装置。
  3. 前記書換処理により前記不揮発性メモリに書き込む前記書換データを、前記不揮発性メモリに書き込む前に一時的に記憶する書換バッファ(12)を備え、
    前記検証処理実行手段は、前記検証実行条件として前記第1検証実行条件を採用し、前記書換バッファに記憶されている前記書換データに対して前記検証処理を実行する
    ことを特徴とする請求項2に記載の電子制御装置。
  4. 前記不揮発性メモリに書き込まれた前記書換データを一時的に記憶する検証バッファ(13)を備え、
    前記検証処理実行手段は、前記検証バッファに記憶されている前記書換データに対して前記検証処理を実行する
    ことを特徴とする請求項2に記載の電子制御装置。
  5. 前記検証処理実行手段(S640)は、
    前記受信処理が実行されていない状態または前記受信処理において前記書換データの受信を待っている状態であることを第1判断状態とし、前記書換処理が実行されていない状態であることを第3判断状態とし、前記第1判断状態であり且つ前記第3判断状態であることを第2検証実行条件として、前記第2検証実行条件を前記検証実行条件として採用する
    ことを特徴とする請求項1に記載の電子制御装置。
  6. 前記検証処理実行手段は、前記不揮発性メモリに書き込まれた前記書換データに対して前記検証処理を実行する
    ことを特徴とする請求項5に記載の電子制御装置。
  7. 前記書換バッファは、リングバッファ構造で形成されている
    ことを特徴とする請求項3に記載の電子制御装置。
  8. 前記検証バッファは、リングバッファ構造で形成されている
    ことを特徴とする請求項4に記載の電子制御装置。
  9. 記憶内容の書き換えが可能であり所定の制御対象を制御するための制御プログラムを記憶する不揮発性メモリに記憶された前記制御プログラムの内容を書き換えるためのデータである書換データを受信する受信処理を実行する受信処理実行手順(S230)と、
    前記受信処理により受信した前記書換データを前記不揮発性メモリに書き込むことにより、前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換える書換処理を実行する書換処理実行手順(S320)と、
    前記受信処理において前記書換データの受信を待っている状態であるか否か、および前記書換処理において前記不揮発性メモリへの前記書換データの書き込み終了を待っている状態であるか否かの少なくとも一方を条件として含むように予め設定された検証実行条件が成立した場合に、前記不揮発性メモリに書き込まれる前記書換データが適正なものであるか否かを検証する検証処理を実行する検証処理実行手順(S460,S560,S640)とを備える
    ことを特徴とするメモリ書換方法。
  10. 前記検証処理実行手順(S460,S560)は、
    前記受信処理が実行されていない状態または前記受信処理において前記書換データの受信を待っている状態であることを第1判断状態とし、前記書換処理が実行されていない状態または前記書換処理において前記不揮発性メモリへの前記書換データの書き込み終了を待っている状態であることを第2判断状態とし、前記第1判断状態であり且つ前記第2判断状態であることを第1検証実行条件として、前記第1検証実行条件を前記検証実行条件として採用する
    ことを特徴とする請求項9に記載のメモリ書換方法。
  11. 前記検証処理実行手順(S640)は、
    前記受信処理が実行されていない状態または前記受信処理において前記書換データの受信を待っている状態であることを第1判断状態とし、前記書換処理が実行されていない状態であることを第3判断状態とし、前記第1判断状態であり且つ前記第3判断状態であることを第2検証実行条件として、前記第2検証実行条件を前記検証実行条件として採用する
    ことを特徴とする請求項9に記載のメモリ書換方法。
JP2013113144A 2013-05-29 2013-05-29 電子制御装置およびメモリ書換方法 Active JP5835271B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013113144A JP5835271B2 (ja) 2013-05-29 2013-05-29 電子制御装置およびメモリ書換方法
DE102014210266.9A DE102014210266A1 (de) 2013-05-29 2014-05-28 Elektronische steuereinheit und speicherüberschreibungsverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013113144A JP5835271B2 (ja) 2013-05-29 2013-05-29 電子制御装置およびメモリ書換方法

Publications (2)

Publication Number Publication Date
JP2014232437A JP2014232437A (ja) 2014-12-11
JP5835271B2 true JP5835271B2 (ja) 2015-12-24

Family

ID=51899673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013113144A Active JP5835271B2 (ja) 2013-05-29 2013-05-29 電子制御装置およびメモリ書換方法

Country Status (2)

Country Link
JP (1) JP5835271B2 (ja)
DE (1) DE102014210266A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6899719B2 (ja) * 2017-07-05 2021-07-07 日立Astemo株式会社 自動車用電子制御装置
CN111399472A (zh) * 2019-01-03 2020-07-10 北京汽车动力总成有限公司 一种ecu刷写装置及刷写方法
JP7302250B2 (ja) * 2019-04-10 2023-07-04 株式会社デンソー 電子制御装置
JP7472844B2 (ja) 2021-04-14 2024-04-23 株式会社デンソー 電子制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3893755B2 (ja) 1998-07-03 2007-03-14 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
DE102014210266A1 (de) 2014-12-04
JP2014232437A (ja) 2014-12-11

Similar Documents

Publication Publication Date Title
JP5835271B2 (ja) 電子制御装置およびメモリ書換方法
JP6044316B2 (ja) 車載電子制御装置
JP4650566B2 (ja) 制御システム及び電子制御装置
JP2010167997A (ja) 車両のための書き換えシステム
JP2020027635A5 (ja) 電子制御装置、リトライポイントの特定方法、リトライポイントの特定プログラム及び車両用電子制御システム
JP2000020389A (ja) 電子制御装置
JP2008169815A (ja) 電子制御装置
JP5073977B2 (ja) 半導体記憶装置のベリファイ制御方式及びその方法
CN113870926A (zh) 一种驱动信号生成方法、装置、设备及可读存储介质
WO2017036101A1 (zh) 一种更新寄存器的方法及装置
CN115657537B (zh) 车辆及电子控制单元的标定数据管理方法、装置及介质
JP5900168B2 (ja) 電子制御装置
JP2009265819A (ja) 制御装置およびプログラム
JP6935694B2 (ja) 電子制御装置
JP2013232028A (ja) マイクロコンピュータ
JP2012212272A (ja) 車両用電子制御装置
JP6394291B2 (ja) 電子制御装置およびメモリ書換方法
JP2009223435A (ja) データ記憶方法及び装置、並びにプログラム
US9400758B2 (en) Reset method and network device
JP2018121120A (ja) 通信装置及び通信コントローラ
JP6334776B1 (ja) 電子制御装置
JP5930940B2 (ja) 車両用電子制御装置
JP5036615B2 (ja) 制御装置
CN112599172B (zh) 电子控制单元的数据写入方法、装置及存储介质
JP5564854B2 (ja) 制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151019

R151 Written notification of patent or utility model registration

Ref document number: 5835271

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250