一、

CAN时钟周期(Tq)=2*晶振时钟*BRP(波特率预分频值 baudrate prescaler)

一个CAN时间称为一个时间量子 Tq

1)同步段(Synchronization Segment):1个Tq,tSS

2)传播段(Propagation Segment):传播段时长可编程(1~8个时间量子Tq),tPS

3)相位缓冲段1(Phase Buffer Segment1):长度可编程(1~8个时间量子Tq),tPBS1

4)相位缓冲段2(Phase Buffer Segment2):长度可编程(1~8个时间量子Tq),tPBS2

(位时间)tBit=tSS+tPS+tPBS1+tPBS2

二、在CAN通信中,有两种同步机制:硬同步重同步

三、同步跳转宽度

在重同步时,有个同步跳转宽度(SJW,Synchro Jump Width)的概念,表示的是PBS1和PBS2重同步时允许跳转的最大宽度。 
同步跳转宽度必须满足以下几个条件:

  • SJW必须小于PBS1和PBS2的最小值
  • SJW最大值不能超过4(500kbps通常为3)

(1)位速率:单位为bps、Kbps、Mbps 
1Mbps=1000Kbps=1000000bps
1Mbps=1000Kbps=1000000bps

(2)位时间:tBit,单位一般为纳秒(ns) 
tBit=1/位速率

(3)时间量子Tq: 
Tq=1/NBT(NBT 表示的是一个位时间tBit内包含Tq的个数,500kbps通常为16或20)

(4)传输延迟时间tPTS 
CAN报文在CAN总线上的传输时,物理延迟包含两个部分:

  • 在CAN-BUS上传输造成的延迟
  • 在节点上传输造成延迟

按照CAN通信协议的规定,补偿给传播延迟的时间长度要至少等于实际实际传播延迟时长的2被,即:

tPTS≥2×tdel=2×(tdel+tBus)

(5)报文发送顺序

字节序:LSB,bit序:MSb

4 例子

以下面的例子来讲述位定时参数的确定方法: 
MCU晶振16MHz,位速率500kbps,总线长度20m,单位总线延迟5ns/m,物理接口的发送接收延迟150ns(一般端口延迟最低300ns

(1)晶振时钟周期:T=1s/16MHz = 62.5ns 
(2)位时间 :tBit = 1/500kbps = 2000ns

公式: tBit=NBT*(Tq),也就是tBit=NBT*(2*晶振时钟周期*BPR)

(3)BPR和NBT:考虑到 T = 62.5ns,tBit = 2000ns,所以BPR只能取值为1,才能满足NBT∈[8,25],于是预分频数BPR=1; 
(4)CAN时钟周期Tq = 2 × 62.5 × 1 = 125ns 
(5)NBT = 16

(6)传输延迟时间 tPTS≥2×tdel=2×(tdel+tBus),也就是tPTS≥2*(20*5+150)=500ns,(总线长度20m,单位总线延迟5ns/m,物理接口的发送接收延迟150ns),对于诊断设备由于总线长度很短,因此该时间可忽略

tPTS_Tq=500/125=4

此时,同步段为1 Tq,传播段为4 Tq,还剩NBT-5=11个tq,采样点满足75%-80%,因此相位缓冲段1PBS1为6个tq,相位缓冲段2为4个Tq;同步跳转宽度  SJW=min{PBS1,4}=4

参考文章:

CAN总线学习笔记(5)- CAN通信的位定时与同步

关于CAN通信速率设置相关推荐

  1. can通道采样频率_关于CAN通信速率设置

    关于CAN通信速率设置 [复制链接] 一. CAN时钟周期(Tq)=2*晶振时钟*BRP(波特率预分频值 baudrate prescaler) 一个CAN时间称为一个时间量子 Tq 1)同步段(Sy ...

  2. linux设置网卡速度,linux系统下网卡通信速率修改方法

    修改网卡的通信速率.全双工/半双工模式.具体操作方案如下: · 查看网卡通信速率 查看linux平台下网卡的通信速率,可以通过"ethtool ethX"来完成,下图为查看linu ...

  3. BLE 蓝牙实现最大通信速率

    1.  为什么不可能达到BLE的理论速度? 1 Mbps (LE 1M PHY).2 Mbps (LE 2M PHY).125 kbps 和 500 kbps(均使用 S=8 和 S=2 的 LE 编 ...

  4. 启明云端分享|乐鑫 ESP-NOW 无线通信方案主要特点、应用以及NOW一对一模式下通信速率

    ESP-NOW是乐鑫定义的基于数据链路层的无线通信协议,可与 Wi-Fi 和 Bluetooth LE 共存,既能实现稳定的设备连接和控制,也能作为独立的辅助模块,为系统提供设备配网.调试和固件升级等 ...

  5. CAN/CAN_FD/Flexray的通信速率

    1.通信速率对比 Name 通信速率 CAN 1Mbit/s CAN_FD 5Mbit/s Flexray 10Mbit/s 2.终端欧电阻 CAN单端增加60欧姆的电阻,两端则是120欧姆

  6. 量子通信与计算机网络,中科大90后团队搭建 “量子鹊桥”,可将量子通信速率提升四倍,相关研究登上 Nature 封面 | 专访...

    中国神话传说中,每年农历七夕借助一座鹊桥,牛郎织女得以见一面. 试想一下,如果喜鹊飞快点,就能把桥搭得更快,牛郎和织女也能更早见面. 那么有可能实现更快搭桥吗? 在科学家眼中,这其实是一个通信问题 图 ...

  7. STC89C51 串口通信波特率设置

    STC89C51 串口通信波特率设置 //9600T2L = 0xE0; //设定定时初值T2H = 0xFE; //设定定时初值//115200T2L = 0xE8; //设定定时初值T2H = 0 ...

  8. 树莓派学习笔记——I2C设备载入和速率设置

    1.载入设备 方法1--临时载入设备 sudo modprobe -r i2c_bcm2708 #卸载设备 -r代表removesudo modprobe i2c_bcm2708 #重新载入设备 方法 ...

  9. 关于CAN通信速率在某些频段下不通的解决办法

    关于CAN通信速率在某些频段下不通的解决办法 现象描述 解决办法 现象描述 我在某个项目的时候遇到CAN通信只能够在50k.100k.800k和1000k下进行.而我要在500k通信速率下进行收发,但 ...

最新文章

  1. 时代变了,大人:RTX 3090时代,哪款显卡配得上我的炼丹炉?
  2. 网络通信之 字节序转换原理与网络字节序、大端和小端模式
  3. acwing 7 混合背包
  4. curl记录solr删除indexing
  5. InstallShield 常用常量
  6. Java枚举的定义,使用
  7. Dictionary加速查询(TryGetValue)
  8. Python实例讲解 -- wxpython 基本的控件 (按钮)
  9. c/c++开发技巧_常用do_while
  10. 微信小程序开发常用代码
  11. FastAPI(56)- 使用 Websocket 打造一个迷你聊天室
  12. 数据结构二叉树学习1-前序序列创建二叉树
  13. 在excel中使用宏和公式把汉字转换成拼音
  14. 机器人聊天软件c#_我的C#之路之简单的聊天机器人。
  15. 实现android广告栏效果
  16. 个人项目---音乐视频播放器
  17. 绘制超漂亮的基因差异表达火山图
  18. 路由器端口映射,远程桌面连接--端口映射+花生壳=让人访问你个人服务器或WEB站点...
  19. “黑马程序员”视频学习笔记之面向对象基础及调试问题
  20. 没有SEO的DiscuzQ 值不值得站长选择?

热门文章

  1. 让HTTPS简要易懂
  2. python doc_pydoc:python的文档工具
  3. 人机混合智能中跨域机理的研究
  4. java keydown事件_正确的方法来阻止keydown事件冒泡
  5. ATTCK实战系列 —— 红队实战(三)
  6. ASEMI代理LT8609AJDDM#WTRPBF原装ADI车规级芯片
  7. Windows提示无法访问指定设备、路径或文件该怎么办?
  8. 小红书的笔记可以看到访客记录吗?小红书笔记优化怎么做
  9. 硕士最高可提至100万/人!江苏某地再调整公积金政策
  10. 帮我出一份正规的可以促使眉毛生长的办法,以达到浓眉的目的