• 513查看
  • 0回复

[网络开发] CAN通讯系列6- 波特率是什么?

[复制链接]


该用户从未签到

发表于 7-1-2024 16:29:53 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在前面三篇文章:


CAN通讯系列3-CAN通讯如何传递信号CAN通讯系列4- CAN数据帧及其仲裁CAN通讯系列5- CAN总线定义我们已经解决了一个控制器的多个信号通过怎样的形式传递给另一个控制器,即通过CAN数据帧,包含报文ID,数据长度和数据等信息,并在物理层面以怎样的电压形式进行传递。
[img=509.54998779296875,340.010009765625]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyBjHibQqSUk5UcO5RkUou2mvukicCAXhGNvzUMoSfZwpf2Vlj8ujcG7j0tCgeO1Cia6B1GCpDZichlV7g/640?wx_fmt=png[/img]
但关于CAN通讯的传输速率或波特率,即CAN报文数据以多快的速度在控制器间进行传递,我们还不得而知,对此本文将进行介绍。1 时间相关量  


我们知道一帧数据(即一个完整的数据帧)由很多位组成,那么所谓的通信速率是指一位数据传输所需要的时间。为了弄清楚传输一位数据需要多长时间,需要了解几个时间相关量:

1)晶振时钟周期,由单片机振荡器的晶振频率决定的,是指振荡器每振荡一次产生一个脉冲所消耗的时间长度,也是整个系统中最小的时间单位。比如某单片机的晶体振荡器频率为40MHz,那我们就说这个单片机系统的时钟周期是1/(40MHz),约为25纳秒(ns)。2)CAN时钟周期,由系统时钟分频而来的一个时间长度值,即类似于机器周期与晶振时钟周期的关系,按照特定的公式计算:CAN时钟周期 =2 x 晶振时钟周期 x BRP,其中,BRP叫做波特率分频值。3)时间量子Tq(Time Quantum),把一个CAN时钟周期称为一个时间份额或时间量子Tq,Tq是构成CAN报文中一位(bit)数据的最小时间单位。
[img=529.4099731445312,267.030029296875]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyBjHibQqSUk5UcO5RkUou2mv6J3PCX4SM4icqkGBicTO72BicsDLdIbn8lvz7krMzR1yceEehicOqW7b8w/640?wx_fmt=png[/img]
      
4)CAN位时间,由这三个时间相关量,就知道如何根据微控制器的晶振频率分频得到Tq,而CAN报文中每一位数据都由由同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2)四个段组成,每个段由若干个时间量子Tq组成,也就是说CAN报文中一位数据的传输需要耗费若干个Tq,把一位数据的传输时间称为CAN位时间,如下所示:   
[img=510.45001220703125,189.6199951171875]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyBjHibQqSUk5UcO5RkUou2mvT20GoHGPrVNIq9j5bbJTv2troyMBWuQ5jGfGpTgvE0VEXV9YB0sAUg/640?wx_fmt=png[/img]
   再了解下这四个段的作用和所需的Tq数量,如下表:
[img=512.27001953125,387.07000732421875]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyBjHibQqSUk5UcO5RkUou2mvoAhg7z693s4afAuricOMQQYjnwtylMpvMzLYHejVpuwKUQhBOJDNuDQ/640?wx_fmt=png[/img]
     
2 CAN通讯速率  

CAN通讯作为异步通信方式,收发双方节点是按照约定相同的波特率(位传输速率)进行通讯。比如将高速CAN的波特率设置为500Kbps,意思就是1s时间能传输500,000位的数据,即传输1位数据需要2000ns。同理,波特率设为250Kbps,那么传输1位数据需要4000ns。这样就将波特率和上面的时间相关量联系起来了,它们的逻辑是:一方面先定义好目标的CAN通讯速率,即传输1位数据的速率应该是多少;另一方面,根据这几个时间相关量的关系来确定BRP和Tq的数量。3 实例  

例:微控制器晶振时钟周期频率为40MHz,CAN位时间为8个Tq,采样点为75%,要设置CAN通讯的波特率为500Kbps,如何实现?首先,获取晶振时钟周期。由微控制器的晶振时钟周期频率为40MHz可得,晶振时钟周期=1/40MHz=25ns;然后,计算CAN时钟周期,即时间量子Tq。因为目标的波特率要设置为500Kbps,换算时间1/500 Kbps =2000ns,即CAN位时间为2000ns,等于8个Tq,那么Tq=250ns。而根据计算公式:Tq=CAN时钟周期 =2 x 晶振时钟周期 x BRP,所以BRP为5时满足。最后,确定同步段、传播时间段、相位缓冲段1和相位缓冲段2四个段对应的Tq数。同步段的Tq数是固定的1Tq,传播时间段的Tq数设为2Tq,相位缓冲段2的Tq数是根据采样率来计算,定义采样点在相位缓冲段1和相位缓冲段2之间,采样率为前三段的Tq数与四段的总Tq数比值的百分比,如下图,第1个采样率 =(7Tq/10Tq) x 100% = 70%,第2个采样率为60%。   
[img=356.530029296875,240.53997802734375]https://mmbiz.qpic.cn/sz_mmbiz_png/53T8VYNiabyBjHibQqSUk5UcO5RkUou2mv1Yb7FOqrR5dWufVUFic2tWI1XGUJh6Somw9Y5tUxpsiav78icOgOSbbGw/640?wx_fmt=png[/img]
而本例的采样率为75%,那么相位缓冲段2有2Tq,而CAN位时间是8Tq,所以最后分配3Tq给相位缓冲段1。这样就确定了同步段(1Tq)、传播时间段(2Tq)、相位缓冲段1(3Tq)和相位缓冲段2(2Tq)的Tq数。4 小结到此上文就简单介绍波特率相关的内容,包括概念,原理和实现,应该建立起了一个基本的认识,但其中部分内容解释详尽程度有限,比如四个段的概念,应用与Tq数的确定,因此,下篇文章将对此进行更详细的解释,同时也会有助于理解接收方如何采集每一位数据。


该用户从未签到

发表于 16-3-2025 01:33:00 | 显示全部楼层
波特率是在CAN通讯中用于定义数据传输速率的参数。它是每秒钟内传输的数据位数或符号数。在前面的文章中,我们讨论了CAN数据帧的结构和传输方式,而波特率决定了这些数据的传输速度。高波特率意味着更高的数据传输速率,但同时也可能增加错误风险。反之,低波特率提供更为稳定和可靠的数据传输。正确选择和设置波特率对确保CAN通讯的质量和效率至关重要。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:33:00 | 显示全部楼层
波特率(Baud Rate)是CAN通讯中描述数据传输速率的重要参数。它表示每秒传输的数据位数,决定了CAN通讯系统中数据帧传输的快慢。在CAN通讯系列之前的文章中,我们了解了CAN数据帧包含报文ID、数据长度和数据等信息。波特率的选择需与CAN通讯控制器和整个CAN网络兼容,以确保准确且高效地传输数据。在实际应用中,常见的波特率如20Kbps、500Kbps等,需根据系统需求选择合适的波特率。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 05:47 , Processed in 0.353978 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.