CAN总线电气、帧格式、同步解读

CAN总线电气、帧格式、同步解读

1. 电气特性:显性、隐性

在这里插入图片描述
图1 CAN电气特性
a) 接收发送端,0表示显性,总线差分电平为2V;
b) 接收发送端,1表示隐性,总线差分电平为0V。
显性和隐性主要用于总线仲裁,显性优先,即仲裁位为低的帧先发送。发送端实时回采发送数据,判读接收数据是否发送数据相同,如果相同继续发送,不同(发送高时,总线回读是低,说明有优先级更高的帧需要发送)则退出发送。

2. 帧格式

在这里插入图片描述

图2 CAN帧格式(借用网图)

3. 帧同步

硬同步:接收端通过SOF下降沿同步输入信号。
重同步:接收端在非SOF段,发现数据下降沿不在接收状态的同步段时进行重同步。
同步规则
a) 一个位时间内只允许一种同步方式,要么硬同步要么重同步;
b) 任何一个从“隐性”到“显性”的下降沿 都可以用于同步;
c) 硬同步发生在报文的SOF位,所有接收节点调整各自当前位的同步段,使其位于发送的SOF位内;
d) 重同步发生在一个报文SOF位之外的其它段,当下降沿落在了同步段之外时发生重同步;
e) 在SOF到仲裁场发送的时间段内,如果有多个节点同时发送报文,那么这些发送节点对跳变沿不进行重同步。

如何重同步:
位时间,即CAN总线每1位划分为四个时间段。
在这里插入图片描述

图3 CAN位时间分段

即同步段、传播段、相位缓存段1和相位缓冲段2,这些段按CAN内部时钟进行计量,1个CAN内部时钟称为一个时间量子:Tq。
Ts同步段:固定1Tq;
Tp传播段:传播延时x2,包括节点内部延时和总线传播延时。
Tph1、Tph2缓存段:可配置,用于设置CAN总线数据的采样点。
SJW同步跳转宽度(SynchroJumpWidth):用于重同步调整Tph1或Tph2的范围,SJW = min{Tph1,Tph2,4};即不大于Tph1和Tph2,且不大于4。
CAN波特率 = CAN时钟/(Ts + Tp + Tph1 + Tph2)= CAN时钟/(1+TS1+TS2)

重同步过程:由于CAN主从设备非同源时钟,因此必然存在从设备(RX端)时钟比主设备(TX端)快或者慢的情况,CAN总线在SOF进行硬同步后,每位的数据采样点则根据自己的时钟进行递推计算,随着时间的漂移,发送端下降沿可能滞后(RX时钟快)或超前(RX时钟慢)接收端的同步段,如下图所示;当接收端判断下降沿不在同步段内,如在TS1段,则判断为RX时钟快,这时将TS1增加,即增加分频,对应接收端波特率调小,达到与发送端同步的目的,同理RX时钟慢时,将TS2减小,增大接收端波特率,达到与发送端同步的目的,调整窗口大小即SJW。
在这里插入图片描述
图4 CAN重同步过程

通过上述方法CAN控制器硬件即可自动调整接收端的波特率,使之与发送端匹配,消除位的累计误差,实现重同步。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值