JP2012093961A - 制御装置及び方法、並びにプログラム書込システム - Google Patents
制御装置及び方法、並びにプログラム書込システム Download PDFInfo
- Publication number
- JP2012093961A JP2012093961A JP2010240806A JP2010240806A JP2012093961A JP 2012093961 A JP2012093961 A JP 2012093961A JP 2010240806 A JP2010240806 A JP 2010240806A JP 2010240806 A JP2010240806 A JP 2010240806A JP 2012093961 A JP2012093961 A JP 2012093961A
- Authority
- JP
- Japan
- Prior art keywords
- control
- program
- unit
- rewrite
- writing
- 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
【課題】効率よく、制御プログラムの書換えを行うことができるようにする。
【解決手段】メインCPU11−1では、プログラム書換装置2からプログラム書換え情報が受信され、プログラム書換え情報から制御装置IDと、CPUのIDと、更新データが抽出され、制御装置IDが自機に対応する場合、CPUのIDにより識別されるメインCPU11−1用のメインCPU更新用制御プログラムが、第1の不揮発性メモリ37に書き込まれ、CPUのIDにより識別されるサブCPU11−2用のサブCPU更新用制御プログラムが、サブCPU11−2に送信される。サブCPU11−2では、メインCPU11−1からのサブCPU更新用制御プログラムが、第2の不揮発性メモリ55に書き込まれる。本発明は、例えば、車両に搭載される制御装置と、その制御装置のプログラムを書換えるプログラム書換装置からなるプログラム書換システムに適用することができる。
【選択図】図4
【解決手段】メインCPU11−1では、プログラム書換装置2からプログラム書換え情報が受信され、プログラム書換え情報から制御装置IDと、CPUのIDと、更新データが抽出され、制御装置IDが自機に対応する場合、CPUのIDにより識別されるメインCPU11−1用のメインCPU更新用制御プログラムが、第1の不揮発性メモリ37に書き込まれ、CPUのIDにより識別されるサブCPU11−2用のサブCPU更新用制御プログラムが、サブCPU11−2に送信される。サブCPU11−2では、メインCPU11−1からのサブCPU更新用制御プログラムが、第2の不揮発性メモリ55に書き込まれる。本発明は、例えば、車両に搭載される制御装置と、その制御装置のプログラムを書換えるプログラム書換装置からなるプログラム書換システムに適用することができる。
【選択図】図4
Description
本発明は、制御装置及び方法、並びにプログラム書込システムに関し、特に、効率よく、制御プログラムの書換えを行うことができるようにした制御装置及び方法、並びにプログラム書込システムに関する。
従来より、制御装置に内蔵される制御プログラムや制御データが、その制御装置に不適合なものに書換えられてしまうことを防止する技術が提案されている(例えば、特許文献1参照)。
特許文献1には、制御プログラムがフラッシュROMに格納された制御装置において、書換え指令を受けると、外部装置(プログラム書換装置)からの識別コードを受信し、受信した識別コードと書換え対象となる制御装置のIDとが一致している場合にのみ、外部装置から送信されてくる書換制御プログラムを転送し実行する構成が開示されている。これにより、外部装置から送信されてくる新たな制御プログラムが適切なプログラムであることを判定してから、制御プログラムの書換えが行われることになる。
また、車両に搭載される制御装置には、高性能化や高機能化のために、1台の制御装置に複数のCPU(Central Processing Unit)を搭載しているものがある。
特許文献1による制御プログラムの書換え方法であると、制御プログラムを書換える対象となる装置のCPUが書換え対象を識別するための装置識別IDが1組しかなく、1つのCPUが制御プログラムを書換えるためのデータを用いて自身の制御プログラムの書換えを行う構成となっているため、複数のCPUの制御プログラムを書換えることはできない。
このような複数のCPUの制御プログラムを書換える技術としては、例えば、特許文献2が知られている。この特許文献2には、メインCPU用の制御プログラムと、サブCPU用の制御プログラムとに分けて、別々に書換えを行う技術が提案されている。
しかしながら、特許文献2による制御プログラムの書換え方法であると、制御プログラムの書換えを一括して行うことができない。特に、車両に搭載される制御装置の場合、出荷後に制御プログラムを書換える場合には、多数の制御装置が書換えの対象となることが多く、そのため、複数回に分けて書換え作業を行うことにより、膨大な作業コストが発生してしまう。また、その作業の際、複数回の操作が必要となることから、人為的な操作ミスの発生する可能性が増大する。
また、複数のCPUの制御プログラムを一括して書換える技術が提案されている(例えば、特許文献3参照)。
ところで、特許文献1のプログラム書換装置は、既に広範囲に普及しており、複数のCPUを搭載した制御装置の制御プログラムを書換える場合、このプログラム書換装置を用いて、複数のCPUの制御プログラムを書換えるのが現実的である。
しかしながら、特許文献3による制御プログラムの書換え方法では、更新用データとしての、複数のCPUのアプリケーションとデータを、それぞれ別々に管理しているため、制御装置の識別情報と、1つのCPUのためのプログラム書換え情報で構成された書換え情報を用いて、制御プログラムの書換えを行う、特許文献1のプログラム書換装置を用いることができない。
また、上述したように、特許文献2による制御プログラムの書換え方法では、制御プログラムの書換えを一括して行うことができないので、多数の制御装置の制御プログラムを書換える場合には、膨大な作業コストが発生してしまう。
このように、従来技術では、制御プログラムの書換え対象となる制御装置が、メインCPUに加えてサブCPUなど、複数のCPUを備える場合に、各CPU毎に適切な制御プログラムを識別して、一括して書換えることができなかった。
本発明はこのような状況に鑑みてなされたものであり、プログラム書換装置によって、制御装置の識別情報と、1つのCPUのためのプログラム書換え情報で構成された書換え情報を用いて、複数のCPUが搭載された制御装置の制御プログラムの書換えを行うに際して、1回の書き込み指令をするだけで、制御装置側において、適切なプログラムのみを識別して、複数のCPUの制御プログラムを書換えることができるようにすることを目的とするものである。
本発明の制御装置は、第1の制御手段と、第2の制御手段と、前記第1の制御手段が用いる第1のプログラムを保持する第1の保持手段と、前記第2の制御手段が用いる第2のプログラムを保持する第2の保持手段とを有する制御装置において、前記第1の制御手段は、プログラムの書き込みを行う外部装置から書き込み情報を受信する書込情報受信手段と、前記書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、前記第1の保持手段又は前記第2の保持手段に書き込むためのプログラムを抽出する抽出手段と、前記制御装置識別情報が自機に対応するか否かを判定する識別情報判定手段と、前記制御装置識別情報が自機に対応すると判定された場合、前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込む第1の書き込み手段と、前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する書込情報送信手段とを備え、前記第2の制御手段は、前記第1の制御手段から送信されてくる、前記第2の制御手段が用いる第2のプログラムを、前記第2の保持手段に書き込む第2の書き込み手段を備える。
本発明の制御装置は、接続対象を制御する装置であって、例えば、車両に搭載されるエンジン制御装置(ECU(Engine Control Unit))などの電子制御ユニットとして構成される。また、車両は、例えば、各種の自動車、二輪車などにより構成される。なお、本発明の制御装置は、車載装置に限られるものではなく、複数の制御手段を備える電子機器であればよい。外部装置は、制御装置の制御プログラムを書換えるプログラム書換装置である。また、本発明の制御装置は、制御装置に既に書き込まれている制御プログラムを書換えるのみに限られるものではなく、制御装置に新たに制御プログラムを書き込むことに用いることができる。
第1の制御手段および第2の制御手段は、例えばCPU(Central Processing Unit)などの各装置の制御などを行う装置であって、例えば、第1の制御手段がメインCPUとして構成され、第2の制御手段がサブCPUとして構成される。また、第1の保持手段及び第2の保持手段は、フラッシュメモリなどの不揮発性メモリであって、第1の保持手段は、メインCPUが用いる制御プログラムを記憶する第1の不揮発性メモリから構成され、第2の保持手段は、サブCPUが用いる制御プログラムを記憶する第2の不揮発性メモリから構成される。
書込情報受信手段は、例えば、メインCPUの書換情報受信部により構成される。書換情報受信部は、プログラム書換装置から書換え情報を受信する。この書換え情報には、例えば、対象とする制御装置を識別するための制御装置ID、いずれの制御手段が用いる書換え情報であるかを識別するためのCPUのID、及び、第1の保持手段又は第2の保持手段に書き込むためのメインCPU更新用制御プログラム又はサブCPU更新用制御プログラムが格納されている。
抽出手段は、例えば、メインCPUの書換データ抽出部により構成される。書換データ抽出部は、書換え情報から、制御装置ID、CPUのID、及びメインCPU更新用制御プログラム又はサブCPU更新用制御プログラムを抽出する。識別情報判定手段は、例えば、メインCPUの書換データ抽出部により構成される。書換データ抽出部は、制御装置IDが自機に対応するか否かを判定する。
第1の書き込み手段は、例えば、メインCPUの第1の不揮発性メモリ書き込み部により構成される。第1の不揮発性メモリ書き込み部は、制御装置IDが自機に対応すると判定された場合、抽出されたCPUのIDにより識別されるメインCPUが用いるメインCPU更新用制御プログラムを、第1の不揮発性メモリに書き込む。書込情報送信手段は、例えば、メインCPUの第2の不揮発性メモリ書き込み部により構成される。第2の不揮発性メモリ書き込み部は、サブCPUが用いるサブCPU更新用制御プログラムを、サブCPUに送信する。
第2の書き込み手段は、例えば、サブCPUの第2の不揮発性メモリ書き込み部により構成される。第2の不揮発性メモリ書き込み部は、メインCPUから送信されてくる、サブCPU更新用制御プログラムを、第2の不揮発性メモリに書き込む。
本発明の制御装置においては、第1の制御手段によって、プログラムの書き込みを行う外部装置から書き込み情報が受信され、書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、第1の保持手段又は第2の保持手段に書き込むためのプログラムが抽出され、制御装置識別情報が自機に対応するか否かが判定され、制御装置識別情報が自機に対応すると判定された場合、第1の制御手段が用いる第1のプログラムが、第1の保持手段に書き込まれ、第2の制御手段が用いる第2のプログラムが、第2の制御手段に送信され、第2の制御手段によって、第1の制御手段から送信されてくる、第2の制御手段が用いる第2のプログラムが、第2の保持手段に書き込まれる。
したがって、プログラム書換装置からの1回の書き込み指令に基づいて、複数のCPUの制御プログラムを一括で書換えることができるので、効率よく、制御プログラムの書換えを行うことができる。
前記抽出手段は、前記書き込み情報から、いずれの制御手段が用いる書き込み情報であるかを識別するための書き込み対象識別情報をさらに抽出し、前記第1の書き込み手段は、前記制御装置識別情報が自機に対応すると判定された場合、抽出された前記書き込み対象識別情報により識別される前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込み、前記書込情報送信手段は、抽出された前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する。
前記第1の制御手段は、前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを書き込むか否かを判定する書込対象判定手段をさらに備え、前記書込情報送信手段は、前記第2のプログラムを書き込むと判定された場合、前記第2のプログラムを、前記第2の制御手段に送信することができる。
書込対象判定手段は、例えば、メインCPUの書換対象判定部により構成される。書換対象判定部は、サブCPU更新用制御プログラムを書換えるか否かを判定し、第2の不揮発性メモリ書き込み部は、サブCPU更新用制御プログラムを書換えると判定された場合、サブCPUが用いるサブCPU更新用制御プログラムを、サブCPUに送信する。
これにより、メインCPUの制御プログラムのみならず、サブCPUの制御プログラムの更新がある場合には、サブCPUの制御プログラムをも書換えることができる。
前記第2の制御手段は、前記第2のプログラムの書き込み結果を、前記第1の制御手段に送信する第1の書込結果送信手段をさらに備え、前記第1の制御手段は、前記第2の制御手段から送信されてくる、前記第2のプログラムの書き込み結果を受信する書込結果受信手段と、受信された前記第2のプログラムの書き込み結果を、前記第1のプログラムの書き込み結果とともに、前記外部装置に送信する第2の書込結果送信手段とをさらに備える。
第1の書込結果送信手段は、例えば、サブCPUの書換結果送受信部により構成される。書換結果送受信部は、サブCPUの書換え結果を、メインCPUに送信する。書込結果受信手段及び第2の書込結果送信手段は、例えば、メインCPUの書換結果送受信部により構成される。書換結果送受信部は、受信されたサブCPUの書換え結果を、メインCPUの書換え結果とともに、プログラム書換装置に送信する。
これにより、プログラム書換装置に対して、メインCPUとサブCPUの書換え結果をまとめて通知することができる。
前記第1の制御手段は、前記外部装置から送信されてくる、対象とする制御手段の再起動を指示するためのリセット要求に応じて、前記第1の制御手段を再起動する第1のリセット手段と、前記第2のプログラムが書き込まれた場合、前記リセット要求を前記第2の制御手段に送信するリセット要求送信手段とをさらに備え、前記第2の制御手段は、前記第1の制御手段から送信されてくる、前記リセット要求に応じて、前記第2の制御手段を再起動する第2のリセット手段とをさらに備える。
第1のリセット手段及びリセット要求送信手段は、例えばメインCPUのリセット部により構成される。リセット部は、プログラム書換装置から送信されてくる、対象とするCPUの再起動を指示するためのリセット要求に応じて、メインCPUを再起動させるとともに、サブCPUの制御プログラムが書換えられた場合、リセット要求をサブCPUに送信する。第2のリセット手段は、例えばサブCPUのリセット部により構成される。リセット部は、メインCPUから送信されてくるリセット要求に応じて、サブCPUを再起動させる。
これにより、複数のCPUの制御プログラムを書換えた後、適切な順序でCPUを再起動することができる。
本発明の制御方法は、第1の制御手段と、第2の制御手段と、前記第1の制御手段が用いる第1のプログラムを保持する第1の保持手段と、前記第2の制御手段が用いる第2のプログラムを保持する第2の保持手段とを有する制御装置の制御方法において、前記第1の制御手段は、プログラムの書き込みを行う外部装置から書き込み情報を受信し、前記書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、前記第1の保持手段又は前記第2の保持手段に書き込むためのプログラムを抽出し、前記制御装置識別情報が自機に対応するか否かを判定し、前記制御装置識別情報が自機に対応すると判定された場合、前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込み、前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信するステップを含み、前記第2の制御手段は、前記第1の制御手段から送信されてくる、前記第2の制御手段が用いる第2のプログラムを、前記第2の保持手段に書き込むステップを含む。
本発明の制御方法においては、第1の制御手段によって、プログラムの書き込みを行う外部装置から書き込み情報が受信され、書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、第1の保持手段又は第2の保持手段に書き込むためのプログラムが抽出され、制御装置識別情報が自機に対応するか否かが判定され、制御装置識別情報が自機に対応すると判定された場合、第1の制御手段が用いる第1のプログラムが、第1の保持手段に書き込まれ、識別される第2の制御手段が用いる第2のプログラムが、第2の制御手段に送信され、第2の制御手段によって、第1の制御手段から送信されてくる、第2の制御手段が用いる第2のプログラムが、第2の保持手段に書き込まれる。
したがって、プログラム書換装置からの1回の書き込み指令に基づいて、複数のCPUの制御プログラムを一括で書換えることができるので、効率よく、制御プログラムの書換えを行うことができる。
本発明のプログラム書込システムは、第1の制御手段と、第2の制御手段と、前記第1の制御手段が用いる第1のプログラムを保持する第1の保持手段と、前記第2の制御手段が用いる第2のプログラムを保持する第2の保持手段とを有する制御装置と、前記制御装置のプログラムの書き込みを行う外部装置とからなるプログラム書込システムにおいて、前記外部装置は、書き込み情報を取得する書込情報取得手段と、取得された前記書き込み情報を前記制御装置に送信する第1の書込情報送信手段とを備え、前記制御装置の前記第1の制御手段は、前記外部装置から送信されてくる、書き込み情報を受信する書込情報受信手段と、前記書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、前記第1の保持手段又は前記第2の保持手段に書き込むためのプログラムを抽出する抽出手段と、前記制御装置識別情報が自機に対応するか否かを判定する識別情報判定手段と、前記制御装置識別情報が自機に対応すると判定された場合、前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込む第1の書き込み手段と、前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する第2の書込情報送信手段とを備え、前記制御装置の前記第2の制御手段は、前記第1の制御手段から送信されてくる、前記第2の制御手段が用いる第2のプログラムを、前記第2の保持手段に書き込む第2の書き込み手段を備える。
本発明のプログラム書込システムは、例えば、外部装置としてのプログラム書換装置と、接続対象を制御する制御装置から構成される。
本発明の外部装置の、書込情報取得手段は、例えば、書換情報取得部により構成される。書換情報取得部は、書換え情報を取得する。第1の書込情報送信手段は、例えば、書換情報送信部により構成される。書換情報送信部は、取得された書換え情報を制御装置に送信する。
本発明の制御装置の、第1の制御手段および第2の制御手段は、例えばCPU(Central Processing Unit)などの各装置の制御などを行う装置であって、例えば、第1の制御手段がメインCPUとして構成され、第2の制御手段がサブCPUとして構成される。また、第1の保持手段は、メインCPUが用いる制御プログラムを記憶する第1の不揮発性メモリから構成され、第2の保持手段は、サブCPUが用いる制御プログラムを記憶する第2の不揮発性メモリから構成される。
書込情報受信手段は、例えば、メインCPUの書換情報受信部により構成される。書換情報受信部は、プログラム書換装置から書換え情報を受信する。この書換え情報には、例えば、対象とする制御装置を識別するための制御装置ID、いずれの制御手段が用いる書換え情報であるかを識別するためのCPUのID、及び、第1の保持手段又は第2の保持手段に書き込むためのメインCPU更新用制御プログラム又はサブCPU更新用制御プログラムが格納されている。
抽出手段は、例えば、メインCPUの書換データ抽出部により構成される。書換データ抽出部は、書換え情報から、制御装置ID、CPUのID、及びメインCPU更新用制御プログラム又はサブCPU更新用制御プログラムを抽出する。識別情報判定手段は、例えば、メインCPUの書換データ抽出部により構成される。書換データ抽出部は、制御装置IDが自機に対応するか否かを判定する。
第1の書き込み手段は、例えば、メインCPUの第1の不揮発性メモリ書き込み部により構成される。第1の不揮発性メモリ書き込み部は、制御装置IDが自機に対応すると判定された場合、抽出されたCPUのIDにより識別されるメインCPUが用いるメインCPU更新用制御プログラムを、第1の不揮発性メモリに書き込む。第2の書込情報送信手段は、例えば、メインCPUの第2の不揮発性メモリ書き込み部により構成される。第2の不揮発性メモリ書き込み部は、サブCPUが用いるサブCPU更新用制御プログラムを、サブCPUに送信する。
第2の書き込み手段は、例えば、サブCPUの第2の不揮発性メモリ書き込み部により構成される。第2の不揮発性メモリ書き込み部は、メインCPUから送信されてくる、サブCPU更新用制御プログラムを、第2の不揮発性メモリに書き込む。
本発明のプログラム書込システムにおいては、外部装置によって、書き込み情報が取得され、取得された書き込み情報が制御装置に送信され、制御装置の第1の制御手段によって、外部装置から送信されてくる、書き込み情報が受信され、書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、第1の保持手段又は第2の保持手段に書き込むためのプログラムが抽出され、制御装置識別情報が自機に対応するか否かが判定され、制御装置識別情報が自機に対応すると判定された場合、第1の制御手段が用いる第1のプログラムが、第1の保持手段に書き込まれ、第2の制御手段が用いる第2のプログラムが、第2の制御手段に送信され、制御装置の第2の制御手段によって、第1の制御手段から送信されてくる、第2の制御手段が用いる第2のプログラムが、第2の保持手段に書き込まれる。
したがって、プログラム書換装置からの1回の書き込み指令に基づいて、複数のCPUの制御プログラムを一括で書換えることができるので、効率よく、制御プログラムの書換えを行うことができる。
前記抽出手段は、前記書き込み情報から、いずれの制御手段が用いる書き込み情報であるかを識別するための書き込み対象識別情報をさらに抽出し、前記第1の書き込み手段は、前記制御装置識別情報が自機に対応すると判定された場合、抽出された前記書き込み対象識別情報により識別される前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込み、前記書込情報送信手段は、抽出された前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する。
前記制御装置の前記第1の制御手段は、前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを書き込むか否かを判定する書込対象判定手段をさらに備え、前記第2の書込情報送信手段は、前記第2のプログラムを書き込むと判定された場合、前記第2のプログラムを、前記第2の制御手段に送信する。
書込対象判定手段は、例えば、メインCPUの書換対象判定部により構成される。書換対象判定部は、サブCPU更新用制御プログラムを書換えるか否かを判定し、第2の不揮発性メモリ書き込み部は、サブCPU更新用制御プログラムを書換えると判定された場合、サブCPUが用いるサブCPU更新用制御プログラムを、サブCPUに送信する。
これにより、メインCPUの制御プログラムのみならず、サブCPUの制御プログラムの更新がある場合には、サブCPUの制御プログラムをも書換えることができる。
前記制御装置の前記第2の制御手段は、前記第2のプログラムの書き込み結果を、前記第1の制御手段に送信する第1の書込結果送信手段をさらに備え、前記制御装置の前記第1の制御手段は、前記第2の制御手段から送信されてくる、前記第2のプログラムの書き込み結果を受信する第1の書込結果受信手段と、受信された前記第2のプログラムの書き込み結果を、前記第1のプログラムの書き込み結果とともに、前記外部装置に送信する第2の書込結果送信手段とをさらに備え、前記外部装置は、前記第1の制御手段から送信されてくる前記第1のプログラムの書き込み結果及び前記第2のプログラムの書き込み結果を受信する第2の書込結果受信手段と、受信した前記第1のプログラムの書き込み結果及び前記第2のプログラムの書き込み結果に対応する情報を通知する通知手段とをさらに備える。
第1の書込結果送信手段は、例えば、サブCPUの書換結果送受信部により構成される。書換結果送受信部は、サブCPUの書換え結果を、メインCPUに送信する。第1の書込結果受信手段及び第2の書込結果送信手段は、例えば、メインCPUの書換結果送受信部により構成される。書換結果送受信部は、受信されたサブCPUの書換え結果を、メインCPUの書換え結果とともに、プログラム書換装置に送信する。
第2の書込結果受信手段は、例えば、プログラム書換装置の書換結果確認部により構成される。書換結果確認部は、メインCPUから送信されてくる、メインCPUの書換え結果及びサブCPUの書換え結果を受信する。通知手段は、例えば、メインCPUの結果及びサブCPUの書換え結果に対応する情報を通知する。
これにより、プログラム書換装置に対して、メインCPUとサブCPUの書換え結果をまとめて通知することができる。
前記外部装置は、前記制御装置の前記第1の制御手段から書き込み結果を受信した場合、対象とする制御手段の再起動を指示するためのリセット要求を、前記制御装置の前記第1の制御手段に送信する第1のリセット要求送信手段をさらに備え、前記制御装置の前記第1の制御手段は、前記外部装置から送信されてくる、リセット要求に応じて、前記第1の制御手段を再起動する第1のリセット手段と、前記第2のプログラムが書き込まれた場合、前記リセット要求を前記第2の制御手段に送信する第2のリセット要求送信手段とをさらに備え、前記制御装置の前記第2の制御手段は、前記第1の制御手段から送信されてくる、前記リセット要求に応じて、前記第2の制御手段を再起動する第2のリセット手段とをさらに備える。
第1のリセット要求送信手段は、例えば、プログラム書換装置のリセット部により構成される。リセット部は、制御装置のメインCPUから書換え結果を受信した場合、対象とするCPUの再起動を指示するためのリセット要求を、メインCPUに送信する。第1のリセット手段及び第2のリセット要求送信手段は、例えばメインCPUのリセット部により構成される。リセット部は、プログラム書換装置から送信されてくる、対象とするCPUの再起動を指示するためのリセット要求に応じて、メインCPUを再起動させるとともに、サブCPUの制御プログラムが書換えられた場合、リセット要求をサブCPUに送信する。第2のリセット手段は、例えばサブCPUのリセット部により構成される。リセット部は、メインCPUから送信されてくるリセット要求に応じて、サブCPUを再起動させる。
これにより、複数のCPUの制御プログラムを書換えた後、適切な順序でCPUを再起動することができる。また、プログラム書換装置からリセット要求を送信する際には、メインCPUとサブCPUの制御プログラムの書換えが完了していることになる。
本発明によれば、効率よく、制御プログラムの書換えを行うことができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
まず、図1を参照して、本発明の実施の形態(以下、本実施の形態という)による、複数のCPUのそれぞれにより実行される制御プログラムを書換える処理の概要について説明する。
なお、図1においては、図中下側に図示された、複数のCPUを搭載した制御装置1との比較のため、1つのCPUを搭載した制御装置101が、図中の上側に図示されている。
制御装置1は、例えば、車両に搭載され、エンジンの制御を行うエンジン制御装置(ECU(Engine Control Unit))などの電子制御ユニットである。制御装置1には、メインCPU11−1とサブCPU11−2が搭載されており、それぞれのCPUが、別々の制御プログラムを実行することになる。すなわち、制御装置1においては、メインCPU11−1を動作させるのに必要な制御プログラム及びデータを格納するためのROM13−1と、メインCPU11−1の演算結果等を一時的に格納するRAM12とが設けられており、メインCPU11−1は、ROM13−1に記録された制御プログラムを実行することで、接続された制御対象の制御を行う。同様にまた、サブCPU11−2は、ROM13−2に記録された制御プログラムを実行することで、接続された制御対象の制御を行う。
一方、制御装置101は、1つのメインCPU111を搭載しており、メインCPU111は、適宜各種のデータなどをRAM112に記憶させながら、ROM113に記録された制御プログラムを実行することで、制御対象の制御を行う。
これらの制御装置の各CPUにより実行される制御プログラムを書換える場合、プログラム書換装置2を接続させて、プログラム書換装置2からの指示にしたがって、制御プログラムの書換えが行われる。
制御装置101の制御プログラムを書き換える場合、制御装置101には1つのメインCPU111が搭載されているので、ROM113に記録されていた制御プログラムが、更新用の制御プログラム114に書き換えられる。
一方、制御装置1には、メインCPU11−1とサブCPU11−2が搭載されており、それぞれのCPUが、別々の制御プログラムを実行することになる。従って、プログラム書換装置2を接続させて、制御プログラムの書換えを行う場合には、更新用の制御プログラム14を、メインCPU11−1とサブCPU11−2で別個に書換える必要がある。
そこで、本実施の形態では、メインCPU11−1とサブCPU11−2を搭載する制御装置1において、メインCPU11−1とサブCPU11−2によりそれぞれ実行される制御プログラムを識別して、それらの制御プログラムを一括して書換えることが可能なプログラム書換システムについて説明する。すなわち、このプログラム書換システムは、制御装置1とプログラム書換装置2から構成されるので、まず、制御装置1及びプログラム書換装置2のハードウェア構成を説明してから、その後、プログラム書換システムの全体の構成を説明する。
図2は、本発明を適用した制御装置のハードウェアの構成例を示すブロック図である。
制御装置1においては、メインCPU11−1、RAM12−1、ROM13−1、IOポート15−1、及び外部通信部16がCPUバス14−1に接続され、サブCPU11−2、RAM12−2、ROM13−2、及びIOポート15−2がCPUバス14−2に接続される。また、CPUバス14−1とCPUバス14−2が、書き込みインターフェース17を介して接続されており、CPUバス14−1側と、CPUバス14−2側とが相互に通信可能である。
IOポート15−1は制御対象に接続されており、メインCPU11−1は、ROM13−1に記録された制御プログラムを実行することで、接続された制御対象の制御を行うことは、先に述べたとおりである。同様に、IOポート15−2は制御対象に接続されており、サブCPU11−2は、ROM13−2に記録された制御プログラムを実行することで、接続された制御対象の制御を行う。
外部通信部16には、制御プログラムの書換え時に、プログラム書換装置2が接続され、メインCPU11−1は、プログラム書換装置2との間で所定のデータのやり取りを行う。また、メインCPU11−1は、制御プログラムの書換え時に、サブCPU11−2との間で所定のデータのやり取りを行う。
以上のようにして、制御装置1は構成される。
図3は、本発明を適用したプログラム書換装置のハードウェアの構成例を示すブロック図である。
プログラム書換装置2においては、CPU21、RAM22、ROM23、データ入力部25、外部通信部26、及び表示部27がCPUバス24を介して接続されている。データ入力部25には、制御装置1のプログラムを書換えるためのデータが入力され、CPU21に供給される。
外部通信部26には、制御装置1の制御プログラムの書換え時に制御装置1が接続され、CPU21は、制御装置1との間で所定のデータのやり取りを行う。表示部27は、例えばLCD(Liquid Crystal Display)などから構成され、CPU21の制御にしたがって、各種の情報を表示する。
以上のようにして、プログラム書換装置2は構成される。
図4は、本発明を適用したプログラム書換システムの機能的構成を示す図である。
図4に示すように、プログラム書換システムは、制御装置1とプログラム書換装置2から構成される。
プログラム書換装置2は、書換指令送信部71、書換情報取得部72、書換情報送信部73、書換結果確認部74、書換結果表示部75、及びリセット部76から構成される。
書換指令送信部71は、例えばユーザの操作に応じて、書換えの開始を通知する指令(以下、書換え開始指令という)を、制御装置1に送信して通知する。
書換情報取得部72は、プログラム書換え情報が格納されたファイルを外部から読込み、書換情報送信部73に供給する。書換情報送信部73は、書換情報取得部72から供給されたプログラム書換え情報(以下、単に書換え情報ともいう)を、制御装置1に送信する。
ここで、図5を参照して、プログラム書換え情報(書換え情報)の詳細な構成について説明する。
図5に示すように、プログラム書換え情報は、制御装置IDと、1CPU用更新データから構成される。制御装置IDは、制御装置を識別するための識別子であり、この制御装置IDに対応するように1CPU用の更新データが格納される。なお、制御装置IDと更新データとの組み合わせを書換えデータとも称する。1CPU用の更新データは、書換対象識別情報、サブCPU用書換えプログラム、メインCPU用書換えプログラム、サブCPU更新用制御プログラム、及びメインCPU更新制御用プログラムから構成される。
書換対象識別情報には、メインCPU11−1とサブCPU11−2のそれぞれについて、更新するか否かを示す更新フラグ、書換え消去プログラムの開始位置、及び更新プログラム開始位置が格納される。
更新フラグは、メインCPU11−1とサブCPU11−2のそれぞれについて制御プログラムの更新を行うか否かを示す情報であって、例えば、更新する場合には1が設定され、更新しない場合には0が設定される。また、書換え消去プログラムの開始位置には、消去される制御プログラムの開始位置(アドレス)が設定され、更新プログラム開始位置には、更新用制御プログラムの開始位置(アドレス)が設定される。
サブCPU用書換えプログラムは、サブCPU11−2の書換え時に起動されるプログラムである。サブCPU用書換えプログラムには、対象となるサブCPU11−2を識別するためのID、書き込み先アドレス、書き込みデータ長、及びデータから構成される。メインCPU用書換えプログラムは、メインCPU11−1の書換え時に起動されるプログラムである。メインCPU用書換えプログラムには、対象となるメインCPU11−1を識別するためのID、書き込み先アドレス、書き込みデータ長、及びデータから構成される。
サブCPU更新用制御プログラムは、サブCPU11−2用の制御プログラムである。サブCPU更新用制御プログラムには、対象となるサブCPU11−2を識別するためのID、書き込み先アドレス、書き込みデータ長、及びデータから構成される。メインCPU更新用制御プログラムは、メインCPU11−1用の制御プログラムである。メインCPU更新用制御プログラムは、対象となるメインCPU11−1を識別するためのID、書き込み先アドレス、書き込みデータ長、及びデータから構成される。
以上のようにして、プログラム書換え情報は構成される。
図4の説明に戻り、書換結果確認部74は、制御プログラムの書換え結果を問い合わせるために、書換え結果の確認要求(以下、単に、確認要求ともいう)を、制御装置1に送信する。書換結果確認部74は、問い合わせの結果送られてくる、書換え結果を受信し、書換結果表示部75に供給する。書換結果表示部75は、書換結果確認部74から供給される書換え結果に対応する情報を表示することで、ユーザに対して、制御プログラムの書換え結果を通知する。
リセット部76は、制御プログラムの書換え後の制御装置1をリセットさせるための要求(以下、リセット要求という)を、制御装置1に送信する。
また、制御装置1は、メインCPU11−1と、サブCPU11−2から構成される。メインCPU11−1は、書換指令受信部31、動作状態切替部32、書換情報受信部33、書換データ抽出部34、書換対象判定部35、第1の不揮発性メモリ書き込み部36、第1の不揮発性メモリ37、第2の不揮発性メモリ書き込み部38、書換結果判定部39、書換結果記録部40、書換結果送受信部41、及びリセット部42から構成される。
書換指令受信部31は、プログラム書換装置2から送信されてくる、制御プログラムの書換え開始指令を受信し、動作状態切替部32に供給する。動作状態切替部32は、書換指令受信部31から供給される書換え開始指令、又は書換データ抽出部34から供給される更新データに応じて、メインCPU11−1により実行させるプログラムを切り替える。
書換情報受信部33は、プログラム書換装置2から送信されてくる書換え情報を受信し、書換データ抽出部34に供給する。書換データ抽出部34は、書換情報受信部33から供給される書換え情報から、制御装置IDや更新データを抽出し、動作状態切替部32、書換対象判定部35、第1の不揮発性メモリ書き込み部36、及び第2の不揮発性メモリ書き込み部38に供給する。
書換対象判定部35は、書換データ抽出部34による抽出結果に基づいて、書換え対象を判定し、判定結果を、第1の不揮発性メモリ書き込み部36及び第2の不揮発性メモリ書き込み部38に供給する。第1の不揮発性メモリ書き込み部36は、書換対象判定部35による判定結果に基づいて、書換データ抽出部34から供給される更新データ(メインCPU更新用制御プログラム)を、第1の不揮発性メモリ37に書き込む。
第2の不揮発性メモリ書き込み部38は、書換対象判定部35による判定結果に基づいて、書換データ抽出部34から供給される更新データ(サブCPU用書換えプログラム、サブCPU更新制御プログラム)を送信する。
書換結果送受信部41は、サブCPU11−2から、サブCPU11−2の制御プログラムの書換えに関するエラー判定処理の判定結果を受信し、書換結果判定部39に供給する。書換結果判定部39は、メインCPU11−1及びサブCPU11−2の制御プログラムの書換えに関するエラー判定処理を行い、判定結果を書換結果記録部40に記録する。なお、簡略化のために図示はしていないが、書換結果判定部39には、各ブロックからエラー判定に関する各種の情報が供給される。
書換結果送受信部41は、書換結果記録部40に記録された書換え結果を読み出し、プログラム書換装置2に送信する。
リセット部42は、プログラム書換装置2から送信されてくる、リセット要求に応じて、メインCPU11−1を再起動する。また、リセット部42は、サブCPU11−2において制御プログラムが書換えられた場合、リセット要求を、サブCPU11−2に転送する。
また、制御装置1において、サブCPU11−2は、書換指令受信部51、動作状態切替部52、書換情報受信部53、第2の不揮発性メモリ書き込み部54、第2の不揮発性メモリ55、書換結果判定部56、書換結果記録部57、書換結果送受信部58、及びリセット部59から構成される。
書換指令受信部51は、メインCPU11−1から送信されてくる、制御プログラムの書換え開始指令を受信し、動作状態切替部52に供給する。動作状態切替部52は、書換指令受信部51から供給される書換え開始指令、又は書換情報受信部53から供給される更新データに応じて、サブCPU11−2により実行させるプログラムを切り替える。
書換情報受信部53は、メインCPU11−1から送信されてくる、更新データ(サブCPU用書換えプログラム、サブCPU更新制御プログラム)を受信し、動作状態切替部52及び第2の不揮発性メモリ書き込み部54に供給する。
第2の不揮発性メモリ書き込み部54は、書換情報受信部53から供給される更新データ(サブCPU更新制御プログラム)を、第2の不揮発性メモリ55に書き込む。また、第2の不揮発性メモリ書き込み部54は、サブCPU更新制御プログラムの書き込み時のエラーに関する情報を、書換結果判定部56に供給する。
書換結果判定部56は、第2の不揮発性メモリ書き込み部54から供給されるエラーに関する情報に基づいて、サブCPU11−2の制御プログラムの書換えに関するエラー判定処理を行い、判定結果を書換結果記録部57に記録する。
書換結果送受信部58は、メインCPU11−1からの要求に応じて、書換結果記録部57に記録された書換え結果を読み出し、メインCPU11−1に送信する。
リセット部59は、メインCPU11−1から送信されてくる、リセット要求に応じて、サブCPU11−2を再起動する。
以上のようにして、プログラム書換システムは構成される。
次に、図6を参照して、プログラム書換システムで行われるプログラム書換え処理の流れについて説明する。
なお、図6において、ステップS1乃至9の処理は、プログラム書換装置2により実行される処理であり、ステップS11乃至22の処理は、メインCPU11−1により実行される処理、ステップS31乃至S39の処理は、サブCPU11−2により実行される処理である。
プログラム書換装置2は、ユーザにより制御プログラムの書換えの開始の操作がなされるまで、その書換え開始操作による指示待ちの状態となる(ステップS1の処理)。そして、ユーザにより、書換えの開始の操作がなされると、書換え開始指令を、制御装置1に通知する。その後、ステップS3において、書換情報取得部72は、外部よりプログラム書換え情報(書換え情報)を読込み、ステップS4において、書換情報送信部73は、その書換え情報を制御装置1に送信する。
制御装置1に対して書換え情報を送信すると、制御装置1ではメインCPU11−1及びサブCPU11−2において制御プログラムの書換え処理が行われるので、ステップS5において、書換結果確認部74は、確認要求を、制御装置1に要求する。すると、制御装置1から書換え結果が送信されてくるので、書換結果確認部74は、書換え結果を受信し(ステップS6の処理)、その書換え結果を判定する(ステップS7の処理)。そして、書換結果表示部75は、書換結果確認部74による書き換え結果の判定結果を表示する(ステップS8の処理)。
ステップS9において、リセット部76は、制御プログラムの書換え後の制御装置1をリセットさせるためのリセット要求を、制御装置1に送信する。
以上のようにして、プログラム書換装置2により処理が実行されるが、プログラム書換装置2で行われる処理の詳細については、図7のフローチャートを参照して後述する。
制御装置1においては、メインCPU11−1とサブCPU11−2がそれぞれ処理を実行する。メインCPU11−1は、プログラム書換装置2から書換え開始指令が通知されるまで、接続された制御対象の制御を行う(ステップS11の処理)。その後、プログラム書換装置2から書換え開始指令が通知されると、制御プログラムの書換え処理を開始する(ステップS12の処理)。ステップS13において、書換情報受信部33は、プログラム書換装置2から送信されてくる書換え情報を受信する。ステップS14において、書換データ抽出部34は、受信された書換え情報から書換えデータを抽出することで、メインCPU用書換えプログラムが起動される(ステップS15の処理)。
ステップS16において、書換対象判定部35は、メインCPU11−1とサブCPU11−2の書換え対象を判定する。ステップS17において、第1の不揮発性メモリ書き込み部36は、書換対象判定部35の判定結果にしたがって、メインCPU11−1の更新を行う場合には、第1の不揮発性メモリ37の所定の領域に、メインCPU更新用制御プログラムを書き込む。ステップS18において、第2の不揮発性メモリ書き込み部38は、書換対象判定部35の判定結果にしたがって、サブCPU11−2の更新を行う場合には、サブCPU11−2に対して書換え開始指令を送信した後、サブCPU11−2用の書換え情報を送信する。また、第2の不揮発性メモリ書き込み部38は、書換え結果をサブCPU11−2に確認要求を送信して、書換え結果を受信する。
ステップS19において、書換結果判定部39は、書換結果記録部40に記録された判定結果を参照して、書換え結果を判定し、ステップS20において、書換結果判定部39の書換え結果を、プログラム書換装置2に送信する。その後、プログラム書換装置2からリセット結果が送信されてくるので、ステップS21において、リセット部42は、メインCPU11−1のリセットを行う。これにより、再起動後のメインCPU11−1では、書換え後の制御プログラムが起動され、通常動作が再開される(ステップS22の処理)。なお、リセット部42は、サブCPU11−2の更新が行われた場合には、リセット要求を、サブCPU11−2に送信する。
以上のようにして、メインCPU11−1により処理が実行されるが、メインCPU11−1で行われる処理の詳細については、図9乃至図20のフローチャートを参照して、後述する。
サブCPU11−2は、メインCPU11−1から書換え開始指令が通知されるまで、接続された制御対象の制御を行う(ステップS31の処理)。その後、CPU11−1から書換え開始指令が通知されると、制御プログラムの書換え処理を開始する(ステップS32の処理)。すると、メインCPU11−1から、サブCPU11−2用の書換え情報が送信されてくるので、書換情報受信部53は、書換え情報を受信し(ステップS33の処理)、サブCPU用の書換えプログラムが起動される(ステップS34の処理)。
ステップS35において、第2の不揮発性メモリ書き込み部54は、第2の不揮発性メモリ55の所定の領域に、メインCPU11−1から受信したサブCPU更新用制御プログラムを書き込む。ステップS36において、書換結果判定部56は、書換結果記録部57に記録された判定結果を参照して、書換え結果を判定し、ステップS37において、書換結果判定部56の書換え結果を、メインCPU11−1に送信する。その後、メインCPU11−1からリセット要求が送信されてくるので、ステップS38において、リセット部59は、サブCPU11−2のリセットを行う。これにより、再起動後のサブCPU11−2では、書換え後の制御プログラムが起動され、通常動作が再開される(ステップS39の処理)。
以上のようにして、サブCPU11−2により処理が実行されるが、メインCPU11−1で行われる処理の詳細については、図21乃至図25のフローチャートを参照して、後述する。
このように、プログラム書換システムでは、プログラム書換装置2によって、制御装置IDと更新データで構成された書換え情報を用いて、制御装置1の制御プログラムの書換えを行うに際して、プログラム書換装置2側から1回の書き込み指令を行って、書換え情報を送信するだけで、制御装置1側においては、適切なプログラムのみを識別して、メインCPU11−1、サブCPU11−2の制御プログラムを一括して書換えることができる。
次に、プログラム書換システムを構成する各装置で行われる処理の詳細について説明する。まず、図7のフローチャートを参照して、プログラム書換装置2により実行されるプログラム書換え処理の詳細について説明するが、基本的には、図6を参照して説明したステップS1乃至S9の処理と同様である。
プログラム書換装置2では、ユーザにより書換え操作が開始されない場合には、書換え開始の操作待ち状態となる(ステップS1Aの処理)。一方、ユーザにより書換え開始の操作がなされた場合(ステップS1Bの「Yes」)、処理は、ステップS2に進む。
ステップS2において、書換指令送信部71は、書換えの開始を通知するための書換え開始指令を、制御装置1に通知する。ステップS3において、書換情報取得部72は、プログラム書換え情報が格納されたファイル(書換え情報)を読込み、書換情報送信部73に供給する。
ステップS4において、書換情報送信部73は、書換情報取得部72から供給された書換え情報を、制御装置1に送信する。これにより、制御装置1では、メインCPU11−1と、サブCPU11−2において、制御プログラムの書換えが行われる。
制御装置1側で制御プログラムの書換え処理が行われると、その処理結果を確認するために、書換結果確認部74は、ステップS5において、制御プログラムの書換え結果を問い合わせるために、書換え結果の確認要求を、制御装置1に送信する。
書換結果確認部74は、ステップS6において、制御装置1から送信されてくる書換え結果を受信し、ステップS7において、受信した書換え結果にエラー情報が含まれているか否かを判定する。
ステップS7において、書換え結果にエラー情報が含まれていないと判定された場合、ステップS8Aにおいて、書換結果表示部75は、書換結果確認部74から供給される書換え結果に基づいて、書換えの正常終了を表示する。一方、書換結果にエラー情報が含まれていると判定された場合、ステップS8Bにおいて、書換結果表示部75は、書換結果確認部74から供給される書換結果に基づいて、書換えエラーを表示する。
図8は、書換え結果のエラー内容の例を示す図である。
図8に示すように、0乃至8のビット列に対して、各エラー内容が割り当てられており、エラーが発生したときには対応するビットが立てられる(例えば、対象のビットが1となる)。
すなわち、ビット列のうちの先頭のビットが1となったときには「タイムアウトエラー」、2番目のビットが1となったときには「制御装置ID不一致エラー」、3番目のビットが1となったときには「更新なしエラー」、4番目のビットが1となったときには「メインCPUのIDエラー」、5番目のビットが1となったときには「サブCPUのIDエラー」のエラーがそれぞれ発生したことになる。
さらに、ビット列のうちの先頭から6番目のビットが1となったときには「メインCPUの書き込み後エラー」、7番目のビットが1となったときには「サブCPUの書き込み後エラー」、8番目のビットが1となったときには「メインCPUの書き込みエラー」、9番目のビットが1となったときには「サブCPUの書き込みエラー」のエラーがそれぞれ発生したことになる。なお、全てのビットが0となるときは、制御プログラムの書換えが正常に終了したことを示す。
このように、制御装置1に対して確認要求を送信すると、正常に終了したことを示すビット列や、制御プログラムの書換え時のエラー内容に応じたビット列を返してくるので、書換結果表示部75には、そのビット列に応じたエラー内容が表示される。
図7のフローチャートに戻り、制御プログラムの書換えが正常又はエラーで終了すると、プログラム書換装置2では、制御装置1に対して、制御対象の制御を行う通常の動作に戻るように、リセット要求が送信され(ステップS9の処理)、制御プログラムの書換え処理が終了する。これにより、制御装置1では、正常の動作として、制御対象の制御が行われる。
次に、図9乃至図20のフローチャートを参照して、メインCPU11−1により実行される処理の詳細について説明する。
まず、図9のフローチャートを参照して、メインCPU11−1の処理を説明するが、基本的には、図6を参照して説明したステップS11乃至S21の処理と同様である。
すなわち、メインCPU11−1では、プログラム書換装置2から制御プログラムの書換え指令を受けない場合には、通常動作として、制御対象の制御が行われる(ステップS11Aの処理)。一方、書換指令受信部31によって、プログラム書換装置2から制御プログラムの書換え開始指令が受信された場合(ステップS11Bの「Yes」)、処理は、ステップS12に進む。そして、メインCPU11−1では、制御プログラムの書換え処理が開始される。
ここで、図10のフローチャートを参照して、図9のステップS12の処理に対応する書換え開始処理の詳細について説明する。
ステップS51において、動作状態切替部32は、メインCPU11−1が実行するプログラムを、通常動作の制御プログラムから、専用のブートプログラムに切り替えて、ブートプログラムによる動作が行われるようにする。これにより、メインCPU11−1では、書換えモードでの動作を開始することになる(ステップS52の処理)。
すなわち、図9のフローチャートの各ステップの左側に記述しているように、ステップS11A乃至S11Bの処理は、「通常動作の制御プログラム」により実行されていたが、それ以降のステップS12乃至S15の処理は、「ブートプログラム」により実行されることになる。
ステップS52の処理が終了すると、処理は、図9のステップS12の処理に戻り、ステップS13以降の処理が実行される。
ステップS13において、書換情報受信部33は、プログラム書換装置2から送信されてくる書換え情報を受信する。
ここで、図11のフローチャートを参照して、図9のステップS13の処理に対応する書換え情報受信処理の詳細について説明する。
ステップS61において、書換情報受信部33は、プログラム書換装置2から送信されてくる書換え情報を受信する。書換情報受信部33は、ステップS62において、あらかじめ定められた受信時間を経過したか否かを判定することで、タイムアウトとなったか否かを判定する。
ステップS62において、タイムアウトになっていないと判定された場合、ステップS63において、書換情報受信部33は、プログラム書換装置2から書換え情報が受信されたか否かを判定し、書換え情報が受信されていないと判定された場合、処理は、ステップS61に戻り、上述した、ステップS61乃至S63の処理が繰り返される。すなわち、書換情報受信部33は、プログラム書換装置2から書換え情報が受信されていない場合、タイムアウトするまで、書換え情報の受信処理を継続することになる。
一方、ステップS62において、書換え情報を受信できずに、タイムアウトしたと判定された場合、書換結果判定部39は、メインCPU11−1の書換え情報のタイムアウトを判定し(ステップS64の処理)、書換え情報のタイムアウトエラーを、書換結果記録部40に記録する(ステップS65の処理)。
書換え情報が受信されたと判定された場合(ステップS63の「Yes」)又はステップS65の処理が終了すると、処理は、図9のステップS13に戻り、ステップS14以降の処理が実行される。
ステップS14において、書換データ抽出部34は、書換情報受信部33から供給される書換え情報から、書換えデータ(制御装置IDと更新データ)を抽出する。
ここで、図12のフローチャートを参照して、図9のステップS14の処理に対応する書換えデータ抽出処理について説明する。
書換えデータ抽出処理においては、はじめに、プログラム書換装置2から書換え情報が受信されたか否かが判定され(ステップS70の処理)、書換え情報が受信されたと判定された場合(ステップS70の「Yes」)、処理は、ステップS71に進む。書換データ抽出部34は、書換え情報から制御装置IDを抽出し(ステップS71の処理)、抽出された制御装置IDが、自機の制御装置IDと一致するか否かを判定する(ステップS72の処理)。
ステップS72において、自機の制御装置IDと一致すると判定された場合、書換データ抽出部34は、書換え情報から1CPU用更新データを抽出し(ステップS73の処理)、抽出された1CPU用更新データに格納された書換対象識別情報と、更新データをさらに抽出する(ステップS74の処理)。
ステップS75において、書換データ抽出部34は、抽出された書換対象識別情報のメインCPU11−1用の更新フラグを参照して、メインCPU11−1の更新をする必要があるか否かを判定する。
ステップS75において、メインCPU11−1用の更新フラグが立っており、メインCPU11−1の更新をする必要があると判定された場合、書換データ抽出部34は、更新データから、メインCPU用書換えプログラムと、メインCPU更新用制御プログラムを抽出する(ステップS76,S77)。これにより、メインCPU11−1の更新がある場合には、更新データから、メインCPU用書換えプログラムと、メインCPU更新用制御プログラムが抽出される。
一方、ステップS75において、メインCPU11−1の更新をする必要がないと判定された場合、メインCPU11−1用の更新データを抽出する必要がないので、ステップS76,S77をスキップして、処理は、ステップS78に進む。
続いて、ステップS78において、書換データ抽出部34は、抽出された書換対象識別情報のサブCPU11−2用の更新フラグを参照して、サブCPU11−2の更新をする必要があるか否かを判定する。
ステップS78において、サブCPU11−2用の更新フラグが立っており、サブCPU11−2の更新をする必要があると判定された場合、書換データ抽出部34は、更新データから、サブCPU用書換えプログラムと、サブCPU更新用制御プログラムを抽出する(ステップS79,S80)。これにより、サブCPU11−2の更新がある場合には、更新データから、サブCPU用書換えプログラムと、サブCPU更新用制御プログラムが抽出される。
一方、ステップS78において、サブCPU11−2の更新をする必要がないと判定された場合、サブCPU11−2用の更新データを抽出する必要がないので、ステップS79,S80はスキップされる。
そして、書換え情報が受信されていないと判定されるか(ステップS70の「No」)、ステップS80の処理が終了するか、あるいは、ステップS79,S80の処理がスキップされる(ステップS78の「No」)と、処理は、図9のステップS14に戻り、ステップS15以降の処理が実行される。
ステップS15において、動作状態切替部32は、更新データから抽出されたメインCPU用書換えプログラムを起動して、メインCPU11−1が実行するプログラムを、ブートプログラムから、メインCPU用書換えプログラムに切替える。
すなわち、図9のフローチャートの各ステップの左側に記述しているように、ステップS12乃至S15の処理は、「ブートプログラム」により実行されていたが、それ以降のステップS16乃至S21の処理は、「書換えプログラム」により実行されることになる。
ステップS16において、書換対象判定部35は、書換え対象判定処理を行う。
ここで、図13のフローチャートを参照して、図9のステップS16の処理に対応する書換え対象判定処理の詳細について説明する。
ステップS91において、書換対象判定部35は、書換データ抽出部34の抽出結果に基づいて、書換え情報に書換えデータ(制御装置IDと更新データ)が格納されていたるか否かを判定する。ステップS91において、書換えデータが格納されていると判定された場合、処理は、ステップS92に進む。一方、ステップS91において、書換えデータが格納されていないと判定された場合、以降の判定処理を行う必要がないので、ステップS92乃至S101をスキップする。
ステップS92において、書換対象判定部35は、メインCPU11−1の更新をする必要があるか否かを判定する。ステップS92において、メインCPU11−1の更新をする必要があると判定された場合、処理はステップS93に進む。一方、ステップS92において、メインCPU11−1の更新をする必要がないと判定された場合、メインCPU11−1に関する判定処理を行う必要がないので、ステップS93乃至S96をスキップして、処理は、ステップS97に進む。
ステップS93において、書換対象判定部35は、例えば、メインCPU11−1を識別するためにあらかじめ割り当てられている識別子(ID)と、更新データに格納されたメインCPU用書換えプログラム又はメインCPU更新用制御プログラムのIDとを比較することで、メインCPU11−1のIDが正常であるか否かを判定する。
ステップS93において、メインCPU11−1のIDが正常であると判定された場合、ステップS94において、書換対象判定部35は、メインCPU11−1の更新を行うと判定し、判定結果を第1の不揮発性メモリ書き込み部36に供給する。一方、メインCPU11−1のIDが異常であると判定された場合、書換対象判定部35は、判定結果を書換結果判定部39に供給し、処理は、ステップS95に進む。書換結果判定部39は、メインCPU11−1のIDの異常を判定し(ステップS95の処理)、メインCPU11−1のIDエラーを、書換結果記録部40に記録する(ステップS96の処理)。
ステップS94又はS96の処理が終了すると、処理は、ステップS97に進む。ステップS97において、書換対象判定部35は、サブCPU11−2の更新をする必要があるか否かを判定する。ステップS97において、サブCPU11−2の更新をする必要があると判定された場合、処理は、ステップS98に進む。一方、ステップS97において、サブCPU11−2の更新をする必要がないと判定された場合、サブCPU11−2に関する判定処理を行う必要がないので、ステップS98乃至S101をスキップする。
ステップS98において、書換対象判定部35は、例えば、サブCPU11−2を識別するためにあらかじめ割り当てられている識別子(ID)と、更新データに格納されたサブCPU用書換えプログラム又はサブCPU更新用制御プログラムのIDとを比較することで、サブCPU11−2のIDが正常であるか否かを判定する。
ステップS98において、サブCPU11−2のIDが正常であると判定された場合、ステップS99において、書換対象判定部35は、サブCPU11−2の更新を行うと判定し、判定結果を第2の不揮発性メモリ書き込み部38に供給する。一方、サブCPU11−2のIDが異常であると判定された場合、書換対象判定部35は、判定結果を書換結果判定部39に供給し、処理は、ステップS100に進む。書換結果判定部39は、サブCPU11−2のIDの異常を判定し(ステップS100の処理)、サブCPU11−2のIDエラーを、書換結果記録部40に記録する。
そして、更新データが存在しないと判定された場合(ステップS91の「Yes」)、サブCPU11−2を更新しないと判定された場合(ステップS97の「No」)、又は、ステップS99若しくはS101の処理が終了した場合、処理は、図9のステップS16に戻り、ステップS17以降の処理が実行される。
ステップS17において、第1の不揮発性メモリ書き込み部36は、メインCPU不揮発性メモリ書き込み処理を行う。
ここで、図14のフローチャートを参照して、図9のステップS17の処理に対応するメインCPU不揮発性メモリ書き込み処理の詳細について説明する。
ステップS111において、第1の不揮発性メモリ書き込み部36は、書換対象判定部35からの判定結果に基づいて、メインCPU11−1の更新を行うか否かを判定する。
ステップS111において、メインCPU11−1の更新を行うと判定された場合、第1の不揮発性メモリ書き込み部36は、第1の不揮発性メモリ37の更新領域のデータを消去し(ステップS112の処理)、その消去された領域に、メインCPU更新用制御プログラムを書き込む(ステップS113の処理)。
そして、ステップS114において、第1の不揮発性メモリ書き込み部36は、メインCPU書き込み結果確認処理を行う。
ここで、図15のフローチャートを参照して、メインCPU書き込み結果確認処理の詳細を説明する。
ステップS121において、第1の不揮発性メモリ書き込み部36は、書換対象判定部35からの判定結果に基づいて、メインCPU11−1の更新を行うか否かを判定する。ステップS121において、メインCPU11−1の更新を行うと判定された場合、処理は、ステップS122に進み、チェックサム検証が行われる。一方、ステップS121において、メインCPU11−1の更新を行わないと判定された場合、チェックサム検証を行う必要がないため、ステップS122乃至S125をスキップする。
ステップS122において、第1の不揮発性メモリ書き込み部36は、メインCPU11−1の制御プログラム領域のチェックサム検証を実行する。なお、ここでは、制御プログラム領域の検証方法の一例として、チェックサム検証を述べたが、他の検証方法を用いることも勿論可能である。
ステップS123において、第1の不揮発性メモリ書き込み部36は、制御プログラム領域のチェックサムがチェックされ、正常であるか否かを判定する。ステップS123において、制御プログラム領域のチェックサムがチェックされ、異常であると判定された場合、第1の不揮発性メモリ書き込み部36は、チェックサム検証の結果を書換結果判定部39に供給し、処理は、ステップS124に進む。書換結果判定部39は、メインCPU11−1の書き込みエラーを判定し(ステップS124の処理)、メインCPU11−1の書き込みエラーを、書換結果記録部40に記録する(ステップS125の処理)。
そして、メインCPU11−1の更新を行わないと判定された場合(ステップS121の「No」)、制御プログラム領域のチェックサムがチェックされ、正常であると判定された場合(ステップS123の「Yes」)、又は、ステップS125の処理が終了した場合、処理は、図14のステップS114に戻る。そしてさらに、処理は、図9のステップS17に戻り、ステップS18以降の処理が実行される。
ステップS18において、第2の不揮発性メモリ書き込み部38は、サブCPU不揮発性メモリ書き込み処理を行う。
ここで、図16のフローチャートを参照して、図9のステップS18の処理に対応するサブCPU不揮発性メモリ書き込み処理の詳細について説明する。
ステップS131において、第2の不揮発性メモリ書き込み部38は、書換対象判定部35からの判定結果に基づいて、サブCPU11−2の更新を行うか否かを判定する。
ステップS131において、サブCPU11−2の更新を行うと判定された場合、ステップS132において、第2の不揮発性メモリ書き込み部38は、サブCPU11−2に対して書換えの開始を通知するための書換え指令を、サブCPU11−2に通知する。
サブCPU11−2への書換え指令の通知が完了すると、第2の不揮発性メモリ書き込み部38は、書換データ抽出部34により抽出されたサブCPU用書換えプログラムと、サブCPU更新制御プログラムを、書換え情報として、サブCPU11−2に送信する(ステップS133,S134の処理)。
そして、ステップS135において、第2の不揮発性メモリ書き込み部38は、サブCPU書き込み結果確認処理を行う。
ここで、図17のフローチャートを参照して、サブCPU書き込み結果確認処理を行う。
ステップS141において、第2の不揮発性メモリ書き込み部38は、書換対象判定部35からの判定結果に基づいて、サブCPU11−2の更新を行うか否かを判定する。ステップS141において、サブCPU11−2の更新を行うと判定された場合、処理は、ステップS142に進み、第2の不揮発性メモリ書き込み部38は、サブCPU11−2に対し確認要求を送信して、制御プログラムの書換えの確認を行う。一方、ステップS141において、サブCPU11−2の更新を行わないと判定された場合、制御プログラムの書換えの確認を行う必要がないため、ステップS142乃至S148をスキップする。
ステップS142において、第2の不揮発性メモリ書き込み部38は、書換えの確認要求を、サブCPU11−2に送信する。
ステップS143において、第2の不揮発性メモリ書き込み部38は、サブCPU11−2から確認要求に対する応答があったか否かを判定する。ステップS143において、確認要求に対する応答がないと判定された場合、第2の不揮発性メモリ書き込み部38は、応答の可否の結果を、書換結果判定部39に供給し、処理は、ステップS144に進む。
書換結果判定部39は、第2の不揮発性メモリ書き込み部38からのサブCPU11−2の応答の可否の結果に基づいて、サブCPU11−2の書き込み後エラーを判定し(ステップS144の処理)、サブCPU11−2からの応答がないということは、サブCPU11−2の書き込み後にエラーが発生したものと考えられるため、サブCPU11−2の書き込みエラーを、書換結果記録部40に記録する(ステップS145の処理)。
続いて、ステップS146において、第2の不揮発性メモリ書き込み部38は、サブCPU11−2から送信されてくる応答に基づいて、サブCPU11−2の制御プログラム領域のチェックサム検証の結果を判定する。ステップS146において、サブCPU11−2の制御プログラム領域のチェックサムがチェックされ、異常であると判定された場合、第2の不揮発性メモリ書き込み部38は、チェックサム検証の結果を書換結果判定部39に供給し、処理は、ステップS147に進む。書換結果判定部39は、第2の不揮発性メモリ書き込み部38からのチェックサム検証の結果に基づいて、サブCPU11−2の書き込みエラーを判定し(ステップS147の処理)、サブCPU11−2の書き込みエラーを、書換結果記録部40に記録する(ステップS148の処理)。
そして、サブCPU11−2の更新を行わないと判定された場合(ステップS141の「No」)、サブCPU11−1から応答があって、制御プログラム領域のチェックサムがチェックされ、正常であると判定された場合(ステップS146の「Yes」)、又は、ステップS148の処理が終了した場合、処理は、図16のステップS135に戻る。そしてさらに、処理は、図9のステップS18に戻り、ステップS19以降の処理が実行される。
ステップS19において、書換結果判定部39は、書換結果記録部40に記録された判定結果に基づいて、書換え結果判定処理を行う。このステップS19の処理は、例えば、プログラム書換装置2から確認要求を受信した場合に実行される。
ここで、図18のフローチャートを参照して、図9のステップS19の処理に対応する書換え結果判定処理の詳細について説明する。
ステップS151,S152において、書換結果判定部39は、書換結果記録部40に記録された判定結果を参照して、タイムアウトエラーが記録されている場合、図8の例に示したビット列のうちの、「タイムアウトエラー」のビットを立てて、フラグをオンする。
同様に、書換結果判定部39は、制御装置IDの不一致エラーが記録されている場合、図8に示したビット列のうちの、「制御装置IDの不一致エラー」のビットを立てて、フラグをオンし(ステップS153,S154の処理)、更新なしエラーが記録されている場合、図8に示したビット列のうちの、「更新なしエラー」のビットを立てて、フラグをオンする(ステップS155,S156の処理)。
続いて、ステップS157,S158において、図8に示したビット列について、メインCPU11−1のIDエラーが記録されている場合には、「メインCPUのIDエラー」のビットが立てられて、フラグがオンされ、ステップS159,S160において、サブCPU11−2のIDエラーが記録されている場合には、「サブCPUのIDエラー」のビットが立てられ、フラグがオンされる。同様に、ステップS161,S162において、図8に示したビット列について、メインCPU11−1の書き込み後エラーが記録されている場合には、「メインCPUの書き込み後エラー」のビットが立てられて、フラグがオンされ、ステップS163,S164において、サブCPU11−2の書き込み後エラーが記録されている場合には、「サブCPUの書き込み後エラー」のビットが立てられて、フラグがオンされる。ステップS165,S166において、図8に示したビット列について、メインCPU11−1の書き込みエラーが記録されている場合には、「メインCPUの書き込みエラー」のビットが立てられて、フラグがオンされ、ステップS167,S168において、サブCPU11−2の書き込みエラーが記録されている場合には、「サブCPUの書き込みエラー」のビットが立てられ、フラグがオンされる。
すなわち、書換え結果判定処理が行われることで、図8に示したビット列のうちの、発生したエラー内容に対応するビットが1となり、発生していないエラー内容についてはビットが0のままとなるので、発生したエラー内容のすべてをビット列により通知することが可能となる。なお、当然ながら、ビット列がすべて0の場合には、エラーが発生しておらず、書換え処理が正常に終了したことを意味する。
そして、すべてのエラーについて判定処理が終了すると、上述したビット列が、書換え結果として、書換結果記録部40に記録される。その後、処理は、図9のステップS19に戻り、ステップS20以降の処理が実行される。
ステップS20において、書換結果送受信部41は、書換え結果を送信する書換え結果送信処理を行う。
ここで、図19のフローチャートを参照して、図9のステップS20の処理に対応する書換え結果送信処理の詳細について説明する。
ステップS171において、書換結果送受信部41は、書換結果記録部40に記録された書換え結果を読み出す。ステップS172において、書換結果送受信部41は、読み出した書換え結果を、プログラム書換装置2に送信する。
書換え結果が送信されると、処理は、図9のステップS20に戻り、ステップS21以降の処理が実行される。
ステップS21において、リセット部42は、書換え後の制御プログラムを起動(再起動)するためのリセット処理を行う。
ここで、図20のフローチャートを参照して、図9のステップS21の処理に対応するリセット処理の詳細について説明する。
ステップS181において、リセット部42は、例えば書換結果記録部40に記録された書換え結果を参照して、CPU11−1又はCPU11−2における制御プログラムの書換えがあったか否かを判定する。
ステップS181において、制御プログラムの書換えが行われたと判定された場合、処理は、ステップS182に進み、リセット処理が行われる。一方、制御プログラムの書換えが行われていないと判定された場合、以降のリセット処理を行う必要がないので、ステップS182乃至S186をスキップする。
ステップS182において、リセット部42は、プログラム書換装置2からリセット要求を受信したか否かを判定する。ステップS182において、リセット要求を受信したと判定された場合、ステップS183において、リセット部42は、例えば書換結果記録部40に記録された書換え結果を参照して、サブCPU11−2の書換え(更新)が行われたか否かを判定する。ステップS183において、サブCPU11−2の書換え(更新)が行われたと判定された場合、ステップS184において、リセット部42は、サブCPU11−2のリセットを行う。すなわち、リセット部42により実行されるサブCPU11−2のリセット処理では、リセット要求がサブCPU11−2に送信されることになる。
一方、ステップS183において、サブCPU11−2の書換え(更新)が行われていないと判定された場合、サブCPU11−2のリセットを行う必要がないので、ステップS184をスキップする。
ステップS185において、リセット部42は、メインCPU11−1の書換え(更新)が行われたか否かを判定する。ステップS185において、メインCPU11−1の書換え(更新)が行われたと判定された場合、ステップS186において、リセット部42は、メインCPU11−1のリセットを行う。これにより、再起動後のメインCPU11−1では、書換え後の制御プログラムが起動されることになる。
そして、制御プログラムの書換えが行われていないと判定された場合(ステップS181の「No」)、又は、ステップS186の処理が終了した場合、処理は、図9のステップS21に戻り、ステップS11A以降の処理が実行される。すなわち、メインCPU11−1では、リセット処理により書換え後の制御プログラムが起動され、通常動作を開始することになる(ステップS11Aの処理)。つまり、図9のフローチャートの各ステップの左側に記述しているように、ステップ16乃至S21の処理は、「書換えプログラム」により実行されていたが、それ以降のステップS11A,S11Bの処理は、「書換え後の通常動作のプログラム」により実行されることになる。これにより、メインCPU11−1では、書換えモードから通常モードに切り替わることになる。
以上のように、メインCPU11−1においては、プログラム書換装置2から制御プログラムの書換えが指示された場合、その指示に自身の制御プログラムを書換える指示が含まれているときには、自身の制御プログラムが書換えられるようにするとともに、その指示にサブCPU11−2の制御プログラムを書換える指示が含まれているときには、サブCPU11−2の制御プログラムが書換えられるようにする。
次に、図21乃至図25のフローチャートを参照して、サブCPU11−2により実行される処理の詳細について説明する。
まず、図21のフローチャートを参照して、サブCPU11−2の処理を説明するが、基本的には、図6に示したステップS31乃至S39の処理と同様である。
すなわち、サブCPU11−2では、メインCPU11−1から制御プログラムの書換え指令を受けない場合には、通常動作として、制御対象の制御が行われる(ステップS31Aの処理)。一方、書換指令受信部51によって、メインCPU11−1から制御プログラムの書換え開始指令が受信された場合(ステップS31Bの「Yes」)、処理は、ステップS32に進む。そして、サブCPU11−2では、制御プログラムの書換え処理が開始される。
ここで、図22のフローチャートを参照して、図21のステップS32の処理に対応する書換え開始処理の詳細について説明する。
ステップS201において、動作状態切替部52は、サブCPU11−2で実行されるプログラムを、通常動作の制御プログラムから、専用のブートプログラムに切り替えて、ブートプログラムによる動作が行われるようにする。これにより、サブCPU11−2では、書換えモードでの動作を開始することになる(ステップS202の処理)。
すなわち、図21のフローチャートの各ステップの左側に記述しているように、ステップS31A乃至S31Bの処理は、「通常動作の制御プログラム」により実行されていたが、それ以降のステップS32乃至S34の処理は、「ブートプログラム」により実行されることになる。
ステップS202の処理が終了すると、処理は、図21のステップS32の処理に戻り、ステップS33以降の処理が実行される。
ステップS33において、書換情報受信部53は、メインCPU11−1から送信されてくる書換え情報を受信する書換え情報受信処理を行う。
ここで、図23のフローチャートを参照して、図21のステップS33の処理に対応する書換え情報受信処理の詳細について説明する。
ステップS211において、書換情報受信部53は、メインCPU11−1から送信されてくる書換え情報(サブCPU用書換えプログラム、サブCPU更新制御プログラム)を受信する。書換情報受信部53は、ステップS212において、あらかじめ定められた受信時間を経過したか否かを判定することで、タイムアウトとなったか否かを判定する。
ステップS212において、タイムアウトになっていないと判定された場合、ステップS213において、書換情報受信部53は、メインCPU11−1から書換え情報が受信されたか否かを判定し、書換え情報が受信されていないと判定された場合、処理は、ステップS211に戻り、上述した、ステップS211乃至S213の処理が繰り返される。すなわち、書換情報受信部53は、メインCPU11−1から書換え情報を受信されていない場合、タイムアウトするまで、書換え情報の受信処理を継続することになる。
一方、ステップS212において、書換え情報を受信できずに、タイムアウトしたと判定された場合、書換結果判定部56は、サブCPU11−2の書換え情報のタイムアウトを判定し(ステップS214の処理)、書換え情報のタイムアウトエラーを、書換結果記録部57に記録する(ステップS215の処理)。
図23のフローチャートに戻り、書換え情報が受信されたと判定された場合(ステップS213の「Yes」)又はステップS215の処理が終了すると、処理は、図21のステップS33に戻り、ステップS34以降の処理が実行される。すなわち、書換情報受信部53により、書換え情報として、サブCPU用書換えプログラムとサブCPU更新制御プログラムが受信され、動作状態切替部52により、サブCPU用書換えプログラムが起動される(ステップS34の処理)。
すなわち、図21のフローチャートの各ステップの左側に記述しているように、ステップS32乃至S34の処理は、「ブートプログラム」により実行されていたが、それ以降のステップ35乃至S38の処理は、「書換えプログラム」により実行されることになる。
ステップS35において、第2の不揮発性メモリ書き込み部54は、サブCPU不揮発性メモリ書き込み処理を行う。
ここで、図24のフローチャートを参照して、サブCPU不揮発性メモリ書き込み処理の詳細について説明する。
サブCPU不揮発性メモリ書き込み処理においては、はじめに、メインCPU11−1から書換え情報が受信されたか否かが判定され(ステップS220の処理)、書換え情報が受信されたと判定された場合(ステップS220の「Yes」)、処理は、ステップS221に進む。
そして、第2の不揮発性メモリ書き込み部54は、第2の不揮発性メモリ55の更新領域のデータを消去し(ステップS221の処理)、その消去された領域に、書換え情報として受信されたサブCPU更新制御プログラムを書き込む(ステップS222の処理)。続いて第2の不揮発性メモリ書き込み部54は、ステップS223において、サブCPU書き込み結果確認処理を行う。
ここで、図25のフローチャートを参照して、サブCPU書き込み結果確認処理の詳細を説明する。
ステップS231において、第2の不揮発性メモリ書き込み部54は、書換結果判定部56を介して書換結果送受信部58に問い合わせて、書換結果送受信部58によりメインCPU11−1から書換えの確認要求が受信されたか否かを判定する。この確認要求は、上述した図17のステップS142に対応する要求である。確認要求が受信されるまで、ステップS231の判定処理が繰り返され、確認要求が受信されたと判定された場合(ステップS231の「Yes」)、処理は、ステップS232に進む。
ステップS232において、第2の不揮発性メモリ書き込み部54は、サブCPU11−2の制御プログラム領域のチェックサム検証を実行する。
ステップS233において、第2の不揮発性メモリ書き込み部54は、制御プログラム領域のチェックサムがチェックされ、正常であるか否かを判定する。ステップS233において、制御プログラム領域のチェックサムがチェックされ、異常であると判定された場合、第2の不揮発性メモリ書き込み部54は、チェックサム検証の結果を書換結果判定部56に供給し、処理は、ステップS234に進む。書換結果判定部56は、サブCPU11−2の書き込みエラーを判定し(ステップS234の処理)、サブCPU11−2の書き込みエラーを、書換結果記録部40に記録する(ステップS235の処理)。
そして、制御プログラム領域のチェックサムがチェックされ、正常であると判定された場合(ステップS233の「Yes」)、又は、ステップS235の処理が終了した場合、処理は、図24のステップS223に戻る。さらに、書換え情報が受信されていないと判定されるか(ステップS220の「No」)、あるいは、ステップS223の処理が終了すると、処理は、図21のステップS35の処理に戻り、ステップS36以降の処理が実行される。
ステップS36において、書換結果判定部56は、書換結果記録部40に記録された判定結果に基づいて、書換え結果判定処理を行う。この書換え結果判定処理の書換え結果は、書換結果送受信部58によりメインCPU11−1に送信される(ステップS37の処理)。
ステップS38において、リセット部59は、メインCPU11−1から送信されてくるリセット要求(図20のステップS184の処理)に応じて、サブCPU11−1のリセットを行う。これにより、サブCPU11−1では、書換え後の制御プログラムが起動されることになる。
そして、処理は、ステップS31Aに戻り、ステップS31A以降の処理が実行される。すなわち、サブCPU11−2では、リセット処理により書換え後の制御プログラムが起動され、通常動作を開始することになる(ステップS31Aの処理)。つまり、図21のフローチャートの各ステップの左側に記述しているように、ステップ35乃至S38の処理は、「書換えプログラム」により実行されていたが、それ以降のステップS31A,S31Bの処理は、「書換え後の通常動作のプログラム」により実行されることになる。これにより、サブCPU11−2では、書換えモードから通常モードに切り替わることになる。
以上のように、サブCPU11−2においては、自身の制御プログラムを書換える場合、メインCPU11−1からその指示と書換え情報が送られてくるので、メインCPU11−1からの指示に応じて制御プログラムの書換えを行う。
このように、プログラム書換システムでは、プログラム書換装置2によって、制御装置1の制御装置IDと、1つのCPUのためのプログラム書換え情報(すなわち、メインCPU11−1のための書換え情報)で構成された書換え情報を用いて、制御装置1の制御プログラムの書換えを行う場合に、制御装置1に対して、1回の書き込み指令を行って、書換え情報を送信するだけで、メインCPU11−1によって、適切なプログラムが識別され、メインCPU11−1、サブCPU11−2の制御プログラムを一括して書換えることができる。換言すれば、メインCPU11−1によって、制御装置1のIDと、マスタCPU11−1のプログラム識別用のID、サブCPU11−2のプログラム識別用のIDのそれぞれがチェックされ、適切な制御プログラムのみが更新されることになる。
その結果、効率よく、制御プログラムの書換えを行うことができる。
なお、上述した説明では、プログラム書換装置2により制御プログラムが書換えられる制御装置として、メインCPU11−1とサブCPU11−2の2つのCPUが搭載された制御装置1について説明したが、3つ以上のCPUが搭載された制御装置であっても同様に制御プログラムを書換えることができる。
例えば、メインCPU11−1に加えて、サブCPU11−2乃至サブCPU11−4が搭載された制御装置の場合、メインCPU11−1によって、プログラム書換装置2からの書換え情報が受信され、その書換え情報から抽出される各サブCPU用のサブCPU用書換えプログラムと、サブCPU用書換え制御プログラムが、各サブCPUのIDにより識別され、サブCPU11−2乃至サブCPU11−4にそれぞれ送信されることになる。そして、メインCPU11−1からの書換え情報を受信したサブCPU11−2乃至サブCPU11−4のそれぞれでは、上述したサブCPU11−2と同様の処理が実行される。
また、上述した図4のプログラム書換システムの構成例では、説明の都合上、第1の不揮発性メモリ37と、第2の不揮発性メモリ55は、メインCPU11−1及びサブCPU11−2の内部にそれぞれ設けられているように記載されているが、図1及び図2に示したROM13−1及びROM13−2のように、CPUとは別に設けるようにしてもよい。
なお、本明細書において、フローチャートに記述された各ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 制御装置
2 プログラム書換装置
11−1 メインCPU
11−2 サブCPU
13−1,13−2 ROM
21 CPU
31 書換指令受信部
32 動作状態切替部
33 書換情報受信部
34 書換データ抽出部
35 書換対象判定部
36 第1の不揮発性メモリ書き込み部
37 第1の不揮発性メモリ
38 第2の不揮発性メモリ書き込み部
39 書換結果判定部
40 書換結果記録部
41 書換結果送受信部
42 リセット部
51 書換指令受信部
52 動作状態切替部
53 書換情報受信部
54 第2の不揮発性メモリ書き込み部
55 第2の不揮発性メモリ
56 書換結果判定部
57 書換結果記録部
58 書換結果送受信部
59 リセット部
71 書換指令送信部
72 書換情報取得部
73 書換情報送信部
74 書換結果確認部
75 書換結果表示部
76 リセット部
2 プログラム書換装置
11−1 メインCPU
11−2 サブCPU
13−1,13−2 ROM
21 CPU
31 書換指令受信部
32 動作状態切替部
33 書換情報受信部
34 書換データ抽出部
35 書換対象判定部
36 第1の不揮発性メモリ書き込み部
37 第1の不揮発性メモリ
38 第2の不揮発性メモリ書き込み部
39 書換結果判定部
40 書換結果記録部
41 書換結果送受信部
42 リセット部
51 書換指令受信部
52 動作状態切替部
53 書換情報受信部
54 第2の不揮発性メモリ書き込み部
55 第2の不揮発性メモリ
56 書換結果判定部
57 書換結果記録部
58 書換結果送受信部
59 リセット部
71 書換指令送信部
72 書換情報取得部
73 書換情報送信部
74 書換結果確認部
75 書換結果表示部
76 リセット部
Claims (11)
- 第1の制御手段と、
第2の制御手段と、
前記第1の制御手段が用いる第1のプログラムを保持する第1の保持手段と、
前記第2の制御手段が用いる第2のプログラムを保持する第2の保持手段と
を有する制御装置において、
前記第1の制御手段は、
プログラムの書き込みを行う外部装置から書き込み情報を受信する書込情報受信手段と、
前記書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、前記第1の保持手段又は前記第2の保持手段に書き込むためのプログラムを抽出する抽出手段と、
前記制御装置識別情報が自機に対応するか否かを判定する識別情報判定手段と、
前記制御装置識別情報が自機に対応すると判定された場合、前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込む第1の書き込み手段と、
前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する書込情報送信手段と
を備え、
前記第2の制御手段は、
前記第1の制御手段から送信されてくる、前記第2の制御手段が用いる第2のプログラムを、前記第2の保持手段に書き込む第2の書き込み手段を備える
制御装置。 - 前記抽出手段は、前記書き込み情報から、いずれの制御手段が用いる書き込み情報であるかを識別するための書き込み対象識別情報をさらに抽出し、
前記第1の書き込み手段は、前記制御装置識別情報が自機に対応すると判定された場合、抽出された前記書き込み対象識別情報により識別される前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込み、
前記書込情報送信手段は、抽出された前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する
請求項1に記載の制御装置。 - 前記第1の制御手段は、
前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを書き込むか否かを判定する書込対象判定手段をさらに備え、
前記書込情報送信手段は、前記第2のプログラムを書き込むと判定された場合、前記第2のプログラムを、前記第2の制御手段に送信する
請求項2に記載の制御装置。 - 前記第2の制御手段は、
前記第2のプログラムの書き込み結果を、前記第1の制御手段に送信する第1の書込結果送信手段をさらに備え、
前記第1の制御手段は、
前記第2の制御手段から送信されてくる、前記第2のプログラムの書き込み結果を受信する書込結果受信手段と、
受信された前記第2のプログラムの書き込み結果を、前記第1のプログラムの書き込み結果とともに、前記外部装置に送信する第2の書込結果送信手段と
をさらに備える請求項3に記載の制御装置。 - 前記第1の制御手段は、
前記外部装置から送信されてくる、対象とする制御手段の再起動を指示するためのリセット要求に応じて、前記第1の制御手段を再起動する第1のリセット手段と、
前記第2のプログラムが書き込まれた場合、前記リセット要求を前記第2の制御手段に送信するリセット要求送信手段と
をさらに備え、
前記第2の制御手段は、
前記第1の制御手段から送信されてくる、前記リセット要求に応じて、前記第2の制御手段を再起動する第2のリセット手段と
をさらに備える請求項4に記載の制御装置。 - 第1の制御手段と、
第2の制御手段と、
前記第1の制御手段が用いる第1のプログラムを保持する第1の保持手段と、
前記第2の制御手段が用いる第2のプログラムを保持する第2の保持手段と
を有する制御装置の制御方法において、
前記第1の制御手段は、
プログラムの書き込みを行う外部装置から書き込み情報を受信し、
前記書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、前記第1の保持手段又は前記第2の保持手段に書き込むためのプログラムを抽出し、
前記制御装置識別情報が自機に対応するか否かを判定し、
前記制御装置識別情報が自機に対応すると判定された場合、前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込み、
前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する
ステップを含み、
前記第2の制御手段は、
前記第1の制御手段から送信されてくる、前記第2の制御手段が用いる第2のプログラムを、前記第2の保持手段に書き込むステップを含む
制御方法。 - 第1の制御手段と、第2の制御手段と、前記第1の制御手段が用いる第1のプログラムを保持する第1の保持手段と、前記第2の制御手段が用いる第2のプログラムを保持する第2の保持手段とを有する制御装置と、
前記制御装置のプログラムの書き込みを行う外部装置と
からなるプログラム書込システムにおいて、
前記外部装置は、
書き込み情報を取得する書込情報取得手段と、
取得された前記書き込み情報を前記制御装置に送信する第1の書込情報送信手段と
を備え、
前記制御装置の前記第1の制御手段は、
前記外部装置から送信されてくる、書き込み情報を受信する書込情報受信手段と、
前記書き込み情報から、対象とする制御装置を識別するための制御装置識別情報と、前記第1の保持手段又は前記第2の保持手段に書き込むためのプログラムを抽出する抽出手段と、
前記制御装置識別情報が自機に対応するか否かを判定する識別情報判定手段と、
前記制御装置識別情報が自機に対応すると判定された場合、前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込む第1の書き込み手段と、
前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する第2の書込情報送信手段と
を備え、
前記制御装置の前記第2の制御手段は、
前記第1の制御手段から送信されてくる、前記第2の制御手段が用いる第2のプログラムを、前記第2の保持手段に書き込む第2の書き込み手段を備える
プログラム書込システム。 - 前記抽出手段は、前記書き込み情報から、いずれの制御手段が用いる書き込み情報であるかを識別するための書き込み対象識別情報をさらに抽出し、
前記第1の書き込み手段は、前記制御装置識別情報が自機に対応すると判定された場合、抽出された前記書き込み対象識別情報により識別される前記第1の制御手段が用いる第1のプログラムを、前記第1の保持手段に書き込み、
前記書込情報送信手段は、抽出された前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを、前記第2の制御手段に送信する
請求項7に記載のプログラム書込システム。 - 前記制御装置の前記第1の制御手段は、
前記書き込み対象識別情報により識別される前記第2の制御手段が用いる第2のプログラムを書き込むか否かを判定する書込対象判定手段をさらに備え、
前記第2の書込情報送信手段は、前記第2のプログラムを書き込むと判定された場合、前記第2のプログラムを、前記第2の制御手段に送信する
請求項8に記載のプログラム書込システム。 - 前記制御装置の前記第2の制御手段は、
前記第2のプログラムの書き込み結果を、前記第1の制御手段に送信する第1の書込結果送信手段をさらに備え、
前記制御装置の前記第1の制御手段は、
前記第2の制御手段から送信されてくる、前記第2のプログラムの書き込み結果を受信する第1の書込結果受信手段と、
受信された前記第2のプログラムの書き込み結果を、前記第1のプログラムの書き込み結果とともに、前記外部装置に送信する第2の書込結果送信手段と
をさらに備え、
前記外部装置は、
前記第1の制御手段から送信されてくる前記第1のプログラムの書き込み結果及び前記第2のプログラムの書き込み結果を受信する第2の書込結果受信手段と、
受信した前記第1のプログラムの書き込み結果及び前記第2のプログラムの書き込み結果に対応する情報を通知する通知手段と
をさらに備える請求項9に記載のプログラム書込システム。 - 前記外部装置は、
前記制御装置の前記第1の制御手段から書き込み結果を受信した場合、対象とする制御手段の再起動を指示するためのリセット要求を、前記制御装置の前記第1の制御手段に送信する第1のリセット要求送信手段をさらに備え、
前記制御装置の前記第1の制御手段は、
前記外部装置から送信されてくる、リセット要求に応じて、前記第1の制御手段を再起動する第1のリセット手段と、
前記第2のプログラムが書き込まれた場合、前記リセット要求を前記第2の制御手段に送信する第2のリセット要求送信手段と
をさらに備え、
前記制御装置の前記第2の制御手段は、
前記第1の制御手段から送信されてくる、前記リセット要求に応じて、前記第2の制御手段を再起動する第2のリセット手段と
をさらに備える請求項10に記載のプログラム書込システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010240806A JP2012093961A (ja) | 2010-10-27 | 2010-10-27 | 制御装置及び方法、並びにプログラム書込システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010240806A JP2012093961A (ja) | 2010-10-27 | 2010-10-27 | 制御装置及び方法、並びにプログラム書込システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012093961A true JP2012093961A (ja) | 2012-05-17 |
Family
ID=46387216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010240806A Pending JP2012093961A (ja) | 2010-10-27 | 2010-10-27 | 制御装置及び方法、並びにプログラム書込システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012093961A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017049874A (ja) * | 2015-09-03 | 2017-03-09 | 日本電気株式会社 | 情報処理装置、情報処理システム、制御方法、および制御プログラム |
JP2017084001A (ja) * | 2015-10-26 | 2017-05-18 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
JP2017518583A (ja) * | 2014-06-11 | 2017-07-06 | ホーム コントロール シンガポール プライベート リミテッド | スモールメモリ装置にソフトウェアをインストールするシステム |
JP2017157202A (ja) * | 2016-02-26 | 2017-09-07 | 株式会社デンソー | 車載制御装置 |
WO2020129324A1 (ja) * | 2018-12-20 | 2020-06-25 | Nttエレクトロニクス株式会社 | モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法 |
JP7349522B1 (ja) | 2022-03-30 | 2023-09-22 | Kyb株式会社 | 演算装置およびプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268107A (ja) * | 2005-03-22 | 2006-10-05 | Denso Corp | 電子制御装置 |
JP2010174507A (ja) * | 2009-01-29 | 2010-08-12 | Kubota Corp | 作業機用制御装置 |
-
2010
- 2010-10-27 JP JP2010240806A patent/JP2012093961A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268107A (ja) * | 2005-03-22 | 2006-10-05 | Denso Corp | 電子制御装置 |
JP2010174507A (ja) * | 2009-01-29 | 2010-08-12 | Kubota Corp | 作業機用制御装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017518583A (ja) * | 2014-06-11 | 2017-07-06 | ホーム コントロール シンガポール プライベート リミテッド | スモールメモリ装置にソフトウェアをインストールするシステム |
JP2017049874A (ja) * | 2015-09-03 | 2017-03-09 | 日本電気株式会社 | 情報処理装置、情報処理システム、制御方法、および制御プログラム |
JP2017084001A (ja) * | 2015-10-26 | 2017-05-18 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
JP2017157202A (ja) * | 2016-02-26 | 2017-09-07 | 株式会社デンソー | 車載制御装置 |
WO2020129324A1 (ja) * | 2018-12-20 | 2020-06-25 | Nttエレクトロニクス株式会社 | モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法 |
JP2020101889A (ja) * | 2018-12-20 | 2020-07-02 | Nttエレクトロニクス株式会社 | モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法 |
JP7281275B2 (ja) | 2018-12-20 | 2023-05-25 | Nttエレクトロニクス株式会社 | モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法 |
US11853736B2 (en) | 2018-12-20 | 2023-12-26 | Ntt Electronics Corporation | Module, information processing device equipped with same, and method for updating program data to update program data in module |
JP7349522B1 (ja) | 2022-03-30 | 2023-09-22 | Kyb株式会社 | 演算装置およびプログラム |
JP2023149048A (ja) * | 2022-03-30 | 2023-10-13 | Kyb株式会社 | 演算装置およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100446126C (zh) | 使用多个命令周期的闪存存储器访问 | |
JP2012093961A (ja) | 制御装置及び方法、並びにプログラム書込システム | |
JP2018200510A (ja) | ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法 | |
US9983790B2 (en) | System management controller and method of configuration file backup and recovery | |
CN102089753B (zh) | 用于在网络上安全地更新瘦客户机操作***的***和方法 | |
TWI602121B (zh) | 更新伺服器映像檔的技術 | |
KR20110076432A (ko) | Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법 | |
JP2020027635A5 (ja) | 電子制御装置、リトライポイントの特定方法、リトライポイントの特定プログラム及び車両用電子制御システム | |
JP2002278783A (ja) | ファームウェア書き換えシステム | |
TWI707274B (zh) | 用於更新系統之rom編碼之電腦實施方法、電腦系統以及電腦可讀取媒體 | |
CN103744712A (zh) | 一种应用程序的更新方法及装置 | |
WO2016033941A1 (zh) | Boot在线升级装置及方法 | |
WO2019123747A1 (ja) | 自動車用電子制御装置及びその制御方法 | |
JP2005173747A (ja) | フィールド機器のメモリ更新システム | |
JP2015121987A (ja) | プログラム更新システム | |
CN106484442A (zh) | 服务器***及更新开机映像档的方法 | |
JP2004021867A (ja) | 情報処理システム | |
TWI782352B (zh) | 自動回復基板管理控制器的韌體設定的方法 | |
CN110442074B (zh) | 可编程逻辑控制器程序的处理装置 | |
CN115469911A (zh) | 一种参数配置方法、***及计算机可读存储介质 | |
BR102022000011A2 (pt) | Ota mestre, método de controle de atualização, meio de armazenamento não transitório, e veículo | |
JP6408450B2 (ja) | 自動車用電子制御装置 | |
JP2002175193A (ja) | プログラム書き換え装置及びプログラム書き換え方法 | |
JP2019020837A (ja) | 電子制御装置 | |
US10817213B2 (en) | Data storage device and operating method for data storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130529 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131001 |