JP2016103155A - リプログラミングシステム - Google Patents

リプログラミングシステム Download PDF

Info

Publication number
JP2016103155A
JP2016103155A JP2014241122A JP2014241122A JP2016103155A JP 2016103155 A JP2016103155 A JP 2016103155A JP 2014241122 A JP2014241122 A JP 2014241122A JP 2014241122 A JP2014241122 A JP 2014241122A JP 2016103155 A JP2016103155 A JP 2016103155A
Authority
JP
Japan
Prior art keywords
data
old
address
new
control software
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
JP2014241122A
Other languages
English (en)
Other versions
JP6301820B2 (ja
Inventor
山田 裕介
Yusuke Yamada
裕介 山田
佐藤 仁
Hitoshi Sato
仁 佐藤
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2014241122A priority Critical patent/JP6301820B2/ja
Publication of JP2016103155A publication Critical patent/JP2016103155A/ja
Application granted granted Critical
Publication of JP6301820B2 publication Critical patent/JP6301820B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】制御ソフトウェアを更新することにともない、バックアップデータ記憶領域上のバックアップデータの同一性を維持しつつ効率的に再配置する技術を提供する。【解決手段】本発明に係るリプログラミングシステムは、不揮発性メモリ上における旧版バックアップデータの配置を記述した旧配置データと、新版バックアップデータの配置を記述した新配置データとを比較し、両者が同一であれば旧版バックアップデータを流用し、同一でなければ新版バックアップデータを新たに配置する。【選択図】図1

Description

本発明は、車両の動作を制御する処理を記述した制御ソフトウェアを更新する技術に関する。
車両の動作を制御する車両制御装置は、電気的に記憶内容を書き換えることができるフラッシュメモリやEEPROM(Electrically Erasable Programmable Read Only Memory)などのような不揮発性メモリを備え、同メモリ内に制御ソフトウェアを格納している。制御ソフトウェアは、エンジンや変速機などの車両が備える機器を制御する処理を実装している。下記特許文献1は、外部装置からの要求に応じて、制御ソフトウェアを書き換える技術について記載している。
車両制御装置は、制御ソフトウェアを実行することによって更新されるデータのうち、車両制御装置に対する電源供給が停止されても継続して保存すべきデータを、EEPROMなどの書換可能な不揮発性メモリ内に永続化して記憶する。例えば学習値や故障診断結果などのデータがこれに該当する。以下、このようなデータのことをバックアップデータと呼ぶ。
制御ソフトウェアを更新するとき、更新の前後においてバックアップデータの値を同一に維持するため、バックアップデータを格納する不揮発性メモリ上のアドレスは、一般に特定のアドレスに固定されている。例えば不揮発性メモリ上のあるアドレス範囲内はバックアップデータを格納する記憶領域として固定され、当該記憶領域にはその他データを格納しないようにしている。以下ではこの記憶領域のことをバックアップデータ記憶領域と呼ぶ。
特開2002−149432号公報
新規にバックアップデータを追加する場合、バックアップデータ記憶領域のうち他のバックアップデータが保存されていない領域へデータを格納する必要がある。このとき、データ型のアライメントの制約や未割当領域の空き領域の大きさなどの原因により、データとデータとの間に小さい未割当領域が残存する場合がある。この未割当領域により、記憶領域全体としては十分な空き領域を有していても、新たなバックアップデータを追加することができない可能性がある。
上記のような状況を回避するための手段として、バックアップデータを再配置することにより未割当領域を除去することが考えられる。しかし制御ソフトウェアを更新する従来の手順は、更新前後においてバックアップデータの値を同一に維持することを確実にするため、バックアップデータ記憶領域上におけるバックアップデータのアドレスは変更しないようにしている。
本発明は、上記のような課題に鑑みてなされたものであり、制御ソフトウェアを更新することにともない、バックアップデータ記憶領域上のバックアップデータの同一性を維持しつつ効率的に再配置する技術を提供することを目的とする。
本発明に係るリプログラミングシステムは、不揮発性メモリ上における旧版バックアップデータの配置を記述した旧配置データと、新版バックアップデータの配置を記述した新配置データとを比較し、両者が同一であれば旧版バックアップデータを流用し、同一でなければ新版バックアップデータを新たに配置する。
本発明に係るリプログラミングシステムによれば、バックアップデータの同一性を維持しつつ、制御ソフトウェアを更新することにともなってバックアップデータを再配置することができる。これにより、データとデータとの間の未割当領域を抑制し、記憶領域を効率よく使用することができる。
実施形態1に係るリプログラミングシステム100の構成図である。 旧配置データ141と新配置データ142を用いて再配置データを作成する様子を示す概念図である。 ECU110の通常動作を説明するフローチャートである。 ECU110が制御ソフトウェアを更新する処理を説明するフローチャートである。 リプログラミング装置130が再配置データを作成する手順を説明するフローチャートである。 書換ソフトウェアが再配置データの記述にしたがってバックアップデータをEEPROM114に対して再配置する処理を説明するフローチャートである。 実施形態2において旧配置データ141と新配置データ142を用いて再配置データを作成する様子を示す概念図である。 実施形態2においてリプログラミング装置130が再配置データを作成する手順を説明するフローチャートである。 実施形態2において書換ソフトウェアが再配置データの記述にしたがってバックアップデータをEEPROM114に対して再配置する処理を説明するフローチャートである。 実施形態3に係るリプログラミングシステム100の構成図である。
<実施の形態1>
図1は、本発明の実施形態1に係るリプログラミングシステム100の構成図である。リプログラミングシステム100は、車両制御装置(Electronic Control Unit:ECU)110が実行する制御ソフトウェアを更新するためのシステムであり、リプログラミング装置130と配置データベース140を備える。
ECU110は、車両の動作を制御する処理を実装した制御ソフトウェアを実行することにより当該車両の動作を制御する装置である。ECU110は、CPU(Central Processing Unit)111、ROM(Read Only Memory)112、RAM(Random Access Memory)113、EEPROM114、通信回路115を備える。
CPU111は、ROM112が格納している制御ソフトウェアを実行する演算装置である。以下では記載の便宜上、CPU111が実行するソフトウェアを動作主体として説明する場合があるが、実際にそれらソフトウェアを実行するのはCPU111である。RAM113は、CPU111が使用するデータを一時的に保存するメモリデバイスである。EEPROM114は、バックアップデータを格納するバックアップデータ記憶領域を有し、同領域内にバックアップデータを格納している。通信回路115は、通信線150を介して他のECU110と通信する。
CPU111は、必要に応じて他のECU110と通信してデータを取得し、制御ソフトウェアを実行することにより車両の動作を制御する。CPU111は、制御ソフトウェアを実行する際に、EEPROM114が格納しているバックアップデータをRAM113上へ読み出し、これを更新する。制御ソフトウェアを終了するとき(あるいはECU110をシャットダウンするときなど適当なタイミング)、CPU111はRAM113上のバックアップデータをEEPROM114へ書き戻す。EEPROM114はECU110に対する電源供給が遮断されてもデータを保持するので、バックアップデータは永続的に保存される。
リプログラミング装置130は、コネクタ120を介して当該車両に接続され、ROM112が格納している制御ソフトウェアを更新するようCPU111に対して指示する。ROM112は、制御プログラムを更新する処理を記述した書換ソフトウェアをさらに格納しており、CPU111はリプログラミング装置130から更新指示および制御ソフトウェアの新版を受け取ると、書換ソフトウェアを実行することによりROM112上の制御ソフトウェアを更新する。
リプログラミング装置130は、制御ソフトウェアを更新する際に、EEPROM114内のバックアップデータを新版制御ソフトウェアの仕様に応じて更新する場合がある。リプログラミング装置130は、これを契機にしてEEPROM114上のバックアップデータを再配置することにより、微小な未割当領域を解消することを図る。
配置データベース140は、EEPROM114上においてバックアップデータが配置されるアドレスを記述した配置データを保持するデータベースである。旧配置データ141は、現行バージョンを含む旧版制御ソフトウェアに対応するバックアップデータのEEPROM114上における配置アドレスを記述したデータであり、制御ソフトウェアのバージョン毎に同配置アドレスを記述している。新配置データ142は、更新後の制御ソフトウェア(新版制御ソフトウェア)が使用するバックアップデータのEEPROM114上における配置アドレスを記述したデータである。
新配置データ142が記述する配置アドレスは、例えば制御ソフトウェアの新版を作成するユーザが任意に指定することができる。ユーザはEEPROM114上においてバックアップデータが理想的に配置されるように配置アドレスを指定し、リプログラミング装置130がその指定にしたがってバックアップデータを再配置することにより、制御ソフトウェアを更新することにともなってEEPROM114上のデータ配置を最適化することができる。
リプログラミング装置130は、新配置データ142の記述にしたがって、新版バックアップデータをEEPROM114に対して書き込むようにCPU111へ指示する。このとき、新版バックアップデータと旧版バックアップデータとが共通している部分については、RAM113上の旧版バックアップデータのコピーを流用することができる。そこでリプログラミング装置130は、旧配置データ141と新配置データ142を比較し、旧配置データ141が記述している旧版バックアップデータのうち新配置データ142が記述している新版バックアップデータとして流用できる部分についてはそのまま用いるよう指示する。この指示を記述したデータを再配置データと呼ぶ。
図2は、旧配置データ141と新配置データ142を用いて再配置データを作成する様子を示す概念図である。以下図2を用いて、再配置データを作成する手順について説明する。
旧配置データ141は、EEPROM114のバックアップデータ記憶領域内の各アドレス上に格納されているデータの配置を記述している。ここでは1バイト単位の記憶領域毎に、アドレス/データラベル/データサイズを記述している例を示した。図2に示す例においては、アドレス1〜アドレス3はラベル1のデータを格納しており、そのデータサイズはサイズ1である。以下同様に各アドレスが格納しているデータのデータラベルとデータサイズをバックアップデータ記憶領域の先頭アドレスから順に記述している。
新配置データ142は、新版制御ソフトウェアを作成するユーザが任意に指定する。図2に示す例においては、アドレス1〜アドレス3とアドレス7については旧版バックアップデータと同じである。アドレス4〜アドレス5が格納するデータは、データサイズについては同じであるがデータラベルが異なっているので、旧版バックアップデータとは異なるデータである。アドレス6は空である。
再配置データにおいては、旧版バックアップデータをそのまま流用できるアドレス(アドレス1〜アドレス3とアドレス7)については旧配置データ141が転記されている。新たなバックアップデータを格納するアドレス(アドレス4〜アドレス5)については、バックアップデータ記憶領域内のアドレスのうちバックアップデータの初期値を格納する領域のアドレスが記述される。空データを格納するアドレス(アドレス6)については、EEPROM114の初期値を格納する領域のアドレスが記述される。このアドレスはバックアップデータの初期値を格納する領域のアドレスと共通でもよい。以下では記載の簡易のため、これら初期値は共通であるものとする。
CPU111(書換ソフトウェア)は、再配置データが記述しているアドレスに対応するRAM113上のアドレスからバックアップデータ(または各初期値)のコピーを1バイトずつ順に読み取り、EEPROM114に対して書き戻す。
図3は、ECU110の通常動作を説明するフローチャートである。車両のイグニッションスイッチがONされるとECU110が起動し、CPU111はROM112内の制御ソフトウェアを開始するとともに、バックアップデータをEEPROM114からRAM113へロードする(S301)。CPU111は、以後イグニッションスイッチがOFFされるまで、制御処理を実行する(S302)。イグニッションスイッチがOFFされると、CPU111は制御ソフトウェアを停止し、制御処理の過程において更新されたバックアップデータをRAM113からEEPROM114へ書き戻す(S303)。
図4は、ECU110が制御ソフトウェアを更新する処理を説明するフローチャートである。以下図4の各ステップについて説明する。
(図4:ステップS400)
CPU111がリプログラミング装置130から制御ソフトウェアを更新するよう指示する命令を受信すると、CPU111はROM112内の書換ソフトウェアを起動することにより本フローチャートを開始する。
(図4:ステップS401)
書換ソフトウェアは、リプログラミング装置130が送信する新版制御ソフトウェアおよびバージョン情報を受信し、その新版制御ソフトウェアをROM112に対して上書更新する。さらに書換ソフトウェアは、新版制御ソフトウェアのバージョン情報をROM112内の適当な記憶領域に対して書き込む。
(図4:ステップS402)
書換ソフトウェアは、リプログラミング装置130から図2で説明した再配置データを受信し、その再配置データにしたがってRAM113上のバックアップデータをEEPROM114に対して書き戻す。このとき再配置データの記述にしたがってバックアップデータは再配置されることになる。
図5は、リプログラミング装置130が再配置データを作成する手順を説明するフローチャートである。以下図5の各ステップについて説明する。
(図5:ステップS501)
リプログラミング装置130は、バックアップデータ記憶領域上の各アドレスと新配置データ142が記述している各アドレスを順に対応付け、新配置データ142がバックアップデータ記憶領域上のいずれのアドレスに対して新版バックアップデータを書き込むよう指定しているかチェックする。本ステップにおいては、初期化処理としてバックアップデータ記憶領域の先頭アドレスを指定する。
(図5:ステップS502)
リプログラミング装置130は、現在の指定アドレスが新配置データ142内において記述されているか否かをチェックする。図2の例においては、アドレス6は新配置データ142内に記述されていないことになる。指定アドレスが記述されている場合はステップS503へ進み、記述されていない場合はステップS508へ進む。
(図5:ステップS503)
リプログラミング装置130は、新配置データ142上の現在の指定アドレスに対応するデータラベルとデータサイズに一致する旧配置データ141上のレコードを検索する。データラベルとデータサイズが一致するレコードが存在する場合はステップS504へ進み、存在しない場合はステップS505へ進む。
(図5:ステップS504)
リプログラミング装置130は、旧配置データ141上の当該レコードは現在の指定アドレスに対応する新配置データ142上のレコードと同一であるとみなす。図2のアドレス1〜アドレス3とアドレス7が本ステップに対応する。リプログラミング装置130は、ステップS503において発見した旧配置データ141上のレコードを、再配置データに当該データのデータサイズ分だけ転記する。これにより、旧配置データ141を新配置データ142において流用することができる。旧配置データ141上のアドレスが新配置データ142において変更された場合であっても、ステップS503においてデータラベルとデータサイズが同一であるレコードを探索することにより、同一のデータを発見して流用することができる。
(図5:ステップS505)
リプログラミング装置130は、現在の指定アドレスに対応する新配置データ142上のレコードと合致する旧配置データ141上のレコードは存在しない(すなわち新配置データ142は新たなバックアップデータを記述している)とみなす。リプログラミング装置130は、バックアップデータの初期値を格納する領域のアドレスを再配置データに当該データのデータサイズ分だけ記述する。図2のアドレス4〜アドレス5が本ステップに対応する。
(図5:ステップS506〜S507)
リプログラミング装置130は、新配置データ142が記述しているアドレスを全てチェックしたか否かを確認する。完了していない場合は、指定アドレスをステップS504またはS505におけるデータサイズ分だけ進め(S507)、ステップS502へ戻って同様の処理を繰り返す。完了した場合は本フローチャートを終了する。
(図5:ステップS508〜S509)
リプログラミング装置130は、指定アドレスが新配置データ142内に存在しない場合は、EEPROM114の初期値を格納する領域のアドレスを再配置データに1バイト分記述し(S508)、指定アドレスを1バイト分進めてステップS502へ戻る(S509)。図2のアドレス6が本ステップに相当する。
図6は、書換ソフトウェアが再配置データの記述にしたがってバックアップデータをEEPROM114に対して再配置する処理を説明するフローチャートである。以下図6の各ステップについて説明する。
(図6:ステップS601、S603)
書換ソフトウェアは、再配置データが記述している1つのアドレスに対して書き込まれるデータサイズを1バイトとみなし、EEPROM114上のバックアップデータ記憶領域の容量が不足していないことを確認する(S601)。旧配置データ141と新配置データ142はバックアップデータ記憶領域上の各アドレスについて1バイトずつ記述されているので、原則としてバックアップデータ記憶領域の容量が不足することはないと考えられるが、例えば新版バックアップデータを作成するユーザが新配置データ142を誤って記述する場合もあり得るので、本ステップにおいてチェックすることとした。バックアップデータ記憶領域の容量が不足している場合、書換ソフトウェアはリプログラミング装置130に対してエラーを通知し(S603)、不足していなければステップS602へ進む。
(図6:ステップS602)
書換ソフトウェアは、再配置データを先頭から順に読み取り、各レコードが指定しているEEPROM114上のアドレスに対応するRAM113上のアドレスから1バイト分のデータを取得する。書換ソフトウェアは、そのデータをEEPROM114に対して書き込む。書換ソフトウェアは再配置データが記述している各アドレスについて順次同様に書き込みを実施する。本ステップにおいて、EEPROM114に対する書き込みは必ずしも1バイト毎に実施する必要はなく、例えばある程度のデータ量をRAM113上でバッファリングしてから実書き込みを実施してもよい。後述する実施形態2においても同様である。
<実施の形態1:まとめ>
以上のように、本実施形態1に係るリプログラミングシステム100は、制御ソフトウェアを書き換える際に、バックアップデータを再配置する。旧配置データ141が記述しているデータを新配置データ142において流用できる場合は、再配置データ内にその旨を記述することにより旧配置データ141を流用する。これにより、制御ソフトウェアの更新前後にわたってバックアップデータの同一性を必要な範囲内で維持しつつ、更新処理を効率的に実施することができる。
<実施の形態2>
実施形態1においては、再配置データはバックアップデータ記憶領域の1バイト分のアドレス毎に記述することとした。この場合、再配置データのデータサイズはバックアップデータ記憶領域の容量に近いものとなる。本発明の実施形態2では、旧配置データ141と新配置データ142との間の差分を再配置データとして記述することにより、再配置データのサイズを抑制する構成例について説明する。リプログラミングシステム100の構成は実施形態1と同様である。
図7は、本実施形態2において旧配置データ141と新配置データ142を用いて再配置データを作成する様子を示す概念図である。以下図7を用いて、再配置データを作成する手順について説明する。
旧配置データ141におけるアドレス1〜アドレス3のデータは、新配置データ142においてはアドレス2〜アドレス4に移動されている。このことは、両者のデータラベルとデータサイズが同一であることにより識別することができる。旧配置データ141におけるラベル2のデータとラベル3のデータは、新配置データ142においては存在しない。旧配置データ141におけるラベル4のデータは、新配置データ142においてもそのまま用いられている。
図7に示す旧配置データ141と新配置データ142との間の差分は、以下のように記述することができる。
(図7:差分その1)
新版バックアップデータをEEPROM114に対して書き込む際に、アドレス1から開始してサイズ1だけ旧版バックアップデータを読み取り、アドレス2に対してその旧版バックアップデータをコピーする。この処理は、図7に示す再配置データの1行目のように記述することができる。
(図7:差分その2)
新版バックアップデータをEEPROM114に対して書き込む際に、バックアップデータの初期値を格納しているアドレスからサイズ2だけ初期値データを読み取り、アドレス5に対してその初期値データをコピーする。この処理は、図7に示す再配置データの2行目のように記述することができる。
(図7:差分その3)
新版バックアップデータをEEPROM114に対して書き込む際に、アドレス7のデータはそのまま書き込むことができる。この場合は新旧配置間の差分がないので、再配置データにおいて格別記述する必要はない。
図8は、本実施形態2においてリプログラミング装置130が再配置データを作成する手順を説明するフローチャートである。以下図8の各ステップについて説明する。
(図8:ステップS801)
リプログラミング装置130は、新配置データ142の先頭レコードから順に、当該レコードが記述しているデータラベルを旧配置データ141から検索する。当該データラベルが旧配置データ141内に存在している場合はステップS802へ進み、存在していない場合はステップS805へスキップする。
(図8:ステップS802)
リプログラミング装置130は、ステップS801において発見した旧配置データ141のレコードのデータサイズが、新配置データ142の対応するレコードのデータサイズと同じであるか否かをチェックする。同一である場合はステップS803へ進み、同一でない場合はステップS805へスキップする。
(図8:ステップS803)
データラベルとデータサイズが同一である場合、旧配置データ141の当該レコードが指定するデータと、新配置データ142の当該レコードが指定するデータは、同一であると考えられる。リプログラミング装置130はさらに、旧配置データ141の当該レコードのアドレスと新配置データ142の当該レコードのアドレスが同一であるか否かをチェックする。同一でなければステップS804へ進み、同一であればステップS804をスキップしてステップS806へ進む。
(図8:ステップS804)
リプログラミング装置130は、新配置データ142のアドレス、新配置データのデータサイズ、および旧配置データ141のアドレスを、再配置データのレコードとして追加する。本ステップは、図7に示す再配置データの1行目に対応する。
(図8:ステップS805)
リプログラミング装置130は、新配置データ142のアドレス、新配置データのデータサイズ、およびバックアップデータ初期値を格納しているアドレスを、再配置データのレコードとして追加する。本ステップは、図7に示す再配置データの2行目に対応する。
(図8:ステップS804〜S805:補足)
データラベル、データサイズ、およびアドレスが同一である場合、旧配置データ141の当該レコードが示すデータを、新配置データ142においてそのまま流用することができる。したがってステップS803においてアドレスが同一であった場合は、再配置データを記述する必要はない。これは図7のアドレス7に相当する。
(図8:ステップS806)
リプログラミング装置130は、新配置データ142が記述しているデータラベルを全てチェックしたか否かを確認する。完了していない場合は、新配置データ142の次のレコードに進み、ステップS801へ戻って同様の処理を繰り返す。完了した場合は本フローチャートを終了する。
図9は、本実施形態2において書換ソフトウェアが再配置データの記述にしたがってバックアップデータをEEPROM114に対して再配置する処理を説明するフローチャートである。以下図9の各ステップについて説明する。
(図9:ステップS901)
書換ソフトウェアは、バックアップデータ記憶領域上の各アドレスと再配置データが記述している各アドレスを順に対応付け、再配置データがバックアップデータ記憶領域上のいずれのアドレスに対して新版バックアップデータを書き込むよう指定しているかチェックする。本ステップにおいては、初期化処理としてバックアップデータ記憶領域の先頭アドレスを指定する。
(図9:ステップS902)
書換ソフトウェアは、現在の指定アドレスが再配置データ内において記述されているか否かをチェックする。図7の例においては、アドレス1やアドレス7は再配置データ内に記述されていないことになる。指定アドレスが記述されている場合はステップS903へ進み、記述されていない場合はステップS905へ進む。
(図9:ステップS903〜S904)
書換ソフトウェアは、再配置データが指定しているEEPROM114上の旧アドレスから開始してデータサイズ分だけRAM113上の対応する領域からデータを読み出し、再配置データが指定しているEEPROM114上の新アドレスに対してデータサイズ分だけそのデータを書き込む(S903)。書換ソフトウェアは、指定アドレスを書き込んだデータサイズ分だけ進める(S904)。
(図9:ステップS905〜S906)
書換ソフトウェアは、現在の指定アドレスに対応するRAM113上の領域から1バイト分のデータを読み出し、EEPROM114上の同じアドレスに対してそのデータを書き込む(S905)。書換ソフトウェアは、指定アドレスを1バイト分だけ進める(S906)。
(図9:ステップS907)
書換ソフトウェアは、再配置データの全レコードについて処理を完了していない場合はステップS902に戻って次以降のレコードについて同様の処理を繰り返す。全レコードについて処理を完了した場合は本フローチャートを終了する。
<実施の形態2:まとめ>
以上のように、本実施形態2に係るリプログラミングシステム100は、旧配置データ141と新配置データ142との間の差分を再配置データとして生成し、更新前後において異なる部分についてのみ再配置データを適用する。これにより、再配置データのサイズを抑制し、更新処理を効率的に実施することができる。
<実施の形態3>
図10は、本発明の実施形態3に係るリプログラミングシステム100の構成図である。実施形態1〜2においては、リプログラミング装置130が再配置データを作成することを説明したが、制御ソフトウェアを作成する際に再配置データを併せて作成することもできる。図10において、ソフトウェア生成装置150は、制御ソフトウェアの新版を作成する装置である。ユーザは適当なインターフェースを介してソフトウェア生成装置150に対してECU110が搭載している制御ソフトウェアの現行バージョンを通知し、ソフトウェア生成装置150はその現行バージョンに対応する旧配置データ141および新配置データ142を用いて再配置データを作成する。
ソフトウェア生成装置150が生成した新版制御ソフトウェアおよび再配置データは、例えばUSBメモリなどの記憶媒体、適当な通信回線などのデータ転送手段を介してリプログラミング装置130に対して転送され、リプログラミング装置130はこれらを用いて更新処理を実施する。リプログラミング装置130とソフトウェア生成装置150は必ずしも機能的に分離する必要はなく、これらを一体的に構成することもできる。
<本発明の変形例について>
本発明は上記した実施形態の形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
実施形態1〜3において、配置データベース140は、旧配置データ141と新配置データ142を制御ソフトウェアのバージョン毎に保持していることを説明した。ECU110が現在使用している制御ソフトウェアのバージョンは外部からは必ずしも明らかではないので、いずれのバージョンに対応するデータを用いるかを指定する必要がある。例えばリプログラミング装置130(またはソフトウェア生成装置150)は、ROM112が格納している制御ソフトウェアのバージョン番号を返信するようCPU111に対して指示し、その回答に基づきバージョンを取得することもできるし、ユーザが現行バージョン番号を把握しているのであればユーザが適当なインターフェースを介したマニュアル入力によってそのバージョン番号をリプログラミング装置130に対して通知してもよい。
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に格納することができる。
100:リプログラミングシステム、110:ECU、111:CPU、112:ROM、113:RAM、114:EEPROM、115:通信回路、130:リプログラミング装置、140:配置データベース、141:旧配置データ、142:新配置データ、150:ソフトウェア生成装置。

Claims (9)

  1. 車両の動作を制御する処理を記述した制御ソフトウェアを実行する車両制御装置の前記制御ソフトウェアを更新するリプログラミングシステムであって、
    前記車両制御装置は、
    前記車両の動作を制御する処理を記述した制御ソフトウェア、および、前記制御ソフトウェアを書き換えることにより前記制御ソフトウェアの旧版である旧版制御ソフトウェアから前記制御ソフトウェアの新版である新版制御ソフトウェアへ更新する処理を記述した書換ソフトウェアを格納する記憶部、
    前記制御ソフトウェアおよび前記書換ソフトウェアを実行する演算部、
    前記演算部が前記制御ソフトウェアを実行することにより更新するデータのうち前記車両制御装置に対する電源供給が途絶えても保持すべき永続化データを格納する不揮発性メモリ、
    を備え、
    前記リプログラミングシステムは、
    前記新版制御ソフトウェアを前記記憶部に対して書き込むリプログラミング装置、
    前記旧版制御ソフトウェアが使用する前記永続化データの前記不揮発性メモリ上における配置を記述した旧配置データ、および前記新版制御ソフトウェアが使用する前記永続化データの前記不揮発性メモリ上における配置を記述した新配置データを格納する配置データベース、
    を有し、
    前記リプログラミング装置は、
    前記旧配置データと前記新配置データを比較することにより、前記不揮発性メモリ内に格納されている前記永続化データのうち前記旧配置データに対応する部分を特定し、
    その特定した部分を前記新配置データにしたがって前記不揮発性メモリ上において再配置するよう指示する再配置データを生成して前記車両制御装置に対して送信し、
    前記演算部は、
    前記書換ソフトウェアを実行する過程において、前記再配置データの記述にしたがって、前記旧版制御ソフトウェアが使用する前記永続化データである旧版永続化データを、前記新版制御ソフトウェアが使用する前記永続化データである新版永続化データへ書き換える
    ことを特徴とするリプログラミングシステム。
  2. 前記旧配置データと前記新配置データは、
    前記不揮発性メモリ上における前記永続化データのアドレス、各前記アドレス上に配置される前記永続化データのラベル、および各前記アドレス上に配置される前記永続化データのサイズを記述しており、
    前記リプログラミング装置は、
    前記旧配置データが記述している前記ラベルおよび前記サイズと、前記新配置データが記述している前記ラベルおよび前記サイズとがそれぞれ同一である場合は、前記旧配置データが指している前記永続化データと前記新配置データが指している前記永続化データが同一であるとみなし、
    前記旧配置データが指している前記永続化データと前記新配置データが指している前記永続化データが同一である場合は、前記旧配置データが記述している前記アドレスを前記サイズ分だけ前記再配置データへ転記し、
    前記旧配置データが指している前記永続化データと前記新配置データが指している前記永続化データが同一でない場合は、前記永続化データの初期値を格納しているアドレスを前記新配置データが記述している前記サイズ分だけ前記再配置データに記録する
    ことを特徴とする請求項1記載のリプログラミングシステム。
  3. 前記リプログラミング装置は、
    前記不揮発性メモリ上において前記永続化データを格納している永続化データ記憶領域の先頭アドレスから順に、前記永続化データ記憶領域上のアドレスが前記新配置データ上に記述されているか否かをチェックし、
    記述されている場合は、前記旧配置データが示している前記永続化データと前記新配置データが示している前記永続化データが同一であるか否かをさらにチェックし、
    記述されていない場合は、任意の初期値を格納しているアドレスを前記再配置データに記録する
    ことを特徴とする請求項2記載のリプログラミングシステム。
  4. 前記車両制御装置は、
    前記永続化データのコピーを一時的に格納する一時メモリを備え、
    前記演算部は、
    前記不揮発性メモリが格納している前記永続化データを前記一時メモリへコピーし、前記制御ソフトウェアまたは前記書換ソフトウェアを実行するときは、前記一時メモリ上にコピーされた前記永続化データを使用し、
    前記リプログラミング装置は、
    前記永続化データ記憶領域に対して書き込むべきデータを保持している前記永続化データ記憶領域のアドレスを、前記永続化データ記憶領域の先頭アドレスに対して書き込むべきデータから順に1バイトずつ、前記再配置データ内に記録し、
    前記演算部は、
    前記再配置データが記述しているアドレスに対応する前記一時メモリ上のデータを1バイトずつ順に読み取って前記永続化データ記憶領域に対して書き込むことにより、前記永続化データを前記永続化データ記憶領域上において再配置する
    ことを特徴とする請求項3記載のリプログラミングシステム。
  5. 前記旧配置データと前記新配置データは、
    前記不揮発性メモリ上における前記永続化データのアドレス、各前記アドレス上に配置される前記永続化データのラベル、および各前記アドレス上に配置される前記永続化データのサイズを記述しており、
    前記リプログラミング装置は、
    前記旧配置データが記述している前記ラベルおよび前記サイズと、前記新配置データが記述している前記ラベルおよび前記サイズとがそれぞれ同一である場合は、前記旧配置データが示している前記永続化データと前記新配置データが示している前記永続化データが同一であるとみなし、
    前記旧配置データが指している前記永続化データと前記新配置データが指している前記永続化データが同一であり、かつ前記旧配置データが記述している前記アドレスと前記新配置データが記述している前記アドレスが異なる場合は、前記旧配置データが記述している前記アドレスと前記新配置データが記述している前記アドレスとの間の対応関係および前記新配置データが記述している前記サイズを前記再配置データに記録し、
    前記旧配置データが指している前記永続化データと前記新配置データが指している前記永続化データが同一でない場合は、前記新配置データが記述している前記アドレス、前記新配置データが記述している前記サイズ、および前記永続化データの初期値を格納しているアドレスを前記再配置データに記録する
    ことを特徴とする請求項1記載のリプログラミングシステム。
  6. 前記車両制御装置は、
    前記永続化データのコピーを一時的に格納する一時メモリを備え、
    前記演算部は、
    前記不揮発性メモリが格納している前記永続化データを前記一時メモリへコピーし、前記制御ソフトウェアまたは前記書換ソフトウェアを実行するときは、前記一時メモリ上にコピーされた前記永続化データを使用し、
    前記演算部は、
    前記不揮発性メモリ上のアドレスのうち前記再配置データが記述しているアドレスについては、前記再配置データが記述しているアドレスに対応する前記一時メモリ上のデータを前記再配置データが記述しているサイズだけ読み取って前記不揮発性メモリに対して書き込むことにより、前記永続化データを前記不揮発性メモリ上において再配置し、
    前記不揮発性メモリ上のアドレスのうち前記再配置データが記述していないアドレスについては、前記不揮発性メモリ上のデータをそのまま残す
    ことを特徴とする請求項5記載のリプログラミングシステム。
  7. 前記配置データベースは、
    前記制御ソフトウェアのバージョン毎に前記旧配置データを格納しており、
    前記リプログラミング装置は、
    前記旧版制御ソフトウェアのバージョンに基づき、前記再配置データを生成する際に使用すべき前記旧配置データを特定する
    ことを特徴とする請求項1から6のいずれか1項記載のリプログラミングシステム。
  8. 前記演算部は、
    前記リプログラミング装置から前記制御ソフトウェアを更新する処理を開始する旨の通知を受け取ると、前記旧版制御ソフトウェアのバージョンを前記リプログラミング装置に対して送信し、
    前記リプログラミング装置は、
    前記演算部から受け取った前記旧版制御ソフトウェアのバージョンに基づき、前記再配置データを生成する際に使用すべき前記旧配置データを特定する
    ことを特徴とする請求項7記載のリプログラミングシステム。
  9. 前記リプログラミング装置は、
    所定のマンマシンインターフェースを介して前記旧版制御ソフトウェアのバージョンを受け取り、その受け取ったバージョンに基づき、前記再配置データを生成する際に使用すべき前記旧配置データを特定する
    ことを特徴とする請求項7記載のリプログラミングシステム。
JP2014241122A 2014-11-28 2014-11-28 リプログラミングシステム Active JP6301820B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014241122A JP6301820B2 (ja) 2014-11-28 2014-11-28 リプログラミングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014241122A JP6301820B2 (ja) 2014-11-28 2014-11-28 リプログラミングシステム

Publications (2)

Publication Number Publication Date
JP2016103155A true JP2016103155A (ja) 2016-06-02
JP6301820B2 JP6301820B2 (ja) 2018-03-28

Family

ID=56089495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014241122A Active JP6301820B2 (ja) 2014-11-28 2014-11-28 リプログラミングシステム

Country Status (1)

Country Link
JP (1) JP6301820B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020077192A (ja) * 2018-11-07 2020-05-21 日立オートモティブシステムズ株式会社 自動車用電子制御装置
CN111208988A (zh) * 2019-12-24 2020-05-29 杭州海兴电力科技股份有限公司 单片机文件系统编写方法及单片机系统
JP2020129325A (ja) * 2019-02-12 2020-08-27 日立オートモティブシステムズ株式会社 車両用電子制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256228A (ja) * 2002-02-28 2003-09-10 Denso Corp プログラム書換装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256228A (ja) * 2002-02-28 2003-09-10 Denso Corp プログラム書換装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020077192A (ja) * 2018-11-07 2020-05-21 日立オートモティブシステムズ株式会社 自動車用電子制御装置
JP7093289B2 (ja) 2018-11-07 2022-06-29 日立Astemo株式会社 自動車用電子制御装置
JP2020129325A (ja) * 2019-02-12 2020-08-27 日立オートモティブシステムズ株式会社 車両用電子制御装置
CN111208988A (zh) * 2019-12-24 2020-05-29 杭州海兴电力科技股份有限公司 单片机文件系统编写方法及单片机系统
CN111208988B (zh) * 2019-12-24 2023-09-26 杭州海兴电力科技股份有限公司 单片机文件系统编写方法及单片机系统

Also Published As

Publication number Publication date
JP6301820B2 (ja) 2018-03-28

Similar Documents

Publication Publication Date Title
KR100578143B1 (ko) 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
JP6568947B2 (ja) 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア
CN105701021B (zh) 数据储存装置及其数据写入方法
US9870165B2 (en) Back-up and restoration of data between volatile and flash memory
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
US20130138871A1 (en) Flash Memory Device and Data Access Method for Same
JP2004280752A (ja) データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
US9998537B1 (en) Host-side tracking of data block changes for incremental backup
JP6301820B2 (ja) リプログラミングシステム
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP2006195565A (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP6123766B2 (ja) データ読み出し装置、プログラムおよびデータ読み出し方法
US9047923B1 (en) Fast shingled tracks recording
JP2007534095A (ja) 光ドライブのすべてのプログラマブルコンテンツ及びファームウェアの復元
TW201621668A (zh) 資料儲存裝置及其資料寫入方法
WO2018150820A1 (ja) 情報処理装置
KR20210022260A (ko) 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치
US9740413B1 (en) Migrating data using multiple assets
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体
JP7219813B2 (ja) 演算処理装置、車両制御装置及び更新方法
US11137937B2 (en) Information processing device and control method determining valid data in multiple memory areas based on multiple valid flags
KR20080021211A (ko) 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템
JP2011039825A (ja) ファームウェア更新方法及びファームウェア更新装置
JP2005222531A (ja) データ記録装置及びデータ記録方法
JP6401070B2 (ja) ソフトウェア書き換え装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180123

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180301

R150 Certificate of patent or registration of utility model

Ref document number: 6301820

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250