通讯之CAN总线入门

💡 原文中文,约1700字,阅读约需5分钟。
📝

内容提要

本文介绍了汽车上应用总线协议的挑战,以及CAN总线的数据传输方式和格式。CAN总线通过差分信号保证数据可靠性,数据格式包括起始位、识别码、控制码、数据长度等。与RS485相比,CAN总线在数据可靠性和重新发送方面有优势。

🔎

延伸解读

差分信号如何提升抗干扰能力

CAN总线使用两根线传输差分信号,逻辑0时两线电压分别为3.5V和1.5V,压差2V;逻辑1时两线均为2.5V,压差0V。当受到干扰时,两根线会同时波动,但压差基本保持不变,因此接收端仍能正确识别数据。这种设计使CAN在汽车恶劣电气环境中比单线传输更可靠。

识别码的双重作用:设备标识与优先级仲裁

每个CAN设备都有唯一的11位识别码,它不仅标识发送设备,还决定总线访问优先级。当多个设备同时发送时,总线电平为0的位会覆盖1,识别码数值更小(即更多0)的帧会赢得仲裁,优先发送。这种非破坏性仲裁机制保证了高优先级消息的实时性,无需重发冲突帧。

CRC校验与自动重发机制

CAN帧包含16位CRC循环冗余校验位,其中15位用于校验,1位为界定位。接收端计算CRC并与接收到的值比较,若不一致则丢弃该帧并触发重发。与RS485只发送一次且不检查正确性不同,CAN通过硬件自动重发确保数据可靠到达,适合对安全性要求高的汽车控制场景。

❓

Q&A

CAN总线的主要优势是什么?

CAN总线在数据可靠性和重新发送方面优于RS485,能够确保在恶劣环境下的正常运行。

CAN总线的数据格式包含哪些部分?

CAN数据格式包括起始位、识别码、控制码、数据长度、CRC校验位、ACK码和结束位。

为什么使用差分信号传输数据?

差分信号可以增强抗干扰能力,即使在受到干扰的情况下,依然能保持信号的压差,确保数据的可靠性。

每个设备在CAN总线上是如何识别的?

每个设备在CAN总线上有唯一的11位识别码,识别码决定了设备的优先级。

CAN总线与RS485的主要区别是什么?

CAN总线专为汽车领域设计,具有更高的数据可靠性和自动重发功能,而RS485则不具备这些特性。

CAN收发器的功能是什么?

CAN收发器将普通信号转化为差分信号,以增强信号的抗干扰能力。

🏷️

标签

➡️

继续阅读