CAN总线之通俗易懂----报文1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/langshi_2011/article/details/90207743

CAN报文

CAN总线是广播类型的总线。这意味着所有节点都可以侦听到所有传输的报文。无法将报文单独发送给指定节点;所有节点都将始终捕获所有报文。但是CAN硬件能够提供本地过滤功能,让每个节点对报文有选择性地做出响应。

CAN报文

CAN使用短报文 – 最大实用负载是94位。报文中没有任何明确的地址;相反,可以认为报文是通过内容寻址,也就是说,报文的内容隐式地确定其地址。

报文类型

CAN总线上有四种不同的报文类型(或“帧”):

  1. 数据帧
  2. 远程帧
  3. 错误帧
  4. 过载帧

1. 数据帧

数据帧是最常见的报文类型。由下列主要部分组成(出于简洁性目的,忽略了一些细节):

  • 仲裁字段。当两个或多个节点竞争总线时,确定报文的优先级。仲裁字段包含:
    • 对于CAN 2.0A,一个11位的标识符和一个支配数据帧的RTR位。
    • 对于CAN 2.0B,一个29位的标识符(其中还包含两个隐性位:SRR和IDE)和RTR位。
  • 数据字段。包含0到8字节数据。
  • CRC字段。包含一个基于报文大部分数据计算得到的15位校验和。校验和用于错误检测。
  • 应答时隙。任何能够正确接收报文的CAN控制器都会在每条报文的末尾发送一个应答位。传送节点检查应答位是否存在,如果没有检测到应答位,会重新发送报文。

注1:请注意,总线上存在应答位不表示任何目标地址已经收到报文。唯一表示的是,总线上的一个或多个节点已经正确收到报文。

注2:仲裁字段中的标识符不一定标识报文的内容,尽管其名字会让人如此认为。

1 CAN msg 1-3
CAN 2.0A(“标准CAN”)数据帧
2 CANmsg 1-3

CAN 2.0B(“扩展CAN”)数据帧

猜你喜欢

转载自blog.csdn.net/langshi_2011/article/details/90207743
今日推荐