数字异步通信中自动波特率检测的实现方法技术

技术编号:36744101 阅读:23 留言:0更新日期:2023-03-04 10:24
本发明专利技术公开了一种“数字异步通信中自动波特率检测的实现方法”,该技术可在事先不知道系统的通信速率情况下,根据接收到的一个字符检测通信速率,并自动设置brr寄存器的值。在检测之前可通过寄存器中的ABRMOD[1:0]字段选择自动波特率检测模式。根据不同的字符模式,存在四种检测模式。在这些自动波特率模式下,波特率在接收数据期间被多次测量,每次测量的结果都可被记录,逐次修正提高精确度。该技术在数字通信领域有较为实际的应用价值。数字通信领域有较为实际的应用价值。数字通信领域有较为实际的应用价值。

【技术实现步骤摘要】
数字异步通信中自动波特率检测的实现方法


[0001]本专利技术涉及数字异步通信领域的波特率检测技术,尤其适用于通用异步接收器中对未知通信速率的数据进行波特率检测。

技术介绍

[0002]在异步通信中,数据在串行传输过程中,两个设备间的传输波特率需要保持相同才能保证传输的正常进行。在接收通信速率未知的数据时,需要得知对方传输数据的波特率。此时通常要对接收到的数据进行通信波特率检测,并根据检测结果对接收速率进行调整。对于通信波特率的检测,需要使用尽量少的数据帧,尽可能地提高检测的精确度,并将检测到的结果及时反馈。由于波特率未知,需要先设定一个初始brr值,但用此brr值产生的采样脉冲暂时不可用,此时只可根据上升沿和下降沿判断一个比特的开始与结束。由于起始位为低电平,因此对于首位非“0”的数据,第一个下降沿到第一个上升沿的宽度即为一比特时长。通常的自动波特率检测会将此计算得到的波特率作为之后的接收器波特率。本专利对自动波特率检测进行了优化,合理利用起始位和数据位的翻转特点,提供多种检测模式以提高精确度,同时能在一帧数据中多次对brr值进行刷新,以提高检测反馈效率。

技术实现思路

[0003]a)在进行异步通信的过程中,针对通信速率未知的系统,需要对其进行自动波特率检测。通常通过对起始位的开始沿和结束沿进行测量得到结果。本专利技术专利通过引入可选择模式的自动波特率检测方法,提供四种检测模式(模式0

3),充分利用不同类型数据的变换特点,可根据实际需求最大程度地提高波特率检测的准确性,以最快速度将检测结果反馈到系统,通过仿真具有较理想的效果。
[0004]b)该项专利技术的原理框图如图1所示。包含对接收总线上上升沿和下降沿的检测,时钟周期数和数据传输比特数计数器,由计数器到brr值的计算转换逻辑模块和采样脉冲生成逻辑模块。模式选择将决定选取用于检测的起始沿“边沿1”和结束沿“边沿N”,同时也将决定数据比特计数器abrbyte_cnt的目标值。时钟周期计数值将根据选定的“边沿1”和“边沿N”之间包含的比特数选择x1或x1/2或x1/8得到brr值,反馈给采样脉冲生成逻辑模块后,由采样脉冲生成逻辑模块对采样脉冲做出及时调整。在选择模式不同的情况下,用于检测波特率的数据也不相同,其每一比特的翻转特点与模式相匹配。不同模式下一帧数据中更新brr寄存器的次数也不相同,从1次到3次不等,更新次数越多的模式,其检测的准确度也相对较高。每一次更新brr后,该值会立刻生效,后续比特采样将根据更新的值进行。在用于检测的数据帧接收完成后,自动波特率检测流程也随之结束,brr将保持最后一次被更新的值,继续用于后续正常数据的接收。
附图说明
[0005]图1:自动波特率检测原理框图
[0006]图2:不同模式自动波特率检测原理图
[0007]图3:不同模式自动波特率检测仿真结果图
具体实施方式
[0008]图1为本专利技术的原理框图,包含边沿检测,时钟周期计数器abr_cnt,数据比特数计数器abrbyte_cnt,计数器到brr值的转换逻辑模块等。根据模式选择,在特定两个沿之间对时钟周期数和比特数进行计数,经过计算得到brr值反馈给采样脉冲生成逻辑模块,采样脉冲生成逻辑模块及时根据brr值对采样脉冲的生成进行调整,并用于对总线数据的采样。
[0009]采样脉冲信号在UART等通信协议中应用广泛,定义通信波特率为通信时钟频率与brr的比值,即时钟频率固定时,通过修改brr的数值便可以调整通信波特率。在接收通信速率暂时未知的数据时,可通过接收一个具有特定格式的数据来进行自动波特率检测,随后根据检测结果更改brr的值来匹配接收器采样脉冲的生成速率。本专利技术对自动波特率检测提供了四种模式(模式0

3),使用不同模式自动检测得到的波特率精度略有差异。检测前brr会有一个初始值,采样脉冲可以通过brr的初始值生成,但在brr首次被更新前,该采样脉冲都不会被使用。首次检测时,无论哪种模式,特定沿选定后,中间不会有干扰沿出现,之间的比特数也随之确定,主要在选取的特定上升沿和下降沿之间计数期间的时钟周期数,两者结合可得到新的brr值进行更新。非首次检测时,brr已经被更新过至少一次,产生的采样脉冲相对准确,可用其来对传输的比特数进行计数。当选取的检测区间长度增大后,起始沿和结束沿中间可能会出现和结束沿同类的沿,利用数据比特计数器可得知当前传输得比特数,防止误判断。
[0010]如图2所示,1)模式0:用于首位是“1”的字符,此模式下,起始位开始时会有一个下降沿,结束时会出现一个上升沿,测量下降沿到上升沿的间隔,即测量起始位的持续时间即可,brr寄存器的值会在起始位结束时更新。2)模式1:用于以“10xx”开头的字符,起始位开始时会有一个下降沿,数据位首位的“1”结束切换到“0”时又会出现一个下降沿,测量下降沿到下降沿的间隔,即测量起始位和首个数据位的持续时间,即可在首位数据位结束后更新brr的值。3)模式2:此模式下,LSB优先时接收“0x7F”,MSB优先时接收“0xFE”。在起始位结束时,利用起始位的开始下降沿和结束上升沿先计算出一个波特率对应的brr值BR,并进行更新,随后在接收全为“1”的Bit0

Bit6时使用BR值采样,待Bit6结束时再次出现下降沿,利用起始位开始时的下降沿和此处的下降沿计算出BR6作为新的brr值进行更新,后续使用BR6进行接收。4)模式3:此模式下,LSB优先时接收“0x55”,MSB优先时接收“0xAA”。同模式2,在起始位结束时,brr值会进行第一次更新,变为BR,同模式1,在Bit0结束时brr会进行第二次更新,变为BR0,最后在Bit6结束时,根据起始位开始时的下降沿和Bit6结束的下降沿得到BR6并更新。期间Bit0采样使用BR,Bit1

Bit6的采样使用BR0,Bit6之后使用BR6进行采样。在模式3下,自动波特率完成后,还会对接收到的数据进行另外的检查。如果接收到的数据不是“0x55”(LSB优先),或“0xAA”(MSB优先),则产生错误,错误标志ABRE位置1。
[0011]如图3所示,在UART通信过程中进行了四种模式的自动波特率检测仿真。在自动波特率检测开始前,设置brr值为598,随后开始接收每种模式对应格式的字符。仿真结果显示brr的值会在对应的沿后更新,且在存在多次更新的模式中,每次得到的brr值有较小差别。由此可见,提高检测区间能够有效提高波特率的检测精确度。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.数字异步通信系统中自动波特率检测的实现方法,其特征在于,包含时钟周期计数器和数据比特数计数器BBR值计算转换逻辑模块、BBR寄存器、采样脉冲生成逻辑模块,可实时检测接收数据的波特率,并更新相应寄存器来更新采样脉冲,共分四种检测模式,其中第2

4种模式需要多次更新brr寄存器,所述生成方法包括:1)检测模式只更新一次brr值时,从起始位开始沿到相应结束沿,进行时钟周期计数和比特数计数,计算得brr值后立即更新采样脉冲;2)检测模式需要多次更新brr值时,首次获...

【专利技术属性】
技术研发人员:李捷周健恺宋冯
申请(专利权)人:上海华虹集成电路有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1