CAN总线

0. 背景

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。

1. CAN总线

  • CAN总线以报文的形式广播给网络中的所有节点,当CAN总线上的一个节点发送数据时,每个节点都能捕获到所有的报文。

  • 多主控制,只要总线空闲,任何节点都可以向总线发送报文,如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞,通过使用标识符逐位仲裁解决碰撞问题,仲裁获胜的单元可以继续发送消息。

  • 在同一个总线中,标识符是唯一的,CAN硬件能够提供本地过滤功能,然后接收节点会根据标识符来判断是否接收这帧信息。

CAN总线采用不归零码位填充技术

CAN总线参数,寄存器配置

CAN总线OSI参考模型

  • 7.应用层
  • 6.表示层
  • 5.会话层
  • 4.传输层
  • 3.网络层
  • 2.数据链路层
  • 1.物理层

CAN总线电平

CAN2.0B规范定义了两种互补的逻辑数值:显性电平和隐性电平,显性电平,隐性电平。

隐性电平:

  • 表示逻辑1

  • CAN_H和CAN_L的电平都为2.5V(电位差为0V)

  • 没有数据传输的时候,也是隐性电平

显性电平:

  • 表示逻辑0

  • CAN_H和CAN_L分别为3.5V和1.5V(电位差为2.0V)

线与机制:总线上所有单元都输出隐性电平时,总线才为隐性电平

CAN节点

  • CPU

  • CAN控制器

  • CAN收发器

CAN控制器:

  • 接收CAN收发器的数据,进行解析后发送给CPU
  • 接收CPU的指令数据,然后发送给CAN收发器

CAN收发器

  • 接收,将差分信号转换为逻辑电平给控制器
  • 发送,将逻辑电平转换为差分信号给CAN总线

2. 开发

CAN总线的开发包括CAN总线的底层配置、CAN数据传输和CAN报文解析

posted @ 2022-08-13 16:24  伯宁君  阅读(632)  评论(1编辑  收藏  举报