大家好,欢迎来到IT知识分享网。
在前面三篇文章:
CAN通讯系列3-CAN通讯如何传递信号
CAN通讯系列4- CAN数据帧及其仲裁
CAN通讯系列5- CAN总线定义
我们已经解决了一个控制器的多个信号通过怎样的形式传递给另一个控制器,即通过CAN数据帧,包含报文ID,数据长度和数据等信息,并在物理层面以怎样的电压形式进行传递。

但关于CAN通讯的传输速率或波特率,即CAN报文数据以多快的速度在控制器间进行传递,我们还不得而知,对此本文将进行介绍。
1 时间相关量
我们知道一帧数据(即一个完整的数据帧)由很多位组成,那么所谓的通信速率是指一位数据传输所需要的时间。为了弄清楚传输一位数据需要多长时间,先要了解几个时间相关量:
1)晶振时钟周期,是由单片机振荡器的晶振频率决定的,指的是振荡器每振荡一次产生一个脉冲所消耗的时间长度,也是整个系统中最小的时间单位。比如某单片机的晶体振荡器频率为40MHz,那我们就说这个单片机系统的时钟周期是1/(40MHz),约为25纳秒。
2)CAN时钟周期,是由系统时钟分频而来的一个时间长度值,即类似于机器周期与晶振时钟周期的关系,即按照特定的公式计算:CAN时钟周期 =2 x 晶振时钟周期 x BRP,其中,BRP叫做波特率分频值。
3)时间量子Tq(Time Quantum),把一个CAN时钟周期称为一个时间份额或时间量子Tq,Tq是构成CAN报文中一位(bit)数据的最小时间单位。

4)CAN位时间,由这三个时间相关量,就知道如何根据微控制器的晶振频率分频得到Tq,而CAN报文中每一位数据都由由同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2)四个段组成,每个段由若干个时间量子Tq组成,也就是说CAN报文中一位数据的传输需要耗费若干个Tq,把该时间称为CAN位时间,如下所示:

再了解下这四个段的作用和所需的Tq数量,如下表:

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为8时满足。
最后,确定同步段、传播时间段、相位缓冲段1和相位缓冲段2四个段对应的Tq数。
同步段的Tq数是固定的1Tq,传播时间段的Tq数设为2Tq;
相位缓冲段2的Tq数是根据采样率来计算,定义采样点在相位缓冲段1和相位缓冲段2之间,采样率为前三段的Tq数与四段的总Tq数比值的百分比,如下图,第1个采样率=7Tq/10Tq x 100% = 70%,第2个采样率为60% 。

而本例的采样率为75%,那么相位缓冲段2有2Tq,而CAN位时间是8Tq,所以最后分配3Tq给相位缓冲段1。这样就确定了同步段(1Tq)、传播时间段(2Tq)、相位缓冲段1(3Tq)和相位缓冲段2(2Tq)的Tq数。
4 小结
到此上文就简单介绍波特率相关的内容,包括概念,原理和实现,应该建立起了一个基本的认识,但其中部分内容解释详尽程度有限,比如四个段的概念,应用与Tq数的确定,因此,下篇文章将对此进行更详细的解释,同时也会有助于理解接收方如何采集每一位数据。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/177508.html