信息传输方法、通信设备与系统、计算机可读存储介质与流程

专利2022-05-09  1



1.本申请涉及通信技术领域,特别涉及一种信息传输方法、通信设备与系统、计算机可读存储介质。


背景技术:

2.控制器局域网络(controller area network,can)是一种使用广泛的车内网络类型,通过can网络协议,多个车载设备(electronic control unit,ecu)可以进行通信,进而还可以控制车辆工作。can消息的消息认证机制与车内网络安全、整车安全、车内人员的人身安全息息相关,而can消息认证机制的基本要求就是防重放攻击。
3.autosar secoc(specification of secu设备re onboard communication)是一种车载系统的标准,autosar规定使用计数器(counter)进行can消息认证。具体而言,在ecu设备之间进行can通信时,受限于can消息的数据载荷能力,发送端发送can消息时,一般在can消息中携带低8位计数值;而接收端在接收到can消息时,利用自身维护的整计数值,以及,can消息中携带的低8位计数值,对can消息进行认证保护,如此可以在认证通过后,同步二者的计数值,并处理can消息。
4.随着can消息的增加,计数值会发生进位。例如,发送端在发送28=256个can消息后,低8位计数值会置零,并进位高位比特。那么,若接收端与发送端失去同步的情况超过256帧,由于高位计数值不同,接收端进行can消息的认证保护时,有可能将非法消息认证为合法消息,也可能将合法消息认证为非法消息,严重影响通信安全和车辆安全。


技术实现要素:

5.本申请提供了一种信息传输方法、通信设备与系统、计算机可读存储介质,用以提高车内网络通信的安全性与稳定性。
6.第一方面,本申请提供了一种信息传输方法。该方法可以应用于第一设备,第一设备与第二设备通过can消息进行通信。并且,第一设备包括第一计数器,第二设备包括第二计数器,第一计数器与第二计数器均以第一设备与第二设备之间的数据收发进行计数。
7.在该通信系统中,在第二设备发送can消息时,can消息中携带第二计数值。那么,第一设备接收到该can消息,就可以判断第一计数值与第二计数值是否匹配;若不匹配,则第一设备利用第二计数值、全局计数值来对该can消息进行验证。其中,全局计数值是第一设备获取到的当前的全局计数值。如此,针对任意的can消息,都能够基于各ecu设备维护的本地计数值实现认证保护。并且,当计数值不匹配时,还可以进一步结合全局计数值,实现对can消息的验证,提高了can消息的通信安全性,能够在一定程度上降低将非法消息认证为合法消息的可能性,有利于提高通信系统的通信安全。当该通信系统为车内网络的通信系统时,也有利于提高车辆安全。
8.在第一方面的一种可能的实施例中,若对can消息的验证通过,则第一设备可以更新第一计数值;反之,若验证失败,则无需更新第一计数值。
9.在第一方面的另一种可能的实施例中,任意两个所述全局计数值不同。
10.在第一方面的另一种可能的实施例中,第一设备利用第二计数值与当前的全局计数值,对can消息进行验证的过程可以为:第一设备基于第二计数值与全局计数值,获取整计数值,然后,基于整计数值、第一设备与第二设备之间的秘钥,获取第一验证码,从而,若第一验证码与can消息中携带的第二验证码相同,则验证通过,第一设备即可更新第一计数值。如此,通过整计数值和秘钥的协同作用,可以实现对can消息的合法性验证,有利于提高计数值同步过程的安全性。
11.此外,在本申请的另一个实施例中,第一验证码还可以利用整计数值、秘钥以及can消息的内容来获取得到。相应地,第二验证码也与第二设备获取到的整计数值、秘钥以及can消息的内容相关联。
12.在第一方面的另一种可能的实施例中,整计数值为第二计数值与全局计数值之和;或者,整计数值为第二计数值与全局计数值构成的长字符串。换言之,整计数值由全局计数值、本地计数值构成。
13.在第一方面的另一种可能的实施例中,第一设备可以判断第一计数值与单位计数间隔之和是否等于第二计数值。从而,当第一计数值与单位计数间隔之和不等于第二计数值时,第一设备确定第一计数值与第二计数值不匹配。单位计数间隔可以为一。
14.在第一方面的另一种可能的实施例中,当验证通过时,第一设备处理can消息。
15.在第一方面的另一种可能的实施例中,第一设备可以通过接收全局计数值的方式,获取到当前的全局计数值。进一步的,第一设备还可以存储全局计数值。
16.在第一方面的另一种可能的实施例中,全局计数值为第三设备周期性广播的。本申请实施例中,第三设备可以为网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,其中,计数器设备用于对全局计数值进行计数。也就是,第三设备可以具体为后续说明中的指定设备。
17.在第一方面的另一种可能的实施例中,若全局计数值为周期性广播的,那么,每当接收到全局计数值时,第一设备将第一计数器置零。
18.在第一方面的另一种可能的实施例中,第一设备接收全局计数值之前,第一设备向第四设备发送同步请求,以使得第四设备向第一设备发送全局计数值。此时,第一设备可以主动向拥有全局计数值的第四设备请求同步全局计数值。此时,第四设备可以为第三设备,或者,第四设备也可以为第二设备,或者,第四设备还可以为除第三设备之外的任意存储有全局计数值的设备。例如,图2所示实施例中,第四设备还可以为第一设备所在域的域管理员。
19.在第一方面的另一种可能的实施例中,第一设备利用第一特定标识发送所述同步请求;所述第四设备利用第二特定标识发送所述全局计数值。
20.在第一方面的另一种可能的实施例中,若所述同步请求为所述第一设备启动后发送的,所述第一设备还用于将所述第一计数器置零。若同步请求为所述第一设备经休眠唤醒后发送的,第一设备可不用将第一计数器置零。
21.在第一方面的另一种可能的实施例中,第一设备还包括第一计时器,第一设备基于第一计时器与第一计时周期获取当前的全局计数值。
22.此时,在第一方面的另一种可能的实施例中,全局计数值为当前时刻所属计时周
期的周期标识。
23.在第一方面的另一种可能的实施例中,当第二设备发送can消息的发送时刻处于第二计时周期的边界区间时,can消息中还携带有边界标识。其中,第二计时周期与第一计时周期保持同步。在该实施例中,第二设备中还包括第二计时器,第二设备在发送can消息时,可以基于第二计时器与第二计时周期获取当前的全局计数值。
24.在第一方面的另一种可能的实施例中,当can消息中携带有边界标识时,第一设备获取整计数值,包括:第一设备利用边界标识,对全局计数值进行校正,然后,第一设备利用校正后的全局计数值与第二计数值,获取整计数值。进而,该通信设备利用该整计数值实现对can消息的认证保护。
25.在第一方面的另一种可能的实施例中,当第一设备具备第一计时器,第二设备包括第二计时器时,所述第一计时器与所述第二计时器可以周期性同步,或者,在满足预设的误差条件时同步。其中,当第一计时器记录的当前时刻,与第二计时器记录的当前时刻,之间的差值达到预设的误差阈值时,满足所述误差条件。
26.在第一方面的另一种可能的实施例中,第一设备、第二设备为车载设备。
27.第二方面,本申请实施例提供一种信息传输方法,该方法应用于第二设备,第二设备与第一设备通过can消息进行通信;且二者均具备计时器,计时器以二者之间的数据收发分别进行计数。在该方法中,第二设备可以基于本地的第二计数器,获取到第二计数值,然后,在向第一设备发送can消息时,can消息中携带第二计数值。其中,第二计数值可以用于判断第一计数值与所述第二计数值是否匹配;以及,在所述第一计数值与所述第二计数值不匹配时,第二计数值还用于结合所述第一设备当前获取到的全局计数值,对所述can消息进行验证;其中,所述第一计数值为所述第一设备通过所述第一计数器获得的。如此,针对任意的can消息,第一设备都能够基于第二计数值、与获取到的全局计数值实现can消息的认证保护,有利于提高can消息的通信安全性,能够在一定程度上降低将非法消息认证为合法消息的可能性,有利于提高通信系统的通信安全。当该通信系统为车内网络的通信系统时,也有利于提高车辆安全。
28.在第二方面的一种可能的实施例中,can消息中还携带有第二验证码,此时,第二设备计算第二验证码时,可以获取当前的全局计数值,然后,基于第二计数值、所述全局计数值,获取整计数值,然后,再基于第一设备与第二设备之间的秘钥,与所述整计数值,获取第二验证码。
29.在第二方面的另一种可能的实施例中,第二设备可以通过接收全局计数值的方式,获取到当前的全局计数值。进一步的,第二设备还可以存储全局计数值。
30.在第二方面的另一种可能的实施例中,全局计数值为第三设备周期性广播的。本申请实施例中,第三设备可以为网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,其中,计数器设备用于对全局计数值进行计数。也就是,第三设备可以具体为后续说明中的指定设备。
31.在第二方面的另一种可能的实施例中,若全局计数值为周期性广播的,那么,每当接收到全局计数值时,第二设备将第二计数器置零。
32.在第二方面的另一种可能的实施例中,第二设备接收全局计数值之前,第二设备向第四设备发送同步请求,以使得第四设备向第二设备发送全局计数值。此时,第二设备可
以主动向拥有全局计数值的第四设备请求同步全局计数值。此时,第四设备可以为第三设备,或者,第四设备也可以为第一设备,或者,第四设备还可以为除第三设备之外的任意存储有全局计数值的设备。例如,图2所示实施例中,第四设备还可以为第二设备所在域的域管理员。
33.在第二方面的另一种可能的实施例中,第二设备利用第一特定标识发送所述同步请求;所述第四设备利用第二特定标识发送所述全局计数值。
34.在第二方面的另一种可能的实施例中,若所述同步请求为所述第二设备启动后发送的,所述第二设备还用于将所述第二计数器置零。若同步请求为所述第二设备经休眠唤醒后发送的,第二设备可不用将第二计数器置零。
35.在第二方面的另一种可能的实施例中,所述第二设备还包括第二计时器,此时,第二设备可以基于第二计时器与第二计时周期获取当前的全局计数值。具体而言,第二设备可以获取所述第二计时器记录的当前时刻,然后,根据所述当前时刻与第二计时周期获取所述全局计数值。
36.在第二方面的另一种可能的实施例中,第二设备还可以在发送can消息时,确定当前时刻是否处于所述第二计时周期的边界区间,若当前时刻处于所述第二计时周期的边界区间,则第二设备在can消息中添加边界标识,然后,向第一设备发送添加了所述边界标识后的can消息。如此,在第一设备接收到该can消息时,可以根据边界标识对全局计数器进行校正,进而,利用校正后的整计数值对该can消息进行认证保护,避免第一计时器与第二计时器的时间不同步可能造成的全局计数值不同步的问题。
37.第三方面,本申请实施例提供一种通信设备,所述通信设备与第二设备通过控制局域网can消息进行通信。其中,所述通信设备包括第一计数器,所述第二设备包括第二计数器,所述第一计数器与所述第二计数器均以该通信设备与第二设备之间的数据收发进行计数。
38.该通信设备包括:收发模块与后处理模块,其中,收发模块用于接收来自于第二设备的can消息,其中,所述can消息中包括所述第二计数值,所述第二计数值通过所述第二计数器获得;处理模块,用于:判断第一计数值与所述第二计数值是否匹配,所述第一计数值是通过所述第一计数器获得;以及,用于获取当前的全局计数值;以及,用于当所述第一计数值与所述第二计数值不匹配时,利用所述第二计数值与全局计数值,对所述can消息进行验证。如此,提高了can消息的通信安全性,能够在一定程度上降低将非法消息认证为合法消息的可能性,有利于提高通信系统的通信安全。当该通信系统为车内网络的通信系统时,也有利于提高车辆安全。
39.在第三方面的一种可能的实施例中,若对can消息的验证通过,则该处理模块还用于:更新第一计数值;反之,若验证失败,则无需更新第一计数值。
40.在第三方面的一种可能的实施例中,任意两个所述全局计数值不同。
41.在第三方面的另一种可能的实施例中,所述处理模块,具体用于:基于第二计数值与全局计数值,获取整计数值,然后,基于整计数值、通信设备与第二设备之间的秘钥,获取第一验证码,从而,若第一验证码与can消息中携带的第二验证码相同,则验证通过。如此,通过整计数值和秘钥的协同作用,可以实现对can消息的合法性验证,有利于提高计数值同步过程的安全性。
42.此外,在第三方面的另一个实施例中,处理模块还可以具体用于:利用整计数值、秘钥以及can消息的内容,来获取整计数值。相应地,第二验证码也与第二设备获取到的整计数值、秘钥以及can消息的内容相关联。
43.在第三方面的另一种可能的实施例中,所述整计数值为所述第二计数值与所述全局计数值之和;或者,所述整计数值为所述第二计数值与所述全局计数值构成的长字符串。
44.在第三方面的另一种可能的实施例中,所述处理模块,具体用于:判断所述第一计数值与单位计数间隔之和是否等于所述第二计数值;当所述第一计数值与所述单位计数间隔之和不等于所述第二计数值时,确定所述第一计数值与所述第二计数值不匹配。单位计数间隔可以为一。
45.在第三方面的另一种可能的实施例中,所述处理模块,还用于当验证通过时处理所述can消息。
46.在第三方面的另一种可能的实施例中,所述收发模块,还用于接收全局计数值;所述处理模块,用于存储所述全局计数值。
47.在第三方面的另一种可能的实施例中,全局计数值为第三设备周期性广播的。其中,所述第三设备包括:网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,所述计数器设备用于对全局计数值进行计数。
48.在第三方面的另一种可能的实施例中,所述处理模块还用于:每当接收到全局计数值时,将所述第一计数器置零。
49.在第三方面的另一种可能的实施例中,所述收发模块,还用于:在接收所述全局计数值之前,向第四设备发送同步请求,以使得所述第四设备向所述通信设备发送全局计数值。此时,通信设备可以主动向拥有全局计数值的第四设备请求同步全局计数值。此时,第四设备可以为第三设备,或者,第四设备也可以为第二设备,或者,第四设备还可以为除第三设备之外的任意存储有全局计数值的设备。例如,图2所示实施例中,第四设备还可以为通信设备所在域的域管理员。
50.在第三方面的另一种可能的实施例中,收发模块利用第一特定标识发送所述同步请求;所述第四设备利用第二特定标识发送所述全局计数值。
51.在第三方面的另一种可能的实施例中,若所述同步请求为所述通信设备启动后发送的,所述处理模块还用于将所述第一计数器置零。若同步请求为所述通信设备经休眠唤醒后发送的,处理模块可不用将第一计数器置零。
52.在第三方面的另一种可能的实施例中,所述通信设备还包括第一计时器,所述处理模块还用于:基于第一计时器与第一计时周期获取当前的全局计数值。
53.在第三方面的另一种可能的实施例中,所述全局计数值为所述当前时刻所属计时周期的周期标识;
54.在第三方面的另一种可能的实施例中,当所述第二设备发送所述can消息的发送时刻处于第二计时周期的边界区间时,所述can消息中还携带有边界标识。其中,第二计时周期与第一计时周期保持同步。在该实施例中,第二设备中还包括第二计时器,第二设备在发送can消息时,可以基于第二计时器与第二计时周期获取当前的全局计数值。
55.在第三方面的另一种可能的实施例中,当所述can消息中携带有边界标识时,所述处理模块,具体用于:所述通信设备利用所述边界标识,对所述全局计数值进行校正;所述
通信设备利用校正后的全局计数值与所述第二计数值,获取所述整计数值。进而,该通信设备可以利用该整计数值实现对can消息的认证保护。
56.在第三方面的另一种可能的实施例中,当通信设备具备第一计时器,第二设备包括第二计时器时,所述第一计时器与所述第二计时器可以周期性同步,或者,在满足预设的误差条件时同步。其中,当第一计时器记录的当前时刻,与,第二计时器记录的当前时刻,之间的差值达到预设的误差阈值时,满足所述误差条件。
57.在第三方面的另一种可能的实施例中,所述通信设备、所述第二设备为车载设备。
58.第四方面,本申请实施例提供一种通信设备,如前所述,通信设备与第一设备通过can消息进行通信;且二者均具备计时器,计时器以二者之间的数据收发分别进行计数。本申请实施例中,通信设备包括:处理模块和收发模块,其中,所述处理模块用于:基于本地的第二计数器,获取到第二计数值;收发模块,用于向所述第一设备发送can消息,所述can消息中携带所述第二计数值;其中,第二计数值可以用于判断第一计数值与所述第二计数值是否匹配;以及,在所述第一计数值与所述第二计数值不匹配时,第二计数值还用于结合所述第一设备当前获取到的全局计数值,对所述can消息进行验证;其中,所述第一计数值为所述第一设备通过所述第一计数器获得的。如此,针对任意的can消息,第一设备都能够基于第二计数值、与第一设备获取到的全局计数值实现对can消息的认证保护,有利于提高can消息的通信安全性,能够在一定程度上降低将非法消息认证为合法消息的可能性,有利于提高通信系统的通信安全。当该通信系统为车内网络的通信系统时,也有利于提高车辆安全。
59.在第四方面的一种可能的实施例中,can消息中还携带有第二验证码,此时,处理模块具体用于:获取当前的全局计数值,然后,基于第二计数值、获取到的全局计数值,获取整计数值,然后,再基于第一设备与通信设备之间的秘钥与所述整计数值,获取第二验证码。
60.在第四方面的另一种可能的实施例中,处理模块还用于:通过接收全局计数值的方式,获取到当前的全局计数值。进一步的,处理模块还可以用于:存储全局计数值。
61.在第四方面的另一种可能的实施例中,全局计数值为第三设备周期性广播的。本申请实施例中,第三设备可以为网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,其中,计数器设备用于对全局计数值进行计数。也就是,第三设备可以具体为后续说明中的指定设备。
62.在第四方面的另一种可能的实施例中,若全局计数值为周期性广播的,那么,处理模块,还用于:每当接收到全局计数值时,将第二计数器置零。
63.在第四方面的另一种可能的实施例中,收发模块,还可以用于:在接收全局计数值之前,向第四设备发送同步请求,以使得第四设备向第二设备发送全局计数值。此时,该通信设备可以主动向拥有全局计数值的第四设备请求同步全局计数值。此时,第四设备可以为第三设备,或者,第四设备也可以为第一设备,或者,第四设备还可以为除第三设备之外的任意存储有全局计数值的设备。例如,图2所示实施例中,第四设备还可以为该通信设备所在域的域管理员。
64.在第四方面的另一种可能的实施例中,收发模块可以利用第一特定标识发送所述同步请求;而所述第四设备也可以利用第二特定标识发送所述全局计数值。
65.在第四方面的另一种可能的实施例中,若所述同步请求为所述第二设备启动后发送的,处理模块还用于将所述第二计数器置零。若同步请求为所述第二设备经休眠唤醒后发送的,则处理模块可不对第二计数器进行置零。
66.在第四方面的另一种可能的实施例中,所述通信设备还包括第二计时器,此时处理模块可具体用于:基于第二计时器与第二计时周期获取当前的全局计数值。具体而言,通信设备可以获取所述第二计时器记录的当前时刻,然后,根据所述当前时刻与第二计时周期获取所述全局计数值。
67.在第四方面的另一种可能的实施例中,可以在发送can消息时,处理模块还可以用于:确定当前时刻是否处于所述第二计时周期的边界区间,若当前时刻处于所述第二计时周期的边界区间,则在can消息中添加边界标识;从而,收发模块可以向第一设备发送添加了所述边界标识后的can消息。如此,在第一设备接收到该can消息时,可以根据边界标识对全局计数器进行校正,进而,利用校正后的整计数值对该can消息进行认证保护,避免第一计时器与第二计时器的时间不同步可能造成的全局计数值不同步的问题。
68.第五方面,本申请实施例还提供了一种通信设备,包括:存储器,所述存储器中存储有计算机程序;处理器;计数器,用于计数得到本地计数值;其中,所述计算机程序被配置为由所述处理器执行以实现如第一方面或第二方面任一实施例所述的方法。
69.在第五方面的一种可能的实施例中,所述通信设备还包括:计时器,用于计时,此时,所述处理器,还用于基于计时器获取当前的全局计数值。
70.示例性的,可以获取计时器记录的当前时刻,然后,将当前时刻所在计时周期的周期标记,作为当前的全局计数值。
71.第六方面,本请实施例还提供了一种通信系统,包括:第一设备和第二设备,其中,第一设备设置有第一计数器,第二设备设置有第二计数器,所述第一计数器与所述第二计数器均基于所述第一设备与所述第二设备之间的数据收发进行计数。本申请实施例中,所述第一设备与所述第二设备通过can消息进行通信;第一设备用于执行如第一方面任一实施例所述的方法,而第二设备用于执行如第二方面任一实施例所述的方法。
72.第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面或第二方面中任一实施例所述的方法。
73.第八方面,本申请提供一种计算机程序,当计算机程序被计算机执行时,用于执行第一方面或第二方面中任一实施例所述的方法。
74.在一种可能的设计中,第八方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
75.综上,本申请实施例提供的一种信息传输方法、通信设备与系统、计算机可读存储介质,能够在一定程度上提高车内网络的安全性与稳定性。
附图说明
76.图1为本申请实施例提供的一种车辆的结构框架图;
77.图2为本申请实施例提供的一种通信系统的架构示意图;
78.图3为本申请实施例中can消息的帧结构示意图;
79.图4为本申请实施例提供的一种信息传输方法的流程示意图;
80.图5为本申请实施例提供的一种信息传输方法的信息交互流程示意图;
81.图6为本申请实施例中计时周期的示意图;
82.图7为本申请实施例提供的一种通信设备的功能方块图;
83.图8为本申请实施例提供的一种通信设备的实体结构示意图;
84.图9为本申请实施例提供的另一种通信设备的功能方块图;
85.图10为本申请实施例提供的另一种通信设备的实体结构示意图;
86.图11为本申请实施例提供的另一种通信系统的架构示意图。
具体实施方式
87.以下,结合附图对本实施例的实施方式进行详细描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
88.本申请实施例可以应用于任意采用can网络进行通信的通信系统,例如,交通工具内部的通信系统,更具体的,可以为车内网络系统。
89.具体而言,本申请实施例所设计到的交通工具可实现在汽车上或可采取汽车的形式。然而,示例系统还可实现在其它车辆上或采取其它车辆的形式,诸如轿车、卡车、摩托车、公交车、船、飞机、直升机、割草机、铲雪车、休旅车、游乐园车辆、农业设备、施工设备、有轨电车、高尔夫球车、火车和电车等其它车辆。此外,机器人装置也可用于执行本文描述的方法和系统。
90.示例性的,图1示出了一种车辆100的结构框架图。如图1所示,耦合到车辆100或包括在车辆100中的组件可包括推进系统102、传感器系统104、控制系统106、外围设备108、电源110、计算装置111以及用户接口112。计算装置111可包括处理器113和存储器114。计算装置111可以是车辆100的控制器或控制器的一部分。存储器114可包括处理器113可运行的指令115,并且还可存储地图数据116。车辆100的组件可被配置为以与彼此互连和/或与耦合到各系统的其它组件互连的方式工作。例如,电源110可向车辆100的所有组件提供电力。计算装置111可被配置为从推进系统102、传感器系统104、控制系统106和外围设备108接收数据并对它们进行控制。计算装置111可被配置为在用户接口112上生成图像的显示并从用户接口112接收输入。
91.在其它示例中,车辆100可包括更多、更少或不同的系统,并且每个系统可包括更多、更少或不同的组件。此外,示出的系统和组件可以按任意种的方式进行组合或划分。
92.推进系统102可用于车辆100提供动力运动。如图所示,推进系统102包括引擎/发动机118、能量源120、传动装置(transmission)122和车轮/轮胎124。
93.引擎/发动机118可以是或包括内燃机、电动机、蒸汽机和斯特林发动机等的任意组合。其它发动机和引擎也是可能的。在一些示例中,推进系统102可包括多种类型的引擎和/或发动机。例如,气电混合轿车可包括汽油发动机和电动机。其它示例是可能的。
94.能量源120可以是全部或部分向引擎/发动机118供能的能量的来源。也就是说,引
擎/发动机118可用于为将能量源120转换为机械能。能量源120的示例包括汽油、柴油、其它基于石油的燃料、丙烷、其它基于压缩气体的燃料、乙醇、太阳能电池板、电池和其它电力来源。(一个或多个)能量源120可以额外地或可替换地包括燃料箱、电池、电容器和/或飞轮的任意组合。在一些示例中,能量源120也可以为车辆100的其它系统提供能量。
95.传动装置122可用于为把机械动力从引擎/发动机118传送到车轮/轮胎124。为此,传动装置122可包括变速箱、离合器、差速器、驱动轴和/或其它元件。在传动装置122包括驱动轴的示例中,驱动轴包括用于耦合到车轮/轮胎124的一个或多个轴。
96.车辆100的车轮/轮胎124可配置为各种形式,包括单轮车、自行车/摩托车、三轮车或者轿车/卡车四轮形式。其它车轮/轮胎形式也是可能的,诸如包括六个或更多个车轮的那些。车辆100的车轮/轮胎124可被配置为相对于其它车轮/轮胎124差速地旋转。在一些示例中,车轮/轮胎124可包括固定地附着到传动装置122的至少一个车轮和与驾驶表面接触的耦合到车轮的边缘的至少一个轮胎。车轮/轮胎124可包括金属和橡胶的任意组合,或者其它材料的组合。
97.推进系统102可以额外地或可替换地包括除了所示出的那些以外的组件。
98.传感器系统104可包括用于感测关于车辆100所位于的环境的信息的若干个传感器。如图所示,传感器系统的传感器包括gps126、imu(inertial measurement unit,惯性测量单元)128、无线电检测和雷达测距(radar)单元130、激光测距(lidar)单元132、相机134以及用于为修改传感器的位置和/或朝向的致动器136。传感器系统104也可包括额外的传感器,包括例如监视车辆100的内部系统的传感器(例如,o2监视器、燃油量表、机油温度,等等)。传感器系统104也可以包括其它传感器。
99.gps模块126可以为用于估计车辆100的地理位置的任何传感器。为此,gps模块126可能包括收发器,基于卫星定位数据,估计车辆100相对于地球的位置。在示例中,计算装置111可用于结合地图数据116使用gps模块126来估计车辆100可在其上行驶的道路上的车道边界的位置。gps模块126也可采取其它形式。
100.imu 128可以是用于基于惯性加速度及其任意组合来感测车辆100的位置和朝向变化。在一些示例中,传感器的组合可包括例如加速度计和陀螺仪。传感器的其它组合也是可能的。
101.radar单元130可以被看作物体检测系统,其用于使用无线电波来检测物体的特性,诸如物体的距离、高度、方向或速度。radar单元130可被配置为传送无线电波或微波脉冲,其可从波的路线中的任何物体反弹。物体可将波的一部分能量返回至接收器(例如,碟形天线或天线),该接收器也可以是radar单元130的一部分。radar单元130还可被配置为对接收到的信号(从物体反弹)执行数字信号处理,并且可被配置为识别物体。
102.其它类似于radar的系统已用在电磁波谱的其它部分上。一个示例是lidar(光检测和测距),其可使用来自激光的可见光,而非无线电波。
103.lidar单元132包括传感器,该传感器使用光感测或检测车辆100所位于的环境中的物体。通常,lidar是可通过利用光照射目标来测量到目标的距离或目标的其它属性的光学遥感技术。作为示例,lidar单元132可包括被配置为发射激光脉冲的激光源和/或激光扫描仪,和用于为接收激光脉冲的反射的检测器。例如,lidar单元132可包括由转镜反射的激光测距仪,并且以一维或二维围绕数字化场景扫描激光,从而以指定角度间隔采集距离测
量值。在示例中,lidar单元132可包括诸如光(例如,激光)源、扫描仪和光学系统、光检测器和接收器电子器件之类的组件,以及位置和导航系统。
104.在示例中,lidar单元132可被配置为使用紫外光(uv)、可见光或红外光对物体成像,并且可用于广泛的目标,包括非金属物体。在一个示例中,窄激光波束可用于以高分辨率对物体的物理特征进行地图绘制。
105.在示例中,从约10微米(红外)至约250纳米(uv)的范围中的波长可被使用。光通常经由后向散射被反射。不同类型的散射被用于不同的lidar应用,诸如瑞利散射、米氏散射和拉曼散射以及荧光。基于不同种类的后向散射,作为示例,lidar可因此被称为瑞利激光radar、米氏lidar、拉曼lidar以及钠/铁/钾荧光lidar。波长的适当组合可允许例如通过寻找反射信号的强度的依赖波长的变化对物体进行远程地图绘制。
106.使用扫描lidar系统和非扫描lidar系统两者可实现三维(3d)成像。“3d选通观测激光radar(3d gated viewing laser radar)”是非扫描激光测距系统的示例,其应用脉冲激光和快速选通相机。成像lidar也可使用通常使用cmos(complementary metal oxide semiconductor,互补金属氧化物半导体)和ccd(charge coupled device,混合互补金属氧化物半导体/电荷耦合器件)制造技术在单个芯片上构建的高速检测器阵列和调制敏感检测器阵列来执行。在这些装置中,每个像素可通过以高速解调或选通来被局部地处理,以使得阵列可被处理成表示来自相机的图像。使用此技术,可同时获取上千个像素以创建表示lidar单元132检测到的物体或场景的3d点云。
107.点云可包括3d坐标系统中的一组顶点。这些顶点例如可由x、y、z坐标定义,并且可表示物体的外表面。lidar单元132可被配置为通过测量物体的表面上的大量点来创建点云,并可将点云作为数据文件输出。作为通过lidar单元132的对物体的3d扫描过程的结果,点云可用于识别并可视化物体。
108.在一个示例中,点云可被直接渲染以可视化物体。在另一示例中,点云可通过可被称为曲面重建的过程被转换为多边形或三角形网格模型。用于将点云转换为3d曲面的示例技术可包括德洛内三角剖分、阿尔法形状和旋转球。这些技术包括在点云的现有顶点上构建三角形的网络。其它示例技术可包括将点云转换为体积距离场,以及通过移动立方体算法重建这样定义的隐式曲面。
109.相机134可以用于获取车辆100所位于的环境的图像的任何相机(例如,静态相机、视频相机等)。为此,相机可被配置为检测可见光,或可被配置为检测来自光谱的其它部分(诸如红外光或紫外光)的光。其它类型的相机也是可能的。相机134可以是二维检测器,或可具有三维空间范围。在一些示例中,相机134例如可以是距离检测器,其被配置为生成指示从相机134到环境中的若干点的距离的二维图像。为此,相机134可使用一种或多种距离检测技术。例如,相机134可被配置为使用结构光技术,其中车辆100利用预定光图案,诸如栅格或棋盘格图案,对环境中的物体进行照射,并且使用相机134检测从物体的预定光图案的反射。基于反射的光图案中的畸变,车辆100可被配置为检测到物体上的点的距离。预定光图案可包括红外光或其它波长的光。
110.致动器136例如可被配置为修改传感器的位置和/或朝向。传感器系统104可额外地或可替换地包括除了所示出的那些以外的组件。
111.控制系统106可被配置为控制车辆100及其组件的操作。为此,控制系统106可包括
转向单元138、油门140、制动单元142、传感器融合算法144、计算机视觉系统146、导航或路线控制(pathing)系统148以及避障系统150。
112.转向单元138可以是被配置为调整车辆100的前进方向或方向的机构的任意组合。
113.油门140可以是被配置为控制引擎/发动机118的操作速度和加速度并进而控制车辆100的速度和加速度的机构的任意组合。
114.制动单元142可以是被配置为使车辆100减速的机构的任意组合。例如,制动单元142可使用摩擦来减慢车轮/轮胎124。作为另一示例,制动单元142可被配置为再生的(regenerative)并且将车轮/轮胎124的动能转换为电流。制动单元142也可采取其它形式。
115.传感器融合算法144可以包括例如计算装置111可运行的算法(或者存储算法的计算机程序产品)。传感器融合算法144可被配置为接受来自传感器104的数据作为输入。所述数据可包括例如表示在传感器系统104的传感器处感测到的信息的数据。传感器融合算法144可包括例如卡尔曼滤波器、贝叶斯网络或者另外的算法。传感器融合算法144还可被配置为基于来自传感器系统104的数据来提供各种评价,包括例如对车辆100所位于的环境中的个体物体和/或特征的评估、对具体情形的评估和/或基于特定情形的可能影响的评估。其它评价也是可能的。
116.计算机视觉系统146可以是被配置为处理和分析由相机134捕捉的图像以便识别车辆100所位于的环境中的物体和/或特征的任何系统,所述物体和/或特征包括例如车道信息、交通信号和障碍物。为此,计算机视觉系统146可使用物体识别算法、从运动中恢复结构(structure from motion,sfm)算法、视频跟踪或其它计算机视觉技术。在一些示例中,计算机视觉系统146可以额外地被配置为地图绘制环境、跟随物体、估计物体的速度,等等。
117.导航和路线控制系统148可以是被配置为确定车辆100的驾驶路线的任何系统。导航和路线控制系统148可以额外地被配置为在车辆100处于操作中的同时动态地更新驾驶路线。在一些示例中,导航和路线控制系统148可被配置为结合来自传感器融合算法144、gps模块126和一个或多个预定地图的数据以便为车辆100确定驾驶路线。
118.避障系统150可以是被配置为识别、评估和避免或者以其它方式越过车辆100所位于的环境中的障碍物的任何系统。
119.控制系统106可以额外地或可替换地包括除了所示出的那些以外的组件。
120.外围设备108可被配置为允许车辆100与外部传感器、其它车辆和/或用户交互。为此,外围设备108可包括例如无线通信系统152、触摸屏154、麦克风156和/或扬声器158。
121.无线通信系统152可以是被配置为直接地或经由通信网络无线耦合至一个或多个其它车辆、传感器或其它实体的任何系统。为此,无线通信系统152可包括用于直接或通过空中接口与其它车辆、传感器或其它实体通信的天线和芯片集。芯片集或整个无线通信系统152可被布置为根据一个或多个其它类型的无线通信(例如,协议)来通信,所述无线通信诸如蓝牙、ieee 802.11(包括任何ieee 802.11修订版)中描述的通信协议、蜂窝技术(诸如gsm、cdma、umts(universal mobile telecommunications system,通用移动通信系统)、ev-do、wimax或lte(long term evolution,长期演进))、紫蜂、dsrc(dedicated short range communications,专用短程通信)以及rfid(radio frequency identification,射频识别)通信,等等。无线通信系统152也可采取其它形式。
122.触摸屏154可被用户用来向车辆100输入命令。为此,触摸屏154可被配置为经由电
容感测、电阻感测或者表面声波过程等等来感测用户的手指的位置和移动中的至少一者。触摸屏154可能够感测在与触摸屏表面平行或与触摸屏表面在同一平面内的方向上、在与触摸屏表面垂直的方向上或者在这两个方向上的手指移动,并且还可能够感测施加到触摸屏表面的压力的水平。触摸屏154可由一个或多个半透明或透明绝缘层和一个或多个半透明或透明导电层形成。触摸屏154也可采取其它形式。
123.麦克风156可被配置为从车辆100的用户接收音频(例如,声音命令或其它音频输入)。类似地,扬声器158可被配置为向车辆100的用户输出音频。
124.外围设备108可以额外地或可替换地包括除了所示出的那些以外的组件。
125.电源110可被配置为向车辆100的一些或全部组件提供电力。为此,电源110可包括例如可再充电锂离子或铅酸电池。在一些示例中,一个或多个电池组可被配置为提供电力。其它电源材料和配置也是可能的。在一些示例中,电源110和能量源120可一起实现,如一些全电动车中那样。
126.包括在计算装置111中的处理器113可包括一个或多个通用处理器和/或一个或多个专用处理器(例如,图像处理器、数字信号处理器等)。就处理器113包括多于一个处理器而言,这种处理器可单独工作或组合工作。计算装置111可实现基于通过用户接口112接收的输入控制车辆100的功能。
127.存储器114进而可包括一个或多个易失性存储组件和/或一个或多个非易失性存储组件,诸如光、磁和/或有机存储装置,并且存储器114可全部或部分与处理器113集成。存储器114可包含可由处理器113运行的指令115(例如,程序逻辑),以运行各种车辆功能,包括本文中描述的功能或方法中的任何一个。
128.车辆100的组件可被配置为以与在其各自的系统内部和/或外部的其它组件互连的方式工作。为此,车辆100的组件和系统可通过系统总线、网络和/或其它连接机制通信地链接在一起。
129.现以车辆内部通信系统为例,对本申请实施例所具体应用的通信系统200的架构方式进行说明。
130.示例性的,图2为本申请实施例提供的一种通信系统的架构示意图,其具体示出了一种车辆100内的通信系统200的结构示意图。如图2所示,在该车内网络的通信系统200中,包含多个ecu设备,一般情况下,可以将这些ecu设备划分为多个域,每个域存在一个域管理员(domain manager,dm)。如图2所示,在该通信系统中,将多个ecu设备划分为了5个域,每个域具备一个域管理员。例如,设备211为域210的域管理员(dm2),设备221为域220的域管理员(dm2),设备231为域230的域管理员(dm3),设备241为域240的域管理员(dm4),设备251为域250的域管理员(dm5)。域管理员负责管理域内的ecu设备,例如,设备211负责管理域210内的设备212~设备214,其他域类似,不作赘述。
131.可以理解,在任意一个域内,各ecu设备可以进行域内通信。
132.需要说明的是,在本申请实施例所应用的通信系统中,可以是通信系统的所有通信设备都采用can网络进行通信;或者,也可以仅存在部分使用can网络进行通信的通信设备,其他通信设备采用其他网络进行通信。
133.换言之,在图2所示通信系统200中,至少存在一个域采用can网络进行域内通信。在此基础上,各域采用的域内通信网络可以相同,也可以不同。
134.一种可能的实施例中,通信系统200中的5个域可以采用相同的域内通信网络,例如,可以均采用can网络进行域内通信。这种情况下,域间通信也采用can网络通信。
135.另一种可能的实施例中,通信系统200中存在域内通信网络不同的情况。例如,在图2所示通信系统200中,域210可以采用can网络进行域内通信,域220则可以采用flexray网络(一种用于汽车的高速可确定性的,具备故障容错的总线系统)进行域内通信,域230可以采用can网络进行域内通信,域240可以采用面向媒体的系统传输(media oriented system transport,most)网络进行域内通信,域250可以采用高级驾驶辅助系统(advanced driver assistance system,adas)的专用网络进行域内通信。此时,如图2所示,各域管理器可以通过网关设备(gateway)260来与其他域的ecu设备进行域间通信。
136.可以理解,本申请实施例对于各ecu设备的类型无特别限定。例如,当域250为adas系统的域时,设备252~设备254可以为传感器(sensor)设备;当域210为车辆100的控制系统106的域时,设备112可以为转向单元138、转向单元138、油门140、制动单元142、传感器融合算法144、计算机视觉系统146、导航或路线控制(pathing)系统148或者避障系统150。
137.示例性的,以图1所示的车辆为例。本申请实施例所涉及到的ecu设备,可以为图1中任意一个连接至can总线的组件。例如,图1中所有组件都连接至can总线,则任意两个组件之间可以基于can总线进行通信。
138.除此之外,在车辆中,还可以按照图1所示的架构,将各组件划分为多个域。示例性的,在图1所示的车辆中,推进系统102、传感器系统104、控制系统106、外围设备108、计算装置111都可以作为一个独立的域。此时,以控传感器系统104的域为例,惯性测量单元128与全球定位系统模块126之间,就可以通过can消息进行通信。
139.在图1另一个实施例中,在图1所示车辆中,还存在部分组件连接至can设备,部分组件未连接至can总线的情况。例如,避障系统150可以通过无线通信方式,与其他ecu设备进行通信。在这种情况下,本申请实施例所提供的信息传输方法适用于收发设备均连接至can总线的情况。
140.应当理解,对于任意一组收发设备,二者均连接至can总线时,可以适用本申请实施例所提供的信息传输方法。但是,这并非收发设备之间的唯一通信方式,这些收发设备还可以配置(或具备)其他的通信方式,在本申请实施例中也是允许的。
141.示例性的,仍以惯性测量单元128与全球定位系统模块126之间的通信为例。例如,惯性测量单元128与全球定位系统模块126均具备无线保真(wireless-fidelity,wifi)通信功能,此时,惯性测量单元128与全球定位系统模块126之间可以通过wifi实现无线通信。此时,若惯性测量单元128与全球定位系统模块126中的一个或多个断开与can总线的连接,则不适用于本申请所提供的信息传输方法。但是,若惯性测量单元128与全球定位系统模块126还与can总线连接,则惯性测量单元128与全球定位系统模块126之间仍可以通过can消息进行通信,此时,惯性测量单元128与全球定位系统模块126之间通过can消息进行通信时,仍适用于本申请所提供的信息传输方法。
142.可以理解,图2所示的通信系统的架构示意图中,ecu设备的数量和类型仅仅为一种举例,本申请实施例并不限制于此。例如,当域210为车辆100的控制系统106的域时,该域内还可以包括更多的ecu设备,为简明描述,不在附图中一一描述。此外,除采用can网络通信的域之外,其他域例如图2中的域220、域240、域250还可以采用其他的域内通信方式,例
如,无线保真(wireless-fidelity,wifi)、蓝牙通信、nfc通信等,本申请实施例对此无特别限定。
143.在can通信网络中,各ecu设备可以在can总线上广播can消息。示例性的,图3示出了can消息的帧结构示意图。如图3所示,can消息的帧结构由7部分构成,包括:帧起始(sof,start of frame)、仲裁域(arbitration field)、控制域(control field)、数据域(data field)、crc域(crc field)、应答域(ack field)、帧结尾(end of frame)。其中,控制域包括identifier(can id)和rtr,can id用于区分can帧,rtr表示帧的类型。具体的,在can通信中,不涉及设备id,设备是通过can id来发送或接收消息的,而数据域则用于承载数据,一般仅有64比特,can消息所能承载的数据量较小。
144.在can总线上,任意ecu设备都可以自由发送can消息,can消息认证机制能够在一定程度上提高can消息的安全性。目前,一般是通过在can消息的数据域中携带计数值的方式,接收端接收到can消息后,基于can消息中携带的计数值与自身维护的计数值进行比对,来实现can消息的认证保护的。认证保护的方式后续详述。
145.利用计数值实现can消息的认证保护时,这就要求发送端与接收端的计数值保持同步。但是,实际场景中,经常出现计数值失同的情况,也就是,发送端与接收端之间的计数值不同步的情况。针对这种情况,就需要同步二者之间的计数值。
146.现有技术中,受限于can消息所能承载的数据量较小,can消息中通常携带8比特的计数值,具体可以为ecu设备本地维护的完整计数值的低8位计数值。这种情况下,随着can消息的发送数目的增加,具体而言,当发送端发送can消息的数目达到28=256帧之后,计数值就会进位高位比特,而低8位计数值则置零,并重新开始计数。
147.这种情况下,若发生了计数值失同的情况,接收方可以根据发送端发送的can消息来同步自己的计数值,其中,发送端发送的can消息中携带有发送端当前的低8位计数值。此时,可能有两种情况:
148.第一种情况,当can消息携带的低8位计数值大于接收端维护的低8位计数值时,接收端可以将自身维护的低8位计数值同步为can消息携带的低8位计数值。
149.第二种情况,当can消息携带的低8位计数值小于接收端维护的低8位计数值时,此时,发送端的计数值可能发生了进位。也就是,计数值失同的情况大于256帧。此时,接收端可以尝试将自身维护的低8位计数值替换为can消息中携带的低8位计数值,并在高位计数值上加1、加2
……
以尝试是否能够得到通过验证保护的高位计数值。例如,若高位计数值加一(此时,单位计数间隔为1)能够通过验证保护,则接收端将自身维护的低8位计数值替换为can消息中携带的低8位计数值,并在高位计数值上加1,实现计数值的同步。
150.当随机数值失同的情况大于256帧时,接收端默认发送端发送的消息是合法的,直接在高位计数值上加一,并同步其低8位计数值,这存在一定的安全隐患有可能将非法消息认证为合法消息,也可能将合法消息认证为非法消息,严重影响通信安全和车辆安全。并且,当计数值失同的情况大于256帧时,接收端需要不断的进行尝试,才能够确定需要同步的高位计数值,这也将会严重影响can通信系统的系统性能,不利于系统稳定运行。
151.基于现有技术中存在的前述缺陷,本申请实施例所提供的技术方案旨在提高can消息认证机制的安全性,进而提高车内网络通信的安全性与稳定性。
152.具体而言,本申请实施例提供如下发明构思:各ecu设备维护的整计数值由全局计
数值与本地计数值构成,其中,全局计数值在整个can网络中保持全局同步,而本地计数值由各ecu设备利用本地的计数器进行计数得到。如此,在发送can消息时,can消息中携带本地计数值,接收端按照整计数值对can消息进行认证保护和计数值同步。
153.基于前述发明构思,本申请实施例中,各ecu设备维护的整计数值由两部分构成:全局计数值与本地计数值。全局计数值与本地计数值的组合方式可以包括但不限于如下实施例所示的方式:
154.在一实施例中,整计数值可以为全局计数值与本地计数值之和,也就是满足:整计数值:=全局计数值 本地计数值。其中,:=表示赋值。
155.在另一实施例中,整计数值也可以为由全局计数值与本地计数值构成的长字符串。本申请实施例对于整计数值中,全局计数值与本地计数值的先后次序无特别限定,例如,整计数值:=全局计数值||本地计数值;或者,整计数值:=本地计数值||全局计数值。其中,||表示组合为长字符串。
156.除此之外的可能的实施例中,整计数值除包含全局计数值与本地计数值之外,还可以包含其他数值。示例性的一种可能的实施例中,可以在第二计数值与全局计数值之和的基础上,加一个数值,例如加一,得到整计数值。示例性的另一种可能的实施例中,还可以在第二计数值与全局计数值构成的长字符串的基础上,在该长字符串之前添加一位或多位数值,例如,在长字符串前添加一位数字1。
157.现对全局计数值和本地计数值进行说明。
158.一方面,本地计数值由各ecu设备独自维护。
159.示例性的,在一个包含第一设备与第二设备的通信系统中,第一设备与第二设备可以通过can消息进行通信。此时,第一设备中设置有第一计数器,第一计数器用于对第一设备的本地计数值,也就是第一计数值,进行计数;而第二设备包括第二计数器,第二计数器用于对第二设备的本地计数值,也就是第二计数值,进行计数。
160.本地计数值可以被携带在can消息的data域,其长度最大为8比特。具体实现场景中,本地计数值的长度即可为8比特,如此,无需对本地计数值作额外处理(例如,裁剪),直接将其携带在can消息中即可。
161.对于任意一对收发设备而言,各自的计数器都基于收发设备之间的数据收发进行计数。换言之,第一设备的第一计数器,以第一设备与第二设备之间的数据收发进行计数,而第二设备的第二计数器,也以第一设备与第二设备之间的数据收发进行计数。
162.具体而言,ecu设备维护的本地计数值,与该ecu设备接收/发送can消息的次数相关。实施本方案时,本地计数值可以是步n的增值计数值,也就是,每次计数增加一个固定的单位计数间隔,该单位计数间隔可记为n,n可以为任意数值。以单位计数间隔为1为例,若ecu设备为发送端,则在发送端每次发送can消息之前,本地计数值增加1;若ecu设备为接收端,则每接收到一个合法can消息,则本地计数值增加1。
163.此外,对任意一个ecu设备而言,该ecu设备可以维护一个或多个本地计数值。其中,每个本地计数值可以对应一对ecu设备,也就是,对应于一对发送端和接收端。可以理解,ecu设备所维护的本地计数值的数目取决于与该ecu设备进行通信的设备数目。
164.例如,若设备1、设备2、设备3之间通过can总线连接,其中,设备1可以与设备2、设备3通信,设备2和设备3之间不通信。那么,设备1可以维护2个本地计数值,其中,本地计数
值12对应于设备1与设备2之间的can通信,本地计数值13对应于设备1与设备3之间的can通信。而设备2仅与设备1通信,则可以维护1个本地计数值21,且本地计数值21与本地计数值12保持同步。类似的,设备3仅与设备1通信,则可以维护1个本地计数值31,且本地计数值31与本地计数值13保持同步。
165.可以理解,一个ecu设备,既可以是发送端,也可以是接收端。对于任意一对ecu设备而言,ecu设备1可以向ecu设备2发送can消息;ecu设备1也可以接收ecu设备2发送的can消息。
166.本地计数值保持同步的方式后续详述。
167.另一方面,全局计数值可以由一个或多个指定设备(或者可以称为第三设备)生成,并在can网络中作全局同步;相应的,各ecu设备中可以根据全局同步的消息,记录全局计数值。如此,在整个can网络中,全局计数值保持同步。从而,在ecu设备进行can通信时,can消息中无需携带全局计数值,只需要携带独自维护的本地计数值即可。全局计数值的长度则无8比特的特别限制,其长度最长可以为64比特。
168.现针对全局计数值由一个指定设备生成的情况,对全局计数值的生成和同步方式进行说明。可以理解,指定设备在实际场景中还可以有其他命名名称,例如,计数器中心、计数值中心、全局计数值生成中心等,本申请实施例对此无特别限定。
169.具体而言,指定设备可以为can网络中的任意一个ecu设备。以图2所示车内网络为例,计数器中心可以为网关设备260,或者,也可以为域210中的域管理员211,或者,也可以为域220中的设备222。
170.可以理解,任意两个全局计数值不同,这能够保证任意两个整计数值不同,任意一个整计数值都是全局唯一的。
171.本申请实施例中,全局计数值至少有如下生成方式:
172.第一种方式,指定设备可以生成全局唯一的随机数,并将该随机计数值作全局同步。
173.第二种方式,指定设备可以按照预设的步增值,例如步增n(n为任意正数,例如增1),生成增值计数值,并将该增值计数值作全局同步。例如,当前生成的全局计数值比前一个全局计数值大n。此外,还可以按照预设的步减值,例如-n(例如减1),生成步减计数值,并进行全局同步。例如,当前生成的全局计数值比前一个全局计数值小或n。
174.第三种方式,指定设备还可以生成与当前时刻相关联的全局计数值,并将全局计数值作全局同步。此时,指定设备设置有计时器,以便于指定设备读取当前时刻。
175.示例性的,第一设备可以作为指定设备,那么,第一设备还可以设置有第一计时器,第一设备可以基于第一计时器与预设的第一计时周期获取全局计数值。
176.示例性的,第二设备也可以作为指定设备,那么,第二设备还可以设置有第二计时器,第二设备可以基于第二计时器与预设的第二计时周期获取全局计数值。
177.在一种实施例中,指定设备可以获取当前时刻所属计时周期的周期标识,以作为全局计数值。
178.本申请实施例中,指定设备可以周期性生成全局计数值。具体实现时,可以按照预设的计时周期来生成全局计数值。
179.可以理解,任意两个计时周期的周期标识不同。实际场景中,各计时周期的周期标
识可以根据实际需要自定义预设。一种可能的场景中,周期标识可以预设为计时周期的起始时间点。例如,以每2秒为一个计时周期,则2019年10月28日09点56分整为一个计时周期的起始时间点,则该计时周期的周期标识可以为:201910280956000;而后续计时周期的周期标识可以为:201910280956002,201910280956004

另一种可能的场景中,周期标识也可以为生成的唯一的随机数,或者,也可以为步增或步减的计数值,或者,还可以为任意数字、字母、文字中的至少一种的组合标识。本申请实施例对计时周期的周期标识无特别限定。
180.现对全局计数值与本地计数值的同步方式进行说明。
181.首先,针对全局计数值的同步,本申请实施例给出如下方案:
182.在一具体场景中,指定设备可以通过在can总线上广播的方式,来同步全局计数值。具体而言,全局计数值可以是由第三设备周期性广播的。应当理解,指定设备生成全局计数值的计时周期与全局计数值的广播周期可以相同,也可以不同。示例性的,指定设备可以在生成全局计数值时,立即进行全局广播,此时,广播周期即为计时周期。示例性的,指定设备还可以在生成全局计数值后,等待一段时间,之后,再进行全局广播,此时,广播周期与计时周期不同,但二者周期时长相同。
183.相应的,ecu则被动同步全局计数值。对于任意一个ecu设备而言,例如第一设备或第二设备,可以接收全局计数值。在一可能的实施例中,ecu设备在接收到全局计数值后,还可以存储全局计数值,存储方式可以包括:缓存或存储到预设位置。
184.一种可能的实施例中,指定设备可以周期性的在can总线上广播全局同步消息(一种can消息),该can消息的data域中携带指定设备当前生成的全局计数值。此时,全局计数值的长度最长为64比特(data域的最大承载量)。
185.而can通信网络上的其他ecu设备,则可以验证全局同步消息的合法性(认证保护过程)。验证通过后,ecu设备根据该全局同步消息,将自身记录的全局计数值更新为该全局同步消息中携带的全局计数值。这使得在一个计时周期中,can网络中的所有ecu设备的全局计数值都是同步的。
186.除此之外,其他ecu设备在接接收到全局同步消息后,还可以将本地计数值初始化,以重新开始计数。示例性的,每当接收到全局计数值时,第一设备将第一计数器置零;第二设备也可以将第二计数器置零。这样,本地计数值可以循环使用,对应于不同的全局计数值,得到的整计数值也是全局唯一的。例如,若本地计数值采用步1的增值计数值(单位计数间隔为1),则ecu在接收到全局同步消息,并验证通过后,可以更新全局计数值,并将所有本地计数值置零。
187.在此基础上,考虑到接收端在接收到can消息时,都需要验证can消息的合法性,才能够基于can消息作进一步处理(部分场景下可能无处理动作)。而在同步全局计数值时,各ecu设备分别验证全局同步消息的合法性是非常繁琐且耗时的。并且,考虑到can网络中一般是通过can id来进行通信的,因此,在本申请的另一种实施例中,可以预设一个第一特定can id,该第一特定can id用于在can总线上广播全局计数值。换言之,指定设备可以采用第一特定can id来向全局同步全局计数值。相应的,当任意ecu设备(例如第一设备或第二设备)接收到该第一特定can id发送的can消息时,无需进行认证保护,可以直接根据该can消息中携带的全局计数值进行同步。
188.在任意一个计时周期内,全局计数值为一个固定值。例如,在第一个计时周期内,
全局计数值可以为计数值a;在第二个计时周期内,全局计数值可以为计数值b。
189.需要说明的是,本申请实施例中,在任意一个计时周期内,本地计数值不会耗尽。换言之,ecu的本地计数值,在一个计时周期内,小于该计数器计数的最大值。具体而言,对于第一设备而言,第一计数器的计数值,在第一计时周期内,小于第一计数器计数的最大值。对于第二设备而言,第二计数器的计数值,在第二计时周期内,小于第二计数器计数的最大值。本申请实施例中,第一计时周期与第二计时周期相同,二者完全同步。
190.如此,在任意一个计时周期内,本地计数值不会因为耗尽而发生进位。这样,即便接收端发生严重的失同情况,例如失同超过256帧,只需要随全局同步消息来同步全局计数值就可以保持全局计数值的同步,避免了由于失同而导致高位进位的情况;以及,接收端只需要同步本地计数值,就能够与发送端保持计数值的同步,无需多次尝试,也避免由此导致的对系统性能的影响。
191.本申请实施例中,可以通过控制全局计数值的计时周期的周期时长的方式,来控制本地计数值在一个计时周期内不会耗尽。
192.具体的,计时周期的周期时长与本地计数值的长度(l比特)、can消息的最大发送频率(f毫秒每帧)相关联。若以二进制数来进行本地计数值的计数,则耗尽本地计数值所需要的时长为:2
l
*f,那么,若要求在一个计时周期内不会耗尽本地计数值,则周期时长需要小于耗尽时长(2
l
*f)。
193.举例说明。如前所述,本地计数值的长度l最大为8比特。而对于can通信系统中的任意一个can id而言,假设发送can消息的最大发送频率f为10毫秒每帧。那么,这种情况下的耗尽时长为:28*10=2560毫秒,那么,该周期时长小于2560毫秒即可。此时,计时周期的周期时长可预设为2秒或2.5秒。
194.此外,需要说明的是,对于接收到全局同步消息的ecu设备而言,ecu设备可以单独记录全局计数值,也可以将全局计数值与本地计数值结合在一起,以整计数值的方式进行记录。
195.在另一具体场景中,ecu设备还可以主动请求同步全局计数值。
196.例如,当ecu设备发生休眠后恢复工作时,ecu设备可能会错过全局同步消息,而错过同步全局计数值,从而,可能会影响该ecu设备与其他ecu设备的can通信。此时,ecu设备就可以主动请求全局计数值。
197.又例如,车内网络中的ecu设备较多,各ecu设备的启动时刻可能不同,那么,当ecu设备启动时,也可以主动请求同步全局计数值,以便于后续can通信。
198.在一实施例中,ecu设备,如第一设备,可以主动向第四设备发送同步请求,该同步请求用于请求同步全局计数值。而第四设备在接收到该同步请求时,则可以将当前的全局计数值发送给该ecu设备。ecu设备即可根据第四设备返回的全局计数值来进行全局计数值的同步。
199.示例性的一种实施例中,第四设备可以为前述指定设备,如计数器中心。或者,第四设备也可以为与当前ecu设备通信的另一个ecu设备,或者,第四设备还可以为除第三设备之外的任意存储有全局计数值的设备,例如,该ecu设备所在域的域管理员设备。
200.在can通信系统中,ecu设备一般通过在can总线上广播can消息的方式进行通信。具体实现本方案时,可以采用第二特定can id与第三特定can id来进行同步请求与全局计
数值的消息交互。换言之,各ecu设备中可以存储有两个can id,一个can id用于与其他ecu设备进行can通信;另一个即为第二特定can id,第二特定can id用于发送同步请求时使用。
201.指定设备也可以存储有两个特定can id,其中,第一特定can id用于周期性的广播全局同步消息;第三特定can id则可响应于ecu设备发送的同步请求,用于向ecu设备发送全局计数值。
202.其中,第一特定can id与第三特定can id可以不同。
203.具体的,当ecu设备1向指定设备请求全局计数值时,指定设备利用第三特定can id来发送全局计数值。该第三特定can id则用于响应同步请求。
204.其他ecu设备接收到该can消息后,确定该can消息是单独发送的,并非用于全局同步,因此,无需再次更新当前的全局计数值,也无需将本地计数值置零。
205.而ecu设备1在接收到该can消息后,更新本地记录的全局计数值。此时,本地计数值可以不置零,也可以置零。例如,若ecu设备1是重新启动后主动请求同步全局计数值的,则本地计数值可以置零。又例如,若ecu设备1是休眠又启动后主动请求同步全局计数值的,则无需置零,而是根据接收到的can消息来同步本地计数值即可。
206.或者,第一特定can id与第三特定can id也可以相同。这种情况下,指定设备接收到同步请求后,可以利用第一特定can id来发送全局同步消息。此时,各ecu设备接收到全局同步消息后,就可以更新全局计数值,并将本地计数值置零。
207.在另一实施例中,第四设备可以为存储有全局计数值的其他ecu设备。例如,ecu设备1启动,或者,休眠后又重新启动时,ecu设备1可以向ecu设备2发送同步请求,其中,ecu设备2不是指定设备,并且,ecu设备2记录有指定设备同步的全局计数值。又例如,第一设备与第二设备通信时,第一设备可以向第二设备发送同步请求,此时第二设备作为第四设备,可以向第一设备反馈全局计数值。
208.在该场景中,ecu设备中可以存储有三个can id:一个can id用于与其他ecu设备进行can通信;另一个即为第二特定can id,第二特定can id用于发送同步请求时使用;以及,第三特定can id则可响应于ecu设备发送的同步请求,用于向ecu设备发送全局计数值。
209.基于前述设计,各ecu设备可以通过被动接收或主动请求的方式,来同步全局计数值。
210.除此之外,ecu设备之间可能还涉及本地计数值不同步的情况。本申请实施例中,接收端可以基于发送端发送的can消息来同步本地计数值。
211.示例性的一种实施例中,可以参考图4,图4示出了一种信息传输方法的流程示意图,该方法可以应用于前述包含第一设备与第二设备的通信系统中。如前,该通信系统中,各ecu设备具备全局同步的全局计数值,并将本地计数值携带在can消息中,进行消息传输,不作赘述。
212.具体的,该方法可以包括如下步骤:
213.s402,第一设备接收来自于第二设备的can消息,can消息中包括第二计数值,第二计数值通过第二计数器获得。
214.也即,第二计数值为第二设备的本地计数值。
215.s404,第一设备判断第一计数值与第二计数值是否匹配,第一计数值通过第一计
数器获得。
216.也即,第一计数值为第一设备的本地计数值。
217.s406,第一设备获取当前的全局计数值。
218.获取方式如前所述,可以接收广播以获取当前的全局计数值,或者,也可以向第四设备发送请求并接收第四设备反馈的全局计数值,或者,还可以通过自身的第一计时器来获取全局计数值。不作赘述。
219.s408,当第一计数值与第二计数值不匹配时,第一设备利用第二计数值与全局计数值,对can消息进行验证。
220.如前,第二设备(此时为发送端)在发送can消息之前计数器加n,而第一设备(此时为接收端)在接收到合法can消息时,加n。如此,若第一设备与第二设备的本地计数值同步,则第一设备在接收到can消息后,第二计数值与第一计数值之间相差n。
221.如此,第一设备可以判断第一计数值与单位计数间隔(n)之和是否等于第二计数值。从而,当第一计数值与单位计数间隔之和不等于第二计数值时,第一设备确定第一计数值与第二计数值不匹配。当第一计数值与n之和等于第二计数值时,二者匹配。
222.当第一计数值与第二计数值不匹配时,第一设备需要验证该can消息的合法性,此时,需要利用第二计数值与全局计数值来得到一个整计数值,并据此进行验证,后续详述验证过程。
223.当验证通过,该can消息是合法的,则第一设备就可以更新第一计数值。更新方式可以包括:第一计数值更新为第二计数值;或者,在第一计数值基础上加n,使得第一计数值与第二计数值同步。
224.示例性的,ecu设备之间在以can消息进行通信时,发送端(第二设备)在发送can消息时,data域中携带有发送端本地维护的本地计数值(记为第二计数值)。如此,接收端(第一设备)在接收到can消息时,首先可以判断第二计数值是否为第一计数值加一。其中,第一计数值则为接收端本地维护的本地计数值。
225.若第二计数值为第一计数值加一,二者匹配,则发送端与接收端之间的本地计数值是匹配的。如此,在全局计数值可以保持全局同步的前提下,二者之间的整计数值也是同步的,二者各自的计数器也是同步计数的。
226.当验证通过时,第一设备可以处理can消息。也就是,接收端可以直接对该can消息进行相应处理,例如,存储can消息、基于该can消息反馈数据、对can消息进行解析等处理,本申请实施例对处理方式无特别限定。
227.除此之外的部分场景中,当验证通过时,接收端接收到合法的can消息后,也可不作其他处理。例如,若接收端接收到的can消息为通知消息,接收端接收到通知消息后可不作其他处理。
228.反之,若第二计数值与第一计数值加一不相等,二者不匹配,则发送端与接收端之间的本地计数器不同步。这种情况下,接收端需要对该can消息进行验证(认证保护)。
229.若验证通过,则可以将本地计数值更新为第二计数值。实现方式同前,不作赘述。
230.若验证失败,则该can消息为非法消息,此时,接收端可以丢弃该can消息。更进一步的,接收端还可以输出提示消息,以提示用户接收到非法消息,可能存在安全隐患。提示消息的输出方式可以包括但不限于:声音提示、灯光闪烁提示、文字提示与震动提示中的至
少一种。
231.现以第一设备利用第二计数值与全局计数值,对can消息进行验证的过程进行说明。具体而言,第一设备获取整计数值,整计数值基于第二计数值、全局计数值获得,然后,第一设备获取第一验证码,第一验证码基于整计数值、第一设备与第二设备之间的秘钥获得,从而,当第一验证码与can消息中携带的第二验证码相同时,第一设备确定对can消息的验证通过。反之,若第一验证码与第二验证码不一致,则验证失败。
232.除此之外的另一种实施例中,第一验证码还可以基于整计数值、第一设备与第二设备之间的秘钥、can消息内容获得。
233.应当理解,第一设备计算第一验证码的方式,与第二设备计算第二码的方式相同。
234.现以设备1(第二设备)向设备2(第一设备)发送can消息的场景为例,对接收端对can消息进行验证的方式进行说明。
235.设备1当前维护有本地计数值12,当需要向设备2发送can消息时,设备1将本地计数值12加1(增加单位计数间隔),则本地计数值更新为12’。设备1发送的can消息中,data域携带有本地计数值12’。
236.除此之外,data域中还可以携带第二验证码,第二验证码与设备1的整计数值12”相关联。例如,在一可能的实施例中,设备1可以利用预设的加密算法,对整计数值12”进行加密,得到第二验证码。其中,整计数值12”是由全局计数值与本地计数值12’构成的。
237.第二验证码除与整计数值12”相关联之外,还可以基于can消息携带的内容、设备1与设备2之间的共有秘钥中一种或多种获取得到。
238.例如,在一可能的实施例中,设备1可以利用预设的加密算法,对整计数值12”与二者之间的共有秘钥进行加密,得到第二验证码。在另一可能的实施例中,设备1可以利用二者之间的共有秘钥,对整计数值12”进行加密,得到第二验证码。
239.又例如,在另一可能的实施例中,设备1可以利用二者之间的共有秘钥,对整计数值12”与can消息携带的内容进行加密,得到第二验证码。又例如,设备1可以利用预设的加密算法,对整计数值12”、can消息携带的内容与二者之间的共有秘钥进行加密,得到第二验证码。
240.设备2作为接收端,接收到can消息后,则可以计算第一验证码,计算方式与第二验证码的计算方式相同,不再赘述。第一验证码是设备2按照预设的加密算法,对整计数值21”进行加密后得到的。此时,整计数值21”是设备2基于本地计数值12’与全局计数值获取得到的。
241.对于一对收发设备而言,二者需要采用同样的加密算法处理整计数值,才能得到相同的验证码。如此,若第二验证码与第一验证码相同,则验证通过。反之,若二者不同,则验证不通过。
242.如此,在本申请实施例中,第一设备与第二设备之间,通过携带在can消息中的第二计数值(发送端的第二计数值)与全局计数值,就能够实现二者之间的认证保护。
243.由此,仍以第二设备向第一设备发送can消息的场景为例,第二设备为发送端,设置有第二计时器,第二计时器基于第一设备与第二设备之间的数据收发进行计数。发送端侧所执行的信息传输方法如下所示。
244.第二设备可以通过所述第二计数器获取第二计数值;
245.所述第二设备向所述第一设备发送can消息,所述can消息中携带所述第二计数值;
246.其中,所述第二计数值用于判断第一计数值与所述第二计数值是否匹配;以及,在所述第一计数值与所述第二计数值不匹配时,用于结合所述第一设备当前获取到的全局计数值,对所述can消息进行验证;其中,所述第一计数值为所述第一设备通过所述第一计数器获得的。
247.除此之外,can消息中还可以携带有第二验证码。也就是,在发送can消息之前,第二设备获取当前的全局计数值;然后,所述第二设备获取整计数值,所述整计数值基于所述第二计数值、所述第二设备获取到的当前的全局计数值获得;进而,所述第二设备获取第二验证码,所述第二验证码基于所述整计数值、所述第一设备与所述第二设备之间的秘钥获得。
248.第二验证码的获取方式如前所述,不作赘述。
249.而第二设备获取到全局计数值的方式,亦如前所述,具备多种实现方式。
250.示例性的,图5示出了本申请实施例提供的信息传输方法的信息交互流程示意图。如图5所示,该消息传输方法可以包括如下步骤:
251.s501,第二设备控制第二计数器按照单位计数间隔增加计数值,得到第二计数值。
252.s502,第二设备获取当前的全局计数值。
253.获取方式如前所述,可以包括多种。
254.示例性的,第二设备可以接收广播以获取当前的全局计数值;或者,第二设备也可以向第四设备发送请求并接收第四设备反馈的全局计数值;或者,第二设备还可以基于自身的第二计时器与第二计时周期来获取全局计数值。例如,第二设备获取所述第二计时器记录的当前时刻,并根据所述当前时刻与第二计时周期获取所述全局计数值。
255.不作赘述。
256.s503,第二设备基于全局计数值与第二计数值计算第二验证码。
257.示例性的一种实施例中,所述第二设备可以基于所述第二计数值、所述全局计数值,获取整计数值,然后,第二设备还可以利用第一设备与所述第二设备之间的秘钥,处理所述整计数值(示例性的一种实现方式,如前所述,实际场景中可以有其他处理方式),得到所述第二验证码。
258.其他实现方式可以参考前述举例中设备1的多种计算方式,此处不赘述。
259.s504,第二设备向第一设备发送can消息,can消息中携带第二计数值与第二验证码。
260.s505,第一设备接收来自于第二设备的can消息。
261.s506,第一设备判断第一计数值与第二计数值是否匹配,第一计数值通过第一计数器获得。
262.s507,第一设备获取当前的全局计数值。
263.s508,当第一计数值与第二计数值不匹配时,第一设备利用第二计数值与全局计数值,对can消息进行验证。
264.具体而言,第一设备利用第二计数值与获取到的全局计数值计算出整计数值,然后,再据此计算出第一验证码,当第一验证码与第二验证码相同时,则验证通过;反之,当第
一验证码与第二验证码不同时,则验证失败。不作赘述。
265.s509,当验证通过时,第一设备更新第一计数值。
266.反之,当验证失败,则第一设备无需更新第一计数值,丢弃该can消息。
267.除前述施例之外,指定设备的数目还可以为多个。多个指定设备可以各自生成全局计数值。此时,涉及到多个指定设备生成的全局计数值可能不同的情况。
268.此时,一种可能的实施例中,可以由其中的一个指定设备来进行全局同步,实现方式如前,不作赘述。此时,其余的多个指定设备即便生成全局计数值,也如普通的ecu设备一样,根据全局同步消息来同步全局计数值。而用于发布全局计数值的一个指定设备,则可以指定,或者,由最早生成全局计数值的一个指定设备来进行广播。
269.另一种可能的实施例中,多个指定设备在各自生成的全局计数值后,还可以先在指定设备之间进行全局计数值的同步,之后,再向其他ecu设备同步全局计数值。例如,各指定设备利用另一特地can id,例如第四特定can id,来对各指定设备之间的全局计数值进行同步;之后,各指定设备再将同步后的全局计数值来向其他ecu设备进行同步。例如,指定设备可以为各域的域管理员,在各域管理员同步了全局计数值后,再由各域管理员向各域内的ecu设备进行同步,如此,实现全局计数值的同步。
270.另一种可能的实施例中,若多个指定设备生成与当前时刻相关联的全局计数值,则多个指定设备之间还可以通过同步计时器的方式,实现全局计数值的同步。此时,多个指定设备中均设置有计时器,如此,才能够利用计时器维护的当前时刻,来生成全局计数值。
271.示例性的,若第一设备还包括第一计时器,第一设备可以基于第一计时器与第一计时周期,获取全局计数值。进一步的,全局计数值可以与第一计时器记录的当前时刻相关联。具体而言,第一设备可以将当前时刻所属计时周期的周期标识,作为全局计数值。
272.类似的,若第二设备还包括第二计时器,则第二设备可以基于第二计时器与第二计时周期,获取全局计数值。此时,第二设备所采用的全局计数值与第二计时器记录的当前时刻相关联。具体而言,第二设备需要使用全局计数值时,可以获取第二计时器记录的当前时刻,并获取当前时刻所属第二计时周期的周期标识,如此即可得到全局计数值。
273.那么,第一设备与第二设备可以通过同步计时器的方式,来同步二者的全局计数值。
274.这种情况下,若多个指定设备之间的计时器存在偏差,尤其是涉及到周期边界时,收发设备之间很容易落在两个不同的计时周期内,这就会导致各指定设备生成的全局计数值不同。
275.示例性的,可以参考图6,图6示出了2个计时周期的示意图。为便于说明,将每个计时周期的起始时刻作为计时周期的周期标识,例如,各计时周期的周期标识分别为t、t 1。那么,在设备1与设备2进行can通信时,若二者的时间存在偏差,则可能会发生:设备1的当前时刻位于t周期内的a点,而设备2的当前时刻位于t 1周期内的b点的情况。二者所在的计时周期不同,导致二者的全局计数值不同,进而,也会导致接收端对can消息进行认证保护时验证失败。
276.针对这种情况,本申请实施例还可以预设时间上的最大误差w,该最大误差w为能够允许的时间上的最大误差。如图6所示,若a点位于t周期内的-w区间内,而b点位于t 1周期内的 w区间内,则可能是由于二者的计时器存在偏差导致的,因此,这种情况下对can消
息的认证保护可以通过。
277.具体实现时,当第二设备(发送端)发送can消息时,通过读取第二计时器得到当前时刻,并依据预设的计时周期划分方式,获得当前时刻所属计时周期的周期标识,得到全局计数值。
278.此时,若第二计时器记录的当前时刻位于该计时周期内的-w区间或者 w区间时,则可以在can消息的data域中携带边界标识,用于表征第二设备的当前时刻处于当前计时周期的周期边界内。
279.换言之,当第二设备向所述第一设备发送can消息时,可以判断第二计时器记录的当前时刻是否处于第二计时周期的边界区间,从而,当所述当前时刻处于所述第二计时周期的边界区间时,所述第二设备在所述can消息中添加边界标识,然后,向第一设备发送添加所述边界标识后的can消息。相应地,作为第一设备而言,接收到的can消息中就携带有边界标识。
280.具体而言,边界标识可以包括:第一边界标识或者第二边界标识。其中,第一边界标识用于指示发送端的当前时刻已处于新周期,具体而言,用于表征发送端的当前时刻处于所在计时周期的正边界( w区间)。第二边界标识用于指示发送端的当前时刻处于旧周期,具体的,用于表征发送端的当前时刻处于所在计时周期的负边界(-w区间)。
281.边界标识的标识方式可以自定义确定,本申请对此无特别限定。例如,第一边界标识可以为1,第二边界标识可以为0;或者反之亦可。又例如,第一边界标识可以为符号“ ”,第二边界标识可以为符号
“-”
;或者反之亦可。又例如,第一边界标识可以为文字“正窗口”,第二边界标识可以为文字“负窗口”;或者反之亦可。可以理解,前述举例不应用于限制本申请实施例的实现范围,边界标识还可以为前述举例类似的各种形式,不作赘述。
282.相应的,第一设备(接收端)在接收到该can消息后,该can消息中携带有边界标识,则第一设备可以利用边界标识,对全局计数值进行校正,然后,利用校正后的全局计数值与第二计数值,获取整计数值,进而,利用该整计数值实现对can消息的认证保护。
283.具体而言,接收端可以根据can消息中的边界标识,以及从自身计时器读取到的当前时刻所处的计时周期,来确定用于计算第一验证码所要使用的全局计数值,进而,结合本地计数值,得到用于计算的整计数值。
284.示例性的,请参考图6,若设备2(第二设备)向设备1(第一设备)发送can消息,can消息中携带第一边界标识、第二计数值(也即设备2的本地计数值)与第二验证码,那么,设备1接收到该can消息后,设备1的当前时刻处于t周期的-w区间。由此,设备1根据该第一边界标识可知,设备2当前处于下一个周期,也就是t 1周期,如此,设备1在计算第一验证码时,可以将t 2周期的周期标识作为用于计算第一验证码的全局计数值,以及,结合第二计数值,即可得到用于计算第一验证码的整计数值。并由此计算第一验证码,进而,基于第一验证码与第二验证码验证can消息的合法性。在该实施例中,若验证通过,设备1无需再同步全局计数值,全局计数值仍按照本地的第一计时器记录的时刻获取得到即可,而设备1只需要处理can消息即可。
285.在利用计时器生成全局计数值的实施例中,各指定设备的计时器还可以定时或周期性的进行计时器同步,以避免由于计时器偏差导致全局计数值的偏差。示例性的,可以按照预设的计时器同步周期,来周期性的同步各设备的计时器。此时,相较于计时周期,计时
器同步周期的周期时长可以较长,无需频繁同步。又例如,指定设备还可以在车辆启动时,就进行各ecu设备的计时器同步。或者,可以在满足预设条件时,同步各计时器。
286.以第一设备和第二设备为例。当第一设备具备第一计时器,第二设备包括第二计时器时,第一计时器与第二计时器可以周期性同步,或者,在满足预设的误差条件时同步。其中,当第一计时器记录的当前时刻,与第二计时器记录的当前时刻,之间的差值达到预设的误差阈值时,满足误差条件。
287.需要说明的是,本申请实施例中,多个指定设备可以为整个can通信网络中的部分ecu设备,或者,也可以为整个can通信网络中的全部ecu设备。
288.示例性的,当整个can通信网络中的全部ecu设备都设置有计时器时,各ecu设备都可作为指定设备,各ecu设备按照各自的计时器来生成全局计数值,并各自维护本地计数值。此时,各ecu设备按照预设的计时器同步周期来同步各自的计时器即可。
289.综上,本申请实施例所提供的前述方法,利用全局计数值与本地计数值结合构成整计数值,而全局计数值在整个can通信系统中进行全局同步,而本地计数值在一个计时周期不会耗尽,不会由于进位而导致整计数值发生变化,这既能够解决can消息的认证保护问题,提高了can通信系统的安全性,也能够解决现有技术中计数值严重失同导致的对系统性能的影响,提高了can通信系统的稳定性。
290.可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。以上具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
291.本申请实施例还提供了一种通信设备。通信设备可用于实现上述方法实施例中描述的ecu设备对应部分的方法,具体参见上述方法实施例中的说明。
292.图7示出了一种通信设备的功能方块图。该通信设备700与第二设备通过can消息进行通信。其中,通信设备700中还包括第一计数器(图7未示出),第一计数器基于所述通信设备与所述第二设备之间的数据收发进行计数。
293.如图7所示,通信设备700包括:
294.收发模块72,用于接收第二设备发送的can消息,其中,can消息中包括第二计数值,第二计数值通过第二计数器获得;
295.处理模块74,用于:
296.判断第一计数值与第二计数值是否匹配,第一计数值通过第一计数器获得;
297.获取当前的全局计数值;
298.当第一计数值与第二计数值不匹配时,利用第二计数值与全局计数值,对can消息进行验证。
299.在一可能的实施例中,处理模块74,还具体用于:当验证通过时,更新第一计数值。
300.在另一可能的实施例中,处理模块74,具体用于:
301.获取整计数值,整计数值基于第二计数值、全局计数值获得;
302.获取第一验证码,第一验证码基于整计数值、通信设备与第二设备之间的秘钥获得;
303.当第一验证码与can消息中携带的第二验证码相同时,验证通过。
304.在另一可能的实施例中,处理模块74,可具体用于基于整计数值、通信设备与第二设备之间的秘钥、can消息的内容,来获取第一验证码。
305.在另一可能的实施例中,整计数值为第二计数值与全局计数值之和;或者,整计数值为第二计数值与全局计数值构成的长字符串。
306.在另一可能的实施例中,处理模块74,具体用于:
307.判断第一计数值与单位计数间隔之和是否等于第二计数值;
308.当第一计数值与单位计数间隔之和不等于第二计数值时,确定第一计数值与第二计数值不匹配。
309.在另一可能的实施例中,处理模块74,还用于当验证通过时,处理can消息。
310.在另一可能的实施例中,收发模块72,还用于接收全局计数值;此时,处理模块74还用于存储全局计数值。
311.在另一可能的实施例中,全局计数值为第三设备周期性广播的。
312.在另一可能的实施例中,前述处理模块74还用于:每当接收到全局计数值时,将第一计数器置零。
313.在另一可能的实施例中,第三设备包括:网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,计数器设备用于对全局计数值进行计数。
314.在另一可能的实施例中,收发模块72,还用于:在接收全局计数值之前,向第四设备发送同步请求,以使得第四设备向通信设备发送全局计数值。
315.在另一可能的实施例中,通信设备700还包括第一计时器(图7未示出),处理模块74,还具体用于:基于第一计时器与第一计时周期,获取全局计数值。
316.在另一可能的实施例中,全局计数值为第一计时器记录的当前时刻所属的第一计时周期的周期标识。
317.在另一可能的实施例中,当第二设备发送can消息的发送时刻处于第二计时周期的边界区间时,can消息中还携带有边界标识。
318.在另一可能的实施例中,当can消息中携带有边界标识时,处理模块74,还具体用于:利用边界标识,对全局计数值进行校正;利用校正后的全局计数值与第二计数值,获取整计数值。
319.在另一可能的实施例中,通信设备700、第二设备为车载设备。
320.图7所示实施例的通信设备可用于执行上述方法实施例中第一设备侧所执行的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述,可选的,该通信设备700可以是ecu设备。
321.应理解以上图7所示通信设备的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,收发模块72可以为单独设立的处理元件,也可以集成在通信设备,例如ecu设备的某一个芯片中实现,此外,也可以以程序的形式存储于通信设备的存储器中,由通信设备的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。
在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
322.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital singnal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
323.图8示出了一种通信设备的结构示意图。如图8所示,通信设备700包括:
324.存储器710,存储器中存储有计算机程序;
325.处理器720;
326.计数器730,用于计数得到本地计数值;
327.其中,计算机程序被配置为由处理器720执行以实现前述实施例中第一设备侧所述的方法。
328.其中,通信设备700中处理器720的数目可以为一个或多个,处理器720也可以称为处理单元,可以实现一定的控制功能。处理器720可以是通用处理器或者专用处理器等。在一种可选地设计中,处理器720也可以存有指令,指令可以被处理器720运行,使得通信设备700执行上述方法实施例中描述的方法。
329.在又一种可能的设计中,通信设备700可以包括电路,电路可以实现前述方法实施例中发送或接收或者通信的功能。
330.可选地,通信设备700中存储器710的数目可以为一个或多个,存储器710上存有指令或者中间数据,指令可在处理器720上被运行,使得通信设备700执行上述方法实施例中描述的方法。可选地,存储器710中还可以存储有其他相关数据。可选地,处理器720中也可以存储指令和/或数据。处理器720和存储器710可以单独设置,也可以集成在一起。
331.此外,如图8所示,在该通信设备700中还设置有收发器740,其中,收发器740可以称为收发单元、收发机、收发电路、或者收发器等,用于与第二设备或其他ecu设备进行数据传输或通信,在此不再赘述。
332.如图8所示,存储器710、处理器720、计数器730与收发器740可以通过总线连接并通信。
333.若该通信设备700用于实现对应于图4或图5中第一设备侧的方法时,例如,可以由收发器740接收第二设备发送的can消息。而处理器720用于完成相应的确定或者控制操作,可选的,还可以在存储器710中存储相应的指令。各个部件的具体的处理方式可以参考前述实施例的相关描述。
334.此外,在图8的一种可能的实施例中,通信设备700还包括:计时器(图8未示出,也即前述的第一计时器),用于计时;此时,处理器720,还用于根据计时器记录的当前时刻获取全局计数值。
335.图9示出了另一种通信设备的功能方块图。该通信设备900与第一设备通过can消息进行通信。其中,通信设备900中还包括第二计数器(图9未示出),第二计数器基于所述第
一设备与所述通信设备900之间的数据收发进行计数。
336.如图9所示,通信设备900包括处理模块92和收发模块94;
337.其中,处理模块92,用于:基于本地的第二计数器,获取到第二计数值
338.而收发模块94,用于向所述第一设备发送can消息,所述can消息中携带所述第二计数值。
339.其中,第二计数值可以用于判断第一计数值与所述第二计数值是否匹配;以及,在所述第一计数值与所述第二计数值不匹配时,第二计数值还用于结合所述第一设备当前获取到的全局计数值,对所述can消息进行验证;其中,所述第一计数值为所述第一设备通过所述第一计数器获得的。
340.在一可能的实施例中,can消息中还携带有第二验证码,此时,处理模块92,具体用于:获取当前的全局计数值,然后,基于第二计数值、获取到的全局计数值,获取整计数值,然后,再基于第一设备与通信设备之间的秘钥与该整计数值,获取第二验证码。
341.在另一可能的实施例中,处理模块92还用于:通过接收全局计数值的方式,获取到当前的全局计数值。进一步的,处理模块92还可以用于:存储全局计数值。
342.在另一可能的实施例中,全局计数值为第三设备周期性广播的。本申请实施例中,第三设备可以为网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,其中,计数器设备用于对全局计数值进行计数。也就是,第三设备可以具体为指定设备。
343.在另一可能的实施例中,若全局计数值为周期性广播的,那么,处理模块92,还用于:每当接收到全局计数值时,将第二计数器置零。
344.在另一可能的实施例中,收发模块94,还可以用于:在接收全局计数值之前,向第四设备发送同步请求,以使得第四设备向第二设备发送全局计数值。此时,该通信设备900可以主动向拥有全局计数值的第四设备请求同步全局计数值。此时,第四设备可以为第三设备,或者,第四设备也可以为第一设备,或者,第四设备还可以为除第三设备之外的任意存储有全局计数值的设备。例如,图2所示实施例中,第四设备还可以为该通信设备所在域的域管理员。
345.在另一可能的实施例中,收发模块94可以利用第一特定标识发送所述同步请求;而所述第四设备也可以利用第二特定标识发送所述全局计数值。
346.在另一可能的实施例中,若所述同步请求为所述第二设备启动后发送的,处理模块92还用于将所述第二计数器置零。若同步请求为所述第二设备经休眠唤醒后发送的,则处理模块92可不对第二计数器进行置零。
347.在另一可能的实施例中,所述通信设备还包括第二计时器,此时,处理模块92,具体用于:
348.获取所述第二计时器记录的当前时刻;
349.根据所述当前时刻与第二计时周期获取所述全局计数值。
350.在另一可能的实施例中,所述处理模块92,还用于当所述当前时刻处于所述第二计时周期的边界区间时,在所述can消息中添加边界标识;
351.所述收发模块94,具体用于发送添加所述边界标识后的can消息。
352.在另一可能的实施例中,通信设备900、第一设备为车载设备。
353.图9所示实施例的通信设备可用于执行上述方法实施例中第二设备侧的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述,可选的,该通信设备900可以是ecu设备。
354.应理解以上图9所示通信设备900的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,处理模块92可以为单独设立的处理元件,也可以集成在通信设备,例如ecu设备的某一个芯片中实现,此外,也可以以程序的形式存储于通信设备的存储器中,由通信设备的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
355.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个微处理器(digital singnal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
356.图10示出了一种通信设备的结构示意图。如图10所示,通信设备900包括:
357.存储器910,存储器中存储有计算机程序;
358.处理器920;
359.计数器930,用于计数得到本地计数值;
360.其中,计算机程序被配置为由处理器920执行以实现前述实施例中第二设备侧所述的方法。
361.其中,通信设备900中处理器920的数目可以为一个或多个,处理器920也可以称为处理单元,可以实现一定的控制功能。处理器920可以是通用处理器或者专用处理器等。在一种可选地设计中,处理器920也可以存有指令,指令可以被处理器920运行,使得通信设备900执行上述方法实施例中描述的方法。
362.在又一种可能的设计中,通信设备900可以包括电路,电路可以实现前述方法实施例中发送或接收或者通信的功能。
363.可选地,通信设备900中存储器910的数目可以为一个或多个,存储器910上存有指令或者中间数据,指令可在处理器920上被运行,使得通信设备900执行上述方法实施例中描述的方法。可选地,存储器910中还可以存储有其他相关数据。可选地,处理器920中也可以存储指令和/或数据。处理器920和存储器910可以单独设置,也可以集成在一起。
364.此外,如图10所示,在该通信设备900中还设置有收发器940,其中,收发器940可以称为收发单元、收发机、收发电路、或者收发器等,用于与第一设备或其他ecu设备进行数据传输或通信,在此不再赘述。
365.如图10所示,存储器910、处理器920、计数器930与收发器940可以通过总线连接并通信。
366.若该通信设备900用于实现对应于图4或图5中第二设备侧的方法时,例如,可以由收发器940向第一设备发送can消息。而处理器920用于完成相应的确定或者控制操作,可选的,还可以在存储器910中存储相应的指令。各个部件的具体的处理方式可以参考前述实施例的相关描述。
367.此外,在图10的一种可能的实施例中,通信设备900还包括:计时器(图10未示出,也即前述的第二计时器),用于计时;此时,处理器920,还用于根据计时器记录的当前时刻获取全局计数值。
368.此外,本申请实施例还提供了一种通信系统,示例性的,请参考图11,该通信系统1100包括:
369.通信设备700(第一设备),设置有第一计数器,用于执行前述第一设备侧所述的方法;
370.通信设备900(第二设备),设置有第二计数器,用于执行前述第二设备侧所述的方法;
371.通信设备700与通信设备900通过can消息进行通信;
372.并且,所述第一计数器与所述第二计数器均基于所述第一设备与所述第二设备之间的数据收发进行计数。
373.可以理解,通信设备700的功能方块图可以参见图7所示,实体结构示意图可以参见图8;通信设备900的功能方块图可以参见图9所示,实体结构示意图可以参见图10。不作赘述。
374.本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中第一设备侧所述的通信方法。
375.本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中第二设备侧所述的通信方法。
376.此外,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中第一设备侧所述的通信方法。
377.本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中第二设备侧所述的通信方法。
378.应当理解,对于任意一个通信设备而言,在一个场景中,该通信设备可以为接收端,执行如前述第一设备侧所述的信息传输方法;在另一场景中,该通信设备还可以为发送端,执行如前述第二设备侧所述的信息传输方法。因此,在实际场景中,一个通信设备可以在不同的场景中执行前述任意一侧(第一设备侧或第二设备侧)所述的信息传输方法。
379.类似地,本申请实施例提供的计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中第一设备侧或第二设备侧所述的通信方法。
380.本申请实施例所提供一种计算机程序产品,该计算机程序产品包括计算机程序,
当其在计算机上运行时,使得计算机执行上述实施例中第一设备侧或第二设备侧所述的通信方法。
381.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。

技术特征:
1.一种信息传输方法,其特征在于,应用于第一设备,所述第一设备与第二设备通过控制局域网can消息进行通信;所述第一设备包括第一计数器,所述第二设备包括第二计数器,所述第一计数器与所述第二计数器均基于所述第一设备与所述第二设备之间的数据收发进行计数;所述方法包括:所述第一设备接收来自于所述第二设备的can消息,其中,所述can消息中包括所述第二计数值,所述第二计数值通过所述第二计数器获得;所述第一设备判断第一计数值与所述第二计数值是否匹配,所述第一计数值通过所述第一计数器获得;所述第一设备获取当前的全局计数值;当所述第一计数值与所述第二计数值不匹配时,所述第一设备利用所述第二计数值与所述全局计数值,对所述can消息进行验证。2.根据权利要求1所述的方法,其特征在于,所述第一设备利用所述第二计数值与所述全局计数值,对所述can消息进行验证,包括:所述第一设备获取整计数值,所述整计数值基于所述第二计数值、所述全局计数值获得;所述第一设备获取第一验证码,所述第一验证码基于所述整计数值、所述第一设备与所述第二设备之间的秘钥获得;当所述第一验证码与所述can消息中携带的第二验证码相同时,所述第一设备确定所述can消息通过验证。3.根据权利要求2所述的方法,其特征在于,所述整计数值为所述第二计数值与所述全局计数值之和;或者,所述整计数值为所述第二计数值与所述全局计数值构成的长字符串。4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一设备判断第一计数值与所述第二计数值是否匹配,包括:所述第一设备判断所述第一计数值与单位计数间隔之和是否等于所述第二计数值;当所述第一计数值与所述单位计数间隔之和不等于所述第二计数值时,所述第一设备确定所述第一计数值与所述第二计数值不匹配。5.根据权利要求1-4任一项所述的方法,其特征在于,全局计数值为第三设备周期性广播的。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:每当接收到全局计数值时,所述第一设备将所述第一计数器置零。7.根据权利要求5或6所述的方法,其特征在于,所述第三设备包括:网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,所述计数器设备用于对全局计数值进行计数。8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一设备还包括第一计时器,所述第一设备基于所述第一计时器与第一计时周期获取所述全局计数值。9.根据权利要求8所述的方法,其特征在于,当所述第二设备发送所述can消息的发送时刻处于第二计时周期的边界区间时,所述can消息中还携带有边界标识。
10.根据权利要求2所述的方法,其特征在于,当所述can消息中携带有边界标识时,所述第一设备获取整计数值,包括:所述第一设备利用所述边界标识,对所述全局计数值进行校正;所述第一设备利用校正后的全局计数值与所述第二计数值,获取所述整计数值。11.根据权利要求1-10任一项所述的方法,其特征在于,所述第一设备、所述第二设备为车载设备。12.一种信息传输方法,其特征在于,应用于第二设备,所述第二设备与第一设备通过can消息进行通信;所述第一设备包括第一计数器,所述第二设备包括第二计数器,所述第一计数器与所述第二计数器均基于所述第一设备与所述第二设备之间的数据收发进行计数;所述方法包括:所述第二设备通过所述第二计数器获取第二计数值;所述第二设备向所述第一设备发送can消息,所述can消息中携带所述第二计数值;其中,所述第二计数值用于判断第一计数值与所述第二计数值是否匹配;以及,在所述第一计数值与所述第二计数值不匹配时,用于结合所述第一设备当前获取到的全局计数值,对所述can消息进行验证;其中,所述第一计数值为所述第一设备通过所述第一计数器获得的。13.根据权利要求12所述的方法,其特征在于,所述can消息中携带第二验证码;所述方法还包括:所述第二设备获取当前的全局计数值;所述第二设备获取整计数值,所述整计数值基于所述第二计数值、所述第二设备获取到的当前的全局计数值获得;所述第二设备获取第二验证码,所述第二验证码基于所述整计数值、所述第一设备与所述第二设备之间的秘钥获得。14.根据权利要求12或13所述的方法,其特征在于,所述第二设备还包括第二计时器,所述第二设备基于所述第二计时器与第二计时周期获取所述全局计数值。15.根据权利要求14所述的方法,其特征在于,所述第二设备向所述第一设备发送can消息之前,所述方法还包括:当所述当前时刻处于所述第二计时周期的边界区间时,所述第二设备在所述can消息中添加边界标识;所述边界标识用于指示所述第一设备对获取到的全局计数值进行校正。16.一种通信设备,其特征在于,所述通信设备与第二设备通过can消息进行通信;所述通信设备包括第一计数器,所述第二设备包括第二计数器,所述第一计数器与所述第二计数器均基于所述通信设备与所述第二设备之间的数据收发进行计数;所述通信设备包括收发模块和处理模块;所述收发模块,用于接收来自于所述第二设备的can消息,其中,所述can消息中包括所述第二计数值,所述第二计数值通过所述第二计数器获得;所述处理模块,用于:判断第一计数值与所述第二计数值是否匹配,所述第一计数值通过所述第一计数器获得;
获取当前的全局计数值;当所述第一计数值与所述第二计数值不匹配时,利用所述第二计数值与所述全局计数值,对所述can消息进行验证。17.根据权利要求16所述的通信设备,其特征在于,所述处理模块,具体用于:获取整计数值,所述整计数值基于所述第二计数值、所述全局计数值获得;获取第一验证码,所述第一验证码基于所述整计数值、所述通信设备与所述第二设备之间的秘钥获得;当所述第一验证码与所述can消息中携带的第二验证码相同时,确定所述can消息通过验证。18.根据权利要求17所述的通信设备,其特征在于,所述整计数值为所述第二计数值与所述全局计数值之和;或者,所述整计数值为所述第二计数值与所述全局计数值构成的长字符串。19.根据权利要求16-18任一项所述的通信设备,其特征在于,所述处理模块,具体用于:判断所述第一计数值与单位计数间隔之和是否等于所述第二计数值;当所述第一计数值与所述单位计数间隔之和不等于所述第二计数值时,确定所述第一计数值与所述第二计数值不匹配。20.根据权利要求16-19任一项所述的通信设备,其特征在于,全局计数值为第三设备周期性广播的。21.根据权利要求20所述的通信设备,其特征在于,所述处理模块还用于:每当接收到全局计数值时,将所述第一计数器置零。22.根据权利要求20或21所述的通信设备,其特征在于,所述第三设备包括:网关设备、域管理员设备、车载设备与单独设置的计数器设备中的一个或多个,所述计数器设备用于对全局计数值进行计数。23.根据权利要求16-22任一项所述的通信设备,其特征在于,所述通信设备还包括第一计时器,所述处理模块具体用于:基于所述第一计时器与第一计时周期获取所述全局计数值。24.根据权利要求23所述的通信设备,其特征在于,当所述第二设备发送所述can消息的发送时刻处于第二计时周期的边界区间时,所述can消息中还携带有边界标识。25.根据权利要求17所述的通信设备,其特征在于,当所述can消息中携带有边界标识时,所述处理模块,具体用于:利用所述边界标识,对所述全局计数值进行校正;利用校正后的全局计数值与所述第二计数值,获取所述整计数值。26.根据权利要求16-25任一项所述的通信设备,其特征在于,所述通信设备、所述第二设备为车载设备。27.一种通信设备,其特征在于,所述通信设备与第一设备通过can消息进行通信;所述第一设备包括第一计数器,所述通信设备包括第二计数器,所述第一计数器与所述第二计数器均基于所述第一设备与所述通信设备之间的数据收发进行计数;所述通信设备包括处理模块和收发模块;
其中,所述处理模块,用于通过所述第二计数器获取第二计数值;所述收发模块,用于向所述第一设备发送can消息,所述can消息中携带所述第二计数值;其中,所述第二计数值用于判断第一计数值与所述第二计数值是否匹配;以及,在所述第一计数值与所述第二计数值不匹配时,用于结合所述第一设备当前获取到的全局计数值,对所述can消息进行验证;其中,所述第一计数值为所述第一设备通过所述第一计数器获得的。28.根据权利要求27所述的通信设备,其特征在于,所述can消息中携带第二验证码;所述处理模块,还具体用于:获取当前的全局计数值;获取整计数值,所述整计数值基于所述第二计数值、所述通信设备获取到的当前的全局计数值获得;获取第二验证码,所述第二验证码基于所述整计数值、所述第一设备与所述通信设备之间的秘钥获得。29.根据权利要求27或28所述的通信设备,其特征在于,所述通信设备还包括第二计时器,所述处理模块,具体用于基于所述第二计时器与第二计时周期获取所述全局计数值。30.根据权利要求29所述的通信设备,其特征在于,所述处理模块,还用于:当所述当前时刻处于所述第二计时周期的边界区间时,在所述can消息中添加边界标识;所述边界标识用于指示所述第一设备对获取到的全局计数值进行校正。31.一种通信设备,其特征在于,包括:存储器,所述存储器中存储有计算机程序;处理器;计数器,用于计数得到本地计数值;其中,所述计算机程序被配置为由所述处理器执行以实现如权利要求1-15任一项所述的方法。32.根据权利要求31所述的通信设备,其特征在于,所述通信设备还包括:计时器,用于计时;所述处理器,还用于基于所述计时器获取当前的全局计数值。33.一种通信系统,其特征在于,包括:第一设备,设置有第一计数器,用于执行如权利要求1-11任一项所述的方法;第二设备,设置有第二计数器,用于执行如权利要求12-15任一项所述的方法;其中,所述第一计数器与所述第二计数器均基于所述第一设备与所述第二设备之间的数据收发进行计数。34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中维护有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-15任一项所述的方法。
技术总结
本申请实施例提供一种信息传输方法、通信设备与系统、计算机可读存储介质,适用于自动驾驶领智能车辆内部的信息交互。本申请实施例中,各ECU设备维护的整计数值由全局计数值与本地计数值构成,其中,全局计数值在整个CAN网络中保持全局同步,而本地计数值由各设备利用本地的计数器进行计数得到。如此,在第二设备发送CAN消息时,CAN消息中携带第二计数值,第一设备接收到该CAN消息时,可以判断本地维护的第一计数值与第二计数值是否匹配;若不匹配,则可以利用第二计数值、全局计数值来对该CAN消息进行验证。如此,本申请实施例所提供的技术方案能够提高智能车辆车内网络的安全性与稳定性。与稳定性。与稳定性。


技术研发人员:杨艳江 钟胤 魏卓
受保护的技术使用者:华为技术有限公司
技术研发日:2019.12.31
技术公布日:2021/7/15

转载请注明原文地址:https://doc.8miu.com/read-650218.html

最新回复(0)