微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > K线诊断协议驱动器设计

K线诊断协议驱动器设计

时间:03-23 来源:互联网 点击:

参数变量

描述

最小值(ms)

最大值(ms)

P1

ECU响应的字节间时间间隔

0

20

P2

诊断仪请求和ECU响应之间的时间间隔,或两个ECU响应之间的时间间隔

25

50

P3

ECU响应和诊断仪请求之间的时间间隔

55

5000

P4

诊断仪请求的字节间时间间隔

0

20

表2 定时参数

P1和P4是报文内字节间定时,P2和P3为报文间定时。诊断仪在初始化完成后或接收到诊断响应后需要在P3时间内发送诊断请求,否则ECU端退出诊断会话,断开诊断通讯,K线协议驱动器重启,等待诊断仪发出下一个WuP和STC Request。ECU在接收到诊断请求后,需要在P2时间内返回诊断响应, P2由ECU控制,通常采用25ms的固定值,当诊断请求报文中的Fmt字段指定目标地址为“功能地址”时,P2的取值需要用一个随机数发生器来产生,因为对于功能寻址的诊断仪请求来说,可能多个ECU都会返回响应,如果采用固定的P2参数的话,可能会因为多个ECU竞争总线而出现总线冲突问题,P2采用随机数,ECU不会在同一时间返回响应,从而避免了总线竞争问题。

3 协议驱动器测试

协议驱动器在Vector公司的CANoe软硬件平台上进行测试,进行基于K线的KWP2000服务测试时,将KWP2000.dll和KLineCPL.dll模块加入CANoe仿真环境,CANoe模拟诊断仪节点,并使用一个代理节点来实现CAN网络和K线之间的报文转发,此时CANoe使用计算机的串口,并通过串口/K线转换器与ECU相连,诊断实现框架如图2所示。


图2 K线诊断框架

与CAN总线诊断不同的是,K线诊断需要诊断仪通过初始化过程和ECU建立诊断通讯,诊断通讯的建立如图3所示。建立诊断通讯后便可以像CAN诊断一样进行诊断服务了,这方面论文很多,在此不再赘述。


图3 建立诊断通讯

结语

本文实现的K线协议驱动器模块经过严格测试, 能够高效完成K线诊断,性能和稳定性达到预期设计要求。驱动器独立于处理器和操作系统,具有良好的通用性和灵活性,可以方便得集成到应用程序中,具有很高的实用价值和借鉴意义。

来源:网络

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top