CAN的数据采样

 一、接收方的数据采样:

   由于CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间会使用约定好的波特率进行通讯。

并且CAN还会使用“位同步”的方式来对抗干扰、吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。

  1. CAN总线无时钟线,是通过约定波特率方式确定每一个数据位的时长 
  2. 发送方以约定的位时长每隔一段固定时间输出一个数据位
  3. 接收方以约定的位时长每隔固定时间采样总线的电平,输入一个数据位
  4. 理想的采样点为数据位的中心

 二、导致的问题:

  1. 接收方以约定的位时长进行采样,但是采样点没有对齐数据位的中心附件——————硬同步
  2. 接收方一开始正确,但时钟有误差,随者时间的增加,误差会越来越大,采样点就会产生偏移————再同步

  三、位时序:灵活调整每个采样点的位置,每个段由Tq构成(系统时钟的预分频)

(在二进制的前提下,波特率=比特率)

  1. 同步段:一个位的输出从同步段开始,用于同步各个节点,跳变沿产生在此段内,固定长度-1个Time quantun
  2. 传播段:补偿信号通过网络和节点传播的物理延迟,传播的长度应能保证2倍的信号在总线延迟,长度可编程-1~8个Time  quantun
  3. 相位缓存段:允许通过再同步对相位缓存段1加长或者相位缓存段2缩短(最大长度=SJW同步跳转宽度)、相位1末端进行采样、

长度可编程-1~8个Time  quantun、加长和缩短是通过在同步补偿宽度值(SJW=1~4Time quantun

 

位定时参数确定

 

四、同步规则:硬同步和再同步

  1. 一个位时间内只允许一种同步方式
  2. 任何一个“隐性”到“显性”的跳变都可以用于同步
  3. 硬同步发生在SOF,让所有接收节点调整各自当前位的同步段,使其位于发送的SOF位内。且只是当存在“帧起始信号”时起作用,无法确保后续一连串的位时序都是同步的。
  4. 再同步发生在一个帧的其他位场内,当跳变沿跳变沿落在了同步段之外。
  5. 在SOF到仲裁场有多个节点同时发送的情况下,发送节点对跳变沿不进行重新同步

 

硬同步:

  1. 每个设备都有一个位时序周期,当某个设备(发送方)先发送报文(此时的发送方已经是ss段),其他所有设备(接收方)收到SOF下降沿,接收方就会将自己位时序周期拨到SS段的位置,与发送方的位时序计时周期保持同步
  2. 只在SOF(帧起始)有效
  3. 硬同步后,所有的下降沿都在位时序的ss段,若没有误差,则后续所有的数据位的采样点必要对齐数据位的中心

以下为接收方的视角,红线为总线

再同步

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值