1.概述:
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。一般形式是一个pc端(包括嵌入式系统、单片机系统)与多个设备(传感器、仪表、电机等)建立的实时通讯模型。
2.原理:
当一个节点向另一个节点发送数据时,cpu将数据和标识符交给本节点的CAN芯片,并进入准备状态;一但该CAN芯片被总线分配到,就变为发送状态,CAN芯片将要发送的数据按规定的报文形式发出。此时,总线上的其他节点进入接收状态,所有节点都要对其进行接受,判断是不是发送给自己的报文,如果不是就忽视,是的话对数据进行解读。
3.特点:
- 总线上的任意节点可在任意时刻给其他节点发送数据。
- 传输速度可达1Mbps;通信距离可达10km;节点数可达110个;传输速度与距离成反比。
- 传输方式有点对点、点对多点、点对全局。
- 可靠的检错机制,信息遭到破坏后自动重发,使得数据的出错率较低。严重出错时自动与总线切断联系。
- 采用非破坏性仲裁总线结构,每个节点都有不同的优先级。
4.通讯协议
常用的帧类型:数据帧,远程帧,过载帧,错误帧,帧间隔。
- 数据帧:将发送器发送的数据传送到接收器。
- 远程帧:请求远程特定节点发送数据帧。