基于ISO 15765的发动机防盗诊断服务开发

2019-01-05 01:02:20崔书超冯少婵王鲁蛟王东生
车辆与动力技术 2018年4期
关键词:防盗字节控制器

崔书超, 冯少婵, 王鲁蛟, 王东生

(北京汽车研究总院,北京 101300)

随着技术的进步,汽车防护等级越来越高,2010年国家新出法规规定,民用车辆必须具备发动机防盗功能才能上市,发动机电子防盗系统是指发动机必须在经过认证的情况下,才能正常启动发动机,否则发动机将不能启动.发动机防盗系统包括防盗线圈、防盗芯片、以及发动机防盗控制器.防盗系统的线圈通过磁场与钥匙中的防盗芯片进行加密认证,第一步认证通过后,发动机防盗控制器与发动机控制单元通过网络总线进行认证,二者认证通过后,整个发动机防盗系统认证完成,发动机允许启动.

目前,ISO 14229 是许多汽车厂商采用的诊断通信应用层标准,是通过一种专用的诊断通信系统来形成一套较为独立的诊断网络,ISO 15765中规定了具体的传输方式.然而,发动机防盗系统牵涉到整车安全,如果相关诊断服务和其他控制器通用,就有被破解的风险,这样就能通过诊断服务读取IMMO控制器中的PIN码和SK(Secret Key)码,从而模拟发动机防盗控制系统启动车辆,这大大增加了车辆不确定的安全隐患.

1 ISO 15765协议解析

ISO 15765协议是采用基于CAN总线的车载诊断标准,它是被ISO和SAE制订的符合OBD的故障诊断通信协议[1],并且在欧洲早已被广泛采用.ISO 15765基于开放互连7层系统,其中:数据链路层协议遵循ISO 11898-1;网络层遵循ISO 15765-2,为应用层提供服务,数据分割方法,流控制传输机制,以及数组重组的方法,它允许传输最大字节可达4 095字节;应用层的诊断服务参考ISO 14229-1与ISO 15031-5,并加入了CAN总线诊断功能组,兼容了一些汽车厂商规范中定义的诊断服务,具有测试、检查、监控、诊断管理等功能.网络层中规定了4种数据服务结构:单帧(SF N_PDU)、首帧(FF N_PDU)、连续帧(CF N_PDU)和流控制,它为应用层提供数据接口,分别用于诊断设备(Tester)的服务请求、ECU的服务指示、ECU的服务响应和Tester的服务确认,这些数据结构中包含了地址信息、服务请求ID和服务请求参数等内容.这4种数据单元在同一个网络层中通信,交换数据参数,传递用户数据等内容[2].

发动机防盗诊断服务通过数据协议单元(N_PDU)与发动机控制器之间通过单帧或多帧的方式传递数据.协议控制信息包括:N_PCI类型、流控制状态、块大小、最小操作时间,控制信息如表1所示.

表1 协议控制信息

当需要传递的信息比较少时,采用一帧就可把所有数据信息都传递完毕时,用单帧方式进行传输,由上表分析可知单帧中的帧长度参数由SF_DL决定,它规定了单帧的数据域字节最大为7个字节.当需要传递的信息比较多时,采用一帧数据不能所有数据信息都传递完毕时用多帧帧方式进行传输.多帧包括首帧,连续帧,以及流控制帧,首帧中包括有多帧的总长度大小FF_DL,连续帧中的SN是连续帧标号,流控制帧是多帧的控制帧,它的设置是为了解决通信双方的同步问题,其中规定了流控制的状态FS:0继续发送、1等待、2超过规定数目,BS为块大小,也就是发送连续帧每包的数目大小.这几个参数都是故障诊断协议标准ISO 15765中重要的参数,在多帧传输方式中,他们共同决定多帧流控制帧的工作方式,如图1为多帧流控制具体工作机制.

如上图所示,流控制机制允许节点发动机防盗IMMO控制器通知发送节点tester,接收节点的接受能力,那么发送节点将自动选择以单帧或者多帧的方式传递数据,这样将大大提高了通信效率问题,而且数据同步也不会出错.

图1 多帧流控制工作机制

2 诊断服务和故障代码DTC定义

在对IMMO控制器下线匹配或者在诊断过程中,诊断设备通向IMMO控制器进行服务请求,当网络中IMMO控制器接收信息后返回服务响应,与诊断设备建立通信连接.诊断设备每个单元在应用层数据域的第一个字节中都有它的服务ID(SI),不同的响应信息通过服务ID(SI)返回.为了保障通讯服务不被破解,参照ISO 14229 诊断服务ID,编制IMMO和EMS诊断服务ID(只展示部分重要服务),如表2所示.

表2 诊断服务实现

在ISO 15765协议中诊断信息中包含DTC高字节,DTC低字节,DTC计数字节和DTC状态,里面没有全面的DTC定义,但是协议允许汽车制造厂商使用自己的定义.故障诊断代码DTC总长度为4字节(32bit),它包括:可疑参数组SPN(19bit)、故障类型代码FMI(5bit)、故障发生频率OC(7bit)、SPN转算方法CM(1bit).一般而言,所定义的故障代码要涵盖主要和重要的故障,已达到及时定位故障的目的,参照ISO 15765中DTC格式[3],如表3所示.

表3 DTC格式

基于以上分析,另外,在ISO 15765协议中,U代表CAN通讯系统[4],如表4为本系统制定的部分故障代码.

表4 定义的故障代码

3 下线匹配软件开发

文中采用CANoe进行下线匹配软件开发,CANoe是德国Vector公司开发的专门用于仿真和测试CAN通讯的软件,主机厂大部分采用CANoe进行汽车电子系统开发[5].在使用时会用到CANoe的CAPL编程,这是一种类C语言的编程语言,属于一种面向对象的语言,里面配套有丰富的内置函数和API接口,利用CAPL编程,具体匹配界面如下,通过CANoe软件设置好波特率、采样点等信息,如图2为程序运行流程图,部分原始程序如图3.软件最终界面如图4.

图2 程序运行流程图

图3 软件原始程序

图4 诊断服务实现界面

4 试验验证

为了验证系统的可靠性通信与稳定性,我们搭了试验台架验证诊断服务系统的稳定性,当我们在诊断软件和写入诊断服务的IMMO控制器相连接的时候,我们进行一下试验验证,利用所定义的服务写入PIN码和ESK来验证所定义的服务是否符合要求,写入ESK码为16个byte11,PIN码为byte1234,下表(表4)为所记录的数据.

表4 试验数据

通过上表数据分析,设备利用所定义的诊断服务正确发送了请求,IMMO控制器能够肯定响应进行回复,表明诊断系统开发可靠有效.

5 结 论

文中研究的发动机防盗诊断技术,通过试验验证是安全可靠的,它是基于ISO 15675协议来制定的.基于安全需求,在参考ISO 15765的基础上,能够对控制器进行数据读写操作,同时在遇到故障时,可以很方便定位故障和解决故障.通过验证分析,该系统对车辆故障的排除指明了方向,并在实际的运用中表明,该方法具有实际意义.

猜你喜欢
防盗字节控制器
No.8 字节跳动将推出独立出口电商APP
No.10 “字节跳动手机”要来了?
古代陵墓中的防盗机关
军事文摘(2018年24期)2018-12-26 00:58:10
防火防盗报警器设计
电子制作(2018年2期)2018-04-18 07:13:27
2017年凯迪拉克XT5电路图
简谈MC7字节码
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
自动化博览(2014年9期)2014-02-28 22:33:17
倍福 CX8091嵌入式控制器
自动化博览(2014年4期)2014-02-28 22:31:15
4V三输出同步降压型控制器