概述
CAN 总线(Controller Area Network)是一种串行网络,用于连接传感器、控制器和执行器,完成设备间的连锁控制。它起源于汽车领域,现已广泛应用于医疗、工业自动化等领域。
CAN 总线采用面向数据的内容寻址机制,报文的优先级由 11 位标识符决定,标识符越小,优先级越高。这种机制可以保证网络的高实时性。
CAN 的发展
CAN 总线最初由博世公司开发,并获得国际标准化组织(ISO)认证(ISO11898)。目前,国际上主要的半导体厂商都提供了支持 CAN 总线的专用芯片。
CAN 总线在汽车、工业自动化、医疗等领域获得了广泛的应用。例如,奔驰 S 型轿车使用了 CAN 总线系统;美国商用车辆制造商也将 CAN 总线应用于生产线和机床上。
CAN 的工作原理
当 CAN 总线上的一个节点要发送数据时,它会以报文的形式广播到网络中所有的节点。每个节点都会接收报文,并根据报文中的标识符判断该报文是否发给自己。
CAN 总线采用位仲裁机制来解决多个节点同时竞争总线的情况。标识符二进制值更小的节点优先级更高,可以获得总线读取权。
位仲裁
位仲裁是一个快速有效地确定总线读取权的机制。当多个节点同时发送报文时,它们的标识符会被逐位比较。二进制值更小的标识符的节点将保留总线读取权,而其它节点的报文会被丢弃。
位仲裁的详细过程如下图所示:
该图中,站 1 的标识符为 011111,站 2 的标识符为 0100110,站 3 的标识符为 0100111。所有标识符都相同的两位 01,直到第 3 位进行比较时,站 1 的报文被丢弃,因为它的第 3 位为高,而其它两个站的报文第 3 位为低。
CAN 报文的格式
CAN 报文由以下字段组成:
- 起始位:1 位,表示报文的开始
- 仲裁位:11 位,用于位仲裁
- 控制位:6 位,用于传输速率和报文长度控制
- 数据域:0-8 字节,用于传输数据
- CRC 校验域:16 位,用于检测报文传输中的错误
- 结束位:7 位,表示报文的结束
应用
CAN 总线广泛应用于以下领域:
- 汽车
- 工业自动化
- 医疗
- 纺织机械
- 电梯控制
CAN 总线以其高可靠性、实时性和易于配置等优点,成为工业自动化和汽车领域不可或缺的技术。
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论