CN104714920A - 一种自适应波特率的信号接收方法 - Google Patents

一种自适应波特率的信号接收方法 Download PDF

Info

Publication number
CN104714920A
CN104714920A CN201510080088.7A CN201510080088A CN104714920A CN 104714920 A CN104714920 A CN 104714920A CN 201510080088 A CN201510080088 A CN 201510080088A CN 104714920 A CN104714920 A CN 104714920A
Authority
CN
China
Prior art keywords
baud rate
transmit leg
pulse number
transmission
take over
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510080088.7A
Other languages
English (en)
Other versions
CN104714920B (zh
Inventor
易清明
李森源
石敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan University
Original Assignee
Jinan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan University filed Critical Jinan University
Priority to CN201510080088.7A priority Critical patent/CN104714920B/zh
Publication of CN104714920A publication Critical patent/CN104714920A/zh
Application granted granted Critical
Publication of CN104714920B publication Critical patent/CN104714920B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种自适应波特率的信号接收方法,步骤:S1、建立接收方接收的每段高/低电平信号获得脉冲个数与发送方的发送波特率关系表;S2、发送方发送数据;S3、接收方接收信号,获取每段持续时间内高/低电平的脉冲个数;同时对接收到的数据帧长度进行计数;S4、对脉冲个数进行近似处理,查表得到对应发送方的发送波特率可能值的最小值,对所有的最小值进行比较并保留最大值为暂时发送波特率;S5、根据发送波特率和发送方的数据帧格式,确定接收方接收数据帧的总长度;S6、判断接收到数据帧的长度是否达到总长度,若是,接收完成,将S4中的最大值作为发送波特率,对之前获取的各个脉冲个数进行计算,得到发送方的数据帧;否则返回S3。

Description

一种自适应波特率的信号接收方法
技术领域
本发明属于通信技术领域,涉及串行数据通讯中信号的接收方法,特别涉及一种自适应波特率的信号接收方法。
背景技术
串行通信广泛应用于工业、医疗、民生、航天等需要远程通讯的领域。串行总线上各节点波特率正确匹配是系统正常通信的前提,在通常情况下,由于感抗的存在,当传输距离不同时,传输时能使用的最高波特率也不一样。随着传输距离的增加,能够使用的波特率将不断减少。并且,对于不同的从属设备,由于其使用的时钟频率不一样,传输的波特率也将不一样。实际应用中,波特率可以分为这两种,一种等于a*2^n,另一种不等于a*2^n,其中,前者为比较常用的传输波特率,如RS-232-C标准中:75波特、150波特、300波特、600波特、1200波特、2400波特、4800波特、9600波特和19200波特。
在分布式系统中,节点往往数量和种类庞大且位置分散,因此在同一总线上的各个设备波特率也会不同,每次通讯时,接收方都要预先知道该数据传输使用的波特率,才能完成数据的接收。
传统的波特率自适应接收方法大致可以分为三种:1、最小数法,该方法不断检测脉宽(传输若干个bit的0或1的时间长度,下同)的最小数,然后通过对最小数与单位脉宽(传输1bit的0或者1的时间长度,下同)进行对比得出波特率。2、差分排序法,这种方法是前一方法的改进,该方法通过不断的计算出每个脉宽,并且不断重复进行排序、相减处理,直至得出最小数,通过将该数与单位脉宽进行对比得到波特率。3、固定数据传输法,该方法在传输数据之前需要先传输一段固定的数据,如发送的是0x00,则接收方收到的就是一段低电平,通过计算这段低电平的时间长度,然后除以数据位数得出单位脉宽,从而得出该传输使用的波特率。三种方法虽然不同,但均是在每次传输数据之前通过不同的数据帧进行握手,确认发送方的波特率,然后才能正确接收数据,因而使用时方便性和时效性较差。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种自适应波特率的信号接收方法,本发明信号接收方法能够在不需要预先知道发送波特率的情况下接收数据,即能够自适应波特率正确接收信号。
本发明的目的通过下述技术方案实现:一种自适应波特率的信号接收方法,步骤如下:
S1、根据接收方固定接收波特率在发送方各种发送波特率的情况下,发送方发送各种比特数的高电平/低电平信号时,对应接收方采集到的高电平/低电平脉冲个数建立一个表;
S2、传输数据时,发送方将发送的信号封装成数据帧格式后发送;
S3、接收方以固定波特率接收信号,并检测信号的电平跳转;根据接收到的每段高电平/低电平的持续时间以及接收方固定接收波特率获取对应每段持续时间内高电平/低电平的脉冲个数;同时接收方对已接收的数据帧长度进行计数;
S4、对步骤S3中接收方依次获取的每段持续时间内高电平/低电平的脉冲个数进行脉冲个数近似处理,得到脉冲个数近似处理后的结果Dr;然后查找步骤S1中建立的表,通过该表依次查找到每段持续时间内高电平/低电平脉冲个数Dr对应的发送波特率可能值的最小值,并比较这些最小值后选取其中的最大值,将该最大值定为发送方的暂时发送波特率Bs;
S5、根据步骤S4得到的发送方的暂时发送波特率Bs和发送的数据帧格式,确定接收方接收一个发送方发送的完整数据帧时,接收方在自身固定接收波特率下所需要接收的数据帧总长度L;
S6、判断接收方接收的数据帧长度是否达到步骤S5中获得的数据帧总长度L;
若是,则接收完成,将步骤S4中得到的暂时发送波特率作为发送方的发送波特率,并且接收方根据最终接收到的数据帧中每段高电平/低电平对应脉冲个数以及发送方的发送波特率和接收方的固定接收波特率关系得出发送方所发送的数据帧;
若否,则返回步骤S3。
优选的,所述步骤S2中,发送方将发送的信号封装成的数据帧格式包括1比特的起始位、5至8比特的数据位、1比特奇偶校验位和1至2比特停止位。
优选的,其特征在于,
步骤S4中获取的发送方的发送波特率满足以下关系:发送方的发送波特率为a*22波特,n=0,1,2,...,nmax,a为一个正数;
接收方的固定接收波特率为N倍的a*22 max波特。
更进一步的,所述步骤S1建表过程如下:当发送方的发送波特率为N倍的波特时,在发送方发送M比特的高电平/低电平时,接收方采集到的对应高电平/低电平的脉冲个数在表中对应M比特和a*2n的表格处记入 M * N * a * 2 n max / a * 2 n
更进一步的,在步骤S1建立的表中,当脉冲个数二进制数最低位的1所处位置为右起第位时,则判断出发送方发送波特率可能值的最小值为其中x=1,2,3,...,nmax+1。
更进一步的,所述步骤S4中脉冲个数的近似处理过程如下:
S4-1-1、首先将步骤S3接收方获取到的每持续时间内高电平/低电平的脉冲个数转换成二进制数,并且判断该脉冲个数是否小于Q,若是,则输出近似处理后的脉冲个数0,若否,则进入S4-1-2;
S4-1-2、检测脉冲个数二进制数最高位1所在位置,然后检测最高位1的右边两位二进制数是否为00;
若是,则检测二进制数最高位1(该位为第一位)开始右起第五位是否为1;若是,则脉冲个数二进制数最高位1开始右起的四位数加1,并且将最高位1右起第五位至最后一位数置为零;若否,即二进制数最高位1开始右起第五位为0,则将最高位1开始右起第五位至最后一位数置为零;
若否,则检测二进制数最高位1(该位为第一位)开始右起第四位是否为1;若是,则脉冲个数二进制数最高位1开始右起的三位数加1,并且将最高位1开始右起第四位至最后一位数置为零;若否,即二进制数最高位1开始右起第四位为0,则将最高位1右起第四位至最后一位置为零。
更进一步的,所述步骤S4-1-1中Q=N/2。
更进一步的,所述步骤S4-1-2中检测脉冲个数二进制数最高位1所在位置的具体过程如下:
S4-1-2-1、判断脉冲个数二进制数左起第1位是否为1;若否,则进入步骤S4-1-2-2,若是,则进入步骤S4-1-2-3;
S4-1-2-2、脉冲个数二进制数左移一位,并且记录当前脉冲个数二进制数左移的次数y1,然后返回到步骤S4-1-2-1;
S4-1-2-3、将脉冲个数二进制数最高位位数(该数等于)减去y1后的位数判定为脉冲个数二进制数最高位的1所在位置。
更进一步的,所述步骤S4中根据每段持续时间内高电平/低电平脉冲个数近似处理结果查找对应的发送方发送波特率过程如下:
S4-2-1、判断每段持续时间内高电平/低电平脉冲个数近似处理结果的右起第位是否为1;
若是,则进入步骤S4-2-2,
若否,则进入步骤S4-2-3;
S4-2-2、将该段持续时间内高电平/低电平脉冲个数对应的发送方发送波特率判定为
S4-2-3、脉冲近似处理结果的二进制数右移1位,并且记入当前脉冲近似处理结果的二进制数右移的次数y;然后再回到步骤S4-2-1。
更进一步的,所述步骤S5中接收方在自身固定接收波特率下所需要接收的数据帧总长度L为:
L=L1/(B/Bs);
其中L1为其中发送方发送的每帧数据帧长度,B为接收方的固定接收波特率,Bs为发送方的暂时发送波特率。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明方法首先按照固定波特率接收以各种不同波特率发送的各种比特数的高电平/低电平信号时,接收方采集到高电平/低电平的脉冲个数建立一张表,在接收方按照固定波特率接收到信号时,首先计算出其所接收到的每段高电平/低电平脉冲个数,通过查表得到每段高电平/低电平脉冲个数对应发送方的发送波特率可能值中的最小值,并比较这些最小值,保留最大值作为发送方暂时发送波特率;同时根据这个暂时发送波特率确定接收方接收一个发送方发送的完整数据帧时接收方在自身接收波特率下所需要接收的数据帧总长度,若未接收完,则继续接收发送的数据,并进行求解比较保留最大波特率作为发送方的暂时发送波特率。在接收到完整的数据帧长度后将暂时发送波特率作为发送方的发送波特率输出,并且根据发送方的发送波特率和接收方的固定接收波特率得出发送方所发送的数据帧内容。因此本发明方法可以在不需要预先知道接收时使用的波特率的情况下接收数据,即本发明信号接收方法能够识别出发送方使用的发送波特率的同时接收数据。
(2)本发明方法在查表确定每段高电平/低电平中脉冲个数所对应的发送方的发送波特率的过程前,对脉冲个数进行脉冲个数的近似处理,保证本发明方法在发生时钟误差时也能得到正确的脉冲个数,从而通过查表能够得到相应的发送方的发送波特率。
附图说明
图1是本发明方法流程图。
图2是本发明方法中发送方发送的数据帧格式示意图。
图3是本发明方法中脉冲个数的近似处理流程图。
图4是本发明方法的脉冲个数的近似处理过程中确定最高位1的位置流程图。
图5是本发明方法中脉冲个数对应的发送波特率可能值中最小值求解流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例公开了一种自适应波特率的信号接收方法,如图1所示,具体步骤如下:
S1、根据接收方固定接收波特率在发送方各种发送波特率情况下,发送方发送各种比特数的高电平/低电平时,对应接收方采集到的高电平/低电平的脉冲个数建立一个表,通过该表,根据脉冲个数二进制数中最低位1所处位置判断出发送方对应的波特率可能值中的最小值;在本实施例中,发送方的发送波特率满足以下关系:发送方的发送波特率为a/2n波特,n=0,1,2,...,nmax,若发送方的发送波特率为RS-232-C标准中多数波特率,其中a为75,nmax=8,则发送波特率包括75波特、150波特、300波特、600波特、1200波特、2400波特、4800波特、9600波特和19200波特,接收方的固定接收波特率为N倍的波特,其中N为64,当然也可以为16或32等其他数;通过本实施例方法实现发送方的各种发送波特率的识别。本实施例所建表中,在发送方发送M比特的高电平/低电平时,接收方采集到的对应高电平/低电平的脉冲个数M*N*19200/75*2n,在表中对应M比特和75*2n处记入M*N*19200/75*2n的二进制数。即当N为64时,a为75时,nmax=8时,在本步骤中建立的表如表1所示;
表1
通过表1看出当发送方发送的比特数为奇数位时,通过脉冲个数二进制数最低位1所在位置可以确定发送方的发送波特率,在本实施例中当脉冲个数二进制数中最低位1所在位置为右起第位时,则判断出发送方的发送波特率可能值的最小值为19200/2x-1,其中x=1,2,3...9,在发送方发送的比特位为奇数时,通过上述方式可以得到发送方正确的波特率,而在发送方发送偶数个比特时,通过上述判定得到的波特率比实际波特率小。
S2、发送方将发送的信号封装成串行异步传输过程使用的数据帧格式后发送;在本实施例中,发送方将信号封装成的数据帧格式包括1比特起始位、5至8比特数据位、1比特奇偶校验位和1至2比特停止位。如图2所示,在本实施例中发送方发送的数据帧包括1比特起始位、8比特数据位D0至D7、1比特奇校验位和2比特停止位,总共有12位,其中起始位为低电平,停止位为高电平。为保证所有可能发送的数据(0x00~0xFF)都能够被识别,本实施例发送方发送的数据帧格式中包括奇偶校验位,当单帧的数据位个数为偶数时使用奇校验,当单帧的数据位个数为奇数时使用偶校验,保证在一个完整的数据帧中,包含有奇数位比特,从而能够通过步骤S1中的表查找到正确的波特率。
S3、接收方以固定接收波特率接收信号,不断检测信号线是否为低电平,当到达低电平后,表示收到了起始位,则开始进行脉冲的计数,在接收过程中检测接收到的信号的电平跳转,根据接收到的每段高电平/低电平的持续时间以及接收方的固定接收波特率获取到对应每段持续时间内高电平/低电平的脉冲个数;同时接收方对已接收到的数据帧长度进行计数。
S4、对步骤S3中接收方依次获取的每段持续时间内高电平/低电平的脉冲个数进行脉冲个数的近似处理,得到脉冲个数近似处理后的结果Dr;然后查找步骤S1中建立的表,通过该表依次查找到每段持续时间内高电平/低电平脉冲个数Dr所对应的发送方的发送波特率可能值的最小值,并比较这些最小值后选取其中的最大值,将该最大值定为发送方的暂时发送波特率Bs。
如图3所示,本实施例中脉冲个数的近似处理过程如下:
S4-1-1、首先将步骤S3接收方获取的每段持续时间内高电平/低电平的脉冲个数转换成二进制数,并且判断该脉冲个数是否小于Q=N/2=32,若是,则输出近似处理后的脉冲个数0,若否,则进入S4-1-2;
S4-1-2、检测脉冲个数二进制数最高位1所在位置,然后检测最高位1的右边两位二进制数是否为00;
若是,则检测二进制数最高位1(该位为第一位)开始右起第五位是否为1;若是,则脉冲个数二进制数最高位1开始右起的四位数加1,并且将最高位1右起第五位至最后一位数置为零;若否,即二进制数最高位1开始右起第五位为0,则将最高位1开始右起第五位至最后一位数置为零;
若否,则检测二进制数最高位1(该位为第一位)开始右起第四位是否为1;若是,则脉冲个数二进制数最高位1开始右起的三位数加1,并且将最高位1开始右起第四位至最后一位数置为零;若否,即二进制数最高位1开始右起第四位为0,则将最高位1右起第四位至最后一位置为零。
如图4所示,在步骤S4-1-2中检测脉冲个数二进制数最高位1所在位置可通过以下移位法查找到:
S4-1-2-1、判断脉冲个数二进制数左起第1位是否为1;
若否,则进入步骤S4-1-2-2;
若是,则进入步骤S4-1-2-3;
S4-1-2-2、脉冲个数二进制数左移一位,并且记录当前脉冲个数二进制数左移的次数y1,然后返回到步骤S4-1-2-1;
S4-1-2-3、将脉冲个数二进制数最高位位数(该数等于)减去y1后的位数判定为脉冲个数二进制数最高位1所在位置。
如图5所示,步骤S4中根据每段持续时间内高电平/低电平脉冲个数近似处理结果Dr查找对应的发送方发送波特率过程如下:
S4-2-1、判断每段持续时间内高电平/低电平脉冲个数近似处理后结果Dr的右起第位是否为1;若是,则进入步骤S4-2-2,若否,则进入步骤S4-2-3;
S4-2-2、将对应该段持续时间内高电平/低电平脉冲个数对应的发送方发送波特率判定为19200/2y
S4-2-3、脉冲个数近似处理结果Dr的二进制数右移1位,并且记入当前脉冲个数近似处理结果二进制数右移的次数y,其中y∈{0,1,2,3...8};然后再回到步骤S4-2-1。
通过上述步骤S4-2-1至S4-2-3知晓脉冲个数近似处理结果Dr二进制数中最低位1所处位置,从而得出相应的发送波特率。通过上述步骤可知,当脉冲个数二进制数中1所处最低位位置为右起第位时,x=1,2,3...9,根据表1,则判断出发送方发送波特率可能值的最小值为19200/2x-1。即
当脉冲个数二进制数中最低位1所处位置为右起第7位,即x=1时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=19200波特;
当脉冲个数二进制数中最低位1所处位置为右起第8位,即x=2时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=9600波特;
当脉冲个数二进制数中最低位1所处位置为右起第9位,即x=3时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=4800波特;
当脉冲个数二进制数中最低位1所处位置为右起第10位,即x=4时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=2400波特;
当脉冲个数二进制数中最低位1所处位置为右起第11位,即x=5时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=1200波特;
当脉冲个数二进制数中最低位1所处位置为右起第12位,即x=6时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=600波特;
当脉冲个数二进制数中最低位1所处位置为右起第13位,即x=7时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=300波特;
当脉冲个数二进制数中最低位1所处位置为右起第14位,即x=8时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=150波特;
当脉冲个数二进制数中最低位1所处位置为右起第15位,即x=9时,此时判断发送方发送波特率可能值的最小值为19200/2x-1=75波特。
本实施例中由于步骤S2中发送方发送的经过校验的一个完整数据帧中包括有奇数比特的高电平/低电平,根据表1确定的发送方发送的偶数个比特对应的波特率肯定会比实际波特率小,因此本实施例将奇数比特位的数据帧对应的发送波特率作为最大值被保留,从而保证了判断发送方发送波特率的准确性。
S5、根据步骤S4获取的发送方的暂时发送波特率Bs和发送的数据帧格式,确定接收方接收一个发送方发送的完整数据帧时,接收方在自身固定接收波特率下所需要接收的数据帧总长度L;本实施例接收的数据帧总长度L为:
L=L1*(B/Bs);
其中L1为发送方发送的每帧数据帧长度,在本实施例中L1为12,B为接收方的固定接收波特率,Bs为发送方的暂时发送波特率。
S6、判断接收方接收到的数据帧长度是否达到步骤S5中得出的数据帧总长度L;
若是,则接收完成,由于完整的一帧数据中含有奇数位比特,因此可以将步骤S4中保留的最大值作为发送方的发送波特率,并且接收方根据最终接收到的完整数据帧中每段高电平/低电平对应脉冲个数以及发送方的发送波特率和接收方的接收波特率的关系获取到发送方所发送的数据帧,然后存入到FIFO(数据缓存器)中等待读取;
若否,则返回步骤S3。
例如接收方以64(N=64)倍19200波特(a=75,nmax=8)的固定波特率进行接收,即B=64*19200波特,当发送方以9600波特传送数据0x0e时,即D0至D7为01110000,此时发送方发送的数据信号的两个停止位之间的信号为0011100000。接收端不断检测信号线是否为低电平,当到达低电平后,表示收到了起始位,则开始进行脉冲的计数,同时,开始对数据帧已接收总长的计数。
当接收完00时发生电平跳变,得到第一个脉冲计数256,其二进制数为100000000,最低位的1的位置是右起第9位,此时发送方的暂时发送波特率为4800波特,即Bs=4800波特,通过4800波特得到出完整数据帧长度L为:L=12*(64*19200/4800)=3072,而此时的数据帧总长为256,并未接收完成,应继续接收。
然后当111接收完时发生了电平跳变,得到第二个脉冲计数384,其二进制数为110000000,最低位1的位置为右起第8位,此时判断发送方使用波特率为9600波特,与发送方的暂时发送波特率4800波特进行比较,保留较大值得到新的暂时发送波特率为9600波特,通过该暂时发送波特率计算出完整数据帧长度应为L=12*(64*19200/9600)=1536,而此时数据帧总长为640,并未接收完成,应继续接收。
然后当00000接收完时发生了电平跳变,得到第三个脉冲计数640,其二进制数为1010000000,最低位1的位置为右起第8位,此时判断发送方使用的发送波特率为9600波特,与发送方的暂时波特率进行比较,保留较大值得到新的暂时发送波特率为9600波特,通过该暂时发送波特率计算出完整数据帧长度应为L=12*(64*19200/9600)=1536,而此时数据帧总长为1280,并未接收完成,应继续接收,由于接收到1536时前再也没有脉冲出现,也就没有更新发送方的暂时发送波特率,因此在接收到数据帧长度为1536时,直接将暂时发送波特率9600波特作为发送方的发送波特率,并且作为结果输出。获取接收方的固定接收波特率B=64*19200波特和发送方的发送波特率9600波特的倍数关系:64*19200/9600=128,通过该倍数关系确定发送方发送的数据,将得到的256个00、384个1以及640个0分别除以128,得到发送方的发送数据为0011100000。
由于本实施例的方法是通过脉冲个数二进制数的最低位1的位置确定发送的发送波特率,即检测的是最右端1的位置,若脉冲个数不完全正确的话,检测的波特率也会错误,则无法得出正确的波特率。例如实际脉冲个数为128,而接收到的脉冲个数为129时,二进制数10000000变成10000001。在异步串行数据传输中,允许的传输的误差范围在5.55%以内,由于本实施例的方法使用脉冲个数计数的方法,随着波特率的减小,发生误差的可能性会越来越大,因而本实施例的方法采用了如步骤S4所示的脉冲处理方法,对接收到的脉冲个数进行近似处理,将脉冲个数近似为如表1中所示的脉冲个数。例如当接收方接收到某段高电平/低电平的脉冲个数为131个,即10000011,此时最高位1右边两位为00,因此判断10000011中最高位1开始右起第五位是为1,由于此处最高位1开始右起第五位不为1,因此按照步骤S4-1-2,将最高位1开始右起第五位至最后一位置为零,即将10000011近似为10000000,即128,在上述表1中能够找到对应的数,通过脉冲个数的近似处理方式保证在发生时钟误差时也能得到正确的脉冲个数。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种自适应波特率的信号接收方法,其特征在于,步骤如下:
S1、根据接收方固定接收波特率在发送方各种发送波特率的情况下,发送方发送各种比特数的高电平/低电平信号时,对应接收方采集到的高电平/低电平脉冲个数建立一个表;
S2、传输数据时,发送方将发送的信号封装成数据帧格式后发送;
S3、接收方以固定波特率接收信号,并检测信号的电平跳转;根据接收到的每段高电平/低电平的持续时间以及接收方固定接收波特率获取对应每段持续时间内高电平/低电平的脉冲个数;同时接收方对已接收的数据帧长度进行计数;
S4、对步骤S3中接收方依次获取的每段持续时间内高电平/低电平的脉冲个数进行脉冲个数近似处理,得到脉冲个数近似处理后的结果Dr;然后查找步骤S1中建立的表,通过该表依次查找到每段持续时间内高电平/低电平脉冲个数Dr对应的发送波特率可能值的最小值,并比较这些最小值后选取其中的最大值,将该最大值定为发送方的暂时发送波特率Bs;
S5、根据步骤S4得到的发送方的暂时发送波特率Bs和发送的数据帧格式,确定接收方接收一个发送方发送的完整数据帧时,接收方在自身固定接收波特率下所需要接收的数据帧总长度L;
S6、判断接收方接收的数据帧长度是否达到步骤S5中获得的数据帧总长度L;
若是,则接收完成,将步骤S4中得到的暂时发送波特率作为发送方的发送波特率,并且接收方根据最终接收到的数据帧中每段高电平/低电平对应脉冲个数以及发送方的发送波特率和接收方的固定接收波特率关系得出发送方所发送的数据帧;
若否,则返回步骤S3。
2.根据权利要求1所述的自适应波特率的信号接收方法,其特征在于,所述步骤S2中,发送方将发送的信号封装成的数据帧格式包括1比特的起始位、5至8比特的数据位、1比特奇偶校验位和1至2比特停止位。
3.根据权利要求1所述的自适应波特率的信号接收方法,其特征在于,
步骤S4中获取的发送方的发送波特率满足以下关系:发送方的发送波特率为a*2n波特,n=0,1,2,...,nmax,a为一个正数;
接收方的固定接收波特率为N倍的波特。
4.根据权利要求3所述的自适应波特率的信号接收方法,其特征在于,所述步骤S1建表过程如下:当发送方的发送波特率为N倍的波特时,在发送方发送M比特的高电平/低电平时,接收方采集到的对应高电平/低电平的脉冲个数在表中对应M比特和a*2n的表格处记入
5.根据权利要求4所述的自适应波特率的信号接收方法,其特征在于,在步骤S1建立的表中,当脉冲个数二进制数最低位的1所处位置为右起第位时,则判断出发送方发送波特率可能值的最小值为,其中x=1,2,3,...,nmax+1。
6.根据权利要求5所述的自适应波特率的信号接收方法,其特征在于,所述步骤S4中脉冲个数的近似处理过程如下:
S4-1-1、首先将步骤S3接收方获取到的每持续时间内高电平/低电平的脉冲个数转换成二进制数,并且判断该脉冲个数是否小于Q,若是,则输出近似处理后的脉冲个数0,若否,则进入S4-1-2;
S4-1-2、检测脉冲个数二进制数最高位1所在位置,然后检测最高位1的右边两位二进制数是否为00;
若是,则检测二进制数最高位1(该位为第一位)开始右起第五位是否为1;若是,则脉冲个数二进制数最高位1开始右起的四位数加1,并且将最高位1右起第五位至最后一位数置为零;若否,即二进制数最高位1开始右起第五位为0,则将最高位1开始右起第五位至最后一位数置为零;
若否,则检测二进制数最高位1(该位为第一位)开始右起第四位是否为1;若是,则脉冲个数二进制数最高位1开始右起的三位数加1,并且将最高位1开始右起第四位至最后一位数置为零;若否,即二进制数最高位1开始右起第四位为0,则将最高位1右起第四位至最后一位置为零。
7.根据权利要求6所述的自适应波特率的信号接收方法,其特征在于,所述步骤S4-1-1中Q=N/2。
8.根据权利要求6所述的自适应波特率的信号接收方法,其特征在于,所述步骤S4-1-2中检测脉冲个数二进制数最高位1所在位置的具体过程如下:
S4-1-2-1、判断脉冲个数二进制数左起第1位是否为1;若否,则进入步骤S4-1-2-2,若是,则进入步骤S4-1-2-3;
S4-1-2-2、脉冲个数二进制数左移一位,并且记录当前脉冲个数二进制数左移的次数y1,然后返回到步骤S4-1-2-1;
S4-1-2-3、将脉冲个数二进制数最高位位数(该数等于)减去y1后的位数判定为脉冲个数二进制数最高位的1所在位置。
9.根据权利要求6所述的自适应波特率的信号接收方法,其特征在于,所述步骤S4中根据每段持续时间内高电平/低电平脉冲个数近似处理结果查找对应的发送方发送波特率过程如下:
S4-2-1、判断每段持续时间内高电平/低电平脉冲个数近似处理结果的右起第位是否为1;
若是,则进入步骤S4-2-2,
若否,则进入步骤S4-2-3;
S4-2-2、将该段持续时间内高电平/低电平脉冲个数对应的发送方发送波特率判定为
S4-2-3、脉冲近似处理结果的二进制数右移1位,并且记入当前脉冲近似处理结果的二进制数右移的次数y;然后再回到步骤S4-2-1。
10.根据权利要求6所述的自适应波特率的信号接收方法,其特征在于,所述步骤S5中接收方在自身固定接收波特率下所需要接收的数据帧总长度L为:
L=L1*(B/Bs);
其中L1为其中发送方发送的每帧数据帧长度,B为接收方的固定接收波特率,Bs为发送方的暂时发送波特率。
CN201510080088.7A 2015-02-13 2015-02-13 一种自适应波特率的信号接收方法 Expired - Fee Related CN104714920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510080088.7A CN104714920B (zh) 2015-02-13 2015-02-13 一种自适应波特率的信号接收方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510080088.7A CN104714920B (zh) 2015-02-13 2015-02-13 一种自适应波特率的信号接收方法

Publications (2)

Publication Number Publication Date
CN104714920A true CN104714920A (zh) 2015-06-17
CN104714920B CN104714920B (zh) 2017-08-08

Family

ID=53414268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510080088.7A Expired - Fee Related CN104714920B (zh) 2015-02-13 2015-02-13 一种自适应波特率的信号接收方法

Country Status (1)

Country Link
CN (1) CN104714920B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095038A (zh) * 2015-09-14 2015-11-25 西安航空学院 一种检测rs232串口波特率的方法
CN105512068A (zh) * 2015-11-27 2016-04-20 宁波三星医疗电气股份有限公司 一种实现波特率自适应的模拟uart的方法
CN105959093A (zh) * 2016-04-25 2016-09-21 成都大学 一种串行通信波特率实时自适应方法
CN106095712A (zh) * 2016-05-31 2016-11-09 上海工程技术大学 一种串口的软件自适应波特率方法
CN106301685A (zh) * 2016-08-15 2017-01-04 中车株洲电力机车研究所有限公司 一种异步串行通讯方法及系统
CN106649165A (zh) * 2016-12-30 2017-05-10 湖南国科微电子股份有限公司 建立嵌入式系统和pc主机通信连接的方法
WO2018095180A1 (zh) * 2016-11-24 2018-05-31 天地融科技股份有限公司 数据发送方法、数据接收方法和装置
WO2018095179A1 (zh) * 2016-11-24 2018-05-31 天地融科技股份有限公司 一种数据传输方法及终端
CN109686108A (zh) * 2019-02-19 2019-04-26 山东科技大学 一种车辆目标轨迹跟踪系统及车辆轨迹跟踪方法
CN111211869A (zh) * 2020-01-02 2020-05-29 深圳震有科技股份有限公司 一种自动适配波特率方法、智能终端及储存介质
CN111431783A (zh) * 2020-04-02 2020-07-17 希尔塔(苏州)信息技术有限公司 一种can总线波特率自适应的方法
CN111737182A (zh) * 2020-06-29 2020-10-02 山东管理学院 串行通信参数自动配置方法及系统
CN112069098A (zh) * 2020-09-14 2020-12-11 上海东软载波微电子有限公司 波特率识别方法及装置
CN112821985A (zh) * 2020-12-31 2021-05-18 珠海格力电器股份有限公司 编码器的控制方法及控制装置、伺服电机、编码器
CN115643125A (zh) * 2022-08-17 2023-01-24 南斗六星系统集成有限公司 一种can波特率快速匹配的方法和系统
CN117640016A (zh) * 2024-01-26 2024-03-01 北京智芯微电子科技有限公司 波特率协商方法、装置、计算机设备、芯片及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6313882B1 (en) * 1998-01-13 2001-11-06 Samsung Electronics Co., Ltd. TV reception apparatus using same ghost-cancellation circuitry for receiving different types of TV signals
US20050102433A1 (en) * 2003-11-12 2005-05-12 Sridhar Balasubramanian Serial port initialization in storage system controllers
CN101399635A (zh) * 2008-09-28 2009-04-01 中兴通讯股份有限公司 通讯波特率自适应方法、装置以及主机
US20100080562A1 (en) * 2008-09-29 2010-04-01 Infinera Corporation Degradation adaptation network
CN101710857A (zh) * 2009-11-05 2010-05-19 厦门敏讯信息技术股份有限公司 串行通信波特率自适应方法及其装置
CN102201960A (zh) * 2011-04-28 2011-09-28 华南理工大学 一种基于排序脉宽差分的波特率自适应方法
CN102467477A (zh) * 2010-11-12 2012-05-23 施耐德电器工业公司 一种波特率自适应的Modbus中继器和波特率自适应系统及方法
CN103514127A (zh) * 2012-06-15 2014-01-15 中国航天科工集团第三研究院第八三五八研究所 一种自适应波特率的实现方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6313882B1 (en) * 1998-01-13 2001-11-06 Samsung Electronics Co., Ltd. TV reception apparatus using same ghost-cancellation circuitry for receiving different types of TV signals
US20050102433A1 (en) * 2003-11-12 2005-05-12 Sridhar Balasubramanian Serial port initialization in storage system controllers
CN101399635A (zh) * 2008-09-28 2009-04-01 中兴通讯股份有限公司 通讯波特率自适应方法、装置以及主机
US20100080562A1 (en) * 2008-09-29 2010-04-01 Infinera Corporation Degradation adaptation network
CN101710857A (zh) * 2009-11-05 2010-05-19 厦门敏讯信息技术股份有限公司 串行通信波特率自适应方法及其装置
CN102467477A (zh) * 2010-11-12 2012-05-23 施耐德电器工业公司 一种波特率自适应的Modbus中继器和波特率自适应系统及方法
CN102201960A (zh) * 2011-04-28 2011-09-28 华南理工大学 一种基于排序脉宽差分的波特率自适应方法
CN103514127A (zh) * 2012-06-15 2014-01-15 中国航天科工集团第三研究院第八三五八研究所 一种自适应波特率的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
方利缘 等: "基于迭代和修正的波特率自适应算法", 《探测与控制学报》 *
杨生元: "波特率自适应RS485隔离中继器设计", 《工矿自动化》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095038B (zh) * 2015-09-14 2018-03-23 西安航空学院 一种检测rs232串口波特率的方法
CN105095038A (zh) * 2015-09-14 2015-11-25 西安航空学院 一种检测rs232串口波特率的方法
CN105512068A (zh) * 2015-11-27 2016-04-20 宁波三星医疗电气股份有限公司 一种实现波特率自适应的模拟uart的方法
CN105959093A (zh) * 2016-04-25 2016-09-21 成都大学 一种串行通信波特率实时自适应方法
CN105959093B (zh) * 2016-04-25 2019-02-12 成都大学 一种串行通信波特率实时自适应方法
CN106095712A (zh) * 2016-05-31 2016-11-09 上海工程技术大学 一种串口的软件自适应波特率方法
CN106301685A (zh) * 2016-08-15 2017-01-04 中车株洲电力机车研究所有限公司 一种异步串行通讯方法及系统
CN106301685B (zh) * 2016-08-15 2019-06-21 中车株洲电力机车研究所有限公司 一种异步串行通讯方法及系统
US10608778B2 (en) 2016-11-24 2020-03-31 Tendyron Corporation Data transmission method and terminal
WO2018095180A1 (zh) * 2016-11-24 2018-05-31 天地融科技股份有限公司 数据发送方法、数据接收方法和装置
WO2018095179A1 (zh) * 2016-11-24 2018-05-31 天地融科技股份有限公司 一种数据传输方法及终端
CN106649165A (zh) * 2016-12-30 2017-05-10 湖南国科微电子股份有限公司 建立嵌入式系统和pc主机通信连接的方法
CN109686108A (zh) * 2019-02-19 2019-04-26 山东科技大学 一种车辆目标轨迹跟踪系统及车辆轨迹跟踪方法
CN109686108B (zh) * 2019-02-19 2023-11-21 广州华南路桥实业有限公司 一种车辆目标轨迹跟踪系统及车辆轨迹跟踪方法
CN111211869A (zh) * 2020-01-02 2020-05-29 深圳震有科技股份有限公司 一种自动适配波特率方法、智能终端及储存介质
CN111431783A (zh) * 2020-04-02 2020-07-17 希尔塔(苏州)信息技术有限公司 一种can总线波特率自适应的方法
CN111431783B (zh) * 2020-04-02 2021-12-31 希尔塔(苏州)信息技术有限公司 一种can总线波特率自适应的方法
CN111737182A (zh) * 2020-06-29 2020-10-02 山东管理学院 串行通信参数自动配置方法及系统
CN112069098A (zh) * 2020-09-14 2020-12-11 上海东软载波微电子有限公司 波特率识别方法及装置
CN112069098B (zh) * 2020-09-14 2022-04-15 上海东软载波微电子有限公司 波特率识别方法及装置
CN112821985A (zh) * 2020-12-31 2021-05-18 珠海格力电器股份有限公司 编码器的控制方法及控制装置、伺服电机、编码器
CN115643125A (zh) * 2022-08-17 2023-01-24 南斗六星系统集成有限公司 一种can波特率快速匹配的方法和系统
CN117640016A (zh) * 2024-01-26 2024-03-01 北京智芯微电子科技有限公司 波特率协商方法、装置、计算机设备、芯片及存储介质

Also Published As

Publication number Publication date
CN104714920B (zh) 2017-08-08

Similar Documents

Publication Publication Date Title
CN104714920A (zh) 一种自适应波特率的信号接收方法
CN105068966B (zh) 串口自动识别方法
CN107078931A (zh) 通过总线系统从发送方将帧串行传输到至少一个接收方的方法以及总线系统的参与方
CN105281883B (zh) 多通道同步方法、同步装置及系统
CN108390752B (zh) 信号接收方法
CN107070743B (zh) 一种can总线负载率检测方法及装置
CN101710857A (zh) 串行通信波特率自适应方法及其装置
CN109101453B (zh) 异步串行通信采样系统和方法
CN111177060B (zh) 串口数据发送方法、接收方法、相应装置及终端设备
CN106528484A (zh) 一种串行通信方法
CN102970300B (zh) 一种异步通信方法
CN102231890A (zh) 特殊突发的检测方法及装置
CN108833321A (zh) 基于差分相位波形匹配的编码cpm信号码块同步方法
GB1588184A (en) System for linking data transmitting and receiving devices
CN113132059B (zh) 一种面向空白帧传输的帧同步方法和装置
CN104883286B (zh) 一种基于fpga的blvds总线数据传送装置
CN105577312B (zh) 数据帧同步方法及装置
CN210780844U (zh) 自动波特率检测电路
CN106549728A (zh) 一种数据接收方法及装置
CN109783431B (zh) 微处理器间i/o端口通信方法
CN104468447B (zh) 无线网络模拟网络编码方法
CN110209622A (zh) 一种通过串口传输多组信息的通讯方法与系统
CN101820312A (zh) 一种tetra基站基带接收机帧同步的定时检测方法
CN107346998A (zh) 一种数据帧尾检测方法及数据传输装置
CN107347001A (zh) 一种数据传输方法及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170808

Termination date: 20220213

CF01 Termination of patent right due to non-payment of annual fee