https://wenku.baidu.com/view/1f3ebacbb9f67c1cfad6195f312b3169a451eaa8.html
1、背景说明:
1.1为了讲清这个问题,需要先就两个概念进行说明:波特率和比特率。2.2需要控制通信负载率的原因:
引入
CAN
理论中另外几个重要的概念:ID
仲裁、闲时发送和最大反应时间。
CAN
总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不
同的信号。
因为各节点共用总线介质,
对总线的使用权界定就至关重要。
只有在总线空闲时,
发送
节点才能向总线上发送帧起始及后续帧
ID,
只有在帧
ID
赢得仲裁时,
发送节点拥有总线控
制权进而向总线发送报文剩余部分,
在仲裁中失败的节点让出总线控制权等待下次总线空闲
时继续尝试发送。
即如果某一个节点需要发送一帧报文,它需要同时满足两个条件:
1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到
11
个连续的隐性位;
2、所需发送的报文赢得
ID
仲裁,即报文优先级较高。
一个报文在试图发送时,
必须满足上述两个条件才能完成发送。
这里的问题就是:
如果
一个优先级相对较低的节点向外发报文时,
会因为不断地在仲裁中失败而导致发送延迟。
如
果延迟过大会引起通讯失败。
负载率越高,
代表需要发送的数据越多,
相对来说低优先级节
点发生通讯延迟的概率越大。
引入
CAN
理论中另外几个重要的概念:ID
仲裁、闲时发送和最大反应时间。
CAN
总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不
同的信号。
因为各节点共用总线介质,
对总线的使用权界定就至关重要。
只有在总线空闲时,
发送
节点才能向总线上发送帧起始及后续帧
ID,
只有在帧
ID
赢得仲裁时,
发送节点拥有总线控
制权进而向总线发送报文剩余部分,
在仲裁中失败的节点让出总线控制权等待下次总线空闲
时继续尝试发送。
即如果某一个节点需要发送一帧报文,它需要同时满足两个条件:
1、总线是空闲的,即目前没有任何节点在发送报文,在总线上表示为节点监测到
11
个连续的隐性位;
2、所需发送的报文赢得
ID
仲裁,即报文优先级较高。
一个报文在试图发送时,
必须满足上述两个条件才能完成发送。
这里的问题就是:
如果
一个优先级相对较低的节点向外发报文时,
会因为不断地在仲裁中失败而导致发送延迟。
如
果延迟过大会引起通讯失败。
负载率越高,
代表需要发送的数据越多,
相对来说低优先级节
点发生通讯延迟的概率越大。
引入CAN理论中另外几个重要的概念:ID仲裁、闲时发送和最大反应时间。CAN总线本质上是一种串口通讯,靠在时间线上对每一位的电压值进行调制来搭载不同的信号。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