(57)【要約】      （修正有）【課題】複数のＥＣＵの制御情報を更新する場合に、ＥＣＵ毎の更新能力やユースケースなどの様々な状況に柔軟に対応できるソフト更新装置を提供する。【解決手段】ソフト更新装置は、サーバおよび複数の制御装置と接続しデータの送受信を行い、複数の制御装置毎に適用される更新データと、制御装置毎に更新データを適用するために参照される更新制御情報と、をサーバから受信する第１の通信部と、複数の制御装置毎に、それぞれ適用される更新データを送信する第２の通信部と、複数の制御装置毎の更新制御情報に基づいて更新データを適用するように、第２の通信部を介して、複数の制御装置を制御する更新制御部と、を備える。【選択図】図１０
2016170740.tif 000002
【特許請求の範囲】
【請求項１】
サーバおよび複数の制御装置と接続しデータの送受信を行うソフト更新装置であって、
前記複数の制御装置毎に、更新データと、前記更新データを制御装置に適用するための適用方法を識別するための識別情報と、を含む更新制御情報を前記サーバから受信する第１の通信部と、
前記複数の制御装置毎に、適用される前記更新データを送信する第２の通信部と、
前記識別情報に基づいて前記更新データを適用するように、前記第２の通信部を介して、前記複数の制御装置を制御する更新制御部と、
を備えることを特徴とするソフト更新装置。
【請求項２】
請求項１に記載のソフト更新装置であって、
前記識別情報により識別される適用方法は、前記複数の制御装置の全更新、差分更新、または圧縮解凍更新のいずれかであることを特徴とするソフト更新装置。
【請求項３】
請求項１に記載のソフト更新装置であって、
前記識別情報により識別される適用方法は、前記制御装置のソフトウェアを格納する不揮発メモリの論理ブロック単位で指定されていることを特徴とするソフト更新装置。
【請求項４】
請求項２に記載のソフト更新装置であって、
前記更新制御部は、前記識別情報が差分更新を示す場合に、前記更新データが適用される制御装置に前記更新データを転送後、当該制御装置の不揮発メモリの消去指示を行うことを特徴とするソフト更新装置。
【請求項５】
請求項２に記載のソフト更新装置であって、
前記更新制御部は、前記識別情報が全更新を示す場合に、前記更新データが適用される制御装置の不揮発メモリの消去指示後、当該制御装置に前記更新データを転送することを特徴とするソフト更新装置。
【請求項６】
請求項１に記載のソフト更新装置であって、
前記更新制御情報は、前記更新データを前記制御装置に適用するのに必要な消費電力情報を含み、
前記更新制御部は、前記第２の通信部を介して取得した車両の電池残量と前記消費電力情報の比較結果に基づいて前記複数の制御装置を制御することを特徴とするソフト更新装置。
【請求項７】
請求項１に記載のソフト更新装置であって、
前記更新制御情報には、前記複数の制御装置に共通して適用される更新制御情報を含み、
前記更新制御部は、前記共通して適用される更新制御情報に基づいて前記複数の制御装置を制御することを特徴とするソフト更新装置
【請求項８】
請求項７に記載のソフト更新装置であって、
前記更新制御情報には、更新実行にあたってユーザの同意取得が必要かどうかを示す識別情報を含み、
前記更新制御部は、前記ユーザの同意取得が必要かどうかを示す識別情報に基づいてユーザに開始確認画面を表示するかどうかを決定することを特徴とするソフト更新装置
【請求項９】
請求項１に記載のソフト更新装置であって、
前記更新制御情報には、前記制御装置を車内ネットワーク上で一意に識別するための識別情報を含み、
前記更新制御部は、前記制御装置を車内ネットワーク上で一意に識別するための前記識別情報に基づいて前記制御装置とデータを送受信することを特徴とするソフト更新装置。
【請求項１０】
請求項１に記載のソフト更新装置であって、
前記更新制御情報には、更新処理毎に更新処理を開始可能な開始条件を含み、
前記更新制御部は、前記第２の通信部を介して取得した車両の状態と前記開始条件の比較結果に基づいて前記複数の制御装置を制御することを特徴とするソフト更新装置。
【請求項１１】
複数の制御装置とデータの送受信を行うソフト更新方法であって、
前記複数の制御装置毎に、更新データと、前記更新データを制御装置に適用するための適用方法を識別するための識別情報と、を含む更新制御情報をサーバから受信する第１の通信ステップと、
前記複数の制御装置毎に、適用される前記更新データを送信する第２の通信ステップと、
前記識別情報に基づいて前記更新データを適用するように、前記複数の制御装置を制御する更新制御ステップと、
を有することを特徴とするソフト更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多様なＥＣＵにより構成され、また構成が随時変更される可能性のある自動車システムにおいて、効果的にＥＣＵの制御ソフトを更新する技術に関する。
【背景技術】
【０００２】
近年、運転支援機能や自動運転技術の進展により、自動車用の電子制御装置（ＥＣＵ：Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）に搭載されるソフトウェアの規模が増大している。また、それに伴ってソフトウェア不具合に起因するリコールも回数・１回あたりに対応が必要な台数規模ともに増加している。
【０００３】
一方で、通信ネットワークの進展に伴って自動車が無線でセンタシステム等とつながるコネクッテッドカーも普及の兆しを見せている。
【０００４】
このような状況のなか、従来携帯電話やテレビに使われていた無線での遠隔ソフト更新技術を自動車に適用し、自動車のＥＣＵソフトウェアを遠隔で更新する自動車向け遠隔ソフト更新技術へのニーズが高まっている。
【０００５】
例えば、特許文献１には、遠隔で携帯端末のソフトを更新するＯＴＡ（Ｏｖｅｒ  ｔｈｅ  Ａｉｒ）ソフト更新システムが開示されている。
【０００６】
特許文献１では、更新前後のプログラム間の差分を抽出して、これを適用することで更新処理の効率向上を図る技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−０６９１３１
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、一つの車両内に複数の多様な特性を持つＥＣＵが存在する自動車システムにおいては、すべてのＥＣＵが差分技術に対応できるわけではないことや、更新状況や更新内容によって、差分を送信したほうがよいか、通常の更新を適用したほうがよいかどうかが異なる場合があり、複数のＥＣＵソフトの夫々の更新方法が異なることには言及されていない特許文献１に開示の技術では、このような場合のＥＣＵソフトの更新をすることができない。
【課題を解決するための手段】
【０００９】
上記課題を解決するための代表的な本発明のソフト更新装置は、サーバおよび複数の制御装置と接続しデータの送受信を行い、複数の制御装置毎に適用される更新データと、制御装置毎に更新データを適用するために参照される更新制御情報と、をサーバから受信する第１の通信部と、複数の制御装置毎に、それぞれ適用される更新データを送信する第２の通信部と、複数の制御装置毎の更新制御情報に基づいて更新データを適用するように、第２の通信部を介して、複数の制御装置を制御する更新制御部と、を備えるものである。
【発明の効果】
【００１０】
上記の手段によれば、夫々異なる制御ソフト更新処理が必要な複数のＥＣＵから構成される自動車システムであっても、容易に夫々のＥＣＵの制御ソフト更新を利用シーンに応じた適切な方法で実施することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】システムの構成例を示すブロック図である
【図２（ａ）】ソフト更新装置のハードウェア構成例を示すブロック図である
【図２（ｂ）】ソフト更新装置のソフトウェア構成例を示すブロック図である
【図３（ａ）】ＥＣＵ１のハードウェア構成例を示すブロック図である
【図３（ｂ）】ＥＣＵ１のソフトウェア構成例を示すブロック図である
【図４】ＥＣＵ２の構成例を示すブロック図である
【図５】ソフト更新処理の１例を示すシーケンス図である
【図６】ソフト更新装置１１がサーバ２から取得する更新情報５の構成例
【図７】ＥＣＵ更新情報の構成例である
【図８（ａ）】前処理の１例を示すシーケンス図である
【図８（ｂ）】前処理の１例を示すシーケンス図である
【図９（ａ）】ネットワークＩＤ取得処理の１例を示すシーケンス図である
【図９（ｂ）】ソフトＶｅｒ取得処理の１例を示すシーケンス図である
【図９（ｃ）】車両状態取得処理の１例を示すシーケンス図である
【図１０】ソフト更新装置における適用処理の１例を示すフローチャート図である
【図１１（ａ）】全更新適用処理の１例を示すシーケンス図である
【図１１（ｂ）】圧縮更新適用処理の１例を示すシーケンス図である
【図１１（ｃ）】差分更新適用処理の１例を示すシーケンス図である
【図１２】後処理の１例を示すシーケンス図である
【図１３】ＨＭＩの画面の一例である
【図１４（ａ）】ＥＣＵ３のハードウェア構成例を示すブロック図である
【図１４（ｂ）】ＥＣＵ３のソフトウェア構成例を示すブロック図である
【図１５】ＥＣＵ１更新情報およびＥＣＵ３更新情報の構成例である
【図１６（ａ）】ＥＣＵ１更新情報の前処理情報の構成例である
【図１６（ｂ）】車両がソフト更新を開始できない状態にある場合の理由と対応方法を提示する画面の一例である
【図１７】ＥＣＵ１更新情報の構成例である
【図１８（ａ）】ＥＣＵ１の更新適用処理の１例を示すフローチャート図である
【図１８（ｂ）】ＥＣＵ１のデータ転送要求受信処理の１例を示すフローチャート図である
【図１８（ｃ）】ＥＣＵ１の更新データ受信処理の１例を示すフローチャート図である
【図１８（ｄ）】ＥＣＵ１のデータ転送完了要求受信処理の１例を示すフローチャート図である
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。なお、図面において、同一符号は、同一または相当部分を示す。また、本発明は、図示例に限定されるものではない。
【実施例１】
【００１３】
本実施例は、本発明における車両のＥＣＵのプログラムの更新方法について説明する。以降では、プログラムを更新する場合について説明するが、本技術はパラメータやデータなど、プログラムを含むＥＣＵの制御に必要な制御情報全般に適用可能である。
【００１４】
＜システム構成＞
図１は、本実施例のソフト更新システムの構成例である。
【００１５】
本実施例のソフト更新システムは車両１、サーバ２、アクセスネットワークや拠点をつなぐインターネット３、通信サービスプロバイダが提供するアクセスネットワーク４から構成される。
【００１６】
車両１は、低速車内ネットワーク１０、高速車内ネットワーク１７、ソフト更新装置１１、ＥＣＵ１２、１６、１８、Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ（ＨＭＩ）１３、電源管理ＥＣＵ１４および蓄電池１５から構成される。
【００１７】
ソフト更新装置１１は、自機器および車内ネットワークを介して接続されたＥＣＵのプログラムの更新を行う。
【００１８】
ＥＣＵ１２、１６は、低速車内ネットワーク１０に接続されており、車両が走行等の機能を実現するために必要とする制御を行う。
【００１９】
ＥＣＵ１８は、高速車内ネットワーク１７に接続されており、車両が走行等の機能を実現するために必要とする制御を行う。
【００２０】
ＨＭＩ１３はユーザへの情報提示やユーザからの入力を受け付ける。
【００２１】
電源管理ＥＣＵ１４は蓄電池１５の状態を管理する。
【００２２】
また、図１では図示しないが、ソフト更新装置１１やＥＣＵ１２などの車両内の各構成要素は電力線で蓄電池に接続され、電力供給を受けているものとする。
【００２３】
本構成において、プログラム更新に必要な更新情報５がサーバ２からソフト更新装置１１経由でＥＣＵに配布され、新たなプログラムがＥＣＵに適用される。
【００２４】
本実施例では、インターネット３、アクセスネットワーク４においては、ネットワークプロトコルとしてＩｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ（ＩＰ）を使用し、上位のトランスポートプロトコルにはＵｓｅｒ Ｄａｔａｇｒａｍ Ｐｒｏｔｏｃｏｌ（ＵＤＰ）やＴｒａｎｓｍｉｓｓｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ（ＴＣＰ）を用いる。なお、ＩＰにはバージョンの違いとしてＩＰｖ４とＩＰｖ６が有るが、本実施例は、そのどちらかに限定される物ではない。
【００２５】
図２（ａ）は、ソフト更新装置１１のハードウェア構成を示すブロック図である。
ソフト更新装置１１は、制御部１１０１、記憶部１１０２、時刻管理部１１０４、ＷＡＮ（Ｉ／Ｆ）１１０５、低速車内ＬＡＮ  インタフェース（Ｉ／Ｆ）１１０６、高速車内ＬＡＮ  Ｉ／Ｆ１１０７から構成される。
【００２６】
制御部１１０１は、制御プログラムを実行し、ソフト更新装置１１内の他の構成要素を制御するとともに車内ネットワークで接続された他の機器やアクセスネットワークを介して接続されたサーバへのデータ送受信指示を行うなどしてソフト更新装置１１を機能させる。
【００２７】
記憶部１１０２は、揮発性メモリおよび不揮発性メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）で構成する。不揮発性メモリには制御プログラムや必要なパラメータなど、ソフト更新装置１１を動作させるための制御情報を格納する。揮発性メモリには制御プログラムの一部や制御プルグラムの動作に必要なデータなどを一時的に格納する。また、制御部１１０１の指示に従い、接続された装置情報など、指示されたデータを保持する。
【００２８】
時刻管理部１１０４は、ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）を備え、アクセスネットワーク４あるいはインターネット３上に存在するＮｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ（ＮＴＰ）サーバ、またはＧｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ（ＧＰＳ）が提供する時刻情報を利用して、時刻を管理する。ＮＴＰとは、ネットワークに接続される機器において、機器が持つ時計を正しい時刻に同期するためのプロトコルである。
【００２９】
Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）  Ｉ／Ｆ１１０５は、制御部１１０１の指示によってアクセスネットワーク４を介して、インターネット３に接続されたサーバなどとの間でデータの送受信を行う。ＷＡＮ  Ｉ／Ｆ１１０５は、有線通信部または無線通信部として構成される。
【００３０】
低速車内ＬＡＮ  Ｉ／Ｆ１１０６は、制御部１１０１の指示によって低速車内ネットワーク１０を介して、低速車内ネットワーク１０に接続されたＥＣＵ１２、１６などとの間でデータの送受信を行う。
【００３１】
高速車内ＬＡＮ  Ｉ／Ｆ１１０７は、制御部１１０１の指示によって高速車内ネットワーク１７を介して、高速車内ネットワーク１７に接続されたＥＣＵ１８などとの間でデータの送受信を行う。
【００３２】
図２（ｂ）は、ソフト更新装置１１上で動作する制御プログラムの構成を示すブロック図である。
ソフト更新装置１１の機能を実現する制御プログラム１１０１０は、ソフト更新装置１１の記憶部１１０２に展開され制御部１１０１で実行される。図２（ｂ）は、機能的にブロックに分割して記載されており、各ブロックの分割、統合はあり得る。また制御プログラムは、１つのプログラムで実現する必要はなく、２以上のプログラムの組合せによって実現してもよい。
【００３３】
制御プログラム１１０１０は、更新制御部１１０１１、外部通信制御部１１０１２、車内通信制御部１１０１３、高速車内通信制御部１１０１４から構成される。
【００３４】
更新制御部１１０１１は、外部通信制御部１１０１２を介してサーバ２から更新情報５を取得したり、車両の状態やソフト更新処理の状況をサーバ２に送信する。また、更新情報５および車内通信制御部１１０１３を介して車内の他の構成要素の状態を取得し、取得した他の構成要素の状態に応じたソフト更新処理を実施する。さらに、更新情報５に含まれるプログラムを、更新情報５にて指定された方式で指定されたＥＣＵに適用する適用処理を行う。
【００３５】
外部通信制御部１１０１２は、更新制御部１１０１１からの指示に従って、ＷＡＮ  Ｉ／Ｆ１１０５を操作し、アクセスネットワーク４とインターネット３を介して、サーバ２とデータ送受信を行う。また、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどのパケットを解析・構成する機能を有する。
【００３６】
車内通信制御部１１０１３は、更新制御部１１０１１からの指示に従って、低速車内ＬＡＮ  Ｉ／Ｆ１１０６を操作し、低速車内ネットワーク１０を介して車内ネットワークに接続された他の機器との間でデータ送受信を行う。
【００３７】
高速車内通信制御部１１０１４は、更新制御部１１０１１からの指示に従って、高速車内ＬＡＮ  Ｉ／Ｆ１１０７を操作し、高速車内ネットワーク１７を介して車内ネットワークに接続された他の機器との間でデータ送受信を行う。
【００３８】
図３（ａ）は、ＥＣＵ１２のハードウェア構成例を示すブロック図である。
ＥＣＵ１２は、制御部１２０１、記憶部１１０２、低速車内ＬＡＮ  Ｉ／Ｆ１１０６から構成され、センサ１２０２、アクチュエータ１２０３と接続されている。
【００３９】
制御部１２０１は、制御プログラムを実行し、センサ１２０２の読み出しやアクチュエータ１２０３の操作を行ったり、低速車内ＬＡＮ  Ｉ／Ｆ１１０６を介して低速車内ネットワーク１０で接続された他の機器とのデータ送受信を行うことにより、ＥＣＵ１２を動作させて自動車の必要機能の一部を実現する。
【００４０】
センサ１２０２は、制御部１２０１の指示によって自動車の制御に必要となるデータを取得する。
【００４１】
アクチュエータ１２０３は、制御部１２０１の指示によって、ブレーキなどの構成要素を駆動する。
【００４２】
その他の構成要素の機能は、ソフト更新装置１１と同様であるため、説明を省略する。
【００４３】
図３（ｂ）は、ＥＣＵ１  １２上で動作する制御プログラムの構成を示すブロック図である。
ＥＣＵ１  １２の機能を実現する制御プログラム１２０１０は、ＥＣＵ１  １２の記憶部１１０２に展開され制御部１２０１で実行される。図２（ｂ）は、機能的にブロックに分割して記載されており、各ブロックの分割、統合はあり得る。また制御プログラムは、１つのプログラムで実現する必要はなく、２以上のプログラムの組合せによって実現してもよい。
【００４４】
制御プログラム１２０１０は、制御処理部１２０１１、更新部１２０１２、車内通信制御部１１０１３から構成する。
【００４５】
制御処理部１２０１１は、センサ１２０２から読み出し、アクチュエータ１２０３の操作および低速車内ＬＡＮ  Ｉ／Ｆ１１０６を介して低速車内ネットワーク１０で接続された他の機器とのデータ送受信を行うことにより、ＥＣＵ１  １２を動作させて自動車の必要機能の一部を実現する。
【００４６】
更新部１２０１２は、受信部１２０１２１、書込み部１２０１２２、差分復元部１２０１２３、圧縮解凍部１２０１２４から構成される。受信部１２０１２１は、車内通信制御部１１０１３を介してソフト更新装置１１からの制御指示および更新データを受信する。書込み部１２０１２２は、記憶部１１０２の不揮発性メモリにプログラムを書き込む。差分復元部１２０１２３は、受信部１２０１２１が受信した更新データ（差分データ）と記憶部１１０２に展開された更新前のプログラムから新プログラムを復元する。圧縮解凍部１２０１２４は、受信部１２０１２１が受信した更新データ（圧縮データ）を解凍する。
【００４７】
更新部１２０１２は、上記の構成要素を連携させ、車内通信制御部１１０１３を介してソフト更新装置１１から受信した更新制御要求に従ってＥＣＵ１  １２の記憶部１１０２の制御プログラムを書き換え、プログラムの更新をＥＣＵ１  １２に適用する。
【００４８】
車内通信制御部１１０１３は、更新制御部１１０１１からの指示に従って、低速車内ＬＡＮ  Ｉ／Ｆ１１０６を操作し、低速車内ネットワーク１０を介して車内ネットワークに接続された他の機器との間でデータ送受信を行う。
【００４９】
その他の構成要素の機能は、ソフト更新装置１１の制御プログラム１１０１０と同様であるため、説明を省略する。
【００５０】
図４は、ＥＣＵ２  １６上で動作する制御プログラムの構成を示すブロック図である。
制御プログラム１６０１０は、制御処理部１２０１１、更新部１６０１１、車内通信制御部１１０１３から構成する。
【００５１】
更新部１６０１１は、受信部１２０１２１、書込み部１２０１２２から構成される。ＥＣＵ２  １６の制御プログラム１６０１０の更新部１６０１１は、ＥＣＵ１  １２の制御プログラム１２０１０の更新部１２０１２が持つ差分復元部１２０１２３、圧縮解凍部１２０１２４を持たないため、差分復元および圧縮解凍ができない。
【００５２】
その他の構成要素の機能は、ＥＣＵ１  １２の制御プログラム１２０１０と同様であるため、説明を省略する。
なお、ＥＣＵ２  １６のハードウェア構成は、ＥＣＵ１  １２と同等である。
【００５３】
図１４（ａ）は、ＥＣＵ３  １８のハードウェア構成例を示すブロック図である。
ＥＣＵ１２は、制御部１２０１、記憶部１１０２、高速車内ＬＡＮ  Ｉ／Ｆ１１０７から構成され、センサ１２０２、アクチュエータ１２０３と接続している。
【００５４】
各要素の機能は、他装置の対応する機能要素と同様のため、説明を省略する。
【００５５】
図１４（ｂ）は、ＥＣＵ３  １８上で動作する制御プログラムの構成を示すブロック図である。
制御プログラム１８０１０は、制御処理部１２０１１、更新部１２０１２、高速車内通信制御部１１０１４から構成する。
【００５６】
各構成要素の機能は、他装置の対応する構成要素と同様であるため、説明を省略する。
【００５７】
図５は、更新処理全体の流れを示すシーケンス図である。
最初に、エンジン起動時などにソフト更新装置１１はサーバ２から更新する情報をダウンロードしてソフト更新装置１１の記憶部１１０２に保持する（Ｓ１００）。その後、エンジン状態が起動中から停止に状態が遷移したときなどに、前処理Ｓ２００を実施したのち、個々のＥＣＵ（ここではＥＣＵ１を例とした）への適用処理を行う（Ｓ３００）。最後に、後処理Ｓ４００を実施して、更新処理が完了する。更新処理（前処理Ｓ２００、適用処理Ｓ３００、後処理Ｓ４００）の開始タイミングは、前記エンジン停止時以外にも、ダウンロード処理Ｓ２１００完了直後や、所定の時刻、などが考えられる。
【００５８】
図６はソフト更新装置１１がサーバ２から取得する更新情報５の構成例である。
更新情報５は、ヘッダ部Ｄ１０００と、前処理情報Ｄ２０００、制御装置更新情報Ｄ３０００および後処理情報Ｄ４０００から構成する。
【００５９】
ヘッダ部Ｄ１０００は、更新対象の車両を一意に識別するための情報である車両ＩＤ（Ｄ１００１）と当該更新を一意に識別するための更新ＩＤ（Ｄ１００２）から構成される。
【００６０】
このようにヘッダ部Ｄ１０００に車両ＩＤ  Ｄ１００１を含み、車両が保持する車両のＩＤと比較できるようにすることにより、更新を適用する車両を間違えないように確認することができる。また、更新ＩＤ  Ｄ１００２を含むことにより、更新の内容を一意な識別を容易にすることができる。例えば、別途管理されている管理情報においてインデックスとして利用し、どのような更新を行うかを素早く把握することが可能となる。
【００６１】
前処理情報Ｄ２０００は、ＥＣＵのプログラム更新にあたって各ＥＣＵに共通的に事前に実施する前処理に必要な情報を格納する領域である。本実施例では、プログラム更新にあたってユーザ許可が必要かどうかを識別するユーザ許可要否Ｄ２００１、更新処理開始タイミングＤ２００２から構成される。
【００６２】
制御装置更新情報Ｄ３０００は、更新対象となるＥＣＵごとの更新情報を格納する領域である。本実施例では、ＥＣＵ１とＥＣＵ２が更新対象である場合の例を示しており、ＥＣＵ１の更新情報Ｄ３１００とＥＣＵ２の更新情報Ｄ３２００から構成される。
【００６３】
後処理情報部Ｄ４０００は、ＥＣＵのプログラム更新にあたって、更新後に実施する後処理に必要な情報を格納する領域である。本実施例ではユーザ通知要否Ｄ４００１から構成される。
【００６４】
このように、更新情報５に前処理情報と後処理情報を含めることによって、ソフト更新装置１１はソフト更新処理において更新適用に先立って必要な処理および更新適用後に必要な処理を適切に実行することができる。
【００６５】
本実施例では、前処理情報Ｄ２０００としてユーザ許可要否Ｄ２００１を含むため、あらかじめ別の手段でユーザの許可を得ている場合や販売前の車に自動的にプログラムの更新を適用したい場合などの更新直前にユーザを許可を必要としない場合と、車両にてユーザ確認を得たい場合の処理の切り替えを柔軟に行うことができる。また、後処理情報Ｄ４０００としてユーザ通知要否Ｄ４００１を含むため、前処理と同様に更新後にユーザに通知を行うかどうかを更新適用時に制御することができる。さらに、更新開始タイミングＤ２００２を含むため、「ダウンロード処理完了直後」「エンジン状態が起動中から停止に状態が遷移したとき」、「指定日時・時刻」、「任意（ユーザ操作）」など更新内容や更新対象ＥＣＵの特性（走行中も更新可能）に合わせた様々な開始タイミングをサーバ側で柔軟に制御することができる。
【００６６】
図７は、制御装置更新情報Ｄ３０００の構成例である。
ＥＣＵ１更新情報Ｄ３１００、ＥＣＵ２更新情報Ｄ３２００は、それぞれ、ＥＣＵ  ＩＤ  Ｄ３１０１、Ｄ３２０１、ソフトＶｅｒ  Ｄ３１０２、Ｄ３２０２、前処理情報Ｄ３１１０、Ｄ３２１０、適用処理情報Ｄ３１２０、Ｄ３２２０、後処理情報Ｄ３１３０、Ｄ３２３０、サムＤ３１０４、Ｄ３２０４から構成される。
【００６７】
ＥＣＵ  ＩＤ  Ｄ３１０１、Ｄ３２０１はＥＣＵを一意に識別するための識別情報であり、本実施例ではＥＣＵ１  １２には１（Ｄ３１０１）が、ＥＣＵ２  １６には２（Ｄ３２０１）が設定されている。このように更新情報にＥＣＵ  ＩＤを含むことにより、更新対象であるＥＣＵを一意に識別することができる。
【００６８】
ソフトＶｅｒ  Ｄ３１０２、Ｄ３２０２は現在ＥＣＵに搭載されているプログラムのバージョン番号であり、本実施例ではＥＣＵ１  １２には１．０（Ｄ３１０２）が、ＥＣＵ２  １６には１．１（Ｄ３２０２）が設定されている。このように更新情報にプログラムバージョンを含むことにより、更新対象のプログラムを間違いなく特定し、差分更新時に間違ったバージョンに差分を適用してしまう、などの不具合を防止することができる。
【００６９】
前処理情報Ｄ３１１０、Ｄ３２１０は、当該ＥＣＵに特有の更新前処理に必要な情報を格納する領域であり、更新に必要な消費電力（Ｄ３１１１、Ｄ３２１１）と更新にかかる更新時間（Ｄ３１１２、Ｄ３２１２）、エラーチェック要否（Ｄ３１１３、Ｄ３２１３）、認証要否（Ｄ３１１４、Ｄ３２１４）、学習値退避情報（Ｄ３１１５、Ｄ３２１５）が格納される。本実施例では、ＥＣＵ１  １２の消費電力Ｄ３１１１には０．１Ｗｈ、更新時間Ｄ３１１２には２０ｓｅｃ、エラーチェック要否Ｄ３１１３には「チェック要」、認証要否Ｄ３１１４には「認証要」、学習値退避情報Ｄ３１１５には「学習値退避要」及び読み出しアドレス「０ｘＡＡ」が設定されており、ＥＣＵ２  １６の消費電力Ｄ３２１１には０．２Ｗｈ、更新時間Ｄ３２１２には６０ｓｅｃ、エラーチェック要否Ｄ３２１３には「チェック不要」、認証要否Ｄ３２１４には「認証不要」、学習値退避情報Ｄ３２１５には「学習値退避不要」が設定されている。このように前処理情報をＥＣＵ毎の更新情報に含むことによって、ＥＣＵ毎に異なる前処理を適切に設定することができる。例えば、本実施例で示すように更新にかかる消費電力や時間はＥＣＵ毎に異なるものであるため、個別に設定することでより適切な更新処理を行うことができるようになる。また、更新内容に合わせてエラーチェック要否を変更したり、退避する学習値を変更したりできる。
【００７０】
適用処理情報Ｄ３１２０、Ｄ３２２０は、ＥＣＵに新しいプログラムを適用するために必要な情報を格納する領域である。
【００７１】
適用処理情報Ｄ３１２０は、適用方式ＩＤ１  Ｄ３１２１、ブロック＃Ｄ３１２２、適用方式ＩＤ２  Ｄ３１２３、更新データ  Ｄ３１２４から構成される。適用処理情報Ｄ３２２０も同様である。
【００７２】
適用方式ＩＤ１  Ｄ３１２１、Ｄ３２２１は更新を適用する方式を設定する領域であり、「通常」、「差分」、「圧縮」、「ブロック毎に指定」のいずれかが設定される。「通常」は全更新方式による更新データの適用を示し、ＥＣＵに対して更新データそのものを送信し、ＥＣＵは受信したデータをそのまま記憶部に書き込む方式を示す。「差分」は差分更新方式による更新データの適用を示し、ＥＣＵに対して更新前のデータと更新後のデータから取得した差分データ送信し、ＥＣＵは受信した差分データとＥＣＵの記憶部１１０２に存在する更新前のデータから更新後のデータを復元して記憶部に書き込む方式を示す。「圧縮」は圧縮更新方式による更新データの適用を示し、ＥＣＵに対して更新後のデータを圧縮したデータを送信し、ＥＣＵは受信した圧縮データを解凍した後に記憶部に書き込む方式を示す。「ブロック毎に指定」は、上記「通常」「差分」「圧縮」が、口述する適用方式ＩＤ２にて、ＥＣＵの記憶部１１０２の不揮発メモリの論理ブロック毎に指定されることを示す。
【００７３】
ブロック＃Ｄ３１２２、Ｄ３１２５、Ｄ３２２２、Ｄ３２２４は更新対象となるＥＣＵの記憶部１１０２の不揮発メモリの論理ブロックの番号が設定される。
【００７４】
適用方式ＩＤ２  Ｄ３１２３、Ｄ３１２６は、前記ブロック＃で指定されたブロックに対して更新を適用する方式を設定する領域であり、「通常」、「差分」、「圧縮」のいずれかが設定される。適用方式ＩＤ２は適用方式ＩＤ１で「ブロック毎に指定」が設定された場合には設定されない。
【００７５】
更新データＤ３１２４、Ｄ３１２７、Ｄ３２２３、Ｄ３２２５は、更新後のデータをＥＣＵに適用するために必要なデータを格納する領域であり、書込み先のアドレス情報と、適用方式が「通常」の場合は更新後のデータそのものが、適用方式が「差分」の場合は更新前のデータと更新後のデータから取得した差分データが、適用方式が「圧縮」の場合は更新後のデータを圧縮したデータが格納される。
【００７６】
本実施例では、ＥＣＵ１更新処理情報Ｄ３１００においては、適用方式ＩＤ１  Ｄ３１２１には「ブロック毎に指定」が設定され、更新対象のブロック毎に適用方式が指定されている。ＥＣＵ１の更新対象として、ブロック＃Ｄ３１２２には＃３が指定されており、当該ブロックの更新方式は適用方式ＩＤ２  Ｄ３１２３にて「差分」更新方式が設定されており、更新データがＤ３１２４に格納されている。さらに、ブロック＃  Ｄ３１２５においてブロック＃８が更新対象であると指定されており、当該ブロックの適用方式は適用方式ＩＤ２  Ｄ３１２６にて「圧縮」更新方式が指定されており、更新データがＤ３１２７に格納されている。また、ＥＣＵ２更新処理情報Ｄ３２００においては、適用方式ＩＤ１  Ｄ３２２１には「通常」が設定され、更新対象のブロックすべてに対して通常更新方式を使用することが指定されている。ＥＣＵ２の更新対象は、ブロック＃Ｄ  ３２２２には＃８が指定されており、当該ブロックに対する更新データがＤ３２２３に格納されている。ブロック＃  Ｄ３２２４にてブロック＃６４が更新対象であると指定されており、当該ブロックに対する更新データがＤ３２２５に格納されている。
【００７７】
以上のようにＥＣＵ毎のＥＣＵ更新情報にどのように更新後のプログラムを適用するかを示す適用方式を含むことによって、同じＥＣＵに対して、更新のタイミングや更新内容によって異なる処理方式を指定するなど、適用時にどのＥＣＵに対してどの方式を用いるかを柔軟に指定することができる。さらに、適用方式を更新ブロック毎に指定することで、生成された差分データサイズやＥＣＵがもつメモリリソースなどの条件によって適用方式をブロック毎に変更するなど、効率のよい更新処理が可能になる。
【００７８】
後処理情報Ｄ３１３０、Ｄ３２３０は、当該ＥＣＵに特有の更新後処理に必要な情報を格納する領域であり、更新適用後すぐに当該ＥＣＵのリセットをしてもよいかどうかを示すリセット可否Ｄ３１３１、Ｄ３２３１が格納される。本実施例では、ＥＣＵ１のリセット可否Ｄ３１３１およびＥＣＵ２のリセット可否Ｄ３２３１いずれも「否」が設定されている。このように後処理情報をＥＣＵ毎の更新情報に含むことによって、ＥＣＵ毎に異なる後処理を適切に設定することができる。例えば、本実施例で示すように更新直後のリセット可否を示す情報を付加し、他のＥＣＵの更新と依存関係がある場合に、直ちにリセットを行わず、依存関係のあるすべてのＥＣＵが更新された後にリセットを行うといった制御が可能となる。
【００７９】
サムＤ３１０４、Ｄ３２０４は、更新情報Ｄ３１００が誤っていないかどうかを検出するためのチェックサムである。更新情報全体ではなく、ＥＣＵ更新情報ごとにサムを付与することによって、更新情報をストリーミングで受信して、各ＥＣＵ更新情報をそれぞれのＥＣＵに対応したメモリの領域に展開しても、受信したＥＣＵ更新情報が正しいことを確認できる。
【００８０】
図８は、更新処理における前処理Ｓ２００の流れを示すシーケンス図である。
【００８１】
図８（ａ）は車両全体に係る前処理の流れを示すシーケンス図である。
ソフト更新装置１１の更新制御部１１０１１は、最初に受信した車両ＩＤ  Ｄ１００１が、管理する車両ＩＤと一致するかどうかを確認する（Ｓ２０１）。一致しない場合（Ｓ２０１のＮＯ）、以降の処理を実施せずに処理を中断する（Ｓ２１７）。車両ＩＤが一致する場合（Ｓ２０１のＹＥＳ）、次にＥＣＵ  ＩＤ  Ｄ３１０１、Ｄ３２０１から更新対象のＥＣＵにネットワークを介して接続するために必要なネットワークＩＤを取得し（Ｓ２０２）、取得したＩＤを用いて当該ＥＣＵに搭載されたプログラムバージョンを取得する（Ｓ２０３）。車両内で取得したプログラムバージョンが、サーバから受信したソフトＶｅｒＤ３１０２、Ｄ３２０２と一致するかどうかを確認し（Ｓ２０４）、一致しない場合（Ｓ２０４のＮＯ）は、以降の処理を実施せずに処理を中断する（Ｓ２１７）。一致する場合（Ｓ２０４のＹＥＳ）、次にユーザ許可要否Ｄ２００１から更新にあたってユーザの許可が必要かどうかを確認する（Ｓ２０５）。許可が不要な場合（Ｓ２０５のＮＯ）は、次の車両状態チェックＳ２１１に進む。許可が必要な場合（Ｓ２０５のＹＥＳ）は、ダウンロード情報に含まれる更新時間Ｄ３１１２、Ｄ３２１２を合算して更新処理に必要な時間（更新時間）を算出し（Ｓ２０６）、車内通信制御部１１０１３を介して、ＨＭＩ１３に算出した更新ＩＤ  Ｄ１００２，更新時間を含むユーザ確認要求を送信する（Ｓ２０７）。ＨＭＩ１３は、受信した更新ＩＤ  Ｄ１００２，更新時間から図１３のＧ１００を構成し、ユーザが更新処理実行を許可するかどうかを確認するために表示する（Ｓ２０８）。次に、ユーザ操作の結果を前記ユーザ確認要求Ｓ２０７への応答として送信する（Ｓ２０９）。ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して前記応答を受信すると、応答に含まれるユーザの更新許可を確認する（Ｓ２１０）。更新が拒否された場合（Ｓ２１０のＮＯ）、以降の処理を実施せずに処理を中断する（Ｓ２１７）。更新が許可された場合（Ｓ２１０のＹＥＳ）は、更新開始前に確認すべき車両の各種状態を取得し（Ｓ２１１）、更新を開始してよいかどうかを確認する（Ｓ２１２）。開始可能な状態と判断した場合（Ｓ２１２のＯＫ）、外部通信制御部１１０１２を介してサーバ２に開始通知を送信する（Ｓ２１６）。一方、更新開始が不可能な状態と判断した場合（Ｓ２１２のＮＧ）は、車内通信制御部１１０１３を介して、ＨＭＩ１３に開始不可理由表示要求を送信し（Ｓ２１３）、ＨＭＩ１３は受信した開始不可理由表示要求に基づいて図１３のＧ２００の画面を構成して表示する（Ｓ２１４）。ＨＭＩ１３は表示後、ソフト更新装置１１に応答を送信し（Ｓ２１５）、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して前記応答を受信すると、処理を中断する（Ｓ２１７）。
【００８２】
以上のようにヘッダ部Ｄ１０００に車両ＩＤ  Ｄ１００１を含み、車両が保持する車両のＩＤと比較することにより、更新を適用する車両を間違えないように確認することができる。
【００８３】
また、更新情報にプログラムバージョンを含み、ＥＣＵから取得するバージョン情報と比較することにより、更新対象のプログラムを間違いなく特定し、差分更新時に間違ったバージョンに差分を適用してしまう、などの不具合を防止することができる。
【００８４】
さらに、ユーザ許可要否Ｄ２００１を含み、これを元にユーザ許可画面を表示するかどうかを判断できるようにすることによって、あらかじめ別の手段でユーザの許可を得ている場合や販売前の車に自動的にプログラムの更新を適用したい場合などの更新直前にユーザを許可を必要としない場合と、車両にてユーザ確認を得たい場合の処理の切り替えを柔軟に行うことができる。
【００８５】
また、ユーザに許可を得る場合において、更新情報に含まれる更新時間から算出した更新所要時間を合わせてＨＭＩに送信し、ＨＭＩでは更新所要時間を表示することで、ユーザは更新処理を開始するかどうかを適切に判断できるようになる。
【００８６】
さらに、受信した更新ＩＤをＨＭＩに送信してＨＭＩで当該更新ＩＤおよび、更新ＩＤに基づいて詳細内容を別途取得してこれを表示すれば、ユーザは更新処理を開始するかどうかを適切に判断できるようになる。
【００８７】
車両状態チェックの結果、開始ができない場合にその内容をユーザに提示することによって、ユーザは適切に車両の状態を把握し、車両の状態をソフト更新が可能な状態に遷移させるための情報を得ることができる。
【００８８】
図８（ｂ）は、更新対象ＥＣＵ（ＥＣＵ１）に対する前処理の流れを示すシーケンス図である。
【００８９】
ソフト更新装置１１の更新制御部１１０１１は、図６の更新情報５に含まれるＥＣＵ１更新情報Ｄ３１００内の前処理情報Ｄ３１１０（図７）に基づきＥＣＵ１との間で更新前処理を行う。
【００９０】
ソフト更新装置１１の更新制御部１１０１１は、最初にエラーチェック要否Ｄ３１１３を読み出し、エラーチェックが必要かどうかを判定する（Ｓ２２０）。エラーチェックが不要な場合（Ｓ２２０のＮＯ）は、エラーチェックを行わずに次に進む。エラーチェックが必要な場合（Ｓ２２０のＹＥＳ）は、ＥＣＵ１に対しＤＴＣ（Ｄｉａｇｎｏｓｔｉｃ  Ｔｒｏｕｂｌｅ  Ｃｏｄｅ）読み出し要求を送信する（Ｓ２２１）。ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して応答を受信する（Ｓ２２２）と、応答に含まれるＤＴＣの内容を確認し、ＥＣＵ１に異常が発生していないかどうかを判定（Ｓ２２３）し、異常が発生していると判定した場合（Ｓ２２３のＮＧ）、以降の処理を行わず異常終了処理を行う。異常終了処理では、更新制御部１１０１１は、車内通信制御部１１０１３を介して、ＨＭＩ１３に異常表示要求を送信し（Ｓ２３５）、ＨＭＩ１３は受信した要求に基づいて画面を構成して表示する（Ｓ２３６）。ＨＭＩ１３は表示後、ソフト更新装置１１に応答を送信し（Ｓ２３７）、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して前記応答を受信すると、サーバ２に異常通知を送信（Ｓ２３８）した後、処理を中断する（Ｓ２１７）。ＥＣＵ１が正常であると判定した場合（Ｓ２２３のＯＫ）、更新制御部１１０１１は、認証要否Ｄ３１１４を読み出し、ＥＣＵ１との間で認証処理が必要かどうかを判定する（Ｓ２２４）。認証が不要な場合（Ｓ２２４のＮＯ）は、認証処理を行わずに次に進む。認証が必要な場合（Ｓ２２４のＹＥＳ）は、ＥＣＵ１に対し認証要求を送信する（Ｓ２２５）。ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して応答を受信する（Ｓ２２６）と、応答に含まれる情報からレスポンスを生成し（Ｓ２２７）、車内通信制御部１１０１３を介して前記レスポンスにＥＣＵ１に送信する（Ｓ２２８）。ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して結果応答を受信する（Ｓ２２９）と、認証が成功したかどうかを判定（Ｓ２３０）し、認証が失敗と判定した場合（Ｓ２３０のＮＧ）、以降の処理を行わず異常終了処理を行う。ＥＣＵ１との認証が成功したと判定した場合（Ｓ２３０のＯＫ）、更新制御部１１０１１は、学習値退避情報Ｄ３１１５を読み出し、ＥＣＵ１との学習値退避が必要かどうかを判定する（Ｓ２３１）。学習値退避が不要な場合（Ｓ２３１のＮＯ）は、学習値退避処理を行わずに次に進む。学習値退避が必要な場合（Ｓ２３１のＹＥＳ）は、学習値次退避情報Ｄ３１１５に含まれる情報に基づいて、ＥＣＵ１に対しデータ取得要求を送信する（Ｓ２３２）。更新制御部１１０１１は、車内通信制御部１１０１３を介して応答を受信する（Ｓ２３３）と、応答に含まれる学習値をソフト更新装置１１の記憶部１１０２に保存する（Ｓ２３４）。このように、更新情報にエラーチェック要否、認証要否、学習値退避情報を含め、前記情報に基づいて前処理を実施することで、更新内容に合わせてエラーチェック要否を変更したり、退避する学習値を変更したり、柔軟に必要十分な処理のみを実施するようにシーケンスを構成できる。
【００９１】
図９（ａ）は、ネットワークＩＤ取得処理Ｓ２０２のシーケンス図である。
ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、低速車内ネットワーク１０にＥＣＵ  ＩＤ＝１を指定してＩＤ取得要求を送信する（Ｓ２０２１）。ＥＣＵ１はＥＣＵ  ＩＤ＝１を指定したＩＤ取得要求を受信すると、自身のネットワークＩＤを設定した応答をソフト更新装置１１に返す（Ｓ２０２２）。
【００９２】
次に、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、低速車内ネットワーク１０にＥＣＵ  ＩＤ＝２を指定してＩＤ取得要求を送信する（Ｓ２０２３）。ＥＣＵ２はＥＣＵ  ＩＤ＝２を指定したＩＤ取得要求を受信すると、自身のネットワークＩＤを設定した応答をソフト更新装置１１に返す（Ｓ２０２４）。
【００９３】
このようにＥＣＵ  ＩＤを元に対応するＥＣＵのネットワーク上のＩＤを取得することで、車内ネットワークで接続されたＥＣＵと適切に通信することができる。
【００９４】
図９（ｂ）は、ソフトＶｅｒ取得処理Ｓ２０３のシーケンス図である。
ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、ＥＣＵ１にバージョン取得要求を送信する（Ｓ２０３１）。ＥＣＵ１はバージョン取得要求を受信すると、自身のソフトバージョンを設定した応答をソフト更新装置１１に返す（Ｓ２０２２）。
【００９５】
次に、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、ＥＣＵ２にバージョン取得要求を送信する（Ｓ２０３３）。ＥＣＵ２はバージョン取得要求を受信すると、自身のソフトバージョンを設定した応答をソフト更新装置１１に返す（Ｓ２０３４）。
【００９６】
このように、ＥＣＵからプログラムバージョンを取得して更新情報に含まれるソフトウェアバージョンと比較することにより、更新対象のプログラムを間違いなく特定し、差分更新時に間違ったバージョンに差分を適用してしまう、などの不具合を防止することができる。
【００９７】
図９（ｃ）は、車両状態取得処理Ｓ２１１のシーケンス図である。
ソフト更新装置１１の更新制御部１１０１１は、更新情報５に含まれる消費電力Ｄ３１１２、Ｄ３２１２を合算して更新処理の消費電力を算出（Ｓ２１１１）する。次に、車内通信制御部１１０１３を介して、電源管理ＥＣＵ１４に電池残量取得要求を送信する（Ｓ２１１２）。電源管理ＥＣＵ１４は、電池残量取得要求を受信すると、蓄電池の電池残量を含めた応答を送信する（Ｓ２１１３）。ソフト更新装置１１の更新制御部１１０１１は電池残量取得応答を受信すると、受信した応答に含まれる電池残量から事前に算出した消費電力差し引いた値を所定の値ｄ（たとえば、1Whなどエンジン起動等に必要な電力量にマージンを加えた値）と比較する（Ｓ２１１４）。電池残量から消費電力量を差し引いた値が所定の値ｄ以下の場合は更新を開始できる状態ではないと判断し、電池残量から消費電力量を差し引いた値が所定の値ｄより大きい場合は更新を開始できる状態と判断し、この結果を図８の更新を開始判定Ｓ２１２で用いる。
【００９８】
このように、電源管理ＥＣＵから取得した電池残量と、ＥＣＵ毎の更新情報に含まれる消費電力を合算した消費電力を比較して、その結果に基づいて更新処理を実行することによって、ＥＣＵの更新処置中に電源供給が途絶えるという不具合を防止することができる。
【００９９】
図１０は、更新処理における適用処理Ｓ３００の流れを示すシーケンス図である。
ソフト更新装置１１の更新制御部１１０１１は、サーバから受信した更新情報５に含まれる適用方式ＩＤ１（Ｄ３１２１またはＤ３２２１）から、当該ＥＣＵに適用する更新方式を確認する（Ｓ３０１）。
【０１００】
以降、更新方式ＩＤ１（Ｄ３２２１）が「ブロック毎に指定」以外を示す場合（Ｓ３０１の「ブロック毎に指定」以外）について、ＥＣＵ２  １６の更新情報Ｄ３２２０を例に説明する。
【０１０１】
更新方式ＩＤ１（Ｄ３２２１）が「ブロック毎に指定」以外を示す場合、更新制御部１１０１１はＥＣＵ２に対しては全ブロックに共通の適用処理を行うと判断し、更新方式ＩＤ１（Ｄ３２２１）に指定された適用方式を確認（Ｓ３０２）し、ＥＣＵ２の更新情報Ｄ３２００に含まれる最初の適用ブロック＃Ｄ３２２２に設定されたブロック＃８について処理を開始する。適用方式ＩＤ２  Ｄ３１２３が全更新を示す場合（Ｓ３０２の「通常」）、当該ブロックに対して全更新適用処理Ｓ３１０を適用する。適用方式ＩＤ２  Ｄ３１２３が圧縮更新を示す場合（Ｓ３０２の「圧縮」）、当該ブロックに対して圧縮更新適用処理Ｓ３２０を適用する。適用方式ＩＤ２  Ｄ３１２３が差分更新を示す場合（Ｓ３０２の「差分」）、当該ブロックに対して差分更新適用処理Ｓ３３０を適用する。最初の処理対象であるブロックの処理が完了すると、次の処理対象ブロック有無を確認し（Ｓ３０３）、次の処理対象ブロックがある場合（Ｓ３０３のＹＥＳ）は、次のブロック＃を読み出し、設定されたブロックに対して全更新適用処理を実施する。以降、すべての処理対象ブロックに対して適用処理を行う。次の処理対象ブロックがない場合（Ｓ３０３のＮＯ）、次の処理対象ＥＣＵ有無確認（Ｓ３０６）に処理を進める。
【０１０２】
次に、更新方式ＩＤ１（Ｄ３１２１）が「ブロック毎に指定」を示す場合（Ｓ３０１の「ブロック毎に指定」）について、ＥＣＵ１  １２の適用処理情報Ｄ３１２０を例に説明する。
【０１０３】
更新方式ＩＤ１（Ｄ３１２１）が「ブロック毎に指定」を示す場合、更新制御部１１０１１はＥＣＵ１に対してはブロック毎に更新方式が指定されていると判断し、ＥＣＵ１の最初の適用ブロック＃Ｄ３１２２に設定されたブロック＃３についての処理を開始する。更新制御部１１０１１は最初に当該ブロックに対する適用方式を示す適用方式ＩＤ２  Ｄ３１２３を確認する（Ｓ３０４）。適用方式ＩＤ２  Ｄ３１２３が全更新を示す場合（Ｓ３０４の「通常」）、当該ブロックに対して全更新適用処理Ｓ３１０を適用する。適用方式ＩＤ２  Ｄ３１２３が圧縮更新を示す場合（Ｓ３０４の「圧縮」）、当該ブロックに対して圧縮更新適用処理Ｓ３２０を適用する。適用方式ＩＤ２  Ｄ３１２３が差分更新を示す場合（Ｓ３０４の「差分」）、当該ブロックに対して差分更新適用処理Ｓ３３０を適用する。最初の処理対象であるブロックの処理が完了すると、次の処理対象ブロック有無を確認し（Ｓ３０５）、次の処理対象ブロックがある場合（Ｓ３０５のＹＥＳ）は、次のブロック＃を読み出し、設定されたブロックに対して適用方式ＩＤ２確認Ｓ３０４から処理対象ブロック有無確認Ｓ３０５までの処理を実施する。以降、すべての処理対象ブロックに対してこれを繰り返す。次の処理対象ブロックがない場合（Ｓ３０５のＮＯ）、次の処理対象ＥＣＵ有無確認（Ｓ３０６）に処理を進める。
【０１０４】
処理対象ＥＣＵの適用処理が完了すると、次の処理対象ＥＣＵ有無を確認する（Ｓ３０６）。次の処理対象ＥＣＵがある場合（Ｓ３０６のＹＥＳ）は、最初に戻って当該ＥＣＵの処理を開始する。次の処理対象ＥＣＵがない場合（Ｓ３０６のＮＯ）は、適用処理を終了する。
【０１０５】
以上のように、受信した更新情報に含まれる適用方式によって実行する適用方式を選択し、適用処理を実行することによって、同じＥＣＵに対して、更新のタイミングや更新内容によって異なる処理方式を指定するなど、どのＥＣＵに対してどの方式を用いるかを適用時に決定することができる。さらに、適用方式を更新ブロック毎に指定された適用方式によって実行する適用方式を選択して適用処理を実行することによって、生成された差分データサイズやＥＣＵがもつメモリリソースなどの条件によって適用方式をブロック毎に変更するなど、効率のよい更新処理が可能になる。
【０１０６】
図１１（ａ）は、ソフト更新装置１１とＥＣＵの間で実施される全更新適用処理Ｓ３１０のシーケンス図である。
最初に、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、ＥＣＵに対してブロック＃を指定して消去要求を発行する（Ｓ３１１）。車内通信制御部１１０１３を介して消去要求を受信したＥＣＵ２  １６の更新部１２０１２は、ＥＣＵ２の記憶部１１０２の不揮発メモリの該当領域を消去し（Ｓ３１２）、車内通信制御部１１０１３を介して正常応答をソフト更新装置１１に送信する（Ｓ３１３）。ＥＣＵ１からの正常応答を受信した更新制御部１１０１１は、車内通信制御部１１０１３を介してＥＣＵ１に書込み先アドレスおよびＥＣＵの記憶部に書き込むデータを含むデータ転送・書込み要求を送信する（Ｓ３１４）。データ転送・書込み要求を受信したＥＣＵ１の更新部１２０１２は、記憶部１１０２の不揮発メモリの指定された書込み先アドレスに受信したデータを書込み（Ｓ３１５）、書き込みが成功した場合は車内通信制御部１１０１３を介してソフト更新装置１１に正常応答を送信する（Ｓ３１６）。
【０１０７】
図１１（ｂ）は、ソフト更新装置１１とＥＣＵの間で実施される圧縮更新適用処理Ｓ３２０のシーケンス図である。
最初に、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、ＥＣＵに対してブロック＃を指定して消去要求を発行する（Ｓ３２１）。車内通信制御部１１０１３を介して消去要求を受信したＥＣＵ２  １６の更新部１６０１１は、ＥＣＵ２の記憶部１１０２の不揮発メモリの該当領域を消去し（Ｓ３２２）、車内通信制御部１２０１３を介して正常応答をソフト更新装置１１に送信する（Ｓ３２３）。ＥＣＵ１からの正常応答を受信した更新制御部１１０１１は、車内通信制御部１１０１３を介してＥＣＵ１に書込み先アドレスおよびＥＣＵの記憶部に書き込むデータを含むデータ転送・解凍・書込み要求を送信する（Ｓ３２４）。データ転送・解凍・書込み要求を受信したＥＣＵ１の更新部１２０１２は、受信した圧縮データを解凍した（Ｓ３２５）後、記憶部１１０２の不揮発メモリの指定された書込み先アドレスに受信したデータを書込み（Ｓ３２６）、書き込みが成功した場合は車内通信制御部１１０１３を介してソフト更新装置１１に正常応答を送信する（Ｓ３２７）。
【０１０８】
図１１（ｃ）は、ソフト更新装置１１とＥＣＵの間で実施される差分更新適用処理Ｓ３３０のシーケンス図である。
最初に、ソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介して、ＥＣＵ１に対して記憶部１１０２に格納したＥＣＵ１更新情報Ｄ３１００から読み出した差分データを含むデータ転送・復元要求を送信する（Ｓ３３１）。データ転送・復元要求を受信したＥＣＵ１の更新部１２０１２は、受信した差分データと記憶部１１０２の不揮発メモリに格納された現在のプログラムまたはデータを用いて更新後のデータを復元して揮発メモリに格納し（Ｓ３３２）、車内通信制御部１１０１３を介して正常応答をソフト更新装置１１に送信する（Ｓ３３３）。ＥＣＵ１からの正常応答を受信した更新制御部１１０１１は、ＥＣＵ１に対してブロック＃を指定して消去要求を発行する（Ｓ３３４）。車内通信制御部１１０１３を介して消去要求を受信したＥＣＵの更新部１２０１２は、ＥＣＵ２の記憶部１１０２の不揮発メモリの該当領域を消去し（Ｓ３３５）、車内通信制御部１１０１３を介して正常応答をソフト更新装置１１に送信する（Ｓ３３６）。ＥＣＵ１からの正常応答を受信したソフト更新装置１１の更新制御部１１０１１は、車内通信制御部１１０１３を介してＥＣＵ１に（書込み先のブロック＃を含む）書込み要求を送信する（Ｓ３３７）。書込み要求を受信したＥＣＵ１の更新部１２０１２は、記憶部１１０２の揮発メモリに格納された復元後の更新データを、記憶部１１０２の不揮発メモリに書込み（Ｓ３３８）、書き込みが成功した場合は車内通信制御部１１０１３を介してソフト更新装置１１に正常応答を送信する（Ｓ３３９）。
【０１０９】
以上図１１の処理におけるデータ転送要求（データ転送・書込み要求／データ転送・解凍・書込み要求／データ転送・復元要求）では、更新データは車内ネットワークの帯域などに応じて適切な単位に分割されて送信されるものとする。
【０１１０】
図１２は、更新処理における後処理Ｓ４００の流れを示すシーケンス図である。
最初にソフト更新装置１１の更新制御部１１０１１は更新対象ＥＣＵの更新状態を確認する（Ｓ４０１）。更新対象ＥＣＵのいずれかが更新されていない場合（Ｓ４０１のＮＯ）は、所定の時間（たとえば１００ｍｓｅｃ）待機後、再度確認を実施する。更新対象ＥＣＵがすべて更新されている場合（Ｓ４０１のＹＥＳ）は、更新対象ＥＣＵにリセット要求を送信する（Ｓ４０２、Ｓ４０３）。ＥＣＵ１およびＥＣＵ２は、ソフト更新装置１１からのリセット要求を受信すると、正常応答を送信し（Ｓ４０４、Ｓ４０５）、リセット処理を行う（Ｓ４０６、Ｓ４０７）。ソフト更新装置１１は、サーバに更新完了通知を送信する（Ｓ４０８）。次に、後処理情報Ｄ４０００に含まれるユーザ提示要否Ｄ４００１を確認し（Ｓ４０９）。ユーザ通知が必要である場合（Ｓ４０９のＹＥＳ）、ＨＭＩ１３に完了通知要求を送信する（Ｓ４１０）。ＨＭＩ１３は完了通知要求を受信すると、画面Ｇ３００を構成して表示し（Ｓ４１１）、ソフト更新装置１１に応答を送信する（Ｓ４１２）。ユーザ通知が必要ない場合（Ｓ４０９のＮＯ）、処理を終了する。
【０１１１】
図１３は、ＨＭＩ１３の画面の一例である。
Ｇ１００は、ユーザにソフト更新開始可否を問い合わせるために提示する画面の一例である。画面Ｇ１００は、更新ＩＤ  Ｇ１０１、更新所要時間Ｇ１０２、更新許可ボタンＧ１０３および更新保留ボタンＧ１０４から構成される。
【０１１２】
このように、ソフト更新装置１１から受信した更新所要時間をＨＭＩで表示することで、ユーザは更新処理を開始するかどうかを適切に判断できるようになる。また、ソフト更新装置１１から受信した更新ＩＤ、または更新ＩＤに基づいて詳細内容を別途取得してこれを表示すれば、ユーザは更新処理を開始するかどうかを適切に判断できるようになる。
【０１１３】
Ｇ２００は、車両がソフト更新を開始できない状態にある場合、その理由と対応方法を提示する画面の一例である。画面Ｇ２００は、更新中断理由Ｇ２０１と確認ボタンＧ２０２から構成される。ここでは、更新中断理由として「バッテリーの残量が十分でないため更新を開始できませんでした。走行後、再度試してください。」と表示している。このように、開始ができずに更新を中断する場合にその内容をユーザに提示することによって、ユーザは適切に車両の状態を把握し、車両の状態をソフト更新が可能な状態に遷移させるための情報を得ることができる。
【０１１４】
Ｇ３００は、車両のソフト更新が完了した場合に、処理の完了をユーザに通知する画面の一例である。画面Ｇ２００は、更新ＩＤ  Ｇ１０１と確認ボタンＧ２０２から構成される。
【実施例２】
【０１１５】
前述の実施例１では、ＥＣＵ更新情報に含まれるＥＣＵ  ＩＤを利用して、車内ネットワーク上に接続された機器に問い合わせ、当該機器と通信するためのネットワークＩＤを取得する方法について示した。また、データの伝送タイミングについて特に言及していない。本実施例では、ＥＣＵ更新情報に接続情報を含む場合について説明する。
【０１１６】
図１５は、車内ネットワーク上の機器と接続するための情報を含むＥＣＵ更新情報の構成例である。
Ｄ３１００はＥＣＵ１更新情報であり、Ｄ５１００はＥＣＵ３更新情報である。本実施例のＥＣＵ更新情報は、前記実施例１のＥＣＵ更新情報に加えて、ドメインＤ３１０５、Ｄ５１０５、Ｎｅｔ  ＩＤ  Ｄ３１０６、Ｄ５１０６、帯域Ｄ３１０７、Ｄ５１０７から構成される。
【０１１７】
ドメインＤ３１０５、Ｄ５１０５は、当該ＥＣＵが接続されたネットワークドメインを識別する識別情報であり、ＥＣＵ１  １２の場合は低速車内ＬＡＮ（Ｄ３１０５）、ＥＣＵ３  １８の場合は高速車内ＬＡＮ（Ｄ５１０５）が設定されている。
【０１１８】
Ｎｅｔ  ＩＤ  Ｄ３１０６、Ｄ５１０６は、当該ＥＣＵをネットワーク上で識別するための識別情報であり、ＥＣＵ１  １２の場合はＡ（Ｄ３１０６）、ＥＣＵ３  １８の場合はＢ（Ｄ５１０６）が設定されている。
【０１１９】
以上のように、更新情報５にＥＣＵ毎のネットワーク接続に必要な情報を含めることで、車内の機器に問い合わせてネットワーク接続情報を取得する処理を省略して処理を簡略化・高速化できたり、ソフト更新装置１１においてＥＣＵ  ＩＤとネットワーク接続情報を関連付けるテーブルを保持しなくてよい、など更新前処理に必要なソフト更新装置１１の実装を簡略化することができる。
【０１２０】
帯域Ｄ３１０７、Ｄ５１０７は、当該ＥＣＵの更新に利用可能なネットワーク帯域を示し、ＥＣＵ１  １２の場合１００ｋｂｐｓ（Ｄ３１０７）、ＥＣＵ３  １８の場合は１０Ｍｂｐｓ（Ｄ５１０７）が設定されている。ソフト更新装置１１は、本帯域情報を用いて、更新データ送信時に設定された帯域を超えないようにデータ送信タイミングを制御する。
【０１２１】
以上のように、ＥＣＵ毎の更新情報に当該ＥＣＵ更新に利用可能なネットワーク帯域を設定し、ソフト更新装置１１が当該情報に従って更新処理を実行することによって、他の装置に影響を与えない範囲で更新処理の高速化を図ることができる。
【実施例３】
【０１２２】
前述の実施例１では、ＥＣＵ更新情報に設定された消費電力を用いて、更新処理を開始するかどうかを判断する方法について示した。本実施例では、上記以外の更新処理開始条件についてＥＣＵ１のＥＣＵ更新情報の前処理情報を例に説明する。
【０１２３】
図１６（ａ）は、本実施例におけるＥＣＵ１更新情報Ｄ３１００の前処理情報Ｄ３１１０の構成例である。
前処理情報Ｄ３１１０は、走行中更新可否Ｄ３１１３１、ＩＧＮ状態Ｄ３１１３２、エンジン状態Ｄ３１１３３、ステアリングロック状態Ｄ３１１３４、ギア状態Ｄ３１１３５、ブレーキ状態Ｄ３１１３６、ドアロック状態３１１３７、充電状態Ｄ３１１３８から構成される。
【０１２４】
走行中更新可否Ｄ３１１３１は、走行中に当該ＥＣＵのプログラムを更新してよいかどうかを示す識別情報であり、「ＹＥＳ」「ＮＯ」のいずれかが設定される。「ＹＥＳ」の場合は走行中に当該ＥＣＵを更新可能であり、「ＮＯ」の場合は走行中に当該ＥＣＵを更新できない。このように、ＥＣＵ毎の更新情報に走行中に更新を許可するかどうかの識別情報を含めることで、走行に影響しないＥＣＵのソフト更新を走行中に実施するなど、効率的な更新処理が可能となる。
【０１２５】
ＩＧＮ状態Ｄ３１１３２は、当該ＥＣＵのプログラム更新を開始可能なイグニッション（ＩＧＮ）の状態を示す識別情報であり、「ＯＮ」「アクセサリー（ＡＣＣ）」「ＯＦＦ」のいずれかが設定される。例えば、ＩＧＮ状態Ｄ３１１３２が「ＯＦＦ」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のＩＧＮ状態が「ＯＦＦ」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能なＩＧＮ状態を含めることで、適切な電源状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１２６】
エンジン状態Ｄ３１１３３は、当該ＥＣＵのプログラム更新を開始可能なエンジン状態を示す識別情報であり、「停止」「ＯＮ」「−（Ｄｏｎ’ｔ  Ｃａｒｅ）」のいずれかが設定される。例えば、エンジン状態Ｄ３１１３３が「停止」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のエンジン状態が「停止」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能なエンジン状態を含めることで、適切な状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１２７】
ステアリングロック状態Ｄ３１１３４は、当該ＥＣＵのプログラム更新を開始可能なステアリングロック状態を示す識別情報であり、「ロック」「−（Ｄｏｎ’ｔ  Ｃａｒｅ）」のいずれかが設定される。例えば、ステアリングロック状態Ｄ３１１３４が「ロック」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のステアリングロック状態が「ロック」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能なステアリングロック状態を含めることで、適切な状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１２８】
ギア状態Ｄ３１１３５は、当該ＥＣＵのプログラム更新を開始可能なギア（シフトレバー）状態を示す識別情報であり、「Ｐ（Ｐａｒｋｉｎｇ）」「Ｎ（Ｎｅｕｔｒａｌ）」「−（Ｄｏｎ’ｔ  Ｃａｒｅ）」などが設定される。例えば、ギア状態Ｄ３１１３５が「Ｐ」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のギア状態が「Ｐ」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能なギア状態を含めることで、適切な状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１２９】
ブレーキ状態Ｄ３１１３６は、当該ＥＣＵのプログラム更新を開始可能なブレーキ状態を示す識別情報であり、「ロック」「−（Ｄｏｎ’ｔ  Ｃａｒｅ）」などが設定される。例えば、ブレーキ状態Ｄ３１１３６が「ロック」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のブレーキ状態が「ロック」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能なブレーキ状態を含めることで、適切な状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１３０】
ドアロック状態３１１３７は、当該ＥＣＵのプログラム更新を開始可能なギア状態を示す識別情報であり、「ロック」「オープン」「−（Ｄｏｎ’ｔ  Ｃａｒｅ）」などが設定される。例えば、ドアロック状態Ｄ３１１３７が「ロック」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のドアロック状態が「ロック」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能なドアロック状態を含めることで、適切な状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１３１】
充電状態Ｄ３１１３８は、例えばＰｌｕｇｉｎ  Ｈｙｂｒｉｄ  Ｅｌｅｃｔｒｉｃ  Ｖｅｈｉｃｌｅ（ＰＨＥＶ）において当該ＥＣＵのプログラム更新を開始可能な充電状態を示す識別情報であり、「充電中」「非充電中」「−（Ｄｏｎ’ｔ  Ｃａｒｅ）」などが設定される。例えば、充電状態Ｄ３１１３８が「充電中」に設定されている場合、ソフト更新装置１１の更新制御部１１０１１が取得した車両のドアロック状態が「充電中」以外の場合、更新を実行しない。このように、ＥＣＵ毎の更新情報に更新処理を開始可能な充電状態を含めることで、適切な状態で当該ＥＣＵのソフト更新処理を開始することが可能となる。
【０１３２】
図１６（ｂ）は、車両がソフト更新を開始できない状態にある場合、その理由と対応方法を提示する画面の一例である。Ｇ２０１１は、走行中更新可否Ｄ３１１３１と車両状態判定の結果から、更新中断理由として「走行中は更新できません。車両を停車させてから更新を開始してください。」を表示する例である。Ｇ２０１２は、エンジン状態Ｄ３１１３３と車両状態判定の結果から、「エンジン動作中は更新できません。エンジン停止後、更新を開始してください」を表示する例である。Ｇ２０１３は、ギア状態Ｄ３１１３５と車両状態判定の結果から「シフトレバーが「Ｐ」以外では更新できません。シフトレバーを「Ｐ」にして更新を開始してください。」を表示する例である。Ｇ２０１４は、ブレーキ状態Ｄ３１１３６と車両状態判定の結果から、「サイドブレーキがかかっていません。サイドブレーキをかけてから更新を開始してください。」を表示する例である。このように、開始ができずに更新を中断する場合にその内容をユーザに提示することによって、ユーザは適切に車両の状態を把握し、車両の状態をソフト更新が可能な状態に遷移させるための情報を得ることができる。
【実施例４】
【０１３３】
実施例１では、更新情報に含まれる適用方式によってソフト更新装置１１から更新対象ＥＣＵへの制御要求送信の順序（シーケンス）を変更して、異なる適用方式に対応する方法を示した。本実施例では、更新情報に基づいて制御要求を生成し、更新対象ＥＣＵが制御要求に含まれるパラメータに基づいて処理を行うことで、各方式に共通の順序で要求を発行して異なる適用方式に対応する方法を示す。
【０１３４】
図１７は、ＥＣＵ１  １２の適用処理情報Ｄ３１２０および本実施例においてソフト更新装置からＥＣＵ１  １２に送信されるデータ転送要求の構成例である。ここでは、書込みに必要な情報が最初にすべての更新対象ブロックについて列挙され、その後ろに送信データが結合されている例を示す。
【０１３５】
データサイズ１  Ｄ３１２８１、Ｄ３１２９１は、適用方式が差分または圧縮の場合に、圧縮または差分化されたデータサイズを示す。データサイズ２  Ｄ３１２８２、Ｄ３１２９２は、ＲＯＭに書き込むデータサイズを示す。適用方式が差分または圧縮の場合は、復元後のサイズが設定される。書込み先アドレスＤ３１２８３、Ｄ３１２９３は、更新対象ＥＣＵにおいて書きこむＲＯＭの書込み先アドレスを示す。これら以外の構成要素の内容は、図７の適用処理情報Ｄ３１２０と同様である。
【０１３６】
データ転送要求Ｄ１７００は、適用方式Ｄ１７０１、データサイズＤ１７０２、書込み先アドレスＤ１７０３から構成される。適用方式Ｄ１７０１は、更新対象ＥＣＵでどのように更新を適用するかを示す適用方式が設定され、「通常」、「差分」、「圧縮」などの識別情報が設定される。データサイズＤ１７０２は、ソフト更新装置１１からＥＣＵ１  １２に転送されるデータサイズを示す。書込み先アドレスＤ１７０３は、送信データを書きこむ先のアドレス情報を示す。
【０１３７】
図１８は、図１７の適用処理情報Ｄ３１２０に基づいて、ＥＣＵ１  １２との間で更新適用処理を行う場合、１つブロック（ブロック＃３）に対する適用処理のシーケンス例である。
【０１３８】
図１８（ａ）は本実施例におけるソフト更新装置１１とＥＣＵ１  １２との間での処理シーケンスである。
【０１３９】
ソフト更新装置１１の更新制御部１１０１１は、最初に更新情報５を読み出し、前記図１７の適用処理情報Ｄ３１２０に基づいてデータ転送要求を構成する（Ｓ３４０）。データ転送要求Ｄ１７００の適用方式Ｄ１７０１には、図１７の適用処理情報Ｄ３１２０の適用方式ＩＤ２  Ｄ３１２３の「差分」を設定する。データ転送要求Ｄ１７００のデータサイズＤ１７０２には、適用方式Ｄ１７０１が「通常」の場合には、図１７の適用処理情報Ｄ３１２０のデータサイズ２  Ｄ３１２８２の値を、適用方式Ｄ１７０１が「通常」以外の場合には図１７の適用処理情報Ｄ３１２０のデータサイズ１  Ｄ３１２８１の値を設定する。データ転送要求Ｄ１７００の書込み先アドレスＤ１７０３には、図１７の適用処理情報Ｄ３１２０の書込み先アドレスＤ３１２８３の値を設定する。データを構成した後、ソフト更新装置１１の更新制御部１１０１１は、構成した前記データ転送要求Ｄ１７００をＥＣＵ１に送信する（Ｓ３４１）。ＥＣＵ１は、データ転送要求を受信すると、データ転送要求受信処理を実施し（Ｓ３４２）、ソフト更新装置１１に応答を送信する。ソフト更新装置１１は、応答を受信する（Ｓ３４３）と、適用処理情報Ｄ３１２０からＥＣＵ１の更新データＤ３１２４を読み出し（Ｓ３４４）、ＥＣＵ１に送信する（Ｓ３４５）。ＥＣＵ１は、更新データを受信すると、更新データ受信処理を実施し（Ｓ３４６）、ソフト更新装置１１に応答を送信する（Ｓ３４７）。データ転送Ｓ３４５〜Ｓ３４６は、更新データＤ３１２４をすべて送信するまで繰り返す。ソフト更新装置１１は、更新データＤ３１２４をすべて送信すると、データ転送完了要求を送信する（Ｓ３４８）。ＥＣＵ１はデータ転送完了要求を受信すると、データ転送完了要求受信処理を実施し（Ｓ３４９）、ソフト更新装置１１に応答を返す（Ｓ３５０）。ソフト更新装置１１は応答を受信すると本ブロック（ブロック＃３）に対する処理を終了し、次のブロックの処理を行う。
【０１４０】
図１８（ｂ）は、ＥＣＵ１におけるデータ転送要求受信処理Ｓ３４２のフローチャートである。ＥＣＵ１は、最初に受信したデータ転送要求Ｄ１７００に含まれる情報（適用方式Ｄ１７０１、データサイズＤ１７０２、書込み先アドレスＤ１７０３）を保持する（Ｓ３４２１）。適用方式Ｄ１７０１が「差分」を示しているかどうかを確認する（Ｓ３４２２）。適用方式Ｄ１７０１が「差分」以外を示している場合（Ｓ３４２２のＮＯ）は、書込み先アドレスＤ１７０３に該当するＲＯＭのブロックを消去する（Ｓ３４２３）。適用方式Ｄ１７０１が「差分」を示している場合（Ｓ３４２２のＹＥＳ）は、そのまま終了する。図１８（ｂ）のシーケンスにおいて、情報保存（Ｓ３４２１）やＲＯＭブロック消去（Ｓ３４２３）で異常が発生した場合、ＥＣＵ１  １２はソフト更新装置１１に異常応答を返す。
【０１４１】
図１８（ｃ）は、ＥＣＵ１における更新データ受信処理Ｓ３４６のフローチャートである。ＥＣＵ１は、受信したデータをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に一時保存する（Ｓ３４６１）。次に前記Ｓ３４２１にて保持した適用方式Ｄ１７０１から、適用方式が「差分」かどうかを判定する（Ｓ３４６２）。適用方式Ｄ１７０１が「差分」を示している場合（Ｓ３４６２のＹＥＳ）は、そのまま終了する。適用方式Ｄ１７０１が「差分」以外を示している場合（Ｓ３４６２のＮＯ）は、一時領域に保存したデータサイズが規定サイズ（一時バッファとして確保可能な領域サイズ５１２Ｂｙｔｅなど）以上かどうかを確認する（Ｓ３４６３）。受信サイズが規定サイズ未満の場合（Ｓ３４６３のＮＯ）は、そのまま終了する。受信サイズが規定サイズ以上の場合（Ｓ３４６３のＹＥＳ）は、前記Ｓ３４２１にて保持した適用方式Ｄ１７０１から、適用方式が「通常」かどうかを判定する（Ｓ３４６４）。適用方式が「通常」以外（圧縮）の場合（Ｓ３４６４のＮＯ）、一時保存したデータを復元し（Ｓ３４６５）、復元したデータをＲＯＭに書き込む（Ｓ３４６６）。適用方式が「通常」以外（圧縮）の場合（Ｓ３４６４のＹＥＳ）、一時保存したデータをそのままＲＯＭに書き込む（Ｓ３４６６）。図１８（ｃ）のシーケンスにおいて、一時保存（Ｓ３４６１）、復元（Ｓ３４６５）やＲＯＭ書込み（Ｓ３４６６）で異常が発生した場合、ＥＣＵ１  １２はソフト更新装置１１に異常応答を返す。
【０１４２】
図１８（ｄ）は、ＥＣＵ１  １２におけるデータ転送完了要求受信処理Ｓ３４９のフローチャートである。ＥＣＵ１  １２は、前記Ｓ３４２１にて保持した適用方式Ｄ１７０１から、適用方式が「差分」かどうかを判定する（Ｓ３４９１）。適用方式が「差分」以外の場合（Ｓ３４９１のＮＯ）は、ＲＯＭに書き込んだデータを検証し（Ｓ３４９６）、処理を終了する。適用方式が「差分」の場合（Ｓ３４９１のＹＥＳ）は、一時保存したデータを復元し（Ｓ３４９２）、ＲＯＭ書込みの前に復元したデータの検証を行う（Ｓ３４９３）。検証が失敗した場合（Ｓ３４９３のＮＧ）は、処理を終了する。検証が成功した場合（Ｓ３４９３のＯＫ）は、前記Ｓ３４２１にて保持した書込み先アドレスＤ１７０３に該当するＲＯＭのブロックを消去する（Ｓ３４９４）し、書込み先アドレスＤ１７０３に復元したデータを書きこむ（Ｓ３４９５）。その後、ＲＯＭに書き込んだデータを検証し（Ｓ３４９６）、処理を終了する。図１８（ｄ）のシーケンスにおいて、データ検証（Ｓ３４９３またはＳ３４９６）に失敗した場合のほか、差分復元（Ｓ３４９２）やＲＯＭブロック消去（Ｓ３４９４）、ＲＯＭ書込み（Ｓ３４９５）で異常が発生した場合は、ＥＣＵ１  １２はソフト更新装置１１に異常応答を返す。
【０１４３】
このように適用処理情報Ｄ３１２０に適用方式、データサイズ１（差分または圧縮後のデータサイズ）、データサイズ２（ＲＯＭに書き込むデータサイズ）、書込み先アドレスを含め、これに基づいてＥＣＵ１に送信するデータ転送要求を構成し、受信するＥＣＵが前記データ転送要求の内容に基づいて処理を切り替えることで、同じＥＣＵに対して、更新のタイミングや更新内容によって異なる処理方式を指定するなど、どのＥＣＵに対してどの方式を用いるかを適用時に決定することができる。
【符号の説明】
【０１４４】
１：車両、２：サーバ、３：インターネット、４：アクセスネットワーク、５：更新情報、１０：車内ネットワーク、１１：ソフト更新装置、１２：ＥＣＵ１、１３：ＨＭＩ、１４：電源管理ＥＣＵ、１１０１、１２０１：制御部、１１０２：記憶部、１１０４：時刻管理部、１１０５：ＷＡＮ  Ｉ／Ｆ、１１０６：低速車内ＬＡＮ  Ｉ／Ｆ、１１０７：高速車内ＬＡＮ  Ｉ／Ｆ、１２０２：センサ、１２０３：アクチュエータ、１１０１０、１２０１０、１６０１０：制御プログラム、１１０１１：更新制御部、１１０１２：外部通信制御部、１１０１３：車内通信制御部、１１０１４：高速車内通信制御部、１２０１２、１６０１２：更新部
【図１】
2016170740.tif 000003
【図２（ａ）】
2016170740.tif 000004
【図２（ｂ）】
2016170740.tif 000005
【図３（ａ）】
2016170740.tif 000006
【図３（ｂ）】
2016170740.tif 000007
【図４】
2016170740.tif 000008
【図５】
2016170740.tif 000009
【図６】
2016170740.tif 000010
【図７】
2016170740.tif 000011
【図８（ａ）】
2016170740.tif 000012
【図８（ｂ）】
2016170740.tif 000013
【図９（ａ）】
2016170740.tif 000014
【図９（ｂ）】
2016170740.tif 000015
【図９（ｃ）】
2016170740.tif 000016
【図１０】
2016170740.tif 000017
【図１１（ａ）】
2016170740.tif 000018
【図１１（ｂ）】
2016170740.tif 000019
【図１１（ｃ）】
2016170740.tif 000020
【図１２】
2016170740.tif 000021
【図１３】
2016170740.tif 000022
【図１４（ａ）】
2016170740.tif 000023
【図１４（ｂ）】
2016170740.tif 000024
【図１５】
2016170740.tif 000025
【図１６（ａ）】
2016170740.tif 000026
【図１６（ｂ）】
2016170740.tif 000027
【図１７】
2016170740.tif 000028
【図１８（ａ）】
2016170740.tif 000029
【図１８（ｂ）】
2016170740.tif 000030
【図１８（ｃ）】
2016170740.tif 000031
【図１８（ｄ）】
2016170740.tif 000032