JP5900168B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP5900168B2
JP5900168B2 JP2012128210A JP2012128210A JP5900168B2 JP 5900168 B2 JP5900168 B2 JP 5900168B2 JP 2012128210 A JP2012128210 A JP 2012128210A JP 2012128210 A JP2012128210 A JP 2012128210A JP 5900168 B2 JP5900168 B2 JP 5900168B2
Authority
JP
Japan
Prior art keywords
rewriting
control program
storage area
switching
rewrite
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
JP2012128210A
Other languages
English (en)
Other versions
JP2013254263A (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 JP2012128210A priority Critical patent/JP5900168B2/ja
Publication of JP2013254263A publication Critical patent/JP2013254263A/ja
Application granted granted Critical
Publication of JP5900168B2 publication Critical patent/JP5900168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、記憶したプログラムを書き換え可能な電子制御装置に関する。
従来、例えば自動車のエンジンやトランスミッション等を制御する電子制御装置として、電気的に記憶内容の書き換え(詳しくは、データの消去および書き込み)が可能なフラッシュメモリやEEPROM等の書換可能不揮発性メモリを備え、その書換可能不揮発性メモリに記憶された制御プログラムを書き換え可能なものが知られている。
この種の電子制御装置が搭載された車両では、車両の所有者がカーディーラに車両を持ち込み、カーディーラの作業者が専用の書換装置を用いて書換作業を行うことにより、制御プログラムを書き換えることが一般的である(例えば、特許文献1を参照)。
しかし将来的には、ユーザがプログラムをカスタマイズする場合、またはプログラムを緊急に書き換える必要が生じた場合などにおいて、プログラムによる機能が動作している状態でプログラムの書換えを実施し、新しいプログラムによる動作に速やかに切り替えるというニーズが発生すると考えられる。
特開2004−220519号公報
しかし、プログラムの実行中に書き換え又は切り替えを行うと、プログラム実行中にデータの不整合が発生し、プログラムが正常に動作しなくなる可能性があるという問題があった。例えば、「A→B→C」という一連の処理において、「A」,「C」が用いるデータ[D1]が同一であるという条件に基づいてプログラムが設計されている場合において、「B」の処理実行中のタイミングで[D1]を書き換えてしまうと、「C」の処理の結果が正しくならない。
本発明は、こうした問題に鑑みてなされたものであり、プログラム実行中にプログラムの書き換え及び切り替えを行うことができる技術を提供することを目的とする。
上記目的を達成するためになされた発明は、所定の制御対象を制御するための制御プログラムを記憶する記憶領域が設けられ、記憶内容の書き換えが可能な不揮発性メモリと、不揮発性メモリに記憶された制御プログラムに従って処理を行うように構成された演算部とを備え、予め設定された書換条件が成立した場合には、不揮発性メモリに記憶された制御プログラムの内容を書き換える書換処理を行うように構成された電子制御装置であって、不揮発性メモリの記憶領域は、互いに領域が重複しないように予め設定された複数の分割記憶領域に分割され、書換切替手段は、書換処理によって制御プログラムの内容を書き換える記憶領域として、複数の分割記憶領域のうちの何れか1つを選択して切り替えることができるとともに、読込切替手段は、制御プログラムに従って処理を行うために演算部が制御プログラムを読み込む不揮発性メモリの記憶領域として、複数の分割記憶領域のうちの何れか1つを選択して切り替えることができる。そして書換切替手段は、書換処理によって制御プログラムの内容を書き換える記憶領域として、複数の分割記憶領域のうち、読込切替手段が選択しているのとは異なる分割記憶領域を選択して切り替える。
これにより、制御プログラムに従って処理を行うために演算部が制御プログラムを読み込む分割記憶領域(以下、読込用分割記憶領域という)から読み込まれた制御プログラムに従った処理を演算部が実行している最中に書換処理が行われても、読込用分割記憶領域に記憶されている制御プログラムが書き換えられることがない。このため、制御プログラムの実行中であっても制御プログラムを書き換えることができる。
さらに第1停止手段が、書換処理による制御プログラムの書き換えが完了した後に、書換処理の動作を停止させるとともに、第2停止手段が、書換処理による制御プログラムの書き換えが完了した後に、制御プログラムの中で書換処理により内容が書き換えられた部分である書換対象の処理を停止させてもよいことを示す予め設定された停止判定条件が成立したか否かを判断し、停止判定条件が成立した場合に、書換対象の処理の動作を停止させる。そして読込切替手段は、第1停止手段により書換処理の動作が停止し、且つ、第2停止手段により書換対象の処理の動作が停止した後に、書換処理により制御プログラムが書き換えられた分割記憶領域を選択して切り替える。
このように構成された電子制御装置では、書換処理による制御プログラムの書き換えが完了した後に、書換処理により書き換えられた制御プログラムの内容、すなわち上記の書換対象の内容に応じて、書換対象の処理を停止させるのに適切なタイミングで、書換対象の処理を停止させた後に、不揮発性メモリの記憶領域から読み込む制御プログラムを切り替えることができる。このため、制御プログラムの実行中に読み込む制御プログラムを切り替えることにより、データの不整合が発生するということがなくなり、制御プログラムの実行中であっても、書き換えられた制御プログラムに切り替えることができる。
第1,2実施形態のECU1の構成を示すブロック図である。 MMU12によるアドレス変換方法を説明する図である。 第1実施形態の書換制御処理を示すフローチャートである。 第1実施形態の切替準備処理を示すフローチャートである。 第1実施形態の切替処理を示すフローチャートである。 MMU12によるプログラム切替方法を説明する図である。 第1実施形態のコア11の動作を示すタイミングチャートである。 第2実施形態の書換制御処理を示すフローチャートである。 第2実施形態のコア11の動作を示すタイミングチャートである。 第3実施形態のECU1の構成を示すブロック図である。 第3実施形態の書換制御処理を示すフローチャートである。 第3実施形態の切替準備処理を示すフローチャートである。 第3実施形態の切替処理を示すフローチャートである。 第3実施形態のコア11の動作を示すタイミングチャートである。
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
本実施形態の電子制御装置(以下、ECUという)1は、車両に搭載され、図1に示すように、車両のエンジンEGの制御を行う。
ECU1は、CPU(中央演算装置)2、フラッシュROM3、RAM4、入出力回路5、および通信インターフェース6と、これらを相互に接続するバス7とを備える。
フラッシュROM3は、CPU2によって実行されるプログラムを格納するための不揮発性メモリであり、後述の車両制御プログラム21を格納するために第1記憶領域31と第2記憶領域32とが設けられている。
RAM4は、CPU2の演算結果等を一時格納するための揮発性メモリである。
入出力回路5は、エンジンEGの運転状態を検出する様々なセンサからの信号を入力して波形処理を行うとともに、CPU2からの制御信号に応じて、エンジンEGに取り付けられた点火装置やインジェクタ等の電気負荷へ駆動信号を出力する。
通信インターフェース(以下、通信I/Fという)6は、車内LAN8を介して、車両に搭載された各種機器との間でデータ通信を行う。そして、車内LAN8には、車両の外部に設置されたリモートセンタ(不図示)との間で無線通信を行う無線通信機9が接続されている。
リモートセンタは、車両の所有者がカーディーラに車両を持ち込むことなく、フラッシュROM3に記憶されているプログラムをアップデートすることを可能にするために設置されている。そしてリモートセンタは、プログラムのアップデートが必要になったときに、車両に搭載された無線通信機9との間で無線通信を行うことにより、新しいプログラムを構成するデータをECU1に送信する。
CPU2は、フラッシュROM3に記憶されたプログラムに基づいて各種処理を実行する。またCPU2は、入出力回路5を介して入力される各種信号に基づいて制御演算を行い、その演算結果に基づき、点火装置やインジェクタ等の電気負荷へ入出力回路5を介して駆動信号を出力することにより、エンジンEGの制御に関係する電気負荷を制御する。例えばCPU2は、インジェクタの開弁タイミングおよび開弁時間を演算し、その演算結果に基づいて、インジェクタを駆動するための駆動信号を出力することにより、エンジンEGへの燃料噴射を制御する。
またCPU2は、プログラムを実行するための演算ユニットおよびレジスタなどからなるコア11と、コア11によるフラッシュROM3へのアクセスを管理するメモリ管理ユニット(以下、MMUという)12とを備え、所定の処理プログラムに基づいて処理を実行する。
コア11は、ECU1を搭載する車両を制御するための車両制御プログラム21と、車両制御プログラム21を書き換えるための書換制御プログラム22と、車両制御プログラム21と書換制御プログラム22の動作を管理するための管理プログラム23を実行するように構成されている。
MMU12は、コア11がフラッシュROM3へアクセスするために指定したアドレス(すなわち、論理アドレス)を、事前に設定されたアドレス変換表に基づいて、フラッシュROM3の実メモリ空間におけるアドレス(すなわち、物理アドレス)に変換する機能を有するハードウェアである。例えば図2に示すように、コア11が、車両制御プログラム21における論理アドレス0×000050000にアクセスする処理を実行した場合に、フラッシュROM3の実メモリ空間における物理アドレス0×000050000ではなく、論理アドレス0×000050000と異なる物理アドレス(図2では、0×400050000)にアクセスすることになる。
このように構成されたECU1において、コア11は、書換制御処理と、切替準備処理と、切替処理を実行する。
まず、コア11が実行する書換制御処理の手順を説明する。この書換制御処理は、書換制御プログラム22に基づいて、コア11の動作中に繰り返し実行される処理である。
書換制御処理が実行されると、コア11は、図3に示すように、まずS10にて、無線通信機9を介して取得したデータに基づいて、リモートセンタからリプログ要求を受信したか否かを判断する。ここで、リプログ要求を受信していないと判断した場合には(S10:NO)、書換制御処理を一旦終了する。一方、リプログ要求を受信した場合には(S10:YES)、S20にて、無線通信機9を介してリモートセンタから送信される新たなプログラムをフラッシュROM3に書き込む書換処理を行う。なお本実施形態では、フラッシュROM3における物理アドレス0×200000000〜0×300000000の記憶領域が第1記憶領域31に割り当てられ、物理アドレス0×400000000〜0×500000000の記憶領域が第2記憶領域32に割り当てられている(図6を参照)。そして、S30の書換処理においてMMU12は、第1記憶領域31に記憶されているプログラムにアクセスして車両制御プログラム21の処理を実行している場合には、第2記憶領域32にプログラムが書き込まれるようにアドレスを変換し、第2記憶領域32に記憶されているプログラムにアクセスして車両制御プログラム21の処理を実行している場合には、第1記憶領域31にプログラムが書き込まれるようにアドレスを変換する。
そしてS30にて、書換処理によるプログラムの書き換えが完了したか否かを判断する。ここで、書き換えが完了していない場合には(S30:NO)、S20に移行して、上述の処理を繰り返す。一方、書き換えが完了した場合には(S30:YES)、S40にて、切替完了フラグをクリアし、さらにS50にて、切替準備要求フラグをセットする。
その後S60にて、切替完了フラグがセットされているか否かを判断する。ここで、切替完了フラグがクリアされている場合には(S60:NO)、S60の処理を繰り返し、切替完了フラグがセットされるまで待機する。一方、切替完了フラグがセットされている場合には(S60:YES)、書換制御処理を一旦終了する。
次に、コア11が実行する切替準備処理の手順を説明する。この切替準備処理は、車両制御プログラム21に基づいて、コア11の動作中に繰り返し実行される処理である。
切替準備処理が実行されると、コア11は、図4に示すように、まずS110にて、切替準備要求フラグがセットされているか否かを判断する。ここで、切替準備要求フラグがクリアされている場合には(S110:NO)、切替準備処理を一旦終了する。一方、切替準備要求フラグがセットされている場合には(S110:YES)、S120にて、切替準備要求フラグをクリアし、S130にて、切替準備が完了したか否かを判断する。具体的には、車両制御プログラム21の中で今回の書換処理で内容が書き換えられる部分(以下、書換対象という)の処理が実行中である場合には、切替準備が完了していないと判断し、書換対象の処理が実行中でない場合には、切替準備が完了したと判断する。なお、上記の「書換対象の処理が実行中である」とは、フラッシュROM3の記憶領域のうち、書換対象の処理を行うためのプログラムおよびデータが記憶されている領域にコア11がアクセスしていない状態をいう。
ここで、切替準備が完了していない場合には(S130:NO)、S130の処理を繰り返し、切替準備が完了するまで待機する。一方、切替準備が完了した場合には(S130:YES)、S140にて、書換対象の処理を停止する。
その後S150にて、切替開始要求フラグをセットし、S160にて、切替完了フラグがセットされているか否かを判断する。ここで、切替完了フラグがクリアされている場合には(S160:NO)、S160の処理を繰り返し、切替完了フラグがセットされるまで待機する。一方、切替完了フラグがセットされている場合には(S160:YES)、S170にて、書換対象の処理を再開して、切替準備処理を一旦終了する。
次に、コア11が実行する切替処理の手順を説明する。この切替処理は、管理プログラム23に基づいて、コア11の動作中に繰り返し実行される処理である。
切替処理が実行されると、コア11は、図5に示すように、まずS210にて、切替開始要求フラグがセットされているか否かを判断する。ここで、切替開始要求フラグがクリアされている場合には(S210:NO)、切替処理を一旦終了する。一方、切替開始要求フラグがセットされている場合には(S210:YES)、S220にて、切替開始要求フラグをクリアし、S230にて、プログラム読込用のアドレス変換設定を変更する。具体的には、第2記憶領域32に記憶されているプログラムにアクセスしてコア11が処理を実行している場合には、第1記憶領域31に記憶されているプログラムにコア11がアクセスするように、MMU12のアドレス変換表を変更する(図6を参照)。一方、第1記憶領域31に記憶されているプログラムにアクセスしてコア11が処理を実行している場合には、第2記憶領域32に記憶されているプログラムにコア11がアクセスするように、MMU12のアドレス変換表を変更する。
さらにS240にて、プログラム書換用のアドレス変換設定を変更する。具体的には、第1記憶領域31に記憶されているプログラムにアクセスしてコア11が処理を実行する場合には、書換処理において第2記憶領域32にプログラムが書き込まれるように、MMU12のアドレス変換表を変更する。一方、第2記憶領域32に記憶されているプログラムにアクセスしてコア11が処理を実行する場合には、書換処理において第1記憶領域31にプログラムが書き込まれるように、MMU12のアドレス変換表を変更する。その後S250にて、切替完了フラグをセットし、切替処理を一旦終了する。
次に、プログラムの書き換えが完了してからプログラムの切り替えが完了するまでのコア11の動作を説明する。
図7に示すように、書換制御処理による書換処理が完了すると(時刻t1を参照)、書換制御処理は切替準備処理に対して切替準備要求を通知し、書換制御処理による動作を停止した状態となる(時刻t2を参照)。そして切替準備処理が、切替準備要求を確認して、その後に切替準備が完了すると、切替処理に対して切替開始要求を通知し、書換対象の処理を停止する(時刻t3を参照)。
そして切替処理が、切替開始要求を確認すると処理を開始し(時刻t4を参照)、アドレス変換設定を変更し(時刻t5を参照)、その後に切替完了を通知する(時刻t6を参照)。そして、書換制御処理が切替完了を確認するとその動作を再開するとともに、切替準備処理が切替完了を確認すると書換対象の処理を再開させ(時刻t16を参照)、その後に切替処理は処理を終了する(時刻t7を参照)。
このように構成されたECU1は、エンジンEGを制御するための車両制御プログラム21を記憶する記憶領域が設けられ、記憶内容の書き換えが可能なフラッシュROM3と、フラッシュROM3に記憶された車両制御プログラム21に従って処理を行うように構成されたコア11とを備え、リモートセンタからリプログ要求を受信した場合には、フラッシュROM3に記憶された車両制御プログラム21の内容を書き換える書換処理を行うように構成された電子制御装置であって、フラッシュROM3の記憶領域は、互いに領域が重複しないように予め設定された第1記憶領域31および第2記憶領域32に分割され、MMU12は、書換処理によって車両制御プログラム21の内容を書き換える記憶領域として、第1記憶領域31および第2記憶領域32のうちの何れか1つを選択して切り替えることができるとともに、コア11が車両制御プログラム21を読み込むフラッシュROM3の記憶領域として、第1記憶領域31および第2記憶領域32のうちの何れか1つを選択して切り替えることができる。そしてMMU12は、書換処理によって車両制御プログラム21の内容を書き換える記憶領域として、第1記憶領域31および第2記憶領域32のうち、コア11が車両制御プログラム21を読み込むのとは異なる記憶領域を選択して切り替える(S240)。
これにより、車両制御プログラム21に従って処理を行うためにコア11が車両制御プログラム21を読み込む記憶領域から読み込まれた車両制御プログラム21に従った処理をコア11が実行している最中に書換処理が行われても、コア11が車両制御プログラム21を読み込む記憶領域に記憶されている車両制御プログラム21が書き換えられることがない。このため、車両制御プログラム21の実行中であっても車両制御プログラム21を書き換えることができる。
さらに、書換処理による車両制御プログラム21の書き換えが完了した後に、書換処理の動作を停止させる(S60)とともに、書換処理による車両制御プログラム21の書き換えが完了した後に、切替準備が完了したか否かを判断し(S130)、切替準備が完了した場合に(S130:YES)、書換対象の処理の動作を停止させる(S140)。そしてMMU12は、書換処理の動作が停止し、且つ、書換対象の処理の動作が停止した後に、コア11が車両制御プログラム21を読み込むフラッシュROM3の記憶領域として、書換処理により車両制御プログラム21が書き換えられた記憶領域を選択して切り替える(S230)。
このように構成されたECU1では、書換処理による車両制御プログラム21の書き換えが完了した後に、書換処理により書き換えられた車両制御プログラム21の内容、すなわち上記の書換対象の内容に応じて、書換対象の処理を停止させるのに適切なタイミングで、書換対象の処理を停止させた後に、フラッシュROM3の記憶領域から読み込む車両制御プログラム21を切り替えることができる。このため、車両制御プログラム21の実行中に読み込む車両制御プログラム21を切り替えることにより、データの不整合が発生するということがなくなり、車両制御プログラム21の実行中であっても、書き換えられた車両制御プログラム21に切り替えることができる。
また切替準備処理では、書換処理の動作が停止した後であって(S110:YES)、且つ、切替準備が完了した場合に(S130:YES)、書換対象の処理の動作を停止させる(S140)。これにより、切替準備が完了した直後に、書換処理と書換対象の処理の両方を動作停止させることができ、書換処理の動作が停止から切替処理が開始されるまでに要する時間を必要最低限に抑えることができる。
以上説明した実施形態において、フラッシュROM3は本発明における不揮発性メモリ、コア11は本発明における演算部、S10の処理の判断条件は本発明における書換条件、第1記憶領域31および第2記憶領域32は本発明における分割記憶領域、MMU12およびS240の処理は本発明における書換切替手段、MMU12およびS230の処理は本発明における読込切替手段、S60の処理は本発明における第1停止手段、S130の処理の判断条件は本発明における停止判定条件、S140の処理は本発明における第2停止手段である。
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分のみを説明する。
第2実施形態のECU1は、書換制御処理が変更された点以外は第1実施形態と同じである。
書換制御処理が実行されると、コア11は、図8に示すように、まずS410にて、無線通信機9を介して取得したデータに基づいて、リモートセンタからリプログ要求を受信したか否かを判断する。ここで、リプログ要求を受信していないと判断した場合には(S410:NO)、書換制御処理を一旦終了する。一方、リプログ要求を受信した場合には(S410:YES)、S420にて、S20と同様にして、無線通信機9を介してリモートセンタから送信される新たなプログラムをフラッシュROM3に書き込む書換処理を行う。
そしてS430にて、書換処理によるプログラムの書き換えが完了したか否かを判断する。ここで、書き換えが完了していない場合には(S430:NO)、S420に移行して、上述の処理を繰り返す。一方、書き換えが完了した場合には(S430:YES)、S440にて、切替完了フラグをクリアし、さらにS450にて、切替準備要求フラグをセットする。
その後S460にて、切替準備完了フラグがセットされているか否かを判断する。ここで、切替準備完了フラグがクリアされている場合には(S460:NO)、S460の処理を繰り返し、切替準備完了フラグがセットされるまで待機する。一方、切替準備完了フラグがセットされている場合には(S460:YES)、S470にて、切替準備完了フラグをクリアし、さらにS480にて、切替開始要求フラグをセットする。
その後S490にて、切替完了フラグがセットされているか否かを判断する。ここで、切替完了フラグがクリアされている場合には(S490:NO)、S490の処理を繰り返し、切替完了フラグがセットされるまで待機する。一方、切替完了フラグがセットされている場合には(S490:YES)、書換制御処理を一旦終了する。
次に、プログラムの書き換えが完了してからプログラムの切り替えが完了するまでのコア11の動作を説明する。
図9に示すように、書換制御処理による書換処理が完了すると(時刻t11を参照)、書換制御処理は切替準備処理に対して切替準備要求を通知する(時刻t12を参照)。そして切替準備処理が、切替準備要求を確認して、その後に切替準備が完了すると、書換制御処理に対して切替準備完了を通知し、書換対象の処理を停止する(時刻t13を参照)。さらに書換制御処理が、切替準備完了を確認すると、切替処理に対して切替開始要求を通知し、書換制御処理による動作を停止した状態となる(時刻t14を参照)。
そして切替処理が、切替開始要求を確認すると処理を開始し(時刻t15を参照)、アドレス変換設定を変更し(時刻t16を参照)、その後に切替完了を通知する(時刻t17を参照)。そして、書換制御処理が切替完了を確認するとその動作を再開するとともに、切替準備処理が切替完了を確認すると書換対象の処理を再開させ(時刻t17を参照)、その後に切替処理は処理を終了する(時刻t18を参照)。
このように構成されたECU1において、書換制御処理では、書換処理による車両制御プログラム21の書き換えが完了した後であって(S430:YES)、書換対象の処理の動作が停止した後に(S460:YES)、書換処理の動作を停止させる(S490)。これにより、書換処理と書換対象の処理の両方が動作停止するのは、書換制御処理により書換処理の動作を停止させた直後となる。すなわち、切替準備処理側ではなく書換制御処理側で切替処理を開始させるか否かが決定される。このため、切替準備処理側で異常が発生することにより、書換処理と書換対象の処理の両方が動作停止していない状態で切替処理が開始されてしまうという事態の発生を抑制することができる。
以上説明した実施形態において、S490の処理は本発明における第1停止手段である。
(第3実施形態)
以下に本発明の第3実施形態を図面とともに説明する。なお第3実施形態では、第1実施形態と異なる部分のみを説明する。
第3実施形態のECU1は、CPU2の構成と、書換制御処理と、切替準備処理と、切替処理が変更された点以外は第1実施形態と同じである。
まずCPU2は、図10に示すように、コア11の構成が変更された点以外は第1実施形態と同じである。そしてコア11は、コア11のリソースをクロック単位で時分割して使用することで仮想的に複数のコアが存在しているように動作させるCPU仮想化技術を利用して、仮想コア41,42を並列動作させる。さらにコア11は、各仮想コアの動作状態を管理する機能43(以下、ハイパーバイザ43という)を搭載している。
そして仮想コア41は、車両制御プログラム21を実行するように構成されている。また仮想コア42は、書換制御プログラム22を実行するように構成されている。また、ハイパーバイザ43が動作しているときには、仮想コア41,42はその動作を停止する。
まず、仮想コア42が実行する書換制御処理の手順を説明する。この書換制御処理は、仮想コア42の動作中に繰り返し実行される処理である。
書換制御処理が実行されると、仮想コア42は、図11に示すように、まずS510にて、無線通信機9を介して取得したデータに基づいて、リモートセンタからリプログ要求を受信したか否かを判断する。ここで、リプログ要求を受信していないと判断した場合には(S510:NO)、書換制御処理を一旦終了する。一方、リプログ要求を受信した場合には(S510:YES)、S520にて、切替完了フラグがセットされているか否かを判断する。
ここで、切替完了フラグがクリアされている場合には(S520:NO)、S520の処理を繰り返し、切替完了フラグがセットされるまで待機する。一方、切替完了フラグがセットされている場合には(S520:YES)、S530にて、S20と同様にして、無線通信機9を介してリモートセンタから送信される新たなプログラムをフラッシュROM3に書き込む書換処理を行う。
そしてS540にて、書換処理によるプログラムの書き換えが完了したか否かを判断する。ここで、書き換えが完了していない場合には(S540:NO)、S530に移行して、上述の処理を繰り返す。一方、書き換えが完了した場合には(S540:YES)、S550にて、切替完了フラグをクリアし、さらにS560にて、切替準備要求フラグをセットして、書換制御処理を一旦終了する。
次に、仮想コア41が実行する切替準備処理の手順を説明する。この切替準備処理は、仮想コア41の動作中に繰り返し実行される処理である。
切替準備処理が実行されると、仮想コア41は、図12に示すように、まずS610にて、切替準備要求フラグがセットされているか否かを判断する。
ここで、切替準備要求フラグがクリアされている場合には(S610:NO)、切替準備処理を一旦終了する。一方、切替準備要求フラグがセットされている場合には(S610:YES)、S620にて、切替準備要求フラグをクリアし、S630にて、S130と同様にして、切替準備が完了したか否かを判断する。
ここで、切替準備が完了していない場合には(S630:NO)、S630の処理を繰り返し、切替準備が完了するまで待機する。一方、切替準備が完了した場合には(S630:YES)、S640にて、ハイパーバイザ43を呼び出し、切替準備処理を一旦終了する。これにより、ハイパーバイザ43が動作を開始し、仮想コア41と仮想コア42はその動作を停止する。
次に、ハイパーバイザ43が実行する切替処理の手順を説明する。この切替処理は、仮想コア41の切替準備処理においてハイパーバイザ43を呼び出すことによりハイパーバイザ43が動作を開始した直後に実行される処理である。
切替処理が実行されると、ハイパーバイザ43は、図13に示すように、まずS710にて、S230と同様にして、プログラム読込用のアドレス変換設定を変更する。さらにS720にて、S240と同様にして、プログラム書換用のアドレス変換設定を変更する。その後S730にて、切替完了フラグをセットする。そしてS740にて、ハイパーバイザ43の動作を終了させて、切替処理を終了する。これにより、仮想コア41と仮想コア42はその動作を再開する。
次に、プログラムの書き換えが完了してからプログラムの切り替えが完了するまでの仮想コア41,42とハイパーバイザ43の動作を説明する。
図14に示すように、仮想コア42による書換処理が完了すると(時刻t21を参照)、仮想コア42は仮想コア41に対して切替準備要求を通知する(時刻t22を参照)。そして仮想コア41が、切替準備要求を確認して、その後に切替準備が完了するとハイパーバイザ43を呼び出す(時刻t23を参照)。
これにより、ハイパーバイザ43が動作を開始するとともに、仮想コア41と仮想コア42はその動作を停止する(時刻t24を参照)。そして、ハイパーバイザ43は、アドレス変換設定を変更し(時刻t25を参照)、その後、ハイパーバイザ43の動作を終了させる(時刻t26を参照)。これにより、仮想コア41,42はその動作を再開する。
このように構成されたECU1は、エンジンEGを制御するための車両制御プログラム21を記憶する記憶領域が設けられ、記憶内容の書き換えが可能なフラッシュROM3と、フラッシュROM3に記憶された車両制御プログラム21に従って処理を行うように構成されたコア11とを備え、リモートセンタからリプログ要求を受信した場合には、フラッシュROM3に記憶された車両制御プログラム21の内容を書き換える書換処理を行うように構成された電子制御装置であって、フラッシュROM3の記憶領域は、互いに領域が重複しないように予め設定された第1記憶領域31および第2記憶領域32に分割され、MMU12は、書換処理によって車両制御プログラム21の内容を書き換える記憶領域として、第1記憶領域31および第2記憶領域32のうちの何れか1つを選択して切り替えることができるとともに、コア11が車両制御プログラム21を読み込むフラッシュROM3の記憶領域として、第1記憶領域31および第2記憶領域32のうちの何れか1つを選択して切り替えることができる。そしてMMU12は、書換処理によって車両制御プログラム21の内容を書き換える記憶領域として、第1記憶領域31および第2記憶領域32のうち、コア11が車両制御プログラム21を読み込むのとは異なる記憶領域を選択して切り替える(S720)。
これにより、車両制御プログラム21に従って処理を行うためにコア11が車両制御プログラム21を読み込む記憶領域から読み込まれた車両制御プログラム21に従った処理をコア11が実行している最中に書換処理が行われても、コア11が車両制御プログラム21を読み込む記憶領域に記憶されている車両制御プログラム21が書き換えられることがない。このため、車両制御プログラム21の実行中であっても車両制御プログラム21を書き換えることができる。
さらに、書換処理による車両制御プログラム21の書き換えが完了した後に、書換処理の動作を停止させる(S640)とともに、書換処理による車両制御プログラム21の書き換えが完了した後に、切替準備が完了したか否かを判断し(S630)、切替準備が完了した場合に(S630:YES)、書換対象の処理の動作を停止させる(S640)。そしてMMU12は、書換処理の動作が停止し、且つ、書換対象の処理の動作が停止した後に、コア11が車両制御プログラム21を読み込むフラッシュROM3の記憶領域として、書換処理により車両制御プログラム21が書き換えられた記憶領域を選択して切り替える(S710)。
したがって、第3実施形態のECU1は、第1実施形態のECU1と同様の効果を奏する。
さらに、コア11は、単一のコアのリソースを時分割して使用することで仮想的に2つの仮想コア41,42が存在しているように動作し、仮想コア42は書換処理を実行し、仮想コア41は車両制御プログラム21を実行するように構成され、書換処理を実行する仮想コア42の動作を停止させることにより、書換処理の動作を停止させ(S640)、仮想コア41の動作を停止させることにより、書換対象の処理を停止させる(S640)。
CPU仮想化技術を利用して複数の仮想コアを並列動作させる場合には、ハイパーバイザを呼び出してハイパーバイザモードに移行することで、全ての仮想コアを停止させることが可能である。そして、ハイパーバイザモードへの移行はハードウェアにより実行されるものであり1命令を実行するだけでよい。このため、書換処理と書換対象の処理を停止させるのに要する時間または処理を、第1,2実施形態のようにソフトウェアにより停止させる場合と比較して、非常に少なくすることができる。
以上説明した実施形態において、S510の処理の判断条件は本発明における書換条件、MMU12およびS720の処理は本発明における書換切替手段、MMU12およびS710の処理は本発明における読込切替手段、S640の処理は本発明における第1停止手段および第2停止手段、S630の処理の判断条件は本発明における停止判定条件である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、互いに領域が重複しないように予め設定された2つの記憶領域(第1記憶領域31と第2記憶領域32)がフラッシュROM3内に設けられているものを示したが、互いに領域が重複しない3つ以上の記憶領域をフラッシュROM3内に設けるようにしてもよい。
また上記実施形態では、1つのフラッシュROM3内に第1記憶領域31と第2記憶領域32が設けられているものを示したが、第1記憶領域31と第2記憶領域32をそれぞれ異なるフラッシュROM内に設けるようにしてもよい。
また上記第1実施形態では、書換対象の処理が実行中でない場合に切替準備が完了したと判断して(S130:YES)、書換対象の処理を停止する(S140)ものを示した。しかし、書換対象が突然書き換えられても問題がない場合(例えば、ユーザインタフェース(UI)の表示データ等を書き換える場合)には、書換対象の処理が実行中であるか否かを判断する処理(S130)と、書換対象の処理を停止する処理(S140)を省略して、書換処理による車両制御プログラム21の書き換えが完了した直後に、切替処理が開始されるようにしてもよい。
また上記第3実施形態では、書換対象の処理が実行中でない場合に切替準備が完了したと判断して(S630:YES)、ハイパーバイザ43を呼び出し(S640)、書換対象の処理を停止するものを示した。しかし、書換対象が突然書き換えられても問題がない場合には、書換対象の処理が実行中であるか否かを判断する処理(S630)を省略して、書換処理による車両制御プログラム21の書き換えが完了した直後にハイパーバイザ43を呼び出すようにしてもよい。
1…ECU、3…フラッシュROM、11…コア、12…MMU、21…車両制御プログラム、22…書換制御プログラム、23…管理プログラム、31…第1記憶領域、32…第2記憶領域、41,42…仮想コア、43…ハイパーバイザ

Claims (1)

  1. 所定の制御対象を制御するための制御プログラムを記憶する記憶領域が設けられ、記憶内容の書き換えが可能な不揮発性メモリ(3)と、
    前記不揮発性メモリに記憶された前記制御プログラムに従って処理を行うように構成された演算部(11)とを備え、
    予め設定された書換条件が成立した場合には、前記不揮発性メモリに記憶された前記制御プログラムの内容を書き換える書換処理を行うように構成された電子制御装置(1)であって、
    前記不揮発性メモリの前記記憶領域は、互いに領域が重複しないように予め設定された複数の分割記憶領域(31,32)に分割され、
    前記書換処理によって前記制御プログラムの内容を書き換える前記記憶領域として、前記複数の分割記憶領域のうちの何れか1つを選択して切り替えることができる書換切替手段(12,S240,S720)と、
    前記制御プログラムに従って処理を行うために前記演算部が前記制御プログラムを読み込む前記不揮発性メモリの前記記憶領域として、前記複数の分割記憶領域のうちの何れか1つを選択して切り替えることができる読込切替手段(12,S230,S710)と、
    前記書換処理による前記制御プログラムの書き換えが完了した後に、前記書換処理の動作を停止させる第1停止手段(S60,S490,S640)と、
    前記書換処理による前記制御プログラムの書き換えが完了した後に、前記制御プログラムの中で前記書換処理により内容が書き換えられた部分である書換対象の処理を停止させてもよいことを示す予め設定された停止判定条件が成立したか否かを判断し、前記停止判定条件が成立した場合に、前記書換対象の処理の動作を停止させる第2停止手段(S140,S640)とを備え、
    前記読込切替手段は、
    前記第1停止手段により前記書換処理の動作が停止し、且つ、前記第2停止手段により前記書換対象の処理の動作が停止した後に、前記書換処理により前記制御プログラムが書き換えられた前記分割記憶領域を選択して切り替え、
    前記書換切替手段は、
    前記書換処理によって前記制御プログラムの内容を書き換える前記記憶領域として、前記複数の分割記憶領域のうち、前記読込切替手段が選択しているのとは異なる前記分割記憶領域を選択して切り替え、
    前記演算部は、単一のコアのリソースを時分割して使用することで仮想的に複数のコア(41,42)が存在しているように動作し、
    前記演算部において仮想的に存在しているコアを仮想コア(41,42)として、複数の前記仮想コアのうち、1つの前記仮想コア(42)は前記書換処理を実行し、前記書換処理を実行する前記仮想コアとは異なる別の1つの前記仮想コア(41)は前記制御プログラムを実行するように構成され、
    前記第1停止手段(S640)は、前記書換処理を実行する前記仮想コアの動作を停止させることにより、前記書換処理の動作を停止させ、
    前記第2停止手段(S640)は、前記制御プログラムを実行する前記仮想コアの動作を停止させることにより、前記書換対象の処理を停止させる
    ことを特徴とする電子制御装置。
JP2012128210A 2012-06-05 2012-06-05 電子制御装置 Active JP5900168B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012128210A JP5900168B2 (ja) 2012-06-05 2012-06-05 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012128210A JP5900168B2 (ja) 2012-06-05 2012-06-05 電子制御装置

Publications (2)

Publication Number Publication Date
JP2013254263A JP2013254263A (ja) 2013-12-19
JP5900168B2 true JP5900168B2 (ja) 2016-04-06

Family

ID=49951736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012128210A Active JP5900168B2 (ja) 2012-06-05 2012-06-05 電子制御装置

Country Status (1)

Country Link
JP (1) JP5900168B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6165106B2 (ja) * 2014-05-30 2017-07-19 三菱電機株式会社 設備機器システム、および、コントローラ
JP6702161B2 (ja) 2016-11-30 2020-05-27 株式会社デンソー 車載電子制御装置
JP6596455B2 (ja) * 2017-02-22 2019-10-23 日立オートモティブシステムズ株式会社 自動車用電子制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4548601B2 (ja) * 2005-04-20 2010-09-22 株式会社デンソー 自動車用制御ユニット
JP2010015252A (ja) * 2008-07-01 2010-01-21 Kyocera Corp 情報処理装置、基地局及び実行プログラム切り替え方法
JP2010198307A (ja) * 2009-02-25 2010-09-09 Hitachi Automotive Systems Ltd 自動車用制御装置

Also Published As

Publication number Publication date
JP2013254263A (ja) 2013-12-19

Similar Documents

Publication Publication Date Title
JP6832374B2 (ja) ソフトウェア更新装置、車両及びソフトウェア更新方法
JP5316128B2 (ja) 故障診断システム、電子制御ユニット、故障診断方法
JP5900168B2 (ja) 電子制御装置
JP5533789B2 (ja) 車載電子制御装置
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
US8464016B2 (en) Method and device for switching over in a memory for a control device
JP5835271B2 (ja) 電子制御装置およびメモリ書換方法
CN103003763B (zh) 内部存储器的访问协调的计算机装置和运行方法
JP2014004858A (ja) 車両制御装置
JP6512087B2 (ja) 車両用制御装置
JP4522799B2 (ja) 半導体回路装置及び暴走検出方法
CN115657537A (zh) 车辆及电子控制单元的标定数据管理方法、装置及介质
JP5700660B2 (ja) 車両用電子制御装置
JP2009053993A (ja) ファイルシステム管理装置
CN115113895A (zh) 程序更新控制装置、程序更新控制方法和计算机可读存储介质
JP2013232028A (ja) マイクロコンピュータ
JP2012103945A (ja) プログラム処理装置
JP2020052960A (ja) 車両制御装置および車両制御方法
JP6394291B2 (ja) 電子制御装置およびメモリ書換方法
JP6168847B2 (ja) マルチコアシステム
US20160124776A1 (en) Process for controlling a processing unit improving the management of the tasks to be executed, and corresponding processing unit
KR101956843B1 (ko) 다차종용 통합 소프트웨어를 이용한 차량의 캘리브레이션 데이터 적용 방법 및 그 장치
US8180957B2 (en) Memory control unit and memory control method
CN117917641A (zh) 信息处理装置、车辆、信息处理方法以及记录有程序的记录介质
JP2021060747A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151014

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R151 Written notification of patent or utility model registration

Ref document number: 5900168

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

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