一、什么是CAN总线?
CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车车载产业中,出于对车载安全性、舒适性、方便性、低功耗、低成本等等的要求,各种各样的电子控制系统被开发了出来。由于这些电子控制系统之间通信所用到的数据类型、对可靠性的要求都不尽相同,而且由多条总线构成的情况也非常多,线束的数量也随着构成情况而增加。
为适应“适当减少线束的数量”、“通过多个LAN,进行对大量数据间的高速数据通信”的需求,1986年德国电气商博世公司开发出了面向汽车行业的CAN通信协议。此协议推出之后,CAN通过ISO11898及ISO11519进行了标准化,成为了欧洲已在汽车行业网络控制系统内的标准协议。
二、CAN总线的数据格式
CAN-bus通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔。
数据帧:结构上由7个段组成,其中根据仲裁段ID码长度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)。标准帧为11位,扩展帧为29位。这也是我们在使用中接触最多的格式。
远程帧:与数据帧相比没有数据段,结构上由7个段组成。当你需要总线上的一个节点向你发送数据,使用此节点的ID,发送一帧远程帧。远程帧最大的好处就是只需要一帧的时间就能完成一次双向交互。
错误帧:虽然CAN总线是可靠性很高的总线,但是依然会出错:CAN总线上会出现5种错误。
过载帧:当某个节点没有做好接收下帧数据将发送过载帧通知节点。
帧间隔:只存在于数据帧与远程帧之间,用于帧之间的分离。
三、CAN总线的通信特点
CAN总线是德国BOSCH从80年代初为了解决现代汽车中众多控制、测试系统之间的数据交换,从而开发出来的一种串行数据通信协议,它是可以用双绞线、同轴电缆或光导纤维来作为通信介质的一种多主总线。通信速率最高可达1Mbps。
(1)可在各节点之间实现自由通信:CAN协议的一个最大特点是废除了传统的站地址编码,取而代之的是对通信数据块进行编码。采用这种方法的优点是,在理论上,CAN构成的网络节点个数是不受限制的。数据块的标识符可由11位或29位二进制数组成,因此可以定义2或2个以上不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。
(2)结构简单:只有2根线与外部相连,并且内部集成了错误探测和管理模块。
(3)数据纠错:采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作,每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用。
(4)完成对通信数据的成帧处理:CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可以完成对通信数据的成帧处理,包括数据位填充、数据块编码、循环冗余检验、优先级判别等等。
CAN 的高性能和可靠性的特点现已被了解认同,并且被广泛地应用在工业自动化、船舶、医疗设备、工业设备自动化等行业。CAN总线俨然是当今自动化领域技术发展的大热之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间的实时、可靠的数据通信提供了强大有力的技术支持。
领取专属 10元无门槛券
私享最新 技术干货