JP2019008693A - 自動車用制御装置 - Google Patents

自動車用制御装置 Download PDF

Info

Publication number
JP2019008693A
JP2019008693A JP2017125951A JP2017125951A JP2019008693A JP 2019008693 A JP2019008693 A JP 2019008693A JP 2017125951 A JP2017125951 A JP 2017125951A JP 2017125951 A JP2017125951 A JP 2017125951A JP 2019008693 A JP2019008693 A JP 2019008693A
Authority
JP
Japan
Prior art keywords
software
backup data
control software
old
new
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.)
Pending
Application number
JP2017125951A
Other languages
English (en)
Inventor
幸平 金井
Kohei Kanai
幸平 金井
拓志 名取
Hiroshi Natori
拓志 名取
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 JP2017125951A priority Critical patent/JP2019008693A/ja
Publication of JP2019008693A publication Critical patent/JP2019008693A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】制御ソフトウェアの書き換えを行なう場合に、効率よく正確にバックアップデータを引き継ぐことができる自動車用制御装置を提供することにある。
【解決手段】バックアップデータを一意に識別する管理ID19とその割付けアドレス20から構成されるデータテーブルを設け、既存の制御ソフトウェア16が持つデータテーブル18をRAMに退避したうえで、既存の制御ソフトウェアが持つデータテーブル18oldと、新しい制御ソフトウェアが持つデータテーブル18newとを比較し、同じ管理IDが存在する場合は、既存のソフトウェアのデータテーブルにある不揮発性メモリのアドレスに格納されていたデータ値を設定し、新しい制御ソフトウェアに存在して既存の制御ソフトウェアに存在しない管理IDの場合は初期値を設定する。
【選択図】図4

Description

本発明は自動車を制御する自動車用制御装置に係り、特に制御ソフトウェアを外部装置から送られてくる新しい制御ソフトウェアに書き換えるソフトウェア書き換え機能を備えた自動車用制御装置に関するものである。
自動車の種々の動作を制御する自動車用制御装置は、電気的に記憶内容を書き換えることができるフラッシュメモリやEEPROM等のような不揮発性メモリを備え、同メモリ内に制御ソフトウェアを格納している。制御ソフトウェアは、例えば、内燃機関や変速機などの自動車が備える動作機器を制御する機能を備えている。
このような自動車用制御装置においては、制御ソフトウェアを実行することによって、制御に用いられるデータ(いわゆる、学習値)を書き換えながら、必要とされる制御を継続して実行させている。そして、自動車用制御装置への電源供給が停止されても継続して保存すべきデータを、EEPROMなどの書き換え可能な不揮発性メモリ内に永続的に記憶している。例えば、上述した学習値や故障診断結果等のデータがこれに該当し、以下、このようなデータのことを「バックアップデータ」という。
一方、自動車用制御装置においては、現時点の既存の制御ソフトウェアを新しい制御ソフトウェアに書き換えることが往々にしてあり、この時にバックアップデータの引き継ぎが必要となる。つまり、バックアップデータは、制御ソフトウェアの書き換え前後において、バックアップデータの値等に差異を生じるが、バックアップデータは個々の自動車制御装置の固有の情報を蓄積しているため、可能な限り初期化せず書き換え前の値を引き継ぐことが望ましいものである。
例えば、特開2002−149432号公報(特許文献1)においては、外部装置からの要求に応じて、メモリ内の既存の制御ソフトウェアを書き換え、更にこの時にバックアップデータを引き継ぐことができる自動車用制御装置が示されている。
特開2002−149432号公報
ところで、特許文献1にもあるように、既存の制御ソフトウェアを新しい制御ソフトウェアに書き換える場合、バックアップデータは可能な限り初期化せず書き換え前の値を引き継ぐことが望ましい。そして、このような制御ソフトウェアを書き換える際に、いかに効率よく正確にバックアップデータを引き継ぐかが大きな課題となっている。
本発明の目的は、制御ソフトウェアの書き換えを行なう場合に、効率よく正確にバックアップデータを引き継ぐことができる新規な自動車用制御装置を提供することにある。
本発明の特徴は、不揮発性メモリに記憶されたバックアップデータを一意に識別する管理IDとその割付けアドレスから構成されるデータテーブルを設け、既存の制御ソフトウェアが持つデータテーブルと、通信を介して送られてくる新しい制御ソフトウェアが持つデータテーブルとを比較し、同じ管理IDが存在する場合は、新しい制御ソフトウェアのデータテーブルで指定された不揮発性メモリのアドレスへ、既存の制御ソフトウェアのデータテーブルにある不揮発性メモリのアドレスに格納されていたデータ値を設定する、ところにある。
本発明によれば、制御ソフトウェアの書き換え前後において、バックアップデータの値等が異なる場合であっても、書き換え前のバックアップデータを効率良く正確に引き継ぐことができるようになる。
本発明が適用される自動車用制御装置の制御手段の構成を示す構成図である。 本発明で使用されるバックアップデータ構成情報テーブルの概念を示す概念図である。 本発明の第1の実施形態になる、制御ソフトウェアを書き換えてバックアップデータを引き継ぐ処理を説明するフローチャート図である。 図3に示すステップS304の詳細を説明するフローチャート図である。 バックアップデータ構成情報テーブルをRAMに展開する場合の説明図である。 新制御ソフトウェアをROMに転送する場合の説明図である。 新バックアップデータ構成情報テーブルをRAMに展開する場合の説明図である。 バックアップデータをRAMに展開する場合の説明図である。 バックアップデータをRAMからROMに書き戻す場合の説明図である。 本発明の第2の実施形態になる、書き換え途中であることを判断するためのフラグを設定する処理を説明するフローチャート図である。 本発明の第2の実施形態になる、起動時にバックアップデータ書き換え動作フラグを判定する処理を説明するフローチャート図である。 本発明の第3の実施形態になる、書き換えソフトウェアにて実施されるバックアップデータの引き継ぎ処理を説明するフローチャート図である。 本発明の第4の実施形態になる、書き換えソフトウェアにて実施されるバックアップデータの引き継ぎ処理を説明するフローチャート図である。
以下、本発明の実施形態について図面を用いて詳細に説明するが、本発明は以下の実施形態に限定されることなく、本発明の技術的な概念の中で種々の変形例や応用例をもその範囲に含むものである。
図1は、本発明の実施形態に係る自動車用制御装置(ECU)10の構成図である。ECU10は、自動車の動作を制御する処理を実装した制御ソフトウェアを実行することにより、当該自動車の動作を制御する装置である。ECU10は、CPU11、ROM12、RAM13、EEPROM14、通信回路15、制御ソフトウェア16、書き換えソフトウェア17、バックアップデータ構成情報テーブル18を備えている。
ここで、RAM13は、CPU11が使用するデータを一時的に保存するメモリデバイスである。また、EEPROM14は、バックアップデータを格納するバックアップデータ記憶領域を有し、同領域内にバックアップデータを格納している。したがって、EEPROM14は、バックアップデータ記憶メモリとして機能する。
CPU11は、ROM12が格納している制御ソフトウェア16、及び書き換えソフトウェア17を実行する演算装置であり、自動車を制御するには制御ソフトウェア16を実行する。以下では記載の便宜上、CPU11が実行するソフトウェアを動作主体として説明する場合があるが、実際にこれらのソフトウェアを実行するのはCPU11である。
CPU11は、制御ソフトウェア16を実行する際に、EEPROM14が格納しているバックアップデータをRAM13上へ読み出し、RAM13上へ読み出したバックアップデータを所定の制御処理に利用する。制御ソフトウェア16を終了する時、或いはECU10をシャットダウンする時などの適切なタイミングで、CPU11は、RAM13上のバックアップデータをEEPROM14へ書き戻す処理を実行する。EEPROM14は、ECU10への電源供給が遮断されてもデータを保持するので、バックアップデータは永続的に保存されることになる。
通信回路15は、ECU10に接続される通信経路を介して、制御ソフトウェア16を書き換える外部装置(以下、リプログラミング装置と表記する)21と通信する機能を有する。以下では記載の便宜上、通信の説明に通信回路15を省略する場合があるが、実際に外部装置と通信を行うのは通信回路15である。
制御ソフトウェア16は、自動車の動作を制御するために必要な処理が記述されたプログラムである。制御ソフトウェア16は、プログラムの他に、EEPROM14におけるバックアップデータの配置情報を示すバックアップデータ構成情報テーブル18を備えている。
バックアップデータ構成情報テーブル18は、EEPROM14のバックアップデータを一意に識別する管理IDと、この管理IDに紐つけられた割付けアドレスから構成されるテーブルである。割付けアドレスは、制御ソフトウェア16を作成する作成者が任意に指定することができる。このバックアップデータ構成情報テーブル18の詳細については後述の図2で改めて説明する。
書き換えソフトウェア17は、ROM12に記憶されている制御ソフトウェア16を書き換えるためのプログラムである。通信回路15を介して接続されたリプログラミング装置21からECU10が更新要求を受信した場合に、書き換えソフトウェア17を起動する。その後、リプログラミング装置21から書き換え対象の制御ソフトウェアを受信し、書き換えソフトウェア17は、ROM12内に記憶された制御ソフトウェア16の書き換えを実行する。
したがって、ROM12は少なくとも、制御ソフトウェア16、書き換えソフトウェア17を記憶する、ソフトウェア記憶メモリとして機能する。
尚、以下の説明では、現時点でROM12に記憶されている既存の制御ソフトウェアを「旧制御ソフトウェア」と表記し、リプログラミング装置21から送られてくる書き換えられる制御ソフトウェアを「新制御ソフトウェア」と表記する。
そして、この旧制御ソフトウェアから新制御ソフトウェアへの書き換えに際して、自動車制御装置に固有の情報、例えば、学習値等は消去せずに更新前に記憶された値を継続して制御処理に反映させる必要がある。このため、書き換え後の新制御ソフトウェア16のバックアップデータ構成情報テーブル18にしたがって、バックアップデータの引き継ぎを行うことが必要である。書き換えソフトウェア17によるバックアップデータの引き継ぎ処理の詳細は、後述の図4で改めて説明する。
図2は、バックアップデータ構成情報テーブル18の構成を示したものである。バックアップデータ構成情報テーブル18は、管理IDフィールド19と、アドレスフィールド20で構成されている。管理IDフィールド19は、バックアップデータ構成情報テーブル18の書き換え前後で、指定されたバックアップデータが同一か否かを判断するために、バックアップデータを一意に識別するための管理IDを備えている。また、アドレスフィールド20は、バックアップデータを記憶するEEPROM14の割付けアドレスを備えている。そして、管理IDフィールド19とアドレスフィールド20は、夫々に関連するように紐つけられている。
図3は、制御ソフトウェア16の書き換えの際に、書き換えソフトウェア17によって実行されるバックアップデータの引き継ぎ処理を示すフローチャートである。以下、図3の各制御ステップの機能について説明する。
≪ステップS31≫
ステップS31において、書き換えソフトウェア17は、リプログラミング装置21から制御ソフトウェア16の更新指示が行われたとき、書き換えソフトウェア17によるバックアップデータの引き継ぎ処理のために、ROM12に記憶されている旧バックアップデータ構成情報テーブル18をRAM13に転送して記憶する。
RAM13に旧バックアップデータ構成情報テーブルを記憶することにより、新制御ソフトウェア16の書き換え動作によって、ROM12上の旧バックアップデータ構成情報テーブルが上書きされても、旧バックアップデータ構成情報テーブル18のデータはRAM13に残ることになる。この処理が完了するとステップS32に移行する。
≪ステップS32≫
ステップS32において、書き換えソフトウェア17は、ROM12に記憶されている旧制御ソフトウェア16を消去し、リプログラミング装置21から受信した新制御ソフトウェア16を書き込む。この新制御ソフトウェア16を書き込む際、新制御ソフトウェア16の内部に含める新バックアップデータ構成情報テーブル18も併せて書き込み、ROM12上のデータを書き換える。この処理が完了するとステップS33に移行する。
≪ステップS33≫
ステップS33において、書き換えソフトウェア17は、ROM12に記憶された新制御ソフトウェア16に備えられた新バックアップデータ構成情報テーブル18をRAM13に転送して記憶する。これによって、RAM13上で新バックアップデータ構成情報テーブルと旧バックアップデータ構成情報テーブルの比較を実行することができる。この処理が完了するとステップS34に移行する。
≪ステップS34≫
ステップS34において、書き換えソフトウェア17は、ステップS31にてRAM13に転送、記憶された旧バックアップデータ構成情報テーブル、及び、ステップS33にてRAM13に転送、記憶された新バックアップデータ構成情報テーブルを利用し、新バックアップデータを生成する。新バックアップデータの生成について、詳細は図4にて説明を行う。この処理が完了するとステップS35に移行する。
≪ステップS35≫
ステップS35において、書き換えソフトウェア17は、EEPROM14のバックアップデータ領域に記憶されている旧バックアップデータを消去し、ステップS34にて生成した新バックアップデータを、EEPROM14のバックアップデータ領域に書き込む。このような制御ステップにより、バックアップデータを効率良く正確に引き継ぐことが可能となる。
次に上述した新バックアップデータを生成する処理の具体的な例を、図4に示すフローチャートに基づき説明する。
≪ステップS41≫
ステップS41において、書き換えソフトウェア17は、旧バックアップデータから新バックアップデータを生成するため、生成した新バックアップデータ格納用の一時保存領域をRAM13に確保する。この処理が完了するとステップS42、43に移行する。
≪ステップS42、S43≫
ステップS42、S43において、書き換えソフトウェア17は、RAM13に記憶されている新バックアップデータ構成情報テーブルから、登録されているレコードを一つ取り出し、管理IDフィールド19に登録された管理IDが、旧バックアップデータ構成情報テーブルの管理IDフィールド19に登録されているかどうかを検索、比較する。
同一管理IDが旧バックアップデータ構成情報テーブルに登録されていた場合は、ステップS44に移行し、同一管理IDが旧バックアップデータ構成情報テーブルに登録されていなかった場合は、ステップS45に移行する。
≪ステップS44≫
ステップS44において、同一管理IDが旧バックアップデータ構成情報テーブルに登録されているので、書き換えソフトウェア17は、管理IDが一致した旧バックアップデータ構成情報テーブルのレコードから、アドレスフィールド20に登録されたアドレスを参照する。そして、参照したアドレスからEEPROM14に記憶されている旧バックアップデータのデータ値を取得する。
≪ステップS45≫
一方、ステップS45において、同一管理IDが旧バックアップデータ構成情報テーブルに登録されていないので、書き換えソフトウェア17は、新制御ソフトウェア内で定義されるバックアップデータの初期データ値を取得する。この場合の初期データ値は、制御ソフトウェアの対応する制御処理に使用される初期データ値を取得している。
≪ステップS46≫
ステップS46において、書き換えソフトウェア17は、ステップS42にて検索したレコードから、アドレスフィールド20に登録されたアドレスを取得する。そして、書き換えソフトウェア17は、取得したEEPROM14のアドレス情報を元に、ステップS41で作成したRAM13の一時保存領域に対して、ステップS44、ステップS45にて取得したバックアップデータを格納する。尚、この時はステップS41で確保したRAM13の一時保存領域は、EEPROM14のバックアップ領域とデータ配置が一致するようにして取り扱われている。この処理が完了するとステップS47に移行する。
≪ステップS47≫
ステップS47において、書き換えソフトウェア17は、新バックアップデータ構成情報テーブルの管理IDフィールド19に記憶されている全管理IDの検索、比較が完了するまで、対象の各レコードを切り替えながらステップS42〜S46の処理を順次実行する。このような制御ステップにより、バックアップデータを引き継ぐことが可能となる。
次に、上述した処理を実行した場合のデータの流れを簡単に説明する。図5A〜図5Eは、図3、及び図4のフローチャートで説明した処理におけるデータの流れを図解したものである。
図5Aにおいて、ROM12に記憶されている実線で示す旧制御ソフトウェア16oldは、書き換え前の制御ソフトウェアである。また、実線で示す旧バックアップデータ構成情報テーブル18oldは、旧制御ソフトウェア16oldに記憶されている書き換え前のバックアップデータ構成情報テーブルである。
また、RAM13に記憶される破線で示す旧バックアップデータ構成情報テーブル18oldは、ROM12に記録されている旧バックアップデータ構成情報テーブル18oldを、RAM13に転送、記憶させる場合のバックアップデータ構成情報テーブルを示している。そして、破線は未だ転送されていない状態を表し、逆に転送、記憶された場合は実線で表示している。以下の図5B〜図5Eについても同様である。
図5Bにおいて、リプログラミング装置21に格納されている新制御ソフトウェア16newは、書き換え対象の制御ソフトウェアである。また、新バックアップデータ構成情報テーブル18newは、新制御ソフトウェア16newに記憶されている書き換え対象のバックアップデータ構成情報テーブルである。
図5Cにおいて、破線で示すRAM13の新バックアップデータ構成情報テーブル18newは、ROM12の新バックアップデータ構成情報テーブル18newを、RAM13に転送、記憶する場合のバックアップデータ構成情報テーブルである。
図5Dにおいて、バックアップデータ領域22は、EEPROM14に記憶されたバックアップデータが格納されている領域を示している。また、RAM13のバックアップデータ一時保存領域23は、新しく生成したバックアップデータを一時的に記憶する保存領域を示している。バックアップデータ一時保存領域23は、バックアップデータの引き継ぎ時に、一時的に確保されればよい領域であるため、データの書き換え処理が容易なRAM13上に確保される構成となっている。
以下、図3、及び図4の処理におけるデータの流れについて、図5A〜図5Eを用いて詳細に説明する。
図5Aにおいて、書き換えソフトウェア17が図3のステップS31を実行することにより、書き換えソフトウェア17は、ROM12に記憶されている旧バックアップデータ構成情報テーブル18oldをRAM13に転送、記憶させて、RAM13上に旧バックアップデータ構成情報テーブル18oldを作成する。
次に、図5Bにおいて、書き換えソフトウェア17が図3のステップS32を実行することにより、書き換えソフトウェア17は、ROM12に記憶されている旧制御ソフトウェア16old、旧バックアップデータ構成情報テーブル18oldを消去し、リプログラミング装置21から通信回路15を経由して受信した、新制御ソフトウェア16new、新バックアップデータ構成情報テーブル18newをROM12に書き込む。
次に、図5Cにおいて、書き換えソフトウェア17が図3のステップS33を実行することにより、書き換えソフトウェア17は、ROM12に記憶されている新バックアップデータ構成情報テーブル18newを、RAM13に転送、記憶させて、新バックアップデータ構成情報テーブル18newを作成する。
次に、図5Dにおいて、書き換えソフトウェア17が図3のステップS34を実行することにより、書き換えソフトウェア17は、EEPRPM14と同じ形式のバックアップデータ領域を、RAM13上にバックアップデータ一時保存領域24として確保する。そして、書き換えソフトウェア17は、RAM13に記憶された旧バックアップデータ構成情報テーブル18old、新バックアップデータ構成情報テーブル18newを使用し、図4のフローに従い新バックアップデータを生成する。新バックアップデータは、バックアップデータ一時保存領域24に記憶されることになる。新バックアップデータ生成の処理の詳細は、図4に示した通りであるので、ここでは説明を省略する。
次に、図5Eにおいて、書き換えソフトウェア17が図3のステップS35を実行することにより、書き換えソフトウェア17は、バックアップ一時保存領域23に記憶されている新バックアップデータを、EEPROM14のバックアップ領域22に書き込む。これにより、EEPROM14上のバックアップデータ領域22に記憶されているバックアップデータは、引き継ぎ後のバックアップデータとなる。
以上のように、本実施形態に係る自動車制御装置10は、書き換えソフトウェア17が新旧のバックアップデータ構成情報テーブル18の情報を元にして、旧バックアップデータから新バックアップデータを生成し、バックアップデータを引き継ぎながら制御ソフトウェア16を書き換えることができ、効率良くしかも正確に制御ソフトウェアの書き換えが行われるものとなる。
第1の実施形態においては、書き換えソフトウェア17が制御ソフトウェア16の書き換えの際に、バックアップデータを引き継ぐ手法を提案している。しかしながら、実際の運用においては、制御ソフトウェアの書き換えの途中で、例えば、ECU10の電源が意図せずに遮断され、バックアップデータを正しく書き換えできずに異常状態となってしまうことが想定される。
そこで、第2の実施形態では電源遮断による書き換えの失敗を考慮して、仮に書き換えの失敗が発生すると、バックアップデータを初期化して対応することを提案するものである。本実施形態では、図3に示すフローチャートを一部変更し、書き換え途中であることを判断できるようにしたものであり、その変更後のフローチャートを図6に示している。
また、本実施形態では、電源遮断後の復帰時には、ECU10の起動に際して書き換え失敗の状態を判断し、書き換え失敗の時はバックアップデータ領域の初期化を実行しており、そのフローチャートを図7に示している。
図6は、図3に示すフローチャートを基礎として、書き換え途中であることを判断するためのフラグ設定処理を追加したフローチャートを示している。以下、図6に基づき各制御ステップの機能について説明するが、図3に示す制御ステップ同じ制御ステップについては説明を省略する。
≪ステップS31≫
図3のステップ31と同一であるため、説明を省略する。
≪ステップS61≫
ステップS61において、書き換えソフトウェア17がステップS31を実施することにより、ROM12に記憶されている旧バックアップデータ構成情報テーブル18oldは消去され、RAM13上に旧バックアップデータ構成情報テーブル18oldが作成される。
しかしながら、意図せずに電源が遮断されると、RAM13上の旧バックアップデータ構成情報テーブル18oldは消去されることになる。すなわち、RAM13は電源が切れると記憶機能が喪失されるため、仮にステップS31の実行後に電源が遮断されると、復帰後にRAM13上の旧バックアップデータ構成情報テーブルの18oldが消去されている状態となる。
このように、RAM13上の旧バックアップデータ構成情報テーブル18oldが消去されていると、バックアップデータの書き換え処理を行うことができない。このため、ステップS61においては、ROM12上の旧バックアップデータ構成情報テーブル18oldを消去する前に、バックアップデータ書き換えのシーケンス開始を示すバックアップデータ書き換え動作フラグの設定「0」⇒「1」を実行する。
尚、このバックアップデータ書き換え動作フラグの設定は、EEPROM14のバックアップデータ領域22内にフラグ情報を記憶すると、ステップS35のバックアップデータ書き込みの際に消去されてしまうため、EEPROM14のバックアップデータ領域22外に設定されている。
≪ステップS32≫
図3のステップ32と同一であるため、説明を省略する。
≪ステップS33≫
図3のステップ33と同一であるため、説明を省略する。
≪ステップS34≫
図3のステップ34と同一であるため、説明を省略する。
≪ステップS35≫
図3のステップ35と同一であるため、説明を省略する。
≪ステップS62≫
ステップS61において、EEPROM14のバックアップデータは、ステップS35により引き継ぎ後の状態となっているため、ステップS61にて設定したバックアップデータ書き換え動作フラグを初期化「1」⇒「0」とする。一方、正常にバックアップデータが引き継がれない場合は、ステップS61にて設定したバックアップデータ書き換え動作フラグは初期化されず「1」(書き換え動作中)の状態のままとなる。このような制御ステップS61,S62を追加することによって、バックアップデータ書き換え動作フラグの設定と初期化を制御できる。
次に、図6に示したバックアップデータ書き換え動作フラグを利用して、バックアップデータを初期化する制御フローを図7に基づき説明する。
図7は、図6で設定したバックアップデータ書き換え動作フラグを用いて、起動時にバックアップデータの書き換え処理の正常判定を実行するフローチャートである。以下、ECU10に電源が供給されてから通常の制御ソフトウェアを実行するまでの処理を説明する。
≪ステップS71≫
ステップS71において、ECU10に電源が投入された直後に、制御ソフトウェア16はECU10の初期設定を実行する。このステップS71によって、CPU11の入出力ポートの設定やレジスタの設定を実行する。この処理が完了するとステップS72に移行する。
≪ステップS72≫
ステップS72において、制御ソフトウェア16は、前回の電源遮断時に書き換えソフトウェア17が書き換え動作中であったか否かを判断するため、図6のステップS61、S62によって設定された、バックアップデータ書き換え動作フラグを読み込む。この処理が完了するとステップS73に移行する。
≪ステップS73≫
ステップS73において、制御ソフトウェア16は、ステップS72で読み取ったバックアップデータ書き換え動作フラグのフラグ情報から、書き換えソフトウェア17が書き換え動作中であったか否かを確認する。バックアップデータ書き換え動作フラグが「1」に設定されていると、書き換え動作中と判断してステップS74に移行する。一方、バックアップデータ書き換え動作フラグが「0」に設定されていると、書き換え動作中でないと判断してステップS76に移行する。
≪ステップS74≫
ステップS74において、バックアップデータ書き換え動作フラグが「1」に設定されていることから、バックアップデータ書き換え動作が正常に完了せずにECU10が起動されたことを判断できるため、制御ソフトウェア16は、ステップS74でバックアップデータ領域22の初期化を実施する。この処理が完了するとステップS75に移行する。
≪ステップS75≫
ステップS75において、ステップS74でバックアップデータ領域22の初期化が完了し、バックアップデータ領域22が正常な状態となったため、制御ソフトウェア16は、バックアップデータの書き換え途中であることを表すバックアップデータ書き換え動作フラグを初期化する。この処理が完了するとステップS76に移行する。
≪ステップS76≫
ステップS76において、ステップS74、ステップS75によりバックアップデータの書き換え失敗による、バックアップデータの異常状態を解消することができたため、以降は、通常の制御ソフトウェア処理を実行する。
以上のように、本実施形態によれば、バックアップデータ書き換え動作フラグを設定し、バックアップデータ書き換え動作フラグの結果からバックアップデータの書き換えを制御するようにしている。これにより、バックアップデータの引き継ぎが電源遮断などによって失敗しても、バックアップデータが初期値に設定されるので、制御ソフトウェアが意図しない動作を引き起こすことを抑制することができるようになる。
第1の実施形態においては、書き換えソフトウェア17が制御ソフトウェア16の書き換えの際に、バックアップデータを引き継ぐ手法を提案している。しかしながら、実際に運用している制御ソフトウェア16において第1の実施形態に基づくバックアップデータの引き継ぎ手法が導入されておらず、バックアップデータ構成情報テーブルが存在しない場合がある。
したがって、第1の実施形態に基づくバックアップデータの引き継ぎ手法を導入する場合、旧制御ソフトウェアに旧バックアップデータ構成情報テーブルが存在せず、新制御ソフトウェアに新バックアップデータ構成情報テーブルが存在する組み合わせの下で、制御ソフトウェアの書き換えを行なわなければならない。このため、書き換えソフトウェア17は、旧制御ソフトウェアに旧バックアップデータ構成情報テーブルが存在しないので、バックアップデータの引き継ぎを実行することができない状況となる。
そこで、第3の実施形態では、制御ソフトウェア16にソフトウェアバージョン情報を記憶するようにし、バックアップデータの書き換え実行時にソフトウェアバージョン情報を確認して、バックアップデータを初期化して対応することを提案するものである。
尚、このソフトウェアバージョン情報は、ソフトウェアバージョン情報同士を比較したときに、書き換え前後のバージョン情報であることを判断できる値となっていることが必要である。本実施形態では、ソフトウェアバージョン情報が、制御ソフトウェアの書き換え毎にバージョン値を繰り上げる構成としている。したがって、バージョン値の大小確認で、制御ソフトウェアのバージョンの新旧を判断できることになる。
以下、本実施形態の具体的な制御方法を図8に示すフローチャートに基づき詳細に説明する。図8は、制御ソフトウェア16を書き換える際に、書き換えソフトウェア17のバックアップデータの引き継ぎ処理にバージョン情報の判定を加えたフローチャートを示している。
≪ステップS81≫
ステップS81において、バックアップデータ引き継ぎ処理を実施する前に、書き換えソフトウェア17は、書き換え前の旧制御ソフトウェア16に記憶されているソフトウェアバージョン情報(以下、旧ソフトウェアバージョンと表記する)を取得する。この処理が完了するとステップS82に移行する。
≪ステップS82≫
ステップS82において、書き換えソフトウェア17は、新バックアップデータ構成情報テーブルを有する新制御ソフトウェア16のソフトウェアバージョン(以下、新ソフトウェアバージョンと表記する)を予め記憶しておき、ステップS81にて取得した現時点の旧ソフトウェアバージョンと、新ソフトウェアバージョンを比較する。
比較した結果、旧ソフトウェアバージョンが新ソフトウェアバージョンより大きな値となっている場合は、ステップS83に移行する。一方、旧ソフトウェアバージョンが新ソフトウェアバージョンより小さな値である場合、バックアップデータ構成情報テーブル18が存在しないため、ステップS84に移行する。
≪ステップS83≫
ステップS83において、旧ソフトウェアバージョンが新ソフトウェアバージョンより大きい値となっていれば、バックアップデータ構成情報テーブルが存在する制御ソフトウェア同士の書き換えと判断できるため、書き換えソフトウェア17はバックアップデータ引き継ぎ処理を実行する。このバックアップデータの引き継ぎ処理は、上述した図3のフローチャートに沿って実行されるものである。
≪ステップS84≫
ステップS84において、旧ソフトウェアバージョンが新ソフトウェアバージョンより小さい値となっていれば、書き換えソフトウェア17は、旧制御ソフトウェアを新制御ソフトウェアに書き換える処理を実行する。この書き換え処理は、上述した図3のフローチャートのステップS32で実行される。この処理が完了するとステップS85に移行する。
≪ステップS85≫
ステップS85において、旧ソフトウェアバージョンが新ソフトウェアバージョン以下の値となっていので、バックアップデータ構成情報テーブルが存在しない制御ソフトウェア16に対する書き換えと判断できるため、書き換えソフトウェア17は、バックアップデータ領域22の初期化を実行する。
このように、バックアップデータ構成情報テーブルが未対応の旧制御ソフトウェアから、バックアップデータ構成情報テーブルが対応済みの新制御ソフトウェアに書き換えを行う場合、バージョン情報を判断する処理を追加することにより、バックアップデータを正確に引き継げるようになる。したがって、制御ソフトウェアが意図しない動作を引き起こす現象を抑制することができるようになる。
上述した第3の実施形態では、ソフトウェアバージョンを用いてバックアップデータ構成情報テーブルの有無を判断して、制御ソフトウェア16の書き換えを行う手法を提案した。第4の実施形態では、ソフトウェアバージョンを用いず、フラグを用いてバックアップデータ構成情報テーブルの有無を判断する例を提案するものである。
尚、バックアップデータ構成情報テーブルの有無を判断する場合、バックアップデータ構成情報テーブルの有無を判別するフラグをEEPROM14に記憶する必要がある。また、引き継ぎ処理の実行前にフラグの判定を行い、引き継ぎ処理が実行可能か判断する必要がある。
以下、本実施形態の具体的な制御方法を図9に示すフローチャートに基づき詳細に説明する。図9は、バックアップデータ構成情報テーブルの有無を判別する「テーブル有無フラグ」を用い、バックアップデータの引継ぎ処理が実行可能か判断するフローチャートを示している。
≪ステップS91≫
ステップS91において、書き換えソフトウェア17は、テーブル有無フラグを取得する。本実施形態の処理が一度も実施されていない場合は、テーブル有無フラグが「0」となって未設定とされており、一度でも実施されていればテーブル有無フラグが「1」となって既設定とされている状態となる。この処理が完了するとステップS92に移行する。
≪ステップS92≫
ステップS92において、書き換えソフトウェア17は、ステップS91にて取得したテーブル有無フラグについて、フラグ設定の有無を判別する。フラグ設定が「1」ならばステップS93に移行し、フラグ設定が「0」ならばステップS94に移行する。
≪ステップS93≫
ステップS92において、テーブル有無フラグが「1」の場合には、書き換えソフトウェア17はバックアップデータ引き継ぎ処理を実行する。このバックアップデータの引き継ぎ処理は、上述した図3のフローチャートに沿って実行されるものである。
≪ステップS94≫
ステップS94において、テーブル有無フラグが「0」の場合には、書き換えソフトウェア17は、旧制御ソフトウェアを新制御ソフトウェアに書き換える処理を実行する。この書き換え処理は、上述した図3のフローチャートのステップS32で実行される。この処理が完了するとステップS95に移行する。
≪ステップS95≫
テーブル有無フラグが「0」の場合、旧制御ソフトウェアにバックアップデータ構成情報テーブルが含まれていないため、書き換えソフトウェア17はバックアップデータの引き継ぎ処理を実行することができない。バックアップデータを正確に引き継ぎしないまま新制御ソフトウェアが実行されると、バックアップデータ領域22の値が意図しない値で動作することになり、新制御ソフトウェアが異常動作してしまう恐れがある。
そこで、ステップS95において、バックアップデータ領域22の初期化を実行することによって、制御ソフトウェアが意図しない異常動作を行なうことを抑制することができるようになる。この処理が完了するとステップS96に移行する。
≪ステップS96≫
書き換えソフトウェア17がステップS93、ステップS94を実行することにより、バックアップデータ構成情報テーブルを有する制御ソフトウェアの書き換えが完了したため、ステップS96ではテーブル有無フラグを「1」にしてフラグ設定を実行する。
テーブル有無フラグはEEPROM14に記憶されるため、以降の書き換えソフトウェア17による制御ソフトウェア16の書き換えでは、テーブル有無フラグが「1」に設定されているため、毎回ステップS93の処理が実施されるようになる。
以上のように、図9に示すフローチャートを実行することにより、書き換えソフトウェア17が制御ソフトウェア16の書き換えを実行する際に、旧制御ソフトウェアに対する更新が可能かどうか判断することができるようになる。
したがって、バックアップデータの引き継ぎが可能な場合のみ制御ソフトウェア16の書き換え処理を実行することが可能となる。また、引き継ぎが不可能な場合は、バックアップデータを初期化することができるため、制御ソフトウェア16が意図しない異常動作を行なうことを抑制することができる。
以上に説明した各実施形態において、バックアップデータ構成情報テーブル18は制御ソフトウェア16内ではなく、制御ソフトウェア16外のROM12の記憶領域や、EEPROM14の記憶領域に格納してあっても良いものである。
以上述べた通り、本発明によれば、不揮発性メモリに記憶されたバックアップデータを一意に識別する管理IDとその割付けアドレスから構成されるデータテーブルを設け、既存の制御ソフトウェアが持つデータテーブルと、通信を介して送られてくる新しい制御ソフトウェアが持つデータテーブルとを比較し、同じ管理IDが存在する場合は、新しい制御ソフトウェアのデータテーブルで指定された不揮発性メモリのアドレスへ、既存の制御ソフトウェアのデータテーブルにある不揮発性メモリのアドレスに格納されていたデータ値を設定する構成とした。
これによれば、制御ソフトウェアの書き換え前後において、バックアップデータの構成が異なる場合であっても、書き換え前のバックアップデータを効率良く正確に引き継ぐことができるようになる。
尚、本発明は上記に示した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記の実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換える事が可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について他の構成の追加・削除・置換をすることができる。
10…ECU、11…CPU、12…ROM、13…RAM、14…EEPROM、15…通信回路、16…制御ソフトウェア、17…書き換えソフトウェア、18…バックアップデータ構成情報テーブル、19…管理IDフィールド、20…アドレスフィールド、21…リプログラミング装置、22…バックアップデータ領域、23…バックアップデータ一時保存領域。

Claims (7)

  1. 少なくとも、バックアップデータ記憶メモリに記憶されたバックアップデータを利用して所定の制御を実行する既存の制御ソフトウェア(以下、旧制御ソフトウェアと表記する)と、前記既存の制御ソフトウェアを外部装置から送られてくる新しい制御ソフトウェア(以下、新制御ソフトウェアと表記する)に書き換える書き換えソフトウェアとを記憶したソフトウェア記憶メモリを備えた制御手段からなる自動車用制御装置であって、
    前記旧制御ソフトウェアと前記新制御ソフトウェアの夫々に関連して、前記バックアップデータ記憶メモリに記憶されたバックアップデータを一意に識別する管理IDと、前記管理IDに紐つけられた前記バックアップデータ記憶メモリのアドレスから構成される旧データテーブルと新データテーブルを有し、
    前記書き換えソフトウェアは、前記旧制御ソフトウェアに関連する前記旧データテーブルと、前記新制御ソフトウェアに関連する前記新データテーブルとを比較し、同じ前記管理IDが存在する場合は、前記新制御ソフトウェアの前記新データテーブルで指定された前記バックアップデータ記憶メモリの前記アドレスへ、前記旧制御ソフトウェアの前記旧データテーブルにある前記バックアップデータ記憶メモリの前記アドレスに格納されていた前記バックアップデータを格納するバックアップデータ格納機能を有する
    ことを特徴とする自動車用制御装置。
  2. 請求項1に記載の自動車用制御装置において、
    前記旧データテーブルと前記新データテーブルは、
    前記管理IDを保持する管理IDフィールドと、前記管理IDに紐つけられ、前記バックアップデータが格納される前記バックアップデータ記憶メモリの前記アドレスを保持するアドレスフィールドから構成され、
    前記バックアップデータ格納機能は、
    前記書き換えソフトウェアによって前記旧制御ソフトウェアを前記新制御ソフトウェアに書き換える際に、前記旧制御ソフトウェアの前記旧データテーブルと、前記新制御ソフトウェアの前記新データテーブルの前記管理IDを比較する比較機能と、
    前記旧データテーブルと前記新データテーブルに同一の前記管理IDが存在する場合は、前記旧データテーブルの前記アドレスで特定される前記バックアップデータ記憶メモリに格納されている前記バックアップデータを、前記新データテーブルの前記アドレスで特定される前記バックアップデータ記憶メモリに格納する転送機能を備えている
    ことを特徴とする自動車用制御装置。
  3. 請求項1に記載の自動車用制御装置において、
    前記バックアップデータ格納機能は、前記旧データテーブルと前記新データテーブルに同一の前記管理IDが存在しない場合には、前記新データテーブルの前記アドレスで特定される前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する
    ことを特徴とする自動車用制御装置。
  4. 請求項2に記載の自動車用制御装置において、
    前記旧データテーブルは前記旧制御ソフトウェアに設けられ、前記新データテーブルは前記新制御ソフトウェアに設けられている
    ことを特徴とする自動車用制御装置。
  5. 請求項1乃至請求項4のいずれか1項に記載の自動車用制御装置において、
    前記書き換えソフトウェアは、前記バックアップデータの書き換え状態が正常に書き換えられた状態と、書き換え中の状態を示すフラグ情報を設定するフラグ設定機能を備え、
    前記新制御ソフトウェアは、起動時に書き換え中を示す前記フラグ情報が設定されている場合は、前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する初期データ値格納機能を備えている
    ことを特徴とする自動車用制御装置。
  6. 請求項1乃至請求項4のいずれか1項に記載の自動車用制御装置において、
    前記旧制御ソフトウェア、及び前記新制御ソフトウェアは、書き換え状態を識別するソフトウェアバージョン情報を有しており、
    前記書き換えソフトウェアは、前記旧制御ソフトウェアから前記新制御ソフトウェアに書き換える際に、前記ソフトウェアバージョン情報から前記旧制御ソフトウェアが前記旧データテーブルを有していないと判断された場合は、前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する初期データ値格納機能を備えている
    ことを特徴とする請求項1記載の自動車用制御装置。
  7. 請求項1乃至請求項4のいずれか1項に記載の自動車用制御装置において、
    前記バックアップデータ記憶メモリには、前記旧制御ソフトウェア、及び前記新制御ソフトウェアの書き換え状態を識別するデータテーブル有無フラグが記憶されており、
    前記書き換えソフトウェアは、前記旧制御ソフトウェアから前記新制御ソフトウェアに書き換える際に、前記データテーブル有無フラグから前記旧制御ソフトウェアが前記旧データテーブルを有していないと判断された場合は、前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する初期データ値格納機能を備えている
    ことを特徴とする請求項1記載の自動車用制御装置。
JP2017125951A 2017-06-28 2017-06-28 自動車用制御装置 Pending JP2019008693A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017125951A JP2019008693A (ja) 2017-06-28 2017-06-28 自動車用制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017125951A JP2019008693A (ja) 2017-06-28 2017-06-28 自動車用制御装置

Publications (1)

Publication Number Publication Date
JP2019008693A true JP2019008693A (ja) 2019-01-17

Family

ID=65029610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017125951A Pending JP2019008693A (ja) 2017-06-28 2017-06-28 自動車用制御装置

Country Status (1)

Country Link
JP (1) JP2019008693A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020129325A (ja) * 2019-02-12 2020-08-27 日立オートモティブシステムズ株式会社 車両用電子制御装置
CN112486549A (zh) * 2020-10-30 2021-03-12 广汽零部件有限公司 一种汽车嵌入式软件升级方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020129325A (ja) * 2019-02-12 2020-08-27 日立オートモティブシステムズ株式会社 車両用電子制御装置
CN112486549A (zh) * 2020-10-30 2021-03-12 广汽零部件有限公司 一种汽车嵌入式软件升级方法、装置及存储介质

Similar Documents

Publication Publication Date Title
KR101822485B1 (ko) 차량용 소프트웨어 원격 업데이트시 전원 차단 후 복구 방법
CN110688141B (zh) 固件更新方法
JP5695112B2 (ja) データ記憶装置、データの記憶方法および車載用制御装置
JP2019008693A (ja) 自動車用制御装置
CN111026417A (zh) 一种嵌入式设备的升级方法及嵌入式设备
KR101601751B1 (ko) 차량용 전자제어유닛 및 그 부트 소프트웨어 리프로그래밍 방법
JP6001962B2 (ja) インバータ装置
US10877743B2 (en) Control apparatus for updating stored program and method for updating program stored in control apparatus
JP5084853B2 (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
US11169828B2 (en) Electronic control unit and method for verifying control program
JP2018128722A (ja) プログラマブルロジックコントローラ
JP2007316800A (ja) 車載プログラム書換え制御装置
JP6676791B2 (ja) 情報処理装置
JP6935694B2 (ja) 電子制御装置
JP2005338955A (ja) 電子制御装置
JP2002175193A (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2002149412A (ja) 電子制御装置
JP2009026183A (ja) 自動車用電子制御装置
CN112764787B (zh) 一种基于UDS的安全升级Bootloader设计方法
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP2005321843A (ja) ファームウェアの書換え方法
JP2003271420A (ja) 電子制御装置
JP6984203B2 (ja) 電子制御装置及び更新ソフトウェア配信システム
JP6334776B1 (ja) 電子制御装置
US20210326125A1 (en) Installing application program code on a vehicle control system