(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-03
(45)【発行日】2022-10-12
(54)【発明の名称】中継装置、通信ネットワークシステム及び通信制御方法
(51)【国際特許分類】
H04L 12/46 20060101AFI20221004BHJP
【FI】
H04L12/46 100C
(21)【出願番号】P 2022504680
(86)(22)【出願日】2020-10-19
(86)【国際出願番号】 JP2020039304
(87)【国際公開番号】W WO2022085057
(87)【国際公開日】2022-04-28
【審査請求日】2022-01-24
(73)【特許権者】
【識別番号】000003997
【氏名又は名称】日産自動車株式会社
(74)【代理人】
【識別番号】110000486
【氏名又は名称】とこしえ特許業務法人
(72)【発明者】
【氏名】名取 清
(72)【発明者】
【氏名】松本 孝
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2017-118407(JP,A)
【文献】特開2016-111477(JP,A)
【文献】特開2020-96251(JP,A)
【文献】特開2015-89092(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
第1の通信ネットワークと、前記第1の通信ネットワークと通信プロトコルが異なる第2の通信ネットワークとの間に接続され、
少なくとも1つの第1のフレームを格納した第2のフレームを受信する中継器を備え、
前記第1のフレームは、
前記第1の通信ネットワーク下で送信され、
制御情報を含む第1のペイロード、前記制御情報を識別するための第1のデータID、及び、前記第1のペイロードのデータ長を示すデータ長コードを有し、
前記第2のフレームは、
前記第2の通信ネットワーク下で送信され、
前記第1のフレーム、前記第1のフレームを含むことを示す第2のデータID、及び前記第1のフレームよりも後方に位置する所定の格納領域に格納される固有データを有し、
前記中継器は、
前記データ長コードに基づき前記第2のフレームにおける前記第1のフレームを認識するときに、前記所定の格納領域内のデータに対してフレーム認識処理を行わずに、前記第1のフレームを認識する中継装置。
【請求項2】
請求項1記載の中継装置において、
前記所定の格納領域は、前記第1のフレーム及び前記固有データを含むデータフィールドの終端から所定のデータ長、手前までの領域である中継装置。
【請求項3】
請求項2記載の中継装置において、
前記所定のデータ長は、前記固有データのデータ長以上の長さである中継装置。
【請求項4】
請求項1~3のいずれか一項に記載の中継装置において、
前記固有データは、データの正当性を示すデータであり、任意の数値で設定可能である中継装置。
【請求項5】
第1の通信ネットワークに接続された第1の電子制御装置と、
前記第1の通信ネットワークとは異なる通信プロトコルが利用される第2の通信ネットワークに接続された第2の電子制御装置と、
前記第1の通信ネットワークと、前記第2の通信ネットワークとに接続され、少なくとも1つの第1のフレームを格納した第2のフレームを受信する中継装置とを備え、
前記第1のフレームは、
前記第1の通信ネットワーク下で送信され、
制御情報を含む第1のペイロード、前記制御情報を識別するための第1のデータID、及び、前記第1のペイロードのデータ長を示すデータ長コードを有し、
前記第2のフレームは、
前記第2の通信ネットワーク下で送信され、
前記第1のフレーム、前記第1のフレームを含むことを示す第2のデータID、及び前記第1のフレームよりも後方に位置する所定の格納領域に格納される固有データを有し、
前記中継装置は、
前記データ長コードに基づき前記第2のフレームにおける前記第1のフレームを認識するときに、前記所定の格納領域内のデータに対してフレーム認識処理を行わずに、前記第1のフレームを認識する通信ネットワークシステム。
【請求項6】
第1の通信ネットワークと、前記第1の通信ネットワークと通信プロトコルが異なる第2の通信ネットワークとの間に接続された中継装置により実行される通信制御方法であって、
制御情報を含む第1のペイロード、前記制御情報を識別するための第1のデータID、及び前記第1のペイロードのデータ長を示すデータ長コードを有する第1のフレームと、前記第1のフレームを含むことを示す第2のデータIDと、及び前記第1のフレームよりも後方に位置する所定の格納領域に格納される固有データとを有する第2のフレームを、前記第2の通信ネットワークから受信し、
前記データ長コードに基づき前記第2のフレームにおける前記第1のフレームを認識するときに、前記所定の格納領域内のデータに対してフレーム認識処理を行わずに、前記第1のフレームを認識し、
認識された前記第1のフレームを、前記第1の通信ネットワークに送信する通信制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークを介してデータの通信を行なう中継装置、通信ネットワークシステム及び通信制御方法に関するものである。
【背景技術】
【0002】
特許文献1には、車載機器を制御する複数のECU(Electronic Control Unit)と、各ECUが相互に通信できるように接続するCAN(Controller Area Network)等の車載ネットワークと、ECU間の通信を中継するゲートウェイ装置とを備える車載ネットワークシステムが開示されている。このゲートウェイ装置は、CANに接続されたECUから、CANとは異なる通信プロトコルを利用するEthernet(登録商標)に接続されたECUへデータフレームを送信するために、Ethernetのデータフレームのペイロード内に複数のCANのデータフレームを格納している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1記載の車載ネットワークシステムにおいて、ペイロード内に格納された複数のCANのデータフレームは、データの長さを示すDLCを各CANフレームに含んでいる。ゲートウェイ装置は、Ethernetのデータフレームを受信し、Ethernetのデータフレームのペイロードにおいて、DLCから複数のCANのデータフレームの区切りを特定することで、CANのデータフレームを個々に認識できる。しかしながら、Ethernetのデータフレームで後方の位置に配置されたデータを、誤ってCANのデータフレームとして認識するおそれがある。
【0005】
本発明が解決しようとする課題は、異なる通信プロトコルを利用する通信ネットワーク間でデータを通信する際に、フレームの誤認識を防止する中継装置、通信ネットワークシステム及び通信制御方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、第2のフレームは、第1のフレーム、第1のデータID、及び第1のフレームよりも後方に位置する所定の格納領域に格納される固有データを有し、中継器は、第1のフレームのペイロードのデータ長に基づき第2のフレームにおける第1のフレームを認識するフレーム認識処理を行うときに、格納領域内のデータに対してフレーム認識処理を行わずに、第1のフレームを認識することによって上記課題を解決する。
【発明の効果】
【0007】
本発明によれば、フレームの誤認識を防止できる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本発明に係る中継装置、通信ネットワークシステム及び通信制御方法を適用した、車載通信ネットワークシステムの構成図である。
【
図2】
図2は、CANのデータフレームの構成を示す説明図である。
【
図3】
図3は、CAN FDのデータフレームの構成を示す説明図である。
【
図5】
図5は、CAN FDのデータフレームの構成を示す説明図である。
【
図6】
図6は、CAN FDのデータフレームの構成を示す説明図である。
【
図7】
図7は、CANバスに接続された通信ネットワークからCANバスに接続された通信ネットワークへCANフレームを送信する手順を示すシーケンスチャートである。
【
図8】
図8は、CANバスに接続された通信ネットワークからCANバスに接続された通信ネットワークへCANフレームを送信する手順を示す説明図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
本実施形態では、本発明に係る中継装置、通信ネットワークシステム及び通信制御方法を、自動車(車両ともいう)に搭載された車載ネットワークシステムに適用した例を用いて説明する。本実施形態に係る車載通信ネットワークシステムCNWは、CAN、CAN FD及びEthernet等の異なる通信プロトコルを利用する複数の通信ネットワークが混在されたネットワークシステムである。CAN FDは、CANに対し上位互換性を有する通信プロトコルであり、CANよりも単位時間当たりのデータ通信量(通信速度)が大きくなっている。Ethernetは、LAN(Local Area Network)等に利用される通信ネットワークであり、CAN FDよりも単位時間当たりのデータ通信量は大きい。
【0010】
図1は、本実施形態に係る車載通信ネットワークシステムCNWの構成を示すブロック図である。車載通信ネットワークシステムCNWは、第1の通信ネットワーク1と、第2の通信ネットワーク2と、第3の通信ネットワーク3と、第4の通信ネットワーク4と、第5の通信ネットワーク5と、第6の通信ネットワーク6と、第1の通信ネットワーク1~第6の通信ネットワーク6に接続されたCGW(Central Gateway)7とを備える。第1の通信ネットワーク1~第6の通信ネットワーク6は、車両の基本構成毎に区分けされた複数の制御グループを構成している。この制御グループは、ドメインとも呼ばれる。ドメインには、車両内での情報提示について制御するマルチメディアドメインの他、エンジン等を制御するパワートレインドメイン、ステアリング機構等を制御するシャーシドメイン、パワーウィンドウ等を制御するボディドメイン、自律走行制御を行うADAS(Advanced Driver-Assistance System)ドメイン等がある。第1の通信ネットワーク1~第6の通信ネットワーク6は、本発明の第1の通信ネットワーク及び第2の通信ネットワークの一例に相当する。なお、車載通信ネットワークシステムCNWを構成する通信ネットワークの数は、
6個に限定されない。
【0011】
第1の通信ネットワーク1は、ECU11、ECU12及びECU13を備える。ECU11~13は、CANの通信プロトコルに従ってデータ通信が行われるCANバス14を介してCGW7に接続されている。ECU11~13は、車両に搭載された車載機器を制御する電子制御装置である。ECU11~13は、詳しくは図示しないが、コントローラと、通信回路とを備えている。コントローラは、CPUと、CPUにより実行される制御プログラムが格納されたROMと、制御プログラムのワークエリアとして利用されるRAM等を備えている。コントローラは、CPUにより制御プログラムを実行することにより、ECUとして機能する。通信回路は、コントローラにより制御され、コントローラとCANバス14との間の通信を行う。
【0012】
ECU11~13には、図示しないセンサ又はアクチュエータ等の車載機器が接続されている。ECU11~13は、接続されているセンサから、センサによる検知結果を示すセンサ情報を取得し、取得されたセンサ情報を含む制御情報が格納されたCANのデータフレーム(以下、CANフレームともいう、本発明の「第1のフレーム」に相当する)を生成する。ECU11~13により生成されたCANフレームは、CANバス14を介してCGW7へ送信される。また、各ECU11~13は、CANバス14を介してCGW7からCANフレームを受信し、受信したCANフレームに格納されている制御情報に基づいてアクチュエータ等の車載機器を制御する。ECU11~13は、本発明の第1の電子制御装置及び第2の電子制御装置の一例に相当する。
【0013】
第2の通信ネットワーク2は、ECU21、ECU22及びECU23を備える。ECU21~23は、CANの通信プロトコルに従ってデータ通信が行われるCANバス24を介してCGW7に接続されている。なお、第2の通信ネットワーク2のECU21~23及びCANバス24は、第1の通信ネットワーク1のECU11~13及びCANバス14と同様の構成を有するため、詳しい説明は省略する。
【0014】
第3の通信ネットワーク3は、DM(Domain Master)31と、ECU32、ECU33及びECU34とを備える。DM31は、CAN FDの通信プロトコルに従ってデータ通信が行われるFDバス35を介してCGW7に接続されている。また、ECU32~34は、CAN FDの通信プロトコルに従ってデータ通信が行われるFDバス36を介してDM31に接続されている。
【0015】
ECU32~34は、第1の通信ネットワーク1のECU11~13と同様に、車両に搭載された車載機器を制御する電子制御装置であり、コントローラ及び通信回路を備えている。ECU32~34は、接続されているセンサから、センサによる検知結果を示すセンサ情報を取得し、取得されたセンサ情報を含む制御情報が格納されたCAN FDのデータフレーム(以下、FDフレームともいう、本発明の「第2のフレーム」に相当する)を生成する。ECU32~34により生成されたFDフレームは、FDバス36を介してDM31へ送信される。また、各ECU32~34は、FDバス36を介してDM31からFDフレームを受信し、受信したFDフレームに格納されている制御情報に基づいてアクチュエータ等の車載機器を制御する。ECU32~34は、本発明の第1の電子制御装置及び第2の電子制御装置の一例に相当する。
【0016】
DM31は、CGW7とECU32~34との間での通信を中継する中継器であり、ECUと同様にコントローラ及び通信回路を備えている。DM31は、FDバス36を介して、ECU32~34とFDフレームの通信を行なう。また、DM31は、FDバス35を介して、CGW7とFDフレームの通信を行なう。DM31は、本発明の中継器の一例に相当する。
【0017】
第4の通信ネットワーク4は、DM41と、ECU42、ECU43及びECU44とを備える。DM41は、CAN FDの通信プロトコルに従ってデータ通信が行われるFDバス45を介してCGW7に接続されている。また、ECU42~44は、CAN FDの通信プロトコルに従ってデータ通信が行われるFDバス46を介してDM41に接続されている。なお、第4の通信ネットワーク4のDM41、ECU42~44及びFDバス45、46は、第3の通信ネットワーク3のDM31、ECU32~34及びFDバス35、36と同様の構成を有するため、詳しい説明は省略する。
【0018】
第5の通信ネットワーク5は、DM51と、ECU52、ECU53及びECU54とを備える。DM51は、CAN FDの通信プロトコルに従ってデータ通信が行われるFDバス55を介してCGW7に接続されている。また、ECU52~54は、CANの通信プロトコルに従ってデータ通信が行われるCANバス56を介してDM51に接続されている。
【0019】
ECU52~54は、第1の通信ネットワーク1のECU11~13と同様に、車両に搭載された車載機器を制御する電子制御装置であり、コントローラ及び通信回路を備えている。ECU52~54は、接続されているセンサから、センサによる検知結果を示すセンサ情報を取得し、取得されたセンサ情報を含む制御情報が格納されたCANフレームを生成する。ECU52~54により生成されたCANフレームは、CANバス56を介してDM51へ送信される。また、各ECU52~54は、CANバス56を介してDM51からCANフレームを受信し、受信したCANフレームに格納されている制御情報に基づいてアクチュエータ等の車載機器を制御する。ECU52~54は、本発明の第1の電子制御装置及び第2の電子制御装置の一例に相当する。
【0020】
DM51は、CGW7とECU52~54との間での通信を中継する中継器であり、第3の通信ネットワーク3のDM31と同様にコントローラ及び通信回路を備えている。DM51は、CANバス56を介して、ECU52~54とCANフレームの通信を行なう。また、DM51は、FDバス55を介して、CGW7とFDフレームの通信を行なう。DM51は、ECU52~54により生成されたCANフレームを第1の通信ネットワーク1又は第2の通信ネットワーク2へ送信する際には、FDフレームに少なくとも1つのCANフレームを格納してCGW7へ送信する。DM51は、本発明の中継器の一例に相当する。
【0021】
第6の通信ネットワーク6は、DM61と、ECU62、ECU63及びECU64とを備える。DM61は、CAN FDの通信プロトコルに従ってデータ通信が行われるFDバス65を介してCGW7に接続されている。また、ECU62~64は、CANの通信プロトコルに従ってデータ通信が行われるCANバス66を介してDM61に接続されている。なお、第6の通信ネットワーク6のDM61、ECU62~64、FDバス65及びCANバス66は、第5の通信ネットワーク5のDM51、ECU52~54、FDバス55及びCANバス56と同様の構成を有するため、詳しい説明は省略する。
【0022】
CGW7は、第1~第6の通信ネットワーク1~6の間でデータフレームの中継を行う中継器であり、DM31等と同様に、コントローラ及び通信回路を備えている。CGW7は、第1の通信ネットワーク1のCANバス14を介して、ECU11~13とCANフレームの通信を行なう。また、CGW7は、第2の通信ネットワーク2のCANバス24を介して、ECU21~23とCANフレームの通信を行なう。CGW7は、第3の通信ネットワーク3のFDバス35を介して、DM31とFDフレームの通信を行う。また、CGW7は、第4の通信ネットワーク4のFDバス45を介して、DM41とFDフレームの通信を行う。さらに、CGW7は、第5の通信ネットワーク5のFDバス55を介して、DM51とFDフレームの通信を行う。CGW7は、第6の通信ネットワーク6のFDバス65を介して、DM61とFDフレームの通信を行う。CGW7は、DM51又は61からCANフレームが格納されたFDフレームを受信した場合には、FDフレームからCANフレームを取得し、取得したCANフレームを第1の通信ネットワーク1のECU11~13、又は第2の通信ネットワーク2のECU21~23へ送信する。
【0023】
次に、CANフレームの構成について説明する。CANフレームは、
図2に示すように、SOF(Start Of Frame)フィールドと、ID(Identifier)フィールドと、RTR(Remote Transmission Request)フィールドと、DLC(Data Length Code)フィールドと、データフィールドと、CRCフィールドと、ACKフィールドと、EOF(End of Frame)フィールド等によって構成される。
図2の各フィールドに記載されている数値は、フィールドの各々を構成するビット数を示す。
【0024】
SOFフィールドは、CANフレームの先頭を示す。IDフィールドは、データフィールド内の格納データの種類を示す識別子であるCAN IDが格納されている。CAN IDは、メッセージIDとも称される。なお、CANでは、複数のECUが同時にCANフレームの送信を開始した場合、このCAN IDが小さい値を持つCANフレームの通信を優先する通信調停が行われる。DLCフィールドには、後続するデータフィールド内のデータのサイズ(データ長)を示す情報が格納される。CRCフィールドは、CANフレームの通信エラーの検出に利用される巡回冗長検査コードが格納される。
【0025】
データフィールドに格納されるデータの仕様については、CANの通信プロトコルでは規定されていない。本実施形態に係る車載通信ネットワークシステムCNWでは、データフィールド内に、ECUに接続されているセンサから取得したセンサ情報を含む制御情報CDが格納される。なお、制御情報CDに含まれる情報は、センサ情報に限らず、例えば、ドライバーから要求された操作情報等でもよい。当該データフィールドに制御情報CDだけでなく、CANフレームを生成する各ECUによって、CAN IDと、制御情報CDとに基づいて算出される誤り検出符号ECを含んでもよい。
【0026】
次に、FDフレームの構成について説明する。FDフレームは、
図3に示すように、SOFフィールドと、IDフィールドと、EDL(Extended Data Length)フィールドと、BRS(Bit Rate Switch)フィールドと、ESI(Error State Indicator)フィールドと、DLCフィールドと、データフィールドと、CRCフィールドと、ACKフィールドと、EOFフィールド等によって構成される。図
3の各フィールドに記載されている数値は、フィールドの各々を構成するビット数を示す。FDフレームは、CANフレームにEDLビット、BRSビット及びESIビットが追加され、さらにデータフィールドが64バイトに拡張されている。また、IDフィールドには、データフィールド内の格納データの種類を示す識別子であるCAN FD IDが格納されている。CAN FD IDは、本発明の「第2のデータID」に相当する。
【0027】
FDフレームは、例えば、FDバスに接続されたECU間で通信される場合、データフィールド内に、CANフレームと同様に制御情報が格納される。具体的には、例えば、第3の通信ネットワーク3のFDバス36に接続されたECU32~34によりFDフレームが生成され、第4の通信ネットワーク4のFDバス46に接続されたECU42~44に送信される場合には、FDフレームのデータフィールド内に、CANフレームと同様に制御情報が格納される。この場合、CAN FD IDには、制御情報の種類を示すID、例えば、「001」が付与される。
【0028】
また、FDフレームは、例えば、CANバスに接続されたECUからFDバスを介してECUに送信される場合、データフィールド内に、少なくとも1つのCANフレームが格納される。具体的には、例えば、第1の通信ネットワーク1のCANバス14に接続されたECU11~13によりCANフレームが生成され、第5の通信ネットワーク5のECU52~54に送信される場合には、CGW7により、FDフレームのデータフィールド内に少なくとも1つのCANフレームが格納され、DM51に送信される。この場合、CAN FD IDには、データフレーム内にCANフレームが格納されていることを示すID、例えば、「002」が付与される。
【0029】
次に、DM51において、FDフレームを生成するための各種機能部を、
図4を参照しつつ説明する。
図4は、DM51のCPUが制御プログラムに基づいて動作することにより構成される各種の機能部を示している。DM51は、記憶部510、通信部520、カウンタ530、データ取得部540、フレーム生成部550、MAC検証部560、カウンタ値検証部570、及びフレーム認識部580を備えている。なお、詳しくは説明しないが、他のDM31、41、61も同様の構成を備えており、CGW7も基本的な構成は、DM51と同様である。
【0030】
記憶部510は、ROM等のメモリによって構成されており、車載ネットワークシステムに対するリプレイ攻撃への対処に利用されるカウンタ値511、及び共通鍵512が記憶されている。ここで、リプレイ攻撃について説明する。CGW7は、外部機器と通信可能な状態で接続されているため、本実施形態に係る車載通信ネットワークシステムCNWでは、外部からのリプレイ攻撃に対処するために、メッセージ認証コード(Message Authentication Code、以下「MAC」ともいう)を用いてデータフレームの正当性を検証している。リプレイ攻撃とは、ネットワーク上を流れるデータフレームを盗聴してその内容を記憶しておき、記憶したデータフレーム、又は改変したデータフレームをネットワーク内に送信することにより、ネットワーク内の機器に不正な動作を引き起こすサイバー攻撃である。リプレイ攻撃は、CGW7とネットワークを介して接続される外部機器によって行われる。
【0031】
通信部520は、CAN及びCGW7を介して他のECU及び/又は他のDM等と通信を行う。通信部520は、CGW7から送信されたデータフレームを受信する際に、データフレームのIDを確認し、予め定められたIDを有するデータフレーム、すなわち、通信部520が設けられているDM51に関連するデータフレームのみを受信する。また、通信部520はECU52~54により送信されたデータフレームを受信する。さらに、通信部520は、フレーム生成部550により生成されたデータフレームを、ECU52~54又はCGW7に送信する。
【0032】
カウンタ530は、データフレームがCANに送信された回数をカウントし、カウンタ値をインクリメントする。カウンタ値は、送受信データ(メッセージ)の連続性を担保するための値であって、第三者からの成りすましデータや改ざんデータを破棄するために、データの正当性の検証に利用される。カウンタ530は、車載ネットワークシステム内のECU11等、DM31等、及びCGW7による、データフレームの送信回数をカウントする。したがって、ECU11等、DM31等、及びCGW7のカウンタは、同じカウンタ値となる。カウンタ530によりカウントされたカウンタ値は、記憶部510に記憶される。
【0033】
データ取得部540は、DM51に接続されたセンサ等の車載機器から、情報を取得する。フレーム生成部550は、データ取得部540により取得された情報を含む制御情報を生成し、生成された制御情報に基づいて、通信部520により送信されるデータフレームを生成する。具体的には、フレーム生成部550は、データ取得部540により取得した情報の種類に応じてIDを設定する。フレーム生成部550は、例えば、センサ情報とCAN FD IDとが対応付けられたテーブルを記憶しており、このテーブルに基づいてCAN FD IDを設定する。なお、他のDM31等又はECU11等が、CANフレームを生成するには、CANフレーム用のIDを付与する。
【0034】
また、DM51が、ECU52~54からFDバス55を介してCGW7に、少なくとも1つのCANフレームを格納したFDフレームを送信する場合には、フレーム生成部550は、通信部520によりECU52~54から受信したCANフレームを、FDフレームのデータフィールドに格納して、データフィールドにCANフレームを含むことを示すCAN FD IDを付与する。
【0035】
また、フレーム生成部550は、上述したリプレイ攻撃に対処するために、CAN FD IDと、CAN FD データフィールドに含まれるデータ、記憶部510に記憶されているカウンタ値511に基づいて、記憶部510に記憶されている共通鍵512によりMACを生成する。共通鍵512は、各ECU11等、各DM31等及びCGW7において、共通のものが用いられる。また、MACの算出には、ハッシュ関数を使う方式(HMAC)や、ブロック暗号アルゴリズムを使う方式(CMAC等)等が用いられる。フレーム生成部550は、設定したCAN FD IDと、データ取得部540により取得した情報を含む制御情報及び/又は通信部520により受信されたデータフレームと、記憶部510に記憶されているカウンタ値511と、生成したMACとに基づいてデータフレームを生成する。
【0036】
図5は、フレーム生成部550により生成されるデータフレームの構成の一例を示している。データフレームは、CAN FD IDが格納されるIDフィールド91と、CANフレームが格納されるデータフィールド92とを備えている。データフィールド92には、CANフレームと、カウンタ値と、MACとが格納される。
図5は、3つのCANフレームをデータフィールドに含んだFDフレームの一例を示している。なお、
図5に示すフレーム構成は、
図3のFDフレームのうち、「002」のIDが付与されたフレームであって、データフィールドの一部にMACを付与した場合のフレーム構造を表している。ただし、
図3で示したEOF等のフィールドの図示を、
図5では省略している。
【0037】
IDフィールド91は、CAN FD ID及びDLC等を含んでいる。IDフィールド91に含まれるDLCは、データフィールド92のデータ長を示しており、何バイトのデータがフレームで送信されるかを表している。DLCは、CAN用、CAN FD用共に1バイトである。DLCの設定範囲は、CANの場合は0~8バイトであり、CAN FDの場合は8ビット以上のときには、12、16、20、24、32、48、又は64バイトとなる。なお、IDフィールド91には、データフィールド92に含まれるCANフレームの個数を示す情報は含まれていない。そのため、IDフィールド91だけでは、データフィールド92の中に含まれるCANフレームの数を把握することはできない。
【0038】
データフィールド92は、複数のCANフレーム、カウンタ値及びMACを含んでいる。
図5の例では、3つのCANフレームがデータフィールド92内に格納されている。CANフレームは、IDフィールド101とデータフィールド102を含んでおり、IDフィールド101はCAN IDとDLCを含んでいる。3つのCANフレームの各IDには、「100」、「200」、及び「300」が付与されており、データフィールド92内で、「100」、「200」、及び「300」の順序で、3つのCANフレームが格納されている。また、データフィールド92において、複数のCANフレームよりも後方の位置には、カウンタ値とMACが格納されている。カウンタ値及びMACは、データフレームの正当性を検証するために使用されるデータであって、フレーム固有のデータ(固有データ)である。なお、CANフレームのデータ容量は、最大8バイトに限られているため、CANフレームのデータフレームは、制御情報と、カウンタ値と、MACをすべて格納することはできない。一方、FDフレームでは、データ容量の最大は64バイトになるため、FDフレームのデータフレームは、制御情報や複数のCANフレームに加えて、カウンタ値とMACを格納できる。
【0039】
MAC検証部560は、通信部520により受信したデータフレームのMACに基づいて、データフレームの正当性、すなわち、受信したデータフレームが車載ネットワークシステム内の他のECU11等、各DM31等及びCGW7から送信されたものであるか否かを検証する。具体的には、MAC検証部560は、受信したデータフレームから、IDと、制御情報と、カウンタ値と、MACとを取得する。MAC検証部560は、取得されたIDと、制御情報と、カウンタ値とに基づいて、記憶部510に記憶されている共通鍵512により検証用のMACを生成する。
【0040】
次いで、MAC検証部560は、受信したデータフレームから取得したMACと、検証用のMACとを比較し、取得したMACと検証用のMACとが一致する場合に、受信したデータフレームが正当なデータであると判定する。MAC検証部560は、受信したデータフレームが正当なデータであると判定すると、受信したデータフレームをカウンタ値検証部570に出力する。また、MAC検証部560は、受信したデータフレームが不正なデータであると判定すると、受信したデータフレームを破棄する。このように、MACを利用して不正なデータフレームを検出して破棄することができるので、車載ネットワークシステムに対するリプレイ攻撃等を防ぐことが可能である。なお、MACの生成にCAN IDと、制御情報と、カウンタ値とを用いているが、これらの3つのデータのうち、いずれか1つ又は2つの組み合わせを用いてMACを生成してもよい。
【0041】
カウンタ値検証部570は、受信したデータフレームからカウンタ値を取得し、カウンタ値の連続性が保たれているか否か判定する。カウンタ値検証部570は、連続性が保たれていないと判定すると、受信したデータフレームを破棄する。そして、DM51は、MAC検証部560及びカウンタ値検証部570により、受信したデータフレームが正当なデータあると判定した後は、データフレーム含まれるデータを処理する。例えば、
図5に示すような、複数のCANフレームを含むFDフレームを受信した場合には、DM51は、CANフレーム毎のフレーム認識処理を実行し、認識されたCANフレームを、CANの通信プロトコルの下、各ECU52~54に送信する。
【0042】
フレーム認識部580は、少なくとも1つのCANフレームを格納したFDフレームを通信部520で受信した場合に、FDフレームのデータフィールドにおいて、CANフレームの認識を行う。CANフレームの認証は、データフィールド92内に格納されているフレームをそれぞれ特定する。
【0043】
フレーム認識部580によるフレーム認証処理について、
図6を参照して説明する。
図6は、CAN FD データフレームの構成の一例を示しており、フレーム認証を説明するための図でもある。なお、
図6のデータフレームは、
図5のデータフレームと同様である。
【0044】
フレーム認識部580は、IDフィールド101からID「002」を特定することで、少なくとも1つのCAN フレームが、データフィールド内に格納されていることを認識する。フレーム認識部580は、CANフレームの先頭からデータを読み取り、IDフィールドに含まれているCAN IDとDLCを特定する。フレーム認識部580は、CAN IDから、FDフレーム内に、CANフレームが格納されていることを特定できる。
図6の例では、フレーム認識部580は、ID「100」が付与されたCAN フレームが格納されていること、及び、IDフィールド内に格納されているDLCを特定する。CANフレームのデータフィールドのデータ長は、0から8バイトの範囲で設定可能であるが、フレーム認識部580は、DLCからデータフィールドのデータ長を特定できる。フレーム認識部580は、DLCで示されるデータ長から、ID「100」のCANフレームの終端となるフレームの区切りを特定できる(
図6の矢印Aを参照)。これにより、フレーム認識部580は、FDフレームのデータフィールドにおいて、ID「100」のCANフレームを認証できる。
【0045】
フレーム認識部580は、ID「100」のCANフレームの区切りを特定した後、特定された区切りの後方に格納されたデータ(データ構造上、フレームの区切りの直後に位置するデータ))を読み取る。
図6の例では、フレーム認識部580は、ID「100」のCANフレームの区切りの後方のデータを読み取り、ID「200」が付与されたCANフレームが格納されていること、及び、ID「200」のCANフレームのIDフィールド内に格納されているDLCを特定する。そして、フレーム認識部580は、ID「100」のCANフレームと同様の方法で、DLCに基づき、ID「200」のCANフレームの終端となるフレームの区切りを特定することで、ID「200」のCANフレームを認証する。また、フレーム認識部580は、ID「100」、「200」のCANフレームと同様の方法で、DLCに基づき、ID「300」のCANフレームの終端となるフレームの区切りを特定することで、ID「300」のCANフレームを認証する。
【0046】
次に、フレーム認識部580は、ID「300」のCANフレームの区切りの後方に格納されたデータを読み取る。
図6の例では、ID「300」のCANフレームの後方には、新たなCANフレームは格納されておらず、カウンタ値及びMACが格納されている。そのため、フレーム認識部580は、
図6の矢印Bに示すよう、カウンタ値及びMACが格納されている位置のデータを読み取る。
【0047】
CANフレームのデータ長は0~8バイトの範囲内で任意の値で設定され、データ効率を上げるために、FDフレームのデータフィールドにおけるCANフレームの位置は固定でなく、データ量に応じて任意に変わる。上記のように、フレーム認識部580は、CANフレームのDLCを用いることで、DLCで示されるデータ長の長さ分、先のデータに、CAN IDがあることを特定できる。例えば、ID「100」のCANフレームに含まれるDLCが4Byteを示していたら、フレーム認識部580は、ID「100」のCANフレームのペイロードのデータ長(4Byte)をオフセットした先に、次のCANフレームのID(3Byte)の格納位置を把握できる。
【0048】
しかしながら、次のCANフレームのIDの格納位置に、カウンタ値及び/又はMACが格納されている場合には、カウンタ値及び/又はMACを、別のCANフレームであると誤認識するおそれがある。つまり、カウンタ値及びMACは固有値ではなく、任意の値をとることができるため、カウンタ値やMACの値が、CANフレーム用のIDの値と偶発的に一致することがある。また、カウンタ値やMACのデータ量は10バイトであり、CANの1フレーム分のデータ量よりも大きい。そのため、フレーム認識部580は、カウンタ値やMACの格納位置に、CANフレームが格納されていると、誤認識するおそれがある。
【0049】
本実施形態では、このようなフレームの誤認識を防ぐために、フレーム認識部580は、カウンタ値及び/又はMAC等の固有データを格納する格納領域内のデータに対して、フレーム認識処理を行わずに、CANフレームを認識する。カウンタ値及び/又はMAC等の固有データの、データフィールドにおける格納領域は予め決まっており、FDフレームのデータフィールドの終端から、所定のデータ長(
図6の例では10Byte)、手前の位置までの領域が格納領域となる。また格納領域のデータ長は、固有データのデータ長以上の長さに設定されている。ただし、データフィールドに含まれるCANフレームの数、CANフレームのデータ量等により、CAN FD IDと格納領域との位置関係はフレーム内で動的に変わる。フレーム認識部580は、FDフレームのDLCから、データフィールドの終端を特定することで、カウンタ値及びMACを含む固有データの格納領域を把握できる。そして、フレーム認識部580は、上記のフレーム認証処理の際には、格納領域内のデータに対してはフレーム認識処理をせず、データフィールドのうち格納領域以外の領域内のデータに対して、フレーム認識処理を行う。
図6の例では、ID「300」の
CANフレームの後方に位置し、カウンタ値及びMACが付与されたデータに対して、フレーム認識処理をしない。言い換えると、フレーム認識部580は、データフィールドの終端までの10Byte分のデータ(カウンタ値及びMACが付与されたデータ)を無視して、フレーム認識処理を行う。
【0050】
図6の例では、フレーム認識部580は、データフィールドにおいて、固有データの格納領域の位置を特定した後、フレーム認識処理を行い、ID「100」のCANフレーム、ID「200」のCANフレーム、及び、ID「300」のCANフレームの順で、各フレームを認識する。そして、ID「300」の
CANフレームのDLCで示されるIDの位置は、固有データの格納領域に含まれるため、フレーム認識部580は、ID「300」のCANフレームを特定した後、フレーム認識処理を終了する。これにより、フレームの誤認識を防ぎつつ、CANフレームを認識できる。
【0051】
次に、
図7のシーケンスチャート及び
図8の説明図を参照して、第1の通信ネットワーク1のECU11~13により生成されたCANフレームが、第5の通信ネットワーク5のECU52~54へ送信される手順について説明する。
図7のステップS1にて示すように、第1の通信ネットワーク1のECU11~13は、センサからセンサ情報を取得し、例えば、CANフレームC1~CNを生成する。具体的には、ECU11~13は、取得したセンサ情報に基づいて、センサ情報を含む制御情報CDを生成し、センサ情報の種類等に基づいてCAN IDを設定する。図中、「100」、「200」は、CAN IDを示す。ECU11~13は、生成したCANフレームC1~CNのデータフィールドに、制御情報CDを格納し、CANバス14を介してCGW7へ生成したCANフレームC1~CNを送信する。
【0052】
CGW7は、CANバス14を介して第1の通信ネットワーク1からCANフレームC1~CNを受信し、ステップS2において、受信したCANフレームC1~CNがデータフィールドに格納されたFDフレームF1を生成する。具体的には、CGW7は、FDフレームF1に、データフィールドに少なくとも1つのCANフレームが格納されていることを示すCAN FD IDとして、「002」を付与するまた、CGW7は、CANフレームC1~CNの送信先のECUや、格納されている制御情報CDの種類、CANフレームC1~CNの送信周期等に基づいて、複数のCANフレームC1~CNをグループ分けし、グループ分けされた複数のCANフレーム毎にFDフレームF1を生成する。また、CGW7は、生成されたFDフレームF1を、第5の通信ネットワーク5のFDバス55を介してDM51へ送信する。
【0053】
制御情報CDの種類とは、制御情報CDが利用される制御内容が、共通又は関連することを言う。例えば、車両の加減速の制御に応じてCANフレームC1~CNをグループ分けする場合、エンジン等のパワートレインやブレーキ等の制御が共通又は関連する制御内容となり、これらの制御に利用される制御情報CD毎にCANフレームC1~CNがグループ分けされる。また、CANフレームC1~CNの送信周期とは、例えば、センサから取得されたセンサ情報が所定の時間間隔で送信される場合の送信周期を言い、送信周期が同じ又は近い制御情報CD毎にCANフレームC1~CNがグループ分けされる。このように、送信先のECUや、制御情報CDの種類、送信周期等に応じてCANフレームC1~CNをグループ分けして送信することにより、車載通信ネットワークシステムCNWの送信負荷を抑制することができる。また、関連する制御情報CDを一緒に送信することができるので、送信先のECUでの制御が適切、かつ効率よく行えるようになる。
【0054】
また、CGW7は、CANフレームC1~CNのそれぞれから、「データフィールド」のみを取得して、FDフレームF1のデータフィールドに格納する。「DLC」は、データフィールドに格納された複数のCANフレームC1~CNの区切りを判定するために利用される。このように、CANフレームC1~CNを構成する多数のデータのうち、送信先のECUで必要となるデータのみをFDフレームF1に格納して送信するので、車載通信ネットワークシステムCNWの送信負荷を抑制することができる。
【0055】
第5の通信ネットワーク5のDM51は、FDバス55を介してFDフレームF1を受信すると、CAN FD IDに基づいて、データフィールドに少なくとも1つのCANフレームが格納されていることを特定する。DM51は、ステップS3において、受信したFDフレームF1から、CANフレームC1~CNを取得する。上述したように、フレーム認証により、FDフレームF1のデータフィールドから複数のCANフレームC1~CNを取得する際には、「DLC」を利用してCANフレーム間の区切りを判定することができるので、複数のCANフレームC1~CNを適切に取得することができる。さらに、DM51は、DCLに基づきFDフレームF1における複数のCANフレームC1~CNを認識するときに、カウンタ値及びMACを含む固有データの格納領域内のデータに対してフレーム認識処理を行わない。これにより、フレームの誤認識を防ぎつつ、複数のCANフレームC1~CNを適切に取得できる。そして、DM51は、取得した複数のCANフレームC1~CNを第5の通信ネットワーク5のCANバス56に送信する。
【0056】
第5の通信ネットワーク5のECU52~54は、CANフレームC1~CNのCAN IDに基づいて、車載機器の制御に必要なCANフレームC1~CNを受信する。さらに、ECU52~54は、ステップS4において、受信したCANフレームC1~CNの制御信号CDに基づいて、車載機器を制御する。
【0057】
以上で説明したように、本実施形態に係る車載通信ネットワークシステムCNWによれば、FDフレームは、CANフレーム、CAN ID、及びCANフレームよりも後方に位置する所定の格納領域に格納される固有データを有し、DM31~61又はCGW7等の中継器は、CANフレームのペイロードのデータ長に基づきFDフレームにおけるCANフレームを認識するフレーム認識処理を行うときに、格納領域内のデータに対してフレーム認識処理を行わずに、CANフレームを認識する。これにより、格納領域に格納されている固有データをCAN IDであると誤って特定することを防ぎ、CANフレームを誤って認識することを防止できる。
【0058】
また、本実施形態に係る車載通信ネットワークシステムCNWによれば、固有データの格納領域は、CANフレーム及び固有データを含むデータフィールドの終端から所定のデータ長、手前までの領域に設定されている。これにより、CANフレームの誤認識を防止できる。
【0059】
また、本実施形態に係る車載通信ネットワークシステムCNWによれば、上述の所定のデータ長は、固有データのデータ長以上の長さに設定されている。これにより、データ値がCAN IDの値と一致する可能性がある領域を、フレーム認証処理を実行する領域から外すことができ、その結果として、CANフレームの誤認識を防止できる。
【0060】
また、本実施形態に係る車載通信ネットワークシステムCNWによれば、固有データは、データの正当性を示すデータであり、任意の数値で設定可能である。これにより、データ値がCAN IDの値と一致する可能性があるデータを、フレーム認証処理の実行対象から外すことができ、その結果として、CANフレームの誤認識を防止できる。
【0061】
なお、本実施形態の変形例として、DM51は、CANフレームをFDフレームに格納する処理において、CANフレームと固有データとの間に、CAN IDのデータ長以上の長さのデータ長をもつパディングデータを挿入してもよい。
図6に示す、FDフレームのデータ構造において、3バイト以上のデータ長をもつパディングデータが、ID「300」のCANフレームと固有データとの間に挿入される。パディングデータは、意味をもたないデータである。なお、パディングデータは、通常、データを固定長として扱いたいときに挿入されるが、変形例では、必ず挿入される固定データである。そのため、データフィールド内において、CANフレームと固有データとの間にパディングデータを挿入することで、合計データ量が、FDフレームの予め定義された第1の固定長を超える場合には、パディングデータのデータ長を長くする、あるいは、他のCANフレームを格納することで、データフィールド内の合計データ量が第2の固定長になるよう、データ量を調整する。なお、第1の固定長及び第2の固定長は、FDフレームのデータフィールドに対して定義されている固定長を示しており、第2の固定長は第1の固定長よりも長い。これにより、CANフレームを格納したFDフレームを受信した場合に、CGW7は、FDフレームにおいてCANフレームのDLCに基づくフレーム認識処理を行うときに、「格納領域内のデータに対してフレーム認識処理を行わずに、CANフレームを認識する」というデータ処理を実行しなくてもよい。その結果として、CANフレームの誤認識を防止できる。
【0062】
ただし、上記変形例のようなデータ処理では、パディングデータを挿入する分、データ効率は低下するため、データ効率の面からは、「格納領域内のデータに対してフレーム認識処理を行わずに、CANフレームを認識する」というデータ処理の方が好ましい。さらに、CAN FD IDに、格納されたCANフレーム数のデータを付与してもよいが、CAN FD IDのデータ量が大きくなり、データ効率は下がるため、データ効率の面からは、「格納領域内のデータに対してフレーム認識処理を行わずに、CANフレームを認識する」というデータ処理の方が好ましい。
【符号の説明】
【0063】
CNW…車載通信ネットワークシステム
1…第1の通信ネットワーク
11~13…ECU(Electronic Control Unit)
2…第2の通信ネットワーク
21~23…ECU
3…第3の通信ネットワーク
31…DM(Domain Master)
32~34…ECU
35、36…FDバス
4…第4の通信ネットワーク
41…DM
42~44…ECU
45、46…FDバス
5…第5の通信ネットワーク
51…DM
510…記憶部
511…カウンタ値
512…共通鍵
520…通信部
530…カウンタ
540…データ取得部
550…フレーム生成部
560…MAC検証部
570…カウンタ値検証部
580…フレーム認識部
52~54…ECU
55…FDバス
56…CANバス
6…第6の通信ネットワーク
61…DM
62~64…ECU
65…FDバス
66…CANバス
7…CGW(Central Gateway)
C1~CN…CANフレーム
F1…FDフレーム
E1…Ethernetフレーム