JP6782654B2 - 車載制御装置、及び、プログラム更新ソフトウェア - Google Patents

車載制御装置、及び、プログラム更新ソフトウェア Download PDF

Info

Publication number
JP6782654B2
JP6782654B2 JP2017058396A JP2017058396A JP6782654B2 JP 6782654 B2 JP6782654 B2 JP 6782654B2 JP 2017058396 A JP2017058396 A JP 2017058396A JP 2017058396 A JP2017058396 A JP 2017058396A JP 6782654 B2 JP6782654 B2 JP 6782654B2
Authority
JP
Japan
Prior art keywords
block
program
executable program
volatile memory
specific block
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.)
Active
Application number
JP2017058396A
Other languages
English (en)
Other versions
JP2018160206A (ja
Inventor
黒澤 憲一
憲一 黒澤
中原 章晴
章晴 中原
優希 重松
優希 重松
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 JP2017058396A priority Critical patent/JP6782654B2/ja
Publication of JP2018160206A publication Critical patent/JP2018160206A/ja
Application granted granted Critical
Publication of JP6782654B2 publication Critical patent/JP6782654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、車載制御装置、プログラム更新ソフトウェアに関する。
従来のリプログラミングでは、低速なCAN(Controller Area Network)を介してプログラム書込み装置としてのPC(Personal Computer)と車載制御装置(ECU:Engine Control Unit)を接続し、ロードモジュール(新プログラム)を分割転送しながらECUのフラッシュメモリへ書込みを行っている。
また、旧プログラムに対する新プログラムの更新部分が小さい場合においても、新プログラム全体をCAN経由で転送し、新プログラム全体の書込みを行っている。
従って、書込みに要する時間がかかるという問題があった。これに対し、従来から差分リプログラミングの考え方が提案されている(例えば、特許文献1参照)。すなわち、特許文献1の段落〔0019〕には、書き換え方式の1つとして「ブロック単位で新旧プログラムの差分データを作成する手段」が記載されている。さらに段落〔0064〕には、更新対象ブロックの旧プログラムをSDRAMへ転送して、差分データと旧プログラムを用いて新プログラムをSDRAMへ復元し、更新対象ブロックを消去してから、新プログラムを書込んでいる。
特開2012−190075号公報
特許文献1の技術は、更新対象ブロックの旧プログラムと差分データと復元した新プログラム全てをRAM上に配置している。結果として、RAM容量よりも大きなブロックで構成されたフラッシュメモリを内蔵したマイコンを使用した車載制御装置では原理的に差分復元できないことになる。
そこで本発明の目的は、差分更新機能を有さない車載制御装置を、差分更新可能にすることである。
上記課題を解決するために、本発明の車載制御装置は一例として、実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、前記全文更新手段を起動して、差分復元手段と解凍復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、前記復元プログラムを起動して、該復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムのブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな前記実行可能なプログラムを差分復元して、前記不揮発性メモリの第2の特定ブロックへ書込み、該第2の特定ブロックのデータを前記ブロックへコピーすることを繰返して、前記第1の特定ブロックと前記第2の特定ブロックとは別の前記ブロックへ新たな前記実行可能なプログラムを書込み、前記第2の特定ブロックの新たな前記実行可能なプログラムの圧縮データを解凍復元して、該解凍復元したプログラムを前記第2の特定ブロックへ書込み、前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新する。
本発明によれば、差分更新機能を有さない車載制御装置を、差分更新可能にすることができる。
既存の車載制御装置のフラッシュメモリ構成と動作概要示す模式図である。 プログラム書込み装置と車載制御装置の全体構成を示す模式図である。 図2Aに示す車載制御装置のSRAMの内部の構成を示す模式図である。 図2Aに示す車載制御装置のFLASHメモリの内部の構成を示す模式図である。ブート部とアプリ部の構成、およびアプリ先頭ブロックと一時ブロックが記載されている。 既存車載制御装置の差分更新ソフトの全体構成図である。 復元回復ソフトの全体構成図である。 プログラム書き込み装置から受信する通信コマンドの種類を示す図である。 プログラム書込み装置が車載制御装置へ発行する通信コマンドのフローチャートである。 差分通信ソフトのフローチャートである。 復元ソフトのフローチャートである。 差分復元ソフトのフローチャートである。 解凍復元ソフトのフローチャートである。
既存の車載制御装置は、少なくともマイコンなどの初期化ソフト、プログラム書換え装置から送信される全文更新用通信コマンドや全文データの通信を行う全文通信ソフト、フラッシュ書込みソフト、全文データによる全文更新ソフトをブート部と呼ぶフラッシュメモリの領域に配置し、更新対象のプログラムやデータはアプリ部と呼ぶフラッシュメモリの領域に配置されていることを前提とする。
図1を用いて、前提とする既存の車載制御装置のフラッシュメモリ構成と、動作を説明する。
210はブート部であり、220はアプリ部である。既存の車載制御装置は、パワーオンやイグニッションONなどによるリセットが発生すると、ブート部内の初期化ソフトが実行される。初期化ソフトはRAMの初期化やアプリ部220に配置されているプログラムの診断などを行い、異常がなければ250で指示されたアプリ部220の先頭を示すアプリ先頭230へ分岐する。図1ではアプリ先頭230は、アプリ部220の途中の位置に存在しているが、その位置は自由で良い。当然、予め定められた位置にアプリ先頭230の位置を示す情報を格納しておいても良い。このように、ブート部からアプリ部のプログラムへ分岐するための予め定められた規定が存在することが第1の重要なポイントである。
このようにしてアプリ部220のプログラムを実行するが、アプリ部220のプログラムから全文更新ソフトへ分岐する規定の存在することが、第2のポイントである。すなわち、プログラム実行中に、プログラム書込み装置から全文更新開始を意味する通信コマンドを受信すると、アプリ部220のプログラムは、車載制御装置を安全な状態にした後、260で指示されたブート部210の全文更新ソフト先頭240へ分岐する。全文更新ソフトは、通信ソフトを初期化し、全文更新の通信コマンドを受信できるようにすることで、プログラム書込み装置からの指示を待つことができる。当然、予め定められた位置に全文更新ソフト先頭240の位置を示す情報を格納しておいても良い。このように、アプリ部220のプログラムからブート部の全文更新ソフトへ分岐するための予め定められた規定が存在することが第2の重要なポイントである。既存の車載制御装置は、このように第1の規定と第2の規定を備えていることが前提である。
本実施例は、第1の規定と第2の規定を活用して、下記3つのフェーズで構成した既存車載制御装置の差分更新手段で、アプリ部220の旧プログラムを新プログラムへ更新する。
第1フェーズは、既存の車載制御装置へ前記全文更新ソフトを利用してアプリ先頭230を含むブロック(アプリ先頭ブロックと呼ぶことにする)へ復元回復ソフトをダウンロードしてリセットする手段である。ここで復元回復ソフトは、プログラム書込み装置から差分更新用通信コマンドやブロック毎のブロック差分データを受信する差分通信手段と、受信したブロック差分データとアプリ部220の旧プログラムから当該ブロックの新プログラムを復元する復元手段と、復元された当該ブロックの新プログラムをアプリ部220の当該ブロックへ書込む処理を行う書込み手段を備えたソフトウェアである。
第2フェーズは、ブート部の初期化ソフト実行後に前記復元回復ソフトを起動する。復元回復ソフトは、まず差分通信手段を初期化してプログラム書込み装置と差分更新用通信コマンドやブロック毎のブロック差分データを受信可能に設定する。その後、復元手段を用いて受信したブロック差分データとアプリ部220の旧プログラムから当該ブロックの新プログラムを復元し、アプリ部220内の最大サイズのブロック(一時ブロックと呼ぶことにする)へ書込む。次に一時ブロックのデータを書込み手段を用いて当該ブロックへコピーする。このように、ブロック差分データを受信する度に、上記処理を繰返すことで、アプリ部220の各ブロックを新プログラムへ更新することができる。ただし、前述したアプリ先頭ブロックと一時ブロックは、まだ新プログラムへ更新できていない。
まず、一時ブロックの選定理由を説明する。
本実施例の課題としていることは、小さなSRAM容量でもフラッシュメモリの大きなブロックの差分更新を可能にすることであった。このケースの場合、当該ブロックの新プログラムは、SRAMへ一時的にも保存することができない。さらに当該ブロックの差分更新は、旧プログラムを参照して当該ブロックの新プログラムを復元するので、復元完了するまで当該ブロックの旧プログラムを消去することができない。以上の理由から、SRAMでは無くアプリ部220の最大サイズのブロックを一時ブロックに設定した。これにより、小さなSRAM容量でもフラッシュメモリの大きなブロックを差分更新可能となる。
次に差分更新後に実行する一時ブロックの更新手段について説明する。一時ブロックは、他のブロックの差分更新時に当該ブロックの新プログラムを一時保存するワークメモリとして使用した。このため、本来の旧プログラムは破壊されている。このため、一時ブロックの更新は、差分更新では無く、全文更新または圧縮更新で実現する。すなわち、他のブロックの差分更新した後に、一時ブロックの新プログラムを全文データとしてプログラム書込み装置から受信し、一時ブロックへ新プログラムを書込めば良い。同様に、一時ブロックの新プログラムのブロック圧縮データをプログラム書込み装置から受信し、復元手段を用いてブロック圧縮データを解凍し、一時ブロックへ新プログラムを書込めば良い。ただし復元手段は、ブロック差分データを用いた差分復元機能とブロック圧縮データを解凍する解凍機能を有する必要である。
以上、一時ブロックの更新が終了した後に、プログラム書込み装置から全文更新開始を意味する通信コマンドを受信する。前述したように、アプリ部220の復元回復ソフトは、車載制御装置を安全な状態にした後、260で指示されたブート部210の全文更新ソフト先頭240へ分岐する。
残りは、アプリ先頭ブロックの更新である。これは、第3フェーズで行う。
第3フェーズは、既存の車載制御装置へ前記全文更新ソフトを利用してブート部210の全文更新ソフト先頭240を含むブロック(アプリ先頭ブロック)へ当該ブロックの新プログラムをダウンロード手段である。この手段を実行することにより、アプリ先頭ブロックへ新プログラムを書込むことができた。
以上の第1〜第3フェーズで構成された既存車載制御装置の差分更新手段により、アプリ部220の全てのブロックを新プログラムへ書換えることができた。
RAM容量よりも大きなブロックで構成されたフラッシュメモリを内蔵したマイコンを使用した車載制御装置を差分更新できる。
さらに、もう1つ大きな効果がある。もし第2フェーズの差分更新途中で車載バッテリの容量が無くなり、電源断など思いもよらぬ事象が発生しても、差分更新途中であった当該ブロックからリトライ可能になる点である。第2フェーズの差分更新中は、当該ブロックは更新されず、一時ブロックへ復元した新プログラムを書き込んでいる。なので、当該ブロックの旧プログラムはそのまま残っている。従ってこの時点で電源断が発生しても、電源復帰後に再度旧プログラムを参照して新プログラムを一時ブロックへ復元することができる。また、もし一時プロックへ新プログラムを復元完了した後に、当該ブロックを消去し、一時ブロックから当該ブロックへコピーしている時に電源断が発生した場合でも、新プログラムは一時ブロックに残っているので電源回復後に再度一時ブロックの新プログラムを当該ブロックへ書き込むことができる。また、第2フェーズの差分更新後に行う一時ブロックの更新は、新プログラムの全文データまたは圧縮データを用いるので、旧プログラムが破壊されていても新プログラムへ更新可能である。さらに、第1フェーズと第3フェーズの更新は、全文データによる更新なので、当然リトライ可能である。
このように既存車載制御装置の差分更新手段は、電源断などの異常が発生した場合でも復電後にリトライすれば、更新中の当該ブロックから途中復元できるメリットがある。
また、一時ブロックは、複数の小さなブロックで構成しても良い。さらに、電源断の問題を解決可能で、RAMがある程度のサイズであれば、RAMに配置しても良い。
全文データによるソフトウェア更新手段を有し、少ない容量のRAMと大きなブロックで構成されたフラッシュメモリを備えた車載制御装置において、差分更新を可能とする既存車載制御装置の差分更新手段の実施例を図2〜図11を用いて詳細に述べる。
最初に、図2Aを用いて、システムの全体構成を説明する。図2Aは、本発明の実施形態によるシステムの全体構成を示す模式図である。
プログラム書き込み装置100、複数の車載制御装置200(200〜200)を備える。プログラム書き込み装置100及び車載制御装置200は、相互に車載ネットワークCANを介して通信する。
車載制御装置200は、マイコン201、車載制御装置200毎の用途に応じた各種のIC(Integrated Circuit)204、CANトランシーバなどの通信装置205を備える。マイコン201は、SRAM202(揮発性メモリ)、FLASHメモリ203(不揮発性メモリ)を内蔵する。
なお、プログラム書き込み装置100の構成も車載制御装置200の構成と基本的に同じであるが、車両の外部のネットワークのプロトコルに応じた通信装置をさらに備える。すなわち、プログラム書き込み装置100は、マイコン101、各種のIC104、CANトランシーバなどの通信装置105、車両の外部のネットワークのプロトコルに応じた通信装置106を備える。マイコン101は、SRAM102、FLASHメモリ103を内蔵する。
次に、図2Bを用いて、車載制御装置200のSRAM202の構成を説明する。図2Bは、図2Aに示すSRAM202の内部の構成を示す模式図である。
SRAM202は、プログラム書込み装置100からの受信データを一時的に記憶するための受信エリア202aを備える。本実施形態では、一例として、SRAM202のサイズは128kBであり、受信エリア202aのサイズは64kBである。
次に、図3を用いて、FLASHメモリ203の構成を説明する。図3は、図2Aに示すFLASHメモリ203の内部の構成を示す模式図である。
FLASHメモリ203は、複数のサイズのブロックから構成される。本実施形態では、一例として、FLASHメモリ203のサイズは2MBである。ブート部210には、マイコンなどの初期化ソフト、プログラム書込み装置100と全文更新用通信コマンドや全文データの通信を行う全文通信ソフト、フラッシュ書込みソフト、全文データによる全文更新ソフトが実装されている。アプリ部220は、ブロックB#1〜B#7で構成されており、第1フェーズで復元回復ソフトをダウンロードするアプリ先頭ブロック300は、128kBのブロックB#2である。また、第2フェーズで使用する一時ブロック310は、256kBのブロックB#7である。本発明手段で説明したように、一時ブロック310をアプリ部220内のブロックの中で最大サイズのブロックB#7を選択している。また、SRAM202が128kBであるのに対して、フラッシュメモリのアプリ部220のブロックの最大サイズは256kBとしており、ブロックサイズよりも小さなSRAM容量でも差分更新が可能であることを本実施例で説明する。FLASHメモリ203は、128kBと256kBの2種類のブロックから構成されている。ブロックとは、データを消去する最小単位である。例えば、128kBのブロックに4kBのデータを書き込む場合、128kBのデータを消去してから4kBのデータを書き込む必要がある。
図4は、本発明の既存車載制御装置の差分更新ソフト400のフローチャートである。第1フェーズ410は、ブート部210の全文更新ソフトを起動して、アプリ先頭ブロックB#2ヘ復元回復ソフトをダウンロードして書込んでいる。
第2フェーズ420は、ダウンロードした復元回復ソフトを起動して、アプリ部220のブロックB#n (n = 1, 3, 4, 5, 6)をブロック単位に差分更新して、当該ブロックへ新プログラムを書込んである。さらに、一時ブロックB#7の圧縮データを解凍する圧縮更新により新プログラムを復元し、一時ブロックB#7ヘ新プログラムを書込んでいる。
第3フェーズ430は、ブート部210の全文更新ソフトを起動して、アプリ先頭ブロックB#2ヘ当該ブロックの新プログラムを書込んでいる。
上記3つのフェーズでアプリ部220は、新プログラムへ更新できた。
以降、詳細に説明するが、第1フェーズと第3フェーズの処理は、既存の全文更新ソフトによるものなので、第2フェーズの復元回復ソフトの動作を中心に説明する。
図5は、復元回復ソフト500の構成を示している。
差分復元ソフト500は、プログラム書込み装置100とネットワークを介して通信を行う差分通信手段を実現する差分通信ソフト501と復元手段を実現する復元ソフト502と、ブロック差分データを用いて新プログラムを復元する差分復元手段を実現する差分復元ソフト503と、圧縮データから新プログラムを復元する解凍復元手段を実現する解凍復元ソフト504と、データをフラッシュメモリへ格納する書き込み手段を実現する書き込みソフト505で構成されている。
図6は、車載書き込み装置100から車載制御装置200へ送信される通信コマンドの種類を示している。
600は、プログラムの更新開始を示す通信コマンド$10である。
610は、更新対象ブロックB#n ( n=1,2,3,4,5,6,7)を指定する通信コマンド$20である。ここでKDは、送信データのデータ種別を示す情報、MAは更新対象ブロックの先頭アドレス、MSは更新対象ブロックのサイズを示している。データ種別KDは、送信データが差分データまたは圧縮データであることを示すことができる。
620は、更新対象ブロックの送信データを通信コマンドに付属させた通信コマンド$30である。ここでDATAは送信データであり、差分データまたは圧縮データである。
630は、更新対象ブロックへのデータ送信が完了したことを示す通信コマンド$40である。
640は、プログラム更新終了を示す通信コマンド$50である。
以上の通信コマンドを用いて、図7にプログラム書込み装置100が通信コマンドを送信するフローチャートを示す。
700は、通信コマンド“プログラム更新開始” $10を送信する。
710は、通信コマンド“更新対象ブロック指定”$20を送信する。データ種別KD,更新対象ブロックの先頭アドレスMA,サイズMSも一緒に送信する。
720は、通信コマンド“更新対象ブロック用の送信データ”$20を送信する。送信データは、ブロックの差分データまたは圧縮データである。
730は、通信コマンド“更新対象ブロックへのデータ送信完了”$40を送信する。
740では、アプリ先頭ブロック#B2を除き、全てのブロックのデータを送信完了したかチェックし、noならば710へ戻って、次の更新対象ブロックのデータ送信を繰返す。
一方、yesならば750で通信コマンド“プログラム更新終了”$50を送信して終了する。
このように、更新対象ブロックへのデータ送信は、710〜730を繰返すことで実現している。
図8は、車載制御装置200が通信コマンドを受信する差分通信ソフト501のフローチャートである。
800は、通信コマンドCMDを受信する動作である。
810は、通信コマンドCMDが$10であるか判定し、yesならば815を実行し、noならば820を実行する。815では、これからプログラム更新を開始するので、受信エリア202aを初期化する。
820は、通信コマンドCMDが$20であるか判定し、yesならば825を実行し、noならば830を実行する。825では、受信データのデータ種別KD,復元対象ブロックの先頭アドレスMA,サイズMSを記憶する。さらに一時ブロックB#7を消去する。
830は、通信コマンドCMDが$30であるか判定し、yesならば835を実行し、noならば840を実行する。835では、受信データDATAを受信エリア202aへ記憶する。
840は、通信コマンドCMDが$40であるか判定し、yesならば845を実行し、noならば850を実行する。845では、受信エリア202aに格納された差分データまたは圧縮データを用いて復元ソフト502を実行する。850は、通信コマンドCMDの処理を終了する。
図9は、復元ソフト502のフローチャートである。
900は、データ種別KDが“差分データ”か判定し、もしyesならば910を実行し、もしnoならばKDは“圧縮データ”なので930を実行する。930は、解凍復元ソフト504を実行し、終了する。910は、差分復元ソフト503を実行し、復元結果を一時ブロック310 B#7ヘ格納する。920は、書込みソフト505を実行し、先頭アドレスMA,サイズMSの更新対象ブロックへ一時ブロック310 B#7のデータをコピーして終了する。
図10と図11で差分復元ソフト503と、解凍復元ソフト504を説明する。
図10、差分復元ソフト503のフローチャートである。
最初に、一般的な差分生成・差分復元ソフトの概要について説明する。差分生成ソフトは、差分抽出処理部において、新プログラムの部分命令列と類似の部分命令列を旧プログラムから検索して見つけ出し、その部分命令列を短い符号に置き換えてコピーコマンドに付属させる。一方、類似の部分命令列が見つからない場合には、追加コマンドにその部分命令列を付属させる。このコピーコマンドと追加コマンドの列が差分データである。このように、差分データとは、単に新プログラムから旧プログラムを減算した結果では無く、類似部分名列を短い符号に置き換えたコピーコマンドや追加コマンドなどの列で構成されている。
以上の準備を踏まえて、差分復元ソフト503の動作を説明する。
1000は、受信エリア202aの差分データを読み出す。
1010は、差分コマンドの解析である。
1020は、差分コマンドがコピーコマンドか判定し、もしyesならば1025を実行し、もしnoならば1030を実行する。1025は、旧プログラムの部分命令列を一時ブロック310 B#7へ書込む。
1030は、差分コマンドが追加コマンドか判定し、もしyesならば1035を実行し、もしnoなばら1040を実行する。
1035は、追加コマンドに付属するデータを一時ブロック310 B#7へ追記して1040を実行する。
1040は、差分データを全て読み出したか判定し、もしyesならば差分復元処理503を終了し、もしnoならば1000へ分岐して、次の差分コマンドを差分データから読み出し、1010〜1040を繰返す。
以上で、当該更新対象ブロックの新プログラムを一時ブロック310 B#7へ差分復元できた。
図11は、解凍復元ソフト504のフローチャートである。
最初に、圧縮・解凍ソフトについて説明する。圧縮ソフトは、プログラム中の部分命令列と類似の部分命令列をプログラムから検索して見つけ出し、その部分命令列を短い符号に置き換えてコピーコマンドに付属させる。一方、類似の部分命令列が見つからない場合には、追加コマンドにその部分命令列を付属させる。このコピーコマンドと追加コマンドの列が圧縮データである。このように、圧縮データは、類似部分名列を短い符号に置き換えたコピーコマンドや追加コマンドなどの列で構成されている。
以上の準備を踏まえて、解凍復元ソフト504の動作を説明する。
1100は、まず一時ブロック310 B#7を消去する。
1110は、受信エリア202aから圧縮データを読み出す。
1120は、圧縮コマンドを解析する。
1130は、圧縮コマンドがコピーコマンドか判定し、もしyesならば1135を実行し、もしnoならば1140を実行する。
1135は、圧縮データ内の部分命令列を一時ブロック310 B#7ヘ書込む。
1140は、圧縮コマンドが追加コマンドか判定し、もしyesならば1145を実行し、もしnoならば1150を実行する。
1145は、追加コマンドに付属するデータを一時ブロック310 B#7ヘ追記し、1150を実行する。
1150は、圧縮データを全て読み出したか判定し、もしyesならば解凍復元処理504を終了し、もしnoならば1110へ分岐して、次の圧縮コマンドを圧縮データから読み出し、1110〜1050を繰返す。
以上で、一時ブロックへ当該ブロックB#7の新プログラムを解凍復元できた。
100…プログラム書込み装置
101…プログラム書込み装置のマイコン
102…プログラム書込み装置のSRAM(揮発性メモリ)
103…プログラム書込み装置のFLASH(不揮発性メモリ)
104…プログラム書込み装置の各種IC
105…プログラム書込み装置の車内通信装置
106…プログラム書込み装置の車外通信装置
200…車載制御装置
201…車載制御装置のマイコン
202…車載制御装置のSRAM(揮発性メモリ)
202a…受信エリア
203…車載制御装置のFLASH(不揮発性メモリ)
204…車載制御装置の各種IC
205…車載制御装置の車内通信装置
210…FLASHのブート部
220…FLASHのアプリ部
230…アプリ先頭
240…全文更新ソフト先頭
250…ブート部からアプリ部への分岐
260…アプリ部からブート部への分岐
300…アプリ先頭ブロック
310…一時ブロック
400…既存車載制御装置の差分更新ソフト
500…復元回復ソフト
501…差分通信ソフト
502…復元ソフト
503…差分復元ソフト
504…解凍復元ソフト
505…書込みソフト

Claims (12)

  1. 実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、
    前記全文更新手段を起動して、差分復元手段と解凍復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、
    前記復元プログラムを起動して、該復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムのブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな前記実行可能なプログラムを差分復元して、前記不揮発性メモリの第2の特定ブロックへ書込み、
    該第2の特定ブロックのデータを前記ブロックへコピーすることを繰返して、前記第1の特定ブロックと前記第2の特定ブロックとは別の前記ブロックへ新たな前記実行可能なプログラムを書込み、前記第2の特定ブロックの新たな前記実行可能なプログラムの圧縮データを解凍復元して、該解凍復元したプログラムを前記第2の特定ブロックへ書込み、
    前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新することを特徴とする車載制御装置。
  2. 前記第2の特定ブロックは、前記不揮発性メモリの最大サイズのブロックであることを特徴とする、請求項1記載の車載制御装置。
  3. 前記第2の特定ブロックは、前記不揮発性メモリの複数のブロックで構成したことを特徴とする請求項1の車載制御装置。
  4. 実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、
    前記全文更新手段を起動して、差分復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、
    前記復元プログラムを起動して、該復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムのブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな前記実行可能なプログラムを差分復元して、前記揮発性メモリへ書込み、
    前記揮発性メモリのデータを前記ブロックへコピーすることを繰返して、前記第1の特定ブロックとは別の前記ブロックへ新たな前記実行可能なプログラムを書込み、
    前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新することを特徴とする車載制御装置。
  5. 請求項1に記載の車制御装置において、
    前記第1の特定ブロック及び前記第2の特定ブロックは前記不揮発メモリの同一面に配置されることを特徴とする車制御装置。
  6. 実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、
    前記全文更新手段を起動して、差分復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、
    前記復元プログラムを起動して、前記復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムの前記ブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな前記実行可能なプログラムを差分復元して、前記不揮発性メモリの第2の特定ブロックへ書込み、
    前記第2の特定ブロックのデータを前記ブロックへコピーすることを繰返して、前記第1の特定ブロックと前記第2の特定ブロックとは別の前記ブロックへ新たな前記実行可能なプログラムを書込み、
    前記第2の特定ブロックの新たな前記実行可能なプログラムを前記第2の特定ブロックへ書込み、
    前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新することを特徴とする車載制御装置。
  7. 実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、
    前記全文更新手段を起動して、差分復元手段と解凍復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、
    前記復元プログラムを起動して、前記復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムの前記ブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな前記実行可能なプログラムを差分復元して、前記不揮発性メモリの第2の特定ブロックへ書込み、
    前記第2の特定ブロックのデータを前記ブロックへコピーすることを繰返して、前記第1の特定ブロックと前記第2の特定ブロックとは別の前記ブロックへ新たな前記実行可能なプログラムを書込み、
    前記第2の特定ブロックの新たな前記実行可能なプログラムの圧縮データを解凍復元して、解凍復元したプログラムを前記第2の特定ブロックへ書込み、
    前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新することを特徴とする車載制御装置のプログラム更新ソフトウェア。
  8. 前記第2の特定ブロックは、前記不揮発性メモリの最大サイズのブロックであることを特徴とする、請求項7の車載制御装置のプログラム更新ソフトウェア。
  9. 前記第2の特定ブロックは、前記不揮発性メモリの複数のブロックで構成したことを特徴とする、請求項7の車載制御装置のプログラム更新ソフトウェア。
  10. 実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、
    前記全文更新手段を起動して、差分復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、
    前記復元プログラムを起動して、前記復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムの前記ブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな前記実行可能なプログラムを差分復元して、前記揮発性メモリへ書込み、
    前記揮発性メモリのデータを前記ブロックへコピーすることを繰返して、第1の特定ブロックを除くブロックへ新たな実行可能なプログラムを書込み、
    前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新することを特徴とする車載制御装置のプログラム更新ソフトウェア。
  11. 請求項7に記載の車載制御装置のプログラム更新ソフトウェアであって、
    前記第1の特定ブロック及び前記第2の特定ブロックは前記不揮発メモリの同一面に配置されることを特徴とする車載制御装置のプログラム更新ソフトウェア。
  12. 実行可能なプログラムを配置した複数ブロックで構成された不揮発性メモリと揮発性メモリと全文更新手段とを備えた車載制御装置において、
    前記全文更新手段を起動して、差分復元手段を備えた復元プログラムを前記不揮発性メモリの第1の特定ブロックへ書込み、
    前記復元プログラムを起動して、前記復元プログラムは、前記実行可能なプログラムと新たな前記実行可能なプログラムの前記ブロック毎の差分データと、前記不揮発性メモリに配置された実行プログラムを用いて前記ブロックの新たな実行可能なプログラムを差分復元して、不揮発性メモリの第2の特定ブロックへ書込み、
    前記第2の特定ブロックのデータを前記ブロックへコピーすることを繰返して、前記第1の特定ブロックと前記第2の特定ブロックとは別の前記ブロックへ新たな前記実行可能なプログラムを書込み、
    前記第2の特定ブロックの新たな前記実行可能なプログラムを前記第2の特定ブロックへ書込み、
    前記全文更新手段を起動して、前記第1の特定ブロックの新たな前記実行可能なプログラムを前記第1の特定ブロックへ書込むことにより、前記実行可能なプログラムを新たな前記実行可能なプログラムへ更新することを特徴とする車載制御装置のプログラム更新ソフトウェア。
JP2017058396A 2017-03-24 2017-03-24 車載制御装置、及び、プログラム更新ソフトウェア Active JP6782654B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017058396A JP6782654B2 (ja) 2017-03-24 2017-03-24 車載制御装置、及び、プログラム更新ソフトウェア

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017058396A JP6782654B2 (ja) 2017-03-24 2017-03-24 車載制御装置、及び、プログラム更新ソフトウェア

Publications (2)

Publication Number Publication Date
JP2018160206A JP2018160206A (ja) 2018-10-11
JP6782654B2 true JP6782654B2 (ja) 2020-11-11

Family

ID=63795602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017058396A Active JP6782654B2 (ja) 2017-03-24 2017-03-24 車載制御装置、及び、プログラム更新ソフトウェア

Country Status (1)

Country Link
JP (1) JP6782654B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム

Also Published As

Publication number Publication date
JP2018160206A (ja) 2018-10-11

Similar Documents

Publication Publication Date Title
EP3358465B1 (en) In-vehicle control device, program update system, and program update software
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
US9164756B2 (en) Software updating process for an embedded device
JP2914360B2 (ja) 外部記憶装置及びデータ処理方法
JP3912355B2 (ja) データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
EP2329366B1 (en) Performing a pre-update on a non volatile memory
JP2005196747A (ja) 不揮発性ストレージにカスタム・ソフトウェア・イメージ・アップデートを適用するフェイルセーフな方法
JP6719020B2 (ja) 車載制御装置、及び、プログラム更新ソフトウェア
CN112424747A (zh) 具有反向数据的增量文件
JP2018160207A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP2023168511A (ja) 制御装置、方法、プログラム、および車両
JP6782654B2 (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP6575157B2 (ja) ファームウェアのダウンロード方法及びファームウェア組込機器
JP3805195B2 (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2018160208A (ja) 車載制御装置、及び、プログラム更新ソフトウェア
JP2004192329A (ja) プログラム書換え方法および端末装置
US10817213B2 (en) Data storage device and operating method for data storage device
JP6838714B2 (ja) 車載制御装置
JP2006133889A (ja) プログラムを更新するための方法、プログラムおよび装置
WO2020241473A1 (ja) 演算処理装置、車両制御装置及び更新方法
JP2007133602A (ja) 情報処理システムおよび車載装置
JP2023075443A (ja) 車載電子制御装置及びデータの初期化方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200923

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201020

R150 Certificate of patent or registration of utility model

Ref document number: 6782654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350