关于CAN通信速率设置
一、
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通信速率设置相关推荐
- can通道采样频率_关于CAN通信速率设置
关于CAN通信速率设置 [复制链接] 一. CAN时钟周期(Tq)=2*晶振时钟*BRP(波特率预分频值 baudrate prescaler) 一个CAN时间称为一个时间量子 Tq 1)同步段(Sy ...
- linux设置网卡速度,linux系统下网卡通信速率修改方法
修改网卡的通信速率.全双工/半双工模式.具体操作方案如下: · 查看网卡通信速率 查看linux平台下网卡的通信速率,可以通过"ethtool ethX"来完成,下图为查看linu ...
- BLE 蓝牙实现最大通信速率
1. 为什么不可能达到BLE的理论速度? 1 Mbps (LE 1M PHY).2 Mbps (LE 2M PHY).125 kbps 和 500 kbps(均使用 S=8 和 S=2 的 LE 编 ...
- 启明云端分享|乐鑫 ESP-NOW 无线通信方案主要特点、应用以及NOW一对一模式下通信速率
ESP-NOW是乐鑫定义的基于数据链路层的无线通信协议,可与 Wi-Fi 和 Bluetooth LE 共存,既能实现稳定的设备连接和控制,也能作为独立的辅助模块,为系统提供设备配网.调试和固件升级等 ...
- CAN/CAN_FD/Flexray的通信速率
1.通信速率对比 Name 通信速率 CAN 1Mbit/s CAN_FD 5Mbit/s Flexray 10Mbit/s 2.终端欧电阻 CAN单端增加60欧姆的电阻,两端则是120欧姆
- 量子通信与计算机网络,中科大90后团队搭建 “量子鹊桥”,可将量子通信速率提升四倍,相关研究登上 Nature 封面 | 专访...
中国神话传说中,每年农历七夕借助一座鹊桥,牛郎织女得以见一面. 试想一下,如果喜鹊飞快点,就能把桥搭得更快,牛郎和织女也能更早见面. 那么有可能实现更快搭桥吗? 在科学家眼中,这其实是一个通信问题 图 ...
- STC89C51 串口通信波特率设置
STC89C51 串口通信波特率设置 //9600T2L = 0xE0; //设定定时初值T2H = 0xFE; //设定定时初值//115200T2L = 0xE8; //设定定时初值T2H = 0 ...
- 树莓派学习笔记——I2C设备载入和速率设置
1.载入设备 方法1--临时载入设备 sudo modprobe -r i2c_bcm2708 #卸载设备 -r代表removesudo modprobe i2c_bcm2708 #重新载入设备 方法 ...
- 关于CAN通信速率在某些频段下不通的解决办法
关于CAN通信速率在某些频段下不通的解决办法 现象描述 解决办法 现象描述 我在某个项目的时候遇到CAN通信只能够在50k.100k.800k和1000k下进行.而我要在500k通信速率下进行收发,但 ...
最新文章
- 时代变了,大人:RTX 3090时代,哪款显卡配得上我的炼丹炉?
- 网络通信之 字节序转换原理与网络字节序、大端和小端模式
- acwing 7 混合背包
- curl记录solr删除indexing
- InstallShield 常用常量
- Java枚举的定义,使用
- Dictionary加速查询(TryGetValue)
- Python实例讲解 -- wxpython 基本的控件 (按钮)
- c/c++开发技巧_常用do_while
- 微信小程序开发常用代码
- FastAPI(56)- 使用 Websocket 打造一个迷你聊天室
- 数据结构二叉树学习1-前序序列创建二叉树
- 在excel中使用宏和公式把汉字转换成拼音
- 机器人聊天软件c#_我的C#之路之简单的聊天机器人。
- 实现android广告栏效果
- 个人项目---音乐视频播放器
- 绘制超漂亮的基因差异表达火山图
- 路由器端口映射,远程桌面连接--端口映射+花生壳=让人访问你个人服务器或WEB站点...
- “黑马程序员”视频学习笔记之面向对象基础及调试问题
- 没有SEO的DiscuzQ 值不值得站长选择?