JPWO2016006150A1 - 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法 - Google Patents

車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法 Download PDF

Info

Publication number
JPWO2016006150A1
JPWO2016006150A1 JP2016532409A JP2016532409A JPWO2016006150A1 JP WO2016006150 A1 JPWO2016006150 A1 JP WO2016006150A1 JP 2016532409 A JP2016532409 A JP 2016532409A JP 2016532409 A JP2016532409 A JP 2016532409A JP WO2016006150 A1 JPWO2016006150 A1 JP WO2016006150A1
Authority
JP
Japan
Prior art keywords
data
frame
mac
calculation
transmitted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016532409A
Other languages
English (en)
Other versions
JP6396464B2 (ja
Inventor
良浩 氏家
良浩 氏家
正人 田邉
正人 田邉
剛 岸川
剛 岸川
芳賀 智之
智之 芳賀
松島 秀樹
秀樹 松島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Publication of JPWO2016006150A1 publication Critical patent/JPWO2016006150A1/ja
Application granted granted Critical
Publication of JP6396464B2 publication Critical patent/JP6396464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Small-Scale Networks (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)

Abstract

車載ネットワークシステムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備え、第1電子制御ユニットは、送信内容の正当性を示すメッセージ認証コード(MAC)を算出するための計算に用いるデータに関する識別子(MAC計算対象フィールド種別、開始フラグ等)を含む1又は複数のデータフレームをバスにより送信し、第2電子制御ユニットは、バス上で送信された1又は複数のデータフレームを受信し、受信したデータフレームの識別子に応じてメッセージ認証コードの検証処理を行う。

Description

本開示は、車載ネットワークにおいてメッセージを送受信する技術に関する。
近年、自動車の中のシステムには、電子制御ユニット(ECU:Electronic Control Unit)と呼ばれる装置が多数配置されている。これらのECUをつなぐネットワークは車載ネットワークと呼ばれる。車載ネットワークには、多数の規格が存在する。その中でも最も主流な車載ネットワークの一つに、ISO11898−1で規定されているCAN(Controller Area Network)という規格が存在する(「非特許文献1」参照)。
CANでは、通信路は2本のバスで構成され、バスに接続されているECUはノードと呼ばれる。バスに接続されている各ノードは、フレームと呼ばれるメッセージを送受信する。フレームを送信する送信ノードは、2本のバスに電圧をかけ、バス間で電位差を発生させることによって、レセシブと呼ばれる「1」の値と、ドミナントと呼ばれる「0」の値を送信する。複数の送信ノードが全く同一のタイミングで、レセシブとドミナントを送信した場合は、ドミナントが優先されて送信される。受信ノードは、受け取ったフレームのフォーマットに異常がある場合には、エラーフレームと呼ばれるフレームを送信する。エラーフレームとは、ドミナントを6bit連続して送信することで、送信ノードや他の受信ノードにフレームの異常を通知するものである。
またCANでは送信先や送信元を指す識別子は存在せず、送信ノードはフレーム毎にメッセージIDと呼ばれるIDを付けて送信し(つまりバスに信号を送出し)、各受信ノードは予め定められたメッセージIDのみを受信する(つまりバスから信号を読み取る)。また、CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)方式を採用しており、複数ノードの同時送信時にはメッセージIDによる調停が行われ、メッセージIDの値が小さいフレームが優先的に送信される。
ところで、車載ネットワークにおいて不正なノードがバスに接続され、不正なノードが不正にフレームを送信することで、車体を不正にコントロールしてしまう可能性がある。このような不正なフレームの送信によるコントロールを防止するために、一般にCANにおけるデータフィールドにメッセージ認証コード(MAC:Message Authentication Code)を付加して送信する技術が知られている(「特許文献1」参照)。
特開2013−98719号公報
CAN Specification 2.0 Part A、[online]、CAN in Automation(CiA)、[平成26年11月14日検索]、インターネット(URL:http://www.can−cia.org/fileadmin/cia/specifications/CAN20A.pdf) RFC2104 HMAC: Keyed−Hashing for Message Authentication
ところで、CANのフレームには、MACを付加するフィールドが存在せず、CANにおけるデータフィールドは8bytesと少ない。各フレームのデータフィールドにMACを格納すると、送信すべきデータがデータフィールドに収まらず複数フレームに分割して送信しなければならなくなる場合が生じ得る。この場合には、バスに流れるフレーム数が増加しバスのトラフィックの増加を招く。
そこで、本開示は、送受信するメッセージ(フレーム)のセキュリティを向上し、かつ、バスのトラフィックの増加を抑える車載ネットワークシステムを提供する。また、本開示は、その車載ネットワークシステムで用いられる、電子制御ユニット(ECU)、受信方法及び送信方法を提供する。
上記課題を解決するために本開示の一態様に係る車載ネットワークシステムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを前記バスにより送信する第1電子制御ユニットと、前記バス上で送信された1又は複数のデータフレームを受信し、受信したデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う第2電子制御ユニットとを備える車載ネットワークシステムである。
また、上記課題を解決するために本開示の一態様に係る受信方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる受信方法であって、前記バス上で送信された、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを受信する受信ステップと、前記受信ステップで1又は複数のデータフレームが受信された場合に、受信されたデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う検証ステップとを含む受信方法である。
また、上記課題を解決するために本開示の一態様に係る送信方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる送信方法であって、1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により、送信内容の正当性を示すためのメッセージ認証コードを算出する算出ステップと、前記算出ステップで算出されたメッセージ認証コードを前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、当該メッセージ認証コードを算出するための計算に用いられたデータに関する識別子を含ませた当該1又は複数のデータフレームを送信する送信ステップとを含む送信方法である。
また、上記課題を解決するために本開示の一態様に係る電子制御ユニットは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、前記バス上で送信された、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを受信する受信部と、前記受信部により1又は複数のデータフレームが受信された場合に、受信されたデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う検証部とを備える電子制御ユニットである。
また、上記課題を解決するために本開示の一態様に係る電子制御ユニットは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により、送信内容の正当性を示すためのメッセージ認証コードを算出する算出部と、前記算出部により算出されたメッセージ認証コードを前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、当該メッセージ認証コードを算出するための計算に用いられたデータに関する識別子を含ませた当該1又は複数のデータフレームを送信する送信部とを備える電子制御ユニットである。
本開示によれば、送信内容の正当性を示すMACを利用することで送受信するメッセージのセキュリティを向上し、かつ、バスのトラフィックの増加を抑えることができる。
実施の形態1に係る車載ネットワークシステムの全体構成を示す図である。 CANプロトコルで規定されるデータフレームのフォーマットを示す図である。 CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。 実施の形態1におけるデータフレームへのMAC付与に係るパターンの一例を示した図である。 実施の形態1に係るECUの構成図である。 受信IDリストの一例を示す図である。 データフレームのデータフィールドフォーマットの一例を示す図である。 データフレームのデータフィールドフォーマットの一例を示す図である。 実施の形態1におけるデータフィールドヘッダーのデータ構成を示す図である。 MAC計算対象フィールド種別の内容例を示す図である。 データフィールド構成種別の内容例を示す図である。 開始フラグの内容例を示す図である。 エンジンに接続されたECUから送信されるフレームにおけるID及びデータフィールドの一例を示す図である。 ECUにおけるデータフレーム送信処理を示すフローチャートである。 ECUにおけるデータフレーム受信処理を示すフローチャートである(図16に続く)。 ECUにおけるデータフレーム受信処理を示すフローチャートである(図15から続く)。 実施の形態2におけるデータフレームへのMAC付与に係るパターンの一例を示した図である。 実施の形態2に係るECUの構成図である。 実施の形態2におけるデータフィールドヘッダーのデータ構成を示す図である。 フレーム特性データのデータ構成を示す図である。 エンジンに接続されたECUから送信されるフレームにおけるID及びデータフィールドの一例を示す図である。 ECUにおける送信処理を示すフローチャートである。 ECUにおけるデータフレーム受信処理を示すフローチャートである(図24に続く)。 ECUにおけるデータフレーム受信処理を示すフローチャートである(図25に続く)。 ECUにおけるデータフレーム受信処理を示すフローチャートである(図24から続く)。 実施の形態2の変形例1におけるデータフレームへのMAC付与に係るパターンの一例を示した図である。 実施の形態2の変形例2におけるデータフレームへのMAC付与に係るパターンの一例を示した図である。 実施の形態2の変形例3におけるデータフレームへのMAC付与に係るパターンの一例を示した図である。
本開示の一実施態様に係る車載ネットワークシステムは、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを前記バスにより送信する第1電子制御ユニットと、前記バス上で送信された1又は複数のデータフレームを受信し、受信したデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う第2電子制御ユニットとを備える車載ネットワークシステムである。これにより、送信内容の正当性を示すメッセージ認証コード(MAC)を利用することで送受信するメッセージのセキュリティが向上される。また、MACを算出するための計算に用いるデータに関する識別子により、MACの算出のために用いられる情報を送信側のECUから受信側のECUへと伝達し得るため、例えば、MACの検証に必要なデータ値及びMAC等といったデータ構成の情報の伝達を行うことが可能となる。これにより、例えば、車載ネットワークシステムにおいてデータフィールドに格納するデータの構成を自由に定めることが可能となる。そして、ECUが、MACの検証を必要とするデータと、MACの検証を必要としないデータと、MACとを自由にデータフィールドに設定して送信できると、バスのトラフィックの増加を抑えることが可能になる。
また、前記第1電子制御ユニットは、送信する前記1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により算出したメッセージ認証コードを、当該1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませて送信し、前記第1電子制御ユニットに送信される前記1又は複数のデータフレームに含まれる前記識別子は、前記メッセージ認証コードを算出するための計算に用いられた、当該1又は複数のデータフレーム内の1以上のデータの領域を、示す情報を含み、前記第2電子制御ユニットは、前記識別子により示される領域のデータを用いた計算により、前記検証処理を行うこととしても良い。これにより、例えば、MACを算出するための計算に用いる領域を、データフレーム内の任意のフィールドにすること或いは特定のフィールド内の任意の位置にすること等を自由に設定することが可能になる。これにより、例えばバスのトラフィックの増加の抑制、或いは、セキュリティの強化等を図ることが可能となる。
また、前記第1電子制御ユニットは、前記メッセージ認証コードを、送信する複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により算出し、算出したメッセージ認証コードを当該複数のデータフレームのうちの少なくとも1つのデータフレームに含ませて送信し、前記第1電子制御ユニットに送信される前記複数のデータフレームに含まれる前記識別子は、当該複数のデータフレームの数を示す情報を含み、前記第2電子制御ユニットは、受信したいずれかのデータフレームに含まれる前記識別子により示される数のデータフレームを受信した場合において、受信された各データフレームにおける前記識別子により示される領域のデータを用いた計算により、前記検証処理を行うこととしても良い。これにより、データフレームを送信するECUが受信するECUにフレームの数を伝達できるため、MACの検証に必要なデータを複数のデータフレームに分割して送信すること等が可能となり、データ構成或いはフレーム編成の自由度が高まる。フレーム編成として、例えば、MACが単一のフレームに含まれている状態(つまりこのフレームを受信すると直ちにMACの検証が可能な状態)であるシングルフレームと、MACが複数のフレームに分割されている状態であるマルチフレームとのいずれかを任意に選択可能となる。
また、本開示の一実施態様に係る受信方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる受信方法であって、前記バス上で送信された、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを受信する受信ステップと、前記受信ステップで1又は複数のデータフレームが受信された場合に、受信されたデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う検証ステップとを含む受信方法である。これにより、データフレームに含まれる識別子により検証処理の内容(例えば検証のための計算に用いるデータを取得するデータフレーム内の位置等)を変化させることができ、データ構成に柔軟に対応した適切な検証処理が可能になる。
また、前記受信ステップで受信されるデータフレームにおける前記識別子は、当該データフレームのデータフィールドの内容の種別を示すこととしても良い。これにより、例えばデータフレームのデータフィールドに、MACの計算対象となるデータが含まれているか、MACの計算対象ではないデータが含まれているか、MACが含まれているか等といった情報を種別としてデータフレームの受信側で受け取ることができるようになる。従って、この受信方法を前提としてデータフィールドに格納するデータの種別を自由に定めることができ、例えば車載ネットワークシステムにおいてECUが一律にMACを付加したデータしか送受信しない場合と比べてバスのトラフィックの増加を抑えることが可能になる。
また、前記受信ステップで受信される前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームにはメッセージ認証コードが含まれ、前記受信ステップで受信されるデータフレームにおける前記識別子により示される、データフィールドの内容の前記種別は、当該データフィールドに、メッセージ認証コードを算出するための計算に用いられたデータの領域が含まれるか否かを表し、前記検証ステップでは、前記識別子により示されるデータフィールドの内容の前記種別が、メッセージ認証コードを算出するための計算に用いられたデータの領域が含まれることを表す場合に、当該データフィールドにおけるメッセージ認証コードを算出するための計算に用いられたデータの領域の値を用いた計算により、前記検証処理を行うこととしても良い。これにより、データフレームのデータフィールドにMACの計算対象となるデータが含まれているか否かを識別することにより、適切にMACの検証処理を行うことが可能となる。
また、前記受信ステップで受信されるデータフレームにおける前記識別子は、当該データフレームのデータフィールドにおける一の種別のデータの領域を示すこととしても良い。これにより、例えばデータフレームのデータフィールドにおける、MACの計算対象となるデータ、MACの計算対象ではないデータ或いはMACが配置されている位置(範囲)の情報をデータフレームの受信側で受け取ることができるようになる。従って、この受信方法を前提として、データフィールドに格納するデータの配置を自由に定めることができるようになる。
また、前記受信ステップで受信される前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームにはメッセージ認証コードが含まれ、前記受信ステップで受信されるデータフレームにおける前記識別子により示される前記一の種別のデータの領域は、メッセージ認証コードを算出するための計算に用いられたデータの領域であり、前記検証ステップでは、前記識別子により示される領域のデータを用いた計算により、前記検証処理を行うこととしても良い。これにより、データフレームのデータフィールドにおけるMACの計算対象となるデータが含まれている位置(範囲)を確認することで、適切に計算対象となるデータを収集でき、適切にMACの検証処理を行うことが可能となる。
また、前記受信ステップで受信されるデータフレームにおける前記識別子は当該データフレームのデータフィールドに配置されており、前記検証ステップでは、受信されたデータフレームのデータフィールド内の前記識別子に応じて前記検証処理を行うこととしても良い。これにより、CANプロトコルに則り車載ネットワークシステムで仕様を定めることのできるデータフィールドを参照して識別子を確認することで、適切にMACの検証処理を行うことが可能となる。
また、前記1又は複数のデータフレームに含まれる前記識別子は、当該1又は複数のデータフレーム内の1以上のデータの領域を、示す情報を含み、前記検証ステップでは、前記受信ステップで受信されたデータフレームにおける前記識別子に応じた領域のデータを用いた計算により、前記検証処理を行うこととしても良い。これにより、識別子に応じてMACの検証のための計算に用いるデータが格納されているフィールド、位置等を特定でき、適切にMACの検証処理を行うことが可能となる。
また、本開示の一実施態様に係る送信方法は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる送信方法であって、1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により、送信内容の正当性を示すためのメッセージ認証コードを算出する算出ステップと、前記算出ステップで算出されたメッセージ認証コードを前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、当該メッセージ認証コードを算出するための計算に用いられたデータに関する識別子を含ませた当該1又は複数のデータフレームを送信する送信ステップとを含む送信方法である。これにより、データフレームに含ませる識別子により、例えばMACの算出のための計算に用いたデータのデータフレーム中の位置等を、データフレームの送信側のECUが受信側のECUに伝達でき、このためデータフレーム内のデータ構成を自由に設定し得る。
また、前記送信ステップで送信するデータフレームにおける前記識別子は、当該データフレームのデータフィールドの内容の種別を示すこととしても良い。これにより、例えばデータフレームのデータフィールドに、MACの計算対象となるデータが含まれているか、MACの計算対象ではないデータが含まれているか、MACが含まれているか等といった情報を種別としてデータフレームの送信側のECUが受信側のECUに伝達できるようになる。従って、データフィールドに格納するデータの種別を自由に定めることができるため、例えば車載ネットワークシステムにおいてECUが一律にMACを付加したデータしか送受信されない場合と比べてバスのトラフィックの増加を抑えることが可能になる。
また、前記送信ステップで送信するデータフレームにおける前記識別子により示される、データフィールドの内容の前記種別は、当該データフィールドに、前記算出ステップで前記メッセージ認証コードを算出するための計算に用いられたデータの領域が含まれるか否かを表すこととしても良い。これにより、データフレームのデータフィールドにMACの計算対象となるデータを含めるか否かを選択でき、データ構成を自由に定めることができるようになる。
また、前記送信ステップで送信するデータフレームにおける前記識別子は、当該データフレームのデータフィールドにおける一の種別のデータの領域を示すこととしても良い。これにより、例えばデータフレームのデータフィールドにおける、MACの計算対象となるデータ、MACの計算対象ではないデータ或いはMACが配置されている位置(範囲)の情報をデータフレームの送信側のECUが受信側のECUに伝達できるようになる。従って、データフィールドに格納するデータの配置を自由に定めることができるようになる。
また、前記送信ステップで送信するデータフレームにおける前記識別子により示される前記一の種別のデータの領域は、前記算出ステップで前記メッセージ認証コードを算出するための計算に用いられたデータの領域であることとしても良い。これにより、データフレームのデータフィールドにおけるMACの計算対象となるデータが含まれている位置(範囲)をデータフレームの送信側のECUが受信側のECUに伝達でき、MACの計算対象となるデータを任意の位置に配置できるようになる。
また、前記送信ステップでは、前記識別子を、送信するデータフレームのデータフィールドに配置することとしても良い。これにより、CANプロトコルに則り車載ネットワークシステムで仕様を定めることのできるデータフィールドを活用してMACを算出するための計算に用いるデータに関する情報を伝達できる。このため、CANプロトコルに準拠したECUにおいてこの送信方法を容易に実現し得る。
また、前記送信ステップで送信する前記1又は複数のデータフレームに含まれる前記識別子は、前記メッセージ認証コードを算出するための計算に用いられた、当該1又は複数のデータフレーム内の1以上のデータの領域を、示す情報を含むこととしても良い。これにより、MACの検証のための計算に用いるデータが格納されているフィールド、位置等を適切に伝達することが可能になり、データ構成等の自由度が高まる。
また、本開示の一実施態様に係る電子制御ユニット(ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、前記バス上で送信された、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを受信する受信部と、前記受信部により1又は複数のデータフレームが受信された場合に、受信されたデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う検証部とを備える電子制御ユニットである。これにより、データフレームに含まれる識別子により検証処理の内容を変化させることができ、データ構成に柔軟に対応した適切な検証処理が可能になる。例えば、このECUを含んで構築される車載ネットワークシステムにおいては、データフィールドに格納するデータの構成を自由に定めて、MACの検証が必要か否かの情報或いはMACの検証に用いるデータの領域の情報等を識別子としてデータフレームに含めて送受信できる。これにより、例えばバスのトラフィックの増加を抑えるようにデータフレームの送受信を行うことが可能となる。
また、本開示の一実施態様に係る電子制御ユニット(ECU)は、CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により、送信内容の正当性を示すためのメッセージ認証コードを算出する算出部と、前記算出部により算出されたメッセージ認証コードを前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、当該メッセージ認証コードを算出するための計算に用いられたデータに関する識別子を含ませた当該1又は複数のデータフレームを送信する送信部とを備える電子制御ユニットである。これにより、データフレームに含ませる識別子により、例えばMACの算出のための計算に用いたデータのデータフレームにおける位置等を、データフレームの送信側のECUが受信側のECUに伝達でき、データフレーム内のデータ構成を自由に設定し得る。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
以下、実施の形態に係る車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態1)
以下、本開示の実施の形態として、MACを用いたデータの検証を可能にし、かつ、データの効率的な送受信を可能にするための送信方法或いは受信方法を実現するECUを含む車載ネットワークシステム10について、図面を参照しながら説明する。
[1.1 車載ネットワークシステム10の全体構成]
図1は、実施の形態1に係る車載ネットワークシステム10の全体構成を示す図である。車載ネットワークシステム10は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム10は、バス200と、各種機器に接続されたECU100a〜100dといったバス200に接続された各ノードとを含んで構成される。なお、図1では省略しているものの、車載ネットワークシステム10にはECU100a〜100d以外にもいくつものECUが含まれ得るが、ここでは、便宜上ECU100a〜100dに注目して説明を行う。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
ECU100a〜100dは、それぞれエンジン310、ブレーキ320、ドア開閉センサ330、窓開閉センサ340に接続されている。ECU100a〜100dのそれぞれは、接続されている機器(エンジン310等)の状態を取得し、定期的に状態を表すフレーム(後述するデータフレーム)等をネットワーク(つまりバス)に送信している。ECU100a〜100dは、このデータフレームの送信のためのデータフレーム送信処理(後述)を実行し、またデータフレームを受信するためのデータフレーム受信処理(後述)を実行する。
この車載ネットワークシステム10においてはCANプロトコルに従って各ECUがフレームの授受を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがある。説明の便宜上、データフレーム及びエラーフレームを中心に説明する。
[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレームについて説明する。
図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、CANプロトコルで規定される標準IDフォーマットにおけるデータフレームを示している。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィールドで構成される。
SOFは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。
IDフィールドは、11bitで構成される、データの種類を示す値であるID(メッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
IDEと「r」とは、両方ドミナント1bitで構成される。
DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称する。
データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム10において定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。
CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
[1.3 エラーフレームフォーマット]
図3は、CANプロトコルで規定されるエラーフレームのフォーマットを示す図である。エラーフレームは、エラーフラグ(プライマリ)と、エラーフラグ(セカンダリ)と、エラーデリミタとから構成される。
エラーフラグ(プライマリ)は、エラーの発生を他のノードに知らせるために使用される。エラーを検知したノードはエラーの発生を他のノードに知らせるために6bitのドミナントを連続で送信する。この送信は、CANプロトコルにおけるビットスタッフィングルール(連続して同じ値を6bit以上送信しない)に違反し、他のノードからのエラーフレーム(セカンダリ)の送信を引き起こす。
エラーフラグ(セカンダリ)は、エラーの発生を他のノードに知らせるために使用される連続した6ビットのドミナントで構成される。エラーフラグ(プライマリ)を受信してビットスタッフィングルール違反を検知した全てのノードがエラーフラグ(セカンダリ)を送信することになる。
エラーデリミタ「DEL」は、8bitの連続したレセシブであり、エラーフレームの終了を示す。
[1.4 MAC付与パターン例]
図4は、データフレームへのMAC付与に係るパターンの一例を示した図である。例えば、同図の左側から右側への順に各データフレームがバス200上に順次送信される。MACは送信内容の正当性を示すためにデータフレーム(メッセージ)に付与される。ここで、MAC付与に係るパターンは、MACを付与するか否か或いはMACの計算対象がどのフィールドであるかについて各種のバリエーションを有する。
図4での3つのデータフレームの例のうち、左側のデータフレーム401及び右側のデータフレーム403の例は、1フレームにMACと、MACの計算対象となるデータ(つまりMACを算出するための計算に用いられるデータ)とを含んでいる。また中央のデータフレーム402の例は、MACを含んでいない。ここでは、バスのトラフィック量の増加を抑えるため、或いは、計算量の削減のために、フレーム毎にMACを付与するか否か、MACの計算対象となるデータは、データフィールドのみか、DLCフィールドを含むのかを切り替えている例を示しているが、これら以外のバリエーションもあり得る。例えば、全てのフレームにMACを付与しても良いし、IDフィールドとDLCフィールドとデータフィールドとの全てをMACの計算対象としても良いし、IDフィールドとDLCフィールドとデータフィールドとのうち、いずれかのフィールドを単独でMACの計算対象としても良く、それぞれの組み合わせを計算対象としても良く、これらのフィールドとその他のフィールドとの組み合わせを計算対象としても良い。
[1.5 ECU100aの構成]
図5は、ECU100aの構成図である。ECU100aは、フレーム送受信部101と、フレーム解釈部102と、受信ID判断部103と、受信IDリスト保持部104と、フレーム処理部105と、MAC処理部106と、MAC鍵保持部107と、カウンタ保持部108と、フレーム生成部109と、データ取得部110とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
フレーム送受信部101は、バス200に対して、CANのプロトコルに従ったフレームを送受信する。バス200からフレームを1bitずつ受信し、フレーム解釈部102に転送する。また、フレーム生成部109より通知を受けたフレームの内容をバス200に送信する。
フレーム解釈部102は、フレーム送受信部101よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部103へ転送する。フレーム解釈部102は、受信ID判断部103から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるDLC、データフィールド等とを、フレーム処理部105へ転送するか、その判定結果を受けた以降においてフレームの受信を中止する(つまりそのフレームとしての解釈を中止する)かを決定する。また、フレーム解釈部102は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部109へ通知する。また、フレーム解釈部102は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
受信ID判断部103は、フレーム解釈部102から通知されるIDフィールドの値を受け取り、受信IDリスト保持部104が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部103は、フレーム解釈部102へ通知する。
受信IDリスト保持部104は、ECU100aが受信するID(メッセージID)のリストである受信IDリストを保持する。図6は、受信IDリストの一例を示した図である。
フレーム処理部105は、フレーム解釈部102よりデータフィールドの値を受け取り、データフィールドに含まれる各種フラグ(後述するデータフィールドヘッダー、開始フラグ等といった、MACを算出するための計算に用いるデータに関する識別子として機能し得るフラグ)に応じた処理を行う。この処理のうちには、MACが付与されているデータについてのMACに係るデータの検証(つまりMACの検証処理)等が含まれ、また、データに応じた機能に係る処理も含まれ得る。即ち、フレーム処理部105は、フレーム送受信部101により1又は複数のデータフレームが受信された場合に、受信されたデータフレームの各種フラグ(識別子)に応じてMACの検証処理を行う検証部としての機能を有する。また、上述した機能に係る処理の一例を挙げると、エンジン310に接続されたECU100aは、時速が30kmを超えた状態でドアが開いている状態だとアラーム音を鳴らす機能を有し、フレーム処理部105が、他のECUから受信したデータ(例えばドアの状態を示す情報)を管理し、エンジン310から取得された時速に基づいて一定条件下でアラーム音を鳴らす処理等を行う。なお、フレ―ムの送受信処理(データフレーム送信処理及びデータフレーム受信処理)に関する具体的な内容(処理フロー)については図14、図15及び図16を用いて、後に説明する。なお、ここでは、データフレームのデータフィールドに各種フラグが含まれることとしているが、各種フラグは、拡張IDフィールド等といった他のフィールドに含まれることとしても良い。
MAC処理部106は、フレーム生成部109より通知される、MACを計算するための値(これはMACの計算対象となるデータとしてフレームに含めて送信する値であり、例えばメッセージIDとDLCの値とデータフィールド用のデータの値)と、カウンタ保持部108で保持する送信カウンタ値とを結合した値(結合値)に対し、MAC鍵保持部107で保持するMAC鍵を用いて、MAC値を算出(計算により導出)して、この算出した結果であるMACをフレーム生成部109へと通知する。即ち、MAC処理部106は、1又は複数のフレーム内の1以上の領域に配置されるデータ(MACの計算対象となるデータ)を用いた計算によりMACを算出する算出部として機能する。また、フレーム処理部105より通知される、受信したフレームに含まれる、MACの計算対象となるデータと、カウンタ保持部108で保持する受信カウンタ値とを結合した値(結合値)に対して、MAC鍵保持部107で保持する鍵を用いて、MAC値を算出し、この算出した結果であるMACをフレーム処理部105へと通知する。ここではMACの計算方法として、HMAC(Hash-based Message Authentication Code)(非特許文献2参照)を採用し、上述した結合値に対し、所定のブロック分(例えば4bytes)までパディングした値でMAC鍵を使って計算し、出てきた計算結果の先頭4bytesをMACとする。ここで、MACを算出するために用いる結合値として、メッセージIDと、DLCの値と、データの値と、カウンタ保持部108で保持する送信カウンタ値、或いは、受信カウンタ値とを全て使用する例を記述したが、これらの値のいずれか1つ又は2つ以上の組み合わせを用いてMACが算出され得る。即ち、ECU100aは、フレームの送信に際して、図4に例示したようなMAC付与に係るパターンを特定する、予め定められたアルゴリズムに基づいて、これらの値のいずれか1つ又は2つ以上の組み合わせを用いて、送信するフレームに含ませるためのMACを算出する。またECU100aは、フレームの受信に際して、予め定められたアルゴリズムに基づいて、或いは、必要に応じてデータフィールドに含まれる各種フラグを参照して、検証に用いるMACの算出に必要となる値を特定することにより、MACを算出する。
MAC鍵保持部107は、MACを計算するため必要となるMAC鍵を保持する。
カウンタ保持部108は、MACを計算するために必要となるカウンタ値を保持する。なお、このカウンタ値は、例えばメッセージID毎に保持され、フレームを正常に送信した場合にインクリメントする送信カウンタ値と、正常に受信した場合にインクリメントする受信カウンタ値との2種類のカウンタ値がある。
フレーム生成部109は、フレーム解釈部102から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部101へ通知して送信させる。また、フレーム生成部109は、ECU100aがMACを付与してデータの送信を行う際には、データ取得部110より通知されたデータの値と予め定められたメッセージIDとをMAC処理部106へ通知し、算出されたMACを受け取る。フレーム生成部109は、ECU100aがMACを付与したデータの送信を行う際には、予め定められたメッセージIDとデータ取得部110より通知されたデータの値とMAC処理部106から受け取ったMACとを含むようにデータフレームをメモリ(送信バッファ)に構成し、フレーム送受信部101へ通知する。この送信のとき、フレーム送受信部101は、MACを1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、そのMACを算出するための計算に用いられたデータに関する各種フラグ(識別子等)を含ませたその1又は複数のデータフレームを送信する送信部として機能する。なお、フレーム生成部109が生成するデータフレームのデータフィールドの構成については、図7及び図8を用いて後に説明する。
データ取得部110は、ECUに接続されている機器、センサ等の状態を示すデータを取得し、フレーム生成部109に通知する。
なお、ECU100b〜100dも、上述したECU100aと基本的に同様の構成を備える。但し、フレーム処理部105によるデータに応じた機能に係る処理の内容は、ECU毎に異なる。また、例えば、ECU100aのフレーム送受信部101が各種フラグを含ませたデータフレームを送信する送信部として機能するとき、ECU100aと同じバス200に接続されたECU100b等のフレーム送受信部101は、送信された各種フラグを含む1又は複数のデータフレームを受信する受信部として機能する。
[1.6 受信IDリスト例]
図6は、ECU100a、ECU100b、ECU100c及びECU100dのそれぞれにおいて保持される受信IDリストの一例を示す図である。同図に例示する受信IDリストは、ID(メッセージID)の値が「1」、「2」、「3」及び「4」のいずれかであるメッセージIDを含むフレームを選択的に受信して処理するために用いられる。
[1.7 データフィールドフォーマット例1]
図7は、図4のMAC付与に係るパターンにより送信されるデータフレームのデータフィールドフォーマットの一例を示す。この例では、MACを付与しないデータを内容とするデータフィールドの例を示している。このデータフィールドは、データフィールドヘッダー301と、開始フラグ302と、データサイズ303と、一般データ304とによって構成される。
データフィールドヘッダー301は、データフレームに含まれるデータの種別、MACの計算対象となるデータの領域(フィールド種別)等を示す情報を含む。データフィールドヘッダー301のデータ構成については後に図9を用いて説明する。
開始フラグ302は、この開始フラグ以降のデータ(つまり開始フラグ以降に受信されることとなるデータ)の種別を識別するフラグである。開始フラグ302の内容例については図12を用いて、後に説明する。
データサイズ303は、開始フラグ302により識別されるデータのサイズを示す。データサイズ303のデータ長は6bitである。
一般データ304は、MACの計算対象とならないデータ(つまりデータフィールドに格納されるデータのうちMACの計算対象となるデータでなくMACでもないデータ)の領域を示す。
[1.8 データフィールドフォーマット例2]
図8は、図4のMAC付与に係るパターンにより送信されるデータフレームのデータフィールドフォーマットの一例を示す。この例では、MACの計算対象となるデータ及びMACを含んだデータフィールドの例を示している。このデータフィールドは、データフィールドヘッダー301と、開始フラグ302と、データサイズ303と、MAC計算用データ305と、MAC306とによって構成される。なお、図7と同一の要素には、同じ符号を付しており、ここでの説明を省略する。
MAC計算用データ305は、MACの計算対象となるデータの領域を示す。
MAC306は、MACの計算対象となるデータ等を用いた計算により算出されたMACが配置された領域を示す。
[1.9 データフィールドヘッダー301のデータ構成例]
図9は、データフィールドヘッダー301のデータ構成を示す。データフィールドヘッダー301は、フレーム生成部109によりデータフレームを送信する際にデータフィールドの先頭に設定される。
データフィールドヘッダー301は、予約bit311(2bit)と、MAC計算対象フィールド種別312(3bit)と、データフィールド構成種別313(3bit)とによって構成され、全体で8bitとなる。
予約bit311は、「00」の値で固定値である。
MAC計算対象フィールド種別312と、データフィールド構成種別313に入る具体的なデータについては、以下、図10、図11を用いて説明する。
[1.10 MAC計算対象フィールド種別312]
図10は、データフィールドヘッダー301に含まれる、MAC計算対象フィールド種別312の内容例を示す。なお、同図で値は、3bit値(2進数)で表現している。
3bitのMAC計算対象フィールド種別312の最上位bitは、MACの計算対象となるデータが配置されるフィールドとして、IDフィールド(図2参照)が含まれるか否かを示し、IDフィールドがMACの計算対象となる場合には「1」、IDフィールドがMACの計算対象とならない場合には「0」となる。MAC計算対象フィールド種別312の中位bitは、MACの計算対象となるデータが配置されるフィールドとして、DLCが含まれるか否かを示し、DLCがMACの計算対象となる場合には「1」、DLCがMACの計算対象とならない場合には「0」となる。また、MAC計算対象フィールド種別312の最下位bitは、MACの計算対象となるデータが配置されるフィールドとして、データフィールドが含まれるか否かを示し、データフィールド内にMACの計算対象となるデータが含まれる場合には「1」、データフィールド内にMACの計算対象となるデータが含まれない場合には「0」となる。
[1.11 データフィールド構成種別313]
図11は、データフィールドヘッダー301に含まれる、データフィールド構成種別313の内容例を示す。なお、同図で値は、3bit値(2進数)で表現している。
3bitのデータフィールド構成種別313の最上位bit(以下「MACbit」と称する)は、データフィールドがMACを含むか否かを示し、MACを含む場合には「1」、MACを含まない場合には「0」となる。データフィールド構成種別313の中位bit(以下「MAC計算用データbit」と称する)は、データフィールドがMACの計算対象となるデータを含むか否か(つまり図8に示したようなMAC計算用データ305を含むか否か)を示し、MACの計算対象となるデータを含む場合には「1」、MACの計算対象となるデータを含まない場合には「0」となる。送信されたデータフレームにおいてMAC計算用データbitは、そのデータフレーム内のデータフィールドに、MACを算出するための計算に用いられたデータの領域が含まれるか否かを表すことになる。また、データフィールド構成種別313の最下位bit(以下「一般データbit」と称する。)は、データフィールドがMACの計算対象とならない一般データを含むか否か(つまり図7に示したような一般データ304を含むか否か)を示し、一般データを含む場合には「1」、一般データを含まない場合には「0」となる。なお、図11では、便宜上、このようなMACbit、MAC計算用データbit及び一般データbitを組み合わせた3bitの値で表現され得る全てのパターンの内容例を示している。このため、図11の内容例の一部の値(「MAC計算用データのみ」及び「一般データ+MAC計算用データ」)は後述する実施の形態2では用いられ得るが、実施の形態1では用いられない。
[1.12 開始フラグ302]
図12は、データフィールドに含まれるデータの開始位置と種別を示す、開始フラグ302の内容例を示す。開始フラグ302は、フレーム生成部109によりデータフレームを送信する際にデータフィールド内に設定される。開始フラグ302が設定される位置は、例えば、データフィールドヘッダー301に後続する位置、或いは、データフィールド内に配置されたデータ(一般データ、MACの計算対象となるデータ或いはMAC)に後続する位置である(図7及び図8参照)。
開始フラグ302は、2bitで構成され、この開始フラグ302に後続するデータサイズ303(図7及び図8参照)に続くデータの種別を示す。
開始フラグ302に後続するデータサイズ303に続くデータが、MACの計算対象とならないデータである一般データの場合には開始フラグ302の値として「00」(2bit値)が設定される。開始フラグ302に後続するデータサイズ303に続くデータが、MACの計算対象となるデータ(MAC計算用データ)の場合には開始フラグ302の値として「01」(2bit値)が設定される。送信されたデータフレームにおいて、「01」(2bit値)の開始フラグ302及び後続するデータサイズ303により、MACを算出するための計算に用いられたデータの領域が表されることになる。開始フラグ302に後続するデータサイズ303に続くデータが、MACの場合には開始フラグ302の値として「10」(2bit値)が設定される。
[1.13 エンジンに係るECU100aの送信フレーム例]
図13は、エンジン310に接続されたECU100aから送信されるデータフレームにおけるID(メッセージID)及びデータフィールドの内容(データ)の一例を示す図である。ECU100aが送信するフレームのメッセージIDは「1」である。データフィールドの内容(データ)は、同図において1byte毎に空白で区分して16進数で表している。図13の例で各行の先頭の1byteはデータフィールドヘッダー301であり、次(2番目)の1byteは開始フラグ302及びデータサイズ303であり、次(3番目)の1byteは時速(km/時)を表したMAC計算用データ305(2行目のみ一般データ304)であり、図13の例の1行目及び3行目での次(4番目)の1byteは開始フラグ302及びデータサイズ303であり、その次の4bytesがMAC306である。時速(km/時)は、最低0(km/時)〜最高180(km/時)までの範囲の値を取る。図13の上行から下行へと、図4で例示したMAC付与に係るパターンに従って、ECU100aから逐次送信される各フレームに対応する各メッセージID及びデータフィールドの内容(データ)を例示しており、時速が0km/時から1km/時ずつ加速されている様子を表している。
[1.14 データフレーム送信処理]
図14は、ECU100aにより実行されるデータフレーム送信処理を示すフローチャートである。以下、同図に即して、ECU100aにおけるデータフレーム送信処理について説明する。なお、ECU100b〜100dも、送信するデータフレームの内容はそれぞれ異なるものの、ECU100aと同様のデータフレーム送信処理を行う。ECU100aにおいて、データフレーム送信処理は定期的に行われる。
ECU100aは、エンジン310の状態を取得し、その状態を表すデータ(送信すべきデータ)を特定すると、フレーム生成部109にデータフレーム生成処理を開始させる(ステップS1001)。逐次取得される送信すべきデータが、どのようなデータ構成のデータフレームによるどのようなフレーム編成で逐次送信されるかについては、車載ネットワークシステム10として予め定められた所定アルゴリズムに従って決定される。フレーム編成及びデータ構成を定める所定アルゴリズムの例としては、上述した図4の例のように、例えば3回分の送信を1セットとして1回目に送信するデータフレーム401のデータフィールド内に、時速を表したMAC計算用データ305と、MAC計算用データ305を用いた計算により算出されたMACとを含ませ、2回目に送信するデータフレーム402のデータフィールド内に、時速を表した一般データ304を含ませ、3回目に、送信するデータフレーム403のデータフィールド内に時速を表したMAC計算用データ305と、DLC及びMAC計算用データ305を用いた計算により算出されたMACとを含ませて送信するアルゴリズム等がある。
データフレーム生成処理として、フレーム生成部109は、メモリ(送信バッファ)内に定めたデータフレームにおけるデータフィールドのデータフィールドヘッダー301内のMAC計算対象フィールド種別312の該当箇所に、所定アルゴリズムに基づいて決定された送信すべきデータの構成を表す値を設定する(ステップS1002)。例えば、上述の3回分の送信の1セット(図4参照)における3回目に送信されるデータフレーム403においては、MAC計算対象フィールド種別312(3bit)は、DLCとデータフィールドとに対応するbitがそれぞれ「1」に設定される。
ECU100aのフレーム生成部109は、送信すべきデータを含む送信すべきデータフレームが、一般データ304(つまりMACの計算対象とならないデータ)を含むフレームか否かを判断する(ステップS1003)。一般データ304を含まない場合は、一般データ関連の処理(ステップS1004〜S1007)をスキップする。
ステップS1003において送信すべきデータフレームが一般データ304を含むと判断した場合には、フレーム生成部109は、送信バッファ内に定めたデータフレームにおけるデータフィールドヘッダー301内のデータフィールド構成種別313の一般データbitに「1」を設定する(ステップS1004)。
続いてフレーム生成部109は、送信バッファ内に定めたデータフレームにおけるデータフィールド内に、開始フラグ302として、一般データを示す「00」(2bit値)を設定し(ステップS1005)、データサイズ303として一般データ304のサイズに応じた値を設定し(ステップS1006)、一般データ304を設定する(ステップS1007)。
また、フレーム生成部109は、送信すべきデータを含む送信すべきデータフレームが、MAC計算用データ305(つまりMACの計算対象となるデータ)を含むフレームか否かを判断する(ステップS1008)。MAC計算用データ305を含まない場合は、MAC計算用データ関連の処理(ステップS1009〜S1012)をスキップする。
ステップS1008において送信すべきデータフレームがMAC計算用データ305を含むと判断した場合には、フレーム生成部109は、送信バッファ内に定めたデータフレームにおけるデータフィールドヘッダー301内のデータフィールド構成種別313のMAC計算用データbitに「1」を設定する(ステップS1009)。
続いてフレーム生成部109は、送信バッファ内に定めたデータフレームにおけるデータフィールド内に、開始フラグ302として、MAC計算用データを示す「01」(2bit値)を設定し(ステップS1010)、データサイズ303としてMAC計算用データ305のサイズに応じた値を設定し(ステップS1011)、MAC計算用データ305を設定する(ステップS1012)。
また、フレーム生成部109は、送信すべきデータを含む送信すべきデータフレームが、MAC306を含むフレームか否かを判断する(ステップS1013)。MAC306を含まない場合は、MAC関連の処理(ステップS1014〜S1018)をスキップする。
ステップS1013において送信すべきデータフレームがMAC306を含むと判断した場合には、フレーム生成部109は、送信バッファ内に定めたデータフレームにおけるデータフィールドヘッダー301内のデータフィールド構成種別313のMACbitに「1」を設定する(ステップS1014)。
続いてフレーム生成部109は、MACの計算対象となるデータとして所定アルゴリズムに基づいて定められたデータ(つまりMAC計算対象フィールド種別312に設定した値に基づくデータ)をMAC処理部106に伝え、MAC処理部106はMACを算出する(ステップS1015)。MAC処理部106は、フレーム生成部109に伝えられたMACの計算対象となるデータと、カウンタ保持部108で保持する送信カウンタ値とを結合した値に対し、MAC鍵保持部107で保持するMAC鍵を用いて計算を行うことにより、送信すべきデータフレームにMAC306として設定されるMAC値を算出する。
続いてフレーム生成部109は、送信バッファ内に定めたデータフレームにおけるデータフィールド内に、開始フラグ302として、MACを示す「10」(2bit値)を設定し(ステップS1016)、データサイズ303としてMAC306のサイズに応じた値を設定し(ステップS1017)、MAC306を設定する(ステップS1018)。
ステップS1018での処理が終了する、或いは、MAC関連の処理がスキップされた場合に、フレーム生成部109は、送信すべきデータフレームを生成するためのデータフレーム生成処理を終えることとなり、フレーム送受信部101へ通知する(ステップS1019)。
フレーム送受信部101は、フレーム生成部109により送信バッファに生成されたデータフレームを、バス200に送信する(ステップS1020)。フレームが正常に送信された場合に、送信カウンタ値がインクリメント(1増加)される(ステップS1021)。
[1.15 データフレーム受信処理]
図15及び図16は、ECU100bにより実行されるデータフレーム受信処理を示すフローチャートである。以下、同図に即して、ECU100bにおけるデータフレーム受信処理について説明する。なお、ECU100a、100c、100dも、ECU100bと同様のデータフレーム受信処理を行う。
バス200上にフレームが送信された場合に、ECU100bにおいてデータフレーム受信処理が開始される。
ECU100bは、CANプロトコルに従って、バス200から1bitずつ受信し、データフレームにおけるID等を受信して処理した後にデータフィールドを受信することになる。このとき、フレーム解釈部102は、ID、DLC、データフィールド等をフレーム処理部105へ転送し、フレーム処理部105は、データフィールドに関連するデータ処理を開始する(ステップS1101)。
ECU100bのフレーム処理部105は、受信されたデータフレームのデータフィールドにおけるデータフィールドヘッダー301を取得し、作業用のメモリ領域としてのバッファに保存する(ステップS1102)。また、データフィールドにおける開始フラグ302を取得し、バッファに格納する(ステップS1103)。
続いて、フレーム処理部105は、取得した開始フラグ302の値が、一般データ304を表す「00」(2bit)か、MAC計算用データ305を表す「01」(2bit)かそれ以外(MACを表すもの)かを判定する(ステップS1104、S1105)。
次に、フレーム処理部105は、開始フラグ302に後続するデータサイズ303を取得し、サイズに応じてバッファを確保する(ステップS1106a、S1106b或いはS1106c)。続いて、開始フラグ302が、一般データ304を表していた場合には、一般データ304を取得して、確保したバッファに格納し(ステップS1107)、MAC計算用データ305を表していた場合には、MAC計算用データ305を取得して、確保したバッファに格納(ステップS1108)、その他の場合には、MAC306を取得して、確保したバッファに格納する(ステップS1109)。
フレーム処理部105は、DLC及びデータフィールドに基づいて、受信したデータフィールドの全てのデータを取得し終えたかどうかを判定して、上述したステップS1103〜S1109の処理を、データフィールドの全てのデータを取得し終えるまで繰り返す(ステップS1110)。
データフィールドのデータを全て取得し終えた場合には、フレーム処理部105は、データフィールドヘッダー301に含まれるデータフィールド構成種別313に基づき、受信されたデータフレームの構成を確認する(ステップS1111)。一般データ304のみを含むフレーム(つまりデータフィールド構成種別313の一般データbitが「1」であり他の2bitが「0」であるデータフレーム)であると判断した場合には(ステップS1112)、フレーム処理部105は、受信したデータの内容に応じて、予め定められた処理(データに応じた機能に係る処理)を行う(ステップS1113)。
受信されたデータフレームが一般データ304のみを含むフレームではない場合においては、フレーム処理部105は、データフィールドヘッダー301に含まれる、MAC計算対象フィールド種別312を確認する(ステップS1114)。続いてフレーム処理部105は、確認されたMAC計算対象フィールド種別312に応じてMACの計算対象となるデータを格納した各フィールドの値を取得することで、MACの検証に必要なデータを収集する(ステップS1115)。
フレーム処理部105は、収集したMACの検証に必要なデータをMAC処理部106に通知して得られるMAC値によりMACの検証処理を行い、検証に成功した場合には(ステップS1116)、受信したデータの内容に応じて、予め定められた処理(データに応じた機能に係る処理)を行う(ステップS1117)。なお、MAC処理部106は、フレーム処理部105から取得したデータ(MACの計算対象となるデータ)と、カウンタ保持部108で保持する受信カウンタ値とを結合した値に対して、MAC鍵保持部107で保持する鍵を用いて計算を行うことによりMAC値を算出し、この算出した結果であるMACをフレーム処理部105へと通知する。そして、フレーム処理部105では、受信したデータフレームのデータフィールドにおけるMAC306の値が、MAC処理部106により算出されたMACと一致するか否かを判定することによりMACの検証を行う。一致すれば、検証に成功し、一致しなければ検証に失敗することになる。
ステップS1116において、検証に成功しなかった場合には、フレーム処理部105は、受信したデータフレームのデータフィールドのデータに応じた機能に係る処理(ステップS1117)をスキップする。
ステップS1117での処理が終了した場合、或いは、スキップされた場合に、フレーム処理部105は、バッファを全てクリアし(ステップS1118)、受信カウンタ値をインクリメント(1増加)する(ステップS1119)。
[1.16 実施の形態1の効果]
実施の形態1で示した車載ネットワークシステム10では、複数のECU間で送受信するデータフレームのデータフィールド内に、MACを算出するための計算に用いるデータに関する識別子として機能し得るデータフィールドヘッダー301、開始フラグ302等を含ませることにより、データフィールドに格納するデータの構成を自由に定めることを可能にした。これにより、例えばMACをデータフィールドに格納するデータフレーム及びMACをデータフィールドに格納しないデータフレームを混在させて送信すること等も可能になり、一律にMACをデータフレームに格納する場合と比べればバスのトラフィック量の増加を抑制することが可能になる。なお、MAC306を付加したMAC計算用データ305を含むデータフレームと、MACを付ける必要がない一般データ304を含むデータフレームとが同一のID(メッセージID)のフレームとして送信される場合においても、データフィールドヘッダー301、開始フラグ302等により、MAC計算用データ305と一般データ304とを確実に識別できるため、誤って一般データ304等に対するMACの検証処理を行うこと等が防止される。
(実施の形態2)
以下、本開示の実施の形態として、MACを用いたデータの検証を可能にし、かつ、データの効率的な送受信を可能にするための送信方法或いは受信方法を実現するECUを含む車載ネットワークシステム(以下、「車載ネットワークシステム11」と称する)について、図面を参照しながら説明する。
車載ネットワークシステム11は、実施の形態1で説明した車載ネットワークシステム10を一部変形したものであり、ここで特に説明しない点は車載ネットワークシステム10と同様である。車載ネットワークシステム10においては、MACを含むデータフレームにおいてそのMACは、そのデータフレーム内のいずれかのフィールドのデータを用いた計算により算出されたものであり、そのデータを用いて検証されるものであることとした。これに対し、実施の形態2で示す車載ネットワークシステム11では、MACの計算対象となるデータ(つまりMACを算出するための計算に用いられるデータ)がそのMACとは別のデータフレームに含まれ得るように、データフレームのデータ構成及びデータフレームの編成についての自由度を拡大している。
[2.1 車載ネットワークシステム11の全体構成]
車載ネットワークシステム11の全体構成は、基本的に実施の形態1に係る車載ネットワークシステム10の全体構成と同じ(図1参照)であり、バス200と、各種機器に接続されたECU2100a〜2100dといったバス200に接続された各ノードとを含んで構成される。なお、ECU2100a〜2100dは、それぞれ実施の形態1で示したECU100a〜100dのそれぞれ(図1参照)を一部変形したECUのことを言う。ECU2100a〜2100dは、それぞれ、エンジン310、ブレーキ320、ドア開閉センサ330、窓開閉センサ340と接続されている。ECU2100a〜2100dは、複数のフレームに亘って、データフィールドに格納されて送信される、MACの検証が必要なデータと、MACの検証が不要なデータと、MACと、MACの計算対象となるデータを特定するための識別子とに応じて、実行するフレームの処理内容を変更し得る。
この車載ネットワークシステム11においてもCANプロトコルに従って各ECUがフレームの授受を行う。
[2.2 MAC付与パターン例]
図17は、データフレームへのMAC付与に係るパターンの一例を示した図である。例えば、同図の左側から右側への順に各データフレームがバス200上に順次送信される。ここで、MAC付与に係るパターンは、MACを付与するか否か或いはMACの計算対象がどのフレームのどのフィールドであるかについて各種のバリエーションを有する。図17での3つのデータフレームの例のうち、中央のデータフレーム502の例はMACを含んでいない。また、図17の例では、2つ以上のフレームに含まれるデータフィールドの値からMACを計算し、分割し、分割したMACそれぞれを計算対象となったデータのいずれかと同じフレームに格納して送信する例を示している。即ち、左側のデータフレーム501のデータフィールドと、右側のデータフレーム503のDLC及びデータフィールドとに基づいてMACを計算し、そのMACの一部を左側のデータフレーム501に格納して送信し、そのMACの他の一部を右側のデータフレーム503に格納して送信する例を示している。
ここでは、バスのトラフィック量の増加を抑えるため、或いは、計算量の削減のために、フレーム毎にMACを付与するか否か、MACの計算対象となるデータは、データフィールドのみか、DLCフィールドを含むのかを切り替えている例を示しているが、これら以外のバリエーションもあり得る。例えば、全てのフレームにMACを付与しても良いし、IDフィールドとDLCフィールドとデータフィールドとの全てをMACの計算対象としても良いし、IDフィールドとDLCフィールドとデータフィールドとのうち、いずれかのフィールドを単独でMACの計算対象としても良く、それぞれの組み合わせを計算対象としても良く、これらのフィールドとその他のフィールドとの組み合わせを計算対象としても良い。
[2.3 ECU2100aの構成]
図18は、ECU2100aの構成図である。ECU2100aは、フレーム送受信部101と、フレーム解釈部102と、受信ID判断部103と、受信IDリスト保持部104と、フレーム処理部2105と、MAC処理部106と、MAC鍵保持部107と、カウンタ保持部108と、フレーム生成部2109と、データ取得部110とを含んで構成される。これらの各構成要素は、機能的な構成要素であり、その各機能は、ECU2100aにおける通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。なお、ECU2100b〜2100dも同様の構成である。また、実施の形態1(図5参照)で示したものと同一の構成要素については、同じ符号を付しており、説明を省略する。
フレーム処理部2105は、フレーム処理部105の一部を変形したものであり、フレーム解釈部102よりデータフィールドの値を受け取り、データフィールドに含まれる各種フラグ(データフィールドヘッダー、開始フラグ等といったMACを算出するための計算に用いるデータに関する識別子として機能し得るフラグ)に応じた処理を行う。この処理のうちには、MACが付与されているデータについてのMACに係るデータの検証(つまりMACの検証処理)等が含まれ、また、実施の形態1で示した、データに応じた機能に係る処理も含まれ得る。なお、フレ―ムの送受信処理(データフレーム送信処理及びデータフレーム受信処理)に関する具体的な内容(処理フロー)については図22〜図25を用いて、後に説明する。なお、ここでは、データフレームのデータフィールドに各種フラグが含まれることとしているが、各種フラグは、拡張IDフィールド等といった他のフィールドに含まれることとしても良い。
フレーム生成部2109は、フレーム生成部109の一部を変形したものであり、フレーム解釈部102から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部101へ通知して送信させる。また、フレーム生成部2109は、ECU2100aがMACを付与してデータの送信を行う際には、データ取得部110より通知されたデータの値と予め定められたメッセージIDとをMAC処理部106へ通知し、算出されたMACを受け取る。フレーム生成部2109は、ECU2100aがMACを付与したデータの送信を行う際には、予め定められたメッセージIDとデータ取得部110より通知されたデータの値とMAC処理部106から受け取ったMACとを含むようにデータフレームをメモリ(送信バッファ)に構成し、フレーム送受信部101へ通知する。フレーム生成部2109が生成するデータフレームのデータフィールドの構成については、図19及び図20を用いて後に説明する。
[2.4 データフィールドフォーマット]
車載ネットワークシステム11においてECUに送信されるデータフレームのデータフィールドフォーマットは、基本的に実施の形態1で示した車載ネットワークシステム10で用いられるものと同様である(図7及び図8参照)。但し、データフィールドヘッダー301を、データフィールドヘッダー2301へと置き換えている。
[2.5 データフィールドヘッダー2301のデータ構成例]
図19は、データフィールドヘッダー2301のデータ構成を示す。データフィールドヘッダー2301は、フレーム生成部2109によりデータフレームを送信する際にデータフィールドの先頭に設定される。
データフィールドヘッダー2301は、フレーム特性データ2311(18bit)と、MAC計算対象フィールド種別312(3bit)と、データフィールド構成種別313(3bit)とによって構成され、全体で24bitとなる。
MAC計算対象フィールド種別312と、データフィールド構成種別313とについては、実施の形態1と同様であるため、ここでは説明を省略する(図10及び図11参照)。
[2.6 フレーム特性データ2311のデータ構成例]
図20は、データフィールドヘッダー2301に含まれる、フレーム特性データ2311のデータ構成を示す。
フレーム特性データ2311は、フレーム番号(フレームNo.)2321と、総フレーム数2322と、MAC計算用データを含むフレーム数2323と、MACを含むフレーム数2324とによって構成され、全体で18bitとなる。
フレームNo.2321は、送信すべきデータが複数のデータフレームに分割されて送信されるときのその一連のデータフレームのグループを他のグループと識別するための値であり、6bitで表現する。フレームNo.2321は、送信すべきデータが分割されて形成された一連のデータフレームのグループに属する各データフレームは、同じ値となり、別のグループに属するデータフレームではまた別の値となるようにデータフレームを送信するECUにより付与される。フレームNo.の値の定め方は、例えば連番にして、1グループのデータフレーム群を送信する毎に値をカウントアップすることとしても良いし、1グループのデータフレームを送信すべきときにランダムに値を生成することとしても良い。なお、MAC計算用データを含まずMACも含まず一般データのみを含むデータフレームにおいては、フレームNo.をゼロ等として、例外的に扱うこととしても良い。以下、一般データのみを含むデータフレームにおいてはフレームNo.をゼロにした例を適宜用いて説明する。
総フレーム数2322は、複数に分割されて形成された一連のデータフレームのグループにおけるデータフレームの数を示す値であり、4bitで表現する。MAC計算用データを含むフレーム数2323は、その一連のデータフレームのグループにおけるMAC計算用データが含まれるフレーム数を示す値であり、4bitで表現する。また、MACを含むフレーム数2324は、総フレーム数内でMACが含まれるフレーム数を示す値であり、4bitで表現する。
[2.7 エンジンに係るECU2100aの送信フレーム例]
図21は、エンジン310に接続されたECU2100aから送信されるデータフレームにおけるID(メッセージID)及びデータフィールドの内容(データ)の一例を示す図である。ECU2100aが送信するフレームのメッセージIDは「1」である。データフィールドの内容(データ)は、同図において1byte毎に空白で区分して16進数で表している。図21の例で各行の先頭の3bytesはデータフィールドヘッダー2301であり、次(4byte目)の1byteは開始フラグ302及びデータサイズ303であり、次(5byte目)の1byteは時速(km/時)を表したMAC計算用データ305(2行目のみ一般データ304)であり、図21の例の1行目及び3行目での次の1byte(6byte目)は開始フラグ302及びデータサイズ303であり、その次(7byte目)の2bytesがMAC306である。時速(km/時)は、最低0(km/時)〜最高180(km/時)までの範囲の値を取る。図21の上行から下行へと、図17で例示したMAC付与に係るパターンに従って、ECU2100aから逐次送信される各フレームに対応する各メッセージID及びデータフィールドの内容(データ)を例示しており、時速が0km/時から1km/時ずつ加速されている様子を表している。
[2.8 データフレーム送信処理]
図22は、ECU2100aにより実行されるデータフレーム送信処理を示すフローチャートである。以下、同図に即して、ECU2100aにおけるデータフレーム送信処理について説明する。なお、実施の形態1に係るECU100aによるデータフレーム送信処理(図14)と同様な処理手順(ステップ)には、図22で同じ符号を付しており、これらについては説明を適宜簡略化する。また、ECU2100b〜2100dも、送信するデータフレームの内容はそれぞれ異なるものの、ECU2100aと同様のデータフレーム送信処理を行う。ECU2100aにおいて、データフレーム送信処理は定期的に行われる。
ECU2100aは、送信すべきデータを特定して、フレーム生成部109にデータフレーム生成処理を開始させる(ステップS1001)。逐次取得される送信すべきデータが、どのようなデータ構成のデータフレームによるどのようなフレーム編成で逐次送信されるかについては、車載ネットワークシステム11として予め定められた所定アルゴリズムに従って決定される。フレーム編成及びデータ構成を定める所定アルゴリズムの例としては、上述した図17の例のように、例えば3回分の送信を1セットとして、そのうち1回目に送信するデータフレーム501と3回目に送信するデータフレーム503とを同じグループとし、1回目に送信するデータフレーム501のデータフィールド内に、時速を表したMAC計算用データ305と、このデータフレーム501及び他のデータフレーム503のMAC計算用データ305並びに他のデータフレーム503のDLCを用いた計算により、算出されたMACの一部(例えば前半2bytes)とを含ませ、2回目に送信するデータフレーム502のデータフィールド内に、時速を表した一般データ304を含ませ、3回目に、送信するデータフレーム503のデータフィールド内に時速を表したMAC計算用データ305と、上述のMACの残りの一部(例えば後半2bytes)とを含ませて送信するアルゴリズム等がある。
データフレーム生成処理として、フレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールドのデータフィールドヘッダー2301内のMAC計算対象フィールド種別312の該当箇所に、所定アルゴリズムに基づいて決定された送信すべきデータの構成を表す値を設定する(ステップS1002)。
続いてECU2100aは、送信すべきデータを、複数のデータフレームに分けて送信するために所定アルゴリズムに従って定められるフレーム数(N)に分割する(ステップS2001)。即ち、送信すべきデータの分割位置を特定する。
次にECU2100aは、所定アルゴリズムに従って送信すべきデータに応じて、Nフレーム分、各データフレームに順次着目して、データフレームについてのデータの設定(ステップS1003〜S1018)を、繰り返し行う(ステップS2002)。
即ち、ECU2100aのフレーム生成部2109は、送信すべきデータを含む送信すべきデータフレーム(着目したデータフレーム)が、一般データ304を含むフレームか否かを判断する(ステップS1003)。一般データ304を含まない場合は、一般データ関連の処理(ステップS1004〜S1007)をスキップする。ステップS1003において送信すべきデータフレームが一般データ304を含むと判断した場合には、フレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールドヘッダー2301内のデータフィールド構成種別313の一般データbitに「1」を設定する(ステップS1004)。続いてフレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールド内に、開始フラグ302として一般データを示す値を設定し(ステップS1005)、データサイズ303として一般データ304のサイズに応じた値を設定し(ステップS1006)、一般データ304を設定する(ステップS1007)。
また、フレーム生成部2109は、送信すべきデータを含む送信すべきデータフレーム(着目したデータフレーム)が、MAC計算用データ305を含むフレームか否かを判断する(ステップS1008)。MAC計算用データ305を含まない場合は、MAC計算用データ関連の処理(ステップS1009〜S1012)をスキップする。ステップS1008において送信すべきデータフレームがMAC計算用データ305を含むと判断した場合には、フレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールドヘッダー2301内のデータフィールド構成種別313のMAC計算用データbitに「1」を設定する(ステップS1009)。続いてフレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールド内に、開始フラグ302として、MAC計算用データを示す値を設定し(ステップS1010)、データサイズ303としてMAC計算用データ305のサイズに応じた値を設定し(ステップS1011)、MAC計算用データ305を設定する(ステップS1012)。
また、フレーム生成部2109は、送信すべきデータを含む送信すべきデータフレーム(着目したデータフレーム)が、MAC306を含むフレームか否かを判断する(ステップS1013)。MAC306を含まない場合は、MAC関連の処理(ステップS1014〜S1018)をスキップする。ステップS1013において送信すべきデータフレームがMAC306を含むと判断した場合には、フレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールドヘッダー2301内のデータフィールド構成種別313のMACbitに「1」を設定する(ステップS1014)。
続いてフレーム生成部2109は、MACの計算対象となるデータとして所定アルゴリズムに基づいて定められたデータ(つまりMAC計算対象フィールド種別312に設定した値に基づくデータ)をMAC処理部106に伝え、MAC処理部106はMACを算出する(ステップS1015)。MAC処理部106は、フレーム生成部2109に伝えられたMACの計算対象となるデータと、カウンタ保持部108で保持する送信カウンタ値とを結合した値に対し、MAC鍵保持部107で保持するMAC鍵を用いて計算を行うことにより、送信すべきデータフレームにMAC306として設定されるMAC値を算出する。続いてフレーム生成部2109は、送信バッファ内に定めたデータフレームにおけるデータフィールド内に、開始フラグ302として、MACを示す値を設定し(ステップS1016)、データサイズ303としてMAC306のサイズに応じた値を設定し(ステップS1017)、MAC306を設定する(ステップS1018)。所定アルゴリズムが、MACを分割して送信することを定めている場合には、このステップS1018でフレーム生成部2109は、MAC処理部106に算出されたMAC値を分割して、分割された複数のMAC306としてそれぞれ別のデータフレームのデータフィールドに設定する。
ステップS1018での処理が終了する、或いは、MAC関連の処理がスキップされた場合に、フレーム生成部2109は、1フレーム目からNフレーム目までのNフレーム分のデータフレームの生成が完了したかを判定し(ステップS2002)、完了していなければNフレーム分のうち未だ着目していないデータフレームに着目してステップS1003〜S1018の処理を繰り返す。
ステップS2002で、Nフレーム分のデータフレームの生成が完了したと判定した場合には、フレーム生成部2109は、生成したデータフレームの内容に応じて、各データフレームのデータフィールドヘッダー2301内のフレーム特性データ2311を設定する(ステップS2003)。これにより、フレーム生成部2109は、送信すべきNフレーム分のデータフレームを生成するためのデータフレーム生成処理を終えることとなり、フレーム送受信部101へ通知する(ステップS1019)。
フレーム送受信部101は、フレーム生成部2109により送信バッファに生成されたデータフレームを、バス200に送信する(ステップS1020)。フレームが正常に送信された場合に、送信カウンタ値がインクリメントされる(ステップS1021)。
[2.9 データフレーム受信処理]
図23〜図25は、ECU2100bにより実行されるデータフレーム受信処理を示すフローチャートである。以下、同図に即して、ECU2100bにおけるデータフレーム受信処理について説明する。なお、実施の形態1に係るECU100bによるデータフレーム受信処理(図15及び図16)と同様な処理手順(ステップ)には、図23〜図25で同じ符号を付しており、これらについては説明を適宜簡略化する。なお、ECU2100a、2100c、2100dも、ECU2100bと同様のデータフレーム受信処理を行う。
バス200上にフレームが送信された場合に、ECU2100bにおいてデータフレーム受信処理が開始される。
ECU2100bは、CANプロトコルに従って、バス200から1bitずつ受信し、データフレームにおけるID等を受信して処理した後にデータフィールドを受信することになる。このとき、フレーム解釈部102は、ID、DLC、データフィールド等をフレーム処理部2105へ転送し、フレーム処理部2105は、データフィールドに関連するデータ処理を開始する(ステップS1101)。なお、フレーム処理部2105では、IDによりフレームを区別し、同一IDの複数のフレームは、1つのグループとして送信される場合があり得るものとして処理する。
ECU2100bのフレーム処理部2105は、受信されたデータフレームのデータフィールドにおけるデータフィールドヘッダー2301を取得し、作業用のメモリ領域としてのバッファに保存する(ステップS1102)。
フレーム処理部2105は、データフィールドヘッダー2301に含まれるフレーム特性データ2311を確認し(ステップS2101)、フレーム特性データ2311のフレームNo.2321の値が、先に保存されているフレームNo.の値と一致するかを判定する(ステップS2102)。これにより、今回受信されたデータフィールドを含むフレームが、先行して受信されたデータフレームと同じグループとして送信されたものであるか否かを判定している。一致しなければ、その保存されているフレームNo.を受信したフレームNo.で上書きし、つまり、受信されたフレームNo.を保存し(ステップS2103)、データフレーム受信処理で用いる変数値である受信フレーム数をゼロクリアする(ステップS2104)。
ステップS2102で一致すると判断した場合及びステップS2104を実行した場合に、フレーム処理部2105は、受信フレーム数をインクリメント(1増加)する(ステップS2105)。これにより、同じグループとして送信された複数のデータフレームのうち今回受信されたデータフレームが何番目のものであるかを、受信フレーム数が指し示すようになる。なお、例外的にフレームNo.がゼロの場合についてはステップS2102〜ステップS2105の処理をスキップすることとしても良い。また、複数のグループのフレーム群が混在して送信されることを許容する必要がある場合等において、フレームNo.毎に別々に受信フレーム数を管理することとしても良い。
次にフレーム処理部2105は、受信されたデータフレームのデータフィールドにおける開始フラグ302を取得し、バッファに格納する(ステップS1103)。
続いて、フレーム処理部2105は、取得した開始フラグ302の値が、一般データ304を表すか、MAC計算用データ305を表すかそれ以外(MACを表すもの)かを判定する(ステップS1104、S1105)。
次に、フレーム処理部2105は、開始フラグ302に後続するデータサイズ303を取得し、サイズに応じてバッファを確保する(ステップS1106a、S1106b或いはS1106c)。続いて、開始フラグ302が、一般データ304を表していた場合には、一般データ304を取得してバッファに格納し(ステップS1107)、MAC計算用データ305を表していた場合には、MAC計算用データ305を取得してバッファに格納(ステップS1108)、その他の場合には、MAC306を取得してバッファに格納する(ステップS1109)。
フレーム処理部2105は、DLC及びデータフィールドに基づいて、受信したデータフィールドの全てのデータを取得し終えたかどうかを判定して、上述したステップS1103〜S1109の処理を、データフィールドの全てのデータを取得し終えるまで繰り返す(ステップS1110)。
データフィールドのデータを全て取得し終えた場合には、フレーム処理部2105は、データフィールドヘッダー2301に含まれるデータフィールド構成種別313に基づき、受信されたデータフレームの構成を確認して一般データ304のみを含むフレームであるか否かを判定する(ステップS1112)。一般データ304のみを含むフレームであると判定した場合にはフレーム処理部2105は、受信したデータの内容に応じて、予め定められた機能に係る処理を行う(ステップS1113)。ステップS1113に続いて、フレーム処理部2105は、一般データを保持しているバッファをクリアし(ステップS2106)、受信カウンタ値をインクリメントして(ステップS1119)、これによりデータフレーム受信処理が終了する。
また、ステップS1112で一般データ304のみを含むフレームではないと判定した場合にはフレーム処理部2105は、フレーム特性データ2311の総フレーム数2322が示す数分の同じグループのデータフレームを受信したか否かを、受信フレーム数に基づいて判定する(ステップS2107)。まだ総フレーム数2322が示す数分の同じグループのデータフレームを受信していないと判定した場合には、フレーム処理部2105は、受信カウンタ値をインクリメントする(ステップS1119)。
また、ステップS2107で、総フレーム数2322が示す数分の同じグループのデータフレームを受信したと判定した場合には、フレーム処理部2105は、データフィールドヘッダー2301に含まれる、MAC計算対象フィールド種別312を確認する(ステップS1114)。続いてフレーム処理部2105は、確認されたMAC計算対象フィールド種別312に応じてMACの計算対象となるデータを格納した各フィールドの値を取得(つまり既に受信した各データフレームの必要なフィールドの値をバッファから取得)することで、MACの検証に必要なデータを収集する(ステップS1115)。
フレーム処理部2105は、収集したMACの検証に必要なデータをMAC処理部106に通知して得られるMAC値によりMACの検証処理を行い、検証に成功した場合には(ステップS1116)、受信したデータの内容に応じて、予め定められた処理(データに応じた機能に係る処理)を行う(ステップS1117)。ステップS1115及びステップS1116においては、MACを算出するための計算に用いるデータに関する識別子として機能する各種フラグにより示されるデータフィールドの内容の種別が、MACを算出するための計算に用いられたデータの領域が含まれることを表す場合に、そのデータフィールドにおけるMACを算出するための計算に用いられたデータの領域(その各種フラグに応じた領域)の値を用いた計算により、検証処理を行う。
ステップS1116において、検証に成功しなかった場合には、フレーム処理部2105は、受信したデータフレームのデータフィールドのデータに応じた機能に係る処理(ステップS1117)をスキップする。
ステップS1117での処理が、終了した場合、或いは、スキップされた場合に、フレーム処理部2105は、バッファを全てクリアし(ステップS1118)、受信カウンタ値をインクリメントする(ステップS1119)。
[2.10 実施の形態2の効果]
実施の形態2で示した車載ネットワークシステム11では、複数のECU間で送受信するデータフレームのデータフィールド内に、MACを算出するための計算に用いるデータに関する識別子として機能し得るデータフィールドヘッダー2301、開始フラグ302等を含ませることにより、データフィールドに格納するデータの構成を自由に定めることを可能にした。これにより、例えばMAC計算用データ305とMAC306とを、同じフレームNo.を付与して、複数フレームのデータフィールド内に自由に分割して配置して送信すること等が可能になり、柔軟なデータ設計が可能となり、またバスのトラフィック量の増加を抑制することが可能になる。なお、MAC306を付加したMAC計算用データ305を含むデータフレームと、MACを付ける必要がない一般データ304を含むデータフレームとが同一のID(メッセージID)のフレームとして送信される場合においても、データフィールドヘッダー2301、開始フラグ302等により、MAC計算用データ305と一般データ304とを確実に識別できるため、誤って一般データ304等に対するMACの検証処理を行うこと等が防止される。
[2.11 実施の形態2の変形例1]
実施の形態2で図17により示したデータフレームへのMAC付与に係るパターンは、図26に示す例のように変形することができる。例えば、図26の左側から右側への順に各データフレームがバス200上に順次送信される。
図26で示す5つのデータフレームの例のうち、データフレーム602の例はMAC及びMAC計算用データを含んでいない。図26の例では、2つ以上のフレームに含まれるデータフィールドの値からMACを計算して算出し、分割し、分割したMACそれぞれを計算対象となったデータのいずれとも別個のフレームに格納して送信する例を示している。即ち、データフレーム601のDLC及びデータフィールドと、データフレーム603のDLC及びデータフィールドとに基づいてMACを計算して算出し、そのMACの一部をデータフレーム604に格納して送信し、そのMACの他の一部をデータフレーム605に格納して送信する例を示している。
図26の例に対応して車載ネットワークシステムで用いる、フレーム編成及びデータ構成を定める所定アルゴリズムは、例えば、5回分の送信を1セットとして、そのうち1、3〜5回目に送信するデータフレーム601、603〜605を同じグループとし、データフレーム601、603のデータフィールド内に時速等の送信すべき値を表したMAC計算用データ305を含ませ、データフレーム602のデータフィールド内に時速等の送信すべき値を表した一般データ304を含ませ、データフレーム604のデータフィールド内に、データフレーム601及びデータフレーム603のMAC計算用データ305及びDLCを用いた計算により算出されたMACの一部(例えば前半2bytes)を含ませ、データフレーム605のデータフィールド内に、上述のMACの残りの一部(例えば後半2bytes)を含ませて送信する等といったアルゴリズムである。この所定アルゴリズムについては種々の変形が可能である。また、各データフレームに分けて含ませた、送信すべき値は、必ずしも時間的に別々に生成或いは取得されたものでなくても良く、一体として生成或いは取得されたものであっても良いし、同時期に個別に生成或いは取得されたものであっても良い。また、各データフレームは必ずしも定期的に(つまり時間的に一定間隔で)送信される必要はない。
なお、図26のMAC付与に係るパターンの例に対応するように、フレーム編成及びデータ構成を定める所定アルゴリズムの内容を変更した以外の点においては、変形例1における車載ネットワークシステムの各ECUの構成及び動作は、上述したECU2100a〜2100dと同様である。但し、図26の例に対応するように、フレーム編成及びデータ構成を定める所定アルゴリズムとして、先行するデータフレーム内のデータフィールド以外(IDフィールド或いはDLC)を用いて後続するデータフレーム内のMACの算出を可能にする場合には、次のようにデータフレーム受信処理を変形しても良い。即ち、データフレーム受信処理のステップS2107(図25)で、総フレーム数2322が示す数分の同じグループのデータフレームを受信していないと判定した場合において、フレーム処理部2105は、後に受信するフレームでのMACの算出のための計算にIDフィールド或いはDLCが用いられ得るために、IDフィールド及びDLCの内容をバッファに格納しておくこととしても良い。
[2.12 実施の形態2の変形例1の効果]
変形例1に係る車載ネットワークシステムでは、MAC計算用データ305を含ませたフレームと、そのMAC計算用データ305から計算したMAC306を含ませたフレームとを別々に分離して送信することが可能となり、これにより、送信側、受信側それぞれのECUにおいて単位時間あたりのフレームの処理負荷が軽減(分散)される効果が生じ得る。
[2.13 実施の形態2の変形例2]
実施の形態2で図17により示したデータフレームへのMAC付与に係るパターンは、図27に示す例のように変形することもできる。
図27で示す5つのデータフレームの例のうち、データフレーム612の例はMAC及びMAC計算用データを含んでいない。図27の例では、2つ以上のフレームに含まれるデータフィールドの値からMACを計算して算出し、分割し、分割したMACそれぞれを計算対象となったデータのいずれとも別個のフレームに、一般データとともに格納して送信する例を示している。即ち、データフレーム611のデータフィールドと、データフレーム613のデータフィールドとに基づいてMACを計算して算出し、そのMACの一部を一般データ(つまりMACの算出のための計算に用いられないデータ)とともにデータフレーム614に格納して送信し、そのMACの他の一部を一般データとともにデータフレーム615に格納して送信する例を示している。
図27の例に対応して車載ネットワークシステムで用いる、フレーム編成及びデータ構成を定める所定アルゴリズムは、例えば、5回分の送信を1セットとして、そのうち1、3〜5回目に送信するデータフレーム611、613〜615を同じグループとし、データフレーム611、613のデータフィールド内に時速等の送信すべき値を表したMAC計算用データ305を含ませ、データフレーム612のデータフィールド内に時速等の送信すべき値を表した一般データ304を含ませ、データフレーム614のデータフィールド内に、一般データ304と、データフレーム611及びデータフレーム613のMAC計算用データ305を用いた計算により算出されたMACの一部(例えば前半2bytes)とを含ませ、データフレーム615のデータフィールド内に、一般データ304と上述のMACの残りの一部(例えば後半2bytes)とを含ませて送信する等といったアルゴリズムである。この所定アルゴリズムについては種々の変形が可能である。また、各データフレームに分けて含ませた、送信すべき値は、必ずしも時間的に別々に生成或いは取得されたものでなくても良く、一体として生成或いは取得されたものであっても良いし、同時期に個別に生成或いは取得されたものであっても良い。また、各データフレームは必ずしも定期的に(つまり時間的に一定間隔で)送信される必要はない。
なお、図27のMAC付与に係るパターンの例に対応するように、フレーム編成及びデータ構成を定める所定アルゴリズムの内容を変更した以外の点においては、変形例2における車載ネットワークシステムの各ECUの構成及び動作は、上述したECU2100a〜2100dと同様である。
[2.14 実施の形態2の変形例2の効果]
変形例2に係る車載ネットワークシステムでは、MAC計算用データ305を含ませたフレームと、そのMAC計算用データ305から計算したMAC306を含ませたフレームとを時間的にずらして送受信することが可能となり、また、例えばMAC306を送る時点で送信可能となった一般データをMACとともに送信することが可能になる。これにより、全体としてフレーム送受信の完了を早めることが可能となる。
[2.15 実施の形態2の変形例3]
実施の形態2で図17により示したデータフレームへのMAC付与に係るパターンは、図28に示す例のように変形することもできる。
図28で示す4つのデータフレームの例のうち、データフレーム624の例はMAC及びMAC計算用データを含んでいない。図28の例では、2つ以上のフレームに含まれるデータフィールドの値からMACを計算して算出し、MACを計算対象となったデータのいずれとも別個のフレームに、一般データとともに格納して送信する例を示している。即ち、データフレーム621のデータフィールドと、データフレーム623のデータフィールドとに基づいてMACを計算して算出し、そのMACを一般データ(つまりMACの算出のための計算に用いられないデータ)とともにデータフレーム622に格納して送信し、最後のデータフレーム624では一般データのみをデータフィールドに格納して送信する例を示している。
図28の例に対応して車載ネットワークシステムで用いる、フレーム編成及びデータ構成を定める所定アルゴリズムは、例えば、4回分の送信を1セットとして、その全てのデータフレーム621〜624を同じグループとし、データフレーム621、623のデータフィールド内に時速等の送信すべき値を表したMAC計算用データ305を含ませ、データフレーム622のデータフィールド内に、一般データ304と、データフレーム621及びデータフレーム623のMAC計算用データ305を用いた計算により算出されたMACを含ませ、データフレーム624のデータフィールド内に時速等の送信すべき値を表した一般データ304を含ませて送信する等といったアルゴリズムである。この所定アルゴリズムについては種々の変形が可能である。また、各データフレームに分けて含ませた、送信すべき値は、必ずしも時間的に別々に生成或いは取得されたものでなくても良く、一体として生成或いは取得されたものであっても良いし、同時期に個別に生成或いは取得されたものであっても良い。また、各データフレームは必ずしも定期的に(つまり時間的に一定間隔で)送信される必要はない。
なお、図28のMAC付与に係るパターンの例に対応するように、フレーム編成及びデータ構成を定める所定アルゴリズムの内容を変更した以外の点においては、変形例3における車載ネットワークシステムの各ECUの構成及び動作は、上述したECU2100a〜2100dと同様である。但し、上述の実施の形態2ではデータフレーム受信処理のステップS2107(図25)で、総フレーム数2322を用いて、受信したデータフレームの数の判定を行っているが、変形例3においては、MAC計算用データを含むフレーム数2323及びMACデータを含むフレーム数2324(図20)を用いてMACの検証処理を開始できるタイミングを判定することとする。これにより、受信したフレーム数が総フレーム数2322に達するより前に、MACの検証処理を開始することができる。このために、例えばMACの計算対象となるデータ以外のデータを、MACを含むデータフレームより後に送信するデータフレームに配置するように、フレーム編成を定めることが有用となる。なお、MAC計算用データを含むフレーム数2323及びMACデータを含むフレーム数2324の代わりにフレーム特性データ2311に、1つのグループに属する複数のデータフレーム(つまり同じフレームNo.を付したデータフレーム)のうち、何番目のデータフレームまで受信したらMACの検証処理を開始できるかを示す情報を含ませることとして、これに基づいてECUがMACの検証処理を開始するタイミングを判定するようにしても良い。
[2.16 実施の形態2の変形例3の効果]
変形例3に係る車載ネットワークシステムでは、受信したフレーム数が総フレーム数2322に達する前にECUがMACの検証処理を開始し得るので、フレーム送受信の完了を早めることが可能となる。
[2.17 補足]
以上、各種のMAC付与に係るパターンについて説明したが、これらは例示に過ぎず多様なパターンを任意のタイミングで用いることができる。なお、MACが単一のフレームに含まれている状態(つまりこのフレームを受信すると直ちにMACの検証が可能な状態)をシングルフレームと呼ぶ。また、MACが複数のフレームに分割されている状態をマルチフレームと呼ぶ。
ECUでは、送信されるデータについてのフレーム編成及びデータ構成を定める所定アルゴリズムとして、データを、シングルフレームで送信するか、マルチフレームで送信するかを、任意に決定し、任意のタイミングで切り替える様々なアルゴリズムを用いることができる。
(他の実施の形態)
以上のように、本開示に係る技術の例示として実施の形態1、2及び変形例1〜3を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施態様に含まれる。
(1)上記実施の形態で示したMACの付与に係るパターンは、フレームのID毎に別個のパターンであっても良い。また、フレームのIDが同じであっても、MACの付与に係るパターンは、1パターンに限られず、随時変更することとしても良い。例えば、MACの付与に係るパターンを実現すべく予め定められた、フレーム編成及びデータ構成を定める所定アルゴリズムを複数用いて、逐次その所定アルゴリズムを切り替えることで、MACの付与に係るパターンを変更しても良い。この変更タイミングは、定期的でもランダムでも良い。また、バス占有率の状況に応じて、MACの付与に係るパターンを変更しても良い。
(2)上記実施の形態では、MACの付与に係るパターンとして、ECUが送信するフレームにMACを付与する回数、或いは、送信するフレームにMAC計算用データを含ませる回数を減らした例(間引いた例)を示したが、この他に、フレームを受信側のECUにおいて、MACの検証処理を行う回数を間引くようにしても良い。また、受信側のECUにおける処理の変更を指示するためのデータを送信側のECUがフレームに含めて送信することとしても良い。
(3)上記実施の形態では、ID、DLC、データフィールドのデータ値及びカウンタ値をMACの計算に用いることができる旨を示したが、データフレームに含まれる他のフィールドの値を用いて計算しても良く、これらのいずれか1つの値或いは複数の値の組み合わせからMACの計算を行っても良い。また、フレームに含まれるMACのサイズは、特定のサイズに制限されるものではなく、送信毎に異なるサイズであっても良いし、メッセージID毎に異なるサイズであっても良い。また、同様に時速等のデータ値のサイズ及びカウンタ値のサイズも特定のサイズに制限されるものではない。
(4)上記実施の形態では、カウンタ値を送受信毎にインクリメントする例を示したが、カウンタ値が時刻に応じて自動的にインクリメントされる値であっても良い。また、時刻そのものの値をカウンタ値の代わりに使用しても良い。即ち、データフレームが送信される度に変化する変数(カウンタ値、時刻等)に基づいてMACが生成されるようにすると、MACの不正な解読を困難化することが可能となる。また、送信カウンタ値は、MACデータを生成する度にインクリメントされることとしても良いし、受信カウンタ値は、MACを検証する度にインクリメントされることとしても良い。
(5)上記実施の形態では、CANプロトコルにおけるデータフレームを標準IDフォーマットで記述しているが、拡張IDフォーマットで合っても良い。
(6)上記実施の形態では、各種フラグをCANプロトコルにおけるデータフレームのデータフィールドに含めて記述しているが、拡張IDフィールドに格納するとしても良い。また、その他のフィールドに含めても良い。
(7)上記実施の形態では、MAC算出のアルゴリズムをHMACとしているが、これはCBC−MAC(Cipher Block Chaining Message Authentication Code)、CMAC(Cipher-based MAC)であっても良い。また、MAC計算に用いられるパディングについては、ゼロパディング、ISO10126、PKCS#1、PKCS#5、PKCS#7、その他、ブロックのデータサイズが計算に必要となるパディングの方式であれば何でも良い。また4bytes等のブロックへのサイズの変更方法についても、先頭、最後尾、中間のいずれの部分にパディングを行っても良い。また、MAC算出に用いるデータは、連続しているデータ(例えば4bytes分の連続データ)でなくても、特定のルールに従って1bitずつ収集して結合したものでも良い。
(8)上記実施の形態では、MAC鍵をメッセージID毎に1つ保持しているが、ECU毎(つまり1以上のメッセージID群毎)に1つであっても良い。また、全てのECUが同じMAC鍵を保持している必要はない。また、同一のバスに接続された各ECUは、共通のMAC鍵を保持していても良い。但し、同じメッセージIDのフレームを送信するECUとそのフレームを受信して検証するECUとでは同じMAC鍵を保持する必要がある。また、上記実施の形態では、カウンタ値(送信カウンタ値、受信カウンタ値)をメッセージID毎に1つ保持しているが、ECU毎(つまり1以上のメッセージID群毎)に1つであっても良い。また、同一のバス上を流れる全てのフレームに対して共通のカウンタ値を使用しても良い。
(9)上記実施の形態では、送信カウンタ値はMACの算出のために使用しているが、ECUは、その送信カウンタ値の全部又は一部をデータフィールドに含めて送信しても良い。
(10)上記実施の形態では、ECU間で送受信されるデータフレームに対して、受信したECUがMACの検証を行っているが、車載ネットワークシステムにおいて、全てのデータフレームに付与されたMACについて検証を行うMAC検証用ECUを含んでいても良い。このMAC検証用ECUは、例えば、全てのメッセージIDに対応するMAC鍵と、カウンタ値とを保持する。MAC検証用ECUは、MAC検証の結果、エラーと判定(つまり検証失敗と判定)した場合に、他のECUでの受信を防止するため、エラーフレームを送信することとしても良い。
(11)上記実施の形態で示したデータフィールドヘッダー301、2301、開始フラグ302等の各種フラグ(MACを算出するための計算に用いるデータに関する識別子として機能し得るフラグ)の配置、表現形式等は一例にすぎない。このため、例えば、データフィールドヘッダー301、2301をデータフィールドの先頭以外の所定位置に定めても良いし、その各種フラグと同内容を異なる表現形式で定めても良い。なお、この各種フラグは、MACを算出するための計算に用いるデータに関する識別子としては、例えば、MACの検証が必要か否かの識別情報、或いは、MACの計算対象となるデータの領域の情報(例えばデータフィールドの内容の種別、各種別のデータの領域の位置、データサイズ等の情報)等の検証を行うために必要な情報を特定する機能を有する。
(12)上記実施の形態で示した、フレーム編成及びデータ構成を定める所定アルゴリズムは、例えばECUで制御プログラムを実行するプロセッサにより実現される。この所定アルゴリズムに係る制御プログラムを格納した記憶媒体(メモリ等)がECUに搭載されていても良いし、ECUが外部からその制御プログラムを取得して記憶媒体に格納して利用しても良い。
(13)上記実施の形態では、各ECUはデータフレームを送信することとしたが、車載ネットワークシステムは、データフレームを受信するのみでデータフレームを送信しないECUを含んでいても良い。また逆に、車載ネットワークシステムは、データフレームを送信するのみで、データフレームを受信しないECUを含んでいても良い。
(14)上記実施の形態で示したCANプロトコルは、TTCAN(Time-Triggered CAN)、CANFD(CAN with Flexible Data Rate)等の派生的なプロトコルをも包含する広義の意味を有するものであっても良い。
(15)上記実施の形態におけるMAC鍵保持部及びカウンタ保持部は、CANコントローラと呼ばれるハードウェアのレジスタ、または、CANコントローラと接続して動作するマイコン上で動作するファームウェアに格納されていても良い。
(16)上記実施の形態における各ECUは、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
(17)上記実施の形態における各装置(ECU等)を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
(18)上記各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
(19)本開示の一態様としては、上記に示す送信方法或いは受信方法であるとしても良い。また、この方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標)Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本開示の一態様としては、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本開示の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
(20)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本開示の範囲に含まれる。
本開示は、車載ネットワークシステムにおいて送受信するメッセージのセキュリティを確保するために利用可能である。
10 車載ネットワークシステム
100a〜100d,2100a 電子制御ユニット(ECU)
101 フレーム送受信部
102 フレーム解釈部
103 受信ID判断部
104 受信IDリスト保持部
105,2105 フレーム処理部
106 MAC処理部
107 MAC鍵保持部
108 カウンタ保持部
109,2109 フレーム生成部
110 データ取得部
200 バス
310 エンジン
320 ブレーキ
330 ドア開閉センサ
340 窓開閉センサ
301,2301 データフィールドヘッダー
302 開始フラグ
303 データサイズ
304 一般データ
305 MAC計算用データ
306 MACデータ
311 予約bit
312 MAC計算対象フィールド種別
313 データフィールド構成種別
2311 フレーム特性データ
2321 フレーム番号(フレームNo.)
2322 総フレーム数
2323 MAC計算用データを含むフレーム数
2324 MACを含むフレーム数

Claims (19)

  1. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムであって、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを前記バスにより送信する第1電子制御ユニットと、
    前記バス上で送信された1又は複数のデータフレームを受信し、受信したデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う第2電子制御ユニットとを備える車載ネットワークシステム。
  2. 前記第1電子制御ユニットは、送信する前記1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により算出したメッセージ認証コードを、当該1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませて送信し、
    前記第1電子制御ユニットに送信される前記1又は複数のデータフレームに含まれる前記識別子は、前記メッセージ認証コードを算出するための計算に用いられた、当該1又は複数のデータフレーム内の1以上のデータの領域を、示す情報を含み、
    前記第2電子制御ユニットは、前記識別子により示される領域のデータを用いた計算により、前記検証処理を行う
    請求項1記載の車載ネットワークシステム。
  3. 前記第1電子制御ユニットは、前記メッセージ認証コードを、送信する複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により算出し、算出したメッセージ認証コードを当該複数のデータフレームのうちの少なくとも1つのデータフレームに含ませて送信し、
    前記第1電子制御ユニットに送信される前記複数のデータフレームに含まれる前記識別子は、当該複数のデータフレームの数を示す情報を含み、
    前記第2電子制御ユニットは、受信したいずれかのデータフレームに含まれる前記識別子により示される数のデータフレームを受信した場合において、受信された各データフレームにおける前記識別子により示される領域のデータを用いた計算により、前記検証処理を行う
    請求項2記載の車載ネットワークシステム。
  4. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる受信方法であって、
    前記バス上で送信された、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを受信する受信ステップと、
    前記受信ステップで1又は複数のデータフレームが受信された場合に、受信されたデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う検証ステップとを含む
    受信方法。
  5. 前記受信ステップで受信されるデータフレームにおける前記識別子は、当該データフレームのデータフィールドの内容の種別を示す
    請求項4記載の受信方法。
  6. 前記受信ステップで受信される前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームにはメッセージ認証コードが含まれ、
    前記受信ステップで受信されるデータフレームにおける前記識別子により示される、データフィールドの内容の前記種別は、当該データフィールドに、メッセージ認証コードを算出するための計算に用いられたデータの領域が含まれるか否かを表し、
    前記検証ステップでは、前記識別子により示されるデータフィールドの内容の前記種別が、メッセージ認証コードを算出するための計算に用いられたデータの領域が含まれることを表す場合に、当該データフィールドにおけるメッセージ認証コードを算出するための計算に用いられたデータの領域の値を用いた計算により、前記検証処理を行う
    請求項5記載の受信方法。
  7. 前記受信ステップで受信されるデータフレームにおける前記識別子は、当該データフレームのデータフィールドにおける一の種別のデータの領域を示す
    請求項4記載の受信方法。
  8. 前記受信ステップで受信される前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームにはメッセージ認証コードが含まれ、
    前記受信ステップで受信されるデータフレームにおける前記識別子により示される前記一の種別のデータの領域は、メッセージ認証コードを算出するための計算に用いられたデータの領域であり、
    前記検証ステップでは、前記識別子により示される領域のデータを用いた計算により、前記検証処理を行う
    請求項7記載の受信方法。
  9. 前記受信ステップで受信されるデータフレームにおける前記識別子は当該データフレームのデータフィールドに配置されており、
    前記検証ステップでは、受信されたデータフレームのデータフィールド内の前記識別子に応じて前記検証処理を行う
    請求項4記載の受信方法。
  10. 前記1又は複数のデータフレームに含まれる前記識別子は、当該1又は複数のデータフレーム内の1以上のデータの領域を、示す情報を含み、
    前記検証ステップでは、前記受信ステップで受信されたデータフレームにおける前記識別子に応じた領域のデータを用いた計算により、前記検証処理を行う
    請求項4記載の受信方法。
  11. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる送信方法であって、
    1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により、送信内容の正当性を示すためのメッセージ認証コードを算出する算出ステップと、
    前記算出ステップで算出されたメッセージ認証コードを前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、当該メッセージ認証コードを算出するための計算に用いられたデータに関する識別子を含ませた当該1又は複数のデータフレームを送信する送信ステップとを含む
    送信方法。
  12. 前記送信ステップで送信するデータフレームにおける前記識別子は、当該データフレームのデータフィールドの内容の種別を示す
    請求項11記載の送信方法。
  13. 前記送信ステップで送信するデータフレームにおける前記識別子により示される、データフィールドの内容の前記種別は、当該データフィールドに、前記算出ステップで前記メッセージ認証コードを算出するための計算に用いられたデータの領域が含まれるか否かを表す
    請求項12記載の送信方法。
  14. 前記送信ステップで送信するデータフレームにおける前記識別子は、当該データフレームのデータフィールドにおける一の種別のデータの領域を示す
    請求項11記載の送信方法。
  15. 前記送信ステップで送信するデータフレームにおける前記識別子により示される前記一の種別のデータの領域は、前記算出ステップで前記メッセージ認証コードを算出するための計算に用いられたデータの領域である
    請求項14記載の送信方法。
  16. 前記送信ステップでは、前記識別子を、送信するデータフレームのデータフィールドに配置する
    請求項11記載の送信方法。
  17. 前記送信ステップで送信する前記1又は複数のデータフレームに含まれる前記識別子は、前記メッセージ認証コードを算出するための計算に用いられた、当該1又は複数のデータフレーム内の1以上のデータの領域を、示す情報を含む
    請求項11記載の送信方法。
  18. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、
    前記バス上で送信された、送信内容の正当性を示すメッセージ認証コードを算出するための計算に用いるデータに関する識別子を含む1又は複数のデータフレームを受信する受信部と、
    前記受信部により1又は複数のデータフレームが受信された場合に、受信されたデータフレームの前記識別子に応じてメッセージ認証コードの検証処理を行う検証部とを備える
    電子制御ユニット。
  19. CAN(Controller Area Network)プロトコルに従ってバスを介して通信する電子制御ユニットであって、
    1又は複数のデータフレーム内の1以上の領域に配置されるデータを用いた計算により、送信内容の正当性を示すためのメッセージ認証コードを算出する算出部と、
    前記算出部により算出されたメッセージ認証コードを前記1又は複数のデータフレームのうちの少なくとも1つのデータフレームに含ませ、当該メッセージ認証コードを算出するための計算に用いられたデータに関する識別子を含ませた当該1又は複数のデータフレームを送信する送信部とを備える
    電子制御ユニット。
JP2016532409A 2014-07-10 2015-05-19 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法 Active JP6396464B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462022741P 2014-07-10 2014-07-10
US62/022,741 2014-07-10
JP2015059387 2015-03-23
JP2015059387 2015-03-23
PCT/JP2015/002506 WO2016006150A1 (ja) 2014-07-10 2015-05-19 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法

Publications (2)

Publication Number Publication Date
JPWO2016006150A1 true JPWO2016006150A1 (ja) 2017-04-27
JP6396464B2 JP6396464B2 (ja) 2018-09-26

Family

ID=55063812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016532409A Active JP6396464B2 (ja) 2014-07-10 2015-05-19 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法

Country Status (5)

Country Link
US (2) US11113382B2 (ja)
EP (2) EP3876481B1 (ja)
JP (1) JP6396464B2 (ja)
CN (3) CN106464557B (ja)
WO (1) WO2016006150A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016006150A1 (ja) * 2014-07-10 2016-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法
JP2016174243A (ja) * 2015-03-16 2016-09-29 カルソニックカンセイ株式会社 通信システム
KR101638613B1 (ko) * 2015-04-17 2016-07-11 현대자동차주식회사 차량용 네트워크의 침입 탐지 시스템(ids) 및 그 제어방법
EP3314586A2 (en) * 2015-06-25 2018-05-02 Diebold Nixdorf, Incorporated Automated banking machine firmware flow control
JP6585001B2 (ja) * 2015-08-31 2019-10-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知方法、不正検知電子制御ユニット及び不正検知システム
JP6260064B2 (ja) * 2016-03-14 2018-01-17 Kddi株式会社 通信ネットワークシステム及び車両
US10124750B2 (en) * 2016-04-26 2018-11-13 Honeywell International Inc. Vehicle security module system
US10630481B2 (en) * 2016-11-07 2020-04-21 Ford Global Technologies, Llc Controller area network message authentication
JP6981755B2 (ja) * 2017-01-25 2021-12-17 トヨタ自動車株式会社 車載ネットワークシステム
WO2018173603A1 (ja) * 2017-03-21 2018-09-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 更新処理方法、車載ネットワークシステムおよび電子制御ユニット
SG10201705960QA (en) * 2017-07-20 2019-02-27 Huawei Int Pte Ltd System and method for managing secure communications between modules in a controller area network
US11036853B2 (en) * 2017-08-02 2021-06-15 Enigmatos Ltd. System and method for preventing malicious CAN bus attacks
US10951411B2 (en) * 2017-08-23 2021-03-16 Semiconductor Components Industries, Llc Methods and apparatus for a password-protected integrated circuit
WO2019159788A1 (en) * 2018-02-16 2019-08-22 Nec Corporation Integrity protection for user plane data in 5g network
US10802902B2 (en) * 2018-10-23 2020-10-13 GM Global Technology Operations LLC Notification of controller fault using message authentication code
US11369944B2 (en) 2018-10-23 2022-06-28 Ut-Battelle, Llc Organic polymer compositions for removal of oxoanions from aqueous solutions
US10958470B2 (en) * 2018-11-06 2021-03-23 Lear Corporation Attributing bus-off attacks based on error frames
JP2020077300A (ja) * 2018-11-09 2020-05-21 日本電信電話株式会社 分散深層学習システムおよびデータ転送方法
US11201878B2 (en) * 2018-11-13 2021-12-14 Intel Corporation Bus-off attack prevention circuit
RU2726884C1 (ru) 2019-02-07 2020-07-16 Акционерное общество "Лаборатория Касперского" Система и способ контроля доступа к кибер-физической системе
KR20200131639A (ko) * 2019-05-14 2020-11-24 현대자동차주식회사 게이트웨이 장치 및 그 제어방법
JPWO2020250728A1 (ja) * 2019-06-10 2020-12-17
IT201900023544A1 (it) * 2019-12-10 2021-06-10 Fpt Ind Spa Metodo e sistema di scambio di dati su una rete per incrementare misure di sicurezza della rete, veicolo comprendente tale sistema
CN111464416A (zh) * 2020-04-08 2020-07-28 东莞全职数控科技有限公司 一种基于ttcan通信的总线协议
US20230327907A1 (en) * 2020-10-19 2023-10-12 Nissan Motor Co., Ltd. Relay device, communication network system, and communication control method
DE102022211585A1 (de) 2022-11-02 2024-05-02 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung, Übertragungseinrichtung und Verfahren zum Senden von Nachrichten, Vorrichtung, Übertragungseinrichtung und Verfahren zum Empfangen von Nachrichten, Fahrzeug, umfassend die Übertragungseinrichtungen oder die Vorrichtungen

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013175633A1 (ja) * 2012-05-25 2013-11-28 トヨタ自動車 株式会社 通信装置、通信システム及び通信方法
US20140185463A1 (en) * 2011-06-10 2014-07-03 Robert Bosch Gmbh Connecting node for a communications network

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0779343B2 (ja) * 1988-03-04 1995-08-23 日本電気株式会社 端末識別子管理方法及び装置
AU2002365791B2 (en) * 2001-12-05 2007-02-15 3G Licensing S.A. Error detection code generating method and error detection code generator
ES2541544T3 (es) * 2006-02-17 2015-07-21 Microchip Technology Germany Gmbh Sistema y procedimiento para transferir paquetes de datos a través de un sistema de comunicación
CN100508471C (zh) * 2006-02-28 2009-07-01 大星电机工业株式会社 控制器局域网网络控制系统及其检测与调试方法
JP2008227741A (ja) * 2007-03-09 2008-09-25 Auto Network Gijutsu Kenkyusho:Kk 車載用通信システム
JP5310138B2 (ja) * 2009-03-13 2013-10-09 株式会社デンソー 車両制御システム
US20110001356A1 (en) * 2009-03-31 2011-01-06 Gridpoint, Inc. Systems and methods for electric vehicle grid stabilization
EP2339790A1 (en) * 2009-12-28 2011-06-29 Nxp B.V. Definition of wakeup bus messages for partial networking
CN102340432B (zh) * 2010-07-21 2012-11-28 浙江吉利汽车研究院有限公司 一种车载can总线标准格式标识符的分配方法
JP5717240B2 (ja) * 2010-08-09 2015-05-13 国立大学法人名古屋大学 通信システム及び通信装置
CN201965482U (zh) * 2010-10-21 2011-09-07 斯必克机电产品(苏州)有限公司 汽车故障诊断功能的分类与授权系统
US8750306B2 (en) * 2010-11-03 2014-06-10 Broadcom Corporation Network management module for a vehicle communication network
CN102006625B (zh) * 2010-11-10 2013-07-17 清华大学 基于前向纠错的车载自组网可靠广播协议的系统及方法
JP5640853B2 (ja) * 2011-03-24 2014-12-17 ヤマハ株式会社 通信システム、ルータ、スイッチングハブ、およびプログラム
CN103620574B (zh) * 2011-04-06 2016-08-31 罗伯特·博世有限公司 用于提高串行总线系统中的数据传输容量的方法和设备
US9563388B2 (en) * 2011-04-12 2017-02-07 International Business Machines Corporation Sharing a hosted device in a computer network
JP5736980B2 (ja) * 2011-06-08 2015-06-17 住友電気工業株式会社 路側通信機、無線通信システム、無線信号の受信方法及びコンピュータプログラム
KR101269086B1 (ko) * 2011-08-22 2013-05-29 고려대학교 산학협력단 차량용 데이터의 인증 및 획득 방법 및 시스템
US8925083B2 (en) * 2011-10-25 2014-12-30 GM Global Technology Operations LLC Cyber security in an automotive network
US9280653B2 (en) * 2011-10-28 2016-03-08 GM Global Technology Operations LLC Security access method for automotive electronic control units
JP5770602B2 (ja) 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
DE102011088812A1 (de) * 2011-12-16 2013-06-20 Ge Energy Power Conversion Gmbh Verfahren zum Übertragen von Nutzdaten
EP2850862B1 (en) * 2012-05-15 2018-10-03 Telefonaktiebolaget LM Ericsson (publ) Secure paging
KR101549034B1 (ko) * 2012-08-17 2015-09-01 고려대학교 산학협력단 Can에서 데이터의 기밀성과 무결성을 보장하는 방법
US9288048B2 (en) * 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
WO2015170452A1 (ja) * 2014-05-08 2015-11-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット及び更新処理方法
EP3142291B1 (en) * 2014-05-08 2019-02-13 Panasonic Intellectual Property Corporation of America On-vehicle network system, fraud-detection electronic control unit, and method for tackling fraud
JP6199335B2 (ja) * 2014-06-05 2017-09-20 Kddi株式会社 通信ネットワークシステム及びメッセージ検査方法
WO2016006150A1 (ja) * 2014-07-10 2016-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140185463A1 (en) * 2011-06-10 2014-07-03 Robert Bosch Gmbh Connecting node for a communications network
WO2013175633A1 (ja) * 2012-05-25 2013-11-28 トヨタ自動車 株式会社 通信装置、通信システム及び通信方法

Also Published As

Publication number Publication date
CN111478836B (zh) 2024-02-20
EP3876481B1 (en) 2023-08-02
EP3169021A1 (en) 2017-05-17
US20170109521A1 (en) 2017-04-20
JP6396464B2 (ja) 2018-09-26
WO2016006150A1 (ja) 2016-01-14
US11113382B2 (en) 2021-09-07
CN111464414A (zh) 2020-07-28
CN106464557A (zh) 2017-02-22
US20210365542A1 (en) 2021-11-25
EP3169021B1 (en) 2021-06-23
US11971978B2 (en) 2024-04-30
CN111478836A (zh) 2020-07-31
EP3876481A1 (en) 2021-09-08
CN106464557B (zh) 2020-04-24
EP3169021A4 (en) 2017-07-05

Similar Documents

Publication Publication Date Title
JP6396464B2 (ja) 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法
JP6377143B2 (ja) 車載ネットワークシステム、電子制御ユニット及び更新処理方法
JP6099802B2 (ja) ネットワーク通信システム、不正検知電子制御ユニット及び不正対処方法
JP6787697B2 (ja) ゲートウェイ装置、車載ネットワークシステム及び転送方法
JP6713415B2 (ja) 鍵管理方法、車載ネットワークシステム及び鍵管理装置
CN110406485B (zh) 非法检测方法及车载网络系统
JP2021016186A (ja) ゲートウェイ装置、車載ネットワークシステム及び転送方法
JP6698190B2 (ja) 不正対処方法、不正検知電子制御ユニット、および、ネットワーク通信システム
CN111492625B (zh) 非法检测方法以及非法检测装置
CN117997670A (zh) Can控制器、can装置和用于can控制器的方法

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A5211

Effective date: 20161209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180829

R150 Certificate of patent or registration of utility model

Ref document number: 6396464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150