用户中心

资讯 > 工业以太网

串行通信波特率的自动识别

作者:乔渠 赵国豪 王文记2008.01.24阅读 9961

       对于异步串行通信,只有在通信双方波特率相同时,才能实现数据的正确传输与接收;而一些系统总是希望能实现对各种波特率的兼容。通常的实现方法是,要求对方首先发出规定的字符或数据,系统收到该字符或数据后,计算对方的波特率.以适应对方的波特率进行工作,例如某些无线收发模块、GSM通信模块等。然而对于检测、测试等领域www.cechina.cn,是不能要求被测系统发送某个固定的字符或数据的,那么对于这类通信系统,如何实现波特率的可靠识别呢?本文创新性地提出了在码元宽度捕捉的基础上求最大公约数的方法。该方法不对待测系统发送的数据进行特殊要求即可实现波特率识别,且保证了波特率识别的有效性和可靠性。下面对该方法进行详细说明。

1波特率自动识别的传统方法及基本原理串行通信的数据是按位顺序传输的而异步串行通信由于没有位定时时钟因此各个数据位之问需要严…
1 波特率自动识别的传统方法及基本原理
       串行通信的数据是按位顺序传输的,而异步串行通信由于没有位定时时钟,因此各个数据位之问需要严格的定时,才能保证正确的通信。也就是说CONTROL ENGINEERING China版权所有,只有在通信双方波特率相同时,才能实现数据的正确传输与接收。传统的波特率自动识别的方法主要有两

种:

       ①标准波特率穷举法。标准波特率穷举法适用于主机侧的波特率必须在有限的几个固定数值之间变化,如300~19200之间的标准值;且从机侧的工作振荡频率已知且稳定。从机启动通信程序后,逐个尝试以不同的波特率接收主机发出的特定字符,直到能正确接收为止,因此,该方法的运用有一定的局限性。

       ②码元宽度实时检测法。该方法要求主机按照约定发送某一数据,从机通过单片机的定时器测量RXD引脚上输入数据的码元宽度,而后计算出待测系统通信的波特率。该方法目前应用比较广泛。例如,某GSM模块在设计时为了适应各种通信波特率,要求其通信的系统首先发送08H,之后发送指令控制工程网版权所有,它就是依靠数据08H的码元宽度计算出对方波特率的。


2 最大公约数法的原理及其实现
       传统的方法对待测系统发送的数据都有一定的限制或要求才能够实现波特率的识别,但有些时候是无法约束待测系统首先发送特定字符的。这里,根据不同的应用需求,提出更为通用的波特率识别方法——最大公约数法。

        为了便于说明问题,设主机的波特率为BPS,位传输时间为t1bit,测试系统测得的波特率为BAUD,位传输时间为txbit。以l位起始位、8位数据位、1位停止位、无奇偶校验位为例,通信数据格式如图l所示。除了起始位始终为0,停止位始终为1外,8位数据位的电平高低是由传输的数据决定的,要测得待测系统的波特率,根据波特率的实际意义BPS=l/t1bit,只要检测出待测系统通信数据的位传输时间t1bit即可。

串行通信波特率的自动识别如图

       位传输时间t1bit对应的就是单位码元宽度时间,只要知道单位码元宽度时间,系统波特率就很容易计算出来了。由于不能要求待测系统按照规定发出特定的数据或字符,因此这里使用码元宽度捕捉的方法来查找码元宽度时间,要将单片机挂入待测系统的通信线路,采用对待测系统TXD(或RXD)引脚的高、低电平脉冲持续时间不断采集的方式,来捕捉单位码元宽度时间t1bit,显然单片机直接采集到的单个高、低电平脉冲持续时间可能是nt1bit,其中1≤n≤9。如何从采集到的nt1bit找出t1bit,成为波特率识别的关键。

       经过对串行通信数据格式的特点进行分析www.cechina.cn,本文提出了码元宽度最大公约数法来从捕捉到的码元宽度时间中计算单位码元宽度时间,也就是位传输时间t1bit。具体实现方法如下:在待测系统正常工作后,将测试单片机挂入其通信线路;首先对正、负脉冲宽度都进行计时,分别采集n次,剔除正脉冲溢出的部分后,把所有不相等的有效脉冲宽度时间从小到大排序(△t<5μs就认为两个时间相等,这一点在后面将有说明),假设依次为t1,t2,t3CONTROL ENGINEERING China版权所有,…,tm(1≤m≤9);由于采集到的时间一定是t1bit的整数倍,计算出t1,t2,t3CONTROL ENGINEERING China版权所有,…,tm的最大公约数为txbit,那么txbit就可以作为系统的最小脉冲宽度来计算波特率。这里计算得到的txbit可能等于t1bit,也可能不等于t1bit。下面分类讨论其作为位传输时间t1bit来计算波特率的可靠性及依据。

      &nbs

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688