SAE J1708协议详解

news/2024/10/18 0:33:26/

1,协议简介

1708是SAE(Society of Automotive
Engineers:美国机动车工程师学会)专门针对重型车辆(卡车和客车)起草文件中J标准规范之一,该协议旨在推广微控制器模块之间的通信标准规范。
SAE J1708协议仅详细描述了OSI(Open System
Interconnection:开放式系统互联)七层模型中的物理层和数据链路层。所以在进行通信时,常常需要与描述应用层的SAE
J1587协议一起使用。

图1-OSI模型
在这里插入图片描述

2, 物理层

(1),诊断引脚:
H引脚 = 12
L 引脚 = 13

(2),通信波特率:9600bps

图2-OBDII接口
在这里插入图片描述

(3),物理特性:SAE J1708协议使用的收发器与RS-485(串行通信标准)相同,但J1708在总线端接电阻。

图3-收发器
在这里插入图片描述

(4)电平特性:J1708总线由两路线缆(A和B)组成,双绞线长度最大40米。总线上的电压水平由线路“A”和“B”之间的电势差确定。
逻辑高电平(1):表示A点高出B点至少200 mV; 逻辑低电平(0):表示A点至少低于B点200 mV;
收发器的供电电压应在+6V到-6V(相对于同一地线,适用于所有设备)。

图4-逻辑总线电平
在这里插入图片描述

3, 链路层

(1) SAE J1708报文请求

1.1,请求格式:PID + MID + DATA + CS
1.2,请求流程: 首先,发送数据时,会先判断总线是否忙,如果忙,则等待空闲后发送; 然后判断发送数据长度是否在有效长度内,如果是,则进行下一步,否则不发送;
最后判断发送数据是否有效(校验位是否正确),如果是,则发送数据,否则不发送; (备注:SAE J1708协议每帧最大发送21个字节)

图5-请求流程图
在这里插入图片描述

(2) SAE J1708报文应答

2.1,应答格式:MID + PID + DATA + CS
2.2,应答流程: 首先,先判断是否有ecu响应,如果有,则进行下一步,否则响应前接收不应答; 其次,进行数据校验正确判断,如果正确进行下一步,否则校验正确前不接收应答;
然后,进行ecu响应请求判断,如果有对应服务信息,则返回,否则应答空;
(备注:1,数据校验方式: 设x =(所有数据(MID+PID+DATA+CS)进行相加后的总和),
若 x & 0xFF = 0 ,则该应答正确,否则数据校验失败;
2,根据校验方式,得到校验位算法为 CS = 0x100 -(MID + PID + DATA) % 0x100))

图六-应答流程图
在这里插入图片描述

(3)交互方式

3.1 一对一

Req: AC 80 9F 80 B5 
Ans: 80 9F 02 01 02 DC

3.2 一对多

Req: AC 80 EA 80 6A 
Ans: 80 C0 11 EA 30 2D 30 34 38 39 38 31 31 32 2A 38 33 39 35 30 94 
Ans: 80 C0 11 EA 31 30 39 35 2A 30 35 31 39 30 34 32 32 31 39 35 96 
Ans: 80 C0 11 EA 32 31 2A 30 31 30 35 30 38 30 35 2A 4F 4F 2A 30 83 
Ans: 80 C0 03 EA 33 30 70
(备注:请求应答的具体内容在应用层在进行解析)

(4)否定应答

无否应应答类型,若为广播,则等待下一个广播,如过不是,则重发送数据;

4, 应用层

(1),系统进入

Req: AC 80 F3 80 61 
Ans: 80 F3 01 66 26

命令说明:
AC 80:表示非车载诊断请求
F3 :PID = f3,表示自定义服务
80 : MID = 80,表示发动机
01 :表示数据位长度,即有一个数据字节(不包含有效字节)
66 :表示数据信息,意思根据请求服务类型决定,
26 :CS = 26, 根据校验位方法,26 = 0x100 – ((0x80 + 0xFf3 + 0x01 + 0x66) % 0x100);

(2),读版本信息

Req: AC 80 ED 80 67
Ans: 80 C0 11 ED 30 2D 30 34 38 39 38 31 31 32 2A 38 33 39 35 30 94 
Ans: 80 C0 11 ED 31 30 39 35 2A 30 35 31 39 30 34 32 32 31 39 35 96 
Ans: 80 C0 11 ED 32 31 2A 30 31 30 35 30 38 30 35 2A 4F 4F 2A 30 83 
Ans: 80 C0 03 ED 33 30 70

命令说明:
AC 80:表示非车载诊断请求
ED :PID = ED表示自定义服务
80 : MID = 80,表示发动机
C0 : 多段参数(Multisection Parameter),发多帧标志;
11 :表示后面除了校验字节之外的所有字节个数;即右面有0x11个数据字节
30 :该字节分高四位和底四位,3表示总共发(3+1)段数据,0表示这是第0段
94 :表示这段数据的校验字节,根据上面的校验方法得出该结果;
(备注:SAE J1708协议每帧最大发送21个字节)

(3),读故障码

Req: AC 80 C2 80 91
Ans: 80 C2 0E 64 24 A8 21 9D 23 5B 24 66 24 6E 23 69 23 79

命令说明:
AC 80:表示非车载诊断请求
C2 :PID = C2表示发送机系统诊断码以及计数表
80 : MID = 80,表示发动机
0E :表示后面除了校验字节之外的所有字节个数;即右面有14个数据字节
79 :表示这段数据的校验字节,根据上面的校验方法得出该结果;
故障码信息:64 24 A8 21 9D 23 5B 24 66 24 6E 23 69 23
(故障码读取根据数据分两个或三个字节一个故障码两种方式混合读取,这里不做介绍)

(4),清故障码

Req: AC C3 03 80 00 80 8d
Ans: 80 C4 08 01 02 03 04 05 06 07 08 8f

AC C3:表示诊断数据请求或清理计数
03 :表示后面除了校验字节之外的所有字节个数;即右面有0x03个数据字节
80 :PID = 80表示发送机
C4 :表示诊断数据或清理计数器响应
8f :表示这段数据的校验字节,根据上面的校验方法得出该结果;
(备注:其中PID和MID数据的具体对应信息清看附表)

(5),读数据流

Req: AC FE FA 04 D4 80 8E FA 7C
Ans: FA FE AC 08 FE 8E 03 04 05 06 07 08 A7

AC FE:表示请求自定义(FE)表示转义
FA :PID = FA 表示转向柱单元
04 :表示后面除了校验字节之外的所有字节个数;即右面有0x04个数据字节
A7 :表示这段数据的校验字节,根据上面的校验方法得出该结果;
(备注:由于PID = FE,故该命令应答由设备商设定)
应答附录:
PID 0-127(以及256-383):
描述一个字节长的数据参数。PID 128-191(384-447)描述包含两个字节的数据参数。需要两字节以上的数据参数分配的PID是192-253(或448-509)。这些PID后面的第一个字节将包含数据参数字节数。
PID 194-196:
用于诊断。出于这个目的,车辆中的许多电气部件都分配有子系统标识(SID)。对于每个MID,最多可以为其定义255个不同的SID。通过这些SID,可以标识那些无法与特定PID关联的部件。SID只应分配给可现场替换的部件或可以与MID相关的部件。大部分SID由SAE或数据格式分会预定义。SID 151-155是可用于读出非部件特定诊断信息的“系统诊断代码”。诊断信息包含一个故障模式标识符(FMI)。
PID 225-227
用于仪表盘文本显示,多个ECU均可以访问它。有三个命令用于此用途:文本报文显示类型(PID 227)、要显示的文本报文(PID 226)和确认的文本报文(PID 225)。
PID 254
用于传输目的地为总线上特定节点的特殊命令、数据和信息。这个PID后面发送的数据参数可以由设备厂商确定。
PID 255用于把PID扩展到两个字节,也就是说,后面的字节也是一个PID。对于这个额外的PID,可以使用的值最大可以为511。如果第一个PID是255,那么后面的PID被理解为256的求模结果(0=256、1=257)。
5, 附表

图八-SAE J1708 MID对应表-1
在这里插入图片描述

图七-SAE J1708 MID对应表-2
在这里插入图片描述

图九-SAE J1587 PID对应表 -1
在这里插入图片描述

图九-SAE J1587 PID对应表 -2
在这里插入图片描述

图九-SAE J1587 PID对应表 -3
在这里插入图片描述


http://www.ppmy.cn/news/150167.html

相关文章

DS18B20 1602

main.c /******************************************************************************* * 此代码仅供参考,只提供学习作用,禁止在未经过作者授权下用做其他途径 如有需要请联系作者qq256379446 ************************************************…

G120

1. 进线电抗器的作用:抑制谐波电流,防止过载 出线电抗器(电机电抗器)作用:减小电机电缆的容性漏电流;减小输出侧的电压上升率 进线滤波器的作用:提高变频装置的抗射频干扰能力/等级 …

百兆局域网千兆升级方案

随着主机的升级公司已有90%以上的主机带有千兆网卡,以及网络的应用增多,对交换机之间、以及交换机到服务器之间带宽的要求越来越高,原有带宽已经成为制约网络传输的瓶颈。将主干网络提升至千兆以太网,是目前公司网络改造实现速度提…

51_DS18B20

基于51单片机的知识总结,使用protues和keil共同学习。 我使用的是protues7.8 和 keil4,需要软件的联系我。 源码及protues仿真:https://download.csdn.net/download/sinat_33734313/11857025 DS18B20温度测量 protues电路仿真 仿真元器件 …

P1308

这个代码的关键思路是&#xff0c;在字符串的最后面加上一个空格&#xff0c;使所有的单词都满足后面有一个空格的性质&#xff0c;通过后面的空格来定位一个单词的结束。 #include <stdio.h> #include <string.h> int main() {char a[11], b[1000001];gets(a);ge…

208 - Junit

Junit 单元测试 1、引入 【1】软件测试的目的 软件测试的目的是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 【2】测试分类 &#xff08;1&#xff09;黑盒测试 软件的黑盒测试意味着测试要在软件的接口处进行。…

公司百兆局域网千兆升级方案之硬件设备升级(一)

百兆局域网千兆升级方案 随着主机的升级公司已有90%以上的主机带有千兆网卡,以及网络的应用增多,对交换机之间、以及交换机到服务器之间带宽的要求越来越高,原有带宽已经成为制约网络传输的瓶颈。将主干网络提升至千兆以太网,是目前公司网络改造实现速度提升的总要保证。 分…

window用户程序数据文件夹AppData

window用户程序数据文件夹AppData 在 Windows 操作系统中&#xff0c;C 盘的用户的 AppData 文件夹包含了当前用户与计算机上的许多应用程序相关的数据。具体来说&#xff0c;AppData 文件夹包含三个子文件夹&#xff0c;分别为&#xff1a; Local(本地)&#xff1a;这个文件夹…