JP2015098311A - 電子制御装置、ソフトウェア書き換えシステム - Google Patents
電子制御装置、ソフトウェア書き換えシステム Download PDFInfo
- Publication number
- JP2015098311A JP2015098311A JP2013240225A JP2013240225A JP2015098311A JP 2015098311 A JP2015098311 A JP 2015098311A JP 2013240225 A JP2013240225 A JP 2013240225A JP 2013240225 A JP2013240225 A JP 2013240225A JP 2015098311 A JP2015098311 A JP 2015098311A
- Authority
- JP
- Japan
- Prior art keywords
- software
- rewriting
- electronic control
- program
- state
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【課題】プログラミングの書き換えモードで異常が生じてもそのまま停滞することを回避可能な車載制御装置を提供する。
【解決手段】車両外部から送信されたソフトウェアで記憶部のソフトウェアを書き換える電子制御装置であって、車両外部又は車両内部からソフトウェアの書き換え要求があった場合に、イグニッションがON状態かOFF状態かを判定する判定手段と、イグニッションがOFF状態の場合、当該電子制御装置のマイコンをリセットするリセット手段と、イグニッションがON状態の場合、前記記憶部のソフトウェアの書き換えを行う書き換え手段と、を有する。
【選択図】図1
【解決手段】車両外部から送信されたソフトウェアで記憶部のソフトウェアを書き換える電子制御装置であって、車両外部又は車両内部からソフトウェアの書き換え要求があった場合に、イグニッションがON状態かOFF状態かを判定する判定手段と、イグニッションがOFF状態の場合、当該電子制御装置のマイコンをリセットするリセット手段と、イグニッションがON状態の場合、前記記憶部のソフトウェアの書き換えを行う書き換え手段と、を有する。
【選択図】図1
Description
本発明は、外部から送信されたソフトウェアで記憶部のソフトウェアを書き換える電子制御装置等に関する。
車載される多くの装置は電子制御装置により制御される。車両によっては数十個以上の電子制御装置が搭載される場合があり、それぞれがエンジン、ブレーキ、パワーステアリング、トランスミッション、ドアロック、ナビゲーション装置などを制御している。各電子制御装置はネットワークを介して互いに通信してシステムとして作動したり、互いに協調制御したりする。
電子制御装置はマイコンを有しており、マイコンがプログラムを実行することで各種の制御を行っている。このプログラムは不揮発性のメモリに記憶されているが、車両の出荷後にプログラムをバージョンアップ可能なように、外部から不揮発性のメモリに記憶されたプログラムが書き換えられることが可能になっている。
しかしながら、プログラムの書き換えが正常に完了しないと車載装置の制御が困難になるため、従来からプログラムを正常に書き換えるための技術が考案されている(例えば、特許文献1参照。)。特許文献1には、プログラムの書き換え中、イグニッション・スイッチがONかOFFかを監視し、イグニッション・スイッチがOFFの場合、書き換え処理を中止すると共に、他の電子制御装置へ故障検知の停止命令を行う書き換え装置が開示されている。これにより、電子制御装置のプログラムの書き換え中に誤って電源が遮断された場合であっても、再度電源を投入することにより、書き換えを行うことができる一方、故障検知を停止することができる。
しかしながら、特許文献1に記載された書き換え装置は、書き換え処理を中止した後、書き換えを再開するために、イグニッション・スイッチの状態判定処理を実行し続けるため、バッテリ電力が消費され続けるという問題がある。すなわち、イグニッション・スイッチがOFFでも動作するマイコン(常時電源系マイコン)の場合、プログラミングの書き換えモードで停滞してしまい、ユーザやサービスマンが気づいてバッテリを外すまで電源供給されることでバッテリ上がりとなるおそれがある。
また、特許文献1では書き換え処理の中止後、イグニッション・スイッチがONにならない限り、書き換え処理を再開できない。例えば、バッテリ電圧の低下で瞬間的に車両がIG−OFFになった時にイグニッション・スイッチに固着異常(イグニッション・スイッチがOFFのままになる異常)が生じた場合、電子制御装置は書き換え処理が中止された状態で停滞する。また、例えば、電源遷移を制御している電子制御装置が書き換え対象の場合、バッテリ電圧低下で瞬間的にIG−OFFになると、電子制御装置は書き換え処理が中止された状態で停滞する。書き換え処理が中止された状態で停滞すると、最悪の場合、電子制御装置の交換が必要になる。
また、特許文献1では書き換え処理の中止後、イグニッション・スイッチがONにならない限り、書き換え処理を再開できない。例えば、バッテリ電圧の低下で瞬間的に車両がIG−OFFになった時にイグニッション・スイッチに固着異常(イグニッション・スイッチがOFFのままになる異常)が生じた場合、電子制御装置は書き換え処理が中止された状態で停滞する。また、例えば、電源遷移を制御している電子制御装置が書き換え対象の場合、バッテリ電圧低下で瞬間的にIG−OFFになると、電子制御装置は書き換え処理が中止された状態で停滞する。書き換え処理が中止された状態で停滞すると、最悪の場合、電子制御装置の交換が必要になる。
また、特許文献1に記載の書き換え装置では、書き換え装置側がイグニッション・スイッチのON/OFFの判定及び書き換え処理の中止を行うため、電子制御装置の種類が増える毎に書き換え装置の開発が必要になる。
本発明は上記課題に鑑み、プログラミングの書き換えモードで異常が生じてもそのまま停滞することを回避可能な車載制御装置を提供することを目的とする。
上記課題に鑑み、本発明は、車両外部から送信されたソフトウェアで記憶部のソフトウェアを書き換える電子制御装置であって、車両外部又は車両内部からソフトウェアの書き換え要求があった場合に、イグニッションがON状態かOFF状態かを判定する判定手段と、イグニッションがOFF状態の場合、当該電子制御装置のマイコンをリセットするリセット手段と、イグニッションがON状態の場合、前記記憶部のソフトウェアの書き換えを行う書き換え手段と、を有することを特徴とする。
プログラミングの書き換えモードで異常が生じてもそのまま停滞することを回避可能な車載制御装置を提供することができる。
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
〔本実施形態の書き換え動作の概略〕
図1は、本実施形態のマイコンがプログラムを書き換える手順の概略を説明するフローチャート図の一例である。本実施形態のマイコンは、IG(イグニッション)-ON状態でプログラムが書き換えられることが推奨されているものとする。
図1は、本実施形態のマイコンがプログラムを書き換える手順の概略を説明するフローチャート図の一例である。本実施形態のマイコンは、IG(イグニッション)-ON状態でプログラムが書き換えられることが推奨されているものとする。
S1:マイコンはリセットが解除されると、正常動作モードで動作する。正常動作モードは、電子制御装置が書き換え対象のプログラムを実行して車載装置を制御する動作モードである。マイコンは、後述するツールからの書き換え要求がない場合、正常動作モードを繰り返し実行している。正常動作モードでは、IG-OFF状態になると、低消費電力モードに移行するためバッテリ電力を大きく消費することはない。
S2:マイコンはツールからの書き換え要求を受信すると所定の認証を行い、認証が成立するとマイコンはプログラム書き換えモードに移行する。
S3:本実施形態のマイコンは、プログラム書き換えモードに移行した後、エンジン運転状態がIG-ON状態か否かを判定する。プログラム書き換えモードに移行した後とは、書き換えが始まる前のタイミングを言う。換言すると、正常動作モードからプログラム書き換えモードに移行する過程、プログラム書き換えモードへの移行時、又は、プログラム書き換えモードに移行した直後と表現できる。
S4:プログラム書き換えモードに移行直後、IG-ON状態の場合、正常に書き換え可能であると判定して、マイコンは書き換えを開始する。書き換え完了後はリセットされ、正常動作モードで起動する。
S5:一方、プログラム書き換えモードに移行直後、IG-OFF状態の場合、マイコンはマイコンをリセットする。すなわち、IG-OFF状態ではプログラム書き換えモードに移行すべきでなく、また、プログラム書き換えモードに移行直後のIG-OFFはツールなどでも検出が困難なので、IG-OFF状態の場合にはマイコンが自身をリセットすることで正常動作モードに復帰させる。正常動作モードではIG-OFF状態で低消費電力モードに移行するので、IG-OFF状態であってもバッテリ上がりを防止できる。
〔構成例〕
図2は、システム構成図の一例である。車両には1つ以上の電子制御装置(ECU:Electronic Control Unit)100が搭載されている。各電子制御装置はバッテリの電力で動作するが、本実施形態の電子制御装置100はIG−OFF状態でもバッテリから常時、電力が供給される。IG−OFF状態では電力が供給されない電子制御装置100ではバッテリが上がるという課題が発生しないためである。しかしながら、IG-OFF状態では電力が供給されない電子制御装置100に本実施形態で説明する書き換えプログラムを適用することは可能である。
図2は、システム構成図の一例である。車両には1つ以上の電子制御装置(ECU:Electronic Control Unit)100が搭載されている。各電子制御装置はバッテリの電力で動作するが、本実施形態の電子制御装置100はIG−OFF状態でもバッテリから常時、電力が供給される。IG−OFF状態では電力が供給されない電子制御装置100ではバッテリが上がるという課題が発生しないためである。しかしながら、IG-OFF状態では電力が供給されない電子制御装置100に本実施形態で説明する書き換えプログラムを適用することは可能である。
電子制御装置100とツール50はCANバス14を介して接続されている。CANバス14は、車外のツール50が接続されるためのDLC(データリンクコネクタ)コネクタ15を有しており、ツール50はDLCコネクタ15を介して電子制御装置100と通信する。なお、DLCコネクタ15は例えば運転席のメータパネルの右下などに配置されている。
運転者は定期点検時や車両の不具合を把握すると車両をディーラーに持ち込むので、一般にサービスマンがツール50をDLCコネクタ15に接続する。サービスマンがツール50を操作することでプログラムの書き換えが開始される。サービスマン以外に運転者などが書き換えを行うこともあり、主体は問わないが以下ではサービスマンが書き換えするものとして説明する。
車載される電子制御装置100には、例えばメータECU、エンジンECU、HV(hybrid)-ECU、ブレーキECU、電源制御ECU、トランスミッションECU、ゲートウェイ、ボディECU、ナビ制御用ECU、電動パワステECU、照合ECU、エアコンECU、前照灯ECU、カメラECU、障害物検知用の電子制御装置100などがある。これらの電子制御装置100の呼称は一例でありこの他の電子制御装置100に適用されてもよいし、このうちの一部又は全部に適用されてもよい。
電子制御装置100は主にマイコン11、電源回路13、及び、IC12を有している。電源回路13はバッテリ16の電力を降圧するコンバータであり、定電圧をマイコン11とIC12の端子に供給する(いずれも不図示)。
マイコン11は、バスに接続されたCPU21、キャッシュメモリ22、フラッシュメモリ23、CANコントローラ24、RAM25、及び、I/O26を有する。
CPU21は、正常動作モードでは、フラッシュメモリ23に記憶されたプログラムOLD32(以下、符号は省略する)を実行して、書き換えモードではフラッシュメモリ23に記憶された書き換えプログラムを実行する。プログラムOLDは、電子制御装置100に特有の処理を実行するためのプログラムであり、マイコン11はプログラムOLDを実行して例えばセンサの検出した信号の処理、演算、アクチュエータの制御等を実行する。プログラムOLDとプログラムNEWは特許請求の範囲のソフトウェアの一例である。ソフトウェアにはプログラムと呼ばれるものの他ファームウェアなど、CPU21が行う処理が記述されたものが含まれる。
また、マイコン11は書き換えプログラム34(以下、符号は省略する)を実行して、プログラムOLDをプログラムNEWで書き換える。プログラムOLD32には書き換えプログラム34が含まれており、プログラム書き換え時には、書き換え対象外のメモリに退避させてもよい。
また、マイコン11は書き換えプログラム34(以下、符号は省略する)を実行して、プログラムOLDをプログラムNEWで書き換える。プログラムOLD32には書き換えプログラム34が含まれており、プログラム書き換え時には、書き換え対象外のメモリに退避させてもよい。
キャッシュメモリ22は、フラッシュメモリ23に記憶されたプログラムOLD又は書き換えプログラムの一部のコピーを記憶する高速小容量の記憶素子(例えば、SRAM(Static RAM))である。CPU21はキャッシュメモリ22を介してフラッシュメモリ23にアクセスする。キャッシュメモリ22にCPU21が指定したアドレスが記憶されていない場合、キャッシュメモリ22がページフォールトを発生するので、CPU21はフラッシュメモリ23からプログラム(プログラムOLD又は書き換えプログラム)を読み出すと共にキャッシュメモリ22に書き込む。
なお、図ではCPU21の外部にキャッシュメモリ22が記載さているが、キャッシュメモリ22はCPU21に内蔵されていてもよい。また、キャッシュメモリ22が複数存在し、CPU21から近い順に1次キャッシュ〜3次キャッシュと呼ばれるキャッシュメモリ22を有するマイコン11も存在する。本実施例では、CPU21の内外のいずれにキャッシュメモリ22が配置されていてもよい。
RAM25は、CPU21がプログラムOLD又は書き換えプログラムを実行する際の作業メモリとなる。正常動作モードでは、センサ信号や他の電子制御装置から受信したデータが保存されたり、演算結果が保存されたり、他の電子制御装置に送信するデータが保存されたりする。書き換えモードでは、ツール50から送信されたプログラムNEWが一時保存される。なお、書き換えモードにおいて、ツール50から送信されたプログラムNEWがRAM25ではなくキャッシュメモリ22に一時保存されるマイコン11がある。本実施形態では、どちらに記憶されてもよいものとする。
フラッシュメモリ23は、書き換え可能な不揮発メモリの一例であり、フラッシュメモリ23でなくても書き換え可能な不揮発メモリであればよい。書き換え可能な不揮発メモリとしては、例えば、EEPROM、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)等がある。
CANコントローラ24はCANバス14に接続されており、CANプロトコルに従ってツール50からプログラムNEWを受信する。CANプロトコルは一例であって、FlexRay、Ethernet(登録商標)、MOST、LINなどでもよい。また、ツール50と電子制御装置100を物理的に接続するのでなく、例えば、無線LANやBluetooth(登録商標)などの無線通信で接続してもよい。さらに、公衆の携帯電話網や無線LAN網を経由して不図示のサーバと通信し、サーバからプログラムNEWをダウンロードしてもよい。
I/O26は例えばUART(Universal Asynchronous Receiver Transmitter)やSPI(Serial Peripheral Interface)などの入出力インタフェースである。CPU21は、I/O26を介してIC12にプログラムの書き換えが可能か否かを問い合わせたり、マイコン11のリセットを要求する。また、CPU21はI/O26を介してIC12からプログラムの書き換えの許可を取得する。
続いてIC12について説明する。IC12は、マイコン11をリセットしたり、プログラムの書き換えが可能か否かを判定して書き換えを許可する。IC12は、マイコン11から判定要求を取得すると、マイコン11がプログラムOLDの書き換えが可能な状態か否かを判定する。判定内容はマイコン11によって様々であるが、例えば、バッテリ電圧が閾値以上か否か、マイコン11に異常がないかなどである。
IC12は、判定結果をI/O26に出力すると共に、例えば、マイコン11のモードSW27と接続された信号線をHighにする。これにより、モードSW27がONとなる。モードSW27はマイコン11のリセットでOFFとなる。マイコン11はIC12からの書き換えの許可を取得し、かつ、モードSW27がONの間、プログラム書き込みモードになる。なお、書き換えの許可又はモードSW27がONのいずれかに応じてプログラム書き込みモードになってもよい。また、IC12に問い合わせることなくプログラム書き換えモードになってもよい。IC12のこのような動作は一例にすぎず、このような動作に限定されるものではない。
また、IC12はマイコン11をリセットする機能を有する。IC12が有するリセット回路は、電源回路13が生成した定電圧Vccと接続された抵抗121、コンデンサ122、及び、スイッチ123を有している。スイッチ123がONの場合、マイコン11のRES#28はLowになりマイコン11はリセットされる。スイッチ123がOFFの場合、定電圧Vccがマイコン11のRES#28に入力されRES#28はHighとなりリセットは解除される。
なお、IC12がマイコン11をリセットするのでなく、マイコン11が自身を直接、リセットしてもよい。この場合、マイコン11にリセット回路のスイッチ123が接続されており、マイコン11がスイッチ123をONすることでリセットできる。
続いて、ツール50について説明する。ツール50は情報処理装置を実体とし、不図示のCPU、ROM、RAM、I/Oなどを有している。サービスマンがツール50から延設されているケーブルをDLCコネクタ15に接続することで、CANコントローラ33がCANバス14に接続される。ツール50のメモリにはプログラムNEW31(以下、符号は省略する)が記憶されている。プログラムNEWは、電子制御装置100のプログラムOLDと置き換えられるプログラムである。
サービスマンは書き換え作業の前に、USBメモリなどの記憶媒体で配布されるプログラムNEWをツール50のROMやRAMにコピーしておく。または、ツール50をPC(Personal Computer)に接続し、PCがインターネットを介してサーバからダウンロードしたプログラムNEWをツール50にコピーしてもよい。または、PCをツール本体としてもよい。
〔プログラムOLD、書き換えプログラムの機能について〕
図3は、プログラムOLDと書き換えプログラムの機能ブロック図の一例を示す。プログラムOLDは正常動作モードで実行され、書き換えプログラムは書き換えモードで実行される。プログラムOLDのうち正誤判定部42はマイコン11のリセット直後に正常か否かを判定するために実行されるので、正常動作モードに含めなくてもよい。
図3は、プログラムOLDと書き換えプログラムの機能ブロック図の一例を示す。プログラムOLDは正常動作モードで実行され、書き換えプログラムは書き換えモードで実行される。プログラムOLDのうち正誤判定部42はマイコン11のリセット直後に正常か否かを判定するために実行されるので、正常動作モードに含めなくてもよい。
正誤判定部42は、マイコン11のリセットが解除された直後に実行される。正誤判定部42は、フラッシュメモリ23に記憶されている少なくともプログラムOLDが正常か否かを判定するプログラムである。プログラムOLDに加え書き換えプログラムが正常か否かを判定してもよいし、フラッシュメモリ23の全体が正常か否かを判定してもよい。
リセットが解除されマイコン11が起動すると、正誤判定部42はプログラムOLDがノイズなどでビット反転していないか否かを判定する。判定方法はどのようなものでもよいが、例えばチェックサム、CRC、MD5などがある。
車両制御部41は、電子制御装置100に接続された車載装置を制御するもので、センサなどを用いたセンシング、他の電子制御装置からのデータの受信、演算、及び、アクチュエータの制御などを行う。ツール50から「書き換え要求」が送信されるまでの間、又は、異常が検出されるような特殊な状況以外では、車両制御部41は周期的に処理を繰り返す。なお、プログラムNEWがサーバからダウンロードされ任意の電子制御装置が一時的に保持したり、ツール50から送信されたプログラムNEWを任意の電子制御装置が一時的に保持したりする場合がある。この場合、任意の電子制御装置は電子制御装置100のフラッシュメモリ23のプログラムOLDの書き換えを制御するため、「書き換え要求」を出力する場合がある。したがって、「書き換え要求」はツール50以外の車両内部からも送信される場合がある。
ツール50から「書き換え要求」を受信すると、車両制御部41は書き換え判定部43に対し、プログラムOLDの書き換え条件を満たすか否かの判定を要求する。この判定は、IC12による判定と同様な内容に加え、CPU21の負荷が高いか否か、異常の有無などが含まれる。プログラムOLDの書き換え条件を満たすと判定した場合、書き換え判定部43はIC12に判定要求を出力する。これにより、IC12はモードSW27をONにし、判定結果をマイコン11に返す。
書き換え判定部43はモードSW27の状態と判定結果を参照して、書き換えプログラム起動部44を呼び出す。書き換えプログラム起動部44は、CPU21のPC(プログラムカウンタ)に書き換えプログラムの先頭アドレスをセットする。こうすることで、CPU21が書き換えプログラムを実行でき、以下の書き換えプログラムの機能が実現される。
書き換えプログラムは、IG判定部45、書き換え部48、リセット部46、及び、正誤判定部47を有している。IG判定部45は従来技術に対する本実施形態の特徴部の1つである。IG判定部45は、書き換え部48が書き換えを開始する前にIG-ONかOFFかを判定する。IG-ONかOFFかは例えば電子制御装置100のIGSW端子の電圧を監視すればよい。
リセット部46は以下の場合にIC12にマイコン11のリセットを要求する。
・プログラム書き換えモードに移行した後、IG-ON状態でない場合
・書き換えが正常に終了した場合
このうち、IG-ON状態でない場合のリセットが従来技術に対する本実施形態の特徴の1つである。
・プログラム書き換えモードに移行した後、IG-ON状態でない場合
・書き換えが正常に終了した場合
このうち、IG-ON状態でない場合のリセットが従来技術に対する本実施形態の特徴の1つである。
書き換え部48は、CANバス経由でツール50から受信したプログラムNEWを作業メモリであるRAM25に格納していき、また、RAM25からフラッシュメモリ23にプログラムNEWを書き込んでいく。フラッシュメモリ23の書き換えは、プログラムOLDだけでもよいし、フラッシュメモリ23の全体を書き換えてもよい。全体を書き換える場合、マイコン11は予め書き換えプログラムをRAM25などに転送しておく。
書き換え部48は、ツール50から書き換え終了コマンドを受信するまで、プログラムNEWの受信とRAM25への書き込み、RAM25からフラッシュメモリ23への転送を繰り返す。なお、フラッシュメモリ23のアドレスマップは既知なので、プログラムOLDのアドレス範囲にプログラムNEWを書き込めばよい。
書き換えプログラムの正誤判定部47の機能はプログラムOLDのものと同じである。書き換えプログラムが正誤判定部47を有することで、書き換え完了後に正誤判定を行い、正常でない場合は再度、書き換えを行うことができる。
〔動作手順〕
まず、図4、5を用いて従来の動作手順と生じる課題について詳細に説明する。
A.従来の動作手順
図4は従来の電子制御装置のプログラムの書き換え手順を示すフローチャート図の一例である。リセットが解除されると、正誤判定部42がフラッシュメモリ23の正誤判定を行う(S10)。リセットが解除されるのは、プログラムOLDの書き換え後のリセットの他、バッテリ16が接続された場合、異常が検出された場合などがある。
まず、図4、5を用いて従来の動作手順と生じる課題について詳細に説明する。
A.従来の動作手順
図4は従来の電子制御装置のプログラムの書き換え手順を示すフローチャート図の一例である。リセットが解除されると、正誤判定部42がフラッシュメモリ23の正誤判定を行う(S10)。リセットが解除されるのは、プログラムOLDの書き換え後のリセットの他、バッテリ16が接続された場合、異常が検出された場合などがある。
フラッシュメモリ23が正常な場合(S10のYes)、マイコン11は正常動作モードとなり車両制御部41が、当該電子制御装置100が行うべき車両制御を行う(S20)。
車両制御部41は、所定のサイクル時間毎に同じ処理を繰り返すが、その間にサービスマンがツール50を接続して書き換え要求を送信する場合がある。この場合、車両制御部41は書き換え判定部43に書き換え可能か否かを判定させる(S30)。
書き換え要求が送信されない場合や、書き換え判定部43が書き換え可能でないと判定した場合(S30のNo)、車両制御部41が車両制御を継続する。
書き換え判定部43が自らの判定とIC12からの判定結果に基づき、書き換え可能であると判定した場合(S30のYes)、書き換えプログラム起動部44が書き換えプログラムを起動する。これによりマイコン11はプログラム書き換えモードとなる。なお、正常に移行すれば、プログラム書き換えモードに移行した場合、モードSWがONであるが、プログラム書き換えモードか否かはモードSWのON/OFFを問わないものとする。
従来の書き換えモードのマイコン11はIG-ON状態か否かを判定することなく、書き換え部48がツール50と通信してフラッシュメモリ23の書き換えを開始する(S40)。
書き換えに当たり、ツール50から書き換え開始コマンドが送信され、これによりメモリの書き換えが始まる。
書き換え部48は、ツール50から送信されたプログラムNEWの一部をフラッシュメモリ23に書き込みながら、書き換えが完了するまで次のプログラムNEWの一部をツール50に要求することを繰り返す(S50)。書き換えの完了は、ツール50からデータの終わり(EOF)を受信すること、書き換えの開始時に受け取ったデータ量の書き込みが終了すること、などにより判定される。
書き換えが完了すると、書き換え部48はツール50から書き換え終了コマンドを受信する(S60)。これにより、ツール50との通信を終了できる。
また、書き換えが完了すると、正誤判定部47がフラッシュメモリ23の正誤判定を行う(S70)。なお、ステップS70の正誤判定は必須ではない。
フラッシュメモリ23が正常な場合(S70のYes)、リセット部46はIC12にマイコン11のリセットを要求するので、マイコン11がリセットされる(S80)。リセットが解除されるとステップS10以降の処理が繰り返されるので、正誤判定で正常であると判定され、マイコン11は正常動作モードとなる。
フラッシュメモリ23が正常でない場合(S70のNo)、書き換えが失敗したため、書き換え部48は、再度、書き換えを実行される。
このように、マイコン11はプログラムOLDを書き換えると共に書き換えに失敗したことを検知して、再度書き換えることができる。
B.従来の動作手順の課題
図5(a)は従来の電子制御装置のプログラムの書き換え手順により生じる不都合を説明するフローチャート図の一例である。
図5(a)は従来の電子制御装置のプログラムの書き換え手順により生じる不都合を説明するフローチャート図の一例である。
図4と同様に、書き換え判定部43が書き換えモードに移行可能であると判定したとする(S30)。この時、書き換え部48がツール50と通信してメモリの書き換えを始めるまでに遅延時間が生じる。サービスマンはツール50を操作しているが、何らかの理由で書き換え開始コマンドを送信する前にIG-OFFに操作する場合がある。IG-OFFに操作されても+B端子に電力が供給されるのでマイコン11は動作可能だが、プログラム書き換えモードに移行しているため、正常動作モードのように省エネモードに入ることができない。
また、書き換えが始まる前なのでツール50も車両の異常(IG-OFF)を検出できない。プログラム書き換えモードにおいても、ツール50が書き換え開始コマンドを送信した後にIG−OFF状態になった場合は、ツール50は書き換え条件が不成立であると判断して(IG−OFF状態であると判定して)リセットすることができたり、書き換えを完了できる場合がある。これらの場合は、ツール50はエラーを表示するので、ユーザは書き換えに失敗したことを把握できる。
したがって、書き換えが始まる前にIG−OFF状態になると、書き換えモードで停滞してバッテリ上がりにつながるおそれがあった。すなわち、仮にツール50が異常を検出しエラー表示しても、サービスマンは意図して書き換えを中断しているため、エラー表示に気づかない、又は、気に留めない可能性がある。この結果、バッテリ上がりにつながるおそれがある。
図5(b)は従来の電子制御装置100のプログラムの書き換え手順により生じる別の不都合を説明するフローチャート図の一例である。図5(b)ではすでにIG−OFF状態であるとする。
正常動作モードのマイコン11は車両制御を実行しているが、IG-OFFになっても省エネモードに移行するまでの間にプログラムOLDを実行している場合がある。また、省エネモードにおいても定期的に起動して異常の有無を監視するなどのためにプログラムOLDを実行する場合がある。このため、プログラムカウンタに異常が生じることで、CPU21が書き換えプログラムを実行するおそれがある。
この場合、書き換えプログラムはツール50と通信してプログラムOLDを書き換えようとする。しかし、ツール50が接続されていないため、マイコン11は書き換えモードで停滞してしまい、省エネモードに入ることができない。このため、バッテリ上がりにつながるおそれがあった。
なお、IG-ON状態の間に誤って書き換えモードに移行した場合、運転者などが車内にいるため、挙動の違和感やメータの警報点灯などで気づくことができる。また、IG-ON状態では、ウォッチドッグタイマなどの機構でリセットすることができる場合がある。
C.本実施形態の動作手順
図6は本実施形態の電子制御装置100のプログラムの書き換え手順を説明するフローチャート図の一例である。図5と比較すると、ステップS35が追加されている。
図6は本実施形態の電子制御装置100のプログラムの書き換え手順を説明するフローチャート図の一例である。図5と比較すると、ステップS35が追加されている。
すなわち、ステップS30で書き換えモードに移行すると判定された場合、IG判定部45がIG-ON状態か否かを判定する(S35)。これにより、書き換えが始まる前にIG-OFFに操作されたことを検出できる。なお、IG-ON状態か否かの判定は、書き換えモードに移行する前に行ってもよい。
IG-OFF状態だった場合(S35のNo)、リセット部46はマイコン11をリセットする(S80)。したがって、サービスマンが書き換えモードに移行した後にIG−OFFに操作した場合、マイコン11は正常動作モードに復帰できる。
また、ステップS10の正誤判定で正常でないと判定された場合(S10のNo)、IG-ON状態か否かが判定されるので、正常動作モードを経ない場合も、IG-OFF状態ではマイコンをリセットできる。
図7は、図6の手順の変形例である。図6との違いは、ステップS50でNoと判定された場合、ステップS35のIG-ON状態か否かが判定される点である。このように、図7の手順では、周期的に、定期的に、又は、負荷が低下した時などの任意のタイミングで、IG−ON状態か否かを判定する。タイマーを利用して定期的に判定することも有効である。書き換えが完了するまでに複数回、IG-OFF状態か否かを判定することで、書き換え中、IG-OFF状態か否かを検出できる。
したがって、図5(b)のように、ツール50が接続されていない状態でプログラムカウンタの異常により書き換えモードに移行した場合も、IG-OFF状態であることを検出して、マイコン11をリセットして正常動作モードに復帰できる。
以上、説明したように、本実施例のマイコン11は、書き換えモード中にIG-OFFに操作されてもバッテリ上がりすることを防止できる。
本実施例ではIG判定後に正誤判定を行うマイコン11について説明する。正誤判定により処理を振り分けることで、サービスマンが書き換えを行いたいのに誤ってIG−OFFに操作してしまった場合、再度、書き換えを行うことが可能になる。
なお、本実施例において、実施例1にて説明した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
図8は、本実施例の電子制御装置100のプログラムの書き換え手順を説明するフローチャート図の一例である。図6と比較すると、ステップS37が追加されている。
ステップS30で書き換えモードに移行すると判定された場合、IG判定部45がIG-ON状態か否かを判定する(S35)。上記のように、サービスマンが書き換えモードに移行後にIG-OFFに操作したことを検出できる。
IG-OFF状態だった場合(S35のNo)、正誤判定部47は正誤判定を行う(S37)。例えば、サービスマンが書き換え中に誤ってIG-OFFに操作する場合があり得る。この場合、フラッシュメモリ23は途中までしか書き換えられていないので、サービスマンは書き換えを行いたいはずである。また、この場合、正誤判定は正常でないと想定される。
そこで、正誤判定で正常でないと判定された場合(S37のNo)、書き換え部48がメモリの書き換えを行う(S40)。以降の処理は図6と同じである。
一方、正誤判定で正常であると判定された場合(S37のYes)、図6で説明したように、書き換え前にIG-OFFに操作されており、サービスマンに書き換えの意志があるか否か不明なので、リセット部46がリセットすることで正常動作モードに復帰できる(S80)。
したがって、本実施例のマイコン11によれば、サービスマンが書き換え中に誤ってIG−OFFに操作する場合には再書き込みを、それ以外の場合は正常動作モードに復帰できる。
また、追加されたステップS37の正誤判定は、元々、書き換えプログラムが有しているロジック又はリセット解除直後に実行されるロジックなので、書き換えプログラムの変更コストを抑制することができる。
なお、本実施例においても、図7と同様に、書き換え完了までにIG-ON状態か否かを適宜判断することができる。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、上記の実施例ではIG-ON状態でない場合にリセットしたが、ACC-ON状態でない場合にリセットしてもよい。
また、マイコンのリセットにより正常動作モードに戻ると説明したが、例えばプログラムカウンタにプログラムOLDのアドレスを設定するなどして正常動作モードに戻ってもよい。
また、マイコンによっては、正常動作モードとプログラム書き換えモードという動作モードの区別が明確でない場合があり、2つの動作モードが区別されていなくてもよい。
また、書き換えが開始されたか否かの判断は、書き換え開始コマンドが送信されることであるとしたが、マイコンが書き換えプログラムNEWの最初の一部を受信したこと、又は、書き換えプログラムNEWの最初の一部がフラッシュメモリ23に書き込まれたことで、書き換えが開始されたと判断してもよい。
11 マイコン
12 IC
21 CPU
23 フラッシュメモリ
50 ツール
100 電子制御装置
12 IC
21 CPU
23 フラッシュメモリ
50 ツール
100 電子制御装置
Claims (7)
- 車両外部から送信されたソフトウェアで記憶部に記憶されているソフトウェアを書き換える電子制御装置であって、
車両外部又は車両内部からソフトウェアの書き換え要求があった場合に、イグニッションがON状態かOFF状態かを判定する判定手段と、
イグニッションがOFF状態の場合、当該電子制御装置のマイコンをリセットするリセット手段と、
イグニッションがON状態の場合、前記記憶部のソフトウェアの書き換えを行う書き換え手段と、を有することを特徴とする電子制御装置。 - 車両外部から送信されたソフトウェアで記憶部に記憶されているソフトウェアを書き換える電子制御装置であって、
車両外部又は車両内部からソフトウェアの書き換え要求があった場合に、イグニッションがON状態かOFF状態かを判定する判定手段と、
イグニッションがOFF状態の場合、前記記憶部のソフトウェアの誤り検出を行う誤り検出手段と、
前記誤り検出手段が前記記憶部のソフトウェアの誤りを検出した場合、又は、イグニッションがON状態の場合、ソフトウェアの書き換えを行う書き換え手段と、
前記誤り検出手段が前記記憶部のソフトウェアの誤りを検出しない場合、当該電子制御装置のマイコンをリセットするリセット手段と、
を有することを特徴とする電子制御装置。 - ソフトウェアの書き換えが始められた後、書き換えが終わるまでの間、前記判定手段は、イグニッションがON状態かOFF状態かを複数回、判定する、
ことを特徴とする請求項1又は2記載の電子制御装置。 - 前記記憶部に記憶されているソフトウェアの誤り検出を行う誤り検出手段を有し、
前記誤り検出手段は、前記書き換え手段がソフトウェアの書き換えを完了した場合、前記記憶部のソフトウェアの誤り検出を行い、
前記誤り検出手段が前記記憶部のソフトウェアの誤りを検出した場合、前記書き換え手段は、再度、ソフトウェアの書き換えを行う、
ことを特徴とする請求項1記載の電子制御装置。 - 前記誤り検出手段は、前記書き換え手段がソフトウェアの書き換えを完了した場合、前記記憶部のソフトウェアの誤り検出を行い、
前記誤り検出手段が前記記憶部のソフトウェアの誤りを検出した場合、前記書き換え手段は、再度、ソフトウェアの書き換えを行う、
ことを特徴とする請求項2記載の電子制御装置。 - 前記マイコンのリセット解除の直後に、前記記憶部のソフトウェアの誤り検出を行う第2の誤り検出手段を有し、
前記第2の誤り検出手段が前記記憶部のソフトウェアの誤りを検出せず、かつ、前記書き換え要求を取得した場合、前記判定手段はイグニッションがON状態かOFF状態かを判定し、
前記第2の誤り検出手段が前記記憶部のソフトウェアの誤りを検出した場合、前記判定手段はイグニッションがON状態かOFF状態かを判定する、
ことを特徴とする請求項1〜5いずれか1項記載の電子制御装置。 - 外部装置と、前記外部装置から送信されたソフトウェアで記憶部に記憶されているソフトウェアを書き換える電子制御装置とを有するソフトウェア書き換えシステムであって、
前記外部装置は、ソフトウェアを記憶するためのソフトウェア記憶部を有し、
前記電子制御装置は、
前記外部装置又は車両内部からソフトウェアの書き換え要求があった場合に、イグニッションがON状態かOFF状態かを判定する判定手段と、
イグニッションがOFF状態の場合、当該電子制御装置のマイコンをリセットするリセット手段と、
イグニッションがON状態の場合、前記記憶部のソフトウェアの書き換えを行う書き換え手段と、を有することを特徴とするソフトウェア書き換えシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013240225A JP2015098311A (ja) | 2013-11-20 | 2013-11-20 | 電子制御装置、ソフトウェア書き換えシステム |
PCT/JP2014/075108 WO2015076012A1 (ja) | 2013-11-20 | 2014-09-22 | 電子制御装置、ソフトウェア書き換えシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013240225A JP2015098311A (ja) | 2013-11-20 | 2013-11-20 | 電子制御装置、ソフトウェア書き換えシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015098311A true JP2015098311A (ja) | 2015-05-28 |
Family
ID=53179283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013240225A Withdrawn JP2015098311A (ja) | 2013-11-20 | 2013-11-20 | 電子制御装置、ソフトウェア書き換えシステム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2015098311A (ja) |
WO (1) | WO2015076012A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019079205A (ja) * | 2017-10-23 | 2019-05-23 | トヨタ自動車株式会社 | 車載機器および携帯端末 |
JP2020017210A (ja) * | 2018-07-27 | 2020-01-30 | 株式会社デンソーテン | 制御装置およびモード移行方法 |
JPWO2021140810A1 (ja) * | 2020-01-10 | 2021-07-15 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005157637A (ja) * | 2003-11-25 | 2005-06-16 | Toyota Motor Corp | プログラム書き込みシステムおよび方法 |
JP4367513B2 (ja) * | 2007-03-28 | 2009-11-18 | 株式会社デンソー | 電子制御装置 |
JP5136602B2 (ja) * | 2010-06-28 | 2013-02-06 | トヨタ自動車株式会社 | 電子制御装置 |
-
2013
- 2013-11-20 JP JP2013240225A patent/JP2015098311A/ja not_active Withdrawn
-
2014
- 2014-09-22 WO PCT/JP2014/075108 patent/WO2015076012A1/ja active Application Filing
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019079205A (ja) * | 2017-10-23 | 2019-05-23 | トヨタ自動車株式会社 | 車載機器および携帯端末 |
JP2020017210A (ja) * | 2018-07-27 | 2020-01-30 | 株式会社デンソーテン | 制御装置およびモード移行方法 |
JP7226937B2 (ja) | 2018-07-27 | 2023-02-21 | 株式会社デンソーテン | 制御装置、制御システムおよび制御方法 |
JPWO2021140810A1 (ja) * | 2020-01-10 | 2021-07-15 | ||
WO2021140810A1 (ja) * | 2020-01-10 | 2021-07-15 | 日立Astemo株式会社 | 電子制御装置及び電子制御システム |
JP7373590B2 (ja) | 2020-01-10 | 2023-11-02 | 日立Astemo株式会社 | 電子制御装置及び電子制御システム |
Also Published As
Publication number | Publication date |
---|---|
WO2015076012A1 (ja) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4518150B2 (ja) | 車両用電子制御装置 | |
US20070208470A1 (en) | Electronic control unit with a plurality of control circuits | |
US20180203685A1 (en) | Relay device, electronic control unit, and vehicle-mounted system | |
US9081699B2 (en) | Relay device | |
US10964135B2 (en) | In-vehicle electronic control unit and method for abnormality response processing thereof | |
US7831678B2 (en) | Electronic control apparatus | |
US9110842B2 (en) | Control device for vehicle and error processing method in control device for vehicle | |
US10384625B2 (en) | Communication device and non-transitory recording medium | |
CN111965968A (zh) | 一种切换控制方法、***及装置 | |
CN110809755A (zh) | 电子控制*** | |
WO2015076012A1 (ja) | 電子制御装置、ソフトウェア書き換えシステム | |
JP2008254484A (ja) | 車載用通信システム | |
US7934050B2 (en) | Microcomputer for flash memory rewriting | |
JP6094523B2 (ja) | プログラム書き換え方法 | |
JP2008206390A (ja) | スイッチング装置及びそれに対応する負荷の活動化方法 | |
JP3491358B2 (ja) | 電源遮断検出装置 | |
JP7147525B2 (ja) | 通信装置及び制御方法 | |
JP6012918B1 (ja) | 制御システム及び制御方法 | |
WO2019064644A1 (ja) | 電子制御装置及び制御プログラム検証方法 | |
JP3960212B2 (ja) | 電子制御装置 | |
JP5867350B2 (ja) | 車両用電子制御装置 | |
JP2020189586A (ja) | データ書換方法、及びデータ書換システム | |
US9720474B2 (en) | Electronic control unit | |
JP7291541B2 (ja) | 制御装置および監視方法 | |
JP2022068946A (ja) | 電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150513 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20151020 |