位时间(Tbit) 时间份额(TQ) CAN波特率
MCP2515芯片得CAN波特率计算
先确定BRP(CAN波特率预分频器)BRP该设置为多少不太确定–哈哈哈
再根据公式:TQ = 2*(BRQ + 1)/Fosc 计算出TQ
注意:BRQ为啥加一,BRQ是寄存器的设置值,从零开始计数
再根据:NBR = 1/Tbit 即CAN波特率 = 1/位时间 或者:CAN波特率 = 1/nTQ
位时间 = n个TQ
计算出n,然后把这n个TQ合理分配给同步段,传播段,相位缓冲段1,相位缓冲段2,
怎么合理分配?
同步段 (SyncSeg)为 NBT 中的首段,用于同步 CAN
总线上的各个节点。输入信号的跳变沿就发生在同步
段,该段持续时间为 1 TQ
传播段(PropSeg)用于补偿各节点之间的物理传输延
迟时间。传输延迟时间为信号在总线上传播时间的两
倍,包括总线驱动器延迟时间。传播段的长度可编程设
定为 1 – 8 TQ。
相位缓冲段 1 (PS1)和相位缓冲段 2 (PS2)
两个相位缓冲段 PS1 和 PS2 用于补偿总线上的边沿相
位误差。通过再同步,可以延长 PS1 (或缩短 PS2)。
PS1 可编程设定为 1 – 8 TQ,而 PS2 可编程设定为 2 –
8 TQ。
对时间段的编程设定必须满足以下要求:
• 传播段 + 相位缓冲段 PS1 >= 相位缓冲段 PS2
• 传播段 + 相位缓冲段 PS1 >= TDELAY
• 相位缓冲段 PS2 > 同步跳转宽度 SJW
例如,假设 FOSC = 20 MHz 时欲实现 125 kHz 的 CAN
波特率:
TOSC = 50 ns,选择 BRP<5:0> = 04h,则 TQ = 500 ns。
欲达到 125 kHz,位时间应为 16 TQ。
位的采样时刻取决于系统参数,通常应发生在位时间的
60-70% 处。同时, TDELAY 典型值为 1-2 TQ。
同步段 = 1 TQ,传播段 = 2 TQ,这种情况下设置相位缓
冲段 PS1 = 7 TQ,将会在跳变之后的 10 TQ 时进行采
样。此时相位缓冲段 PS2 长度为 6 TQ。
由于相位缓冲段 PS2 长度为 6 TQ,根据规则, SJW 最
大值为 4 TQ。然而通常状况下,只有当不同节点的时钟
发生不够精确或不稳定(如采用陶瓷谐振器)时,才需
要较大的 SJW。一般情况下,SJW 取值 1 TQ 即可满足
要求。
位时间(Tbit) 时间份额(TQ) CAN波特率相关推荐
- 【前端html+js】实现按下按钮显示当前时间(21位和中国国际时间)
html+js实现按下按钮显示当前时间(21位和中国国际时间) <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- mysql中当前时间九点_MySQL 获得当前日期时间(以及时间的转换)
1.1 获得当前日期+时间(date + time)函数:now()除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:current_timestamp() current_ ...
- datetime mysql 当天_MySQL 获得当前日期时间(以及时间的转换)
@MySQL 获得当前日期时间(以及时间的转换) 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: c ...
- mysql加减时间-函数-时间加减
select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT substring( timediff('23:40:00', ' 18:30: ...
- js时间搓转时间,日期横杠转斜杠,时间转时间搓,年月日补个零,星期几,获取当前时间
console.log("2020-7-7".replace(/\-/g, "/"));//日期横杠转斜杠 console.log(new Date(" ...
- python下的日期与时间(时间格式转换、时间戳处理,时间差处理)
python下的日期与时间 一.在Python中,时间主要有三种表示形式, 1.时间戳(TimeStamp):1970年1月1日之后的秒 2.时间元组格式化形式 包含了:年.日.星期 得到time.s ...
- MySQL 获得当前日期时间以及时间的转换
一.获得当前日期时间 1.获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp ...
- iOS数字时间与时间的相互转换
数字时间戳与时间的相互抓换 注意:由于java比php的时间精确,所以,后台数据的时间java是13位的,而php是10位的,iOS时间抓换只支持10位数的,所以如果java写后台的话,把数字/100 ...
- c/c++ 修改文件的创建时间,修改时间,访问时间 [和弦]
一直想抽点时间将 c/c++ 系统的学学,毕竟c/c++有时候在会比较方便些,c#写多了,也想换换语言使使,开阔下视野,使自己看问题能更宏观些,做项目的时候也会有更多选择.于是就想记点笔记,以便复习, ...
- php怎么输出以前的时间,php输出指定时间以前时间格式的方法_PHP
本文实例讲述了php输出指定时间以前时间格式的方法.分享给大家供大家参考.具体分析如下: 比如说你需要在php中输出3天前,20分钟以前,可以参考下面的代码 function ago($time) { ...
最新文章
- 3大VR虚拟现实产品PK赛:HTC、Oculus、索尼谁是大哥
- Swap交换分区概念
- /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err
- linux系统服务器性能综合测试(UnixBench5)
- SAP Spartacus ComponentData的提前subscription
- 阿里P8亲自讲解!java中级开发工程师需要掌握的技能
- PHP_Smarty
- 工作两个月的感受随笔
- 樊正伦教授的养生之道中医文化与养生之---调情志
- Navicat连接本地数据库报错问题解决方案
- Rhino导入Revit生成体量幕墙的方法和操作要点
- 各种redhat版本下载
- ARM920T的MMU
- 微信小程序保存图片以及分享给朋友
- 收集整理的ARM嵌入式linux开发入门视频教程
- 上下文无关文法及其分析树
- Rstudio的安装操作
- php判断是否是微信浏览器,php判断是否为微信浏览器浏览简单示例
- 身份证ocr的API接口,让身份证信息录入更快捷
- 合天网安 在线实验 CTF竞赛 writeup(第七周 | 再见上传、第八周 | 随意的上传、第十三周 | simple xxe、第十五周 | 回显的SSRF)