初次进入汽车行业的小白, 肯定会被诊断协议的各种名字搞得一头雾水,区别不出来到底有啥区别。下面我们就来梳理一下各种名字的区别。
|(1) 应用层 ISO-14230-1 KWP2000 |(2) 数据链路层 ISO-14230-2 |(3) 物理层 ISO-14230-3 ISO-14229和UDS 比如说给ECU发送 22 F1 86 ECU回复 62 F1 86 01 简单点说就是: ISO-14229就是UDS。 ISO-15765 和UDSonCAN 又因为ISO-15765-3使用了ISO-14229(UDS)的诊断服务,所以ISO-15765也叫UDSonCAN。 简洁一点的理解就是: 基于K 线的KWP2000协议就是ISO-14230 基于CAN的KWP2000协议就是ISO-15765 简单理解就是:ISO-15765就是基于CAN线的kwp2000 目前国内的车子使用K线的新车是没有了, 市面上存量的K线的车也不多了,十年前生产的柴油车,估计才有采用K线的ECU。
SAE J1939 SAE J1939是美国汽车工程协会(SAE)基于CAN总线而设计的一个标准协议,它的数据链路层规定了CAN总线使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps。 J1939协议,采集数据的时候比较方便,ECU一直会主动外发,从OBD口采集数据只需要监听ECU的广播报文即可。收到的报文可以过滤掉不需要的0xAABBCCDD地址,只挑选自己需要的地址数据,然后根据厂家的通讯协议,解析8个Byte里具体的数据存储到数据库即可。 而14230, 14229, 15765都是需要主动向ECU请求数据,ECU才会返回,需要知道请求每个数据的具体指令,ECU就相当于Web服务器,采集设备就相当于浏览器。具体的指令可以从厂家获取, 厂家获取不到,就需要购买一个官方的诊断仪,用CAN盒抓包进行分析了。 当然了, 汽车的数据也不是你想读取就能读取的,就好比京东淘宝你要是没有账号密码,你是无法购物的,ECU也要认证采集设备是不是合法的,有安全算法,安全算法的破解就需要购买市面上能读取数据的诊断仪去破解分析了。 J1939虽然主动外发数据, 但是外发的数据都是一些常规数据, 有很多数据是不外发的,比如油门开度之类,要让ECU主动外发,就涉及到要配置ECU的参数,需要专用软件配置了之后刷写HEX文件,风险很大, 弄错了 , 发动机启动不了,或者仪表报错。
|
|
来自: dudubao821 > 《中转文件夹》