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

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

▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧 ▶ トヨタ自動車株式会社の特許一覧

特開2024-172958車載制御装置、制御方法、及び制御プログラム
<>
  • 特開-車載制御装置、制御方法、及び制御プログラム 図1
  • 特開-車載制御装置、制御方法、及び制御プログラム 図2
  • 特開-車載制御装置、制御方法、及び制御プログラム 図3
  • 特開-車載制御装置、制御方法、及び制御プログラム 図4
  • 特開-車載制御装置、制御方法、及び制御プログラム 図5
  • 特開-車載制御装置、制御方法、及び制御プログラム 図6
  • 特開-車載制御装置、制御方法、及び制御プログラム 図7
  • 特開-車載制御装置、制御方法、及び制御プログラム 図8
  • 特開-車載制御装置、制御方法、及び制御プログラム 図9
  • 特開-車載制御装置、制御方法、及び制御プログラム 図10
  • 特開-車載制御装置、制御方法、及び制御プログラム 図11
  • 特開-車載制御装置、制御方法、及び制御プログラム 図12
  • 特開-車載制御装置、制御方法、及び制御プログラム 図13
  • 特開-車載制御装置、制御方法、及び制御プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024172958
(43)【公開日】2024-12-12
(54)【発明の名称】車載制御装置、制御方法、及び制御プログラム
(51)【国際特許分類】
   B60R 16/023 20060101AFI20241205BHJP
【FI】
B60R16/023 P
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023091042
(22)【出願日】2023-06-01
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】大津 智弘
(72)【発明者】
【氏名】浦山 博史
(72)【発明者】
【氏名】川内 偉博
(72)【発明者】
【氏名】石塚 秀
(72)【発明者】
【氏名】黒谷 佳伸
(72)【発明者】
【氏名】杉山 和也
(72)【発明者】
【氏名】高石 大介
(72)【発明者】
【氏名】富田 晋伍
(72)【発明者】
【氏名】安藤 博哉
(57)【要約】
【課題】車載装置の異常の誤検知を回避する。
【解決手段】
車載制御装置は、稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置であって、前記車載装置の異常を検知する異常検知部と、前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定する判定部と、前記車載装置がスリープ状態である場合、前記異常検知部による異常の検知を無効化する制御部と、を備える。
【選択図】図8
【特許請求の範囲】
【請求項1】
稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置であって、
前記車載装置の異常を検知する異常検知部と、
前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定する判定部と、
前記車載装置がスリープ状態である場合、前記異常検知部による異常の検知を無効化する制御部と、
を備える、
車載制御装置。
【請求項2】
前記判定部は、前記車載制御装置が前記クラスタに属する場合、前記車載制御装置が保持する前記クラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定する、
請求項1に記載の車載制御装置。
【請求項3】
前記判定部は、前記車載制御装置が前記クラスタに属しない場合、前記クラスタを制御するために前記ネットワークを伝送される制御メッセージにおいて指定された前記クラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定する、
請求項1に記載の車載制御装置。
【請求項4】
前記車載装置が第1クラスタ及び第2クラスタに属する場合、前記判定部は、前記第1クラスタの状態及び前記第2クラスタの状態に基づいて、前記車載装置がスリープ状態か否かを判定する、
請求項1に記載の車載制御装置。
【請求項5】
前記判定部は、クラスタと車載装置との対応関係を示すテーブルによって、前記車載装置が属するクラスタを特定し、特定された前記クラスタの状態に基づいて、前記車載装置がスリープ状態か否かを判定する、
請求項1に記載の車載制御装置。
【請求項6】
前記クラスタの状態は、動作状態と停止状態とを含み、
前記判定部は、前記クラスタの状態が停止状態である場合に、前記車載装置がスリープ状態であると判定する、
請求項1に記載の車載制御装置。
【請求項7】
前記異常検知部は、前記ネットワークを通じた前記車載装置の通信状態に基づいて、前記車載装置の異常を検知する、
請求項1に記載の車載制御装置。
【請求項8】
前記車載制御装置が前記クラスタに属し、且つ、前記クラスタが前記停止状態である場合に、前記車載制御装置は稼働状態を維持する、
請求項1から請求項7のいずれか1項に記載の車載制御装置。
【請求項9】
稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置によって用いられる制御方法であって、
前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定するステップと、
前記車載装置がスリープ状態である場合、前記車載装置の異常を検知する異常検知機能を無効化するステップと、
を含む、
制御方法。
【請求項10】
稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置によって実行される制御プログラムであって、
コンピュータに、
前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定するステップと、
前記車載装置がスリープ状態である場合、前記車載装置の異常を検知する異常検知機能を無効化するステップと、
を実行させるための、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車載制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【0002】
車両には、エンジン、トランスミッション等を制御する制御系ECU(Electronic Control Unit)、ヘッドライト、パワーウインドウ等を制御するボディ系ECU、ナビゲーション装置、マルチメディア機器等の情報系ECU等、多種の車載装置が搭載される。
【0003】
従来、各車載装置をネットワークにて接続する車載システムにおいて、車載装置の異常を検知することが行われている(例えば、特許文献1参照)。
【0004】
ところで、近年、車載システムにおいて、例えば機能(サービス)毎に車載装置をPNC(Partial Network Cluster)と呼ばれるクラスタに分け、サービスの実行に用いられるPNCの車載装置をウェイクアップさせ、その他のPNCの車載装置をスリープさせるパーシャルネットワーク機能が発展してきた。パーシャルネットワーク機能は、ISO(International Organization for Standardization) 11898-6において規格化されている。
【0005】
ECU間では、ネットワークマネジメントメッセージ(NMメッセージ)を用いて、PNCの要求及び開放情報が送受信される。NMメッセージには、各PNCの要求又は開放の状態を示すPN(Partial Network)情報が含まれる。要求されたPNCに対応する車載装置はウェイクアップし、開放されたPNCに対応する車載装置はスリープする。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003-276527号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
スリープ状態の車載装置は通信を行うことができない。このため、スリープ状態の車載装置を異常であると誤検知するおそれがある。
【課題を解決するための手段】
【0008】
本開示の一態様に係る車載制御装置は、稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置であって、前記車載装置の異常を検知する異常検知部と、前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定する判定部と、前記車載装置がスリープ状態である場合、前記異常検知部による異常の検知を無効化する制御部と、を備える。
【0009】
本開示は、上記のような特徴的な構成を備える車載制御装置、前記車載制御装置における特徴的な処理をステップとする制御方法、及び前記車載制御装置に特徴的な処理を実行させるための制御プログラムとして実現することができるだけでなく、前記車載制御装置を含む車載システムとして実現したり、前記車載制御装置の一部又は全部を半導体集積回路として実現したりすることができる。
【発明の効果】
【0010】
本開示によれば、スリープ状態の車載装置を異常であると誤検知することを回避することができる。
【図面の簡単な説明】
【0011】
図1図1は、第1実施形態に係る車載システムの構成の一例を示すブロック図である。
図2図2は、第1実施形態に係る中継ECUのハードウェア構成の一例を示すブロック図である。
図3図3は、第1実施形態に係るECUのハードウェア構成の一例を示すブロック図である。
図4図4は、クラスタテーブルの一例を示す図である。
図5図5は、NMメッセージにおけるPN情報の一例を示す図である。
図6図6は、車載システムにおけるNMメッセージの伝送の一例を示す図である。
図7図7は、ECUの状態遷移図である。
図8図8は、第1実施形態に係る中継ECUの機能の一例を示す機能ブロック図である。
図9図9は、異常検知機能の無効化を説明するための図である。
図10図10は、第1実施形態に係る中継ECUによる異常検知無効化処理の一例を示すフローチャートである。
図11図11は、第1実施形態に係る中継ECUによる異常検知有効化処理の一例を示すフローチャートである。
図12図12は、第1実施形態に係る車載システムにおける異常検知の無効化の手順の第1例を示すシーケンス図である。
図13図13は、第1実施形態に係る車載システムにおける異常検知の無効化の手順の第2例を示すシーケンス図である。
図14図14は、第2実施形態に係る車載システムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【0012】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0013】
(1) 本実施形態に係る車載制御装置は、稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置であって、前記車載装置の異常を検知する異常検知部と、前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定する判定部と、前記車載装置がスリープ状態である場合、前記異常検知部による異常の検知を無効化する制御部と、を備える。これにより、スリープ状態の車載装置を異常であると誤検知することを回避することができる。
【0014】
(2) 上記(1)において、前記判定部は、前記車載制御装置が前記クラスタに属する場合、前記車載制御装置が保持する前記クラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定してもよい。これにより、車載制御装置が車載装置と同じクラスタに属する場合に、車載装置が稼働状態であるかスリープ状態であるかを判定することができる。
【0015】
(3) 上記(1)において、前記判定部は、前記車載制御装置が前記クラスタに属しない場合、前記クラスタを制御するために前記ネットワークを伝送される制御メッセージにおいて指定された前記クラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定してもよい。これにより、車載制御装置が車載装置と同じクラスタに属しない場合に、車載装置が稼働状態であるかスリープ状態であるかを判定することができる。
【0016】
(4) 上記(1)から(3)のいずれか1つにおいて、前記車載装置が第1クラスタ及び第2クラスタに属する場合、前記判定部は、前記第1クラスタの状態及び前記第2クラスタの状態に基づいて、前記車載装置がスリープ状態か否かを判定してもよい。これにより、車載装置が第1クラスタ及び第2クラスタに属する場合に、車載装置が稼働状態であるかスリープ状態であるかを判定することができる。
【0017】
(5) 上記(1)から(4)のいずれか1つにおいて、前記判定部は、クラスタと車載装置との対応関係を示すテーブルによって、前記車載装置が属するクラスタを特定し、特定された前記クラスタの状態に基づいて、前記車載装置がスリープ状態か否かを判定してもよい。これにより、車載装置がどのクラスタに属するかをテーブルによって簡便に特定することができる。
【0018】
(6) 上記(1)から(5)のいずれか1つにおいて、前記クラスタの状態は、動作状態と停止状態とを含み、前記判定部は、前記クラスタの状態が停止状態である場合に、前記車載装置がスリープ状態であると判定してもよい。これにより、クラスタの状態によって、車載装置がスリープ状態であると正確に判定することができる。
【0019】
(7) 上記(1)から(6)のいずれか1つにおいて、前記異常検知部は、前記ネットワークを通じた前記車載装置の通信状態に基づいて、前記車載装置の異常を検知してもよい。これにより、車載装置がスリープ状態である場合に、異常検知部を無効化することにより、通信状態に基づく車載装置の異常の誤検知を回避することができる。
【0020】
(8) 上記(1)から(7)のいずれか1つにおいて、前記車載制御装置が前記クラスタに属し、且つ、前記クラスタが前記停止状態である場合に、前記車載制御装置は稼働状態を維持してもよい。これにより、車載制御装置がスリープ状態になることにより、車載装置の異常を検知できなくなることを回避することができる。
【0021】
(9) 本実施形態に係る制御方法は、稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置によって用いられる制御方法であって、前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定するステップと、前記車載装置がスリープ状態である場合、前記車載装置の異常を検知する異常検知機能を無効化するステップと、を含む。これにより、スリープ状態の車載装置を異常であると誤検知することを回避することができる。
【0022】
(10) 本実施形態に係る制御プログラムは、稼働状態とスリープ状態とを切替可能な車載装置とネットワークを介して接続された車載制御装置によって実行される制御プログラムであって、コンピュータに、前記車載装置が属するクラスタの状態に基づいて、前記車載装置がスリープ状態であるか否かを判定するステップと、前記車載装置がスリープ状態である場合、前記車載装置の異常を検知する異常検知機能を無効化するステップと、を実行させる。これにより、スリープ状態の車載装置を異常であると誤検知することを回避することができる。
【0023】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0024】
[第1実施形態]
[1-1.車載システム]
図1は、第1実施形態に係る車載システムの構成の一例を示すブロック図である。車載システム10は、車両に搭載される。
【0025】
第1実施形態に係る車載システム10は、中継ECU100と、ECU200A,200B,200C,200Dとを含む。車載システム10は、中継ECU100,ECU200A,200B,200C,200D,…及びそれらを繋ぐ通信線11A,11B,11C,11D,12によって構成される車載ネットワークである。以下の説明では、通信線11A,11B,11C,11Dを総称して「通信線11」ということがある。
【0026】
複数のECU200A,200B,200C,200Dは、車両の各部に配置される。ECU200A,200B,200C,200Dは、車両の各部のハードウェアを個別に制御したり、車両の各部のハードウェアの状態を監視したりする。例えば、ECU200A,200B,200C,200Dは、制御系、ボディ系、情報系のECUである。なお、以下の説明では、ECU200A,200B,200C,200Dを総称して「ECU200」ということがある。
【0027】
中継ECU100は、ECU200A,200B,200C,200Dのそれぞれと通信線11A,11B,11C,11Dと接続されている。すなわち、中継ECU100とECU200Aとが通信線11Aによって接続される。中継ECU100とECU200Bとが通信線11Bによって接続される。中継ECU100とECU200Cとが通信線11Cによって接続される。中継ECU100とECU200Dとが通信線11Dによって接続される。
【0028】
中継ECU100からは通信線12が延びている。中継ECU100は、通信線12を介して図示しない車載装置(例えば、中継ECU又はECU)と接続されている。
【0029】
通信線11A,11B,11C,11D,12のそれぞれは、イーサネットケーブル(「Ethernet」は登録商標)である。中継ECU100は、ECU200A,200B,200C,200Dのそれぞれは、イーサネットによる通信機能を有する。
【0030】
中継ECU100は、ECU200A,200B,200C,200D(及びその他のECU)の間の通信を中継する。すなわち、中継ECU100は、ECU200A,200B,200C,200Dの間でイーサネットフレーム(メッセージ)を中継する。例えば、中継ECU100は、レイヤ2スイッチ及びレイヤ3スイッチのすくなくとも1つのイーサネットスイッチとして機能する。これにより、ECU200A,200B,200C,200Dは相互に通信することができる。
【0031】
ECU200A,200B,200C,200Dのそれぞれは、通信線11A,11B,11C,11Dに接続された通信I/F210を備える。通信I/F210は、パーシャルネットワーク機能に対応するI/Fである。中継ECU100は、通信線11Aに接続された通信I/F110Aと、通信線11Bに接続された通信I/F110Bと、通信線11Cに接続された通信I/F110Cと、通信線11Dに接続された通信I/F110Dと、通信線12に接続された通信I/F110Eとを備える。通信I/F110A,110B,110C,110Dは、パーシャルネットワーク機能に対応するI/Fである。
【0032】
中継ECU100,ECU200A,200B,200C,200Dは、パーシャルネットワーク機能に対応した通信プロトコルを使用する。第1実施形態では、通信プロトコルはイーサネットである。
【0033】
中継ECU100,ECU200A,200B,200C,200Dは、パーシャルネットワーク用のNMメッセージを送受信することができる。NMメッセージは、PNCの要求又は開放を指定するメッセージである。NMメッセージは、定期的に送信されるUDP(User Datagram Protocol)パケットである。NMメッセージにおいて要求が指定されたPNCに属するECU200(ノード)は、ウェイクアップする。NMメッセージにおいて開放が指定されたPNCに属するノードは、スリープする。ここで、スリープとは、ECU200が一部の機能以外の機能を一時的に停止し、節電状態で待機することを意味する。ウェイクアップとは、スリープ状態のECU200が稼働状態へ移行することを意味する。稼働状態とは、ECU200の全機能が動作することを意味する。
【0034】
[1-2.中継ECUの構成]
以下、中継ECU100のハードウェア構成について説明する。中継ECU100は、「車載制御装置」の一例である。
【0035】
図2は、第1実施形態に係る中継ECUのハードウェア構成の一例を示すブロック図である。中継ECU100は、マイクロコントローラ115と、通信I/F110A,110B,110C,110Dとを含む。
【0036】
マイクロコントローラ115は、例えば1チップの半導体集積回路であり、プロセッサ101と、不揮発性メモリ102と、揮発性メモリ103と、周辺回路104と、入出力インタフェース(I/O)105とを含む。
【0037】
揮発性メモリ103は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の半導体メモリである。不揮発性メモリ102は、例えばフラッシュメモリ、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の半導体メモリである。
【0038】
プロセッサ101は、例えばCPU(Central Processing Unit)である。ただし、プロセッサ101は、CPUに限られない。プロセッサ101は、GPU(Graphics Processing Unit)であってもよい。プロセッサ101は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ101は、例えば、ASIC(Application Specific Integrated Circuit)を一部に含んでもよいし、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを一部に含んでもよい。
【0039】
不揮発性メモリ102には、コンピュータプログラムである異常検知プログラム106、制御プログラム107、並びに異常検知プログラム106及び制御プログラム107それぞれの実行に使用されるデータが格納される。異常検知プログラム106及び制御プログラム107は、フラッシュメモリ、ROM、CD-ROMなどの記録媒体に記憶させることができる。プロセッサ101は、異常検知プログラム106によって、ECU200に生じた異常を検知することができる。プロセッサ101は、制御プログラム107によって、異常検知プログラム106による異常の誤検知を回避することができる。
【0040】
不揮発性メモリ102には、クラスタテーブル108が格納される。クラスタテーブル108については後述する。
【0041】
周辺回路104は、マイクロコントローラ115に種々の機能を実現させるための回路である。例えば、周辺回路104は、汎用入出力ポート(GPIO)、アナログ/デジタル変換器、タイマ、シリアル通信等の回路を含む。シリアル通信回路は、例えば、UART(Universal Asynchronous Receiver/Transmitter)、I2C(Inter-Integrated Circuit)、SPI(serial peripheral interface)等の規格に準拠している。
【0042】
I/O105は、通信I/F110A,110B,110C,110Dに接続されている。I/O105は、通信I/F110A,110B,110C,110Dとの入出力に使用されるポートである。
【0043】
通信I/F110A,110B,110C,110Dは、イーサネットに準拠した通信インタフェースである。上述したように、通信I/F110A,110B,110C,110Dは、パーシャルネットワーク機能に対応したI/Fである。
【0044】
通信I/F110Aは、PHY111Aを含む。通信I/F110Bは、PHY111Bを含む。通信I/F110Cは、PHY111Cを含む。通信I/F110Dは、PHY111Dを含む。
【0045】
PHY111Aは、通信線11Aに接続されている。PHY111Bは、通信線11Bに接続されている。PHY111Cは、通信線11Cに接続されている。PHY111Dは、通信線11Dに接続されている。
【0046】
PHY111A,111B,111C,111Dは、通信線11A,11B,11C,11Dから受信したアナログ信号をデジタル信号へ変換する。PHY111A,111B,111C,111Dは、デジタル信号をアナログ信号へ変換し、変換後のアナログ信号を通信線11A,11B,11C,11Dへ送出する。
【0047】
PHY111A,111B,111C,111Dは、パーシャルネットワーク機能に対応しており、NMメッセージにおいてウェイクアップ対象として指定されたPNC及びスリープ対象として指定されたPNCを解釈することができる。
【0048】
通信I/F110A,110B,110C,110Dは、送受信するフレーム(メッセージ)の処理を実行するための図示しない処理回路を含む。
【0049】
[1-3.ECUの構成]
以下、ECU200のハードウェア構成について説明する。ECU200は、「車載装置」の一例である。
【0050】
図3は、第1実施形態に係るECUのハードウェア構成の一例を示すブロック図である。ECU200は、マイクロコントローラ220と、通信I/F210とを含む。
【0051】
マイクロコントローラ220は、上述した中継ECU100のマイクロコントローラ115と同じ構成を有する。つまり、マイクロコントローラ220は、プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、周辺回路204と、I/O205とを含む。
【0052】
不揮発性メモリ202には、コンピュータプログラムであるアプリケーションプログラム(以下、「APP」ともいう)206及びAPP206の実行に使用されるデータが格納される。APP206は、フラッシュメモリ、ROM、CD-ROMなどの記録媒体に記憶させることができる。プロセッサ201は、APP206によって、ECUとしてのサービスを提供するための機能を実行することができる。
【0053】
周辺回路204は、例えば、UART、I2C、SPI等の規格に準拠したシリアル通信回路を含む。周辺回路204の当該シリアル通信回路は、ECU200の制御対象のデバイス又はセンサに接続されており、センサから出力された信号を受信したり、制御対象へ制御信号を送信したりすることができる。
【0054】
I/O205は、通信I/F210に接続されている。I/O205は、通信I/F210との入出力に使用されるポートである。
【0055】
通信I/F210は、イーサネットに準拠した通信インタフェースである。上述したように、通信I/F210は、パーシャルネットワーク機能に対応したI/Fである。
【0056】
通信I/F210は、PHY211を含む。
【0057】
PHY211は、通信線11に接続されている。すなわち、ECU200AのPHY211は、通信線11Aに接続されている。ECU200BのPHY211は、通信線11Bに接続されている。ECU200CのPHY211は、通信線11Cに接続されている。ECU200DのPHY211は、通信線11Dに接続されている。
【0058】
PHY211は、通信線11から受信したアナログ信号をデジタル信号へ変換する。PHY211は、デジタル信号をアナログ信号へ変換し、変換後のアナログ信号を通信線11へ送出する。
【0059】
通信I/F210は、送受信するフレーム(メッセージ)の処理を実行するための図示しない処理回路を含む。
【0060】
通信I/F210は、パーシャルネットワーク機能に対応している。上述した処理回路又はプロセッサ201は、NMメッセージにおいてウェイクアップ対象として指定されたPNC及びスリープ対象として指定されたPNCを解釈することができる。
【0061】
[1-4.PNC]
PNCについて説明する。中継ECU100,ECU200A,200B,200C,200D(及びその他のECU)のそれぞれは、少なくとも1個のPNCに属している。中継ECU100の不揮発性メモリ102は、中継ECU100,ECU200A,200B,200C,200Dと、中継ECU100,ECU200A,200B,200C,200Dのそれぞれが属するPNCとを紐付けたクラスタテーブル108を格納する(図2参照)。
【0062】
PNCは、例えば、ユーザに提供されるサービス毎に定められてもよい。サービスは、1つ又は複数のECUによって実行される。
【0063】
複数のECUによって実行されるサービスの例として、ヘッドライトのオートハイビーム制御、オートクルーズ走行、ドアロック解除、エアコンの遠隔制御、盗難防止アラーム通知、電気自動車における走行用バッテリ(高圧バッテリ)の充電、走行用バッテリから補機バッテリ(低圧バッテリ)への充電等がある。
【0064】
ヘッドライトのオートハイビーム制御は、ヘッドライトを制御するヘッドライトECUと、車両走行用のECU(エンジンECU、ブレーキECU等)とによって実行される。このため、ヘッドライトECUと車両走行用のECUとは同じPNCに属する。
【0065】
オートクルーズ走行は、ADAS(Advanced Driver-Assistance Systems)ECUと、レーダの検知結果を処理し、車両外部の物体を検知するレーダECUと、車両走行用のECUとによって実行される。このため、ADAS ECUとレーダECUと車両走行用のECUとは同じPNCに属する。
【0066】
ドアロック解除は、例えば、車両のボディの可動部(ドアロック、パワーウインドウ、ドアミラー等)を制御するボディECUと、スマートキー(キーフォブ)から送信されるコードを認証する認証ECUとによって実行される。このため、ボディECUと認証ECUとは同じPNCに属する。
【0067】
エアコンの遠隔制御は、例えば、エアコンを制御するエアコンECUと、エンジンを制御するエンジンECUとによって実行される。このため、エアコンECUとエンジンECUとは同じPNCに属する。
【0068】
盗難防止アラーム通知は、例えば、警報を発するアラームECUと、車外の装置(例えば、警備会社のサーバ)と通信する車外通信ECUとによって実行される。このため、アラームECUと車外通信ECUとは同じPNCに属する。
【0069】
走行用バッテリの充電は、例えば、走行用バッテリ及び補機バッテリの充電を制御する充電ECUと、走行用バッテリを管理するバッテリ管理ECUとによって実行される。このため、充電ECUとバッテリ管理ECUとは同じPNCに属する。
【0070】
補機バッテリの充電は、充電ECUと、バッテリ管理ECUと、走行用バッテリから出力される直流電圧を変換するDC/DCコンバータを制御する電力変換ECUとによって実行される。このため、充電ECUと、バッテリ管理ECUと、電力変換ECUとは同じPNCに属する。
【0071】
1つのECUによって実行されるサービスもある。したがって、1つのECUのみを含むPNCも設定可能である。1つのECUによって実行されるサービスの例として、ワイパー駆動、ステアリングの自動調整、シートの自動調整等がある。
【0072】
ワイパー駆動は、ワイパーを制御するワイパーECUによって実行される。このため、ワイパーECUのみが、1つのPNCに属する。
【0073】
ステアリングの自動調整は、パワーステアリングを制御するパワステECUによって実行される。このため、パワステECUのみが、1つのPNCに属する。
【0074】
シートの自動調整は、パワーシートを制御するシートECUによって実行される。このため、シートECUのみが、1つのPNCに属する。
【0075】
図4は、クラスタテーブルの一例を示す図である。図4に示すクラスタテーブル108では、2個のPNC1及びPNC2に、中継ECU100,ECU200A,200B,200C,200DのうちのどのECUが属しているかを示している。なお、図4におけるPNC数は例示であり、3個以上のPNCが用意されてもよいし。1個のPNCが用意されてもよい。テーブル中において、「1」はその行のPNCに中継ECU100,ECU200A,200B,200C,200Dのうちの対応するECUが属していることを示し、「0」はその行のPNCに中継ECU100,ECU200A,200B,200C,200Dのうちの対応するECUが属していないことを示している。
【0076】
例えば、PNC1には、中継ECU100,ECU200A,200B,200Cが属している。PNC2には、中継ECU100,ECU200A,200Dが属している。
【0077】
クラスタテーブル108は、不揮発性メモリ102に予め記憶された静的な情報である。ただし、クラスタテーブル108は、例えば中継ECU100において中継されるNMメッセージに基づいて動的に作成されてもよい。
【0078】
[1-5.ECUの状態]
ECU200の状態には、稼働状態及びスリープ状態が含まれる。稼働状態は、ECU200が稼働している状態であり、制御対象を制御し、中継ECU100及び他のECU200と通信することが可能な状態である。スリープ状態は、通信I/F210の一部の機能を除いてECU200が停止した状態である。
【0079】
NMメッセージには、PN情報が含まれる。PN情報は、PNC毎に要求(Requested)又は開放(Released)の指定が含まれる。要求は、PNCのウェイクアップに対応する。すなわち、NMメッセージにおいて要求が指定されたPNCは、ウェイクアップ対象のPNCである。開放は、PNCのスリープに対応する。すなわち、NMメッセージにおいて開放が指定されたPNCは、スリープ対象のPNCである。
【0080】
図5は、NMメッセージにおけるPN情報の一例を示す図である。図5の例では、PNC1に対して「要求」が指定され、PNC2に対して「開放」が指定され、PNC3に対して「開放」が指定され、PNC4に対して「要求」が指定されている。すなわち、PNC1に属するECU200はウェイクアップ対象であり、PNC2に属するECU200はスリープ対象であり、PNC3に属するECU200はスリープ対象であり、PNC4に属するECU200はウェイクアップ対象である。
【0081】
NMメッセージの送信元のECU200は、NMメッセージをブロードキャストする。これにより、ネットワークに接続された全てのECU200にNMメッセージが送信される。ただし、NMメッセージは、送信対象のECU200へユニキャスト又はマルチキャストされてもよい。
【0082】
図6は、車載システムにおけるNMメッセージの伝送の一例を示す図である。図6において、「PNC1」の文字を囲む四角形の枠は、PNC1に対して「要求」が指定されたNMメッセージを示す。「PNC2」の文字を囲む四角形の枠は、PNC2に対して「要求」が指定されたNMメッセージを示す。
【0083】
ECU200Cは、PNC1に対して要求が指定されたNMメッセージ(以下、「第1メッセージ」ともいう)を送信する。中継ECU100は、第1メッセージを受信すると、各ポートから第1メッセージを送出する。これにより、ECU200A,200B,200Dに第1メッセージが送信される。なお、ここではNMメッセージがブロードキャストされる場合を説明している。NMメッセージがユニキャスト又はマルチキャストされる場合、PNC1に属するECU200Aに接続されたポートのみから第1メッセージが送出される。
【0084】
ECU200Dは、PNC2に対して要求が指定されたNMメッセージ(以下、「第2メッセージ」ともいう)を送信する。中継ECU100は、第2メッセージを受信すると、各ポートから第2メッセージを送出する。これにより、ECU200A,200B,200Cに第2メッセージが送信される。NMメッセージがユニキャスト又はマルチキャストされる場合、PNC2に属するECU200A及びECU200Bのそれぞれに接続された各ポートのみから第2メッセージが送出される。
【0085】
図7は、ECUの状態遷移図である。スリープ状態のECU200は、NMメッセージを受信することができる。すなわち、ECU200の通信I/F210は、スリープ状態であってもNMメッセージを受信する機能を有する。通信I/F210は、NMメッセージを受信すると、NMメッセージに含まれるPN情報を参照し、ECU200が属するPNCに対して要求(ウェイクアップ)が指定されているか否かを判定する。
【0086】
NMメッセージにPNCの要求が指定されている場合、ECU200はウェイクアップする。これにより、ECU200の状態がスリープ状態から稼働状態へ遷移する。
【0087】
稼働状態のECU200が、自装置が属するPNCの要求が指定されたNMメッセージを受信した場合、ECU200は稼働状態を維持する。
【0088】
稼働状態のECU200が、一定期間、自装置が属するPNCの要求が指定されたNMメッセージを受信しなかった場合、ECU200は稼働状態からスリープ状態へ遷移する。すなわち、稼働状態のECU200が、一定期間、自装置が属するPNCの開放が指定されたNMメッセージしか受信しなかった場合、又は、NMメッセージを受信しなかった場合には、ECU200は稼働状態からスリープ状態へ遷移する。
【0089】
図6に戻り、ECU200A及び200Bがスリープ状態であるとする。なお、NMメッセージの送信元であるECU200C,200Dは稼働状態である。NMメッセージを中継する中継ECU100も稼働状態である。
【0090】
図4に示すように、PNC1には、中継ECU100,ECU200A,200Cが属し、PNC2には、中継ECU100,ECU200A,200B,200Dが属しているとする。
【0091】
ECU200Aは、PNC1に対して「要求」が指定された第1メッセージを受信すると、ウェイクアップする。これにより、ECU200Aの状態がスリープ状態から稼働状態に遷移する。ECU200Aは、第1メッセージを受信した場合、PNC1の状態が「動作状態」であると判断し、PNC1が動作状態であることを示す情報を保持する(例えば、不揮発性メモリ202に記憶する)。ここで、ECU200Aは、PNC2が停止状態であることを示す情報も保持している。
【0092】
一方、PNC1に属しないECU200Bは、第1メッセージを受信しても、スリープ状態を維持する。
【0093】
ECU200Aは、PNC2に対して「要求」が指定された第2メッセージを受信した場合、既に稼働状態であるため稼働状態を維持する。ECU200Aは、第2メッセージを受信した場合、PNC2の状態が「動作状態」であると判断し、PNC2が動作状態であることを示す情報を保持する。すなわち、ECU200Aは、例えば不揮発性メモリ202に記憶しているPNC2が停止状態であることを示す情報を、PNC2が動作状態であることを示す情報に書き換える。
【0094】
一方、PNC2に属するECU200Bは、第2メッセージを受信すると、ウェイクアップする。これにより、ECU200Bの状態がスリープ状態から稼働状態に遷移する。ECU200Bは、第2メッセージを受信した場合、PNC2の状態が「動作状態」であると判断し、PNC2が動作状態であることを示す情報を保持する。
【0095】
例えば、ECU200Cが第1メッセージを送信しなくなった場合、ECU200Aは、内蔵するタイマによって第1メッセージを受信しなくなってからの経過時間を測定し、測定した経過時間が一定期間に達したか否かを判定する。ECU200Aは、一定期間第1メッセージを受信しない場合に、PNC1が停止状態であると判断し、PNC1が停止状態であることを示す情報を保持する。すなわち、ECU200Aは、例えば不揮発性メモリ202に記憶しているPNC1が動作状態であることを示す情報を、PNC1が停止状態であることを示す情報に書き換える。
【0096】
一方、PNC1に属しないECU200Bは、第1メッセージを一定期間受信しなくても、稼働状態を維持する。
【0097】
ECU200Dが第2メッセージを送信しなくなった場合、ECU200Aは、内蔵するタイマによって第2メッセージを受信しなくなってからの経過時間を測定し、測定した経過時間が一定期間に達したか否かを判定する。ECU200Aは、一定期間第2メッセージを受信しない場合に、PNC2が停止状態であると判断し、PNC2が停止状態であることを示す情報を保持する。すなわち、ECU200Aは、例えば不揮発性メモリ202に記憶しているPNC2が動作状態であることを示す情報を、PNC2が停止状態であることを示す情報に書き換える。
【0098】
ECU200Aが属するPNC1及びPNC2の両方が停止状態となったため、ECU200Aはスリープする。
【0099】
ECU200Bは、内蔵するタイマによって第2メッセージを受信しなくなってからの経過時間を測定し、測定した経過時間が一定期間に達したか否かを判定する。ECU200Bは、一定期間第2メッセージを受信しない場合に、PNC2が停止状態であると判断し、PNC2が停止状態であることを示す情報を保持する。
【0100】
ECU200Bが属するPNCはPNC2だけであり、PNC2が停止状態となったため、ECU200Bはスリープする。
【0101】
[1-6.中継ECUの機能]
図8は、第1実施形態に係る中継ECUの機能の一例を示す機能ブロック図である。
【0102】
中継ECU100は、異常検知部120と、判定部121と、制御部122との各機能を有する。異常検知部120は、プロセッサ101が異常検知プログラム106を実行することにより実現される。判定部121及び制御部122は、プロセッサ101が制御プログラム107を実行することにより実現される。
【0103】
異常検知部120は、ECU200の異常を検知する。例えば、異常検知部120は、ネットワークを通じたECU200の通信状態に基づいて、ECU200の異常を検知する。
【0104】
具体的な一例では、異常検知部120は、通信I/F110A,110B,110C,110Dそれぞれのリンク状態を監視する。異常検知部120は、通信I/F110A,110B,110C,110Dにおいて、リンクアップ状態の通信I/Fに対応するECU200は正常であると判断する。異常検知部120は、通信I/F110A,110B,110C,110Dにおいて、リンクダウン状態となった通信I/Fを検知することによって、この通信I/Fに対応するECU200の異常を検知する。例えば、通信I/F110Aがリンクダウン状態である場合、異常検知部120は、ECU200Aの異常を検知する。
【0105】
他の例では、異常検知部120は、特定のメッセージ(以下、「異常検知メッセージ」ともいう)を各通信I/F110A,110B,110C,110Dから送出する。ECU200は、異常検知メッセージを受信すると、応答メッセージ(Ack)を返す。異常検知部120は、Ackを受信した場合に、Ackを受信したポート(通信I/F)に対応するECU200は正常であると判断する。異常検知部120は、通信I/F110A,110B,110C,110Dにおいて、Ackを受信しない通信I/Fを検知することによって、この通信I/Fに対応するECU200の異常を検知する。例えば、通信I/F110AがAckを受信しない場合、異常検知部120は、ECU200Aの異常を検知する。
【0106】
上記の異常検知メッセージは、ICMP(Internet Control Message Protocol)のecho requestであり、応答メッセージはecho replyであってもよい。
【0107】
判定部121は、ECU200が属するPNCの状態に基づいて、ECU200がスリープ状態であるか否かを判定する。すなわち、判定部121は、PNCが動作状態であるか停止状態であるかによって、ECU200がスリープ状態であるか否かを判定する。さらに具体的には、判定部121は、特定のPNCが動作状態である場合、当該PNCに属するECU200が稼働状態であると判定する。判定部121は、特定のPNCが停止状態である場合、当該PNCに属するECU200がスリープ状態であると判定する。
【0108】
具体的な一例では、判定部121は、中継ECU100が特定のPNCに属する場合、中継ECU100が保持する当該PNCの状態情報に基づいて、ECU200がスリープ状態であるか否かを判定する。
【0109】
図4の例において、中継ECU100はPNC1に属している。したがって、中継ECU100は、上述したようにPNC1の状態(動作状態又は停止状態)を示す状態情報を保持している。判定部121は、中継ECU100が保持する状態情報に基づいて、PNC1に属するECU200A、200Cの状態を判定する。すなわち、PNC1が動作状態である場合、判定部121は、ECU200A,200Cが稼働状態であると判定する。PNC1が停止状態である場合、判定部121は、ECU200A,200Cがスリープ状態であると判定する。
【0110】
図8に戻り、他の具体的な一例では、判定部121は、中継ECU100が特定のPNCに属しない場合、NMメッセージにおいて指定されたPNCの状態に基づいて、ECU200がスリープ状態であるか否かを判定する。すなわち、判定部121は、NMメッセージにおいて特定のPNCに対して「要求(動作状態)」が指定されているか「開放(停止状態)」が指定されているかに基づいて、当該PNCに属するECU200が稼働状態であるかスリープ状態であるかを判定する。
【0111】
さらに詳しくは、判定部121は、NMメッセージにおいて特定のPNCに対して「要求」が指定されている場合、当該PNCに属するECU200が稼働状態であると判定する。判定部121は、特定のPNCに対して「要求」が指定されているNMメッセージを一定期間以上受信していない場合、当該PNCに属するECU200がスリープ状態であると判定する。
【0112】
図4の例において、中継ECU100はPNC2に属していない。判定部121は、NMメッセージにおいてPNC2に対して指定されている状態を参照し、この状態に基づいて、PNC2に属するECU200A、200B,200Dの状態を判定する。すなわち、NMメッセージにおいてPNC2に対して「要求」が指定されている場合、判定部121は、ECU200A,200B,200Dが稼働状態であると判定する。PNC2に対して「要求」が指定されているNMメッセージを一定期間以上受信していない場合、判定部121は、ECU200A,200B,200Dがスリープ状態であると判定する。
【0113】
図8に戻り、ECU200が第1PNC及び第2PNCに属する場合、例えば、判定部121は、第1PNCの状態及び第2PNCの状態に基づいて、ECU200がスリープ状態か否かを判定する。具体的には、判定部121は、第1PNC及び第2PNCの少なくとも1つが動作状態である場合、第1PNC及び第2PNCの両方に属するECU200が稼働状態であると判定する。判定部121は、第1PNC及び第2PNCの両方が停止状態である場合、第1PNC及び第2PNCの両方に属するECU200がスリープ状態であると判定する。
【0114】
図4の例では、ECU200Aは、PNC1及びPNC2の両方に属している。判定部121は、PNC1及びPNC2の少なくとも1つが稼働状態である場合、ECU200Aが稼働状態であると判定する。判定部121は、PNC1及びPNC2の両方が停止状態である場合、ECU200Aがスリープ状態であると判定する。
【0115】
図8に戻り、例えば、判定部121は、クラスタテーブル108によって、ECU200が属するPNCを特定する。判定部121は、特定されたPNCの状態に基づいて、ECU200がスリープ状態か否かを判定する。具体的には、判定部121は、図4に示すクラスタテーブル108を参照することにより、ECU200AがPNC1及びPNC2に属することを特定する。同様に、判定部121は、クラスタテーブル108を参照することにより、ECU200BがPNC2に属することを特定する。判定部121は、クラスタテーブル108を参照することにより、ECU200CがPNC1に属することを特定する。判定部121は、クラスタテーブル108を参照することにより、ECU200DがPNC2に属することを特定する。
【0116】
ここで、中継ECU100はPNC1に属している。PNC1に属するECU200Cは、PNC1が停止状態である場合、すなわち、PNC1に対して「要求」が指定されたNMメッセージを一定期間以上受信しない場合、スリープ状態である。一方、中継ECU100は、PNC1が停止状態であってもスリープせず、稼働状態を維持する。これにより、中継ECU100がスリープすることにより、ECU200の異常を検知できなくなることを回避することができる。
【0117】
制御部122は、ECU200がスリープ状態である場合、異常検知部120による異常の検知を無効化する。具体的には、制御部122は、1つのECU200(以下、着目するECUを「対象ECU」ともいう)に関する異常検知機能が有効である場合において、対象ECU200がスリープ状態であるときには、対象ECU200に関する異常検知機能を無効化する。制御部122は、対象ECU200に関する異常検知機能が無効である場合において、対象ECU200が稼働状態であるときには、対象ECU200に関する異常検知機能を有効化する。
【0118】
図9は、異常検知機能の無効化を説明するための図である。例えば、ECU200A,200B,200C,200Dのそれぞれに関する異常検知機能が全て有効である場合を考える。ここで、PNC2が停止状態となった場合、PNC2に属するECU200B及び200Dがスリープする。このため、判定部121は、ECU200B及び200Dがスリープ状態であると判定する。
【0119】
制御部122は、ECU200Bに関する異常検知機能を無効化する。同様に、制御部122は、ECU200Dに関する異常検知機能を無効化する。これにより、ECU200B及び200Dにおける異常の誤検知が回避される。
【0120】
ここで、PNC2が動作状態となった場合、PNC2に属するECU200B及び200Dがウェイクアップする。このため、判定部121は、ECU200B及び200Dが稼働状態であると判定する。
【0121】
制御部122は、ECU200Bに関する異常検知機能を有効化する。同様に、制御部122は、ECU200Dに関する異常検知機能を有効化する。これにより、ECU200B及び200Dにおける異常検知が再開される。
【0122】
[1-7.中継ECUの動作]
次に、第1実施形態に係る中継ECU100の動作について説明する。
【0123】
プロセッサ101は、制御プログラム107により、以下のような異常検知無効化処理及び異常検知有効化処理を実行することができる。
【0124】
図10は、第1実施形態に係る中継ECUによる異常検知無効化処理の一例を示すフローチャートである。
【0125】
プロセッサ101は、各ECU200を対象ECUに決定する。異常検知無効化処理は、対象ECU毎に実行される。さらに具体的には、異常検知無効化処理は、異常検知機能が有効である対象ECUに対して実行される。すなわち、異常検知機能が有効である各対象ECUの異常検知無効化処理は並列して実行される。
【0126】
プロセッサ101は、クラスタテーブル108を参照し、対象ECU200が属するPNCを特定する(ステップS101)。
【0127】
次にプロセッサ101は、特定したPNCに中継ECU100が属しているか否かを判定する(ステップS102)。
【0128】
特定したPNCに中継ECU100が属している場合(ステップS102においてYES)、プロセッサ101は、中継ECU100が保持するPNCの状態に基づいて、対象ECU200の状態を判断する(ステップS103)。すなわち、プロセッサ101は、中継ECU100が保持するPNCの状態が動作状態である場合、対象ECU200が稼働状態であると判断する。一方、プロセッサ101は、中継ECU100が保持するPNCの状態が停止状態である場合、対象ECU200がスリープ状態であると判断する。
【0129】
特定したPNCに中継ECU100が属していない場合(ステップS102においてNO)、プロセッサ101は、中継ECU100が受信したNMメッセージを参照する。プロセッサ101は、NMメッセージにおいて指定されたPNCの状態に基づいて、対象ECU200の状態を判断する(ステップS104)。すなわち、プロセッサ101は、中継ECU100が受信したNMメッセージにおいて、特定されたPNCに対して「要求」が指定されている場合、対象ECU200が稼働状態であると判断する。一方、プロセッサ101は、特定されたPNCに対して「要求」が指定されているNMメッセージが一定期間以上中継ECU100によって受信されていない場合、対象ECU200がスリープ状態であると判断する。
【0130】
プロセッサ101は、ステップS103又はS104において対象ECU200がスリープ状態であると判断されたか、稼働状態であると判断されたかを判定する(ステップS105)。
【0131】
対象ECU200が稼働状態であると判断された場合(ステップS105においてNO)、異常検知無効化処理は終了する。すなわち、この場合、対象ECU200に関する異常検知機能の有効状態が維持される。
【0132】
対象ECU200がスリープ状態であると判断された場合(ステップS105においてYES)、プロセッサ101は、対象ECU200に関する異常検知機能を無効化する(ステップS106)。以上で、異常検知無効化処理は終了する。
【0133】
図11は、第1実施形態に係る中継ECUによる異常検知有効化処理の一例を示すフローチャートである。
【0134】
異常検知有効化処理は、対象ECU毎に実行される。さらに具体的には、異常検知有効化処理は、異常検知機能が無効である対象ECUに対して実行される。すなわち、異常検知機能が無効である各対象ECUの異常検知有効化処理は並列して実行される。
【0135】
プロセッサ101は、クラスタテーブル108を参照し、対象ECU200が属するPNCを特定する(ステップS201)。
【0136】
次にプロセッサ101は、特定したPNCに中継ECU100が属しているか否かを判定する(ステップS202)。
【0137】
特定したPNCに中継ECU100が属している場合(ステップS202においてYES)、プロセッサ101は、中継ECU100が保持するPNCの状態に基づいて、対象ECU200の状態を判断する(ステップS203)。ステップS203は、ステップS103と同じ処理である。
【0138】
特定したPNCに中継ECU100が属していない場合(ステップS202においてNO)、プロセッサ101は、中継ECU100が受信したNMメッセージを参照する。プロセッサ101は、NMメッセージにおいて指定されたPNCの状態に基づいて、対象ECU200の状態を判断する(ステップS204)。ステップS204は、ステップS104と同じ処理である。
【0139】
プロセッサ101は、ステップS203又はS204において対象ECU200がスリープ状態であると判断されたか、稼働状態であると判断されたかを判定する(ステップS205)。
【0140】
対象ECU200がスリープ状態であると判断された場合(ステップS205においてNO)、異常検知有効化処理は終了する。すなわち、この場合、対象ECU200に関する異常検知機能の無効状態が維持される。
【0141】
対象ECU200が稼働状態であると判断された場合(ステップS205においてYES)、プロセッサ101は、対象ECU200に関する異常検知機能を有効化する(ステップS206)。以上で、異常検知有効化処理は終了する。
【0142】
図12は、第1実施形態に係る車載システムにおける異常検知の無効化の手順の第1例を示すシーケンス図である。
【0143】
図12には、ECU200A,200B,200C,200Dが稼働状態である場合において、ECU200DがPNC2に対して「要求」を指定したNMメッセージを送信する例を示している。この例において、PNC1に対して「要求」を指定したNMメッセージはいずれのECU200からも送信されない。
【0144】
ECU200Dは、PNC2に対して「要求」を指定したNMメッセージを送信する(ステップS11)。NMメッセージはブロードキャストメッセージであり、中継ECU100,ECU200A,200B,200Cのそれぞれに送信される。
【0145】
PNC2に属するECU200A,200Bは、受信したNMメッセージにおいてPNC2に対する「要求」が指定されているため、稼働状態を維持する。NMメッセージの送信元のECU200Dもまた、稼働状態を維持する。
【0146】
ECU200Dから送信されたNMメッセージでは、PNC1に対して「開放」が指定されている。PNC1に属するECU200Cは、PNC1に対して「要求」が指定されているNMメッセージを一定期間以上受信しない。したがって、ECU200Cは、スリープする(ステップS12)。
【0147】
中継ECU100もまたPNC1に属しているため、本来であればスリープの対象である。しかし、中継ECU100は異常検知無効化処理を実行する必要があるため、NMメッセージにおけるPN情報とは無関係に、稼働状態を維持する。
【0148】
中継ECU100は、PNC1に対して「要求」が指定されているNMメッセージを一定期間以上受信しない。このため、中継ECU100のプロセッサ101は、PNC1の状態が「停止状態」であると判断し、保持しているPNC1の状態情報を「動作状態」から「停止状態」へ遷移させる(ステップS13)。
【0149】
プロセッサ101は、クラスタテーブル108を参照し、PNC1に属するECUがECU200Cであると特定する。プロセッサ101は、特定したECU200Cの状態が「スリープ状態」であると判定する(ステップS14)。
【0150】
プロセッサ101は、スリープ状態であると判定したECU200Cに関する異常検知機能を無効化する(ステップS15)。
【0151】
稼働状態のECU200A,200B,200Dに関する異常検知機能は有効である。したがって、中継ECU100は、ECU200A,200B,200Dへ異常検知メッセージを送信する(ステップS16,S17,S18)。ECU200A,200B,200Dは、異常検知メッセージに対する応答を中継ECU100へ送信する(ステップS19,S20,S21)。
【0152】
一方、中継ECU100は、異常検知機能が無効であるECU200Cに対しては、異常検知メッセージを送信しない。これにより、ECU200Cの異常の誤検知を回避することができる。
【0153】
図13は、第1実施形態に係る車載システムにおける異常検知の無効化の手順の第2例を示すシーケンス図である。
【0154】
図13には、ECU200A,200B,200C,200Dが稼働状態である場合において、ECU200CがPNC1に対して「要求」を指定したNMメッセージを送信する例を示している。この例において、PNC2に対して「要求」を指定したNMメッセージはいずれのECU200からも送信されない。
【0155】
ECU200Cは、PNC1に対して「要求」を指定したNMメッセージを送信する(ステップS21)。NMメッセージはブロードキャストメッセージであり、中継ECU100,ECU200A,200B,200Cのそれぞれに送信される。
【0156】
PNC1に属するECU200Aは、受信したNMメッセージにおいてPNC1に対する「要求」が指定されているため、稼働状態を維持する。NMメッセージの送信元のECU200Cもまた、稼働状態を維持する。
【0157】
中継ECU100もまたPNC1に属している。しかし、中継ECU100は異常検知無効化処理を実行する必要があるため、NMメッセージにおけるPN情報とは無関係に、稼働状態を維持する。
【0158】
ECU200Cから送信されたNMメッセージでは、PNC2に対して「開放」が指定されている。PNC2に属するECU200B,200Dは、PNC2に対して「要求」が指定されているNMメッセージを一定期間以上受信しない。したがって、ECU200B,200Dは、スリープする(ステップS22,S23)。
【0159】
中継ECU100は、PNC2に対して「要求」が指定されているNMメッセージを一定期間以上受信しない。このため、中継ECU100のプロセッサ101は、PNC2の状態が「停止状態」であると判断する(ステップS24)。
【0160】
プロセッサ101は、クラスタテーブル108を参照し、PNC2に属するECUがECU200B,200Dであると特定する。プロセッサ101は、特定したECU200B,200Dの状態が「スリープ状態」であると判定する(ステップS25)。
【0161】
プロセッサ101は、スリープ状態であると判定したECU200B,200Dに関する異常検知機能を無効化する(ステップS26)。
【0162】
稼働状態のECU200A,200Cに関する異常検知機能は有効である。したがって、中継ECU100は、ECU200A,200Cへ異常検知メッセージを送信する(ステップS27,S28)。ECU200A,200Cは、異常検知メッセージに対する応答を中継ECU100へ送信する(ステップS29,S30)。
【0163】
一方、中継ECU100は、異常検知機能が無効であるECU200B,200Dに対しては、異常検知メッセージを送信しない。これにより、ECU200B,200Dの異常の誤検知を回避することができる。
【0164】
[2.第2実施形態]
上記の第1実施形態では、中継ECU100はイーサネットスイッチであった。しかし、中継ECUはイーサネットスイッチに限られない。例えば、中継ECUは、CAN(Controller Area Network)メッセージを中継する中継装置であってもよい。
【0165】
図14は、第2実施形態に係る車載システムの構成の一例を示すブロック図である。
【0166】
車載システム20は、中継ECU300と、ECU400A,400B,400C,400Dを含む。車載システム20は、中継ECU300,ECU400A,400B,400C,400D及びそれらを繋ぐ通信バス21A,21Bによって構成される車載ネットワークである。すなわち、車載システム20は、バス型のネットワークトポロジを有するCANネットワークである。
【0167】
具体的には、ECU400A,400Bは通信バス21Aに接続されている。ECU400C,400Dは通信バス21Bに接続されている。中継ECU300は、通信バス21A,21Bのそれぞれに接続されている。中継ECU300からは通信バス22が延びている。中継ECU300は、通信バス22を介して図示しない車載装置(例えば、中継ECU又はECU)と接続されている。
【0168】
中継ECU300及びECU400A,400B,400C,400Dのそれぞれは、CANに準拠した通信I/Fを備える。中継ECU300は、ECU400A,400Bと、ECU400C,400Dとの間の通信を中継する。すなわち、中継ECU300は、ECU200A,200Bと、ECU200C,200Dとの間でCANフレーム(メッセージ)を中継する。
【0169】
中継ECU300,ECU400A,400B,400C,400Dは、パーシャルネットワーク用のNMメッセージを送受信することができる。NMメッセージは、定期的に送信されるCANフレームである。
【0170】
本変形例では、中継ECU300は、異常検知メッセージであるCANメッセージを各通信バス21A,21Bに送信する。ECU400A,400B,400C,400Dは、異常検知メッセージを受信すると、応答メッセージを通信バス21A,21Bに送出する。例えば、応答メッセージには、送信元のECU400A,40B,400C,400DのCAN IDが含まれる。中継ECU300は、応答メッセージを受信することで、CAN IDによって特定される送信元のECU400A,40B,400C,400Dが正常であると判断する。ECU400A,40B,400C,400Dのうち、応答メッセージを送信しないECUが存在する場合、中継ECU300は、応答メッセージを送信しないECUの異常を検知する。
【0171】
中継ECU300は、ECU400A,400B,400C,400Dのそれぞれがスリープ状態であるか否かを判定する。中継ECU300は、スリープ状態であると判定したECUに関する異常検知機能を無効化する。異常検知機能の無効化及び有効化については、上述した第1実施形態と同様である。
【0172】
[3.変形例]
上述した第1実施形態及び第2実施形態では、ECU間の通信を中継する中継ECU100,300が異常検知機能を有し、ECUがスリープ状態である場合に当該スリープ状態のECUについての異常検知機能を無効化したが、これに限定されない。例えば1つの通信バスに接続されたECUが、同じ通信バスに接続されているECUに関する異常検知機能を有し、同じ通信バスに接続されているECUがスリープ状態である場合に当該スリープ状態のECUについての異常検知機能を無効化してもよい。
【0173】
例えば、ECU200Bが異常検知機能を有する装置(車載制御装置)である場合を考える。ECU200Bは、同じ通信バス400Aに接続されたECU200Aの異常を検知することができる。ここで、図4を参照し、ECU200BはPNC2に属しており、PNC1には属していない。ECU200Dも同様に、PNC2に属しており、PNC1に属していない。ECU200Dは、PNC2が停止状態である場合、すなわち、PNC2に対して「要求」が指定されたNMメッセージを一定期間以上受信しない場合、スリープ状態である。一方、ECU200Bは、PNC2が停止状態であってもスリープせず、稼働状態を維持する。これにより、ECU200Bがスリープすることにより、ECU200Aの異常を検知できなくなることを回避することができる。なお、車載制御装置となり得るのはECU200Bだけでなく、ECU200A,200C,200Dが異常検知機能を有する車載制御装置であってもよい。ECU200A,200B,200C,200Dが車載制御装置である場合、中継ECU300は、異常検知機能を有しない車載装置となり得る。
【0174】
第1実施形態ではイーサネットに準拠した車載ネットワークにおける異常検知及びその無効化について述べ、第2実施形態ではCANに準拠した車載ネットワークにおける異常検知及びその無効化について述べたが、これらに限定されない。パーシャルネットワークに対応している通信プロトコルであれば、イーサネット及びCAN以外の通信プロトコルを用いてもよい。例えば、FlexRayに準拠した車載ネットワークにおいて、ECUの異常検知及びその無効化を実現してもよい。
【0175】
[4.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
【符号の説明】
【0176】
10,20 車載システム
11A,11B,11C,11D,12 通信線
100,300 中継ECU(車載制御装置,車載装置)
101 プロセッサ
102 不揮発性メモリ
103 揮発性メモリ
104 周辺回路
105 入出力インタフェース(I/O)
106 異常検知プログラム
107 制御プログラム
108 クラスタテーブル
110A,110B,110C,110D 通信インタフェース(通信I/F)
111A,111B,111C,111D PHY
115 マイクロコントローラ
120 異常検知部
121 判定部
122 制御部
200,200A,200B,200C,200D ECU(車載装置)
201 プロセッサ
202 不揮発性メモリ
203 揮発性メモリ
204 周辺回路
205 入出力インタフェース(I/O)
206 アプリケーションプログラム(APP)
220 マイクロコントローラ
21A,21B,22 通信バス
400A,400B,400C,400D ECU(車載装置,車載制御装置)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14