Mic_chen

It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  73 随笔 :: 0 文章 :: 1 评论 :: 84769 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1.1 CAN比特率计算 

采样点计算公式为:Sample Point = (1+TSEG1) / (1+TSEG1+TSEG2)

在组网的时候,多个节点尽量保持同一个采样点,且最好在但不超过7/8位时间点上;当波特率大于800kbps时,推荐采样率为75%;当波特率为500k-800kbps时,推荐采样率80%左右;当波特率不大于500kbps时,推荐采样率为87.5%。采样点如果偏离这个标准过多,可能会导致一致性问题。因此经验配置如下:

tBS1>=tBS2 

tBS2>=1CAN时钟周期

tBS2>=2tSJW

1.2 CAN总线的同步

CAN总线的同步共有两种方式:硬同步和重同步。

1)硬同步:在总线刚刚从空闲状态中走出来的时候,在帧头的位置都会进行一次同步。此时所有的节点位时间重新开始,就像所有的运动员都再一次回到了起跑线上。这种同步方式被称作硬同步。

2) 重同步:硬同步时只是在有帧起始信号时起作用,无法确保后续一连串的位时序都是同步的,这个时候重同步就到了发挥作用的时候。具体来说,CAN总线的一个位时间中包含两个缓冲段BS1BS2, 在两个缓冲段中间的位置,即是读取总线电平的采样点位置,当检测到总线上存在相位差的时候,通过延长BS1段或缩短BS2来获得同步,这样的方式称为重新同步。这两个相位缓冲段的延长时间或缩短时间上限由再同步跳转宽度(SJW)给定。采样点是接收节点判断信号逻辑的位置,CAN通讯属于异步通讯,需要通过不断的重新同步才能保证收发节点的采样准确,所以SJW(同步跳转宽度)决定了接收节点是否能有比较好的兼容性

对于CAN总线的每个数据位的持续时间(位时间),可以分成4部分,同步段、传播段、相位缓冲段12。当电平发生变化时,CAN控制器可以根据同步段进行同步,从而减少因波特率误差带来的通信错误,所以CAN总线的误差只会累计在两个跳变沿之间。当数据全为0或全为1时,CAN总线规定,每连续5个相同位后会插入一个相反位,产生跳变沿,用于同步,从而解决波特率误差导致的通讯错误。因此累计误差的最长时间是5bit

 

参考: https://www.elecfans.com/d/885248.html

https://blog.csdn.net/m0_38012497/article/details/121923813

https://blog.csdn.net/qq_43620805/article/details/125815343

posted on   Mic_chen  阅读(2450)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示