(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023132307
(43)【公開日】2023-09-22
(54)【発明の名称】通信制御装置、通信制御方法及び通信制御プログラム
(51)【国際特許分類】
H04L 41/0859 20220101AFI20230914BHJP
H04L 43/0823 20220101ALI20230914BHJP
H04L 41/0803 20220101ALI20230914BHJP
B60R 16/023 20060101ALI20230914BHJP
【FI】
H04L41/0859
H04L43/0823
H04L41/0803
B60R16/023 P
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022037539
(22)【出願日】2022-03-10
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】山崎 康広
(72)【発明者】
【氏名】宮内 邦裕
(72)【発明者】
【氏名】後藤 英樹
(72)【発明者】
【氏名】大武 生祥
(72)【発明者】
【氏名】山本 祐輔
(72)【発明者】
【氏名】泉 達也
(72)【発明者】
【氏名】田中 秀幸
(72)【発明者】
【氏名】小方 賢太
(72)【発明者】
【氏名】菊地 慶剛
(72)【発明者】
【氏名】浦山 博史
(72)【発明者】
【氏名】呉 ダルマワン
(57)【要約】
【課題】ネットワークの設定を変更した後に通信エラーが発生した場合に、通信エラーが発生しないようにする。
【解決手段】ネットワークの設定の変更に係る処理を行う設定部102と、前記ネットワークの設定の変更が完了したことの通知を、前記ネットワークに接続されている通信装置へ出力する出力部105と、前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う制御部103と、を備える、ECU10が提供される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ネットワークの設定の変更に係る処理を行う設定部と、
前記ネットワークの設定の変更が完了したことの通知を、前記ネットワークに接続されている通信装置へ出力する出力部と、
前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う制御部と、
を備える、通信制御装置。
【請求項2】
前記制御部は、前記ネットワークの設定の変更から、前記通信装置からの通信エラーを所定時間受信しなかった場合に、前記ネットワークの設定の変更が有効であると判断する、請求項1に記載の通信制御装置。
【請求項3】
前記制御部は、前記ネットワークの設定の変更が有効である旨を外部の装置へ通知する、請求項2に記載の通信制御装置。
【請求項4】
前記制御部は、前記通信装置からの通信エラーの原因となった前記ネットワークの設定の変更を行った、前記ネットワークに接続されている通信装置に対して、前記ネットワークの設定を変更前の状態に戻すための処理を行う、請求項1~3のいずれか1項に記載の通信制御装置。
【請求項5】
前記通信エラーは、通信先の通信装置との間の導通確認が取れないこと、所定の周期での通信が出来ないこと、所定のプロトコルで通信が出来ないこと、所定のポートが開放されていないために通信が出来ないこと、の少なくともいずれかである、請求項1~4のいずれか1項に記載の通信制御装置。
【請求項6】
前記制御部は、前記ネットワークの設定の変更の要因となったソフトウェアを配布したサーバに対して、前記ソフトウェアを更新前の状態に戻すよう要求する、請求項1~5のいずれか1項に記載の通信制御装置。
【請求項7】
前記ネットワークに接続されている通信装置からの通信エラーの通知の有無を定期的に監視する監視部をさらに備え、
前記制御部は、前記監視部による通信エラーの通知の検出に応じて前記ネットワークの設定の変更対象の通信装置に対して前記ネットワークの設定を変更前の状態に戻すための処理を行う、請求項1~6のいずれか1項に記載の通信制御装置。
【請求項8】
前記ネットワークは、車載ネットワークである、請求項1~7のいずれか1項に記載の通信制御装置。
【請求項9】
プロセッサが、
ネットワークの設定の変更に係る処理を行い、
前記ネットワークの設定の変更が完了したことを、前記ネットワークに接続されている通信装置へ通知し、
前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う
処理を実行する、通信制御方法。
【請求項10】
コンピュータに、
ネットワークの設定の変更に係る処理を行い、
前記ネットワークの設定の変更が完了したことを、前記ネットワークに接続されている通信装置へ通知し、
前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う
処理を実行させる、通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信制御装置、通信制御方法及び通信制御プログラムに関する。
【背景技術】
【0002】
ハードウェアの構成を変更せず、ソフトウェアによる設定によりネットワークの構成を変更するSDN(Software Defined Networking)の利用が進んでいる。例えば、特許文献1には、ネットワークを稼働させつつ、当該ネットワークを構成する通信装置の設定更新を行うことに寄与する、設定装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ネットワークの設定を変更した後に、ネットワークに接続されている通信装置が通信相手との導通を確認する際に、正常な通信が出来ずに通信エラーとなる場合がある。
【0005】
本発明は、上記の点に鑑みてなされたものであり、ネットワークの設定を変更した後に通信エラーが発生した場合に、通信エラーが発生しないようにする通信制御装置、通信制御方法及び通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1態様に係る通信制御装置は、ネットワークの設定の変更に係る処理を行う設定部と、前記ネットワークの設定の変更が完了したことの通知を、前記ネットワークに接続されている通信装置へ出力する出力部と、前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う制御部と、を備える。
【0007】
本発明の第1態様によれば、ネットワークの設定を変更した後に通信エラーが発生した場合に、ネットワークの設定を変更前の状態に戻すことで、通信エラーが発生しないようにすることができる。
【0008】
本発明の第2態様に係る通信制御装置は、第1態様に係る通信制御装置であって、前記制御部は、前記ネットワークの設定の変更から、前記通信装置からの通信エラーを所定時間受信しなかった場合に、前記ネットワークの設定の変更が有効であると判断する。
【0009】
本発明の第2態様によれば、ネットワークの設定を変更してから通信異常が検出されなかった場合に、ネットワークの設定の変更が有効だとして、ネットワークの制御が可能となる。
【0010】
本発明の第3態様に係る通信制御装置は、第2態様に係る通信制御装置であって、前記制御部は、前記ネットワークの設定の変更が有効である旨を外部の装置へ通知する。
【0011】
本発明の第3態様によれば、ネットワークの設定の変更が有効であると外部の装置に認識させることができる。
【0012】
本発明の第4態様に係る通信制御装置は、第1態様~第3態様のいずれかに係る通信制御装置であって、前記制御部は、前記通信装置からの通信エラーの原因となった前記ネットワークの設定の変更を行った、前記ネットワークに接続されている通信装置に対して、前記ネットワークの設定を変更前の状態に戻すための処理を行う。
【0013】
本発明の第4態様によれば、ネットワークの設定を変更前の状態に戻す範囲を最小限にすることができる。
【0014】
本発明の第5態様に係る通信制御装置は、第1態様~第4態様のいずれかに係る通信制御装置であって、前記通信エラーは、通信先の通信装置との間の導通確認が取れないこと、所定の周期での通信が出来ないこと、所定のプロトコルで通信が出来ないこと、所定のポートが開放されていないために通信が出来ないこと、の少なくともいずれかである。
【0015】
本発明の第5態様によれば、所定の通信不可能な状態を通信エラーと判断することができる。
【0016】
本発明の第6態様に係る通信制御装置は、第1態様~第5態様のいずれかに係る通信制御装置であって、前記制御部は、前記ネットワークの設定の変更の要因となったソフトウェアを配布したサーバに対して、前記ソフトウェアを更新前の状態に戻すよう要求する。
【0017】
本発明の第6態様によれば、通信エラーが発生しない状態にソフトウェアをロールバックすることが出来る。
【0018】
本発明の第7態様に係る通信制御装置は、第1態様~第6態様のいずれかに係る通信制御装置であって、前記ネットワークに接続されている通信装置からの通信エラーの通知の有無を定期的に監視する監視部をさらに備え、前記制御部は、前記監視部による通信エラーの通知の検出に応じて前記ネットワークの設定の変更対象の通信装置に対して前記ネットワークの設定を変更前の状態に戻すための処理を行う。
【0019】
本発明の第7態様によれば、通信エラーの発生を監視し、監視の結果、通信エラーが発生するとネットワークの設定を変更前の状態に戻すことができる。
【0020】
本発明の第8態様に係る通信制御装置は、第1態様~第7態様のいずれかに係る通信制御装置であって、前記ネットワークは、車両内に構築された車載ネットワークである。
【0021】
本発明の第8態様によれば、車載ネットワークに接続された通信装置において通信異常が発生すると、ネットワークの設定を変更前の状態に戻すことができる。
【0022】
本発明の第9態様に係る通信制御方法は、プロセッサが、ネットワークの設定の変更に係る処理を行い、前記ネットワークの設定の変更が完了したことを、前記ネットワークに接続されている通信装置へ通知し、前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う処理を実行する。
【0023】
本発明の第9態様によれば、ネットワークの設定を変更した後に通信エラーが発生した場合に、ネットワークの設定を変更前の状態に戻すことで、通信エラーが発生しないようにすることができる。
【0024】
本発明の第10態様に係る通信制御プログラムは、コンピュータに、ネットワークの設定の変更に係る処理を行い、前記ネットワークの設定の変更が完了したことを、前記ネットワークに接続されている通信装置へ通知し、前記通知に基づき前記ネットワークの設定の変更に応じた通信を行う前記通信装置から前記ネットワークの通信についての通信エラーを受信すると、変更した前記ネットワークの設定を変更前の状態に戻すための処理を行う処理を実行させる。
【0025】
本発明の第10態様によれば、ネットワークの設定を変更した後に通信エラーが発生した場合に、ネットワークの設定を変更前の状態に戻すことで、通信エラーが発生しないようにすることができる。
【発明の効果】
【0026】
本発明によれば、ネットワークの設定を変更した後に通信エラーが発生した場合に、ネットワークの設定を変更前に戻すことで通信エラーが発生しないようにする通信制御装置、通信制御方法及び通信制御プログラムを提供することができる。
【図面の簡単な説明】
【0027】
【
図1】本実施形態に係る通信システムの概略構成を示す図である。
【
図2】ECUのハードウェア構成を示すブロック図である。
【
図3】ECUの機能構成の例を示すブロック図である。
【
図4】ECUのハードウェア構成を示すブロック図である。
【
図5】ECUの機能構成の例を示すブロック図である。
【
図6】通信システムの各装置の動作を説明するシーケンス図である。
【発明を実施するための形態】
【0028】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0029】
図1は、本実施形態に係る通信システムの概略構成を示す図である。
図1に示した通信システムは、車両1及びOTA(Over The Air)サーバ20がネットワーク30を介して接続されている構成を有する。車両1は、アンテナ2と、ECU(Electronic Control Unit)10、200A、200B、200C、200D、及びスイッチ210A、210Bを含んだ、本発明のネットワークの一例である車載ネットワークと、を有する。ECU10、200A、200B、200C、200Dと、スイッチ210A、210Bとは、それぞれイーサネット(登録商標)で接続されている。なお、ECU及びスイッチの数は
図1に示した例に限定されるものでは無く、ECUとスイッチとの接続形態についても
図1に示した例に限定されるものでは無い。
【0030】
ECU10は、車載ネットワーク全体を制御するECUである。ECU10は、アンテナ2を介してOTAサーバ20との間で通信を行って、様々なデータをOTAサーバ20との間でやり取りする。ECU200A、200B、200C、200Dは、それぞれ車両1の各部を制御するためのECUである。例えば、ECU200A、200B、200C、200Dは、エンジン、モータ、ブレーキ、カメラ、ライト等の車両1に搭載される機器の動作を制御する。
【0031】
また、ECU10は、車載ネットワークのハードウェアの構成を変更せず、SDN技術を用いたソフトウェアによる設定により車載ネットワークの構成を変更する。つまり、車載ネットワークの構成を変更する際に、ケーブルを抜き差ししたり、個々のスイッチ210A、210Bに対して個別に設定したりするのではなく、OpenFlow等を利用したソフトウェアによる制御でスイッチ210A、210Bを動作させる。詳細には、ECU10は、ソフトウェアによる制御で、スイッチ210A、210Bに対して各ECUから送信されたパケットの宛先を設定する。スイッチ210A、210BはECU10で設定された内容に基づいてパケットを通過させ、又は破棄する。
【0032】
OTAサーバ20は、車両1の各ECUに対してソフトウェアを更新するためのサーバである。車両1の各ECUに記憶されているソフトウェアに更新が生じた場合は、OTAサーバ20から車両1に対して更新されたソフトウェアを送信する。車両1の各ECUに記憶されているソフトウェアを更新する際は、OTAサーバ20から車両1に対して自動的にソフトウェアを送信してもよいし、車両1に乗車しているユーザからの指示に基づいてOTAサーバ20から車両1に対してソフトウェアを送信してもよい。
【0033】
車載ネットワークに接続されているECUのソフトウェアの更新が生じた際に、車載ネットワークの別のECUとの間で新たな通信を行うように、更新後のソフトウェアで指定されている場合がある。例えば、ECU200Aでソフトウェアが更新された結果、ECU200Aがスイッチ210A、210Bを経由してECU200Cと新たに通信を開始するような場合がある。ECU10は、車載ネットワークに接続されているECUのソフトウェアの更新が生じた際に、スイッチ210A、210Bの通信設定を変更する。
【0034】
しかし、ソフトウェアの更新の結果、通信エラーを起こすECUが生じる可能性がある。例えば、ECU200AがECU200Dとの通信を開始するようソフトウェアが更新され、ECU10によってスイッチ210A、210Bの通信設定が変更されたが、ECU200AがECU200Dとの間で導通試験を行っても通信が出来ない場合を考える。このような場合、ECU200AはECU200Dとの間の通信で通信エラーが起きたことをECU10に通知する。
【0035】
そこで本実施形態に係るECU10は、ソフトウェアによりスイッチ210A、210Bの通信設定を変更した結果、通信エラーが発生したECUが存在した場合は、スイッチ210A、210Bの通信設定を変更前の状態に戻す。そしてECU10は、OTAサーバ20に対してソフトウェアのロールバックを指示する。本実施形態に係るECU10は、通信エラーが発生したECUが存在すると、スイッチ210A、210Bの通信設定を変更前の状態に戻すことで、当該ECUが通信エラーを起こすことを停止できる。
【0036】
続いて、ECU10のハードウェア構成を説明する。
図2は、ECU10のハードウェア構成を示すブロック図である。
【0037】
図2に示すように、ECU10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、第1通信インタフェース(I/F)15、及び第2通信インタフェース16を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0038】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12またはストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12またはストレージ14に記録されているプログラムにしたがって、上記各構成の制御および各種の演算処理を行う。本実施形態では、ROM12またはストレージ14には、車両1の車載ネットワークの通信制御を行う通信制御プログラムが格納されている。
【0039】
ROM12は、各種プログラムおよび各種データを格納する。RAM13は、作業領域として一時的にプログラムまたはデータを記憶する。ストレージ14は、フラッシュメモリ等の記憶装置により構成され、オペレーティングシステムを含む各種プログラム、および各種データを格納する。
【0040】
第1通信インタフェース15は、OTAサーバ20と通信するためのインタフェースであり、たとえば、4G、5G、又はWi-Fi(登録商標)等の無線通信の規格が用いられる。第2通信インタフェース16は、ECU200A~200D等の他の機器と通信するためのインタフェースであり、たとえば、イーサネット(登録商標)等の有線通信の規格が用いられる。
【0041】
上記の通信制御プログラムを実行する際に、ECU10は、上記のハードウェア資源を用いて、各種の機能を実現する。ECU10が実現する機能構成について説明する。
【0042】
図3は、ECU10の機能構成の例を示すブロック図である。
【0043】
図3に示すように、ECU10は、機能構成として、取得部101、設定部102、制御部103、監視部104、出力部105および記憶部106を有する。各機能構成は、CPU11がROM12またはストレージ14に記憶された通信制御プログラムを読み出し、実行することにより実現される。なお、取得部101、設定部102、制御部103、監視部104、出力部105および記憶部106の機能は、複数のECUにおいて実現されてもよい。
【0044】
取得部101は、OTAサーバ20及び車載ネットワークのECU200A~200Dからデータを取得する。詳細には、取得部101は、OTAサーバ20からは、ECU200A~200Dで実行されるソフトウェアに更新が生じた場合に新しいソフトウェアを取得する。また取得部101は、ECU200A~200Dのソフトウェアの更新に応じて必要がある場合は、スイッチ210A、210Bの通信設定を変更するためのデータを取得する。
【0045】
設定部102は、ソフトウェアによる車載ネットワークの通信設定を行う。例えば、ECU200A~200Dのソフトウェアの更新に応じて必要がある場合、設定部102はスイッチ210A、210Bの通信設定を変更する。すなわち、設定部102は、ソフトウェアによる設定により、車載ネットワークの構成を変更する。設定部102が行う通信設定の変更は、例えば、ECU200の通信相手と通信できるような経路の設定、ポートの開放又は閉鎖の設定、通過させるパケットの優先度の設定、パケットのキューのサイズの設定、帯域の設定、パケットのフィルタリングの設定等がある。例えば、車載ネットワークにECU200Dが新たに追加されたような場合、設定部102は、ECU200Dと通信を行う他のECU200A~200Cに対して、ECU200Dとの間で通信が出来るための設定をスイッチ210A、210Bに対して施す。
【0046】
スイッチ210A、210Bは、例えばテーブルの形式で通信設定を保持している。スイッチ210A、210Bは、テーブルを参照して、車載ネットワークを流れるフレーム又はパケットを処理する。
【0047】
制御部103は、ECU10の動作の制御及び車載ネットワークの制御を行う。詳細には、制御部103は、ECU200A~200Dで実行されるソフトウェアに更新が生じた場合に、取得部101が取得した新しいソフトウェアを出力部105から出力させる制御を行う。また制御部103は、ECU200A~200Dのソフトウェアの更新に応じて必要がある場合は、スイッチ210A、210Bに対して、設定部102での通信設定の変更処理のために必要なデータを出力部105から出力させる制御を行う。
【0048】
監視部104は、車載ネットワークにおける通信状況を監視する。詳細には、監視部104は、車載ネットワークに接続されている各ECUから、通信エラーが通知されてきているかどうかを監視する。
【0049】
出力部105は、OTAサーバ20及び車載ネットワークの各装置へデータを出力する。出力部105からのデータの出力は、制御部103からの制御によって行われる。
【0050】
記憶部106は、ECU10の動作の際に参照される情報、車載ネットワークの制御に用いられる情報等の種々の情報を記憶する。詳細には、記憶部106は、スイッチ210A、210Bの通信設定を変更した後で、車載ネットワークのあるECUにおいて通信エラーが起きた場合に、スイッチ210A、210Bの通信設定を元の状態に戻すために、変更前の通信設定を記憶している。
【0051】
ECU200A~200Dの少なくともいずれかに対してソフトウェアの更新が行われるとともに、スイッチ210A、210Bの通信設定が変更された後に、車載ネットワークのあるECUにおいて通信エラーが起こる可能性がある。監視部104は、通信エラーの発生が通知されたことを確認すると、制御部103に対して車載ネットワークに通信エラーが起きているECU200が存在している旨を通知する。制御部103は、ソフトウェアの更新及び通信設定の変更によって、車載ネットワークに通信エラーが起きているECU200が存在していることを確認すると、OTAサーバ20に対して、更新したソフトウェアを更新前のソフトウェアに戻すロールバックを要求する。そして、OTAサーバ20からのロールバックの指示を受けると、制御部103は、記憶部106に記憶されている変更前の通信設定を読み出し、スイッチ210A、210Bの通信設定を元の状態に戻す制御を行う。
【0052】
制御部103は、スイッチ210A、210Bに対して車載ネットワークの設定を変更してから、ECU200からの通信エラーの発生通知を所定時間受信しなかった場合に、車載ネットワークの設定の変更が有効であると判断してもよい。そして、制御部103は、OTAサーバ20に対して、車載ネットワークの変更が有効であった旨の通知を行ってもよい。OTAサーバ20は、車載ネットワークの変更が有効であった旨の通知を車両1から受け取ることで、ソフトウェアの更新が正常に完了したことを把握することができる。
【0053】
ECU10は、
図3に示した構成を有することで、ネットワークの設定の変更対象ではないECUが通信エラーを起こした場合に、ネットワークの設定の変更対象のスイッチ210A、210Bに対して変更前の通信設定に戻すことができる。ECU10は、スイッチ210A、210Bに対して変更前の通信設定に戻すことで、ネットワークの設定の変更対象ではないECUが通信エラーを起こさないようにすることができる。
【0054】
続いて、ECU200A~200Dのハードウェア構成を説明する。以下では、ECU200A~200Dを総称してECU200とする。
図4は、ECU200のハードウェア構成を示すブロック図である。
【0055】
図4に示すように、ECU200は、CPU201、ROM202、RAM203、ストレージ204、及び通信インタフェース(I/F)205を有する。各構成は、バス209を介して相互に通信可能に接続されている。
【0056】
CPU201は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU201は、ROM202またはストレージ204からプログラムを読み出し、RAM203を作業領域としてプログラムを実行する。CPU201は、ROM202またはストレージ204に記録されているプログラムにしたがって、上記各構成の制御および各種の演算処理を行う。
【0057】
ROM202は、各種プログラムおよび各種データを格納する。RAM203は、作業領域として一時的にプログラムまたはデータを記憶する。ストレージ204は、フラッシュメモリ等の記憶装置により構成され、オペレーティングシステムを含む各種プログラム、および各種データを格納する。
【0058】
通信インタフェース205は、ECU10及び他のECU200等の他の機器と通信するためのインタフェースであり、たとえば、イーサネット(登録商標)等の有線通信の規格が用いられる。
【0059】
上記の通信制御プログラムを実行する際に、ECU200は、上記のハードウェア資源を用いて、各種の機能を実現する。ECU200が実現する機能構成について説明する。
【0060】
図5は、ECU200の機能構成の例を示すブロック図である。
【0061】
図5に示すように、ECU200は、機能構成として、取得部211、制御部212、出力部213および記憶部214を有する。各機能構成は、CPU201がROM202またはストレージ204に記憶されたプログラムを読み出し、実行することにより実現される。
【0062】
取得部211は、車載ネットワークのECU10及び他のECU200からデータを取得する。詳細には、取得部211は、ECU10からは、ECU200で実行されるソフトウェアに更新が生じた場合に新しいソフトウェアを取得する。
【0063】
制御部212は、ECU200の動作の制御を行う。詳細には、制御部212は、ECU200で実行されるソフトウェアに更新が生じた場合に、取得部211が取得した新しいソフトウェアで自装置のソフトウェアを更新する処理を行う。また、制御部212は、通信相手のECU200との間の通信エラーが発生した場合は、通信エラーが起きたことをECU10へ通知する。
【0064】
出力部213は、車載ネットワークのECU10及び他のECU200へデータを出力する。出力部213からのデータの出力は、制御部212からの制御によって行われる。
【0065】
記憶部214は、ECU10の動作の際に参照される情報、車載ネットワークの制御に用いられる情報等の種々の情報を記憶する。詳細には、記憶部214は、ECU200で実行されるソフトウェア及び当該ソフトウェアが参照するデータを記憶する。
【0066】
次に、通信システムの作用について説明する。
【0067】
図6は、通信システムの各装置の動作を説明するシーケンス図である。ECU10においては、CPU11がROM12又はストレージ14から通信制御プログラムを読み出して、RAM13に展開して実行することにより、通信制御処理が行なわれる。
【0068】
図6に示したシーケンス図は、車載ネットワークのECU200で実行されるソフトウェアが更新されるとともに、ソフトウェアの更新に応じてスイッチ210A、210Bの通信設定が変更される場合の各装置の動作を示したものである。
図6は、ソフトウェアの更新前は、スイッチ210A、210Bの通信設定によってECU200AとECU200Cとの間での通信が開始される場合を想定したシーケンス図である。
【0069】
車載ネットワークのECU200で実行されるソフトウェアを更新する際には、まずOTAサーバ20は、ステップS101において、車両1に対してソフトウェアのデータを送信する。OTAサーバ20から送信されたソフトウェアのデータはまずECU10が取得する。ECU10は、OTAサーバ20から取得したソフトウェアのデータを更新対象のECU200に出力する。ここでは、ECU200A、200Cがソフトウェアの更新対象であるとする。ECU10は、ステップS102及びS104において、ソフトウェアの更新対象のECU200A、200Cにソフトウェアのデータを出力する。ECU200Aは、ステップS103において、ECU10から送られてきたソフトウェアのデータを用いてソフトウェアを更新する。同様に、ECU200Cは、ステップS105において、ECU10から送られてきたソフトウェアのデータを用いてソフトウェアを更新する。
【0070】
また、ECU10は、ソフトウェアの更新に応じてスイッチ210A、210Bの通信設定を更新するため、ステップS106において新しい通信設定の情報を出力する。スイッチ210A、210Bは、ステップS107において、ECU10から送られてきた通信設定の情報を用いて通信設定を反映する。例えば、ECU10は、ECU200A、200Cのソフトウェアの更新によって、ECU200AとECU200Cとの間で通信を可能とするようにスイッチ210A、210Bの通信設定を更新する。
【0071】
スイッチ210A、210Bの通信設定が更新されることで、ECU200AとECU200Cとの間で通信が可能となるはずである。そこで、ECU200Aは、ステップS108においてECU200Cとの間で導通確認を行う。しかし、スイッチ210A、210Bの通信設定の内容が誤っている等の理由で、ECU200AとECU200Cとの間で通信が出来ない場合があり得る。ECU200Aは、ステップS109においてECU200Cとの間で通信エラーが発生したことを、ECU10に通知する。
【0072】
ECU10は、ECU200Aから送られた通信エラーの発生通知を取得すると、ステップS110において、ECU200A、200Cに対してソフトウェアを更新し、スイッチ210A、210Bの通信設定を変更した結果、通信エラーが発生したことをOTAサーバ20に送信する。ECU10は、通信エラーが発生したことをOTAサーバ20に送信する際に、通信エラーが発生した原因の情報であるリーズンコードを併せて送信する。リーズンコードの情報は、どのECUからのどのような通信エラーであるかを示す情報である。通信エラーの内容は、詳細には、通信相手へ送信したが該通信相手から応答が来なかった、フレーム又はパケットの内容等がある。通信エラーの内容は、例えば、通信先の通信装置との間の導通確認が取れないこと、所定の周期での通信が出来ないこと、所定のプロトコルで通信が出来ないこと、所定のポートが開放されていないために通信が出来ないこと、の少なくともいずれかである。
【0073】
通信エラーが発生したことを受信したOTAサーバ20は、ステップS111において、車両1に対してロールバックの指示を送信する。ロールバックは、更新前のソフトウェアに戻すことをいう。OTAサーバ20からロールバックの指示が送信された場合は、ECU200A、200Cは、保持していた更新前のソフトウェアのデータを用いてソフトウェアを更新前の状態に戻す。
【0074】
ECU10は、OTAサーバ20からロールバックの指示を受信すると、ロールバック対象のECU200にロールバックの指示を出力する。ここでは、ECU200A、200Cがソフトウェアのロールバック対象である。ECU10は、ステップS112及びS114において、ソフトウェアのロールバック対象のECU200A、200Cにロールバックの指示を出力する。ECU200Aは、ステップS113において、ECU10からの指示に基づいてソフトウェアをロールバックする。同様に、ECU200Cは、ステップS115において、ECU10からの指示に基づいてソフトウェアをロールバックする。また、ECU10は、ソフトウェアのロールバックと共に、ステップS116において、スイッチ210A、210Bに対して通信設定を変更前の状態に戻すよう指示する。スイッチ210A、210Bは、ステップS117において、通信設定を変更前の状態に戻す。
【0075】
OTAサーバ20は、ECU10から通信エラーの発生及びリーズンコードを受信すると、リーズンコードの内容に基づき、通信エラーが発生しないように修正されたソフトウェアを改めて車両1に送信する。ここで、修正されたソフトウェアの配布対象は、ECU200A、200Cに限らず、通信エラーとは関係が無いECU200Dが含まれていてもよい。OTAサーバ20からのソフトウェアの送信から、ECU200でソフトウェアが更新されるまでの流れは、上述のステップS101からステップS105までと同様であるため、詳細な説明は割愛する。また、ECU10は、ソフトウェアの更新に応じて、スイッチ210A、210Bの通信設定を更新するための処理を実行する。
【0076】
以上説明したように、本発明の実施形態によれば、ネットワークの設定の変更後にECUが通信エラーを起こした場合に、ネットワークの設定の変更対象のスイッチの通信設定を変更前の状態に戻すことができる。ECU10は、ネットワークの設定の変更対象のスイッチの通信設定を変更前の状態に戻すことで、ECUが通信エラーを起こさないようにすることができる。
【0077】
上述の実施形態では、OTAサーバ20がソフトウェアを配布する場合を示したが、OTAサーバ20がソフトウェアを配布しない場合、ECU10は、ECU200による通信異常の検出を取得すると、スイッチ210A、210Bに対して通信設定を変更前の状態に戻す処理を実行する。
【0078】
本発明は、車載ネットワークに新たにECUが接続され、当該新たに接続されたECUが他のECUと通信を可能にするための通信設定の変更にも適用が可能である。また、上述の実施形態では、車両内に構築されているネットワークである車載ネットワークにおける通信設定の変更に関する例を示したが、本発明は係る例に限定されるものでは無い。本発明は、ソフトウェアによる設定により構成を変更するネットワーク全般について適用することが可能である。
【0079】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した通信制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、通信制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0080】
また、上記各実施形態では、通信制御処理のプログラムがROMまたはストレージに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0081】
1 車両
2 アンテナ
10 ECU
20 OTAサーバ
30 ネットワーク
200A、200B、200C、200D ECU
210A、210B スイッチ