5.5 帧编码
帧中的比特流应按照不归零(NRZ, Non-Return-to-Zero)方法进行编码。这意味着在整个比特时间内生成的比特电平是恒定不变的。
为了限制可用于同步的最大边沿(即信号波形的上升沿或下降沿)间距,帧的不同部分如起始边界(SOF, Start of Frame)、仲裁字段、控制字段、数据字段以及CRC序列应当采用比特填充的方法进行编码。每当发送器检测到连续五个相同值的比特(包括填充比特)时,它应自动在实际发送的比特流中插入一个互补的比特(称为填充比特)。接收器应识别出连续五个相同值的比特序列,并丢弃随后的填充比特。
比特填充的过程如图 5.23 所示。
图5.23 bit 填充
这种比特填充机制有助于保持信号的可同步性,尤其是在长串相同比特值的情况下,可以确保接收端能够准确地跟踪比特边界。
在 FD (Flexible Data-Rate) 帧的 CRC 字段中,填充比特应当在固定位置插入;这些填充比特被称为固定填充比特。即使前一个字段的最后几位比特不是连续五个相同值的比特序列,在填充计数的第一位之前也应当有一个固定的填充比特。如果前一个字段的最后几位比特是一个连续五个相同值的比特序列,那么只应当有一个固定的填充比特,而不应当有两个连续的填充比特。在 CRC 字段的每第四位之后应当再插入一个固定的填充比特。这样的固定填充比特的值应当是紧接在其之前的比特的反值。接收器应当从比特流中丢弃这些固定的填充比特来进行 CRC 检查。如果固定的填充比特与其前一个比特具有相同的值,则接收器应当检测到一个形式错误。FD 帧 CRC 字段中的固定填充比特的数量等于使用经典帧的比特填充方法可能产生的最大填充比特数量。
DF 或 RF 的剩余比特字段(CRC 分隔符、ACK 字段和结束标志)应当具有固定的形式并且不进行填充。
错误帧(EF)和过载帧(OF)也应当具有固定的形式,并且不采用比特填充的方法进行编码。
CAN FD 协议中 CRC 字段的特殊处理方式,特别是关于固定填充比特的规定:
-
固定填充比特:CRC 字段中的填充比特是在固定位置插入的,而不是根据连续相同值的比特序列动态插入。这有助于简化硬件设计并提高同步的准确性。
-
插入规则:
- 在 CRC 计算开始之前,即使前一个字段的最后几位比特不是连续五个相同值的比特序列,也应当插入一个固定的填充比特。
- 如果前一个字段的最后几位比特是连续五个相同值的比特序列,那么仅插入一个固定的填充比特,而不再插入额外的填充比特来避免两个连续的填充比特。
- 在 CRC 字段的每第四位之后,插入一个固定的填充比特,该填充比特的值是其前一个比特的反值。
-
接收端处理:
- 接收器在进行 CRC 校验时,应当从比特流中丢弃这些固定的填充比特。
- 如果固定的填充比特与其前一个比特具有相同的值,则视为形式错误。
-
其他字段:
- 数据帧(DF)和远程帧(RF)的 CRC 分隔符、ACK 字段和结束标志不进行填充。
- 错误帧(EF)和过载帧(OF)同样不进行比特填充编码。
这种特殊的处理方式使得 CAN FD 协议能够保持良好的同步性能,同时简化了 CRC 校验过程中的硬件实现。
5.6 帧确认
所有接收器都应当检查收到的所有数据帧(DF)和远程帧(RF)的一致性,并确认所有一致的数据帧和远程帧。确认不应依赖于帧的标识符。
5.7 帧验证
帧被视为有效的时间点对所有接收器来说应当相同,但对发送器来说则不同。
接收器
对于接收器而言,如果在结束标志(EOF)倒数第二位之前没有检测到错误,则帧是有效的。结束标志的
标签:填充,比特,字段,应当,子层,CRC,MAC,FD,固定 From: https://blog.csdn.net/zhangziranzm/article/details/140750729