基于K线的BCM诊断的实现
引言
随着汽车电子系统越来越复杂,诊断功能已经成为ECU软件设计的一个重要组成部分,对ECU控制系统的正常运行及其大规模应用的市场化过程非常关键。随着ECU功能的增加以及升级换代的需要,诊断标准及厂商自定义诊断功能越来越丰富,各种服务子功能也越来越细化,增加了诊断的难度,因此,深入研究诊断协议及其实现非常必要。K线和CAN总线是业内广泛采用的两种诊断标准,CAN总线在欧美车中广泛使用,而K线在国产车中应用广泛,笔者结合为某国产车型开发一款BCM(Body Control Module,车身控制模块)的经验,分析K线规范,然后从故障自诊断和在线诊断两个方面讲述一下BCM诊断功能的设计与实现。
K线协议分析
K线是ISO9141定义的用于诊断通信的串行数据总线,ISO14230在ISO9141的基础上将其总线电压扩展到24V,并完整定义了KWP2000协议,完善了诊断通信标准,扩展了诊断服务。K线通信采用SCI数据格式,数据链路层在串口通信上以软件形式实现,物理层比较简单,通过单根物理线完成半双工异步通信,选择LIN总线物理层芯片即可完成物理电平与逻辑电平的转换。
ISO14230-1定义了K线物理层协议,ISO14230-2定义了数据链路层协议,ISO14230-3定义了应用层协议及各项诊断服务,下面从报文结构、初始化过程、定时参数三个方面重点介绍其数据链路层协议。
报文结构
K线诊断报文结构如表1所示。
K线报文由报文头、数据字段及校验和组成。报文头包含格式字节Fmt、目标地址Tgt、源地址Src和附加长度信息Len;数据字段包括服务标识符Sid和数据Data,其长度由Fmt和Len决定;校验和CS为单字节校验,计算方式为对报文头和数据字段中的所有数据累加求和,忽略求和过程中产生的进位。
- 一种实用的K线诊断协议驱动器设计(02-10)
- 基于NIOS II的BCMO4蓝牙通信模块的设计(11-08)
- 基于Zigbee技术家用无线网络的构架(12-14)
- 无线通信领域中的模拟技术发展趋势(蜂窝基站)(09-22)
- 新一代移动通信系统及无线传输关键技术(06-19)
- 蜂窝移动通信基站电磁辐射对人体影响的探讨(04-10)