図1は、車載用ネットワーク10の構成を模式的に示す図である。車載用ネットワーク10は、直列に接続される複数のスイッチ21〜24と、スイッチ21〜24のいずれかに接続される複数のノード31〜39と、を含む。
スイッチ21〜24は、車載用ネットワーク10においてデータの中継をおこなうスイッチングハブである。スイッチ21〜24は、通信用の4つのポート1a〜1d、2a〜2d、3a〜3d、4a〜4dをそれぞれ有する。なお、各スイッチ21〜24が有するポートの数は例示にすぎず、それぞれが任意の数の通信用ポートを有してもよい。
図示されるように、各スイッチ21〜24は直列的に接続される。第1スイッチ21の第4ポート1dと第2スイッチ22の第1ポート2aが接続され、第2スイッチ22の第4ポート2dと第3スイッチ23の第1ポート3aが接続され、第3スイッチ23の第4ポート3dと第4スイッチ24の第1ポート4aが接続される。
第1スイッチ21には、第1ノード31、第2ノード32、第3ノード33が接続される。第2スイッチ22には、第4ノード34および第5ノード35が接続され、第3スイッチ23には第6ノード36および第7ノード37が接続され、第4スイッチ24には第8ノード38および第9ノード39が接続される。
ノード31〜39は、車両に搭載される機器の動作を制御するための電子制御ユニット(ECU;Electronic Control Unit)や、センサ、アクチュエータ等により実現され、通信用のポート41〜49をそれぞれ有する。各ノード31〜39は、車載用ネットワーク10の通信プロトコルとしてイーサネット(Ethernet;登録商標)の規格にしたがって通信する。また、各ノード31〜39は、通信データを受信した場合、受信したことを示す受信通知を送信元のノードに送信するように構成される。
車載用ネットワーク10に接続されるノード31〜39のうち、少なくとも一つのノードは、車載用ネットワーク10の通信異常を検知し、異常発生箇所を特定する異常検知機能を有する。ここでいう「通信異常」とは、スイッチやノードが故障したり、スイッチとノードの間やスイッチ間の接続が断線したりすることにより、正常な通信ができなくなる状況が発生することをいう。本実施例では、第1スイッチ21に接続される第2ノード32が異常検知機能を有する場合について説明する。以下、異常検知機能を有するノードを電子制御装置30ともいう。
図2は、電子制御装置30の機能構成を模試的に示す図である。電子制御装置30は、制御部50と、通信部51と、試験部52と、保持部53と、検出部54と、特定部55と、を備える。
電子制御装置30は、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現され、それらの連携によって実現される。したがって、電子制御装置30が実現する各機能はハードウェア、ソフトウェアの組み合わせによっていろいろなかたちで実現できることは、当業者に理解されるところである。
制御部50は、電子制御装置30の制御対象となる機器の動作を制御する。通信部51は、他のノードへ送信するための通信データを生成して送出し、他のノードから送出された通信データを受信する。これにより制御部50による制御に必要な情報の通信を行う。また、通信部51は、他のノードからの通信データを受信した場合には、受信したことを示す受信通知を生成し、送信元のノードに向けて送出する。
試験部52は、通信異常の有無を検知するために応答確認データを生成して送出し、送出した応答確認データに対する応答を確認する。試験部52は、応答確認データを送信してから所定時間内に送信先からの受信通知を受信できるか否かによって、送信先の応答を確認する。ここでいう「応答確認データ」は、送信先に受信通知を送信するように指示する通信データであってもよいし、実質的にデータ内容を含まない通信データであってもよい。
保持部53は、通信異常の発生を検知するための指標となる「基準応答時間」を保持する。ここで「基準応答時間」とは、ネットワークが正常な状態において、応答確認データを送信してからその応答確認データに対する受信通知を受信するまでに必要となる時間をいう。基準応答時間は、例えば、試験部52が応答確認データを送信してからそれに対する受信通知を受信するまでの時間を計測することにより定めることができる。
図3は、基準応答時間テーブルを模式的に示す図である。本図では、図1の第2ノード32とその他のノードとの通信における基準応答時間を示しており、ノード毎に基準応答時間がそれぞれ設定される。第2ノード32と同じ第1スイッチ21に接続される第1ノード31および第3ノード33には、基準応答時間として1ミリ秒が設定される。一方、第1スイッチ21の隣の第2スイッチ22に接続される第4ノード34および第5ノード35には、基準応答時間として10ミリ秒および15ミリ秒がそれぞれ設定される。また、第3スイッチ23に接続される第6ノード36および第7ノード37には、50ミリ秒および60ミリ秒がそれぞれ設定され、第4スイッチ24に接続される第8ノード38および第9ノード39には、100ミリ秒および120ミリ秒がそれぞれ設定される。ノードによって基準応答時間が異なるのは、第2ノード32との間に存在するネットワークの構成機器が異なるためである。一般に、車載用ネットワーク10において電子制御装置30からの通信距離が大きくなるにつれて基準応答時間が大きくなり、電子制御装置30との間に接続されるスイッチ数が増えるにつれて基準応答時間が大きくなる。
保持部53に保持される基準応答時間テーブルは、車載用ネットワーク10に接続される各ノード31〜39の電源がオンになり、通信が可能な状態となった後に応答確認をして基準応答時間を計測することによりデータが記録される。保持部53は、車両の出荷前に計測された基準応答時間を保持してもよいし、車両のイグニッションがオンとなった直後に基準応答時間を計測し、その値により過去に記録されたデータを更新してもよい。また保持部53は、出荷前に計測された値と、イグニッションオン時に計測された値の双方を保持してもよい。
検出部54は、通信部51の通信状況を監視して通信異常の発生を検知する。検出部54は、通信部51が通信データを送信してからその通信データに対する受信通知を受信するまでにかかる通信応答時間を算出する。検出部54は、算出した通信応答時間と、保持部53に保持される基準応答時間とを用いて通信異常を検知する。例えば、基準応答時間よりも算出した通信応答時間が長い場合や、基準応答時間が経過するまでに受信通知を受信できないために通信応答時間が算出できない場合に、検出部54は通信異常の発生を検知する。一方、算出した通信応答時間が基準応答時間よりも短い場合、つまり、基準応答時間が経過するまでに受信通知を受信した場合には、通信異常の発生を検知しない。
特定部55は、検出部54が通信異常を検知した場合に、試験部52による応答確認の結果に基づいてネットワークの異常発生箇所を特定する。特定部55は、通信異常を検知する契機となった「通信異常ノード」に隣接する「確認対象ノード」を選定する。そして、選定した「確認対象ノード」に対して試験部52による応答確認をさせ、隣接するノードに通信異常が発生していないかを確認する。このとき、隣接する二つのノードに対して応答確認をすることで、発生した通信異常の影響範囲を特定する。
特定部55は、保持部53に保持されるテーブルを参照して、基準応答時間の近いノードを隣接する「確認対象ノード」として選択する。例えば、通信異常ノードが第6ノード36である場合、第6ノード36の基準応答時間である「50ミリ秒」に近い時間値を有する第5ノード35(15ミリ秒)および第7ノード37(60ミリ秒)を確認対象ノードとして選択する。
特定部55は、選択した二つの確認対象ノードに対して試験部52による応答確認をさせる。このとき、二つの確認対象ノードからの応答が確認できた場合、通信異常を検知した通信異常ノードを異常発生箇所として特定する。例えば、第5ノード35および第7ノード37の双方からの応答が確認ができた場合、通信異常ノードである第6ノード36を異常発生箇所として特定する。なお、第6ノード36が異常発生箇所として特定されるときは、その原因として第6ノード36が故障している場合や、第3スイッチ23と第6ノード36の間の配線が断線している場合が考えられる。
また、二つの確認対象ノードのうち一方のノードのみ応答が確認できた場合、通信異常ノードが接続されたスイッチを異常発生箇所として特定する。例えば、第5ノード35からの応答が確認できたものの、第7ノード37からの応答が確認できない場合、通信異常ノードである第6ノード36および第7ノード37が接続される第3スイッチ23を異常発生箇所として特定する。このとき、その原因として第3スイッチ23が故障している場合や、第2スイッチ22と第3スイッチ23の間の配線が断線している場合が考えられる。
なお、二つの確認対象ノードの双方から応答が確認できない場合、通信異常ノードよりも基準応答時間のさらに小さいノードに対して応答確認をする。第5ノード35からの応答が確認できない場合、第5ノード35を通信異常ノードとし、第5ノード35(15ミリ秒)も基準応答時間の小さい第4ノード34(10ミリ秒)に対して応答確認をする。第4ノード34からの応答が確認できない場合、第4ノード34を通信異常ノードとしてさらに基準時間の小さい第3ノード33(1ミリ秒)に対して応答確認をする。第3ノード33に対して応答確認ができれば、第3ノード33が接続される第1スイッチ21の次に接続される第2スイッチ22を異常発生箇所として特定する。
特定部55は、このようにして特定した異常発生箇所を制御部50に通知する。制御部50は、特定された異常発生箇所に応じた制御を実行する。
つづいて、電子制御装置30の動作について説明する。
図4は、電子制御装置30の動作の流れを示すフローチャートである。各ノードに応答確認をして基準応答時間を計測し、その値を基準応答時間テーブルに記録する(S10)。各ノードとデータ通信を開始して受信通知を受信し、通信応答時間を算出する(S12)。基準応答時間と比較して通信応答時間が基準範囲内である場合(S14のY)、S12を実行する。通信応答時間が基準範囲内でない場合(S14のN)、通信異常を検知し(S16)、通信異常ノードと基準応答時間の近い二つのノードを選択して応答確認をする(S18)。
双方のノードで応答が確認できた場合(S20のY)、異常検知の契機となる通信異常ノードを異常発生箇所に特定し(S22)、その特定箇所を通知する(S24)。双方のノードで応答が確認できず(S20のN)、一方のノードのみで応答が確認できた場合(S26のY)、通信異常ノードが接続されたスイッチを異常発生箇所に特定し(S28)、特定箇所を通知する(S24)。双方のノードのいずれにおいても応答が確認できない場合(S26のN)、通信異常ノードよりも基準応答時間の小さいノードに応答確認し(S30)、応答が確認できなければ(S32のN)、さらに基準応答時間の小さいノードに応答確認をする(S30)。応答が確認できれば(S32のY)、応答が確認できたノードが接続されるスイッチより一つの先のスイッチを異常発生箇所に特定し(S34)、特定箇所を通知する(S24)。
本実施の形態によれば、各ノードからの通信データの受信通知を用いて通信異常を検知できるため、異常検出のための応答確認データを別途送信する場合と比べてネットワーク負荷を低減できる。また、通信異常を検出したノードの基準応答時間に近いノード、つまり、異常発生箇所の特定に重要と考えられるノードを確認対象とすることで、各ノードを順番に確認していく場合と比べてより迅速に異常発生箇所を特定できる。
上述の電子制御装置30は、例えば、車載カメラやセンサが接続されるネットワークにおける通信異常の検知および異常発生箇所の特定に用いることができる。例えば、電子制御装置30の制御部50は、車載カメラおよびセンサからの情報を取得して、走行中の自車と前方の車両との距離を計測し、自車が前方車両に接触する可能性を判定する。制御部50は、前方車両との接触の可能性が高まると、ブレーキを制御するECUに指令を出して自動的にブレーキをかけて自車を減速させる。
このような電子制御装置30が設けられる場合に、車載カメラやセンサとの通信に異常が発生してしまうと、前方車両との距離を適切に計測し、必要に応じて自動ブレーキをかける制御ができなくなるおそれが生じる。本実施例に係る電子制御装置30によれば、車載カメラやセンサとの通信に異常が発生した場合、異常発生箇所を特定して通知することができるため、自動ブレーキが働かないおそれがあることを運転者に通知できる。また、迅速に通信異常を特定して運転者へ通知することができるため、運転者は自動ブレーキが作動しない状況であることを適時に知ることができる。これにより、運転者は適切なブレーキ動作をすることができるようになり、車載用ネットワーク10に異常が発生した場合であっても適切に自車を制御することができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。