CAN总线波特率的基础知识

电子说

1.3w人已加入

描述

信息在通信通道中传输的速率被称为波特率。通俗地说,波特率是数据在网络上传输的速度/速率。这是以比特/秒表示的。因此,一秒钟内在通信网络上传输的比特数就是波特率。

对于串行多主 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

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分