(57)【要約】【課題】制御プログラムを更新する装置として記憶容量が小さい装置を用いることができる送信装置、送信方法及びコンピュータプログラムを提供する。【解決手段】中継装置１０及びＥＣＵ１１ａは車両１００に搭載されている。中継装置１０は、ＥＣＵ１１ａに記憶されている制御プログラムＰ１を更新するための第１更新データを取得し、取得した第１更新データをＥＣＵ１１ａに送信する。そして、中継装置１０は、第１更新データを用いて行われた制御プログラムＰ１の更新が成功したか否かを判定する。中継装置１０には、制御プログラムＰ１を更新するための第２更新データが記憶されている。中継装置１０は、制御プログラムＰ１の更新が成功しなかったと判定した場合、第２更新データをＥＣＵ１１ａに送信する。【選択図】図１
2019021130.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載され、該車両内の情報処理装置に記憶されている制御プログラムを更新するための第１更新データを前記情報処理装置に送信する送信装置において、
前記制御プログラムを更新するための第２更新データが記憶されている記憶部と、
前記第１更新データを取得する取得部と、
該取得部が取得した第１更新データを前記情報処理装置に送信する送信部と、
該送信部が送信した第１更新データを用いて行われた前記制御プログラムの更新が成功したか否かを判定する判定部と
を備え、
前記送信部は、該判定部によって、前記更新が成功しなかったと判定された場合、前記第２更新データを前記情報処理装置に送信すること
を特徴とする送信装置。
【請求項２】
前記判定部によって、前記更新が成功したと判定された場合、前記第２更新データの内容を、前記第１更新データの内容に更新する更新部を備えること
を特徴とする請求項１に記載の送信装置。
【請求項３】
前記情報処理装置の数は２以上であり、
前記第１更新データ及び第２更新データ夫々は、複数の情報処理装置に記憶されている複数の制御プログラムに共通する共通部分を更新するためのデータであること
を特徴とする請求項１又は請求項２に記載の送信装置。
【請求項４】
前記情報処理装置の数は２以上であり、
前記第１更新データ及び第２更新データ夫々は、複数の情報処理装置中の１つに記憶されている前記制御プログラムにて、前記複数の情報処理装置に記憶されている複数の制御プログラムに共通する共通部分を除く他の部分である固有部分を更新するためのデータであること
を特徴とする請求項１又は請求項２に記載の送信装置。
【請求項５】
前記情報処理装置の数は２以上であり、
複数の前記情報処理装置間の通信を中継すること
を特徴とする請求項１から請求項４のいずれか１つに記載の送信装置。
【請求項６】
車両に搭載され、該車両内の情報処理装置に記憶されている制御プログラムを更新するための第１更新データ及び第２更新データを前記情報処理装置に送信する送信装置の送信方法であって、
該送信装置は、
前記第１更新データを取得し、
取得した第１更新データを前記情報処理装置に送信し、
送信した第１更新データを用いて行われた前記制御プログラムの更新が成功したか否かを判定し、
該更新が成功しなかったと判定した場合、前記第２更新データを送信すること
を特徴とする送信方法。
【請求項７】
車両に搭載され、該車両内の情報処理装置に記憶されている制御プログラムを更新するための第１更新データ及び第２更新データを前記情報処理装置に送信する送信装置に、
前記第１更新データを取得し、
取得した第１更新データの前記情報処理装置への送信を指示し、
送信された第１更新データを用いて行われた前記制御プログラムの更新が成功したか否かを判定し、
該更新が成功しなかったと判定した場合、前記第２更新データの送信を指示する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラムを更新するための更新データを送信する送信装置及び送信方法と、該更新データを送信するためのコンピュータプログラムとに関する。
【背景技術】
【０００２】
車載器の中には、ＣＰＵ(Central Processing Unit)が搭載され、このＣＰＵが制御プログラムを実行することによって、種々の処理を実行する情報処理装置（例えば、特許文献１を参照）がある。特許文献１に記載の情報処理装置には、２つの制御プログラムが記憶されている。ＣＰＵは、２つの制御プログラム中の１つを実行する。
【０００３】
特許文献１に記載の情報処理装置には、２つの制御プログラム中の１つを更新するための更新データが送信される。ＣＰＵは、更新データを受信した場合、受信した更新データに基づいて、実行していない制御プログラムを更新する。ＣＰＵは、制御プログラムの更新が成功した場合、更新した制御プログラムを実行する。ＣＰＵは、制御プログラムの更新が失敗した場合、更新した制御プログラムを実行せず、更新していない制御プログラムを継続して実行する。
このため、制御プログラムの更新が失敗した場合であっても、ＣＰＵが意図しない処理を実行することはない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１９８９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
車両に搭載される通信システムとして、複数の情報処理装置、例えばＥＣＵ(Electronic Control Unit)が中継装置に接続されている通信システムが挙げられる。この通信システムでは、中継装置は、複数の情報処理装置間の通信を中継する。
【０００６】
複数の情報処理装置が中継装置に接続されている通信システムにおいて、複数の情報処理装置夫々が、特許文献１に記載の情報処理装置と同様に構成された場合、複数の情報処理装置夫々に２つの制御プログラムが記憶される。この場合、通信システムに搭載される情報処理装置として、記憶容量が大きい情報処理装置が用いられる。記憶容量が大きい情報処理装置は高価である。このため、特許文献１に記載に記載されている複数の情報処理装置が中継装置に接続されている通信システムには、構築にかかる費用が嵩むという問題がある。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、制御プログラムを更新する情報処理装置として記憶容量が小さい装置を用いることができる送信装置、送信方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る送信装置は、車両に搭載され、該車両内の情報処理装置に記憶されている制御プログラムを更新するための第１更新データを前記情報処理装置に送信する送信装置において、前記制御プログラムを更新するための第２更新データが記憶されている記憶部と、前記第１更新データを取得する取得部と、該取得部が取得した第１更新データを前記情報処理装置に送信する送信部と、該送信部が送信した第１更新データを用いて行われた前記制御プログラムの更新が成功したか否かを判定する判定部とを備え、前記送信部は、該判定部によって、前記更新が成功しなかったと判定された場合、前記第２更新データを前記情報処理装置に送信することを特徴とする。
【０００９】
本発明に係る送信装置は、前記判定部によって、前記更新が成功したと判定された場合、前記第２更新データの内容を、前記第１更新データの内容に更新する更新部を備えることを特徴とする。
【００１０】
本発明に係る送信装置は、前記情報処理装置の数は２以上であり、前記第１更新データ及び第２更新データ夫々は、複数の情報処理装置に記憶されている複数の制御プログラムに共通する共通部分を更新するためのデータであることを特徴とする。
【００１１】
本発明に係る送信装置は、前記情報処理装置の数は２以上であり、前記第１更新データ及び第２更新データ夫々は、複数の情報処理装置中の１つに記憶されている前記制御プログラムにて、前記複数の情報処理装置に記憶されている複数の制御プログラムに共通する共通部分を除く他の部分である固有部分を更新するためのデータであることを特徴とする。
【００１２】
本発明に係る送信装置は、前記情報処理装置の数は２以上であり、複数の前記情報処理装置間の通信を中継することを特徴とする。
【００１３】
本発明に係る送信方法は、車両に搭載され、該車両内の情報処理装置に記憶されている制御プログラムを更新するための第１更新データ及び第２更新データを前記情報処理装置に送信する送信装置の送信方法であって、該送信装置は、前記第１更新データを取得し、取得した第１更新データを前記情報処理装置に送信し、送信した第１更新データを用いて行われた前記制御プログラムの更新が成功したか否かを判定し、該更新が成功しなかったと判定した場合、前記第２更新データを送信することを特徴とする。
【００１４】
本発明に係るコンピュータプログラムは、車両に搭載され、該車両内の情報処理装置に記憶されている制御プログラムを更新するための第１更新データ及び第２更新データを前記情報処理装置に送信する送信装置に、前記第１更新データを取得し、取得した第１更新データの前記情報処理装置への送信を指示し、送信された第１更新データを用いて行われた前記制御プログラムの更新が成功したか否かを判定し、該更新が成功しなかったと判定した場合、前記第２更新データの送信を指示する処理を実行させる。
【００１５】
本発明に係る送信装置、送信方法及びコンピュータプログラムにあっては、第２更新データは、例えば、過去に、制御プログラムを更新するために用いられ、制御プログラムの更新の成功を実現したデータである。第１更新データを取得し、取得した第１更新データを情報処理装置に送信する。そして、情報処理装置において第１更新データを用いて行われた制御プログラムの更新が成功したか否かを判定する。制御プログラムの更新が成功しなかったと判定した場合、第２更新データを送信する。これにより、情報処理装置では、第２更新データを用いて制御プログラムが更新される。
情報処理装置に記憶される制御プログラムの数は１つでよい。このため、制御プログラムを更新する情報処理装置として記憶容量が小さい装置を用いることができる。
【００１６】
本発明に係る送信装置にあっては、第１更新データを用いて行った制御プログラムの更新が成功したと判定した場合、第２更新データの内容を第１更新データの内容に更新する。従って、第２更新データは、第１更新データが送信される時点において、情報処理装置に記憶されている制御プログラムへの更新に用いられたデータである。
【００１７】
本発明に係る送信装置にあっては、複数の情報処理装置夫々は、第１更新データ又は第２更新データを用いて、自装置の制御プログラムにおいて、複数の制御プログラムに共通する共通部分を更新する。例えば、複数の情報処理装置が１つの通信線に接続されている場合、第１更新データ又は第２の更新データの１回の送信によって、複数の制御プログラムの共通部分が更新される。
【００１８】
本発明に係る送信装置にあっては、複数の情報処理装置夫々は、第１更新データ又は第２更新データを用いて、自装置の制御プログラムの固有部分を更新する。
【００１９】
本発明に係る送信装置にあっては、複数の情報処理装置間の通信を中継すると共に、第１更新データ及び第２更新データを複数の情報処理装置夫々に送信する。
【発明の効果】
【００２０】
本発明によれば、制御プログラムを更新する情報処理装置として記憶容量が小さい装置を用いることができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１における通信システムの要部構成を示すブロック図である。
【図２】ＥＣＵの要部構成を示すブロック図である。
【図３】ＥＣＵの制御プログラムの構成の説明図である。
【図４】中継装置の要部構成を示すブロック図である。
【図５】記憶部の記憶内容の説明図である。
【図６】共通データ送信処理の手順を示すフローチャートである。
【図７】共通データ送信処理の手順を示すフローチャートである。
【図８】固有データ送信処理の手順を示すフローチャートである。
【図９】固有データ送信処理の手順を示すフローチャートである。
【図１０】共通部分更新処理の手順を示すフローチャートである。
【図１１】固有部分更新処理の手順を示すフローチャートである。
【図１２】一時記憶部に新共通データが記憶された場合における中継装置及びＥＣＵの動作の説明図である。
【図１３】ＥＣＵの制御プログラムの更新が成功した場合における中継装置の動作の説明図である。
【図１４】ＥＣＵの全ての制御プログラムの更新が成功しなかった場合における中継装置の動作の説明図である。
【図１５】実施の形態２における通信システムの要部構成を示すブロック図である。
【図１６】実施の形態３における通信システムの要部構成を示すブロック図である。
【図１７】実施の形態４における通信システムの要部構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、実施の形態１における通信システム１の要部構成を示すブロック図である。通信システム１は、中継装置１０、４つのＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ、無線器１３及びサーバ１４を備える。中継装置１０、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ及び無線器１３は、車両１００内に配置されている。サーバ１４は車両１００の外側に配置されている。
【００２３】
中継装置１０には、ＥＣＵバス２５ａ，２５ｂ及び無線器バス２６が各別に接続されている。ＥＣＵバス２５ａには、ＥＣＵ１１ａ，１２ａが更に接続されている。ＥＣＵバス２５ｂには、ＥＣＵ１１ｂ，１２ｂが更に接続されている。無線器バス２６には、無線器１３が更に接続されている。サーバ１４は、ネットワークＮ１に接続されている。
【００２４】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々には、図示しない電気機器が接続されている。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々は、自装置に接続されている電気機器に、種々の動作を指示する制御データを出力することによって、自装置に対応する電気機器の動作を制御する。
【００２５】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々は、通信装置として機能し、相互に有線で通信する。中継装置１０は、ＥＣＵバス２５ａに接続されているＥＣＵ、即ち、ＥＣＵ１１ａ，１２ａ中の１つと、ＥＣＵバス２５ｂに接続されているＥＣＵ、即ち、ＥＣＵ１１ｂ，１２ｂ中の１つとの間の通信を中継する。
【００２６】
例えば、ＥＣＵ１２ａは、車両１００のドアのロック又はアンロックの指示を使用者から受け付け、受け付けた指示を示す指示データを、中継装置１０に送信する。中継装置１０は、受信した指示データを、車両１００のドアのロック及びアンロックを行うドアモータに接続されているＥＣＵ１１ｂに送信する。また、例えば、ＥＣＵ１１ａは、車両１００の加速度を検出する加速度センサを有し、加速度センサが検出した加速度を示す加速度データを、中継装置１０に送信する。中継装置１０は、受信した加速度データを、車両１００のエアバッグの動作を制御するＥＣＵ１２ｂに送信する。
【００２７】
サーバ１４は、ネットワークＮ１を介して、無線で無線器１３にデータを送信する。無線器１３は、サーバ１４からデータを受信した場合、受信したデータを、無線器バス２６を介して中継装置１０に送信する。中継装置１０は、無線器バス２６を介してデータを受信した場合、受信したデータを、ＥＣＵバス２５ａ，２５ｂ中の少なくとも１つを介して送信する。
【００２８】
中継装置１０及びＥＣＵ１１ａ，１２ａ中の１つの装置が、ＥＣＵバス２５ａを介して送信したデータは、ＥＣＵバス２５ａに接続されている他の全ての装置によって受信される。同様に、中継装置１０及びＥＣＵ１１ｂ，１２ｂ中の１つの装置が、ＥＣＵバス２５ｂを介して送信したデータは、ＥＣＵバス２５ｂに接続されている他の全ての装置によって受信される。
【００２９】
ＥＣＵバス２５ａ，２５ｂ及び無線器バス２６夫々を介した通信には、ＣＡＮ(Controller Area Network)プロトコル又はＣＡＮ−ＦＤ(Controller Area Network with Flexible Data rate)プロトコル等が用いられる。
【００３０】
図２はＥＣＵ１１ａの要部構成を示すブロック図である。ＥＣＵ１１ａは、出力部３０、通信部３１、一時記憶部３２、記憶部３３及びＣＰＵ３４を有する。これらは、内部バス３５に各別に接続されている。出力部３０は、内部バス３５の他に、ＥＣＵ１１ａに対応する図示しない電気機器に接続されている。通信部３１は、内部バス３５の他に、ＥＣＵバス２５ａに接続されている。
【００３１】
出力部３０は、ＣＰＵ３４の指示に従って、電気機器に制御データを出力する。電気機器は、出力部３０から入力された制御データが示す指示に従って動作する。電気機器がドアロックモータである場合、電気機器は、出力部３０から入力された制御データが示す指示に従って、例えば、車両１００のドアのロック又はアンロックを行う。
【００３２】
通信部３１は、ＥＣＵバス２５ａを介して送信されたデータを受信する。通信部３１は、ＣＰＵ３４の指示に従って、データを、ＥＣＵバス２５ａを介して送信する。
一時記憶部３２は、例えば、ＲＡＭ(Random Access Memory)である。ＣＰＵ３４は、一時記憶部３２にデータを記憶すると共に、一時記憶部３２からデータを読み出す。一時記憶部３２に記憶されているデータは、一時記憶部３２に電力が供給されている間、保持される。一時記憶部３２への電力供給が停止した場合、一時記憶部３２に記憶されているデータは消去される。
【００３３】
記憶部３３は不揮発性メモリである。記憶部３３には、制御プログラムＰ１及び更新プログラムＰ２が記憶されている。ＣＰＵ３４は、制御プログラムＰ１を実行することによって、例えば、電気機器の動作を制御する動作制御処理を実行する。ＣＰＵ３４は、更新プログラムＰ２を実行することによって、制御プログラムＰ１を更新する処理を実行する。
【００３４】
ＥＣＵ１１ｂ，１２ａ，１２ｂ夫々はＥＣＵ１１ａと同様に構成されている。ＥＣＵ１１ａの構成の説明において、ＥＣＵ１１ａ及びＥＣＵバス２５ａ夫々を、ＥＣＵ１１ｂ及びＥＣＵバス２５ｂに置き換えることによって、ＥＣＵ１１ｂの構成を説明することができる。ＥＣＵ１１ａの構成の説明において、ＥＣＵ１１ａをＥＣＵ１２ａに置き換えることによって、ＥＣＵ１２ａの構成を説明することができる。ＥＣＵ１１ａの構成の説明において、ＥＣＵ１１ａ及びＥＣＵバス２５ａ夫々を、ＥＣＵ１２ｂ及びＥＣＵバス２５ｂに置き換えることによって、ＥＣＵ１２ｂの構成を説明することができる。
【００３５】
図３は、ＥＣＵ１１ａの制御プログラムＰ１の構成の説明図である。ＥＣＵ１１ａの制御プログラムＰ１は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに記憶されている４つの制御プログラムＰ１に共通する共通部分を有する。ＥＣＵ１１ａの制御プログラムＰ１において、共通部分を除く他の部分は、ＥＣＵ１１ａの制御プログラムＰ１の固有部分である。
【００３６】
ＥＣＵ１１ｂ，１２ａ，１２ｂ夫々の制御プログラムＰ１は、ＥＣＵ１１ａの制御プログラムＰ１と同様に構成されている。従って、ＥＣＵ１１ｂ，１２ａ，１２ｂ夫々の制御プログラムＰ１は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに記憶されている４つの制御プログラムＰ１に共通する共通部分と、この共通部分を除く他の部分である固有部分とによって構成される。
【００３７】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々の制御プログラムＰ１の共通部分は、新共通データＣ１又は旧共通データＣ２を用いて更新される。ＥＣＵ１１ａの制御プログラムＰ１の固有部分は、新固有データ４１ａ又は旧固有データ５１ａを用いて更新される。ＥＣＵ１１ｂの制御プログラムＰ１の固有部分は、図示しない新固有データ又は旧固有データ５１ｂ（図５参照）を用いて更新される。ＥＣＵ１２ａの制御プログラムＰ１の固有部分は、図示しない新固有データ又は旧固有データ５２ａ（図５参照）を用いて更新される。ＥＣＵ１２ｂの制御プログラムＰ１の固有部分は、図示しない新固有データ又は旧固有データ５２ｂ（図５参照）を用いて更新される。
【００３８】
新共通データＣ１、新固有データ４１ａ、及び、ＥＣＵ１１ｂ，１２ａ，１２ｂに係る３つの新固有データ夫々は第１更新データに相当する。旧共通データＣ２及び旧固有データ５１ａ，５１ｂ，５２ａ，５２ｂ夫々は第２更新データに相当する。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々は情報処理装置として機能する。
【００３９】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々では、通信部３１は、中継装置１０から新共通データＣ１及び旧共通データＣ２を受信する。ＣＰＵ３４は、更新プログラムＰ２を実行することによって、制御プログラムＰ１の共通部分を更新する共通部分更新処理を実行する。
【００４０】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々では、通信部３１は、中継装置１０から、自装置に係る新固有データ及び旧固有データを受信する。例えば、ＥＣＵ１１ａの通信部３１は、中継装置１０から新固有データ４１ａ及び旧固有データ５１ａを受信する。ＣＰＵ３４は、更新プログラムＰ２を実行することによって、制御プログラムＰ１の固有部分を更新する固有部分更新処理を実行する。
【００４１】
図４は中継装置１０の要部構成を示すブロック図である。中継装置１０は、ＥＣＵ通信部６０ａ，６０ｂ、無線器通信部６１、一時記憶部６２、記憶部６３及びＣＰＵ６４を有する。これらは、内部バス６５に各別に接続されている。ＥＣＵ通信部６０ａ，６０ｂ夫々は、内部バス６５の他に、ＥＣＵバス２５ａ，２５ｂに接続されている。無線器通信部６１は、内部バス６５の他に、無線器バス２６に接続されている。
【００４２】
ＥＣＵ通信部６０ａは、ＥＣＵ１１ａ又はＥＣＵ１２ａがＥＣＵバス２５ａを介して送信したデータを受信すると共に、ＣＰＵ６４の指示に従って、ＥＣＵバス２５ａを介して、ＥＣＵ１１ａ，１２ａにデータを送信する。同様に、ＥＣＵ通信部６０ｂは、ＥＣＵ１１ｂ又はＥＣＵ１２ｂがＥＣＵバス２５ｂを介して送信したデータを受信すると共に、ＣＰＵ６４の指示に従って、ＥＣＵバス２５ｂを介して、ＥＣＵ１１ｂ，１２ｂにデータを送信する。
【００４３】
図１に示すサーバ１４は、新共通データＣ１と、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々に係る新固有データとを無線で無線器１３に送信する。無線器１３は、サーバ１４から、これらのデータ中の１つを受信した場合、受信したデータを、図４に示す無線器通信部６１に送信する。無線器通信部６１は、無線器１３が無線器バス２６を介して送信したデータを受信する。
【００４４】
一時記憶部６２は、例えばＲＡＭである。ＣＰＵ６４は、一時記憶部６２にデータを記憶すると共に、一時記憶部６２からデータを読み出す。一時記憶部６２に記憶されているデータは、一時記憶部６２に電力が供給されている間、保持される。一時記憶部６２への電力供給が停止した場合、一時記憶部６２に記憶されているデータは消去される。
【００４５】
図５は、記憶部６３の記憶内容の説明図である。記憶部６３は不揮発性メモリである。記憶部６３には、制御プログラムＫ１、更新プログラムＫ２、旧共通データＣ２及び旧固有データ５１ａ，５１ｂ，５２ａ，５２ｂが記憶されている。
【００４６】
図４に示すＣＰＵ６４は、制御プログラムＫ１を実行することによって、記憶処理、中継処理、共通データ送信処理及び４つの固有データ送信処理を実行する。記憶処理は、無線器通信部６１が受信したデータを取得し、取得したデータを一時記憶部６２に記憶する処理である。中継処理は、ＥＣＵ１１ａ，１１ｂ中の１つと、ＥＣＵ１２ａ，１２ｂ中の１つとの間の通信を中継する処理である。共通データ送信処理は、新共通データＣ１又は旧共通データＣ２をＥＣＵバス２５ａ，２５ｂを介して送信する処理である。４つの固有データ送信処理夫々は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに係る新固有データ又は旧固有データをＥＣＵバス２５ａ又はＥＣＵバス２５ｂを介して送信する処理である。制御プログラムＫ１は、ＣＰＵ６４に、記憶処理、中継処理、共通データ送信処理及び４つの固有データ送信処理を実行させるためのコンピュータプログラムである。
【００４７】
図１に示すサーバ１４は、更に、制御プログラムＫ１を更新させるための更新データを無線で無線器１３に送信する。無線器１３は、サーバ１４から更新データを受信した場合、無線器バス２６を介して、受信した更新データを、図４に示す無線器通信部６１に送信する。記憶処理において、ＣＰＵ６４は、無線器通信部６１が受信した更新データを、無線器通信部６１から取得し、取得した更新データを一時記憶部６２に記憶する。ＣＰＵ６４は、更新プログラムＫ２を実行することによって、制御プログラムＫ１を更新する更新処理を実行する。更新処理では更新データが用いられる。
【００４８】
なお、制御プログラムＫ１は、ＣＰＵ６４が読み取り可能に、記憶媒体Ａ１に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体Ａ１から読み出された制御プログラムＫ１が記憶部６３に記憶される。記憶媒体Ａ１は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。光ディスクは、ＣＤ（Compact Disc）−ＲＯＭ(Read Only Memory)、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、又は、ＢＤ（Blu-ray(登録商標) Disc）等である。磁気ディスクは、例えばハードディスクである。また、図示しない通信網に接続されている図示しない装置から制御プログラムＫ１をダウンロードし、ダウンロードした制御プログラムＫ１を記憶部６３に記憶してもよい。
【００４９】
ＣＰＵ６４は、記憶処理、中継処理、共通データ送信処理及び４つの固有データ送信処理を時分割方式で実行する。
ＣＰＵ６４は、無線器通信部６１がデータを受信する都度、記憶処理を実行する。記憶処理では、ＣＰＵ６４は、無線器通信部６１が受信したデータを、無線器通信部６１から取得し、取得したデータを一時記憶部６２に記憶し、記憶処理を終了する。一時記憶部６２に記憶されるデータ、即ち、ＣＰＵ６４が取得するデータは、新共通データＣ１、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々に係る新固有データ、及び、更新データ等である。ＣＰＵ６４は取得部として機能する。
【００５０】
ＣＰＵ６４は、一時記憶部６２に更新データが記憶されている場合、更新処理を実行する。更新処理では、ＣＰＵ６４は、一時記憶部６２に記憶されている更新データを用いて制御プログラムＫ１を更新する。ＣＰＵ６４は、制御プログラムＫ１を更新した後、一時記憶部６２から更新データを消去し、更新処理を終了する。
【００５１】
ＣＰＵ６４は、ＥＣＵ通信部６０ａ，６０ｂ中の１つが、送信宛が中継装置１０とは異なるデータを受信する都度、中継処理を実行する。中継処理では、ＣＰＵ６４は、ＥＣＵ通信部６０ａ，６０ｂ中の１つによって受信されたデータが、中継すべきデータであるか否かを判定する。ＣＰＵ６４は、受信されたデータが中継すべきデータではないと判定した場合、受信されたデータを破棄し、中継処理を終了する。
【００５２】
ＣＰＵ６４は、受信されたデータが中継すべきデータであると判定した場合、例えば、受信されたデータの内容に基づいて、ＥＣＵ通信部６０ａ，６０ｂの中から、受信されたデータを送信するＥＣＵ通信部を決定する。その後、ＣＰＵ６４は、決定したＥＣＵ通信部に指示して、受信されたデータを送信させ、中継処理を終了する。
【００５３】
図６及び図７は、共通データ送信処理の手順を示すフローチャートである。共通データ送信処理では、ＣＰＵ６４は、一時記憶部６２に新共通データＣ１が記憶されているか否かを判定する（ステップＳ１）。ＣＰＵ６４は、一時記憶部６２に新共通データＣ１が記憶されていないと判定した場合（Ｓ１：ＮＯ）、ステップＳ１を再び実行し、記憶処理において、新共通データＣ１が一時記憶部６２に記憶されるまで待機する。
【００５４】
ＣＰＵ６４は、一時記憶部６２に新共通データＣ１が記憶されていると判定した場合（Ｓ１：ＹＥＳ）、一時記憶部６２に記憶されている新共通データＣ１を構成する複数の共通部分データを生成し（ステップＳ２）、共通部分データの送信をＥＣＵ通信部６０ａ，６０ｂに指示する（ステップＳ３）。これにより、ＥＣＵ通信部６０ａ，６０ｂは、ＥＣＵバス２５ａ，２５ｂを介して、同一の共通部分データをＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの４つの通信部３１に送信する。ステップＳ３において送信が指示される共通部分データは、ステップＳ２で生成された複数の共通部分データ中の１つである。
【００５５】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々では、前述したように、ＣＰＵ３４は、共通部分更新処理を実行する。共通部分更新処理では、ＣＰＵ３４は、通信部３１が共通部分データを受信する都度、通信部３１が受信した共通部分データを用いて、制御プログラムＰ１の共通部分の一部を更新する。ＣＰＵ３４は、通信部３１が受信した共通部分データを用いた更新が完了した場合、通信部３１に指示して、更新の完了を示す更新完了データを、ＥＣＵバス２５ａ又はＥＣＵバス２５ｂを介して中継装置１０に送信する。更新完了データの送信宛は中継装置１０である。
【００５６】
共通データ送信処理において、中継装置１０のＣＰＵ６４は、ステップＳ３を実行した後、ＥＣＵ通信部６０ａ，６０ｂがＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全てから更新完了データを受信したか否かを判定する（ステップＳ４）。ＣＰＵ６４は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ中の少なくとも１つから更新完了データを受信していないと判定した場合（Ｓ４：ＮＯ）、ステップＳ４を再び実行し、ＥＣＵ通信部６０ａ，６０ｂがＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全てから更新完了データを受信するまで待機する。
【００５７】
ＣＰＵ６４は、ＥＣＵ通信部６０ａ，６０ｂがＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全てから更新完了データを受信したと判定した場合（Ｓ４：ＹＥＳ）、ステップＳ２で生成した全ての共通部分データを、ＥＣＵ通信部６０ａ，６０ｂ夫々が送信したか否かを判定する（ステップＳ５）。ＣＰＵ６４は、ＥＣＵ通信部６０ａ，６０ｂ夫々が全ての共通部分データを送信していないと判定した場合（Ｓ５：ＮＯ）、ステップＳ３を再び実行し、次の共通部分データの送信をＥＣＵ通信部６０ａ，６０ｂに指示する。これにより、ステップＳ２で生成された複数の共通部分データは順次送信される。中継装置１０は送信装置として機能する。
【００５８】
ＣＰＵ６４は、ＥＣＵ通信部６０ａ，６０ｂ夫々が全ての共通部分データを送信したと判定した場合（Ｓ５：ＹＥＳ）、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々において、制御プログラムＰ１の共通部分の更新が成功したか否かを確認するために必要な確認用データの送信を、ＥＣＵ通信部６０ａ，６０ｂに指示する（ステップＳ６）。これにより、ＥＣＵ通信部６０ａ，６０ｂは確認用データを送信し、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの４つの通信部３１は確認用データを受信する。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々には、各ＥＣＵの制御プログラムＰ１の共通部分の更新に対応する確認用データが送信される。
【００５９】
確認用データは、共通部分の更新によって得られるべき制御プログラムＰ１を用いたデータ演算の結果を示す。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々の共通部分更新処理では、ＣＰＵ３４は、通信部３１が全ての共通部分データを受信した場合、共通部分が更新された制御プログラムＰ１を用いてデータ演算を実行し、このデータ演算の結果が、自装置に対応する確認用データが示す結果と一致するか否かに基づいて、制御プログラムＰ１の共通部分の更新が成功したか否かを判定する。
【００６０】
ＣＰＵ３４は、データ演算の結果が、確認用データが示す結果と一致している場合、更新が成功したと判定し、通信部３１に指示して、更新の成功を示す成否データを中継装置１０のＥＣＵ通信部６０ａ又はＥＣＵ通信部６０ｂに送信する。ＣＰＵ３４は、データ演算の結果が、確認用データが示す結果と一致していない場合、更新が成功しなかったと判定し、通信部３１に指示して、更新の失敗を示す成否データを中継装置１０のＥＣＵ通信部６０ａ又はＥＣＵ通信部６０ｂに送信させる。成否データの送信宛も中継装置１０である。
【００６１】
共通データ送信処理において、中継装置１０のＣＰＵ６４は、ステップＳ６を実行した後、ＥＣＵ通信部６０ａ，６０ｂがＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全てから成否データを受信したか否かを判定する（ステップＳ７）。ＣＰＵ６４は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ中の少なくとも１つから成否データを受信していないと判定した場合（Ｓ７：ＮＯ）、ステップＳ７を再び実行し、ＥＣＵ通信部６０ａ，６０ｂがＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全てから成否データを受信するまで待機する。
【００６２】
ＣＰＵ６４は、ＥＣＵ通信部６０ａ，６０ｂがＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全てから成否データを受信したと判定した場合（Ｓ７：ＹＥＳ）、ＥＣＵ通信部６０ａ，６０ｂが受信した全ての成否データが示す内容に基づいて、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全ての制御プログラムＰ１に係る共通部分の更新が成功したか否かを判定する（ステップＳ８）。ここで、共通部分の更新は、ＥＣＵ通信部６０ａ又はＥＣＵ通信部６０ｂが送信した新共通データＣ１を用いて行われた更新であり、ＣＰＵ６４は判定部としても機能する。
【００６３】
ステップＳ８では、ＣＰＵ６４は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂから受信した全ての成否データが更新の成功を示す場合、更新が成功したと判定する。ＣＰＵ６４は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂから受信した成否データ中の少なくとも１つが更新の失敗を示す場合、更新が成功しなかったと判定する。
【００６４】
ＣＰＵ６４は、更新が成功したと判定した場合（Ｓ８：ＹＥＳ）、記憶部６３に記憶されている旧共通データＣ２の内容を、一時記憶部６２に記憶されている新共通データＣ１の内容に更新する（ステップＳ９）。従って、旧共通データＣ２の内容は、新共通データＣ１が送信される時点において、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの記憶部３３に記憶されている制御プログラムＰ１の共通部分への更新に用いられた新共通データＣ１の内容である。ＣＰＵ６４は更新部としても機能する。
ＣＰＵ６４は、ステップＳ９を実行した後、一時記憶部６２から新共通データＣ１を消去し（ステップＳ１０）、共通データ送信処理を終了する。その後、ＣＰＵ６４は、再び共通データ送信処理を実行し、新共通データＣ１が一時記憶部６２に記憶されるまで待機する。
【００６５】
ＣＰＵ６４は、更新が成功しなかったと判定した場合（Ｓ８：ＮＯ）、一時記憶部６２から新共通データＣ１を消去し（ステップＳ１１）、記憶部６３に記憶されている旧共通データＣ２を読み出す（ステップＳ１２）。ＣＰＵ６４は、次に、ステップＳ１２で読み出した旧共通データＣ２を構成する複数の共通部分データを生成する（ステップＳ１３）。ＣＰＵ６４は、ステップＳ１３を実行した後、ステップＳ１４を実行する。共通データ送信処理のステップＳ１４〜Ｓ１９夫々は、共通データ送信処理のステップＳ３〜Ｓ８と同様である。このため、ステップＳ１４〜Ｓ１９夫々の詳細な説明を省略する。
【００６６】
ステップＳ１４において、送信が指示される共通部分データは、ステップＳ１３で生成された複数の共通部分データ中の１つである。ＣＰＵ６４は、更新が成功しなかったと判定した場合（Ｓ１９：ＮＯ）、ステップＳ１２を実行し、旧共通データＣ２を再び送信する。ＣＰＵ６４は、更新が成功したと判定した場合（Ｓ１９：ＹＥＳ）、共通データ送信処理を終了する。その後、ＣＰＵ６４は、共通データ送信処理を実行し、一時記憶部６２に新共通データＣ１が記憶されるまで待機する。
旧共通データＣ２の内容は、過去に更新の成功を実現した新共通データＣ１の内容である。このため、ステップＳ１９において、更新が成功しなかったと判定される確率は低い。
【００６７】
以上のように、ＥＣＵ通信部６０ａ，６０ｂは、一時記憶部６２に記憶されている新共通データＣ１、即ち、ＣＰＵ６４が無線器通信部６１から取得した新共通データＣ１をＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに送信する。また、ＣＰＵ６４が制御プログラムＰ１の共通部分の更新が成功しなかったと判定した場合、ＥＣＵ通信部６０ａ，６０ｂ夫々は旧共通データＣ２をＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに送信する。ＥＣＵ通信部６０ａ，６０ｂ夫々は送信部として機能する。
【００６８】
図８及び図９は、固有データ送信処理の手順を示すフローチャートである。ここでは、ＥＣＵ１１ａの制御プログラムＰ１に係る新固有データ４１ａ又は旧固有データ５１ａを送信する固有データ送信処理の手順を説明する。この固有データ送信処理の手順は、共通データ送信処理の手順と同様である。
【００６９】
ＥＣＵ１１ａに係る固有データ送信処理では、中継装置１０のＣＰＵ６４は、一時記憶部６２に新固有データ４１ａが記憶されているか否かを判定する（ステップＳ２１）。ＣＰＵ６４は、一時記憶部６２に新固有データ４１ａが記憶されていないと判定した場合（Ｓ２１：ＮＯ）、ステップＳ２１を再び実行し、記憶処理において、新固有データ４１ａが一時記憶部６２に記憶されるまで待機する。
【００７０】
ＣＰＵ６４は、一時記憶部６２に新固有データ４１ａが記憶されていると判定した場合（Ｓ２１：ＹＥＳ）、一時記憶部６２に記憶されている新固有データ４１ａを構成する複数の固有部分データを生成し（ステップＳ２２）、固有部分データの送信をＥＣＵ通信部６０ａに指示する（ステップＳ２３）。これにより、ＥＣＵ通信部６０ａは、ＥＣＵバス２５ａを介して、固有部分データをＥＣＵ１１ａの通信部３１に送信する。ステップＳ２３において送信が指示される固有部分データは、ステップＳ２２で生成された複数の固有部分データ中の１つである。
【００７１】
ＥＣＵ１１ａでは、前述したように、ＣＰＵ３４は、固有部分更新処理を実行する。固有部分更新処理では、ＣＰＵ３４は、通信部３１が固有部分データを受信する都度、通信部３１が受信した固有部分データを用いて、制御プログラムＰ１の固有部分の一部を更新する。ＣＰＵ３４は、通信部３１が受信した固有部分データを用いた更新が完了した場合、通信部３１に指示して、更新の完了を示す更新完了データを、ＥＣＵバス２５ａを介して中継装置１０のＥＣＵ通信部６０ａに送信する。
【００７２】
固有データ送信処理において、中継装置１０のＣＰＵ６４は、ステップＳ２３を実行した後、ＥＣＵ通信部６０ａがＥＣＵ１１ａの通信部３１から更新完了データを受信したか否かを判定する（ステップＳ２４）。ＣＰＵ６４は、ＥＣＵ１１ａの通信部３１から更新完了データを受信していないと判定した場合（Ｓ２４：ＮＯ）、ステップＳ２４を再び実行し、ＥＣＵ通信部６０ａがＥＣＵ１１ａの通信部３１から更新完了データを受信するまで待機する。
【００７３】
ＣＰＵ６４は、ＥＣＵ通信部６０ａがＥＣＵ１１ａの通信部３１から更新完了データを受信したと判定した場合（Ｓ２４：ＹＥＳ）、ステップＳ２２で生成した全ての固有部分データを、ＥＣＵ通信部６０ａが送信したか否かを判定する（ステップＳ２５）。ＣＰＵ６４は、ＥＣＵ通信部６０ａが全ての固有部分データを送信していないと判定した場合（Ｓ２５：ＮＯ）、ステップＳ２３を再び実行し、次の固有部分データの送信をＥＣＵ通信部６０ａに指示する。これにより、ステップＳ２２で生成された複数の固有部分データは順次送信される。
【００７４】
ＣＰＵ６４は、ＥＣＵ通信部６０ａが全ての固有部分データを送信したと判定した場合（Ｓ２５：ＹＥＳ）、ＥＣＵ１１ａにおいて、制御プログラムＰ１の固有部分の更新が成功したか否かを確認するために必要な確認用データの送信を、ＥＣＵ通信部６０ａに指示する（ステップＳ２６）。これにより、ＥＣＵ通信部６０ａは、ＥＣＵ１１ａに対応する確認用データを送信し、ＥＣＵ１１ａの通信部３１は、ＥＣＵ１１ａに対応する確認用データを受信する。
【００７５】
確認用データは、固有部分の更新によって生成されるべき制御プログラムＰ１を用いたデータ演算の結果を示す。ＥＣＵ１１ａの固有部分更新処理では、ＣＰＵ３４は、通信部３１が全ての固有部分データを受信した場合、固有部分が更新された制御プログラムＰ１を用いてデータ演算を実行し、このデータ演算の結果が、ＥＣＵ１１ａに対応する確認用データが示す結果と一致するか否かに基づいて、制御プログラムＰ１の固有部分の更新が成功したか否かを判定する。
【００７６】
ＣＰＵ３４は、データ演算の結果が、確認用データが示す結果と一致している場合、更新が成功したと判定し、通信部３１に指示して、更新の成功を示す成否データを中継装置１０のＥＣＵ通信部６０ａに送信させる。ＣＰＵ３４は、データ演算の結果が、確認用データが示す結果と一致していない場合、更新が成功しなかったと判定し、通信部３１に指示して、更新の失敗を示す成否データを中継装置１０のＥＣＵ通信部６０ａに送信させる。
【００７７】
固有データ送信処理において、中継装置１０のＣＰＵ６４は、ステップＳ２６を実行した後、ＥＣＵ通信部６０ａがＥＣＵ１１ａから成否データを受信したか否かを判定する（ステップＳ２７）。ＣＰＵ６４は、ＥＣＵ１１ａから成否データを受信していないと判定した場合（Ｓ２７：ＮＯ）、ステップＳ２７を再び実行し、ＥＣＵ通信部６０ａがＥＣＵ１１ａから成否データを受信するまで待機する。
【００７８】
ＣＰＵ６４は、ＥＣＵ通信部６０ａがＥＣＵ１１ａの通信部３１から成否データを受信したと判定した場合（Ｓ２７：ＹＥＳ）、ＥＣＵ通信部６０ａが受信した成否データが示す内容に基づいて、ＥＣＵ１１ａの制御プログラムＰ１に係る固有部分の更新が成功したか否かを判定する（ステップＳ２８）。ここで、固有部分の更新は、ＥＣＵ通信部６０ａが送信した新固有データ４１ａを用いた更新である。
【００７９】
ステップＳ２８では、ＣＰＵ６４は、ＥＣＵ１１ａの通信部３１から受信した成否データが更新の成功を示す場合、更新が成功したと判定する。ＣＰＵ６４は、ＥＣＵ１１ａの通信部３１から受信した成否データが更新の失敗を示す場合、更新が成功しなかったと判定する。
【００８０】
ＣＰＵ６４は、更新が成功したと判定した場合（Ｓ２８：ＹＥＳ）、記憶部６３に記憶されている旧固有データ５１ａの内容を、一時記憶部６２に記憶されている新固有データ４１ａの内容に更新する（ステップＳ２９）。従って、旧固有データ５１ａの内容は、新固有データ４１ａが送信される時点において、ＥＣＵ１１ａの記憶部３３に記憶されている制御プログラムＰ１の固有部分への更新に用いられた新固有データ４１ａの内容である。ＣＰＵ６４は、ステップＳ２９を実行した後、一時記憶部６２から新固有データ４１ａを消去し（ステップＳ３０）、固有データ送信処理を終了する。その後、ＣＰＵ６４は、再び固有データ送信処理を実行し、ＥＣＵ１１ａの新固有データ４１ａが一時記憶部６２に記憶されるまで待機する。
【００８１】
ＣＰＵ６４は、更新が成功しなかったと判定した場合（Ｓ２８：ＮＯ）、一時記憶部６２から新固有データ４１ａを消去し（ステップＳ３１）、記憶部６３に記憶されている旧固有データ５１ａを読み出す（ステップＳ３２）。ＣＰＵ６４は、次に、ステップＳ３２で読み出した旧固有データ５１ａを構成する複数の固有部分データを生成する（ステップＳ３３）。ＣＰＵ６４は、ステップＳ３３を実行した後、ステップＳ３４を実行する。固有データ送信処理のステップＳ３４〜Ｓ３９夫々は、固有データ送信処理のステップＳ２３〜Ｓ２８と同様である。このため、ステップＳ３４〜Ｓ３９夫々の詳細な説明を省略する。
【００８２】
ステップＳ３４において、送信が指示される固有部分データは、ステップＳ３３で生成された複数の固有部分データ中の１つである。ＣＰＵ６４は、更新が成功しなかったと判定した場合（Ｓ３９：ＮＯ）、ステップＳ３２を実行し、旧固有データ５１ａを再び送信する。ＣＰＵ６４は、更新が成功したと判定した場合（Ｓ３９：ＹＥＳ）、固有データ送信処理を終了する。その後、ＣＰＵ６４は、固有データ送信処理を実行し、一時記憶部６２に新固有データ４１ａが記憶されるまで待機する。
旧固有データ５１ａの内容は、過去に更新の成功を実現した新固有データ４１ａの内容である。このため、ステップＳ１９において、更新が成功しなかったと判定される確率は低い。
【００８３】
以上のように、ＥＣＵ通信部６０ａは、一時記憶部６２に記憶されている新固有データ４１ａ、即ち、ＣＰＵ６４が無線器通信部６１から取得した新固有データ４１ａをＥＣＵ１１ａに送信する。また、ＣＰＵ６４が制御プログラムＰ１の固有部分の更新が成功しなかったと判定した場合、ＥＣＵ通信部６０ａは旧固有データ５１ａをＥＣＵ１１ａに送信する。
【００８４】
ＥＣＵ１１ｂ，１２ａ，１２ｂ夫々の固有データ送信処理の手順は、ＥＣＵ１１ａの固有データ送信処理の手順と同様である。
ＥＣＵ１１ａの固有データ送信処理の手順の説明において、ＥＣＵ１１ａ、ＥＣＵバス２５ａ、新固有データ４１ａ、旧固有データ５１ａ及びＥＣＵ通信部６０ａ夫々を、ＥＣＵ１１ｂ、ＥＣＵバス２５ｂ、ＥＣＵ１１ｂの新固有データ、旧固有データ５１ｂ及びＥＣＵ通信部６０ｂに置き換えることによって、ＥＣＵ１１ｂの固有データ送信処理の手順を説明することができる。
【００８５】
同様に、ＥＣＵ１１ａの固有データ送信処理の手順の説明において、ＥＣＵ１１ａ、新固有データ４１ａ及び旧固有データ５１ａ夫々を、ＥＣＵ１２ａ、ＥＣＵ１２ａの新固有データ及び旧固有データ５２ａに置き換えることによって、ＥＣＵ１２ａの固有データ送信処理の手順を説明することができる。また、ＥＣＵ１１ａの固有データ送信処理の手順の説明において、ＥＣＵ１１ａ、ＥＣＵバス２５ａ、新固有データ４１ａ、旧固有データ５１ａ及びＥＣＵ通信部６０ａ夫々を、ＥＣＵ１２ｂ、ＥＣＵバス２５ｂ、ＥＣＵ１２ｂの新固有データ、旧固有データ５２ｂ及びＥＣＵ通信部６０ｂに置き換えることによって、ＥＣＵ１２ｂの固有データ送信処理の手順を説明することができる。
【００８６】
図１０は、共通部分更新処理の手順を示すフローチャートである。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々のＣＰＵ３４は、同様の共通部分更新処理を実行する。共通部分更新処理では、ＣＰＵ３４は、通信部３１が中継装置１０から共通部分データを受信したか否かを判定する（ステップＳ５０）。ＣＰＵ３４は、通信部３１が共通部分データを受信していないと判定した場合（Ｓ５０：ＮＯ）、ステップＳ５０を再び実行し、通信部３１が共通部分データを受信するまで待機する。通信部３１が受信した共通部分データは一時記憶部３２に記憶される。
【００８７】
ＣＰＵ３４は、通信部３１が共通部分データを受信したと判定した場合（Ｓ５０：ＹＥＳ）、通信部３１が受信した共通部分データを用いて、制御プログラムＰ１の共通部分の一部を更新し（ステップＳ５１）、更新完了データの送信を通信部３１に指示する（ステップＳ５２）。これにより、通信部３１は更新完了データを中継装置１０に送信する。前述したように、中継装置１０のＣＰＵ６４は、共通データ送信処理において、全ての共通部分データを送信していない場合であって、更新完了データを受信したとき、次の共通部分データの送信をＥＣＵ通信部６０ａ，６０ｂに指示する。
【００８８】
ＣＰＵ３４は、ステップＳ５２を実行した後、通信部３１が全ての共通部分データを受信したか否かを判定する（ステップＳ５３）。ＣＰＵ３４は、通信部３１が全ての共通部分データを受信していないと判定した場合（Ｓ５３：ＮＯ）、ステップＳ５０を実行し、通信部３１が次の共通部分データを受信するまで待機する。ＣＰＵ３４は、通信部３１が全ての共通部分データを受信したと判定した場合（Ｓ５３：ＹＥＳ）、通信部３１が中継装置１０から、自装置に対応する確認用データを受信した否かを判定する（ステップＳ５４）。ＣＰＵ３４は、通信部３１が確認用データを受信していないと判定した場合（Ｓ５４：ＮＯ）、ステップＳ５４を再び実行し、通信部３１が確認用データを受信するまで待機する。
【００８９】
ＣＰＵ３４は、通信部３１が確認用データを受信したと判定した場合（Ｓ５４：ＹＥＳ）、共通部分が更新された制御プログラムＰ１のデータ演算を実行する（ステップＳ５５）。次に、ＣＰＵ３４は、ステップＳ５５で実行したデータ演算の結果が、通信部３１が受信した確認用データが示すデータ演算の結果と一致するか否かに基づいて、制御プログラムＰ１の共通部分の更新が成功したか否かを判定する（ステップＳ５６）。前述したように、ＣＰＵ３４は、データ演算の結果が、確認用データが示す結果と一致している場合、更新が成功したと判定し、データ演算の結果が、確認用データが示す結果と一致していない場合、更新が成功しなかったと判定する。
【００９０】
ＣＰＵ３４は、更新が成功しなかったと判定した場合（Ｓ５６：ＮＯ）、更新の失敗を示す成否データの送信を通信部３１に指示する（ステップＳ５７）。これにより、通信部３１は、更新の失敗を示す成否データを中継装置１０に送信し、中継装置１０は、旧共通データＣ２に係る共通部分データを順次送信する。ＣＰＵ３４は、ステップＳ５７を実行した後、ステップＳ５０を実行し、通信部３１が旧共通データＣ２の共通部分データを受信するまで待機する。
【００９１】
ＣＰＵ３４は、更新が成功したと判定した場合（Ｓ５６：ＹＥＳ）、更新の成功を示す成否データの送信を通信部３１に指示する（ステップＳ５８）。これにより、通信部３１は、更新の成功を示す成否データを中継装置１０に送信する。ＣＰＵ３４は、ステップＳ５８を実行した後、共通部分更新処理を終了する。その後、ＣＰＵ３４は、再び、共通部分更新処理を実行し、通信部３１が共通部分データを受信するまで待機する。
【００９２】
図１１は、固有部分更新処理の手順を示すフローチャートである。ここでは、ＥＣＵ１１ａの制御プログラムＰ１に係る固有部分を更新する固有部分更新処理の手順を説明する。この固有部分更新処理の手順は、共通部分更新処理の手順と同様である。
【００９３】
ＥＣＵ１１ａに係る固有部分更新処理では、ＣＰＵ３４は、通信部３１が、中継装置１０から、ＥＣＵ１１ａの固有部分を更新するための固有部分データを受信したか否かを判定する（ステップＳ６０）。ＣＰＵ３４は、通信部３１が固有部分データを受信していないと判定した場合（Ｓ６０：ＮＯ）、ステップＳ６０を再び実行し、通信部３１が固有部分データを受信するまで待機する。通信部３１が受信した固有部分データは一時記憶部３２に記憶される。
【００９４】
ＣＰＵ３４は、通信部３１が固有部分データを受信したと判定した場合（Ｓ６０：ＹＥＳ）、通信部３１が受信した固有部分データを用いて、制御プログラムＰ１の固有部分の一部を更新し（ステップＳ６１）、更新完了データの送信を通信部３１に指示する（ステップＳ６２）。これにより、通信部３１は更新完了データを中継装置１０に送信する。前述したように、中継装置１０のＣＰＵ６４は、固有データ送信処理において、全ての固有部分データを送信していない場合であって、更新完了データを受信したとき、次の固有部分データの送信をＥＣＵ通信部６０ａに指示する。
【００９５】
ＣＰＵ３４は、ステップＳ６２を実行した後、通信部３１が全ての固有部分データを受信したか否かを判定する（ステップＳ６３）。ＣＰＵ３４は、通信部３１が全ての固有部分データを受信していないと判定した場合（Ｓ６３：ＮＯ）、ステップＳ６０を実行し、通信部３１が次の固有部分データを受信するまで待機する。ＣＰＵ３４は、通信部３１が全ての固有部分データを受信したと判定した場合（Ｓ６３：ＹＥＳ）、通信部３１が、中継装置１０から、ＥＣＵ１１ａに係る制御プログラムＰ１の更新が成功したか否かを確認するために必要な確認用データを受信した否かを判定する（ステップＳ６４）。ＣＰＵ３４は、通信部３１が確認用データを受信していないと判定した場合（Ｓ６４：ＮＯ）、ステップＳ６４を再び実行し、通信部３１が確認用データを受信するまで待機する。
【００９６】
ＣＰＵ３４は、通信部３１が確認用データを受信したと判定した場合（Ｓ６４：ＹＥＳ）、固有部分が更新された制御プログラムＰ１のデータ演算を実行する（ステップＳ６５）。次に、ＣＰＵ３４は、ステップＳ６５で実行したデータ演算の結果が、通信部３１が受信した確認用データが示すデータ演算の結果と一致するか否かに基づいて、制御プログラムＰ１の固有部分の更新が成功したか否かを判定する（ステップＳ６６）。前述したように、ＣＰＵ３４は、データ演算の結果が、確認用データが示す結果と一致している場合、更新が成功したと判定し、データ演算の結果が、確認用データが示す結果と一致していない場合、更新が成功しなかったと判定する。
【００９７】
ＣＰＵ３４は、更新が成功しなかったと判定した場合（Ｓ６６：ＮＯ）、更新の失敗を示す成否データの送信を通信部３１に指示する（ステップＳ６７）。これにより、通信部３１は、更新の失敗を示す成否データを中継装置１０に送信し、中継装置１０は、旧固有データ５１ａに係る固有部分データを順次送信する。ＣＰＵ３４は、ステップＳ６７を実行した後、ステップＳ６０を実行し、通信部３１が旧固有データ５１ａの固有部分データを受信するまで待機する。
【００９８】
ＣＰＵ３４は、更新が成功したと判定した場合（Ｓ６６：ＹＥＳ）、更新の成功を示す成否データの送信を通信部３１に指示する（ステップＳ６８）。これにより、通信部３１は、ＥＣＵ１１ａの制御プログラムＰ１に係る固有部分の更新の成功を示す成否データを中継装置１０に送信する。ＣＰＵ３４は、ステップＳ６８を実行した後、固有部分更新処理を終了する。その後、ＣＰＵ３４は、再び、固有部分更新処理を実行し、通信部３１が、ＥＣＵ１１ａの制御プログラムＰ１に係る固有部分データを受信するまで待機する。
【００９９】
ＥＣＵ１１ｂ，１２ａ，１２ｂ夫々の固有部分更新処理の手順は、ＥＣＵ１１ａの固有部分更新処理の手順と同様である。
ＥＣＵ１１ａの固有部分更新処理の手順の説明において、ＥＣＵ１１ａ、旧固有データ５１ａ及びＥＣＵ通信部６０ａ夫々を、ＥＣＵ１１ｂ、旧固有データ５１ｂ及びＥＣＵ通信部６０ｂに置き換えることによって、ＥＣＵ１１ｂの固有部分更新処理の手順を説明することができる。
【０１００】
同様に、ＥＣＵ１１ａの固有部分更新処理の手順の説明において、ＥＣＵ１１ａ及び旧固有データ５１ａ夫々を、ＥＣＵ１２ａ及び旧固有データ５２ａに置き換えることによって、ＥＣＵ１２ａの固有部分更新処理の手順を説明することができる。また、ＥＣＵ１１ａの固有部分更新処理の手順の説明において、ＥＣＵ１１ａ、旧固有データ５１ａ及びＥＣＵ通信部６０ａ夫々を、ＥＣＵ１２ｂ、旧固有データ５２ｂ及びＥＣＵ通信部６０ｂに置き換えることによって、ＥＣＵ１２ｂの固有部分更新処理の手順を説明することができる。
【０１０１】
以上のように構成された中継装置１０及びＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの動作の概要を説明する。図面が煩雑になることを防止するため、この動作の概要の説明に係る図では、ＥＣＵ１１ｂ，１２ａ，１２ｂの図示を省略している。
【０１０２】
図１２は、一時記憶部３２に新共通データＣ１が記憶された場合における中継装置１０及びＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの動作の説明図である。中継装置１０は、無線器通信部６１が新共通データＣ１を受信し、一時記憶部６２に新共通データＣ１が記憶された場合、新共通データＣ１を構成する複数の共通部分データをＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに送信する。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々は、これらの共通部分データを受信し、受信した複数の共通部分データを用いて制御プログラムＰ１の共通部分を更新する。
【０１０３】
図１３は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの制御プログラムＰ１の更新が成功した場合における中継装置１０の動作の説明図である。中継装置１０は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの４つの制御プログラムＰ１の更新が成功した場合、記憶部６３に記憶されている旧共通データＣ２の内容を、一時記憶部６２に記憶されている新共通データＣ１の内容に更新する。
【０１０４】
図１４は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの全ての制御プログラムＰ１の更新が成功しなかった場合における中継装置１０の動作の説明図である。中継装置１０は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの４つの制御プログラムＰ１の更新が成功しなかった場合、記憶部６３に記憶されている旧共通データＣ２をＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに送信する。ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々は、旧共通データＣ２を構成する複数の共通部分データを受信し、受信した複数の共通部分データを用いて制御プログラムＰ１の共通部分を更新する。
【０１０５】
ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々の制御プログラムＰ１の固有部分の更新は、共通部分の更新と同様に行われる。ただし、制御プログラムＰ１の固有部分の更新は、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々について、個別に行われる。
【０１０６】
以上のように構成された通信システム１では、中継装置１０の記憶部６３に、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂの制御プログラムＰ１を更新するためのバックアップ用のデータ、即ち、旧共通データＣ２及び旧固有データ５１ａ，５１ｂ，５２ａ，５２ｂが記憶されている。このため、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々の記憶部３３に、制御プログラムＰ１の他に、バックアップ用の制御プログラムを記憶しておく必要はない。このため、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々として、記憶容量が小さい装置を用いることができる。
【０１０７】
また、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々に２つの制御プログラムＰ１が記憶されている通信システムでは、中継装置１０として、記憶容量が小さい装置を用いることができる。しかしながら、この通信システムでは、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々として、記憶容量が大きい高価な装置を用いる必要があるので、通信システムの構築にかかる費用は高価である。
一方で、通信システム１では、中継装置１０として記憶容量が大きい装置を用いれば、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々として、記憶容量が小さい安価な装置を用いることができるので、通信システム１の構築にかかる費用は安価である。
【０１０８】
更に、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々の制御プログラムＰ１は、共通部分と固有部分とによって構成される。従って、中継装置１０が、新共通データＣ１又は旧共通データＣ２を、ＥＣＵバス２５ａを介して１回送信するだけで、ＥＣＵ１１ａ，１２ａの２つの制御プログラムＰ１の共通部分が更新される。同様に、中継装置１０が、新共通データＣ１又は旧共通データＣ２を、ＥＣＵバス２５ｂを介して１回送信するだけで、ＥＣＵ１１ｂ，１２ｂの２つの制御プログラムＰ１の共通部分が更新される。このため、共通部分を更新するために行う中継装置１０が行う送信の回数が少ない。
【０１０９】
（実施の形態２）
図１５は、実施の形態２における通信システム１の要部構成を示すブロック図である。
以下では、実施の形態２について、実施の形態１と異なる点を説明する。後述する構成を除く他の構成については、実施の形態１と共通しているため、実施の形態１と共通する構成部には実施の形態１と同一の参照符号を付してその説明を省略する。
【０１１０】
実施の形態２における通信システム１は、実施の形態１における通信システム１と同様に、中継装置１０及びＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂを備える。これらは、車両１００内に配置され、実施の形態１と同様に接続されている。実施の形態２における通信システム１は、更に、ダイアグツール７０を備える。ダイアグツール７０は、中継装置１０に着脱可能に接続されている。具体的には、中継装置１０は、実施の形態１における無線器通信部６１と同様に機能する通信部を有し、この通信部にダイアグツール７０が着脱可能に接続されている。
【０１１１】
実施の形態２における通信システム１では、ダイアグツール７０から中継装置１０の通信部に新共通データＣ１と、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに対応する４つの新固有データとを送信する。
実施の形態２における通信システム１は、実施の形態１における通信システム１が奏する効果を同様に奏する。
【０１１２】
（実施の形態３）
図１６は、実施の形態３における通信システム１の要部構成を示すブロック図である。
以下では、実施の形態３について、実施の形態２と異なる点を説明する。後述する構成を除く他の構成については、実施の形態２と共通しているため、実施の形態２と共通する構成部には実施の形態２と同一の参照符号を付してその説明を省略する。
【０１１３】
実施の形態３における通信システム１を、実施の形態２における通信システム１と比較した場合、ダイアグツール７０が着脱可能に接続する装置が異なっている。実施の形態３における通信システム１では、ダイアグツール７０は、ＥＣＵ１２ａに着脱可能に接続されている。ダイアグツール７０は、新共通データＣ１と、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂに対応する４つの新固有データとを、ＥＣＵ１２ａを介して中継装置１０に送信する。
実施の形態３における通信システム１は、実施の形態２における通信システム１と同様の効果を奏する。
【０１１４】
なお、実施の形態３において、中継装置１０ではなく、ＥＣＵ１２ａがＥＣＵ１１ａ，１１ｂ，１２ｂ夫々の制御プログラムＰ１を更新するためのデータを、ＥＣＵ１１ａ，１１ｂ，１２ｂに送信してもよい。ＥＣＵ１２ａは、中継装置１０を介して、ＥＣＵ１１ｂ，１２ｂにデータを送信する。ＥＣＵ１２ａの記憶部３３に旧共通データＣ２及び旧固有データ５１ａ，５１ｂ，５２ａ，５２ｂが記憶されている。制御プログラムＰ１を更新するためのデータの送信について、ＥＣＵ１２ａは、中継装置１０と同様に作用する。
このように構成された実施の形態２における通信システム１も、実施の形態２における通信システム１と同様の効果を奏する。
【０１１５】
（実施の形態４）
図１７は、実施の形態４における通信システム１の要部構成を示すブロック図である。
以下では、実施の形態４について、実施の形態１と異なる点を説明する。後述する構成を除く他の構成については、実施の形態１と共通しているため、実施の形態１と共通する構成部には実施の形態１と同一の参照符号を付してその説明を省略する。
【０１１６】
実施の形態４における通信システム１を、実施の形態１における通信システム１と比較した場合、無線器１３及び無線器バス２６の配置が異なる。実施の形態４における通信システム１では、無線器１３及び無線器バス２６が中継装置１０内に配置されている。
実施の形態４における通信システム１は、実施の形態１における通信システム１と同様の効果を奏する。
【０１１７】
なお、実施の形態１〜４において、旧共通データＣ２及び旧固有データ５１ａ，５１ｂ，５２ａ，５２ｂ夫々は、制御プログラムＰ１の共通部分又は固有部分の更新が確実に実現されるデータであればよい。このため、これらのデータ夫々の内容は、新共通データＣ１の内容、又は、新固有データの内容に更新されず、保持されていてもよい。
【０１１８】
また、制御プログラムＰ１を更新する構成は、制御プログラムＰ１の共通部分及び固有部分を各別に更新する構成に限定されず、制御プログラムＰ１全体を更新する構成であってもよい。この場合、新固有データ及び旧固有データ夫々の代わりに、制御プログラムＰ１全体を更新する新更新データ及び旧更新データを用いる。この構成では、新共通データ及び旧共通データは不要である。
【０１１９】
更に、通信システム１では、制御プログラムＰ１の共通部分及び固有部分を各別に更新するＥＣＵと、制御プログラムＰ１全体を更新するＥＣＵとが混在していてもよい。例えば、ＥＣＵ１１ａ，１２ａ夫々が、制御プログラムＰ１の共通部分及び固有部分を各別に更新するＥＣＵであり、ＥＣＵ１１ｂ，１２ｂ夫々が、制御プログラムＰ１全体を更新するＥＣＵであってもよい。
【０１２０】
また、共通部分の更新に係る確認用データが示す結果は、共通部分の更新によって得られるべき制御プログラムＰ１の共通部分を用いたデータ演算の結果であってもよい。この場合、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々のＣＰＵ３４は、更新された制御プログラムＰ１の共通部分を用いた演算を行う。
同様に、固有部分の更新に係る確認用データが示す結果は、固有部分の更新によって得られるべき制御プログラムＰ１の固有部分を用いたデータの演算結果であってもよい。この場合、ＥＣＵ１１ａ，１１ｂ，１２ａ，１２ｂ夫々のＣＰＵ３４は、更新された制御プログラムＰ１の固有部分を用いた演算を行う。
【０１２１】
更に、中継装置１０に接続されるＥＣＵバスの数は、２つに限定されず、１又は３以上であってもよい。ＥＣＵバスの数が１である場合、中継装置１０は、サーバ１４又はダイアグツール７０と、ＥＣＵバスに接続されているＥＣＵとの通信のみを中継する。１つのＥＣＵバスに接続されるＥＣＵの数は２に限定されず、１又は３以上であってもよい。更に、ＥＣＵバスの数が２以上である場合、各ＥＣＵバスに接続されるＥＣＵの数は、他のＥＣＵバスに接続されるＥＣＵの数と異なっていてもよい。ＥＣＵバスの数が１であり、かつ、ＥＣＵバスに接続されるＥＣＵの数が１である場合、前述した新更新データ及び旧更新データが用いられる。
また、更新が成功したか否かを判定する構成は、データ演算の結果に基づいて判定を行う構成に限定されない。
【０１２２】
開示された実施の形態１〜４はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２３】
１  通信システム
１０  中継装置（送信装置）
１１ａ，１１ｂ，１２ａ，１２ｂ  ＥＣＵ（情報処理装置）
４１ａ  新固有データ（第１更新データ）
５１ａ，５１ｂ，５２ａ，５２ｂ  旧固有データ（第２更新データ）
６０ａ，６０ｂ  ＥＣＵ通信部（送信部）
６３  記憶部
６４  ＣＰＵ（取得部、判定部、更新部）
１００  車両
Ｃ１  新共通データ（第１更新データ）
Ｃ２  旧共通データ（第２更新データ）
Ｋ１  制御プログラム（コンピュータプログラム）
Ｐ１  制御プログラム
【図１】
2019021130.tif 000003
【図２】
2019021130.tif 000004
【図３】
2019021130.tif 000005
【図４】
2019021130.tif 000006
【図５】
2019021130.tif 000007
【図６】
2019021130.tif 000008
【図７】
2019021130.tif 000009
【図８】
2019021130.tif 000010
【図９】
2019021130.tif 000011
【図１０】
2019021130.tif 000012
【図１１】
2019021130.tif 000013
【図１２】
2019021130.tif 000014
【図１３】
2019021130.tif 000015
【図１４】
2019021130.tif 000016
【図１５】
2019021130.tif 000017
【図１６】
2019021130.tif 000018
【図１７】
2019021130.tif 000019