首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于K线的BCM诊断的实现

基于K线的BCM诊断的实现

引言:
随着汽车电子系统越来越复杂,诊断功能已经成为ECU软件设计的一个重要组成部分,对ECU控制系统的正常运行及其大规模应用的市场化过程非常关键。随着ECU功能的增加以及升级换代的需要,诊断标准及厂商自定义诊断功能越来越丰富,各种服务子功能也越来越细化,增加了诊断的难度,因此,深入研究诊断协议及其实现非常必要。K线和CAN总线是业内广泛采用的两种诊断标准【1】,CAN总线在欧美车中广泛使用,而K线在国产车中应用广泛,笔者结合为某国产车型开发一款BCM(Body Control Module,车身控制模块)的经验,分析K线规范,然后从故障自诊断和在线诊断两个方面讲述一下BCM诊功能的设计与实现。
1 K线协议分析
K线是ISO9141定义的用于诊断通信的串行数据总线,ISO14230在ISO9141的基础上将其总线电压扩展到24V,并完整定义了KWP2000协议,完善了诊断通信标准,扩展了诊断服务【2】。K线通信采用SCI数据格式,数据链路层在串口通信上以软件形式实现,物理层比较简单,通过单根物理线完成半双工异步通信,选择LIN总线物理层芯片即可完成物理电平与逻辑电平的转换。
ISO14230-1定义了K线物理层协议,ISO14230-2定义了数据链路层协议,ISO14230-3定义了应用层协议及各项诊断服务,下面从报文结构、初始化过程、定时参数三个方面重点介绍下其数据链路层协议。
1.1 报文结构
K线诊断报文结构如表1所示:
报文头
数据字段
校验和
Fmt
Tgt
Src
Len
Sid
Data
CS
最大4个字节
最大63字节或255字节
1个字节

表1  K线诊断报文结构

K线报文由报文头、数据字段及校验和组成。报文头包含格式字节Fmt、目标地址Tgt、源地址Src和附加长度信息Len;数据字段包括服务标识符Sid和数据Data,其长度由Fmt和Len决定;校验和CS为单字节校验,计算方式为对报文头和数据字段中的所有数据累加求和,忽略求和过程中产生的进位。
返回列表