揣孟洋,管 婧,张茜铭 Chuai Mengyang,Guan Jing,Zhang Ximing
基于OSEK的整车CAN网络不睡眠问题研究
揣孟洋,管 婧,张茜铭 Chuai Mengyang,Guan Jing,Zhang Ximing
(中国第一汽车集团有限公司,吉林 长春 130013)
整车如果发生CAN网络不睡眠的情况会对车辆产生十分严重的危害,造成车辆可停放时间缩短,频繁出现启动困难问题,导致车辆无法启动,甚至使蓄电池报废,直接影响到整车的可靠性。基于OSEK(Open System and the Corresponding Interfaces for Automotive Electronics,汽车电子类开放系统和对应接口标准)网络管理,从实践出发研究整车CAN网络不睡眠问题的3种常见原因,即睡眠后被重新唤醒,睡眠条件不满足和无法稳定建环,并制定相关的排查方法。
CAN网络;睡眠条件;唤醒;建环
随着汽车产业的不断发展,CAN总线在车辆上的运用日益增多,同时整车的扩展功能越来越强大,越来越多的新功能新技术需要车辆在电源关闭后进行一些带电操作,因此为保证车辆长时停放后仍能正常起动,很多CAN节点都必须具备网络睡眠唤醒功能。但如果某个CAN节点网络睡眠唤醒有问题,整车就无法进入网络睡眠状态,以目前应用较广泛的OSEK网络管理为基础,研究整车CAN网络不睡眠问题的产生原因以及相应的排查方法。
实车排查CAN网络不睡眠问题,需要的基础设备有总线读取工具(以CANoe为例)、OBD线、装有CANoe软件的笔记本电脑、CAN数据库(dbc)。在连接OBD线时,需要提前与线束/诊断工程师确认OBD口的引脚定义和DB9端的端口。
从3个案例研究基于OSEK(Open System and the Corresponding Interfaces for Automotive Electronics,汽车电子类开放系统和对应接口标准)的整车CAN网络不睡眠问题的产生原因和排查方法。OSEK NM(Network Management,网络管理)报文结构如图1所示[1]。
图1 OSEK NM报文结构
如果某个CAN节点在本地没有需求的情况下向总线发送报文,将会引起总线频繁处于睡眠→唤醒→睡眠的循环当中,使整车始终不能进入网络睡眠状态。
产生这个问题的节点范围最广,无论是否具备网络睡眠唤醒功能,只要是CAN节点,就有可能导致这个问题。
在排查此原因导致的整车CAN网络不睡眠问题时,需要重点查看OpCode为03/07的NM报文发送完后,是否有某个CAN节点再发送报文重新唤醒总线[2]。
如图2所示,在305.7时刻,ID为481的NM报文OpCode为03,此时各CAN节点进入等待总线睡眠状态,停发报文5s准备正式进入网络睡眠状态;但到310.7时刻总线上出现了ID为1EF的报文,总线被重新唤醒,导致整车CAN网络无法睡眠。借助dbc,可以确认1EF这个报文是由哪个CAN节点所发,完成问题排查。
图2 网络睡眠后被重新唤醒
网络管理是一种协同的理念,如果某个CAN节点一直不满足网络睡眠条件,就会连带着整个网段都不能进入网络睡眠状态,整车即出现CAN网络不睡眠问题[3]。
产生这个问题的原因一般为控制器外围的某些配件状态较差,难以满足节点的网络睡眠条件。
在排查此原因导致的整车CAN网络不睡眠问题时,需要重点查看约定时间到达后,是否有某个CAN节点的NM报文OpCode不是05。
如图3所示,到达约定时间后,ID为480的NM报文OpCode一直为01,因此可以确定是该CAN节点的网络睡眠条件未满足,影响了整车CAN网络睡眠,完成问题排查。
图3 节点未满足网络睡眠条件
建环是OSEK网络管理的核心,如果因某个CAN节点问题导致无法稳定建环,会使该网段始终有部分CAN节点无法发送正常的NM报文,进而影响整车CAN网络睡眠。
这个问题是OSEK网络管理特有的故障因素,报文上呈现得很复杂,CAN节点间的建环十分混乱,每个CAN节点的NM报文Destination和OpCode都在不断变化,需要找到问题的本质。
在排查此原因导致的整车CAN网络不睡眠问题时,需要重点查看建环过程中,是否有某个CAN节点的NM报文发送时机不合理或者Destination指向不合理。
如图4所示,ID为481、487、490和496的NM报文都能够正常建环,但当ID为496的NM报文Destination指向17时,0x497并没有继续保持建环,约260ms超时后所有CAN节点重新建环。而当各CAN节点发送alive报文重新建环时,0x497发送出本应在保持建环时发送的ring报文;因此可以确定是0x497的发送节点出现问题,导致建环受到影响,使整车不能进入网络睡眠状态。
验证此原因的方法是在线束工程师的帮助下断开该节点的电源熔断器,使建环恢复正常,查看整车能否正常进入网络睡眠状态。
图4 无法稳定建环
掌握整车CAN网络不睡眠问题的产生原因和排查方法需要建立在不断的实践和积累之上,高效、快速排查出导致整车CAN网络不睡眠的原因,既能够帮助问题控制器加强改进,又能够提高开发效率,减少不必要的测试,希望为整车CAN网络不睡眠问题的产生原因和排查方法提供参考与帮助。
[1]OSEK/VDX. Network Management Concept and Application Programming Interface[Z].2004.
[2]康拉德.莱夫. BOSCH汽车电气与电子[M].孙泽昌,等译. 北京:北京理工大学出版社,2014:49-76.
[3]初洪超. 网络管理在汽车CAN系统的应用[J]. 汽车实用技术,2016(5):114-118.
U463.3
A
10.14175/j.issn.1002-4581.2020.01.005
1002-4581(2020)01-0016-02