(57)【要約】【課題】制御ソフトウェアの書き換えを行なう場合に、効率よく正確にバックアップデータを引き継ぐことができる自動車用制御装置を提供することにある。【解決手段】バックアップデータを一意に識別する管理ＩＤ１９とその割付けアドレス２０から構成されるデータテーブルを設け、既存の制御ソフトウェア１６が持つデータテーブル１８をＲＡＭに退避したうえで、既存の制御ソフトウェアが持つデータテーブル１８ｏｌｄと、新しい制御ソフトウェアが持つデータテーブル１８ｎｅｗとを比較し、同じ管理ＩＤが存在する場合は、既存のソフトウェアのデータテーブルにある不揮発性メモリのアドレスに格納されていたデータ値を設定し、新しい制御ソフトウェアに存在して既存の制御ソフトウェアに存在しない管理ＩＤの場合は初期値を設定する。【選択図】図４
2019008693.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、バックアップデータ記憶メモリに記憶されたバックアップデータを利用して所定の制御を実行する既存の制御ソフトウェア(以下、旧制御ソフトウェアと表記する)と、前記既存の制御ソフトウェアを外部装置から送られてくる新しい制御ソフトウェア(以下、新制御ソフトウェアと表記する)に書き換える書き換えソフトウェアとを記憶したソフトウェア記憶メモリを備えた制御手段からなる自動車用制御装置であって、
前記旧制御ソフトウェアと前記新制御ソフトウェアの夫々に関連して、前記バックアップデータ記憶メモリに記憶されたバックアップデータを一意に識別する管理ＩＤと、前記管理ＩＤに紐つけられた前記バックアップデータ記憶メモリのアドレスから構成される旧データテーブルと新データテーブルを有し、
前記書き換えソフトウェアは、前記旧制御ソフトウェアに関連する前記旧データテーブルと、前記新制御ソフトウェアに関連する前記新データテーブルとを比較し、同じ前記管理ＩＤが存在する場合は、前記新制御ソフトウェアの前記新データテーブルで指定された前記バックアップデータ記憶メモリの前記アドレスへ、前記旧制御ソフトウェアの前記旧データテーブルにある前記バックアップデータ記憶メモリの前記アドレスに格納されていた前記バックアップデータを格納するバックアップデータ格納機能を有する
ことを特徴とする自動車用制御装置。
【請求項２】
請求項１に記載の自動車用制御装置において、
前記旧データテーブルと前記新データテーブルは、
前記管理ＩＤを保持する管理ＩＤフィールドと、前記管理ＩＤに紐つけられ、前記バックアップデータが格納される前記バックアップデータ記憶メモリの前記アドレスを保持するアドレスフィールドから構成され、
前記バックアップデータ格納機能は、
前記書き換えソフトウェアによって前記旧制御ソフトウェアを前記新制御ソフトウェアに書き換える際に、前記旧制御ソフトウェアの前記旧データテーブルと、前記新制御ソフトウェアの前記新データテーブルの前記管理ＩＤを比較する比較機能と、
前記旧データテーブルと前記新データテーブルに同一の前記管理ＩＤが存在する場合は、前記旧データテーブルの前記アドレスで特定される前記バックアップデータ記憶メモリに格納されている前記バックアップデータを、前記新データテーブルの前記アドレスで特定される前記バックアップデータ記憶メモリに格納する転送機能を備えている
ことを特徴とする自動車用制御装置。
【請求項３】
請求項１に記載の自動車用制御装置において、
前記バックアップデータ格納機能は、前記旧データテーブルと前記新データテーブルに同一の前記管理ＩＤが存在しない場合には、前記新データテーブルの前記アドレスで特定される前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する
ことを特徴とする自動車用制御装置。
【請求項４】
請求項２に記載の自動車用制御装置において、
前記旧データテーブルは前記旧制御ソフトウェアに設けられ、前記新データテーブルは前記新制御ソフトウェアに設けられている
ことを特徴とする自動車用制御装置。
【請求項５】
請求項１乃至請求項４のいずれか１項に記載の自動車用制御装置において、
前記書き換えソフトウェアは、前記バックアップデータの書き換え状態が正常に書き換えられた状態と、書き換え中の状態を示すフラグ情報を設定するフラグ設定機能を備え、
前記新制御ソフトウェアは、起動時に書き換え中を示す前記フラグ情報が設定されている場合は、前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する初期データ値格納機能を備えている
ことを特徴とする自動車用制御装置。
【請求項６】
請求項１乃至請求項４のいずれか１項に記載の自動車用制御装置において、
前記旧制御ソフトウェア、及び前記新制御ソフトウェアは、書き換え状態を識別するソフトウェアバージョン情報を有しており、
前記書き換えソフトウェアは、前記旧制御ソフトウェアから前記新制御ソフトウェアに書き換える際に、前記ソフトウェアバージョン情報から前記旧制御ソフトウェアが前記旧データテーブルを有していないと判断された場合は、前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する初期データ値格納機能を備えている
ことを特徴とする請求項１記載の自動車用制御装置。
【請求項７】
請求項１乃至請求項４のいずれか１項に記載の自動車用制御装置において、
前記バックアップデータ記憶メモリには、前記旧制御ソフトウェア、及び前記新制御ソフトウェアの書き換え状態を識別するデータテーブル有無フラグが記憶されており、
前記書き換えソフトウェアは、前記旧制御ソフトウェアから前記新制御ソフトウェアに書き換える際に、前記データテーブル有無フラグから前記旧制御ソフトウェアが前記旧データテーブルを有していないと判断された場合は、前記バックアップデータ記憶メモリに、前記新制御ソフトウェアの制御で使用される初期データ値を格納する初期データ値格納機能を備えている
ことを特徴とする請求項１記載の自動車用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は自動車を制御する自動車用制御装置に係り、特に制御ソフトウェアを外部装置から送られてくる新しい制御ソフトウェアに書き換えるソフトウェア書き換え機能を備えた自動車用制御装置に関するものである。
【背景技術】
【０００２】
自動車の種々の動作を制御する自動車用制御装置は、電気的に記憶内容を書き換えることができるフラッシュメモリやＥＥＰＲＯＭ等のような不揮発性メモリを備え、同メモリ内に制御ソフトウェアを格納している。制御ソフトウェアは、例えば、内燃機関や変速機などの自動車が備える動作機器を制御する機能を備えている。
【０００３】
このような自動車用制御装置においては、制御ソフトウェアを実行することによって、制御に用いられるデータ(いわゆる、学習値)を書き換えながら、必要とされる制御を継続して実行させている。そして、自動車用制御装置への電源供給が停止されても継続して保存すべきデータを、ＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリ内に永続的に記憶している。例えば、上述した学習値や故障診断結果等のデータがこれに該当し、以下、このようなデータのことを「バックアップデータ」という。
【０００４】
一方、自動車用制御装置においては、現時点の既存の制御ソフトウェアを新しい制御ソフトウェアに書き換えることが往々にしてあり、この時にバックアップデータの引き継ぎが必要となる。つまり、バックアップデータは、制御ソフトウェアの書き換え前後において、バックアップデータの値等に差異を生じるが、バックアップデータは個々の自動車制御装置の固有の情報を蓄積しているため、可能な限り初期化せず書き換え前の値を引き継ぐことが望ましいものである。
【０００５】
例えば、特開２００２−１４９４３２号公報(特許文献１)においては、外部装置からの要求に応じて、メモリ内の既存の制御ソフトウェアを書き換え、更にこの時にバックアップデータを引き継ぐことができる自動車用制御装置が示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１４９４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１にもあるように、既存の制御ソフトウェアを新しい制御ソフトウェアに書き換える場合、バックアップデータは可能な限り初期化せず書き換え前の値を引き継ぐことが望ましい。そして、このような制御ソフトウェアを書き換える際に、いかに効率よく正確にバックアップデータを引き継ぐかが大きな課題となっている。
【０００８】
本発明の目的は、制御ソフトウェアの書き換えを行なう場合に、効率よく正確にバックアップデータを引き継ぐことができる新規な自動車用制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の特徴は、不揮発性メモリに記憶されたバックアップデータを一意に識別する管理ＩＤとその割付けアドレスから構成されるデータテーブルを設け、既存の制御ソフトウェアが持つデータテーブルと、通信を介して送られてくる新しい制御ソフトウェアが持つデータテーブルとを比較し、同じ管理ＩＤが存在する場合は、新しい制御ソフトウェアのデータテーブルで指定された不揮発性メモリのアドレスへ、既存の制御ソフトウェアのデータテーブルにある不揮発性メモリのアドレスに格納されていたデータ値を設定する、ところにある。
【発明の効果】
【００１０】
本発明によれば、制御ソフトウェアの書き換え前後において、バックアップデータの値等が異なる場合であっても、書き換え前のバックアップデータを効率良く正確に引き継ぐことができるようになる。
【図面の簡単な説明】
【００１１】
【図１】本発明が適用される自動車用制御装置の制御手段の構成を示す構成図である。
【図２】本発明で使用されるバックアップデータ構成情報テーブルの概念を示す概念図である。
【図３】本発明の第１の実施形態になる、制御ソフトウェアを書き換えてバックアップデータを引き継ぐ処理を説明するフローチャート図である。
【図４】図３に示すステップＳ３０４の詳細を説明するフローチャート図である。
【図５Ａ】バックアップデータ構成情報テーブルをＲＡＭに展開する場合の説明図である。
【図５Ｂ】新制御ソフトウェアをＲＯＭに転送する場合の説明図である。
【図５Ｃ】新バックアップデータ構成情報テーブルをＲＡＭに展開する場合の説明図である。
【図５Ｄ】バックアップデータをＲＡＭに展開する場合の説明図である。
【図５Ｅ】バックアップデータをＲＡＭからＲＯＭに書き戻す場合の説明図である。
【図６】本発明の第２の実施形態になる、書き換え途中であることを判断するためのフラグを設定する処理を説明するフローチャート図である。
【図７】本発明の第２の実施形態になる、起動時にバックアップデータ書き換え動作フラグを判定する処理を説明するフローチャート図である。
【図８】本発明の第３の実施形態になる、書き換えソフトウェアにて実施されるバックアップデータの引き継ぎ処理を説明するフローチャート図である。
【図９】本発明の第４の実施形態になる、書き換えソフトウェアにて実施されるバックアップデータの引き継ぎ処理を説明するフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を用いて詳細に説明するが、本発明は以下の実施形態に限定されることなく、本発明の技術的な概念の中で種々の変形例や応用例をもその範囲に含むものである。
【実施例１】
【００１３】
図１は、本発明の実施形態に係る自動車用制御装置(ＥＣＵ)１０の構成図である。ＥＣＵ１０は、自動車の動作を制御する処理を実装した制御ソフトウェアを実行することにより、当該自動車の動作を制御する装置である。ＥＣＵ１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＥＥＰＲＯＭ１４、通信回路１５、制御ソフトウェア１６、書き換えソフトウェア１７、バックアップデータ構成情報テーブル１８を備えている。
【００１４】
ここで、ＲＡＭ１３は、ＣＰＵ１１が使用するデータを一時的に保存するメモリデバイスである。また、ＥＥＰＲＯＭ１４は、バックアップデータを格納するバックアップデータ記憶領域を有し、同領域内にバックアップデータを格納している。したがって、ＥＥＰＲＯＭ１４は、バックアップデータ記憶メモリとして機能する。
【００１５】
ＣＰＵ１１は、ＲＯＭ１２が格納している制御ソフトウェア１６、及び書き換えソフトウェア１７を実行する演算装置であり、自動車を制御するには制御ソフトウェア１６を実行する。以下では記載の便宜上、ＣＰＵ１１が実行するソフトウェアを動作主体として説明する場合があるが、実際にこれらのソフトウェアを実行するのはＣＰＵ１１である。
【００１６】
ＣＰＵ１１は、制御ソフトウェア１６を実行する際に、ＥＥＰＲＯＭ１４が格納しているバックアップデータをＲＡＭ１３上へ読み出し、ＲＡＭ１３上へ読み出したバックアップデータを所定の制御処理に利用する。制御ソフトウェア１６を終了する時、或いはＥＣＵ１０をシャットダウンする時などの適切なタイミングで、ＣＰＵ１１は、ＲＡＭ１３上のバックアップデータをＥＥＰＲＯＭ１４へ書き戻す処理を実行する。ＥＥＰＲＯＭ１４は、ＥＣＵ１０への電源供給が遮断されてもデータを保持するので、バックアップデータは永続的に保存されることになる。
【００１７】
通信回路１５は、ＥＣＵ１０に接続される通信経路を介して、制御ソフトウェア１６を書き換える外部装置(以下、リプログラミング装置と表記する)２１と通信する機能を有する。以下では記載の便宜上、通信の説明に通信回路１５を省略する場合があるが、実際に外部装置と通信を行うのは通信回路１５である。
【００１８】
制御ソフトウェア１６は、自動車の動作を制御するために必要な処理が記述されたプログラムである。制御ソフトウェア１６は、プログラムの他に、ＥＥＰＲＯＭ１４におけるバックアップデータの配置情報を示すバックアップデータ構成情報テーブル１８を備えている。
【００１９】
バックアップデータ構成情報テーブル１８は、ＥＥＰＲＯＭ１４のバックアップデータを一意に識別する管理ＩＤと、この管理ＩＤに紐つけられた割付けアドレスから構成されるテーブルである。割付けアドレスは、制御ソフトウェア１６を作成する作成者が任意に指定することができる。このバックアップデータ構成情報テーブル１８の詳細については後述の図２で改めて説明する。
【００２０】
書き換えソフトウェア１７は、ＲＯＭ１２に記憶されている制御ソフトウェア１６を書き換えるためのプログラムである。通信回路１５を介して接続されたリプログラミング装置２１からＥＣＵ１０が更新要求を受信した場合に、書き換えソフトウェア１７を起動する。その後、リプログラミング装置２１から書き換え対象の制御ソフトウェアを受信し、書き換えソフトウェア１７は、ＲＯＭ１２内に記憶された制御ソフトウェア１６の書き換えを実行する。
【００２１】
したがって、ＲＯＭ１２は少なくとも、制御ソフトウェア１６、書き換えソフトウェア１７を記憶する、ソフトウェア記憶メモリとして機能する。
【００２２】
尚、以下の説明では、現時点でＲＯＭ１２に記憶されている既存の制御ソフトウェアを「旧制御ソフトウェア」と表記し、リプログラミング装置２１から送られてくる書き換えられる制御ソフトウェアを「新制御ソフトウェア」と表記する。
【００２３】
そして、この旧制御ソフトウェアから新制御ソフトウェアへの書き換えに際して、自動車制御装置に固有の情報、例えば、学習値等は消去せずに更新前に記憶された値を継続して制御処理に反映させる必要がある。このため、書き換え後の新制御ソフトウェア１６のバックアップデータ構成情報テーブル１８にしたがって、バックアップデータの引き継ぎを行うことが必要である。書き換えソフトウェア１７によるバックアップデータの引き継ぎ処理の詳細は、後述の図４で改めて説明する。
【００２４】
図２は、バックアップデータ構成情報テーブル１８の構成を示したものである。バックアップデータ構成情報テーブル１８は、管理ＩＤフィールド１９と、アドレスフィールド２０で構成されている。管理ＩＤフィールド１９は、バックアップデータ構成情報テーブル１８の書き換え前後で、指定されたバックアップデータが同一か否かを判断するために、バックアップデータを一意に識別するための管理ＩＤを備えている。また、アドレスフィールド２０は、バックアップデータを記憶するＥＥＰＲＯＭ１４の割付けアドレスを備えている。そして、管理ＩＤフィールド１９とアドレスフィールド２０は、夫々に関連するように紐つけられている。
【００２５】
図３は、制御ソフトウェア１６の書き換えの際に、書き換えソフトウェア１７によって実行されるバックアップデータの引き継ぎ処理を示すフローチャートである。以下、図３の各制御ステップの機能について説明する。
【００２６】
≪ステップＳ３１≫
ステップＳ３１において、書き換えソフトウェア１７は、リプログラミング装置２１から制御ソフトウェア１６の更新指示が行われたとき、書き換えソフトウェア１７によるバックアップデータの引き継ぎ処理のために、ＲＯＭ１２に記憶されている旧バックアップデータ構成情報テーブル１８をＲＡＭ１３に転送して記憶する。
【００２７】
ＲＡＭ１３に旧バックアップデータ構成情報テーブルを記憶することにより、新制御ソフトウェア１６の書き換え動作によって、ＲＯＭ１２上の旧バックアップデータ構成情報テーブルが上書きされても、旧バックアップデータ構成情報テーブル１８のデータはＲＡＭ１３に残ることになる。この処理が完了するとステップＳ３２に移行する。
【００２８】
≪ステップＳ３２≫
ステップＳ３２において、書き換えソフトウェア１７は、ＲＯＭ１２に記憶されている旧制御ソフトウェア１６を消去し、リプログラミング装置２１から受信した新制御ソフトウェア１６を書き込む。この新制御ソフトウェア１６を書き込む際、新制御ソフトウェア１６の内部に含める新バックアップデータ構成情報テーブル１８も併せて書き込み、ＲＯＭ１２上のデータを書き換える。この処理が完了するとステップＳ３３に移行する。
【００２９】
≪ステップＳ３３≫
ステップＳ３３において、書き換えソフトウェア１７は、ＲＯＭ１２に記憶された新制御ソフトウェア１６に備えられた新バックアップデータ構成情報テーブル１８をＲＡＭ１３に転送して記憶する。これによって、ＲＡＭ１３上で新バックアップデータ構成情報テーブルと旧バックアップデータ構成情報テーブルの比較を実行することができる。この処理が完了するとステップＳ３４に移行する。
【００３０】
≪ステップＳ３４≫
ステップＳ３４において、書き換えソフトウェア１７は、ステップＳ３１にてＲＡＭ１３に転送、記憶された旧バックアップデータ構成情報テーブル、及び、ステップＳ３３にてＲＡＭ１３に転送、記憶された新バックアップデータ構成情報テーブルを利用し、新バックアップデータを生成する。新バックアップデータの生成について、詳細は図４にて説明を行う。この処理が完了するとステップＳ３５に移行する。
【００３１】
≪ステップＳ３５≫
ステップＳ３５において、書き換えソフトウェア１７は、ＥＥＰＲＯＭ１４のバックアップデータ領域に記憶されている旧バックアップデータを消去し、ステップＳ３４にて生成した新バックアップデータを、ＥＥＰＲＯＭ１４のバックアップデータ領域に書き込む。このような制御ステップにより、バックアップデータを効率良く正確に引き継ぐことが可能となる。
【００３２】
次に上述した新バックアップデータを生成する処理の具体的な例を、図４に示すフローチャートに基づき説明する。
【００３３】
≪ステップＳ４１≫
ステップＳ４１において、書き換えソフトウェア１７は、旧バックアップデータから新バックアップデータを生成するため、生成した新バックアップデータ格納用の一時保存領域をＲＡＭ１３に確保する。この処理が完了するとステップＳ４２、４３に移行する。
【００３４】
≪ステップＳ４２、Ｓ４３≫
ステップＳ４２、Ｓ４３において、書き換えソフトウェア１７は、ＲＡＭ１３に記憶されている新バックアップデータ構成情報テーブルから、登録されているレコードを一つ取り出し、管理ＩＤフィールド１９に登録された管理ＩＤが、旧バックアップデータ構成情報テーブルの管理ＩＤフィールド１９に登録されているかどうかを検索、比較する。
【００３５】
同一管理ＩＤが旧バックアップデータ構成情報テーブルに登録されていた場合は、ステップＳ４４に移行し、同一管理ＩＤが旧バックアップデータ構成情報テーブルに登録されていなかった場合は、ステップＳ４５に移行する。
【００３６】
≪ステップＳ４４≫
ステップＳ４４において、同一管理ＩＤが旧バックアップデータ構成情報テーブルに登録されているので、書き換えソフトウェア１７は、管理ＩＤが一致した旧バックアップデータ構成情報テーブルのレコードから、アドレスフィールド２０に登録されたアドレスを参照する。そして、参照したアドレスからＥＥＰＲＯＭ１４に記憶されている旧バックアップデータのデータ値を取得する。
【００３７】
≪ステップＳ４５≫
一方、ステップＳ４５において、同一管理ＩＤが旧バックアップデータ構成情報テーブルに登録されていないので、書き換えソフトウェア１７は、新制御ソフトウェア内で定義されるバックアップデータの初期データ値を取得する。この場合の初期データ値は、制御ソフトウェアの対応する制御処理に使用される初期データ値を取得している。
【００３８】
≪ステップＳ４６≫
ステップＳ４６において、書き換えソフトウェア１７は、ステップＳ４２にて検索したレコードから、アドレスフィールド２０に登録されたアドレスを取得する。そして、書き換えソフトウェア１７は、取得したＥＥＰＲＯＭ１４のアドレス情報を元に、ステップＳ４１で作成したＲＡＭ１３の一時保存領域に対して、ステップＳ４４、ステップＳ４５にて取得したバックアップデータを格納する。尚、この時はステップＳ４１で確保したＲＡＭ１３の一時保存領域は、ＥＥＰＲＯＭ１４のバックアップ領域とデータ配置が一致するようにして取り扱われている。この処理が完了するとステップＳ４７に移行する。
【００３９】
≪ステップＳ４７≫
ステップＳ４７において、書き換えソフトウェア１７は、新バックアップデータ構成情報テーブルの管理ＩＤフィールド１９に記憶されている全管理ＩＤの検索、比較が完了するまで、対象の各レコードを切り替えながらステップＳ４２〜Ｓ４６の処理を順次実行する。このような制御ステップにより、バックアップデータを引き継ぐことが可能となる。
【００４０】
次に、上述した処理を実行した場合のデータの流れを簡単に説明する。図５Ａ〜図５Ｅは、図３、及び図４のフローチャートで説明した処理におけるデータの流れを図解したものである。
【００４１】
図５Ａにおいて、ＲＯＭ１２に記憶されている実線で示す旧制御ソフトウェア１６ｏｌｄは、書き換え前の制御ソフトウェアである。また、実線で示す旧バックアップデータ構成情報テーブル１８ｏｌｄは、旧制御ソフトウェア１６ｏｌｄに記憶されている書き換え前のバックアップデータ構成情報テーブルである。
【００４２】
また、ＲＡＭ１３に記憶される破線で示す旧バックアップデータ構成情報テーブル１８ｏｌｄは、ＲＯＭ１２に記録されている旧バックアップデータ構成情報テーブル１８ｏｌｄを、ＲＡＭ１３に転送、記憶させる場合のバックアップデータ構成情報テーブルを示している。そして、破線は未だ転送されていない状態を表し、逆に転送、記憶された場合は実線で表示している。以下の図５Ｂ〜図５Ｅについても同様である。
【００４３】
図５Ｂにおいて、リプログラミング装置２１に格納されている新制御ソフトウェア１６ｎｅｗは、書き換え対象の制御ソフトウェアである。また、新バックアップデータ構成情報テーブル１８ｎｅｗは、新制御ソフトウェア１６ｎｅｗに記憶されている書き換え対象のバックアップデータ構成情報テーブルである。
【００４４】
図５Ｃにおいて、破線で示すＲＡＭ１３の新バックアップデータ構成情報テーブル１８ｎｅｗは、ＲＯＭ１２の新バックアップデータ構成情報テーブル１８ｎｅｗを、ＲＡＭ１３に転送、記憶する場合のバックアップデータ構成情報テーブルである。
【００４５】
図５Ｄにおいて、バックアップデータ領域２２は、ＥＥＰＲＯＭ１４に記憶されたバックアップデータが格納されている領域を示している。また、ＲＡＭ１３のバックアップデータ一時保存領域２３は、新しく生成したバックアップデータを一時的に記憶する保存領域を示している。バックアップデータ一時保存領域２３は、バックアップデータの引き継ぎ時に、一時的に確保されればよい領域であるため、データの書き換え処理が容易なＲＡＭ１３上に確保される構成となっている。
【００４６】
以下、図３、及び図４の処理におけるデータの流れについて、図５Ａ〜図５Ｅを用いて詳細に説明する。
【００４７】
図５Ａにおいて、書き換えソフトウェア１７が図３のステップＳ３１を実行することにより、書き換えソフトウェア１７は、ＲＯＭ１２に記憶されている旧バックアップデータ構成情報テーブル１８ｏｌｄをＲＡＭ１３に転送、記憶させて、ＲＡＭ１３上に旧バックアップデータ構成情報テーブル１８ｏｌｄを作成する。
【００４８】
次に、図５Ｂにおいて、書き換えソフトウェア１７が図３のステップＳ３２を実行することにより、書き換えソフトウェア１７は、ＲＯＭ１２に記憶されている旧制御ソフトウェア１６ｏｌｄ、旧バックアップデータ構成情報テーブル１８ｏｌｄを消去し、リプログラミング装置２１から通信回路１５を経由して受信した、新制御ソフトウェア１６ｎｅｗ、新バックアップデータ構成情報テーブル１８ｎｅｗをＲＯＭ１２に書き込む。
【００４９】
次に、図５Ｃにおいて、書き換えソフトウェア１７が図３のステップＳ３３を実行することにより、書き換えソフトウェア１７は、ＲＯＭ１２に記憶されている新バックアップデータ構成情報テーブル１８ｎｅｗを、ＲＡＭ１３に転送、記憶させて、新バックアップデータ構成情報テーブル１８ｎｅｗを作成する。
【００５０】
次に、図５Ｄにおいて、書き換えソフトウェア１７が図３のステップＳ３４を実行することにより、書き換えソフトウェア１７は、ＥＥＰＲＰＭ１４と同じ形式のバックアップデータ領域を、ＲＡＭ１３上にバックアップデータ一時保存領域２４として確保する。そして、書き換えソフトウェア１７は、ＲＡＭ１３に記憶された旧バックアップデータ構成情報テーブル１８ｏｌｄ、新バックアップデータ構成情報テーブル１８ｎｅｗを使用し、図４のフローに従い新バックアップデータを生成する。新バックアップデータは、バックアップデータ一時保存領域２４に記憶されることになる。新バックアップデータ生成の処理の詳細は、図４に示した通りであるので、ここでは説明を省略する。
【００５１】
次に、図５Ｅにおいて、書き換えソフトウェア１７が図３のステップＳ３５を実行することにより、書き換えソフトウェア１７は、バックアップ一時保存領域２３に記憶されている新バックアップデータを、ＥＥＰＲＯＭ１４のバックアップ領域２２に書き込む。これにより、ＥＥＰＲＯＭ１４上のバックアップデータ領域２２に記憶されているバックアップデータは、引き継ぎ後のバックアップデータとなる。
【００５２】
以上のように、本実施形態に係る自動車制御装置１０は、書き換えソフトウェア１７が新旧のバックアップデータ構成情報テーブル１８の情報を元にして、旧バックアップデータから新バックアップデータを生成し、バックアップデータを引き継ぎながら制御ソフトウェア１６を書き換えることができ、効率良くしかも正確に制御ソフトウェアの書き換えが行われるものとなる。
【実施例２】
【００５３】
第１の実施形態においては、書き換えソフトウェア１７が制御ソフトウェア１６の書き換えの際に、バックアップデータを引き継ぐ手法を提案している。しかしながら、実際の運用においては、制御ソフトウェアの書き換えの途中で、例えば、ＥＣＵ１０の電源が意図せずに遮断され、バックアップデータを正しく書き換えできずに異常状態となってしまうことが想定される。
【００５４】
そこで、第２の実施形態では電源遮断による書き換えの失敗を考慮して、仮に書き換えの失敗が発生すると、バックアップデータを初期化して対応することを提案するものである。本実施形態では、図３に示すフローチャートを一部変更し、書き換え途中であることを判断できるようにしたものであり、その変更後のフローチャートを図６に示している。
【００５５】
また、本実施形態では、電源遮断後の復帰時には、ＥＣＵ１０の起動に際して書き換え失敗の状態を判断し、書き換え失敗の時はバックアップデータ領域の初期化を実行しており、そのフローチャートを図７に示している。
【００５６】
図６は、図３に示すフローチャートを基礎として、書き換え途中であることを判断するためのフラグ設定処理を追加したフローチャートを示している。以下、図６に基づき各制御ステップの機能について説明するが、図３に示す制御ステップ同じ制御ステップについては説明を省略する。
【００５７】
≪ステップＳ３１≫
図３のステップ３１と同一であるため、説明を省略する。
【００５８】
≪ステップＳ６１≫
ステップＳ６１において、書き換えソフトウェア１７がステップＳ３１を実施することにより、ＲＯＭ１２に記憶されている旧バックアップデータ構成情報テーブル１８ｏｌｄは消去され、ＲＡＭ１３上に旧バックアップデータ構成情報テーブル１８ｏｌｄが作成される。
【００５９】
しかしながら、意図せずに電源が遮断されると、ＲＡＭ１３上の旧バックアップデータ構成情報テーブル１８ｏｌｄは消去されることになる。すなわち、ＲＡＭ１３は電源が切れると記憶機能が喪失されるため、仮にステップＳ３１の実行後に電源が遮断されると、復帰後にＲＡＭ１３上の旧バックアップデータ構成情報テーブルの１８ｏｌｄが消去されている状態となる。
【００６０】
このように、ＲＡＭ１３上の旧バックアップデータ構成情報テーブル１８ｏｌｄが消去されていると、バックアップデータの書き換え処理を行うことができない。このため、ステップＳ６１においては、ＲＯＭ１２上の旧バックアップデータ構成情報テーブル１８ｏｌｄを消去する前に、バックアップデータ書き換えのシーケンス開始を示すバックアップデータ書き換え動作フラグの設定「０」⇒「１」を実行する。
【００６１】
尚、このバックアップデータ書き換え動作フラグの設定は、ＥＥＰＲＯＭ１４のバックアップデータ領域２２内にフラグ情報を記憶すると、ステップＳ３５のバックアップデータ書き込みの際に消去されてしまうため、ＥＥＰＲＯＭ１４のバックアップデータ領域２２外に設定されている。
【００６２】
≪ステップＳ３２≫
図３のステップ３２と同一であるため、説明を省略する。
≪ステップＳ３３≫
図３のステップ３３と同一であるため、説明を省略する。
≪ステップＳ３４≫
図３のステップ３４と同一であるため、説明を省略する。
≪ステップＳ３５≫
図３のステップ３５と同一であるため、説明を省略する。
【００６３】
≪ステップＳ６２≫
ステップＳ６１において、ＥＥＰＲＯＭ１４のバックアップデータは、ステップＳ３５により引き継ぎ後の状態となっているため、ステップＳ６１にて設定したバックアップデータ書き換え動作フラグを初期化「１」⇒「０」とする。一方、正常にバックアップデータが引き継がれない場合は、ステップＳ６１にて設定したバックアップデータ書き換え動作フラグは初期化されず「１」(書き換え動作中)の状態のままとなる。このような制御ステップＳ６１，Ｓ６２を追加することによって、バックアップデータ書き換え動作フラグの設定と初期化を制御できる。
【００６４】
次に、図６に示したバックアップデータ書き換え動作フラグを利用して、バックアップデータを初期化する制御フローを図７に基づき説明する。
【００６５】
図７は、図６で設定したバックアップデータ書き換え動作フラグを用いて、起動時にバックアップデータの書き換え処理の正常判定を実行するフローチャートである。以下、ＥＣＵ１０に電源が供給されてから通常の制御ソフトウェアを実行するまでの処理を説明する。
【００６６】
≪ステップＳ７１≫
ステップＳ７１において、ＥＣＵ１０に電源が投入された直後に、制御ソフトウェア１６はＥＣＵ１０の初期設定を実行する。このステップＳ７１によって、ＣＰＵ１１の入出力ポートの設定やレジスタの設定を実行する。この処理が完了するとステップＳ７２に移行する。
【００６７】
≪ステップＳ７２≫
ステップＳ７２において、制御ソフトウェア１６は、前回の電源遮断時に書き換えソフトウェア１７が書き換え動作中であったか否かを判断するため、図６のステップＳ６１、Ｓ６２によって設定された、バックアップデータ書き換え動作フラグを読み込む。この処理が完了するとステップＳ７３に移行する。
【００６８】
≪ステップＳ７３≫
ステップＳ７３において、制御ソフトウェア１６は、ステップＳ７２で読み取ったバックアップデータ書き換え動作フラグのフラグ情報から、書き換えソフトウェア１７が書き換え動作中であったか否かを確認する。バックアップデータ書き換え動作フラグが「１」に設定されていると、書き換え動作中と判断してステップＳ７４に移行する。一方、バックアップデータ書き換え動作フラグが「０」に設定されていると、書き換え動作中でないと判断してステップＳ７６に移行する。
【００６９】
≪ステップＳ７４≫
ステップＳ７４において、バックアップデータ書き換え動作フラグが「１」に設定されていることから、バックアップデータ書き換え動作が正常に完了せずにＥＣＵ１０が起動されたことを判断できるため、制御ソフトウェア１６は、ステップＳ７４でバックアップデータ領域２２の初期化を実施する。この処理が完了するとステップＳ７５に移行する。
【００７０】
≪ステップＳ７５≫
ステップＳ７５において、ステップＳ７４でバックアップデータ領域２２の初期化が完了し、バックアップデータ領域２２が正常な状態となったため、制御ソフトウェア１６は、バックアップデータの書き換え途中であることを表すバックアップデータ書き換え動作フラグを初期化する。この処理が完了するとステップＳ７６に移行する。
【００７１】
≪ステップＳ７６≫
ステップＳ７６において、ステップＳ７４、ステップＳ７５によりバックアップデータの書き換え失敗による、バックアップデータの異常状態を解消することができたため、以降は、通常の制御ソフトウェア処理を実行する。
【００７２】
以上のように、本実施形態によれば、バックアップデータ書き換え動作フラグを設定し、バックアップデータ書き換え動作フラグの結果からバックアップデータの書き換えを制御するようにしている。これにより、バックアップデータの引き継ぎが電源遮断などによって失敗しても、バックアップデータが初期値に設定されるので、制御ソフトウェアが意図しない動作を引き起こすことを抑制することができるようになる。
【実施例３】
【００７３】
第１の実施形態においては、書き換えソフトウェア１７が制御ソフトウェア１６の書き換えの際に、バックアップデータを引き継ぐ手法を提案している。しかしながら、実際に運用している制御ソフトウェア１６において第１の実施形態に基づくバックアップデータの引き継ぎ手法が導入されておらず、バックアップデータ構成情報テーブルが存在しない場合がある。
【００７４】
したがって、第１の実施形態に基づくバックアップデータの引き継ぎ手法を導入する場合、旧制御ソフトウェアに旧バックアップデータ構成情報テーブルが存在せず、新制御ソフトウェアに新バックアップデータ構成情報テーブルが存在する組み合わせの下で、制御ソフトウェアの書き換えを行なわなければならない。このため、書き換えソフトウェア１７は、旧制御ソフトウェアに旧バックアップデータ構成情報テーブルが存在しないので、バックアップデータの引き継ぎを実行することができない状況となる。
【００７５】
そこで、第３の実施形態では、制御ソフトウェア１６にソフトウェアバージョン情報を記憶するようにし、バックアップデータの書き換え実行時にソフトウェアバージョン情報を確認して、バックアップデータを初期化して対応することを提案するものである。
【００７６】
尚、このソフトウェアバージョン情報は、ソフトウェアバージョン情報同士を比較したときに、書き換え前後のバージョン情報であることを判断できる値となっていることが必要である。本実施形態では、ソフトウェアバージョン情報が、制御ソフトウェアの書き換え毎にバージョン値を繰り上げる構成としている。したがって、バージョン値の大小確認で、制御ソフトウェアのバージョンの新旧を判断できることになる。
【００７７】
以下、本実施形態の具体的な制御方法を図８に示すフローチャートに基づき詳細に説明する。図８は、制御ソフトウェア１６を書き換える際に、書き換えソフトウェア１７のバックアップデータの引き継ぎ処理にバージョン情報の判定を加えたフローチャートを示している。
【００７８】
≪ステップＳ８１≫
ステップＳ８１において、バックアップデータ引き継ぎ処理を実施する前に、書き換えソフトウェア１７は、書き換え前の旧制御ソフトウェア１６に記憶されているソフトウェアバージョン情報（以下、旧ソフトウェアバージョンと表記する）を取得する。この処理が完了するとステップＳ８２に移行する。
【００７９】
≪ステップＳ８２≫
ステップＳ８２において、書き換えソフトウェア１７は、新バックアップデータ構成情報テーブルを有する新制御ソフトウェア１６のソフトウェアバージョン(以下、新ソフトウェアバージョンと表記する)を予め記憶しておき、ステップＳ８１にて取得した現時点の旧ソフトウェアバージョンと、新ソフトウェアバージョンを比較する。
【００８０】
比較した結果、旧ソフトウェアバージョンが新ソフトウェアバージョンより大きな値となっている場合は、ステップＳ８３に移行する。一方、旧ソフトウェアバージョンが新ソフトウェアバージョンより小さな値である場合、バックアップデータ構成情報テーブル１８が存在しないため、ステップＳ８４に移行する。
【００８１】
≪ステップＳ８３≫
ステップＳ８３において、旧ソフトウェアバージョンが新ソフトウェアバージョンより大きい値となっていれば、バックアップデータ構成情報テーブルが存在する制御ソフトウェア同士の書き換えと判断できるため、書き換えソフトウェア１７はバックアップデータ引き継ぎ処理を実行する。このバックアップデータの引き継ぎ処理は、上述した図３のフローチャートに沿って実行されるものである。
【００８２】
≪ステップＳ８４≫
ステップＳ８４において、旧ソフトウェアバージョンが新ソフトウェアバージョンより小さい値となっていれば、書き換えソフトウェア１７は、旧制御ソフトウェアを新制御ソフトウェアに書き換える処理を実行する。この書き換え処理は、上述した図３のフローチャートのステップＳ３２で実行される。この処理が完了するとステップＳ８５に移行する。
【００８３】
≪ステップＳ８５≫
ステップＳ８５において、旧ソフトウェアバージョンが新ソフトウェアバージョン以下の値となっていので、バックアップデータ構成情報テーブルが存在しない制御ソフトウェア１６に対する書き換えと判断できるため、書き換えソフトウェア１７は、バックアップデータ領域２２の初期化を実行する。
【００８４】
このように、バックアップデータ構成情報テーブルが未対応の旧制御ソフトウェアから、バックアップデータ構成情報テーブルが対応済みの新制御ソフトウェアに書き換えを行う場合、バージョン情報を判断する処理を追加することにより、バックアップデータを正確に引き継げるようになる。したがって、制御ソフトウェアが意図しない動作を引き起こす現象を抑制することができるようになる。
【実施例４】
【００８５】
上述した第３の実施形態では、ソフトウェアバージョンを用いてバックアップデータ構成情報テーブルの有無を判断して、制御ソフトウェア１６の書き換えを行う手法を提案した。第４の実施形態では、ソフトウェアバージョンを用いず、フラグを用いてバックアップデータ構成情報テーブルの有無を判断する例を提案するものである。
【００８６】
尚、バックアップデータ構成情報テーブルの有無を判断する場合、バックアップデータ構成情報テーブルの有無を判別するフラグをＥＥＰＲＯＭ１４に記憶する必要がある。また、引き継ぎ処理の実行前にフラグの判定を行い、引き継ぎ処理が実行可能か判断する必要がある。
【００８７】
以下、本実施形態の具体的な制御方法を図９に示すフローチャートに基づき詳細に説明する。図９は、バックアップデータ構成情報テーブルの有無を判別する「テーブル有無フラグ」を用い、バックアップデータの引継ぎ処理が実行可能か判断するフローチャートを示している。
【００８８】
≪ステップＳ９１≫
ステップＳ９１において、書き換えソフトウェア１７は、テーブル有無フラグを取得する。本実施形態の処理が一度も実施されていない場合は、テーブル有無フラグが「０」となって未設定とされており、一度でも実施されていればテーブル有無フラグが「１」となって既設定とされている状態となる。この処理が完了するとステップＳ９２に移行する。
【００８９】
≪ステップＳ９２≫
ステップＳ９２において、書き換えソフトウェア１７は、ステップＳ９１にて取得したテーブル有無フラグについて、フラグ設定の有無を判別する。フラグ設定が「１」ならばステップＳ９３に移行し、フラグ設定が「０」ならばステップＳ９４に移行する。
【００９０】
≪ステップＳ９３≫
ステップＳ９２において、テーブル有無フラグが「１」の場合には、書き換えソフトウェア１７はバックアップデータ引き継ぎ処理を実行する。このバックアップデータの引き継ぎ処理は、上述した図３のフローチャートに沿って実行されるものである。
【００９１】
≪ステップＳ９４≫
ステップＳ９４において、テーブル有無フラグが「０」の場合には、書き換えソフトウェア１７は、旧制御ソフトウェアを新制御ソフトウェアに書き換える処理を実行する。この書き換え処理は、上述した図３のフローチャートのステップＳ３２で実行される。この処理が完了するとステップＳ９５に移行する。
【００９２】
≪ステップＳ９５≫
テーブル有無フラグが「０」の場合、旧制御ソフトウェアにバックアップデータ構成情報テーブルが含まれていないため、書き換えソフトウェア１７はバックアップデータの引き継ぎ処理を実行することができない。バックアップデータを正確に引き継ぎしないまま新制御ソフトウェアが実行されると、バックアップデータ領域２２の値が意図しない値で動作することになり、新制御ソフトウェアが異常動作してしまう恐れがある。
【００９３】
そこで、ステップＳ９５において、バックアップデータ領域２２の初期化を実行することによって、制御ソフトウェアが意図しない異常動作を行なうことを抑制することができるようになる。この処理が完了するとステップＳ９６に移行する。
【００９４】
≪ステップＳ９６≫
書き換えソフトウェア１７がステップＳ９３、ステップＳ９４を実行することにより、バックアップデータ構成情報テーブルを有する制御ソフトウェアの書き換えが完了したため、ステップＳ９６ではテーブル有無フラグを「１」にしてフラグ設定を実行する。
【００９５】
テーブル有無フラグはＥＥＰＲＯＭ１４に記憶されるため、以降の書き換えソフトウェア１７による制御ソフトウェア１６の書き換えでは、テーブル有無フラグが「１」に設定されているため、毎回ステップＳ９３の処理が実施されるようになる。
【００９６】
以上のように、図９に示すフローチャートを実行することにより、書き換えソフトウェア１７が制御ソフトウェア１６の書き換えを実行する際に、旧制御ソフトウェアに対する更新が可能かどうか判断することができるようになる。
【００９７】
したがって、バックアップデータの引き継ぎが可能な場合のみ制御ソフトウェア１６の書き換え処理を実行することが可能となる。また、引き継ぎが不可能な場合は、バックアップデータを初期化することができるため、制御ソフトウェア１６が意図しない異常動作を行なうことを抑制することができる。
【００９８】
以上に説明した各実施形態において、バックアップデータ構成情報テーブル１８は制御ソフトウェア１６内ではなく、制御ソフトウェア１６外のＲＯＭ１２の記憶領域や、ＥＥＰＲＯＭ１４の記憶領域に格納してあっても良いものである。
【００９９】
以上述べた通り、本発明によれば、不揮発性メモリに記憶されたバックアップデータを一意に識別する管理ＩＤとその割付けアドレスから構成されるデータテーブルを設け、既存の制御ソフトウェアが持つデータテーブルと、通信を介して送られてくる新しい制御ソフトウェアが持つデータテーブルとを比較し、同じ管理ＩＤが存在する場合は、新しい制御ソフトウェアのデータテーブルで指定された不揮発性メモリのアドレスへ、既存の制御ソフトウェアのデータテーブルにある不揮発性メモリのアドレスに格納されていたデータ値を設定する構成とした。
【０１００】
これによれば、制御ソフトウェアの書き換え前後において、バックアップデータの構成が異なる場合であっても、書き換え前のバックアップデータを効率良く正確に引き継ぐことができるようになる。
【０１０１】
尚、本発明は上記に示した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記の実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換える事が可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について他の構成の追加・削除・置換をすることができる。
【符号の説明】
【０１０２】
１０…ＥＣＵ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＥＥＰＲＯＭ、１５…通信回路、１６…制御ソフトウェア、１７…書き換えソフトウェア、１８…バックアップデータ構成情報テーブル、１９…管理ＩＤフィールド、２０…アドレスフィールド、２１…リプログラミング装置、２２…バックアップデータ領域、２３…バックアップデータ一時保存領域。
【図１】
2019008693.tif 000003
【図２】
2019008693.tif 000004
【図３】
2019008693.tif 000005
【図４】
2019008693.tif 000006
【図５Ａ】
2019008693.tif 000007
【図５Ｂ】
2019008693.tif 000008
【図５Ｃ】
2019008693.tif 000009
【図５Ｄ】
2019008693.tif 000010
【図５Ｅ】
2019008693.tif 000011
【図６】
2019008693.tif 000012
【図７】
2019008693.tif 000013
【図８】
2019008693.tif 000014
【図９】
2019008693.tif 000015