(57)【要約】【課題】アプリプログラムの実行中にリプロを行いつつ、不揮発性メモリのメモリ容量の増大によるコスト高を回避する。【解決手段】電子制御装置１において、フラッシュＲＯＭ９は、第１物理領域１６ａと第２物理領域１６ｂと第３物理領域１６ｃとを有する。ＣＰＵ２は、３個の物理領域に対応して第１論理領域と第２論理領域と第３論理領域とを割り付け、第１論理領域を制御プログラムの記憶用論理領域として割り付け、第２論理領域を適合データの記憶用論理領域として割り付け、第３論理領域を作業用論理領域として割り付ける。ＣＰＵ２は、制御プログラムを書き込んだ場合には、第１論理領域と第３論理領域とを切り替え、適合データを書き込んだ場合には、第２論理領域と第３論理領域とを切り替える。【選択図】図１
2019020897.tif 000002
【特許請求の範囲】
【請求項１】
制御対象（１４）を制御するためのアプリプログラムを記憶し、記憶内容を書き換え可能な不揮発性メモリ（９）と、
前記アプリプログラムを実行し、前記制御対象を制御する演算部（２）と、を備え、
前記不揮発性メモリは、第１物理領域（１６ａ）と第２物理領域（１６ｂ）と第３物理領域（１６ｃ）との３個の物理領域を有し、
前記３個の物理領域に対応して第１論理領域と第２論理領域と第３論理領域とを割り付け、前記第１論理領域を前記アプリプログラムのうちの制御プログラムの記憶用論理領域として割り付け、前記第２論理領域を前記アプリプログラムのうちの適合データの記憶用論理領域として割り付け、前記第３論理領域を作業用論理領域として割り付ける割り付け処理部（２ａ）と、
前記第１論理領域に記憶されている制御プログラムと前記第２論理領域に記憶されている適合データとを用いて前記制御対象を制御する制御処理部（２ｂ）と、
書き換え対象のアプリプログラムを構成する更新ソフトェアを前記第３論理領域に書き込む書き込み処理部（２ｃ）と、
前記制御プログラムが書き込まれた場合には、前記第１論理領域と前記第３論理領域とを切り替え、前記適合データが書き込まれた場合には、前記第２論理領域と前記第３論理領域とを切り替える切り替え処理部（２ｄ）と、を有する電子制御装置。
【請求項２】
前記切り替え処理部は、前記制御プログラムが書き込まれた後に、前記制御処理部による前記制御対象の制御が正常に終了されなかった場合には、前記第１論理領域と前記第３論理領域とを切り替え、
前記制御処理部は、前記切り替え処理部により前記第１論理領域と前記第３論理領域とが切り替えられた後の前記第１論理領域と前記第２論理領域とを用いて前記制御対象を制御する請求項１に記載した電子制御装置。
【請求項３】
前記切り替え処理部は、前記適合データが書き込まれた後に、前記制御処理部による前記制御対象の制御が正常に終了されなかった場合には、前記第２論理領域と前記第３論理領域とを切り替え、
前記制御処理部は、前記切り替え処理部により前記第２論理領域と前記第３論理領域とが切り替えられた後の前記第１論理領域と前記第２論理領域とを用いて前記制御対象を制御する請求項１又は２に記載した電子制御装置。
【請求項４】
前記更新ソフトェアは、前記制御プログラムであるか前記適合データであるかの種別を示す種別情報と、バージョンを示すバージョン情報とを有し、
前記割り付け処理部は、最新のバージョンの制御プログラムが記憶されている物理領域を論理領域１として割り付け、最新のバージョンの適合データが記憶されている物理領域を論理領域２として割り付け、それ以外の物理領域を論理領域３として割り付ける請求項１から３の何れか一項に記載した電子制御装置。
【請求項５】
前記適合データは、データの先頭アドレスを記憶するアドレス部と、データを記憶するデータ部とを有し、
前記書き込み処理部は、前記制御プログラムと前記適合データとの両方を書き込む場合には、前記データ部において旧適合データを未使用領域のアドレスに書き込むと共に新適合データを前記旧適合データの元々のアドレスに書き込み、前記制御プログラムにおける前記適合データの参照先アドレスを旧適合データのアドレスから新適合データのアドレスに書き換える請求項１から４の何れか一項に記載した電子制御装置。
【請求項６】
請求項１から５の何れか一項に記載した電子制御装置と、
前記更新ソフトェアを前記電子制御装置に配信するサーバ（１１）と、を備え、
前記サーバは、前記更新ソフトェアのうちの前記制御プログラムと前記適合データとを別々に配信する更新ソフトェア配信システム。
【請求項７】
前記電子制御装置は、前記制御処理部による前記制御対象の制御が正常に終了されなかった場合に、前記制御プログラムと前記適合データとの組み合わせを特定可能な情報を前記サーバに送信する請求項６に記載した更新ソフトウェア配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置及び更新ソフトウェア配信システムに関する。
【背景技術】
【０００２】
例えば自動車のエンジンやトランスミッション等を制御する電子制御装置は、記憶内容を書き換え可能な不揮発性メモリを有し、その不揮発性メモリに記憶されているアプリプログラムを書き換え可能（即ちリプロ可能）に構成されている。リプロを行う構成として、例えば特許文献１には、プログラム実行用の読み込み領域とリプロ用の書き込み領域とを用意し、リプロを正常に終了した後に、読み込み領域と書き込み領域とを切り替える構成が開示されている。又、例えば特許文献２には、アプリプログラム毎にプログラム実行用の主領域とリプロ用の副領域とを用意し、リプロを正常に終了した後に、主領域と副領域とを切り替える構成が開示されている。特許文献１及び２の構成では、アプリプログラムの実行中にリプロを行うことが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５４２６４号公報
【特許文献２】特開２００６−３０１９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１及び２の構成では、不揮発性メモリのメモリ容量としてアプリプログラムに必要な容量の２倍分の容量を用意する必要があり、メモリ容量の増大によるコスト高を招く問題がある。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、アプリプログラムの実行中にリプロを行うことができつつ、不揮発性メモリのメモリ容量の増大によるコスト高を回避することができる電子制御装置及び更新ソフトウェア配信システムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した発明によれば、不揮発性メモリ（９）は、制御対象（１４）を制御するためのアプリプログラムを記憶し、記憶内容を書き換え可能である。演算部（２）は、アプリプログラムを実行し、制御対象を制御する。不揮発性メモリは、第１物理領域（１６ａ）と第２物理領域（１６ｂ）と第３物理領域（１６ｃ）との３個の物理領域を有する。
【０００７】
割り付け処理部（２ａ）は、３個の物理領域に対応して第１論理領域と第２論理領域と第３論理領域とを割り付けることが可能であり、第１論理領域をアプリプログラムのうちの制御プログラムの記憶用論理領域として割り付け、第２論理領域をアプリプログラムのうちの適合データの記憶用論理領域として割り付け、第３論理領域を作業用論理領域として割り付ける。制御処理部（２ｂ）は、第１論理領域に記憶されている制御プログラムと第２論理領域に記憶されている適合データとを用いて制御対象を制御する。書き込み処理部（２ｃ）は、書き換え対象のアプリプログラムを構成する更新ソフトェアを第３論理領域に書き込む。切り替え処理部（２ｄ）は、制御プログラムが書き込まれた場合には、第１論理領域と第３論理領域とを切り替え、適合データが書き込まれた場合には、第２論理領域と第３論理領域とを切り替える。
【０００８】
制御プログラムの記憶用論理領域として割り付けた第１論理領域と、適合データの記憶用論理領域として割り付けた第２論理領域とを用いて制御対象を制御し、第１論理領域及び第２論理領域とは別の第３論理領域を作業用論理領域として割り付けるようにした。第１論理領域及び第２論理領域を用いてアプリプログラムを実行すると共に、第３論理領域を用いてリプロを行うことで、アプリプログラムの実行中にリプロを行うことができる。又、第３論理領域を制御プログラムと適合データとを選択的に書き込む共通の記憶領域とした。不揮発性メモリのメモリ容量としてアプリプログラムに必要な容量の２倍分の容量を用意する必要がなくなる。
【０００９】
即ち、従来では、旧制御プログラムの記憶領域と、旧適合データの記憶領域と、新制御プログラムの記憶領域と、新適合データの記憶領域とを用意する必要があるが、本発明では、旧制御プログラムの記憶領域と、旧適合データの記憶領域と、新制御プログラムと新適合データとに共通する記憶領域とを用意すれば良く、メモリ容量を従来に対して４分の３程度に低減することができる。これにより、アプリプログラムの実行中にリプロを行うことができつつ、不揮発性メモリのメモリ容量の増大によるコスト高を回避することができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態を示す機能ブロック図
【図２】論理領域判定テーブルを示す図
【図３】起動処理を示すフローチャート
【図４】書き換え処理を示すフローチャート
【図５】制御プログラムを書き換える態様を示す図
【図６】制御プログラムを消去する態様を示す図
【図７】適合データを書き換える態様を示す図
【図８】適合データを消去する態様を示す図
【図９】データを書き換える態様を示す図
【発明を実施するための形態】
【００１１】
以下、本発明を、自動車のエンジンを制御する電子制御装置に適用した一実施形態について図面を参照して説明する。電子制御装置１は、ＣＰＵ２（演算部に相当する）と、フラッシュＲＯＭコントローラ３と、ＲＡＭ４と、ＥＥＰＲＯＭ５と、通信インタフェース回路６と、入出力回路７とを有し、これらが内部バス８により相互接続されて構成されている。
【００１２】
フラッシュＲＯＭコントローラ３は、フラッシュＲＯＭ９（不揮発性メモリに相当する）を接続しており、ＣＰＵ２から入力する命令にしたがってフラッシュＲＯＭ９に対するデータの読み書きを行う。ＲＡＭ４は、ＣＰＵ２の演算結果等を一時的に格納するための揮発性メモリである。ＥＥＰＲＯＭ５は、記憶内容を書き換え可能な不揮発性メモリである。
【００１３】
通信インタフェース回路６は、車両に搭載されている各種機器との間で車内ＬＡＮ１０を介してデータ通信を行う。車内ＬＡＮ１０は、車両外部のネットワーク側に設置されているサーバ１１との間で無線通信を行う無線通信機１２を接続している。無線通信機１２は、無線通信専用の機器であっても良いし、無線通信機能を有する別の電子制御装置であっても良い。サーバ１１は、電子制御装置１が後述するエンジン１４（制御対象に相当する）を制御するためのアプリプログラムを配信する。通信インタフェース回路６は、ＣＰＵ２から問合命令を入力すると、問合信号の送信命令を無線通信機１２に出力する。無線通信機１２は、通信インタフェース回路６から問合信号の送信命令を入力すると、問合信号をサーバ１１に送信する。
【００１４】
サーバ１１は、無線通信機１２から送信された問合信号を受信すると、その問合信号の送信元の電子制御装置１に対してアプリプログラムの更新が必要であるか否かを判定する。サーバ１１は、無線通信機１２から受信した問合信号から当該問合信号の送信元の電子制御装置１が保持している最新のアプリプログラムのバージョンと、自身が保持している最新のアプリプログラムのバージョンとを比較し、問合信号の送信元の電子制御装置１に対してアプリプログラムの更新が必要であるか否かを判定する。サーバ１１は、両者のバージョンが一致すると判定すると、アプリプログラムの更新が必要でないと判定し、その問合信号の送信元の電子制御装置１に対して更新が必要でない旨を示す応答信号を送信する。
【００１５】
一方、サーバ１１は、例えばバグ改修や高機能化によるバージョンアップ等により両者のバージョンが一致しないと判定すると、アプリプログラムの更新が必要であると判定し、その問合信号の送信元の電子制御装置１に対して更新が必要である旨を示す応答信号を送信すると共に最新のアプリプログラムを構成する更新ソフトウェアを配信する。
【００１６】
サーバ１１が配信する更新ソフトウェアは、制御プログラムと適合データとから構成され、制御プログラムであるか適合データであるかの種別を示す種別情報と、バージョンを示すバージョン情報とを有する。又、サーバ１１は、更新ソフトウェアを配信する際には、更新ソフトウェアのうちの制御プログラムと適合データとを分離して別々に配信する。無線通信機１２は、サーバ１１から配信された更新ソフトウェアを受信すると、その受信した更新ソフトウェアを通信インタフェース回路６に出力する。電子制御装置１と無線通信機１２とサーバ１１とを含んで更新ソフトウェア配信システム１３が構成される。
【００１７】
入出力回路７は、前述したエンジン１４を接続しており、エンジン１４の運転状態を検出する各種センサからセンサ信号を入力すると、その入力したセンサ信号に対して波形処理等の信号処理を行い、信号処理の結果を示すデータをＣＰＵ２に出力する。ＣＰＵ２は、入出力回路７からデータを入力すると、そのデータを用いてエンジン１４の運転状態を特定し、例えば燃料を噴射するインジェクタの開弁タイミングや開弁時間等のエンジン１４の制御に必要なデータを演算し、その演算結果にしたがって駆動命令を入出力回路７に出力する。入出力回路７は、ＣＰＵ２から駆動命令を入力すると、その駆動命令にしたがって駆動信号をエンジン１４に出力し、インジェクタからの燃料噴射等を制御する。
【００１８】
フラッシュＲＯＭ９は、記憶内容を書き換え可能な不揮発性メモリであり、ブート領域１５と、ユーザ領域１６とを有する。ブート領域１５は、電子制御装置１の電源投入時に当該電子制御装置１を起動させるためのブートプログラムを記憶している。ユーザ領域１６は、エンジン１４を制御するためのアプリプログラムを記憶しており、アプリプログラムの記憶領域として第１物理領域１６ａと第２物理領域１６ｂと第３物理領域１６ｃとの３個の物理領域１６ａ〜１６ｃを有する。ＣＰＵ２は、ブート領域１５に記憶されるブートプログラムを実行し、ブートプログラムからユーザ領域１６に記憶されているアプリプログラムを実行し、エンジン１４を制御する。
【００１９】
ＣＰＵ２は、電子制御装置１の外部から入力するイグニッション信号によりイグニッションオンを検出する。ＣＰＵ２は、機能に応じて、割り付け処理部２ａと、制御処理部２ｂと、書き込み処理部２ｃと、切り替え処理部２ｄとを有する。即ち、ＣＰＵ２がフラッシュＲＯＭ９に記憶されているプログラムを実行することで、処理部２ａ〜２ｄのそれぞれとして機能する。
【００２０】
割り付け処理部２ａは、フラッシュＲＯＭ９の３個の物理領域１６ａ〜１６ｃに対応して第１論理領域と第２論理領域と第３論理領域とを割り付ける。割り付け処理部２ａは、第１論理領域をアプリプログラムのうちの制御プログラムの記憶用論理領域として割り付け、第２論理領域をアプリプログラムのうちの適合データの記憶用論理領域として割り付け、第３論理領域を作業用論理領域として割り付ける。制御処理部２ｂは、第１論理領域に記憶されている制御プログラムと第２論理領域に記憶されている適合データとを用いてエンジン１４を制御する。
【００２１】
書き込み処理部２ｃは、サーバ１１から配信された更新ソフトウェアが無線通信機１２に受信され、その受信された更新ソフトウェアが通信インタフェース回路６に入力されると、その入力された更新ソフトェアを第３論理領域に書き込む。書き込み処理部２ｃは、サーバ１１から配信された更新ソフトウェアが制御プログラムであれば、その制御プログラムを第３論理領域に書き込み、サーバ１１から配信された更新ソフトウェアが適合データであれば、その適合データを第３論理領域に書き込む。
【００２２】
切り替え処理部２ｄは、書き込み処理部２ｃにより制御プログラムが第３論理領域に書き込まれた場合には、第１論理領域と第３論理領域とを切り替え、書き込み処理部２ｃにより適合データが第３論理領域に書き込まれた場合には、第２論理領域と第３論理領域とを切り替える。
【００２３】
ＣＰＵ２は、図２に示す論理領域判定テーブルを記憶している。論理領域判定テーブルは、３個の物理領域１６ａ〜１６ｃの種別（Ｋ１〜Ｋ３）、バージョン（Ｖ１〜Ｖ３）、割り付けられている論理領域の番号（Ａ１〜Ａ３）の対応を示す。例えば状態１は、第１物理領域１６ａに旧制御プログラムが記憶され、第２物理領域１６ｂに旧適合データが記憶され、第３物理領域１６ｃが消去状態であり、第１物理領域１６ａに第１論理領域が割り付けられ、第２物理領域１６ｂに第２論理領域が割り付けられ、第３物理領域１６ｃに第３論理領域が割り付けられている状態を示す。
【００２４】
次に、上記した構成の作用について図３から図９を参照して説明する。
電子制御装置１において、ＣＰＵ２は、電子制御装置１の外部から入力するイグニッション信号によりイグニッションオンを検出すると、起動処理を開始する。ＣＰＵ２は、起動処理を開始すると、論理領域判定テーブルを参照し、その時点での論理領域を判定し（Ｓ１）、第１論理領域と第２論理領域との両方が物理領域に割り付けられているか否かを判定する（Ｓ２）。又、ＣＰＵ２は、起動処理を開始すると、書き換え処理を開始し、これ以降では起動処理と書き換え処理とを並行して行う。
【００２５】
ＣＰＵ２は、第１論理領域と第２論理領域との両方が物理領域に割り付けられていると判定すると（Ｓ２：ＹＥＳ）、第１論理領域に記憶されている制御プログラムを起動し、その起動した制御プログラムにより第２論理領域に記憶されている適合データを参照し、エンジン１４の制御を開始する（Ｓ３）。ＣＰＵ２は、エンジン１４の制御を開始すると、エンジン１４の制御を終了するのを待機し、エンジン１４の制御を正常に終了したか否かを判定する（Ｓ４）。ＣＰＵ２は、エンジン１４の制御を正常に終了したと判定すると（Ｓ４：ＹＥＳ）、起動処理を終了する。
【００２６】
一方、ＣＰＵ２は、エンジン１４の制御を正常に終了しなかったと判定すると（Ｓ４：ＮＯ）、第３論理領域に書き込まれている内容が制御プログラム及び適合データの何れであるかを判定する（Ｓ５，Ｓ６）。ＣＰＵ２は、第３論理領域に書き込まれている内容が制御プログラムであると判定すると（Ｓ５：ＹＥＳ）、その時点で第１論理領域に記憶されている制御プログラムを消去し（Ｓ７）、第１論理領域と第３論理領域とを切り替え（Ｓ８）、ステップＳ２に戻り、ステップＳ２以降を繰り返す。又、ＣＰＵ２は、第３論理領域に書き込まれている内容が適合データであると判定すると（Ｓ６：ＹＥＳ）、その時点で第２論理領域に記憶されている適合データを消去し（Ｓ７）、第２理領域と第３論理領域とを切り替え（Ｓ８）、ステップＳ２に戻り、ステップＳ２以降を繰り返す。尚、ＣＰＵ２は、第１論理領域と第２論理領域との両方が物理領域に割り付けられていないと判定すると（Ｓ２：ＮＯ）、エンジン１４の制御を開始せずに起動処理を終了する。
【００２７】
ＣＰＵ２は、書き換え処理を開始し、アプリプログラムの更新が必要であれば、以下のようにしてアプリプログラムを更新する。尚、例えば自動車のエンジンを制御する電子制御装置１では単一のアプリプログラムを実行するので、書き換え処理ではフラッシュＲＯＭ９のユーザ領域１６の全領域を対象としてアプリプログラムを更新する。
【００２８】
即ち、ＣＰＵ２は、書き換え処理を開始すると、問合命令を通信インタフェース回路６に出力し、問合信号を無線通信機１２からサーバ１１に送信させ（Ｓ１１）、サーバ１１からの応答信号の受信を待機する（Ｓ１２）。サーバ１１は、無線通信機１２から送信された問合信号を受信すると、その問合信号の送信元の電子制御装置１に対してアプリプログラムの更新が必要であるか否かを判定する。サーバ１１は、アプリプログラムの更新が必要でないと判定すると、その問合信号の送信元の電子制御装置１に対してアプリプログラムの更新が必要でない旨を示す応答信号を送信する。一方、サーバ１１は、例えばバグ改修や高機能化によるバージョンアップ等によりアプリプログラムの更新が必要であると判定すると、その問合信号の送信元の電子制御装置１に対してアプリプログラムの更新が必要である旨を示す応答信号を送信すると共にアプリプログラムを構成する更新ソフトウェアを配信する。
【００２９】
ＣＰＵ２は、サーバ１１から送信された応答信号が無線通信機１２に受信されたと判定すると（Ｓ１２：ＹＥＳ）、その受信された応答信号によりアプリプログラムの更新が必要であるか否かを判定する（Ｓ１３）。ＣＰＵ２は、アプリプログラムの更新が必要でないと判定すると（Ｓ１３：ＮＯ）、書き換え処理を終了する。
【００３０】
一方、ＣＰＵ２は、アプリプログラムの更新が必要であると判定すると（Ｓ１３：ＹＥＳ）、第３論理領域を書き込み領域に設定し（Ｓ１４）、サーバ１１から配信された更新ソフトウェアの第３論理領域への書き込みを開始し（Ｓ１５）、更新ソフウェアの全ての書き込みの終了を待機する（Ｓ１６）。ＣＰＵ２は、更新ソフウェアの全ての書き込みを終了したと判定すると（Ｓ１６：ＹＥＳ）、その書き込んだ種別にしたがって論理領域を切り替え（Ｓ１７）、書き換え処理を終了する。
【００３１】
即ち、ＣＰＵ２は、サーバ１１から配信された更新ソフトウェアが制御プログラムであれば、図５に示すように、制御プログラムの第３論理領域への書き込みを開始し、制御プログラムの第３論理領域への書き込みを終了すると、第１論理領域と第３論理領域とを切り替える。その後、ＣＰＵ２は、第１論理領域に記憶されている制御プログラムを起動し、その起動した制御プログラムにより第２論理領域に記憶されている適合データを参照し、エンジン１４の制御を開始する。即ち、ＣＰＵ２は、バージョン２の制御プログラムとバージョン１の適合データとの組み合わせを用いてエンジン１４の制御を開始する。
【００３２】
ここで、ＣＰＵ２は、第１論理領域に記憶されている制御プログラム、即ち、論理領域を切り替える前の第３論理領域に書き込んだ制御プログラムが正常であれば、エンジン１４の制御を正常に終了する。一方、ＣＰＵ２は、論理領域を切り替える前の第３論理領域に書き込んだ制御プログラムが正常でなければ、エンジン１４の制御を正常に終了せず、図６に示すように、その時点で第１論理領域に記憶されている制御プログラムを消去し、第１論理領域と第３論理領域とを切り替え、エンジン１４の制御を再度開始する。即ち、ＣＰＵ２は、バージョン１の制御プログラムとバージョン１の適合データとの組み合わせを用いてエンジン１４の制御を開始する。このように、ＣＰＵ２は、論理領域を切り替える前の第３論理領域に書き込んだ制御プログラムを起動してエンジン１４の制御を開始したがエンジン１４の制御を正常に終了しなかった場合には、制御プログラムを書き込む前の状態に戻し、エンジン１４の制御を再度開始する。
【００３３】
又、ＣＰＵ２は、サーバ１１から配信された更新ソフトウェアが適合データであれば、図７に示すように、適合データの第３論理領域への書き込みを開始し、適合データの第３論理領域への書き込みを終了すると、第２論理領域と第３論理領域とを切り替える。その後、ＣＰＵ２は、第１論理領域に記憶されている制御プログラムを起動し、その起動した制御プログラムにより第２論理領域に記憶されている適合データを参照し、エンジン１４の制御を開始する。即ち、ＣＰＵ２は、バージョン１の制御プログラムとバージョン２の適合データとの組み合わせを用いてエンジン１４の制御を開始する。
【００３４】
ここで、ＣＰＵ２は、第２論理領域に記憶されている適合データ、即ち、論理領域を切り替える前の第３論理領域に書き込んだ適合データが正常であれば、エンジン１４の制御を正常に終了する。一方、ＣＰＵ２は、論理領域を切り替える前の第３論理領域に書き込んだ適合データが正常でなければ、エンジン１４の制御を正常に終了せず、図８に示すように、その時点で第２論理領域に記憶されている適合データを消去し、第２論理領域と第３論理領域とを切り替え、エンジン１４の制御を再度開始する。即ち、ＣＰＵ２は、バージョン１の制御プログラムとバージョン１の適合データとの組み合わせを用いてエンジン１４の制御を開始する。このように、ＣＰＵ２は、論理領域を切り替える前の第３論理領域に書き込んだ適合データを参照してエンジン１４の制御を開始したがエンジン１４の制御を正常に終了しなかった場合には、適合データを書き込む前の状態に戻し、エンジン１４の制御を再度開始する。
【００３５】
尚、ＣＰＵ２は、このようにエンジン１４の制御を開始したがエンジン１４の制御を正常に終了しなかった場合には、その際の制御プログラムと適合データとの組み合わせを特定可能な情報をエラー情報として無線通信機１２からサーバ１１に送信させる。サーバ１１は、無線通信機１２から送信されたエラー情報を受信すると、その受信したエラー情報を管理する。
【００３６】
ＣＰＵ２は、制御プログラムと適合データとの両方を書き換える場合には、以下のようにして書き換える。適合データは、データの先頭アドレスを記憶するアドレス部と、データを記憶するデータ部とを有し、アドレス部に記憶されているアドレスを用いてデータを参照する。ＣＰＵ２は、データ部において旧適合データを未使用領域のアドレスに書き込むと共に新適合データを旧適合データの元々のアドレスに書き込み、制御プログラムにおける適合データの参照先アドレスを旧適合データのアドレスから新適合データのアドレスに書き換える。
【００３７】
図９に示すように、アドレス「１００〜２９９」が制御プログラム、「３００〜３２９」が適合データのアドレス部、「３３０〜４００」が適合データのデータ部である場合について説明する。ＣＰＵ２は、アドレス「３３０〜３３９」に記憶されている旧適合データ「１０〜１９」を未使用領域のアドレス「３８０〜３８９」に書き込むと共に新適合データ「２０〜２９」を旧適合データの元々のアドレス「３３０〜３３９」に書き込む。ＣＰＵ２は、アドレス「３００」に記憶されている旧適合データ「１０〜１９」の旧参照先アドレス「３３０」を未使用領域のアドレス「３２０」に書き込むと共に旧適合データの新たな旧参照先アドレス「３８０」を元々のアドレス「３００」に書き込む。ＣＰＵ２は、制御プログラムにおけるアドレス「１００」に記憶されている参照先情報を書き換え、適合データの参照先アドレスを旧適合データのアドレス「３００」から新適合データのアドレス「３２０」に書き換える。
【００３８】
以上に説明したように本実施形態によれば、次に示す効果を得ることができる。
電子制御装置１において、フラッシュＲＯＭ９に３個の物理領域１６ａ〜１６ｃを用意し、３個の物理領域１６ａ〜１６ｃに対応して第１論理領域と第２論理領域と第３論理領域とを割り付け、制御プログラムの記憶用論理領域として割り付けた第１論理領域と、適合データの記憶用論理領域として割り付けた第２論理領域とを用いてエンジン１４を制御し、第３論理領域を作業用論理領域として割り付けるようにした。第１論理領域及び第２論理領域を用いてアプリプログラムを実行すると共に、第３論理領域を用いてリプロを行うことで、アプリプログラムの実行中にリプロを行うことができる。又、第３論理領域を更新ソフトェアのうちの制御プログラムと適合データとを選択的に書き込む共通の記憶領域とした。フラッシュＲＯＭ９のメモリ容量としてアプリプログラムに必要な容量の２倍分の容量を用意する必要がなくなる。
【００３９】
即ち、従来では、旧制御プログラムの記憶領域と、旧適合データの記憶領域と、新制御プログラムの記憶領域と、新適合データの記憶領域とを用意する必要があるが、本構成では、旧制御プログラムの記憶領域と、旧適合データの記憶領域と、新制御プログラムと新適合データとに共通する記憶領域とを用意すれば良く、メモリ容量を従来に対して４分の３程度に低減することができる。これにより、アプリプログラムの実行中にリプロを行うことができつつ、フラッシュＲＯＭ９のメモリ容量の増大によるコスト高を回避することができる。尚、制御プログラムの容量と適合データの容量との差分が小さいほど、制御プログラムと適合データとに共通する第３論理領域を効果的に用いることができる。
【００４０】
又、電子制御装置１において、制御プログラムを書き込んだ後に、エンジン１４の制御を開始したが、エンジン１４の制御が正常に終了されなかった場合には、第１論理領域と第３論理領域とを切り替え、第１論理領域と第３論理領域とを切り替えた後の第１論理領域と第２論理領域とを用いてエンジン１４の制御を再度開始するようにした。例えば書き込んだ制御プログラムと元々の適合データとの不整合等によりエンジン１４の制御が正常に終了されなかった場合でも、制御プログラムを書き込む前の状態に戻してエンジン１４の制御を再度開始することで、エンジン１４の制御を適切に正常に終了させることができる。これにより、書き込んだ制御プログラムが不良であったり、制御プログラムを書き込む際に不具合が発生したりしていても、制御プログラムを書き込む前の状態に戻すことで、機能不全に陥る事態を未然に回避することができる。
【００４１】
又、電子制御装置１において、適合データを書き込んだ後に、エンジン１４の制御を開始したが、エンジン１４の制御が正常に終了されなかった場合には、第２論理領域と第３論理領域とを切り替え、第２論理領域と第３論理領域とを切り替えた後の第１論理領域と第２論理領域とを用いてエンジン１４の制御を再度開始するようにした。例えば書き込んだ適合データと元々の制御プログラムとの不整合等によりエンジン１４の制御が正常に終了されなかった場合でも、適合データを書き込む前の状態に戻してエンジン１４の制御を再度開始することで、エンジン１４の制御を適切に正常に終了させることができる。これにより、書き込んだ適合データが不良であったり、適合データを書き込む際に不具合が発生したりしていても、適合データを書き込む前の状態に戻すことで、機能不全に陥る事態を未然に回避することができる。
【００４２】
又、電子制御装置１において、制御プログラムと適合データとの両方を書き込む場合に、データを記憶するデータ部において旧適合データを未使用領域のアドレスに書き込むと共に新適合データを旧適合データの元々のアドレスに書き込むようにした。制御プログラムと適合データとの両方の書き込み後に未使用領域を一部の領域に纏めることができ、未使用領域が断片化する事態を未然に回避することができる。更に、制御プログラムにおける適合データの参照先アドレスを旧適合データのアドレスから新適合データのアドレスに書き換えるようにした。適合データの参照先アドレスの記憶領域を旧適合データと新適合データとの両方に対して用意する必要がなくなり、メモリ容量の増大を回避することができる。
【００４３】
又、電子制御装置１において、エンジン１４の制御を開始したがエンジン１４の制御を正常に終了しなかった場合には、その際の制御プログラムと適合データとの組み合わせを特定可能なエラー情報をサーバ１１に送信するようにした。不具合が発生した制御プログラムと適合データとの組み合わせをサーバ１１で管理することができ、品質向上を図ることができる。
【００４４】
本開示は、実施例に準拠して記述されたが、当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【００４５】
自動車のエンジンを制御する電子制御装置に限らず、例えばトランスミッション等の別の機器を制御する電子制御装置に適用しても良い。又、車載の電子制御装置に限らず、車載以外の用途の電子制御装置に適用しても良い。
【符号の説明】
【００４６】
図面中、１は電子制御装置、２はＣＰＵ（演算部）、２ａは割り付け処理部、２ｂは制御処理部、２ｃは書き込み処理部、２ｄは切り替え処理部、９はフラッシュＲＯＭ（不揮発性メモリ）、１１はサーバ、１２は無線通信機、１３は更新ソフトウェア配信システム、１４はエンジン（制御対象）、１６ａは第１物理領域、１６ｂは第２物理領域、１６ｃは第３物理領域である。
【図１】
2019020897.tif 000003
【図２】
2019020897.tif 000004
【図３】
2019020897.tif 000005
【図４】
2019020897.tif 000006
【図５】
2019020897.tif 000007
【図６】
2019020897.tif 000008
【図７】
2019020897.tif 000009
【図８】
2019020897.tif 000010
【図９】
2019020897.tif 000011