(57)【要約】【課題】ドライバが特殊な作業／運転を行う必要がない形で、無線通信可能な車両に、アップデータ等のデータを配信することが出来るデータ配信システムを提供する。【解決手段】データ配信システムを、それらからデータを復元することが可能な複数の、所定時間内に無線送信可能なサイズの部分コードを保持した配信センタ１０と、配信センタ１０から送信されてきた部分データを車両４０に送信する機能を有する複数の路側機２０とを備え、配信センタ１０によって、車両４０の位置から、当該車両４０がその後止まる可能性が高い複数の場所が予測され、予測された各場所の傍に設置されている路側機１０に、部分データが送信されるシステムとして構成しておく。【選択図】図１
2010128965.tif 000002
【特許請求の範囲】
【請求項１】
通信機能を有する車両にデータを配信するためのデータ配信システムであって、
車両が止まる場所及び／或いは車両が減速する場所の近傍に設置された複数の路側機と、配信装置とを含み、
前記配信装置が、
所定時間内に送信可能なサイズに基づいて或るデータを１つ以上に分割した部分データであって、それらを組み合わせることにより前記データを復元することが可能な１つ以上の部分データを記憶した部分データ記憶手段と、
前記データを配信すべき車両の位置の把握結果に基づき、走行経路における走行速度が所定値以下となりえる場所に設置された前記路側機に、前記記憶手段上の部分データとその部分データの送信先とすべき車両を指定する車両指定情報とを送信する処理を、前記部分データ記憶手段上の各部分データについて行う配信手段と
を備えた装置であり、
前記複数の路側機のそれぞれが、
前記配信装置から送信されてきた前記部分データと前記車両指定情報とを受信する受信手段と、
前記受信手段によって受信された前記部分データを、通信可能な範囲に入った、前記受信手段によって受信された前記車両指定情報が指定する車両に送信する部分データ送信手段と
を備えた装置である
ことを特徴とするデータ配信システム。
【請求項２】
送信されてきた前記部分データと前記車両指定情報とを受信する中継車両内受信手段と、
前記受信手段によって受信された前記部分データを、通信可能な範囲に入った、前記受信手段によって受信された前記車両指定情報が指定する車両に送信する中継車両内部分データ送信手段と
を備えた中継車両を、さらに含み、
前記複数の路側機のそれぞれが、
通信可能な範囲に入った前記中継車両に、前記受信手段によって受信された前記部分データと前記車両指定情報とを送信する部分データ等供給手段
を、さらに備えた装置である
ことを特徴とする請求項１記載のデータ配信システム。
【請求項３】
前記複数の路側機のそれぞれが、
前記部分データ送信手段の通信可能な範囲に入った車両に関する情報である車両情報を前記配信装置に送信する車両情報送信手段
を、さらに備えた装置であり、
前記配信装置の前記配信手段が、
前記データを配信すべき前記車両の位置を、各路側機の前記車両情報送信手段によって送信された車両情報から把握する手段である
ことを特徴とする請求項１又は請求項２に記載のデータ配信システム。
【請求項４】
前記車両情報が、
対応する車両が既に受信している部分データを示す情報を含む情報であり、
前記配信装置の前記配信手段が、
予測した各場所の傍に設置されている前記路側機に対していずれの部分データを送信するかを、受信した前記車両情報に基づき決定する手段である
ことを特徴とする請求項３記載のデータ配信システム。
【請求項５】
前記複数の部分データから復元されるデータが、
前記車両内で使用されているソフトウェアを更新するためのデータである
ことを特徴とする請求項１乃至請求項４のいずれか一項に記載のデータ配信システム。
【請求項６】
車両が止まる場所及び／或いは車両が減速する場所の近傍に設置された複数の通信機能を有する路側機を利用して、通信機能を有する車両にデータを配信するためのデータ配信方法であって、
前記データを、所定時間内に送信可能なサイズに基づいて１つ以上に分割し、それらを組み合わせることにより前記データを復元することが可能な１つ以上の部分データを生成する生成ステップと、
前記データを配信すべき車両の位置の把握結果に基づき、走行経路における走行速度が所定値以下となりえる場所に設置された前記路側機に、前記生成ステップにより生成された部分データとその部分データの送信先とすべき車両を指定する車両指定情報とを送信する処理を、前記生成ステップにより生成された各部分データについて行う配信ステップと
を含むことを特徴とするデータ配信方法。
【請求項７】
通信装置及び制御装置を備えた車両であって、
前記制御装置が、
車両内の装置を制御するための幾つかのプログラムが実行される第１ドメインと、前記第１ドメインとは独立したプログラムの実行環境である第２ドメインとを有する装置であり、
前記制御装置の前記第２ドメイン内のプログラムにより、
前記第１ドメイン内で使用されているプログラムを更新するための更新データを復元可能な複数の部分データが前記通信装置を利用して受信されて前記第１ドメイン上のプログラムが利用出来ないデータとして管理され、
前記複数の部分データから前記更新データが復元された後、その更新データが改竄されていないものであることが確認され、
当該更新データが改竄されていないものであることが確認された場合にのみ、当該更新データを用いた前記第１ドメイン上のプログラムの更新が行われる
ことを特徴とする車両。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信可能な車両にデータを配信するためのデータ配信システム及びデータ配信方法と、プログラムの更新データを受信できる車両とに関する。  
【背景技術】
【０００２】
近年の車両（自動車）は、様々なソフトウェア（エンジン制御用のプログラム、カーナビゲーション・システムのプログラムや地図データ等）が用いられたものとなっている。そして、そのようなソフトウェアを、ＲＯＭの差し替え等でしか更新できないのは不便であるため、通信により車両内のソフトウェアを更新できるようにすることが考えられる。なお車両は移動するため、外部との通信には無線機能を利用するのが一般的である。
【０００３】
ただし、車両に単純な無線通信機能を付けただけでは、ソフトウェアの更新が必要になったときに、ソフトウェアの無線送信源が設置されている場所に車両を運転していき、その場所で車両をしばらく停止させなければならないことになる。何故ならば、ソフトウェアを更新するためのデータ（いわゆるアップデータ）は、結構大きなサイズのことが多いし、一般的な無線通信技術は、通信可能距離が短いものであることに加え、通信する２装置が相対的な移動速度が速いと通信状態が不安定になるものとなっているからである。
【０００４】
【特許文献１】特開２００５−５７４４２号公報
【特許文献２】特開２００８−９０５８７号公報
【特許文献３】特開２００６−３８６６９号公報
【特許文献４】特開２００７−３４８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の課題は、車両の操縦者（以下、ドライバと表記する）が特殊な作業／運転を行う必要がない形で、通信可能な車両に、アップデータ等のデータを配信することが出来るデータ配信システム及びデータ配信方法を提供することになる。
【０００６】
また、本発明の他の課題は、本発明のデータ配信システム等から送信されたデータに基づき、制御装置内のプログラムを安全に更新できる車両を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の、通信機能を有する車両にデータを配信するためのデータ配信システムは、車両が止まる場所及び／或いは車両が減速する場所の近傍に設置された複数の路側機と、配信装置とを含み、前記配信装置が、所定時間内に送信可能なサイズに基づいて或るデータを１つ以上に分割した部分データであって、それらを組み合わせることにより前記データを復元することが可能な１つ以上の部分データを記憶した部分データ記憶手段と、前記データを配信すべき車両の位置の把握結果に基づき、走行経路における走行速度が所定値以下となりえる場所に設置された前記路側機に、前記記憶手段上の部分データとその部分データの送信先とすべき車両を指定する車両指定情報とを送信する処理を、前記部分データ記憶手段上の各部分データについて行う配信手段とを備えた装置であり、前記複数の路側機のそれぞれが、前記配信装置から送信されてきた前記部分データと前記車両指定情報とを受信する受信手段と、前記受信手段によって受信された前記部分データを、通信可能な範囲に入った、前記受信手段によって受信された前記車両指定情報が指定する車両に送信する部分データ送信手段とを備えた装置である構成を、有する。
【０００８】
すなわち、本発明のデータ配信システムは、データをそのまま車両に送信するシステムではなく、データを幾つかの、処理時間内に（短時間で）送信可能なサイズの部分データに分けて車両に送信するシステムとなっている。さらに、データ配信システムは、"車両
が止まる場所及び／或いは車両が減速する場所の近傍に設置された複数の路側機"を備え
、車両に、当該車両が近づいた路側機（走行経路における走行速度が所定値以下となりえる場所に設置された前記路側機）から部分データが配信されるシステムとなっている。
【０００９】
従って、このデータ配信システムを用いておけば、ドライバ（車両の操縦者）が車両を運転しさえすれば（換言すれば、ドライバが特殊な作業／運転を行う必要がない形で）、当該車両にデータが配信される環境を実現できることになる。
【００１０】
なお、本発明において、"車両が止まる場所及び／或いは車両が減速する場所"とは、車両が停止する蓋然性や車両の速度が低下する蓋然性が高い場所（交差点の侵入口部分、一時停止線の前、踏切前、急カーブ等）のことである。
【００１１】
本発明のデータ配信システムにおける"データ"は、どのようなものであっても良い。例えば、データを、前記車両内で使用されているソフトウェアを更新するためのソフトウェアとしておくことが出来る。また、"車両指定情報"は、特定の車両を指定する情報であっても、車種を指定する情報であっても良い。
【００１２】
本発明のデータ配信システムを実現するに際しては、『送信されてきた前記部分データと前記車両指定情報とを受信する中継車両内受信手段と、前記受信手段によって受信された前記部分データを、通信可能な範囲に入った、前記受信手段によって受信された前記車両指定情報が指定する車両に送信する中継車両内部分データ送信手段とを備えた中継車両』を、その構成要素として付加しておくと共に、各路側機に、通信可能な範囲に入った前記中継車両に、前記受信手段によって受信された前記部分データと前記車両指定情報とを送信する部分データ等供給手段を付加しておくことが出来る。
【００１３】
そして、そのような形で実現された本発明のデータ配信システムでは、路側機から車両への部分データの送信が失敗した際に、中継車両から車両へ部分データが送信される場合があることになる。従って、このデータ配信システムは、中継車両を構成要素としないデータ配信システムよりも、全部分データの車両への送信（供給）が短期間で終わるシステムとなっていると言うことが出来る。
【００１４】
また、配信装置の配信手段は、どのような方法／手順により車両の位置を把握する手段であっても良いので、例えば、配信手段を、ＧＰＳ（Global Positioning System）によ
り車両の位置を把握する手段としておくことが出来る。
【００１５】
ただし、配置手段として、ＧＰＳにより車両の位置を把握する手段を採用した場合、車両に特殊な装置を追加する必要が生ずることになるので、車両に特殊な装置を追加しないですむようにするために、各路側機に、前記部分データ送信手段の通信可能な範囲に入った車両に関する情報である車両情報を前記配信装置に送信する車両情報送信手段を付加した上で、配信装置の前記配信手段を、前記データを配信すべき前記車両の位置を、各路側機の前記車両情報送信手段によって送信された車両情報から把握する手段としておくことが好ましい。
【００１６】
また、配信装置の配信手段は、送信する部分データをランダムに決定する手段としておくことも出来る。ただし、同じ部分データを車両に受信させる（同じ部分データは、車両に破棄させる）のは無駄なことであるので、例えば、車両情報として、対応する車両が既
に受信している部分データを示す情報を含む情報を採用し、配信手段として、予測した各場所の傍に設置されている前記路側機に対していずれの部分データを送信するかを、受信した前記車両情報に基づき決定する手段を採用しておくことが望ましい。
【００１７】
また、本発明の、車両が止まる場所及び／或いは車両が減速する場所の近傍に設置された複数の通信機能を有する路側機を利用して、通信機能を有する車両にデータを配信するためのデータ配信方法は、前記データを、所定時間内に送信可能なサイズに基づいて１つ以上に分割し、それらを組み合わせることにより前記データを復元することが可能な１つ以上の部分データを生成する生成ステップと、前記データを配信すべき車両の位置の把握結果に基づき、走行経路における走行速度が所定値以下となりえる場所に設置された前記路側機に、前記生成ステップにより生成された部分データとその部分データの送信先とすべき車両を指定する車両指定情報とを送信する処理を、前記生成ステップにより生成された各部分データについて行う配信ステップととを含むものとなっている。
【００１８】
すなわち、本発明のデータ配信方法は、データをそのまま車両に送信するものではなく、データを幾つかの、処理時間内に（短時間で）送信可能なサイズの部分データに分けて車両に送信するものとなっている。さらに、データ配信方法は、"車両が止まる場所及び
／或いは車両が減速する場所の近傍に設置された複数の路側機"が、車両が近づいた路側
機（当該車両がその後止まる可能性が高いと予測された複数の場所の傍に設置されているいずれかの路側機）から、車両に部分データが配信されるように制御される方法となっている。
【００１９】
従って、このデータ配信方法を用いておけば、ドライバが車両を運転しさえすれば、当該車両にデータが配信される環境を実現できることになる。
【００２０】
また、本発明の車両は、通信装置、及び、車両内の装置を制御するための幾つかのプログラムが実行される第１ドメインと、前記第１ドメインとは独立したプログラムの実行環境であり、第1ドメインからのアクセスを拒絶できる第２ドメインとを有する制御装置を
備えた構成であると共に、前記制御装置の前記第２ドメイン内のプログラムにより、前記第１ドメイン内で使用されているプログラムを更新するための更新データを復元可能な複数の部分データが前記通信装置を利用して受信されて前記第１ドメイン上のプログラムが利用出来ないデータとして管理され、前記複数の部分データから前記更新データが復元された後、その更新データが改竄されていないものであることが確認され、当該更新データが改竄されていないものであることが確認された場合にのみ、当該更新データを用いた前記第１ドメイン上のプログラムの更新が行われる構成を有する。
【００２１】
すなわち、本発明の車両は、送信されてきた各部分データを、車両内の装置（エンジン、カーナビゲーションシステム等）を制御するための各プログラムの動作に何ら影響を与えない形で管理可能な制御装置を備えている。さらに、本発明の車両が備える制御装置は、更新データが復元可能な状態になった場合には、更新データを復元し、その更新データが改竄されていないもの（元々の更新データと同じもの）であることが確認できた場合にのみ、その更新データに基づくプログラムの更新を行うものとなっている。
【００２２】
従って、本発明の車両は、上記した本発明のデータ配信システム等から送信されたデータに基づき、制御装置内のプログラムを安全に更新できるものとなっていることになる。
【発明の効果】
【００２３】
本発明のデータ配信システム、データ配信方法によれば、ドライバが特殊な作業／運転を行う必要がない形で、当該車両にデータが配信される環境を実現できることになる。
【００２４】
また、本発明の車両の構成を採用しておけば、本発明のデータ配信システム等から送信されたデータに基づき、制御装置内のプログラムを安全に更新できることになる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００２６】
図１に、本発明の一実施形態に係るデータ配信システムの構成を示す。
【００２７】
図示してあるように、本実施形態に係るデータ配信システムは、固定通信網に接続された配信センタ１０及び多数（図では、２つ）の路側機２０と、１台以上（図では、１台）の中継車両３０とを備えたシステムである。
【００２８】
このデータ配信システムは、所定の構成（機能）を有する車両４０に、当該車両４０内で使用されているソフトウェアを更新するためのデータ（いわゆる、アップデータ；以下、更新コードと表記する）を無線配信するシステムである。このため、本データ配信システムの詳細を説明する前に、車両４０の構成や、本システムの機能の理解に必要な幾つかの事項について、説明しておくことにする。
【００２９】
本実施形態に係るデータ配信システムは、通信装置４１、通信装置４２及びコード更新処理部５０を備えた車両４０と、通信装置４１及びコード更新処理部５０′を備えた車両４０とに、更新コードを配信できるシステムとして構成されている。
【００３０】
通信装置４１は、各路側機２０と無線通信を行うための装置である。通信装置４２は、自車両４０の前方を走行している中継車両３０と無線通信を行うための装置である。
【００３１】
各通信装置４１、４２は、通信可能な距離が比較的に短く、かつ、通信可能な方向に指向性がある装置となっている。通信装置４１は、車両４０の左側に位置している機器との間の無線通信が良好に行えるように、車両４０に取り付けられている。また、通信装置４２は、車両４０の前方に位置している機器との間の無線通信が良好に行えるように、車両４０に取り付けられている。
【００３２】
コード更新処理部５０、５０′は、更新コード（部分コード群）を受信して車両４０内のソフトウェアを更新するためのユニットである。
【００３３】
各コード更新処理部５０、５０′は、車両４０内の制御装置の一機能として実現されている。より具体的には、各車両４０の制御装置は、プログラムの実行環境として、エンジンの制御プログラム等が実行される主ドメインと、主ドメインに対して独立した保護ドメインとを備えたものとなっている。なお、
保護ドメインは、VMWareやXenなどを利用して複数のゲストOSを生成する手段や、英国ARM社が提供するTrustZoneを利用することで実現できる。
【００３４】
そして、コード更新処理部５０、５０′は、図２に模式的に示したように、保護ドメイン上／内の機能として実現されたものとなっている。
【００３５】
以下、図３〜図６を用いて、コード更新処理部５０、５０′の機能をさらに具体的に説明する。なお、これらの図のうち、図３は、コード更新処理部５０の機能ブロック図であり、図４は、コード更新処理部５０′の機能ブロック図である。また、図５は、部分コードの説明図であり、図６は、車両４０のイグニッションキーがＯＦＦされた場合に、コード更新処理部５０、５０′（コード更新処理部５０、５０′内の一部の機能ブロック）が実行する処理の流れ図である。
【００３６】
図３に示してあるように、コード更新処理部５０は、部分コード復元部５１、部分コード管理部５２、路側機用通信制御部５３、中継車両用通信制御部５４、コード更新部５５及び情報記憶部５６を備えている。また、図４に示してあるように、コード更新処理部５０′は、部分コード復元部５１、部分コード管理部５２、路側機用通信制御部５３、コード更新部５５及び情報記憶部５６を備えている。
【００３７】
各コード更新処理部５０、５０′が備える情報記憶部５６は、情報の書き込みが可能な、車両４０内の制御装置への電力供給が停止されても書き込んだ情報が失われない機能ブロック（制御装置内の、書換可能な不揮発性メモリに相当する機能ブロック）である。この情報記憶部５６には、車両４０内で使用されている各種ソフトウェアの名称やバージョン情報、個々の車両４０の識別情報である車両ＩＤ等からなる車両情報が、予め記憶されている。
【００３８】
路側機用通信制御部５３は、コード更新処理部５０、５０′が起動されたとき（イグニッションキーの操作により車両４０内の制御装置への電力供給が開始されたとき）に、動作を開始する機能ブロックである。
【００３９】
この路側機用通信制御部５３は、動作を開始した場合、まず、車両情報メッセージ送信処理を実行しながら、部分コードが通信装置４１によって受信されることとイグニッションキーがＯＦＦされることとを監視する監視処理を実行している状態となる。
【００４０】
路側機用通信制御部５３が実行する車両情報メッセージ送信処理は、基本的には、その時点における情報記憶部５６上の車両情報を含めたブロードキャストメッセージである車両情報メッセージを定期的に通信装置４１に送信させる処理である。
【００４１】
ただし、車両情報メッセージ送信処理は、車速（自車両４０の速度）が予め設定されている規定速度以下の場合に限り、車両情報メッセージを通信装置４１に送信させる処理となっている。また、車両情報メッセージ送信処理は、車両情報メッセージを送信後、所定時間の間、それに対する確認応答メッセージが路側機２０から送信されてくることを監視し、確認応答メッセージが送信されてきた場合には、自車両４０が所定距離移動するまで（通信装置４１から送信した車両情報メッセージが他の路側機２０によって受信される状況となるまで）、車両情報メッセージの送信を停止する処理となっている。
【００４２】
さらに、車両情報メッセージ送信処理は、ソフトウェアの更新に成功したか否かを示す処理結果情報（詳細は後述）が情報記憶部５６に記憶されている場合には、その処理結果情報も含めた車両情報メッセージ（以下、処理結果メッセージとも表記する）を送信する処理であると共に、処理結果メッセージに対する確認応答メッセージを受信した際には、情報記憶部５６上の処理結果情報を消去する処理となっている。
【００４３】
部分コードが通信装置４１によって受信された場合、路側機用通信制御部５３は、監視処理及び車両情報メッセージ送信処理（以下、監視処理等と表記する）を中止して、通信装置４１により受信された部分コードを情報記憶部５６に記憶する。
【００４４】
ここで、部分コードとは、所定数（所定種類）の部分コードが揃えば、更新コードを復元できる、短時間（例えば、１秒）で無線送信可能なサイズのデータのことである。
【００４５】
この部分コードは、配信センタ１０によって、図５に模式的に示したような形で、更新コードから生成されるデータとなっている。なお、この図に示してある"更新コード（ｎ
／４）"（ｎ＝１〜４）とは、更新コードの一部のことである。また、構成情報とは、更
新コードを復元するために必要な部分コードの数（種類）を示す必要コード情報、それを用いることにより復元結果が正当なもの（改竄等がなされていないもの）であるか否かが確認できる情報、復元した更新コードによって更新されるべきソフトウェア（以下、更新対象ソフトウェアと表記する）の名称、復元した更新コードによって更新した後の更新対象ソフトウェアのバージョン情報（以下、更新後バージョン情報と表記する）等からなる情報のことである。
【００４６】
図示は省略してあるが、各部分コードは、自身の識別情報であるコードＩＤを含むデータとなっている。そして、上記した構成情報中の必要コード情報は、更新コードを復元するために必要な他の各部分コードのコードＩＤを、各部分コードの使用順（結合順）通りに並べた情報となっている。
【００４７】
図３に戻って、路側機用通信制御部５３の機能説明を続ける。
【００４８】
部分コードを情報記憶部５６に記憶した路側機用通信制御部５３は、当該部分コードのコードＩＤを、情報記憶部５６上の車両情報に追加する処理（コードＩＤを、車両情報の要素情報として情報記憶部５６に記憶する処理）も行う。そして、路側機用通信制御部５３は、監視処理等を再び開始する。
【００４９】
自車両４０のイグニッションキーがＯＦＦされたことを検出した場合、路側機用通信制御部５３は、監視処理等を中止して、部分コード管理部５２に動作開始を指示する。その後、路側機用通信制御部５３は、部分コード管理部５２或いは部分コード復元部５１から動作完了が通知されるのを待機し、動作完了が通知された場合に制御装置への電力供給を停止させる状態となる。
【００５０】
また、路側機用通信制御部５３が部分コード管理部５２に動作開始を指示すると、部分コード管理部５２、部分コード復元部５１及びコード更新部５５の一部或いは全てにより、図６に示した手順の処理が行われることになる。
【００５１】
具体的には、まず、動作開始が指示された部分コード管理部５２が、情報記憶部５６上の部分コード数をチェックする（ステップＳ１０１）。
【００５２】
部分コード管理部５２は、部分コードが１つも情報記憶部５６に記憶されていなかった場合や、部分コードが不足していた場合（ステップＳ１０２；ＮＯ）には、動作完了を路側機用通信制御部５３に通知する（ステップＳ１１２）。
【００５３】
既に説明したように、路側機用通信制御部５３は、部分コード管理部５２或いは部分コード復元部５１から動作完了が通知された場合、制御装置への電力供給を停止させる。従って、このステップＳ１１２の処理が行われると、その後、コード更新処理部５０、５０′（制御装置）の動作が停止することになる。
【００５４】
更新データを復元できる数（種類）の部分コードが情報記憶部５６上に記憶されていた場合（ステップＳ１０２；ＹＥＳ）、部分コード管理部５２は、部分コード復元部５１に動作開始を指示する（図示せず）。
【００５５】
動作開始を指示された部分コード復元部５１は、各部分コードを組み合わせることによって情報記憶部５６上に更新コードを復元する（ステップＳ１０３）。その後、部分コード復元部５１は、復元した更新コードが、正当な更新コード（改竄等されていない更新コード；以下、正当コードと表記する）であるか否かを判断する（ステップＳ１０４）。
【００５６】
復元した更新コードが正当コードであった場合（ステップＳ１０４；ＹＥＳ）、部分コード復元部５１は、復元した更新コードの情報記憶部５６上での位置、更新対象ソフトウェアの名称等を通知することによりコード更新部５５に動作開始を指示する（図示せず）。
【００５７】
動作開始を指示されたコード更新部５５は、主ドメイン側（図２参照。）で使用されているソフトウェア（"コードａ"等）を情報記憶部５６上の更新コードを用いて実際に更新するためのソフトウェア更新処理（ステップＳ１０５）を開始する。そして、コード更新部５５は、ソフトウェアの更新が完了した場合には、そのことを部分コード復元部５１に通知してから、動作（ソフトウェア更新処理）を終了する。
【００５８】
部分コード復元部５１は、ソフトウェアの更新が完了したことがコード更新部５５から通知された場合には、情報記憶部５６上の不要となった情報（各部分コード及び更新コード）を消去する（ステップＳ１０９）。次いで、部分コード復元部５１は、情報記憶部５６上の車両情報中の各コードＩＤを消去すると共に、車両情報中の更新したソフトウェアに関するバージョン情報を更新後バージョン情報に更新する処理（ステップＳ１１０）を行う。
【００５９】
さらに、部分コード復元部５１は、ソフトウェアの更新に成功したことを示す処理結果情報を情報記憶部５６に記憶する処理（ステップＳ１１１）も行う。そして、部分コード復元部５１は、制御装置への電源供給を停止させるために、動作完了を路側機用通信制御部４３に通知（ステップＳ１１２）してから動作を終了する。
【００６０】
部分コード復元部５１は、復元した更新コードが正当コードではなかった場合（ステップＳ１０４；ＮＯ）には、情報記憶部５６上の不要情報を消去する処理（ステップＳ１０６）と、情報記憶部５６上の車両情報中の各コードＩＤを消去する処理（ステップＳ１０７）と、ソフトウェアの更新に失敗したことを示す処理結果情報を情報記憶部５６に記憶する処理（ステップＳ１０８）とを行う。
【００６１】
そして、部分コード復元部５１は、制御装置への電源供給を停止させるために、動作完了を路側機用通信制御部４３に通知（ステップＳ１１２）してから動作を終了する。
【００６２】
コード更新処理部５０（図３）のみが備える中継車両用通信制御部５４は、コード更新処理部５０が起動されたときに、第２車両情報メッセージ送信処理及び部分コード受信処理を開始する機能ブロックである。
【００６３】
中継車両用通信制御部５４が実行する第２車両情報メッセージ送信処理は、基本的には、車両情報を含むブロードキャストメッセージである第２車両情報メッセージ（車両情報メッセージとは異なるメッセージ）を、通信装置４２に定期的に送信させる処理である。ただし、第２車両情報メッセージ送信処理は、車速がほぼ一定値となっている場合にのみ、第２車両情報メッセージを通信装置４２に送信させる処理（加速中や減速中には、第２車両情報メッセージを通信装置４２に送信させない処理）となっている。
【００６４】
部分コード受信処理は、通信装置４２により部分コード（中継車両３０が送信したもの）が受信されるのを監視して、部分コードが受信された場合、その部分コードの情報記憶部５６に記憶すると共に、その部分コードのコードＩＤを情報記憶部５６上の車両情報に追加する処理である。
【００６５】
以上、説明した個々の機能ブロックの機能から明らかなように、コード更新処理部５０は、以下の機能を有するものとなっている。
【００６６】
コード更新処理部５０は、車速（自車両４０の速度）が規定速度以下である場合には、車両情報メッセージ（通常の車両情報メッセージ、又は処理結果メッセージ）を、自車両４０の左側の路側方向に向けて（図１参照）、定期的に送信する。そして、コード更新処理部５０は、車両情報メッセージに対する確認応答メッセージが送信されてきた場合には、自車両４０が所定距離移動するまで、車両情報メッセージを送信しない状態となる。
【００６７】
また、コード更新処理部５０は、車速がほぼ一定速度となっている場合には、第２車両情報メッセージ（車両情報メッセージと識別可能な、車両情報を含むブロードキャストメッセージ）を、前方に向けて定期的に送信する。
【００６８】
コード更新処理部５０は、通信装置４１又は４２によって部分コードが受信された場合には、その部分コードを情報記憶部５６に記憶する処理を行う。また、コード更新処理部５０は、その部分コードのコードＩＤを情報記憶部５６上の車両情報に追加する処理も行う。
【００６９】
コード更新処理部５０は、イグニッションキーがＯＦＦされた場合（図６参照）には、更新コードを復元可能な数の部分コードを既に受信していているか否かを判断し、更新コードを復元可能な数の部分コードを既に受信していた場合（ステップＳ１０２；ＹＥＳ）には、ソフトウェアの更新を試みる（ステップＳ１０３〜Ｓ１０５）。
【００７０】
そして、コード更新処理部５０は、ソフトウェアの更新に成功した場合には、情報記憶部５６上の各部分コード等を消去する処理（ステップＳ１０９）、車両情報中の各コードＩＤを消去し、更新に成功したソフトウェアに関する車両情報中のバージョン情報を書き換える処理（ステップ１１０）、及び、ソフトウェアの更新に成功したことを示す処理結果情報を情報記憶部５６に記憶する処理（ステップＳ１１１）を行う。
【００７１】
また、コード更新処理部５０は、ソフトウェアの更新に失敗した場合には、ステップＳ１０６〜Ｓ１０８にて、それぞれ、ステップＳ１０９〜Ｓ１１１とほぼ同内容の処理を行う。ただし、この場合、ソフトウェアの更新に失敗しているので、ステップ１１０に相当するステップＳ１０７では、車両情報中の各コードＩＤの消去のみが行われる。また、ステップＳ１１１に相当するステップＳ１０８では、ソフトウェアの更新に失敗したことを示す処理結果情報が情報記憶部５６に記憶される。
【００７２】
コード更新処理部５０（路側機用通信制御部５３）は、その始動時に、情報記憶部５６上に処理結果情報が記憶されていた場合には、車両情報及び処理結果情報を含む車両情報メッセージ（処理結果メッセージ）を送信することによって、路側機２０に、自車両４０が近くにいることを通知すると共に、ソフトウェアの更新に成功／失敗したことを通知する。
【００７３】
コード更新処理部５０′の機能も同様のものである。ただし、コード更新処理部５０′（図４）は、中継車両用通信制御部５４を備えていない。そのため、コード更新処理部５０′は、中継車両３０関連の処理を何ら行わないものとなっている。
【００７４】
以上のことを前提に、以下、本実施形態に係るデータ配信システムの構成及び機能を、具体的に説明する。
【００７５】
まず、路側機２０の構成及び機能を説明する。
【００７６】
路側機２０（図１）は、車両が止まる場所及び／或いは車両が減速する場所（交差点の
入口部分、道路標識により一時停止が指定されている場所、踏切前、急カーブ等の、車両が停止する蓋然性や車両の速度が低下する蓋然性が高い場所）に設置される装置である。
【００７７】
本実施形態に係る各路側機２０は、そのような場所に存在する既存の装置（信号機等）内の装置、又は、そのような装置とは別装置として実現された装置となっている。ただし、いずれの路側機２０も、基本的には、図７に示したように、通信装置２１と通信装置２２と制御装置２３とを備えたものとなっている。
【００７８】
通信装置２１は、車両４０（車両４０内の通信装置４１）と無線通信を行うための、通信可能な距離が比較的に短く、かつ、通信可能な方向に指向性がある装置である。通信装置２２は、配信センタ１０と通信を行うための装置（固定配信網を利用した通信を行うための装置）である。
【００７９】
制御装置２３は、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成された装置である。この制御装置２３は、路側機２０への電力供給が開始されると、図８及び図９に示した手順の処理を開始するように、プログラミングされている。
【００８０】
すなわち、制御装置２３は、路側機２０への電力供給が開始されると、通信装置２１又は２２によって情報が受信されるのを監視する処理（ステップＳ２０１）を開始する。
【００８１】
通信装置２１又は２２によって情報が受信された場合（ステップＳ２０１；ＹＥＳ）、制御装置２３は、受信情報が、通常の車両情報メッセージ（処理結果情報を含まない車両情報メッセージ）、処理結果メッセージ（処理結果情報を含む車両情報メッセージ）、処理完了通知メッセージ、探索用メッセージ、部分コード送信エージェントのいずれであるかを判断する（ステップＳ２０２）。
【００８２】
ここで、処理完了通知メッセージとは、部分コードの車両４０への送信に成功した中継車両３０（詳細は後述）が送信するメッセージのことである。この処理完了通知メッセージには、或る部分コードを受信させた車両４０に関する車両情報と、当該部分コードのコードＩＤとが、含まれている。
【００８３】
探索用メッセージとは、中継車両３０が送信する処理内容のブロードキャストメッセージことである。
【００８４】
部分コード送信エージェントとは、部分コード、当該部分コードを受信させるべき車両４０の車両ＩＤ、時間情報である有効期限、及び当該部分コードのコードＩＤを含むプログラムのことである。この部分コード送信エージェント（以下、単に、エージェントとも表記する）のプログラム部分は、路側機２０の制御装置２３用のプログラム（制御装置２３によって実行されるプログラム）と、中継車両３０内の制御装置３３（詳細は後述）用のプログラムとを含むものとなっている。なお、エージェント内の"部分コードのコード
ＩＤ"は、処理を容易にするために（部分コードからコードＩＤを読み出さなくても良い
ようにするために）、用意されている情報となっている。
【００８５】
制御装置２３は、受信情報が通常の車両情報メッセージであった場合（ステップＳ２０２；車両情報メッセージ）には、自路側機２０の路側機ＩＤと、当該車両情報メッセージ中の車両情報とを含む車両近接通知メッセージを、通信装置３２を利用して配信センタ１０に送信する（ステップＳ２０３）。
【００８６】
なお、このステップＳ２０３の処理や、以下で説明する各ステップの処理は、受信メッセージに対する確認応答メッセージを送信してから行われる処理である。また、路側機Ｉ
Ｄとは、路側機２０の識別情報のことである。各路側機２０の制御装置２３内（ＲＯＭ上）には、自路側機２０の路側機ＩＤ（以下、自路側機ＩＤと表記する）が設定されている。さらに、制御装置２３内には、配信センタ１０のアドレス（車両近接通知メッセージ等の送信先アドレスとして使用される情報）も設定されている。
【００８７】
制御装置２３は、受信情報が処理完了通知メッセージであった場合（ステップＳ２０２；送信依頼メッセージ）には、その処理完了通知メッセージ中の車両情報及びコードＩＤを含めた停止指示メッセージ送信依頼メッセージを配信センタ１０に送信する（ステップＳ２０３）。
【００８８】
制御装置２３は、受信情報が処理結果メッセージであった場合（ステップＳ２０２；処理結果メッセージ）には、その処理結果メッセージに自路側機ＩＤを加えたものに相当する処理結果通知メッセージを配信センタ１０に送信する（ステップＳ２０５）。そして、ステップＳ２０３、Ｓ２０４又はＳ２０５の処理を終えた制御装置２３は、再び、ステップＳ２０１の処理を開始する。
【００８９】
図示は省略してあるが、制御装置２３は、受信情報が探索用メッセージであった場合には、その探索用メッセージに対する確認応答メッセージを通信装置２１を利用して当該探索用メッセージの送信元（中継車両３０）に送信してから、ステップＳ２０１の処理を開始する。また、制御装置２３は、受信情報が、上記したいずれの情報でもなかった場合（例えば、後述する停止指示メッセージであった場合）には、受信情報を破棄してから、ステップＳ２０１の処理を開始する。
【００９０】
制御装置２３は、受信情報がエージェント（部分コード送信エージェント）であった場合（ステップＳ２０２；エージェント）には、受信したエージェントをＲＡＭ上に記憶する（ステップＳ２０６）。
【００９１】
その後、制御装置２３は、ＲＡＭ上のエージェント（制御装置２３用のプログラム部分）が規定する内容の、図９に示した手順の処理（以下、エージェント規定処理と表記する）を開始する。
【００９２】
このエージェント規定処理を開始した制御装置２３は、まず、エージェントの有効期限が切れることと、通信装置２１又は通信装置２２によりメッセージが受信されることとを監視する処理（ステップＳ２１１及びＳ２１２のループ処理）を開始する。なお、"エー
ジェントの有効期限が切れる"とは、"エージェントの受信後の経過時間が、エージェント内に設定されている有効期限（これは、時間を示す情報）を超える"ということである。
【００９３】
制御装置２３は、エージェントの有効期限が切れた場合（ステップＳ２１１；ＹＥＳ）には、このエージェント規定処理（図９の処理）を終了する。そして、制御装置１２は、ＲＡＭ上のエージェントを消去した上（図示せず）で、ステップＳ２０１（図８）以降の処理を再び開始する。
【００９４】
制御装置２３は、通信装置２１又は通信装置２２によりメッセージが受信された場合（ステップＳ２１２；ＹＥＳ）には、受信メッセージが、通常の車両情報メッセージ、処理結果メッセージ、処理完了通知メッセージ、探索用メッセージ、中継車両メッセージ、停止指示メッセージのいずれであるかを判断する（ステップＳ２１３）。
【００９５】
ここで、中継車両メッセージとは、中継車両３０が路側方向に向けて送信するブロードキャストメッセージのことである。また、停止指示メッセージとは、配信センタ１０が送信する、エージェントの動作停止を指示するメッセージのことである。
【００９６】
制御装置２３は、受信メッセージが処理完了通知メッセージであった場合（ステップＳ２１３；処理完了通知メッセージ）には、既に説明した内容の停止指示メッセージ送信依頼メッセージを配信センタ１０に送信する（ステップＳ２１４）。
【００９７】
制御装置２３は、受信メッセージが処理結果メッセージであった場合（ステップＳ２１４；処理結果メッセージ）には、既に説明した内容の処理結果通知メッセージを配信センタ１０に送信する（ステップＳ２１５）。
【００９８】
制御装置２３は、受信メッセージが中継車両メッセージであった場合（ステップＳ２１４；中継車両メッセージ）には、ＲＡＭ上のエージェントのコピーを、その中継車両メッセージの送信元（つまり、中継車両３０）に返送する（ステップＳ２１６）。そして、ステップＳ２１４〜Ｓ２１６のいずれかの処理を行った制御装置２３は、ステップＳ２１１の処理を再び開始する。
【００９９】
また、図示は省略してあるが、制御装置２３は、受信情報が探索用メッセージであった場合には、それに対する確認応答メッセージを、通信装置２１を利用して当該探索用メッセージの送信元に送信してからステップＳ２１１の処理を開始する。
【０１００】
制御装置２３は、受信メッセージが停止指示メッセージであった場合（ステップＳ２１４；停止指示メッセージ）には、このエージェント規定処理を終了する。そして、ＲＡＭ上のエージェントを消去してから（図示せず）、ステップＳ２０１（図８）以降の処理を再び開始する。
【０１０１】
制御装置２３は、受信メッセージが通常の車両情報メッセージであった場合（ステップＳ２１３；車両情報メッセージ）には、その車両情報メッセージを送信した車両４０（以下、近接車両と表記する）が、自装置内の部分コード（受信しているエージェント内の部分コード）を送信すべき車両（以下、送信対象車両と表記する）であるか否かを判断する（ステップＳ２１７）。
【０１０２】
具体的には、このステップＳ２１７において、制御装置１２は、まず、受信した車両情報メッセージ中の車両情報（以下、処理対象車両情報と表記する）に含まれる車両ＩＤと、自装置内の部分コードを受信させるべき車両４０の車両ＩＤ（受信しているエージェントに、部分コードと共に含まれている車両ＩＤ）とを比較する。そして、制御装置１２は、両車両ＩＤが一致していなかった場合には、近接車両が送信対象車両ではないと判断する。
【０１０３】
一方、両車両ＩＤが一致していた場合、制御装置２３は、自装置内の部分コードのコードＩＤと同じコードＩＤが、処理対象車両情報に含まれているか否かをチェックする。そして、制御装置１２は、そのようなコードＩＤが処理対象車両情報に含まれていた場合には、近接車両が送信対象車両ではないと判断し、そのようなコードＩＤが処理対象車両情報に含まれていなかった場合には、近接車両が送信対象車両であると判断する。
【０１０４】
要するに、既に説明したコード更新処理部５０、５０′の機能から明らかなように、幾つかの部分コードを既に受信している車両４０の車両情報には、当該幾つかの部分コードのコードＩＤが含まれている。従って、自装置内の部分コードのコードＩＤと同じコードＩＤが、処理対象車両情報に含まれていた場合、近接車両は、自装置内の部分コードと同じものを既に受信していることになる。そして、受信済みの部分コードを再度受信させる必要はないので、エージェントを、上記のような判断を制御装置２３に行わせるプログラムとして作成してあるのである。
【０１０５】
制御装置２３は、近接車両が送信対象車両でなかった場合（ステップＳ２１７；ＮＯ）には、自路側機ＩＤと受信車両情報メッセージ中の車両情報とを含めた車両近接通知メッセージを、通信装置２２を利用して配信センタ１０に送信する（ステップＳ２１８）。そして、制御装置２３は、再び、ステップＳ２１１以降の処理を開始する。
【０１０６】
制御装置１２は、近接車両が送信対象車両であった場合（ステップＳ２１７；ＹＥＳ）には、部分コード送信処理（ステップＳ２１９）を行う。
【０１０７】
この部分コード送信処理は、『近接車両に対して（近接車両の通信装置４１に宛てて）部分コードを送信した後、受信完了を示すメッセージの受信を所定時間の間だけ待機する処理』を、当該メッセージが受信される（部分コードの送信に成功する）か、実行回数が所定回数となる（部分コードの送信に失敗する）まで、繰り返す処理である。
【０１０８】
近接車両は、今回、受信した車両情報メッセージの送信源であるため、自路側機２０の近くに存在している。そして、車両情報メッセージは、車速が規定速度以下となった車両４０から送信されるメッセージであるため、上記部分コード送信処理は、原則として（近接車両が、車両情報メッセージの送信直後に急加速等を開始しない限り）、部分コードの送信に成功する処理となっている。
【０１０９】
部分コード送信処理を終えた制御装置２３は、部分コードの送信に成功した場合には、ステップＳ２２０にて、近接車両の車両情報（今回、受信した車両情報メッセージ中の車両情報）と、近接車両に送信した部分コードのコードＩＤと、自路側機ＩＤとを含めた部分コード送信成功メッセージを配信センタ１０に送信する。また、制御装置２３は、部分コードの送信に失敗した場合には、ステップＳ２２０にて、部分コード送信成功メッセージと本質的には同内容の部分コード送信失敗メッセージ（車両情報、コードＩＤ及び路側機ＩＤを含むと共に、自身が部分コード送信失敗メッセージであることを示す情報を含むメッセージ）を配信センタ１０に送信する。
【０１１０】
なお、これらの処理で送信される部分コード送信成功／失敗メッセージは、近接車両に送信した部分コードのコードＩＤが、車両情報中の各コードＩＤと識別可能な形で含まれるものである。
【０１１１】
そして、ステップＳ２２０の処理を終えた制御装置２３は、このエージェント規定処理を終了し、ＲＡＭ上のエージェントを消去した上（図示せず）で、ステップＳ２０１（図８）以降の処理を再び開始する。
【０１１２】
次に、配信センタ１０の構成及び機能を説明する。なお、配信センタ１０は、比較的に高機能なコンピュータに各種のプログラムやデータを記憶させることによって実現した装置となっている。このため、以下では、配信センタ１０の具体的なハードウェア構成の説明は省略し、配信センタ１０のソフトウェア的な構成（配信センタ１０が保持している情報の種類／内容）と配信センタ１０の機能とを説明することにする。
【０１１３】
図１０に、配信センタ１０の機能ブロック図を示す。
【０１１４】
図示してあるように、配信センタ１０は、通信装置１１、コード管理部１２、通信処理部１３、更新状況管理ＤＢ１４、エージェント管理ＤＢ１５、地図ＤＢ１６、エージェント配信先設定部１７、信号機状態ＤＢ１８及びＤＢ更新部１９を、備えている。
【０１１５】
通信装置１１は、各路側機２０と固定通信網を介して通信を行うための装置である。
【０１１６】
更新状況管理ＤＢ１４は、送信結果通知メッセージを受信した配信センタ１０により、当該送信結果通知メッセージに含まれる車両情報、処理結果情報及び路側機ＩＤを設定したレコードが追加されるデータベースである。ただし、更新状況管理ＤＢ１４は、そこに記憶された情報を配信センタ１０が利用することがないデータベースとなっている。すなわち、更新状況管理ＤＢ１４は、本システムの運用者が各車両３０のソフトウェアの更新状況を管理できるようにするために、用意されているデータベースとなっている。
【０１１７】
エージェント管理ＤＢ１５は、各種車両４０に対して用意されたエージェントが配信されている路側機２０群（詳細は後述）を管理するためのデータベースである。このエージェント管理ＤＢ１５は、車両ＩＤ、コードＩＤ、路側機ＩＤ及び送信日時を設定可能な複数のレコードからなるデータベースとなっている。
【０１１８】
地図ＤＢ１６は、道路に関する各種情報（各種交差点間の距離等が分かる情報）を記憶したデータベースである。この地図ＤＢ１６には、各路側機２０の位置を各路側機２０の路側機ＩＤから特定できる情報も記憶されている。
【０１１９】
信号機状態ＤＢ１８は、各所にある信号機や踏切警報機について、その信号機／踏切警報機の状態がいつ変わるのかについての情報を記憶したデータベースである。
【０１２０】
ＤＢ更新部１９は、上記したエージェント管理ＤＢ１５から、"送信日時＜現在日時−
設定時間"が成立しているレコードを削除する処理を定期的に行う機能ブロックである。
なお、設定時間とは、オペレータによって設定される時間のことであり、この設定時間としては、通常、エージェントの有効期限と同じ時間が設定される。
【０１２１】
コード管理部１２は、以下の機能を有する機能ブロックである。
【０１２２】
コード管理部１２は、更新コード等がオペレータにより入力された場合には、入力された更新コード等に基づき、その更新コードに応じた内容及び個数の部分コードを生成して（図５参照）コード管理部１２内に記憶する部分コード生成処理を行う。
【０１２３】
なお、この部分コード生成処理をコード管理部１２に行わせる場合に実際に入力が必要な情報は、更新コード、更新対象ソフトウェア（更新コードによって更新されるべきソフトウェア）の名称、及び、更新後バージョン情報（更新コード適用後の更新対象ソフトウェアのバージョン情報である。また、コード管理部１２は、或る更新コードから生成した部分コード群を既に保持している状態でも、部分コード生成処理を実行可能なもの（複数の更新データに関する部分コード群を同時に保持可能なもの）となっている。
【０１２４】
コード管理部１２は、オペレータが或る部分コード群の消去を指示した場合には、消去を指示された部分コード群を消去する処理を行う。
【０１２５】
また、コード管理部１２は、通信処理部１３から、或る車両４０（以下、注目車両と表記する）に関する車両情報（以下、注目車両情報と表記する）が与えられた場合には、図１１に示した手順の部分コード選択処理を実行する。
【０１２６】
すなわち、通信処理部１３から注目車両情報が与えられたため、この部分コード選択処理を開始したコード管理部１２は、まず、未処理の要更新ソフトウェアの中から、１つの要更新ソフトウェアを選択する処理（ステップＳ３０１）を行う。ここで、要更新ソフトウェアとは、それに関する部分コード群をコード管理部１２が保持しているソフトウェアのことである。また、未処理の要更新ソフトウェアとは、ステップＳ３０２以降の処理が
未だ行われていない要更新ソフトウェアのことである。なお、ステップＳ３０１の処理は、未処理の要更新ソフトウェアが複数個あった場合、部分コード群の生成が最も過去に行われた要更新ソフトウェアを選択するものとなっている。
【０１２７】
次いで、コード管理部１２は、選択した要更新ソフトウェア（以下、選択ソフトウェアと表記する）に関する更新後バージョン情報と、注目車両情報中の選択ソフトウェアに関するバージョン情報とを比較することにより、注目車両内の選択ソフトウェアが更新済みであるか否かを判断する（ステップＳ３０２）。
【０１２８】
注目車両内の選択ソフトウェアがまだ更新されていなかった場合（ステップＳ３０２；ＮＯ）、コード管理部１２は、自身が管理している選択ソフトウェアに関する部分コードの中から、そのコードＩＤが注目車両情報中のいずれのコードＩＤとも一致していない部分コード（つまり、注目車両がまだ受信していない部分コード；以下、未受信コードと表記する）を探索する（ステップＳ３０３）。このステップＳ３０３の処理は、未受信コードを全て探索する処理ではなく、選択ソフトウェアに関する各部分コードが未受信コードであるか否かを、図５における左端の部分コードから順々に確認していき、最初に未受信コードであることが確認された部分コードを探索結果とする処理となっている。
【０１２９】
未受信コードの探索に成功した場合（ステップＳ３０４；ＹＥＳ）、コード管理部１２は、探索した部分コード（未受信コード）を処理結果として通信処理部１３に戻す（ステップＳ３０５）。そして、コード管理部１２は、この部分コード選択処理を終了する。
【０１３０】
一方、未受信コードの探索に失敗した場合（ステップＳ３０４；ＮＯ）、コード管理部１２は、未処理の要更新ソフトウェアが残っているか否かを判断する（ステップＳ３０６）。また、コード管理部１２は、注目車両内の選択ソフトウェアが更新済みであった場合（ステップＳ３０２；ＹＥＳ）には、ステップＳ３０３の処理等を行うことなく、このステップＳ３０６の判断を行う。
【０１３１】
そして、コード管理部１２は、未処理の要更新ソフトウェアが残っていた場合（ステップＳ３０６；ＹＥＳ）には、ステップＳ３０１以降の処理を再び実行する。
【０１３２】
また、コード管理部１２は、未受信コードの探索に失敗した場合（ステップＳ３０４；ＮＯ）と、未処理の要更新ソフトウェアが残っていなかった場合（ステップＳ３０６；ＮＯ）とには、注目車両に送信すべき部分コードがないことを示す情報（以下、"更新不要"と表記する）を処理結果として通信処理部１３に戻してから（ステップＳ３０７）、この部分コード選択処理を終了する。
【０１３３】
エージェント配信先決定部１７（図１０）は、通信処理部１３から路側機ＩＤが与えられたときに、図１２に示した手順のエージェント配信先決定処理を実行する機能ブロックである。
【０１３４】
すなわち、通信処理部１３から路側機ＩＤが与えられたため、このエージェント配信先決定処理を開始したエージェント配信先決定部１２は、まず、地図ＤＢ１６を参照することにより、通信処理部１３から与えられた路側機ＩＤで識別される路側機２０の傍に位置している車両４０（以下、注目車両と表記する）が次に止まる可能性がある幾つかの場所（傍に路側機２０が配置されている交差点への侵入口部分、踏切の前等）と、各場所の傍に配置されている路側機２０の路側機ＩＤとを特定する処理（ステップＳ４０１）を行う。なお、このステップＳ４０１にてエージェント配信先決定部１２が実際に行う処理は、通信処理部１３から与えられた路側機ＩＤで識別される路側機２０からの距離が規定距離以下であり、かつ、注目車両の現在の進行方向の±９０度の範囲内にある交差点の侵入口
部分等を、注目車両が次に止まる可能性がある場所として特定する処理である。
【０１３５】
次いで、エージェント配信先決定部１７は、信号機状態ＤＢ１８を参照することにより、特定した場所毎に、その場所が注目車両が止まる可能性が高い場所であるか否かを判定する（ステップＳ４０２）。このステップＳ４０２の処理は、各道路が渋滞していない（移動中の注目車両の速度が通常の速度である）と仮定して上記判定を行うものとなっている。
【０１３６】
そして、エージェント配信先決定部１７は、注目車両が止まる可能性が高いと判定した各場所の傍に配置されている路側機２０の路側機ＩＤを、処理結果として通信処理部１３に戻す処理（ステップＳ４０３）を行ってから、このエージェント配信先決定処理を終了する。
【０１３７】
通信処理部１３（図１０）は、配信センタ１０が始動されると、図１３に示した手順の処理を開始する機能ブロックである。
【０１３８】
すなわち、通信処理部１３は、配信センタ１０が始動されると、まず、通信装置１１により路側機２０からの各種メッセージが受信されるのを監視（待機）している状態（ステップＳ５００の処理を繰り返している状態）となる。
【０１３９】
通信装置１１により何らかのメッセージが受信された場合（ステップＳ５００；ＹＥＳ）、通信処理部１３は、そのメッセージ（以下、受信メッセージと表記する）が、車両近接通知メッセージ、処理結果通知メッセージ、部分コード送信成功メッセージ、部分コード送信失敗メッセージ、停止指示メッセージ送信依頼メッセージのいずれであるかを判別する（ステップＳ５０１）。
【０１４０】
通信処理部１３は、受信メッセージが車両近接通知メッセージであった場合（ステップＳ５０１；車両近接）には、ステップＳ５０５にて、受信メッセージ中の車両情報を渡すことによりコード管理部１２に部分コード選択処理を開始させる。その後、通信処理部１３は、部分コード選択処理の処理結果（部分コード、又は、"更新不要"）がコード管理部１２から入力される（戻される）のを待機し、処理結果が入力されたときに、ステップＳ５０５の処理を終了する。
【０１４１】
ステップＳ５０５の処理を終えた（部分コード選択処理の処理結果がコード管理部１２から入力された）通信処理部１３は、コード管理部１２から入力された情報が、"更新不
要"であった場合（ステップＳ５０６；更新不要）には、通信装置１１によりメッセージ
が受信されるのを監視している状態に戻る。
【０１４２】
一方、コード管理部１２から入力された情報が部分コードであった場合（ステップＳ５０６；部分コード）、通信処理部１３は、ステップＳ５０７にて、まず、受信メッセージ中の路側機ＩＤを渡すことによりエージェント配信先決定部１７にエージェント配信先決定処理を開始させる処理を行う。その後、通信処理部１３は、エージェント配信先決定処理の処理結果（複数の路側機ＩＤ）がコード管理部１２から入力されるのを待機し、処理結果が入力されたときに、ステップＳ５０７の処理を終了する。
【０１４３】
ステップＳ５０７の処理を終えた通信処理部１３は、エージェント管理ＤＢ１５を参照することにより、コード管理部１２から入力された複数の路側機ＩＤの中からエージェントが配信されていない路側機２０の路側機ＩＤを抽出する（ステップＳ５０８）。
【０１４４】
次いで、通信処理部１３は、自身が管理しているエージェントのひな形データを利用し
て、コード管理部１２から入力された部分コード、受信メッセージ中の車両ＩＤ、オペレータによって予め設定されている有効期限を含めたエージェントを生成する（ステップＳ５０９）。そして、通信処理部１３は、生成したエージェントを、ステップＳ５０８の処理で抽出した各路側機ＩＤで識別される路側機２０に送信する（ステップＳ５１０）。
【０１４５】
その後、通信処理部１３は、送信した各エージェントに関する情報をエージェント管理ＤＢ１５に追加する（ステップＳ５１１）。すなわち、通信処理部１３は、送信したエージェント毎に、そのエージェントの送信先路側機２０の路側機ＩＤと、そのエージェントに含めたコードＩＤ及び車両ＩＤと、エージェントの送信日時（現在日時）とを設定したレコードをエージェント管理ＤＢ１５に追加する処理（設定されている路側機ＩＤが異なる複数のレコードを追加する処理）を、このステップＳ５１１にて行う。
【０１４６】
そして、ステップＳ５１１の処理を終えた通信処理部１３は、通信装置１１によりメッセージが受信されるのを監視している状態に戻る。
【０１４７】
通信処理部１３は、受信メッセージが、部分コード送信成功メッセージ又は部分コード送信失敗メッセージであった場合（ステップＳ５０１；送信成功／失敗）には、停止指示メッセージ送信処理（ステップＳ５０２）を行う。
【０１４８】
この停止指示メッセージ送信処理は、受信メッセージ中の車両情報中の車両ＩＤ、コードＩＤ（車両情報中のコードＩＤではないもの）と、それぞれ、車両ＩＤ、コードＩＤが一致しているエージェント管理ＤＢ１５内の各レコードについて、そのレコード内の路側機ＩＤで識別される路側機２０に対して停止指示メッセージを送信してから、そのレコードを消去する処理のことである。
【０１４９】
停止指示メッセージ送信処理を終えた通信処理部１３は、受信メッセージ（この場合、部分コード送信成功／失敗メッセージ）に対するステップＳ５０５〜Ｓ５１１の処理を行う。その後、通信処理部１３は、ステップＳ５００の処理を開始する。
【０１５０】
流れ図（図１３）への表記は省略してあるが、通信処理部１３は、受信メッセージが、停止指示メッセージ送信依頼メッセージであった場合にも、上記内容の停止指示メッセージ送信処理を行う。ただし、この場合、通信処理部１３は、ステップＳ５０５〜Ｓ５１１の処理を行うことなく、ステップＳ５００の処理を開始する。
【０１５１】
通信処理部１３は、受信メッセージが処理結果通知メッセージであった場合（ステップＳ５０２；処理結果通知）には、受信した処理結果通知メッセージに含まれている各種情報を設定したレコードを更新状況管理ＤＢ１４に追加する更新状況管理ＤＢ更新処理（ステップＳ５０３）を行う。そして、更新状況管理ＤＢ更新処理を終えた通信処理部１３は、受信メッセージ（この場合、処理結果通知メッセージ）に対するステップＳ５０５以降の処理を開始する。
【０１５２】
次に、中継車両３０の構成及び機能と、中継車両３０内の制御装置３３内で実行された場合のエージェント（部分コード送信エージェント）の機能とを、説明する。
【０１５３】
中継車両３０（図１参照）は、バス、タクシー等の路上を走行している時間が長い車両に、通信装置３１、通信装置３２及び制御装置３３を搭載した車両である。
【０１５４】
通信装置３１は、各路側機２０と無線通信を行うための装置である。通信装置３２は、自中継車両３０の後方を走行している車両４０と無線通信を行うための装置である。各通信装置３１、３２は、通信装置４１等と同様に、通信可能な距離が短く、かつ、通信可能
な方向に指向性がある装置となっている。
【０１５５】
制御装置３３は、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成された装置である。この制御装置３３は、以下の処理を行うように、プログラミングされている。
【０１５６】
制御装置３３は、通常は、車速（自中継車両３０の速度）が規定速度以下となるのを監視している。そして、制御装置３３は、車速が規定速度以下となった場合には、既に説明した中継車両メッセージ（ブロードキャストメッセージ）を定期的に通信装置３１に送信させる中継車両メッセージ送信処理を開始する。また、中継情報メッセージ送信処理を開始した制御装置３３は、路側機２０からエージェントが送信されてくることと、車速が規定速度を超えることとを監視するエージェント等監視処理も開始する。
【０１５７】
制御装置３３は、路側機２０からエージェントが送信されてくることなく、自車両の車速が規定速度を超えた場合には、エージェント等監視処理及び中継車両メッセージ送信処理を終了する。そして、制御装置３３は、通常の状態（自車両の車速が規定速度以下となるのを監視し、車速が規定速度以下となった場合には、中継車両メッセージ送信処理等を開始する状態）に戻る。
【０１５８】
制御装置３３は、路側機２０からエージェントが送信されてきた場合には、エージェント等監視処理及び中継車両メッセージ送信処理を終了すると共に、そのエージェントを内部（自装置内のＲＡＭ上）に記憶する。
【０１５９】
そして、制御装置３３は、そのエージェントに従って図１４に示した手順の処理を開始する。
【０１６０】
すなわち、エージェントに従った動作を開始した制御装置３３は、まず、エージェントの有効期限が切れることと、通信装置３２により第２車両情報メッセージが受信されることとを監視する処理（ステップＳ６０１及びＳ６０２のループ処理）を開始する。
【０１６１】
制御装置３３は、エージェントの有効期限が切れた場合（ステップＳ６０１；ＹＥＳ）には、この図の処理を終了する。そして、エージェントをＲＡＭ上から消去した上で、通常の状態に戻る。
【０１６２】
また、制御装置３３は、通信装置３２により第２車両情報メッセージが受信された場合（ステップＳ６０２；ＹＥＳ）には、既に説明したステップＳ２１７（図９）の判断と同内容／手順の判断をステップＳ６０３にて行う。
【０１６３】
そして、制御装置３３は、近接車両（今回、受信した第２車両情報メッセージを送信した車両４０）が、自装置内の部分コード（受信しているエージェント内の部分コード）を送信すべき送信対象車両でなかった場合（ステップＳ６０３；ＮＯ）には、エージェントの有効期限が切れることと、通信装置３２により他の第２車両情報メッセージが受信されることとを監視する処理（ステップＳ６０１及びＳ６０２のループ処理）を開始する。
【０１６４】
一方、近接車両が送信対象車両であった場合（ステップＳ６０３；ＹＥＳ）、制御装置３３は、路側機２０が行うものと本質的には同内容の部分コード送信処理を、ステップＳ６０４にて行う。
【０１６５】
具体的には、制御装置３３は、『近接車両に対して（近接車両の通信装置４２に宛てて）部分コードを送信した後、受信完了を示すメッセージの受信を所定時間の間だけ待機する処理』を、当該メッセージが受信される（部分コードの送信に成功する）か、実行回数
が所定回数となる（部分コードの送信に失敗する）まで、繰り返す部分コード送信処理を、このステップＳ６０４にて行う。
【０１６６】
そして、制御装置３３は、部分コード生成処理に失敗した場合（近接車両から、部分コードの受信完了を示すメッセージが受信できなかった場合；ステップＳ６０５；ＹＥＳ）には、この図の処理を終了し、エージェントをＲＡＭ上から消去した上で、通常の状態に戻る。
【０１６７】
部分コード生成処理に成功した場合（ステップＳ６０５；ＹＥＳ）、制御装置３３は、路側機探索処理（ステップＳ６０６）を行う。
【０１６８】
この路側機探索処理は、基本的には、探索用メッセージを、それに対する確認応答メッセージが通信装置３１によって受信されるまで、定期的に通信装置３１に送信させる処理である。ただし、路側機探索処理は、車速（自中継車両３０の速度）が予め設定されている規定速度以下の場合に限り、探索用メッセージを通信装置３１に送信させる処理となっている。
【０１６９】
路側機探索処理を終えた制御装置３３は、路側機探索処理で探索した路側機２０に対して、近接車両の車両情報（今回、受信した第２車両情報メッセージに含まれていた車両情報）と、近接車両に送信した部分コードのコードＩＤとを含む停止指示メッセージ送信依頼メッセージを送信する（ステップＳ６０７）。
【０１７０】
そして、制御装置３３は、この図の処理を終了し、エージェントをＲＡＭ上から消去してから、通常の状態に戻る。
【０１７１】
次に、本実施形態に係るデータ配信システムの全体としての機能（データ配信システムの各構成要素の時系列的な動作）を、説明する。
【０１７２】
図１５に模式的に示してあるように、ソフトウェアαに関する部分コード群のみが配信センタ１０内に用意されている状況下、旧バージョンのソフトウェアαが使用されている車両４０が、信号機が赤になった／信号機が赤であるため、交差点Ａで止まった場合を考える。なお、車両４０の状態は、まだソフトウェアαに関する部分コードを１つも受信していない状態であるとし、図１５に示してある路側機２０ａ〜２０ｅの状態は、エージェントを受信していない状態であるとする。
【０１７３】
この場合、車両４０は、完全に止まる少し前の時点（車速が規定速度以下となったとき）から、通常の車両情報メッセージ（車両情報のみを含むブロードキャストメッセージ）を定期的に送信し始める。
【０１７４】
交差点Ａ近傍には、路側機２０ａが設置されている。従って、通常は（車両４０が路側機２０ａから過度に離れた場所で停止しない限り）、車両４０から、何回目かに送信された車両情報メッセージを、路側機２０ａが受信することになる。
【０１７５】
車両情報メッセージを受信した路側機２０ａは、車両４０に対して確認応答メッセージを送信する。また、車両４０内で実行される車両情報メッセージ送信処理は、確認応答メッセージが送信されてきた場合には、自車両４０が所定距離移動するまで（通信装置４１から送信した車両情報メッセージが他の路側機２０によって受信される状況となるまで）、車両情報メッセージの送信を停止する処理となっている。このため、車両情報メッセージを定期的に送信する状態にあった車両４０は、自車両４０が所定距離移動するまで、車両情報メッセージを送信しない状態となる。
【０１７６】
また、車両情報メッセージを受信した路側機２０ａは、まだエージェントを受信していない。従って、路側機２０ａから配信センタ１０へ、路側機２０ａの路側機ＩＤと車両４０の車両情報とを含む車両近接通知メッセージが送信される（図８；ステップＳ２０５参照。）ことになる。
【０１７７】
この車両近接通知メッセージが通信装置１１によって受信された場合、配信センタ１０内では、通信処理部１３の制御下（図１３；ステップＳ５０５）、コード管理部１３により部分コード選択処理（図１１）が行われる。
【０１７８】
車両４０には、旧バージョンのソフトウェアαが使用されているので、上記車両近接通知メッセージ中の車両情報には、車両４０内のソフトウェアαが古いバージョンのものであることを示すバージョン情報が含まれている。また、車両４０の状態は、まだソフトウェアαに関する部分コードを１つも受信していない状態であるため、当該車両情報には、コードＩＤが全く含まれていない。そして、部分コード選択処理は、図６における左側から未受信コードを探索してく処理であるため、部分コード選択処理の終了時（図１１；ステップＳ３０５）に、通信処理部１３に、ソフトウェアαに関する、構成情報を含む部分コードが入力されることになる。
【０１７９】
通信処理部１３に部分コードが入力される（図１３：ステップＳ５０６；ＹＥＳ）と、エージェント配信先決定部１７によりエージェント配信先決定処理が行われる（ステップＳ５０７）。
【０１８０】
エージェント配信先決定処理（図１１）のステップＳ４０１の処理では、例えば、交差点Ｂ〜交差点Ｅの車両４０側の侵入口部分が、車両４０が次に止まる可能性がある場所として特定されると共に、各場所の傍に配置されている路側機２０ｂ〜２０ｅの路側機ＩＤが特定されることになる。また、続くステップＳ４０２の処理では、例えば、交差点Ｃ〜交差点Ｅの車両４０側の侵入口部分が、車両４０が止まる可能性が高い場所であると判定されることになる。
【０１８１】
そして、ステップＳ４０２の処理の判定結果が上記のようなものであった場合には、エージェント配信先決定処理の終了時に、交差点Ｃ〜交差点Ｅの車両４０側の侵入口部分の場所の傍に設置されている路側機２０ｃ〜２０ｅに関する３つの路側機ＩＤが、エージェント配信先決定部１７から通信処理部１３に入力される（ステップＳ４０３）ことになる。
【０１８２】
複数の路側機ＩＤがエージェント配信先決定部１７から入力された通信処理部１３は、エージェント管理ＤＢ１５を参照することによって、コード管理部１２から入力された複数の路側機ＩＤの中から、エージェントが配信されていない路側機２０の路側機ＩＤを抽出する（図１３：ステップＳ５０８）。また、通信処理部１３は、コード管理部１２から既に入力されている部分コード等を含むエージェントを生成する（ステップＳ５０９）。そして、通信処理部１３は、生成したエージェントを、ステップＳ５０８の処理で抽出した各路側機ＩＤで識別される路側機２０に送信する（ステップＳ５１０）。
【０１８３】
要するに、本データ配信システム内の各路側機２０は、複数のエージェントを同時に実行可能なものとはなっていないため、通信処理部１３は、ステップＳ５０８にて、エージェント配信先決定部１７から入力された路側機ＩＤ群から、既にエージェントが配信されている路側機２０の路側機ＩＤを除外する処理を行う。
【０１８４】
そして、通信処理部１３は、車両４０に受信させるべき部分コードを含めたエージェン
トを生成し、生成したエージェントを、図１５に模式的に示してあるように、車両４０が次に止まる可能性が高い場所に設置されている、エージェントが未だ配信されていない路側機２０ｃ〜２０ｅに送信する。
【０１８５】
その後、通信処理部１３は、路側機２０ｃ〜２０ｅにエージェントを送信したことをエージェント管理ＤＢ１５内に記憶（ステップＳ５１１）してから、路側機２０からメッセージが送信されてくるのを監視する処理（ステップＳ５００）を再び開始する。
【０１８６】
以上のような一連の処理がデータ配信システムによって行われた後、車両４０が直進した場合には、車両４０が交差点Ｅに近づいたときに、交差点Ｅの信号機が赤に変わることになる。そのため、図１６に模式的に示してあるように、車両４０（通信装置４１）から、車両情報メッセージが送信されることになる。
【０１８７】
交差点Ｅ近傍には、路側機２０ｅが設置されている。従って、路側機２０ｅは、車両４０から何回目かに送信された車両情報メッセージを受信することになる。
【０１８８】
また、路側機２０ｅは、既にエージェント（図における"＊"）に従った動作を開始している。そのため、車両情報メッセージを受信した路側機２０ｅは、部分コードを車両４０に送信する処理（図９：ステップＳ２１９）と、配信センタ１０に部分コード送信成功／失敗メッセージを送信する処理（ステップＳ２１０）とを行う。
【０１８９】
部分コード送信成功／失敗メッセージが通信装置１１によって受信された場合、配信センタ１０内では、通信処理部１３により、路側機２０ｃ〜２０ｅのそれぞれに停止指示メッセージを送信する停止指示メッセージ送信処理（ステップＳ５０２）が行われる。そして、その結果として、路側機２０ｃ、２０ｄ内のエージェントが終了することになる。また、エージェントに従った動作を既に終了している路側機２０ｃは、配信センタ１０からの停止指示メッセージを無視（破棄）することになる。
【０１９０】
なお、停止指示メッセージ送信処理（ステップＳ５０２）時には、既に説明したように、エージェント管理ＤＢ１５内の、路側機２０ｃ〜２０ｅに関するレコードを消去する処理も行われる。従って、データ配信システムの状態は、路側機２０ｃ〜２０ｅがエージェントの送信先から除外される状態から、路側機２０ｃ〜２０ｅがエージェントの送信先から除外されない状態に変化することになる。
【０１９１】
停止指示メッセージ送信処理が完了した場合には、ステップＳ５０５〜Ｓ５１１の処理が、今回、受信した部分コード送信成功／失敗メッセージ中の車両情報及び路側機ＩＤを用いた形で実行される。その結果、新たにエージェントが生成されて、次に車両４０が止まる可能性が高い場所の傍に位置している幾つかの路側機２０に送信されることになる。なお、部分コード送信成功メッセージが受信された場合に生成されるエージェントは、車両４０に関するものとして前回生成したエージェントとは異なる部分コードを含むものであるが、部分コード送信失敗メッセージが受信された場合に生成されるエージェントは、車両４０に関するものとして前回生成したエージェントと同じ部分コードを含むものである。
【０１９２】
このように、本データ配信システムでは、車両４０が交差点等で止まる（或いは、車両４０の車速が、無線通信可能な速度まで落ちる）度に、車両４０に部分コードが配信（送信）されていく。
【０１９３】
そして、全ての部分コードが車両４０に配信された状態で、車両４０のイグニッションキーがＯＦＦされた場合には、図６のステップＳ１０３〜Ｓ１１２の処理が行われ、車両
４０の情報記憶部５６上に、ソフトウェアの更新に成功／失敗したことを示す処理結果情報が記憶される。
【０１９４】
この処理結果情報は、車両４０の次回始動時に、処理結果メッセージ（処理結果情報を含む車両情報メッセージ）中の情報として路側機２０に通知される。そして、処理結果メッセージを受信した路側機２０は、処理結果通知メッセージを配信センタ１０に送信し、処理結果通知メッセージを受信した配信センタ１０は、その処理結果通知メッセージに含まれている各種情報を設定したレコードを更新状況管理ＤＢ１４に追加する（ステップＳ５０３）。その後、配信センタ１０は、車両４０内の他のソフトウェアの更新が必要であるか否かを確認することや、部分コード群を車両４０に再送信することを目的として、ステップＳ５０５以降の処理を開始する。
【０１９５】
また、中継車両３０が、エージェントに従って動作している或る路側機２０に近づいた場合、中継車両３０に、エージェント（のコピー）が送信される（図９のステップＳ２１６参照）。
【０１９６】
そして、エージェントを受信した中継車両３０（図１４参照）は、第２車両情報メッセージを送信してきた車両４０に対して、その車両４０が送信対象車両であることを確認した上で、自車両４０内の部分コードを送信する装置として動作を開始する。
【０１９７】
一方、コード更新処理部５０を備えた車両４０は、車速がほぼ一定速度となっている場合には、第２車両情報メッセージを前方に向けて定期的に送信し、通信装置４２によって部分コードが受信された場合には、その部分コードを情報記憶部５６に記憶する処理等を行うものとなっている。
【０１９８】
従って、コード更新処理部５０を備えた車両４０の前方を中継車両３０が走行していた場合、当該車両４０は、上記路側機２０からの部分コードの受信に失敗しても、中継車両３０から部分コードを受信できることになる。
【０１９９】
以上、詳細に説明したように、本実施形態に係るデータ配信システムは、データである更新コードをそのまま車両４０に無線送信するシステムではなく、更新コードを幾つかの、短時間で無線送信可能なサイズの部分コードに分けて車両４０に無線送信するシステムとなっている。さらに、データ配信システムは、車両４０が止まる／減速することが多い場所の近傍に設置された複数の路側機２０を備え、車両４０に、当該車両４０が近づいた路側機２０〔当該車両がその後止まる可能性が高いと予測された複数の場所（図１２；ステップＳ４０１）の傍に設置されているいずれかの路側機２０〕から部分コードが配信されるシステムとなっている。
【０２００】
従って、このデータ配信システムを用いておけば、ドライバが車両４０を運転しさえすれば、車両４０にデータが配信される環境を実現できることになる。
【０２０１】
また、上記した車両４０が備える制御装置は、無線送信されてきた各部分データを、車両内の装置（エンジン、カーナビゲーションシステム等）を制御するための各プログラムの動作に何ら影響を与えない形で管理する（保護ドメイン内に記憶する）ものとなっている。さらに、制御装置は、更新データが復元可能な状態になった場合には、更新データを復元し、その更新データが改竄されていないもの（元々の更新データと同じもの）であることが確認できた場合にのみ、その更新データに基づくプログラムの更新を行うもの（図６参照）となっている。
【０２０２】
従って、車両４０（制御装置）は、無線送信されたデータに基づき、制御装置内のプロ
グラムを極めて安全に更新できるものとなっていることになる。
【０２０３】
《変形形態》
上記したデータ配信システムは各種の変形を行うことが出来る。例えば、各路側機２０を、何らかのメッセージを周期的にブロードキャストする装置に変形し、車両４０を、当該メッセージ受信時に、車両情報等を含むメッセージ（車両情報メッセージ等に相当するユニキャストメッセージ）を送信するものに変形することが出来る。また、データ配信システムを、ＧＰＳにより配信センタ１０が車両４０の位置を特定するシステムに変形することも出来る。
【０２０４】
データ配信システムを、配信センタ１０から路側機２０に、部分コード送信エージェントではなく、部分コードが送信されるシステムに変形することも出来る。データ配信システムを、各路側機２０として、複数の部分コード送信エージェントを並列的に実行可能な装置／複数の部分コードを同時期に受信できる装置を備えたものに変形することも出来る。データ配信システムを、各車両４０にどの部分コードが配信されているかを、配信センタ１０が管理する（車両４０から、受信済みの部分コードに関する情報が送信されない）システムに変形することも出来る。
【０２０５】
路側機２０や車両４０に、指向性がない／指向性が弱い無線通信装置を搭載しておくこともできる。ただし、路側機２０や車両４０に、そのような無線通信装置を搭載しておいた場合、車両４０の進行方向を把握するための処理（車両４０が近づいた路側機２０の路側機ＩＤを時系列的に記憶しておく処理等）を行わないと、車両４０の進行方向を考慮してエージェントの送信先を決定することが出来ないことになるので、路側機２０や車両４０には、指向性がある無線通信装置を搭載しておくことが望ましい。
【０２０６】
また、通信の指向性がないものを採用する時、不特定多数から通信内容が盗聴される可能性があるため、通信内容を暗号化し、保護ドメイン内で復号することが望ましい。
【０２０７】
データ配信システムを、更新コード以外のデータ（車両４０内の制御装置が実行可能なアプリケーションプログラム等）も車両４０に配信できるシステムや、上記したものとは具体的な構成が異なる車両４０にデータを配信するシステムに変形することも出来る。また、データ配信システムを、小サイズのデータについては、分割せず、そのデータを暗号化したデータ等を、部分データとして取り扱うシステムに変形しておいても良いことなどは、当然のことである。
【図面の簡単な説明】
【０２０８】
【図１】本発明の一実施形態に係るデータ配信システムの構成図である。
【図２】実施形態に係るデータ配信システムが更新データを配信する車両が備える制御装置の説明図である。
【図３】２つの通信装置を制御するコード更新処理部の機能ブロック図である。
【図４】１つの通信装置を制御するコード更新処理部の機能ブロック図である。
【図５】部分コードの説明図である。
【図６】コード更新処理部が実行する処理の流れ図である。
【図７】路側機の構成図である。
【図８】路側機内の制御装置が実行する処理の流れ図である。
【図９】路側機内の制御装置が、部分コード送信エージェントに従って実行する処理の流れ図である。
【図１０】配信センタの構成図である。
【図１１】配信センタ内のコード管理部が実行する部分コード選択処理の流れ図である。
【図１２】配信センタ内のエージェント配信先決定部が実行するエージェント配信先決定処理の流れ図である。
【図１３】配信センタ内の通信処理部が実行する処理の流れ図である。
【図１４】中継車両内の制御装置が、部分コード送信エージェントに従って実行する処理の流れ図である。
【図１５】データ配信システムによる更新データの配信手順を説明するための図である。
【図１６】データ配信システムによる更新データの配信手順を説明するための図である。
【符号の説明】
【０２０９】
１０・・・配信センタ
１１、２１、２２、３１、３２、４１、４２・・・通信装置
１２、２３、３３・・・制御装置
１３・・・通信処理部
１４・・・更新状況管理ＤＢ
１５・・・エージェント管理ＤＢ
１６・・・地図ＤＢ
１７・・・エージェント配信先設定部
１８・・・信号機状態ＤＢ
１９・・・ＤＢ更新部
２０・・・路側機
３０・・・中継車両
４０・・・車両
４３・・・路側機用通信制御部
５０・・・コード更新処理部
５１・・・部分コード復元部
５２・・・部分コード管理部
５３・・・路側機用通信制御部
５４・・・中継車両用通信制御部
５５・・・コード更新部
５６・・・情報記憶部
【図１】
2010128965.tif 000003
【図２】
2010128965.tif 000004
【図３】
2010128965.tif 000005
【図４】
2010128965.tif 000006
【図５】
2010128965.tif 000007
【図６】
2010128965.tif 000008
【図７】
2010128965.tif 000009
【図８】
2010128965.tif 000010
【図９】
2010128965.tif 000011
【図１０】
2010128965.tif 000012
【図１１】
2010128965.tif 000013
【図１２】
2010128965.tif 000014
【図１３】
2010128965.tif 000015
【図１４】
2010128965.tif 000016
【図１５】
2010128965.tif 000017
【図１６】
2010128965.tif 000018