电子说
信息在通信通道中传输的速率被称为波特率。通俗地说,波特率是数据在网络上传输的速度/速率。这是以比特/秒表示的。因此,一秒钟内在通信网络上传输的比特数就是波特率。
对于串行多主 CAN 总线,如果波特率被称为“500000波特”,则 CAN 上的该端口每秒最多可传输500000位。
CAN总线上支持的不同波特率:
● 125kbps
● 250kbps
● 500 kbps(大多数汽车应用的标准配置)
● 1000 kbps(1mbps)
各式各样的软件允许用户根据 CAN 总线的需要来设置总线速度。下面的图片来自 Influx 的 DiaLog 软件,用户可以自行选择总线速度(从各种可用的选项中选择)。
每一个波特率支持多少条信息?
CAN总线支持8字节长的数据传输。但是,这种长信息的传输会导致较大的延迟。在比特率约为1 Mbit/s的情况下,平均数据长度为4字节,使用标准格式每秒可传输多达10,000条信息,即在数据长度为8字节的情况下,每秒可发送多达7,200条信息。
使用简单的公式,人们可以计算出在 CAN 总线上传输一个帧的大概时间。
现在,举例来说,1个CAN帧大约包含125比特。
1 假设比特率=250 kBits/psec
位时间=1/位速率=1/(250*1000)s=4*s=4μs
因此,在使用250kBit/s时,1位在总线上的传输时间为4μs
因此,传输1帧的大致时间是(4 µs/bit * 125 bit)=500 µs
2 假设比特率=500 kBit/s
位时间=1/位速率=1/(500*1000)s=2*s=2µs因此,当使用500kBit/s时,1位在总线上的传输时间为2µs因此,传输1帧的大致时间是(2µs/bit * 125 bit)=250 µs
CAN总线负载率计算公式
总线负荷以百分比计算。
总线负载 = #bytes发送/速度
总线负载% = 字节数(在一秒钟内发送)*(8位)/(波特率bps)*100%。
假设一秒钟内要发送的字节数为1000
因此,在250kbps的情况下,总线负载%将成为:-
1000*8/250000*100% = 3.2%
同样,在500kbps时,总线负载%将变成:-
1000*8/500000*100% = 1.6%
然而,在较高的信息优先级下,通常可以实现70%到80%的总线使用率。
在给定的秒数内在总线上传输给定数量的帧。除非定义,否则每个消息(32位数据)的平均位假定为76位(可能有所不同)。
● 5ms -5帧
1/ 0.005 * 5 * 76 = 760,00
● 10ms -5帧。
1 / 0.010 * 5 * 76 = 38,000
● 100ms - 5帧
1 / 0.100 * 5 * 76 = 3800
总帧数=760,00+38000+3800=117800
波特率为250 kbps时的总线负载=117800/250000*100%=47.12%
波特率为500 kbps时的总线负载=117800/500000*100%=23.56%
在下面的截图中,我们可以看到 Influx 的Rebel CT/LT,通道(HS)的活动日志和跟踪查看器。在这里可以看到比特率和总线负载(总量、每秒和负载)等参数。此外,Rx/Tx 信息和错误帧(总数、每秒和负载)也可以轻松查看。
波特率是如何影响 CAN 总线长度的?
对于 CAN 总线来说,波特率和线缆的长度是成反比的,波特率越高,线缆的长度越短。
波特率 | 线缆长度 |
1 Mbit/s | 30 m- 40m |
800 kbit/s | 50m |
500 kbit/s | 100m -110m |
250 kbit/s | 240m - 250m |
125 kbit/s | 500 m |
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !