当前位置:首页 > > 玩转单片机与嵌入式
[导读]▼点击下方名片,关注公众号▼大家好,很高兴和各位一起分享我的第32篇原创文章,喜欢和支持我的工程师,欢迎给我点赞、收藏、分享。加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复...

点击下方名片,关注公众号

大家好,很高兴和各位一起分享我的第32篇原创文章,喜欢和支持我的工程师,欢迎给我点赞、收藏、分享。

加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。

欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。

回复【电容】,获取电容、元器件选型相关的内容;

回复【阻抗匹配】,获取电磁兼容性、阻抗匹配相关的资料

回复【资料】,获取全部电子设计、单片机开发相关的资料

回复【终端电阻】,获取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

然而总线负载率是各个信息帧占用总线百分比之和。

U = U1 U2 U3 .....

注:g 为CAN报文中控制位的总位数 ( 标准帧 g =34 , 扩展帧 g = 54 )g的取值是只取位填充部分除去数据段。

负载率计算例子:

网络负载率是 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总线是数字信号还是模拟信号


点个在看你最好看


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在嵌入式系统开发中,总线错误(Bus Error)与段错误(Segmentation Fault)并称两大"程序杀手"。不同于段错误源于非法内存访问,总线错误本质是硬件对访问方式的严格约束被突破,尤其在ARM架构中表现尤...

关键字: 嵌入式开发 CAN总线

在工业物联网与智能汽车时代,CAN总线作为最成熟的现场总线之一,其传输距离的精准计算直接影响系统可靠性。本文将从信号特性、环境因素及工程优化三个层面,系统阐述CAN总线传输距离的计算方法与实践策略。

关键字: CAN总线 工业物联网

在工业控制与汽车电子领域,CAN总线凭借其高可靠性和实时性成为主流通信协议。本文以CAN 2.0B规范为核心,结合STM32F407硬件平台,系统阐述总线仲裁优化与错误处理机制的实现方法,通过实战案例展示通信可靠性提升效...

关键字: CAN总线 总线仲裁机制

5G基站、数据中心等通信基础设施,电源系统的灵活性与可靠性成为关键需求。传统通信电源采用固定配置设计,扩容或维护需专业人员现场操作,耗时且易出错。即插即用(Plug-and-Play, PnP)技术通过模块化架构与智能识...

关键字: 通信电源 CAN总线 AI诊断

在汽车电子与工业自动化领域,CAN(Controller Area Network)总线技术已成为不可或缺的通信协议。自1986年由德国博世公司开发以来,CAN总线凭借其高可靠性、实时性和灵活性,从最初的汽车电子控制网络...

关键字: CAN总线 ECU

工业嵌入式系统对实时性、可靠性和抗干扰能力的要求日益严苛,传统串行通信协议(如RS-485)在多节点扩展性和容错性上的局限性逐渐凸显。控制器局域网(CAN)总线凭借其非破坏性仲裁机制、差分信号传输和错误检测能力,成为工业...

关键字: CAN总线 工业嵌入式

在工业显示设备与控制系统高速互联的场景中,信号传输的可靠性与抗干扰能力直接决定系统稳定性。RS-485与CAN总线作为工业通信领域的两大核心协议,其信号隔离设计面临电磁干扰、地电位差、高压冲击等多重挑战。光电耦合器凭借其...

关键字: 光电耦合器 RS-485 CAN总线

在工业自动化与智能交通领域,CAN总线因其高可靠性、抗干扰能力和实时性,成为设备间通信的核心协议。然而,单CAN总线存在单点故障风险,一旦总线节点或线路损坏,可能导致整个系统瘫痪。针对这一痛点,基于STM32的双CAN总...

关键字: STM32 CAN总线

在嵌入式系统开发中,CAN(Controller Area Network)总线因其高可靠性、实时性和抗干扰能力,广泛应用于汽车、工业自动化、智能设备等领域。本文将深入探讨嵌入式设备CAN总线的开发,从协议解析到错误处理...

关键字: 嵌入式 CAN总线

在现代汽车电子控制系统和工业自动化领域,CAN(Controller Area Network)总线作为一种高效、可靠的通信协议,扮演着至关重要的角色。然而,在CAN网络运行过程中,由于各种内外因素,节点可能会进入BUS...

关键字: CAN总线 缓冲区 BUS OFF
关闭