JP6394291B2 - 電子制御装置およびメモリ書換方法 - Google Patents

電子制御装置およびメモリ書換方法 Download PDF

Info

Publication number
JP6394291B2
JP6394291B2 JP2014225082A JP2014225082A JP6394291B2 JP 6394291 B2 JP6394291 B2 JP 6394291B2 JP 2014225082 A JP2014225082 A JP 2014225082A JP 2014225082 A JP2014225082 A JP 2014225082A JP 6394291 B2 JP6394291 B2 JP 6394291B2
Authority
JP
Japan
Prior art keywords
data
cpu
received
rewriting
nonvolatile memory
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
JP2014225082A
Other languages
English (en)
Other versions
JP2016091308A (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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2014225082A priority Critical patent/JP6394291B2/ja
Publication of JP2016091308A publication Critical patent/JP2016091308A/ja
Application granted granted Critical
Publication of JP6394291B2 publication Critical patent/JP6394291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、所定の制御対象の制御に用いる制御プログラムを書き換え可能な電子制御装置およびメモリ書換方法に関する。
従来、記憶内容の書き換えが可能な不揮発性メモリに制御プログラムを記憶する電子制御装置において、制御プログラムの書き換えに要する時間を短縮するために、外部から受信した書換データを受信バッファに格納する格納処理と、受信バッファに格納された書換データを不揮発性メモリに書き込むことにより制御プログラムを書き換える書込処理とを並行に実行するものが知られている(例えば、特許文献1を参照)。
特開2000−20389号公報
このように制御プログラムの書き換えが可能な電子制御装置では、受信バッファに格納された書換データと不揮発性メモリに書き込まれたデータとの一致を確認するベリファイ処理が実行される。
しかし、特許文献1に記載の技術では、短い時間単位で見ると、格納処理と、書込処理およびベリファイ処理との何れか一方の処理しか実行できない時間が存在し、制御プログラムの書き換えに要する時間が長くなってしまうという問題があった。
本発明は、こうした問題に鑑みてなされたものであり、制御プログラムの書き換えに要する時間を短縮することを目的とする。
上記目的を達成するためになされた第1発明は、複数のCPUを有し、所定の制御対象を制御するための制御処理を実行するように構成された電子制御装置であって、不揮発性メモリを備える。不揮発性メモリは、記憶内容の書き換えが可能であり、制御処理を実行するための制御プログラムを記憶する。
また、複数のCPUのうちの1つのCPUである第1CPUは、第1格納手段を備える。第1格納手段は、不揮発性メモリに記憶される制御プログラムの内容を書き換えるためのデータである書換データを当該電子制御装置が外部から受信すると、受信した書換データを、不揮発性メモリに書き込む前に一時的に記憶する受信バッファに格納する第1格納処理を実行する。
また、複数のCPUのうち第1CPUと異なる1つのCPUである第2CPUは、第1書込手段と、第1確認手段とを備える。第1書込手段は、受信バッファに格納された書換データを不揮発性メモリに書き込むことにより、不揮発性メモリに記憶される制御プログラムの内容を書き換える第1書込処理を実行する。第1確認手段は、受信した書換データと、不揮発性メモリに書き込まれた書換データとの一致を確認する第1確認処理を実行する。
このように構成された電子制御装置では、第1CPUが第1格納処理を実行するとともに、第2CPUが第1書込処理と第1確認処理を実行する。このように第1発明の電子制御装置は、書換データを受信バッファに格納する処理と、不揮発性メモリに書換データを書き込むとともに書換データの一致を確認する処理とをそれぞれ別のCPUで実行することができる。
これにより、第1発明の電子制御装置は、第1格納処理と、第1書込処理および第1確認処理との何れか一方しか実行できないという事態の発生を抑制し、制御プログラムの書き換えに要する時間を短縮することができる。
また、上記目的を達成するためになされた第2発明は、複数のCPUを有する電子制御装置のメモリ書換方法であって、第1格納手順と、第1書込手順と、第1確認手順とを備える。
第1格納手順は、不揮発性メモリに記憶される制御プログラムの内容を書き換えるためのデータである書換データを当該電子制御装置が外部から受信すると、受信した書換データを、不揮発性メモリに書き込む前に一時的に記憶する受信バッファに格納する第1格納処理を、複数のCPUのうちの1つのCPUである第1CPUに実行させる。不揮発性メモリは、記憶内容の書き換えが可能であり所定の制御対象を制御するための制御プログラムを記憶する。
第1書込手順は、受信バッファに格納された書換データを不揮発性メモリに書き込むことにより、不揮発性メモリに記憶される制御プログラムの内容を書き換える第1書込処理を、複数のCPUのうち第1CPUと異なる1つのCPUである第2CPUに実行させる。
第1確認手順は、受信した書換データと、不揮発性メモリに書き込まれた書換データとの一致を確認する第1確認処理を第2CPUに実行させる。
第2発明のメモリ書換方法は、第1発明の電子制御装置にて実行される方法であり、当該方法を実行することで、第1発明の電子制御装置と同様の効果を得ることができる。
第1実施形態のECU1の構成を示すブロック図である。 CPU11で実行される処理を示すフローチャートである。 CPU12で実行される処理を示すフローチャートである。 第1実施形態の第1書換処理を示すフローチャートである。 第1実施形態の第2書換処理を示すフローチャートである。 CPU11,12の動作を示すタイミングチャートである。 第2実施形態のECU1の構成を示すブロック図である。 第2実施形態の第1書換処理を示すフローチャートである。 第2実施形態の第2書換処理を示すフローチャートである。
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
本実施形態の電子制御装置(Electronic Control Unit)1(以下、ECU1という)は、車両に搭載され、車両に搭載されたエンジン(不図示)を制御する。
ECU1は、図1に示すように、マイクロコンピュータ(以下、マイコンという)2と、通信回路3とを備える。
マイコン2は、CPU11、CPU12、フラッシュROM13、RAM14およびCAN(登録商標:Controller Area Network)モジュール15を備える。
CPU11,12は、フラッシュROM13に記憶されたプログラムに基づいて各種処理を実行する。
フラッシュROM13は、記憶内容を書き換え可能な不揮発性メモリである。フラッシュROM13には、ブートプログラムと、制御プログラムと、書換プログラムとが記憶されている。ブートプログラムは、マイコン2のリセット解除直後に実行されるプログラムである。制御プログラムは、エンジンを制御するためのプログラムである。制御プログラムは、エンジン制御用の制御プログラムを構成するデータと、その制御プログラムの実行時に参照される制御データとを含む。書換プログラムは、フラッシュROM13の記憶内容(すなわち、制御プログラムを構成するデータと、制御データ)を書き換えるためのプログラムである。
ブートプログラム、制御プログラムおよび書換プログラムは、CPU11が実行するプログラムと、CPU12が実行するプログラムとを含む。
以下、CPU11が実行するブートプログラム、制御プログラムおよび書換プログラムをそれぞれ、第1ブートプログラム、第1制御プログラムおよび第1書換プログラムという。また、CPU12が実行するブートプログラム、制御プログラムおよび書換プログラムをそれぞれ、第2ブートプログラム、第2制御プログラムおよび第2書換プログラムという。
RAM14は、揮発性メモリであり、CPU11,12の演算結果等を一時的に記憶する。またRAM14には、受信バッファ21が設けられている。受信バッファ21は、フラッシュROM13に記憶されるプログラムの書き換え等を行うためのプログラム書換装置6から受信したデータを一時的に記憶するための記憶領域である。
CANモジュール15は、通信回路3を介して通信フレームを送受信する送受信制御、および複数のECU(不図示)から同時に通信フレームが送信された場合の調停を行う調停制御等のCAN通信プロトコルに従った制御を実行する。
また、CPU11とCPU12との間、CPU11,12とフラッシュROM13との間、CPU11,12とRAM14との間、およびCPU11とCANモジュール15との間は、データ通信可能に接続されている。
通信回路3は、マイコン2のCANモジュール15から入力するデジタル信号をCAN通信プロトコルに従う差動信号に変換して通信線7へ出力するとともに、通信線7から入力する差動信号をデジタル信号に変換してCANモジュール15へ出力する。
また通信回路3には、プログラム書換装置6が通信線7を介して接続される。プログラム書換装置6は、例えば、コネクタ8を介して着脱可能になっており、プログラムの書き換え時等にECU1に接続される。なおプログラム書換装置6は、マイコンおよび表示装置を備えたハンディタイプの装置または小型のパソコン等である。
このように構成されたECU1において、マイコン2のCPU11は、リセット解除直後に、フラッシュROM13内の第1ブートプログラムを実行し、マイコン2のCPU12は、リセット解除直後に、フラッシュROM13内の第2ブートプログラムを実行する。
次に、マイコン2のCPU11で実行される処理を説明する。図2は、CPU11で実行される処理を示すフローチャートである。図2におけるS10〜S50の処理が、フラッシュROM13内の第1ブートプログラムによって実行される。S60の処理が、フラッシュROM13内の第1制御プログラムによって実行される。S70の処理が、フラッシュROM13内の第1書換プログラムによって実行される。
車両のイグニッションスイッチ(不図示)のオンに伴い電源が投入されると、マイコン2のCPU11がリセット状態から動作を開始して、第1ブートプログラムの実行を開始し、図2に示すように、まずS10にて、プログラム書換装置6からプログラム書換要求を受信したか否かを判断する。なお、プログラム書換要求には、書き込まれるプログラムの総データ量を示す総書込データ量情報が含まれる。
ここで、プログラム書換要求を受信していない場合には(S10:NO)、S20にて、第1制御プログラムが既にフラッシュROM13に書き込まれているか否かを判断する。ここで、第1制御プログラムが書き込まれていない場合には(S20:NO)、S10に移行して、上述の処理を繰り返す。一方、第1制御プログラムが書き込まれている場合には(S20:YES)、S30にて、フラッシュROM13内の第1制御プログラムへジャンプする。これにより、フラッシュROM13内の第1制御プログラムが実行されて、S60に示すように、エンジンを制御するための制御処理が行われることとなる。
一方、プログラム書換要求を受信した場合には(S10:YES)、S40にて、受信したプログラム書換要求をCPU12へ送信する。そしてS50にて、フラッシュROM13内の第1書換プログラムへジャンプする。これにより、フラッシュROM13内の第1書換プログラムが実行されて、S70に示すように、第1書換処理が行われる。
次に、マイコン2のCPU12で実行される処理を説明する。図3は、CPU12で実行される処理を示すフローチャートである。図3におけるS110〜S140の処理が、フラッシュROM13内の第2ブートプログラムによって実行される。S150の処理が、フラッシュROM13内の第2制御プログラムによって実行される。S160の処理が、フラッシュROM13内の第2書換プログラムによって実行される。
車両のイグニッションスイッチ(不図示)のオンに伴い電源が投入されると、マイコン2のCPU12がリセット状態から動作を開始して、第2ブートプログラムの実行を開始し、図3に示すように、まずS110にて、CPU11からプログラム書換要求を受信したか否かを判断する。
ここで、プログラム書換要求を受信していない場合には(S110:NO)、S120にて、第2制御プログラムが既にフラッシュROM13に書き込まれているか否かを判断する。ここで、第2制御プログラムが書き込まれていない場合には(S120:NO)、S110に移行して、上述の処理を繰り返す。一方、第2制御プログラムが書き込まれている場合には(S120:YES)、S130にて、フラッシュROM13内の第2制御プログラムへジャンプする。これにより、フラッシュROM13内の第2制御プログラムが実行されて、S140に示すように、エンジンを制御するための制御処理が行われることとなる。
一方、プログラム書換要求を受信した場合には(S110:YES)、S140にて、フラッシュROM13内の第2書換プログラムへジャンプする。これにより、フラッシュROM13内の第2書換プログラムが実行されて、S160に示すように、第2書換処理が行われる。
次に、CPU11がS70で実行する第1書換処理の手順を説明する。
この第1書換処理が実行されると、CPU11は、図4に示すように、まずS210にて、プログラム書換装置6から送信されて来る書換データをCANモジュール15が新たに受信したか否かを判断する。ここで、書換データを受信していない場合には(S210:NO)、S250に移行する。
一方、書換データを新たに受信した場合には(S210:YES)、S220にて、受信した書換データをRAM14内の受信バッファ21に格納する。
次にS230にて、受信バッファ21に格納された書換データのデータ量(以下、格納データ量という)が予め設定された書込実行データ量以上であるか否かを判断する。ここで、格納データ量が書込実行データ量未満である場合には(S230:NO)、S250に移行する。一方、格納データ量が書込実行データ量以上である場合には(S230:YES)、S240にて、CPU12へ書込処理要求を送信し、S250に移行する。
そしてS250に移行すると、CPU12から書込完了応答(後述)を受信したか否かを判断する。ここで、書込完了応答を受信していない場合には(S250:NO)、S210に移行して、上述の処理を繰り返す。
一方、書込完了応答を受信した場合には(S250:YES)、S260にて、RAM14に設けられた第1書込回数カウンタをインクリメント(1加算)する。そしてS270にて、第1書込回数カウンタの値(以下、第1書込回数という)が終了判定回数以上であるか否かを判断する。なお終了判定回数は、総書込データ量情報が示すデータ量を書込実行データ量で除した除算値である。
ここで、第1書込回数が終了判定回数未満である場合には(S270:NO)、S210に移行して、上述の処理を繰り返す。一方、第1書込回数が終了判定回数以上である場合には(S270:YES)、今回のプログラム書換要求で書き込むべきプログラムに関する全ての書き込みが終了したと判断し、第1書換処理を終了する。
次に、CPU12がS160で実行する第2書換処理の手順を説明する。
この第2書換処理が実行されると、CPU12は、図5に示すように、まずS310にて、CPU11から書込処理要求を受信したか否かを判断する。ここで、書込処理要求を受信していない場合には(S310:NO)、S310の処理を繰り返すことにより、書込処理要求を受信するまで待機する。
そして、書込処理要求を受信すると(S310:YES)、S320にて、RAM14内の受信バッファ21から、フラッシュROM13に書き込まれていないデータ(以下、未書込データという)を書込実行データ量分だけ読み出し、読み出した未書込データをフラッシュROM13に書き込む。
そして、書込実行データ量分の未書込データの書き込みが終了すると、S330にて、書き込んだデータのベリファイ(verify)を実行する。具体的には、受信バッファ21から読み出したデータと、フラッシュROM13に書き込まれたデータが互いに一致しているか否かを確認する。
そしてS340にて、S330でのベリファイの結果に基づいて、受信バッファ21から読み出したデータと、フラッシュROM13に書き込まれたデータが互いに一致しているかを判断する。ここで、両データが一致していない場合には(S340:NO)、S320に移行し、上述の処理を繰り返す。
一方、両データが一致している場合には(S340:YES)、S350にて、RAM14に設けられた第2書込回数カウンタをインクリメントする。さらにS360にて、CPU11へ書込完了応答を送信する。
そしてS370にて、第2書込回数カウンタの値(以下、第2書込回数という)が終了判定回数以上であるか否かを判断する。
ここで、第2書込回数が終了判定回数未満である場合には(S370:NO)、S310に移行して、上述の処理を繰り返す。一方、第2書込回数が終了判定回数以上である場合には(S370:YES)、第2書換処理を終了する。
このように構成されたECU1は、CPU11およびCPU12を有し、エンジンを制御するための制御処理を実行する。そしてECU1は、フラッシュROM13を備える。フラッシュROM13は、記憶内容の書き換えが可能であり、制御処理を実行するための制御プログラムを記憶する。
またCPU11は、フラッシュROM13に記憶される制御プログラムの内容を書き換えるためのデータである書換データをECU1が外部から受信すると、受信した書換データを、フラッシュROM13に書き込む前に一時的に記憶する受信バッファ21に格納する(S220)。
またCPU12は、受信バッファ21に格納された書換データをフラッシュROM13に書き込むことにより、フラッシュROM13に記憶される制御プログラムの内容を書き換える(S320)。
またCPU12は、受信した書換データと、フラッシュROM13に書き込まれた書換データとの一致を確認する(S330)。
このようにECU1は、例えば図6に示すように、書換データを受信バッファ21に格納する処理と、フラッシュROM13に書換データを書き込むとともに書換データの一致を確認する処理とをそれぞれ別のCPUで実行することができる。
図6では、CPU11が、プログラム書換装置6から受信した書換データD1,D2,D3,D4,D5,D6,D7,D8,D9,・・・を順次、受信バッファ21に格納する。そしてCPU12は、CPU11が書換データD4,D5,D6,D7,D8,D9,・・・を格納する処理を行っている間に、書換データD1,D2,D3をフラッシュROM13に書き込む処理と、書換データD1,D2,D3のベリファイを実行している。
これによりECU1は、書換データを受信バッファ21に格納する処理と、フラッシュROM13に書換データを書き込むとともに書換データの一致を確認する処理との何れか一方しか実行できないという事態の発生を抑制し、制御プログラムの書き換えに要する時間を短縮することができる。
以上説明した実施形態において、フラッシュROM13は本発明における不揮発性メモリ、CPU11は本発明における第1CPU、CPU12は本発明における第2CPU、S220の処理は本発明における第1格納手段および第1格納手順、S320の処理は本発明における第1書込手段および第1書込手順、S330の処理は本発明における第1確認手段および第1確認手順である。
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分を説明する。
第2実施形態のECU1は、図7に示すように、フラッシュROM13の代わりにフラッシュROM18,19を備える点が第1実施形態と異なる。
また第2実施形態のECU1は、CPU11,12とフラッシュROM13との間が接続される代わりに、CPU11とフラッシュROM18との間、およびCPU12とフラッシュROM19との間がデータ通信可能に接続される点が第1実施形態と異なる。
また第2実施形態のプログラム書換装置6は、フラッシュROM18に書き込むプログラムを送信した後に、フラッシュROM19に書き込むプログラムを送信するように構成されている。なお、プログラム書換装置6が送信するプログラム書換要求には、第1総書込データ量情報と第2総書込データ量情報が含まれる。第1総書込データ量情報は、フラッシュROM18に書き込まれるプログラムの総データ量を示す。第2総書込データ量情報は、フラッシュROM19に書き込まれるプログラムの総データ量を示す。
また第2実施形態のECU1は、CPU12とCANモジュール15との間がデータ通信可能に接続されている点が、第1実施形態と異なる。
また第2実施形態のECU1は、第1書換処理と第2書換処理が第1実施形態と異なる。
次に、第2実施形態の第1書換処理の手順を説明する。
第2実施形態の第1書換処理が実行されると、CPU11は、図8に示すように、まずS410にて、CPU12から書込処理要求を受信したか否かを判断する。ここで、書込処理要求を受信していない場合には(S410:NO)、S410の処理を繰り返すことにより、書込処理要求を受信するまで待機する。
そして、書込処理要求を受信すると(S410:YES)、S420にて、まず、RAM14内の受信バッファ21から、フラッシュROM18に書き込まれていないデータ(以下、第1未書込データという)を書込実行データ量分だけ読み出し、読み出した第1未書込データをフラッシュROM18に書き込む。
そして、書込実行データ量分の第1未書込データの書き込みが終了すると、S430にて、書き込んだデータのベリファイを実行する。具体的には、受信バッファ21から読み出したデータと、フラッシュROM18に書き込まれたデータが互いに一致しているか否かを確認する。
そしてS440にて、S430でのベリファイの結果に基づいて、受信バッファ21から読み出したデータと、フラッシュROM18に書き込まれたデータが互いに一致しているかを判断する。ここで、両データが一致していない場合には(S440:NO)、S420に移行し、上述の処理を繰り返す。
一方、両データが一致している場合には(S440:YES)、S450にて、RAM14に設けられた第1書込回数カウンタをインクリメントする。さらにS460にて、CPU12へ書込完了応答を送信する。
そしてS470にて、第1書込回数カウンタの値(以下、第1書込回数という)が第1終了判定回数以上であるか否かを判断する。なお第1終了判定回数は、第1総書込データ量情報が示すデータ量を書込実行データ量で除した除算値である。
ここで、第1書込回数が第1終了判定回数未満である場合には(S470:NO)、S410に移行して、上述の処理を繰り返す。一方、第1書込回数が第1終了判定回数以上である場合には(S470:YES)、S480にて、CPU12へ役割交代要求を送信する。
そしてS490にて、CPU12から役割交代応答を受信したか否かを判断する。ここで、役割交代応答を受信していない場合には(S490:NO)、S490の処理を繰り返すことにより、役割交代応答を受信するまで待機する。
そして、役割交代応答を受信すると(S490:YES)、S500にて、第1書込回数カウンタをリセット(0に設定)する。
その後S510にて、プログラム書換装置6から送信されて来る書換データをCANモジュール15が新たに受信したか否かを判断する。ここで、書換データを受信していない場合には(S510:NO)、S550に移行する。一方、書換データを新たに受信した場合には(S510:YES)、S520にて、受信した書換データをRAM14内の受信バッファ21に格納する。
次にS530にて、格納データ量が予め設定された書込実行データ量以上であるか否かを判断する。ここで、格納データ量が書込実行データ量未満である場合には(S530:NO)、S550に移行する。一方、格納データ量が書込実行データ量以上である場合には(S530:YES)、S540にて、CPU12へ書込処理要求を送信し、S550に移行する。
そしてS550に移行すると、CPU12から書込完了応答を受信したか否かを判断する。ここで、書込完了応答を受信していない場合には(S550:NO)、S510に移行して、上述の処理を繰り返す。
一方、書込完了応答を受信した場合には(S550:YES)、S560にて、RAM14に設けられた第1書込回数カウンタをインクリメントする。そしてS570にて、第1書込回数カウンタの値(第1書込回数)が第2終了判定回数以上であるか否かを判断する。なお第2終了判定回数は、第2総書込データ量情報が示すデータ量を書込実行データ量で除した除算値である。
ここで、第1書込回数が第2終了判定回数未満である場合には(S570:NO)、S510に移行して、上述の処理を繰り返す。一方、第1書込回数が第2終了判定回数以上である場合には(S570:YES)、今回のプログラム書換要求で書き込むべきプログラムに関する全ての書き込みが終了したと判断し、第1書換処理を終了する。
次に、第2実施形態の第2書換処理の手順を説明する。
第2実施形態の第2書換処理が実行されると、CPU12は、図9に示すように、まずS610にて、プログラム書換装置6から送信されて来る書換データをCANモジュール15が新たに受信したか否かを判断する。ここで、書換データを受信していない場合には(S610:NO)、S650に移行する。
一方、書換データを新たに受信した場合には(S610:YES)、S620にて、受信した書換データをRAM14内の受信バッファ21に格納する。
次にS630にて、受信バッファ21に格納された書換データのデータ量(格納データ量)が書込実行データ量以上であるか否かを判断する。ここで、格納データ量が書込実行データ量未満である場合には(S630:NO)、S650に移行する。一方、格納データ量が書込実行データ量以上である場合には(S630:YES)、S640にて、CPU11へ書込処理要求を送信し、S650に移行する。
そしてS650に移行すると、CPU11から書込完了応答を受信したか否かを判断する。ここで、書込完了応答を受信していない場合には(S650:NO)、S610に移行して、上述の処理を繰り返す。
一方、書込完了応答を受信した場合には(S650:YES)、S660にて、RAM14に設けられた第2書込回数カウンタをインクリメントする。そしてS670にて、第2書込回数カウンタの値(以下、第2書込回数という)が第1終了判定回数以上であるか否かを判断する。
ここで、第2書込回数が第1終了判定回数未満である場合には(S670:NO)、S610に移行して、上述の処理を繰り返す。一方、第2書込回数が第1終了判定回数以上である場合には(S670:YES)、S680にて、CPU11から役割交代要求を受信したか否かを判断する。ここで、役割交代要求を受信していない場合には(S680:NO)、S680の処理を繰り返すことにより、役割交代要求を受信するまで待機する。
そして、役割交代要求を受信すると(S680:YES)、S690にて、CPU11へ役割交代応答を送信し、S700にて、第2書込回数カウンタをリセットする。
その後S710にて、CPU11から書込処理要求を受信したか否かを判断する。ここで、書込処理要求を受信していない場合には(S710:NO)、S710の処理を繰り返すことにより、書込処理要求を受信するまで待機する。
そして、書込処理要求を受信すると(S710:YES)、S720にて、RAM14内の受信バッファ21から、フラッシュROM19に書き込まれていないデータ(以下、第2未書込データという)を書込実行データ量分だけ読み出し、読み出した第2未書込データをフラッシュROM19に書き込む。
そして、書込実行データ量分の第2未書込データの書き込みが終了すると、S730にて、書き込んだデータのベリファイを実行する。具体的には、受信バッファ21から読み出したデータと、フラッシュROM19に書き込まれたデータが互いに一致しているか否かを確認する。
そしてS740にて、S730でのベリファイの結果に基づいて、受信バッファ21から読み出したデータと、フラッシュROM19に書き込まれたデータが互いに一致しているかを判断する。ここで、両データが一致していない場合には(S740:NO)、S720に移行し、上述の処理を繰り返す。
一方、両データが一致している場合には(S740:YES)、S750にて、第2書込回数カウンタをインクリメントする。さらにS760にて、CPU11へ書込完了応答を送信する。
そしてS770にて、第2書込回数カウンタの値(第2書込回数)が第2終了判定回数以上であるか否かを判断する。
ここで、第2書込回数が第2終了判定回数未満である場合には(S770:NO)、S710に移行して、上述の処理を繰り返す。一方、第2書込回数が第2終了判定回数以上である場合には(S770:YES)、今回のプログラム書換要求で書き込むべきプログラムに関する全ての書き込みが終了したと判断し、第2書換処理を終了する。
このように構成されたECU1は、CPU11およびCPU12を有し、エンジンを制御するための制御処理を実行する。そしてECU1は、フラッシュROM18,19を備える。フラッシュROM18は、CPU11が制御処理を実行するための第1制御プログラムを記憶する。フラッシュROM19は、CPU12が制御処理を実行するための第2制御プログラムを記憶する。
CPU11は、フラッシュROM19に記憶される第2制御プログラムの内容を書き換えるためのデータである第2書換データを外部から受信すると、受信した第2書換データを受信バッファ21に格納する(S520)。
CPU12は、受信バッファ21に格納された第2書換データをフラッシュROM19に書き込むことにより、フラッシュROM19に記憶される第2制御プログラムの内容を書き換える(S720)。またCPU12は、受信した第2書換データと、フラッシュROM19に書き込まれた第2書換データとの一致を確認する(S730)。
CPU12は、更に、フラッシュROM18に記憶される第1制御プログラムの内容を書き換えるためのデータである第1書換データをECU1が外部から受信すると、受信した第1書換データを受信バッファ21に格納する(S620)。
CPU11は、更に、受信バッファ21に格納された第1書換データをフラッシュROM18に書き込むことにより、フラッシュROM18に記憶される第1制御プログラムの内容を書き換える(S420)。またCPU11は、受信した第1書換データと、フラッシュROM18に書き込まれた第1書換データとの一致を確認する(S430)。
このようにECU1は、CPU11がフラッシュROM18に第1書換データを書き込む場合と、CPU12がフラッシュROM19に第2書換データを書き込む場合との両方で、書換データを格納する処理と、書換データを書き込むとともに書換データの一致を確認する処理とをそれぞれ別のCPUで実行することができる。
これによりECU1は、CPU11,12がそれぞれフラッシュROM19,18にアクセスすることができない場合であっても、制御プログラムの書き換えに要する時間を短縮することができる。
以上説明した実施形態において、フラッシュROM18は本発明における第1不揮発性メモリ、フラッシュROM19は本発明における第2不揮発性メモリ、S520の処理は本発明における第1格納手段および第1格納手順、S720の処理は本発明における第1書込手段および第1書込手順、S730の処理は本発明における第1確認手段および第1確認手順である。
また、S620の処理は本発明における第2格納手段および第2格納手順、S420の処理は本発明における第2書込手段および第2書込手順、S430の処理は本発明における第2確認手段および第2確認手順である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、マイコン2が2個のCPU11,12を備えるものを示したが、3個以上のCPUを備えるようにしてもよい。
また上記実施形態では、ECU1の制御対象が車両のエンジンであるものを示したが、これに限定されるものではなく、例えば自動変速機であってもよい。
また上記実施形態では、フラッシュROM13に制御プログラムを記憶するものを示したが、制御プログラムの記憶媒体としてはこれに限定されるものではなく、例えばEEPROMのように記憶内容の書き換えが可能な不揮発性メモリであればよい。
また、上記実施形態における1つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
1…ECU、2…マイコン、11,12…CPU、13,18,19…フラッシュROM、14…RAM、21…受信バッファ

Claims (2)

  1. 複数のCPUを有し、所定の制御対象を制御するための制御処理を実行するように構成された電子制御装置(1)であって、
    記憶内容の書き換えが可能であり、前記制御処理を実行するための制御プログラムを記憶する不揮発性メモリ(13,18,19)を備え、
    複数の前記CPUのうちの1つの前記CPUである第1CPU(11)は、
    前記不揮発性メモリに記憶される前記制御プログラムの内容を書き換えるためのデータである書換データを当該電子制御装置が外部から受信すると、受信した前記書換データを、前記不揮発性メモリに書き込む前に一時的に記憶する受信バッファ(21)に格納する第1格納処理を実行する第1格納手段(S220,S520)を備え、
    複数の前記CPUのうち前記第1CPUと異なる1つの前記CPUである第2CPU(12)は、
    前記受信バッファに格納された前記書換データを前記不揮発性メモリに書き込むことにより、前記不揮発性メモリに記憶される前記制御プログラムの内容を書き換える第1書込処理を実行する第1書込手段(S320,S720)と、
    受信した前記書換データと、前記不揮発性メモリに書き込まれた前記書換データとの一致を確認する第1確認処理を実行する第1確認手段(S330,S730)とを備え、
    前記不揮発性メモリは、
    少なくとも、前記第1CPUが前記制御処理を実行するための第1制御プログラムを記憶する第1不揮発性メモリ(18)と、前記第2CPUが前記制御処理を実行するための第2制御プログラムを記憶する第2不揮発性メモリ(19)とから構成され、
    前記第1CPUが備える前記第1格納手段(S520)は、
    前記第2不揮発性メモリに記憶される前記第2制御プログラムの内容を書き換えるためのデータである第2書換データを外部から受信すると、受信した前記第2書換データを前記受信バッファに格納する処理を前記第1格納処理として実行し、
    前記第2CPUが備える前記第1書込手段(S720)は、
    前記受信バッファに格納された前記第2書換データを前記第2不揮発性メモリに書き込むことにより、前記第2不揮発性メモリに記憶される前記第2制御プログラムの内容を書き換える処理を前記第1書込処理として実行し、
    前記第2CPUが備える前記第1確認手段(S730)は、
    受信した前記第2書換データと、前記第2不揮発性メモリに書き込まれた前記第2書換データとの一致を確認する処理を前記第1確認処理として実行し、
    前記第2CPUは、更に、
    前記第1不揮発性メモリに記憶される前記第1制御プログラムの内容を書き換えるためのデータである第1書換データを当該電子制御装置が外部から受信すると、受信した前記第1書換データを前記受信バッファに格納する第2格納処理を実行する第2格納手段(S620)を備え、
    前記第1CPUは、更に、
    前記受信バッファに格納された前記第1書換データを前記第1不揮発性メモリに書き込むことにより、前記第1不揮発性メモリに記憶される前記第1制御プログラムの内容を書き換える第2書込処理を実行する第2書込手段(S420)と、
    受信した前記第1書換データと、前記第1不揮発性メモリに書き込まれた前記第1書換データとの一致を確認する第2確認処理を実行する第2確認手段(S430)とを備える
    ことを特徴とする電子制御装置。
  2. 複数のCPUを有し、所定の制御対象を制御するための制御処理を実行するように構成された電子制御装置(1)のメモリ書換方法であって、
    記憶内容の書き換えが可能であり前記制御処理を実行するための制御プログラムを記憶する不揮発性メモリ(13,18,19)に記憶される前記制御プログラムの内容を書き換えるためのデータである書換データを当該電子制御装置が外部から受信すると、受信した前記書換データを、前記不揮発性メモリに書き込む前に一時的に記憶する受信バッファ(21)に格納する第1格納処理を、複数の前記CPUのうちの1つの前記CPUである第1CPU(11)に実行させる第1格納手順(S220,S520)と、
    前記受信バッファに格納された前記書換データを前記不揮発性メモリに書き込むことにより、前記不揮発性メモリに記憶される前記制御プログラムの内容を書き換える第1書込処理を、複数の前記CPUのうち前記第1CPUと異なる1つの前記CPUである第2CPU(12)に実行させる第1書込手順(S320,S720)と、
    受信した前記書換データと、前記不揮発性メモリに書き込まれた前記書換データとの一致を確認する第1確認処理を前記第2CPUに実行させる第1確認手順(S330,S730)とを備え、
    前記不揮発性メモリは、
    少なくとも、前記第1CPUが前記制御処理を実行するための第1制御プログラムを記憶する第1不揮発性メモリ(18)と、前記第2CPUが前記制御処理を実行するための第2制御プログラムを記憶する第2不揮発性メモリ(19)とから構成され、
    前記第1格納手順(S520)は、
    前記第2不揮発性メモリに記憶される前記第2制御プログラムの内容を書き換えるためのデータである第2書換データを当該電子制御装置が外部から受信すると、受信した前記第2書換データを前記受信バッファに格納する処理を前記第1格納処理として実行させ、
    前記第1書込手順(S720)は、
    前記受信バッファに格納された前記第2書換データを前記第2不揮発性メモリに書き込むことにより、前記第2不揮発性メモリに記憶される前記第2制御プログラムの内容を書き換える処理を前記第1書込処理として実行させ、
    前記第1確認手順(S730)は、
    受信した前記第2書換データと、前記第2不揮発性メモリに書き込まれた前記第2書換データとの一致を確認する処理を前記第1確認処理として実行させ、
    更に、
    前記第1不揮発性メモリに記憶される前記第1制御プログラムの内容を書き換えるためのデータである第1書換データを当該電子制御装置が外部から受信すると、受信した前記第1書換データを前記受信バッファに格納する第2格納処理を、前記第2CPUに実行させる第2格納手順(S620)と、
    前記受信バッファに格納された前記第1書換データを前記第1不揮発性メモリに書き込むことにより、前記第1不揮発性メモリに記憶される前記第1制御プログラムの内容を書き換える第2書込処理を、前記第1CPUに実行させる第2書込手順(S420)と
    受信した前記第1書換データと、前記第1不揮発性メモリに書き込まれた前記第1書換データとの一致を確認する第2確認処理を、前記第1CPUに実行させる第2確認手順(S430)とを備える
    ことを特徴とするメモリ書換方法。
JP2014225082A 2014-11-05 2014-11-05 電子制御装置およびメモリ書換方法 Active JP6394291B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014225082A JP6394291B2 (ja) 2014-11-05 2014-11-05 電子制御装置およびメモリ書換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014225082A JP6394291B2 (ja) 2014-11-05 2014-11-05 電子制御装置およびメモリ書換方法

Publications (2)

Publication Number Publication Date
JP2016091308A JP2016091308A (ja) 2016-05-23
JP6394291B2 true JP6394291B2 (ja) 2018-09-26

Family

ID=56017028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014225082A Active JP6394291B2 (ja) 2014-11-05 2014-11-05 電子制御装置およびメモリ書換方法

Country Status (1)

Country Link
JP (1) JP6394291B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3893755B2 (ja) * 1998-07-03 2007-03-14 株式会社デンソー 電子制御装置
DE19923879A1 (de) * 1999-05-25 2000-11-30 Bosch Gmbh Robert Steuergerät
CN1818894B (zh) * 2001-01-31 2013-07-31 株式会社日立制作所 数据处理***和数据处理器
JP5790514B2 (ja) * 2012-01-23 2015-10-07 株式会社デンソー 電子装置

Also Published As

Publication number Publication date
JP2016091308A (ja) 2016-05-23

Similar Documents

Publication Publication Date Title
JP4404147B2 (ja) 車載電子制御装置及びその車載電子制御装置の情報更新方法
JP2015056171A (ja) メモリシステムおよび情報処理装置
JP2008242995A (ja) 電子制御装置
JP2006268107A (ja) 電子制御装置
WO2018112942A1 (zh) 设备认证方法、装置、电子设备及从设备
JP6115482B2 (ja) 電子制御装置
JP5293231B2 (ja) Icチップ及びicカード及び発行装置及び発行方法及び発行システム
JP5835271B2 (ja) 電子制御装置およびメモリ書換方法
US20100153622A1 (en) Data Access Controller and Data Accessing Method
CN113870926A (zh) 一种驱动信号生成方法、装置、设备及可读存储介质
JP6394291B2 (ja) 電子制御装置およびメモリ書換方法
JP2008004238A (ja) 半導体記憶装置のベリファイ制御方式及びその方法
KR100849212B1 (ko) 메모리 카드 및 메모리 카드의 구동 프로그램 업데이트방법
JP6421635B2 (ja) 電子制御装置およびメモリ書換方法
TWI595361B (zh) 電子裝置與其載入程式碼之方法
JP6717184B2 (ja) 車載制御装置
JP5590069B2 (ja) マイクロコンピュータ
JP5700660B2 (ja) 車両用電子制御装置
JP6432464B2 (ja) 車載電子制御装置
JP5010065B2 (ja) マイクロコンピュータ
US9323516B2 (en) Electronic device system and electronic device
JP6340291B2 (ja) 情報処理装置
US9400758B2 (en) Reset method and network device
US20050138236A1 (en) Direct memory access control device and method for automatically updating data transmisson size from peripheral
JP5435647B2 (ja) コンピュータシステム、メモリ初期化方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180404

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: 20180731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180813

R151 Written notification of patent or utility model registration

Ref document number: 6394291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250