CAN总线原理介绍
2015-05-08
CAN是Controller Area Network的缩写,即“局域网控制器”的意思,可以归属于工业现场总线的范畴,通常称为CAN BUS,即CAN总线,是目前国际上应用最为广泛的开放式现场总线之一。
CAN总线最早用在汽车电子领域,世界上一些著名的汽车制造厂商都采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。由于CAN总线在数据通信方面表现出来的高可靠性、实时性和灵活性,其应用领域已经成汽车电子领域扩展到自动控制、航空航天、航海、工业控制、医疗器械、安全防护等领域。
CAN总线规范从CAN1.2规范发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。
?CAN总线发展史
1986年,Bosch在SAE(汽车工程人员协会)大会上提出CAN总线概念;
1987年,Intel推出第一片CAN控制芯片82526,随后Philips半导体也推出82C200;
1993年,CAN的国际标准ISO11898/ISO11519公布。ISO11898为高速应用,ISO11519为低速应用;
1994年开始有了国际CAN学术年会ICC。同年,美国汽车工程师协会以CAN为基础制定了SAEJ1939标准,用于卡车和巴士控制和通信网络。
?CAN总线特点
1).可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。
2).网络上的节点可分成不同的优先级,可以满足不同的实时要求。
3).采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传送数据。
4).可以点对点,一点对多点及全局广播几种传送方式接收数据。
5).直接通信距离最远可达10km(速率4Kbps以下)。
6).通信速率最高可达1MB/s(此时距离最长40m)。
使用非屏蔽双绞线传输时,传输速率与传输距离的关系如下图所示。
7).节点数最多可达110个。
8).采用短帧结构,每一帧的有效字节数为8个。
9).每帧信息都有CRC校验及其他检错措施,数据错误率极低。
10).通信介质可采用双绞线,同轴电缆和光纤,一般采用廉价的双绞线即可。
11).节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。
?CAN总线的仲裁
CAN总线采用CSMA/CD(Carrier Sense Multiple Access with collision Detect,载波监测多路访问/冲突检测)技术。“载波监测”的意思是指在总线上的每个节点在发送信息报文前都必须监测到总线上有一段时间的空闲状态。“多路访问”的意思是一旦此空闲状态被监测到,那么每个节点都有均等的机会来发送报文。“冲突检测”是指在两个节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况。此时优先级高的报文先发送,低优先级的报文发送会暂停。这就是CAN总线的仲裁,仲裁过程是不会对报文产生破坏的。
CAN总线上每个设备都有一个11位的ID信息,各设备的优先级是根据其ID来确定的,ID的序号越小,其优先级越高。下图为CAN总线上传输的数据帧格式,从图上可知,传输开始标识符SOF后面紧跟的就是11位标识ID,CAN总线就是据此进行仲裁工作的。
?CAN总线的拓扑结构
CAN总线的拓扑结构如下,CAN hub是用于多分支扩展用的,可以省去。CAN总线和分支的末端都需要垮接一个120欧姆的电阻来终结,防止信号反射。
?CAN总线的逻辑电平
CAN总线具有两种逻辑状态,隐性和显性。隐性状态下,VCAN_H和VCAN_L都被固定为平均电压电平,两者之间的电压差为0;显性状态下,VCAN_H和VCAN_L的电平分别为3.5V和1.5V,两者差分电压大于2V,如下图所示。
?常用CAN总线芯片
CAN芯片有CAN控制器和CAN收发器,在实际电路中,这两种芯片需要配合起来应用。
常用CAN控制器芯片有:P87C591,XAC37,SJA1000;
常用CAN收发器芯片有:PCA82C250,PCA82C251,PCA82C252,TJA1040,TJA1041,TJA1050,TJA1053,TJA1054。