控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行
通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之
一。CAN 协议由德国的 Robert Bosch 公司开发,用于汽车中各种不同元件之间的通信,
以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应
用。CAN 协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达 1Mb/s、
同时具有 11 位的寻址以及检错能力。
CAN 总线是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电子干
扰性,并且能够检测出产生的任何错误。CAN 总线可以应用于汽车电控制系统、电梯控制
系统、安全监测系统、医疗仪器、纺织机械、船舶运输等领域。
CAN 总线的特点
1、具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
2、采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;
3、具有优先权和仲裁功能,多个控制模块通过 CAN 控制器挂到 CAN-bus 上,形成多主
机局部网络;
4、可根据报文的 ID 决定接收或屏蔽该报文;
5、可靠的错误处理和检错机制;
6、发送的信息遭到破坏后,可自动重发;
7、节点在错误严重的情况下具有自动退出总线的功能;
8、报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
CAN 总线的工作原理
CAN 总线使用串行数据传输方式,可以 1Mb/s 的速率在 40m 的双绞线上运行,也可以使
用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN 与 I2C 总线的许多细节很
类似,但也有一些明显的区别。
当 CAN 总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个
节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的 11 位字符为
标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标
识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取
时,这种配置十分重要。
当一个站要向其它站发送数据时,该站的 CPU 将要发送的数据和自己的标识符传送给本站
的 CAN 芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN 芯片将
数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接
收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收
它。
由于 CAN 总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进
行配置。我们可以很容易地在 CAN 总线中加进一些新站而无需在硬件或软件上进行修改。
当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。
它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控
制器都有自己独立的传感器。
CAN 总线的应用
CAN 总线在组网和通信功能上的优点以及其高性价比据定了它在许多领域有广阔的应用前
景和发展潜力。这些应用有些共同之处:CAN 实际就是在现场起一个总线拓扑的计算机局
域网的作用。不管在什么场合,它负担的是任一节点之间的实时通信,但是它具备结构简
单、高速、抗干扰、可靠、价位低等优势。CAN 总线最初是为汽车的电子控制系统而设计