车载网络测试 - 总线基础 - CAN总线负载计算

16e3e11cb70940a69525c1793f4e1295.png

        我想做过CAN总线测试的都有遇到过拉高总线负载相关的测试,这个时候我们一般都会通过增加报文的数量或者减小报文的周期来实现,但是CAN总线上的负载到底是如何计算的呢?我想很多人都会有这个疑问吧,那么今天我们一起来看下如何计算总线上的负载吧。下面我以标准CAN来进行举例说明。

标准CAN报文的组成

88027e1dd1624c3cb482d82ffd3b3ae1.png

1、起始位:1 bit

2、CANID识别位:11bit

3、控制域(IDE、r、DLC):6 bit control field

4、数据域:0 - 64 bit data field

5、CRC校验(CRC、DEL):16bit field

6、ACK域(ACK、DEL):2 bit

7、EOF结束位:7 bit field

8、帧后间歇位:3 bit field

9、位填充数据:每5个相同的位需要一个相反的位进行填充,大约18bit

        从以上CAN报文的组成我们能够计算出一帧标准CAN报文大约包含1 + 11 + 6 + 2 + 7 + 3 + 18 ≈ 125 bit。

负载计算

        这里我们以高速CAN 500 kBit/s bit rate的帧速率计算的话,大约1个bit传输需要的时间为:

        bit time = 1 / bit rate = 1 / (500 * 1000) s =  2 µs。

        那么大约每帧报文大约需要花费的时间为:(2 µs/bit * 125 bit) = 250 µs.

        在CAN总线上,以500 kBit/s bit rate的帧速率每10ms的周期发送CAN报文来计算CAN负载:

        250 µs / 100 ms = (250 / (10*1000)) * 100 % = 25000 / 100000 % = 2.5 %

        然而我们的总线上当然不会只存在一种周期的报文,当存在多种周期报文我们该如何进行计算呢?下面我们举一个例子看一下:

        总线上存在3个ID的报文,分别是0x101、0x102、0x103,周期分别是10ms、50ms、500ms,那么在1s中内出现在总线上的报文状态:

        ​0x101周期为10ms的报文:每秒钟可发出100帧报文

        0x102周期为50ms的报文:每秒钟可发出20帧报文

        0x103周期为500ms的报文:每秒钟可发出2帧报文

        那么我们可以计算出在1s中出现在总线上的报文一共是122帧报文,在总线上出现122帧报文一共需要的时间为122 * 250 µs = 30500 µs,1s等于1000ms * 1000 = 1 000 000 µs,因此总线负载就是:((122 * 250) / (1000 * 1000)) * 100 % = 3.05 %。

        注意:以上就是总线负载的计算方式只是标准CAN的,不过对于CANFD也是适用的,不过对于CANFD来说,单帧报文的bit位数和波特率有一定的差异,我们在计算的时候需要注意,而且数据段和数据的以外的部分需要分开进行计算。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/376900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10. Springboot集成Dubbo3(一)简单介绍

目录 1、前言 2、Dubbo3 2.1、什么是Dubbo3 2.2、Dubbo2 & Dubbo3 2.2.1、服务发现模型 2.2.2、RPC通信协议 2.2.2.1、Triple 协议 2.2.2.2、小结 2.2.3、云原生 2.2.4、maven依赖 2.2.5、性能 3、小结 1、前言 Dubbo是一个开源的Java分布式服务框架&#xff…

ProtonMail邮箱怎么样?国内有什么替代品?

ProtonMail作为业界知名的加密邮箱提供者,其安全性、隐私保护等特性让不少追求私密通信的用户趋之若鹜。然而对于国内用户而言,ProtonMail可能并非最佳选择,受限于许多因素,从语言支持到服务器位置再到可访问性,都可能…

个人博客说明

本人博客主要发布平台为博客园 https://www.cnblogs.com/carmi 更多详细,完整图片的文章还请师傅们动动小手到博客园去看吧。

泰克示波器——TBS2000系列界面整体介绍

目录 1.1 通道区域面板标识1.2 示波器测试输出(检测探针与设置的好坏)1.3 面板其他快捷按钮1.4 波器整体界面 1.1 通道区域面板标识 在通道面板的下方标识有示波器的通道属性以及参数值,如我使用的型号为“TBS2104X”的示波器,面…

【C#】.net core 6.0 设置根目录下某个文件夹可访问,访问创建的图片等资源

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

精酿啤酒:啤酒的后熟与包装过程的品质保障

啤酒的后熟与包装过程是确保产品品质的重要环节。对于Fendi Club啤酒来说,这一环节同样关键,它关系到啤酒的口感、风味和保质期的长短。 在啤酒的后熟过程中,Fendi Club啤酒酿造团队采用适当的温度和时间控制,让啤酒逐渐发展出更加…

ElastAlert 错误日志告警

文章目录 前言一、ElastAlert 概览1.1 简介1.2 ElastAlert 特性 二、ElastAlert 下载部署2.1 安装 Python3 环境2.2 下载 ElastAlert2.3 部署 ElastAlert 三、接入平台3.1 对外接口层3.2 服务层 前言 ElastAlert 是 Yelp 公司基于 python 开发的 ELK 日志告警插件,…

幻方(Magic Square)

幻方(Magic Square) 幻方概述 什么是幻方呢?幻方(Magic Square)就是指在nn(n行n列)的方格里填上一些连续的数字,使任意一行、任意一列和对角线上的数字的和都相等。例如有33的3行3…

【Linux】gdb调试与make/makefile工具

目录 导读 1. make/Makefile 1.1 引入 1.2 概念 1.3 语法规则 1.4 示例 2. Linux调试器-gdb 2.1 引入 2.2 概念 2.3 使用 导读 我们在上次讲了Linux编辑器gcc\g的使用,今天我们就来进一步的学习如何调试,以及makefile这个强大的工具。 1. mak…

VLAN间通信

VLAN间通信的三种方法 vlanif接口 最常用,又叫虚拟接口,这种方式一般使用三层交换机实现,它包含路由模块和交换模块,交换模块可以实现剥离和添加VLAN标签,路由模块实现路由功能 VLANif接口 为各自vlan的网关 # interface Vlani…

Page246~250 11.1GUI下的I/O基础

11.1.1 从“控制台”说起 “命令行交互界面”(简称CUI,也有人称为CLI)。 CUI需要我们记忆并在控制台输入命令文本内容,而GUI则以图形的方式呈现、组织各类命令,比如Windows的“开始”菜单,用户只需通过简单的键盘或鼠标操作&am…

跳格子3 - 华为OD统一考试

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 小明和朋友们一起玩跳格子游戏, 每个格子上有特定的分数 score [1, -1, -6, 7, -17, 7], 从起点score[0]开始,每次最大的步…

YOLO部署实战(2):使用OpenCV优化视频转图片流程并设置帧数

在计算机视觉和图像处理领域,OpenCV是一个强大的开源库,它为处理图像和视频提供了丰富的工具和功能。本文将介绍如何使用OpenCV将视频文件转换为一系列图片,并演示如何通过设置转换的帧数来优化这一过程。 1 Win10配置OpenCV 在Windows操作…

【Linux】基于管道进行进程间通信

进程间通信 一、初识进程间通信1. 进程间通信概念2. 进程间通信分类 二、管道1. 管道概念2. 管道原理3. 匿名管道4. 匿名管道系统接口5. 管道的特性和情况6. 匿名管道的应用(1)命令行(2)进程池 7. 命名管道(1&#xff…

c++阶梯之类与对象(中)< 续集 >

前文: c阶梯之类与对象(上)-CSDN博客 c阶梯之类与对象(中)-CSDN博客 前言: 在上文中,我们学习了类的六个默认成员函数之构造,析构与拷贝构造函数,接下来我们来看看剩下…

操作系统-信号量机制(整型信号量 记录型信号量)与用信号量实现进程互斥,同步,前驱关系

文章目录 信号量机制总览信号量机制整型信号量记录型信号量例子记录型信号量小结 小结 用信号量实现进程互斥,同步,前驱关系总览信号量机制实现进程互斥信号量机制实现进程同步进程同步信号量实现进程同步 信号量机制实现前驱关系小结 信号量机制 总览 …

索引失效问题

1、 like 以%开头,索引无效;当like前缀没有%,后缀有%时,索引有效。 (1)创建索引 create index text1 on emp(name); (2)不走索引 EXPLAIN select id,name,age,workno from emp wh…

什么是MVVM模型

MVVM(Model-View-ViewModel)是一种用于构建 Web 前端应用程序的架构模式。它是从传统的 MVC(Model-View-Controller)模型演变而来,旨在解决界面逻辑与业务逻辑之间的耦合问题。 在传统的 MVC 架构中,View …

【Linux笔记】文件系统与软硬链接

一、文件系统概述 1.1、先来聊一聊“磁盘” 在讲解文件系统之前,我觉得有必要先聊一下“磁盘”,因为我觉得如果弄懂了磁盘的存储原理,大家可能更容易理解文件系统是怎么管理数据的,并且理解计算机是怎么将磁盘抽象到文件系统的。…

前端常用代码整理(不断更新中)— js,jquery篇

1.随机函数代码 function getRandom(min, max) {return Math.floor(Math.random() * (max - min 1)) min}2.倒计时代码 let now new Date()// 2. 得到指定时间的时间戳let last new Date(这里写想要达到的时间)// 3. (计算剩余的毫秒数) / 1000 剩余…