目录
概念
UDS(Unified Diagnostic Services)诊断协议是ISO 15765和ISO 14229标准协议定义的一种汽车通用诊断协议。使用一系列的服务(共包含6大类26种。每种服务都有自己独立的ID,即SID),通过请求和响应,对ECU进行测试,检测,诊断等功能。
数据传输
如果诊断命令的长度超过数据场长度,需要多帧传输。
帧格式
帧格式:

(1)每一帧的0号字节的高四位用于区分帧类型(0/1/2/3对应单帧/第一帧/连续帧/流控帧)
单帧
对于单帧
(1)单帧的有效字节数小于8,不足用0xAA/55/CC填充
(2)单帧的0号字节的低4位表示DLC(Data-Length-Control),表示后续的有效数据长度。
多帧

(1)首帧
0号字节的高四位固定为1,第四位加上1号字节组成DLC。
例如 10 14 ......表示该帧为首帧,后续有效字节数长度为0x014
(2)流控帧
0号字节高四位固定为3,第四位表示状态参数FS。
1号字节BS表示接收多少帧连续帧。
2号字节STmin
STmin表示发送端发送连续帧之间的最小时间间隔。其取值范围如下:
-
00 ~ 7F: 间隔时间为0ms到127ms,单位为毫秒(ms)
-
F1 ~ F9: 间隔时间为100us到900us,单位为微秒(us),最小分辨率为100us
-
80 - F0和FA - FF: 保留
FS:0 继续发送;
1 表示等待,表示发送方停发,等待下一个流控帧;
2 表示溢出,终止发送;
首帧发出后,需要等待Receiver发送流控帧后,才能接着发送后面的流控帧数据。
例如 30 08 14 ......,第1个字节30,高4位 3 表示为流控帧,低4位 0 表示流控帧的状态。流控帧第2个字节08 表示接收了8帧连续帧后,就需要等待流控帧 第3个字节表示STmin为20ms。
(3)连续帧
0号字节高四位固定为3,第四位表示连续号SN
例如 21 FF FF ......
22 FF FF ......
当接受到流控帧后,就需要开始发送连续数据,其中连续帧第1个字节21,高4位2表示是连续帧,低4位1表示连续帧的第一帧(注:其中连续帧的第1帧SN为1,后续SN达到15后,下一个连续帧的SN为0)
请求响应格式
请求格式
SID + SF ,服务+子功能
SID:Service Identifier,诊断服务ID。UDS本质上是一种定向的通信,是一种交互协议(Request/Response),即诊断方给ECU发送指定的请求数据(Request),这条数据中需要包含SID。
响应格式
肯定响应
如果是肯定的响应(Positive Response),回复[SID+0x40],如请求10,响应50;请求22,响应62。
否定响应
- 如果是否定的响应(Negative Response),回复7F+SID+NRC,回复的是一个声明。
- NRC码:1字节代码,表示具体错误类型。
&spm=1001.2101.3001.5002&articleId=150402278&d=1&t=3&u=7f8787389aa6462aa7b9f70d5ca23237)
1812

被折叠的 条评论
为什么被折叠?



