JP2010286897A - 電子制御ユニット、プログラム書き換え方法 - Google Patents
電子制御ユニット、プログラム書き換え方法 Download PDFInfo
- Publication number
- JP2010286897A JP2010286897A JP2009138325A JP2009138325A JP2010286897A JP 2010286897 A JP2010286897 A JP 2010286897A JP 2009138325 A JP2009138325 A JP 2009138325A JP 2009138325 A JP2009138325 A JP 2009138325A JP 2010286897 A JP2010286897 A JP 2010286897A
- Authority
- JP
- Japan
- Prior art keywords
- program
- memory
- rewriting
- cache memory
- control unit
- 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
Landscapes
- Microcomputers (AREA)
- Stored Programmes (AREA)
Abstract
【課題】バッファメモリを搭載することなくプログラムの更新が可能な電子制御ユニット及びプログラム書き換え方法を提供すること。
【解決手段】第1のプログラム11aを記憶した不揮発メモリ400と、CPUが不揮発メモリよりも優先的に第1のプログラムの読み出し対象とするキャッシュメモリ17と、第1のプログラムの代わりに不揮発メモリ400に記憶される第2のプログラム11bを外部から受信する受信手段14と、を有する電子制御ユニット100において、第1のプログラム11aを第2のプログラム11bに書き換える際、キャッシュメモリ17の一部又は全てを、第2のプログラム11bを不揮発メモリ400に書き込む前に第2のプログラム11bを一時的に記憶するバッファメモリに切り替える切り替え手段31、34、45、を有することを特徴とする。
【選択図】図2
【解決手段】第1のプログラム11aを記憶した不揮発メモリ400と、CPUが不揮発メモリよりも優先的に第1のプログラムの読み出し対象とするキャッシュメモリ17と、第1のプログラムの代わりに不揮発メモリ400に記憶される第2のプログラム11bを外部から受信する受信手段14と、を有する電子制御ユニット100において、第1のプログラム11aを第2のプログラム11bに書き換える際、キャッシュメモリ17の一部又は全てを、第2のプログラム11bを不揮発メモリ400に書き込む前に第2のプログラム11bを一時的に記憶するバッファメモリに切り替える切り替え手段31、34、45、を有することを特徴とする。
【選択図】図2
Description
本発明は、プログラムを実行して車載装置を制御する電子制御ユニット等に関し、特に、プログラムの書き換えが可能な電子制御ユニット及びプログラム書き換え方法に関する。
車両に搭載されているECU(Electronic Control Unit)の例えばEEPROMやフラッシュメモリ(以下、単にフラッシュメモリという)にはプログラムが記憶されているが、バージョンアップなどの理由でこのプログラムを書き換える必要が生じる場合がある。
図1は、バッファメモリ500を備えたECUの構成図の一例を示す。例えばディーラーやサービス工場に車両を持ち込むと、サービスマンが書き換えツール200を車両側のコネクタ13に接続して、書き換えツールから新しいプログラム11bをECU100に送信することができる。
書き換え時にまず、ECU100は、書き換えツール200からの書き換え指示信号を受信して、書き換えプログラム12を起動する。書き換えツール200は通信速度などの制約の下、順次、新しいプログラム11bをコネクタ13経由でECU100に送信する。書き換えツール200から送信されたプログラム11bはECU100のCOM14で受信される。CPU15はプログラム11bを受け取り、作業領域としてのRAM16に記憶し、バッファメモリ500に空きが生じるとRAM16のプログラム11bをバッファメモリ500に転送する。このようにECU100は、確実なプログラム11bの書き込み等の要請から、受信したプログラム11bをバッファメモリ500に一度、記憶する。そして、バッファメモリ500に配置されたフラッシュメモリコントローラ(FMC)がバッファメモリ500のプログラム11bを、書き込み単位毎にフラッシュメモリ400に記憶させる。
このような、書き込みプロセスにおいて、書き換えプログラム12がプログラム11bの送信速度の変更を書き換えツール200に要求することで、プログラム11bを効率よく送信する技術が考えられている(例えば、特許文献1参照。)。
しかしながら、特許文献1記載の書き込み技術のようにECU100にバッファメモリ500を搭載しておくと、コスト増や省スペース化が困難であるという問題がある。バッファメモリ500は、フラッシュメモリ400を書き換える際にしか利用されず、また、車両のライフタイム(例えば10〜15年)において、プログラム11aを書き換える機会は数回程度である。したがって、バッファメモリ500をECU100に搭載しておくことは、費用対効果が極めて悪く、また、ECU100のサイズの低減を阻害することにもなっていた。
本発明は、上記課題に鑑み、バッファメモリを搭載することなくプログラムの更新が可能な電子制御ユニット及びプログラム書き換え方法を提供することを目的とする。
上記課題に鑑み、本発明は、第1のプログラムを記憶した不揮発メモリと、CPUが不揮発メモリよりも優先的に第1のプログラムの読み出し対象とするキャッシュメモリと、優先的に前記キャッシュメモリから第1のプログラムを読み出し、キャッシュメモリに第1のプログラムが記憶されていない場合に前記不揮発メモリから第1のプログラムを読み出すCPUと、第1のプログラムの代わりに前記不揮発メモリに記憶される第2のプログラムを外部から受信する受信手段と、を有する電子制御ユニットにおいて、第1のプログラムを第2のプログラムに書き換える際、前記キャッシュメモリの一部又は全てを、前記不揮発メモリに書き込む前に第2のプログラムを一時的に記憶するバッファメモリに切り替える切り替え手段(例えば、制御線31、ライト線34、書き換えスイッチ45)、を有することを特徴とする。
バッファメモリを搭載することなくプログラムの更新が可能な電子制御ユニット及びプログラム書き換え方法を提供することができる。
以下、本発明を実施するための形態について説明する。
本実施形態のECU(Electronic Control Unit)100は、アプリケーションプログラム(以下、プログラム11aという)11aの実行速度の高速化のために使用されるキャッシュメモリ17を一時的にバッファメモリとして使用し、書き換えツール200から送信されるプログラム11bをキャッシュメモリ17に記憶する。そして、キャッシュメモリ17からフラッシュメモリ400に、プログラム11bを書き込むことを特徴とする。こうすることで、書き換え専用のバッファメモリが不要になるので、バッファメモリやその付け捨てコストの削減、及び、ECU100の省スペース化を可能にすることができる。
本実施形態のECU(Electronic Control Unit)100は、アプリケーションプログラム(以下、プログラム11aという)11aの実行速度の高速化のために使用されるキャッシュメモリ17を一時的にバッファメモリとして使用し、書き換えツール200から送信されるプログラム11bをキャッシュメモリ17に記憶する。そして、キャッシュメモリ17からフラッシュメモリ400に、プログラム11bを書き込むことを特徴とする。こうすることで、書き換え専用のバッファメモリが不要になるので、バッファメモリやその付け捨てコストの削減、及び、ECU100の省スペース化を可能にすることができる。
〔ハードウェア構成〕
図2は、ECU100のハードウェア構成図の一例を示す。ECU100は車両に搭載されている。車両の例えば運転席の周囲には書き換えツールを接続するコネクタ13が設けられており、このコネクタ13に書き換えツール200を接続することで、車載ネットワーク(CAN等)を介して、書き換えツール200とECU100が通信可能となる。なお、書き換えツール200を物理的にECU100に接続するのでなく、例えば、携帯電話網や無線LANなど、無線通信で接続し、所定のサーバからプログラム11aを書き換えてもよい。
図2は、ECU100のハードウェア構成図の一例を示す。ECU100は車両に搭載されている。車両の例えば運転席の周囲には書き換えツールを接続するコネクタ13が設けられており、このコネクタ13に書き換えツール200を接続することで、車載ネットワーク(CAN等)を介して、書き換えツール200とECU100が通信可能となる。なお、書き換えツール200を物理的にECU100に接続するのでなく、例えば、携帯電話網や無線LANなど、無線通信で接続し、所定のサーバからプログラム11aを書き換えてもよい。
ECU100に設けられたインターフェイス21はドライバ10のCAN側の端子22と、ドライバ10のマイコン側の端子23はマイコン60の入出力端子24と、それぞれ接続されている。また、マイコン60の出力端子25とIC50の入力端子27が、マイコン60の入力端子26とIC50の出力端子28が、それぞれ接続されている。
ドライバ10は、CAN通信のネットワークレイヤにおける物理層の通信制御を提供する。ドライバ10は物理的な電気信号の変換を担い、例えば書き換えツール200の信号の電圧と、マイコン60側の電圧を違いを吸収するため、相互に電圧変換する。
マイコン60は、バス18に接続されたCOM14、CPU15、Port19、及び、キャッシュメモリ17、フラッシュメモリ400、RAM16を有する。CPU15とRAM16は、リード線とライト線を含む接続線35で、CPU15とキャッシュメモリ17は、リード線とライト線を含む接続線36でそれぞれ接続されている。CPU15はRAM16又はキャッシュメモリ17に対しデータの読み出し/書き込みが可能になっている。また、キャッシュメモリ17は、リード線33を介してフラッシュメモリ400と接続され、また、さらにキャッシュメモリ17は、ライト線34を介してフラッシュメモリ400と接続されている。キャッシュメモリ17とフラッシュメモリ400を接続するこのライト線34を有することが本実施形態のECU100の特徴の一つとなる。
COM14はマイコン60の入出力端子24と接続され、Port19は出力端子25と接続されている。また、マイコン60の入端子26は、キャッシュメモリ17及びフラッシュメモリ400と制御線31、32を介して接続されている。入力端子26とキャッシュメモリ17を接続する制御線31を有することが本実施形態のECU100の特徴の一つとなる。
COM14は、CANプロトコルに従って書き換えツール200から書き込み対象のプログラム11bを受信する。COM14は二本の信号線の差動電圧をデジタル信号に変換し、定められたフォーマットのフレームデータを受信する。フレームデータには、IDフィールド、DLCフィールド、DATAフィールド等の各フィールドが定められており、COM14はIDフィールドを参照して、書き換えツール200から自分宛に送信されたフレームデータであることを検出する。DLCフィールドにはデータ長が格納され、DATAフィールドにプログラム11bが格納される。DLCフィールドのデータ長には制約があるので、通常、プログラム11bは複数のフレームデータに分けて送信される。
CPU15は、フラッシュメモリ400に記憶されたプログラム11aを実行して、センサの検出した信号の処理、車両制御用の演算、アクチュエータの制御、等を実行する。また、プログラム11aを書き換える際は、CPU15がフラッシュメモリ400に記憶された書き換えプログラム12を実行して、一連の書き換え処理を統合的に制御する。RAM16は、CPU15がプログラム11aを実行する際の作業メモリであり、プログラム11aの実行に必要なデータやプログラム11aを一時的に記憶する。
キャッシュメモリ17は、フラッシュメモリ400に記憶されたプログラム11aの一部のコピーを記憶する高速小容量の記憶素子(例えば、SRAM(Static RAM))である。CPU15は、例えばMMU(Memory Management Unit)を介してキャッシュメモリ17にアクセスし、キャッシュメモリ17に所望のプログラムがない場合、フラッシュメモリ400からプログラム11aを読み出すと共にキャッシュメモリ17に読み直す。すなわち、キャッシュメモリ17は、CPU15の動作速度に対しフラッシュメモリ400からの読み出し速度が桁違いに遅いために生じるボトルネックを解消するものである。
図2では、キャッシュメモリ17にWay1〜4が図示されているが、これらはページフォールトの際の書き換えブロックである。Way1〜4には、それぞれフラッシュメモリ400の所定範囲のアドレスのプログラム11aが記憶される。
本実施形態のECU100が単なるRAM16ではなく、キャッシュメモリ17をバッファメモリとして利用するのは、キャッシュメモリ17には、通常、キャッシュ・ロックという機能が備わっているためである。キャッシュ・ロックとは、プログラムAがロックした領域(例えば、書き換えブロック)には、他のプログラムBがアクセスすることを禁止することをいう。この機能によりキャッシュメモリ17の書き換えブロックの内容に対し、セキュリティを確保できる。この点、RAM16のように任意のタイミングで他のプログラム(例えば、ウィルスやスパイウェア)がプログラム11bを改ざんしうる記憶媒体であるのに対し、キャッシュメモリ17をバッファメモリに使用することでプログラム11bの改ざんを確実に防止できる。
なお、図2では説明のためにCPU15の外部にキャッシュメモリ17を図示したが、キャッシュメモリ17という場合、一般にはCPU15に内蔵されたメモリ(1次キャッシュ〜例えば3次キャッシュと呼ばれることがある)を指すことが多い。当然ながら、図示するように、CPU15の外部のキャッシュメモリ17をバッファメモリとして利用してもよい。以上から、本実施形態のキャッシュメモリ17を定義すれば、プログラム11aの実行の際に、プログラム11aが一部コピーされるメモリであり、キャッシュ・ロックが可能であるメモリをいう。したがって、CPU15の内外のいずれにキャッシュメモリ17が配置されているは問わない。
フラッシュメモリ400は、例えばNAND型又はNOR型のいずれでもよく、フラッシュメモリを用いないEEPROM等、書き換え可能な不揮発メモリであればよい。また、書き換え可能な不揮発メモリであればよいので、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)等でもよい。フラッシュメモリ400をハードディスクドライブとしてもよいが、この場合、RAM16から直接プログラム11bを書き込むとしてもよい。
従来と同様に、フラッシュメモリ400に接続された制御線32の信号が「H(=High)」になると、フラッシュメモリ400にプログラム11bを書き込むことが可能になる。
キャッシュメモリ17又はフラッシュメモリ400、又は、両者を接続するライト線34の一部に、フラッシュメモリコントローラ37が配置される。フラッシュメモリコントローラ37は、CPU15からの指示によりフラッシュメモリ400へのプログラム11bの書き込み制御を行う。例えば、フラッシュメモリコントローラ37は、書き換え用のプログラム11bを不図示のバッファに蓄積し、蓄積したプログラム11bを読み出してATA変換した後、フラッシュメモリ400へ転送する。
フラッシュメモリコントローラ37は、CPU(書き換えプログラム12)15が指示すると、キャッシュメモリ17に記憶されたプログラム11bを、フラッシュメモリ400の書き込み単位毎にフラッシュメモリ400に書き込む。書き換えプログラム12がフラッシュメモリ400の転送先のアドレスを指定してもよいし、フラッシュメモリコントローラ37が、単にフラッシュメモリ400のアドレス順にプログラム11bを書き込んでもよい。
ここで、フラッシュメモリコントローラ37が、フラッシュメモリ400にプログラム11bを書き込むには、キャッシュメモリ17に接続された制御線31の信号が「H」であることが条件になる。制御線31の信号が「H」であることで、書き換えスイッチ45が「オン」になる。書き換えスイッチ45は、プログラム11aの書き換えのため、キャッシュメモリ17の回路構成を次のように変更する。
・リード線33からキャッシュメモリ17のWay4への書き込みを禁止する
・スイッチ回路をオンにして、ライト線34をフラッシュメモリ400まで接続する
すなわち、書き換えスイッチ45は、「オフ」の場合にキャッシュメモリ17をプログラム11aの実行用に利用することを許可し、「オン」の場合にキャッシュメモリ17をバッファメモリとして利用することを許可する。図2では、書き換えスイッチ45が「オン」の場合、キャッシュメモリ17のうちWay4のみに対し、フラッシュメモリ400からの書き込みを禁止している。こうすることで、後述するようにWay1〜3には書き換えプログラム12をキャッシュできる。書き換えスイッチ45がオンになると、例えば、MMUはキャッシュメモリ17のWay4に対し、書き換えプログラム12のキャッシュができなくなる。
・リード線33からキャッシュメモリ17のWay4への書き込みを禁止する
・スイッチ回路をオンにして、ライト線34をフラッシュメモリ400まで接続する
すなわち、書き換えスイッチ45は、「オフ」の場合にキャッシュメモリ17をプログラム11aの実行用に利用することを許可し、「オン」の場合にキャッシュメモリ17をバッファメモリとして利用することを許可する。図2では、書き換えスイッチ45が「オン」の場合、キャッシュメモリ17のうちWay4のみに対し、フラッシュメモリ400からの書き込みを禁止している。こうすることで、後述するようにWay1〜3には書き換えプログラム12をキャッシュできる。書き換えスイッチ45がオンになると、例えば、MMUはキャッシュメモリ17のWay4に対し、書き換えプログラム12のキャッシュができなくなる。
Port19は、マイコン60が書き換え可能な状態の場合に「H」信号を出力端子25からIC50に送信する。CPU(プログラム11a)15は、マイコン60がプログラム11aの書き換えが可能な状態か否かを判定し、書き換え可能な場合にPort19に「H」信号の出力を要求する。なお、プログラム11aは、エンジンが始動していない状態で書き換えられるため、書き換え可能な状態とは、マイコン60に所定の電圧が供給されていること(バッテリ電圧が所定値以上であること)、スタートキーが操作されていないこと(イグニッションがオンでないこと)等であり、書き換え条件はプログラム11aに予め定められている。
続いてIC50について説明する。IC50は、図示する判定回路29、時計(RTC)やリセット回路など複数の機能を1チップに集積したものである。このうち、判定回路29は、マイコン60がプログラム11aの書き換えが可能な状態か否かを判定する回路である。CPU15も、マイコン60が書き換え可能な状態か否かを判定すると説明したが、判定回路29も独自にマイコン60が書き換え可能な状態か否かを判定する。書き換え可能な状態については、マイコン60が判定する場合と同じである。
判定回路29は、マイコン60から「H」信号が入力されると、マイコン60がプログラム11aの書き換えが可能な状態か否かを判定し、プログラム11aの書き換え可能な状態であると「H」信号を出力端子28から出力する。判定回路29は、例えばバッテリ電圧と閾値との比較結果と、+B端子とを入力とする論理回路である。この「H」信号は、キャッシュメモリ17とフラッシュメモリ400に供給される。
〔機能ブロックについて〕
図3は、書き換え時におけるECU100の機能ブロック図の一例を示す。例えば、ACC(アクセサリー)がオンになり、ECU100に電力が供給されると、CPU15が既にフラッシュメモリ400に記憶されているプログラム11aを読み出す。プログラム11aは、上述したようにセンサの検出した信号に基づく、各種のアクチュエータの制御や、情報処理などを実行する標準処理部41の他に、判定部42と書き換え部起動部43を有する。
図3は、書き換え時におけるECU100の機能ブロック図の一例を示す。例えば、ACC(アクセサリー)がオンになり、ECU100に電力が供給されると、CPU15が既にフラッシュメモリ400に記憶されているプログラム11aを読み出す。プログラム11aは、上述したようにセンサの検出した信号に基づく、各種のアクチュエータの制御や、情報処理などを実行する標準処理部41の他に、判定部42と書き換え部起動部43を有する。
標準処理部41は「書き換え指示信号」を書き換えツール200から受信すると、例えばサブルーチンとして実装された判定部42を呼び出す。判定部42は、マイコン60の状況がプログラム11aの書き換え条件を満たすか否か判定し、満たす場合にはPort19に「H」信号の出力を要求する。これにより、IC50から「H」信号が入力され、書き換えスイッチ45がオンとなる。
また、判定部42は、プログラム11aの書き換え条件を満たすと判定した場合、書き換え部起動部43を呼び出す。書き換え部起動部43は、プログラム11aを終了させ、フラッシュメモリ400から書き換えプログラム12をキャッシュメモリ17のWay1〜3に読み出す。そして、CPU15のPC(プログラムカウンタ)にキャッシュメモリ17における書き換えプログラム12のアドレスをセットする。こうすることで、CPU15が書き換えプログラム12を実行でき、書き換え部44が実現される。なお、書き換えプログラム12をWay1〜3で実行するのは、フラッシュメモリ400に記憶したまま実行すると、プログラム11aと共に書き換えられてしまうからである。
また、通常、アプリケーションプログラムは、キャッシュメモリ17の物理アドレスを指定して実行しないので、書き換え部44にとってキャッシュメモリ17のWay4の物理アドレスは既知でないことが多い。本実施形態の書き換え部44は、予めキャッシュメモリ17のWay4の物理アドレスを記憶しているか、又は、MMUに問い合わせることで、Way4へのアクセスを可能とする。
また、書き換え部44は、Way4のロックフラグ46をオンにすることでWay4をキャッシュ・ロックする。こうすることで、Way4に、他のいかなるプログラムもアクセスすることができなくなり、プログラム11bの改ざんを防止できる。
書き換え部44は、CAN経由で受信したフレームデータのIDフィールドを参照して、それが書き換え用のプログラム11bであること検出し、DATAフィールドからデータ長分のプログラム11bを抽出する。
書き換え部44は、書き変えツール200から送信されるプログラム11bを作業メモリであるRAM16に格納していき、随時、キャッシュメモリ17のWay4に移動する。書き換え部44は、1つのフレームデータを受信する毎に同じデータをエコーするなどして、書き換えツール200に受信したことを通知する。
そして、書き換え部44は、Way4に空き容量がなくなると、フラッシュメモリコントローラ37に、プログラム11bをフラッシュメモリ400に移動するよう要求する。フラッシュメモリコントローラ37は、プログラム11bをアドレス順にフラッシュメモリ400に格納していく。プログラム11bの書き換えは、プログラム11aの変更が一部でも、通常、フラッシュメモリ400の全てに対して行われるので、書き換え部44は、書き換えツール200から終了通知を受け取るまでこの動作を繰り返せばよい。プログラム11bが、フラッシュメモリ400の容量未満のサイズの場合は、例えば、プログラム11bにはNULLデータが格納されている。なお、フラッシュメモリ400の全体を書き換えるため、書き換えツール200はプログラム11bに続いて書き換えプログラム12もECU100に転送する。
〔書き換え手順〕
図4は、プログラム11aの書き換え手順を示すシーケンス図の一例である。まず、サービスマン等がACCがオンにすると、CPU15がプログラム11aを読み出す(S10、S20)。標準処理部41が起動する。
図4は、プログラム11aの書き換え手順を示すシーケンス図の一例である。まず、サービスマン等がACCがオンにすると、CPU15がプログラム11aを読み出す(S10、S20)。標準処理部41が起動する。
ついで、書き換えツール200が、書き換え指示信号をCAN経由でECU100に送信する(S30)。書き換え指示信号を受信した標準処理部41は、判定部42を呼び出し、判定部42は、マイコン60の状況がプログラム11aを書き換えてよい状況か否かを判定する。判定の結果、書き換えてよい状況であれば、判定部42は「H」信号をIC50に出力する(S40)。
「H」信号を受信したIC50の判定回路29も、同様にマイコン60の状況がプログラム11aを書き換えてよい状況か否かを判定する。判定の結果、書き換えでよい状況であれば、判定回路29は「H」信号をマイコン60に出力する(S50)。これにより、キャッシュメモリ17とフラッシュメモリ400に「H」信号が入力される。したがって、書き換えスイッチ45がオンになる(S60)、
「H」信号を送信した判定部42は、続いて、書き換え部起動部43を呼び出す。書き換え部起動部43は書き換え部44を起動させる(S70)。書き換えプログラム12がキャッシュメモリ17のWay1〜3に記憶され、CPU15が実行することで書き換え部44が起動する。
「H」信号を送信した判定部42は、続いて、書き換え部起動部43を呼び出す。書き換え部起動部43は書き換え部44を起動させる(S70)。書き換えプログラム12がキャッシュメモリ17のWay1〜3に記憶され、CPU15が実行することで書き換え部44が起動する。
書き換え部44は、Way4をキャッシュ・ロックする(S80)。また、書き換えスイッチ45のオンにより、キャッシュメモリ17のWay4をバッファメモリとして使用することができるようになっている。また、キャッシュ・ロックすることで、プログラム11bの改ざんを防止できる。
ついで、例えば、書き換え部44がプログラム11bの送信を書き換えツール200に要求することで、書き換えツール200がプログラム11bの送信を開始する(S90)。書き換え部44は、プログラム11bを受信し(S100)、キャッシュメモリ17のWay4に記憶していく。そして、キャッシュメモリ17のWay4に空き容量がなくなると、フラッシュメモリコントローラ37にプログラム11bの書き込みを要求する。これを繰り返すことで、プログラム11bがフラッシュメモリ400に記憶される(S110)。
書き換え部44は、書き換えツール200から終了通知を受け取るまでこの動作を繰り返し、終了通知を受け取ると、終了処理を実行する(S120)。すなわち、Port19に「L」信号を出力するよう要求する。これにより、判定回路29からキャッシュメモリ17及びフラッシュメモリ400に出力される信号も「L」となり、書き換えスイッチ45もオフになる。また、書き換え部44は、終了通知を受け、Way4のキャッシュ・ロックを解除する。
以上で、フラッシュメモリ400に新しいプログラム11bが記憶されたことになる。例えば、書き換えツール200からマイコン60にリセット信号を入力したり、ACCをオフ→オンとすることで、CPU15はフラッシュメモリ400から新しいプログラム11bを読み出し、実行することができる。
本実施形態のECU100は、プログラム11aの高速化のために使用されるキャッシュメモリ17を一時的にバッファメモリとして使用し、キャッシュメモリ17からフラッシュメモリ400に新しいプログラム11bを転送することで、プログラム11aの書き換え時にバッファメモリを不要にすることができる。キャッシュメモリ17は、CPU15に内蔵されていることが多いのでコスト増とならず、また、RAM16と異なり排他制御できるのでプログラム11bの改ざんを確実に防止することができる。
11a、11b プログラム
12 書き換えプログラム
15 CPU
16 RAM
17 キャッシュメモリ
45 書き換えスイッチ
60 マイコン
100 ECU
200 書き換えツール
400 フラッシュメモリ
12 書き換えプログラム
15 CPU
16 RAM
17 キャッシュメモリ
45 書き換えスイッチ
60 マイコン
100 ECU
200 書き換えツール
400 フラッシュメモリ
Claims (9)
- 第1のプログラムを記憶した不揮発メモリと、
CPUが前記不揮発メモリよりも優先的に第1のプログラムの読み出し対象とするキャッシュメモリと、
第1のプログラムの代わりに前記不揮発メモリに記憶される第2のプログラムを外部から受信する受信手段と、を有する電子制御ユニットにおいて、
第1のプログラムを第2のプログラムに書き換える際、前記キャッシュメモリの一部又は全てを、第2のプログラムを前記不揮発メモリに書き込む前に第2のプログラムを一時的に記憶するバッファメモリに切り替える切り替え手段、
を有することを特徴とする電子制御ユニット。 - 前記切り替え手段は、
第1のプログラムを第2のプログラムに書き換える際、バッファメモリに切り替えられた前記キャッシュメモリの一部又は全てに対しプログラムをキャッシュすることを禁止する、
ことを特徴とする請求項1記載の電子制御ユニット。 - 前記キャッシュメモリから前記不揮発メモリへ、断接可能なデータ書き込み線を有し、
前記切り替え手段は、
第1のプログラムを第2のプログラムに書き換える際、前記データ書き込み線を前記キャッシュメモリから前記不揮発メモリへ接続する、
ことを特徴とする請求項1又は2記載の電子制御ユニット。 - 当該電子制御ユニットを搭載した車両の状況が第1のプログラムの書き換えが可能な状況か否かを判定する判定手段から、書き換えの許可信号が入力された場合、
前記切り替え手段は、前記キャッシュメモリの一部又は全てをバッファメモリに切り替える、
ことを特徴とする請求項1〜3いずれか1項記載の電子制御ユニット。 - 前記キャッシュメモリの一部がバッファメモリに切り替えられた際、
前記キャッシュメモリの残りの領域には、第1のプログラムを第2のプログラムに書き換える書き換えプログラムが記憶される、
ことを特徴とする請求項1〜4いずれか1項記載の電子制御ユニット。 - バッファメモリに切り替えられた前記キャッシュメモリの一部又は全てを、前記書き換えプログラムが占有する排他制御手段を有する、
ことを特徴とする請求項5項記載の電子制御ユニット。 - 前記書き換えプログラムは、
前記受信手段が受信した第2のプログラムを、バッファメモリに切り替えられたキャッシュメモリの物理アドレスを指定して、キャッシュメモリに書き込む、
ことを特徴とする請求項5項記載の電子制御ユニット。 - 前記書き換えプログラムは、
バッファメモリに書き込まれた第2のプログラムを前記不揮発メモリに書き込むよう、フラッシュメモリコントローラに要求する、
ことを特徴とする請求項7項記載の電子制御ユニット。 - 第1のプログラムを記憶した不揮発メモリと、
CPUが前記不揮発メモリよりも優先的に第1のプログラムの読み出す対象とするキャッシュメモリと、
第1のプログラムの代わりに前記不揮発メモリに記憶される第2のプログラムを外部から受信する受信手段と、を有する電子制御ユニットのプログラム書き換え方法において、
第1のプログラムの書き換え要求を受信するステップと、
切り替え手段が、前記キャッシュメモリの一部又は全てを、第2のプログラムを前記不揮発メモリに書き込む前に第2のプログラムを一時的に記憶するバッファメモリに切り替えるステップと、
を有することを特徴とするプログラム書き換え方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009138325A JP2010286897A (ja) | 2009-06-09 | 2009-06-09 | 電子制御ユニット、プログラム書き換え方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009138325A JP2010286897A (ja) | 2009-06-09 | 2009-06-09 | 電子制御ユニット、プログラム書き換え方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010286897A true JP2010286897A (ja) | 2010-12-24 |
Family
ID=43542576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009138325A Pending JP2010286897A (ja) | 2009-06-09 | 2009-06-09 | 電子制御ユニット、プログラム書き換え方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010286897A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014061887A (ja) * | 2013-12-26 | 2014-04-10 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置及びデータ通信方法 |
JP2016170813A (ja) * | 2016-06-16 | 2016-09-23 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
CN107102902A (zh) * | 2016-02-23 | 2017-08-29 | 波音公司 | 用于软件通信的***和方法 |
US10606229B2 (en) | 2011-09-21 | 2020-03-31 | Hitachi Automotive Systems, Ltd. | Electronic control unit for vehicle and method of executing program |
-
2009
- 2009-06-09 JP JP2009138325A patent/JP2010286897A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10606229B2 (en) | 2011-09-21 | 2020-03-31 | Hitachi Automotive Systems, Ltd. | Electronic control unit for vehicle and method of executing program |
US11556104B2 (en) | 2011-09-21 | 2023-01-17 | Hitachi Astemo, Ltd. | Electronic control unit for vehicle and method of executing program |
JP2014061887A (ja) * | 2013-12-26 | 2014-04-10 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置及びデータ通信方法 |
CN107102902A (zh) * | 2016-02-23 | 2017-08-29 | 波音公司 | 用于软件通信的***和方法 |
JP2017151956A (ja) * | 2016-02-23 | 2017-08-31 | ザ・ボーイング・カンパニーThe Boeing Company | ソフトウェアの通信のためのシステムおよび方法 |
CN107102902B (zh) * | 2016-02-23 | 2022-07-12 | 波音公司 | 用于软件通信的方法和交通工具 |
JP2016170813A (ja) * | 2016-06-16 | 2016-09-23 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100122017A1 (en) | Memory controller, non-volatile memory system, and host device | |
JP6798413B2 (ja) | 車載中継装置、制御プログラム及びメモリ共有方法 | |
EP3084593B1 (en) | Updatable integrated-circuit radio | |
US7149844B2 (en) | Non-volatile memory device | |
US20140025871A1 (en) | Processor system and control method thereof | |
JP2010286897A (ja) | 電子制御ユニット、プログラム書き換え方法 | |
JP4840553B2 (ja) | 無線通信機と、そのブートプログラム書き換え方法及びプログラム | |
JP2006100991A (ja) | 不揮発性論理回路及びそれを有するシステムlsi | |
JP2001356885A (ja) | 制御方法及び電子装置 | |
JP2009176147A (ja) | 電子機器および電子機器のメモリアクセス許可判別方法 | |
US9323516B2 (en) | Electronic device system and electronic device | |
JP4005950B2 (ja) | マイクロコントローラ | |
JPH0764868A (ja) | 記憶更新装置 | |
JP2019160204A (ja) | 制御装置、画像形成装置および回路装置 | |
US11726711B2 (en) | Destructive read type memory circuit and information processing circuit and apparatus utilizing destructive read type memory circuit | |
TW200837629A (en) | Network interface controller | |
TW201324155A (zh) | 快閃記憶體儲存系統及其資料保護方法 | |
JP4978181B2 (ja) | メモリ装置 | |
JP2004287712A (ja) | 電子装置 | |
US7596717B2 (en) | Microcomputer and debugging method | |
JP2020004448A (ja) | 自動車用電子制御装置 | |
CN117120973A (zh) | 车辆用电子控制装置、改写程序以及数据结构 | |
JP2000250759A (ja) | フラッシュメモリのブートブロック書き込み方法 | |
JP2006018610A (ja) | デジタルデータ処理カード、及びデジタルデータ処理システムの制御方法 | |
JP2007122754A (ja) | 半導体記憶システム |