CAN协议层介绍

本文详细介绍了CAN总线通信中数据帧、遥控帧等五种基本帧类型,包括帧结构、数据同步过程,以及硬件同步和再同步方法。重点阐述了仲裁段如何决定发送优先级,确保数据在多节点间的正确传输。
摘要由CSDN通过智能技术生成

CAN总线以“帧”形式进行通信。CAN协议定义了5种类型的帧:数据帧、遥控帧、错误帧、过载帧、间隔帧,其中数据帧最为常用。

数据帧(Data Frame):用于发送单元向接收单元传输数据的帧。

遥控帧(Remote Frame):用于接收单元向具有相同ID的发送单元请求数据的帧。

错误帧(Error Frame):用于当检测出错误时向其他单元通知错误的帧。

过载帧(Overload Frame):用于接收单元通知其尚未做好接收准备的帧。

间隔帧(Inter Frame Space):用于将数据帧及遥控帧与前面的帧分离开来的帧。

1.数据帧的介绍

数据帧是由7段组成的。数据帧又分为标准帧(CAN2.0A)和扩展帧(CAN2.0B),主要体现在仲裁段和控制段。

帧起始:表示数据帧开始的段,显性信号。

仲裁段:表示该帧优先级的段,优先级。RTR远程发送请求位,0表示数据帧,1表示遥控帧。RTR和扩展数据帧中的SRR表示含义一样。

控制段:表示数据的字节数及保留位的段。IDE扩展标识符位,DLC数据长度表示位。

数据段:数据的内容,一帧可发送0~8字节数据。

CRC段:检查帧的传输错误的段。CRC循环校验序列,DEL分界符。

ACK段:表示确认正常接收的段。

帧结束:表示数据帧结束的段,7个隐形信号。

2.CAN位时序介绍

CAN总线以“位同步”机制,实现对电平的正确采样。位数据都由四段组成:同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2),每段又由多个位时序Tq组成。

采样点是指读取总线电平,并将读到的电平作为位值。

根据位时序,就可以计算CAN通信的波特率。

注意:节点监测到总线上信号的跳变在SS范围内,表示节点与总线的时序是同步的,此时采样点的电平即该位的电平。

3.数据同步过程

CAN为了实现对总线电平信号的正确采样,数据同步分为硬件同步和再同步。

硬件同步:

节点通过CAN总线发送数据,一开始发送帧起始信号。总线上其他节点会检测帧起始信号不在位数据的SS段内,判断内部时序与总线是否同步。

假如不在SS段内,这种情况下,采样点获得的电平状态是不正确的。所以,节点会使用硬件同步方式调整,把自己的SS段平移到检测到边沿的地方,获得同步,同步情况下,采样点获得的电平状态才是正确的。

D:显性信号。R:隐形信号

再同步:

再同步利用普通数据位的边沿信号(帧起始信号是特殊的边沿信号)进行同步。

再同步的方式分为两种情况:超前和滞后,即边沿信号与SS段的相对位置。

隐形电平到显性电平的边沿出现在PTS和PBS1之间(sjw=2)

隐形电平到显性电平的的边缘出现在PBS2中时(SJW=2)

再同步时,PSB1和PSB2中增加或者减少的时间被称为“再同步补偿宽度”(SJW)

其范围:1~4Tq。

限定了SJW值后,再同步时,不能增加限定长度的SJW值。SJW值较大时,吸收误差能力更强,但是通讯速度会下降。

4.CAN总线仲裁

CAN总线处于空闲状态,最先开始发送消息的单元获得发送权。

多个单元同时开始发送时,从仲裁段(报文ID)的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送,即首先出现隐性电平的单元失去对总线的占有权变为接收。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值