(57)【要約】【課題】無線で受信された更新データを用いた不要な制御プログラムの更新を防止することができる保存装置、通信システム、保存方法及びコンピュータプログラムを提供する。【解決手段】中継装置１０では、第２入出力部４２に、制御プログラムの更新に用いられる更新データの一部である部分データが入力された場合、制御部４４は記憶部４３に部分データを保存する。第２入出力部４２に部分データが繰り返し入力されている間に、第１入出力部４１に部分データが入力された場合、制御部４４は、第２入出力部４２に入力された部分データの保存を停止し、第１入出力部４１に入力された部分データを記憶部４３に保存する。【選択図】図２
2019153159.tif 000002
【特許請求の範囲】
【請求項１】
外部装置に着脱可能に接続され、制御プログラムの更新に用いられる更新データの一部である部分データが前記外部装置から入力される第１入力部と、
無線で受信された前記部分データが入力される第２入力部と、
前記部分データが保存される記憶部と、
前記第２入力部に前記部分データが入力された場合、前記第２入力部に入力された部分データを前記記憶部に保存し、前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合、前記第２入力部に入力された部分データの保存を停止し、前記第１入力部に入力された部分データを前記記憶部に保存する保存部と
を備える保存装置。
【請求項２】
前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合に、前記部分データの無線での繰り返し送信の停止を指示する送信停止データを出力する出力部を備える
請求項１に記載の保存装置。
【請求項３】
前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合に、前記第２入力部に入力されて前記記憶部に保存された部分データを前記記憶部から削除する削除部を備える
請求項１又は請求項２に記載の保存装置。
【請求項４】
前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合、前記第１入力部に入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンが、前記第２入力部に入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンと同一であるか否かを判定する判定部と、
前記判定部によって、前記第１入力部に入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンが同一であると判定された場合、前記更新データを構成する残りの部分データの出力を要求する出力要求データを前記外部装置に出力する第２の出力部と
を備える請求項１から請求項３のいずれか１つに記載の保存装置。
【請求項５】
請求項１から請求項４のいずれか１つに記載の保存装置と、
前記保存装置に接続され、処理を実行する処理装置と
を備え、
前記制御プログラムは、前記処理装置によって実行され、
前記保存装置は、前記部分データを前記処理装置に送信する送信部を有する
通信システム。
【請求項６】
制御プログラムの更新に用いられる更新データの一部である部分データが無線で受信された場合に、受信された部分データを保存するステップと、
前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、無線で受信された部分データの保存を停止するステップと、
前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、有線で入力された部分データを保存するステップと
を含む保存方法。
【請求項７】
コンピュータに、
制御プログラムの更新に用いられる更新データの一部である部分データが無線で受信された場合に、受信された部分データを保存するステップと、
前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、無線で受信された部分データの保存を停止するステップと、
前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、有線で受信した部分データを保存するステップと
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、保存装置、通信システム、保存方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
車両には、制御プログラムを実行することによって処理を実行する処理装置（例えば、特許文献１を参照）が搭載されている。特許文献１に記載の処理装置はダイアグツールに着脱可能に接続される。制御プログラムの更新に用いる更新データがダイアグツールから入力されるとともに、無線で受信された更新データが入力される。
【０００３】
特許文献１に記載の処理装置は、ダイアグツールから更新データが入力されている間、無線で受信された更新データの入力を禁止し、無線で受信された更新データが入力されている間、ダイアグツールからの更新データの入力を禁止する。ダイアグツールから入力された更新データ、又は、無線で受信された更新データを用いて、制御プログラムが更新される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１０５３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的に、ダイアグツールは、ディーラーによって操作される。ダイアグツールから入力された更新データを用いた制御プログラムの更新は、車両が持ち込まれた販売店又は工場等で、例えば、処理の不具合の原因を探るために、ディーラーによって行われる可能性が高い。一方で、無線で受信された更新データを用いた制御プログラムの更新は、例えば、車両の乗員の許可を受けた上で、不特定の場所で行われる可能性が高い。以上のことを考慮した場合、ダイアグツールから入力された更新データを用いた制御プログラムの更新は、無線で受信された更新データを用いた制御プログラムの更新よりも重要である。
【０００６】
ディーラーがダイアグツールを用いて制御プログラムを更新する時点において、無線で受信された更新データを用いて制御プログラムを更新していたと仮定する。この場合、ディーラーは、無線で受信された更新データが入力されて、制御プログラムの更新が完了するまで待機する必要がある。制御プログラムの更新が完了した後、ディーラーはダイアグツールを用いて改めて制御プログラムを更新する。この場合、無線で受信された更新データを用いて不要な制御プログラムの更新が行われる。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、無線で受信された更新データを用いた不要な制御プログラムの更新を防止することができる保存装置、通信システム、保存方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る保存装置は、外部装置に着脱可能に接続され、制御プログラムの更新に用いられる更新データの一部である部分データが前記外部装置から入力される第１入力部と、無線で受信された前記部分データが入力される第２入力部と、前記部分データが保存される記憶部と、前記第２入力部に前記部分データが入力された場合、前記第２入力部に入力された部分データを前記記憶部に保存し、前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合、前記第２入力部に入力された部分データの保存を停止し、前記第１入力部に入力された部分データを前記記憶部に保存する保存部とを備える。
【０００９】
本発明の一態様に係る通信システムは、前述した保存装置と、前記保存装置に接続され、処理を実行する処理装置とを備え、前記制御プログラムは、前記処理装置によって実行され、前記保存装置は、前記部分データを前記処理装置に送信する送信部を有する。
【００１０】
本発明の一態様に係る保存方法は、制御プログラムの更新に用いられる更新データの一部である部分データが無線で受信された場合に、受信された部分データを保存するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、無線で受信された部分データの保存を停止するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、有線で入力された部分データを保存するステップとを含む。
【００１１】
本発明の一態様に係るコンピュータプログラムは、コンピュータに、制御プログラムの更新に用いられる更新データの一部である部分データが無線で受信された場合に、受信された部分データを保存するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、無線で受信された部分データの保存を停止するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、有線で受信した部分データを保存するステップとを実行させる。
【００１２】
なお、本発明を、このような特徴的な処理部を備える保存装置として実現することができるだけでなく、かかる特徴的な処理をステップとする保存方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。また、本発明を、保存装置の一部又は全部を実現する半導体集積回路として実現したり、保存装置を含む通信システムとして実現したりすることができる。
【発明の効果】
【００１３】
上記の態様によれば、無線で受信された更新データを用いた不要な制御プログラムの更新を防止することができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態１における通信システムの要部構成を示すブロック図である。
【図２】中継装置の要部構成を示すブロック図である。
【図３】制御プログラムに係る第１更新データ保存処理の手順を示すフローチャートである。
【図４】制御プログラムに係る第２更新データ保存処理の手順を示すフローチャートである。
【図５】通信システムの動作の例を示すシーケンス図である。
【図６】通信システムの動作のもう１つの例を示すシーケンス図である。
【図７】制御プログラムに係る更新データ送信処理の手順を示すフローチャートである。
【図８】実施形態２における第１更新データ保存処理の手順を示すフローチャートである。
【図９】通信システムの動作の例を示すシーケンス図である。
【図１０】更新データの構成の概略図である。
【発明を実施するための形態】
【００１５】
［本発明の実施形態の説明］
最初に本発明の実施態様を列挙して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１６】
（１）本発明の一態様に係る保存装置は、外部装置に着脱可能に接続され、制御プログラムの更新に用いられる更新データの一部である部分データが前記外部装置から入力される第１入力部と、無線で受信された前記部分データが入力される第２入力部と、前記部分データが保存される記憶部と、前記第２入力部に前記部分データが入力された場合、前記第２入力部に入力された部分データを前記記憶部に保存し、前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合、前記第２入力部に入力された部分データの保存を停止し、前記第１入力部に入力された部分データを前記記憶部に保存する保存部とを備える。
【００１７】
（２）本発明の一態様に係る保存装置は、前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合に、前記部分データの無線での繰り返し送信の停止を指示する送信停止データを出力する出力部を備える。
【００１８】
（３）本発明の一態様に係る保存装置は、前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合に、前記第２入力部に入力されて前記記憶部に保存された部分データを前記記憶部から削除する削除部を備える。
【００１９】
（４）本発明の一態様に係る保存装置は、前記第２入力部に前記部分データが繰り返し入力されている間に前記第１入力部に前記部分データが入力された場合、前記第１入力部に入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンが、前記第２入力部に入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンと同一であるか否かを判定する判定部と、前記判定部によって、前記第１入力部に入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンが同一であると判定された場合、前記更新データを構成する残りの部分データの出力を要求する出力要求データを前記外部装置に出力する第２の出力部とを備える。
【００２０】
（５）本発明の一態様に係る通信システムは、前述した保存装置と、前記保存装置に接続され、処理を実行する処理装置とを備え、前記制御プログラムは、前記処理装置によって実行され、前記保存装置は、前記部分データを前記処理装置に送信する送信部を有する。
【００２１】
（６）本発明の一態様に係る保存方法は、制御プログラムの更新に用いられる更新データの一部である部分データが無線で受信された場合に、受信された部分データを保存するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、無線で受信された部分データの保存を停止するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、有線で入力された部分データを保存するステップとを含む。
【００２２】
（７）本発明の一態様に係るコンピュータプログラムは、コンピュータに、制御プログラムの更新に用いられる更新データの一部である部分データが無線で受信された場合に、受信された部分データを保存するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、無線で受信された部分データの保存を停止するステップと、前記部分データが無線で繰り返し受信されている間に、有線で前記部分データが入力された場合に、有線で受信した部分データを保存するステップとを実行させる。
【００２３】
上記の一態様に係る保存装置、保存方法及びコンピュータプログラムにあっては、無線で受信された部分データが繰り返し入力されている間に、有線で部分データが入力された場合、無線で受信された部分データの記憶部への保存を停止し、有線で入力された部分データを記憶部に保存する。このため、無線で受信された複数の部分データによって構成される更新データを用いた不要な制御プログラムの更新が防止される。
【００２４】
上記の一態様に係る保存装置にあっては、無線で受信された部分データが繰り返し入力されている間に、有線で部分データが入力された場合、送信停止データを出力する。これにより、無線での部分データの繰り返し送信が停止する。
【００２５】
上記の一態様に係る保存装置にあっては、無線で受信された部分データが繰り返し入力されている間に、有線で部分データが入力された場合、無線で受信されて記憶部に記憶された部分データを記憶部から削除する。
【００２６】
上記の一態様に係る保存装置にあっては、無線で受信された部分データが繰り返し入力されている間に、有線で部分データが入力されたと仮定する。この場合、有線で入力された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンが、無線で受信された部分データに係る更新データを用いて更新された後の制御プログラムのバージョンと同一であるか否かを判定する。バージョンが同一であると判定した場合、出力要求データを外部装置に出力し、更新データを構成する複数の部分データ中の残りの部分データを外部装置に有線で出力させる。このため、更新データの取得に要する時間が短い。
【００２７】
上記の一態様に係る通信システムにあっては、保存装置は部分データを処理装置に送信する。処理装置では、受信した複数の部分データによって構成される更新データを用いて制御プログラムを更新する。
【００２８】
［本発明の実施形態の詳細］
本発明の実施形態に係る通信システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００２９】
（実施形態１）
図１は、実施形態１における通信システム１の要部構成を示すブロック図である。通信システム１は、好適に車両１００に搭載され、中継装置１０、ＥＣＵ１１ａ，１１ｂ、コネクタ１２及び無線機１３を備える。中継装置１０に、ＥＣＵ１１ａ，１１ｂ、コネクタ１２及び無線機１３が各別に接続されている。
【００３０】
コネクタ１２は、ダイアグツール２０に接続されているコネクタ２１に、着脱可能に接続される。ダイアグツール２０は、持ち運び可能な携帯機である。コネクタ１２がコネクタ２１に接続された場合、中継装置１０はダイアグツール２０に接続する。コネクタ１２，２１の接続が外された場合、ダイアグツール２０と中継装置１０との接続が外される。
【００３１】
ＥＣＵ１１ａ，１１ｂ夫々には、車両１００に搭載された図示しない電気機器が接続されている。ＥＣＵ１１ａ，１１ｂ夫々は、一又は複数の図示しないＣＰＵ(Central Processing Unit)を有する。ＥＣＵ１１ａには制御プログラムＰａが保存されている。ＥＣＵ１１ａが有する一又は複数のＣＰＵは、制御プログラムＰａを実行することによって、ＥＣＵ１１ａに接続されている電気機器の動作を制御する制御処理を実行する。同様に、ＥＣＵ１１ｂには制御プログラムＰｂが保存されている。ＥＣＵ１１ｂが有する一又は複数のＣＰＵは、制御プログラムＰｂを実行することによって、ＥＣＵ１１ｂに接続されている電気機器の動作を制御する制御処理を実行する。
中継装置１０は保存装置として機能する。ＥＣＵ１１ａ，１１ｂ夫々は処理装置として機能する。
【００３２】
ＥＣＵ１１ａ，１１ｂ夫々は中継装置１０にデータを送信する。中継装置１０は、ＥＣＵ１１ａから受信したデータをＥＣＵ１１ｂに送信し、ＥＣＵ１１ｂから受信したデータをＥＣＵ１１ａに送信する。これにより、ＥＣＵ１１ａ，１１ｂは、中継装置１０を介して相互に通信を行い、ＥＣＵ１１ａ，１１ｂに接続されている複数の電気機器に協調動作を行わせる。この通信では、通信プロトコルとして、イーサネット（登録商標）に対応するプロトコル、又は、ＣＡＮ(Controller Area Network)プロトコル等が用いられる。
【００３３】
制御プログラムＰａの更新に用いられる更新データは、Ｎａ個の部分データによって構成される（図１０参照）。従って、部分データは更新データの一部である。Ｎａは２以上の整数である。部分データには、更新後の制御プログラムＰａの一部を示すプログラム情報に加えて、更新後の制御プログラムＰａのバージョンを示すバージョン情報と、配置番号を示す番号情報とが含まれている。配置番号の順に、Ｎａ個の部分データを配置することによって、更新データが実現される。
【００３４】
中継装置１０は、部分データをＥＣＵ１１ａに繰り返し送信する。ＥＣＵ１１ａは、中継装置１０から受信した部分データを受信した場合、受信した部分データを保存する。ＥＣＵ１１ａは、Ｎａ個の部分データ、即ち、更新データを保存した場合、車両１００の状態が、制御プログラムＰａを更新することが可能な状態となるまで待機する。ＥＣＵ１１ａが有する一又は複数のＣＰＵは、車両１００の状態が、制御プログラムＰａを更新することが可能な状態となった場合、更新データを用いて制御プログラムＰａを更新する。
なお、制御プログラムＰａを更新することが可能な状態は、例えば、車両１００のイグニッションスイッチがオフである状態である。
【００３５】
また、中継装置１０は、部分データをＥＣＵ１１ａに繰り返し送信している間に、送信している部分データに係る更新データを用いた制御プログラムＰａの更新が不要となった場合、部分データの削除を指示する削除指示データをＥＣＵ１１ａに送信する。ＥＣＵ１１ａは、削除指示データを受信した場合、中継装置１０から受信した全ての部分データを削除する。
【００３６】
同様に、制御プログラムＰｂの更新に用いられる更新データは、Ｎｂ個の部分データによって構成される。Ｎｂは２以上の整数である。部分データには、更新後の制御プログラムＰｂの一部を示すプログラム情報に加えて、更新後の制御プログラムＰｂのバージョンを示すバージョン情報と、配置番号を示す番号情報とが含まれている。
【００３７】
ＥＣＵ１１ｂが行う制御プログラムＰｂの更新及び部分データの削除夫々は、ＥＣＵ１１ａが行う制御プログラムＰａの更新及び部分データの削除と同様である。具体的には、ＥＣＵ１１ａが行う制御プログラムＰａの更新及び部分データの削除の説明において、ＥＣＵ１１ａ、制御プログラムＰａ及び整数Ｎａ夫々をＥＣＵ１１ｂ、制御プログラムＰｂ及び整数Ｎｂに置き換える。これにより、ＥＣＵ１１ｂが行う制御プログラムＰｂの更新及び部分データの削除を説明することができる。
【００３８】
ダイアグツール２０は、使用者、例えば、ディーラーによって操作される図示しない操作部を有する。ダイアグツール２０は、操作部の操作に従って動作する。ダイアグツール２０は、コネクタ２１がコネクタ１２に接続された場合、自身の認証を要求する第１要求データを中継装置１０に出力する。第１要求データには、識別情報又はパスワード等の情報が含まれている。中継装置１０は、第１要求データが入力された場合、入力された第１要求データに含まれる情報に基づいて、ダイアグツール２０を認証する。中継装置１０は、この認証に成功した場合、データの出力を許可する出力許可データをダイアグツール２０に出力する。
【００３９】
ダイアグツール２０は、出力許可データが入力された後、種々のデータを中継装置１０に出力する。具体的には、ダイアグツール２０は、コネクタ２１，１２を介して、制御プログラムＰａの更新データに係る部分データを中継装置１０に繰り返し出力する。同様に、ダイアグツール２０は、コネクタ２１，１２を介して、制御プログラムＰｂの更新データに係る部分データを中継装置１０に繰り返し出力する。
【００４０】
無線機１３は、車両１００の外側に設置されているサーバ３０からデータを無線で受信した場合、受信したデータを中継装置１０に出力する。更に、無線機１３は、中継装置１０からデータが入力された場合、入力されたデータをサーバ３０に無線で送信する。
【００４１】
サーバ３０は、制御プログラムＰａ又は制御プログラムＰｂの更新データの送信条件が満たされた場合、自身の認証を要求する第２要求データを無線機１３に送信する。第２要求データには、識別情報又はパスワード等の情報が含まれている。無線機１３は、第２要求データを受信した場合、受信した第２要求データを中継装置１０に出力する。中継装置１０は、第２要求データが入力された場合、入力された第２要求データに含まれる情報に基づいて、サーバ３０を認証する。
【００４２】
中継装置１０は、この認証に成功した場合、データの送信を許可する送信許可データを無線機１３に出力する。無線機１３は、送信許可データをサーバ３０に無線で送信する。サーバ３０は、送信許可データを無線機１３から受信した場合、制御プログラムＰａ又は制御プログラムＰｂの更新データに係る部分データを無線で無線機１３に繰り返し送信する。無線機１３は、サーバ３０から、制御プログラムＰａ又は制御プログラムＰｂの更新データに係る部分データを無線で受信する都度、受信した部分データを中継装置１０に出力する。
【００４３】
サーバ３０は、制御プログラムＰａの更新データに係る部分データを無線機１３に無線で繰り返し送信するとともに、制御プログラムＰｂの更新データに係る部分データを無線機１３に無線で繰り返し送信する。
【００４４】
中継装置１０は、無線機１３に、部分データの無線での繰り返し送信の停止を指示する送信停止データを出力する。無線機１３は、中継装置１０から送信停止データが入力された場合、入力された送信停止データをサーバ３０に無線で送信する。サーバ３０は、制御プログラムＰａ又は制御プログラムＰｂの更新データに係る部分データを無線機１３に繰り返し送信している間に送信停止データを無線機１３から受信した場合、部分データの繰り返し送信を停止する。その後、サーバ３０は、制御プログラムＰａ又は制御プログラムＰｂの更新データの送信条件が満たされた場合に、再び、第２要求データを無線機１３に送信し、部分データを無線機１３に繰り返し送信する。
【００４５】
図２は中継装置１０の要部構成を示すブロック図である。中継装置１０は、２つの通信部４０ａ，４０ｂ、第１入出力部４１、第２入出力部４２、記憶部４３及び制御部４４を有する。これらは内部バス４５に接続されている。通信部４０ａは、更に、ＥＣＵ１１ａに接続されている。通信部４０ｂは、更に、ＥＣＵ１１ｂに接続されている。第１入出力部４１は、更に、コネクタ１２に接続されている。第２入出力部４２は、更に、無線機１３に接続されている。
【００４６】
コネクタ１２がコネクタ２１に接続した場合、ダイアグツール２０は第１入出力部４１に接続される。コネクタ１２，２１の接続が外れた場合、ダイアグツール２０及び第１入出力部４１の接続も外れる。このように、第１入出力部４１は、ダイアグツール２０に着脱可能に接続される。ダイアグツール２０は外部装置に相当する。
【００４７】
通信部４０ａは、制御部４４の指示に従って、データをＥＣＵ１１ａに送信する。通信部４０ａがＥＣＵ１１ａに送信するデータの１つは、制御プログラムＰａの更新データに係る部分データがある。通信部４０ａは、ＥＣＵ１１ａからデータを受信する。
同様に、通信部４０ｂは、制御部４４の指示に従って、データをＥＣＵ１１ｂに送信する。通信部４０ｂがＥＣＵ１１ｂに送信するデータの１つは、制御プログラムＰｂの更新データに係る部分データがある。通信部４０ｂは、ＥＣＵ１１ｂからデータを受信する。
【００４８】
第１入出力部４１は、制御部４４の指示に従って、コネクタ１２，２１を介してダイアグツール２０に出力許可データを出力する。また、第１入出力部４１には、ダイアグツール２０から、コネクタ２１，１２を介して、制御プログラムＰａの更新データに係る部分データが繰り返し入力される。同様に、第１入出力部４１には、ダイアグツール２０から、コネクタ２１，１２を介して、制御プログラムＰｂの更新データに係る部分データが繰り返し入力される。第１入出力部４１は第１入力部として機能する。
【００４９】
第２入出力部４２は、制御部４４の指示に従って、送信許可データ及び送信停止データを無線機１３に出力する。前述したように、無線機１３は、データが入力された場合、入力されたデータを無線でサーバ３０に送信する。サーバ３０は、送信許可データを無線機１３から受信した場合に制御プログラムＰａ又は制御プログラムＰｂの更新データに係る部分データの繰り返し送信を開始する。更に、サーバ３０は、送信停止データを無線機１３から受信した場合、部分データの繰り返し送信を停止する。
【００５０】
また、第２入出力部４２には、無線機１３がサーバ３０から受信した第２要求データが入力される。更に、第２入出力部４２には、無線機１３がサーバ３０から無線で受信した部分データが、無線機１３から繰り返し入力される。従って、第２入出力部４２には、制御プログラムＰａの更新データに係る部分データと、制御プログラムＰｂの更新データに係る部分データとが入力される。第２入出力部４２は第２入力部として機能する。
【００５１】
記憶部４３は不揮発性メモリである。記憶部４３には、制御部４４によって、制御プログラムＰａ，Ｐｂ夫々の更新データに係る部分データが保存される。
記憶部４３には、更に制御プログラムＰｒが記憶されている。制御部４４は、一又は複数のＣＰＵを有する。制御部４４が有する一又は複数のＣＰＵは、制御プログラムＰｒを実行することによって、中継処理、ツール認証処理、サーバ認証処理、第１更新データ保存処理、第２更新データ保存処理及び更新データ送信処理を実行する。第１更新データ保存処理、第２更新データ保存処理及び更新データ送信処理夫々については、制御プログラムＰａに係る処理と、制御プログラムＰｂに係る処理とがある。制御部４４は、中継処理、ツール認証処理、サーバ認証処理、第１更新データ保存処理、第２更新データ保存処理及び更新データ送信処理を時分割方式で並行して実行する。
【００５２】
中継処理は、ＥＣＵ１１ａ，１１ｂ間の通信を中継する処理である。ツール認証処理は、ダイアグツール２０を認証する処理である。サーバ認証処理は、無線機１３と通信するサーバ３０を認証する処理である。
【００５３】
制御プログラムＰａに係る第１更新データ保存処理は、ダイアグツール２０から第１入出力部４１に入力された制御プログラムＰａの更新データを保存する処理である。制御プログラムＰａに係る第２更新データ保存処理は、無線機１３から第２入出力部４２に入力された制御プログラムＰａの更新データを保存する処理である。制御プログラムＰａに係る更新データ送信処理は、制御プログラムＰａに係る更新データをＥＣＵ１１ａに送信する処理である。
【００５４】
同様に、制御プログラムＰｂに係る第１更新データ保存処理は、ダイアグツール２０から第１入出力部４１に入力された制御プログラムＰｂの更新データを保存する処理である。制御プログラムＰｂに係る第２更新データ保存処理は、無線機１３から第２入出力部４２に入力された制御プログラムＰｂの更新データを保存する処理である。制御プログラムＰｂに係る更新データ送信処理は、制御プログラムＰｂに係る更新データをＥＣＵ１１ｂに送信する処理である。
【００５５】
制御プログラムＰｒは、制御部４４が有する一又は複数のＣＰＵに、中継処理、ツール認証処理、サーバ認証処理、第１更新データ保存処理、第２更新データ保存処理及び更新データ送信処理を実行させるためのコンピュータプログラムである。
【００５６】
なお、制御プログラムＰｒは、制御部４４が有する一又は複数のＣＰＵが読み取り可能に、記憶媒体Ｅ１に保存されていてもよい。この場合、図示しない読み出し装置によって記憶媒体Ｅ１から読み出された制御プログラムＰｒが記憶部４３に保存される。記憶媒体Ｅ１は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。光ディスクは、ＣＤ（Compact Disc）−ＲＯＭ(Read Only Memory)、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、又は、ＢＤ（Blu-ray(登録商標) Disc）等である。磁気ディスクは、例えばハードディスクである。また、図示しない通信網に接続されている図示しない外部装置から制御プログラムＰｒをダウンロードし、ダウンロードした制御プログラムＰｒを記憶部４３に保存してもよい。
【００５７】
通信部４０ａ，４０ｂの１つがデータを受信した場合に、制御部４４は中継処理を実行する。制御部４４は、受信されたデータに含まれる情報に基づいて、通信部４０ａ，４０ｂの中からデータを送信する通信部を選択し、選択した通信部に、受信されたデータの送信を指示する。これにより、制御部４４が選択した通信部は、受信されたデータを送信する。制御部４４は、受信されたデータの送信を指示した後、中継処理を終了する。
【００５８】
制御部４４は、第１要求データがダイアグツール２０から第１入出力部４１に入力された場合にツール認証処理を実行する。ツール認証処理では、制御部４４は、入力された第１要求データに含まれる情報に基づいて、ダイアグツール２０を認証する。制御部４４は、ダイアグツール２０の認証に成功した場合、第１入出力部４１に出力許可データの出力を指示する。これにより、第１入出力部４１は、出力許可データをダイアグツール２０に出力し、ダイアグツール２０は種々のデータを第１入出力部４１に出力する。制御部４４は、ダイアグツール２０の認証に失敗した場合、又は、出力許可データの出力を指示した後、ツール認証処理を終了する。
【００５９】
制御部４４は、第２要求データが無線機１３から第２入出力部４２に入力された場合にサーバ認証処理を実行する。サーバ認証処理では、制御部４４は、入力された第２要求データに含まれる情報に基づいて、サーバ３０を認証する。制御部４４は、サーバ３０の認証に成功した場合、第２入出力部４２に送信許可データの出力を指示する。これにより、第２入出力部４２は、送信許可データを無線機１３に出力し、無線機１３は、送信許可データをサーバ３０に送信する。前述したように、サーバ３０は、送信許可データを受信した場合、部分データの繰り返し送信を開始する。制御部４４は、サーバ３０の認証に失敗した場合、又は、送信許可データの送信を指示した後、サーバ認証処理を終了する。
【００６０】
図３は、制御プログラムＰａに係る第１更新データ保存処理の手順を示すフローチャートである。制御部４４は、制御プログラムＰａの更新データに係る部分データが第１入出力部４１に入力された場合に制御プログラムＰａに係る第１更新データ保存処理を実行する。
【００６１】
記憶部４３には、制御プログラムＰａに係るフラグ（以下、Ｐａフラグという）の値が記憶されている。Ｐａフラグの値は、制御部４４によって、ゼロ又は１に設定される。Ｐａフラグの値がゼロであることは、ダイアグツール２０から第１入出力部４１に、制御プログラムＰａの更新データに係る部分データが繰り返し入力されていないことを示す。Ｐａフラグの値が１であることは、ダイアグツール２０から第１入出力部４１に、制御プログラムＰａの更新データに係る部分データが繰り返し入力されていることを示す。
【００６２】
制御プログラムＰａに係る第１更新データ保存処理では、まず、制御部４４は、Ｐａフラグの値を１に設定し（ステップＳ１）、制御プログラムＰａの更新データに関して、記憶部４３に既に保存されている全ての部分データを削除する（ステップＳ２）。次に、制御部４４は、第１更新データ保存処理が開始される際に第１入出力部４１に入力された部分データを記憶部４３に保存し（ステップＳ３）、制御プログラムＰａの更新データに係る部分データが更に第１入出力部４１に入力されたか否かを判定する（ステップＳ４）。
【００６３】
制御部４４は、部分データが第１入出力部４１に入力されていないと判定した場合（Ｓ４：ＮＯ）、ステップＳ４を実行し、制御プログラムＰａの更新データに係る部分データが新たに第１入出力部４１に入力されるまで待機する。制御部４４は、部分データが第１入出力部４１に入力されたと判定した場合（Ｓ４：ＹＥＳ）、第１入出力部４１に入力された部分データを記憶部４３に保存し（ステップＳ５）、制御プログラムＰａの更新データに係るＮａ個の部分データを記憶部４３に保存したか否かを判定する（ステップＳ６）。
【００６４】
制御部４４は、Ｎａ個の部分データを保存していないと判定した場合（Ｓ６：ＮＯ）、ステップＳ４を実行し、制御プログラムＰａの更新データに係る部分データが新たに第１入出力部４１に入力されるまで、再び待機する。制御部４４は、Ｎａ個の部分データを保存したと判定した場合（Ｓ６：ＹＥＳ）、Ｐａフラグの値をゼロに設定し（ステップＳ７）、制御プログラムＰａに係る第１更新データ保存処理を終了する。
【００６５】
以上のように、制御部４４は、制御プログラムＰａの更新データに係る部分データが第１入出力部４１に入力された場合、制御プログラムＰａに係る第１更新データ保存処理を実行する。この第１更新データ保存処理では、制御部４４は、記憶部４３に既に保存されている制御プログラムＰａの更新データに係る全ての部分データを削除した後、第１入出力部４１に入力されたＮａ個の部分データ、即ち、更新データを記憶部４３に保存する。Ｎａ個の部分データが第１入出力部４１に入力されるまでＰａフラグの値は１に設定される。
【００６６】
制御部４４は、制御プログラムＰｂの更新データに係る部分データが第１入出力部４１に入力された場合、制御プログラムＰｂに係る第１更新データ保存処理を実行する。
【００６７】
記憶部４３には、制御プログラムＰｂに係るフラグ（以下、Ｐｂフラグという）の値が記憶されている。Ｐｂフラグの値は、制御部４４によって、ゼロ又は１に設定される。Ｐｂフラグの値がゼロであることは、ダイアグツール２０から第１入出力部４１に、制御プログラムＰｂの更新データに係る部分データが繰り返し入力されていないことを示す。Ｐｂフラグの値が１であることは、ダイアグツール２０から第１入出力部４１に、制御プログラムＰｂの更新データに係る部分データが繰り返し入力されていることを示す。
【００６８】
制御プログラムＰｂに係る第１更新データ保存処理は、制御プログラムＰａに係る第１更新データ保存処理と同様である。制御プログラムＰａに係る第１更新データ保存処理の説明において、制御プログラムＰａ、Ｐａフラグ及び整数Ｎａ夫々を、制御プログラムＰｂ、Ｐｂフラグ及び整数Ｎｂに変更することによって、制御プログラムＰｂに係る第１更新データ保存処理を説明することができる。
【００６９】
図４は、制御プログラムＰａに係る第２更新データ保存処理の手順を示すフローチャートである。制御部４４は、制御プログラムＰａの更新データに係る部分データが無線機１３から第２入出力部４２に入力された場合に、制御プログラムＰａに係る第２更新データ保存処理を実行する。
【００７０】
制御プログラムＰａに係る第２更新データ保存処理では、まず、制御部４４は、Ｐａフラグの値がゼロであるか否かを判定する（ステップＳ１１）。前述したように、Ｐａフラグの値がゼロであることは、第１入出力部４１に、制御プログラムＰａの更新データに係る部分データが繰り返し入力されていないことを示す。Ｐａフラグの値が１であることは、第１入出力部４１に、制御プログラムＰａの更新データに係る部分データが繰り返し入力されていることを示す。
【００７１】
制御部４４は、Ｐａフラグの値がゼロではない、即ち、Ｐａフラグの値が１であると判定した場合（Ｓ１１：ＮＯ）、第１入出力部４１に、制御プログラムＰａの更新データに係る部分データが繰り返し入力されているので、第２入出力部４２に送信停止データの出力を指示する（ステップＳ１２）。これにより、第２入出力部４２は、送信停止データを無線機１３に出力し、無線機１３は送信停止データをサーバ３０に無線で送信する。サーバ３０は、送信停止データを受信した場合、制御プログラムＰａの更新データに係る部分データの繰り返し送信を停止する。制御部４４は、ステップＳ１２を実行した後、第２更新データ保存処理が開始される際に第２入出力部４２に入力された部分データを記憶部４３に保存することなく、制御プログラムＰａに係る第２更新データ保存処理を終了する。
【００７２】
制御部４４は、Ｐａフラグの値がゼロであると判定した場合（Ｓ１１：ＹＥＳ）、第２入出力部４２に入力された部分データを記憶部４３に保存し（ステップＳ１３）、再び、フラグの値がゼロであるか否かを判定する（ステップＳ１４）。これにより、制御部４４は、ダイアグツール２０が、制御プログラムＰａの更新データに係る部分データの出力を開始したか否かを監視する。
【００７３】
制御部４４は、Ｐａフラグの値がゼロではない、即ち、Ｐａフラグの値が１であると判定した場合（Ｓ１４：ＮＯ）、ステップＳ１２を実行し、サーバ３０は、制御プログラムＰａの更新データに係る部分データの繰り返し送信を停止する。また、制御プログラムＰａに係る第１更新データ保存処理では、Ｐａフラグの値が１に設定された後、制御プログラムＰａに係る第２更新データ保存処理で保存した全てのデータは記憶部４３から削除される。
【００７４】
制御部４４は、Ｐａフラグの値がゼロであると判定した場合（Ｓ１４：ＹＥＳ）、制御プログラムＰａの更新データに係る部分データが第２入出力部４２に入力されたか否かを判定する（ステップＳ１５）。制御部４４は、部分データが入力されていないと判定した場合（Ｓ１５：ＮＯ）、ステップＳ１４を実行し、Ｐａフラグの値が１に変更されるか、又は、制御プログラムＰａの更新データに係る部分データが第２入出力部４２に入力されるまで待機する。
【００７５】
制御部４４は、部分データが入力されたと判定した場合（Ｓ１５：ＹＥＳ）、第２入出力部４２に入力された部分データを記憶部４３に保存し（ステップＳ１６）、制御プログラムＰａの更新データに係るＮａ個の部分データを記憶部４３に保存したか否かを判定する（ステップＳ１７）。制御部４４は、Ｎａ個の部分データを保存していないと判定した場合（Ｓ１７：ＮＯ）、ステップＳ１４を実行し、再び、Ｐａフラグの値が１に変更されるか、又は、制御プログラムＰａの更新データに係る部分データが新たに第２入出力部４２に入力されるまで待機する。
制御部４４は、Ｎａ個の部分データを保存したと判定した場合（Ｓ１７：ＹＥＳ）、制御プログラムＰａに係る第２更新データ保存処理を終了する。
【００７６】
制御部４４は、制御プログラムＰｂの更新データに係る部分データが無線機１３から第２入出力部４２に入力された場合に、制御プログラムＰｂに係る第２更新データ保存処理を実行する。制御プログラムＰｂに係る第２更新データ保存処理は、制御プログラムＰａに係る第２更新データ保存処理と同様である。制御プログラムＰａに係る第２更新データ保存処理の説明において、制御プログラムＰａ、Ｐａフラグ及び整数Ｎａ夫々を、制御プログラムＰｂ、Ｐｂフラグ及び整数Ｎｂに変更することによって、制御プログラムＰｂに係る第２更新データ保存処理を説明することができる。
【００７７】
図５は、通信システム１の動作の例を示すシーケンス図である。ダイアグツール２０が、制御プログラムＰａの更新データに係る部分データを中継装置１０の第１入出力部４１に繰り返し出力していると仮定する。中継装置１０の制御部４４は、第１入出力部４１に部分データが入力される都度、第１入出力部４１に入力された部分データを記憶部４３に保存する。
【００７８】
この状況で、制御プログラムＰａの更新データに係る部分データをサーバ３０が無線機１３に送信し、無線機１３がこの部分データを第２入出力部４２に出力したと仮定する。この場合、制御部４４は、第２入出力部４２に指示して、送信停止データを無線機１３に出力させ、無線機１３は、サーバ３０に送信停止データを無線で送信する。これにより、サーバ３０は、制御プログラムＰａの更新データに係る部分データの繰り返し送信を停止する。
【００７９】
ダイアグツール２０は、Ｎａ個の部分データの出力が完了するまで、制御プログラムＰａの更新データに係る部分データを繰り返し出力する。制御部４４は、Ｎａ個の部分データを記憶部４３に保存する。
【００８０】
図６は、通信システム１の動作のもう１つの例を示すシーケンス図である。サーバ３０が制御プログラムＰａの更新データに係る部分データを無線機１３に繰り返し送信し、無線機１３が中継装置１０の第２入出力部４２に、制御プログラムＰａの更新データに係る部分データを繰り返し出力していると仮定する。中継装置１０の制御部４４は、第２入出力部４２に部分データが入力される都度、第２入出力部４２に入力された部分データを記憶部４３に保存する。
【００８１】
制御プログラムＰａの更新データに係る部分データが第２入出力部４２に繰り返し入力されている間に、ダイアグツール２０から中継装置１０の第１入出力部４１に、有線で、制御プログラムＰａの更新データに係る部分データが入力されたと仮定する。この場合、制御部４４は、無線機１３から第２入出力部４２に入力されて記憶部４３に保存された全ての部分データを記憶部４３から削除し、第２入出力部４２に入力された部分データの保存を停止する。そして、制御部４４は、第２入出力部４２に指示して、送信停止データを無線機１３に出力させる。これにより、無線機１３は、サーバ３０に送信停止データを無線で送信し、サーバ３０は、制御プログラムＰａの更新データに係る部分データの繰り返し送信を停止する。制御部４４は削除部として機能する。第２入出力部４２は出力部としても機能する。
【００８２】
Ｎａ個の部分データの出力が完了するまで、ダイアグツール２０は、制御プログラムＰａの更新データに係る部分データを繰り返し出力する。制御部４４は、制御プログラムＰａの更新データに係る部分データがダイアグツール２０から第１入出力部４１に入力される都度、ダイアグツール２０から第１入出力部４１に有線で入力された部分データを記憶部４３に保存する。制御部４４は保存部としても機能する。
【００８３】
図５及び図６を用いた説明は、無線機１３及びダイアグツール２０が出力する部分データが、制御プログラムＰａの更新データに係る部分データである場合の説明である。無線機１３及びダイアグツール２０が出力する部分データが、制御プログラムＰｂの更新データに係る部分データである場合の動作は、無線機１３及びダイアグツール２０が出力する部分データが、制御プログラムＰａの更新データに係る部分データである場合の動作と同様である。
【００８４】
なお、ダイアグツール２０から第１入出力部４１に入力される部分データに対応する制御プログラムと、無線機１３から第２入出力部４２に入力される部分データに対応する制御プログラムとが相互に異なる場合、制御部４４は、サーバ３０に部分データの繰り返し送信を停止させることはない。即ち、制御部４４は、制御プログラムＰａの更新データに係る部分データを保存するとともに、制御プログラムＰｂの更新データに係る部分データを保存する。
【００８５】
図７は、制御プログラムＰａに係る更新データ送信処理の手順を示すフローチャートである。前述したように、部分データには、配置番号を示す番号情報が含まれている。制御プログラムＰａの更新データに係る部分データの配置番号は、１以上であり、かつ、Ｎａ以下である整数である。前述したように、配置番号の順に、Ｎａ個の部分データを配置することによって、更新データが実現される。以下では、配置番号がｋ（ｋ：自然数）である部分データをｋ番目の部分データと記載する。
【００８６】
サーバ３０は、配置番号に従って、１番目の部分データから部分データを無線機１３に順次送信する。ダイアグツール２０は、配置番号に従って、１番目の部分データから部分データを第１入出力部４１に順次出力する。通信部４０ａ，４０ｂ夫々は、配置番号に従って、１番目の部分データから部分データをＥＣＵ１１ａ，１１ｂに順次送信する。
制御部４４は、制御プログラムＰａの更新データに係る１番目の部分データが記憶部４３に保存された場合に、制御プログラムＰａに係る更新データ送信処理を実行する。
【００８７】
制御プログラムＰａに係る更新データ送信処理では、まず、制御部４４は、記憶部４３に保存されている部分データの送信を通信部４０ａに指示する（ステップＳ２１）。これにより、通信部４０ａは部分データをＥＣＵ１１ａに送信する。次に、制御部４４は、ステップＳ２２を実行してから所定時間が経過するまでに、制御プログラムＰａの更新データに係る次の部分データが記憶部４３に保存されているか否かを判定する（ステップＳ２２）。例えば、１番目の部分データが保存されている場合、次の部分データは、２番目の部分データである。
【００８８】
所定時間は、サーバ３０が無線機１３に部分データを送信する時間間隔よも長く、ダイアグツール２０が第１入出力部４１に部分データを出力する時間間隔よりも長い。従って、制御プログラムＰａに係る第１更新データ保存処理のステップＳ２で全ての部分データが削除されるか、又は、Ｎａ個の部分データの保存が完了しない限り、ステップＳ２２を実行してから所定時間が経過するまで、次の部分データが記憶部４３に保存される。
【００８９】
制御部４４は、次の部分データが保存されていると判定した場合（Ｓ２２：ＹＥＳ）、ステップＳ２２を実行し、通信部４０ａは、次の部分データをＥＣＵ１１ａに送信する。制御部４４は、次の部分データが保存されていないと判定した場合（Ｓ２２：ＮＯ）、Ｎａ個の部分データが通信部４０ａによって送信されたか否かを判定する（ステップＳ２３）。
【００９０】
制御部４４は、Ｎａ個の部分データが送信されたと判定した場合（Ｓ２３：ＹＥＳ）、Ｎａ個の部分データで構成される更新データを記憶部４３から削除する（ステップＳ２４）。制御部４４は、Ｎａ個の部分データが送信されていないと判定した場合（Ｓ２３：ＮＯ）、サーバ３０が部分データの繰り返し送信を停止したとして、削除指示データの送信を通信部４０ａに指示する（ステップＳ２５）。
【００９１】
これにより、通信部４０ａはＥＣＵ１１ａに削除指示データを送信する。前述したように、ＥＣＵ１１ａは、削除指示データを受信した場合、通信部４０ａが送信した全ての部分データを削除する。このため、ＥＣＵ１１ａは、サーバ３０が送信した部分データに係る更新データを用いて、制御プログラムＰａを更新することはない。
制御部４４は、ステップＳ２４又はステップＳ２５を実行した後、制御プログラムＰａに係る更新データ送信処理を終了する。
【００９２】
制御部４４は、制御プログラムＰｂの更新データに係る１番目の部分データが記憶部４３に保存された場合に、制御プログラムＰｂに係る更新データ送信処理を実行する。制御プログラムＰｂに係る更新データ送信処理は、制御プログラムＰａに係る更新データ送信処理と同様である。制御プログラムＰａに係る更新データ送信処理の説明において、制御プログラムＰａ、通信部４０ａ及び整数Ｎａ夫々を、制御プログラムＰｂ、通信部４０ｂ及び整数Ｎｂに変更することによって、制御プログラムＰｂに係る更新データ送信処理を説明することができる。通信部４０ａ，４０ｂ夫々は送信部として機能する。
【００９３】
以上のように、制御部４４が制御プログラムＰａ（又は制御プログラムＰｂ）の更新データに係る部分データを保存する都度、通信部４０ａ（又は通信部４０ｂ）が部分データをＥＣＵ１１ａ（又はＥＣＵ１１ｂ）に送信し、ＥＣＵ１１ａ（又はＥＣＵ１１ｂ）は、受信した部分データを保存する。ＥＣＵ１１ａ，１１ｂ夫々は、削除指示データを受信した場合、受信した全ての部分データを削除する。前述したように、ＥＣＵ１１ａ（又はＥＣＵ１１ｂ）では、更新データが記憶されており、かつ、車両１００の状態が、制御プログラムＰａ（又は制御プログラムＰｂ）を更新することが可能な状態である場合、更新データを用いて制御プログラムＰａ（又は制御プログラムＰｂ）を更新する。
【００９４】
一般的に、サーバ３０から受信した更新データを用いた更新は、車両１００の乗員の許可を受けた上で不特定な場所で実行され、ダイアグツール２０から入力された更新データを用いた更新は、販売店又は工場等でディーラーがダイアグツール２０の操作部を操作することによって実行される。以上のことを考慮した場合、ダイアグツール２０から入力された更新データを用いた更新は、サーバ３０から受信した更新データを用いた更新よりも重要である。
【００９５】
中継装置１０では、制御プログラムＰａの更新データに係る部分データが無線機１３から第２入出力部４２に繰り返し入力されている間に、制御プログラムＰａの更新データに係る部分データがダイアグツール２０から第１入出力部４１に入力された場合、制御部４４は、第２入出力部４２に入力された部分データの保存を停止する。そして、第１入出力部４１に繰り返し入力される部分データを保存する。このため、サーバ３０が無線機１３に送信した更新データを用いた不要な制御プログラムＰａの更新が防止される。
制御プログラムＰｂに関しても、制御プログラムＰａに関して述べた効果と同様の効果が得られる。
【００９６】
なお、ＥＣＵ１１ａ，１１ｂに更新データを記憶する記憶容量がない場合においては、中継装置１０の制御部４４は、更新データが記憶部４３に保存しており、かつ、車両１００の状態が、更新を行うことが可能な状態であるとき、更新データ送信処理を実行する。この更新送信処理では、制御部４４は、通信部４０ａ（又は通信部４０ｂ）に指示して、部分データを順次送信させる。ＥＣＵ１１ａ（又はＥＣＵ１１ｂ）は、部分データを受信する都度、受信した部分データを用いて、制御プログラムＰａ（又は制御プログラムＰｂ）を部分的に更新し、受信した部分データを削除する。ＥＣＵ１１ａ（又はＥＣＵ１１ｂ）は、部分的な更新と、受信した部分データの削除とを繰り返し行うことで、制御プログラムＰａ（又は制御プログラムＰｂ）全体を更新する。
【００９７】
（実施形態２）
実施形態１における中継装置１０では、部分データが第２入出力部４２に部分データが繰り返し入力されている間に、部分データがダイアグツール２０から第１入出力部４１に入力された場合、制御部４４は、無条件に、第２入出力部４２に入力された全ての部分データを削除する。しかしながら、制御部４４は、無条件に、第２入出力部４２に入力された全ての部分データを削除しなくてもよい。
以下では、実施形態２について、実施形態１と異なる点を説明する。後述する構成を除く他の構成については、実施形態１と共通しているため、実施形態１と共通する構成部には実施形態１と同一の参照符号を付してその説明を省略する。
【００９８】
実施形態２における通信システム１では、中継装置１０の第１入出力部４１は、ダイアグツール２０が出力する部分データを指定する指定データをダイアグツール２０に出力する。指定データは、制御プログラムＰａ又は制御プログラムＰｂの更新データについて配置番号を指定する。例えば、指定データは、制御プログラムＰａの更新データを構成する１０番目の部分データからＮａ番目の部分データを指定する。ダイアグツール２０は、指定データが入力された場合、入力された指定データが指定する一又は複数の部分データを第１入出力部４１に順次出力する。
【００９９】
図８は、実施形態２における第１更新データ保存処理の手順を示すフローチャートである。図８に示す第１更新データ保存処理は、制御プログラムＰａに係る処理である。制御部４４は、実施形態１と同様に、制御プログラムＰａの更新データに係る部分データが第１入出力部４１に入力された場合に制御プログラムＰａに係る第１更新データ保存処理を実行する。
【０１００】
なお、実施形態１の説明で述べたように、部分データには、バージョン情報及び番号情報が含まれている。制御プログラムＰａの更新データに係る部分データのバージョン情報は、更新後の制御プログラムＰａのバージョンを示す。
【０１０１】
実施形態２における第１更新データ保存処理のステップＳ３１，Ｓ３３，Ｓ３４，Ｓ３８〜Ｓ４１夫々は、Ｓ１，Ｓ２，Ｓ３，Ｓ４〜Ｓ７と同様である。このため、ステップＳ３１，Ｓ３３，Ｓ３４，Ｓ３８〜Ｓ４１の詳細な説明を省略する。
【０１０２】
制御プログラムＰａに係る第１更新データ保存処理では、制御部４４は、ステップＳ３１を実行した後、第１入出力部４１に入力された部分データのバージョン情報が示すバージョンとバージョンが同一である部分データが記憶部４３に保存されているか否かを判定する（ステップＳ３２）。
【０１０３】
制御プログラムＰａの更新データに係る部分データが無線機１３から第２入出力部４２に繰り返し入力されている間に、制御プログラムＰａの更新データに係る部分データが第１入出力部４１に入力されて、制御プログラムＰａに係る第１更新データ保存処理が開始されたと仮定する。この場合、制御部４４は、ステップＳ３２において、第１入出力部４１に入力された部分データのバージョン情報が示すバージョンが、記憶部４３に保存されている部分データ、即ち、第２入出力部４２に入力された部分データのバージョン情報が示すバージョンと同一であるか否かを判定する。制御部４４は判定部としても機能する。
【０１０４】
制御部４４は、バージョンが同一である部分データが保存されていないと判定した場合（Ｓ３２：ＮＯ）、ステップＳ３３，Ｓ３４を実行する。これにより、制御プログラムＰａの更新データに関して、記憶部４３に既に保存されている全ての部分データが削除され、第１更新データ保存処理を開始する際に第１入出力部４１に入力された部分データが記憶部４３に保存される。
【０１０５】
制御部４４は、バージョンが同一である部分データが保存されていると判定した場合（Ｓ３２：ＹＥＳ）、Ｎａ個の部分データの中で、記憶部４３に保存されていない残りの部分データを指定する指定データの出力を第１入出力部４１に指示する（ステップＳ３５）。これにより、第１入出力部４１は指定データを出力する。ダイアグツール２０は、第１入出力部４１から指定データが入力された場合、入力された指定データが示す部分データ、即ち、更新データを構成する残りの部分データを第１入出力部４１に順次出力する。指定データは、更新データを構成する残りの部分データの出力を要求する出力要求データに相当する。第１入出力部４１は、第２の出力部としても機能する。
【０１０６】
なお、制御部４４は、バージョンが同一である部分データが保存されていると判定した場合、第１更新データ保存処理が開始される際に第１入出力部４１に入力された部分データを記憶部４３に保存することはない。
【０１０７】
次に、制御部４４は、指定データが指定した部分データ中の１つが第１入出力部４１に入力されたか否かを判定する（ステップＳ３６）。制御部４４は、指定データが指定した部分データ中のいずれも第１入出力部４１に入力されていないと判定した場合（Ｓ３６：ＮＯ）、ステップＳ３６を再び実行し、指定データが指定した部分データ中の１つが第１入出力部４１に入力されるまで待機する。
【０１０８】
制御部４４は、指定データが指定した部分データ中の１つが第１入出力部４１に入力されたと判定した場合（Ｓ３６：ＹＥＳ）、第１入出力部４１に入力された部分データを記憶部４３に保存する（ステップＳ３７）。制御部４４は、ステップＳ３４又はステップＳ３７を実行した後、ステップＳ３８を実行する。
【０１０９】
その後、制御部４４は、制御プログラムＰａの更新データに係るＮａ個の部分データが記憶部４３に保存されるまで、ダイアグツール２０からの部分データの入力を待機する。
【０１１０】
実施形態２においても、制御プログラムＰｂに係る第１更新データ保存処理は、制御プログラムＰａに係る第１更新データ保存処理と同様である。制御プログラムＰａに係る第１更新データ保存処理の説明において、制御プログラムＰａ、Ｐａフラグ及び整数Ｎａ夫々を、制御プログラムＰｂ、Ｐｂフラグ及び整数Ｎｂに変更することによって、制御プログラムＰｂに係る第１更新データ保存処理を説明することができる。
【０１１１】
図９は、通信システム１の動作の例を示すシーケンス図である。サーバ３０が制御プログラムＰａの更新データに係る部分データを無線機１３に繰り返し送信し、無線機１３が中継装置１０の第２入出力部４２に、制御プログラムＰａの更新データに係る部分データを繰り返し出力していると仮定する。中継装置１０の制御部４４は、第２入出力部４２に部分データが入力される都度、第２入出力部４２に入力された部分データを記憶部４３に保存する。
【０１１２】
制御プログラムＰａの更新データに係る部分データが第２入出力部４２に繰り返し入力されている間に、ダイアグツール２０から中継装置１０の第１入出力部４１に、有線で、制御プログラムＰａの更新データに係る部分データが入力されたと仮定する。この場合、制御部４４は、第２入出力部４２に入力された部分データの保存を停止し、第２入出力部４２に指示して、送信停止データを無線機１３に出力させる。これにより、サーバ３０は、制御プログラムＰａの更新データに係る部分データの繰り返し送信を停止する。
【０１１３】
次に、制御部４４は、第１入出力部４１に入力された部分データのバージョン情報が示すバージョンが、第２入出力部４２に入力された部分データのバージョン情報が示すバージョンと同一であるか否かを判定する。制御部４４は、第１入出力部４１に入力された部分データのバージョン情報が示すバージョンが同一であると判定した場合、第１入出力部４１に指示して、指定データを出力させ、制御プログラムＰａの更新データを構成する残りの部分データの出力をダイアグツール２０に要求する。ダイアグツール２０は、第１入出力部４１から指定データが入力された場合、入力された指定データが指定する部分データ、即ち、残りの部分データを第１入出力部４１に順次出力する。
【０１１４】
Ｎａ個の部分データの保存が完了するまで、ダイアグツール２０は、制御プログラムＰａの更新データに係る部分データを繰り返し出力する。制御部４４は、制御プログラムＰａの更新データに係る部分データがダイアグツール２０から第１入出力部４１に入力される都度、ダイアグツール２０から第１入出力部４１に有線で入力された部分データを記憶部４３に保存する。
【０１１５】
図１０は更新データの構成の概略図である。第１入出力部４１に入力された部分データのバージョン情報が示すバージョンが、第２入出力部４２に入力された部分データのバージョン情報が示すバージョンと同一であると仮定する。この場合、図１０に示すように、例えば、更新データを構成するＮａ個の部分データの中で、１番目から２０番目の部分データは、無線機１３から入力された部分データで構成され、２１番目からＮａ番目の部分データはダイアグツール２０から入力された部分データで構成される。このため、実施形態２における中継装置１０では、更新データの取得に要する時間は短い。
実施形態２における通信システム１及び中継装置１０夫々は、実施形態１における通信システム１及び中継装置１０が奏する効果を同様に奏する。
【０１１６】
なお、実施形態２における第１更新データ保存処理において、制御部４４は、バージョンが同一である部分データが保存されていると判定した場合、第１入出力部４１に指示して、部分データの繰り返し出力を停止するデータをダイアグツール２０に出力し、処理を終了してもよい。
【０１１７】
この構成では、第１入出力部４１に入力された部分データのバージョン情報が示すバージョンが、第２入出力部４２に入力された部分データのバージョン情報が示すバージョンと同一である場合、ダイアグツール２０ではなく、サーバ３０から更新データを取得する。この構成では、サーバ３０から継続して部分データを取得する必要があるので、フラグの値の１への設定は、バージョンの判定後において、バージョンが同一である部分データが保存されていないと判定した場合に行われる。制御部４４は、バージョンが同一である部分データが保存されていると判定した場合、フラグの値をゼロに維持する。
【０１１８】
なお、実施形態１，２において、中継装置１０に接続されるＥＣＵの数は、２に限定されず、３以上であってもよい。また、中継装置１０に、複数の通信バスが接続され、各通信バスに一又は複数のＥＣＵが接続される構成であってもよい。この場合、中継装置１０は、例えば、ＣＡＮプロトコルに従って、一の通信バスに接続されるＥＣＵと、他の通信バスに接続されるＥＣＵとの間の通信を中継する。
【０１１９】
また、無線機１３から中継装置１０の第２入出力部４２に部分データが繰り返し入力されている場合において、ダイアグツール２０から第１入出力部４１に部分データが入力されたと仮定する。このとき、第２入出力部４２に入力されている部分データに係る更新データによって構成される制御プログラムに無関係に、制御部４４は、第２入出力部４２に入力されている部分データの保存を停止してもよい。
【０１２０】
具体的には、無線機１３から第２入出力部４２に制御プログラムＰｂの更新データに係る部分データが繰り返し入力されている間に、ダイアグツール２０から第１入出力部４１に制御プログラムＰａの更新データに係る部分データが入力された場合、制御部４４は、第２入出力部４２に入力されている部分データの保存を停止してもよい。この場合も、制御部４４は、第２入出力部４２に入力されて記憶部４３に保存した全ての部分データを削除し、サーバ３０に部分データの繰り返し送信を停止させる。
【０１２１】
ダイアグツール２０が出力する部分データ、及び、サーバ３０が送信する部分データは、制御プログラムＰａ，Ｐｂの更新に用いる更新データの一部である部分データに限定されず、例えば、中継装置１０の制御プログラムＰｒの更新に用いる更新データの一部である部分データであってもよい。この場合、車両１００の状態が、制御プログラムＰｒを更新することが可能な状態であるとき、例えば、車両１００のイグニッションスイッチがオフであるときに、制御部４４は、図示しない更新プログラムを実行することによって、制御プログラムＰｒを更新する。
この構成を適用することができる装置は、通信を中継する中継装置に限定されず、ＣＰＵが制御プログラムを実行することによって制御を行う制御装置であればよい。
【０１２２】
開示された実施形態１，２はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２３】
１  通信システム
１０  中継装置（保存装置）
１１ａ，１１ｂ  ＥＣＵ（処理装置）
１２，２１  コネクタ
１３  無線機
２０  ダイアグツール（外部装置）
３０  サーバ
４０ａ，４０ｂ  通信部（送信部）
４１  第１入出力部（第１入力部、第２の出力部）
４２  第２入出力部（第２入力部、出力部）
４３  記憶部
４４  制御部（削除部、保存部、判定部）
４５  内部バス
１００  車両
Ｅ１  記憶媒体
Ｐａ，Ｐｂ  制御プログラム
Ｐｒ  制御プログラム（コンピュータプログラム）
【図１】
2019153159.tif 000003
【図２】
2019153159.tif 000004
【図３】
2019153159.tif 000005
【図４】
2019153159.tif 000006
【図５】
2019153159.tif 000007
【図６】
2019153159.tif 000008
【図７】
2019153159.tif 000009
【図８】
2019153159.tif 000010
【図９】
2019153159.tif 000011
【図１０】
2019153159.tif 000012