CN111478836B - 车载网络***、电子控制单元、接收方法以及发送方法 - Google Patents
车载网络***、电子控制单元、接收方法以及发送方法 Download PDFInfo
- Publication number
- CN111478836B CN111478836B CN202010253999.6A CN202010253999A CN111478836B CN 111478836 B CN111478836 B CN 111478836B CN 202010253999 A CN202010253999 A CN 202010253999A CN 111478836 B CN111478836 B CN 111478836B
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- mac
- calculation
- identifier
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 108
- 238000004364 calculation method Methods 0.000 claims abstract description 224
- 238000012545 processing Methods 0.000 claims abstract description 149
- 230000005540 biological transmission Effects 0.000 claims abstract description 138
- 238000012795 verification Methods 0.000 claims abstract description 82
- 230000008569 process Effects 0.000 claims description 53
- 239000000872 buffer Substances 0.000 description 35
- 238000004422 calculation algorithm Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 29
- 238000012986 modification Methods 0.000 description 22
- 230000004048 modification Effects 0.000 description 22
- 238000004590 computer program Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 239000000470 constituent Substances 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 239000003550 marker Substances 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013524 data verification Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 1
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric 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/02—Electric 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/023—Electric 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/0231—Circuits relating to the driving or the functioning of the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols 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协议即控制器局域网络协议并经由总线进行通信,第一电子控制单元通过总线发送包含识别符(MAC计算对象字段类别、开始标记等)的一个或多个数据帧,所述识别符是关于在用于算出消息认证码(MAC)的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性,第二电子控制单元接收在总线上发送的一个或多个数据帧,并根据接收到的数据帧的识别符,进行消息认证码的验证处理。
Description
本申请是申请日为2015年5月19日、申请号为201580025316.9、发明名称为:“车载网络***、电子控制单元、接收方法以及发送方法”的中国专利申请的分案申请。
技术领域
本公开涉及在车载网络中收发消息的技术。
背景技术
近年来,在汽车中的***内,配置有多个称为电子控制单元(ECU:ElectronicControl Unit)的装置。将连接这些ECU的网络称为车载网络。车载网络存在多种标准。其中最主流的一种车载网络中,存在由ISO11898-1规定的CAN(Controller Area Network:控制器局域网络)这样的标准(参照“非专利文献1”)。
在CAN中,通信路径由两条总线构成,与总线连接的ECU称为节点。与总线连接的各节点收发被称为帧的消息。发送帧的发送节点通过向两条总线施加电压,使总线间产生电位差,从而发送被称为隐性的“1”的值和被称为显性的“0”的值。多个发送节点在完全相同的定时发送了隐性和显性的情况下,优先发送显性。接收节点在接收到的帧的格式存在异常的情况下,发送被称为错误帧的帧。错误帧是通过连续地发送6个显性位,从而向发送节点和/或其他接收节点通知帧的异常的帧。
另外,在CAN中不存在指示发送目的地和/或发送源的识别符,发送节点向每帧附加被称为消息ID的ID并发送(也就是说,向总线送出信号),各接收节点仅接收预先确定的消息ID(也就是说,从总线读取信号)。另外,采用CSMA/CA(Carrier Sense MultipleAccess:载波侦听多址访问/Collision Avoidance:避免碰撞)方式,在多个节点的同时发送时,进行利用消息ID的仲裁,并优先发送消息ID的值小的帧。
此外,在车载网络中,通过非法节点与总线连接,且非法节点非法地发送帧,而导致有可能非法地控制车体。为了防止由这样的非法帧的发送导致的控制,一般已知有如下技术:向CAN的数据字段附加消息认证码(MAC:Message Authentication Code)进行发送(参照“专利文献1”)。
在先技术文献
专利文献
专利文献1:日本特开2013-98719号公报
非专利文献
非专利文献1:CAN Specification 2.0part A,[online],CAN in Automation(CiA),[2014年11月14日检索],互联网(URL:http://www.can-cia.org/fileadmin/cia/specifications/CAN20A.pdf)
非专利文献2:RFC2104 HMAC:Keyed-Hashing for Message Authentication
发明内容
发明要解决的问题
但是,在CAN的帧中,不存在附加MAC的字段,CAN中的数据字段少至8字节。当在各帧的数据字段中存储MAC时,可能产生如下情况:应发送数据不保持在数据字段中,必须分割在多个帧中进行发送。在该情况下,流经总线的帧数增加,导致总线的流量的增加。
因此,本公开提供一种提高收发的消息(帧)的安全性,且抑制总线的流量的增加的车载网络***。另外,本公开提供一种在该车载网络***中使用的电子控制单元(ECU)、接收方法以及发送方法。
用于解决问题的手段
为了解决上述问题,本公开的一个技术方案涉及的车载网络***是一种具备多个电子控制单元的车载网络***,所述多个电子控制单元遵循CAN(Controller AreaNetwork)协议并经由总线进行通信,所述车载网络***具备:第一电子控制单元,通过所述总线发送包含识别符的一个或多个数据帧,所述识别符是关于在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和第二电子控制单元,接收在所述总线上发送的一个或多个数据帧,并根据接收到的数据帧的所述识别符,进行消息认证码的验证处理。
另外,为了解决上述问题,本公开的一个技术方案涉及的接收方法是一种在具备多个电子控制单元的车载网络***中使用的接收方法,所述多个电子控制单元遵循CAN(Controller Area Network)协议并经由总线进行通信,所述接收方法包括:接收步骤,接收在所述总线上发送来的、包含识别符的一个或多个数据帧,所述识别符是关于在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和验证步骤,在所述接收步骤中接收到一个或多个数据帧的情况下,根据接收到的数据帧的所述识别符,进行消息认证码的验证处理。
另外,为了解决上述问题,本公开的一个技术方案涉及的发送方法是一种在具备多个电子控制单元的车载网络***中使用的发送方法,所述多个电子控制单元遵循CAN(Controller Area Network)协议并经由总线进行通信,所述发送方法包含:算出步骤,通过使用了配置在一个或多个数据帧内的一个以上区域的数据的计算,算出用于表示发送内容的合法性的消息认证码;和发送步骤,使在所述算出步骤中算出的消息认证码包含在所述一个或多个数据帧中的至少一个数据帧中,并发送包含识别符的该一个或多个数据帧,所述识别符是关于在用于算出该消息认证码的计算中使用的数据的识别符。
另外,为了解决上述问题,本公开的一个技术方案涉及的电子控制单元是一种遵循CAN(Controller Area Network)协议并经由总线进行通信的电子控制单元,具备:接收部,接收在所述总线上发送来的、包含识别符的一个或多个数据帧,所述识别符是关于在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和验证部,在由所述接收部接收到一个或多个数据帧的情况下,根据接收到的数据帧的所述识别符,进行消息认证码的验证处理。
另外,为了解决上述问题,本公开的一个技术方案涉及的电子控制单元是一种遵循CAN(Controller Area Network)协议并经由总线进行通信的电子控制单元,具备:算出部,通过使用了配置在一个或多个数据帧内的一个以上区域的数据的计算,算出用于表示发送内容的合法性的消息认证码;和发送部,使由所述算出部算出的消息认证码包含在所述一个或多个数据帧中的至少一个数据帧中,并发送包含识别符的该一个或多个数据帧,所述识别符是关于在用于算出该消息认证码的计算中使用的数据的识别符。
发明的效果
根据本公开,通过利用表示发送内容的合法性的MAC,能够提高收发的消息的安全性,且抑制总线的流量的增加。
附图说明
图1是表示实施方式1涉及的车载网络***的整体构成的图。
图2是表示由CAN协议规定的数据帧的格式的图。
图3是表示由CAN协议规定的错误帧的格式的图。
图4是表示实施方式1中的向数据帧赋予MAC涉及的模式的一例的图。
图5是实施方式1涉及的ECU的构成图。
图6是表示接收ID列表的一例的图。
图7是表示数据帧的数据字段格式的一例的图。
图8是表示数据帧的数据字段格式的一例的图。
图9是表示实施方式1中的数据字段头的数据构成的图。
图10是表示MAC计算对象字段类别的内容例的图。
图11是表示数据字段构成类别的内容例的图。
图12是表示开始标记的内容例的图。
图13是表示从与发动机连接的ECU发送来的帧中的ID和数据字段的一例的图。
图14是表示ECU中的数据帧发送处理的流程图。
图15是表示ECU中的数据帧接收处理的流程图(后接图16)。
图16是表示ECU中的数据帧接收处理的流程图(前接图15)。
图17是表示实施方式2中的向数据帧赋予MAC涉及的模式的一例的图。
图18是实施方式2涉及的ECU的构成图。
图19是表示实施方式2中的数据字段头的数据构成的图。
图20是表示帧特性数据的数据构成的图。
图21是表示从与发动机连接的ECU发送来的帧中的ID和数据字段的一例的图。
图22是表示ECU中的发送处理的流程图。
图23是表示ECU中的数据帧接收处理的流程图(后接图24)。
图24是表示ECU中的数据帧接收处理的流程图(后接图25)。
图25是表示ECU中的数据帧接收处理的流程图(前接图24)。
图26是表示实施方式2的变形例1中的向数据帧赋予MAC涉及的模式的一例的图。
图27是表示实施方式2的变形例2中的向数据帧赋予MAC涉及的模式的一例的图。
图28是表示实施方式2的变形例3中的向数据帧赋予MAC涉及的模式的一例的图。
具体实施方式
本公开的一个实施方式涉及的车载网络***是一种具备多个电子控制单元的车载网络***,所述多个电子控制单元遵循CAN协议即控制器局域网络协议并经由总线进行通信,所述车载网络***具备:第一电子控制单元,通过所述总线发送包含识别符的一个或多个数据帧,所述识别符是关于在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和第二电子控制单元,接收在所述总线上发送来的一个或多个数据帧,并根据接收到的数据帧的所述识别符,进行消息认证码的验证处理。由此,通过利用表示发送内容的合法性的消息认证码(MAC),能提高收发的消息的安全性。另外,由于利用与在用于算出MAC的计算中使用的数据相关的识别符,能够从发送侧的ECU向接收侧的ECU传递为了算出MAC而使用的信息,所以能够进行例如MAC的验证所需的数据值和MAC等这样的数据构成的信息的传递。由此,例如,能够在车载网络***中自由地确定存储在数据字段中的数据的构成。而且,当ECU能够将需要MAC的验证的数据、无需MAC的验证的数据以及MAC自由地设定在数据字段中并发送时,能够抑制总线的流量的增加。
另外,也可以是,所述第一电子控制单元使消息认证码包含在要发送的所述一个或多个数据帧中的至少一个数据帧中来进行发送,该消息认证码通过使用了配置在该一个或多个数据帧内的一个以上区域中的数据的计算而算出,所述第一电子控制单元所发送的所述一个或多个数据帧所包含的所述识别符包含如下信息,该信息表示在用于算出所述消息认证码的计算中使用的、该一个或多个数据帧内的一个以上数据的区域,所述第二电子控制单元通过使用了由所述识别符表示的区域的数据的计算,进行所述验证处理。由此,例如,能够将在用于算出MAC的计算中使用的区域自由地设定为数据帧内的任意字段,或者设定在特定字段内的任意位置等。由此,例如,能够实现总线流量的增加的抑制或安全性的强化等。
另外,也可以是,所述第一电子控制单元通过使用了配置在要发送的多个数据帧内的一个以上区域中的数据的计算,算出所述消息认证码,并使算出的消息认证码包含在该多个数据帧中的至少一个数据帧中来进行发送,所述第一电子控制单元所发送的所述多个数据帧所包含的所述识别符包含表示该多个数据帧的数量的信息,所述第二电子控制单元在接收到由接收到的某一个数据帧所包含的所述识别符表示的数量的数据帧的情况下,通过使用了由接收到的各数据帧中的所述识别符表示的区域的数据的计算,进行所述验证处理。由此,由于发送数据帧的ECU能够向接收的ECU传递帧的数量,所以能够将MAC的验证所需的数据分割为多个数据帧并发送等,数据构成或帧组成的自由度提高。作为帧组成,例如能够任意选择单帧和多帧中的某一个,所述单帧是MAC包含在单一的帧中的状态(也即是,当接收该帧时能够立即进行MAC的验证的状态),所述多帧是将MAC分割在多个帧中的状态。
另外,本公开的一个实施方式涉及的接收方法是一种在车载网络***中使用的接收方法,所述车载网络***具备遵循CAN协议即控制器局域网络协议并经由总线进行通信的多个电子控制单元,所述接收方法包括:接收步骤,接收在所述总线上发送来的、包含识别符的一个或多个数据帧,所述识别符是关于在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和验证步骤,在所述接收步骤中接收到一个或多个数据帧的情况下,根据接收到的数据帧的所述识别符,进行消息认证码的验证处理。由此,能够根据数据帧所包含的识别符,使验证处理的内容(例如,取得在用于验证的计算中使用的数据的数据帧内的位置等)变化,能够进行灵活地应对数据构成的适当的验证处理。
另外,也可以是,在所述接收步骤中接收的数据帧中的所述识别符表示该数据帧的数据字段的内容的类别。由此,能够在数据帧的接收侧接受例如在数据帧的数据字段中是否包含成为MAC的计算对象的数据、是否包含不是MAC的计算对象的数据、是否包含MAC等信息来作为类别。因此,将该接收方法作为前提,能够自由地确定存储在数据字段中的数据的类别,例如,与在车载网络***中ECU一律只收发附加了MAC的数据的情况相比,能够抑制总线的流量的增加。
另外,也可以是,在所述接收步骤中接收的所述一个或多个数据帧中的至少一个数据帧包含消息认证码,由在所述接收步骤中接收到的数据帧中的所述识别符表示的、数据字段的内容的所述类别表示:在该数据字段中是否包含在用于算出消息认证码的计算中使用的数据的区域,在所述验证步骤中,在由所述识别符表示的数据字段的内容的所述类别表示包含在用于算出消息认证码的计算中使用的数据的区域的情况下,通过使用了在用于算出该数据字段中的消息认证码的计算中使用的数据的区域的值的计算,进行所述验证处理。由此,通过识别在数据帧的数据字段中是否包含成为MAC的计算对象的数据,能够适当地进行MAC的验证处理。
另外,也可以是,在所述接收步骤中接收的数据帧中的所述识别符表示该数据帧的数据字段中的一个类别的数据的区域。由此,能够在数据帧的接收侧接受例如数据帧的数据字段中的、成为MAC的计算对象的数据、并非MAC的计算对象的数据、或配置有MAC的位置(范围)的信息。因此,将该接收方法作为前提,能够自由地确定存储在数据字段中的数据的配置。
另外,也可以是,在所述接收步骤中接收的所述一个或多个数据帧中的至少一个数据帧包含消息认证码,由在所述接收步骤中接收到的数据帧中的所述识别符表示的所述一个类别的数据的区域是在用于算出消息认证码的计算中使用的数据的区域,在所述验证步骤中,通过使用了由所述识别符表示的区域的数据的计算,进行所述验证处理。由此,通过确认数据帧的数据字段中的包含成为MAC的计算对象的数据的位置(范围),能够适当地收集成为计算对象的数据,并能够适当地进行MAC的验证处理。
另外,也可以是,在所述接收步骤中接收的数据帧中的所述识别符配置在该数据帧的数据字段中,在所述验证步骤中,根据接收到的数据帧的数据字段内的所述识别符,进行所述验证处理。由此,遵循CAN协议,参照能够在车载网络***中确定规格的数据字段并确认识别符,能够适当地进行MAC的验证处理。
另外,也可以是,所述一个或多个数据帧所包含的所述识别符包含如下信息,该信息表示该一个或多个数据帧内的一个以上数据的区域,在所述验证步骤中,通过使用了与在所述接收步骤中接收到的数据帧中的所述识别符对应的区域的数据的计算,进行所述验证处理。由此,能够根据识别符,确定存储有在用于MAC的验证的计算中使用的数据的字段、位置等,能够适当地进行MAC的验证处理。
另外,本公开的一个实施方式涉及的发送方法是一种是在车载网络***中使用的发送方法,所述车载网络***具备遵循CAN协议即控制器局域网络协议并经由总线进行通信的多个电子控制单元,所述发送方法包括:算出步骤,通过使用了配置在一个或多个数据帧内的一个以上区域的数据的计算,算出用于表示发送内容的合法性的消息认证码;和发送步骤,使在所述算出步骤中算出的消息认证码包含在所述一个或多个数据帧中的至少一个数据帧中,并发送包含识别符的该一个或多个数据帧,所述识别符是关于在用于算出该消息认证码的计算中使用的数据的识别符。由此,利用包含在数据帧中的识别符,例如数据帧的发送侧的ECU能够向接收侧的ECU传递在用于算出MAC的计算中使用的数据在数据帧中的位置等,因此,能够自由地设定数据帧内的数据构成。
另外,也可以是,在所述发送步骤中发送的数据帧中的所述识别符表示该数据帧的数据字段的内容的类别。由此,例如数据帧的发送侧的ECU能够向接收侧的ECU传递在数据帧的数据字段中是否包含成为MAC的计算对象的数据、是否包含不是MAC的计算对象的数据、是否包含MAC等信息来作为类别。因此,由于能够自由地确定存储在数据字段中的数据的类别,所以,例如与在车载网络***中ECU一律只收发附加了MAC的数据的情况相比,能够抑制总线的流量的增加。
另外,也可以是,由在所述发送步骤中发送的数据帧中的所述识别符表示的、数据字段的内容的所述类别表示:在该数据字段中是否包含在所述算出步骤中在用于算出所述消息认证码的计算中使用的数据的区域。由此,能够选择是否在数据帧的数据字段中包含成为MAC的计算对象的数据,并能够自由地确定数据构成。
另外,也可以是,在所述发送步骤中发送的数据帧中的所述识别符表示该数据帧的数据字段中的一个类别的数据的区域。由此,数据帧的发送侧的ECU能够向接收侧的ECU传递例如数据帧的数据字段中的、成为MAC的计算对象的数据、并非MAC的计算对象的数据、或配置有MAC的位置(范围)的信息。因此,能够自由地确定存储在数据字段中的数据的配置。
另外,也可以是,由在所述发送步骤中发送的数据帧中的所述识别符表示的所述一个类别的数据的区域是在所述算出步骤中在用于算出所述消息认证码的计算中使用的数据的区域。由此,数据帧的发送侧的ECU能够向接收侧的ECU传递数据帧的数据字段中的、包含成为MAC的计算对象的数据的位置(范围),并能够将成为MAC的计算对象的数据配置在任意的位置。
另外,也可以是,在所述发送步骤中,将所述识别符配置在发送的数据帧的数据字段中。由此,遵循CAN协议,能够活用可在车载网络***中确定规格的数据字段,并能够传递与在用于算出MAC的计算中使用的数据相关的信息。因此,能够在遵循CAN协议的ECU中容易地实现该发送方法。
另外,也可以是,在所述发送步骤中发送的所述一个或多个数据帧所包含的所述识别符包含如下信息,该信息表示在用于算出所述消息认证码的计算中使用的、该一个或多个数据帧内的一个以上数据的区域。由此,能够适当地传递存储有在用于验证MAC的计算中使用的数据的字段、位置等,数据构成等的自由度提高。
另外,本公开的一个实施方式涉及的电子控制单元(ECU)是一种遵循CAN协议即控制器局域网络协议并经由总线进行通信的电子控制单元,具备:接收部,接收在所述总线上发送来的、包含识别符的一个或多个数据帧,所述识别符是关于在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和验证部,在由所述接收部接收到一个或多个数据帧的情况下,根据接收到的数据帧的所述识别符,进行消息认证码的验证处理。由此,能够根据数据帧所包含的识别符使验证处理的内容变化,能够进行灵活地应对数据构成的适当的验证处理。例如,在包含该ECU而构筑的车载网络***中,能够自由地确定存储在数据字段中的数据的构成,将是否需要MAC的验证的信息或在MAC的验证中使用的数据的区域的信息等作为识别符加入数据帧并收发。由此,例如,能够以抑制总线流量的增加的方式进行数据帧的收发。
另外,本公开的一个实施方式涉及的电子控制单元(ECU)是一种遵循CAN协议即控制器局域网络协议并经由总线进行通信的电子控制单元,具备:算出部,通过使用了配置在一个或多个数据帧内的一个以上区域中的数据的计算,算出用于表示发送内容的合法性的消息认证码;和发送部,使由所述算出部算出的消息认证码包含在所述一个或多个数据帧中的至少一个数据帧中,并发送包含识别符的该一个或多个数据帧,所述识别符是关于在用于算出该消息认证码的计算中使用的数据的识别符。由此,利用包含在数据帧中的识别符,例如数据帧的发送侧的ECU能够向接收侧的ECU传递在用于算出MAC的计算中使用的数据在数据帧中的位置等,并能够自由地设定数据帧内的数据构成。
此外,这些全面或具体的技术方案既可以用***、方法、集成电路、计算机程序或计算机可读取的CD-ROM等记录介质来实现,也可以用***、方法、集成电路、计算机程序或记录介质的任意组合来实现。
以下,参照附图,说明说明实施方式涉及的车载网络***。在这里示出的实施方式均表示本公开的一具体例。因此,在以下实施方式中示出的数值、构成要素、构成要素的配置和连接方式以及步骤(工序)和步骤的顺序等为一例,不限定本公开。以下实施方式的构成要素中的未记载于独立权利要求的构成要素是能够任意附加的构成要素。另外,各图为示意图,并不是严格地进行了图示的图。
(实施方式1)
以下,作为本公开的实施方式,参照附图并说明包含ECU的车载网络***10,所述ECU实现用于使使用了MAC的数据的验证成为可能,且使数据的高效收发成为可能的发送方法或接收方法。
[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中,各ECU遵循CAN协议进行帧的授受。在CAN协议下的帧中,有数据帧、远程帧、超载帧以及错误帧。为了便于说明,以数据帧和错误帧为中心进行说明。
[1.2数据帧格式]
以下,针对作为在遵循CAN协议的网络中使用的帧之一的数据帧进行说明。
图2是表示由CAN协议规定的数据帧的格式的图。在该图中,示出了由CAN协议规定的标准ID格式的数据帧。数据帧包含SOF(Start Of Frame:帧起始)、ID字段、RTR(RemoteTransmission Request:远程发送请求)、IDE(Identifier Extension:标识符扩展)、预约位“r”、DLC(Data Length Code:数据长度码)、数据字段、CRC(Cyclic Redundancy Check:循环冗余校验)序列、CRC分隔符“DEL”、ACK(Acknowledgement:应答)间隙(slot)、ACK分隔符“DEL”以及EOF(End Of Frame:帧结尾)这些各字段构成。
SOF由1个显性位(bit)构成。在总线为空闲的状态下成为隐性,且通过SOF向显性变更由此来通知帧的发送开始。
ID字段是由11位(bit)构成的保存ID(消息ID)的字段,所述ID是表示数据的种类的值。在多个节点同时开始发送的情况下,为了用该ID字段进行通信仲裁而设计为:ID为小值的帧具有高的优先度。
RTR是用于识别数据帧和远程帧的值,在数据帧中由1个显性位构成。
IDE和“r”双方由1个显性位构成。
DLC由4位(bit)构成,并且是表示数据字段的长度的值。此外,将IDE、“r”以及DLC一起称为控制字段。
数据字段是由最大64位(bit)构成的、表示发送数据的内容的值。能够按8位调整长度。所发送的数据的规格不在CAN协议中规定,而在车载网络***10中确定。因此,成为依存于车型、制造者(制造厂家)等的规格。
CRC序列由15位(bit)构成。根据SOF、ID字段、控制字段以及数据字段的发送值而算出。
CRC分隔符是由1个隐性位构成的表示CRC序列的结束的分隔记号。此外,将CRC序列和CRC分隔符一起称为CRC字段。
ACK间隙由1位(bit)构成。发送节点将ACK间隙设为隐性并进行发送。如果到CRC序列为止能够正常接收,则接收节点将ACK间隙设为显性并发送。由于显性比隐性优先,所以如果在发送后ACK间隙为显性,则发送节点能够确认某一个接收节点接收成功。
ACK分隔符是由1个隐性位构成的表示ACK的结束的分隔记号。
EOF由7个隐性位构成,并表示数据帧的结束。
[1.3错误帧格式]
图3是表示由CAN协议规定的错误帧的格式的图。错误帧由错误标记(primary:主动)、错误标记(secondary:被动)以及错误分隔符构成。
错误标记(主动)用于向其他节点告知错误的发生。检测到错误的节点为了向其他节点告知错误的发生而连续发送6个显性位。该发送违反CAN协议中的位填充规则(不连续地发送6位以上相同的值),引起来自其他节点的错误帧(被动)的发送。
错误标记(被动)由用于向其他节点告知错误的发生的、连续6位的显性构成。接收错误标记(主动)并检测到违反位填充规则的全部节点发送错误标记(被动)。
错误分隔符“DEL”为连续的8个隐性位,表示错误帧的结束。
[1.4MAC赋予模式(pattern)例]
图4是表示向数据帧赋予MAC涉及的模式的一例的图。例如,按从该图的左侧向右侧的顺序,依次向总线200上发送各数据帧。为了表示发送内容的合法性,在数据帧(消息)中赋予MAC。在这里,MAC赋予涉及的模式针对是否赋予MAC或MAC的计算对象是哪个字段而具有各种变形。
图4的三个数据帧的例子中,左侧的数据帧401和右侧的数据帧403的例子在一个帧中包含MAC和成为MAC的计算对象的数据(也即是,在用于算出MAC的计算中使用的数据)。另外,中央的数据帧402的例子不包含MAC。在这里,示出了为了抑制总线的流量的增加或为了计算量的削减,切换是否按每个帧赋予MAC、成为MAC的计算对象的数据仅为数据字段还是包含DLC字段的例子,但也可以是这些例子以外的变形。例如,可以在全部帧中赋予MAC,可以将ID字段、DLC字段以及数据字段的全部作为MAC的计算对象,可以将ID字段、DLC字段以及数据字段中的某一个字段单独作为MAC的计算对象,可以将各自的组合作为计算对象,也可以将这些字段与其他字段的组合作为计算对象。
[1.5ECU100a的构成]
图5是ECU100a的构成图。ECU100a包含:帧收发部101、帧解释部102、接收ID判断部103、接收ID列表保持部104、帧处理部105、MAC处理部106、MAC密钥保持部107、计数保持部108、帧生成部109以及数据取得部110而构成。这些各构成要素为功能性构成要素,该各功能利用ECU100a中的通信线路、执行保存在存储器中的控制程序的处理器或数字电路等来实现。
帧收发部101对总线200收发遵循CAN协议的帧。从总线200逐位(逐比特)接收帧,并传送给帧解释部102。另外,将从帧生成部109接受到通知的帧的内容发送给总线200。
帧解释部102从帧收发部101接受帧的值,并进行解释以映射到在CAN协议中规定的帧格式的各字段。判断为ID字段的值向接收ID判断部103传送。帧解释部102根据从接收ID判断部103通知的判定结果,决定是向帧处理部105传送ID字段的值和ID字段以后出现的DLC、数据字段等,还是在接受该判定结果以后中止帧的接收(也即是中止作为该帧的解释)。另外,帧解释部102在判断为是没有遵循CAN协议的帧的情况下,通知帧生成部109发送错误帧。另外,帧解释部102在接收到错误帧的情况下,也即是在根据接受到的帧中的值而解释为成为错误帧的情况下,在这以后,废弃该帧,也即是中止帧的解释。
接收ID判断部103接受从帧解释部102通知的ID字段的值,按照接收ID列表保持部104保持的消息ID的列表,进行是否接收该ID字段以后的帧的各字段的判定。接收ID判断部103向帧解释部102通知该判定结果。
接收ID列表保持部104保持接收ID列表,所述接收ID列表是ECU100a接收的ID(消息ID)的列表。图6是表示接收ID列表的一例的图。
帧处理部105从帧解释部102接受数据字段的值,并进行与数据字段所包含的各种标记(后述的数据字段头、开始标记等这样的可作为与在用于算出MAC的计算中使用的数据相关的识别符发挥功能的标记)对应的处理。在该处理中,包含对赋予了MAC的数据的、与MAC相关的数据的验证(也即是MAC的验证处理)等,另外,也可包含与数据对应的功能涉及的处理。即,帧处理部105具有作为验证部的功能,所述验证部在由帧收发部101接收到一个或多个数据帧的情况下,根据接收到的数据帧的各种标记(识别符)进行MAC的验证处理。另外,列举上述功能涉及的处理的一例,与发动机310连接的ECU100a具有如下功能:如果在时速超过30km的状态下门为打开着的状态,则鸣响警报声,帧处理部105管理从其他ECU接收到的数据(例如表示门的状态的信息),并基于从发动机310取得的时速,在一定条件下进行鸣响警报声等处理。此外,在后面使用图14、图15以及图16,说明与帧的收发处理(数据帧发送处理和数据帧接收处理)相关的具体内容(处理流程)。此外,在这里,设为在数据帧的数据字段中包含各种标记,但各种标记也可以包含在扩展ID字段等其他字段中。
MAC处理部106使用由MAC密钥保持部107保持的MAC密钥,对将从帧生成部109通知的用于计算MAC的值(其是作为成为MAC的计算对象的数据而加入帧并发送的值,例如是消息ID、DLC的值以及数据字段用的数据的值)和由计数保持部108保持的发送计数值结合而成的值(结合值)算出MAC值(通过计算导出),并向帧生成部109通知作为该算出的结果的MAC。即,MAC处理部106作为算出部发挥功能,所述算出部通过使用了配置在一个或多个帧内的一个以上区域中的数据(成为MAC的计算对象的数据)进行的计算而算出MAC。另外,使用由MAC密钥保持部107保持的密钥,对将从帧处理部105通知的、接收到的帧所包含的成为MAC的计算对象的数据和由计数保持部108保持的接收计数值结合而成的值(结合值)算出MAC值,并向帧处理部105通知作为该算出结果的MAC。在这里,作为MAC的计算方法,采用HMAC(Hash-based Message Authentication Code:密钥相关的哈希运算消息认证码)(参照非专利文献2),对上述结合值,以进行了填充直到与预定的块(例如4个字节)相应的值的方式使用MAC密钥进行计算,将算出来的计算结果的开头4个字节作为MAC。在这里,作为为了算出MAC而使用的结合值,记述了使用消息ID、DLC的值、数据的值、由计数保持部108保持的发送计数值或接收计数值的全部的例子,但能够使用这些值中的某一个或两个以上的组合来算出MAC。即,ECU100a在帧的发送时,基于对图4例示的MAC赋予涉及的模式进行确定的、预先确定的算法,使用这些值中的某一个或两个以上的组合,算出用于包含在发送的帧中的MAC。另外,ECU100a在帧的接收时,基于预先确定的算法,或者根据需要参照数据字段所包含的各种标记,确定在验证中使用的MAC的算出所需的值,从而算出MAC。
MAC密钥保持部107保持为了计算MAC所需的MAC密钥。
计数保持部108保持为了计算MAC所需的计数值。此外,该计数值例如按每个消息ID保持,并具有在正常发送了帧的情况下增加的发送计数值和在正常接收的情况下增加的接收计数值这两种计数值。
帧生成部109按照从帧解释部102通知的、指示发送错误帧的通知,构成错误帧,并向帧收发部101通知并发送错误帧。另外,在ECU100a赋予MAC并进行数据的发送时,帧生成部109向MAC处理部106通知从数据取得部110通知的数据的值和预先确定的消息ID,并接受算出的MAC。在ECU100a进行赋予了MAC的数据的发送时,帧生成部109以包含预先确定的消息ID、从数据取得部110通知的数据的值以及从MAC处理部106接受到的MAC的方式,在存储器(发送缓冲器)中构成数据帧,并向帧收发部101通知。在进行该发送时,帧收发部101作为发送部发挥功能,所述发送部使一个或多个数据帧中的至少一个数据帧包含MAC,并发送包含了与在用于算出该MAC的计算中使用的数据相关的各种标记(识别符等)的该一个或多个数据帧。此外,在后面使用图7和图8说明帧生成部109生成的数据帧的数据字段的构成。
数据取得部110取得表示与ECU连接的设备、传感器等的状态的数据,并向帧生成部109通知。
此外,ECU100b~100d也具备与上述ECU100a基本相同的构成。但是,由帧处理部105进行的、与数据对应的功能涉及的处理的内容按每个ECU不同。另外,例如,在ECU100a的帧收发部101作为发送包含各种标记的数据帧的发送部发挥功能时,与ECU100a同样连接到总线200的ECU100b等的帧收发部101作为接收包含发送来的各种标记的一个或多个数据帧的接收部发挥功能。
[1.6接收ID列表例]
图6是表示在ECU100a、ECU100b、ECU100c以及ECU100d的每一个中保持的接收ID列表的一例的图。在该图中例示的接收ID列表用于选择性地接收并处理包含消息ID的帧,所述消息ID的ID(消息ID)的值为“1”、“2”、“3”以及“4”中的某一个。
[1.7数据字段格式例1]
图7表示利用图4的MAC赋予涉及的模式发送的数据帧的数据字段格式的一例。在该例中,示出了将没有赋予MAC的数据作为内容的数据字段的例子。该数据字段由数据字段头301、开始标记302、数据大小303以及一般数据304构成。
数据字段头301包含表示数据帧所包含的数据的类别、成为MAC的计算对象的数据的区域(字段类别)等的信息。在后面使用图9说明数据字段头301的数据构成。
开始标记302是识别该开始标记以后的数据(也即是在开始标记以后接收的数据)的类别的标记。在后面使用图12说明开始标记302的内容例。
数据大小303表示利用开始标记302识别的数据的大小。数据大小303的数据长度为6比特(bit)。
一般数据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由预约位(预约bit)311(2比特)、MAC计算对象字段类别312(3比特)以及数据字段构成类别313(3比特)构成,整体上为8比特。
预约位311的值为“00”且为固定值。
以下,使用图10、图11,说明放入MAC计算对象字段类别312和数据字段构成类别313的具体数据。
[1.10MAC计算对象字段类别312]
图10表示数据字段头301所包含的MAC计算对象字段类别312的内容例。此外,在该图中,用3比特值(二进制)来表现值。
3比特的MAC计算对象字段类别312的最高位比特表示:作为配置成为MAC的计算对象的数据的字段,是否包含ID字段(参照图2),在ID字段成为MAC的计算对象的情况下成为“1”,在ID字段不成为MAC的计算对象的情况下成为“0”。MAC计算对象字段类别312的中间位比特表示:作为配置成为MAC的计算对象的数据的字段,是否包含DLC,在DLC成为MAC的计算对象的情况下成为“1”,在DLC不成为MAC的计算对象的情况下成为“0”。另外,MAC计算对象字段类别312的最低位比特表示:作为配置成为MAC的计算对象的数据的字段,是否包含数据字段,在数据字段内包含成为MAC的计算对象的数据的情况下成为“1”,在数据字段内不包含成为MAC的计算对象的数据的情况下成为“0”。
[1.11数据字段构成类别313]
图11表示数据字段头301所包含的数据字段构成类别313的内容例。此外,在该图中,用3比特值(二进制)来表现值。
3比特的数据字段构成类别313的最高位比特(以下称为“MAC比特”)表示数据字段是否包含MAC,在包含MAC的情况下成为“1”,在不包含MAC的情况下成为“0”。数据字段构成类别313的中间位比特(以下称为“MAC计算用数据比特”)表示数据字段是否包含成为MAC的计算对象的数据(也即是,是否包含图8所示的MAC计算用数据305),在包含成为MAC的计算对象的数据的情况下成为“1”,在不包含成为MAC的计算对象的数据的情况下成为“0”。在所发送的数据帧中,MAC计算用数据比特表示在该数据帧内的数据字段中是否包含在用于算出MAC的计算中使用的数据的区域。另外,数据字段构成类别313的最低位比特(以下称为“一般数据比特”。)表示数据字段是否包含不成为MAC的计算对象的一般数据(也即是,是否包含图7所示的一般数据304),在包含一般数据的情况下成为“1”,在不包含一般数据的情况下成为“0”。此外,在图11中,为了方便起见,示出了能够用将这样的MAC比特、MAC计算用数据比特以及一般数据比特组合而成的3比特的值来表现的全部模式的内容例。因此,图11的内容例的一部分值(“仅MAC计算用数据”和“一般数据+MAC计算用数据”)可在后述的实施方式2中使用,但不能在实施方式1中使用。
[1.12开始标记302]
图12表示开始标记302的内容例,所述开始标记302表示数据字段所包含的数据的开始位置和类别。开始标记302在利用帧生成部109发送数据帧时设定在数据字段内。设定开始标记302的位置例如是后续于数据字段头301的位置,或后续于配置在数据字段内的数据(一般数据、成为MAC的计算对象的数据或MAC)的位置(参照图7和图8)。
开始标记302由2比特构成,表示紧接着数据大小303(参照图7和图8)的数据的类别,所述数据大小303后续于该开始标记302。
在紧接着数据大小303的数据是作为不会成为MAC的计算对象的数据的一般数据的情况下,将“00”(2比特值)设定为开始标记302的值,所述数据大小303后续于开始标记302。在紧接着数据大小303的数据是成为MAC的计算对象的数据(MAC计算用数据)的情况下,将“01”(2比特值)设定为开始标记302的值,所述数据大小303后续于开始标记302。在所发送的数据帧中,利用“01”(2比特值)的开始标记302和后续的数据大小303表示在用于算出MAC的计算中使用的数据的区域。在紧接着数据大小303的数据是MAC的情况下,将“10”(2比特值)设定为开始标记302的值,所述数据大小303后续于开始标记302。
[1.13发动机涉及的ECU100a的发送帧例]
图13是表示从与发动机310连接的ECU100a发送来的数据帧中的ID(消息ID)和数据字段的内容(数据)的一例的图。ECU100a发送的帧的消息ID为“1”。在该图中,数据字段的内容(数据)按每个字节用空白划分并用16进制表示。在图13的例子中,各行的开头的一个字节是数据字段头301,下一个(第二个)字节是开始标记302和数据大小303,下一个(第三个)字节是表示时速(km/小时)的MAC计算用数据305(仅第二行为一般数据304),图13的例子的第一行和第三行中的下一个(第四个)字节是开始标记302和数据大小303,接着的4个字节是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的例子,有如下等算法:例如将三次发送作为一套,在第一次发送的数据帧401的数据字段内包含表示时速的MAC计算用数据305、和通过使用了MAC计算用数据305的计算而算出的MAC,在第二次发送的数据帧402的数据字段内包含表示时速的一般数据304,在第三次发送的数据帧403的数据字段内包含表示时速的MAC计算用数据305、和通过使用了DLC和MAC计算用数据305的计算而算出的MAC并发送。
作为数据帧生成处理,帧生成部109在确定于存储器(发送缓冲器)内的数据帧的数据字段的数据字段头301内的MAC计算对象字段类别312的相应位置,设定表示基于预定算法决定的应发送数据的构成的值(步骤S1002)。例如,在上述三次发送的一套(参照图4)中的第三次发送的数据帧403中,MAC计算对象字段类别312(3比特)的与DLC和数据字段对应的比特分别设定为“1”。
ECU100a的帧生成部109判断包含应发送数据的应发送数据帧是否是包含一般数据304(也即是,不成为MAC的计算对象的数据)的帧(步骤S1003)。在不包含一般数据304的情况下,跳过与一般数据关联的处理(步骤S1004~S1007)。
在步骤S1003中判断为应发送数据帧包含一般数据304的情况下,帧生成部109对确定于发送缓冲器内的数据帧的数据字段头301内的数据字段构成类别313的一般数据比特设定“1”(步骤S1004)。
接着,帧生成部109在确定于发送缓冲器内的数据帧的数据字段内设定表示一般数据的“00”(2比特值)作为开始标记302(步骤S1005),设定与一般数据304的大小对应的值作为数据大小303(步骤S1006),设定一般数据304(步骤S1007)。
另外,帧生成部109判断包含应发送数据的应发送数据帧是否是包含MAC计算用数据305(也即是,成为MAC的计算对象的数据)的帧(步骤S1008)。在不包含MAC计算用数据305的情况下,跳过与MAC计算用数据关联的处理(步骤S1009~S1012)。
在步骤S1008中判断为应发送数据帧包含MAC计算用数据305的情况下,帧生成部109对确定于发送缓冲器内的数据帧的数据字段头301内的数据字段构成类别313的MAC计算用数据比特设定“1”(步骤S1009)。
接着,帧生成部109在确定于发送缓冲器内的数据帧的数据字段内设定表示MAC计算用数据的“01”(2比特值)作为开始标记302(步骤S1010),设定与MAC计算用数据305的大小对应的值作为数据大小303(步骤S1011),设定MAC计算用数据305(步骤S1012)。
另外,帧生成部109判断包含应发送数据的应发送数据帧是否是包含MAC306的帧(步骤S1013)。在不包含MAC306的情况下,跳过与MAC关联的处理(步骤S1014~S1018)。
在步骤S1013中判断为应发送数据帧包含MAC306的情况下,帧生成部109对确定于发送缓冲器内的数据帧的数据字段头301内的数据字段构成类别313的MAC比特设定“1”(步骤S1014)。
接着,帧生成部109向MAC处理部106传送基于预定算法确定的数据(也即是,基于对MAC计算对象字段类别312设定的值的数据)作为成为MAC的计算对象的数据,MAC处理部106算出MAC(步骤S1015)。MAC处理部106通过使用由MAC密钥保持部107保持的MAC密钥,对将已传送给帧生成部109的成为MAC的计算对象的数据、和由计数保持部108保持的发送计数值结合而成的值进行计算,从而算出在应发送数据帧中作为MAC306设定的MAC值。
接着,帧生成部109在确定于发送缓冲器内的数据帧的数据字段内设定表示MAC的“10”(2比特值)作为开始标记302(步骤S1016),设定与MAC306的大小对应的值作为数据大小303(步骤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逐比特进行接收,在接收数据帧中的ID等并进行处理之后接收数据字段。此时,帧解释部102向帧处理部105传送ID、DLC、数据字段等,帧处理部105开始与数据字段关联的数据处理(步骤S1101)。
ECU100b的帧处理部105取得接收到的数据帧的数据字段中的数据字段头301,并保存在作为作业用存储区域的缓冲器中(步骤S1102)。另外,取得数据字段中的开始标记302,并存储在缓冲器中(步骤S1103)。
接着,帧处理部105判定所取得的开始标记302的值是表示一般数据304的“00”(2比特),还是表示MAC计算用数据305的“01”(2比特)还是除此以外的值(表示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的一般数据比特是“1”且其他2比特为“0”的数据帧)的情况下(步骤S1112),帧处理部105根据接收到的数据的内容,进行预先确定的处理(与数据对应的功能涉及的处理)(步骤S1113)。
在接收到的数据帧不是仅包含一般数据304的帧的情况下,帧处理部105确认数据字段头301所包含的MAC计算对象字段类别312(步骤S1114)。接着,帧处理部105根据所确认的MAC计算对象字段类别312,取得存储了成为MAC的计算对象的数据的各字段的值,由此收集MAC的验证所需的数据(步骤S1115)。
帧处理部105向MAC处理部106通知收集到的MAC的验证所需的数据并利用得到的MAC值进行MAC的验证处理,在验证成功的情况下(步骤S1116),根据接收到的数据的内容,进行预先确定的处理(与数据对应的功能涉及的处理)(步骤S1117)。此外,MAC处理部106通过使用由MAC密钥保持部107保持的密钥,对将从帧处理部105取得的数据(成为MAC的计算对象的数据)和由计数保持部108保持的接收计数值结合而成的值进行计算,由此算出MAC值,并向帧处理部105通知作为该算出的结果的MAC。然后,在帧处理部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)
以下,作为本公开的实施方式,参照附图并说明包含ECU的车载网络***(以下称为“车载网络***11”),所述ECU实现用于使使用了MAC的数据的验证成为可能,且使数据的高效收发成为可能的发送方法或接收方法。
车载网络***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中,各ECU也遵循CAN协议进行帧的授受。
[2.2MAC赋予模式例]
图17是表示向数据帧赋予MAC的MAC赋予涉及的模式的一例的图。例如,按从该图的左侧向右侧的顺序,依次向总线200上发送各数据帧。在这里,MAC赋予涉及的模式具有关于是否赋予MAC或MAC的计算对象是哪个帧的哪个字段的各种变形。图17的三个数据帧的例子中,中央的数据帧502的例子不包含MAC。另外,在图17的例子中,示出了如下例子:根据两个以上帧所包含的数据字段的值来计算MAC并进行分割,将分割后的MAC分别存储在与成为计算对象的某一个数据相同的帧内并发送。即,示出了如下例子:基于左侧的数据帧501的数据字段和右侧的数据帧503的DLC和数据字段计算MAC,将该MAC的一部分存储在左侧的数据帧501中并发送,将该MAC的另一部分存储在右侧的数据帧503中并发送。
在这里,示出了为了抑制总线的流量的增加或为了计算量的削减,对是否按每个帧赋予MAC、成为MAC的计算对象的数据仅为数据字段还是包含DLC字段进行切换的例子,但也可以是这些例子以外的变形。例如,可以对全部帧赋予MAC,可以将ID字段、DLC字段以及数据字段的全部作为MAC的计算对象,可以将ID字段、DLC字段以及数据字段中的某一个字段单独作为MAC的计算对象,可以将各自的组合作为计算对象,也可以将这些字段与其他字段的组合作为计算对象。
[2.3ECU2100a的构成]
图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发送错误帧。另外,在ECU2100a赋予MAC并进行数据的发送时,帧生成部2109向MAC处理部106通知从数据取得部110通知的数据的值和预先确定的消息ID,并接受算出的MAC。在ECU2100a进行赋予了MAC的数据的发送时,帧生成部2109以包含预先确定的消息ID、从数据取得部110通知的数据的值以及从MAC处理部106接受到的MAC的方式,在存储器(发送缓冲器)中构成数据帧,并通知帧收发部101。在后面使用图19和图20说明帧生成部2109生成的数据帧的数据字段的构成。
[2.4数据字段格式]
在车载网络***11中发送给ECU的数据帧的数据字段格式基本上与在实施方式1所示的车载网络***10中使用的数据字段格式相同(参照图7和图8)。但是,将数据字段头301置换为数据字段头2301。
[2.5数据字段头2301的数据构成例]
图19表示数据字段头2301的数据构成。数据字段头2301在利用帧生成部2109发送数据帧时设定在数据字段的开头。
数据字段头2301由帧特性数据2311(18比特)、MAC计算对象字段类别312(3比特)以及数据字段构成类别313(3比特)构成,整体上成为24比特。
由于MAC计算对象字段类别312和数据字段构成类别313与实施方式1相同,所以在这里省略说明(参照图10和图11)。
[2.6帧特性数据2311的数据构成例]
图20表示数据字段头2301所包含的帧特性数据2311的数据构成。
帧特性数据2311由帧编号(帧No.)2321、总帧数2322、包含MAC计算用数据的帧数2323以及包含MAC的帧数2324构成,整体成为18比特。
帧No.2321是用于将应发送数据被分割为多个数据帧进行发送时的该一连串数据帧的组与其他组进行识别的值,用6比特表现。由发送数据帧的ECU赋予帧No.2321,以使得:属于应发送数据被分割而形成的一连串数据帧的组的各数据帧中帧No.2321成为相同的值,在属于其他组的数据帧中帧No.2321成为其他值。帧No.的值的确定方法例如既可以设为连号,每当发送一组数据帧时对值进行递增,也可以在应发送一组数据帧时随机生成值。此外,也可以是,在既不包含MAC计算用数据、也不包含MAC而仅包含一般数据的数据帧中,将帧No.设为零等,并例外地进行处理。以下,适当使用在仅包含一般数据的数据帧中将帧No.设为零的例子进行说明。
总帧数2322是表示分割为多个而形成的一连串数据帧的组中的数据帧的数量的值,用4比特表现。包含MAC计算用数据的帧数2323是表示该一连串数据帧的组中的包含MAC计算用数据的帧数的值,用4比特表现。另外,包含MAC的帧数2324是表示在总帧数内包含MAC的帧数的值,用4比特表现。
[2.7发动机涉及的ECU2100a的发送帧例]
图21是表示从与发动机310连接的ECU2100a发送来的数据帧中的ID(消息ID)和数据字段的内容(数据)的一例的图。ECU2100a发送的帧的消息ID为“1”。在该图中,数据字段的内容(数据)按每个字节用空白划分并用16进制表示。在图21的例子中,各行的开头的3字节是数据字段头2301,下一个(第4字节)字节是开始标记302和数据大小303,下一个(第5字节)字节是表示时速(km/小时)的MAC计算用数据305(仅第二行为一般数据304),图21的例子的第一行和第三行中的下一个字节(第6字节)是开始标记302和数据大小303,接着(第7字节)的4个字节是MAC306。时速(km/小时)取最低0(km/小时)~最高180(km/小时)的范围内的值。从图21的上面的行向下面的行,例示了按照在图17中例示的MAC赋予涉及的模式,从ECU2100a逐次发送来的各帧所对应的各消息ID和数据字段的内容(数据),示出了时速从0km/小时起每次加速1km/小时的情形。
[2.8数据帧发送处理]
图22是表示由ECU2100a执行的数据帧发送处理的流程图。以下,按照该图说明ECU2100a中的数据帧发送处理。此外,在图22中,对于与利用实施方式1涉及的ECU100a进行的数据帧发送处理(图14)同样的处理步骤(步)赋予相同的标号,并适当简化对这些步骤的说明。另外,虽然发送的数据帧的内容各自不同,但是ECU2100b~2100d也进行与ECU2100a同样的数据帧发送处理。在ECU2100a中,定期地进行数据帧发送处理。
ECU2100a确定应发送数据,使帧生成部109开始数据帧生成处理(步骤S1001)。关于逐次取得的应发送数据利用怎样的数据构成的数据帧、以怎样的帧组成来逐次发送,按照作为车载网络***11预先确定的预定算法来决定。作为确定帧组成和数据构成的预定算法的例子,如上述图17的例子,有如下算法等:例如,将三次发送设为一套,将其中的第一次发送的数据帧501和第三次发送的数据帧503设为相同组,在第一次发送的数据帧501的数据字段内,通过使用了表示时速的MAC计算用数据305、该数据帧501和其他数据帧503的MAC计算用数据305以及其他数据帧503的DLC的计算,包含算出的MAC的一部分(例如前半部分2字节),在第二次发送的数据帧502的数据字段内,包含表示时速的一般数据304,在第三次发送的数据帧503的数据字段内包含表示时速的MAC计算用数据305和上述MAC的剩余部分(例如后半部分2字节)并发送。
作为数据帧生成处理,帧生成部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的一般数据比特设定“1”(步骤S1004)。接着,帧生成部2109在确定在发送缓冲器内的数据帧中的数据字段内设定表示一般数据的值作为开始标记302(步骤S1005),设定与一般数据304的大小对应的值作为数据大小303(步骤S1006),设定一般数据304(步骤S1007)。
另外,帧生成部2109判断包含应发送数据的应发送数据帧(着眼的数据帧)是否是包含MAC计算用数据305的帧(步骤S1008)。在不包含MAC计算用数据305的情况下,跳过与MAC计算用数据关联的处理(步骤S1009~S1012)。在步骤S1008中判断为应发送数据帧包含MAC计算用数据305的情况下,帧生成部2109对确定在发送缓冲器内的数据帧中的数据字段头2301内的数据字段构成类别313的MAC计算用数据比特设定“1”(步骤S1009)。接着,帧生成部2109在确定在发送缓冲器内的数据帧中的数据字段内设定表示MAC计算用数据的值作为开始标记302(步骤S1010),设定与MAC计算用数据305的大小对应的值作为数据大小303(步骤S1011),设定MAC计算用数据305(步骤S1012)。
另外,帧生成部2109判断包含应发送数据的应发送数据帧(着眼的数据帧)是否是包含MAC306的帧(步骤S1013)。在不包含MAC306的情况下,跳过与MAC关联的处理(步骤S1014~S1018)。在步骤S1013中判断为应发送数据帧包含MAC306的情况下,帧生成部2109对确定在发送缓冲器内的数据帧中的数据字段头2301内的数据字段构成类别313的MAC比特设定“1”(步骤S1014)。
接着,帧生成部2109向MAC处理部106传送基于预定算法确定的数据(也即是,基于在MAC计算对象字段类别312中设定的值的数据)作为成为MAC的计算对象的数据,MAC处理部106算出MAC(步骤S1015)。MAC处理部106通过使用由MAC密钥保持部107保持的MAC密钥,对将传送给帧生成部2109的成为MAC的计算对象的数据、和由计数保持部108保持的发送计数值结合而成的值进行计算,从而算出在应发送数据帧中作为MAC306设定的MAC值。接着,帧生成部2109在确定在发送缓冲器内的数据帧中的数据字段内设定表示MAC的值作为开始标记302(步骤S1016),设定与MAC306的大小对应的值作为数据大小303(步骤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的数据帧接收处理。此外,在图23~图25中,对于与利用实施方式1涉及的ECU100b进行的数据帧接收处理(图15和图16)同样的处理步骤(步)赋予相同的标号,并适当简化对这些步骤的说明。此外,ECU2100a、2100c、2100d也进行与ECU2100b同样的数据帧接收处理。
在向总线200上发送了帧的情况下,在ECU2100b中开始数据帧接收处理。
ECU2100b按照CAN协议从总线200逐比特进行接收,在接收数据帧中的ID等并进行处理之后接收数据字段。此时,帧解释部102向帧处理部2105传送ID、DLC、数据字段等,帧处理部2105开始与数据字段关联的数据处理(步骤S1101)。此外,在帧处理部2105中,利用ID区别帧,设为可能存在同一ID的多个帧作为一个组进行发送的情况来进行处理。
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处理部106通知收集到的MAC的验证所需的数据并利用得到的MAC值进行MAC的验证处理,在验证成功的情况下(步骤S1116),根据接收到的数据的内容,进行预先确定的处理(与数据对应的功能涉及的处理)(步骤S1117)。在步骤S1115和步骤S1116中,在由作为识别符发挥功能的各种标记表示的数据字段的内容的类别表示包含在用于算出MAC的计算中使用的数据的区域的情况下,通过使用了该数据字段中的、在用于算出MAC的计算中使用的数据的区域(与该各种标记对应的区域)的值的计算,进行验证处理,所述识别符是关于在用于算出MAC的计算中使用的数据的识别符。
在步骤S1116中验证不成功的情况下,帧处理部2105跳过与接收到的数据帧的数据字段的数据对应的功能涉及的处理(步骤S1117)。
在步骤S1117的处理结束的情况下或被跳过的情况下,帧处理部2105清除(clear)全部缓冲器(步骤S1118),将接收计数值增加(步骤S1119)。
[2.10实施方式2的效果]
在实施方式2所示的车载网络***11中,通过使可作为识别符发挥功能的数据字段头2301、开始标记302等包含于在多个ECU间收发的数据帧的数据字段内,能够自由地确定存储在数据字段中的数据的构成,所述识别符是关于在用于算出MAC的计算中使用的数据的识别符。由此,例如,能够对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的MAC赋予涉及的模式能够变形为图26所示的例子。例如,按从图26的左侧向右侧的顺序,依次向总线200上发送各数据帧。
图26所示的五个数据帧的例子中,数据帧602的例子不包含MAC和MAC计算用数据。在图26的例子中,示出了如下例子:根据两个以上帧所包含的数据字段的值来计算算出MAC并进行分割,将分割后的MAC分别存储在与成为计算对象的数据的哪一个都不相同(各自独立)的帧内并发送。即,示出了如下例子:基于数据帧601的DLC和数据字段、数据帧603的DLC和数据字段,计算并算出MAC,将该MAC的一部分存储在数据帧604中并发送,将该MAC的另一部分存储在数据帧605中并发送。
与图26的例子对应地,在车载网络***中使用的确定帧组成和数据构成的预定算法例如是如下等算法:将5次发送作为一套,其中第1、3~5次发送的数据帧601、603~605设为相同组,在数据帧601、603的数据字段内,包含表示时速等应发送值的MAC计算用数据305,在数据帧602的数据字段内,包含表示时速等应发送值的一般数据304,在数据帧604的数据字段内,包含通过使用了数据帧601和数据帧603的MAC计算用数据305和DLC的计算而算出的MAC的一部分(例如前半部分2字节),在数据帧605的数据字段内,包含上述MAC的剩余部分(例如后半部分2字节)并发送。能够对该预定算法进行各种变形。另外,分到并包含在各数据帧中的应发送的值不一定是按时间分别生成或取得的值,既可以是一体生成或取得的值,也可以是同时期地独立生成或取得的值。另外,不一定需要定期地(也即是,时间上以一定间隔)发送各数据帧。
此外,与图26的MAC赋予涉及的模式的例子对应地,在变更了确定帧组成和数据构成的预定算法的内容以外的点,变形例1中的车载网络***的各ECU的构成和工作与上述ECU2100a~2100d相同。但是,与图26的例子对应地,作为确定帧组成和数据构成的预定算法,在能够使用在先的数据帧内的数据字段以外(ID字段或DLC)来进行后续的数据帧内的MAC的算出的情况下,也可以按以下方式变形数据帧接收处理。即,在数据帧接收处理的步骤S2107(图25)中判定为没有接收到与总帧数2322表示的数量相应的相同组的数据帧的情况下,为了在用于后面接收的帧中的MAC的算出的计算中能够使用ID字段或DLC,帧处理部2105可以将ID字段和DLC的内容预先存储在缓冲器中。
[2.12实施方式2的变形例1的效果]
在变形例1涉及的车载网络***中,能够将包含MAC计算用数据305的帧、和包含根据该MAC计算用数据305计算的MAC306的帧分别分离并发送,由此,可产生如下效果:能减轻(分散)在发送侧、接收侧各自的ECU中每单位时间的帧的处理负荷。
[2.13实施方式2的变形例2]
在实施方式2中向图17所示数据帧赋予MAC的MAC赋予涉及的模式也能够变形为图27所示的例子。
图27所示的五个数据帧的例子中的数据帧612的例子不包含MAC和MAC计算用数据。在图27的例子中,示出了如下例子:根据两个以上帧所包含的数据字段的值来计算算出MAC并进行分割,将分割后的MAC分别与一般数据一起,存储在与成为计算对象的数据的哪一个都不相同的帧内并发送。即,示出了如下例子:基于数据帧611的数据字段和数据帧613的数据字段计算并算出MAC,将该MAC的一部分与一般数据(也即是,在用于MAC的算出的计算中不使用的数据)一起,存储在数据帧614中并发送,将该MAC的另一部分与一般数据一起存储在数据帧615中并发送。
与图27的例子对应地,在车载网络***中使用的确定帧组成和数据构成的预定算法例如是如下等算法:将5次发送作为一套,其中第1、3~5次发送的数据帧611、613~615设为相同组,在数据帧611、613的数据字段内,包含表示时速等应发送值的MAC计算用数据305,在数据帧612的数据字段内,包含表示时速等应发送值的一般数据304,在数据帧614的数据字段内,包含一般数据304、和通过使用了数据帧611和数据帧613的MAC计算用数据305的计算而算出的MAC的一部分(例如前半部分2字节),在数据帧615的数据字段内,包含一般数据304和上述MAC的剩余部分(例如后半部分2字节)并发送。能够对该预定算法进行各种变形。另外,分到并包含在各数据帧中的应发送的值不一定是按时间分别生成或取得的值,既可以是一体生成或取得的值,也可以是同时期地独立生成或取得的值。另外,不一定需要定期地(也即是,时间上以一定间隔)发送各数据帧。
此外,与图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的MAC赋予涉及的模式也能够变形为图28所示的例子。
图28所示的四个数据帧的例子中,数据帧624的例子不包含MAC和MAC计算用数据。在图28的例子中,示出了如下例子:根据两个以上帧所包含的数据字段的值来计算算出MAC,将MAC与一般数据一起,存储在与成为计算对象的数据的哪一个都不相同(各自独立)的帧内并发送。即,示出了如下例子:基于数据帧621的数据字段和数据帧623的数据字段计算并算出MAC,将该MAC与一般数据(也即是,在用于MAC的算出的计算中不使用的数据)一起存储在数据帧622中并发送,在最后的数据帧624中,仅将一般数据存储在数据字段中并发送。
与图28的例子对应地,在车载网络***中使用的确定帧组成和数据构成的预定算法例如是如下等算法:将4次发送作为一套,将该全部数据帧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的数据帧后发送的数据帧中的方式确定帧组成是有用的。此外,也可以是,在帧特性数据2311中,包含表示接收到属于一个组的多个数据帧(也即是,赋予了相同的帧No.的数据帧)中的第几个数据帧后能够开始MAC的验证处理的信息,来取代包含MAC计算用数据的帧数2323和包含MAC数据的帧数2324,ECU基于该信息判定开始MAC的验证处理的定时。
[2.16实施方式2的变形例3的效果]
在变形例3涉及的车载网络***中,由于ECU可在接收到的帧数达到总帧数2322之前开始MAC的验证处理,所以能够加速帧收发的完成。
[2.17补充]
以上,说明了各种MAC赋予涉及的模式,但这些只不过是例示,能够在任意的定时使用多样的模式。此外,将MAC包含在单一的帧中的状态(也即是,当接收到该帧时能够直接进行MAC的验证的状态)称为单帧。另外,将MAC分割在多个帧中的状态称为多帧。
在ECU中,作为确定关于所发送数据的帧组成和数据构成的预定算法,能够使用对用单帧发送数据还是用多帧发送数据进行任意地决定、并在任意的定时切换的各种算法。
(其他实施方式)
如以上,作为本公开涉及的技术的例示说明了实施方式1、2以及变形例1~3。然而,本公开涉及的技术不限定于此,也可应用于适当进行了变更、置换、附加以及省略等而成的实施方式。例如,以下变形例也包含于本公开的一实施方式。
(1)上述实施方式所示的MAC的赋予涉及的模式可以是按每个帧ID不同的模式。另外,即使帧的ID相同,MAC的赋予涉及的模式不限于一个模式,可以设为随时变更。例如,也可以是,通过使用为了实现MAC的赋予涉及的模式而预先确定的、确定帧组成和数据构成的多个预定算法,并逐次切换该预定算法,从而变更MAC的赋予涉及的模式。该变更定时既可以定期也可以随机。另外,也可以根据总线占有率的状况,变更MAC的赋予涉及的模式。
(2)在上述实施方式中,作为MAC的赋予涉及的模式,示出了减少在ECU发送的帧中赋予MAC的次数,或使发送的帧中包含MAC计算用数据的次数的例子(间隔剔除的例子),除此之外,也可以在接收侧的ECU中,间隔剔除对帧进行MAC的验证处理的次数。另外,也可以是,发送侧的ECU在帧中加入用于指示接收侧的ECU中的处理的变更的数据并发送。
(3)在上述实施方式中,示出了能够将ID、DLC、数据字段的数据值以及计数值用于MAC的计算之意,但可以使用数据帧所包含的其他字段的值进行计算,也可以根据它们的某一个值或多个值的组合来进行MAC的计算。另外,帧所包含的MAC的大小不限制为特定的大小,也可以在每次发送时设为不同的大小,也可以按每个消息ID设为不同的大小。另外,同样地,时速等数据值的大小和计数值的大小也不限制于特定的大小。
(4)在上述实施方式中,示出了每当收发计数值时增加的例子,但计数值也可以是根据时刻自动地增加的值。另外,也可以使用时刻本身的值来取代计数值。即,当基于每当发送数据帧时变化的变量(计数值、时刻等)生成MAC时,能够使MAC的非法解读困难化。另外,发送计数值可以设为每当生成MAC数据时增加,接收计数值可以设为每当验证MAC时增加。
(5)在上述实施方式中,以标准ID格式记述了CAN协议下的数据帧,但也可以是扩展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、其他计算块的数据大小所需要的填充方式,则可以是任何填充方式。另外,关于对4个字节等的块的大小进行变更的变更方法,也可以在开头、尾端以及中间的任一个部分进行填充。另外,用于MAC算出的数据即使不是连续的数据(例如4个字节的连续数据),也可以按照特定规则逐个比特收集并结合。
(8)在上述实施方式中,按每个消息ID保持一个MAC密钥,但也可以按每个ECU(也即是,按一个以上消息ID组)保持一个MAC密钥。另外,无需全部ECU保持相同的MAC密钥。另外,与同一总线连接的各ECU可以保持共同的MAC密钥。但是,在发送相同的消息ID的帧的ECU和接收该帧并进行验证的ECU中需要保持相同的MAC密钥。另外,在上述实施方式中按每个消息ID保持一个计数值(发送计数值、接收计数值),但也可以按每个ECU(也即是,按1个以上消息ID组)保持一个计数值。另外,也可以对在同一总线上流动的全部帧使用共同的计数值。
(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:时间出发CAN)、CANFD(CAN with Flexible Data Rate:具有灵活的数据速率的CAN)等派生性协议的广义含义。
(15)上述实施方式中的MAC密钥保持部和计数保持部也可以保存在被称为CAN控制器的硬件的寄存器或在与CAN控制器连接并工作的个人电脑上工作的固件中。
(16)上述实施方式中的各ECU例如是处理器、存储器等包含数字电路、模拟电路以及通信线路等的装置,但也可以包含硬盘装置、显示器、键盘以及鼠标等其他硬件构成要素。另外,也可以利用专用硬件(数字电路等)实现功能,来取代利用处理器执行存储于存储器的控制程序而以软件方式实现该功能。
(17)构成上述实施方式中的各装置(ECU等)的构成要素的一部分或全部可以由一个***LSI(Large Scale Integration:大规模集成电路)构成。***LSI是将多个构成部集成在一个芯片上制造而成的超多功能LSI,具体而言,是包含微处理器、ROM以及RAM等而构成的计算机***。在所述RAM中记录有计算机程序。通过所述微处理器按照所述计算机程序工作,***LSI实现其功能。另外,构成上述各装置的构成要素的各部分既可以形成为独立的单片,也可以形成为包含一部分或全部的单片。另外,在这里,设为***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帧处理部
106MAC处理部
107MAC密钥保持部
108计数保持部
109、2109帧生成部
110数据取得部
200总线
310发动机
320制动器
330门开闭传感器
340窗开闭传感器
301、2301数据字段头
302开始标记
303数据大小
304一般数据
305MAC计算用数据
306MAC数据
311预约比特
312MAC计算对象字段类别
313数据字段构成类别
2311帧特性数据
2321帧编号(帧No.)
2322总帧数
2323包含MAC计算用数据的帧数
2324包含MAC的帧数
Claims (19)
1.一种车载网络***,具备经由网络进行通信的多个电子控制单元,所述车载网络***具备:
第一电子控制单元,通过所述网络发送包含识别符的一个或多个数据帧,所述识别符是表示在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和
第二电子控制单元,接收在所述网络上发送来的一个或多个数据帧,并根据接收到的数据帧的所述识别符选择在用于算出消息认证码的计算中使用的数据,进行消息认证码的验证处理。
2.根据权利要求1所述的车载网络***,
所述第一电子控制单元使消息认证码包含在要发送的所述一个或多个数据帧中的至少一个数据帧中来进行发送,该消息认证码通过使用了配置在该一个或多个数据帧内的一个以上区域中的数据的计算而算出,
所述第一电子控制单元所发送的所述一个或多个数据帧所包含的所述识别符包含如下信息,该信息表示在用于算出所述消息认证码的计算中使用的、该一个或多个数据帧内的一个以上数据的区域,
所述第二电子控制单元通过使用了由所述识别符表示的区域的数据的计算,进行所述验证处理。
3.根据权利要求2所述的车载网络***,
所述第一电子控制单元通过使用了配置在要发送的多个数据帧内的一个以上区域中的数据的计算,算出所述消息认证码,并使算出的消息认证码包含在该多个数据帧中的至少一个数据帧中来进行发送,
所述第一电子控制单元所发送的所述多个数据帧所包含的所述识别符包含表示该多个数据帧的数量的信息,
所述第二电子控制单元在接收到由接收到的某一个数据帧所包含的所述识别符表示的数量的数据帧的情况下,通过使用了由接收到的各数据帧中的所述识别符表示的区域的数据的计算,进行所述验证处理。
4.一种接收方法,是在经由网络进行通信的电子控制单元中使用的接收方法,所述接收方法包括:
接收步骤,接收在所述网络上发送来的、包含识别符的一个或多个数据帧,所述识别符是表示在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和
验证步骤,在所述接收步骤中接收到一个或多个数据帧的情况下,根据接收到的数据帧的所述识别符选择在用于算出消息认证码的计算中使用的数据,进行消息认证码的验证处理。
5.根据权利要求4所述的接收方法,
在所述接收步骤中接收的数据帧中的所述识别符表示该数据帧的数据字段的内容的类别。
6.根据权利要求5所述的接收方法,
在所述接收步骤中接收的所述一个或多个数据帧中的至少一个数据帧包含消息认证码,
由在所述接收步骤中接收的数据帧中的所述识别符表示的、数据字段的内容的所述类别表示:在该数据字段中是否包含在用于算出消息认证码的计算中使用的数据的区域,
在所述验证步骤中,在由所述识别符表示的数据字段的内容的所述类别表示包含在用于算出消息认证码的计算中使用的数据的区域的情况下,通过使用了在用于算出该数据字段中的消息认证码的计算中使用的数据的区域的值的计算,进行所述验证处理。
7.根据权利要求4所述的接收方法,
在所述接收步骤中接收的数据帧中的所述识别符表示该数据帧的数据字段中的一个类别的数据的区域。
8.根据权利要求7所述的接收方法,
在所述接收步骤中接收的所述一个或多个数据帧中的至少一个数据帧包含消息认证码,
由在所述接收步骤中接收的数据帧中的所述识别符表示的所述一个类别的数据的区域是在用于算出消息认证码的计算中使用的数据的区域,
在所述验证步骤中,通过使用了由所述识别符表示的区域的数据的计算,进行所述验证处理。
9.根据权利要求4所述的接收方法,
在所述接收步骤中接收的数据帧中的所述识别符配置在该数据帧的数据字段中,
在所述验证步骤中,根据接收到的数据帧的数据字段内的所述识别符,进行所述验证处理。
10.根据权利要求4所述的接收方法,
所述一个或多个数据帧所包含的所述识别符包含如下信息,该信息表示该一个或多个数据帧内的一个以上数据的区域,
在所述验证步骤中,通过使用了与在所述接收步骤中接收到的数据帧中的所述识别符对应的区域的数据的计算,进行所述验证处理。
11.一种发送方法,是在经由网络进行通信的电子控制单元中使用的发送方法,所述发送方法包括:
算出步骤,通过使用了配置在一个或多个数据帧内的一个以上区域的数据的计算,算出用于表示发送内容的合法性的消息认证码;和
发送步骤,使在所述算出步骤中算出的消息认证码包含在所述一个或多个数据帧中的至少一个数据帧中,并发送包含识别符的该一个或多个数据帧,所述识别符用于选择在用于算出该消息认证码的计算中使用的数据。
12.根据权利要求11所述的发送方法,
在所述发送步骤中发送的数据帧中的所述识别符表示该数据帧的数据字段的内容的类别。
13.根据权利要求12所述的发送方法,
由在所述发送步骤中发送的数据帧中的所述识别符表示的、数据字段的内容的所述类别表示:在该数据字段中是否包含在所述算出步骤中在用于算出所述消息认证码的计算中使用的数据的区域。
14.根据权利要求11所述的发送方法,
在所述发送步骤中发送的数据帧中的所述识别符表示该数据帧的数据字段中的一个类别的数据的区域。
15.根据权利要求14所述的发送方法,
由在所述发送步骤中发送的数据帧中的所述识别符表示的所述一个类别的数据的区域是在所述算出步骤中在用于算出所述消息认证码的计算中使用的数据的区域。
16.根据权利要求11所述的发送方法,
在所述发送步骤中,将所述识别符配置在发送的数据帧的数据字段中。
17.根据权利要求11所述的发送方法,
在所述发送步骤中发送的所述一个或多个数据帧所包含的所述识别符包含如下信息,该信息表示在用于算出所述消息认证码的计算中使用的、该一个或多个数据帧内的一个以上数据的区域。
18.一种电子控制单元,是经由网络进行通信的电子控制单元,具备:
接收部,接收在所述网络上发送来的、包含识别符的一个或多个数据帧,所述识别符是表示在用于算出消息认证码的计算中使用的数据的识别符,所述消息认证码表示发送内容的合法性;和
验证部,在由所述接收部接收到一个或多个数据帧的情况下,根据接收到的数据帧的所述识别符选择成为消息认证码的计算对象的数据,进行消息认证码的验证处理。
19.一种电子控制单元,是经由网络进行通信的电子控制单元,具备:
算出部,通过使用了配置在一个或多个数据帧内的一个以上区域中的数据的计算,算出用于表示发送内容的合法性的消息认证码;和
发送部,使由所述算出部算出的消息认证码包含在所述一个或多个数据帧中的至少一个数据帧中,并发送包含识别符的该一个或多个数据帧,所述识别符用于选择在用于算出该消息认证码的计算中使用的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010253999.6A CN111478836B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462022741P | 2014-07-10 | 2014-07-10 | |
US62/022,741 | 2014-07-10 | ||
JP2015059387 | 2015-03-23 | ||
JP2015-059387 | 2015-03-23 | ||
CN202010253999.6A CN111478836B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
CN201580025316.9A CN106464557B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
PCT/JP2015/002506 WO2016006150A1 (ja) | 2014-07-10 | 2015-05-19 | 車載ネットワークシステム、電子制御ユニット、受信方法及び送信方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580025316.9A Division CN106464557B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111478836A CN111478836A (zh) | 2020-07-31 |
CN111478836B true CN111478836B (zh) | 2024-02-20 |
Family
ID=55063812
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010253999.6A Active CN111478836B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
CN201580025316.9A Active CN106464557B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
CN202010254008.6A Pending CN111464414A (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580025316.9A Active CN106464557B (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
CN202010254008.6A Pending CN111464414A (zh) | 2014-07-10 | 2015-05-19 | 车载网络***、电子控制单元、接收方法以及发送方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11113382B2 (zh) |
EP (2) | EP3876481B1 (zh) |
JP (1) | JP6396464B2 (zh) |
CN (3) | CN111478836B (zh) |
WO (1) | WO2016006150A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111478836B (zh) * | 2014-07-10 | 2024-02-20 | 松下电器(美国)知识产权公司 | 车载网络***、电子控制单元、接收方法以及发送方法 |
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 |
WO2019026077A1 (en) * | 2017-08-02 | 2019-02-07 | Enigmatos Ltd. | SYSTEM AND METHOD FOR PREVENTING MALBUSED 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 (zh) * | 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通信的总线协议 |
WO2022085057A1 (ja) * | 2020-10-19 | 2022-04-28 | 日産自動車株式会社 | 中継装置、通信ネットワークシステム及び通信制御方法 |
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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008227741A (ja) * | 2007-03-09 | 2008-09-25 | Auto Network Gijutsu Kenkyusho:Kk | 車載用通信システム |
JP2010215008A (ja) * | 2009-03-13 | 2010-09-30 | Denso Corp | 車両制御システム |
CN102006625A (zh) * | 2010-11-10 | 2011-04-06 | 清华大学 | 基于前向纠错的车载自组网可靠广播协议的***及方法 |
JP2012257033A (ja) * | 2011-06-08 | 2012-12-27 | Sumitomo Electric Ind Ltd | 路側通信機、無線通信システム、無線信号の受信方法及びコンピュータプログラム |
KR20130021157A (ko) * | 2011-08-22 | 2013-03-05 | 고려대학교 산학협력단 | 차량용 데이터의 인증 및 획득 방법 및 시스템 |
CN103078836A (zh) * | 2011-10-25 | 2013-05-01 | 通用汽车环球科技运作有限责任公司 | 车载网络中的计算机安全 |
WO2013175633A1 (ja) * | 2012-05-25 | 2013-11-28 | トヨタ自動車 株式会社 | 通信装置、通信システム及び通信方法 |
CN103620574A (zh) * | 2011-04-06 | 2014-03-05 | 罗伯特·博世有限公司 | 用于提高串行总线***中的数据传输容量的方法和设备 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0779343B2 (ja) * | 1988-03-04 | 1995-08-23 | 日本電気株式会社 | 端末識別子管理方法及び装置 |
MXPA04005228A (es) * | 2001-12-05 | 2004-10-11 | Lg Electronics Inc | Metodo para generar codigos para deteccion de errores y generador de codigos para deteccion de errores. |
JP4164456B2 (ja) * | 2004-03-05 | 2008-10-15 | キヤノン株式会社 | 無線通信システム、無線アクセスポイント装置、無線アクセスポイント装置の通信方法、及び無線アクセスポイント装置を制御するためのプログラム |
JP5389453B2 (ja) * | 2006-02-17 | 2014-01-15 | エスエムエスシー・ヨーロッパ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング | 通信システムを介したデータパケットの伝送システム及び伝送方法 |
CN100508471C (zh) * | 2006-02-28 | 2009-07-01 | 大星电机工业株式会社 | 控制器局域网网络控制***及其检测与调试方法 |
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 | 斯必克机电产品(苏州)有限公司 | 汽车故障诊断功能的分类与授权*** |
US9088454B2 (en) * | 2010-11-03 | 2015-07-21 | Broadcom Corporation | Vehicle network node module |
JP5640853B2 (ja) * | 2011-03-24 | 2014-12-17 | ヤマハ株式会社 | 通信システム、ルータ、スイッチングハブ、およびプログラム |
US9563388B2 (en) * | 2011-04-12 | 2017-02-07 | International Business Machines Corporation | Sharing a hosted device in a computer network |
DE102011077409A1 (de) * | 2011-06-10 | 2012-12-13 | Robert Bosch Gmbh | Verbindungsknoten für ein Kommunikationsnetz |
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 |
US20150079941A1 (en) * | 2012-05-15 | 2015-03-19 | Telefonaktiebolaget L M 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 |
JP6377143B2 (ja) * | 2014-05-08 | 2018-08-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 車載ネットワークシステム、電子制御ユニット及び更新処理方法 |
JP6407981B2 (ja) * | 2014-05-08 | 2018-10-17 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 車載ネットワークシステム、電子制御ユニット及び不正対処方法 |
JP6199335B2 (ja) * | 2014-06-05 | 2017-09-20 | Kddi株式会社 | 通信ネットワークシステム及びメッセージ検査方法 |
CN111478836B (zh) * | 2014-07-10 | 2024-02-20 | 松下电器(美国)知识产权公司 | 车载网络***、电子控制单元、接收方法以及发送方法 |
-
2015
- 2015-05-19 CN CN202010253999.6A patent/CN111478836B/zh active Active
- 2015-05-19 EP EP21170345.9A patent/EP3876481B1/en active Active
- 2015-05-19 CN CN201580025316.9A patent/CN106464557B/zh active Active
- 2015-05-19 EP EP15819615.4A patent/EP3169021B1/en active Active
- 2015-05-19 CN CN202010254008.6A patent/CN111464414A/zh active Pending
- 2015-05-19 WO PCT/JP2015/002506 patent/WO2016006150A1/ja active Application Filing
- 2015-05-19 JP JP2016532409A patent/JP6396464B2/ja active Active
-
2016
- 2016-12-21 US US15/386,055 patent/US11113382B2/en active Active
-
2021
- 2021-08-04 US US17/393,713 patent/US11971978B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008227741A (ja) * | 2007-03-09 | 2008-09-25 | Auto Network Gijutsu Kenkyusho:Kk | 車載用通信システム |
JP2010215008A (ja) * | 2009-03-13 | 2010-09-30 | Denso Corp | 車両制御システム |
CN102006625A (zh) * | 2010-11-10 | 2011-04-06 | 清华大学 | 基于前向纠错的车载自组网可靠广播协议的***及方法 |
CN103620574A (zh) * | 2011-04-06 | 2014-03-05 | 罗伯特·博世有限公司 | 用于提高串行总线***中的数据传输容量的方法和设备 |
JP2012257033A (ja) * | 2011-06-08 | 2012-12-27 | Sumitomo Electric Ind Ltd | 路側通信機、無線通信システム、無線信号の受信方法及びコンピュータプログラム |
KR20130021157A (ko) * | 2011-08-22 | 2013-03-05 | 고려대학교 산학협력단 | 차량용 데이터의 인증 및 획득 방법 및 시스템 |
CN103078836A (zh) * | 2011-10-25 | 2013-05-01 | 通用汽车环球科技运作有限责任公司 | 车载网络中的计算机安全 |
WO2013175633A1 (ja) * | 2012-05-25 | 2013-11-28 | トヨタ自動車 株式会社 | 通信装置、通信システム及び通信方法 |
Non-Patent Citations (2)
Title |
---|
sheng-shin,etal..a distributed adaptive MAC protocol for efficient broadcasting in vehicular ad hoc networks.《2012 IEEE wireless communications and networking conference(WCNC)》.2012,全文. * |
面向交通安全信息传输的车联网MAC机制研究;李帅;《中国优秀硕士学位论文全文数据库》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111464414A (zh) | 2020-07-28 |
CN111478836A (zh) | 2020-07-31 |
US20170109521A1 (en) | 2017-04-20 |
EP3876481A1 (en) | 2021-09-08 |
EP3169021B1 (en) | 2021-06-23 |
EP3876481B1 (en) | 2023-08-02 |
JP6396464B2 (ja) | 2018-09-26 |
WO2016006150A1 (ja) | 2016-01-14 |
US11113382B2 (en) | 2021-09-07 |
US11971978B2 (en) | 2024-04-30 |
JPWO2016006150A1 (ja) | 2017-04-27 |
US20210365542A1 (en) | 2021-11-25 |
CN106464557B (zh) | 2020-04-24 |
EP3169021A4 (en) | 2017-07-05 |
CN106464557A (zh) | 2017-02-22 |
EP3169021A1 (en) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111478836B (zh) | 车载网络***、电子控制单元、接收方法以及发送方法 | |
CN106105105B9 (zh) | 网络通信***、不正常检测电子控制单元以及不正常应对方法 | |
CN107431625B (zh) | 网关装置、车载网络***以及转送方法 | |
EP3142288B1 (en) | In-car network system, electronic control unit and update processing method | |
CN110406485B (zh) | 非法检测方法及车载网络*** | |
CN107113214B (zh) | 不正常检测电子控制单元、车载网络***以及通信方法 | |
CN111492625B (zh) | 非法检测方法以及非法检测装置 | |
CN112889246B (zh) | 异常判定方法、异常判定装置以及程序 | |
JP6983977B2 (ja) | ゲートウェイ装置、車載ネットワークシステム及び転送方法 | |
CN111376848B (zh) | 不正常检测规则更新方法、电子控制单元和车载网络*** | |
CN111066001B (zh) | 日志输出方法、日志输出装置以及存储介质 | |
JP2024100287A (ja) | 電子制御装置、mac送信方法、mac送信プログラム、及び電子制御システム | |
CN111066001A (zh) | 日志输出方法、日志输出装置以及程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |