新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 一种实用的K线诊断协议驱动器设计

一种实用的K线诊断协议驱动器设计

作者:马建辉,于良杰,王知学,李研强时间:2012-02-10来源:电子产品世界

  引言

本文引用地址:http://www.eepw.com.cn/article/128839.htm

  随着汽车电子控制单元功能的增加及升级换代的需要,诊断功能已经成为电子控制单元(ECU)不可或缺的重要组成部分,因此,深入研究诊断协议及其实现非常必要。基于的ISO14230和基于控制器局域网络()总线的ISO15765是业内广泛采用的两种诊断标准,是ISO9141定义的诊断通信总线,ISO14230在ISO9141的基础上将电压扩展到24 V,并扩展了诊断服务。相比较于总线,K线诊断既能满足要求,又能节约成本,在国产车上得到大规模应用。不同于总线有专门的协议驱动器,用户直接进行应用程序的编写而不用管理底层的通信,K线没有专门的协议驱动器,一般要在(SCI)模块的基础上用软件实现其底层通信管理,笔者为某国产车设计了一款带K线诊断功能的车身控制模块,结合ISO14230规范,首先分析K线诊断协议驱动器的功能,然后介绍协议驱动器的关键设计技术,最后用CANoe进行测试。

  协议驱动器功能

  ISO14230-1定义了K线物理层协议,ISO14230-2定义了数据链路层协议,ISO14230-3定义了应用层协议,其与开放式通信系统互联参考模型(OSI模型) 对应关系如表1所示。

  物理层定义了逻辑位与物理电平的对应关系,同时定义了信号位的上升时间和下降时间,数据链路层协议定义了K线数据格式、诊断报文格式、定时参数及通信错误判定及处理机制,应用层协议定义了基于请求/响应的诊断过程及各项诊断服务。做为待诊断ECU节点,K线协议驱动器实现的主要功能包括:

  1、诊断报文的封装和发送、接收和解析,根据报文格式填充/提取SID和数据;

  2、通过初始化过程建立与诊断仪之间的诊断通信;

  3、保持正确的帧间定时、字节间定时,检测诊断仪报文的定时错误及其它通信错误;

  4、根据诊断仪的诊断请求和ECU当前状态返回相应的诊断响应,管理诊断会话。



评论

技术专区

关闭