can的波特率/比特率
can控制器只需要进行少量的设置就可以进行通信,就像RS232那样。其中较难设置的部分就是通信波特率的计算。can总线能够在一定范围内容忍总线上can节点的通信波特率的偏差,这种技能使得can总线有很强的容错性,同时也降低了对每个节点的振荡器精度。
实际上,can总线的波特率是一个范围。假设定义的波特率是250KB/S,但是实际上根据对寄存器的设置,实际的波特率可能为200-300KB/S(具体取决于寄存器的设置)。
简单介绍一下波特率的计算,在can的底层协议里将can数据的每一位时间(TBit)分为许多的时间段(Tscl),这些时间段包括:位同步时间Tsync,时间段1Tseg1,时间段2Tseg2.
其中位同步时间占用1个Tscl;,时间段1占用(Tseg1+1)个Tscl;时间段2占用Tseg2+1个Tscl,所以can控制器的位时间TBit就是:
TBit = Tseg1+Tseg2+Tsync=(Tseg1+Tseg2+3)*Tscl,那么can的波特率canbps就是1/TBit。
但是这样计算出的值是一个理论值。在实际的网络通信中由于存在传输的延时,不同节点的晶体的误差等因数,使得网络can的波特率的计算变得复杂起来。can在技术上引入了重同步的概念,以更好的解决这些问题。
这样重同步带来的结果就是要么时间段1(Tseg1)增加TSJW(同步跳转宽度SJW+1),要么时间段减少TSJW,因此can的波特率实际上有一个范围:
1/(TBit+TSJW) <= CANbps <= 1/(TBit-TSJW)
CAN波特率的值由以下几个元素决定:
-
最小时间段Tscl
-
时间段1 Tseg1
-
时间段2 Tseg2
-
同步跳转宽度 SJW
那么Tscl是怎么计算的呢?
这是总线时序寄存器中的预分频寄存器BRP派上了用场,Tscl = (BRP+1)/FVBP,FVBP为微处理器的外设时钟。
tscl = pclk。
Tseg1和Tseg2又是怎么划分的呢?
Tseg1和Tseg2的长度决定了CAN数据的采样点,这种方式允许宽范围的数据传输延迟和晶体的误差。其中Tseg1用来调整数据传输延迟时间造成的误差,而Tseg2则用来调整不同点节点晶体频率的误差。
但是他们由于过于灵活,而使初次接触CAN的人有点无所适从。TSEG1与TSEG2的是分大体遵循以下规则: Tseg2≥Tscl2,Tseg2≥2TSJW,Tseg1≥Tseg2
总的来说,对于CAN的波特率计算问题,把握一个大的方向就行了,其计算公式可了规结为: BitRate = Fpclk/( (BRP+1) * ((Tseg1+1)+(Tseg2+1)+1)
最后,我们来说说如何计算波特率。
can总线有两个总线时钟寄存器BTR0、BTR1。
can系统时钟公式:
tscl = 2tclk(32BRP.5 + 16BRP.4 + 8BRP.3 + 4BRP.2 + 2*BRP.1 +BRP.0 + 1)
其中tclk=1/晶振频率=pclk。
同步跳转宽度:
Tsjw = “tscl”(2SJW.1 + SJW.0 + 1)
位周期T
TBit = Tseg1+Tseg2+Tsync=(Tseg1+Tseg2+3)*Tscl
Tseg1 = tscl*(8TSEG1.3 + 4TSEG1.2 +2*TSEG1.1 + TSEG1.0 + 1)
Tseg2 = tscl*(4TSEG2.2 +2TSEG2.1 + TSEG2.0 + 1)
CAN波特率=APB总线频率/BRP分频器/(1+tBS1+tBS2)。
比如:
总线时钟寄存器BTR0:0x2,;总线时钟寄存器BTR1:0x14。
TBit = tscl(1+5+2)=8tscl
tscl = 2tclk*(3) = 6tclk
TBit =48tclk
tclk = 1/48000000
TBit = 1/1000000
即can的波特率canbps就是1/TBit=1MHz。
相关文章:
can的波特率/比特率
can控制器只需要进行少量的设置就可以进行通信,就像RS232那样。其中较难设置的部分就是通信波特率的计算。can总线能够在一定范围内容忍总线上can节点的通信波特率的偏差,这种技能使得can总线有很强的容错性,同时也降低了对每个节点的振荡器精…...
项目经理涨薪秘籍!技巧都在这里了
好奇前辈们是如何带好团队、做出成功项目,从而升职加薪,成为高级项目经理或项目管理主管的?这是绝大多数新手PM最关注的事情。今天小编给大家揭秘! 一、刚入门如何进阶 从入门的项目管理者发展到中级的项目管理者,重…...
甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(一)
如果没有有效的时间管理工具,如工作时间日历,很难想象一个项目如何成功运转。这就是为什么我们的开发团队非常重视项目管理,并提供了多种选择来安排DHTMLX Gantt的工作时间。使用DHTMLX Gantt这个JavaScript库,您可以创建一个强大…...
健效达海豚妈妈儿保项目推介会盛大启幕,聚焦互联网+精准医疗
2023年10月12日,由上海健启星科技发展有限公司和北京安智因生物技术有限公司联合主办的“2023互联网精准医学平台助力基层医疗|海豚妈妈儿保项目推介会”在中国苏州盛大启幕。 本次项目推介会得到国内行业专家、权威学者、国内知名三甲名医教授、头部企业、学术大咖…...
使用XLua在Unity中获取lua全局变量和函数
1、Lua脚本 入口脚本 print("OK") --也会执行重定向 require("Test") 测试脚本 print("TestScript") testNum 1 testBool true testFloat 1.2 testStr "123"function testFun()print("无参无返回") endfunction te…...
springboot项目集成kafka,并创建kafka生成消息线程池
效果图: 步骤1:添加依赖 <!-- kafka依赖 --><dependency><groupId>org.apache.kafka</groupId><<...
PreScan与MATLAB联合仿真报错
一、 问题: Error:Matlab ||和&&运算符的操作数必须能够转换为逻辑标量值 二、解决办法 必须安装VS2013(我装的VS2017不行的),然后重启prescan和MATLAB,编译通过,界面如下: 三、VS…...
ros学习笔记(1)Mac本地安装虚拟机,安装Ros2环境
Ros与Linux的关系 Ros环境基于Linux系统内核 我们平时用的是Linux发行版,centos,ubuntu等等,机器人就用了ubunut 有时候我们经常会听到ubunue的版本,众多版本中,有一些是长期维护版TLS,有一些是短期维护…...
史上最强,Jmeter性能测试-性能场景设计实例(详全)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、性能测试需求 …...
【vim 学习系列文章 7-- vim vnormap nnoremap nmap map inoremap 区别】
文章目录 1.1 vim 递归映射和非递归映射1.1.1 vim 可视模式 1.2 map nmap vnormap nnoremap inoremap 区别 1.1 vim 递归映射和非递归映射 递归映射和非递归映射是 Vim 中两种不同的键盘映射方式。 递归映射(recursive map)是指在定义键盘映射时&#x…...
[ERROR] COLLATION ‘utf8_unicode_ci‘ is not valid for CHARACTER SET ‘latin1‘
[ERROR] COLLATION utf8_unicode_ci is not valid for CHARACTER SET latin1错误来源是: 跟着b站的谷粒商城项目做,前面的视频中设置了数据库的字符集编码,但是后面自己发现了MySQL容器重启报错,不停的在重启 查看log信息可以使用…...
基于rancher安装部署k8s
基础配置 systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configvi /etc/hosts ip1 node1 ip2 node2 ip3 node3#免密登录 ssh-keygenssh-copy-id -i ~/.ssh/id_rsa.pub 普通用户ip1…...
保姆级微服务部署教程
大家好,我是鱼皮。 项目上线是每位学编程同学必须掌握的基本技能。之前我已经给大家分享过很多种上线单体项目的方法了,今天再出一期微服务项目的部署教程,用一种最简单的方法,带大家轻松部署微服务项目。 开始之前,…...
springboot 定时任务
springboot 定时任务 在Spring Boot中,你可以使用Spring的Scheduled注解来创建定时任务。以下是一个简单的示例: 首先,你需要在Spring Boot的主类上添加EnableScheduling注解以启用定时任务功能。 import org.springframework.boot.Spring…...
【大数据】HBase入门指南
原创不易,注重版权。转载请注明原作者和原文链接 文章目录 HBase特性Hadoop的限制基本概念NameSpaceTableRowKeyColumnTimeStampCell 存储结构HBase 数据访问形式架构体系HBase组件HBase读写流程读流程写流程 MemStore Flush参数说明 StoreFile Compaction参数说明触…...
零售数据分析模板鉴赏-品类销售结构报表
不管是服装零售,还是连锁超市或者其他,只要是零售行业就绕不过商品数据分析,那么商品数据分析该怎么做?奥威BI的零售数据分析方案早早就预设好相关报表模板,点击应用后,一键替换数据源,立得新报…...
竞赛 深度学习 机器视觉 车位识别车道线检测 - python opencv
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …...
MySQL中使用函数会使索引失效?
文章目录 1、前置准备2、ChatGPT的答案3、实践证明SQL1SQL2SQL3SQL4SQL5 4、总结 1、前置准备 首先创建我们要测试的库表 CREATE TABLE lianhe_index (id int(11) NOT NULL AUTO_INCREMENT COMMENT id,name varchar(255) DEFAULT NULL,age int(11) DEFAULT NULL,number int(1…...
金和OA C6任意文件读取漏洞 复现[附POC]
文章目录 金和OA C6任意文件读取漏洞 复现[附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金和OA C6任意文件读取漏洞 复现[附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试…...
IP地址技术原理
IP地址是互联网中的关键元素,它允许数据在全球范围内进行路由和传输。本文将深入探讨IP地址的技术原理,包括IP地址的结构、IP地址分配、子网划分和IPv4与IPv6之间的转换。 第一部分:IP地址基础 1.1IP地址是什么? IP地址…...
Firecrawl MCP Server 在 Cursor 中的完美配置:10个实用技巧提升开发效率
Firecrawl MCP Server 在 Cursor 中的完美配置:10个实用技巧提升开发效率 【免费下载链接】firecrawl-mcp-server Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients. 项目地址: https://gitcode.com/gh_…...
2026别错过!降AI率工具深度测评与推荐
2026年真正好用的AI论文降重与改写工具,核心看降重效果、去AI味、格式保留、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...
SQL Server数据库标记为SUSPECT的紧急修复指南:从单用户到多用户模式的完整恢复流程
1. 数据库被标记为SUSPECT的常见原因 数据库突然变成SUSPECT状态,就像电脑突然蓝屏一样让人措手不及。我遇到过最典型的情况是机房突然断电,导致SQL Server没来得及完成所有事务就强制关闭了。这种情况下,数据库引擎为了保护数据完整性&#…...
TripoSR:0.5秒从单图到3D模型,开源3D重建的革命性工具
TripoSR:0.5秒从单图到3D模型,开源3D重建的革命性工具 【免费下载链接】TripoSR 项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR TripoSR是一款由Tripo AI与Stability AI联合开发的开源单图像3D重建模型,能够在短短0.5秒…...
2026秋招必备!大模型面试八股文精华(小白程序员必收藏)
本文整理了备战2026秋招时所需的大模型面试核心问题,涵盖LLM/VLM理论、RAG/Agent开发、RLHF对齐技术及模型评估等全链路知识。内容基于多次真实面试经历,建议读者先独立思考再对照答案,达到知其然更知其所以然的学习效果。预祝求职顺利&#…...
PX4串口通讯避坑指南:从波特率设置到数据收发全流程解析(以Serial4/5为例)
PX4串口通讯实战指南:从硬件配置到数据交互的深度解析 在无人机和机器人开发领域,PX4作为一款开源的飞控系统,其串口通讯功能是实现传感器数据采集、地面站通信以及外设控制的核心技术。然而,许多开发者在实际项目中常会遇到数据丢…...
Cowabunga Lite:iOS系统个性化定制的免越狱解决方案
Cowabunga Lite:iOS系统个性化定制的免越狱解决方案 【免费下载链接】CowabungaLite iOS 15 Customization Toolbox 项目地址: https://gitcode.com/gh_mirrors/co/CowabungaLite 在iOS生态系统中,用户对系统个性化的需求与日俱增,但传…...
ScintillaNET:打造专业级代码编辑器的终极Windows Forms解决方案
ScintillaNET:打造专业级代码编辑器的终极Windows Forms解决方案 【免费下载链接】ScintillaNET A Windows Forms control, wrapper, and bindings for the Scintilla text editor. 项目地址: https://gitcode.com/gh_mirrors/sc/ScintillaNET ScintillaNET是…...
拨叉[831002] 2-钻φ60孔夹具
拨叉作为机械传动系统中的关键零件,其加工精度直接影响设备运行的稳定性。在2-钻φ60孔的工序中,专用夹具的核心作用在于通过精准定位与可靠夹紧,确保孔径尺寸、位置度及表面粗糙度等关键指标符合设计要求。该夹具采用“一面两销”定位原理&a…...
深入Xilinx 7系列FPGA的PHY层:手把手拆解MIG如何驱动DDR3的地址/命令总线
深入Xilinx 7系列FPGA的PHY层:手把手拆解MIG如何驱动DDR3的地址/命令总线 在高速数字系统设计中,DDR3内存接口的稳定性和性能往往成为整个系统的瓶颈。对于使用Xilinx 7系列FPGA的工程师来说,MIG(Memory Interface Generator&…...
