JP2019020837A - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP2019020837A
JP2019020837A JP2017136365A JP2017136365A JP2019020837A JP 2019020837 A JP2019020837 A JP 2019020837A JP 2017136365 A JP2017136365 A JP 2017136365A JP 2017136365 A JP2017136365 A JP 2017136365A JP 2019020837 A JP2019020837 A JP 2019020837A
Authority
JP
Japan
Prior art keywords
procedure
information
ecu
rewriting
progress information
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.)
Granted
Application number
JP2017136365A
Other languages
English (en)
Other versions
JP6935694B2 (ja
Inventor
男樹 各務
Danju Kagami
男樹 各務
上原 一浩
Kazuhiro Uehara
一浩 上原
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 JP2017136365A priority Critical patent/JP6935694B2/ja
Priority to DE102018210868.4A priority patent/DE102018210868A1/de
Publication of JP2019020837A publication Critical patent/JP2019020837A/ja
Application granted granted Critical
Publication of JP6935694B2 publication Critical patent/JP6935694B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

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)
  • Retry When Errors Occur (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】不揮発性メモリにおけるデータの書き換えの進捗を表す情報を保持する技術を提供する。【解決手段】電子制御装置は、書き換え可能なメモリであるROMを有する。ROMは、ロック単位で、該ブロックが消去状態にされた後に該ブロックに書き換えの対象となるデータである対象データが書き込まれることによって、書き換えが行われる。電子制御装置は、情報取得部(S85)と、記憶実行部(S95、S105、S110)と、を備える。記憶実行部は、進捗情報が取得される毎に、複数の管理ブロックのうち少なくとも1つに、進捗情報を記憶させる。そして、記憶実行部は、複数の管理ブロックのうち、進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに、進捗情報を記憶させる。【選択図】図10

Description

本開示は、書き換え可能なメモリを有する電子制御装置に関する。
特許文献1には、書き換え可能なメモリである不揮発性メモリを有する電子制御装置が開示されている。
特開2005−56144号公報
書き換えの際、不揮発性メモリでは、ブロック単位で該不揮発性メモリに記憶されているデータが一旦消去され、該データが消去されたブロックに所定のバイト毎に対象データが書き込まれる。ここでいう対象データとは、書き換えの対象となるデータをいう。すなわち、不揮発性メモリの書き換えは、一又は複数のブロックを順次書き換えることにより実現される。特許文献1に記載の電子制御装置は、書き換えの際、不揮発性メモリ内の所定の1つのブロックに、書き換えが終了したブロックを示す情報(以下、履歴情報)を記憶させている。
上記電子制御装置においても、履歴情報が記憶されているブロックのデータが一旦消去された後に、該ブロックに新たな履歴情報が書き込まれることによって、履歴情報が更新される。そのため、例えば、履歴情報が記憶されているブロックのデータが消去されたときに不揮発性メモリへの電力の供給が絶たれた場合などに、履歴情報が失われるおそれがある。
本開示の1つの局面は、不揮発性メモリを有する電子制御装置において、電力の供給が途絶えた場合であっても、不揮発性メモリにおけるデータの書き換えの進捗を表す情報を保持する技術を提供する。
本開示の1つの局面は、書き換え可能なメモリである不揮発性メモリ(33)を有する電子制御装置(13)である。不揮発性メモリは、予め定められた大きさの記憶領域を表す複数のブロックを有し、且つ、ブロック単位で、該ブロックが該ブロックに記憶されている全てのデータが消去された状態である消去状態にされた後に該ブロックに書き換えの対象となるデータである対象データが書き込まれることによって、書き換えが行われるように構成されている。電子制御装置は、情報取得部(S55、S60)と、記憶実行部(S85、S95、S100)と、を備える。
情報取得部は、書き換えの進捗の度合いを表す情報である進捗情報、を繰り返し取得するように構成されている。記憶実行部は、進捗情報が取得される毎に、対象データが書き込まれるブロックとは異なる予め定められた複数の管理ブロックのうち少なくとも1つに、進捗情報を記憶させるように構成されている。そして、記憶実行部は、複数の管理ブロックのうち、進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに、進捗情報を記憶させるように構成されている。
このような構成によれば、不揮発性メモリにおける複数の管理ブロックのうち、進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに新たな進捗情報が記憶される。すなわち、仮に進捗情報の書き換えが行われている際に不揮発性メモリへの電力供給が途絶えたとしても、複数の管理ブロックのいずれかには進捗情報が記憶されている。その結果、不揮発性メモリを有する電子制御装置において、電力の供給が途絶えた場合であっても、不揮発性メモリにおけるデータの書き換えの進捗を表す情報を保持することができる。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
車両制御システムの構成を示すブロック図。 ROMの記憶領域を示す説明図。 制御プログラムを書き換えるための複数の書換手順を示す説明図。 書換処理に基づいて、複数手順のうちの先頭手順から書き換えが行われる場合の処理の流れを示すシーケンス図。 図5における進捗情報の遷移を説明する図。 書換処理に基づいて、複数手順のうちの途中の手順から書き換えが行われる場合の処理の流れを示すシーケンス図。 図6における進捗情報の遷移を説明する図。 ECUが実行する起動処理のフローチャート。 ECUが実行する書換処理のフローチャート(1/2)。 ECUが実行する書換処理のフローチャート(2/2)。 外部装置が実行する外部処理のフローチャート。
以下、図面を参照しながら、本開示の実施形態を説明する。
[1.構成]
図1に示す車両制御システム1は、例えば乗用車等といった車両に搭載された車載制御システム10が備える電子制御装置(以下、ECU)13において、制御プログラムやデータ等(以下、制御プログラム等)の書き換えを行うシステムである。ECUは、Electronic Control Unitの略である。ここでいう書き換えには、ECU13に予め記憶されている制御プログラム等の書き換えや、ECU13への制御プログラム等の初めての書き込み、が含まれ得る。
車両制御システム1は、車載制御システム10と外部装置20とを備える。外部装置20は、車載制御システム10が搭載された車両の外部の装置であり、センタ21と診断装置22とを備えていてもよい。
センタ21は、所定の場所に固定されている。センタ21は、図示しないが、通信装置と、CPU、及びRAM、ROM等といったメモリを有するコンピュータと、を備える。メモリには、制御プログラムが記憶されている。センタ21は、車載制御システム10のECU13に記憶されている制御プログラムのアップデートが必要になったときに、ECU13にセンタ21のメモリに記憶されている新しい制御プログラムを送信し、ECU13の制御プログラムを書き換える。
診断装置22は、診断対象となるECU13から該ECU13に関するデータを受信して、車載制御システム10が搭載された車両の診断を行うとともに、診断結果に応じて、ECU13に記憶されているデータを書き換える。診断装置22は、図示しないが、通信装置と、CPU、及びRAM、ROM等といったメモリを有するコンピュータと、を備える。
なお、診断装置22は、車載制御システム10のECU13に記憶されている制御プログラムのアップデートが必要になったときに、ECU13に診断装置22のメモリに記憶されている新しい制御プログラムを送信し、ECU13の制御プログラムを書き換えるように構成されてもよい。
車載制御システム10は、ECU13を備える。車載制御システム10は、車外通信装置(以下、DCM−ECU)11、セントラルゲートウェイ(以下、C−GW)12を備えていても良い。DCM−ECU11、C−GW12、ECU13は、通信線15で接続されており、CAN規格に従って通信を行う。CANは、登録商標である。
つまり、ECU13は、DCM−ECU11及びC−GW12と、通信線15によって通信可能に接続されて、車両ネットワークを構成している。なお、図示していないが、ECU13は、車両に搭載される他のECUと通信線15によって通信可能に接続されて、車両ネットワークを構成していてもよい。なお、上述の外部装置20が該車両ネットワーク外の装置に相当する。
DCM−ECU11は、センタ21との間で、無線通信を行う装置である。
C−GW12は、診断装置22と通信線5によって接続され、診断装置22との間で、CAN規格に従って通信を行う装置である。
ECU13は、例えば、エンジンやブレーキ等といった、車両に搭載された制御対象の制御を行う電子制御装置である。ECU13は、CPU31と、RAM33、ROM34、等の半導体メモリ(以下、メモリ32)と、を有するマイクロコンピュータを備える。なお、ECU13は、図示しないが、電源装置(以下、電源)を備えており、電源がオンの場合に電力が供給され、電源がオフの場合に電力の供給が停止されるように構成されている。
CPU31は、演算装置であり、RAM33は、CPU31の演算結果等を一時記憶するための揮発性メモリである。ROM34は、書き換え可能な記憶領域を有する不揮発性メモリである。ここでいう不揮発性メモリには、例えば、フラッシュメモリやEEPROM等が含まれ得る。ROM34には、CPU31により実行される各種プログラムが記憶される。ROM34の構成の詳細については後述する。
ECU13の各種機能は、CPU31がROM34に記憶されたプログラムを実行することにより実現される。ECU13は、後述する書換処理を実行することによって、ROM34に記憶されている制御プログラムの書き換えを実現する。
ROM34は、図2に示すように書き換え不可能な領域(以下、非書換領域)341と書き換え可能な領域(以下、書換領域)342とを有する。ROM34において、予め定められた大きさの領域をブロックという。ブロックは、例えば、数十バイト〜数百バイトであり得る。
ROM34は、CPU31からの指示に従って、ブロック単位でのデータの消去が可能である。また、ROM34は、例えば2バイト、4バイト等といった、一又は複数のバイト単位でのデータの書き込みが可能である。ROM34は、初期状態では、全ブロックに論理値1が書き込まれている。また、ROM34は、ブロック単位で、該ブロックが該ブロックに記憶されている全てのデータが消去された状態である消去状態にされた後に、該ブロックに対象データが書き込まれることによって、書き換えが行われる。ここでいう対象データとは、書き換えの対象となるデータである。なお、消去状態にされたブロックは、ブロック内の全てに論理値1が書き込まれる。
非書換領域341には、リプロプログラムが記憶されている。リプロプログラムは、CPU31に実行されることによって、書換領域342に記憶されている制御プログラムを書き換えるためのプログラムである。書換処理は、リプロプログラムを実行する際の処理手順を表している。
書換領域342には、制御プログラム、完了フラグ、進捗情報、が記憶されている。制御プログラムは、CPU31に実行されて、ECU13の制御対象を制御するためのプログラムである。
完了フラグとは、ROM34において、リプロプログラムによる書き換えの対象となる制御プログラムの書き換えが完了したか否かを表すフラグである。完了フラグがオフの場合には、制御プログラムの書き換えが完了していない状態を表し、完了フラグがオンの場合には、制御プログラムの書き換えが完了した状態を表す。完了フラグは、リプロプログラムが実行されることをきっかけとして、初期状態としてのオフに設定される。
進捗情報とは、ROM34における、リプロプログラムによる書き換えの対象となる制御プログラムの、書き換えの進捗の度合い、を表す情報である。進捗情報は、ROM34における複数の管理ブロックに記憶されている。ここでいう管理ブロックとは、ROM34が備える複数のブロックのうち、対象データが書き込まれるブロックとは異なる、予め定められたブロックをいう。
具体的には、ROM34の書換領域342に含まれる第1の情報ブロック101及び第2の情報ブロック102といった、異なる2つのブロックが管理ブロックに相当する。以下では、第1の情報ブロック101に記憶されている進捗情報を第1の情報といい、第2の情報ブロック102に記憶されている進捗情報を第2の情報という。
ROM34は、図3に示すように、書き換えの対象であるECU13によって予め定められた複数の書換手順(以下、複数手順)が順に実行されることによって、制御プログラムの書き換えが行われるように構成されている。ECU13は、外部装置20としてのセンタ21又は診断装置22との間での通信に基づいて、制御プログラムの書き換えを実行する。複数手順には、認証手順、消去手順、書込手順、ベリファイ手順、完了手順が含まれ得る。
例えば、複数手順のうち実行が終了した手順が特定されれば、該実行が終了した手順によって制御プログラムの書き換えの進捗の度合いを表すことができる。以下でいう終了手順とは、複数手順のうち、ECU13による実行が終了した手順をいう。
認証手順では、外部装置20がECU13の正しい通信相手であるか否か、が確認される。例えば、後述する図4におけるA6−A8が認証手順に相当する。
消去手順では、外部装置20からの消去要求に従って、ROM34において、書き換えの対象となる制御プログラムを書き込むブロック(以下、対象ブロック)が消去状態にされる。例えば、図4におけるA9−A12が消去手順に相当する。
書込手順では、外部装置20からECU13に書き換えの対象となる制御プログラムが送信され、該制御プログラムがROM34に書き込まれる。書込手順は、書き換えの対象となる制御プログラムを表すデータが複数に分割された分割データ毎に行われても良い。分割データは、1ブロック分の大きさのデータであっても良い。なお、本実施形態では、分割データの書き込みが終了する毎にECU13から外部装置20へACKが送信される。例えば、図4におけるA13−A20が書込手順に相当する。
ベリファイ手順では、書き換えの対象となる制御プログラムが正常に書きかえられたか否かが検証される。図4におけるA21−A24がベリファイ手順に相当する。
完了処理は、書き換えの対象となる制御プログラムの書き換えが完了したか否かが判断される。例えば、図4におけるA25−A27が完了手順に相当する。
複数手順のそれぞれは、認証手順、消去手順、書込手順、ベリファイ手順、完了手順の順に実行され、予め定められた識別符号が一又は複数の書換手順に付されている。識別符号は、例えば、それぞれの書換手順を識別可能な記号や数字やこれらの組合せ等で有り得る。
本実施形態では、書き換えの対象となる制御プログラムを表すデータは、第1の分割データ及び第2の分割データといった2つの分割データからなる。また、複数手順のうち、消去手順には「1」、第1の分割データを書き込む書込手順(以下、第1の書込手順)には「2」、第2の分割データの書込手順(以下、第2の書込手順)には「3」、ベリファイ手順には「4」、完了手順には「5」といったように、識別符号が付されている。なお、複数手順のうち、このように識別符号が付されている書換手順を、書換通知手順ともいう。
[2.処理]
[2−1.最初の書換手順からの書き換えシーケンス]
次に、ECU13が、書換処理に基づいて、外部装置20と間で通信を行うことによって、制御プログラムの書き換えを実行する際の処理の流れを説明する。ここでは、センタ21を外部装置20とする。なお、診断装置22を外部装置20とする場合も、同様の流れで処理が行われる。
図4は、ECU13において電源がオフされてからオンされた際に、制御プログラムを書き換えるために、上述の複数手順のうちの最初の書換手順から書き換えが行われる場合の処理の流れ、を示している。ECU13は、例えば、外部装置20との通信が途絶した場合等に、電源がオフされるように構成されている。
はじめに、A1では、ECU13の電源がオンされる。ここでいう電源がオンされる状況には、ECU13において制御プログラムの書き換えが、例えば外部装置20との通信途絶等によって中断された際に、一旦ECU13の電源がオフされた後、再びECU13の電源がオンされる、というような状況が含まれ得る。
続いて、A2では、ECU13は、完了フラグを確認する。完了フラグはオフに設定されている。
次に、A3、A4では、ECU13は、完了フラグがオフであるので、ROM34から進捗情報を読み出す。
続いて、A5では、ECU13は、読み出された進捗情報に従って再開手順を特定し、再開手順を外部装置20へ通知する。再開手順とは、上述の複数手順に含まれる1つの手順であって、書き換えが再開されるときの最初の書換手順である。ここでは、ECU13は、上述の複数手順のうちの最初の書換手順、つまり先頭の手順(以下、先頭手順)である認証手順、を再開手順として特定し、再開手順を表す情報を外部装置20へ送信する。再開手順は、後述する書換処理において、進捗情報に基づいて特定される。
次に、A6では、ECU13は、外部装置20から送信されたACKを受信する。ここでいうACKは、外部装置20によって再開手順が受信されたことを表す応答である。
続いて、A7では、ECU13は、外部装置20から送信された認証要求を受信する。認証要求は、外部装置20がECU13に対して外部装置20の認証を要求する通信フレームである。認証要求には、外部装置20を識別するための情報(以下、識別情報)が含まれている。
次に、A8では、ECU13は、ECU13のROM34に予め記憶されている外部装置20についての識別情報と認証要求に含まれる識別情報とが一致することを確認する。ECU13は、これらが一致する場合に、外部装置20へACKを送信する。ここでいうACKは、外部装置20の認証が完了したことを表す応答である。
続いて、A9では、ECU13は、外部装置20から送信された消去要求を受信する。消去要求とは、上述の複数手順のうちの再開手順以降の書換手順を実行する際に、書き換えの対象となるデータが記憶されているブロックを消去状態にするための要求をいう。ここでは、先頭手順を再開手順とするので、書き換え対象となる制御プログラムが記憶されている全てのブロックと、第1の情報ブロック101及び第2の情報ブロック102と、が、消去の対象として指定された消去要求を受信する。
次に、A10では、ECU13は、消去要求に従って、ブロックの消去を実行する。ブロックの消去では、ECU13は、上述のように、指定されたブロック内の全てのビットを論理値1に設定する。
続いて、A11では、ECU13は、進捗情報を更新する。具体的には、ECU13は、第1の情報ブロック101に、消去手順を終了手順として、消去手順を表す識別符号である「1」を進捗情報として書き込む。
次に、A12では、ECU13は、外部装置20にACKを送信する。ここでいうACKは、消去要求に従ってブロックの消去が完了したことを表す応答である。
続いて、A13では、ECU13は、外部装置20から送信された第1の分割データを受信する。
次に、A14では、ECU13は、ROM34において、第1の分割データに対応するアドレスへ、受信した第1の分割データを書き込む。
続いて、A15では、ECU13は進捗情報を更新する。具体的には、ECU13は、第2の情報ブロック102に、第1の書込手順を終了手順として、第1の書込手順が完了したことを表す識別符号である「2」を進捗情報として書き込む。
次に、A16では、ECU13は、外部装置20にACKを送信する。ここでいうACKは、第1の書込手順が完了したことを表す応答である。
続いて、A17では、ECU13は、外部装置20から送信された第2の分割データを受信する。
次に、A18では、ECU13は、ROM34において、第2の分割データに対応するアドレスへ、受信した第2の分割データを書き込む。
続いて、A19では、ECU13は、進捗情報を更新する。具体的には、ECU13は、第1の情報ブロック101を一旦消去状態にし、その後で、第1の情報ブロック101に、第2の書込手順を終了手順として、第2の書込手順が完了したことを表す識別符号である「3」を進捗管理情報として書き込む。
次に、A20では、ECU13は、外部装置20にACKを送信する。ここでいうACKは、第2の書込手順が完了したことを表す応答である。
続いて、A21では、ECU13は、外部装置20から送信されたベリファイ要求を受信する。ここでいうベリファイ要求とは、ECU13に、制御プログラムの書き換えが正常に終了したか否かの検証(以下、ベリファイ)を要求するものである。
次に、A22は、ECU13は、ベリファイを実行する。ベリファイは、パリティビットや誤り訂正符号等といった、各種手法により実行され得る。
続いて、A23では、ECU13は、ベリファイにより、制御プログラムが正常に書き換えられたことが検証された場合に、進捗情報を更新する。具体的には、ECU13は、第2の情報ブロック102を一旦消去状態にし、その後で、第2の情報ブロック102に、ベリファイ手順を終了手順として、ベリファイ手順が完了したことを表す識別符号である「4」を進捗管理情報として書き込む。
次に、A24では、ECU13は、外部装置20にACKを送信する。ここでいうACKは、ベリファイの完了を表す応答である。
続いて、A25では、ECU13は、外部装置20から送信された完了通知を受信する。完了通知とは、書き換えるべき制御プログラムの全てのデータの送信が完了したことを表す通知である。
次に、A26では、ECU13は、進捗情報を更新する。具体的には、ECU13は、第1の情報ブロック101を一旦消去状態にし、その後で、第1の情報ブロック101に、完了手順を終了手順として、完了手順が終了したことを表す識別符号である「5」を進捗管理情報として書き込む。
最後にA25では、ECU13は、外部装置20にACKを送信する。ここでいうACKは、書き換えの対象となる制御プログラムの書き換えが全て完了したこと、を表す応答(以下、最終応答)である。
このようにして、ECU13は、外部装置20と通信を行い、書き換えの対象となる制御プログラムの書き換えを実行する。この際、進捗情報、つまり、第1の情報及び第2の情報は、図5に示すように遷移する。図5では、第2の書込手順が完了する迄の進捗情報の遷移が示されている。
すなわち、第1の情報ブロック101と第2の情報ブロック102とに、交互に、書換手順が終了する毎に、進捗情報が書き込まれる。換言すれば、第1の情報ブロック101及び第2の情報ブロック102といった複数の管理ブロックのうち、前回進捗情報が書き込まれた管理ブロックとは異なる管理ブロックに、書換手順が終了する毎に、進捗情報が書き込まれる。
[2−2.途中の手順からの書き換えシーケンス]
図6は、ECU13において電源がオフされてからオンされた際に、制御プログラムを書き換えるために、上述の複数手順のうちの途中の手順から書き換えが行われる場合の処理の流れ、を示している。つまり、ECU13において制御プログラムの書き換えが実行されている最中に書き換えが中断された際等に、制御プログラムを書き換えるための上述の複数手順のうちの先頭手順以外の手順から書き換えが再開される場合の処理の流れ、を示している。図6では、図4におけるA18を実行中に、ECU13の電源がオフとなった例が示されている。以下でいう電源断とは電源がオフとなった状態をいう。
ECU13が電源断となり書き換えが中断された後、まず、B1では、ECU13の電源がオンされる。
続いて、B2では、ECU13は、完了フラグを確認する。完了フラグはオフに設定されている。
次に、B3、B4では、ECU13は、完了フラグがオフであるので、ROM34から進捗情報を読み出す。
続いて、B5では、ECU13は、読み出された進捗情報に従って再開手順を特定し、再開手順を外部装置20へ通知する。ここでは、後述する図7に示すように、再開時、第1の情報は「FFH」であり、第2の情報は「2」であるので、後述する書換処理に従って、ECU13は、「2」に相当する第1の書込手順を終了手順として特定し、該終了手順の次の手順である第2の書込手順を再開手順として特定する。ECU13は、第2の書込手順を再開手順として、再開手順を表す情報を外部装置20へ送信する。
次に、B6では、外部装置20から送信されたACKを受信する。ここでいうACKは、外部装置20によって再開手順が受信されたことを表す応答であり、外部装置20がECU13に再開手順の実行を要求する処理要求でもある。
続いて、B7では、ECU13は、外部装置20から送信された認証要求を受信する。
次に、B8では、ECU13は、外部装置20へACKを送信する。ここでいうACKは、外部装置20の認証が完了したことを表す応答である。
続いて、B9では、ECU13は、外部装置20から送信された消去要求を受信する。ここでいう消去要求では、第2の書込手順が再開手順として設定されているので、書き換え対象となる制御プログラムのうち第2の分割データが記憶されている全てのブロックが消去の対象として指定される。
次に、B10では、ECU13は、消去要求に従って、ブロックの消去を実行する。
続いて、B11では、ECU13は、外部装置20にACKを送信する。ここでいうACKは、消去要求に従ってブロックの消去が完了したことを表す応答である。
そして、ECU13は、B12以降は、図4におけるA17以降と同様の処理を実行する。
ここで、B7−B8では、ECU13と外部装置20との間で、書き換えが再開される際には、認証手順が再度実施されている。堅牢性の高い安全な通信を実現するためである。但し、これに限定されるものではなく、該認証手順は省略されても良い。
また、直前まで書き込みを実行していたブロックに対して書き込み再開する際は、不揮発性メモリの特性上、該当するブロック内のデータを一旦消去状態とする必要があるため、B9−B11では、該当するブロック内のデータが消去されている。
このようにして、ECU13は、通信途絶等により電源断となった場合に、書き換えの対象となる制御プログラムの書き換えを実行する。上述のように、複数の管理ブロックである第1の情報ブロック101と第2の情報ブロック102とのうち、前回とは異なる管理ブロックに進捗情報が書き込まれている。つまり、ECU13が電源断となった場合には、第1の情報ブロック101に書き込まれている第1の情報と第2の情報ブロック102に書き込まれている第2の情報とに基づいて、再開すべき書換手順である再開手順を特定することが可能である。
例えば、第2の書込手順についての進捗情報を第1の情報ブロック101に書き込む際にECU13が電源断となった場合は、図7に示すように、第1の情報ブロック101及び第2の情報ブロック102のうち、第2の情報ブロックに第2の情報として書き込まれている「2」に基づいて、「2」の次の「3」に相当する第2の書込手順が再開手順として特定される。そして、第2の書込手順が再度実行される。なお、再開手順は、後述する書換処理に従って特定される。
[2−3.ECUが実行する処理]
次に、ECU13が実行する処理を図8−図10のフローチャートに基づいて説明する。
[2−3−1.起動処理]
図8に示す起動処理は、ECU13の電源がオフされた後にオンされた際に、実行される。なお、起動処理は、起動プログラムを実行する際の処理手順を表している。起動プログラムは、図示していないが、ROM34の非書換領域341に予め記憶されている。
はじめに、ECU13は、S5では、完了フラグがオンであるか否かを判断する。つまり、制御プログラムの書き換えが完了しているか否かを判断する。ECU13は、完了フラグがオンである場合に処理をS10へ移行させ、完了フラグがオフである場合に処理をS15へ移行させる。
ECU13は、S10では、適宜、所定の制御プログラムを起動し、本起動処理を終了する。
ECU13は、S15では、リプロプログラムを起動し、本起動処理を終了する。
[2−3−2.書換処理]
図9−図10に示す書換処理は、ECU13が、起動処理のS15にて、制御プログラムの書き換えが完了していないと判断し、リプロプログラムを実行する際の処理手順を表している。
ECU13は、S20では、進捗情報を取得する。具体的には、ECU13は、第1の情報ブロック101及び第2の情報ブロック102から、それぞれ、第1の情報、第2の情報を取得する。ここでいう取得とは、ECU13が、第1の情報ブロック101及び第2の情報ブロック102から、それぞれ、進捗情報である第1の情報、第2の情報を読み出すことをいう。
ECU13は、S25では、第1の情報がFFHであるか否かを判断する。つまり、第1の情報ブロック101が消去状態であるか否かを判断する。ECU13は、第1の情報がFFHである場合に処理をS30へ移行させ、第1の情報がFFHでない場合に処理をS40へ移行させる。
ECU13は、S30では、第2の情報がFFHであるか否かを判断する。つまり、第2の情報ブロック102が消去状態であるか否かを判断する。ECU13は、第2の情報がFFHである場合に処理をS35へ移行させ、第1の情報がFFHでない場合に処理をS55へ移行させる。
ECU13は、S35では、上述の複数手順のうちの先頭手順である認証手順を再開手順として特定する。ECU13は、センタ21に、再開手順を表す情報を送信する。そして、ECU13は、処理をS70へ移行させる。
ECU13は、S40では、第2の情報がFFHであるか否かを判断する。ECU13は、第2の情報がFFHである場合に処理をS60へ移行させ、第1の情報がFFHでない場合に処理をS45へ移行させる。
ECU13は、S45では、第1の情報が表す終了手順と、第2の情報が表す終了手順と、に連続性が有るか否かを判断する。つまり、これらが互いに連続する手順であるか否かを判断する。本ステップでは、第1の情報及び第2の情報は、いずれも、FFHではない。以下でいう更新情報とは、このように、消去状態を表していない進捗情報、つまり第1の情報又は第2の情報をいう。
すなわち、本ステップでは、ECU13は、S20にて取得された進捗情報に複数の更新情報が含まれる場合に、これらの更新情報のそれぞれによって表される複数の終了手順が互いに連続する手順であるか否かを判断している。
終了手順は、上述のように、例えば「1」、「2」等といったように、数値による識別符号で表されている。ECU13は、第1の情報による終了手順を示す情報と、第2の情報による終了手順を示す情報とに連続性がある場合、処理をS50へ移行させる。また、ECU13は、これらに連続性が無い場合、処理を上述のS35へ移行させる。
ECU13は、S50では、第1の情報による終了手順を示す情報と、第2の情報による終了手順を示す情報とに連続性がある場合に、第1の情報による終了手順及び第2の情報による終了手順のうちいずれが上述の複数手順における最後の手順(以下、最終手順)に最も近い手順であるか、を特定する。以下でいう直前手順とは、第1の情報による終了手順及び第2の情報による終了手順のうち、最終手順に最も近い手順をいう。
ここで、ECU13は、第1の情報による終了手順を示す情報としての識別符号が、第2の情報による終了手順を示す情報としての識別符号よりも大きい場合に、第1の情報による終了手順を直前手順として特定し、処理をS60へ移行させる。一方、ECU13は、第1の情報による終了手順を示す情報としての識別符号が、第2の情報による終了手順を示す情報としての識別符号よりも小さい場合に、第2の情報による終了手順を直前手順として特定し、処理をS55へ移行させる。
ECU13は、S55では、第2の情報を取得する。すなわち、第2の情報によって表される終了情報を取得する。そして、ECU13は、処理をS65へ移行させる。
ECU13は、S60では、第1の情報を取得する。すなわち、第1の情報によって表される終了情報を取得する。そして、ECU13は、処理をS65へ移行させる。
ECU13は、S65では、上述の複数手順のうち、S55またはS60にて取得された終了手順の次の手順を再開手順として特定する。ECU13は、センタ21に、再開手順を表す情報を送信する。そして、ECU13は、処理をS70へ移行させる。
ECU13は、S70では、センタ21から再開手順の実行を要求する処理要求を受信したか否か判断する。ECU13は、処理要求を受信するまで待機し、処理要求を受信すると処理をS75へ移行させる。
ECU13は、S75では、処理要求に従って、処理要求にて要求された手順を実行する。
ECU13は、S80では、処理要求にて要求された手順が完了したか否かを判断する。ECU13は、処理要求にて要求された手順が完了するまで待機し、処理要求にて要求された手順が完了すると処理をS85へ移行させる。
ECU13は、S85では、新たな進捗情報を取得する。ここでは、ECU13は、処理要求にて要求された書換手順であって完了した書換手順である終了情報を表す情報含む進捗情報を新たな進捗情報として生成する。
ECU13は、S90では、全ての管理ブロックのそれぞれに記憶されている全ての進捗情報がFFHであるか否か、を判断する。具体的には、ECU13は、第1の情報ブロック101及び第2の情報ブロック102がいずれも消去状態であるか否か、を判断する。
ここで、ECU13は、全ての進捗情報がFFHである場合に処理をS95へ移行させる。ECU13は、S95では、第1の情報ブロック101及び第2の情報ブロック102のうち、予め定められた一方を更新する。ここでいう更新するとは、S85にて取得された新たな進捗情報を、1つの管理ブロックに書き込むことをいう。ここでは、ECU13は、第1の情報ブロック101を更新する。すなわち、ECU13は、第1の情報ブロック101にS85にて取得された新たな進捗情報を書き込む。そして、ECU13は、処理をS115へ移行させる。一方、ECU13は、全ての進捗情報がFFHでない場合に処理をS100へ移行させる。
ECU13は、S100では、全ての進捗情報のなかにFFHが含まれているか否かを判断する。つまり、ECU13は、第1の情報ブロック101及び第2の情報ブロック102のうち、消去状態のブロックがあるか否かを判断する。ここで、ECU13は、第1の情報ブロック101及び第2の情報ブロック102のうち、消去状態のブロックがある場合に、処理をS105へ移行させる。ECU13は、S105では、第1の情報ブロック101及び第2の情報ブロック102のうち、消去状態のブロックを更新する。つまり、消去状態のブロックにS85にて取得された新たな進捗情報を書き込む。そして、処理をS115へ移行させる。
一方、ECU13は、第1の情報ブロック101及び第2の情報ブロック102のうち、消去状態のブロックが無い場合に、処理をS110へ移行させる。つまり、複数の管理ブロックに記憶されている進捗情報のそれぞれが全て更新情報である場合に、処理をS110へ移行させる。
ECU13は、S105では、第1の情報が表す終了手順を示す情報、及び第2の情報が表す終了手順を表す情報のうち、上述の複数手順における先頭手順に最も近い手順を特定し、該手順が記憶されている管理ブロックを更新する。そして、ECU13は、処理をS115へ移行させる。
ECU13は、S115では、センタ21から完了通知を受信したか否かを判断する。ここで、ECU13は、完了通知を受信した場合に処理をS115へ移行させる。一方、ECU13は、完了通知を受信していない場合に処理をS70へ移行させ、上述の複数手順において再開手順から後の手順について、S70−S110の処理を繰り返し実行する。つまり、ECU13は、再開手順から最終手順迄、S70−S110を繰り返し実行する。
ECU13は、S115では、センタ21から受信した完了通知に対して、センタ21へACKである最終応答を送信し、書換処理を終了する。
[2−4.外部装置が実行する処理]
次に、外部装置20が、外部装置20に記憶されている新しい制御プログラムをECU13に送信し、ECU13の制御プログラムを書き換えるための外部装置処理、を図11のフローチャートに基づいて説明する。外部装置20は、ECU13との間の通信が途絶したことを検出可能に構成されている。図11に示す処理は、例えば、ECU13との間の通信が途絶したことをきっかけとして、開始される。
はじめに、外部装置20は、S210では、ECU13から再開手順を受信したか否かを判断する。外部装置20は、再開手順が受信されていないと判断された場合は、再開手順が受信されたと判断される迄待機する。外部装置20は、再開手順が受信されたと判断された場合に、処理をS220へ移行させる。
外部装置20は、S220では、ECU13へ処理要求を送信する。ここでいう処理要求とは、ECU13から受信した再開手順の実行をECU13に要求するものである。
外部装置20は、S230では、ECU13からACKを受信したか否かを判断する。ここでいうACKは、S230にて送信した処理要求に従う手順がECU13にて実行されたことを表す応答である。外部装置20は、ACKが受信されていないと判断された場合は、ACKが受信されたと判断される迄待機する。外部装置20は、再開手順が受信されたと判断された場合に、処理をS240へ移行させる。
外部装置20は、S240では、上述の複数手順のうち全ての書換手順が完了したか否かを判断する。ここで、外部装置20は、全ての書換手順が完了したと判断された場合に処理をS250へ移行させる。一方、外部装置20は、全ての書換手順が完了していないと判断された場合に、処理をS220へ移行させ、再開手順から最終手順までのそれぞれについて、S220−S240の処理を繰り返し実行する。
外部装置20は、S250では、ECU13へ完了通知を送信する。
外部装置20は、S260では、ECU13から最終応答を表すACKを受信したか否かを判断する。外部装置20は、最終応答を表すACKが受信されていないと判断された場合は、該ACKが受信されたと判断される迄待機し、該ACKが受信されたと判断されると、本外部装置処理を終了する。
[3.効果]
以上詳述した実施形態によれば、以下の効果を奏する。
(3a)ECU13は、不揮発性メモリであるROM34を有する。ECU13は、S85では、新たな進捗情報を繰り返し取得する。ECU13は、S85、S95、S100では、進捗情報が取得される毎に、例えば第1の情報ブロック101及び第2の情報ブロック102といった複数の管理ブロック、のうちの少なくとも1つに、進捗情報を記憶させる。ここで特にECU13は、複数の管理ブロックのうち、進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに、進捗情報を記憶させる。
その結果、仮に進捗情報の書き換えが行われている際にECU13が電源断になったとしても、進捗情報は複数の管理ブロックのいずれかに記憶されている。つまり、不揮発性メモリを有するECU13が電源断となった場合であっても、不揮発性メモリにおけるデータの書き換えの進捗を表す進捗情報を保持することができる。
(3b)ECU13は、(3a)に記載の構成において、S85では、書換手順が実行される毎に、進捗情報を取得する。進捗情報には終了手順を表す情報が含まれている。ECU13は、S95、S105、S110では、複数の管理ブロックのうちの1つの管理ブロックであって進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに、取得した進捗情報を記憶させる。
ECU13は、S5では、ECU13への電力の供給が停止から開始となった際に、上述の複数手順のうちの全ての書換手順が実行されてROM34の書き換えが完了しているか否かを判断する。ECU13は、書き換えが完了していないと判断された場合に、S20では複数の管理ブロックのそれぞれから進捗情報を取得し、S35、S65では、取得した進捗情報に基づいて再開手順を特定する。
その結果、進捗情報に含まれる終了手順は上述の複数手順のうちの実行が終了した書換手順を表しているので、終了情報に基づいて、再開手順を特定することが可能となる。また、進捗情報は、複数の管理ブロックのうち進捗情報が前回記憶された管理ブロックとは異なるブロックに記憶されるので、仮に進捗情報が複数の管理ブロックの一方に書き込まれる際に通信途絶等の理由によりECU13が電源断になったとしても、複数の管理ブロックの他方には既に書き込まれた進捗情報が残っている。
従って、ECU13が電源断になったとしても、進捗情報を保持することができる。また、進捗情報に基づいて特定された再開手順から書き換えを再開することができるので、書き換えに要する時間を短縮することができる。
(3c)ECU13は、(3b)に記載の構成において、S35では、S20にて複数の管理ブロックのそれぞれから取得された全ての進捗情報が消去状態を表しているか否かを判断し、全ての進捗情報が消去状態を表している場合に、上述の複数手順のうちの先頭手順を再開手順として特定する。
その結果、複数の管理ブロックが全て消去状態であったとしても、先頭手順が再開手順として特定されるので、制御プログラムの書き換えを確実に再開することができる。
(3d)ECU13は、(3b)または(3c)に記載の構成において、S65では、S20にて複数の管理ブロックのそれぞれから取得された全ての進捗情報のうち少なくとも1つが、消去状態を表していない更新情報であるか否かを判断し、全ての進捗情報のうち少なくとも1つが更新情報である場合は、更新情報に基づいて再開手順を特定する。
すなわち、少なくとも1つの更新情報が取得された場合、更新情報に基づいて再開手順を特定することができる。その結果、書き換えに要する時間を短縮することができる。
(3e)ECU13は、(3d)に記載の構成において、S65では、複数の管理ブロックのそれぞれから取得された全ての進捗情報なかに複数の更新情報が含まれる場合、複数の更新情報のそれぞれによって表される複数の終了手順のうち、上述の複数手順における最終手順に最も近い手順である直前手順を特定し、直前手順の次の手順を再開手順として特定する。
すなわち、複数の更新情報が取得された場合、より最終手順に近い手順から、書き換えを再開することができる。その結果、書き換えに要する時間を短縮することができる。
(3f)ECU13は、(3e)に記載の構成において、S45では、全ての進捗情報のなかに複数の更新情報が含まれる場合、複数の終了手順のそれぞれが互いに連続する手順であるか否かを判断する。
その結果、例えば、複数の管理ブロックのそれぞれに予め定められた順番に進捗情報が記憶されるような場合に、複数の終了手順のそれぞれが互いに連続する手順であると判断されたときには、進捗情報が正常に記憶されている状況であると認識することができる。
(3g)ECU13は、(3f)に記載の構成において、S65では、上述のように、複数の終了手順のそれぞれが互いに連続する手順であると判断された場合に、直前手順を特定し、直前手順の次の手順を再開手順として特定する。
すなわち、進捗情報が正常に記憶されている状況であると認識された場合に、より最終手順に近い手順から、書き換えを再開することができる。その結果、書き換えを開始すべき手順を正確に特定することができる。
(3h)ECU13は、(3f)または(3g)に記載の構成において、S65では、上述のように、複数の終了手順のそれぞれが互いに連続する手順でないと判断された場合に、上述の複数手順のうち先頭手順を再開手順として特定する。
すなわち、進捗情報が正常に記憶されている状況でないと認識された場合には、先頭手順から書き換えが再開される。その結果、書き換えを確実に実行することができる。
(3i)ECU13は、(3d)から(3h)のいずれか一項に記載の構成において、S35では、複数の管理ブロックのそれぞれから取得された全ての進捗情報に1つの更新情報が含まれる場合に、更新情報によって表される終了手順の次の手順を再開手順として特定する。
すなわち、1つの更新情報が取得された場合、該更新情報に基づいて、再開手順を特定することができる。その結果、書き換えに要する時間を短縮することができる。
(3j)ECU13は、(3b)から(3i)のいずれか一項に記載の構成において、車両に搭載され、車両に搭載される他の電子制御装置としてのDCM−ECU11やC−GW12等と通信線15によって通信可能に接続されて車両ネットワークを構成している。ECU13は、S35、S65では、車両ネットワーク外の装置であってECU13と通信可能な外部装置20に、再開手順を表す情報を送信する。
上述のように、外部装置20は、対象データをECU13に送信するように構成されている。ECU13は、外部装置20から受信した対象データをROM34に書き込むことによって書き換えを実行するように構成されている。本実施形態では、再開手順を外部装置20へ送信するので、外部装置20に、制御プログラムを構成するデータのうち書き換えの再開に必要な対象データを送信させることが可能となる。
(3k)ECU13は、(3b)から(3j)のいずれかに記載の構成において、S95では、全ての管理ブロックが消去状態であるか否かを判断し、全ての管理ブロックが消去状態である場合に、予め定められた1つの管理ブロックに進捗情報を記憶させるように構成される。その結果、全ての管理ブロックが消去状態である場合に、進捗情報を記憶させるべき管理ブロックが予め定められているので、進捗情報を確実に記憶させることができる。
(3l)ECU13は、(3b)から(3k)のいずれかに記載の構成において、S105では、全ての管理ブロックのうち少なくとも1つの管理ブロックが消去状態であるか否かを判断し、少なくとも1つの管理ブロックが消去状態である場合に、少なくとも1つの管理ブロックのうちの1つに進捗情報を記憶させるように構成される。例えば、上述のように、第1の情報ブロック101及び第2の情報ブロック102のうち一方が消去状態である場合に、該消去状態である第2の情報ブロック102に進捗情報が記憶される。
すなわち、新たな進捗情報は消去状態でない管理ブロックよりも優先して消去状態である管理ブロックに記憶されるので、過去の進捗情報及び新たな進捗情報をそれぞれ異なる管理ブロックに記憶させることができる。その結果、(3a)と同様の効果を得ることができる。
(3m)ECU13は、(3b)から(3l)のいずれかに記載の構成において、S110では、全ての管理ブロックが非消去状態であるか否かを判断するように構成される。ECU13は、全ての管理ブロックが非消去状態である場合に、全ての管理ブロックのそれぞれに記憶されている複数の終了手順のうちの1つであって上述の先頭手順に最も近い終了手順が記憶されている管理ブロックに、進捗情報を記憶させるように構成される。
例えば、上述のように、第1の情報ブロック101及び第2の情報ブロック102のうち両方が非消去状態である場合に、第1の情報ブロック101及び第2の情報ブロック102のそれぞれに記憶されている複数の終了手順のうち先頭手順に最も近い終了手順が記憶されている管理ブロックに進捗情報が記憶される。その結果、より直近の進捗情報を保持することができる。
上記実施形態における車両制御システム1が制御システムに相当し、ECU13が電子制御装置に相当し、ROM34が不揮発性メモリに相当する。また、ECU13が情報取得部、記憶実行部、完了判断部、再開特定部、連続判断部、再開送信部に相当する。また、S85が情報取得部としての処理に相当し、S95、S105、S110が記憶実行部としての処理に相当し、S5が完了判断部としての処理に相当し、S35、S65が再開特定部、再開送信部としての処理に相当し、S45が連続判断部としての処理に相当する。
DCM−ECU11、C−GW12が、車両ネットワークを構成する、他の電子制御装置に相当する。第1の情報ブロック101及び第2の情報ブロックのそれぞれが管理ブロックに相当し、第1の情報及び第2の情報のそれぞれが進捗情報に相当し、複数手順が複数の書換手順に相当する。また、先頭手順が複数の書換手順のうち最初の書換手順に相当し、終了手順が複数の書換手順における最後の書換手順に相当する。
[4.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
(4a)上記実施形態では、DCM−ECU11、C−GW12、ECU13は、CAN規格に従って通信を行うように構成されていた。但し、これに限定されるものではない。DCM−ECU11、C−GW12、ECU13は、Ethernet規格に従って通信を行うように構成され得る。Ethernetは登録商標である。
(4b)上記実施形態では、上述の複数手順に、認証手順、消去手順、書込手順としての第1の書込手順及び第2の書込手順、ベリファイ手順、完了手順、が含まれていたが、これらに限定されるものではない。上述の複数手順には、認証手順、消去手順、書込手順、ベリファイ手順、完了手順、のうち一又は複数が含まれ得る。また、書込手順は、書き換えの対象となる制御プログラムを表すデータを分割することなく行われても良い。
(4c)上記実施形態では、進捗情報は、第1の情報ブロック101及び第2の情報ブロック102といった、異なる2つの管理ブロックに交互に記憶されていたが、これに限定されるものではない。進捗情報は、第1の情報ブロック101、第2の情報ブロック102、及び図示しない第3の情報ブロックといった、異なる3つの管理ブロックに記憶されてもよい。または、進捗情報は、4つ以上の異なる管理ブロックに記憶されてもよい。いずれの場合であっても、進捗情報が前回書き込まれた管理ブロックとは異なる管理ブロックに書き込まれることによって、上記実施形態と同様の効果が奏される。
(4d)上記実施形態では、制御プログラムの書き換えを行う例を説明したが、これに限定されるものではない。例えば、ECU13は、ROM34の書換領域342に、診断装置22による車両の診断結果に応じて書き換えられるデータ(以下、診断データ)が記憶されていても良い。そして、ECU13は、上記実施形態と同様に書換処理を実行することによって、ROM34に記憶されている診断データを対象データとして、診断データの書き換えを実現しても良い。
(4e)上記実施形態では、ECU13は、S85にて進捗情報が取得される毎に、複数の管理ブロックのうちの1つに、進捗情報を記憶させていたが、これに限定されるものではない。ECU13は、S85にて進捗情報が取得される毎に、複数の管理ブロックのうちの2つ以上の管理ブロックに、進捗情報を記憶させるように構成されても良い。
(4f)上記実施形態では、図5、図7にて第2の書込手順の説明で示すように、書換手順の完了時に、進捗情報を更新すべき管理ブロックを消去していた。但し、これに限定されるものではない。例えば、図5、図7にて第2の書込手順の開始直前に進捗情報を更新すべき管理ブロックである第1の情報ブロック101を消去する、といったように、書換手順の開始直前に、進捗情報を更新すべき管理ブロックを消去してもよい。
(4g)上記実施形態では、図6に示すB5にてECU13から再開手順が通知された際、外部装置20は、B6にて、ECU13から受信した再開手順を表す情報をACKとしてECU13へ送信するように構成されていた。但し、これに限定されるものではない。ECU13は、B6にて、再開手順と、外部装置20からACKとして受信した再開手順とが一致しているか否かを判断するように構成されてもよい。ここで、ECU13は、再開手順と、外部装置20からACKとして受信した再開手順とが一致している場合に、B7以降の処理を実行するように構成されてもよい。一方、ECU13は、再開手順と、外部装置20からACKとして受信した再開手順とが不一致である場合に、外部装置20へ否定応答を送信し、外部装置20へ先頭処理から書き換えを実行することを要求するように構成されてもよい。
(4h)上記実施形態は、車両制御システム1として実現されても良い。車両制御システム1は、車両に搭載されて車両ネットワークを構成し、書き換え可能なメモリである不揮発性メモリを有するECU13と、車両ネットワーク外の装置であってECU13と通信可能な外部装置20と、を備えていても良い。ここで、車両制御システム1は、上記(3a)に記載のように構成されたECU13を備えていても良い。また、車両制御システム1が備えるECU13は、更に、上記(3b)−(3m)に記載のように構成されていても良い。
(4i)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
(4j)上述した車両制御システム1、車載制御システム10、外部装置20、センタ21、診断装置22、ECU13の他、外部装置20、センタ21、ECU13を機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、書き換え方法など、種々の形態で本開示を実現することもできる。
1 車両制御システム、13 ECU、20 外部装置。

Claims (10)

  1. 書き換え可能なメモリである不揮発性メモリを有する電子制御装置(13)であって、
    前記不揮発性メモリは、予め定められた大きさの記憶領域を表す複数のブロックを有し、且つ、前記ブロック単位で、該ブロックが該ブロックに記憶されている全てのデータが消去された状態である消去状態にされた後に該ブロックに書き換えの対象となるデータである対象データが書き込まれることによって、書き換えが行われるように構成されており、
    前記書き換えの進捗の度合いを表す情報である進捗情報、を繰り返し取得するように構成された情報取得部(S85)と、
    前記進捗情報が取得される毎に、前記対象データが書き込まれるブロックとは異なる予め定められた複数の管理ブロックのうち少なくとも1つに、前記進捗情報を記憶させるように構成された記憶実行部(S95、S105、S110)と、
    を備え、
    前記記憶実行部は、前記複数の管理ブロックのうち、前記進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに、前記進捗情報を記憶させるように構成された
    電子制御装置。
  2. 請求項1に記載の電子制御装置であって、
    前記不揮発性メモリは、予め定められた複数の書換手順が順に実行されることによって、前記書き換えが行われるように構成されており、
    前記情報取得部は、前記書換手順が実行される毎に、前記進捗情報であって前記複数の書換手順のうち実行が終了した手順である終了手順を表す情報を含む進捗情報を取得し、
    前記記憶実行部は、前記複数の管理ブロックのうちの1つであって前記進捗情報が前回記憶された管理ブロックとは異なる管理ブロックに、前記進捗情報を記憶させ、
    全ての前記複数の書換手順が実行されて前記書き換えが完了したか否かを判断するように構成された完了判断部(S5)と、
    前記書き換えが完了していないと判断された場合に、前記複数の管理ブロックのそれぞれから前記進捗情報を取得し、前記進捗情報に基づいて、前記複数の書換手順に含まれる1つの手順であって前記書き換えを再開するときの最初の書換手順を表す再開手順を特定するように構成された再開特定部(S35、S65)と、
    を更に備える電子制御装置。
  3. 請求項2に記載の電子制御装置であって、
    前記再開特定部(S35)は、前記複数の管理ブロックのそれぞれから取得された全ての前記進捗情報が前記消去状態を表しているか否かを判断し、前記全ての進捗情報が前記消去状態を表している場合に、前記複数の書換手順のうち最初の書換手順を前記再開手順として特定するように構成された
    電子制御装置。
  4. 請求項2または請求項3に記載の電子制御装置であって、
    前記再開特定部(S65)は、前記複数の管理ブロックのそれぞれから取得された全ての前記進捗情報のうち少なくとも1つが、前記進捗情報であって前記消去状態を表していない更新情報であるか否かを判断し、前記全ての進捗情報のうち少なくとも1つが前記更新情報である場合、前記更新情報に基づいて前記再開手順を特定するように構成された
    電子制御装置。
  5. 請求項4に記載の電子制御装置であって、
    前記再開特定部(S65)は、前記複数の管理ブロックのそれぞれから取得された全ての前記進捗情報なかに複数の前記更新情報が含まれる場合、前記複数の更新情報のそれぞれによって表される複数の前記終了手順のうちの1つであって前記複数の書換手順における最後の書換手順に最も近い直前手順を特定し、前記直前手順の次の手順を前記再開手順として特定するように構成された
    電子制御装置。
  6. 請求項5に記載の電子制御装置であって、
    前記再開特定部(S65)は、前記全ての進捗情報のなかに複数の更新情報が含まれる場合、前記複数の終了手順のそれぞれが互いに連続する手順であるか否かを判断するように構成された連続判断部(S45)を備える
    電子制御装置。
  7. 請求項6に記載の電子制御装置であって、
    前記再開特定部(S65)は、前記複数の終了手順のそれぞれが互いに連続する手順であると判断された場合に、前記直前手順を特定し、前記直前手順の次の手順を前記再開手順として特定するように構成された
    電子制御装置。
  8. 請求項6または請求項7に記載の電子制御装置であって、
    前記再開特定部(S35)は、前記複数の終了手順のそれぞれが互いに連続する手順でないと判断された場合に、前記複数の書換手順のうち最初の書換手順を前記再開手順として特定するように構成された
    電子制御装置。
  9. 請求項4から請求項8のいずれか一項に記載の電子制御装置であって、
    前記再開特定部(S65)は、前記複数の管理ブロックのそれぞれから取得された全ての前記進捗情報に1つの前記更新情報が含まれる場合に、前記更新情報によって表される前記終了手順の次の手順を前記再開手順として特定するように構成された
    電子制御装置。
  10. 請求項2から請求項9のいずれか一項に記載の電子制御装置であって、
    車両に搭載され、前記車両に搭載される他の電子制御装置と通信線によって通信可能に接続されて車両ネットワークを構成しており、
    前記車両ネットワーク外の装置であって当該電子制御装置と通信可能な外部装置に、前記再開手順を表す情報を送信するように構成された再開送信部(S35、S65)
    を更に備える電子制御装置。
JP2017136365A 2017-07-12 2017-07-12 電子制御装置 Active JP6935694B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017136365A JP6935694B2 (ja) 2017-07-12 2017-07-12 電子制御装置
DE102018210868.4A DE102018210868A1 (de) 2017-07-12 2018-07-02 Elektronische Steuereinheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017136365A JP6935694B2 (ja) 2017-07-12 2017-07-12 電子制御装置

Publications (2)

Publication Number Publication Date
JP2019020837A true JP2019020837A (ja) 2019-02-07
JP6935694B2 JP6935694B2 (ja) 2021-09-15

Family

ID=64745157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017136365A Active JP6935694B2 (ja) 2017-07-12 2017-07-12 電子制御装置

Country Status (2)

Country Link
JP (1) JP6935694B2 (ja)
DE (1) DE102018210868A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021140810A1 (ja) * 2020-01-10 2021-07-15
JP7490518B2 (ja) 2020-09-29 2024-05-27 本田技研工業株式会社 制御システム、移動体、プログラム、及び制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP2006298261A (ja) * 2005-04-22 2006-11-02 Denso Corp 自動車用制御ユニット
JP2012103181A (ja) * 2010-11-12 2012-05-31 Clarion Co Ltd 車載機のオンライン更新方法
JP2014016890A (ja) * 2012-07-10 2014-01-30 Denso Corp 電子制御装置およびデータ書換システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4266742B2 (ja) 2003-08-04 2009-05-20 Necディスプレイソリューションズ株式会社 フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP2006298261A (ja) * 2005-04-22 2006-11-02 Denso Corp 自動車用制御ユニット
JP2012103181A (ja) * 2010-11-12 2012-05-31 Clarion Co Ltd 車載機のオンライン更新方法
JP2014016890A (ja) * 2012-07-10 2014-01-30 Denso Corp 電子制御装置およびデータ書換システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021140810A1 (ja) * 2020-01-10 2021-07-15
WO2021140810A1 (ja) * 2020-01-10 2021-07-15 日立Astemo株式会社 電子制御装置及び電子制御システム
JP7373590B2 (ja) 2020-01-10 2023-11-02 日立Astemo株式会社 電子制御装置及び電子制御システム
JP7490518B2 (ja) 2020-09-29 2024-05-27 本田技研工業株式会社 制御システム、移動体、プログラム、及び制御方法

Also Published As

Publication number Publication date
JP6935694B2 (ja) 2021-09-15
DE102018210868A1 (de) 2019-01-17

Similar Documents

Publication Publication Date Title
CN110474961B (zh) 纯电乘用车基于can总线实现多路远程ota升级方法
US6275911B1 (en) Memory writing device for an electronic device
JP2010247590A (ja) 車両のための書き換えシステム
EP0990989A2 (en) Microcomputer provided with flash memory and method of storing program into flash memory
CN107422658B (zh) 程序变更获取方法
CN112000358B (zh) 充电桩的升级方法与智能充电桩
JP6935694B2 (ja) 電子制御装置
WO2019123747A1 (ja) 自動車用電子制御装置及びその制御方法
JP6447469B2 (ja) 書換システム
JP3835969B2 (ja) 車両制御装置のための書き換えシステム
JP2015210669A (ja) プログラム書き換え方法
JP6575157B2 (ja) ファームウェアのダウンロード方法及びファームウェア組込機器
JP6699324B2 (ja) 電子制御装置及びデータ書換えシステム
WO2019064644A1 (ja) 電子制御装置及び制御プログラム検証方法
US20110082995A1 (en) Information processing apparatus
JP6334776B1 (ja) 電子制御装置
JPWO2012077604A1 (ja) 処理装置、プログラム更新方法、およびプログラム
CN112732309B (zh) Flash存储器的更新方法、装置和电子设备
KR20080042502A (ko) 차량의 전자제어장치 및 그것의 제어 프로그램 설정방법
JP6528700B2 (ja) 車載制御装置、及び車載制御装置を含む車載ネットワーク
US20240070282A1 (en) Firmware update method and apparatus for a mcu of a vehicle
JP5787095B2 (ja) 不揮発性メモリへのデータ記憶方法
WO2015194100A1 (ja) 記憶装置、フラッシュメモリ制御装置、及びプログラム
JP6699598B2 (ja) 車両制御装置
JP6969103B2 (ja) 電子制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210706

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: 20210727

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210809

R151 Written notification of patent or utility model registration

Ref document number: 6935694

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151