2.3车身控制器CAN通信电路设计
数据传输时,CAN收发器在CAN控制器和物理传输线之间起着逻辑电平与差分电压信号转换的作用。在OSI参考模型中,它处于模型的底层,用来实现物理层的功能。车身控制器CAN通信电路采用TJA 1042T/CM收发器,它与ISO 11898-2协议标准相兼容。电子元件D1和D2为瞬态电压抑制器,以防止静电放电(ESD)和浪涌的冲击。为了提高CAN总线的抗干扰性能并减小CAN总线本身对周围空间的电磁辐射,在CANH与CANL上各串联了一个共模电感。其通信电路如图6所示。
3 软件设计与实现
3.1车身控制器故障诊断系统软件设计方案
车身控制器软件系统主要由底层驱动部分、上层应用策略部分和CAN协议栈3部分组成。底层驱动模块在位置灯开路故障中主要实现诊断数据采集和故障码存储等功能。应用层软件采用基于模型的设计方法,软件开发设计流程如图7所示。应用层软件在位置灯开路故障中主要实现故障码识别、设置和清除等功能。
CAN协议栈设计根据客户下发通信矩阵、诊断规范等输入文档,实现通信层、交互层、传输层、诊断层的代码编写,根据底层协议栈提供的诊断接口,完成诊断函数的填充,最终实现诊断功能。UDS软件设计与实现流程如图8所示。
3.2基于UDS的车身控制器故障诊断策略设计
车身控制器故障诊断系统以驾驶循环为界限,按照规则化的协议对故障进行记录和清除,最终以故障码(DTC)的方式体现出来。根据ISO 14229一协议标准,车身系统ECU和底盘系统ECU的驾驶循环可以由制造商自己定义,例如根据控制器的上电和下电,或者根据点火信号来定义驾驶循环。一般来说,具备直接网络管理功能的控制器将网络的休眠和唤醒作为一个驾驶循环;而在间接网络管理的控制器上,将控制器上电和下电作为一个驾驶循环。
ISO 14229-1协议标准对DTC做了规定:每个故障码都由DTC内容和DTC状态2部分组成。 DTC内容表明了该故障码的种类,例如故障码B111413代表位置灯开路故障;DTC状态则表示DTC当前所处状态,它由8位组成,每一位的具体含义见表1。
Test failed和Pending DTC位的设置条件为当前驾驶循环发生故障;Confirmed DTC的设置条件是经历连续2个驾驶循环发生故障。Test failed位的清除条件为当前驾驶循环故障消失;Pending DTC的清除条件为连续2个驾驶循环没有发生故障;Confirmed DTC的清除条件为连续经历40个完整的驾驶循环没有发生故障。
由公式(1)得知,位置灯开路故障时,由于负载阻抗很大,诊断电压接近 0V、所以当A/D转换值小于某一值时即认为位置灯开路故障。本文将网络的休眠和唤醒作为一个驾驶循环,对车身控制器故障诊断系统进行软件设计。位置灯开路测试失效位、等待DTC位和确认DTC位的设置与存储逻辑如图9所示。
4 功能测试与验证
为证明该诊断系统的可靠性,本文以位置灯开路故障工况为例,进行验证。断开位置灯负载,设置位置灯开路故障,并且按照图2连接方式,将诊断仪通过OBD接口与车身控制器连接。通过诊断仪发送读取故障码的指令,读取到的位置灯开路故障数据如图10所示。
故障码g11413代表位置灯开路故障,故障状态为当前驾驶循环存在故障。故障恢复后,连续2个驾驶循环无故障时清除位置灯开路Pending DTC ;连续40个驾驶循环无故障时清除位置灯开路Confirmed DTC。故障恢复后故障码的自动清除如图11所示。
5 结论
本文对车身控制器故障诊断系统进行设计,经过软件和硬件的调试,能够很好地实现精准故障诊断的要求。经过反复测试,证明了该系统运行稳定、鲁棒性强,具有广泛的市场应用前景。