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波特率相关推荐

  1. 【前端html+js】实现按下按钮显示当前时间(21位和中国国际时间)

    html+js实现按下按钮显示当前时间(21位和中国国际时间) <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  2. mysql中当前时间九点_MySQL 获得当前日期时间(以及时间的转换)

    1.1 获得当前日期+时间(date + time)函数:now()除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:current_timestamp() current_ ...

  3. datetime mysql 当天_MySQL 获得当前日期时间(以及时间的转换)

    @MySQL 获得当前日期时间(以及时间的转换) 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: c ...

  4. mysql加减时间-函数-时间加减

    select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT   substring( timediff('23:40:00', ' 18:30: ...

  5. js时间搓转时间,日期横杠转斜杠,时间转时间搓,年月日补个零,星期几,获取当前时间

    console.log("2020-7-7".replace(/\-/g, "/"));//日期横杠转斜杠 console.log(new Date(" ...

  6. python下的日期与时间(时间格式转换、时间戳处理,时间差处理)

    python下的日期与时间 一.在Python中,时间主要有三种表示形式, 1.时间戳(TimeStamp):1970年1月1日之后的秒 2.时间元组格式化形式 包含了:年.日.星期 得到time.s ...

  7. MySQL 获得当前日期时间以及时间的转换

    一.获得当前日期时间 1.获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp ...

  8. iOS数字时间与时间的相互转换

    数字时间戳与时间的相互抓换 注意:由于java比php的时间精确,所以,后台数据的时间java是13位的,而php是10位的,iOS时间抓换只支持10位数的,所以如果java写后台的话,把数字/100 ...

  9. c/c++ 修改文件的创建时间,修改时间,访问时间 [和弦]

    一直想抽点时间将 c/c++ 系统的学学,毕竟c/c++有时候在会比较方便些,c#写多了,也想换换语言使使,开阔下视野,使自己看问题能更宏观些,做项目的时候也会有更多选择.于是就想记点笔记,以便复习, ...

  10. php怎么输出以前的时间,php输出指定时间以前时间格式的方法_PHP

    本文实例讲述了php输出指定时间以前时间格式的方法.分享给大家供大家参考.具体分析如下: 比如说你需要在php中输出3天前,20分钟以前,可以参考下面的代码 function ago($time) { ...

最新文章

  1. 3大VR虚拟现实产品PK赛:HTC、Oculus、索尼谁是大哥
  2. Swap交换分区概念
  3. /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err
  4. linux系统服务器性能综合测试(UnixBench5)
  5. SAP Spartacus ComponentData的提前subscription
  6. 阿里P8亲自讲解!java中级开发工程师需要掌握的技能
  7. PHP_Smarty
  8. 工作两个月的感受随笔
  9. 樊正伦教授的养生之道中医文化与养生之---调情志
  10. Navicat连接本地数据库报错问题解决方案
  11. Rhino导入Revit生成体量幕墙的方法和操作要点
  12. 各种redhat版本下载
  13. ARM920T的MMU
  14. 微信小程序保存图片以及分享给朋友
  15. 收集整理的ARM嵌入式linux开发入门视频教程
  16. 上下文无关文法及其分析树
  17. Rstudio的安装操作
  18. php判断是否是微信浏览器,php判断是否为微信浏览器浏览简单示例
  19. 身份证ocr的API接口,让身份证信息录入更快捷
  20. 合天网安 在线实验 CTF竞赛 writeup(第七周 | 再见上传、第八周 | 随意的上传、第十三周 | simple xxe、第十五周 | 回显的SSRF)

热门文章

  1. 干活的累死累活,数据分析师最后还要会写PPT的5条原则
  2. 项目之网易游戏官网-合作产品部
  3. 程序设计 PTA 7-4 进步排行榜
  4. 章子怡汪峰深夜吃火锅
  5. 开发编码格式_编码和游戏开发
  6. 闲鱼淘客怎么引流,收藏好这篇你就不用愁了
  7. 2023年(美赛)美国大学生数学建模竞赛ABCDEF题思路资料汇总【全网最全】
  8. egg定时和定点任务
  9. 【Premiere】入门自学 4
  10. matlab中动态绘制曲线