欢迎光临散文网 会员登陆 & 注册

CAN总线通信协议(总结篇)

2022-06-14 12:45 作者:年轻人的时间很快  | 我要投稿


  1. CAN通信协议概念

    CAN(Controller Area Network),控制器局域网广泛应用于汽车ECU间网络通信,现也用于其它各类工业控制系统。

    CAN网络的一些特点:(1)串行通信总线;(2)线状总线,任意节点可随时加入和退出总线,不影响总线上其余节点;

    低速CAN总线通信速率125kBit/s
    高速CAN总线通信速率500kBit/s
    广播发送模式,总线上任意节点可以接收总线上的信息
    总线访问原则CSMA(载波侦听多路访问),节点自己发送到总线上的信息自己可以监听
NRZ(non-return-to-zero)coding


2.CAN总线协议基础

    CAN总线上以帧为单位传输数据,CAN帧分为数据帧错误帧远程帧过载帧
    数据帧有两种格式,标准帧格式扩展帧格式,标准帧与扩展帧唯一的不同是标准帧仲裁区是11位ID,扩展帧的仲裁区是29位ID

   -> 以CAN数据帧的标准帧为例分析帧结构如下:

    ->帧开始的标志,一个显性位,提供一个下降沿用于硬同步。

    其中:仲裁区,11位的CAN ID用于仲裁

    CAN ID越小,CAN帧的优先级越高,会获得总线控制权

    禁止仲裁区高7位全为隐形,即禁止CAN ID为1111111XXXX,CAN ID范围为0x00-0x7EF

仲裁区的RTR(Remote Transmission Request)一直置显性


    ->控制区的IDE(Identifier Extension)在标准帧中置显性位,在扩展帧中置隐性位。
    r0预留
    DLC0-DLC3表示数据区的字节长度,长度最大为8。


    数据区的长度最大为8个字节
    需要传输的数据长度在DLC中定义
    传输的数据格式为MSB


    ->CRC(Cyclic Redundancy Check)
    CRC区DEL始终置隐性位


    ->发送节点在ACK位置隐性位,任何收到此报文的节点置显性位,发送节点监听到ACK位被置成显性位,就会知道此条报文被至少一个节点正确的接收到。
    ACK区的DEL始终置隐性位。

 

    ->连续7个隐性位表示数据帧的结束


    ->帧间隔为三个连续的隐性位
    一般帧间隔期间CAN controller复制报文内容至Rx缓冲器
    ACK位之后的ACK结束标志加上EOF加上IFS为11个连续的隐性位


CAN总线通信协议(总结篇)的评论 (共 条)

分享到微博请遵守国家法律