CN103618588B - 一种自动波特率检测方法及检测模块 - Google Patents
一种自动波特率检测方法及检测模块 Download PDFInfo
- Publication number
- CN103618588B CN103618588B CN201310614299.5A CN201310614299A CN103618588B CN 103618588 B CN103618588 B CN 103618588B CN 201310614299 A CN201310614299 A CN 201310614299A CN 103618588 B CN103618588 B CN 103618588B
- Authority
- CN
- China
- Prior art keywords
- baud rate
- moment
- baud
- enumerator
- data
- 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.)
- Active
Links
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种自动波特率检测方法,包括波特率计数器从开始时刻至第一时刻、从第一时刻至第二时刻、以及从第二时刻至第三时刻不断计数,分别得到第一、第二以及第三波特率值;异步接收发送器的波特率产生器将第一、第二及第三波特率值作为波特率产生第一、第二及第三波特率同步信号;将以波特率同步信号为采样点接收的接收数据与约定数据进行比较,如果两者相同,则自动波特率检测完成。本发明的自动波特率检测方法还包括起始位时间检测和半比特检测。本发明还公开了一种自动波特率检测模块,包括精确波特率检测单元、起始位时间检测单元、半比特检测单元和数据帧匹配检测单元。本发明可以提供相对于现有技术更精确、快速的自动波特率检测。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种应用于北斗导航系统中的大规模串口数据通信领域的自动波特率检测方法及检测模块。
背景技术
在一个北斗导航系统芯片中,通用异步接收发送器(UART)提供了异步通信接口作为系统与外界主机/从设备进行数据交换的主要途径。与主机通信时,其作为程序下载/更新的主要接口;与从设备通信时,其用于输出导航及定位的信息。
一个典型的通用异步接收发送器(UART)的结构参见图1。对于发送部分,待发送数据t1(8bit)从总线接口电路11传入发送缓存器13;当发送控制器14进入发送状态时,波特率选择器12选择设置的波特率brr1作为波特率brr3输出,波特率产生器15根据波特率brr3产生波特率同步信号s1;发送控制器14参照波特率同步信号s1,将发送缓存器13送入的数据t2(8bit)转化为串行数据t3送给外部主机/从设备。对于接收部分,串行数据r1从外部主机/从设备输入;接收控制器17处于接收状态时,若已知波特率,波特率选择器12选择波特率brr1作为波特率brr3输出,波特率产生器15根据波特率brr3产生波特率同步信号s2;接收控制器17参照波特率同步信号s2,将串行数据r1转化成并行数据r2(8bit)送入接收缓存器18;若波特率未知,串行数据r1将是外部设备发送的波特率检测约定数据,此时自动波特率检测模块16根据波特率检测方法将检测到的波特率brr2送给波特率选择器12,波特率选择器12选择波特率brr2作为波特率brr3输出;如果根据检测到的波特率成功接收了上述的约定数据,就可以使用检测到的波特率brr2继续进行数据接收;最后接收缓存器18里的数据r3(8bit)从总线接口电路11读走。
一种较为常见的波特率检测方法见图2,接收的串行数据r1为约定发送的数据帧(即上述的约定数据),其格式为起始位(start)0后接8bit串行数据0X41(从低位到高位发送)。波特率计数器21在起始位期间,也就是T0到T1时刻间计数,得到波特率值B0。使用波特率值B0作为检测到的波特率对余下的数据进行采样,如果得到与约定数据相同的结果则认为波特率检测成功,波特率值B0作为检测到的波特率用于其余数据的接收;如果未检测到约定数据,则认为波特率检测失败,在下一个起始位到来时重新开始波特率检测。
由于数据在传输过程中经过转换及量化有可能产生偏差,形成的方波每比特的高低电平长度不相等,这样根据起始位低电平所统计出来的波特率有可能偏大或偏小,结果就是自动波特率检测不成功或者检测成功但是得到的波特率不能满足传输的误差要求。因此可见,上述的现有技术的波特率检测方法是存在一些问题的。
因此,本领域的技术人员致力于开发一种自动波特率检测方法及检测模块,实现更为精确和快速的自动波特率检测。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种自动波特率检测方法及检测模块,通过使用波特率计数器在一次检测过程中多次计数以获取波特率值,并相应地更新波特率产生器产生的波特率同步信号,实现更为精确和快速的自动波特率检测。
为实现上述目的,本发明提供了一种自动波特率检测方法,用于异步接收发送器,所述异步接收发送器包括接收控制器和波特率产生器,其特征在于,包括:
步骤100所述接收控制器接收数据作为所述接收控制器的接收数据,当所述接收控制器检测到所述接收数据的低电平的下降沿时,作为开始时刻,开始进行自动波特率检测;
步骤200波特率计数器根据参考时钟,从所述开始时刻至第一时刻,不断计数得到第一波特率值;
步骤300所述波特率产生器将所述第一波特率值作为波特率,产生第一波特率同步信号,所述接收控制器使用所述第一波特率同步信号采样所述第一时刻后接收的所述接收数据;
步骤310将所述步骤300中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤400;如果两者不相同,则返回所述步骤100;
步骤400所述波特率计数器根据参考时钟,从所述第一时刻至第二时刻,不断计数得到第二波特率值;
步骤500所述波特率产生器将所述第二波特率值作为波特率,产生第二波特率同步信号,所述接收控制器使用所述第二波特率同步信号采样所述第二时刻后接收的所述接收数据;
步骤510将所述步骤500中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤600;如果两者不相同,则返回所述步骤100;
步骤600所述波特率计数器根据参考时钟,从所述第二时刻至第三时刻,不断计数得到第三波特率值;
步骤700所述波特率产生器将所述第三波特率值作为波特率,产生第三波特率同步信号,所述接收控制器使用所述第三波特率同步信号采样所述第三时刻后接收的所述接收数据;
步骤710将所述步骤700中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤800;如果两者不相同,则返回所述步(100;
步骤800所述自动波特率检测完成。
进一步地,所述约定数据为0X41。
进一步地,所述第一时刻对应所述接收数据的第一个高电平的上升沿;所述第二时刻对应所述接收数据的第一个高电平的下降沿;所述第三时刻对应所述接收数据的第二个高电平的下降沿。
进一步地,所述步骤200、所述步骤400和所述步骤600中,所述波特率计数器的计数方式为连续累加,在每个参考时钟来到时累加1。
进一步地,在所述步骤200中,所述波特率计数器的计数前清零;在所述步骤400和所述步骤600中,所述波特率计数器的计数前不清零。
进一步地,所述第一波特率值为所述波特率计数器在所述开始时刻和所述第一时刻之间的计数;所述第二波特率值为所述波特率计数器在所述开始时刻和所述第二时刻之间的计数的一半;所述第三波特率值为所述波特率计数器在所述开始时刻和所述第三时刻之间的计数的八分之一。
进一步地,还包括:
步骤210将所述波特率计数器在所述开始时刻和所述第一时刻之间的计数与0X8000进行比较,如果所述波特率计数器在所述开始时刻和所述第一时刻之间的计数超过0X8000,则返回步骤100;否则进入步骤300。
进一步地,还包括半比特检测步骤:
使用计数器,将所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数与所述计数器在所述开始时刻和所述第一时刻之间的计数进行比较,如果所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数小于所述计数器在所述开始时刻和所述第一时刻之间的计数的11/16,则返回步骤100;所述计数器为任意计数器;
所述半比特检测步骤在所述步骤400、所述步骤500、所述步骤600和所述步骤700中执行。
进一步地,本发明还提供了一种自动波特率检测模块,用于异步接收发送器,所述异步接收发送器包括接收控制器和波特率产生器,所述接收控制器接收数据作为所述接收控制器的接收数据,其特征在于,包括精确波特率检测单元、起始位时间检测单元、半比特检测单元和数据帧匹配检测单元;
所述精确波特率检测单元包括波特率计数器,所述波特率计数器根据参考时钟,从开始时刻至第一时刻、从第一时刻至第二时刻、以及从第二时刻至第三时刻不断计数,分别得到第一、第二以及第三波特率值;
所述起始位时间检测单元将所述波特率计数器在所述开始时刻和所述第一时刻之间的计数与0X8000进行比较,如果所述波特率计数器在所述开始时刻和所述第一时刻之间的计数超过0X8000,则发出波特率检测错误指示;
所述半比特检测单元包括计数器,将所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数与所述计数器在所述开始时刻和所述第一时刻之间的计数进行比较,如果所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数小于所述计数器在所述开始时刻和所述第一时刻之间的计数的11/16,则发出波特率检测错误指示;
所述波特率产生器根据所述第一、第二及第三波特率值作为波特率产生的第一、第二及第三波特率同步信号;
所述数据帧匹配检测单元将所述接收控制器使用所述第一、第二及第三波特率同步信号对所述接收信号采样获得的数据与所述约定数据进行比较,如果两者不相同,则发出波特率检测错误指示;
所述约定数据为0X41;所述开始时刻对应接收控制器检测到的所述接收数据的低电平的下降沿;所述第一时刻对应所述接收数据的第一个高电平的上升沿;所述第二时刻对应所述接收数据的第一个高电平的下降沿;所述第三时刻对应所述接收数据的第二个高电平的下降沿。
在本发明的较佳实施方式中,提供了一种自动波特率检测方法,包括:将约定数据设为0X41,异步接收发送器的接收控制器接收数据作为其接收数据;当接收控制器检测到接收数据的低电平的下降沿时,开始进行自动波特率检测;波特率计数器根据参考时钟,从开始时刻至第一时刻、从第一时刻至第二时刻、以及从第二时刻至第三时刻不断计数,分别得到第一、第二以及第三波特率值;异步接收发送器的波特率产生器将第一、第二及第三波特率值作为波特率,产生第一、第二及第三波特率同步信号;将接收控制器使用第一、第二及第三波特率同步信号对接收信号采样获得的数据与约定数据进行比较,如果两者相同,则自动波特率检测完成;如果两者不相同,则重新进行自动波特率检测。另外,在自动波特率检测过程中,将波特率计数器在开始时刻和第一时刻之间的计数与0X8000进行比较,如果该计数超过0X8000,则发出波特率检测错误指示;使用任意计数器,将该计数器在接收数据的单个高电平或单个低电平的脉宽内的计数与该计数器在开始时刻和第一时刻之间的计数进行比较,如果前者小于后者的11/16,则发出波特率检测错误指示。本发明相应地提供了一种自动波特率检测模块,其包括精确波特率检测单元、起始位时间检测单元、半比特检测单元和数据帧匹配检测单元,其中,精确波特率检测单元包括波特率计数器,数据帧匹配检测单元将接收控制器使用波特率同步信号对接收信号采样获得的数据与约定数据进行比较并判断是否发出波特率检测错误指示以重新开始自动波特率检测,起始位时间检测单元将波特率计数器在开始时刻和第一时刻之间的计数与0X8000进行比较并判断是否发出波特率检测错误指示以重新开始自动波特率检测,半比特检测单元将任意计数器在接收数据的单个高电平或单个低电平的脉宽内的计数与该计数器在开始时刻和第一时刻之间的计数进行比较并判断是否发出波特率检测错误指示以重新开始自动波特率检测。
由此可见,本发明的自动波特率检测方法及检测模块通过使用波特率计数器在一次检测过程中三次计数以获取三个波特率值,并相应地波特率产生器产生三个波特率同步信号,可以消除由于量化带来的高低电平偏差的影响;并且,本发明的自动波特率检测方法及检测模块还能够判断接收数据的起始位是否异常以及是否发生数据脉宽不足的情况,并在发生上述异常情况时发出波特率检测错误指示以重新进行自动波特率检测。由此,本发明的自动波特率检测方法及检测模块可以提供相对于现有技术更精确、快速的自动波特率检测。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是现有技术的异步接收发送器的结构框图。
图2显示了现有技术的自动波特率检测。
图3是本发明的自动波特率检测方法的流程图。
图4显示了本发明的自动波特率检测。
图5显示了本发明的自动波特率检测方法中的半比特检测。
图6显示了本发明在接收数据存在量化误差时的自动波特率检测。
图7是本发明的自动波特率检测模块的结构框图。
具体实施方式
本发明的自动波特率检测方法,用于图1所示的异步接收发送器,该异步接收发送器包括接收控制器17和波特率产生器15。如图3所示,本发明的自动波特率检测方法包括:
步骤100,接收控制器17接收数据作为其接收数据,当接收控制器17检测到接收数据的低电平的下降沿时,作为开始时刻,开始进行自动波特率检测。
具体地,设定约定数据为0X41,接收控制器17的接收数据如图4所示,接收数据为串行数据r1,对应0X41,其格式为起始位(start)0后接8bit串行数据0X41(从低位到高位发送)。该接收数据的第一个高电平的上升沿对应第一时刻T1;其第一个高电平的下降沿对应第二时刻T2;其第二个高电平的下降沿对应第三时刻T3。另外,起始位0的低电平的下降沿对应开始时刻T0。
步骤200,波特率计数器21根据参考时钟,从开始时刻T0至第一时刻T1,不断计数得到第一波特率值B01。
本步骤中,波特率计数器21的计数方式为连续累加,计数前清零,在每个参考时钟来到时累加1,并将获得的计数作为第一波特率值B01。即第一波特率值B01为波特率计数器21在开始时刻T0和第一时刻T1之间的计数。
本步骤中还可以包括起始位时间检测,具体地为:
步骤210将波特率计数器21在开始时刻T0和第一时刻T1之间的计数与0X8000进行比较,如果波特率计数器21在开始时刻T0和第一时刻T1之间的计数超过0X8000,则表明返回步骤100;否则进入步骤300。
作为起始位时间检测的一个实例,当接收到的数据为长0时,自动波特率检测时可能将其判断为起始位,为了避免波特率计数器21在此状态下一直进行计数并导致溢出,起始位时间检测约定如果计数超过0x8000,判定起始位异常,退出此次波特率检测。
步骤300,波特率产生器15将第一波特率值B01作为波特率,产生第一波特率同步信号,接收控制器17使用第一波特率同步信号采样第一时刻T1后接收的接收数据。
波特率产生器15根据选定的波特率产生波特率同步信号s2是异步接收发送器的现有技术,在此不赘述。具体地,将第一波特率值B01作为波特率,根据此选定的波特率,波特率产生器15产生第一波特率同步信号作为波特率同步信号s2,接收控制器17使用第一波特率同步信号采样第一时刻T1后接收的接收数据。
步骤310,将步骤300中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤400;如果两者不相同,则返回步骤100。
具体地,将步骤300中采样获得的数据与约定数据0X41进行比较,如果两者相同,则表示校验正确,进入下一步骤(即步骤400);如果两者不相同,则表示校验不正确,需重新进行自动波特率检测,返回步骤100。在这里,采样获得的数据与预定数据0X41相同是指在对应的时刻两者具有相同的电平(0或1)。
步骤400,波特率计数器21根据参考时钟,从第一时刻T1至第二时刻T2,不断计数得到第二波特率值B02。
本步骤中,波特率计数器21的计数方式为连续累加,计数前不清零,在每个参考时钟来到时累加1,并将获得的计数的一半作为第二波特率值B02。即第二波特率值B02为波特率计数器21在开始时刻T0和第一时刻T2之间的计数的一半。
本步骤中还可以包括半比特检测步骤,具体地为:
使用计数器,将计数器在接收数据的单个高电平或单个低电平的脉宽内的计数与该计数器在开始时刻T0和第一时刻T1之间的计数进行比较,如果前者小于后者的11/16,则返回步骤100。这里使用的计数器可以是任意计数器。
半比特检测步骤不仅在步骤400中执行,还在后续的步骤500、步骤600和步骤700中执行。本实施例中,半比特检测步骤的执行是实时的,即在上述这些步骤中,一直进行着半比特检测,一旦检测结果表明出现了问题即返回步骤100,否则不打断这些步骤。
图5给出了半比特检测的一个实例,当把连续的几个0当作一个起始位来处理时,一旦后续数据中有一个单独的0或1脉宽,半比特检测就能判断出存在数据脉宽不足起始位的一半(考虑量化及采样影响这里条件限制为不足起始位的11/16)。如图5所示,这里的计数器是根据当时确定的波特率同步信号进行计数的,即对相应时间内的波特率同步信号的个数进行计数。从图中可见,开始时刻T0到第一时刻T1的波特率计数器21获得的第一波特率值B01作为波特率,但是在接收数据的下个跳沿(上升沿或下降沿)来到时,发现波特率同步信号s2的计数小于11(正常情况为16),则在此跳沿立即结束这次波特率检测,然后重新进行自动波特率检测,重新确定开始时刻T0、第一时刻T1以及第一波特率值B01,直到正确判断到起始位。这样做的原因是因为正常接收中起始位脉宽作为单比特脉宽应该是最小的脉宽,如果发现有数据脉宽不到起始位的一半就可以表明起始位判断错误,进而退出此次波特率检测。
步骤500,波特率产生器将第二波特率值B02作为波特率,产生第二波特率同步信号,接收控制器17使用第二波特率同步信号采样第二时刻T2后接收的接收数据。
具体地,将第二波特率值B02作为波特率,根据此选定的波特率,波特率产生器15产生第二波特率同步信号作为波特率同步信号s2,接收控制器17使用第二波特率同步信号采样第二时刻T2后接收的接收数据。
步骤510,将步骤500中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤600;如果两者不相同,则返回步骤100。
具体地,将步骤500中采样获得的数据与约定数据0X41进行比较,如果两者相同,则表示校验正确,进入下一步骤(即步骤600);如果两者不相同,则表示校验不正确,需重新进行自动波特率检测,返回步骤100。在这里,采样获得的数据与预定数据0X41相同是指在对应的时刻两者具有相同的电平(0或1)。
步骤600,波特率计数器21根据参考时钟,从第二时刻T2至第三时刻T3,不断计数得到第三波特率值B03。
本步骤中,波特率计数器21的计数方式为连续累加,计数前不清零,在每个参考时钟来到时累加1,并将获得的计数的八分之一作为第三波特率值B03。即第三波特率值B03为波特率计数器21在开始时刻T0和第三时刻T3之间的计数的八分之一。
步骤700,波特率产生器将第三波特率值B03作为波特率,产生第三波特率同步信号,接收控制器17使用第三波特率同步信号采样第三时刻T3后接收的接收数据。
具体地,将第三波特率值B03作为波特率,根据此选定的波特率,波特率产生器15产生第三波特率同步信号作为波特率同步信号s2,接收控制器17使用第三波特率同步信号采样第三时刻T3后接收的接收数据。
步骤710,将步骤700中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤800;如果两者不相同,则返回步骤100。
具体地,将步骤700中采样获得的数据与约定数据0X41进行比较,如果两者相同,则表示校验正确,进入下一步骤(即步骤800);如果两者不相同,则表示校验不正确,需重新进行自动波特率检测,返回步骤100。在这里,采样获得的数据与预定数据0X41相同是指在对应的时刻两者具有相同的电平(0或1)。
步骤800,自动波特率检测完成。
可以看出,将采样获得的数据与约定数据进行比较是一个实时执行的步骤,任何时候发现采样获得的数据与约定数据不符合,即返回步骤100,重新开始自动波特率检测。例如,对于当接收到的数据不是约定数据0X41时的情况,假设为0X51,在接收到数据的第五比特时,判断接收到的值为1,而预想得到的值为0,说明这不是一个用于自动波特率检测的数据帧,进而退出此次波特率检测。
当接收数据存在量化误差时,一般表现在电平跳变沿时0和1的判断,如图6所示,其表现为高低电平变化时高电平脉宽的长度将明显短于低电平脉宽。这种情况下,开始时刻T0到第一时刻T1采集到第一波特率值B01将明显偏大,因此只用第一波特率值B01,产生第一时刻T1到第二时刻T2的波特率同步信号s2,对下一比特数据进行采样。到第二时刻T2,更新连续两比特数据的平均计数值作为第二波特率值B02,此时的第二波特率值B02因为基本消除了量化的影响,作为波特率已经较为准确。最后到第三时刻T3,更新连续八比特数据的平均计数值作为第三波特率值B03,由于在这个过程中,电平共产生了四次跳变,将每次跳变可能产生的误差两两抵消,最终得到的第三波特率值B03是最为接近真实波特率的。
当低电平的脉宽长度短于高电平脉宽时,与上述讨论相似地,可知得到的第一波特率值B01将明显偏小,而通过后面的修正,最终得到的第三波特率值B03是最为接近真实波特率的。
本发明的自动波特率检测模块,用于替代图1所示的现有技术的异步接收发送器中的自动波特率检测模块16。如图7所示,本发明的自动波特率检测模块包括:精确波特率检测单元41、起始位时间检测单元42、半比特检测单元43和数据帧匹配检测单元44。其中,精确波特率检测单元41包括波特率计数器21,波特率计数器21根据参考时钟,从开始时刻T0至第一时刻T1、从第一时刻T1至第二时刻T2、以及从第二时刻T2至第三时刻T3不断计数,分别得到第一、第二以及第三波特率值B01、B02和B03。波特率产生器根据第一、第二及第三波特率值B01、B02和B03作为波特率产生的第一、第二及第三波特率同步信号。起始位时间检测单元42将波特率计数器21在开始时刻T0和第一时刻T1之间的计数与0X8000进行比较,如果该计数超过0X8000,则发出波特率检测错误指示以重新开始自动波特率检测。半比特检测单元43包括任意计数器,将该计数器在接收数据的单个高电平或单个低电平的脉宽内的计数与该计数器在开始时刻T0和第一时刻T1之间的计数进行比较,如果前者小于后者的11/16,则发出波特率检测错误指示以重新开始自动波特率检测。数据帧匹配检测单元44将接收控制器使用第一、第二及第三波特率同步信号对接收信号采样获得的数据与约定数据0X41进行比较,如果两者不相同,则发出波特率检测错误指示以重新开始自动波特率检测。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域的技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (9)
1.一种自动波特率检测方法,用于异步接收发送器,所述异步接收发送器包括接收控制器和波特率产生器,其特征在于,包括:
步骤(100)所述接收控制器接收数据作为所述接收控制器的接收数据,当所述接收控制器检测到所述接收数据的低电平的下降沿时,作为开始时刻,开始进行自动波特率检测;
步骤(200)波特率计数器根据参考时钟,从所述开始时刻至第一时刻,不断计数得到第一波特率值;
步骤(300)所述波特率产生器将所述第一波特率值作为波特率,产生第一波特率同步信号,所述接收控制器使用所述第一波特率同步信号采样所述第一时刻后接收的所述接收数据;
步骤(310)将所述步骤(300)中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤(400);如果两者不相同,则返回所述步骤(100);
步骤(400)所述波特率计数器根据参考时钟,从所述第一时刻至第二时刻,不断计数得到第二波特率值;
步骤(500)所述波特率产生器将所述第二波特率值作为波特率,产生第二波特率同步信号,所述接收控制器使用所述第二波特率同步信号采样所述第二时刻后接收的所述接收数据;
步骤(510)将所述步骤(500)中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤(600);如果两者不相同,则返回所述步骤(100);
步骤(600)所述波特率计数器根据参考时钟,从所述第二时刻至第三时刻,不断计数得到第三波特率值;
步骤(700)所述波特率产生器将所述第三波特率值作为波特率,产生第三波特率同步信号,所述接收控制器使用所述第三波特率同步信号采样所述第三时刻后接收的所述接收数据;
步骤(710)将所述步骤(700)中采样获得的数据与约定数据进行比较,如果两者相同,则进入步骤(800);如果两者不相同,则返回所述步骤(100);
步骤(800)所述自动波特率检测完成。
2.如权利要求1所述的自动波特率检测方法,其中所述约定数据为0X41。
3.如权利要求2所述的自动波特率检测方法,其中所述第一时刻对应所述接收数据的第一个高电平的上升沿;所述第二时刻对应所述接收数据的第一个高电平的下降沿;所述第三时刻对应所述接收数据的第二个高电平的下降沿。
4.如权利要求3所述的自动波特率检测方法,其中所述步骤(200)、所述步骤(400)和所述步骤(600)中,所述波特率计数器的计数方式为连续累加,在每个参考时钟来到时累加1。
5.如权利要求4所述的自动波特率检测方法,其中在所述步骤(200)中,所述波特率计数器的计数前清零;在所述步骤(400)和所述步骤(600)中,所述波特率计数器的计数前不清零。
6.如权利要求5所述的自动波特率检测方法,其中所述第一波特率值为所述波特率计数器在所述开始时刻和所述第一时刻之间的计数;所述第二波特率值为所述波特率计数器在所述开始时刻和所述第二时刻之间的计数的一半;所述第三波特率值为所述波特率计数器在所述开始时刻和所述第三时刻之间的计数的八分之一。
7.如权利要求6所述的自动波特率检测方法,其中还包括:
步骤(210)将所述波特率计数器在所述开始时刻和所述第一时刻之间的计数与0X8000进行比较,如果所述波特率计数器在所述开始时刻和所述第一时刻之间的计数超过0X8000,则返回步骤(100);否则进入步骤(300)。
8.如权利要求7所述的自动波特率检测方法,其中还包括半比特检测步骤:
使用计数器,将所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数与所述计数器在所述开始时刻和所述第一时刻之间的计数进行比较,如果所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数小于所述计数器在所述开始时刻和所述第一时刻之间的计数的11/16,则返回步骤(100);
所述半比特检测步骤在所述步骤(400)、所述步骤(500)、所述步骤(600)和所述步骤(700)中执行。
9.一种自动波特率检测模块,用于异步接收发送器,所述异步接收发送器包括接收控制器和波特率产生器,所述接收控制器接收数据作为所述接收控制器的接收数据,其特征在于,包括精确波特率检测单元、起始位时间检测单元、半比特检测单元和数据帧匹配检测单元;
所述精确波特率检测单元包括波特率计数器,所述波特率计数器根据参考时钟,从开始时刻至第一时刻、从第一时刻至第二时刻、以及从第二时刻至第三时刻不断计数,分别得到第一、第二以及第三波特率值;
所述起始位时间检测单元将所述波特率计数器在所述开始时刻和所述第一时刻之间的计数与0X8000进行比较,如果所述波特率计数器在所述开始时刻和所述第一时刻之间的计数超过0X8000,则发出波特率检测错误指示;
所述半比特检测单元包括计数器,将所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数与所述计数器在所述开始时刻和所述第一时刻之间的计数进行比较,如果所述计数器在所述接收数据的单个高电平或单个低电平的脉宽内的计数小于所述计数器在所述开始时刻和所述第一时刻之间的计数的11/16,则发出波特率检测错误指示;
所述波特率产生器根据所述第一、第二及第三波特率值作为波特率产生的第一、第二及第三波特率同步信号;
所述数据帧匹配检测单元将所述接收控制器使用所述第一、第二及第三波特率同步信号对所述接收信号采样获得的数据与约定数据进行比较,如果两者不相同,则发出波特率检测错误指示;
所述约定数据为0X41;所述开始时刻对应接收控制器检测到的所述接收数据的低电平的下降沿;所述第一时刻对应所述接收数据的第一个高电平的上升沿;所述第二时刻对应所述接收数据的第一个高电平的下降沿;所述第三时刻对应所述接收数据的第二个高电平的下降沿。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310614299.5A CN103618588B (zh) | 2013-11-26 | 2013-11-26 | 一种自动波特率检测方法及检测模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310614299.5A CN103618588B (zh) | 2013-11-26 | 2013-11-26 | 一种自动波特率检测方法及检测模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103618588A CN103618588A (zh) | 2014-03-05 |
CN103618588B true CN103618588B (zh) | 2016-10-05 |
Family
ID=50169292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310614299.5A Active CN103618588B (zh) | 2013-11-26 | 2013-11-26 | 一种自动波特率检测方法及检测模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103618588B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107996021A (zh) * | 2016-10-18 | 2018-05-04 | 深圳配天智能技术研究院有限公司 | 一种数据处理方法及基站设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106034092B (zh) * | 2015-03-17 | 2019-11-26 | 杭州讯能科技有限公司 | 一种串口波特率自动识别的方法、设备及系统 |
CN105163107A (zh) * | 2015-07-30 | 2015-12-16 | 西安交通大学 | 一种利用dvb信号中pcr检测符号率偏移方法 |
CN105553628B (zh) * | 2015-12-05 | 2018-11-16 | 中国航空工业集团公司洛阳电光设备研究所 | 一种串行通讯波特率检测方法及装置 |
CN106528478B (zh) * | 2016-12-06 | 2019-04-30 | 天津北芯微科技有限公司 | 一种单总线异步串口通信系统及其通信方法 |
CN106788920B (zh) * | 2016-12-19 | 2019-08-23 | 珠海格力电器股份有限公司 | 一种波特率偏差检测方法、装置及空调室内机 |
CN111274194B (zh) * | 2018-12-05 | 2023-06-30 | 锐迪科(重庆)微电子科技有限公司 | 数据处理装置及其控制方法 |
CN110266405A (zh) * | 2019-05-10 | 2019-09-20 | 珠海格力电器股份有限公司 | 设备通讯信号偏差检测系统 |
CN112540641B (zh) * | 2020-10-29 | 2024-04-12 | 珠海格力电器股份有限公司 | 一种时钟精度修正方法、装置及存储介质 |
CN114490488B (zh) * | 2020-11-13 | 2023-09-05 | 芯翼信息科技(上海)有限公司 | 一种低功耗uart串口系统 |
CN113032320B (zh) * | 2021-04-09 | 2022-10-18 | 山东大学 | 一种异步串口通信波特率自适应方法 |
CN114006842B (zh) * | 2021-10-29 | 2023-03-10 | 北京中科昊芯科技有限公司 | 一种检测波特率的方法、装置、设备和介质 |
CN114095300B (zh) * | 2021-11-10 | 2023-05-30 | 天津兆讯电子技术有限公司 | 自适应速率的数据读写方法及设备 |
CN115632923B (zh) * | 2022-10-10 | 2024-09-27 | 北京睿信丰科技有限公司 | 一种基于oqpsk的无人机与卫星超宽带通信方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1981497A (zh) * | 2004-07-01 | 2007-06-13 | Ttpcom有限公司 | 波特率检测 |
CN102006139A (zh) * | 2009-09-02 | 2011-04-06 | 中兴通讯股份有限公司 | 一种时域处理装置、移动通信终端及数据处理方法 |
CN103001734A (zh) * | 2012-10-17 | 2013-03-27 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3768430B2 (ja) * | 2001-10-31 | 2006-04-19 | 富士通株式会社 | マルチフレームレート同期検出方法及びその装置 |
-
2013
- 2013-11-26 CN CN201310614299.5A patent/CN103618588B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1981497A (zh) * | 2004-07-01 | 2007-06-13 | Ttpcom有限公司 | 波特率检测 |
CN102006139A (zh) * | 2009-09-02 | 2011-04-06 | 中兴通讯股份有限公司 | 一种时域处理装置、移动通信终端及数据处理方法 |
CN103001734A (zh) * | 2012-10-17 | 2013-03-27 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
Non-Patent Citations (3)
Title |
---|
《GSS接收机中窄带干扰检测算法》;蔺晓龙;《计算机仿真》;20130731;全文 * |
《串行通信波特率的一种自动检测方法》;任贵勇;《计算机自动测量与控制》;20001231;全文 * |
《基于FPGA原型的GPS基带验证系统设计与实现》;冯华星;《嵌入式技术》;20101231;全文 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107996021A (zh) * | 2016-10-18 | 2018-05-04 | 深圳配天智能技术研究院有限公司 | 一种数据处理方法及基站设备 |
CN107996021B (zh) * | 2016-10-18 | 2020-11-17 | 深圳配天智能技术研究院有限公司 | 一种数据处理方法及基站设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103618588A (zh) | 2014-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103618588B (zh) | 一种自动波特率检测方法及检测模块 | |
CN103605023B (zh) | 一种合并单元时间特性测量方法及测量装置 | |
US5727018A (en) | Process for obtaining a signal indicating a synchronization error between a pseudo-random signal sequence from a transmitter and a reference pseudo-random signal sequence from a receiver | |
US5623497A (en) | Bit error rate measurement apparatus | |
CN103199944B (zh) | 广播式自动相关监视信号检测方法及装置 | |
CN107797606A (zh) | 具有时脉检测与选择功能的集成电路、方法及储存装置 | |
CN101582732A (zh) | 一种时钟检测的方法及装置 | |
CN101175225A (zh) | 数字视频数据测试系统及半导体器件 | |
CN203574663U (zh) | 一种自动波特率检测模块 | |
CN102156287A (zh) | 用于gps软件接收机的初始定位方法 | |
CN105245203B (zh) | 高精度低速时钟占空比检测系统及方法 | |
CN112083242A (zh) | 一种用于交流充电桩的现场检定装置及方法 | |
CN114740329A (zh) | 数据比对装置、数据比对方法及芯片测试仪 | |
CN113075710A (zh) | 定位差分信息获取方法、装置、设备及计算机存储介质 | |
JP4649397B2 (ja) | 波形記録装置、及び波形記録方法 | |
US20160112183A1 (en) | Signal sampling timing drift compensation | |
CN105573110B (zh) | Gnss时间同步系统的闰秒检测系统及方法 | |
CN110868112B (zh) | 一种k接近优化估计的电机转子初始位置检测方法和装置 | |
CN112485640A (zh) | 内置电容器的检测方法、装置、检测设备和存储介质 | |
CN112162232A (zh) | 一种用于交流充电桩的远程检定装置及方法 | |
CN107885692B (zh) | 一种多路串行数据自适应采样的方法、装置及电子设备 | |
CN102289194B (zh) | 运行时钟的方法及装置 | |
CN103744094A (zh) | 基于复杂可编程逻辑器件的组合导航系统时序差测量模块 | |
CN106054589B (zh) | 一种导航卫星星间链路设备自适应精准时间建立方法 | |
CN204442408U (zh) | 一种时间报文测试机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230721 Address after: 310053 room 1001, innovation building, 3850 Jiangnan Road, high tech (Binjiang), Hangzhou, Zhejiang Patentee after: Hangzhou Zhongke Microelectronics Co.,Ltd. Address before: 314006 Building 2, No. 778, Asia Pacific Road, Jiaxing, Zhejiang Province (Jiaxing Technopole) Patentee before: JIAXING MICROELECTRONICS AND SYSTEM ENGINEERING CENTER, CHINESE ACADEMY OF SCIENCES |
|
TR01 | Transfer of patent right |