五种错误检测机制

为检测被破坏的报文,CAN协议定义了五种机制:位监控、报文格式监控(格式检查)、位编码监控(填充检查)、应答评估(ACK检查)以及校验场验证(循环冗余校验)。

发送方和接收方的任务

位监控和ACK检查由发送方执行。接收方执行格式检查、填充检查和循环冗余校验,这些检测针对总线上的所有报文,不受接收过滤器影响。“Error Detection”图显示了各种错误检测机制所影响的数据帧场或远程帧场。

填充检查(接收方)

填充检查用于检查位流。CAN协议规定发送方传输五个相同位后必须传输相反的位,以便实现同步。如果连续接收到五个以上的相同位,则会出现填充错误。

位监控(发送方)

在位监控的框架内,发送方会将发送的位电平与实际的总线电平进行比较。如果发送方检测到两个电平之间存在差异,则会发生位错误。位监控可确保检测到发送方的所有全局错误和所有局部错误。

格式检查(接收方)

格式检查用于检查CAN报文的格式。所有CAN报文在某些位置始终呈现相同的位序列,即CRC界定符、ACK界定符和EOF。发送方始终以隐性电平传输这些报文部分。如果接收方在进行格式检查时在其中一个位检测到显性总线电平,则会发生格式错误。

循环冗余校验(接收方)

在循环冗余码中,与接收到的数据帧远程帧关联的多项式R(x)应是ISO 11898-1指定的生成多项式G(x)的倍数。如果不是,就会产生CRC错误,说明数据帧远程帧在传输期间遭到了破坏。

ACK检查(发送方)

CAN协议中定义的应答机制规定,所有接收方在完成循环冗余校验之后必须立即应答每一个接收的CAN报文。一个肯定应答足以告知发送方,至少一个接收方已正确接收了其发送的CAN报文。如果发送方没有接收到任何肯定应答,则发生了应答错误(ACK错误)。

最后修改: 2021年01月19日 星期二 18:44