一文搞懂 CAN 总线 一、CAN 总线简介 CAN(Controller Area Network)总线是一种串行数据通讯协议,应用于各类工业控制系统、汽车电子系统、智能家居系统等领域。CAN 总线具有多主控制、系统柔软性、远程数据请求、错误检测功能、错误通知功能、错误恢复功能等特点。 二、CAN 总线历史 CAN 总线的发展始于 1983 年,BOSCH 公司开始着手开发 CAN 总线。1986 年,在 SAE 会议上,CAN 总线正式发布。1987 年,Intel 和 Philips 推出第一款 CAN 控制器芯片。1991 年,奔驰 500E 是世界上第一款基于 CAN 总线系统的量产车型。1991 年,Bosch 发布 CAN 2.0 标准,分 CAN 2.0A(11 位标识符)和 CAN 2.0B(29 位标识符)。1993 年,ISO 发布 CAN 总线标准(ISO 11898),随后该标准主要有三部分:ISO 11898-1:数据链路层协议、ISO 11898-2:高速 CAN 总线物理层协议、ISO 11898-3:低速 CAN 总线物理层协议。 三、CAN 总线特点 1. 多主控制:在总线空闲时,所有节点都可以发送消息,最先访问总线的节点获得发送权,或当同时发时,高优先级 ID 获得发送权。 2. 系统柔软性:在 CAN 局域网内,增加节点不影响局域网内其他节点。 3. 远程数据请求:可通过发送“遥控帧”请求其他节点发送数据。 4. 错误检测功能:CAN 错误可以回顾 CAN 总线错误处理机制,对 CAN 故障及恢复有详细的讲解。 5. 错误通知功能:当检测到错误时,CAN 总线会向其他节点通知错误。 四、CAN 总线物理层 CAN 总线采用双线传输,两根导线分别作为 CAN_H、CAN_L,并在终端配备有 120Ω 电阻。收到总线信号时,CAN 收发器将信号电平转化为逻辑状态,即 CAN_H 与 CAN_L 电平相减后,得到一个插值电平。总线上执行逻辑上的线“与”,显性电平为“0”,隐性电平为“1”。 五、CAN 帧的种类 CAN 帧总共分为 5 种类型: 1. 数据帧:用于发送节点向接收单元发送数据。 2. 遥控帧:用于接收节点向具有相同 ID 的发送节点请求数据。 3. 错误帧:用于当检测到错误时向其他节点通知错误。 4. 过载帧:用于接收节点通知其尚未做好接收准备。 5. 帧间隔:用于将数据帧及遥控帧与前面的帧分离开。 六、数据帧的帧结构 数据帧构成如下图所示,其由 7 部分构成: 1. 帧起始:在总线空闲时,总线为隐性状态。帧起始由单个显性位构成,标志着报文的开始,并在总线上起着同步作用。 2. 仲裁段:仲裁的主要是定义了报文的标识符,也俗称 ID。 3. 控制段:主要定义了数据域字节的长度。通过数据长度码,接收节点可以判断报文数据是否完整。 4. 数据域:包含有 0~8 个字节数据。 5. CRC 域:CRC 又称循环冗余码校验,是检查帧传输错误的帧。 6. ACK 域:用于接收节点确认是否正常接收,由 ACK 槽和 ACK 界定符组成。 7. 帧结束:由连续的 7 个隐性位组成,表示报文帧的结束。 七、CAN FD 2012 年,BOSCH 发布 CAN FD 1.0 标准(CAN with Flexible Data-Rate),CAN FD 定义了在仲裁后使用不同的数据帧结构,从而达到最高 12Mbps 数据传输速率。CAN FD 与 CAN 2.0 协议兼容,可以与传统的 CAN 2.0 设备共存于同样的网络。
剩余6页未读,继续阅读
- 粉丝: 30
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助