一、CAN总线引入
CAN是(Controller Area Network),是ISO(International for Standardization)国际标准化的串行通信协议。在当前的控制系统中,由于这些系统之间通信所用的数据类型以及可靠性的要求不尽相同,总线的构成情况也是很多,线速也是不断增加。为了适当减少线束以及通过多个LAN进行大量数据的高速通信。1986年德国世博公司开发面向汽车的CAN通信协议标准,已经是欧洲汽车网络的标准协议。这使得多种LAN可以通过网关进行数据交换,目前已经广泛运用到了工业自动化、工业设计、船舶、医疗设备。下面是车载网络:
2、CAN总线拓扑结构图
各种从设备连接到收发器,收发器连接到CAN控制器、CAN总线控制器连接到主设备CPU上。CAN总线控制根据两根线(CAN_H CAN_L)电位差来判断总线电平。总线电平为显性电平和隐性电平,两根线必然是这两种状态的一种状态。发送方通过使总线电平发生变化,将消息发送给接收方。
三、CAN协议特点
多主控制、消息发送、系统柔软性、通信速度、远程数据请求、错误处理、故障封闭、连接。
1、多主控制:
在总线空闲时,所有的单元都可以开始发送消息,这也就是所谓的多主控制。最先访问总线的单元可以(CSMA/CA)获得发送权,多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。
2、消息发送:
在CAN协议中,所有消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新的消息。但是两个以上的单元同时开始发送消息时,根据标识符(ID)来决定优先级,ID是总线访问总线的消息的优先级,而不是发送的目的地址。两个以上的单元同时发送消息时,对个消息ID的每一位进行逐位的比较。ID比较小的具有有较高的优先级,可以继续发送的,其他消息要停止等待。
3、系统柔软性:与总线相连的单元没有地址的概念,因此在总线上增加或者减少单元,并不需要在总线上的其他单元的软件或者硬件做出修改。
4、通信速度:
根据整个网络规模,可以设定合适的通信速度,在同一个网络中,所有单元必须设定为统一通信速度,即使是有一个单元通信速度不一样,这个单元就会输出错误的信号,会阻碍到整个网络的通信。
5、远程数据请求:
可以通过发送遥控帧请求其他单元发送数据。
6、错误处理:
所有单元都具有检查错误的功能----错误检测功能;检测到错误的单元会立即同时通知其他单元-----错误通知功能;正在发送消息的单元一旦检测到错误,会强制结束当前的发送。强制结束发送的的单元会不断反复重新发送此消息直到成功发送为止(错误恢复功能)
7、故障封闭:
CAN可以判断出错误的类型是总线的暂时错误(外部噪声)还是持续的数据错误(如单元内部故障、驱动故障)。当总线上发生持续错误时,可以引起此故障的单元总线上隔离出去。
8、连接:
CAN总线是可以同时连接多个单元总线。可以连接的单元总数理论上没有限制。但是实际上,可以连接的单元数量会受到总线上的时间延迟和电气负载限制。降低通信速度,可以连接的单元数量会增加,反之单元数减少。