gpt4 book ai didi

service - UDS SID2E 和 SID22

转载 作者:行者123 更新时间:2023-12-02 20:17:57 25 4
gpt4 key购买 nike

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

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

最佳答案

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

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

0x7E0   0x03 0x22 0xF1 0x90
0x7E8 0x04 0x62 0xF1 0x90 0x01

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

  1. 第一帧被发送到接收器以开始传输。这包含完整有效负载的长度(最多 4095 字节)数据和消息的前 6 个字节。高半字节0x1第一个字节表示该消息是第一帧。
  2. 确认接收第一帧的流量控制帧回复第一帧的发送者。它包含额外的预期 STmin 时序和 block 大小等信息。这第一个字节的高半字节 0x3 表示该消息是流量控制帧。
  3. 一个或多个连续帧被发送到接收器,其中包含最多 7 个字节的剩余有效负载 - 以及计数器以确保数据可以按正确的顺序进行分段。第一个字节的高半字节 0x2 表示该消息是连续帧。

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

  1. 因此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 将通过流程进行回复控制消息。即

    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 重新开始> 进行计数。

    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

    关于service - UDS SID2E 和 SID22,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998708/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com