admin 发表于 2021-1-27 09:56:22

CAN总线网络“负载率”计算

“CAN总线负载率”表征的是单位时间内总线上的“位流”相对于总线带宽的占比。换就话说,总线实际数据传输速率与理论上能达到的数据传输速率的比值。以景区的负载率为例,每个景区都有一个容纳游客负荷上限人数(比如说10000人),如果此时景区内只有1000人,则此时景区负载率是10%。景区负载率是一个空间上的概念,它说明在空间上的资源被使用情况,而“CAN总线负载率”则描述是时间维度上资源被使用的情况:波特率为500Kbps的总线上每秒钟能够传输500000个BIT,如果在某一秒中总线上只传输了100000个BIT,则总线负载率为20%。CAN负载率默认为在一秒的时间范围内位资源的使用情况。在讲解CAN总线负载率之前,先就几个概念进行说明:
[*]波特率:波特率表示每秒钟传送的码元符号的个数,是衡量数据传送速率的指标,它用单位时间内载波调制状态改变的次数来表示(单位为波特)。如“1个波特”指每秒传输1个码元的符号。
[*]比特率:单位时间内,通信通道传送的二进制位数。单位为比特/秒(bit/s或bps)
[*]码元:在数字通信中常常用时间间隔相同的符号来表示数字。这样的时间间隔内的信号称为码元,这个间隔称为码元长度。
由于CAN通信中的信号是二进制的,所以对CAN来说波特率和比特率相等,只是业界习惯用bps表示CAN的波特率。下面开始介绍CAN总线负载率计算:CAN标准帧格式:帧最大长度共计108bit(默认帧长度为8)帧起始(1bit)、仲裁域(12bit)、控制域(6bit)、数据域(8×8bit)、循环冗余码域(15bit)、1bit分隔符、应答域(2bit)和帧结尾(7bit)
CAN扩展帧格式:帧最大长度共计128bit(默认帧长度为8)帧起始(1bit)、仲裁域(32bit)、控制域(6bit)、数据域(8×8bit)、循环冗余码域(15bit)、1bit分隔符、应答域(2bit)和帧结尾(7bit)在实际当中,帧与帧发送之间存在间隔,帧间隔有两种不同的形式:
主动错误状态的帧间隔:被动错误状态的帧间隔:
间隔段:连续三个隐性位;间隔段期间,所有节点不允许发送数据这或遥控帧,只要在这期间监听到显性位,接收节点就会发送过载帧。
空闲段:连续隐性位,个数不一定,0个或者多个都可以。总线空闲的时间是任意长的,只要总线空闲,节点就可以竞争总线。
暂停段:只有处于被动错误状态的节点在发送帧间隔的时候,才会在帧间隔中插入8个连续隐性位的暂停段。对单个CAN帧来说负载率:
[*]对CAN标准帧来说,发送一帧实际长度108+3=111Bit;

[*]对CAN扩展帧来说,发送一帧实际长度124+4=128Bit。
而CAN总线负载率是各个帧占用总线百分比之和。F = F1 + F2 + F3 + .....
另外如果已知一个CAN网络所有CAN_ID,并且知道它们的发送方式,可以粗略的估算出CAN网络的负载率:对应一个已知的CAN Trace可以统计一秒以内发送的帧数,来粗略计算该一秒以内的CAN负载率。
页: [1]
查看完整版本: CAN总线网络“负载率”计算