什么是CAN总线负载率?怎么计算负载率?(附送负载率自动计算表格)
扫描二维码
随时随地手机看文章
回复【阻抗匹配】,获取电磁兼容性、阻抗匹配相关的资料回复【资料】,获取全部电子设计、单片机开发相关的资料回复【终端电阻】,获取CAN终端电阻相关的资料回复【单片机】,获取单片机全套视频教程和参考设计
回复【STM32】,获取STM32相关设计和视频教程回复【PCB】,获取PCB设计相关的资料回复【硬件知识】、【硬件设计】,获取硬件开发工程必备手册
回复【经典电路】,获取5000个经典电路
回复【论文】,获取毕业设计、电子竞赛、学术专业等相关论文资料…………
欢迎关注【玩转单片机与嵌入式】公众号,本公众号会以连载的形式对电容进行深入讲解,欢迎持续关注。
0、前言
近期小编发表了一些关于CAN总线的文章,(点击查看文章汇总),有粉丝在后台留言问:能否写一些关于CAN总线负载率的文章?大家都知道,我们是很宠爱自己的粉丝的,特此奉上本篇文章。
1、什么是CAN总线的负载率?
一般业内对负载率的定义为:实际数据传输速率和理论上能达到的数据传输速率的比值。
可类比景区的负载率进行理解:每个景区都有一个负荷上限,比如10000人,如果此时景区内只有1000人,那么这时的景区负载率是10%。如下图1和图2分别展示了景区高负载率和低负载率的情况。
图1:高负载率
图2:低负载率
景区负载率是一个在空间上定义的概念,它说明了在空间上资源的被使用情况,而总线负载率则不然,其是在时间上定义的一个概念,说明了在时间上资源被使用的情况。
因为传输速率一般是按秒来计算,数据传输速率既为每秒钟传输了多少个BIT,负载率也默认为在一秒的时间范围内位资源的使用情况。理论上波特率为500K的总线上每秒钟能够传输500000个BIT,如果在某一秒中总线上只传输了100000个BIT,则总线负载率为20%。
2、CAN总线负载率最大支持多少?
在行业内一般要求负载率不大于30%。
如果按照空间上负载率的概念做简单类比,CAN总线上一般要求负载率不大于30%似乎不能被理解,毕竟物尽其用这个观念是被大家广为接受的。要深入系统的理解为什么30%成为目前业内普遍遵守的负载率高压线,就不得的不引入CAN理论中另外几个重要的概念:ID仲裁、闲时发送和最大反应时间。
CAN总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不同的信号。因为各节点共用总线介质,对总线的使用权界定就至关重要。
先说结论:只有在总线空闲时,发送节点才能向总线上发送帧起始及后续帧ID,只有在帧ID赢得仲裁时,发送节点拥有总线控制权进而向总线发送报文剩余部分,在仲裁中失败的节点让出总线控制权等待下次总线空闲时继续尝试发送。
我们可以看到如果某一个节点需要发送一帧报文,它需要同时满足两个条件
1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到11个连续的隐性位;
2、所需发送的报文赢得ID仲裁,即报文优先级较高。
一个报文在试图发送时,必须满足上述两个条件才能完成发送。这里的问题就是:如果一个优先级相对较低的节点向外发报文时,会因为不断地在仲裁中失败而导致发送延迟。如果延迟过大会引起通讯失败。
负载率越高,代表需要发送的数据越多,相对来说低优先级节点发生通讯延迟的概率越大。
实际上30%的数据也只是一个经验数值,历史很悠久的一个经验数值。从本质上来看,限制负载率最终是要保证相对低优先级节点的通讯实时性,如果能通过网络及节点优化等手段满足每个节点的最大响应时间满足要求,负载率只是一个无关紧要的参数。
3:负载率计算
想要了解负载率的计算,需先清楚CAN总线的帧格式。
图3:CAN标准帧格式
图4:CAN扩展帧格式
图5:帧间隔假设
- Ui:各个信息帧占用总线百分比
- L:为报文的总长度
- C:为报文的总线占用时间
- N:为填充的位数
- t:为毛速率 ( 亦称波特率 )下的位时间
- L = N 8d g 13
- C = L * t
- Ui = C / T
网络负载率是 1s 内网络总线传输数据所占带宽的百分率。以上图网络矩阵表为例,假设总线速度为500Kbps,网络中有多帧信号,把每个信号帧所占的负载率算出来,相加即得到总的网络负载率。FBCM_1/FBCM_2这两帧的所占的负载率算法如下:负载率1 = (1000ms / 20ms) * 111 / 500000 = 0.0111 = 1.11%
负载率2 = (1000ms / 10ms) * 111 / 500000 = 0.0222 = 2.22%
4:负载率自动计算工具
根据以上的负载率计算原理,可以轻松整理出如下的表格,输入CAN总线的相关参数:波特率、ID个数、帧间隔、帧类型等,可以自动出总线负载率。请关注公众号【玩转单片机与嵌入式】,在后台回复【CAN负载率】,将自动发送负载率计算的工具给您。当然:本文的重点是讲解CAN总线负载率的原理及如何进行负载率计算;真实情况下不需要自动手动计算,可以使用CAN分析仪等工具可以轻松的读取到CAN总线负载率。End
限时免费扫码进群,交流更多行业技术
欢迎转发
每篇原创内容都是我们用心血换来的知识精华,如果您觉得本文有价值,欢迎转载分享;欢迎加入
如果您对单片机及嵌入式设计感兴趣,欢迎加入我们的辩论探讨,加我微信【xyzn3333】。
往期推荐PCB设计,考虑EMC时,应如何接地?对CAN总线的终端电阻,你知道多少?用最通俗的语言讲一讲,什么是阻抗匹配?CAN总线工程师常见问题及解答什么是can总线?can总线是数字信号还是模拟信号
点个在看你最好看