汽车诊断 K 线的特点
根据 SAE 规定的 OBD 标准,车辆行业使用 K、L 线进行诊断和标定。通过 K 线对某个控制单元进行查询,通过 K 线、测试仪和控制单元可进行数据交换。换句话说,即通过K 线数据被双向传送(从测试仪到控制单元以及从控制单元到测试仪)。最近生产的车上都装有K 线。而 L 线则是用来对控制单元进行查询的导线,此线在目前生产的车辆中已经不存在。由于串口的普及,所以 K 线实现起来更容易。而逻辑电平的改变,只是需要转换电路。因此本系统采用 K 线的通讯方式。由于 K 线只是一根线,而 PC 机与控制单元都要向对方发出信息,所以可以判定此线是半双工串行通讯。
K 线通讯主要有以下特点:
1) 双方采用半双工异步串行通讯。
(2) 工作电压范围为 8~18V。
(3) 使用环境温度为-40°C~125°C。
(4) 最大速度是50kbps。
(5) 支持大电流。
(6) 与单片机CMOS 电平无缝连接。
(7) 具有对地线保护作用。
(8) 串行通讯码的每个单元包括 10 位二进制数据,分别为起始位、8 位数据、停止位,每个单元发送完毕后设有空闲等待。
(9) 双方的通讯以“行”为单位轮流发送,即PC 机发送一行消息后,ECU 再发送一行消息,反之亦然。
(10) 一信息行由下列数据组成:第一位数据表示本行还要发送多少数据;第二个数据用来表示关键码,表示此次用来完成什么样的操作,如开始参数、写数据到EEPROM 中等;第三个数据表示要发送的数据。
(11) 在一信息行中,还包括用于校验的反码,一方每发出一个数据后,对方必须对回应此数据的反码进行校验;由于 K 线是单线通讯,所以只有在正确处理回应数据的反码进行校验时,才能保证通讯的顺利进行。
(12) 至于 PC 机在每一个功能块中如何发出命令,ECU 是如何给出相应信息的,在软件结构中会做说明。
2、K 线通讯定义
在车辆网络中,为准确、可靠地通讯,必须确定一个固定的通讯波特率。假设诊断设备及其连接导线的电容为CTE,K 线对地电容为COBW,车辆 ECU 的电容为CECU,定义为:
设计时以上各电容必 须满足以下关系:
12V 电源供电:CECU+COBW≤7.2nF;CTE≤2nF;
24V 电源供电:CECU+COBW≤5nF;CTE≤2nF。
假定 K 线通讯波特率最大为 10.4kbps,若通讯波特率高于最大波特率,则必须减小允许电容;反之,必须增加允许电容。同时,在车辆诊断网络设计时,必须保证任何 ECU 信息不能引起其它 ECU 进行数据通讯,在诊断仪初始化时,只能有一个 ECU 响应,或若干个 ECU 按一定顺序响应。
3、K 线电路连接方式
K 线通讯本质上为半双工串口通讯。为保证准确、可靠的数据通讯, ECU 和 K 线都必须有正确的电平。在 K 线系统中,发送时若电压低于工作电压的 20%, 则认为逻辑“0”,高于工作电压的80%,则定义为逻辑“1”;接收时低于工作电压的 30%为逻辑“0”,高于工作电压的 70%为逻辑“1”,电压在工作电压的 30%~70%之间状态不确定。由以上分析可知,其电平与常用的串口电平不一致,因此必须设计专门的 K 线接口电路,以满足车辆 K 线诊断要求。图2 为利用L9637D 完成的K 线接口转换电路。
K 线可双向传递数据,系统初始化后先传递 ECU 地址,连接成功后用于信息交换,典型接口转换芯片有ST公司的L9637D 和Motorola公司的33290等。L9637D是一个与ISO9141标准功能兼容的集成芯片,是专门为车辆诊断而开发的双向、半双工通讯接口芯片。同时K线也可进行电控标定系统的开发,因此,本研究工程应用前景非常广泛。
4、K 线通讯协议及应用
ISO9141 主要为车辆与诊断设备之间的通讯国际标准, ISO9141 已被美国加州大气委员会(California Air Resource Board)所采纳,其ISO14230 为专门指定的用于道路车辆诊断的协议。根据ISO14230 的规定, K 线通讯消息基本格式如表 2 所示。
表2 中各参数含义如下:
Fmt:帧字节; Tgt:目标地址; Src:源地址; Len:附加长度字节; Sld :功能识别字节; data:数据字节; CS:校验和。
其校验和满足以下公式:
i={(i-1)+}mod256 (1)
式(1)中:1=<1>。
K 线协议采用消息结构进行信息传递,可分为请求消息、指示消息和响应消息,其中,响应消息可分为正响应和负响应,所有这些消息都具有相同的结构。
Webasto 汽车天窗马达 ECU 与 PC 机的通讯方式是 K 线通讯协议的一种应用,其代码基本格式如下:长度位、命令标志位、数据位(n=0…16)和校验位,如表3 所示。
所以最小的通讯长度为 3,即:传输的信息包括 LEN、ID、CHKSUM(传输的数据位数n=0)。
为了保证 PC 机与 ECU 之间的通讯正常,使用校验码来确保发送代码的安全性,它是通过所有代码的位与CHECKSUM_base=0xAA 异或来求得。计算方法如下:
发送端的校验码:
CHKSUM_s=CHECKSUM_base xor LEN xor ID xor DATA_1 xor... xor DATA_n
接收端的校验码:
CHKSUM_r=LEN xor ID xor DATA_1 xor... xor DATA_n xor CHKSUM_s xor CHECKSUM_base
CHKSUM_r 的结果为 0,说明通讯顺利完成。
为了确保通讯正常,在串行通讯过程中,规定两个接收字节之间的时间不得超过 50ms,若超过,则认为此次操作失败。
5、程序设计
此汽车天窗马达ECU 通讯系统软件的程序流程如图4 所示。汽车天窗马达ECU 通讯系统的软件运行如图5 所示。
此汽车天窗马达ECU通讯系统中所使用的参数主要有两种类型:*.s参数类型和*.par参数类型的文件。其主要的区别是:*.s参数文件所采用的代码格式是S-record,它是 Motorola 公司提供的一种标准文件格式,通过 S-records代码,将可执行代码从主PC机发送到另外一个目标系统。在发送的过程中,S-records在其代码头上包含目标地址信息和校验信息来检验误差;而*.par参数文件是 Webasto公司专用的代码格式,它的代码主要是包含在 ECU中的具体参数和此参数的具体数值。此马达天窗ECU通讯系统的软件部分就是在对这两种参数类型熟悉的基础上进行的。
5.1 S-record格式说明
每个S-record由如下六部分组成:
(1) SOR:代码的开始部分(ASCII ‘S’);
(2) Type:S-record Type,有几种类型:
S0:代码起始段(可选),表示在其后还有其他的代码。S0后面的地址代码不被使用,经常是(0x0000),有的还包括额外的信息,如表1所示。
S0代码不被加载,可以被忽略,通常为S0030000 FC;
S1:16位地址的数据代码;
S2:24位地址的数据代码;
S3:32位地址的数据代码;
S4:不同的目标系统不同的含义;
S5:不同的目标系统不同的含义;
S6:不同的目标系统不同的含义;
S7:S3代码结束段;
S8:S2代码结束段;
S9:S1代码结束段;
如果S9代码后的地址代码为 0x0000,则表示数据段的结束;如果其后代码不为 0,则地址代码表示其开始执行代码的位置,通常为S9030000FC(注:S0,S9代码是被忽略的);
(3) Length:两位十六进制数,表示 Load Address、Code/Data、Checksum的字节数;
(4) Load Address: 4、6、8个ASCII字符,表示Code/Data要加载的目标地址。如 s1,用
4位十六进制数来表示要加载的地址;
(5) Code/Data:0~64个ASCII字符,表示加载到目标系统的实际代码;
(6) Checksum:检测在传送中是否有错误发生,它的求法如下:
(1+sump+checksum)mod256=0
注:sump 是length、Load Address、Code/Data中从左至右每两位十六进制数代表的十进制数值进行累加所得到的值。
5.2 *.par 参数说明
.par文件包含了ECU具体的参数名称和值,需要与参数说明文件 excel共同使用进行 ECU的读写。以图3为例解释excel中的信息和*.par文件代码的意义。
代码如下:
[NORMAL]
ucCarType=2
aucPartNumber[0]=17
其中包含的参数所代表的含义和参数具体值的信息如下:
(1) Location表示此par参数在excel中的位置,此例表示在 NORMAL段;
(2) Addr.表示代码在 EEPROM中的存储地址信息;
(3) Parameter name表示代码参数的名称;
(4) Parameter description 表示代码参数的含义;
(5) Specific description 对此代码进行特定的描述;
(6) Allowed value表示此代码取值的范围;
(7) Excel value表示此代码实际的数值,此例分别为 2、17;
(8) S Value以ASCII 码形式表示代码,此例分别为02、11;
(9) Drive Value表示通讯过程中实际发送和接收的数值;
(10) Parameter表示参数类型;
(11) C source表示此代码在 ECU中,用哪段代码来表示;
(12) Type key表示此代码的数据类型。
注: 0 代表无符号字符
1 代表有符号字符 2 代表无符号的短整型 3 代表有符号的短整型 4 代表8 bit 数组
5 代表16 bit 数组
6、汽车K 总线与CAN 的区别
在大众车系里,K 线一般用于检测系统,属单线模式,与诊断仪器连接并相互传递数据。 CAN 线主要用于控制单元与控制单元之间传递数据、属双线模式,分高位线和地位线,优点是传输速率高,抗干扰能力强。在开迪车、宝来车、新款奥迪 A6,A4 及 A8 上都使用了CAN 线。
一般分舒适CAN 线、驱动CAN 线、诊断CAN 和仪表CAN 舒适CAN 线的传输速
率是100K 波特,主要用于舒适系统,如电动座椅控制单元、空调控制单元和舒适电脑等。
驱动CAN 线的传输速率是 500K 波特,主要用于发动机系统、ABS 系统和气囊系统等。 诊断CAN 线主要用于车身电脑与诊断仪器连接,在新车型上已经用它替代了 K 线,传输速率与驱动CAN 线相同。
仪表CAN 线用于仪表和网关连接,属单线模式。
最新资讯
-
荷兰Zepp氢燃料电池卡车-Europa
2024-12-22 10:13
-
NCACFE -车队油耗经济性报告(2024版)
2024-12-22 10:11
-
R54法规对商用车轮胎的要求(上)
2024-12-22 10:10
-
蔚来ET9数字架构解析
2024-12-22 09:53
-
4G/5G网络新时代的高效紧急呼叫系统NG-eCal
2024-12-20 22:33