UDS协议数据传输单元

此功能单元用于服务器和客户端之间的数据传输,主要提供以下服务:

Read data By Identifier 0x22
Read Memory By Address 0x23
Read Scaling Data By Identifier 0x24
Read Data By Periodic Identifier 0x2A
Dynamically Define Data Identifier 0x2C
Write Data By Identifier 0x2E
Write Data By Memory Address 0x2D

下面借助“请求和响应”示例说明一些重要服务。

Read Data By Identifier

Read Data By Identifier,即通过ID来读取数据。
读取方 -- 诊断工具(客户端)
被读取方 -- ECU存储器 (服务器)
读取方式 -- DID(Data Identifier)
即客户端通过此服务ID使用数据标识符(DID)从服务器读取的数据记录。

单个DID数据记录的请求格式:
假设:DID = 0xAA55
0x22req
单个DID数据记录的响应格式:
0x22resp
多个DID数据记录的请求格式:
假设:
DID1 = 0xAA55
DID2 = 0xF001
0x22reqmultiDID
多个DID数据记录的响应格式:
0x22respmultiDID
注意:数据记录D1字节为MSB。

Read Memory By Address

Read Memory By Address,即按地址读取存储器数据。
读取方 -- 诊断工具(客户端)
被读取方 -- ECU存储器 (服务器)
读取方式 -- 服务器的存储地址
输入 -- 存储地址,要读取的字节数
输出 -- 数据字节大小(内存地址+字节数)
请求格式(16位服务器平台):
0x23req-2
回应格式:
0x23resp-1

Write Data By Identifier

Write Data By Identifier,即通过ID写入数据。
1.客户端使用此服务将数据写入服务器的内存中。
2.客户端必须将数据记录和数据标识符一起发送到服务器。
3.如果DID被服务器成功验证,则数据记录将以该DID写入服务器。否则,服务器将响应相应的NRC。
4.用于向服务器发送请求的请求格式为:
ox2E
如果成功,则响应将是:
2Eresp
发生错误时,响应帧格式为:
2ENRC

关于NRC,请参考ISO14229-1。

下一节