IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特許7589702通信制御装置、通信制御方法及び通信制御プログラム
<>
  • 特許-通信制御装置、通信制御方法及び通信制御プログラム 図1
  • 特許-通信制御装置、通信制御方法及び通信制御プログラム 図2
  • 特許-通信制御装置、通信制御方法及び通信制御プログラム 図3
  • 特許-通信制御装置、通信制御方法及び通信制御プログラム 図4
  • 特許-通信制御装置、通信制御方法及び通信制御プログラム 図5
  • 特許-通信制御装置、通信制御方法及び通信制御プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】通信制御装置、通信制御方法及び通信制御プログラム
(51)【国際特許分類】
   H04L 41/0813 20220101AFI20241119BHJP
   H04L 41/0859 20220101ALI20241119BHJP
   H04L 43/08 20220101ALI20241119BHJP
   H04L 12/28 20060101ALI20241119BHJP
【FI】
H04L41/0813
H04L41/0859
H04L43/08
H04L12/28 100A
【請求項の数】 10
(21)【出願番号】P 2022037511
(22)【出願日】2022-03-10
(65)【公開番号】P2023132284
(43)【公開日】2023-09-22
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】山崎 康広
(72)【発明者】
【氏名】宮内 邦裕
(72)【発明者】
【氏名】後藤 英樹
(72)【発明者】
【氏名】大武 生祥
【審査官】速水 雄太
(56)【参考文献】
【文献】特開2020-152154(JP,A)
【文献】特開2016-192661(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
(57)【特許請求の範囲】
【請求項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】
【文献】特開2017-169044号公報
【発明の概要】
【発明が解決しようとする課題】
【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が生じる可能性がある。例えば、ECU200DはECU10及びECU200Cとの間の通信のみを行うように設定されており、他のECUからのデータは全て異常と検出し、ECU10に報告する場合を考える。この場合において、スイッチ210A、210Bの通信設定が変更された結果、ECU200AからのデータがECU200Dに到達すると、ECU200Dは、ECU200Aから送信されたデータを異常と検出して、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において通信異常が検出された場合に、通信設定を元の状態に戻すために、変更前の通信設定を記憶している。
【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との間での通信はブロックされていたが、ソフトウェアの更新によって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との間で通信が可能となる。ところで、スイッチ210BにはECU200Cに加えてECU200Dも接続されている。ECU200Dは、同じスイッチ210Bに接続されているECU10、ECU200Cとの間の通信は想定しているが、スイッチ210Aに接続されているECU200A、200Bとの間の通信は想定していないとする。ECU200Aが宛先を指定しないブロードキャスト通信でデータを送信すると、データはECU200CだけでなくECU200Dにも到達する。ECU200Dは、ECU200Aからデータが送られてくることは想定していないため、通信異常を検出し、ステップS108において通信異常の検出をECU10へ通知する。
【0072】
ECU10は、ECU200Dから送られた通信異常の検出を取得すると、ステップS109において、ECU200A、200Cに対してソフトウェアを更新し、スイッチ210A、210Bの通信設定を変更した結果、通信異常が発生したことをOTAサーバ20に送信する。ECU10は、通信異常が発生したことをOTAサーバ20に送信する際に、通信異常が発生した原因の情報であるリーズンコードを併せて送信する。リーズンコードの情報は、どのECUからのどのような通信異常であるかを示す情報である。通信異常の内容は、詳細には、自装置宛ての不明なデータを受信した、車載ネットワーク上に不明なデータが流れていることを検知した、自装置が把握している周期とは異なる周期でデータを受信した、自装置がオープンしていないポートでデータを受信した、等がある。
【0073】
通信異常が発生したことを受信したOTAサーバ20は、ステップS110において、車両1に対してロールバックの指示を送信する。ロールバックは、更新前のソフトウェアに戻すことをいう。OTAサーバ20からロールバックの指示が送信された場合は、ECU200A、200Cは、保持していた更新前のソフトウェアのデータを用いてソフトウェアを更新前の状態に戻す。
【0074】
ECU10は、OTAサーバ20からロールバックの指示を受信すると、ロールバック対象のECU200にロールバックの指示を出力する。ここでは、ECU200A、200Cがソフトウェアのロールバック対象である。ECU10は、ステップS111及びS113において、ソフトウェアのロールバック対象のECU200A、200Cにロールバックの指示を出力する。ECU200Aは、ステップS112において、ECU10からの指示に基づいてソフトウェアをロールバックする。同様に、ECU200Cは、ステップS114において、ECU10からの指示に基づいてソフトウェアをロールバックする。また、ECU10は、ソフトウェアのロールバックと共に、ステップS115において、スイッチ210A、210Bに対して通信設定を変更前の状態に戻すよう指示する。スイッチ210A、210Bは、ステップS116において、通信設定を変更前の状態に戻す。
【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 スイッチ
図1
図2
図3
図4
図5
図6