(57)【要約】【課題】更新後のプログラムが正しく更新されたことを確認できる車両制御装置、方法およびプログラムを提供する。【解決手段】車両制御装置は、制御プログラムを記憶する第１記憶領域および制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、これらのプログラムを実行する実行部と、更新部分データを外部のサーバーから取得し、更新部分データが表わす更新後の部分のデータと、第１記憶領域に記憶された制御プログラムの更新対象以外の部分のデータとを、第２記憶領域に更新プログラムとして記憶させ、第１記憶領域に記憶された制御プログラムと、第２記憶領域に記憶された更新プログラムとの差分に基づいて、第２記憶領域に更新プログラムが正しく記憶されていると判定された場合、実行部による実行対象のプログラムを更新プログラムに変更する更新部とを備える。【選択図】図３
2019144671.tif 000002
【特許請求の範囲】
【請求項１】
車両の制御に用いられる制御プログラムを記憶する第１記憶領域および前記制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、
前記制御プログラムおよび前記更新プログラムを実行する実行部と、
前記制御プログラムの更新対象の部分における更新後の部分のデータを表す更新部分データを外部のサーバーから取得し、前記制御プログラムの更新処理を行う更新部とを備え、
前記更新部は、
前記更新部分データが表わす前記更新後の部分のデータを、前記第２記憶領域の第１部分に記憶させ、前記第１記憶領域に記憶された前記制御プログラムの前記更新対象以外の部分のデータを、前記第２記憶領域の前記第１部分以外の第２部分に記憶させることにより、前記第２記憶領域に前記更新プログラムを記憶させ、
前記第１記憶領域に記憶された前記制御プログラムと、前記第２記憶領域に記憶された前記更新プログラムとの差分を取得し、
少なくとも前記差分に基づいて、前記第２記憶領域に前記更新プログラムが正しく記憶されているか否か判定し、
前記第２記憶領域に前記更新プログラムが正しく記憶されていると判定された場合、前記実行部による実行対象のプログラムを前記更新プログラムに変更する、車両制御装置。
【請求項２】
前記更新部は、前記差分と、前記サーバーから取得した前記更新部分データが表わす更新後のデータとが一致する場合、前記更新プログラムが正しく記憶されていると判定する、請求項１に記載の車両制御装置。
【請求項３】
前記更新部は、前記差分が、前記更新部分データによる前記更新対象以外の部分のデータを含む場合、前記更新プログラムが正しく記憶されていないと判定し、前記第１記憶領域に記憶された前記制御プログラムの前記更新対象以外の部分のデータを、前記第２記憶領域の対応する位置に記憶させる処理を再実行する、請求項２に記載の車両制御装置。
【請求項４】
前記更新部は、前記差分が、前記更新部分データによる前記更新対象の部分において、前記更新後のデータの一部または全部と一致しない場合、前記更新プログラムが正しく記憶されていないと判定し、前記更新部分データが表わす前記更新後のデータを前記第２記憶領域の対応する位置に記憶させる処理を再実行する、請求項２または３に記載の車両制御装置。
【請求項５】
前記更新部は、前記差分が、前記更新部分データによる前記更新対象の部分において、前記更新後のデータの一部または全部と一致しない場合、前記更新プログラムが正しく記憶されていないと判定し、前記更新部分データが表わす前記更新後のデータのうち、前記差分と一致しない部分を前記第２記憶領域の対応する位置に記憶させる処理を実行する、請求項４に記載の車両制御装置。
【請求項６】
前記更新部は、前記サーバーに照合を行い、前記差分と、前記サーバーが保持する前記更新部分データが表わす更新後のデータとが一致する場合、更新後の前記プログラムが正しく記憶されていると判定する、請求項１に記載の車両制御装置。
【請求項７】
前記更新部は、前記差分が、前記サーバーが保持する前記更新部分データによる前記更新対象以外の部分のデータを含む場合、前記更新プログラムが正しく記憶されていないと判定し、前記第１記憶領域に記憶された前記制御プログラムの前記更新対象以外の部分のデータを、前記第２記憶領域の対応する位置に記憶させる処理を再実行する、請求項６に記載の車両制御装置。
【請求項８】
前記更新部は、前記差分が、前記サーバーが保持する前記更新部分データによる前記更新対象の部分において、前記更新後のデータの一部または全部と一致しない場合、前記更新プログラムが正しく記憶されていないと判定し、前記更新部分データを前記サーバーから再度取得し、取得した前記更新部分データが表わす前記更新後のデータを前記第２記憶領域の対応する位置に記憶させる処理を再実行する、請求項６または７に記載の車両制御装置。
【請求項９】
前記更新部は、前記差分が、前記サーバーが保持する前記更新部分データによる前記更新対象の部分において、前記更新後のデータの一部または全部と一致しない場合、前記更新プログラムが正しく記憶されていないと判定し、前記サーバーが保持する前記更新部分データが表わす前記更新後のデータのうち、前記差分と一致しない部分を、前記サーバーから再度取得し、取得した前記一致しない部分を前記第２記憶領域の対応する位置に記憶させる処理を実行する、請求項８に記載の車両制御装置。
【請求項１０】
車両の制御に用いられる制御プログラムを記憶する第１記憶領域および前記制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、
前記制御プログラムおよび前記更新プログラムを実行する実行部と、
前記制御プログラムの更新対象の部分における更新後の部分のデータを表す更新部分データを外部のサーバーから取得し、前記制御プログラムの更新処理を行う更新部とを備える車両制御装置の更新部が実行するプログラムの更新方法であって、
前記更新部分データが表わす、前記更新後のデータを、前記第２記憶領域の第１部分に記憶させ、前記第１記憶領域に記憶された前記制御プログラムの前記更新対象以外の部分のデータを、前記第２記憶領域の前記第１部分以外の第２部分に記憶させることにより、前記第２記憶領域に前記更新プログラムを記憶させるステップと、
前記第１記憶領域に記憶された前記制御プログラムと、前記第２記憶領域に記憶された前記更新プログラムとの差分を取得するステップと、
少なくとも前記差分に基づいて、前記第２記憶領域に前記更新プログラムが正しく記憶されているか否か判定するステップと、
前記第２記憶領域に前記更新プログラムが正しく記憶されていると判定された場合、前記実行部による実行対象のプログラムを前記更新プログラムに変更するステップとを含む、プログラムの更新方法。
【請求項１１】
車両の制御に用いられる制御プログラムを記憶する第１記憶領域および前記制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、
前記制御プログラムおよび前記更新プログラムを実行する実行部と、
前記制御プログラムの更新対象の部分における更新後の部分のデータを表す更新部分データを外部のサーバーから取得し、前記制御プログラムの更新処理を行う更新部とを備える車両制御装置の更新部に実行させる、プログラム更新のためのプログラムであって、
前記更新部分データが表わす、前記更新後の部分のデータを、前記第２記憶領域の第１部分に記憶させ、前記第１記憶領域に記憶された前記制御プログラムの前記更新対象以外の部分のデータを、前記第２記憶領域の前記第１部分以外の第２部分に記憶させることにより、前記第２記憶領域に前記更新プログラムを記憶させるステップと、
前記第１記憶領域に記憶された前記制御プログラムと、前記第２記憶領域に記憶された前記更新プログラムとの差分を取得するステップと、
少なくとも前記差分に基づいて、前記第２記憶領域に前記更新プログラムが正しく記憶されているか否か判定するステップと、
前記第２記憶領域に前記更新プログラムが正しく記憶されていると判定された場合、前記実行部による実行対象のプログラムを前記更新プログラムに変更するステップとを含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両等に搭載される車両制御装置およびそのプログラムの更新方法およびプログラム更新のためのプログラムに関する。
【背景技術】
【０００２】
車両には、ＥＣＵ（Electronic Control Unit）と呼ばれる、記憶部および制御部（プロセッサ）を備えた複数の制御装置が搭載されており、それぞれの制御部は、記憶部に格納されたプログラムを実行して、各種の車両制御のための処理を行う。
【０００３】
このようなプログラムは、機能の改良や追加のため更新されることがある。特許文献１は、プログラム更新用データをネットワーク経由で携帯端末装置にダウンロードして、携帯端末装置から車両にデータを提供してプログラムを書き換えることで更新を行うシステムを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−６０４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プログラムの更新が正しく行われず、更新後のプログラムとして生成されたデータが、一部であっても更新前のデータのままであったり、正しい更新版のデータと異なっていたりすると、そのプログラムを実行するＥＣＵが異常な動作を行うおそれがある。
【０００６】
本発明は、上記課題に鑑み、プログラムの更新の際、プログラムが正しく更新後のデータに変更されたことを確認できる車両制御装置、プログラム更新方法およびプログラム更新のためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一局面は、車両の制御に用いられる制御プログラムを記憶する第１記憶領域および制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、前記制御プログラムおよび前記更新プログラムを実行する実行部と、制御プログラムの更新対象の部分における更新後の部分のデータを表す更新部分データを外部のサーバーから取得し、制御プログラムの更新処理を行う更新部とを備え、更新部は、更新部分データが表わす更新後の部分のデータを、第２記憶領域の第１部分に記憶させ、第１記憶領域に記憶された制御プログラムの更新対象以外の部分のデータを、第２記憶領域の前記第１部分以外の第２部分に記憶させることにより、第２記憶領域に更新プログラムを記憶させ、第１記憶領域に記憶された制御プログラムと、第２記憶領域に記憶された更新プログラムとの差分を取得し、少なくとも差分に基づいて、第２記憶領域に更新プログラムが正しく記憶されているか否か判定し、第２記憶領域に更新プログラムが正しく記憶されていると判定された場合、実行部による実行対象のプログラムを更新プログラムに変更する、車両制御装置である。
【０００８】
これにより、更新プログラムが正しく第２記憶領域に記憶されたことを確認したのち、実行対象のプログラムを更新プログラムに変更するので、正しくないプログラムを実行してＥＣＵが異常な動作を行うことを抑制できる。
【０００９】
また、更新部は、差分と、サーバーから取得した更新部分データが表わす更新後のデータとが一致する場合、更新プログラムが正しく記憶されていると判定してもよい。
【００１０】
このように、更新部分データを比較対象とすることにより、更新プログラムの変更部分が、更新内容と一致しているか確認できる。
【００１１】
また、更新部は、差分が、更新部分データによる更新対象以外の部分のデータを含む場合、更新プログラムが正しく記憶されていないと判定し、第１記憶領域に記憶された制御プログラムの更新対象以外の部分のデータを、第２記憶領域の対応する位置に記憶させる処理を再実行してもよい。
【００１２】
これにより、更新プログラムの更新対象外の部分のデータが正しく記憶されていないことを検知でき、また、処理を再実行して、データを修正することができる。
【００１３】
また、更新部は、差分が、更新部分データによる更新対象の部分において、更新後のデータの一部または全部と一致しない場合、更新プログラムが正しく記憶されていないと判定し、更新部分データが表わす更新後のデータを第２記憶領域の対応する位置に記憶させる処理を再実行してもよい。
【００１４】
また、更新部は、差分が、更新部分データによる更新対象の部分において、更新後のデータの一部または全部と一致しない場合、更新プログラムが正しく記憶されていないと判定し、更新部分データが表わす更新後のデータのうち、差分と一致しない部分を第２記憶領域の対応する位置に記憶させる処理を実行してもよい。
【００１５】
これらにより、更新プログラムの更新対象の部分のデータが正しく記憶されていないことを検知でき、また、処理を再実行して、データを修正することができる。
【００１６】
また、更新部は、サーバーに照合を行い、差分と、サーバーが保持する更新部分データが表わす更新後のデータとが一致する場合、更新後のプログラムが正しく記憶されていると判定してもよい。
【００１７】
このように、サーバーが保持する更新部分データを比較対象とすることにより、更新部分データの通信エラー等によるデータ誤りも検出することができ、更新プログラムの変更部分が、更新内容と一致していることを、より確実に確認できる。
【００１８】
また、更新部は、差分が、サーバーが保持する更新部分データによる更新対象以外の部分のデータを含む場合、更新プログラムが正しく記憶されていないと判定し、第１記憶領域に記憶された制御プログラムの更新対象以外の部分のデータを、第２記憶領域の対応する位置に記憶させる処理を再実行してもよい。
【００１９】
これにより、サーバーが保持する更新部分データを比較対象とすることにより、更新部分データの通信エラー等によるデータ誤りも検出することができ、更新プログラムの更新対象外の部分のデータが正しく記憶されていないことをより確実に検知でき、また、処理を再実行して、データを修正することができる。
【００２０】
また、更新部は、差分が、サーバーが保持する更新部分データによる更新対象の部分において、更新後のデータの一部または全部と一致しない場合、更新プログラムが正しく記憶されていないと判定し、更新部分データをサーバーから再度取得し、取得した更新部分データが表わす更新後のデータを第２記憶領域の対応する位置に記憶させる処理を再実行してもよい。
【００２１】
また、更新部は、差分が、サーバーが保持する更新部分データによる更新対象の部分において、更新後のデータの一部または全部と一致しない場合、更新プログラムが正しく記憶されていないと判定し、サーバーが保持する更新部分データが表わす更新後のデータのうち、差分と一致しない部分を、サーバーから再度取得し、取得した一致しない部分を第２記憶領域の対応する位置に記憶させる処理を実行してもよい。
【００２２】
これらにより、サーバーが保持する更新部分データを比較対象とすることにより、更新部分データの通信エラー等によるデータ誤りも検出することができ、更新プログラムの更新対象の部分のデータが正しく記憶されていないことを、より確実に検知でき、また、処理を再実行して、データを修正することができる。
【００２３】
本発明の他の局面は、車両の制御に用いられる制御プログラムを記憶する第１記憶領域および制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、制御プログラムおよび更新プログラムを実行する実行部と、制御プログラムの更新対象の部分における更新後の部分のデータを表す更新部分データを外部のサーバーから取得し、制御プログラムの更新処理を行う更新部とを備える車両制御装置の更新部が実行するプログラムの更新方法であって、更新部分データが表わす、更新後のデータを、第２記憶領域の第１部分に記憶させ、第１記憶領域に記憶された制御プログラムの更新対象以外の部分のデータを、第２記憶領域の第１部分以外の第２部分に記憶させることにより、第２記憶領域に更新プログラムを記憶させるステップと、第１記憶領域に記憶された制御プログラムと、第２記憶領域に記憶された更新プログラムとの差分を取得するステップと、少なくとも差分に基づいて、第２記憶領域に更新プログラムが正しく記憶されているか否か判定するステップと、第２記憶領域に更新プログラムが正しく記憶されていると判定された場合、実行部による実行対象のプログラムを更新プログラムに変更するステップとを含む、プログラムの更新方法である。
【００２４】
本発明のさらに他の局面は、車両の制御に用いられる制御プログラムを記憶する第１記憶領域および制御プログラムの更新版である更新プログラムを記憶する第２記憶領域を含む記憶部と、制御プログラムおよび更新プログラムを実行する実行部と、制御プログラムの更新対象の部分における更新後の部分のデータを表す更新部分データを外部のサーバーから取得し、制御プログラムの更新処理を行う更新部とを備える車両制御装置の更新部に実行させる、プログラム更新のためのプログラムであって、更新部分データが表わす、更新後の部分のデータを、第２記憶領域の第１部分に記憶させ、第１記憶領域に記憶された制御プログラムの更新対象以外の部分のデータを、第２記憶領域の第１部分以外の第２部分に記憶させることにより、第２記憶領域に更新プログラムを記憶させるステップと、第１記憶領域に記憶された制御プログラムと、第２記憶領域に記憶された更新プログラムとの差分を取得するステップと、少なくとも差分に基づいて、第２記憶領域に更新プログラムが正しく記憶されているか否か判定するステップと、第２記憶領域に更新プログラムが正しく記憶されていると判定された場合、実行部による実行対象のプログラムを更新プログラムに変更するステップとを含む、プログラムである。
【００２５】
これらにより、更新プログラムが正しく第２記憶領域に記憶されたことを確認したのち、実行対象のプログラムを更新プログラムに変更するので、正しくないプログラムを実行してＥＣＵが異常な動作を行うことを抑制できる。
【発明の効果】
【００２６】
本発明によれば、上述のように、プログラムの更新の際に、更新プログラムが正しく記憶されたことを確認したのち、実行対象のプログラムを更新プログラムに変更するので、正しくないプログラムを実行してＥＣＵが異常な動作を行うことを抑制できる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態に係る車両制御装置の機能ブロック図
【図２】本発明の一実施形態に係る車両制御装置の記憶部の模式図
【図３】本発明の一実施形態に係る車両制御装置の処理を示すフローチャート
【図４】本発明の一実施形態に係る車両制御装置の記憶部の模式図
【図５】本発明の一実施形態に係る車両制御装置の記憶部の模式図
【図６】本発明の一実施形態に係る車両制御装置の記憶部の模式図
【図７】本発明の一実施形態に係る車両制御装置の記憶部の模式図
【発明を実施するための形態】
【００２８】
（概要）
本発明に係る車両制御装置は、プログラムの更新の際、更新後のプログラムのデータに誤りがなく正しいことを確認し、そののちに実行対象のプログラムを更新前のプログラムから更新後のプログラムに変更する。そのため、データに誤りがあるプログラムを実行することがなく、異常な動作が行われることを抑制することができる。
【００２９】
（実施形態）
以下、本発明の一実施形態について、図面を参照しながら詳細に説明する。
【００３０】
＜構成＞
図１に、本実施形態における車両制御装置１００の機能ブロック図を示す。車両制御装置１００は一例として、車両の自動運転制御を行う自動運転ＥＣＵであり、各種センサからの入力に基づいて、ステアリング、エンジン、ブレーキ等を制御して車両の運転を行う。車両制御装置１００は、プロセッサである実行部１１と、例えばＦｌａｓｈＲＯＭのような不揮発性のメモリである記憶部１２と更新部２０とを含む。記憶部１２は第１記憶領域１３と第２記憶領域１４とを有する。実行部１１は、第１記憶領域１３に記憶されている現在の実行対象のプログラムである制御プログラムを実行する。制御プログラムの実行出力により、上述の自動運転制御が行われる。なお、車両制御装置１００は、揮発性のＲＡＭを含んでもよい。
【００３１】
更新部２０は、車両に搭載されたＯＴＡ受信機等を介して車外のサーバーとネットワーク経由で通信することができ、サーバーからプログラム更新に用いるデータを取得する。更新部２０は、データを取得すると、これに基づいて、制御プログラムの更新版である更新プログラムを記憶部１２の第２記憶領域１４に記憶させる。なお、更新部２０の機能は、実行部１１が実行してもよい。
【００３２】
図２に、制御プログラムが第１記憶領域１３に記憶されており、更新プログラムが第２記憶領域１４に記憶されていない場合の、記憶部１２を模式的に示す。各図において、本実施形態に係る各データが記憶されている箇所をハッチングで示す。第１記憶領域１３および第２記憶領域１４は、図示する例では、説明の便宜のため、ブロック１〜６までの６個のブロックに区画する。
【００３３】
＜処理＞
以下に、本実施形態に係るプログラム更新処理の一例を説明する。まず、図３は、更新部２０が行う更新処理を説明するフローチャートである。本処理は例えば、更新部２０が、車外のサーバーにアクセスしたときに開始される。
【００３４】
（ステップＳ１０１）：更新部２０は、車外のサーバーから更新部分データを取得する。更新部分データは、制御プログラムの更新対象部分における更新後の部分のデータを表すデータである。更新部分データは、一例として、更新対象部分を指定する情報と更新後のデータとを含む。
【００３５】
（ステップＳ１０２）：更新部２０は、更新部分データに基づいて、更新後のデータを生成し、第２記憶領域１４の更新対象部分（第１部分）に記憶させる。図４に、更新後のデータを記憶した状態における記憶部１２を示す。図示する例では、更新部分データが表わす更新部分がブロック２、５であり、更新部２０は、更新後のプログラムのデータを、第２記憶領域１４の第２ブロック２、５に記憶させる。
【００３６】
（ステップＳ１０３）：更新部２０は、第１記憶領域１３に記憶されている制御プログラムのうち、更新対象以外の部分のデータを、第２記憶領域１４の対応する部分（第２部分）にコピーして記憶させる。図５に、更新対象以外の部分のデータを記憶した状態における記憶部１２を示す。図示する例では、更新対象以外の部分はブロック１、３、４、６であり、更新部２０は、第１記憶領域１３に記憶されている制御プログラムの、ブロック１、３、４、６のデータを、第２記憶領域１４のブロック１、３、４、６にコピーして記憶させる。
【００３７】
（ステップＳ１０４）：更新部２０は、第１記憶領域１３に記憶された制御プログラムと、第２記憶領域１４に記憶された更新プログラムとを比較し、差分を取得する。図示する例では、図５に示すように、ステップＳ１０１〜Ｓ１０３の処理において第２記憶領域１４に記憶させたデータに誤りがなければ差分はブロック２、５のデータとなる。以下のステップでは、データに誤りがないことを確認したり、何らかの理由により、データに誤りが発生した場合には、誤りを検知してデータを修正したりする。
【００３８】
（ステップＳ１０５）：更新部２０は、差分と更新部分データとを比較する。更新部分データを比較対象とすることにより、更新プログラムの変更部分が、更新内容と一致しているか確実に確認できる。差分が、更新部分データが表わす更新後のデータと一致しない場合、更新部２０は、第２記憶領域１４に記憶された更新プログラムが正しく記憶されていないと判定し、ステップＳ１０６に進む。差分が、更新部分データが表わす更新後のデータと一致する場合、更新部２０は、第２記憶領域１４に記憶された更新プログラムが正しく記憶されていると判定し、ステップＳ１０９に進む。なお、比較対象となる更新部分データは、ステップＳ１０１において取得したものを用いてもよく、サーバーが保持している更新部分データを照合してもよい。この場合、サーバーが保持している更新部分データを照合する場合、差分をサーバーに送信し、判定結果を受信してもよい。これにより、更新部２０が最初に取得した更新部分データに、もし通信エラー等によるデータの誤りがあった場合にもこれを検知して修正できる。
【００３９】
（ステップＳ１０６）：更新部２０は、差分が、更新部分データが表わす更新後のデータとの不一致部分として更新対象部分以外の部分を含むかどうかを確認する。差分が、更新対象以外の部分のデータを含む場合、更新部２０は、ステップＳ１０３で第１記憶領域１３から制御プログラムを第２記憶領域１４にコピーする処理においてデータが正しくコピーされなかったと判定し、ステップＳ１０７に進む。差分が、更新対象以外の部分のデータを含まない場合は、差分が更新対象部分において、更新部分データが表わす更新後のデータとの不一致部分を有するため、更新部２０は、ステップＳ１０２で、更新後のデータを生成する処理または更新後のデータを第２記憶領域１４の更新対象部分に記憶させる処理においてデータが正しく生成あるいは記憶されなかったと判定し、ステップＳ１０８に進む。
【００４０】
（ステップＳ１０７）：更新部２０は、ステップＳ１０３と同様の処理を行って、第１記憶領域１３に記憶されている制御プログラムのうち、更新対象以外の部分のデータを、第２記憶領域１４の対応する位置にコピーして記憶させる。図６に、本ステップ実行前後の、記憶部１２の状態の一例を示す。図示する例では、差分はブロック１、２、３、５であり、差分のうち、更新対象以外の部分のデータは、ブロック１、３のデータであり、少なくともこの部分のデータに誤りがある。更新部２０は、第１記憶領域１３に記憶されている制御プログラムの、更新対象以外の部分のデータであるブロック１、３、４、６のデータを、第２記憶領域１４のブロック１、３、４、６にコピーして記憶させる。なお、更新部２０は、処理量低減のため、更新対象部分以外の部分のうち、差分に含まれる部分のデータのみを第１記憶領域１３から第２記憶領域１４にコピーしてもよい。図示する例では、差分が存在するブロック１、３のデータのみを第１記憶領域１３から第２記憶領域１４にコピーしてもよい。本ステップの実行の後、ステップＳ１０５に進む。
【００４１】
（ステップＳ１０８）：更新部２０は、ステップＳ１０２と同様の処理を行って、更新部分データに基づいて、更新後のデータを生成し、第２記憶領域１４の更新対象部分に記憶させる。図７に、本ステップ実行前後の、記憶部１２の状態の一例を示す。図示する例では、差分は更新対象のブロック２、５であり、更新部分データが表わす更新後のデータと一致しない部分はブロック２であり、この部分にデータの誤りがある。更新部２０は、更新部分データに基づいて、更新後のデータであるブロック２、５のデータを生成し、第２記憶領域１４のブロック２、５に記憶させる。また、更新部２０は、処理量低減のため、更新部分データのうち、差分と一致しない部分のみを新たに生成して第２記憶領域１４に記憶させてもよい。図示する例では、ブロック２のデータのみを生成して第２記憶領域１４に記憶させてもよい。なお、更新部分データは、サーバーが保持している更新部分データの全部または、差分と一致しない部分を表す一部を再度取得し、再度取得した更新部分データに基づいて更新後のデータを生成してもよい。一部のみを再度取得する場合は通信量を低減することができる。更新部分データを再度取得することで、更新部２０が最初に取得した更新部分データに、通信エラー等によるデータの誤りがあった場合にもこれを検知、修正できる。
【００４２】
以上のステップＳ１０６〜Ｓ１０８の処理を１回以上繰り返すことにより、差分と更新部分データが表わす更新後のデータとの不一致が解消されると、その後のステップＳ１０５の処理において、差分と更新部分データが表わす更新後のデータとが一致するので、ステップＳ１０９に進むと判定される。
【００４３】
（ステップＳ１０９）：更新部２０は、実行部１１の実行対象のプログラムを第１記憶領域１３に記憶された制御プログラムから、第２記憶領域１４に記憶された更新プログラムに変更する。この変更は、例えば、実行部１１がプログラムの読み出し先として参照する、記憶部１２等に設けられた所定の記憶領域を、第１記憶領域１３から第２記憶領域１４に、更新部２０が書き替えることによって実行できる。これによって実行部１１は次回の起動時等のプログラム実行開始時に更新プログラムを実行するようになる。以上で処理を終了する。なお、第１記憶領域１３は記憶された更新前の制御プログラムは、消去してもよい。また、第１記憶領域１３は、次回の更新プログラムの記憶領域として用いることができる。この場合、更新部２０は、更新プログラムが正しく更新できたことを確認できた場合、実行部１１の実行対象のプログラムを第２記憶領域１４に記憶されたプログラムから、第１記憶領域１３に記憶されたプログラムに変更する。
【００４４】
＜効果＞
以上の実施形態に係る更新処理においては、更新部が更新プログラムを第２記憶領域に記憶させる処理において、更新プログラムが正しく第２記憶領域に記憶されたことを確認したのち、実行部による実行対象を更新プログラムに変更する。そのため、正しくないプログラムを実行してＥＣＵが異常な動作を行うことを抑制できる。また、何らかの理由でデータに誤りが発生し、更新プログラムが正しく第２記憶領域に記憶されていない場合、処理の少なくとも一部を再実行して、更新プログラムが正しく第２記憶領域１４に記憶されるようデータを修正することができる。
【００４５】
なお、本発明は、車両制御装置として捉えるだけでなく、車両制御装置のプロセッサが実行するプログラムの更新方法、およびプログラム更新用のプログラムとして捉えることも可能である。
【産業上の利用可能性】
【００４６】
本発明は、自動運転装置等の車載機器を備えた車両等に有用である。
【符号の説明】
【００４７】
１１    実行部
１２    記憶部
１３    第１記憶領域
１４    第２記憶領域
２０    更新部
１００    車両制御装置
【図１】
2019144671.tif 000003
【図２】
2019144671.tif 000004
【図３】
2019144671.tif 000005
【図４】
2019144671.tif 000006
【図５】
2019144671.tif 000007
【図６】
2019144671.tif 000008
【図７】
2019144671.tif 000009