JP2007316800A - 車載プログラム書換え制御装置 - Google Patents
車載プログラム書換え制御装置 Download PDFInfo
- Publication number
- JP2007316800A JP2007316800A JP2006143794A JP2006143794A JP2007316800A JP 2007316800 A JP2007316800 A JP 2007316800A JP 2006143794 A JP2006143794 A JP 2006143794A JP 2006143794 A JP2006143794 A JP 2006143794A JP 2007316800 A JP2007316800 A JP 2007316800A
- Authority
- JP
- Japan
- Prior art keywords
- rewriting
- area
- program
- rewrite
- state
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】プログラム書換え中に異常があっても、その後再び書換えを行うことで正常に書換えが完了でき、かつ、不揮発性メモリの必要量が少なくてすむような車載プログラム書換え制御装置を得る。
【解決手段】車載コントローラ1の不揮発性メモリ5は、起動するプログラムを切換える起動切換えプログラムが格納された領域51と、プログラムを書換える書換え制御プログラムを格納した領域52と、車両を制御する車両制御プログラムを格納した領域53とを有し、書換えツール14は、不揮発性メモリ5のプログラムを書換えるに当って、一旦、領域53に書換え制御プログラムを格納して、この書換え制御プログラムにより領域52を書換え、その後領域53を書換える書換え手順により書換えを行い、書換え途中に異常が発生した場合には、書換え手順の開始点を変更して書換え手順を実行するようにしたものである。
【選択図】図1
【解決手段】車載コントローラ1の不揮発性メモリ5は、起動するプログラムを切換える起動切換えプログラムが格納された領域51と、プログラムを書換える書換え制御プログラムを格納した領域52と、車両を制御する車両制御プログラムを格納した領域53とを有し、書換えツール14は、不揮発性メモリ5のプログラムを書換えるに当って、一旦、領域53に書換え制御プログラムを格納して、この書換え制御プログラムにより領域52を書換え、その後領域53を書換える書換え手順により書換えを行い、書換え途中に異常が発生した場合には、書換え手順の開始点を変更して書換え手順を実行するようにしたものである。
【選択図】図1
Description
この発明は、車載コントローラの不揮発性メモリに書き込まれたプログラムの書換えを行う車載プログラム書換え制御装置に関するものである。
車載コントローラの不揮発性メモリに書き込まれたプログラムの書換えについて、コスト削減の観点からプログラム書換え用の通信線が、ディーラー用の車両診断ツールなどが接続される通信線と共用される構成が増えてきている。これは、見方を変えると、一般ユーザでも通信や書換えを行うことが容易な状況になりつつあることになるため、例えば不正改造対策として、書換え通信におけるセキュリティ確保の必要性が増加してきている。
通常、ディーラーで行われる車載コントローラの制御プログラム更新においては、セキュリティ機能を含む通信プロトコルを定義し、そのプロトコルに従って書換えが行なわれている。このため、書換えプロトコルに対応するプログラムを車載コントローラに組み込む必要がある。さらに、最近では、市場投入後もセキュリティ確保のために書換えプロトコルを更新する要求も発生してきている。
また、車載コントローラの制御プログラムを更新するために、ディーラーにおけるプログラム書換えの実施が頻繁に行われるようになってきている。このため、仮にディーラーで誤った操作を行ったとしても、最終的にプログラム書換えを正常に完了できる信頼性が求められている。
通常、ディーラーで行われる車載コントローラの制御プログラム更新においては、セキュリティ機能を含む通信プロトコルを定義し、そのプロトコルに従って書換えが行なわれている。このため、書換えプロトコルに対応するプログラムを車載コントローラに組み込む必要がある。さらに、最近では、市場投入後もセキュリティ確保のために書換えプロトコルを更新する要求も発生してきている。
また、車載コントローラの制御プログラムを更新するために、ディーラーにおけるプログラム書換えの実施が頻繁に行われるようになってきている。このため、仮にディーラーで誤った操作を行ったとしても、最終的にプログラム書換えを正常に完了できる信頼性が求められている。
このような状況に対する従来技術として、例えば特許文献1がある。
特許文献1では、不揮発性メモリに格納する方法として、リセット時判断プログラムと書換え制御プログラムの記憶領域と、車載プログラムの記憶領域を分けている。こうすることによって、車載プログラムを書換える時でも、リセット判断時プログラムと書換え制御プログラムの記憶領域は、そのまま残すことによって、書換え途中にバッテリが外されるなどしても、その後再び書換えを行うことで正常に書換えができる。
さらに、車載プログラムの一部として、リセット時判断プログラムと書換え制御プログラムを組み込むことで、書換え制御プログラムの変更も可能としている。
特許文献1では、不揮発性メモリに格納する方法として、リセット時判断プログラムと書換え制御プログラムの記憶領域と、車載プログラムの記憶領域を分けている。こうすることによって、車載プログラムを書換える時でも、リセット判断時プログラムと書換え制御プログラムの記憶領域は、そのまま残すことによって、書換え途中にバッテリが外されるなどしても、その後再び書換えを行うことで正常に書換えができる。
さらに、車載プログラムの一部として、リセット時判断プログラムと書換え制御プログラムを組み込むことで、書換え制御プログラムの変更も可能としている。
しかしながら、特許文献1で、書換え制御プログラム自身を書換える場合、すでにあるリセット時判断プログラムと書換え制御プログラムの他に、車載プログラムを格納するための領域として、車載プログラムとリセット時判断プログラムと書換え制御プログラムを格納できるだけの大きさの領域が必要となる。すなわち、実際にはリセット時判断プログラムと書換え制御プログラムの両方を二重に格納できるだけの不揮発メモリが必要となるため、H/W(ハードウエア)が高価になる問題がある。
この発明は、上述のような課題を解決するためになされたものであり、プログラム書換え中に異常があっても、その後再び書換えを行うことで正常に書換えが完了でき、かつ、不揮発性メモリの必要量が少なくてすむような車載プログラム書換え制御装置を得ることを目的にしている。
この発明に係わる車載プログラム書換え制御装置においては、車両を制御する車載コントローラの不揮発性記憶媒体に記憶されたプログラムを、車載コントローラと通信路を介して接続された書換えツールにより書換える車載プログラム書換え制御装置において、不揮発性記憶媒体には、プログラムを書換える書換え制御プログラムを格納した第一の領域及び車両を制御する車両制御プログラムを格納した第二の領域がそれぞれ独立に書込み及び消去が可能なように設けられ、書換えツールは、第一の領域及び第二の領域を書換えるに当っては、第一の領域の書換え制御プログラムにより第二の領域を書換え制御プログラムに書換え、この書換えられた第二の領域の書換え制御プログラムにより第一の領域の書換え制御プログラムを新しい書換え制御プログラムに書換え、この書換えられた第一の領域の新しい書換え制御プログラムにより第二の領域の車両制御プログラムを新しい車両制御プログラムに書換える書換え手順を実行するとともに、書換えの途中で、異常が発生し、異常からの復旧時には、各領域の状態に応じた書換え制御プログラムにより書換え手順を再開するものである。
この発明は、以上説明したように、車両を制御する車載コントローラの不揮発性記憶媒体に記憶されたプログラムを、車載コントローラと通信路を介して接続された書換えツールにより書換える車載プログラム書換え制御装置において、不揮発性記憶媒体には、プログラムを書換える書換え制御プログラムを格納した第一の領域及び車両を制御する車両制御プログラムを格納した第二の領域がそれぞれ独立に書込み及び消去が可能なように設けられ、書換えツールは、第一の領域及び第二の領域を書換えるに当っては、第一の領域の書換え制御プログラムにより第二の領域を書換え制御プログラムに書換え、この書換えられた第二の領域の書換え制御プログラムにより第一の領域の書換え制御プログラムを新しい書換え制御プログラムに書換え、この書換えられた第一の領域の新しい書換え制御プログラムにより第二の領域の車両制御プログラムを新しい車両制御プログラムに書換える書換え手順を実行するとともに、書換えの途中で、異常が発生し、異常からの復旧時には、各領域の状態に応じた書換え制御プログラムにより書換え手順を再開するので、不揮発性メモリの状態に基づいて書換え手順の開始点を変更するため、書換え手順の最中に電源異常などの異常があっても、書換えが正常に完了可能であり、かつ、不揮発性メモリ容量を少なくすることができる。
実施の形態1.
以下、実施の形態1を図に基づいて説明する。
図1は、この発明の実施の形態1による車載プログラム書換え制御装置を示すシステム構成図である。
図1において、車載プログラム書換え制御装置は、車載コントローラ1と書換えツール14により構成される。車載コントローラ1は、マイコン2とI/F(インタフェース)8と通信I/F9からなる。マイコン2は、I/F8を介して車両20に搭載されたエンジン12の制御を行う。I/F8は、マイコン2がエンジン12を制御するために必要な入出力を行うインターフェース回路である。また、マイコン2は、通信I/F9を介して通信路13に接続されている。通信路13には、さらに外部から書換えツール14が接続される。マイコン1と書換えツール14は、通信路13と通信I/F9を通じて相互に送受信を行うことができる。
以下、実施の形態1を図に基づいて説明する。
図1は、この発明の実施の形態1による車載プログラム書換え制御装置を示すシステム構成図である。
図1において、車載プログラム書換え制御装置は、車載コントローラ1と書換えツール14により構成される。車載コントローラ1は、マイコン2とI/F(インタフェース)8と通信I/F9からなる。マイコン2は、I/F8を介して車両20に搭載されたエンジン12の制御を行う。I/F8は、マイコン2がエンジン12を制御するために必要な入出力を行うインターフェース回路である。また、マイコン2は、通信I/F9を介して通信路13に接続されている。通信路13には、さらに外部から書換えツール14が接続される。マイコン1と書換えツール14は、通信路13と通信I/F9を通じて相互に送受信を行うことができる。
マイコン1の内部には、CPU3、RAM4、不揮発性メモリ5(不揮発性記憶媒体)、I/F6があり、それぞれがバス7を介して接続されている。CPU3は、不揮発性メモリ5やRAM4に書き込まれたプログラムに従って処理を行い、I/F6からの入力に基づいてRAM4の内容を更新しながら、必要に応じてI/F6を介して出力を行う。
不揮発性メモリ5の内部には、さらに3つの領域、領域51、領域52(第一の領域)、領域53(第二の領域)がある。領域51、領域52、領域53は、独立に消去・書換えが可能である。
不揮発性メモリ5の内部には、さらに3つの領域、領域51、領域52(第一の領域)、領域53(第二の領域)がある。領域51、領域52、領域53は、独立に消去・書換えが可能である。
車両20には、車載コントローラ1、エンジン12、通信路13の他にバッテリ10とIGスイッチ11がある。車載コントローラ1は、IGスイッチ11がONのときにバッテリ10からの給電によって動作する。IGスイッチ11がOFFになると、車載コントローラ1への給電は停止され、車載コントローラ1の動作も停止する。
図2は、この発明の実施の形態1による車載プログラム書換え制御装置の不揮発性メモリの書換え中の状態遷移を示す図である。
図2において、領域51、領域52、領域53毎に状態(a)〜(g)が示され、各状態(a)〜(g)での領域内容が、起動切り換え100、書換え制御110、車両制御120、書換え制御(一次)130、新書換え制御111、新車両制御121で示されている。
ここで、書換え制御110、書換え制御(一次)130、新書換え制御111は、いずれも車両制御プログラム及び書換え制御プログラムを書換えるプログラムである。
また、車両制御120及び新車両制御121は、車両を制御するプログラムである。
なお、領域52は、書換え制御110、新書換え制御111のみを格納できる大きさであればよい。
図2において、領域51、領域52、領域53毎に状態(a)〜(g)が示され、各状態(a)〜(g)での領域内容が、起動切り換え100、書換え制御110、車両制御120、書換え制御(一次)130、新書換え制御111、新車両制御121で示されている。
ここで、書換え制御110、書換え制御(一次)130、新書換え制御111は、いずれも車両制御プログラム及び書換え制御プログラムを書換えるプログラムである。
また、車両制御120及び新車両制御121は、車両を制御するプログラムである。
なお、領域52は、書換え制御110、新書換え制御111のみを格納できる大きさであればよい。
図3は、この発明の実施の形態1による車載プログラム書換え制御装置の不揮発性メモリの書換え手順を示すフローチャートである。
図4は、図3の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
図5は、図2の起動切り換え100の処理内容を示すフローチャートである。
図6は、図2の書換え制御110、新書換え制御111、書換え制御(一次)130の実行形態を示す図である。
図7は、図2の車両制御120、車両制御121の処理内容を示すフローチャートである。
図8は、図2の図2の書換え制御110、新書換え制御111、書換え制御(一次)130の処理内容を示すフローチャートである。
図4は、図3の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
図5は、図2の起動切り換え100の処理内容を示すフローチャートである。
図6は、図2の書換え制御110、新書換え制御111、書換え制御(一次)130の実行形態を示す図である。
図7は、図2の車両制御120、車両制御121の処理内容を示すフローチャートである。
図8は、図2の図2の書換え制御110、新書換え制御111、書換え制御(一次)130の処理内容を示すフローチャートである。
次に動作について説明する。
マイコン1と書換えツール14は、通信路13と通信I/F9を通じて相互に送受信を行うことにより、書換えツール14の書換え手順により、不揮発性メモリ5の領域52及び領域53の書換えを行う。
まず、領域52の書換え制御110を新書換え制御111に書換え、領域53の車両制御120を新車両制御121に書換える場合の不揮発性メモリ5の状態変化を、図2に従って説明する。
この書換えは、図2の状態(a)から始まる。領域51には起動切り換え100、領域52には書換え制御110、領域53には車両制御120が格納されている。
本発明の書換え手順では、最初に、領域53を書換え制御(一次)130に書換える。
この書換えが開始されると、書換え制御110の機能によって、領域53は、異常状態にされる。このとき不揮発性メモリ5は、状態(b)となる。さらに書換えが進んで書換えが完了すると、領域53は正常に戻り、その内容は、書換え制御(一次)130となる。このとき不揮発性メモリ5は状態(c)である。
なお、車載コントローラ1は、領域52と領域53のそれぞれに対して、正常に書換えられたかどうかを判断する機能と、再始動後に領域52と領域53の正常な領域に配置された機能を起動する機能とを有する。
また、車載コントローラ1は、書換え操作中に機能を提供している書換え制御プログラムを識別する機能を有する。
マイコン1と書換えツール14は、通信路13と通信I/F9を通じて相互に送受信を行うことにより、書換えツール14の書換え手順により、不揮発性メモリ5の領域52及び領域53の書換えを行う。
まず、領域52の書換え制御110を新書換え制御111に書換え、領域53の車両制御120を新車両制御121に書換える場合の不揮発性メモリ5の状態変化を、図2に従って説明する。
この書換えは、図2の状態(a)から始まる。領域51には起動切り換え100、領域52には書換え制御110、領域53には車両制御120が格納されている。
本発明の書換え手順では、最初に、領域53を書換え制御(一次)130に書換える。
この書換えが開始されると、書換え制御110の機能によって、領域53は、異常状態にされる。このとき不揮発性メモリ5は、状態(b)となる。さらに書換えが進んで書換えが完了すると、領域53は正常に戻り、その内容は、書換え制御(一次)130となる。このとき不揮発性メモリ5は状態(c)である。
なお、車載コントローラ1は、領域52と領域53のそれぞれに対して、正常に書換えられたかどうかを判断する機能と、再始動後に領域52と領域53の正常な領域に配置された機能を起動する機能とを有する。
また、車載コントローラ1は、書換え操作中に機能を提供している書換え制御プログラムを識別する機能を有する。
次に、領域52を新書換え制御111に書換える。
この書換えが開始されると、書換え制御(一次)130の機能によって、領域52は異常状態にされる。このとき不揮発性メモリ5は状態(d)となる。さらに書換えが進んで書換えが完了すると、領域52は、正常に戻り、その内容は新書換え制御111となる。このとき不揮発性メモリは状態(e)である。
最後に、領域53を新車両制御121に書換える。
この書換えが開始されると、新書換え制御111の機能によって、領域53は異常状態にされる。このとき不揮発性メモリ5は状態(f)となる。さらに書換えが進んで書換えが完了すると、領域53は、正常に戻り、その内容は新車両制御121となる。このとき不揮発性メモリは状態(g)である。
状態(g)では、領域52が新書換え制御111、領域53が新車両制御121となっており、書換えが完了していることが分かる。
この書換えが開始されると、書換え制御(一次)130の機能によって、領域52は異常状態にされる。このとき不揮発性メモリ5は状態(d)となる。さらに書換えが進んで書換えが完了すると、領域52は、正常に戻り、その内容は新書換え制御111となる。このとき不揮発性メモリは状態(e)である。
最後に、領域53を新車両制御121に書換える。
この書換えが開始されると、新書換え制御111の機能によって、領域53は異常状態にされる。このとき不揮発性メモリ5は状態(f)となる。さらに書換えが進んで書換えが完了すると、領域53は、正常に戻り、その内容は新車両制御121となる。このとき不揮発性メモリは状態(g)である。
状態(g)では、領域52が新書換え制御111、領域53が新車両制御121となっており、書換えが完了していることが分かる。
次に、図2の状態遷移のもととなる書換え手順について、図3のフローチャートに基づいて説明する。このフローチャートは、書換えツール14の処理である。
書換え開始時には、図2の状態(a)にある。書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121であるかどうかが判断される。領域53の内容は車両制御120であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断される。領域52は書換え制御110であるため、ステップ252に進む。ステップ252では、領域53は、正常かつ書換え制御(一次)130かどうかが判断される。領域53は車両制御120であるため、ステップ201に進む。
書換え開始時には、図2の状態(a)にある。書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121であるかどうかが判断される。領域53の内容は車両制御120であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断される。領域52は書換え制御110であるため、ステップ252に進む。ステップ252では、領域53は、正常かつ書換え制御(一次)130かどうかが判断される。領域53は車両制御120であるため、ステップ201に進む。
ステップ201では、領域52のプログラム、すなわち書換え制御110に制御を移行し、ステップ202に進む。ステップ202で、領域53を書換え制御(一次)130に書換える。ステップ202の開始と共に不揮発性メモリ5は、状態(b)となり、ステップ202の完了時には状態(c)になる。ステップ202の完了後、ステップ210に進む。ステップ210では、ステップ202の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ203に進む。
ステップ203では、領域53のプログラム、すなわち書換え制御(一次)130に制御を移行し、ステップ204に進む。ステップ204で、領域52を新書換え制御111に書換える。ステップ204の開始と共に不揮発性メモリ5は状態(d)となり、ステップ204の終了時には状態(e)となる。ステップ204の完了後、ステップ211に進む。ステップ211では、ステップ204の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ205に進む。
ステップ203では、領域53のプログラム、すなわち書換え制御(一次)130に制御を移行し、ステップ204に進む。ステップ204で、領域52を新書換え制御111に書換える。ステップ204の開始と共に不揮発性メモリ5は状態(d)となり、ステップ204の終了時には状態(e)となる。ステップ204の完了後、ステップ211に進む。ステップ211では、ステップ204の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ205に進む。
ステップ205では、領域52のプログラム、すなわち新書換え制御111に制御を移行し、ステップ206に進む。ステップ206で、領域53を新車両制御121に書換える。ステップ206の開始と共に不揮発性メモリ5は、状態(f)となり、ステップ206の終了時には状態(g)となる。ステップ206の完了後ステップ212に進む。ステップ212では、ステップ206の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ207に進む。
ステップ207では、領域53のプログラム、すなわち新車両制御121に制御を移行して制御を完了する。新車両制御121により、車載コントローラは車両の制御を再び開始する。
以上により、書換え手順途中で異常がない場合に不揮発性メモリ5の内容を書換えることができる。
ステップ207では、領域53のプログラム、すなわち新車両制御121に制御を移行して制御を完了する。新車両制御121により、車載コントローラは車両の制御を再び開始する。
以上により、書換え手順途中で異常がない場合に不揮発性メモリ5の内容を書換えることができる。
続いて、書換え手順途中で電源供給異常などが発生し、正常に書換え手順を完了できなかった場合の書換え手順完了までの流れを説明する。
異常が発生すると、図3のステップ210、211、212において異常終了する。この場合、不揮発性メモリ5の内容は、図2の(a)〜(g)までのいずれかの状態になっていることになる。
この後、電源供給異常などの異常要因を取り除いた後に、再度書換え手順を開始する。
まず、電源供給異常などの異常要因を取り除いた後再び車載コントローラを起動する。このとき、車載コントローラは、領域51の起動切り換え100に従って制御を行う。起動切り換え100の処理内容を図5に示す。
異常が発生すると、図3のステップ210、211、212において異常終了する。この場合、不揮発性メモリ5の内容は、図2の(a)〜(g)までのいずれかの状態になっていることになる。
この後、電源供給異常などの異常要因を取り除いた後に、再度書換え手順を開始する。
まず、電源供給異常などの異常要因を取り除いた後再び車載コントローラを起動する。このとき、車載コントローラは、領域51の起動切り換え100に従って制御を行う。起動切り換え100の処理内容を図5に示す。
図5のステップ301で、書換えツール14からの起動要求を確認する。異常状態からの復旧であるため、書換えツール14からの起動要求はなく、ステップ303に進む。ステップ303では、領域53が正常かどうか判断し、領域53が正常であればステップ304に進んで、領域53のプログラムを起動し、異常であればステップ302に進んで、領域52のプログラムを起動する。
したがって、図2の状態(a)では車載制御120が、状態(b)では書換え制御110が、状態(c)〜(e)では書換え制御(一次)130が、状態(f)では新書換え制御111が、状態(g)では新車両制御121が起動されている。
したがって、図2の状態(a)では車載制御120が、状態(b)では書換え制御110が、状態(c)〜(e)では書換え制御(一次)130が、状態(f)では新書換え制御111が、状態(g)では新車両制御121が起動されている。
図4は、書換え手順を起動したときの不揮発性メモリ5の状態とその後書換え完了までの流れを示す図であり、以下に、この内容に従ってその流れを説明する。
まず、不揮発性メモリ5が状態(a)だった場合には、異常がなかった場合と全く同様にして書換えが正常に完了する。
このことは、図4に以下のように表わされている。
まず、開始状態を表す黒丸から(a)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(a)でステップ202が開始されると、状態(b)となり、ステップ202の終了で状態(c)になることを、状態(a)→状態(b)→状態(c)という矢印で表している。また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。
まず、不揮発性メモリ5が状態(a)だった場合には、異常がなかった場合と全く同様にして書換えが正常に完了する。
このことは、図4に以下のように表わされている。
まず、開始状態を表す黒丸から(a)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(a)でステップ202が開始されると、状態(b)となり、ステップ202の終了で状態(c)になることを、状態(a)→状態(b)→状態(c)という矢印で表している。また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。
同様に、ステップ204の実行によって状態(c)→状態(d)→状態(e)となり、ステップ206の実行によって状態(e)→状態(f)→状態(g)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(a)→状態(b)→状態(c)の遷移は、書換え制御110に対応するプロトコルで行われ、状態(c)→状態(d)→状態(e)の遷移は、書換え制御(一次)130に対応するプロトコルで行われ、状態(e)→状態(f)→状態(g)の遷移は、新書換え制御111のプロトコルで行われることになる。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(a)→状態(b)→状態(c)の遷移は、書換え制御110に対応するプロトコルで行われ、状態(c)→状態(d)→状態(e)の遷移は、書換え制御(一次)130に対応するプロトコルで行われ、状態(e)→状態(f)→状態(g)の遷移は、新書換え制御111のプロトコルで行われることになる。
次に、不揮発性メモリ5が状態(b)だった場合を考える。書換え手順は図3に従って進められる。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53が異常であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ252に進む。ステップ252では、領域53が正常かつ書換え制御(一次)130かどうかが判断され、領域53は異常であるため、ステップ201に進む。
従って、ステップ201からの実行となり、異常がなかった場合と同様に不揮発メモリ5の状態遷移は、ステップ202から始まることがわかる。なお、状態(b)でステップ202を開始すると、領域53が異常となり、それは状態(b)になるため、状態(b)→状態(b)という矢印が引かれている。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53が異常であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ252に進む。ステップ252では、領域53が正常かつ書換え制御(一次)130かどうかが判断され、領域53は異常であるため、ステップ201に進む。
従って、ステップ201からの実行となり、異常がなかった場合と同様に不揮発メモリ5の状態遷移は、ステップ202から始まることがわかる。なお、状態(b)でステップ202を開始すると、領域53が異常となり、それは状態(b)になるため、状態(b)→状態(b)という矢印が引かれている。
次に、不揮発性メモリ5が状態(c)だった場合を考える。書換え手順は図3に従って進められる。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ252に進む。ステップ252では、領域53が正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ252に進む。ステップ252では、領域53が正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
次に、不揮発性メモリ5が状態(d)だった場合を考える。書換え手順は図3に従って進められる。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は異常であるため、ステップ252に進む。ステップ252では、領域53が正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。なお、状態(d)でステップ204を開始すると、領域52が異常となり、それは状態(d)になるため、状態(d)→状態(d)という矢印が引かれている。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は異常であるため、ステップ252に進む。ステップ252では、領域53が正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。なお、状態(d)でステップ204を開始すると、領域52が異常となり、それは状態(d)になるため、状態(d)→状態(d)という矢印が引かれている。
次に、不揮発性メモリ5が状態(e)だった場合を考える。書換え手順は図3に従って進められる。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ254に進む。ステップ254では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ205に進む。
従って、ステップ205からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ206から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ254に進む。ステップ254では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ205に進む。
従って、ステップ205からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ206から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
次に、不揮発性メモリ5が状態(f)だった場合を考える。書換え手順は図3に従って進められる。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は異常であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ254に進む。ステップ254では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は異常であるため、ステップ206に進む。
従って、ステップ206からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ206から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。なお、状態(f)でステップ206を開始すると、領域52が異常となり、それは状態(f)になるため、状態(f)→状態(f)という矢印が引かれている。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は異常であるため、ステップ251に進む。ステップ251では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ254に進む。ステップ254では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は異常であるため、ステップ206に進む。
従って、ステップ206からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ206から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。なお、状態(f)でステップ206を開始すると、領域52が異常となり、それは状態(f)になるため、状態(f)→状態(f)という矢印が引かれている。
最後に、不揮発性メモリ5が状態(g)だった場合を考える。書換え手順は図3に従って進められる。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は新車両制御121であるため、書換えを行う必要がなく終了する。
書換え手順が開始されると、始めにステップ250が実行される。ステップ250では、領域53は正常かつ新車両制御121かどうかが判断され、領域53は新車両制御121であるため、書換えを行う必要がなく終了する。
上記のように、電源供給などの異常発生後も、再度書換え手順を実施することによって正常に書換えを完了できることが分かる。
なお、本実施の形態1においては、図6に示すように、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発メモリ5上のプログラムが起動され、ステップ401のように不揮発性メモリ5上に配置されたプログラムをそのまま実行することを想定している。
なお、本実施の形態1においては、図6に示すように、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発メモリ5上のプログラムが起動され、ステップ401のように不揮発性メモリ5上に配置されたプログラムをそのまま実行することを想定している。
また、図2の車両制御120、新車両制御121の処理内容を図7に示す。
図7で、処理が開始されると、ステップ501で書換えツール14からの要求を確認し、要求がなければステップ502で車両制御を行い、ステップ501に戻る。このようにして、書換えツール14からの要求があるまでステップ502の車両制御を継続する。
この後、書換えツール14からの要求があるとステップ503に進む。ステップ503では、現在車両がエンスト状態にあるなど、不揮発性メモリ5を書換えても安全な状態にあるかどうかを確認し、もし安全でないならば、ステップ504に進んで書換えツール14に処理不可能応答を返し、再びステップ502の車両制御を継続する。ステップ503で、安全な状態であると判断された場合には、領域52のプログラムを起動して処理を終わる。以後は領域52のプログラムに従って動作する。
図7で、処理が開始されると、ステップ501で書換えツール14からの要求を確認し、要求がなければステップ502で車両制御を行い、ステップ501に戻る。このようにして、書換えツール14からの要求があるまでステップ502の車両制御を継続する。
この後、書換えツール14からの要求があるとステップ503に進む。ステップ503では、現在車両がエンスト状態にあるなど、不揮発性メモリ5を書換えても安全な状態にあるかどうかを確認し、もし安全でないならば、ステップ504に進んで書換えツール14に処理不可能応答を返し、再びステップ502の車両制御を継続する。ステップ503で、安全な状態であると判断された場合には、領域52のプログラムを起動して処理を終わる。以後は領域52のプログラムに従って動作する。
また、図2の書換え制御120、新書換え制御121、書換え制御(一次)130の処理内容を図8に示す。
図8の処理が開始されると、まずステップ601で全入出力を停止する。これは不揮発メモリ5の書き換え中にエンジン12が駆動されて危険がないようにするためのである。その後、ステップ603で、書換えツール14からの要求が来るのを待つ。要求が書換え要求だった場合には、ステップ610で、その対象領域が自領域かどうかを判断し、自領域でない場合にはステップ611に進む。
ステップ611では、実際の書換えを行い、ステップ612で、書換えツール14に書換え正常応答を返し、ステップ603に戻る。
ステップ610で、自領域対象であった場合には、ステップ613に進み、書換えツール14に対して書換え不能応答を行う。
図8の処理が開始されると、まずステップ601で全入出力を停止する。これは不揮発メモリ5の書き換え中にエンジン12が駆動されて危険がないようにするためのである。その後、ステップ603で、書換えツール14からの要求が来るのを待つ。要求が書換え要求だった場合には、ステップ610で、その対象領域が自領域かどうかを判断し、自領域でない場合にはステップ611に進む。
ステップ611では、実際の書換えを行い、ステップ612で、書換えツール14に書換え正常応答を返し、ステップ603に戻る。
ステップ610で、自領域対象であった場合には、ステップ613に進み、書換えツール14に対して書換え不能応答を行う。
以上のように、実施の形態1によれば、領域52に書換え制御、領域53に車両制御を格納する構成に基づき、領域53に一次的に書換え制御(一次)130を格納する書換え手順を用いるとともに、各領域に格納されているプログラムの状態によって書換え手順の最初もしくは途中から選択的に行うように、書換え手順の開始点を変更することにより、電源供給などの異常発生後も再度書換え手順を実施すれば、正常に書換えを完了できるとともに、不揮発性メモリ5の領域52、領域53には最低限の書換え制御110、車両制御120のみを格納すればよい構成が可能になる。
また、本実施の形態1では 書換え制御110、新書換え制御111、書換え制御(一次)130の実現するプロトコルで異なる制御が必要な場合も扱うことができるが、プロトコルが同一でも構わない場合には、このような区別を行う必要はない。例えば、多くの場合、新書換え制御111と書換え制御(一次)130は同一のプロトコルとすることができる。この場合には、書換え手順において、新書換え制御111と書換え制御(一次)130を区別した制御は必要でないため、それらの区別手順を省くことも可能が可能である。
また、本実施の形態1では、起動切り換え100の配置として、不揮発性メモリ5内の領域51の一部である構成を示したが、この起動切り換え100の配置はこの限りではなく、例えばマイコン1のハードウェアとして実現されていてもよい。
実施の形態2.
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコン2もある。このようなマイコン2を選択した場合に実施の形態1を適用することができない。実施の形態2は、このような場合に好適な実施の形態である。
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコン2もある。このようなマイコン2を選択した場合に実施の形態1を適用することができない。実施の形態2は、このような場合に好適な実施の形態である。
実施の形態1では、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発性メモリ5上のプログラムが起動され、それが実行されつづける構成であった。実施の形態2は、この点を変更し、不揮発メモリ5に格納されたプログラムを実行する際に一部または全部をRAM4に転送する構成とする。
実施の形態2は、図1のように構成されている。図3、図5を援用して説明する。
図9は、この発明の実施の形態2による車載プログラム書換え制御装置の書換え制御、新書換え制御、書換え制御(一次)の実行形態を示す図である。
図10は、図9にある実行形態を適用した場合の実行時の不揮発性メモリ及びRAMの状態を示す図である。
図9は、この発明の実施の形態2による車載プログラム書換え制御装置の書換え制御、新書換え制御、書換え制御(一次)の実行形態を示す図である。
図10は、図9にある実行形態を適用した場合の実行時の不揮発性メモリ及びRAMの状態を示す図である。
次に、動作について説明する。
図9により、書換え制御110、新書換え制御111、書換え制御(一次)130の実行形態について説明する。
ステップ411で、不揮発性メモリ5に格納されたプログラムの一部または全てをRAM4に転送する。続いて、ステップ412で、不揮発メモリ5上のプログラムを実行し、必要に応じてステップ413のようにRAM上のプログラムを実行し、再びステップ412に戻って、不揮発性メモリ5上のプログラムを実行する。
また、ステップ411で、不揮発メモリ5に格納されたプログラムをRAM4に転送したのち、ステップ414に示すように、RAM4上のプログラムに実行を移し、そのままRAM4上のプログラムだけで制御を続けるという形態をとることも可能である。
図9により、書換え制御110、新書換え制御111、書換え制御(一次)130の実行形態について説明する。
ステップ411で、不揮発性メモリ5に格納されたプログラムの一部または全てをRAM4に転送する。続いて、ステップ412で、不揮発メモリ5上のプログラムを実行し、必要に応じてステップ413のようにRAM上のプログラムを実行し、再びステップ412に戻って、不揮発性メモリ5上のプログラムを実行する。
また、ステップ411で、不揮発メモリ5に格納されたプログラムをRAM4に転送したのち、ステップ414に示すように、RAM4上のプログラムに実行を移し、そのままRAM4上のプログラムだけで制御を続けるという形態をとることも可能である。
図9のような実行形態をとることによる、プログラム実行中の不揮発性メモリ5とRAM4の状態は、図10に示すようなものになる。すなわち、車載コントローラ1の起動時に、状態(a)(g)では、特にRAM4上に転送されたプログラムはない。状態(b)では、書換え制御サブ110−1が、状態(c)(d)(e)では、書換え制御(一次)サブ130−1が、状態(f)では、新書換え制御サブ111−1がRAM4に転送された形で実行される。
また、図3のステップ201、203、205でのプログラムの制御移行時にも、図9に従って、適切なプログラムがRAM4に転送される。
また、上述では、揮発性のRAM4を用いた制御をしているが、制御の元となるプログラムは、全て不揮発性メモリ5に格納された情報に基づいているため、途中で電源異常などの異常が発生しても実施の形態1と同様に書換えを正常に完了させることができる。これは、図5、図9の制御によりRAM4上の実行形態が復元されるためである。
以上のように、実施の形態2によれば、実施の形態1に対して、不揮発性メモリ5の内容を一部RAM4に転送して実行する構成とすることで、不揮発性メモリ5によらないプログラム実行が可能となるとともに、実施の形態1と同様に書換え中の電源異常などの異常状態からも再度書換え手順を実行することで正常に書換え手順を完了することができる。
なお、本実施の形態2では、RAM4にプログラムを転送することを利用することで、例えば不揮発性メモリ5に格納されるプログラムをデータとして圧縮格納し、RAM4に転送する時点で展開して実行可能なプログラムにすることも可能である。これにより、不揮発性メモリ5の使用量を抑えることができる効果がある。
また、本実施の形態2では説明の都合上 RAM4へのプログラム転送するタイミングを書換え制御110、新書換え制御111、書換え制御(一次)130の開始時とした。しかし、転送タイミングは、初期化時に限定するものでなく、例えば不揮発性メモリ5の消去を行う時には消去用のサブルーチンだけを転送することによって、RAM4の使用量を減らすことも可能である。
実施の形態3.
実施の形態1では、不揮発性メモリ5の内容について書き込まれているプログラムを識別できる情報が必要であったが、実施の形態3は、より簡略化したプログラムを識別できる情報によって、実施の形態1と同様に書換え手順途中で電源異常などの異常があっても再度書換え手順を実行することで、正常に書換え完了できる構成とした。
実施の形態3は、図1のように構成されている。図3を援用して説明する。
実施の形態1では、不揮発性メモリ5の内容について書き込まれているプログラムを識別できる情報が必要であったが、実施の形態3は、より簡略化したプログラムを識別できる情報によって、実施の形態1と同様に書換え手順途中で電源異常などの異常があっても再度書換え手順を実行することで、正常に書換え完了できる構成とした。
実施の形態3は、図1のように構成されている。図3を援用して説明する。
図11は、この発明の実施の形態3による車載プログラム書換え制御装置の不揮発性メモリの書換え手順を示すフローチャートである。
図12は、図11の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
図12は、図11の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
実施の形態3では、書換え制御110、新書換え制御111、書換え制御(一次)130は、書換え制御110と新書換え制御111を区別できる自己の識別情報を書換えツール14に通知するようにした。
また、書換え制御110、新書換え制御111、書換え制御(一次)130は、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能をも有している。
また、書換え制御110、新書換え制御111、書換え制御(一次)130は、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能をも有している。
次に、動作について説明する。
図11の書換え手順を示すフローチャートのうち、実際に不揮発性メモリ5の内容を書き換える手順に関わるステップ201、202、203、204、205、206、207、210、211、212については、図3で説明した内容と同一である。図3と異なるのは、開始から図3と同一ステップになる部分までの条件付けの処理である。
したがって、ここから実施の形態1と同様に正常な場合・異常な場合を含めて、図11の書換え手順によって書換えが正常に完了することについて説明する。図12は、書換え手順を起動したときの不揮発性メモリ5の状態とその後書換え完了までの流れを示す図であり、図12は、実施の形態1の図4に対応する図である。
図11の書換え手順を示すフローチャートのうち、実際に不揮発性メモリ5の内容を書き換える手順に関わるステップ201、202、203、204、205、206、207、210、211、212については、図3で説明した内容と同一である。図3と異なるのは、開始から図3と同一ステップになる部分までの条件付けの処理である。
したがって、ここから実施の形態1と同様に正常な場合・異常な場合を含めて、図11の書換え手順によって書換えが正常に完了することについて説明する。図12は、書換え手順を起動したときの不揮発性メモリ5の状態とその後書換え完了までの流れを示す図であり、図12は、実施の形態1の図4に対応する図である。
以下、図11、図12に従ってその流れを説明する。
まず、不揮発性メモリ5の内容が、状態(a)であった場合を考える。書換えは、図11の手順に従って進められる。
書換え手順が開始されると、まずステップ260が実行される。ステップ260では、プロトコルは、各書換え制御の通知する識別情報により、新書換え制御111かどうかが判定され、状態(a)では、書換えが開始されると領域52にある書換え制御110が起動するため、プロトコルは、書換え制御110であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域52の書換え制御110で動作しているため、ステップ261は、yesの判断となり、ステップ201に進む。以後は、図3の説明と同様にして書換えが正常に完了する。
まず、不揮発性メモリ5の内容が、状態(a)であった場合を考える。書換えは、図11の手順に従って進められる。
書換え手順が開始されると、まずステップ260が実行される。ステップ260では、プロトコルは、各書換え制御の通知する識別情報により、新書換え制御111かどうかが判定され、状態(a)では、書換えが開始されると領域52にある書換え制御110が起動するため、プロトコルは、書換え制御110であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域52の書換え制御110で動作しているため、ステップ261は、yesの判断となり、ステップ201に進む。以後は、図3の説明と同様にして書換えが正常に完了する。
図12には、このことが以下のように示してある。
まず、開始状態を表す黒丸から(a)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(a)でステップ202が開始されると、状態(b)となり、ステップ202の終了で状態(c)になることを、状態(a)→状態(b)→状態(c)という矢印で表している。
また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。同様に、ステップ204の実行によって状態(c)→状態(d)→状態(e)となり、ステップ206の実行によって状態(e)→状態(f)→状態(g)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(a)→状態(b)→状態(c)の遷移は書換え制御110に対応するプロトコルで行われ、状態(c)→状態(d)→状態(e)の遷移は、書換え制御(一次)130に対応するプロトコルで行われ、状態(e)→状態(f)→状態(g)の遷移は、新書換え制御111のプロトコルで行われることになる。
まず、開始状態を表す黒丸から(a)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(a)でステップ202が開始されると、状態(b)となり、ステップ202の終了で状態(c)になることを、状態(a)→状態(b)→状態(c)という矢印で表している。
また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。同様に、ステップ204の実行によって状態(c)→状態(d)→状態(e)となり、ステップ206の実行によって状態(e)→状態(f)→状態(g)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(a)→状態(b)→状態(c)の遷移は書換え制御110に対応するプロトコルで行われ、状態(c)→状態(d)→状態(e)の遷移は、書換え制御(一次)130に対応するプロトコルで行われ、状態(e)→状態(f)→状態(g)の遷移は、新書換え制御111のプロトコルで行われることになる。
次に、不揮発性メモリ5の内容が、状態(b)だった場合を考える。書換え手順は図11に従って進められる。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(b)では書換えが開始されると領域52にある書き換え制御110が起動するため、プロトコルは書換え制御110であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域52のプログラムで動作しているため、ステップ261はyesとなり、ステップ201に進む。以後は、図3の説明と同様にして書換えが正常に完了する。
なお、状態(b)でステップ202を開始すると、領域53が異常となり、それは状態(b)になるため、状態(b)→状態(b)という矢印が引かれている。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(b)では書換えが開始されると領域52にある書き換え制御110が起動するため、プロトコルは書換え制御110であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域52のプログラムで動作しているため、ステップ261はyesとなり、ステップ201に進む。以後は、図3の説明と同様にして書換えが正常に完了する。
なお、状態(b)でステップ202を開始すると、領域53が異常となり、それは状態(b)になるため、状態(b)→状態(b)という矢印が引かれている。
次に、不揮発性メモリ5の内容が、状態(c)だった場合を考える。書換え手順は図11に従って進められる。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(c)では書換えが開始されると領域53にある書換え制御(一次)130が起動するため、プロトコルは書換え制御(一次)130であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域53のプログラムで動作しているため、ステップ261はnoの判断となり、ステップ204に進む。以後は、図3の説明と同様にして書き換えが正常に完了する。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(c)では書換えが開始されると領域53にある書換え制御(一次)130が起動するため、プロトコルは書換え制御(一次)130であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域53のプログラムで動作しているため、ステップ261はnoの判断となり、ステップ204に進む。以後は、図3の説明と同様にして書き換えが正常に完了する。
次に、不揮発性メモリ5の内容が、状態(d)だった場合を考える。書換え手順は図11に従って進められる。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(d)では書換えが開始されると領域53にある書換え制御(一次)130が起動するため、プロトコルは書換え制御(一次)130であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域53のプログラムで動作しているため、ステップ261はnoの判断となり、ステップ204に進む。以後は、図3の説明と同様にして書き換えが正常に完了する。
なお、状態(d)でステップ204を開始すると、領域52が異常となり、それは状態(d)になるため、状態(d)→状態(d)という矢印が引かれている。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(d)では書換えが開始されると領域53にある書換え制御(一次)130が起動するため、プロトコルは書換え制御(一次)130であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域53のプログラムで動作しているため、ステップ261はnoの判断となり、ステップ204に進む。以後は、図3の説明と同様にして書き換えが正常に完了する。
なお、状態(d)でステップ204を開始すると、領域52が異常となり、それは状態(d)になるため、状態(d)→状態(d)という矢印が引かれている。
次に、不揮発性メモリ5の内容が、状態(e)だった場合を考える。書換え手順は図11に従って進められる。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(e)では書換えが開始されると領域53にある書換え制御(一次)130が起動するため、プロトコルは書換え制御(一次)130であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域53のプログラムで動作しているため、ステップ261はnoの判断となり、ステップ204に進む。
状態(e)で領域52を書換え開始すると、領域52が異常となり、それは状態(d)になるため、状態(e)→状態(d)という矢印が引かれている。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(e)では書換えが開始されると領域53にある書換え制御(一次)130が起動するため、プロトコルは書換え制御(一次)130であり、ステップ261に進む。ステップ261では、領域53の書換えが可能かどうかが判定され、領域53のプログラムで動作しているため、ステップ261はnoの判断となり、ステップ204に進む。
状態(e)で領域52を書換え開始すると、領域52が異常となり、それは状態(d)になるため、状態(e)→状態(d)という矢印が引かれている。
次に、不揮発性メモリ5の内容が、状態(f)だった場合を考える。書換え手順は図11に従って進められる。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(f)では書換えが開始されると領域52にある新書換え制御111が起動するため、プロトコルは新書換え制御111であり、ステップ262に進む。ステップ262では、領域53の書換えの可否が判定され、領域52にある新書換え制御111が起動しているため、yesであり、ステップ206に進む。
状態(f)で領域53を書換え開始すると、領域53が異常となり、それは状態(f)になるため、状態(f)→状態(f)という矢印が引かれている。その後ステップ206が完了すると状態(g)となり、以後は図3の説明と同様に処理が完了する。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(f)では書換えが開始されると領域52にある新書換え制御111が起動するため、プロトコルは新書換え制御111であり、ステップ262に進む。ステップ262では、領域53の書換えの可否が判定され、領域52にある新書換え制御111が起動しているため、yesであり、ステップ206に進む。
状態(f)で領域53を書換え開始すると、領域53が異常となり、それは状態(f)になるため、状態(f)→状態(f)という矢印が引かれている。その後ステップ206が完了すると状態(g)となり、以後は図3の説明と同様に処理が完了する。
最後に、不揮発性メモリ5の内容が、状態(g)だった場合を考える。書換え手順は図11に従って進められる。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(g)では書換えが開始されると領域52にある新書換え制御111が起動するため、プロトコルは新書換え制御111であり、ステップ262に進む。ステップ262では、領域53の書換えの可否が判定され、領域52にある新書換え制御111が起動しているため、yesであり、ステップ206に進む。
状態(g)で領域53を書換え開始すると、領域53が異常となり、それは状態(f)になるため、状態(g)→状態(f)という矢印が引かれている。その後ステップ206が完了すると状態(g)となり、以後は図3の説明と同様に処理が完了する。
書換え手順が開始されると、始めにステップ260が実行される。ステップ260では、プロトコルは新書換え制御111かどうかが判定され、状態(g)では書換えが開始されると領域52にある新書換え制御111が起動するため、プロトコルは新書換え制御111であり、ステップ262に進む。ステップ262では、領域53の書換えの可否が判定され、領域52にある新書換え制御111が起動しているため、yesであり、ステップ206に進む。
状態(g)で領域53を書換え開始すると、領域53が異常となり、それは状態(f)になるため、状態(g)→状態(f)という矢印が引かれている。その後ステップ206が完了すると状態(g)となり、以後は図3の説明と同様に処理が完了する。
実施の形態3によれば、上記のように、電源供給などの異常発生後も、再度書換え手順を実施することによって正常に書換えを完了できる。
また、実施の形態3は、実施の形態1と比べて状態(e)(g)の場合に不要な書換えを行ってしまうものの、書換え制御110、新書換え制御111、書換え制御(一次)130について、書換え制御110と新書換え制御111を区別できる情報を通知できるとともに、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能だけを想定し、それ以外のプログラムを識別する情報は要求しない点で、通信プロトコルを簡略化できる利点がある。
また、実施の形態3は、実施の形態1と比べて状態(e)(g)の場合に不要な書換えを行ってしまうものの、書換え制御110、新書換え制御111、書換え制御(一次)130について、書換え制御110と新書換え制御111を区別できる情報を通知できるとともに、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能だけを想定し、それ以外のプログラムを識別する情報は要求しない点で、通信プロトコルを簡略化できる利点がある。
実施の形態4.
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコンもある。このようなマイコンを選択した場合に実施の形態3を適用することができない。実施の形態4は、このような場合に好適な実施の形態である。
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコンもある。このようなマイコンを選択した場合に実施の形態3を適用することができない。実施の形態4は、このような場合に好適な実施の形態である。
実施の形態3では、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発性メモリ5上のプログラムが起動され、それが実行されつづける構成であった。実施の形態4は、この点を変更し、不揮発メモリ5に格納されたプログラムを実行する際に一部または全部をRAM4に転送する構成とする。
実施の形態4は、図1のように構成されている。図5、図9を援用して説明する。
実施の形態4の不揮発性メモリの状態遷移は、図10による。
実施の形態4は、実施の形態3の不揮発性メモリの書換えを、揮発性のRAM4を用いて制御を行う。制御の元となるプログラムは、全て不揮発性メモリ5に格納された情報に基づいているため、途中で電源異常などの異常が発生しても実施の形態3と同様に書換えを正常に完了させることができる。これは、図5、図9の制御により、RAM4上の実行形態が復元されるためである。
実施の形態4は、図1のように構成されている。図5、図9を援用して説明する。
実施の形態4の不揮発性メモリの状態遷移は、図10による。
実施の形態4は、実施の形態3の不揮発性メモリの書換えを、揮発性のRAM4を用いて制御を行う。制御の元となるプログラムは、全て不揮発性メモリ5に格納された情報に基づいているため、途中で電源異常などの異常が発生しても実施の形態3と同様に書換えを正常に完了させることができる。これは、図5、図9の制御により、RAM4上の実行形態が復元されるためである。
実施の形態4によれば、実施の形態3に対して、不揮発性メモリ5の内容を一部RAM4に転送して実行する構成とすることで、不揮発性メモリ5によらないプログラム実行が可能となるとともに、実施の形態3と同様に書換え中の電源異常などの異常状態からも再度書換え手順を実行することで正常に書換え手順を完了することができる。
また、実施の形態4では、RAM4にプログラムを転送することを利用することで、例えば不揮発性メモリ5に格納されるプログラムをデータとして圧縮格納し、RAM4に転送する時点で展開して実行可能なプログラムにすることも可能である。これにより、不揮発性メモリ5の使用量を抑えることができる効果がある。
また、本実施の形態4では説明の都合上 RAM4へのプログラム転送するタイミングを書換え制御110、新書換え制御111、書換え制御(一次)130の開始時とした。しかし、転送タイミングは、初期化時に限定するものでなく、例えば不揮発性メモリ5の消去を行う時には消去用のサブルーチンだけを転送することによって、RAM4の使用量を減らすことも可能である。
実施の形態5.
実施の形態1〜4では、領域53を書換え制御(一次)130を格納するために利用するので、書換え中に異常がなかったとしても領域52の書換えのために必ず領域53を2回書換えなければならない。通常、不揮発性メモリ5には書換え上限回数があるため、書換え回数を抑えたいシステムに適さないことがある。
実施の形態5は、書換え制御(一次)130を格納するための専用領域を設けることで、領域52を書換える際の書換え回数が1回で済むように構成した。これにより、不揮発性メモリの書換え回数を少なくしたい場合に好適である。
実施の形態1〜4では、領域53を書換え制御(一次)130を格納するために利用するので、書換え中に異常がなかったとしても領域52の書換えのために必ず領域53を2回書換えなければならない。通常、不揮発性メモリ5には書換え上限回数があるため、書換え回数を抑えたいシステムに適さないことがある。
実施の形態5は、書換え制御(一次)130を格納するための専用領域を設けることで、領域52を書換える際の書換え回数が1回で済むように構成した。これにより、不揮発性メモリの書換え回数を少なくしたい場合に好適である。
実施の形態5は、図1のように構成されている。図6を援用して説明する。
図13は、この発明の実施の形態5による車載プログラム書換え装置の不揮発性メモリの書換え中の状態遷移を示す図である。
図14は、この発明の実施の形態5による車載プログラム書換え装置の不揮発性メモリの書換え手順を示すフローチャートである。
図15は、図14の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
図16は、図13に示された起動切り換え100の処理内容を示すデシジョンテーブルである。
図17は、図13に示された車両制御120、新車両制御121の処理内容を示すフローチャートである。
図13は、この発明の実施の形態5による車載プログラム書換え装置の不揮発性メモリの書換え中の状態遷移を示す図である。
図14は、この発明の実施の形態5による車載プログラム書換え装置の不揮発性メモリの書換え手順を示すフローチャートである。
図15は、図14の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
図16は、図13に示された起動切り換え100の処理内容を示すデシジョンテーブルである。
図17は、図13に示された車両制御120、新車両制御121の処理内容を示すフローチャートである。
実施の形態5では、図13に示すように、不揮発性メモリに領域51、領域52(第一の領域)、領域53(第三の領域)、領域54(第二の領域)と、実施の形態1〜4よりも1つ多い領域を準備する。さらに、実施の形態1〜4では、領域53を車両制御120、新車両制御121、書換え制御(一次)130で共用していたが、実施の形態5では、領域53を書換え制御(一次)130用とし、新たに設けた領域54を車両制御120、新車両制御121を格納するために用いる点が異なる。
次に、実施の形態5について、領域52では、書換え制御110を新書換え制御111に書換え、領域53では、旧書換え制御(一次)130’を書換え制御(一次)130に書換え、領域54では、車両制御120を新車両制御121に書換える場合の不揮発性メモリ5の状態変化を、図2に従って説明する。
書換えは、図13の状態(h)から始まる。領域51には、起動切り換え100、領域52には、書換え制御110、領域53には、旧書換え制御(一次)130’、領域54には、車両制御120が格納されている。
書換えは、図13の状態(h)から始まる。領域51には、起動切り換え100、領域52には、書換え制御110、領域53には、旧書換え制御(一次)130’、領域54には、車両制御120が格納されている。
書換え手順では、最初に、領域53を書換え制御(一次)130に書換える。
書換えが開始されると、書換え制御110の機能によって、領域53は異常状態にされる。このとき不揮発性メモリ5は状態(j)となる。さらに書換えが進んで書換えが完了すると、領域53は正常に戻り、その内容は書換え制御(一次)130となる。このとき不揮発性メモリ5は状態(k)である。
書換えが開始されると、書換え制御110の機能によって、領域53は異常状態にされる。このとき不揮発性メモリ5は状態(j)となる。さらに書換えが進んで書換えが完了すると、領域53は正常に戻り、その内容は書換え制御(一次)130となる。このとき不揮発性メモリ5は状態(k)である。
次に、領域52を新書換え制御111に書換える。
書換えが開始されると、書換え制御(一次)130の機能によって、領域52は異常状態にされる。このとき不揮発性メモリ5は状態(m)となる。さらに書換えが進んで書換えが完了すると、領域52は正常に戻り、その内容は新書換え制御111となる。このとき不揮発性メモリは状態(n)である。
書換えが開始されると、書換え制御(一次)130の機能によって、領域52は異常状態にされる。このとき不揮発性メモリ5は状態(m)となる。さらに書換えが進んで書換えが完了すると、領域52は正常に戻り、その内容は新書換え制御111となる。このとき不揮発性メモリは状態(n)である。
最後に、領域54を新車両制御121に書換える。
書換えが開始されると、新書換え制御111の機能によって、領域54は異常状態にされる。このとき不揮発性メモリ5は状態(p)となる。さらに書換えが進んで書換えが完了すると、領域54は正常に戻り、その内容は新車両制御121となる。このとき不揮発性メモリは状態(q)である。
状態(1)では、領域52が新書換え制御111、領域53が書換え制御(一次)130、領域54が新車両制御121となっており、書換えが完了していることが分かる。
書換えが開始されると、新書換え制御111の機能によって、領域54は異常状態にされる。このとき不揮発性メモリ5は状態(p)となる。さらに書換えが進んで書換えが完了すると、領域54は正常に戻り、その内容は新車両制御121となる。このとき不揮発性メモリは状態(q)である。
状態(1)では、領域52が新書換え制御111、領域53が書換え制御(一次)130、領域54が新車両制御121となっており、書換えが完了していることが分かる。
次に、図13の状態遷移のもととなる書換え手順について、図14のフローチャートに基づいて説明する。
書換え開始時には、図13の状態(h)にある。
書換え手順が開始されると、始めにステップ270が実行されると同時に、領域52の書換え制御110が起動される。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54の内容は、車両制御120であるため、ステップ271に進む。ステップ271では、領域52は、正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は、正常かつ書換え制御(一次)130かどうかが判断され、領域53は旧書換え制御130’であるため、ステップ201に進む。
書換え開始時には、図13の状態(h)にある。
書換え手順が開始されると、始めにステップ270が実行されると同時に、領域52の書換え制御110が起動される。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54の内容は、車両制御120であるため、ステップ271に進む。ステップ271では、領域52は、正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は、正常かつ書換え制御(一次)130かどうかが判断され、領域53は旧書換え制御130’であるため、ステップ201に進む。
ステップ201では、領域52のプログラム、すなわち書換え制御110に制御を移行し、ステップ202に進む。ステップ202で、領域53を書換え制御(一次)130に書換える。ステップ202の開始と共に不揮発性メモリ5は、状態(j)となり、ステップ202の完了時には状態(k)になる。ステップ202の完了後、ステップ210に進む。
ステップ210では、ステップ202の異常の有無を判定する。異常があれば異常終了し、異常がなければ、ステップ203に進む。
ステップ203では、領域53のプログラム、すなわち書換え制御(一次)130に制御を移行し、ステップ204に進む。ステップ204で、領域52を新書換え制御111に書換える。ステップ204の開始と共に不揮発性メモリ5は状態(m)となり、ステップ204の終了時には状態(n)となる。ステップ204の完了後、ステップ211に進む。
ステップ211では、ステップ204の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ205に進む。
ステップ210では、ステップ202の異常の有無を判定する。異常があれば異常終了し、異常がなければ、ステップ203に進む。
ステップ203では、領域53のプログラム、すなわち書換え制御(一次)130に制御を移行し、ステップ204に進む。ステップ204で、領域52を新書換え制御111に書換える。ステップ204の開始と共に不揮発性メモリ5は状態(m)となり、ステップ204の終了時には状態(n)となる。ステップ204の完了後、ステップ211に進む。
ステップ211では、ステップ204の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ205に進む。
ステップ205では、領域52のプログラム、すなわち新書換え制御111に制御を移行し、ステップ275に進む。ステップ275で、領域54を新車両制御121に書換える。ステップ275の開始と共に不揮発性メモリ5は状態(p)となり、ステップ275の終了時には状態(q)となる。ステップ275の完了後、ステップ212に進む。
ステップ212では、ステップ275の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ276に進む。
ステップ212では、ステップ275の異常の有無を判定する。異常があれば異常終了し、異常がなければステップ276に進む。
ステップ276では、領域54のプログラム、すなわち新車両制御121に制御を移行して制御を完了する。新車両制御121により、車載コントローラは車両の制御を再び開始する。
以上により、書換え手順途中で異常がない場合に不揮発性メモリ5の内容を書換えることができる。
以上により、書換え手順途中で異常がない場合に不揮発性メモリ5の内容を書換えることができる。
続いて、書換え手順途中で電源供給異常などが発生し、正常に書換え手順を完了できなかった場合の書換え手順完了までの流れを説明する。
異常が発生すると、図14のステップ210、211、212において異常終了する。この場合、不揮発性メモリ5の内容は、図13の(h)〜(q)までのいずれかの状態になっていることになる。
異常が発生すると、図14のステップ210、211、212において異常終了する。この場合、不揮発性メモリ5の内容は、図13の(h)〜(q)までのいずれかの状態になっていることになる。
この後、電源供給異常などの異常要因を取り除いた後に再度書換え手順を開始する。
まず、電源供給異常などの異常要因を取り除いた後、再び車載コントローラを起動する。このとき、車載コントローラ1は、領域51の起動切り換え100に従って制御を行う。起動切り換え100の処理内容を図16に示す。図16は、優先度に従って処理を決定するデシジョンテーブルである。異常状態からの復旧であるため、書換えツール14からの起動要求はなく、図16の優先度1〜4は、不成立で図16の優先度5よりも低い項目が実行対象となる。
したがって、図13の状態(h)(j)(k)(m)(n)では、領域54が正常なため、車両制御120が起動され、状態(p)では、領域54が異常で領域52が正常なため、新書換え制御110が起動され、状態(q)では、領域54が正常なため、新車両制御121が起動される。
まず、電源供給異常などの異常要因を取り除いた後、再び車載コントローラを起動する。このとき、車載コントローラ1は、領域51の起動切り換え100に従って制御を行う。起動切り換え100の処理内容を図16に示す。図16は、優先度に従って処理を決定するデシジョンテーブルである。異常状態からの復旧であるため、書換えツール14からの起動要求はなく、図16の優先度1〜4は、不成立で図16の優先度5よりも低い項目が実行対象となる。
したがって、図13の状態(h)(j)(k)(m)(n)では、領域54が正常なため、車両制御120が起動され、状態(p)では、領域54が異常で領域52が正常なため、新書換え制御110が起動され、状態(q)では、領域54が正常なため、新車両制御121が起動される。
また、車両制御120、新車両制御121の動作を図17に示す。
図17で、処理が開始されると、ステップ501で、書換えツール14からの要求を確認し、要求がなければステップ502で車両制御を行ない、ステップ501に戻る。このようにして、書換えツール14からの要求があるまで、ステップ502の車両制御を継続する。
この後、書換えツール14からの要求があると、ステップ503に進む。ステップ503では、現在車両がエンスト状態にあるなど、不揮発性メモリ5を書換えても安全な状態にあるかどうかを確認し、もし安全でないならば、ステップ504に進んで、書換えツール14に処理不可能応答を返し、再びステップ502の車両制御を継続する。
ステップ503で、安全な状態であると判断された場合には、ステップ511で領域52が正常かどうかを確認し、正常であれば領域52のプログラムを起動して処理を終わる。以後は、領域52のプログラムに従って動作する。ステップ511で異常であれば、領域53のプログラムを起動して処理を終わる。以後は領域53のプログラムに従って動作する。
図17で、処理が開始されると、ステップ501で、書換えツール14からの要求を確認し、要求がなければステップ502で車両制御を行ない、ステップ501に戻る。このようにして、書換えツール14からの要求があるまで、ステップ502の車両制御を継続する。
この後、書換えツール14からの要求があると、ステップ503に進む。ステップ503では、現在車両がエンスト状態にあるなど、不揮発性メモリ5を書換えても安全な状態にあるかどうかを確認し、もし安全でないならば、ステップ504に進んで、書換えツール14に処理不可能応答を返し、再びステップ502の車両制御を継続する。
ステップ503で、安全な状態であると判断された場合には、ステップ511で領域52が正常かどうかを確認し、正常であれば領域52のプログラムを起動して処理を終わる。以後は、領域52のプログラムに従って動作する。ステップ511で異常であれば、領域53のプログラムを起動して処理を終わる。以後は領域53のプログラムに従って動作する。
図15は、書換え手順を起動したときの不揮発性メモリ5の状態とその後書換え完了までの流れを示す図である。以下に、この内容に従ってその流れを説明する。
まず、不揮発性メモリ5が状態(h)だった場合には、異常がなかった場合と全く同様にして書換えが正常に完了する。
このことは、図15に以下のように表されている。
まず、開始状態を表す黒丸から(h)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(h)でステップ202が開始されると、状態(j)となり、ステップ202の終了で状態(k)になることを、状態(h)→状態(j)→状態(k)という矢印で表している。
また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。同様に、ステップ204の実行によって状態(k)→状態(m)→状態(n)となり、ステップ206の実行によって状態(n)→状態(p)→状態(q)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(h)→状態(j)→状態(k)の遷移は書換え制御110に対応するプロトコルで行われ、状態(k)→状態(m)→状態(n)の遷移は書換え制御(一次)130に対応するプロトコルで行われ、状態(n)→状態(p)→状態(q)の遷移は、新書換え制御111のプロトコルで行われることになる。
まず、不揮発性メモリ5が状態(h)だった場合には、異常がなかった場合と全く同様にして書換えが正常に完了する。
このことは、図15に以下のように表されている。
まず、開始状態を表す黒丸から(h)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(h)でステップ202が開始されると、状態(j)となり、ステップ202の終了で状態(k)になることを、状態(h)→状態(j)→状態(k)という矢印で表している。
また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。同様に、ステップ204の実行によって状態(k)→状態(m)→状態(n)となり、ステップ206の実行によって状態(n)→状態(p)→状態(q)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(h)→状態(j)→状態(k)の遷移は書換え制御110に対応するプロトコルで行われ、状態(k)→状態(m)→状態(n)の遷移は書換え制御(一次)130に対応するプロトコルで行われ、状態(n)→状態(p)→状態(q)の遷移は、新書換え制御111のプロトコルで行われることになる。
次に、不揮発性メモリ5が状態(j)だった場合を考える。書換え手順は図14に従って進められる。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は異常であるため、ステップ201に進む。
従って、ステップ201からの実行となり、異常がなかった場合と同様に不揮発メモリ5の状態遷移はステップ202から始まることがわかる。なお、状態(j)でステップ202を開始すると、領域53が異常となり、それは状態(j)になるため、状態(j)→状態(j)という矢印が引かれている。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は異常であるため、ステップ201に進む。
従って、ステップ201からの実行となり、異常がなかった場合と同様に不揮発メモリ5の状態遷移はステップ202から始まることがわかる。なお、状態(j)でステップ202を開始すると、領域53が異常となり、それは状態(j)になるため、状態(j)→状態(j)という矢印が引かれている。
次に、不揮発性メモリ5が状態(k)だった場合を考える。書換え手順は図14に従って進められる。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
次に、不揮発性メモリ5が状態(m)だった場合を考える。書換え手順は図14に従って進められる。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
なお、状態(m)でステップ204を開始すると、領域52が異常となり、それは状態(m)になるため、状態(m)→状態(m)という矢印が引かれている。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は書換え制御110であるため、ステップ272に進む。ステップ272では、領域53は正常かつ書換え制御(一次)130かどうかが判断され、領域53は書換え制御(一次)130であるため、ステップ203に進む。
従って、ステップ203からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ204から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
なお、状態(m)でステップ204を開始すると、領域52が異常となり、それは状態(m)になるため、状態(m)→状態(m)という矢印が引かれている。
次に、不揮発性メモリ5が状態(n)だった場合を考える。書換え手順は図14に従って進められる。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ275に進む。
従って、ステップ275からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ276から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
書換え手順が開始されると、始めにステップ270が実行される。車両制御120は、図17に従って領域52の書換え制御110を起動する。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は車両制御120であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ275に進む。
従って、ステップ275からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ276から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。
次に、不揮発性メモリ5が状態(p)だった場合を考える。書換え手順は図14に従って進められる。
書換え手順が開始されると、始めにステップ270が実行される。領域52の新書換え制御111が動作している。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は異常であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ275に進む。
従って、ステップ275からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ276から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。なお、状態(p)でステップ275を開始すると、領域52が異常となり、それは状態(p)になるため、状態(p)→状態(p)という矢印が引かれている。
書換え手順が開始されると、始めにステップ270が実行される。領域52の新書換え制御111が動作している。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は異常であるため、ステップ271に進む。ステップ271では、領域52は正常かつ新書換え制御111かどうかが判断され、領域52は新書換え制御111であるため、ステップ275に進む。
従って、ステップ275からの実行となり、不揮発メモリ5の状態遷移は異常がなかった場合の途中、ステップ276から始まることがわかる。以後は異常がなかった場合と同様にして書き換えが正常に完了する。なお、状態(p)でステップ275を開始すると、領域52が異常となり、それは状態(p)になるため、状態(p)→状態(p)という矢印が引かれている。
最後に、不揮発性メモリ5が状態(q)だった場合を考える。書換え手順は図14に従って進められる。
書換え手順が開始されると、始めにステップ270が実行される。領域54の新車両制御121が動作している。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は新車両制御121であるため、書換えを行う必要がなく終了する。
上記のように、電源供給などの異常発生後も、再度書換え手順を実施することによって正常に書換えを完了できることが分かる。
書換え手順が開始されると、始めにステップ270が実行される。領域54の新車両制御121が動作している。ステップ270では、領域54は、正常かつ新車両制御121かどうかが判断され、領域54は新車両制御121であるため、書換えを行う必要がなく終了する。
上記のように、電源供給などの異常発生後も、再度書換え手順を実施することによって正常に書換えを完了できることが分かる。
なお、実施の形態5においては、図6に示すように、書換え制御110、新書換え制御111、書換え制御(一次)130は不揮発メモリ5上のプログラムが起動され、ステップ401にあるように不揮発性メモリ5上に配置されたプログラムをそのまま実行することを想定している。
実施の形態5によれば、以上のように、領域52に書換え制御110、領域53に書換え制御(一次)130、領域54に車両制御120を格納する構成に基づき、各領域に格納されているプログラムの状態によって書換え手順の最初もしくは途中から選択的に行うという手順を採用することで、電源供給などの異常発生後も再度書換え手順を実施すれば正常に書換えを完了できるとともに、不揮発性メモリ5の領域52、領域53、領域54の書換えに際して正常な場合には各領域の書換えが1回ですむ。
実施の形態6.
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコン1もある。このようなマイコン1を選択した場合に実施の形態5を適用することができない。実施の形態6は、このような場合に好適な実施の形態である。
実施の形態5では、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発性メモリ5上のプログラムが起動され、それが実行されつづける構成であった。実施の形態6は、この点を変更し、不揮発メモリ5に格納されたプログラムを実行する際に一部または全部をRAM4に転送する構成とする。
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコン1もある。このようなマイコン1を選択した場合に実施の形態5を適用することができない。実施の形態6は、このような場合に好適な実施の形態である。
実施の形態5では、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発性メモリ5上のプログラムが起動され、それが実行されつづける構成であった。実施の形態6は、この点を変更し、不揮発メモリ5に格納されたプログラムを実行する際に一部または全部をRAM4に転送する構成とする。
実施の形態6は、図1のように構成されている。図9、図14、図16を援用する。
図18は、この発明の実施の形態6による車載プログラム書換え制御装置の不揮発性メモリの書換え中の不揮発性メモリ及びRAMの状態遷移を示す図である。
実施の形態6では、書換え制御110、新書換え制御111書換え制御(一次)130の実行形態を、RAMを用いる図9のようにすることで、プログラム実行中の不揮発性メモリ5とRAM4の状態は、図18に示すようなものになる。
すなわち、車載コントローラ1の起動時に、状態(h)(j)(k)(m)(n)(q)では、特にRAM上に転送されたプログラムはなく、状態(p)では、新書換え制御サブ111−1が転送された形で実行される。また、図14のステップ201、203、205で制御移行時にも、図9に従って起動される書換え制御プログラムに対応したプログラムがRAMに転送される。
図18は、この発明の実施の形態6による車載プログラム書換え制御装置の不揮発性メモリの書換え中の不揮発性メモリ及びRAMの状態遷移を示す図である。
実施の形態6では、書換え制御110、新書換え制御111書換え制御(一次)130の実行形態を、RAMを用いる図9のようにすることで、プログラム実行中の不揮発性メモリ5とRAM4の状態は、図18に示すようなものになる。
すなわち、車載コントローラ1の起動時に、状態(h)(j)(k)(m)(n)(q)では、特にRAM上に転送されたプログラムはなく、状態(p)では、新書換え制御サブ111−1が転送された形で実行される。また、図14のステップ201、203、205で制御移行時にも、図9に従って起動される書換え制御プログラムに対応したプログラムがRAMに転送される。
なお、上記では、揮発性のRAM4を用いた制御をしているが、制御の元となるプログラムは全て不揮発性メモリ5に格納された情報に基づいているため、途中で電源異常などの異常が発生しても、実施の形態3と同様に書換えを正常に完了させることができる。これは、図16・図9の制御により、RAM4上の実行形態が復元されるためである。
実施の形態6によれば、このように実施の形態5に対して、不揮発性メモリ5の内容を一部RAM4に転送して実行する構成とすることで、不揮発性メモリ5によらないプログラム実行が可能となるとともに、実施の形態5と同様に書換え中の電源異常などの異常状態からも再度書換え手順を実行することで正常に書換え手順を完了することができる。
実施の形態6では、RAM4にプログラムを転送することを利用することで、例えば不揮発性メモリ5に格納されるプログラムをデータとして圧縮格納し、RAM4に転送する時点で展開して実行可能なプログラムにすることも可能である。これにより、不揮発性メモリ5の使用量を抑えることができる効果がある。
また、実施の形態6では、説明の都合上 RAM4へのプログラム転送するタイミングを書換え制御110、新書換え制御111、書換え制御(一次)130の開始時とした。しかし、転送タイミングは初期化時に限定するものでなく、例えば不揮発性メモリ5の消去を行う時には消去用のサブルーチンだけを転送することによって、RAM4の使用量を減らすことも可能である。
実施の形態7.
実施の形態5では、不揮発性メモリ5の内容について書き込まれているプログラムを識別できる情報が必要であったが、実施の形態7は、より簡略化したプログラムを識別できる情報によって、実施の形態5と同様に書換え手順途中で電源異常などの異常があっても再度書換え手順を実行することで、正常に書換え完了できる構成にしている。
実施の形態5では、不揮発性メモリ5の内容について書き込まれているプログラムを識別できる情報が必要であったが、実施の形態7は、より簡略化したプログラムを識別できる情報によって、実施の形態5と同様に書換え手順途中で電源異常などの異常があっても再度書換え手順を実行することで、正常に書換え完了できる構成にしている。
実施の形態7は、図1のように構成されている。図14を援用する。
図19は、この発明の実施の形態7による車載プログラム書換え制御装置の不揮発性メモリの書換え手順を示すフローチャートである。
図20は、図19の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
図19は、この発明の実施の形態7による車載プログラム書換え制御装置の不揮発性メモリの書換え手順を示すフローチャートである。
図20は、図19の書換え手順において異常が発生した後、再度手順を開始したときの不揮発性メモリの状態遷移を示す図である。
次に、動作について説明する。
実施の形態7では、書換え制御110、新書換え制御111、書換え制御(一次)130について、書換え制御110と新書換え制御111を区別できる情報を通知できるとともに、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能だけを想定し、それ以外のプログラムを識別する情報は要求しない。
実施の形態7では、書換え制御110、新書換え制御111、書換え制御(一次)130について、書換え制御110と新書換え制御111を区別できる情報を通知できるとともに、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能だけを想定し、それ以外のプログラムを識別する情報は要求しない。
図19のフローチャートのうち、実際に不揮発性メモリ5の内容を書き換える手順に関わるステップ201、202、203、204、205、275、276、210、211、212については、図14で説明した内容と同一である。図14と異なるのは、開始から図14と同一ステップになる部分までの条件付けの処理である。
以下に、実施の形態5と同様に正常な場合・異常な場合を含めて、図19の書換え手順によって書換えが正常に完了することを説明する。図20は、書換え手順を起動したときの不揮発性メモリ5の状態とその後書換え完了までの流れを示す図であり、図20は、実施の形態5の図15に対応する図である。この内容に従ってその流れを説明する。
以下に、実施の形態5と同様に正常な場合・異常な場合を含めて、図19の書換え手順によって書換えが正常に完了することを説明する。図20は、書換え手順を起動したときの不揮発性メモリ5の状態とその後書換え完了までの流れを示す図であり、図20は、実施の形態5の図15に対応する図である。この内容に従ってその流れを説明する。
まず、不揮発性メモリ5の内容が、状態(h)であった場合を考える。書換えは図19の手順に従って進められる。
書換え手順が開始されると、まず、ステップ280が実行される。状態(h)では、領域54の車両制御120が実行されているが、このステップの実行によって領域52の書換え制御110が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御110であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域52の書換え制御110で動作しているため、ステップ281はyesの判断となり、ステップ201に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
書換え手順が開始されると、まず、ステップ280が実行される。状態(h)では、領域54の車両制御120が実行されているが、このステップの実行によって領域52の書換え制御110が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御110であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域52の書換え制御110で動作しているため、ステップ281はyesの判断となり、ステップ201に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
図20には、このことが以下のように示してある。まず、開始状態を表す黒丸から(h)に対する点線矢印として書換え手順を起動したときの状態を表している。また、不揮発性メモリ5の内容が変わるステップ202、204、206も示してある。例えば、状態(h)でステップ202が開始されると、状態(j)となり、ステップ202の終了で状態(k)になることを、状態(h)→状態(j)→状態(k)という矢印で表している。また、この遷移を起こしているステップが202であることをステップ202の矢印で示している。
同様に、ステップ204の実行によって状態(k)→状態(m)→状態(n)となり、ステップ206の実行によって状態(n)→状態(p)→状態(q)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(h)→状態(j)→状態(k)の遷移は、書換え制御110に対応するプロトコルで行われ、状態(k)→状態(m)→状態(n)の遷移は書換え制御(一次)130に対応するプロトコルで行われ、状態(n)→状態(p)→状態(q)の遷移は、新書換え制御111のプロトコルで行われることになる。
同様に、ステップ204の実行によって状態(k)→状態(m)→状態(n)となり、ステップ206の実行によって状態(n)→状態(p)→状態(q)という遷移が起こることを表している。
また、状態間を結ぶ矢印の種類が変えてあるのは、書換え制御機能に使われるプログラムが違うことによるプロトコルの差異を表したものである。状態(h)→状態(j)→状態(k)の遷移は、書換え制御110に対応するプロトコルで行われ、状態(k)→状態(m)→状態(n)の遷移は書換え制御(一次)130に対応するプロトコルで行われ、状態(n)→状態(p)→状態(q)の遷移は、新書換え制御111のプロトコルで行われることになる。
次に、不揮発性メモリ5の内容が、状態(j)だった場合を考える。書換え手順は図19に従って進められる。
書換え手順が開始されると、まずステップ280が実行される。状態(j)では領域54の車両制御120が実行されているが、このステップの実行によって領域52の書換え制御110が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御110であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域52の書換え制御110で動作しているため、ステップ281はyesの判断となり、ステップ201に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
なお、状態(j)でステップ202を開始すると、領域53が異常となり、それは状態(j)になるため、状態(j)→状態(j)という矢印が引かれている。
書換え手順が開始されると、まずステップ280が実行される。状態(j)では領域54の車両制御120が実行されているが、このステップの実行によって領域52の書換え制御110が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御110であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域52の書換え制御110で動作しているため、ステップ281はyesの判断となり、ステップ201に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
なお、状態(j)でステップ202を開始すると、領域53が異常となり、それは状態(j)になるため、状態(j)→状態(j)という矢印が引かれている。
次に、不揮発性メモリ5の内容が、状態(k)だった場合を考える。書換え手順は図19に従って進められる。
書換え手順が開始されると、まずステップ280が実行される。状態(k)では領域54の車両制御120が実行されているが、このステップの実行によって領域52の書換え制御110が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御110であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域52の書換え制御110で動作しているため、ステップ281はyesの判断となり、ステップ201に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
書換え手順が開始されると、まずステップ280が実行される。状態(k)では領域54の車両制御120が実行されているが、このステップの実行によって領域52の書換え制御110が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御110であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域52の書換え制御110で動作しているため、ステップ281はyesの判断となり、ステップ201に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
次に、不揮発性メモリ5の内容が、状態(m)だった場合を考える。書換え手順は図19に従って進められる。
書換え手順が開始されると、まずステップ280が実行される。状態(m)では領域54の車両制御120が実行されているが、このステップの実行によって領域53の書換え制御(一次)130が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御(一次)130であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域53の書換え制御(一次)130で動作しているため、ステップ281はnoの判断となり、ステップ282に進む。ステップ282では、領域53の書換え制御(一次)130が起動され、ステップ204に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
なお、状態(m)でステップ204を開始すると、領域52が異常となり、それは状態(m)になるため、状態(m)→状態(m)という矢印が引かれている。
書換え手順が開始されると、まずステップ280が実行される。状態(m)では領域54の車両制御120が実行されているが、このステップの実行によって領域53の書換え制御(一次)130が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御(一次)130であり、ステップ281に進む。ステップ281では、領域53が書換え可能かどうかが判定されるが、領域53の書換え制御(一次)130で動作しているため、ステップ281はnoの判断となり、ステップ282に進む。ステップ282では、領域53の書換え制御(一次)130が起動され、ステップ204に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
なお、状態(m)でステップ204を開始すると、領域52が異常となり、それは状態(m)になるため、状態(m)→状態(m)という矢印が引かれている。
次に、不揮発性メモリ5の内容が、状態(n)だった場合を考える。書換え手順は図19に従って進められる。
書換え手順が開始されると、まずステップ280が実行される。状態(n)では領域54の車両制御120が実行されているが、このステップの実行によって領域52の新書換え制御111が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは新書換え制御111であり、ステップ275に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
書換え手順が開始されると、まずステップ280が実行される。状態(n)では領域54の車両制御120が実行されているが、このステップの実行によって領域52の新書換え制御111が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは新書換え制御111であり、ステップ275に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
次に、不揮発性メモリ5の内容が、状態(p)だった場合を考える。書換え手順は図19に従って進められる。
書換え手順が開始されると、まずステップ280が実行される。状態(p)では領域52の新書換え制御111が実行されている。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは新書換え制御111であり、ステップ275に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
状態(p)で領域54を書換え開始すると、領域54が異常となり、それは状態(p)になるため、状態(p)→状態(p)という矢印が引かれている。その後、ステップ275が完了すると状態(q)となり、以後は、図14の説明と同様に処理が完了する。
書換え手順が開始されると、まずステップ280が実行される。状態(p)では領域52の新書換え制御111が実行されている。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは新書換え制御111であり、ステップ275に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
状態(p)で領域54を書換え開始すると、領域54が異常となり、それは状態(p)になるため、状態(p)→状態(p)という矢印が引かれている。その後、ステップ275が完了すると状態(q)となり、以後は、図14の説明と同様に処理が完了する。
最後に、不揮発性メモリ5の内容が、状態(q)だった場合を考える。書換え手順は図19に従って進められる。
書換え手順が開始されると、まずステップ280が実行される。
状態(n)では領域54の新車両制御121が実行されているが、このステップの実行によって領域52の新書換え制御111が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御111であり、ステップ275に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
状態(q)で領域54を書換え開始すると、領域54が異常となり、それは状態(p)になるため、状態(q)→状態(p)という矢印が引かれている。その後、ステップ275が完了すると状態(q)となり、以後は図14の説明と同様に処理が完了する。
書換え手順が開始されると、まずステップ280が実行される。
状態(n)では領域54の新車両制御121が実行されているが、このステップの実行によって領域52の新書換え制御111が起動される。ステップ280では、プロトコルは新書換え制御111対応かどうかが判定されるが、プロトコルは書換え制御111であり、ステップ275に進む。以後は、図14の説明と同様にして書換えが正常に完了する。
状態(q)で領域54を書換え開始すると、領域54が異常となり、それは状態(p)になるため、状態(q)→状態(p)という矢印が引かれている。その後、ステップ275が完了すると状態(q)となり、以後は図14の説明と同様に処理が完了する。
実施の形態7によれば、上記のように、電源供給などの異常発生後も、再度書換え手順を実施することによって正常に書換えを完了できる。
また、実施の形態7は、実施の形態5と比べて状態(k)(q)の場合に不要な書換えを行ってしまうものの、書換え制御110、新書換え制御111、書換え制御(一次)130について、書換え制御110と新書換え制御111を区別できる情報を通知できるとともに、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能だけを想定し、それ以外のプログラムを識別する情報は要求しない点で通信プロトコルを簡略化できる利点がある。
また、実施の形態7は、実施の形態5と比べて状態(k)(q)の場合に不要な書換えを行ってしまうものの、書換え制御110、新書換え制御111、書換え制御(一次)130について、書換え制御110と新書換え制御111を区別できる情報を通知できるとともに、それぞれのプログラムが書き込まれた領域そのものに対する書換え要求に対して書換え不可能を通知できる機能だけを想定し、それ以外のプログラムを識別する情報は要求しない点で通信プロトコルを簡略化できる利点がある。
実施の形態8.
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコンもある。このようなマイコンを選択した場合に実施の形態7を適用することができない。実施の形態8は、このような場合に好適な実施の形態である。
実施の形態7では、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発性メモリ5上のプログラムが起動され、それが実行されつづける構成であった。実施の形態8は、この点を変更し、不揮発メモリ5に格納されたプログラムを実行する際に一部または全部をRAM4に転送する構成とする。
実施の形態8は、図1のように構成されている。図9、図16を援用して説明する。
不揮発性メモリ5として、たとえばフラッシュメモリなどを選択すると、フラッシュメモリの書き換え中にはフラッシュメモリの内容を参照できなくなるといった制約のあるマイコンもある。このようなマイコンを選択した場合に実施の形態7を適用することができない。実施の形態8は、このような場合に好適な実施の形態である。
実施の形態7では、書換え制御110、新書換え制御111、書換え制御(一次)130は、不揮発性メモリ5上のプログラムが起動され、それが実行されつづける構成であった。実施の形態8は、この点を変更し、不揮発メモリ5に格納されたプログラムを実行する際に一部または全部をRAM4に転送する構成とする。
実施の形態8は、図1のように構成されている。図9、図16を援用して説明する。
実施の形態8では、揮発性のRAM4を用いた制御をしているが、制御の元となるプログラムは全て不揮発性メモリ5に格納された情報に基づいているため、途中で電源異常などの異常が発生しても実施の形態3と同様に書換えを正常に完了させることができる。これは、図16・図9の制御によりRAM4上の実行形態が復元されるためである。
実施の形態8によれば、このように実施の形態5に対して、不揮発性メモリ5の内容を一部RAM4に転送して実行する構成とすることで、不揮発性メモリ5によらないプログラム実行が可能となるとともに、実施の形態5と同様に書換え中の電源異常などの異常状態からも再度書換え手順を実行することで、正常に書換え手順を完了することができる。
また、実施の形態8では、RAM4にプログラムを転送することを利用することで、例えば不揮発性メモリ5に格納されるプログラムをデータとして圧縮格納し、RAM4に転送する時点で展開して実行可能なプログラムにすることも可能である。これにより、不揮発性メモリ5の使用量を抑えることができる効果がある。
また、実施の形態8では、説明の都合上 RAM4へのプログラム転送するタイミングを書換え制御110、新書換え制御111、書換え制御(一次)130の開始時とした。しかし、転送タイミングは、初期化時に限定するものでなく、例えば不揮発性メモリ5の消去を行う時には消去用のサブルーチンだけを転送することによって、RAM4の使用量を減らすことも可能である。
1 車載コントローラ
2 マイコン
3 CPU
4 RAM
5 不揮発性メモリ
6 I/F
7 バス
8 I/F
9 通信I/F
10 バッテリ
11 IGスイッチ
12 エンジン
13 通信路
14 書換えツール
2 マイコン
3 CPU
4 RAM
5 不揮発性メモリ
6 I/F
7 バス
8 I/F
9 通信I/F
10 バッテリ
11 IGスイッチ
12 エンジン
13 通信路
14 書換えツール
Claims (6)
- 車両を制御する車載コントローラの不揮発性記憶媒体に記憶されたプログラムを、上記車載コントローラと通信路を介して接続された書換えツールにより書換える車載プログラム書換え制御装置において、上記不揮発性記憶媒体には、上記プログラムを書換える書換え制御プログラムを格納した第一の領域及び車両を制御する車両制御プログラムを格納した第二の領域がそれぞれ独立に書込み及び消去が可能なように設けられ、上記書換えツールは、上記第一の領域及び第二の領域を書換えるに当っては、上記第一の領域の書換え制御プログラムにより上記第二の領域を書換え制御プログラムに書換え、この書換えられた上記第二の領域の書換え制御プログラムにより上記第一の領域の書換え制御プログラムを新しい書換え制御プログラムに書換え、この書換えられた上記第一の領域の新しい書換え制御プログラムにより上記第二の領域の車両制御プログラムを新しい車両制御プログラムに書換える書換え手順を実行するとともに、上記書換えの途中で、異常が発生し、上記異常からの復旧時には、上記各領域の状態に応じた書換え制御プログラムにより上記書換え手順を再開することを特徴とする車載プログラム書換え制御装置。
- 車両を制御する車載コントローラの不揮発性記憶媒体に記憶されたプログラムを、上記車載コントローラと通信路を介して接続された書換えツールにより書換える車載プログラム書換え制御装置において、上記不揮発性記憶媒体には、上記プログラムを書換える書換え制御プログラムを格納した第一の領域及び車両を制御する車両制御プログラムを格納した第二の領域及びプログラムを書換える書換え制御プログラムを格納する第三の領域がそれぞれ独立に書込み及び消去が可能なように設けられ、上記書換えツールは、上記第一の領域及び第二の領域を書換えるに当っては、上記第一の領域の書換え制御プログラムにより上記第三の領域を書換え制御プログラムに書換え、この書換えられた上記第三の領域の書換え制御プログラムにより上記第一の領域の書換え制御プログラムを新しい書換え制御プログラムに書換え、この書換えられた上記第一の領域の新しい書換え制御プログラムにより上記第二の領域の車両制御プログラムを新しい車両制御プログラムに書換える書換え手順を実行するとともに、上記書換えの途中で、異常が発生し、上記異常からの復旧時には、上記各領域の状態に応じた書換え制御プログラムにより上記書換え手順を再開することを特徴とする車載プログラム書換え制御装置。
- 上記書換え制御プログラムは、自己の格納されている領域に対する上記書換えツールからの書換え要求に対しては書換えを行わないとともに、書換え不能を上記書換えツールに通知することを特徴とする請求項1または請求項2記載の車載プログラム書換え制御装置。
- 上記書換え制御プログラムは、自己の識別情報を上記書換えツールに通知し、上記書換えツールは、上記通知に基き、上記各領域の状態を把握し、上記書換え手順を再開することを特徴とする請求項1または請求項2記載の車載プログラム書換え制御装置。
- 異常からの復旧時に上記第一及び第二の領域に格納されたプログラムの起動を切換える起動切り換え手段を備え、上記起動切換え手段は、上記第一及び第二の領域の両方が正常である場合には、上記第二の領域に格納されたプログラムを優先的に起動することを特徴とする請求項1記載の車載プログラム書換え制御装置。
- 異常からの復旧時に上記第一及び第三の領域に格納されたプログラムの起動を切換える起動切り換え手段を備え、上記起動切換え手段は、上記第一及び第三の領域の両方が正常である場合には、上記第一の領域に格納されたプログラムを優先的に起動することを特徴とする請求項2記載の車載プログラム書換え制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006143794A JP2007316800A (ja) | 2006-05-24 | 2006-05-24 | 車載プログラム書換え制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006143794A JP2007316800A (ja) | 2006-05-24 | 2006-05-24 | 車載プログラム書換え制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007316800A true JP2007316800A (ja) | 2007-12-06 |
Family
ID=38850619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006143794A Pending JP2007316800A (ja) | 2006-05-24 | 2006-05-24 | 車載プログラム書換え制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007316800A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012077604A1 (ja) * | 2010-12-08 | 2012-06-14 | 三洋電機株式会社 | 処理装置、プログラム更新方法、およびプログラム |
JP2012243257A (ja) * | 2011-05-24 | 2012-12-10 | Denso Corp | 電子制御装置 |
JP2013192092A (ja) * | 2012-03-14 | 2013-09-26 | Denso Corp | 車載装置 |
JP2016103261A (ja) * | 2014-11-13 | 2016-06-02 | 富士電機株式会社 | ファームウェアのダウンロード方法及びファームウェア組込機器 |
JP6334776B1 (ja) * | 2017-04-20 | 2018-05-30 | 三菱電機株式会社 | 電子制御装置 |
-
2006
- 2006-05-24 JP JP2006143794A patent/JP2007316800A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012077604A1 (ja) * | 2010-12-08 | 2012-06-14 | 三洋電機株式会社 | 処理装置、プログラム更新方法、およびプログラム |
JP2012243257A (ja) * | 2011-05-24 | 2012-12-10 | Denso Corp | 電子制御装置 |
JP2013192092A (ja) * | 2012-03-14 | 2013-09-26 | Denso Corp | 車載装置 |
JP2016103261A (ja) * | 2014-11-13 | 2016-06-02 | 富士電機株式会社 | ファームウェアのダウンロード方法及びファームウェア組込機器 |
JP6334776B1 (ja) * | 2017-04-20 | 2018-05-30 | 三菱電機株式会社 | 電子制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6390644B2 (ja) | プログラム更新システム、プログラム更新方法及びコンピュータプログラム | |
US20180341476A1 (en) | Software updating device, software updating system, and software updating method | |
EP3200077B1 (en) | Vehicle control device, reprogramming system | |
JP2008242995A (ja) | 電子制御装置 | |
US20080002236A1 (en) | Image forming apparatus | |
JP2007316800A (ja) | 車載プログラム書換え制御装置 | |
JP4784100B2 (ja) | 処理装置およびそのファームウェアダウンロード方法。 | |
JP2008169815A (ja) | 電子制御装置 | |
CN106095474A (zh) | 用于更新运输工具中的软件的方法和装置 | |
JP6415990B2 (ja) | 自動車用電子制御装置 | |
JP2001123874A (ja) | 電子制御装置のプログラム書換システム及びメモリ書換装置 | |
KR101601751B1 (ko) | 차량용 전자제어유닛 및 그 부트 소프트웨어 리프로그래밍 방법 | |
US20210173634A1 (en) | Vehicle control device and program update system | |
CN115145650A (zh) | 信息处理装置、存储介质及信息处理方法 | |
JP6001962B2 (ja) | インバータ装置 | |
CN112269585B (zh) | 一种关节驱动器固件在线更新方法、装置及关节驱动器 | |
JP2009087107A (ja) | 車両用制御システム | |
JP2003271420A (ja) | 電子制御装置 | |
JP5158883B2 (ja) | ファームウェア更新方法及びファームウェア更新装置 | |
JP2012256386A (ja) | プログラム書込システム | |
JP5944017B2 (ja) | 情報処理装置およびプログラム | |
WO2022215402A1 (ja) | 車両用電子制御装置及びプログラムの書き換え方法 | |
US20240220234A1 (en) | Updating system, electronic control unit, updating management device, and updating management method | |
JP2002323990A (ja) | 電子制御装置及び不揮発性メモリの初期化方法 | |
JP6516719B2 (ja) | エレベーターのプログラム書換えシステム及びプログラム書換え方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090512 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090915 |