(CAN) 什么是 RTR 和 SRR 位?

(CAN) What is an RTR and SRR bit?

RTR和SRR是缩写吗?

我知道两者都是位,但是当我们在系统中没有 29 位标识符时,我对 RTR 扮演什么角色感到困惑,因为我相信只要标识符就足以发送消息。或者 CAN 是否会自动假设我们在系统中会有不同的标识符长度,然后 SRR 位和 RTR 位才重要?

RTR 用于远程请求帧。此功能允许您发送空包,请求与用于 RTR 帧的标识符相同的数据。此功能本身与标识符长度无关。

确定使用 11 位还是 29 位标识符的位是另一个位,称为 IDE。 IDE=0 给出 11,IDE=1 给出 29。


关于 RTR 与 SRR:

  • 对于11位标识符,11位标识符之后的位称为RTR。

  • 对于29位标识符,标识符的11个最高有效位之后的位更改名称为SRR,即"substitute remote request"。它始终设置为 1(隐性)。然后是 IDE + 标识符的其余部分,然后是 RTR.

此设计意味着无论 29 位帧的 RTR 状态如何,11 位标识符帧都将始终胜过 11 msb 中具有相同二进制模式的 29 位标识符帧的仲裁。

(请记住,CAN 帧始终是大端字节序,msb 在前。)

为了与 "CAN2.0A".

向后兼容,它是在旧的博世规范 "CAN2.0B" 中以这种方式制作的