引言:
随着汽车电子系统越来越复杂,诊断功能已经成为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为单字节校验,计算方式为对报文头和数据字段中的所有数据累加求和,忽略求和过程中产生的进位。
1.2 初始化过程
诊断仪在对ECU进行任何诊断服务之前,首先需要建立和ECU之间的诊断通讯,这是通过“初始化过程”实现的。ISO14230定义了两种初始化方式-5 Baud初始化和快速初始化,5 Baud初始化是为了向后兼容ISO9141的需要,现在广泛实现的是快速初始化方式。该过程如图1所示,诊断仪发送一个WuP(WakeUp Pattern),然后发送StartCommunicationRequest,ECU检测出WuP,然后发送StartCommunicationResponse,返回ECU支持的报文头格式、定时参数等信息。
图1 快速初始化过程
1.3 定时参数
在诊断过程中,需要遵守一些定时参数的约束,以保证正常的诊断通讯,ISO14230定义了4个定时参数管理字节间定时和报文间定时,图2为定时参数的示意图,表2解释了这4个定时参数的含义及取值区间。
图2 定时参数示意图
参数变量 |
描述 |
最小值(ms) |
最大值(ms) |
P1 |
ECU响应的字节间时间间隔 |
0 |
20 |
P2 |
诊断仪请求结束和ECU响应开始的时间间隔,或ECU响应结束和下一个ECU响应开始之间的时间间隔 |
25 |
50 |
P3 |
ECU响应结束和诊断仪新的请求开始之间的时间间隔 |
55 |
5000 |
P4 |
诊断仪请求的字节间时间间隔 |
5 |
20 |
表2 定时参数
2诊断
诊断是指汽车电子控制系统在运行过程中不断监测各个组成部分的工作情况,进行故障定位并存储,然后通过支持诊断协议的诊断工具进行在线读取,得到故障信息,它包括自诊断和在线诊断两个部分。
2.1 自诊断
自诊断是指以系统实时监测为基础,据监测现象反映的电控系统运行状态,通过进一步的数据分析,判断故障位置、类型及原因,同时针对系统异常做出相应调整的过程。
BCM的主要功能是控制门锁、车窗、车灯、雨刷这些负载【4】,相应地,BCM的主要故障是负载开路及短路。开路故障不会造成很严重的后果,可以利用负载驱动芯片的电流镜像功能实现。设置一定的采样周期,通过取样电阻对负载工作电流进行周期性采样,如果工作电流小于某个阈值并持续一段时间,则认为出现开路故障。
短路发生时的负载工作电流非常大,故障持续会造成相当严重的后果,在实验过程中发现车灯短路故障超过十毫秒量级就会把电量相对不足的供电电源拉低到地,这就会造成所有从汽车蓄电池上取电的ECU复位,因此短路故障需要及时得检测出来并关断相关负载的驱
动电路。
由于负载刚启动时有很大的浪涌电流,需要和负载短路做出区分以免误判。浪涌电流持续时间一般为毫秒量级,设置负载工作电流的采样周期为10毫秒,两次采样工作电流均超过阈值则认为短路故障发生。在实际应用中,10ms的采样周期会影响系统运行效率,增大电流消耗,而采样周期设置过长则可能会造成没有及时检测出短路故障的严重后果,为了提高系统效率和短路故障检测的实时性,可以通过监测负载驱动电压的方式实现短路故障检测。
高端开关MOSFET驱动的负载对地短路时,负载驱动电压为0 v,低端开关MOSFET驱动的负载对电源短路时,负载驱动电压为电源电压。对负载驱动电压进行分压处理,以可触发中断的处理器IO脚进行检测,短路故障发生可以触发IO脚中断,这样可以提高短路故障检测的实时性,且不会出现误判负载启动为负载短路的情况。
2.2 在线诊断
在线诊断是指诊断仪根据国际通用或企业自定义的诊断协议,发送诊断服务请求,ECU根据服务请求返回响应的过程。需要指出的是,随着汽车系统的愈加复杂和ECU功能的增加,在线诊断已不再局限于早期的读取故障码,还包括软件升级、版本配置等功能。目前国际通用的诊断协议包括基于CAN总线的ISO15765和基于K线的ISO14230【5】。
基于K线的诊断网络采用总线式网络架构,多个ECU节点通过单根K线和诊断仪连接在一起,每个ECU有特定的物理地址和逻辑地址,诊断仪通过物理地址或逻辑地址对ECU进行寻址,拓扑如图3所示:
图3 诊断网络拓扑
在线诊断过程如下:首先诊断仪通过初始化过程建立和特定地址ECU之间的“诊断通讯”,自动进入默认模式的“诊断会话”,也可以通过SDS服务(StartDiagnosticSession Service)建立一个特定模式的“诊断会话”,该模式决定了在此诊断会话中可以进行哪些诊断服务,诊断结束后通过StopCommunication Service断开“诊断通讯”。诊断服务由表1中所述K线报文结构中的服务标识符Sid标识,ISO14230-3定义了各种诊断服务的Sid及Data,如清除诊断信息服务请求(ClearDiagnosticInformation Service request)的Sid为0x14,Data为两个字节标识的故障代码组(groupOfDTC),0xFFFF表示所有故障代码,0x0000-0xFFFE为整车厂自定义的故障代码组合,该服务请求、肯定响应及否应响应的定义如表3、表4及表5所示。其他诊断服务在此不再赘述。
清除诊断信息请求 | ||
参数 |
说明 |
编码 |
CLRDTC |
清空诊断信息,这个服务允许擦去由一个 ECU所记录的诊断信息。 |
0x14 |
groupOfDTC |
DTC组 |
0x0000-0xFFFE=厂商自定义故障组
0xFFFF=整个故障组 |
表3 清除诊断信息请求
清除诊断信息肯定响应 | ||
参数 |
说明 |
编码 |
CLRDTCPR |
清空诊断信息肯定响应 |
0x54=0x14+0x40 |
groupOfDTC |
DTC组 |
0x0000-0xFFFE=厂商自定义故障组
0xFFFF=整个故障组 |
表4 清除诊断信息肯定响应
清除诊断信息否定响应 | ||
参数 |
说明 |
编码 |
CLRDTCNR |
清空诊断信息否定响应 |
0x7f |
CLRDTC |
清空诊断信息请求Sid |
0x14 |
RC |
Response Code |
0x12=不支持的子功能
0x22=条件不正确
0x78=回应挂起 |
表5 清除诊断信息否定响应
结语
随着汽车电子的发展,诊断功能在ECU的开发设计中已经成为必不可少的一部分,基于K线的ISO14230是在国产车中得到广泛应用的一套非常完善的车载诊断协议标准。本文结合车身控制模块BCM的诊断功能设计,分析了K线诊断协议的数据链路层和应用层规范,介绍了基于K线的BCM诊断的实现,具有很好的借鉴意义。
上一篇:一种基于车载MP3播放机的倒车雷达设计
下一篇:压力传感器应用分类及其原理解析
推荐阅读最新更新时间:2024-05-02 22:00
电子控制燃油喷射系统常见故障的检修
电子控制汽油喷射装置,是在电子控制单元(电子计算机或微电脑)的自动控制下,通过电控喷油嘴将发动机所需要的燃油成雾状地喷射到汽油机的进气支管内或气缸内,然后与空气混合形成可燃混合气。
这与传统的化油器燃油供给系统相比,由于原理上全然不同,因而结构上也大相径庭。所以在分析故障与进行维修时,与常规方法有很大不同。
1.电子控制燃油喷射系统的常见故障
(1)计算机电子控制单元工作虽较为可靠,一般不易出现问题,但对于老车(行驶里程达16万公里以上)却难免会产生故障。例如某集成块损坏,电喷单元固定脚螺栓松动,某电子元件焊脚接头松脱,以及电容元件失效等,都可能造成发动机难启动或不能启动,无高速,热车反而难以启动等现象。出现这些问题,
[嵌入式]
汽车电子技术的应用与发展趋势
随着汽车工业与电子工业的不断发展,在现代汽车上,电子技术的应用越来越广泛。今天的汽车已经逐步进入了电脑控制的时代。国外专家预测未来3-5年内汽车上装用的电子装置成本将占汽车整车成本的25%以上,汽车将由单纯的机械产品向高级的机电一体化产品方向发展,成为所谓的“电子汽车”。 随着汽车工业与电子工业的不断发展,在现代汽车上,电子技术的应用越来越广泛。今天的汽车已经逐步进入了电脑控制的时代。国外专家预测未来3-5年内汽车上装用的电子装置成本将占汽车整车成本的25%以上,汽车将由单纯的机械产品向高级的机电一体化产品方向发展,成为所谓的“电子汽车”。 一、现代汽车电子技术应用状况 在发动机上的应用: 1.电子控制喷油装置 在现代汽车
[嵌入式]
应对汽车电子控制装置开发的汽车电子测试解决
随着汽车向舒适、安全、信息和环保方向的发展,汽车引擎开发成为了汽车行业发展的主流。本文介绍应对汽车电子控制装置(ECU)开发的最新汽车电子测试解决方案。
CAN是通过发动机和变速器等多数电子控制装置(ECU)相互传送信息以达到综合控制车辆的车载网络。横河电机生产的数字示波器有CAN分析功能,能够对读入深储存器的CAN波形数据进行时序分析,把ID、Data的分析结果及ACK的有无和波形数据一起显示出来,能够对ID指定、数据指定、错误指定、帧开始作为组合触发条件收集数据,能够高速检索部帧数据,包括指定的ID、Data、CRC、ACK的帧和错误帧,以及把帧数据里混入的Bit Stuff(位填充功能)检索出来,进行波形显示。
使用
[嵌入式]
防振电容器如何改变电子控制器单元的可靠性
可持续性发展趋势推动了 电动汽车 (EV)和相关技术的指数性增长。混合动力汽车(HEV)也继续保持强劲增长,据摩根大通 JP Morgan Chase 报告估计,到 2025 年,所有汽车销量的 30%将是电动汽车或混合动力汽车(图 1)。 图 1: 摩根大通(JP Morgan)预测,到 2025 年,所有汽车销量的 30%将是电动汽车和混合动力汽车(来源: JP Morgan) 推动这一增长的不仅是电动汽车与内燃机的比例。诸如信息娱乐和高级驾驶员辅助系统( ADAS )之类的功能也在不断的增加。一辆普通的豪华轿车现在最多可以安装 150 个电子控制单元。所有这些因素,导致对电力电子和软件解决方案需求的不断增加。
[汽车电子]