JP2006171803A - 車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置 - Google Patents

車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置 Download PDF

Info

Publication number
JP2006171803A
JP2006171803A JP2004358974A JP2004358974A JP2006171803A JP 2006171803 A JP2006171803 A JP 2006171803A JP 2004358974 A JP2004358974 A JP 2004358974A JP 2004358974 A JP2004358974 A JP 2004358974A JP 2006171803 A JP2006171803 A JP 2006171803A
Authority
JP
Japan
Prior art keywords
control program
external device
program
rewrite
rewrite control
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.)
Granted
Application number
JP2004358974A
Other languages
English (en)
Other versions
JP4556653B2 (ja
Inventor
Atsushi Yamaguchi
惇 山口
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 JP2004358974A priority Critical patent/JP4556653B2/ja
Priority to DE102005058950A priority patent/DE102005058950A1/de
Priority to US11/298,574 priority patent/US7904896B2/en
Publication of JP2006171803A publication Critical patent/JP2006171803A/ja
Application granted granted Critical
Publication of JP4556653B2 publication Critical patent/JP4556653B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

【課題】 車載電子制御装置(以下、ECU)を、書換制御プログラムと新たなアプリケーションプログラム(以下、新アプリ)とが別々のファイルとして記憶されるAタイプの外部装置と、その2つのプログラムが1つのファイルとして記憶されるBタイプの外部装置と、新アプリだけを送信するCタイプの外部装置との、何れにも対応可能にする。
【解決手段】 プログラム書換用の外部装置は、A〜Cタイプの何れであっても、ECUへ、新アプリの前に、以降のデータが新アプリであることを示す識別コードを送信する。そして、ECUのマイコンが実行するブートローダでは、外部装置から書込要求が出力された後、識別コードが送信されて来るまでは(S210:NO)、外部装置からのデータを書換制御プログラムとして扱い、識別コードが送信されて来たならば(S210:YES)、以後のデータは新アプリと判断して、書換制御プログラムへ移行する処理を行う。
【選択図】 図5

Description

本発明は、車載電子制御装置のコンピュータが実行するアプリケーションプログラムをオンボード状態で書き換える技術に関するものである。
従来より、自動車に搭載されてエンジン等を制御する車載電子制御装置として、電気的に記憶データの書き換え(詳しくはデータの消去及び書き込み)が可能なフラッシュROMやEEPROMといった不揮発性の書換可能メモリに、制御対象を制御するためのアプリケーションプログラムを格納しておき、そのアプリケーションプログラムを、上記書換可能メモリが電子制御装置の基板に搭載されたままのオンボード状態で書き換えることができるようにしたものが知られている(例えば、特許文献1参照)。
そして、この種の車載電子制御装置において、書換可能メモリ内のアプリケーションプログラムを書き換える際には、別途用意された外部装置が通信ラインを介して接続され、まず、その外部装置から、車載電子制御装置の動作モードを書換可能メモリ内のアプリケーションプログラムを書き換えるモードに移行させるための書込要求が出される。尚、その書込要求は、車載電子制御装置へ、通信ラインとは別の信号線を介して出力される形態と、通信ラインを介しコマンドとして送信される形態とがある。
そして、その後、外部装置から通信ラインを介して車載電子制御装置へ、まず、その車載電子制御装置に備えられたコンピュータに当該外部装置から送信されて来る新たなアプリケーションプログラムを書換可能メモリに更新して書き込む書換処理を行わせるための書換制御プログラムが送信され、次いで、書換可能メモリに書き込むべき新たなアプリケーションプログラムが送信される(例えば、特許文献1参照)。
一方、車載電子制御装置では、外部装置からの書込要求を受けると、コンピュータが、書換制御プログラムを起動させるためのプログラムであるブートローダ(ブートプログラム)を実行することにより、まず、外部装置から送信されて来る書換制御プログラムを受信してRAMに格納し、書換制御プログラムのRAMへの格納が終了すると、そのRAM内の書換制御プログラムを起動する(つまり、ブートローダからRAM内の書換制御プログラムへジャンプする)。そして、その後は、コンピュータがRAM内の書換制御プログラムを実行することにより、外部装置から送信されて来る新たなアプリケーションプログラムを受信して書換可能メモリに更新して書き込む書換処理を行う(例えば、特許文献1参照)。
この書換処理により、書換可能メモリ内の旧来のアプリケーションプログラムが外部装置からの新たなアプリケーションプログラムに書き換えられることとなる。また、書換可能メモリ内にアプリケーションプログラムが未だ書き込まれていなかった場合には、外部装置からのアプリケーションプログラムが書換可能メモリに新規に書き込まれることとなる。
特開平10−105468号公報
ところで、上記特許文献1において、書換制御プログラムと新たなアプリケーションプログラムは、外部装置側では、別々のファイルとして記憶されており、車載電子制御装置側のコンピュータが実行するブートローダは、書換制御プログラムのRAMへのダウンロード(転送)と、そのRAMにダウンロードした書換制御プログラムへの遷移との役割をしている。
しかしながら、自動車の分野において、プログラム書き換え用の外部装置としては、車載電子制御装置へ送信する書換制御プログラムと新たなアプリケーションプログラムとが別々のファイルとして記憶されるタイプのもの(以下、Aタイプの外部装置という)だけでなく、書換制御プログラムと新たなアプリケーションプログラムとが1つのファイルとして記憶されるタイプのもの(以下、Bタイプの外部装置という)もある。
そして、そのBタイプの外部装置では、Aタイプの外部装置と同様に、車載電子制御装置へ、書換制御プログラムと新たなアプリケーションプログラムとを送信することとなるが、その2つのプログラムが区切り無く送信されると、車載電子制御装置のマイコンで実行されるブートローダでは、どこまでが書換制御プログラムなのかを判別できず、その結果、書換制御プログラムのRAMへのダウンロードに失敗し、延いては、アプリケーションプログラムの書き換えを正常に実施することができなくなる。
また、プログラム書き換え用の外部装置としては、車載電子制御装置へ書換制御プログラムを送信することなく、新たなアプリケーションプログラムだけを送信するタイプのもの(以下、Cタイプの外部装置という)もある。このCタイプの外部装置は、車載電子制御装置に備えられた不揮発性メモリに予め書換制御プログラムが格納されていることを想定したものである。
そして、そのCタイプの外部装置からは書換制御プログラムが送信されさないため、Aタイプ又はBタイプの外部装置に対応するよう設計された車載電子制御装置側のブートローダでは、例えば、外部装置からの新たなアプリケーションプログラムを書換制御プログラムとしてRAMにダウンロードしてしまい、やはり、アプリケーションプログラムの書き換えを正常に実施することができなくなる。
そこで、上記各タイプの外部装置毎に専用のブートローダを用意すれば良いが、そのようにしたのでは、車載電子制御装置のプログラム開発工数を増大させてしまう上に、外部装置に応じてブートローダを使い分ける必要があり、製品管理が非常に面倒となってしまう。誤って外部装置とマッチしないブートローダを車載電子制御装置のコンピュータシステムにインストールしてしまった場合には、アプリケーションプログラムの書き換え/書き込みができないからである。
本発明は、こうした問題に鑑みなされたものであり、車載電子制御装置を、書換制御プログラムと新たなアプリケーションプログラムとが別々のファイルとして記憶されるAタイプの外部装置と、書換制御プログラムと新たなアプリケーションプログラムとが1つのファイルとして記憶されるBタイプの外部装置と、書換制御プログラムを送信せずに新たなアプリケーションプログラムだけを送信するCタイプの外部装置との、何れにも対応できるようにすることを目的としている。
上記目的を達成するためになされた請求項1に記載の車載電子制御装置のプログラム書換システムは、電気的に記憶データの書き換えが可能な不揮発性の書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有する車載電子制御装置と、その車載電子制御装置における書換可能メモリ内のアプリケーションプログラムを書き換える際に、その車載電子制御装置と通信可能に接続される外部装置とからなる。
そして、外部装置としては、車載電子制御装置へ、書換可能メモリ内のアプリケーションプログラムを書き換える動作モードに移行させるための書込要求を出力した後、前記コンピュータに当該外部装置から送信されて来る新たなアプリケーションプログラムを書換可能メモリに更新して書き込む書換処理を行わせるための書換制御プログラムを書込対象データとして送信し、その次に、新たなアプリケーションプログラムを書込対象データとして送信するタイプの装置(以下、第1種タイプの外部装置という)と、車載電子制御装置へ、前記書込要求を出力した後、書換制御プログラムを送信することなく、新たなアプリケーションプログラムを書込対象データとして送信するタイプの装置(以下、第2種タイプの外部装置という)とがある。つまり、前述したAタイプの外部装置とBタイプの外部装置が、何れも第1種タイプの外部装置に該当し、Cタイプの外部装置が、第2種タイプの外部装置に該当する。
ここで特に、請求項1のプログラム書換システムにおいて、外部装置は、車載電子制御装置へ、新たなアプリケーションプログラムを送信する前に、以降の書込対象データが新たなアプリケーションプログラムであることを示す識別コードを送信するようになっている。
そして、車載電子制御装置のコンピュータは、外部装置から、書込要求が出力された後、前記識別コードが送信されて来たか否かを判定する判定処理を行うと共に、外部装置から書込要求が出力されてから、前記判定処理により識別コードが送信されて来たと判定するまでは、外部装置から送信されて来る書込対象データは書換制御プログラムであると判断し、外部装置から書込要求が出力されてから、前記判定処理により識別コードが送信されて来たと判定すると、その後に外部装置から送信されて来る書込対象データは新たなアプリケーションプログラムであると判断するようになっている。
このような請求項1のプログラム書換システムでは、外部装置が、書換制御プログラムと新たなアプリケーションプログラムとが別々のファイルとして記憶されるAタイプの外部装置と、書換制御プログラムと新たなアプリケーションプログラムとが1つのファイルとして記憶されるBタイプの外部装置と、書換制御プログラムを送信せずに新たなアプリケーションプログラムだけを送信するCタイプの外部装置との、何れであっても、その外部装置から車載電子制御装置へは、新たなアプリケーションプログラムの前に、以降の書込対象データが新たなアプリケーションプログラムであることを示す識別コードが送信されることとなり、車載電子制御装置のコンピュータは、外部装置から書込要求が出力されてから、その識別コードが送信されて来たか否かで、外部装置からの書込対象データが、書換制御プログラムなのか新たなアプリケーションプログラムなのかを判別することができる。
よって、このプログラム書換システムによれば、車載電子制御装置を、A〜Cタイプの何れの外部装置にも対応できるようにすることができる。
具体的には、請求項2に記載のように、車載電子制御装置のコンピュータは、外部装置から書込要求が出力されてから、前記判定処理により識別コードが送信されて来たと判定するまでは、外部装置から送信されて来る書込対象データを、書換制御プログラムとして作業用メモリ領域に格納する格納処理を行い、外部装置から書込要求が出力されてから、前記判定処理により識別コードが送信されて来たと判定すると、前記格納処理によって作業用メモリ領域に書換制御プログラムが格納されているか否かを判定する第2の判定処理を行い、更に、その第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていると判定したならば、その作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理(つまり、外部装置から送信されて来る新たなアプリケーションプログラムを書換可能メモリに更新して書き込む処理)を行い、逆に、前記第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていないと判定したならば、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理を行うようにすれば良い。
つまり、外部装置がAタイプ又はBタイプである場合には、その外部装置から送信される書換制御プログラムが前記格納処理によって作業用メモリ領域に格納され、その後、外部装置から識別コードが送信されると、前記第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていると判定されて、その作業用メモリ領域内の書換制御プログラム(即ち、外部装置からダウンロードされた書換制御プログラム)が起動され、その書換制御プログラムの実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれる(即ち、旧来のアプリケーションプログラムが新たなアプリケーションプログラムに書き換えられる)こととなる。
また、外部装置がCタイプである場合には、書換制御プログラムが送信されて来ず、その外部装置から識別コードが送信されると、前記第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていないと判定されることとなり、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムが、その不揮発性メモリ上で起動されるか、或いは、その不揮発性メモリから作業用メモリ領域にコピーされて、その作業用メモリ領域上で起動される。そして、その書換制御プログラム(即ち、車載電子制御装置に予め内蔵されていた書換制御プログラム)の実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれることとなる。
このように、外部装置がA〜Cタイプの何れであっても、アプリケーションプログラムの書き換えを正確に実施できるようになる。
そして、このような請求項2に記載のコンピュータの動作は、請求項3に記載のコンピュータ用ブートローダによって実現することができる。
まず、請求項3に記載のブートローダは、書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有すると共に、外部装置からの書込要求を受けた場合には、そのコンピュータがアプリケーションプログラムとは別の書換制御プログラムを実行することにより、外部装置から送信されて来る新たなアプリケーションプログラムを書換可能メモリに更新して書き込む書換処理を行う車載電子制御装置に用いられ、その車載電子制御装置のコンピュータが外部装置から書込要求が出力されたことを検知した場合に、前記書換制御プログラムを起動するためのプログラムである。
そして、この請求項3のブートローダは、コンピュータを、以下の各手段として機能させる。
即ち、外部装置から、書込要求が出力された後、以降のデータが新たなアプリケーションプログラムであることを示す識別コードが送信されて来たか否かを判定する第1の判定手段と、外部装置から書込要求が出力されてから、第1の判定手段により識別コードが送信されて来たと判定されるまでは、外部装置から送信されて来た書込対象データを、書換制御プログラムとして作業用メモリ領域に格納する書換制御プログラム格納手段と、外部装置から書込要求が出力されてから、第1の判定手段により識別コードが送信されて来たと判定されると、書換制御プログラム格納手段によって作業用メモリ領域に書換制御プログラムが格納されているか否かを判定する第2の判定手段と、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていると判定されたならば、その作業用メモリ領域内の書換制御プログラムを起動する第1の起動手段と、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていないと判定されたならば、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動する第2の起動手段の各手段である。
そして、このような請求項3のブートローダによれば、A〜Cタイプの何れの外部装置にも対応することができ、また、車載電子制御装置を、A〜Cタイプの何れの外部装置にも対応可能にすることができる。
つまり、外部装置がAタイプ又はBタイプである場合には、その外部装置から送信される書換制御プログラムが書換制御プログラム格納手段によって作業用メモリ領域に格納され、その後、外部装置から識別コードが送信されると、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていると判定されて、その作業用メモリ領域内の書換制御プログラム(即ち、外部装置からダウンロードされた書換制御プログラム)が第1の起動手段により起動されることとなる。そして、その書換制御プログラムの実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれる(即ち、旧来のアプリケーションプログラムが新たなアプリケーションプログラムに書き換えられる)こととなる。
また、外部装置がCタイプである場合には、書換制御プログラムが送信されて来ず、その外部装置から識別コードが送信されると、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていないと判定されることとなり、この場合には、第2の起動手段により、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムが、その不揮発性メモリ上で起動されるか、或いは、その不揮発性メモリから作業用メモリ領域にコピーされて、その作業用メモリ領域上で起動される。そして、その書換制御プログラム(即ち、車載電子制御装置に予め内蔵されていた書換制御プログラム)の実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれることとなる。
このように、外部装置がA〜Cタイプの何れであっても、車載電子制御装置にて、アプリケーションプログラムの書き換えを正確に実施できるようになるのである。尚、Cタイプの外部装置に接続される可能性がある車載電子制御装置の場合には、その車載電子制御装置における不揮発性メモリに予め書換制御プログラムを格納しておけば良い。
そして、このような請求項3のコンピュータ用ブートローダは、コンピュータ読み取り可能な記録媒体に記録して用いることができ、その記録媒体とコンピュータとを搭載した車載電子制御装置によれば、ブートローダの共用化により、開発工数や製品管理工数を低減させることができる。
次に、請求項6に記載の車載電子制御装置のプログラム書換システムも、請求項1のプログラム書換システムと同様の車載電子制御装置と外部装置とからなり、また、外部装置としても、第1種タイプの外部装置(Aタイプ又はBタイプの外部装置)と第2種タイプの外部装置(Cタイプの外部装置)とがあるが、この請求項6のプログラム書換システムにおいて、外部装置は、車載電子制御装置へ、書込対象データを送信する前に、その書込対象データの書込先情報を送信するようになっている。よって、書換制御プログラムが送信される前には、その書換制御プログラムの書込先情報が送信され、新たなアプリケーションデータが送信される前には、そのアプリケーションプログラムの書込先情報(即ち、書換可能メモリのアドレスを示す書込先情報)が送信される。
そこで、この請求項6のプログラム書換システムにおいて、車載電子制御装置のコンピュータは、外部装置から、書込要求が出力された後、前記書込先情報が送信されて来ると、その書込先情報が書換可能メモリのアドレスを示すものであるか否かを判定する判定処理を行うと共に、外部装置から書込要求が出力されてから、前記判定処理により外部装置からの書込先情報が書換可能メモリのアドレスを示すものであると判定するまでは、外部装置から送信されて来る書込対象データは書換制御プログラムであると判断し、外部装置から書込要求が出力されてから、前記判定処理により外部装置からの書込先情報が書換可能メモリのアドレスを示すものであると判定すると、その後に外部装置から送信されて来る書込対象データは新たなアプリケーションプログラムであると判断するようになっている。
このような請求項6のプログラム書換システムでは、外部装置がA〜Cタイプの何れであっても、その外部装置から車載電子制御装置へは、新たなアプリケーションプログラムの前に、その新たなアプリケーションプログラムの書込先情報として、書換可能メモリのアドレスを示す書込先情報が送信されることとなる。そして、車載電子制御装置のコンピュータは、外部装置から書込要求が出力されてから、書換可能メモリのアドレスを示す書込先情報が送信されて来たか否かで、外部装置からの書込対象データが、書換制御プログラムなのか新たなアプリケーションプログラムなのかを判別することができる。
よって、この請求項6のプログラム書換システムによれば、外部装置が前述の識別コードを送信するようにしなくても、車載電子制御装置を、A〜Cタイプの何れの外部装置にも対応できるようにすることができる。
具体的には、請求項7に記載のように、車載電子制御装置のコンピュータは、外部装置から書込要求が出力されてから、前記判定処理により外部装置からの書込先情報が書換可能メモリのアドレスを示すものであると判定するまでは、外部装置から送信されて来る書込対象データを、書換制御プログラムとして作業用メモリ領域に格納する格納処理を行い、外部装置から書込要求が出力されてから、前記判定処理により外部装置からの書込先情報が書換可能メモリのアドレスを示すものであると判定すると、前記格納処理によって作業用メモリ領域に書換制御プログラムが格納されているか否かを判定する第2の判定処理を行い、更に、その第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていると判定したならば、その作業用メモリ領域内の書換制御プログラムを起動することにより書換処理(つまり、外部装置から送信されて来る新たなアプリケーションプログラムを書換可能メモリに更新して書き込む処理)を行い、逆に、第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていないと判定したならば、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理を行うようにすれば良い。
つまり、外部装置がAタイプ又はBタイプである場合には、その外部装置から送信される書換制御プログラムが前記格納処理によって作業用メモリ領域に格納され、その後、外部装置から書換可能メモリのアドレスを示す書込先情報が送信されると、前記第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていると判定されて、その作業用メモリ領域内の書換制御プログラム(即ち、外部装置からダウンロードされた書換制御プログラム)が起動され、その書換制御プログラムの実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれる(即ち、旧来のアプリケーションプログラムが新たなアプリケーションプログラムに書き換えられる)こととなる。
また、外部装置がCタイプである場合には、書換制御プログラムが送信されて来ず、その外部装置から書換可能メモリのアドレスを示す書込先情報が送信されると、前記第2の判定処理により、作業用メモリ領域に書換制御プログラムが格納されていないと判定されることとなり、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムが、その不揮発性メモリ上で起動されるか、或いは、その不揮発性メモリから作業用メモリ領域にコピーされて、その作業用メモリ領域上で起動される。そして、その書換制御プログラム(即ち、車載電子制御装置に予め内蔵されていた書換制御プログラム)の実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれることとなる。
このように、外部装置がA〜Cタイプの何れであっても、アプリケーションプログラムの書き換えを正確に実施できるようになる。
そして、このような請求項7に記載のコンピュータの動作は、請求項8に記載のコンピュータ用ブートローダによって実現することができる。
まず、請求項8に記載のブートローダは、書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有すると共に、外部装置からの書込要求を受けた場合には、そのコンピュータがアプリケーションプログラムとは別の書換制御プログラムを実行することにより、外部装置から送信されて来る新たなアプリケーションプログラムを書換可能メモリに更新して書き込む書換処理を行い、更に、外部装置からは、書込対象データが送信されて来る前に、その書込対象データの書込先情報が送信されて来る車載電子制御装置に用いられ、その車載電子制御装置のコンピュータが外部装置から書込要求が出力されたことを検知した場合に、前記書換制御プログラムを起動するためのプログラムである。
そして、この請求項8のブートローダは、コンピュータを、以下の各手段として機能させる。
即ち、外部装置から、書込要求が出力された後、書込先情報が送信されて来ると、その書込先情報が書換可能メモリのアドレスを示すものであるか否かを判定する第1の判定手段と、外部装置から書込要求が出力されてから、第1の判定手段により外部装置からの書込先情報が書換可能メモリのアドレスを示すものであると判定されるまでは、外部装置から送信されて来た書込対象データを、書換制御プログラムとして作業用メモリ領域に格納する書換制御プログラム格納手段と、外部装置から書込要求が出力されてから、第1の判定手段により外部装置からの書込先情報が書換可能メモリのアドレスを示すものであると判定されると、書換制御プログラム格納手段によって作業用メモリ領域に書換制御プログラムが格納されているか否かを判定する第2の判定手段と、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていると判定されたならば、その作業用メモリ領域内の書換制御プログラムを起動する第1の起動手段と、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていないと判定されたならば、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動する第2の起動手段の各手段である。
そして、このような請求項8のブートローダによれば、A〜Cタイプの何れの外部装置にも対応することができ、また、車載電子制御装置を、A〜Cタイプの何れの外部装置にも対応可能にすることができる。
つまり、外部装置がAタイプ又はBタイプである場合には、その外部装置から送信される書換制御プログラムが書換制御プログラム格納手段によって作業用メモリ領域に格納され、その後、外部装置から書換可能メモリのアドレスを示す書込先情報が送信されると、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていると判定されて、その作業用メモリ領域内の書換制御プログラム(即ち、外部装置からダウンロードされた書換制御プログラム)が第1の起動手段により起動されることとなる。そして、その書換制御プログラムの実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれる(即ち、旧来のアプリケーションプログラムが新たなアプリケーションプログラムに書き換えられる)こととなる。
また、外部装置がCタイプである場合には、書換制御プログラムが送信されて来ず、その外部装置から書換可能メモリのアドレスを示す書込先情報が送信されると、第2の判定手段により、作業用メモリ領域に書換制御プログラムが格納されていないと判定されることとなり、この場合には、第2の起動手段により、車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムが、その不揮発性メモリ上で起動されるか、或いは、その不揮発性メモリから作業用メモリ領域にコピーされて、その作業用メモリ領域上で起動される。そして、その書換制御プログラム(即ち、車載電子制御装置に予め内蔵されていた書換制御プログラム)の実行により、その後に外部装置から送信されて来る新たなアプリケーションプログラムが書換可能メモリに更新して書き込まれることとなる。
このように、外部装置がA〜Cタイプの何れであっても、車載電子制御装置にて、アプリケーションプログラムの書き換えを正確に実施できるようになるのである。尚、Cタイプの外部装置に接続される可能性のある車載電子制御装置の場合には、その車載電子制御装置における不揮発性メモリに予め書換制御プログラムを格納しておけば良い。
そして、このような請求項8のコンピュータ用ブートローダは、コンピュータ読み取り可能な記録媒体に記録して用いることができ、その記録媒体とコンピュータとを搭載した車載電子制御装置によれば、ブートローダの共用化により、開発工数や製品管理工数を低減させることができる。
以下に、本発明が適用された実施形態の車載電子制御装置のプログラム書換システムについて説明する。
[第1実施形態]
図1に示すように、第1実施形態のプログラム書換システムは、車両(自動車)に搭載されて、その車両における制御対象(この例ではエンジン)の制御を行う車載電子制御装置(以下、ECUという)1と、そのECU1に内蔵されたエンジン制御処理用のプログラムであるアプリケーションプログラムを書き換える際、或いは新規に書き込む際に、通信ライン3を介してECU1に接続される外部ツール5(外部装置に相当)とからなる。
そして、ECU1には、マイコン(マイクロコンピュータ)7と、マイコン7が外部ツール5と通信ライン3を介して通信するための通信ドライバ9とが備えられている。
そして更に、マイコン7には、プログラムを実行するための周知のCPU11と、不揮発性の書換可能メモリであるフラッシュROM13と、揮発性のRAM15とが備えられており、フラッシュROM13には、アプリケーションプログラムとブートローダが格納されている。
尚、ブートローダは、外部ツール5からECU1へアプリケーションプログラムを書き換える動作モードに移行させるためのコマンドである書込要求が送信された際に、アプリケーションプログラムを書き換える書換処理用の書換制御プログラムを起動させるために実行されるプログラムである。このため、ブートローダは、記憶データの書き換えが不能な通常のROMに格納されていても良い。また、外部ツール5からECU1へは、その外部ツール5に所定の操作が行われると、書込要求が送信される。
一方、外部ツール5としては、図1に示すように、ECU1へ送信する書換制御プログラムと新たなアプリケーションプログラム(以下、新アプリケーションプログラムという)とが、別々のファイルF1,F2として記憶されるAタイプの外部ツール(以下、このAタイプ外部ツールの符号としては特に「5a」を用いる)と、図2に示すように、ECU1へ送信する書換制御プログラムと新アプリケーションプログラムとが、1つのファイルF3として記憶されるBタイプの外部ツール(以下、このBタイプ外部ツールの符号としては特に「5b」を用いる)と、新アプリケーションプログラムのファイルF2だけが記憶され、ECU1へは書換制御プログラムを送信せずに、そのファイルF2の新アプリケーションプログラムだけを送信するCタイプの外部ツール(以下、このCタイプ外部ツールの符号としては特に「5c」を用いる)とがある。
また、図1と図3に示すように、新アプリケーションプログラムのファイルF2において、そのファイルを形成するデータの先頭には、以降のデータが新アプリケーションプログラムであることを示すROM識別コードが配置されている。よって、外部ツール5a,5cは、ECU1へ新アプリケーションプログラムを送信する前に、ROM識別コードを送信することとなる。
同様に、図2に示す如く、書換制御プログラムと新アプリケーションプログラムとの両方を含んだファイルF3において、書換制御プログラムと新アプリケーションプログラムとの境目にも、以降のデータが新アプリケーションプログラムであることを示すROM識別コードが配置されている。よって、外部ツール5bも、ECU1へ新アプリケーションプログラムを送信する前に、ROM識別コードを送信することとなる。
尚、外部ツール5からECU1へは、データが予め定められた単位量(例えば2バイト)毎に順次送信されるようになっており、上記ROM識別コードのデータ長は、その単位量となっている。一方、図3に示すように、Cタイプ外部ツール5cに接続される可能性のあるECU1では、そのCタイプ外部ツール5cからは書換制御プログラムが送信されて来ないため、フラッシュROM13内の特定領域(請求項2,3記載の不揮発性メモリに相当)に予め書換制御プログラムが格納されている。また、その書換制御プログラムは、フラッシュROM13内に限らず、例えば記憶データの書き換えが不能な通常のROM等、他の不揮発性メモリに格納されていても良い。
次に、A〜Cタイプの外部ツール5a〜5cとECU1との、アプリケーションプログラム書き換え時における動作概要について説明する。
まず、外部ツール5がA〜Cタイプの何れであっても、外部ツール5からECU1へ書込要求が送信されると、ECU1のマイコン7では、プログラムの実行先がフラッシュROM13内のアプリケーションプログラムからブートローダへ移行(ジャンプ)する。
そして、図1に示すように、外部ツール5がAタイプの外部ツール5aである場合、そのAタイプ外部ツール5aは、ECU1へ書込要求を送信した後、まず、書換制御プログラム(即ち、ファイルF1)を送信する。
すると、ECU1のマイコン7は、ブートローダの実行により、外部ツール5aからの書換制御プログラムを受信してRAM15に順次格納し、その書換制御プログラムのRAM15へのダウンロードが完了すると、プログラムの実行先を、そのRAM15内の書換制御プログラムへ移行させる。
また、外部ツール5aは、書換制御プログラムの送信を終えると、次に、新アプリケーションプログラム(即ち、ファイルF2)を送信する。
そして、ECU1のマイコン7は、ブートローダから移行したRAM15内の書換制御プログラムを実行することで、外部ツール5aからの新アプリケーションプログラムをフラッシュROM13に更新して書き込む書換処理を行うこととなる。
尚、こうした書換処理により、フラッシュROM13内の旧来のアプリケーションプログラムが外部ツール5aからの新アプリケーションプログラムに書き換えられることとなる。また、フラッシュROM13内にアプリケーションプログラムが未だ書き込まれていなかった場合には、外部ツール5aからの新アプリケーションプログラムがフラッシュROM13に新規に書き込まれることとなる。
また、図2に示すように、外部ツール5がBタイプの外部ツール5bである場合、そのBタイプ外部ツール5bは、ECU1へ書込要求を送信した後、書換制御プログラムと新アプリケーションプログラムとを続けて送信する。
すると、ECU1のマイコン7は、ブートローダの実行により、外部ツール5aからの書換制御プログラムを受信してRAM15に順次格納し、その書換制御プログラムのRAM15へのダウンロードが完了すると、プログラムの実行先を、そのRAM15内の書換制御プログラムへ移行させる。
そして更に、ECU1のマイコン7は、そのRAM15内の書換制御プログラムを実行することで、外部ツール5bからの書換制御プログラムに続く新アプリケーションプログラムを、フラッシュROM13に更新して書き込む書換処理を行うこととなる。
一方、図3に示すように、外部ツール5がCタイプの外部ツール5cである場合、そのCタイプ外部ツール5cは、ECU1へ書込要求を送信した後、新アプリケーションプログラムだけを送信する。
そして、この場合、ECU1のマイコン7は、ブートローダの実行により、フラッシュROM13内に予め格納されている書換制御プログラムをRAM15にコピーし、そのコピーを完了すると、プログラムの実行先を、そのRAM15内の書換制御プログラムへ移行させる。そして更に、ECU1のマイコン7は、そのRAM15内の書換制御プログラムを実行することで、外部ツール5bからの新アプリケーションプログラムを、フラッシュROM13に更新して書き込む書換処理を行うこととなる。
次に、上記A〜Cタイプの外部ツール5a〜5cに接続される全てのECU1に共通のブートローダ(即ち、全てのタイプの外部ツール5a〜5cに対応可能で、上記図1〜図3を参照して説明した動作概要を実現可能なブートローダ)の詳しい処理内容について、図4及び図5を用いて説明する。
まず図4は、ブートローダの処理全体を表すフローチャートである。
前述したように、ECU1のマイコン7は、外部ツール5からECU1へ書込要求が送信されると、プログラムの実行先がアプリケーションプログラムからブートローダへ移行する。つまり、アプリケーションプログラム中に、外部ツール5からの書込要求が通信ドライバ9によって受信されたことを検知する処理があり、マイコン7は、その処理で書込要求が受信されたことを検知すると、図4のブートローダを実行する。
そして、マイコン7がブートローダの実行を開始すると、まずS110にて、通信ドライバ9により外部ツール5から受信された単位量分の受信データを、その通信ドライバ9から取り込むデータ受信処理を行い、続くS120にて、上記S110で取り込んだ今回の受信データを解析することにより、書込要求を受信したか否か(即ち、今回の受信データが書込要求であるか否か)を判定する。
そして、書込要求を受信したと判定したならば、S130に進んで、外部ツール5へ書込要求応答を送信するための送信処理を行い、その後、上記S110へ戻る。尚、書込要求応答は、外部ツール5からの書込要求を正常に受信できたことを、外部ツール5に知らせるための応答メッセージである。
また、上記S120にて、書込要求を受信しなかったと判定したならば、S140に移行して、上記S110で取り込んだ今回の受信データを解析することにより、外部ツール5からのデータダウンロード要求を受信したか否か(即ち、今回の受信データがデータダウンロード要求であるか否か)を判定する。このデータダウンロード要求は、外部ツール5が、書込対象データ(即ち、コマンド以外のデータであり、具体的には書換制御プログラム又は新アプリケーションプログラム)の送信を開始することをECU1へ報知するために送信するコマンドである。そして、このデータダウンロード要求には、これから送信される書込対象データ(以下、書込データともいう)の総データ量を示す情報であるダウンロードデータサイズも含まれている。
そして、上記S140にて、データダウンロード要求を受信したと判定したならば、S150に進んで、そのデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更に続くS160にて、外部ツール5へデータダウンロード要求応答を送信するための送信処理を行った後、上記S110へ戻る。尚、データダウンロード要求応答は、外部ツール5からのデータダウンロード要求を正常に受信できたことを、外部ツール5に知らせるための応答メッセージである。
また、上記S140にて、データダウンロード要求を受信しなかったと判定したならば、S170に移行して、上記S110で取り込んだ今回の受信データを解析することにより、外部ツール5からの書込対象データを受信したか否か(即ち、今回の受信データが書込対象データであるか否か)を判定する。尚、ROM識別コードも書込対象データであると判定される。
そして、このS170にて、書込対象データを受信しなかったと判定したならば、そのままS110へ戻るが、書込対象データを受信したと判定したならば、S180に進んで、図5に示す転送判定プログラムの処理を実行した後、上記S110に戻る。尚、転送判定プログラムは、ブートローダの一部を成すものである。
次に、マイコン7が上記S180で転送判定プログラムの処理を開始すると、図5に示すように、まずS210にて、上記S110で取り込んだ今回の受信データを解析することにより、外部ツール5からのROM識別コードを受信したか否か(つまり、今回の受信がROM識別コードであったか否か)を判定する。
ここで、ROM識別コードを受信しなかったと判定した場合には、S220に進んで、書換制御プログラムのダウンロードを実施したことを示す書換制御プログラムダウンロードフラグDFをセットし、続くS230にて、今回の受信データ(書込対象データ)を、書換制御プログラムを構成するデータとして、RAM15に書き込む。
そして、次のS240にて、図4のS150で記憶したダウンロードデータサイズ分のデータ受信を完了したか否か(換言すれば、ダウンロードデータサイズ分の書込対象データを全てRAM15に書き込めたか否か)を判定し、ダウンロードデータサイズ分のデータ受信を完了していないと判定した場合には、そのまま当該転送判定プログラムの処理を終了する。
また、上記S240にて、ダウンロードデータサイズ分のデータ受信を完了したと判定した場合には、S250に進んで、外部ツール5へ書込データ送信応答を送信するための送信処理を行い、その後、当該転送判定プログラムの処理を終了する。尚、書込データ送信応答は、外部ツール5からの書込対象データを全て正常に受信できたことを、外部ツール5に知らせるための応答メッセージである。
一方、上記S210にて、ROM識別コードを受信したと判定した場合には、S260に移行して、書換制御プログラムダウンロードフラグDFがセットされているか否かを判定し、そのフラグDFがセットされていたならば、RAM15に外部ツール5からの書換制御プログラムが格納されていると判断してS270に進む。そして、このS270にて、RAM15内の書換制御プログラムへジャンプする。
すると、マイコン7は、そのRAM15内の書換制御プログラムの実行を開始することとなる。そして、マイコン7は、その書換制御プログラムを実行することにより、外部ツール5から送信されて来る新アプリケーションプログラムをフラッシュROM13に更新して書き込む書換処理を行うと共に、全ての新アプリケーションプログラムのフラッシュROM13への書き込みが完了したならば、外部ツール5へ書込データ送信応答を送信するための送信処理を行うこととなる。
また、上記S260にて、書換制御プログラムダウンロードフラグDFがセットされていないと判定した場合には、RAM15に外部ツール5からの書換制御プログラムが格納されていないと判断してS280に移行する。そして、そのS280にて、フラッシュROM13の特定領域に格納されている書換制御プログラムをRAM15にコピーし、その後、S270に移行する。
すると、この場合、マイコン7は、上記S280でフラッシュROM13からRAM15にコピーした書換制御プログラムを実行することとなる。
そして、マイコン7は、その書換制御プログラムを実行することにより、上記書換処理を行うと共に、全ての新アプリケーションプログラムのフラッシュROM13への書き込みが完了したならば、外部ツール5へ書込データ送信応答を送信するための送信処理を行うこととなる。
次に、以上のようなブートローダの作用について、図6〜図8を用いて説明する。
まず、図6は、外部ツール5がAタイプ外部ツール5aである場合の、そのAタイプ外部ツール5aとECU1との通信手順を表すシーケンスチャートである。
図6の(1)に示すように、Aタイプ外部ツール5aに所定の操作が行われて、そのAタイプ外部ツール5aからECU1へ書込要求が送信されると、既述したように、ECU1のマイコン7では、プログラムの実行先がアプリケーションプログラムからブートローダへ移行して、そのブートローダが実行される。
そして、ブートローダでは、S120で肯定判定(YESと判定)され、S130の処理により、図6の(2)に示すように、Aタイプ外部ツール5aへ書込要求応答を送信することとなる。
次に、Aタイプ外部ツール5aは、ECU1からの上記書込要求応答を受信すると、図6の(3)に示すように、ECU1へ書換制御プログラムを送信する前の準備として、その書換制御プログラムの総データ量(つまり、ファイルF1の総データ量)を表すダウンロードデータサイズを含んだデータダウンロード要求を送信する。
すると、ブートローダでは、S140で肯定判定され、S150の処理により、Aタイプ外部ツール5aからのデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更にS160の処理により、図6の(4)に示すように、Aタイプ外部ツール5aへデータダウンロード要求応答を送信することとなる。
次に、Aタイプ外部ツール5aは、ECU1からの上記データダウンロード要求応答を受信すると、図6の(5)に示すように、ECU1へ、ファイルF1として記憶されている書換制御プログラム(詳しくは、その書換制御プログラムを構成するデータ)を書込対象データとして送信する。尚、図6では、書込対象データを「書込データ」と記載しており、このことは、後述する図7及び図8においても同様である。
すると、ブートローダでは、S170で肯定判定され、S180にて図5の処理(転送判定プログラムの処理)が開始される。
ここで、Aタイプ外部ツール5aから書換制御プログラムが送信される場合には、ROM識別コードが送信されて来ないため、S210で否定判定(NOと判定)され、S220の処理により、書換制御プログラムダウンロードフラグDFがセットされ、更にS230の処理により、Aタイプ外部ツール5aからの書換制御プログラムがRAM15に書き込まれることとなる。
そして、ブートローダでは、Aタイプ外部ツール5aから書換制御プログラムが単位量分送信される毎に、S170で肯定判定されると共に、図5におけるS220及びS230の処理が行われることとなり、Aタイプ外部ツール5aからの書換制御プログラムを全てRAM15に書き込めたならば、S240で肯定判定されて、S250の処理により、図6の(6)に示すように、Aタイプ外部ツール5aへ、書込データ送信応答を送信することとなる。
次に、Aタイプ外部ツール5aは、ECU1からの上記書込データ送信応答を受信すると、図6の(7)に示すように、ECU1へ新アプリケーションプログラムを送信する前の準備として、その新アプリケーションプログラムの総データ量(つまり、ファイルF2の総データ量からROM識別コードのデータ量を引いたデータ量)を表すダウンロードデータサイズを含んだデータダウンロード要求を送信する。
すると、ブートローダでは、S140で肯定判定され、S150の処理により、Aタイプ外部ツール5aからの今回のデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更にS160の処理により、図6の(8)に示すように、Aタイプ外部ツール5aへデータダウンロード要求応答を送信することとなる。
次に、Aタイプ外部ツール5aは、ECU1からの上記データダウンロード要求応答を受信すると、図6の(9)に示すように、ECU1へ、ファイルF2として記憶されている新アプリケーションプログラムの最初の単位量を書込対象データとして送信するが、このときに送信されるのは、ファイルF2の先頭に配置されているROM識別コードである。
すると、ブートローダでは、S170で肯定判定され、S180にて図5の処理(転送判定プログラムの処理)が開始されるが、この場合には、ROM識別コードが受信されるため、S210で肯定判定され、更に、書換制御プログラムダウンロードフラグDFが既にセットされており、Aタイプ外部ツール5aから新アプリケーションプログラムの前に送信されて来た書換制御プログラムがRAM15に格納されているため、S260で肯定判定されることとなる。そして、S270の処理により、そのRAM15内の書換制御プログラムへジャンプ(移行)することとなる。
そして以後は、図6の(10)に示すように、Aタイプ外部ツール5aからECU1へ、新アプリケーションプログラムを構成するデータが単位量ずつ送信され、ECU1のマイコン7では、RAM15内の書換制御プログラム(つまり、Aタイプ外部ツール5aからダウンロードされた書換制御プログラム)が実行されることにより、Aタイプ外部ツール5aからの新アプリケーションプログラムをフラッシュROM13に順次更新して書き込む書換処理が行われることとなる。
尚、その書換処理は、まず、フラッシュROM13におけるアプリケーションプログラムの記憶領域を消去し、次いで、その消去した記憶領域に外部ツール5からの新アプリケーションプログラムを順次書き込んで行き、更に、全ての新アプリケーションプログラムをフラッシュROM13に書き込めたならば、外部ツール5へプログラムの書き換えが完了したことを報知するために書込データ送信応答を送信する、といった手順で行われる。つまり、図6の(11)に示すECU1からAタイプ外部ツール5aへの書込データ送信応答は、書換制御プログラムによって送信される。
次に、図7は、外部ツール5がBタイプ外部ツール5bである場合の、そのBタイプ外部ツール5bとECU1との通信手順を表すシーケンスチャートである。
尚、図7における(4)までの動作は、図6における(4)までの動作とほぼ同じであり、図7の(3)では、Bタイプ外部ツール5bがECU1へ、書換制御プログラム及び新アプリケーションプログラムの総データ量(つまり、ファイルF3の総データ量からROM識別コードのデータ量を引いたデータ量)を表すダウンロードデータサイズを含んだデータダウンロード要求を送信する点のみが異なっている。よって、ここでは、図7の(5)以降の動作について説明する。
Bタイプ外部ツール5bは、図7の(3)で送信したデータダウンロード要求に対するECU1からのデータダウンロード要求応答を受信すると、図7の(5)に示すように、ECU1へ、ファイルF3のデータを書込対象データとして送信し出す。このため、Bタイプ外部ツール5bからは、まず、ファイルF3の前半に配置されている書換制御プログラムが単位量ずつ送信されることとなる。
すると、ブートローダでは、S170で肯定判定され、S180にて図5の処理が開始される。
ここで、Aタイプ外部ツール5aの場合と同様に、Bタイプ外部ツール5bから書換制御プログラムが送信される場合には、ROM識別コードが送信されて来ないため、S210で否定判定され、S220の処理により、書換制御プログラムダウンロードフラグDFがセットされ、更にS230の処理により、Bタイプ外部ツール5bからの書換制御プログラムがRAM15に書き込まれることとなる。そして、ブートローダでは、Bタイプ外部ツール5bから書換制御プログラムが単位量分送信される毎に、S170で肯定判定されると共に、図5におけるS220及びS230の処理が行われることとなる。
やがて、Bタイプ外部ツール5bは、書換制御プログラムの送信を終了し、ファイルF3において書換制御プログラムと新アプリケーションプログラムとの境目に配置されているROM識別コードを、図7の(6)に示すように書込対象データとして送信することとなる。
すると、ブートローダでは、S170で肯定判定され、S180にて図5の処理が開始されるが、この場合には、ROM識別コードが受信されるため、S210で肯定判定され、更に、書換制御プログラムダウンロードフラグDFが既にセットされており、Bタイプ外部ツール5bから新アプリケーションプログラムの前に送信されて来た書換制御プログラムがRAM15に格納されているため、S260で肯定判定されることとなる。そして、S270の処理により、そのRAM15内の書換制御プログラムへジャンプ(移行)することとなる。
そして以後は、図7の(7)に示すように、Bタイプ外部ツール5bからECU1へ、新アプリケーションプログラムを構成するデータが単位量ずつ送信され、ECU1のマイコン7では、RAM15内の書換制御プログラム(つまり、Bタイプ外部ツール5bからダウンロードされた書換制御プログラム)が実行されることにより、Bタイプ外部ツール5bからの新アプリケーションプログラムをフラッシュROM13に順次更新して書き込む書換処理が行われることとなる。そして、全ての新アプリケーションプログラムがフラッシュROM13に書き込まれたならば、図7の(8)に示すように、ECU1からBタイプ外部ツール5bへプログラムの書き換えが完了したことを報知するために書込データ送信応答が送信されることとなる。尚、その書込データ送信応答は、図6の(11)と同様に、書換制御プログラムによって送信される。
次に、図8は、外部ツール5がCタイプ外部ツール5cである場合の、そのCタイプ外部ツール5cとECU1との通信手順を表すシーケンスチャートである。
尚、図8における(4)までの動作は、図6における(4)までの動作とほぼ同じであり、図8の(3)では、Cタイプ外部ツール5cがECU1へ、新アプリケーションプログラムの総データ量(つまり、ファイルF2の総データ量からROM識別コードのデータ量を引いたデータ量)を表すダウンロードデータサイズを含んだデータダウンロード要求を送信する点のみが異なっている。よって、ここでは、図8の(5)以降の動作について説明する。
Cタイプ外部ツール5cは、図8の(3)で送信したデータダウンロード要求に対するECU1からのデータダウンロード要求応答を受信すると、図8の(5)に示すように、ECU1へ、ファイルF2のデータを書込対象データとして送信し出す。このため、Cタイプ外部ツール5cからは、まず、ファイルF2の先頭に配置されているROM識別コードを送信することとなる。
すると、ブートローダでは、S170で肯定判定され、S180にて図5の処理が開始される。
そして、このときには、ROM識別コードが受信されるため、S210で肯定判定されるが、この場合には、Cタイプ外部ツール5cからRAM15へ書換制御プログラムがダウンロードされておらず、書換制御プログラムダウンロードフラグDFがセットされていないため、S260で否定判定されることとなる。
このため、S280の処理により、フラッシュROM13の特定領域に予め格納されている書換制御プログラムがRAM15にコピーされ、その後、S270の処理により、そのRAM15内の書換制御プログラムへジャンプ(移行)することとなる。
そして以後は、図8の(6)に示すように、Cタイプ外部ツール5cからECU1へ、新アプリケーションプログラムを構成するデータが単位量ずつ送信され、ECU1のマイコン7では、RAM15内の書換制御プログラム(つまり、フラッシュROM13からRAM15にコピーした書換制御プログラム)が実行されることにより、Cタイプ外部ツール5cからの新アプリケーションプログラムをフラッシュROM13に順次更新して書き込む書換処理が行われることとなる。そして、全ての新アプリケーションプログラムがフラッシュROM13に書き込まれたならば、図8の(7)に示すように、ECU1からCタイプ外部ツール5cへプログラムの書き換えが完了したことを報知するために書込データ送信応答が送信されることとなる。尚、その書込データ送信応答は、図6の(11)と同様に、書換制御プログラムによって送信される。
以上のように、第1実施形態のプログラム書換システムにおいて、外部ツール5は、A〜Cタイプの何れであっても、ECU1へ、新アプリケーションプログラムを送信する前に、以降の書込対象データが新アプリケーションプログラムであることを示すROM識別コードを送信するようになっている。
そして、ECU1に用いられるマイコン7のブートローダでは、外部ツール5から書込要求が送信されて来ると、その後、S210により、外部ツール5からROM識別コードが送信されて来たか否かを判定し、そのS210によりROM識別コードが送信されて来たと判定するまでは、外部ツール5から送信されて来る書込対象データは書換制御プログラムであると判断して、S230の処理により、その外部ツール5からの書込対象データを書換制御プログラムとしてRAM15に格納し、また、S210によりROM識別コードが送信されて来たと判定すると、その後に外部ツール5から送信されて来る書込対象データは新アプリケーションプログラムであると判断して、まずS260により、RAM15に外部ツール5からの書換制御プログラムが格納されているか否かを、書換制御プログラムダウンロードフラグDFがセットされているか否かで判定するようにしている。
そして、そのS260により、RAM15に書換制御プログラムが格納されていると判定したならば、S270にて、そのRAM15内の書換制御プログラムへジャンプして、その書換制御プログラムが起動されるようにし、逆に、上記S260により、RAM15に書換制御プログラムが格納されていないと判定したならば、S280の処理により、フラッシュROM13の特定領域からRAM15に書換制御プログラムをコピーし、その後、S270にて、そのRAM15内の書換制御プログラムへジャンプして、その書換制御プログラムが起動されるようにしている。
このため、外部ツール5がAタイプ外部ツール5a又はBタイプ外部ツール5bである場合には、その外部ツール5a,5bから送信される書換制御プログラムがRAM15に格納され、その後、外部ツール5a,5bからROM識別コードが送信されると、S260の処理により、RAM15に外部ツール5a,5bからの書換制御プログラムが格納されていると判定されて、そのRAM15の書換制御プログラムが起動され、その書換制御プログラムの実行により、その後に外部ツール5a,5bから送信されて来る新アプリケーションプログラムがフラッシュROM13に更新して書き込まれることとなる。
また、外部ツール5がCタイプ外部ツール5cである場合には、書換制御プログラムが送信されて来ず、その外部ツール5cからROM識別コードが送信されると、S260の処理により、RAM15に書換制御プログラムが格納されていないと判定されることとなり、フラッシュROM13の特定領域に予め格納されている書換制御プログラムがRAM15にコピーされて、そのRAM15上で起動される。そして、その書換制御プログラムの実行により、その後に外部ツール5cから送信されて来る新アプリケーションプログラムがフラッシュROM13に更新して書き込まれることとなる。
このように、外部ツール5がA〜Cタイプの何れであっても、アプリケーションプログラムの書き換えを正確に実施できるようになる。そして、以上のような第1実施形態のブートローダによれば、外部ツール5のタイプ毎に開発する必要がないため、ECU1に関するトータルの開発工数や製品管理工数を低減させることができる。
尚、上記第1実施形態と請求項1〜5の発明との対応としては、S210の処理が、判定処理又は第1の判定手段としての処理に相当し、S230の処理が、格納処理又は書換制御プログラム格納手段としての処理に相当し、S260の処理が、第2の判定処理又は第2の判定手段としての処理に相当している。そして、S260から直接進むS270の処理が、第1の起動手段としての処理に相当し、S280とS270の処理が、第2の起動手段としての処理に相当している。また、RAM15が作業用メモリ領域に相当し、フラッシュROM13がブートローダを記録したコンピュータ読み取り可能な記録媒体に相当している。
一方、図5のS280では、フラッシュROM13の特定領域に格納されている書換制御プログラムをRAM15にコピーせずに、そのフラッシュROM13内の書換制御プログラムへジャンプする(つまり、アプリケーションプログラム書換領域を書換え中でもプログラムが動作できる領域へ、書換制御プログラムを配置し、書換制御プログラムをフラッシュROM13上で起動する)ようにしても良い。
[第2実施形態]
次に、第2実施形態のプログラム書換システムについて説明する。尚、第1実施形態と同じ点に関しては説明を省略する。
第2実施形態のプログラム書換システムは、第1実施形態のプログラム書換システムと比較すると、外部ツール5からECU1へ、書込対象データ(書換制御プログラム又は新アプリケーションプログラム)が送信される前に、その書込対象データの書込先アドレス(書込先情報に相当)が送信されるようになっている。
具体的に説明すると、その書込先アドレスは、これから送信する書込対象データを書き込むべきメモリ空間の先頭アドレスを示すものである。そして、外部ツール5は、A〜Cタイプの何れであっても、データダウンロード要求として、前述のダウンロードデータサイズと共に、これから送信する書込対象データの書込先アドレスも含んだデータダウンロード要求を、ECU1へ送信するようになっている。
また、本第2実施形態のプログラム書換システムにおいて、図1〜図3に示した各タイプの外部ツール5a〜5cにそれぞれ記憶されるファイルF1〜F3には、ROM識別コードが配置されていない。
次に、本第2実施形態において、A〜Cタイプの外部ツール5a〜5cに接続される全てのECU1に共通のブートローダの処理内容について、図9及び図10を用いて説明する。
まず図9は、ブートローダの処理全体を表すフローチャートである。
第1実施形態と同様に、ECU1のマイコン7は、外部ツール5からECU1へ書込要求が送信されると、プログラムの実行先がアプリケーションプログラムからブートローダへ移行する。
そして、マイコン7がブートローダの実行を開始すると、まずS310にて、通信ドライバ9により外部ツール5から受信された単位量分の受信データを、その通信ドライバ9から取り込むデータ受信処理を行い、続くS320にて、上記S310で取り込んだ今回の受信データを解析することにより、書込要求を受信したか否か(即ち、今回の受信データが書込要求であるか否か)を判定する。
そして、書込要求を受信したと判定したならば、S330に進んで、外部ツール5へ書込要求応答を送信するための送信処理を行い、その後、上記S310へ戻る。
また、上記S320にて、書込要求を受信しなかったと判定したならば、S340に移行して、上記S310で取り込んだ今回の受信データを解析することにより、外部ツール5からのデータダウンロード要求を受信したか否か(即ち、今回の受信データがデータダウンロード要求であるか否か)を判定する。
そして、上記S340にて、データダウンロード要求を受信したと判定したならば、S350に進んで、そのデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更に続くS360にて、図10に示す転送判定プログラムの処理を実行した後、上記S310に戻る。尚、本第2実施形態においても、転送判定プログラムはブートローダの一部を成すものである。
ここで、マイコン7が転送判定プログラムの処理を開始すると、図10に示すように、まずS410にて、今回受信したデータダウンロード要求に含まれている書込先アドレスがフラッシュROM13のアドレスであるか否かを判定する。
そして、書込先アドレスがフラッシュROM13のアドレスではないと判定した場合には、S420に進んで、書換制御プログラムのダウンロードを実施したことを示す書換制御プログラムダウンロードフラグDFをセットする。そして更に、続くS430にて、外部ツール5へデータダウンロード要求応答を送信するための送信処理を行った後、当該転送判定プログラムの処理を終了する。尚、この場合には、その後、外部ツール5から書換制御プログラムが送信され、その書換制御プログラムが、後述するS380の処理によりRAM15に格納されることとなる。
また、上記S410にて、今回受信したデータダウンロード要求に含まれている書込先アドレスがフラッシュROM13のアドレスであると判定した場合には、S440に移行して、書換制御プログラムダウンロードフラグDFがセットされているか否かを判定し、そのフラグDFがセットされていたならば、RAM15に外部ツール5からの書換制御プログラムが格納されていると判断してS450に進む。そして、このS450にて、RAM15内の書換制御プログラムへジャンプする。
すると、マイコン7は、そのRAM15内の書換制御プログラムの実行を開始することとなる。
そして、マイコン7は、その書換制御プログラムを実行することにより、まず、外部ツール5へデータダウンロード要求応答を送信するための送信処理を行い、次いで、外部ツール5から送信されて来る新アプリケーションプログラムをフラッシュROM13に更新して書き込む書換処理を行い、更に、全ての新アプリケーションプログラムのフラッシュROM13への書き込みが完了したならば、外部ツール5へ書込データ送信応答を送信するための送信処理を行うこととなる。
また、上記S440にて、書換制御プログラムダウンロードフラグDFがセットされていないと判定した場合には、RAM15に外部ツール5からの書換制御プログラムが格納されていないと判断してS460に移行する。そして、そのS460にて、フラッシュROM13の特定領域に格納されている書換制御プログラムをRAM15にコピーし、その後、S450に移行する。
すると、この場合、マイコン7は、上記S460でフラッシュROM13からRAM15にコピーした書換制御プログラムを実行することとなる。
そして、マイコン7は、その書換制御プログラムを実行することにより、S440からS450へ進んだ場合と同様に、まず、外部ツール5へデータダウンロード要求応答を送信するための送信処理を行い、次に書換処理を行い、更に、全ての新アプリケーションプログラムのフラッシュROM13への書き込みが完了したならば、外部ツール5へ書込データ送信応答を送信するための送信処理を行うこととなる。
一方、図9のS340にて、データダウンロード要求を受信しなかったと判定したならば、S370に移行して、上記S310で取り込んだ今回の受信データを解析することにより、外部ツール5からの書込対象データを受信したか否か(即ち、今回の受信データが書込対象データであるか否か)を判定する。
そして、このS370にて、書込対象データを受信しなかったと判定したならば、そのままS310へ戻るが、書込対象データを受信したと判定したならば、S380に進んで、今回の受信データ(書込対象データ)を、書換制御プログラムを構成するデータとしてRAM15に書き込む。
そして、次のS390にて、上記S350で記憶したダウンロードデータサイズ分のデータ受信を完了したか否か(換言すれば、ダウンロードデータサイズ分の書込対象データを全てRAM15に書き込めたか否か)を判定し、ダウンロードデータサイズ分のデータ受信を完了していないと判定した場合には、そのままS310へ戻る。
また、上記S390にて、ダウンロードデータサイズ分のデータ受信を完了したと判定した場合には、S395に進んで、外部ツール5へ書込データ送信応答を送信するための送信処理を行い、その後S310へ戻る。
次に、以上のようなブートローダの作用について、図11及び図12を用いて説明する。
まず、図11は、外部ツール5がAタイプ又はBタイプの外部ツール5a,5bである場合の、そのAタイプ又はBタイプの外部ツール5a,5bとECU1との通信手順を表すシーケンスチャートである。
図11の(1)に示すように、Aタイプ又はBタイプの外部ツール5a,5bに所定の操作が行われて、その外部ツール5a,5bからECU1へ書込要求が送信されると、ECU1のマイコン7では、プログラムの実行先がアプリケーションプログラムからブートローダへ移行して、そのブートローダが実行される。
そして、ブートローダでは、S320で肯定判定され、S330の処理により、図11の(2)に示すように、外部ツール5a,5bへ書込要求応答を送信することとなる。
次に、Aタイプ又はBタイプの外部ツール5a,5bは、ECU1からの上記書込要求応答を受信すると、図11の(3)に示すように、ECU1へ書換制御プログラムを送信する前の準備として、その書換制御プログラムの総データ量を表すダウンロードデータサイズと、その書換制御プログラムの書込先アドレスとを含んだデータダウンロード要求を送信する。尚、書換制御プログラムの書込先アドレスは、RAM15のアドレスである。
すると、ブートローダでは、S340で肯定判定され、S350の処理により、外部ツール5a,5bからのデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更にS360にて図10の処理(転送判定プログラムの処理)が開始される。
ここで、Aタイプ又はBタイプの外部ツール5a,5bから書換制御プログラムの前に送信されるデータダウンロード要求に含有の書込先アドレス(即ち、図11の(3)で送信されたデータダウンロード要求に含まれる書込先アドレス)は、RAM15のアドレスであり、フラッシュROM13のアドレスではないため、図10のS410にて否定判定されることとなる。よって、この場合には、S420の処理により、書換制御プログラムダウンロードフラグDFがセットされ、更にS430の処理により、図11の(4)に示すように、外部ツール5a,5bへデータダウンロード要求応答を送信することとなる。
次に、Aタイプ又はBタイプの外部ツール5a,5bは、ECU1からの上記データダウンロード要求応答を受信すると、図11の(5)に示すように、ECU1へ、書換制御プログラム(詳しくは、その書換制御プログラムを構成するデータ)を書込対象データとして送信する。尚、図11では、書込対象データを「書込データ」と記載しており、このことは、後述する図12においても同様である。
すると、ブートローダでは、外部ツール5a,5bから書換制御プログラムが単位量分送信される毎に、S370で肯定判定されて、その外部ツール5a,5bからの書換制御プログラムが、S380の処理によりRAM15へ書き込まれることとなる。そして、外部ツール5a,5bからの書換制御プログラムを全てRAM15に書き込めたならば、S390で肯定判定されて、S395の処理により、図11の(6)に示すように、外部ツール5a,5bへ書込データ送信応答を送信することとなる。
次に、Aタイプ又はBタイプの外部ツール5a,5bは、ECU1からの上記書込データ送信応答を受信すると、図11の(7)に示すように、ECU1へ新アプリケーションプログラムを送信する前の準備として、その新アプリケーションプログラムの総データ量を表すダウンロードデータサイズと、その新アプリケーションプログラムの書込先アドレスとを含んだデータダウンロード要求を送信する。尚、新アプリケーションプログラムの書込先アドレスは、フラッシュROM13のアドレスである。
すると、ブートローダでは、S340で肯定判定され、S350の処理により、外部ツール5a,5bからのデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更にS360にて図10の処理が開始される。
ここで、Aタイプ又はBタイプの外部ツール5a,5bから新アプリケーションプログラムの前に送信されるデータダウンロード要求に含有の書込先アドレス(即ち、図11の(7)で送信されたデータダウンロード要求に含まれる書込先アドレス)は、フラッシュROM13のアドレスであるため、図10のS410にて肯定判定されることとなる。
そして、この場合には、書換制御プログラムダウンロードフラグDFが既にセットされており、外部ツール5a,5bから新アプリケーションプログラムの前に送信されて来た書換制御プログラムがRAM15に格納されているため、S440で肯定判定され、S450の処理により、そのRAM15内の書換制御プログラムへジャンプ(移行)することとなる。
以後、ECU1のマイコン7では、RAM15内の書換制御プログラム(つまり、外部ツール5a,5bからダウンロードされた書換制御プログラム)が実行される。
そして、その書換制御プログラムの実行により、まず、図11の(8)に示すように、外部ツール5a,5bへデータダウンロード要求応答が送信され、その後、そのデータダウンロード要求応答を受信した外部ツール5a,5bが、図11の(9)に示すように、ECU1への新アプリケーションプログラムの送信を開始すると、その外部ツール5a,5bからの新アプリケーションプログラムをフラッシュROM13に順次更新して書き込む書換処理が行われることとなる。そして更に、全ての新アプリケーションプログラムのフラッシュROM13への書き込みが完了したならば、図11の(10)に示すように、外部ツール5a,5bへ書込データ送信応答を送信することとなる。つまり、図11の(8)に示すデータダウンロード要求応答と、図11の(11)に示す書込データ送信応答は、書換制御プログラムによって送信される。
次に、図12は、外部ツール5がCタイプ外部ツール5cである場合の、そのCタイプ外部ツール5cとECU1との通信手順を表すシーケンスチャートである。
尚、図12における(2)までの動作は、図11における(2)までの動作と同じであるため、ここでは、図11の(3)以降の動作について説明する。
Cタイプ外部ツール5cは、ECU1からの上記S330による書込要求応答を受信すると、図12の(3)に示すように、ECU1へ新アプリケーションプログラムを送信する前の準備として、その新アプリケーションプログラムの総データ量を表すダウンロードデータサイズと、その新アプリケーションプログラムの書込先アドレスとを含んだデータダウンロード要求を送信する。尚、新アプリケーションプログラムの書込先アドレスは、フラッシュROM13のアドレスである。
すると、ブートローダでは、S340で肯定判定され、S350の処理により、外部ツール5cからのデータダウンロード要求に含まれていたダウンロードデータサイズを記憶し、更にS360にて図10の処理が開始される。
ここで、このときには、Cタイプ外部ツール5cから新アプリケーションプログラムの前に送信されるデータダウンロード要求に含有の書込先アドレス(即ち、図12の(3)で送信されたデータダウンロード要求に含まれる書込先アドレス)が、フラッシュROM13のアドレスであるため、図10のS410にて肯定判定されることとなる。
そして更に、この場合には、Cタイプ外部ツール5cからRAM15へ書換制御プログラムがダウンロードされておらず、書換制御プログラムダウンロードフラグDFがセットされていないため、S440で否定判定されることとなる。
このため、S460の処理により、フラッシュROM13の特定領域に予め格納されている書換制御プログラムがRAM15にコピーされ、その後、S450の処理により、そのRAM15内の書換制御プログラムへジャンプ(移行)することとなる。
以後、ECU1のマイコン7では、RAM15内の書換制御プログラム(つまり、フラッシュROM13からRAM15にコピーされた書換制御プログラム)が実行される。
そして、その書換制御プログラムの実行により、まず、図12の(4)に示すように、外部ツール5cへデータダウンロード要求応答が送信され、その後、そのデータダウンロード要求応答を受信した外部ツール5cが、図12の(5)に示すように、ECU1への新アプリケーションプログラムの送信を開始すると、その外部ツール5cからの新アプリケーションプログラムをフラッシュROM13に順次更新して書き込む書換処理が行われることとなる。そして更に、全ての新アプリケーションプログラムのフラッシュROM13への書き込みが完了したならば、図12の(6)に示すように、外部ツール5cへ書込データ送信応答を送信することとなる。つまり、図12の(4)に示すデータダウンロード要求応答と、図12の(6)に示す書込データ送信応答は、書換制御プログラムによって送信される。
以上のように、第2実施形態のプログラム書換システムにおいて、外部ツール5は、A〜Cタイプの何れであっても、ECU1へ、書込対象データ(書換制御プログラム又は新アプリケーションプログラム)を送信する前に、その書込対象データの書込先アドレスを送信するようになっている。
そして、ECU1に用いられるマイコン7のブートローダでは、外部ツール5から書込要求が送信されて来た後、書込先アドレスを含んだデータダウンロード要求が送信されて来ると、S410により、その外部ツール5からの書込先アドレスがフラッシュROM13のアドレスであるか否かを判定し、そのS410により外部ツール5からの書込先アドレスがフラッシュROM13のアドレスであると判定するまでは、外部ツール5から送信されて来る書込対象データは書換制御プログラムであると判断して、S380の処理により、その外部ツール5からの書込対象データを書換制御プログラムとしてRAM15に格納し、また、S410により外部ツール5からの書込先アドレスがフラッシュROM13のアドレスであると判定すると、その後に外部ツール5から送信されて来る書込対象データは新アプリケーションプログラムであると判断して、まずS440により、RAM15に外部ツール5からの書換制御プログラムが格納されているか否かを、書換制御プログラムダウンロードフラグDFがセットされているか否かで判定するようにしている。
そして、そのS440により、RAM15に書換制御プログラムが格納されていると判定したならば、S450にて、そのRAM15内の書換制御プログラムへジャンプして、その書換制御プログラムが起動されるようにし、逆に、上記S440により、RAM15に書換制御プログラムが格納されていないと判定したならば、S460の処理により、フラッシュROM13の特定領域からRAM15に書換制御プログラムをコピーし、その後、S450にて、そのRAM15内の書換制御プログラムへジャンプして、その書換制御プログラムが起動されるようにしている。
このため、本第2実施形態においても、外部ツール5がAタイプ外部ツール5a又はBタイプ外部ツール5bである場合には、その外部ツール5a,5bから送信される書換制御プログラムがRAM15に格納され、その後、外部ツール5a,5bから書込先アドレスとしてフラッシュROM13のアドレスを含んだデータダウンロード要求が送信されると、S440の処理により、RAM15に外部ツール5a,5bからの書換制御プログラムが格納されていると判定されて、そのRAM15の書換制御プログラムが起動され、その書換制御プログラムの実行により、その後に外部ツール5a,5bから送信されて来る新アプリケーションプログラムがフラッシュROM13に更新して書き込まれることとなる。
また、外部ツール5がCタイプ外部ツール5cである場合には、書換制御プログラムが送信されて来ず、その外部ツール5cから書込先アドレスとしてフラッシュROM13のアドレスを含んだデータダウンロード要求が送信されると、S440の処理により、RAM15に書換制御プログラムが格納されていないと判定されることとなり、フラッシュROM13の特定領域に予め格納されている書換制御プログラムがRAM15にコピーされて、そのRAM15上で起動される。そして、その書換制御プログラムの実行により、その後に外部ツール5cから送信されて来る新アプリケーションプログラムがフラッシュROM13に更新して書き込まれることとなる。
このように、外部ツール5がA〜Cタイプの何れであっても、アプリケーションプログラムの書き換えを正確に実施できるようになる。そして、以上のような第2実施形態のブートローダによっても、外部ツール5のタイプ毎に開発する必要がないため、ECU1に関するトータルの開発工数や製品管理工数を低減させることができる。
尚、上記第2実施形態と請求項6〜10の発明との対応としては、S410の処理が、判定処理又は第1の判定手段としての処理に相当し、S380の処理が、格納処理又は書換制御プログラム格納手段としての処理に相当し、S440の処理が、第2の判定処理又は第2の判定手段としての処理に相当している。そして、S440から直接進むS450の処理が、第1の起動手段としての処理に相当し、S460とS450の処理が、第2の起動手段としての処理に相当している。また、RAM15が作業用メモリ領域に相当し、フラッシュROM13がブートローダを記録したコンピュータ読み取り可能な記録媒体に相当している。
一方、図10のS460では、フラッシュROM13の特定領域に格納されている書換制御プログラムをRAM15にコピーせずに、そのフラッシュROM13内の書換制御プログラムへジャンプする(つまり、アプリケーションプログラム書換領域を書換え中でもプログラムが動作できる領域へ、書換制御プログラムを配置し、書換制御プログラムをフラッシュROM13上で起動する)ようにしても良い。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、上記各実施形態のECU1は、書換可能メモリとしてフラッシュROM13を備えたものであったが、書換可能メモリとしてはEEPROM等の他の種類のメモリでも良い。
また、外部ツール5からECU1への書込要求は、通信ライン3を介して出力されるのではなく、その通信ライン3とは別の信号線を介して出力される形態であっても良い。
一方、上記各実施形態では、ECU1がエンジンを制御するものとして説明したが、本発明は、例えばブレーキ、トランスミッション、サスペンションといった、他の制御対象を制御するECUに関しても全く同様に適用することができる。
外部ツールがAタイプである場合のプログラム書換システムを表す構成図である。 外部ツールがBタイプである場合のプログラム書換システムを表す構成図である。 外部ツールがCタイプである場合のプログラム書換システムを表す構成図である。 第1実施形態のブートローダの処理全体を表すフローチャートである。 第1実施形態のブートローダ中の転送判定プログラムの処理を表すフローチャートである。 第1実施形態のブートローダにより実現される、ECUとAタイプ外部ツールとの通信手順を表すシーケンスチャートである。 第1実施形態のブートローダにより実現される、ECUとBタイプ外部ツールとの通信手順を表すシーケンスチャートである。 第1実施形態のブートローダにより実現される、ECUとCタイプ外部ツールとの通信手順を表すシーケンスチャートである。 第2実施形態のブートローダの処理全体を表すフローチャートである。 第2実施形態のブートローダ中の転送判定プログラムの処理を表すフローチャートである。 第2実施形態のブートローダにより実現される、ECUとAタイプ又はBタイプ外部ツールとの通信手順を表すシーケンスチャートである。 第2実施形態のブートローダにより実現される、ECUとCタイプ外部ツールとの通信手順を表すシーケンスチャートである。
符号の説明
1…ECU(車載電子制御装置)、3…通信ライン、5…外部ツール(5a…Aタイプ外部ツール、5b…Bタイプ外部ツール、5c…Cタイプ外部ツール)、7…マイコン、9…通信ドライバ、11…CPU、13…フラッシュROM、15…RAM、F1〜F3…ファイル

Claims (10)

  1. 電気的に記憶データの書き換えが可能な不揮発性の書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有する車載電子制御装置と、
    前記書換可能メモリ内のアプリケーションプログラムを書き換える際に、前記車載電子制御装置と通信可能に接続される外部装置とからなり、
    前記外部装置としては、
    前記車載電子制御装置へ、前記書換可能メモリ内のアプリケーションプログラムを書き換える動作モードに移行させるための書込要求を出力した後、前記コンピュータに当該外部装置から送信されて来る新たなアプリケーションプログラムを前記書換可能メモリに更新して書き込む書換処理を行わせるための書換制御プログラムを書込対象データとして送信し、その次に、前記新たなアプリケーションプログラムを書込対象データとして送信するタイプの装置と、
    前記車載電子制御装置へ、前記書込要求を出力した後、前記書換制御プログラムを送信することなく、前記新たなアプリケーションプログラムを書込対象データとして送信するタイプの装置と、
    がある車載電子制御装置のプログラム書換システムにおいて、
    前記外部装置は、
    前記車載電子制御装置へ、前記新たなアプリケーションプログラムを送信する前に、以降の書込対象データが前記新たなアプリケーションプログラムであることを示す識別コードを送信するようになっており、
    前記車載電子制御装置のコンピュータは、
    前記外部装置から、前記書込要求が出力された後、前記識別コードが送信されて来たか否かを判定する判定処理を行うと共に、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記識別コードが送信されて来たと判定するまでは、前記外部装置から送信されて来る書込対象データは前記書換制御プログラムであると判断し、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記識別コードが送信されて来たと判定すると、その後に前記外部装置から送信されて来る書込対象データは前記新たなアプリケーションプログラムであると判断するようになっていること、
    を特徴とする車載電子制御装置のプログラム書換システム。
  2. 請求項1に記載の車載電子制御装置のプログラム書換システムにおいて、
    前記車載電子制御装置のコンピュータは、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記識別コードが送信されて来たと判定するまでは、前記外部装置から送信されて来る書込対象データを、前記書換制御プログラムとして作業用メモリ領域に格納する格納処理を行い、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記識別コードが送信されて来たと判定すると、前記格納処理によって前記作業用メモリ領域に前記書換制御プログラムが格納されているか否かを判定する第2の判定処理を行い、
    更に、前記第2の判定処理により、前記作業用メモリ領域に前記書換制御プログラムが格納されていると判定したならば、その作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理を行い、
    前記第2の判定処理により、前記作業用メモリ領域に前記書換制御プログラムが格納されていないと判定したならば、前記車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを前記作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理を行うこと、
    を特徴とする車載電子制御装置のプログラム書換システム。
  3. 電気的に記憶データの書き換えが可能な不揮発性の書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有すると共に、外部装置からの書込要求を受けた場合には、前記コンピュータが前記アプリケーションプログラムとは別の書換制御プログラムを実行することにより、前記外部装置から送信されて来る新たなアプリケーションプログラムを前記書換可能メモリに更新して書き込む書換処理を行う車載電子制御装置に用いられ、前記コンピュータが前記外部装置から前記書込要求が出力されたことを検知した場合に、前記書換制御プログラムを起動するためのブートローダであって、
    前記コンピュータを、
    前記外部装置から、前記書込要求が出力された後、以降のデータが前記新たなアプリケーションプログラムであることを示す識別コードが送信されて来たか否かを判定する第1の判定手段と、
    前記外部装置から前記書込要求が出力されてから、前記第1の判定手段により前記識別コードが送信されて来たと判定されるまでは、前記外部装置から送信されて来た書込対象データを、前記書換制御プログラムとして作業用メモリ領域に格納する書換制御プログラム格納手段と、
    前記外部装置から前記書込要求が出力されてから、前記第1の判定手段により前記識別コードが送信されて来たと判定されると、前記書換制御プログラム格納手段によって前記作業用メモリ領域に前記書換制御プログラムが格納されているか否かを判定する第2の判定手段と、
    前記第2の判定手段により、前記作業用メモリ領域に前記書換制御プログラムが格納されていると判定されたならば、その作業用メモリ領域内の書換制御プログラムを起動する第1の起動手段と、
    前記第2の判定手段により、前記作業用メモリ領域に前記書換制御プログラムが格納されていないと判定されたならば、前記車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを前記作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動する第2の起動手段と、
    して機能させることを特徴とする車載電子制御装置のコンピュータ用ブートローダ。
  4. 請求項3に記載のコンピュータ用ブートローダを記録したコンピュータ読み取り可能な記録媒体。
  5. 請求項4に記載の記録媒体とコンピュータとを備えた車載電子制御装置。
  6. 電気的に記憶データの書き換えが可能な不揮発性の書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有する車載電子制御装置と、
    前記書換可能メモリ内のアプリケーションプログラムを書き換える際に、前記車載電子制御装置と通信可能に接続される外部装置とからなり、
    前記外部装置としては、
    前記車載電子制御装置へ、前記書換可能メモリ内のアプリケーションプログラムを書き換える動作モードに移行させるための書込要求を出力した後、前記コンピュータに当該外部装置から送信されて来る新たなアプリケーションプログラムを前記書換可能メモリに更新して書き込む書換処理を行わせるための書換制御プログラムを書込対象データとして送信し、その次に、前記新たなアプリケーションプログラムを書込対象データとして送信するタイプの装置と、
    前記車載電子制御装置へ、前記書込要求を出力した後、前記書換制御プログラムを送信することなく、前記新たなアプリケーションプログラムを書込対象データとして送信するタイプの装置と、
    がある車載電子制御装置のプログラム書換システムにおいて、
    前記外部装置は、
    前記車載電子制御装置へ、書込対象データを送信する前に、その書込対象データの書込先情報を送信するようになっており、
    前記車載電子制御装置のコンピュータは、
    前記外部装置から、前記書込要求が出力された後、前記書込先情報が送信されて来ると、その書込先情報が前記書換可能メモリのアドレスを示すものであるか否かを判定する判定処理を行うと共に、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記外部装置からの書込先情報が前記書換可能メモリのアドレスを示すものであると判定するまでは、前記外部装置から送信されて来る書込対象データは前記書換制御プログラムであると判断し、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記外部装置からの書込先情報が前記書換可能メモリのアドレスを示すものであると判定すると、その後に前記外部装置から送信されて来る書込対象データは前記新たなアプリケーションプログラムであると判断するようになっていること、
    を特徴とする車載電子制御装置のプログラム書換システム。
  7. 請求項6に記載の車載電子制御装置のプログラム書換システムにおいて、
    前記車載電子制御装置のコンピュータは、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記外部装置からの書込先情報が前記書換可能メモリのアドレスを示すものであると判定するまでは、前記外部装置から送信されて来る書込対象データを、前記書換制御プログラムとして作業用メモリ領域に格納する格納処理を行い、
    前記外部装置から前記書込要求が出力されてから、前記判定処理により前記外部装置からの書込先情報が前記書換可能メモリのアドレスを示すものであると判定すると、前記格納処理によって前記作業用メモリ領域に前記書換制御プログラムが格納されているか否かを判定する第2の判定処理を行い、
    更に、前記第2の判定処理により、前記作業用メモリ領域に前記書換制御プログラムが格納されていると判定したならば、その作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理を行い、
    前記第2の判定処理により、前記作業用メモリ領域に前記書換制御プログラムが格納されていないと判定したならば、前記車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを前記作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動することにより前記書換処理を行うこと、
    を特徴とする車載電子制御装置のプログラム書換システム。
  8. 電気的に記憶データの書き換えが可能な不揮発性の書換可能メモリに格納されたアプリケーションプログラムを実行することで制御対象を制御するための処理を行うコンピュータを有すると共に、外部装置からの書込要求を受けた場合には、前記コンピュータが前記アプリケーションプログラムとは別の書換制御プログラムを実行することにより、前記外部装置から送信されて来る新たなアプリケーションプログラムを前記書換可能メモリに更新して書き込む書換処理を行い、更に、前記外部装置からは、書込対象データが送信されて来る前に、その書込対象データの書込先情報が送信されて来る車載電子制御装置に用いられ、前記コンピュータが前記外部装置から前記書込要求が出力されたことを検知した場合に、前記書換制御プログラムを起動するためのブートローダであって、
    前記コンピュータを、
    前記外部装置から、前記書込要求が出力された後、前記書込先情報が送信されて来ると、その書込先情報が前記書換可能メモリのアドレスを示すものであるか否かを判定する第1の判定手段と、
    前記外部装置から前記書込要求が出力されてから、前記第1の判定手段により前記外部装置からの書込先情報が前記書換可能メモリのアドレスを示すものであると判定されるまでは、前記外部装置から送信されて来た書込対象データを、前記書換制御プログラムとして作業用メモリ領域に格納する書換制御プログラム格納手段と、
    前記外部装置から前記書込要求が出力されてから、前記第1の判定手段により前記外部装置からの書込先情報が前記書換可能メモリのアドレスを示すものであると判定されると、前記書換制御プログラム格納手段によって前記作業用メモリ領域に前記書換制御プログラムが格納されているか否かを判定する第2の判定手段と、
    前記第2の判定手段により、前記作業用メモリ領域に前記書換制御プログラムが格納されていると判定されたならば、その作業用メモリ領域内の書換制御プログラムを起動する第1の起動手段と、
    前記第2の判定手段により、前記作業用メモリ領域に前記書換制御プログラムが格納されていないと判定されたならば、前記車載電子制御装置に備えられた不揮発性メモリに予め格納されている書換制御プログラムを起動するか、或いは、その不揮発性メモリ内の書換制御プログラムを前記作業用メモリ領域にコピーして、そのコピーした作業用メモリ領域内の書換制御プログラムを起動する第2の起動手段と、
    して機能させることを特徴とする車載電子制御装置のコンピュータ用ブートローダ。
  9. 請求項8に記載のコンピュータ用ブートローダを記録したコンピュータ読み取り可能な記録媒体。
  10. 請求項9に記載の記録媒体とコンピュータとを備えた車載電子制御装置。
JP2004358974A 2004-12-10 2004-12-10 車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置 Expired - Fee Related JP4556653B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004358974A JP4556653B2 (ja) 2004-12-10 2004-12-10 車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置
DE102005058950A DE102005058950A1 (de) 2004-12-10 2005-12-09 Programmwiederbeschreibsystem, Bootlader, Speichermedium und Elektronische Steuereinheit
US11/298,574 US7904896B2 (en) 2004-12-10 2005-12-12 Program rewriting system, boot loader, storage medium, and electronic control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004358974A JP4556653B2 (ja) 2004-12-10 2004-12-10 車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置

Publications (2)

Publication Number Publication Date
JP2006171803A true JP2006171803A (ja) 2006-06-29
JP4556653B2 JP4556653B2 (ja) 2010-10-06

Family

ID=36500388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004358974A Expired - Fee Related JP4556653B2 (ja) 2004-12-10 2004-12-10 車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置

Country Status (3)

Country Link
US (1) US7904896B2 (ja)
JP (1) JP4556653B2 (ja)
DE (1) DE102005058950A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2020003379A1 (ja) * 2018-06-26 2020-07-27 日立ジョンソンコントロールズ空調株式会社 保守システム、保守用基板およびデータ書込方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4722194B2 (ja) * 2009-04-13 2011-07-13 本田技研工業株式会社 車両のための書き換えシステム
WO2012056773A1 (ja) * 2010-10-29 2012-05-03 本田技研工業株式会社 車両用プログラム書換えシステム
KR20140060912A (ko) * 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치
KR102379202B1 (ko) * 2015-09-30 2022-03-28 삼성전자주식회사 전자 장치 및 그 부팅 방법
US10175716B2 (en) * 2016-09-29 2019-01-08 Intel Corporation Technologies for low-power and high-accuracy timestamps
KR102002517B1 (ko) 2017-06-30 2019-07-22 주식회사 페스카로 전자식 제어기 보안 기능 설정 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097419A (ja) * 1996-09-20 1998-04-14 Denso Corp 電子装置のメモリ書込装置
JPH10105468A (ja) * 1996-09-26 1998-04-24 Denso Corp 電子制御装置,メモリ書換装置及び電子制御装置のメモリ書換システム
JP2001319267A (ja) * 2000-05-09 2001-11-16 Sanden Corp 自動販売機の制御システム
JP2004348178A (ja) * 2003-05-19 2004-12-09 Denso Corp プログラム書込方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324305A (ja) 1992-05-26 1993-12-07 Canon Inc プログラム変更方法
JP2790034B2 (ja) * 1994-03-28 1998-08-27 日本電気株式会社 非運用系メモリ更新方式
US5844796A (en) * 1994-07-19 1998-12-01 Minolta Co., Ltd. Machine control device
JP3550834B2 (ja) 1995-11-13 2004-08-04 株式会社デンソー 自動車用電子制御装置のメモリ書換システム,自動車用電子制御装置及びメモリ書換装置
US6275911B1 (en) * 1996-09-20 2001-08-14 Denso Corporation Memory writing device for an electronic device
JP2000076061A (ja) 1998-08-28 2000-03-14 Ricoh Co Ltd プログラム書き換え方法
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US6959437B2 (en) * 2001-09-07 2005-10-25 Sharp Laboratories Of America, Inc. System and method for installing printer driver software
US7188369B2 (en) * 2002-10-03 2007-03-06 Trend Micro, Inc. System and method having an antivirus virtual scanning processor with plug-in functionalities
TWI220962B (en) * 2003-01-20 2004-09-11 Mediatek Inc Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating
US20040230963A1 (en) * 2003-05-12 2004-11-18 Rothman Michael A. Method for updating firmware in an operating system agnostic manner

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097419A (ja) * 1996-09-20 1998-04-14 Denso Corp 電子装置のメモリ書込装置
JPH10105468A (ja) * 1996-09-26 1998-04-24 Denso Corp 電子制御装置,メモリ書換装置及び電子制御装置のメモリ書換システム
JP2001319267A (ja) * 2000-05-09 2001-11-16 Sanden Corp 自動販売機の制御システム
JP2004348178A (ja) * 2003-05-19 2004-12-09 Denso Corp プログラム書込方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2020003379A1 (ja) * 2018-06-26 2020-07-27 日立ジョンソンコントロールズ空調株式会社 保守システム、保守用基板およびデータ書込方法

Also Published As

Publication number Publication date
US7904896B2 (en) 2011-03-08
US20060155941A1 (en) 2006-07-13
DE102005058950A1 (de) 2006-06-14
JP4556653B2 (ja) 2010-10-06

Similar Documents

Publication Publication Date Title
JP4809418B2 (ja) ソフトウェア更新装置およびソフトウェア更新方法
JP4899848B2 (ja) 車載システム
EP2241479A1 (en) A rewriting system for a vehicle
JP2003256228A (ja) プログラム書換装置
JP2010044579A (ja) 周辺装置、プログラム、およびドライバインストールシステム
JP2005132131A (ja) ソフトウェア更新装置およびソフトウェア更新方法
US7904896B2 (en) Program rewriting system, boot loader, storage medium, and electronic control unit
JP4784100B2 (ja) 処理装置およびそのファームウェアダウンロード方法。
JP4753929B2 (ja) 車載用制御ユニットの不揮発性メモリの書き換えシステム
US8042104B2 (en) Method and system for sending a rewrite control program to a control unit
JP2010023556A (ja) 電子制御装置
JP5360216B2 (ja) 情報管理装置、及び情報管理方法
JP2007316800A (ja) 車載プログラム書換え制御装置
JP2008146521A (ja) 自動車用電子制御装置
JP2009087107A (ja) 車両用制御システム
US20220244946A1 (en) Ota master, update control method, non-transitory storage medium, and vehicle
CN115514742A (zh) Ota管理器、中心、系统、方法、非暂时性存储介质
JP7396216B2 (ja) サーバ、更新管理方法、更新管理プログラム及びソフトウェア更新装置
WO2020246213A1 (ja) 情報処理装置および情報処理方法
JP2007015643A (ja) 車両用電子制御装置
JP5079027B2 (ja) 電子制御装置
JP2008027331A (ja) ファームウェア書き換え方法
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
JP7484606B2 (ja) 車載機器、ソフトウェア更新方法、ソフトウェア更新プログラム、および、車両
US20220342653A1 (en) Ota master, center, system, update method, non-transitory storage medium, and vehicle

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100602

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100712

R151 Written notification of patent or utility model registration

Ref document number: 4556653

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees