【AUTOSAR】UDS协议的代码分析与解读(七)----UDS读取数据和读取内存

该文详细描述了两种ECU诊断服务,包括ReadDataByIdentifier用于按数据标识符读取数据记录,支持模拟/数字信号和系统状态等信息。ReadMemoryByAddress服务则允许根据内存地址和大小读取ECU数据。服务涉及报文格式、响应码、参数定义和执行规定,强调了数据安全和访问控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.7 读取数据 ReadDataByIdentifier (22h)

此服务允许诊断工具读取数据标识符对应的数据记录。

ECU肯定响应报文发送数据记录值。记录值的格式和定义需在零部件诊断规范中详细描述。记 录值要求包括模拟输入和输出信号, 数字输入和输出信号,ECU支持的内部数据和系统的状态等。

8.7.1 报文格式

 36 读取数据服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

RequestServiceIdentifier

M

22

#2

#3

DataIdentifier[]=[

byte#1

byte#2]

M

00-FF

00-FF

 37 读取数据服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

PositiveResponseServiceID

M

62

#2

#3

DataIdentifier[]=[

byte#1

byte#2]

M

00-FF

00-FF

#4

DataRecord[]=[

data#1

data#n]

M

00-FF

00-FF

8.7.2 支持的否定响应码

38 读取数据服务的否定响应码

Hex

Cvt

ErrorText

13

M

报文长度错

如果报文长度错误或者诊断工具一次请求的DID个数超过允许的最大值,则 发送否定响应码。

31

M

请求超出范

下情况时,发送此否定响应码:

1.没有一个请求的DID值被ECU支持;

2.当前会话下没有一个请求的DID值被ECU支持。

22

U

条件未满足

如果ECU操作条件不满足执行相应动作的要求,发送此否定响应代码。

33

U

安全访问拒绝

如果与专用地相关的数据标识符处于保护状态并且ECU锁定, 发送此否定响应 

8.7.3 参数定义

附录B中定义了h业部强制要求的数据标识符,每个ECU都必须支持。其他与ECU功能相关的 据标识符h事业部及供应商的诊断工程师共同定义并在零部件诊断规范中详细描述。

8.7.4 执行规定

通过此诊断服务一次读取的数据标识符多为1个。

8.8 读取内存 Read Memory By Address (23h)

该服务允许诊断工具根据起始地址及定义的数据大小从ECU中读取数据。

8.8.1 报文格式

 39 读取内存服务的请求报文

Byte

Name

Cvt

Value  (Hex)

#1

Request Service Identifier

M

23

#2

Address And Length Format Identifier

M

24

#3

#6

Memory Address[]=[

byte#1(MSB)

byte#m]

M

M

00-FF

#7

#8

memorySize[]=[

byte#1(MSB)

byte#2]

M

M

00-FF

 40 读取内存服务的肯定响应

Byte

Name

Cvt

Value  (Hex)

#1

PositiveResponseServiceID

M

63

#2

#3

dataRecord[]=[

data#1

data#m]

M

U

00-FF

00-FF

8.8.2 支持的否定响应码

41 读取内存服务的否定响应码

Hex

Cvt

ErrorText

13

M

报文长度错

如果报文长度错误,发送此否定响应码

31

M

请求超出范

下情况时,发送此否定响应码:

1.[$MA,($MA+$MS-$1)]内的任意内存地址无效;

2.[$MA,($MA+$MS-$1)]内的任意内存地址受限;

3.请求报文中的参数memorySize大于ECU支持的最大值;

4.指定的addressAndLengthFormatIdentifier无效。

33

M

安全访问拒绝

如果[$MA,($MA+$MS-$1)]内的任意内存地址是受保护的且ECU没有处于解锁状 态,发送否定响应码。

22

U

条件未满足

如果ECU的操作条件不满足执行相应动作的要求,发送此否定响应码。

8.8.3 参数定义

内存地址”  (MemoryAddress)长度为4字节。

参数内存大小”  (MemorySize)长度为2字节。

8.8.4 执行规定

此服务的参数无特殊要求,但ECU需为直接读取内存的执行考虑适当的安全机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值