什么是CAN ? CAN 是怎样工作的? CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V 。 CAN 有哪些特性? CAN总线是一个多主站现场总线,各节点都有权向其他节点发送信息,其协议简单,实时性强,可靠性及抗干扰能力好,总线利用率高,硬件成本低。主要特点如下: 1)CAN总线的任一节点在任一时刻都主动向网络上其他节点发送数据而不分主从,通过优先级确定总线为哪一节点所占用,通信灵活。 2)CAN总线上的节点可通过设置分为不同的优先级,用来满足不同的实时性要求。 3)CAN总线采用非破坏性总线仲裁,当多个节点同时向总线发送数据时,优先级低的节点主动停止发送数据,退出竞争,而优先级高的节点将拥有总线使用权,继续发送数据。 4)CAN总线具有点对点,一点对多点及全局广播等多种数据通讯传送方式。 5)节点间通讯位速率与节点间距离有关,总线最远通讯距离为10km,此时通讯速率为5kbps,{zd0}通讯速率能达到1Mbps(通讯距离40m内)。 6)可根据报文的ID决定接收或屏蔽该报文,发送的报文遭到破坏后可自动重发。 7)可靠的错误处理和检错机制,节点在错误严重的情况下具有自动退出总线的功能。 8)报文不包含源地址和目标地址,仅用报文标志符来来指示功能信息和优先级信息。 CAN总线智能节点的软件设计主要包括三个部分:CAN节点初始化、报文发送和报文接收。CAN节点的通讯实质上就是对CAN控制器内部各寄存器进行读写,由于这些寄存器或发送、接收缓冲器均有确定的地址,CPU可通过外设访问指令对它们进行读写操作。系统上电复位后,CPU对CAN控制器的各个控制寄存器写入相应控制字信息,以完成CAN控制器的初始化。 |