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

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

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

特許7704053通信制御システム、通信制御方法及び通信制御プログラム
<>
  • 特許-通信制御システム、通信制御方法及び通信制御プログラム 図1
  • 特許-通信制御システム、通信制御方法及び通信制御プログラム 図2
  • 特許-通信制御システム、通信制御方法及び通信制御プログラム 図3
  • 特許-通信制御システム、通信制御方法及び通信制御プログラム 図4
  • 特許-通信制御システム、通信制御方法及び通信制御プログラム 図5
  • 特許-通信制御システム、通信制御方法及び通信制御プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-30
(45)【発行日】2025-07-08
(54)【発明の名称】通信制御システム、通信制御方法及び通信制御プログラム
(51)【国際特許分類】
   H04L 43/0823 20220101AFI20250701BHJP
   H04L 41/0813 20220101ALI20250701BHJP
   B60R 16/023 20060101ALI20250701BHJP
【FI】
H04L43/0823
H04L41/0813
B60R16/023 P
【請求項の数】 17
(21)【出願番号】P 2022037512
(22)【出願日】2022-03-10
(65)【公開番号】P2023132285
(43)【公開日】2023-09-22
【審査請求日】2023-12-19
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】山崎 康広
(72)【発明者】
【氏名】宮内 邦裕
(72)【発明者】
【氏名】後藤 英樹
(72)【発明者】
【氏名】大武 生祥
【審査官】長濱 美紗
(56)【参考文献】
【文献】特開2020-152154(JP,A)
【文献】国際公開第2020/162075(WO,A1)
【文献】特開2017-169044(JP,A)
【文献】特開2016-192661(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
B60R 16/023
(57)【特許請求の範囲】
【請求項1】
外部装置からの指示に従い、ソフトウェアの更新に係る第1の処理を制御装置に対して行うと共に、前記ソフトウェアの更新に関連するネットワークの設定の変更に係る第2の処理を通信装置に対して行う設定部と、
前記第1の処理および前記第2の処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定する判定部と、
前記通信装置の通信が所定の通信条件に合致していないと前記判定部に判定された場合、前記ソフトウェアを更新前の状態に戻すと共に、前記ネットワークの設定を変更前の状態に戻す制御部と、
前記通信装置の通信が所定の通信条件に合致していないと前記判定部に判定された場合に前記外部装置にエラーを通知する通知部と、
を備える、通信制御システム。
【請求項2】
前記判定部は、前記通信装置により所定の周期で通信が行われているかを判定する、請求項1に記載の通信制御システム。
【請求項3】
前記判定部は、前記通信装置により所定のプロトコルで通信が行われているかを判定する、請求項1または2に記載の通信制御システム。
【請求項4】
前記判定部は、前記通信装置により所定の通信量の範囲で通信が行われているかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項5】
前記判定部は、前記通信装置により所定のサービスとの通信が行われているかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項6】
前記判定部は、前記通信装置により所定の通信プロファイルでの通信が行われているかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項7】
前記判定部は、前記通信装置により所定のメッセージの通信が行われているかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項8】
前記判定部は、前記通信装置により所定のデータ長で通信が行われているかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項9】
前記判定部は、前記ネットワークの通信異常が発生していないかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項10】
前記判定部は、送信元の通信装置の情報が正しいかを判定する、請求項1~のいずれか1項に記載の通信制御システム。
【請求項11】
前記判定部は、送信先の通信装置の情報が正しいかを判定する、請求項1~1のいずれか1項に記載の通信制御システム。
【請求項12】
前記判定部は、所定のネットワークセグメントで通信されているかを判定する、請求項1~1のいずれか1項に記載の通信制御システム。
【請求項13】
前記判定部は、前記通信装置から送信された通信データの完全性を検証し、該通信データが完全であるかどうかを判定する、請求項1~1のいずれか1項に記載の通信制御システム。
【請求項14】
前記通知部は、前記ネットワークの設定の変更から所定時間の間、前記通信装置の通信が所定の通信条件に合致していないと前記判定部が判定しなかった場合に、前記ネットワークの設定の変更が有効である旨を前記外部装置へ通知する、請求項1~13のいずれか1項に記載の通信制御システム。
【請求項15】
前記ネットワークは、車載ネットワークである、請求項1~1のいずれか1項に記載の通信制御システム。
【請求項16】
プロセッサが、
外部装置からの指示に従い、ソフトウェアの更新に係る第1の処理を制御装置に対して行うと共に、前記ソフトウェアの更新に関連するネットワークの設定の変更に係る第2の処理を通信装置に対して行い、
前記第1の処理および前記第2の処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定し、
前記通信装置の通信が所定の通信条件に合致していないと判定した場合、前記ソフトウェアを更新前の状態に戻すと共に、前記ネットワークの設定を変更前の状態に戻し、
前記通信装置の通信が所定の通信条件に合致していないと判定した場合に前記外部装置にエラーを通知する
処理を実行する、通信制御方法。
【請求項17】
コンピュータに、
外部装置からの指示に従い、ソフトウェアの更新に係る第1の処理を制御装置に対して行うと共に、前記ソフトウェアの更新に関連するネットワークの設定の変更に係る第2の処理を通信装置に対して行い、
前記第1の処理および前記第2の処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定し、
前記通信装置の通信が所定の通信条件に合致していないと判定した場合、前記ソフトウェアを更新前の状態に戻すと共に、前記ネットワークの設定を変更前の状態に戻し、
前記通信装置の通信が所定の通信条件に合致していないと判定した場合に前記外部装置にエラーを通知する
処理を実行させる、通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信制御システム、通信制御方法及び通信制御プログラムに関する。
【背景技術】
【0002】
ハードウェアの構成を変更せず、ソフトウェアによる設定によりネットワークの構成を変更するSDN(Software Defined Networking)の利用が進んでいる。例えば、特許文献1には、ネットワークを稼働させつつ、当該ネットワークを構成する通信装置の設定更新を行うことに寄与する、設定装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-169044号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ネットワークの設定を変更した後に、ネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行う場合がある。
【0005】
本発明は、上記の点に鑑みてなされたものであり、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、通信条件に合致しない通信が行われた旨を通知する通信制御システム、通信制御方法及び通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1態様に係る通信制御システムは、外部装置からの指示に従い、ネットワークの設定の変更に係る処理を通信装置に対して行う設定部と、前記処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定する判定部と、前記通信装置の通信が所定の通信条件に合致していないと前記判定部に判定された場合に前記外部装置にエラーを通知する通知部と、を備える。
【0007】
本発明の第1態様によれば、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、通信条件に合致しない通信が行われた旨を外部装置に通知できる。
【0008】
本発明の第2態様に係る通信制御システムは、外部装置からの指示に従い、ネットワークの設定の変更に係る処理を通信装置に対して行う設定部と、前記処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定する判定部と、前記通信装置の通信が所定の通信条件に合致していないと前記判定部に判定された場合にネットワークの設定を変更前の状態に戻す制御部と、を備える。
【0009】
本発明の第2態様によれば、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、ネットワークの設定を変更前の状態に戻すことができる。
【0010】
本発明の第3態様に係る通信制御システムは、第1態様に係る通信制御システムであって、前記通信装置の通信が所定の通信条件に合致していないと前記判定部に判定された場合にネットワークの設定を変更前の状態に戻す制御部をさらに備える。
【0011】
本発明の第3態様によれば、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、ネットワークの設定を変更前の状態に戻すことができる。
【0012】
本発明の第4態様に係る通信制御システムは、第1態様~第3態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定の周期で通信が行われているかを判定する。本発明の第4態様によれば、所定の周期で行われていない通信の発生を外部装置に通知できる。
【0013】
本発明の第5態様に係る通信制御システムは、第1態様~第4態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定のプロトコルで通信が行われているかを判定する。本発明の第5態様によれば、所定のプロトコルで行われていない通信の発生を外部装置に通知できる。
【0014】
本発明の第6態様に係る通信制御システムは、第1態様~第5態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定の通信量の範囲で通信が行われているかを判定する。本発明の第6態様によれば、所定の通信量の範囲で行われていない通信の発生を外部装置に通知できる。
【0015】
本発明の第7態様に係る通信制御システムは、第1態様~第6態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定のサービスとの通信が行われているかを判定する。本発明の第7態様によれば、所定のサービスとの通信が行われていないことを外部装置に通知できる。
【0016】
本発明の第8態様に係る通信制御システムは、第1態様~第7態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定の通信プロファイルでの通信が行われているかを判定する。本発明の第8態様によれば、所定の通信プロファイルでの通信が行われていないことを外部装置に通知できる。
【0017】
本発明の9態様に係る通信制御システムは、第1態様~第8態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定のメッセージの通信が行われているかを判定する。本発明の第9態様によれば、所定のメッセージの通信が行われていないことを外部装置に通知できる。
【0018】
本発明の第10態様に係る通信制御システムは、第1態様~第9態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置により所定のデータ長で通信が行われているかを判定する。本発明の第10態様によれば、所定のデータ長での通信が行われていないことを外部装置に通知できる。
【0019】
本発明の第11態様に係る通信制御システムは、第1態様~第10態様のいずれかに係る通信制御システムであって、前記判定部は、前記ネットワークの通信異常が発生していないかを判定する。本発明の第11態様によれば、ネットワークの通信異常が発生したことを外部装置に通知できる。
【0020】
本発明の第12態様に係る通信制御システムは、第1態様~第11態様のいずれかに係る通信制御システムであって、前記判定部は、送信元の通信装置の情報が正しいかを判定する。本発明の第12態様によれば、送信元の通信装置の情報が正しくない通信が発生したことを外部装置に通知できる。
【0021】
本発明の第13態様に係る通信制御システムは、第1態様~第12態様のいずれかに係る通信制御システムであって、前記判定部は、送信先の通信装置の情報が正しいかを判定する。本発明の第13態様によれば、送信先の通信装置の情報が正しくない通信が発生したことを外部装置に通知できる。
【0022】
本発明の第14態様に係る通信制御システムは、第1態様~第13態様のいずれかに係る通信制御システムであって、前記判定部は、所定のネットワークセグメントで通信されているかを判定する。本発明の第14態様によれば、所定のネットワークセグメントで行われていない通信が発生したことを外部装置に通知できる。
【0023】
本発明の第15態様に係る通信制御システムは、第1態様~第14態様のいずれかに係る通信制御システムであって、前記判定部は、前記通信装置から送信された通信データの完全性を検証し、該通信データが完全であるかどうかを判定する。本発明の第15態様によれば、通信データが完全ではない通信が発生したことを外部装置に通知できる。
【0024】
本発明の第16態様に係る通信制御システムは、第1態様、第3態様~第15態様のいずれかに係る通信制御システムであって、前記通知部は、前記ネットワークの設定の変更から所定時間の間、前記通信装置の通信が所定の通信条件に合致していないと前記判定部が判定しなかった場合に、前記ネットワークの設定の変更が有効である旨を前記外部装置へ通知する。本発明の第16態様によれば、所定時間の間、所定の通信条件に合致しない通信が発生しなければ、ネットワークの設定の変更が有効である旨を外部装置に通知できる。
【0025】
本発明の第17態様に係る通信制御システムは、第1態様~第16態様のいずれかに係る通信制御システムであって、前記ネットワークは、車載ネットワークである。本発明の第17態様によれば、車載ネットワークに接続された通信装置において通信異常が発生すると、ネットワークの設定を変更前の状態に戻すことができる。
【0026】
本発明の第18態様に係る通信制御方法は、プロセッサが、外部装置からの指示に従い、ネットワークの設定の変更に係る処理を通信装置に対して行い、前記処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定しと、前記通信装置の通信が所定の通信条件に合致していないと判定した場合に前記外部装置にエラーを通知する処理を実行する。
【0027】
本発明の第18態様によれば、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、通信条件に合致しない通信が行われた旨を外部装置に通知できる。
【0028】
本発明の第19態様に係る通信制御プログラムは、コンピュータに、外部装置からの指示に従い、ネットワークの設定の変更に係る処理を通信装置に対して行い、前記処理の実行後に、前記通信装置の通信が所定の通信条件に合致しているかを判定しと、前記通信装置の通信が所定の通信条件に合致していないと判定した場合に前記外部装置にエラーを通知する処理を実行させる。
【0029】
本発明の第19態様によれば、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、通信条件に合致しない通信が行われた旨を外部装置に通知できる。
【発明の効果】
【0030】
本発明によれば、ネットワークの設定を変更した後にネットワークに接続されている通信装置が所定の通信条件に合致しない通信を行った場合に、通信条件に合致しない通信が行われた旨を通知する通信制御システム、通信制御方法及び通信制御プログラムを提供することができる。
【図面の簡単な説明】
【0031】
図1】本実施形態に係る通信システムの概略構成を示す図である。
図2】ECUのハードウェア構成を示すブロック図である。
図3】ECUの機能構成の例を示すブロック図である。
図4】ECUのハードウェア構成を示すブロック図である。
図5】ECUの機能構成の例を示すブロック図である。
図6】通信システムの各装置の動作を説明するシーケンス図である。
【発明を実施するための形態】
【0032】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0033】
図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に示した例に限定されるものでは無い。
【0034】
ECU10は、車載ネットワーク全体を制御するECUである。ECU10は、アンテナ2を介してOTAサーバ20との間で通信を行って、様々なデータをOTAサーバ20との間でやり取りする。ECU200A、200B、200C、200Dは、それぞれ車両1の各部を制御するためのECUである。例えば、ECU200A、200B、200C、200Dは、エンジン、モータ、ブレーキ、カメラ、ライト等の車両1に搭載される機器の動作を制御する。
【0035】
また、ECU10は、車載ネットワークのハードウェアの構成を変更せず、SDN技術を用いたソフトウェアによる設定により車載ネットワークの構成を変更する。つまり、車載ネットワークの構成を変更する際に、ケーブルを抜き差ししたり、個々のスイッチ210A、210Bに対して個別に設定したりするのではなく、OpenFlow等を利用したソフトウェアによる制御でスイッチ210A、210Bを動作させる。詳細には、ECU10は、ソフトウェアによる制御で、スイッチ210A、210Bに対して各ECUから送信されたパケットの宛先を設定する。スイッチ210A、210BはECU10で設定された内容に基づいてパケットを通過させ、又は破棄する。
【0036】
OTAサーバ20は、外部装置の一例であり、車両1の各ECUに対してソフトウェアを更新するためのサーバである。車両1の各ECUに記憶されているソフトウェアに更新が生じた場合は、OTAサーバ20から車両1に対して更新されたソフトウェアを送信する。車両1の各ECUに記憶されているソフトウェアを更新する際は、OTAサーバ20から車両1に対して自動的にソフトウェアを送信してもよいし、車両1に乗車しているユーザからの指示に基づいてOTAサーバ20から車両1に対してソフトウェアを送信してもよい。
【0037】
車載ネットワークに接続されているECUのソフトウェアの更新が生じた際に、車載ネットワークの別のECUとの間で新たな通信を行うように、更新後のソフトウェアで指定されている場合がある。例えば、ECU200Aでソフトウェアが更新された結果、ECU200Aがスイッチ210A、210Bを経由してECU200Cと新たに通信を開始するような場合がある。ECU10は、車載ネットワークに接続されているECUのソフトウェアの更新が生じた際に、スイッチ210A、210Bの通信設定を変更する。
【0038】
しかし、ソフトウェアの更新の結果、所定の通信条件を満たさない通信を行うECU200が生じる可能性がある。例えば、ECU200AがECU200Dとの通信を開始するようソフトウェアが更新され、ECU10によってスイッチ210A、210Bの通信設定が変更されたが、ECU200AがECU200Dとの間で所定の通信条件を満たさない通信を行う場合が考えられる。
【0039】
ここで、所定の通信条件とは、所定の周期で通信が行われていること、所定のプロトコルで通信が行われていること、所定の通信量の範囲で通信が行われていること、所定のサービスとの通信が行われていること、等である。通信条件の詳細な例は後述する。
【0040】
そこで本実施形態に係るECU10は、ソフトウェアによりスイッチ210A、210Bの通信設定を変更した結果、所定の通信条件を満たさない通信を行うECUが存在した場合は、スイッチ210A、210Bの通信設定を変更前の状態に戻す。そしてECU10は、OTAサーバ20に対してソフトウェアのロールバックを指示する。本実施形態に係るECU10は、所定の通信条件を満たさない通信を行うECUが存在すると、スイッチ210A、210Bの通信設定を変更前の状態に戻すことで、当該ECUが所定の通信条件を満たさない通信を行うことを停止できる。
【0041】
続いて、ECU10のハードウェア構成を説明する。図2は、ECU10のハードウェア構成を示すブロック図である。
【0042】
図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を介して相互に通信可能に接続されている。
【0043】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12またはストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12またはストレージ14に記録されているプログラムにしたがって、上記各構成の制御および各種の演算処理を行う。本実施形態では、ROM12またはストレージ14には、車両1の車載ネットワークの通信制御を行う通信制御プログラムが格納されている。
【0044】
ROM12は、各種プログラムおよび各種データを格納する。RAM13は、作業領域として一時的にプログラムまたはデータを記憶する。ストレージ14は、フラッシュメモリ等の記憶装置により構成され、オペレーティングシステムを含む各種プログラム、および各種データを格納する。
【0045】
第1通信インタフェース15は、OTAサーバ20と通信するためのインタフェースであり、たとえば、4G、5G、又はWi-Fi(登録商標)等の無線通信の規格が用いられる。第2通信インタフェース16は、ECU200A~200D等の他の機器と通信するためのインタフェースであり、たとえば、イーサネット(登録商標)等の有線通信の規格が用いられる。
【0046】
上記の通信制御プログラムを実行する際に、ECU10は、上記のハードウェア資源を用いて、各種の機能を実現する。ECU10が実現する機能構成について説明する。
【0047】
図3は、ECU10の機能構成の例を示すブロック図である。
【0048】
図3に示すように、ECU10は、機能構成として、取得部101、設定部102、制御部103、判定部104、出力部105および記憶部106を有する。各機能構成は、CPU11がROM12またはストレージ14に記憶された通信制御プログラムを読み出し、実行することにより実現される。なお、取得部101、設定部102、制御部103、判定部104、出力部105および記憶部106の機能は、複数のECUにおいて実現されてもよい。
【0049】
取得部101は、OTAサーバ20及び車載ネットワークのECU200A~200Dからデータを取得する。詳細には、取得部101は、OTAサーバ20からは、ECU200A~200Dで実行されるソフトウェアに更新が生じた場合に新しいソフトウェアを取得する。また取得部101は、ECU200A~200Dのソフトウェアの更新に応じて必要がある場合は、スイッチ210A、210Bの通信設定を変更するためのデータを取得する。
【0050】
設定部102は、ソフトウェアによる車載ネットワークの通信設定を行う。例えば、ECU200A~200Dのソフトウェアの更新に応じて必要がある場合、設定部102はスイッチ210A、210Bの通信設定を変更する。すなわち、設定部102は、ソフトウェアによる設定により、車載ネットワークの構成を変更する。設定部102が行う通信設定の変更は、例えば、ECU200の通信相手と通信できるような経路の設定、ポートの開放又は閉鎖の設定、通過させるパケットの優先度の設定、パケットのキューのサイズの設定、帯域の設定、パケットのフィルタリングの設定等がある。例えば、車載ネットワークにECU200Dが新たに追加されたような場合、設定部102は、ECU200Dと通信を行う他のECU200A~200Cに対して、ECU200Dとの間で通信が出来るための設定をスイッチ210A、210Bに対して施す。
【0051】
スイッチ210A、210Bは、例えばテーブルの形式で通信設定を保持している。スイッチ210A、210Bは、テーブルを参照して、車載ネットワークを流れるフレーム又はパケットを処理する。
【0052】
制御部103は、ECU10の動作の制御及び車載ネットワークの制御を行う。詳細には、制御部103は、ECU200A~200Dで実行されるソフトウェアに更新が生じた場合に、取得部101が取得した新しいソフトウェアを出力部105から出力させる制御を行う。また制御部103は、ECU200A~200Dのソフトウェアの更新に応じて必要がある場合は、スイッチ210A、210Bに対して、設定部102での通信設定の変更処理のために必要なデータを出力部105から出力させる制御を行う。
【0053】
判定部104は、車載ネットワークにおける通信状況を監視し、所定の通信条件を満たす通信が行われているかどうか判定する。そして、判定部104は、所定の通信条件を満たす通信が行われていないと判定した場合、所定の通信条件を満たす通信が行われていないことを出力部105に通知する。
【0054】
詳細には、判定部104は、車載ネットワークに接続されている各ECUにより所定の周期で通信が行われているかを判定する。所定の周期を10msとした場合、10ms周期で送信されるべきメッセージが、5ms又は15msになっている、10ms周期以外で余分に通信がある、所定の周期に加えて余分な通信が発生している、所定の周期に抜けがある、等の通信が行われていれば、判定部104は、所定の周期で通信が行われていないことを出力部105に通知する。
【0055】
また判定部104は、車載ネットワークに接続されている各ECUにより所定のプロトコルで通信が行われているかを判定する。そして、UDPのみで通信するECU200からTCP通信又はICMP通信が行われていたり、SOME/IPを使うECU200がSOME/IPを使っていなかったりしていた場合は、判定部104は、所定のプロトコルで通信が行われていないことを出力部105に通知する。
【0056】
また判定部104は、車載ネットワークに接続されている各ECUにより所定の通信量の範囲で通信が行われているかを判定する。そして、所定の通信量の範囲を超える通信をECU200が行っていた場合は、判定部104は、所定の通信量の範囲での通信が行われていないことを出力部105に通知する。
【0057】
また判定部104は、車載ネットワークに接続されている各ECUにより所定のサービスとの通信が行われているかを判定する。詳細な例を挙げると、車両内の全てのECU200においてTELNETサービス(port:23)を禁止しているのに、FTPでの通信を試みている、特定のECU200がSOME/IPのservice idが0x0001で通信すべきところ、0x0002で通信している、特定のECU200がSOME/IPのmethod idが0x0001で通信すべきところ、0x0002で通信している、http通信において、特定のECUがSOME/IPのmethod idが0x0001で通信すべきところ、0x0002で通信している、等の通信が行われた場合、判定部104は、所定のサービスとの通信が行われていないことを出力部105に通知する。
【0058】
また判定部104は、車載ネットワークに接続されている各ECUにより所定の通信プロファイルで通信が行われているかを判定する。例えば、1つのバスの中で一部のECUのみが起きることが可能なネットワークであるPartial Networkについてのフラグは常に0(Partial Networkを採用するバスではないことを示す)であるべきところ、1(Partial Networkを採用するバスであることを示す)が立っている場合、判定部104は、所定の通信プロファイルで通信が行われていないことを出力部105に通知する。
【0059】
また判定部104は、車載ネットワークに接続されている各ECUにより所定のメッセージで通信が行われているかを判定する。例えば、あるECU200のポートAで許可されるMSG IDは0x0000~0x8FFFまでであるが、そのECU200がMSG IDに0xFFFFを使用していた場合、判定部104は、所定のメッセージで通信が行われていないことを出力部105に通知する。
【0060】
また判定部104は、車載ネットワークに接続されている各ECUにより所定のデータ長で通信が行われているかを判定する。例えば、データ長(Length)は常に0x05dc(1500バイト)であるはずが、あるECU200はデータ長が0xffffで通信している場合、また例えば、httpのクエリ長は最大100バイトだが、ECU200はその長さを超えて通信している場合、判定部104は、所定のデータ長で通信が行われていないことを出力部105に通知する。
【0061】
また判定部104は、車載ネットワークの通信異常が発生していないかを判定する。例えば、スイッチ210AからのICMP errorを受信した場合、判定部104は車載ネットワークの通信異常が発生していると判定する。より詳細には、例えばECU200Aが、スイッチ210A、210Bを跨いで存在しない相手に送信した場合、2段目のスイッチ210Bから不在応答を受信すると、判定部104は車載ネットワークの通信異常が発生していると判定する。
【0062】
また判定部104は、車載ネットワークに接続されている各ECU又はスイッチにより送信されるデータの送信元が正しいかを判定する。例えば、スイッチ210Aのポート1のIPアドレスは192.168.0.2~192.168.0.10のいずれかの筈であるが、その範囲外のIPアドレスであった場合、また例えば、スイッチ210Aのポート1のMACアドレスはAA:AA:AA:AA:AA:AAの筈であるが、それ以外のMACアドレスであった場合、判定部104は、データの送信元が正しくないことを出力部105に通知する。
【0063】
また判定部104は、車載ネットワークに接続されている各ECU又はスイッチにより送信されるデータの送信先が正しいかを判定する。例えば、データの送信先のアドレスは送信先のIPアドレスが192.168.0.XXX(XXXは0~255の間の任意の数字)の筈であるが、その範囲外のIPアドレスであった場合、判定部104は、データの送信先が正しくないことを出力部105に通知する。
【0064】
また判定部104は、車載ネットワークに接続されている各ECUが所定のネットワークセグメントで通信が行われているかを判定する。例えば、VLAN TagのVIDにおいて、0x0FF以下の値の筈が、それ以外の値が指定されているなど、定義されていない値が使用されていた場合、判定部104は、所定のネットワークセグメントで通信が行われていないことを出力部105に通知する。
【0065】
また判定部104は、車載ネットワークに接続されている各ECUから送信された通信データの完全性を検証し、通信データが完全であるかどうかを判定する。例えば判定部104は、プラグアンドプレイ、又はOTAで追加されたECUから送信される通信データのMAC(Message Authentication Code)検証を実施し、異常があれば、通信データが完全でないことを出力部105に通知する。
【0066】
もちろん、判定部104が判定する内容は上述した例に限定されない。判定部104が判定する内容は、OTAサーバ20からの更新データの配布により追加、又は変更され得る。
【0067】
出力部105は、OTAサーバ20及び車載ネットワークの各装置へデータを出力する。出力部105からのデータの出力は、制御部103からの制御によって行われる。出力部105は、本発明の通知部の一例として機能する。ECU200の通信が所定の通信条件を満たさないと判定部104に判定された場合、出力部105は、OTAサーバ20にエラーの発生を通知する。
【0068】
記憶部106は、ECU10の動作の際に参照される情報、車載ネットワークの制御に用いられる情報等の種々の情報を記憶する。詳細には、記憶部106は、スイッチ210A、210Bの通信設定を変更した後で、ECU200の通信が所定の通信条件を満たさないと判定部104に判定された場合、スイッチ210A、210Bの通信設定を元の状態に戻すために、変更前の通信設定を記憶している。
【0069】
制御部103は、スイッチ210A、210Bに対して車載ネットワークの設定を変更してから、ECU200の通信が所定の通信条件を満たさないと判定部104が所定時間判定しなかった場合に、車載ネットワークの設定の変更が有効であると判断してもよい。そして、制御部103は、OTAサーバ20に対して、車載ネットワークの変更が有効であった旨の通知を行ってもよい。OTAサーバ20は、車載ネットワークの変更が有効であった旨の通知を車両1から受け取ることで、ソフトウェアの更新が正常に完了したことを把握することができる。
【0070】
ECU10は、図3に示した構成を有することで、ECU200の通信が所定の通信条件を満たさないと判定部104が判定した場合に、OTAサーバ20に対してエラーを通知することが出来る。またECU10は、図3に示した構成を有することで、ECU200の通信が所定の通信条件を満たさないと判定部104が判定した場合に、ネットワークの設定の変更対象のスイッチ210A、210Bに対して変更前の通信設定に戻すことができる。ECU10は、スイッチ210A、210Bに対して変更前の通信設定に戻すことで、所定の通信条件を満たさない通信が起きないようにすることができる。
【0071】
続いて、ECU200A~200Dのハードウェア構成を説明する。以下では、ECU200A~200Dを総称してECU200とする。図4は、ECU200のハードウェア構成を示すブロック図である。
【0072】
図4に示すように、ECU200は、CPU201、ROM202、RAM203、ストレージ204、及び通信インタフェース(I/F)205を有する。各構成は、バス209を介して相互に通信可能に接続されている。
【0073】
CPU201は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU201は、ROM202またはストレージ204からプログラムを読み出し、RAM203を作業領域としてプログラムを実行する。CPU201は、ROM202またはストレージ204に記録されているプログラムにしたがって、上記各構成の制御および各種の演算処理を行う。
【0074】
ROM202は、各種プログラムおよび各種データを格納する。RAM203は、作業領域として一時的にプログラムまたはデータを記憶する。ストレージ204は、フラッシュメモリ等の記憶装置により構成され、オペレーティングシステムを含む各種プログラム、および各種データを格納する。
【0075】
通信インタフェース205は、ECU10及び他のECU200等の他の機器と通信するためのインタフェースであり、たとえば、イーサネット(登録商標)等の有線通信の規格が用いられる。
【0076】
上記の通信制御プログラムを実行する際に、ECU200は、上記のハードウェア資源を用いて、各種の機能を実現する。ECU200が実現する機能構成について説明する。
【0077】
図5は、ECU200の機能構成の例を示すブロック図である。
【0078】
図5に示すように、ECU200は、機能構成として、取得部211、制御部212、出力部213および記憶部214を有する。各機能構成は、CPU201がROM202またはストレージ204に記憶されたプログラムを読み出し、実行することにより実現される。
【0079】
取得部211は、車載ネットワークのECU10及び他のECU200からデータを取得する。詳細には、取得部211は、ECU10からは、ECU200で実行されるソフトウェアに更新が生じた場合に新しいソフトウェアを取得する。
【0080】
制御部212は、ECU200の動作の制御を行う。詳細には、制御部212は、ECU200で実行されるソフトウェアに更新が生じた場合に、取得部211が取得した新しいソフトウェアで自装置のソフトウェアを更新する処理を行う。
【0081】
出力部213は、車載ネットワークのECU10及び他のECU200へデータを出力する。出力部213からのデータの出力は、制御部212からの制御によって行われる。
【0082】
記憶部214は、ECU10の動作の際に参照される情報、車載ネットワークの制御に用いられる情報等の種々の情報を記憶する。詳細には、記憶部214は、ECU200で実行されるソフトウェア及び当該ソフトウェアが参照するデータを記憶する。
【0083】
次に、通信システムの作用について説明する。
【0084】
図6は、通信システムの各装置の動作を説明するシーケンス図である。ECU10においては、CPU11がROM12又はストレージ14から通信制御プログラムを読み出して、RAM13に展開して実行することにより、通信制御処理が行なわれる。
【0085】
図6に示したシーケンス図は、車載ネットワークのECU200で実行されるソフトウェアが更新されるとともに、ソフトウェアの更新に応じてスイッチ210A、210Bの通信設定が変更される場合の各装置の動作を示したものである。図6は、ソフトウェアの更新前は、スイッチ210A、210Bの通信設定によってECU200AとECU200Cとの間での通信が開始される場合を想定したシーケンス図である。
【0086】
車載ネットワークの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から送られてきたソフトウェアのデータを用いてソフトウェアを更新する。
【0087】
また、ECU10は、ソフトウェアの更新に応じてスイッチ210A、210Bの通信設定を更新するため、ステップS106において新しい通信設定の情報を出力する。スイッチ210A、210Bは、ステップS107において、ECU10から送られてきた通信設定の情報を用いて通信設定を反映する。例えば、ECU10は、ECU200A、200Cのソフトウェアの更新によって、ECU200AとECU200Cとの間で通信を可能とするようにスイッチ210A、210Bの通信設定を更新する。
【0088】
ソフトウェアの更新及び通信設定の更新が完了すると、ECU10は、ステップS108において、車載ネットワークの通信の内容を監視し、ECU200からの通信が所定の通信条件に合致しているかを判定する。
【0089】
ECU200からの通信が所定の通信条件に合致していないと判断した場合、ECU10は、ステップS109において、ECU200A、200Cに対してソフトウェアを更新し、スイッチ210A、210Bの通信設定を変更した結果、通信エラーが発生したことをOTAサーバ20に送信する。
【0090】
通信エラーが発生したことを受信したOTAサーバ20は、ステップS110において、車両1に対してロールバックの指示を送信する。ロールバックは、更新前のソフトウェアに戻すことをいう。OTAサーバ20からロールバックの指示が送信された場合は、ECU200A、200Cは、保持していた更新前のソフトウェアのデータを用いてソフトウェアを更新前の状態に戻す。
【0091】
ECU10は、OTAサーバ20からロールバックの指示を受信すると、ロールバック対象のECU200にロールバックの指示を出力する。ここでは、ECU200A、200Cがソフトウェアのロールバック対象である。ECU10は、ステップS111及びS113において、ソフトウェアのロールバック対象のECU200A、200Cにロールバックの指示を出力する。ECU200Aは、ステップS112において、ECU10からの指示に基づいてソフトウェアをロールバックする。同様に、ECU200Cは、ステップS114において、ECU10からの指示に基づいてソフトウェアをロールバックする。また、ECU10は、ソフトウェアのロールバックと共に、ステップS115において、スイッチ210A、210Bに対して通信設定を変更前の状態に戻すよう指示する。スイッチ210A、210Bは、ステップS116において、通信設定を変更前の状態に戻す。
【0092】
OTAサーバ20は、ECU10から通信エラーの発生を受信すると、通信エラーの内容に基づき、通信エラーが発生しないように修正されたソフトウェアを改めて車両1に送信する。ここで、修正されたソフトウェアの配布対象は、ECU200A、200Cに限らず、通信エラーとは関係が無いECU200Dが含まれていてもよい。OTAサーバ20からのソフトウェアの送信から、ECU200でソフトウェアが更新されるまでの流れは、上述のステップS101からステップS105までと同様であるため、詳細な説明は割愛する。また、ECU10は、ソフトウェアの更新に応じて、スイッチ210A、210Bの通信設定を更新するための処理を実行する。
【0093】
以上説明したように、本発明の実施形態によれば、ネットワークの設定の変更後にECUが通信エラーを起こした場合に、ネットワークの設定の変更対象のスイッチの通信設定を変更前の状態に戻すことができる。ECU10は、ネットワークの設定の変更対象のスイッチの通信設定を変更前の状態に戻すことで、ECUが通信エラーを起こさないようにすることができる。
【0094】
上述の実施形態では、OTAサーバ20がソフトウェアを配布する場合を示したが、OTAサーバ20がソフトウェアを配布しない場合、ECU10は、ECU200による通信異常の検出を取得すると、スイッチ210A、210Bに対して通信設定を変更前の状態に戻す処理を実行する。
【0095】
本発明は、車載ネットワークに新たにECUが接続され、当該新たに接続されたECUが他のECUと通信を可能にするための通信設定の変更にも適用が可能である。また、上述の実施形態では、車両内に構築されているネットワークである車載ネットワークにおける通信設定の変更に関する例を示したが、本発明は係る例に限定されるものでは無い。本発明は、ソフトウェアによる設定により構成を変更するネットワーク全般について適用することが可能である。
【0096】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した通信制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、通信制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0097】
また、上記各実施形態では、通信制御処理のプログラムがROMまたはストレージに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0098】
1 車両
2 アンテナ
10 ECU
20 OTAサーバ(外部装置)
30 ネットワーク
200A、200B、200C、200D ECU(通信装置)
210A、210B スイッチ
図1
図2
図3
図4
図5
図6