首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UDS SID2E和SID22

UDS SID2E和SID22
EN

Stack Overflow用户
提问于 2018-08-24 14:30:54
回答 1查看 1.7K关注 0票数 1

在SID2E和SID22中,是否存在整个帧的长度超过7个字节的情况?

如果是,那么它将如何发送或写入数据字节?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-14 13:14:14

是的,这是 UDS 中的一个常见用例,即对 SID 0x22 (ReadDataByIdentifier) 的响应或对 SID 0x2E (WriteDataByIdentifier) 的请求长度超过 7 个字节。 为此,使用传输层(ISO-TP、ISO 15765-2)发送由多个 CAN 帧组成的消息。

考虑一个普通的单帧消息,其中第一个字节的高半字节是 0x0,即

代码语言:javascript
运行
复制
0x7E0   0x03 0x22 0xF1 0x90
0x7E8   0x04 0x62 0xF1 0x90 0x01

这里有效载荷在 7 个字节以内(在请求和响应中),所以第一个字节的低半字节告诉我们确切的长度(请求中的 0x03,响应中的 0x04)。由于完整的消息适合单个 CAN 帧,因此不需要其他任何内容。但是要发送更长的诊断消息,需要将其拆分为多个 CAN 帧(分段)。为此,需要 3 种不同类型的消息:

第一帧被发送到接收器以开始传输。这包含完整有效载荷数据的长度(最多 4095 个字节)和消息的前 6 个字节。第一个字节的高半字节 0x1 表示该消息是第一帧。

确认接收到第一帧的流控制帧被回复给第一帧的发送者。它包含其他信息,如预期的 STmin 时间和块大小。第一个字节的高半字节 0x3 表示该消息是一个流控制帧。

一个或多个连续帧被发送到接收器,其中包含最多 7 个字节的剩余有效载荷 - 连同一个计数器,以确保可以以正确的顺序对数据进行分段。第一个字节的高半字节 0x2 表示该消息是一个连续帧。

现在考虑以下场景:测试应用程序发送单帧 0x7E0 0x03 0x22 0xF1 0x90 作为请求。 ECU 可能希望向测试应用程序发送响应 0x62 0xF1 0x90 0x01 0x02 0x03 0x04 0x05(8 字节有效载荷)。

所以ECU会首先发送第一帧:

0x7E8 0x10 0x08 0x62 0xF1 0x90 0x01 0x02 0x03

并等待来自测试应用程序的流控制帧:

0x7E0 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00

然后ECU会继续发送连续的帧,直到发送完整的消息:

0x7E8 0x21 0x04 0x05 0x00 0x00 0x00 0x00 0x00

对于 SID 0x2E (WriteDataByIdentifier),它将非常相似,只是角色颠倒了,因为测试应用程序通常希望在请求中发送长消息,而 ECU 将使用流控制消息进行回复。 IE。

代码语言:javascript
运行
复制
0x7E0   0x10 0x08 0x2E 0xF1 0x90 0x01 0x02 0x03
0x7E8   0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7E0   0x21 0x04 0x05 0x00 0x00 0x00 0x00 0x00
0x7E8   0x03 0x6E 0xF1 0x90 0x00 0x00 0x00 0x00

如果需要多个连续帧,则第一个字节将简单地从 0x21 增加到 0x2F,然后再次从 0x20 开始计数。

代码语言:javascript
运行
复制
0x7E0   0x10 0x76 0x2E 0xF1 0x90 0x01 0x02 0x03
0x7E8   0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7E0   0x21 0x04 0x05 0x06 0x07 0x08 0x09 0x0A
0x7E0   0x22 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11
...
0x7E0   0x2F 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
0x7E0   0x20 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51998708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档