CAN总线是控制器局域网(Controller Area Network)的英文缩写,它起源于德国,是一种高速串行通讯总线,适用于精简型网络及分布式控制系统。它特别适合繁琐、分散并且经常性更改的环境中,例如程序控制、传感器、运动控制以及马达控制等应用。CAN总线由许多被称作节点的设备组成,节点之间通过总线进行通讯。
CAN总线是一种数据链路层协议,允许设备在不必经过主机操作的情况下进行通信。CAN总线协议定义了消息的格式、地址筛选和传送的时间常量等工作细节,能够最大程度地减小冲突,并确保寻址的信息仅被发往目标设备。CAN总线具有高速、抗干扰、可靠、紧凑等优点,被广泛应用于汽车、机器人技术、医疗仪器、电力系统、环保管理等领域。
CAN总线主要有两种连接方式:星型拓扑结构和总线拓扑结构。在星型拓扑结构中,许多终端通过控制器或者交换机与“中心节点”相连,形成一个星型结构,每个节点可以直接与中心节点通信。这种连接方式在数量较少的情况下,并且节点只需要极少的通信时,效果很好。总线拓扑结构则更为常见,整个网络通过一根双绞线组成,各设备节点都需要通过一个特定的硬件集成电路(CAN控制器)来连接总线。
总线拓扑结构可以扩展到超过100个节点,节点之间的通讯利用总线拓扑结构所提供的中继机制实现,同时使用CAN总线的硬件构建机制保证了同一时间内只有一条消息被发送。在CAN总线的性能通常由总线速率、传播时间、同步滤波器等因素影响。速率越高总线效率越高,但大容量总线网络可能会出现传播时间太长的情况,需要考虑增加总线重复器或者缩短总线长度。
CAN总线可以采用两线制和四线制连接方式。两线制采用的是一根被分割成CAN_H和CAN_L两个信号线的双绞线,CAN_H为正极,CAN_L为负极。四线制则在两线制基础上加上参考电压(VCC)和地线(GND)。CAN总线的电缆应该是防射频干扰、防噪声和防水的,通常使用屏蔽双绞线。
在连接CAN总线时必须注意极性,否则会导致通信失败。在用两线制连接时,要确保两个设备的CAN_H和CAN_L接线正确。如果使用四线制连接,要将CAN_VCC与+5V或+12V连接,CAN_GND连接到地线(GND)。此外,要确保电缆长度不要超过1米,如果必须超过该长度,必须加中继器提高总线信号质量,以避免通讯故障和数据丢失。
正确理解CAN发送和接收的信号是调试CAN总线的关键。利用示波器等工具可以直观地观察CAN信号的变化,以确保信号符合标准。如果CAN总线中存在通信故障,可以采用滤波器的方式,隔离故障节点,逐渐缩小故障范围,从而找到症结所在。
需要注意的是,当CAN总线中存在故障时,不能随意调整总线参数,例如总线速率等,否则可能会导致整个总线失效,影响所有设备的通讯。可以采用离线检测和数据重发机制来查找和修复通讯问题。