https://wenku.baidu.com/view/1f3ebacbb9f67c1cfad6195f312b3169a451eaa8.html

1、背景说明:

1.1为了讲清这个问题,需要先就两个概念进行说明:波特率和比特率。
波特率:单位时间内,通信通道传输码元的速率。1个波特指每秒传输1个码元的符号。(单位时间内调制状态改变的次数,单位为波特)
比特率:单位时间内,通信通道传送的二进制位数。1.2波特率和比特率的关系:
比特率=波特率*单个调制状态对应的二进制位数(比特率=波特率*log2n)由于CAN通信中的信号是二进制的,所以对CAN来说波特率和比特率相等,只是业界习惯用bps表示CAN的波特率。
2、CAN总线的通信负载率
2.1说明
负载率:CAN总线实际数据传输速率与理论上能达到的数据传输速率的比值。根据实验表明,负载率在30%的情况下,优先级高节点的平均报文传输时间和理论传输时间相差无几;而优先级低的存在20%左右的延时;当负载率达到60%的情况下,优先级最高的节点都有至少25%的延时,优先级最低的延时达到了4倍,根本无法满足实时性;当总线的平均利用率达到70%以上时,总线的通信将用可能出现拥堵的现象,极端的情况下将有可能造成错误帧的出现。
因此,负载率当然是越低越好,越能保证实时性,但是负载率太低就无法传输足够的数据,这是CAN的一个问题,在数据量大的时候无法保证实时性。一般的说法是30%左右的负载率是最好的。

2.2需要控制通信负载率的原因:

引入

CAN

理论中另外几个重要的概念:ID

仲裁、闲时发送和最大反应时间。

CAN

总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不

同的信号。

因为各节点共用总线介质,

对总线的使用权界定就至关重要。

只有在总线空闲时,

发送

节点才能向总线上发送帧起始及后续帧

ID,

只有在帧

ID

赢得仲裁时,

发送节点拥有总线控

制权进而向总线发送报文剩余部分,

在仲裁中失败的节点让出总线控制权等待下次总线空闲

时继续尝试发送。

即如果某一个节点需要发送一帧报文,它需要同时满足两个条件:

1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到

11

个连续的隐性位;

2、所需发送的报文赢得

ID

仲裁,即报文优先级较高。

一个报文在试图发送时,

必须满足上述两个条件才能完成发送。

这里的问题就是:

如果

一个优先级相对较低的节点向外发报文时,

会因为不断地在仲裁中失败而导致发送延迟。

果延迟过大会引起通讯失败。

负载率越高,

代表需要发送的数据越多,

相对来说低优先级节

点发生通讯延迟的概率越大。

引入

CAN

理论中另外几个重要的概念:ID

仲裁、闲时发送和最大反应时间。

CAN

总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不

同的信号。

因为各节点共用总线介质,

对总线的使用权界定就至关重要。

只有在总线空闲时,

发送

节点才能向总线上发送帧起始及后续帧

ID,

只有在帧

ID

赢得仲裁时,

发送节点拥有总线控

制权进而向总线发送报文剩余部分,

在仲裁中失败的节点让出总线控制权等待下次总线空闲

时继续尝试发送。

即如果某一个节点需要发送一帧报文,它需要同时满足两个条件:

1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到

11

个连续的隐性位;

2、所需发送的报文赢得

ID

仲裁,即报文优先级较高。

一个报文在试图发送时,

必须满足上述两个条件才能完成发送。

这里的问题就是:

如果

一个优先级相对较低的节点向外发报文时,

会因为不断地在仲裁中失败而导致发送延迟。

果延迟过大会引起通讯失败。

负载率越高,

代表需要发送的数据越多,

相对来说低优先级节

点发生通讯延迟的概率越大。

引入CAN理论中另外几个重要的概念:ID仲裁、闲时发送和最大反应时间。CAN总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不同的信号。
因为各节点共用总线介质,对总线的使用权界定就至关重要。只有在总线空闲时,发送节点才能向总线上发送帧起始及后续帧ID,只有在帧ID赢得仲裁时,发送节点拥有总线控制权进而向总线发送报文剩余部分,在仲裁中失败的节点让出总线控制权等待下次总线空闲时继续尝试发送。即如果某一个节点需要发送一帧报文,它需要同时满足两个条件:
1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到11个连续的隐性位;

2、所需发送的报文赢得ID仲裁,即报文优先级较高。
一个报文在试图发送时,必须满足上述两个条件才能完成发送。这里的问题就是:如果一个优先级相对较低的节点向外发报文时,会因为不断地在仲裁中失败而导致发送延迟。如果延迟过大会引起通讯失败。负载率越高,代表需要发送的数据越多,相对来说低优先级节点发生通讯延迟的概率越大。
实际上30%的数据也只是一个经验数值,历史很悠久的一个经验数值。从本质上来看,限制负载率最终是要保证相对低优先级节点的通讯实时性,如果能通过网络及节点优化等手段满足每个节点的最大响应时间满足要求,负载率只是一个无关紧要的参数。
3、相关计算:
CAN发送8字节的数据扩展帧,实际总线上传输数据还包括4个字节的帧ID,以及约6个节的帧头尾和校验。即一条CAN数据至少有18个字节,因此
针对1Mbps波特率,1S传输的帧数:
1M/8(位/字节)/18=7K

考虑到30%的负载率,1S传输的帧数为:2.1K针对125Kbps波特率,1S传输的帧数:
125K/8(位/字节)/18=868
考虑到30%的负载率,1S传输的帧数为:260

CAN波特率与负载率相关推荐

  1. CAN测量模块总线负载率,你关注了吗?

    一 背景 随着新能源汽车的飞速发展,整车系统日趋复杂,整车性能的可靠性也越来越重要.在车辆测试过程中,为应对更加多样的试验需求,传感器的种类和数量会随着测量种类而增加,由此数据量变得越发庞大,使得海量 ...

  2. 嵌入式软件调试:任务执行时间与负载率

    嵌入式软件调试:任务执行时间与负载率 1 基本概念及原理 1.1 负载率概念 1.2 时间统计方式 1.3 任务占用统计方式 2 功能函数执行时间测试 2.1 绝对执行时 2.2 相对执行时间(任务负 ...

  3. 用虹科Pico汽车示波器计算CAN总线负载率

    CAN总线负载率是指CAN总线上单位时间内实际传送的位数和可以传送的位数之比,也就是总线实际数据传输速率与理论上能达到的数据传输速率的比值.例如波特率为500kbps的CAN总线理论上每秒钟能够传输5 ...

  4. 10kv线路负载率计算_电工必懂计算公式,你若不会,如何立足于电力行业?

    一电力变压器额定视在功率Sn=200KVA,空载损耗Po=0.4KW,额定电流时的短路损耗PK=2.2KW,测得该变压器输出有功功率P2=140KW时,二次则功率因数2=0.8.求变压器此时的负载率b ...

  5. can总线报文是固定的吗_CAN总线负载率的计算方式

    今天这篇文章主要是介绍当前汽车中使用的总线的类型及负载率的计算方式,用于汽车电子工程师学习及应用在日常工作中:当前汽车中常见总线类型是CAN,CAN FD, FlexRay及LIN总线:今天我们先介绍 ...

  6. 网络带宽负载率怎么计算

    网络带宽负载率是衡量网络利用率的重要指标,它可以用以下公式计算: 带宽负载率 = (实际使用带宽 / 总带宽) * 100% 其中,实际使用带宽是指在某一时刻,网络传输的数据量:总带宽是指网络的理论最 ...

  7. 10kv线路负载率计算_10kV配电线路保护的整定计算

    1.10kV配电线路的特点 10kV配电线路结构特点是一致性差,如有的为用户专线,只接带一.二个用户,类似于输电线路:有的呈放射状,几十台甚至上百台变压器T接于同一条线路的各个分支上:有的线路短到几百 ...

  8. 倍福--控制器使用率和程序负载率查看

    基于CX2040做测试,将时间片和PLC扫描周期调到最低,测试CPU运行情况. 操作流程 1.1. 倍福Beckhoff 1.1.1. 控制器硬件 硬件用的是CX2040控制器,安装的是Win7系统T ...

  9. 【网络】通讯名词解释:带宽、速率、波特率、奈奎斯特定律、香农定理

    1.带宽 1.1 解释一 带宽,又叫频宽,是数据的传输能力,指单位时间内能够传输的比特数.高带宽意味着高能力. 数字设备中带宽用bps(b/s)表示,即每秒最高可以传输的位数. 模拟设备中带宽用Hz表 ...

  10. 码元、符号、波特率、比特率等概念的了解

    码元: 在数字通信中常常用时间间隔相同的符号来表示一位二进制数字.这样的时间间隔内的信号称为二进制码元,而这个间隔被称为码元长度. 符号: 即用于表示某数字码型[据位数不同,对应不同的键控调制方式]的 ...

最新文章

  1. mechanism and analysis
  2. php作品答辩问问题,一般答辩会问到什么问题
  3. Centos/ubuntu配置SVN服务
  4. TCP协议下 Socket 与 ServerSocket
  5. 佳博网络打印机改ip工具_换IP软件为什么是网络工作者首选工具?
  6. springboot 中文文档_还在用 Swagger生成接口文档?我推荐你试试它
  7. java js webservice_java Web技术探路:js Ajax调用WebService
  8. 数据结构之红黑树(三)——删除操作
  9. nginx nodejs环境配置_Linux 环境变量配置(Nodejs/MongoDB/JDK/Nginx)
  10. idea Terminal配置cmder(增加nodejs,git配置,jdk本地环境)
  11. cab文件打包的ActiveX控件(转)
  12. MySQL如何把A表查询出来的某个字段的数据插入到新增的字段的下面
  13. 如何配置风骚的android studio编辑器,让编程更优雅?
  14. php宠物社交领养网站
  15. meta分析零基础教程-Prospero选题注册全流程
  16. 2013年2月 VB100 测试成绩公布
  17. C++函数CreateProcess隐藏窗口
  18. 【OpenCV-Python-课程学习(贾)】OpenCV3.3课程学习笔记:图像色彩空间转换(cvtColor),imread()的grayscale和cvtColor()的区别、通道分离与转换
  19. Unity Mecanim动画的实现(一):基本程序
  20. 【分享】.Net有哪些大型项目、大型网站的案例?

热门文章

  1. 一些情况及问题的说明
  2. 110 Ruby 版本管理器【Rails后端开发训练营】
  3. 3d打印材料有哪几种
  4. 数显之家快讯:【SHIO世硕心语】会议显示需求的多样化带来新竞争!
  5. Navigator对象,获取浏览器类型userAgent,机器类型platform
  6. 今天给大家分享下收集的一些文案:日常文案系列合集,收藏备用
  7. Vue——Module build failed: TypeError: loaderContext.getResolve is not a function错误解决
  8. ZJNU 2314-Sleepy Cow Herding
  9. 隐函数存在定理隐函数的高阶导数
  10. 用Ps制作网页展示总结