串口波特率的校正方法及系统、通信模块及存储介质技术方案

技术编号:36815855 阅读:12 留言:0更新日期:2023-03-12 00:23
本发明专利技术公开了一种串口波特率的校正方法及系统、通信模块及存储介质,所述校正方法用于对串口的波特率进行校正以获得目标波特率,包括:预设包含若干个波特率值的集合;分别对于集合内的每个波特率值执行筛选步骤:设置串口的波特率为波特率值;若收到测试数据,则检测测试数据;若测试数据符合预设检测要求,则记录波特率值;根据所有记录的波特率值校正目标波特率。本发明专利技术提供的串口波特率的校正方法及系统、通信模块及存储介质,通过训练波特率值序列对于频率偏差进行针对性修正,增加了通信模块对于MCU串口频率偏差的容忍度,实现了自动化高效率的串口波特率纠偏。自动化高效率的串口波特率纠偏。自动化高效率的串口波特率纠偏。

【技术实现步骤摘要】
串口波特率的校正方法及系统、通信模块及存储介质


[0001]本专利技术涉及通信
,尤其涉及一种串口波特率的校正方法及系统、通信模块及存储介质。

技术介绍

[0002]串口UART(Universal Asynchronous Receiver Transmitter,通用异步收发传输器)通信被广泛用在各种通信模块中,通信模块作为设备的一个器件,一般需要配合外部MCU(Microcontroller Unit,微控制单元)通过UART约定的固定传输速率进行通信。MCU和通信模块进行串口通信时由于晶体频偏会导致串口波特率的频率偏差比较大,当这个偏差超过通信模块容忍的频率偏差(约为3%),就会导致MCU和通信模块无法通信或通信出现乱码。

技术实现思路

[0003]本专利技术要解决的技术问题是为了克服现有技术中通信模块和MCU进行通信交互时,通信模块串口波特率易产生偏差的缺陷,提供一种串口波特率的校正方法及系统、通信模块及存储介质。
[0004]本专利技术是通过下述技术方案来解决上述技术问题:
[0005]本专利技术提供了一种串口波特率的校正方法,用于对所述串口的波特率进行校正以获得目标波特率;所述校正方法包括:
[0006]预设包含若干个波特率值的集合;
[0007]分别对于所述集合的每个波特率值执行筛选步骤:设置串口的波特率为所述波特率值;若收到测试数据,则检测所述测试数据;若所述测试数据符合预设检测要求,则记录所述波特率值;
[0008]根据所有记录的波特率值校正目标波特率。
[0009]较佳地,所述根据所有记录的波特率值校正目标波特率的步骤包括:
[0010]将所述目标波特率设置为所述所有记录的波特率值的中程数或中位数。
[0011]较佳地,所述预设包含若干个波特率值的集合的步骤包括:
[0012]设置第一波特率值、第二波特率值和第一差值;
[0013]设置以所述第一波特率值和所述第二波特率值为端点、所述第一差值为间隔的等差数列;
[0014]设置所述集合为所述等差数列中的每个数值作为波特率值构成的集合。
[0015]较佳地,针对前一个所述波特率值执行完所述筛选步骤之后,间隔预设时间,按照预设顺序针对下一个所述波特率值执行所述筛选步骤。
[0016]本专利技术还提供了一种串口波特率的校正系统,用于对所述串口的波特率进行校正以获得目标波特率;所述校正系统包括:
[0017]预设模块,用于预设包含若干个波特率值的集合;
[0018]筛选模块,用于分别对于所述集合内的每个波特率值进行筛选,所述筛选模块包括:
[0019]设置单元,用于设置串口的波特率为所述波特率值;
[0020]检测单元,用于当收到测试数据,则检测所述测试数据;
[0021]记录单元,用于当所述测试数据符合预设检测要求,则记录所述波特率值;
[0022]校正模块,用于根据所有记录的波特率值校正目标波特率。
[0023]较佳地,所述校正模块具体用于:
[0024]将所述目标波特率确定为所述所有记录的波特率值的中程数或中位数。
[0025]较佳地,所述预设模块具体用于:
[0026]设置第一波特率值、第二波特率值和第一差值;
[0027]设置以所述第一波特率值和所述第二波特率值为端点、所述第一差值为间隔的等差数列;
[0028]设置所述集合为所述等差数列中的每个数值作为波特率值构成的集合。
[0029]较佳地,所述筛选模块具体用于间隔预设时间,并按照预设顺序针对所述集合内的每个所述波特率值分别调用所述设置单元、检测单元、记录单元。
[0030]本专利技术还提供了一种通信模块,所述通信模块包括主测试单元、串口单元以及存储器,所述存储器被配置成存储指令,当所述存储指令被所述主测试单元执行时,使所述主测试单元执行步骤,所述步骤包括:
[0031]预设包含若干个波特率值的集合;
[0032]分别对于所述集合内的每个波特率值执行筛选步骤:设置所述串口单元的波特率为所述波特率值;若收到测试数据,则检测所述测试数据;若所述测试数据符合预设检测要求,则记录所述波特率值;
[0033]根据所有记录的波特率值确定所述串口单元的目标波特率。
[0034]本专利技术还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的串口波特率的校正方法。
[0035]本专利技术的积极进步效果在于:本方案提供的串口波特率的校正方法及系统、通信模块及存储介质,通过训练波特率值序列对于频率偏差进行针对性修正,增加了通信模块对于MCU串口频率偏差的容忍度,实现了自动化高效率的串口波特率纠偏。避免了由于MCU侧的频率偏差引起和通信模块之间的通信问题,增加了产品的适应性,可以减少外接MCU由于挑选高精度晶体带来的额外成本。
附图说明
[0036]图1为本专利技术实施例1中的串口波特率的校正方法的流程示意图。
[0037]图2为本专利技术实施例1中的串口波特率的校正方法的应用场景示意图。
[0038]图3为本专利技术实施例2中的串口波特率的校正系统的模块示意图。
[0039]图4为本专利技术实施例3中的通信模块的模块示意图。
具体实施方式
[0040]下面通过实施例的方式进一步说明本专利技术,但并不因此将本专利技术限制在所述的实
施例范围之中。
[0041]实施例1
[0042]参见图1所示,本实施例具体提供了一种串口波特率的校正方法,用于对串口的波特率进行校正以获得目标波特率。校正方法包括步骤:
[0043]S1.预设包含若干个波特率值的集合;
[0044]S2.分别对于集合内的每个波特率值执行筛选步骤:
[0045]S21.设置串口的波特率为波特率值;
[0046]S22.若收到测试数据,则检测测试数据;
[0047]S23.若测试数据符合预设检测要求,则记录波特率值。
[0048]S3.根据所有记录的波特率值校正目标波特率。
[0049]参见图2,示出了一种常见的MCU 1和通信设备2通过串口进行同步通信连接的方式,其工作原理为,MCU1和通信设备2开机后,约定以指定的波特率进行通信,当MCU1收到串口结束序列后,同步完成,进入正常数据收发流程。通信模块的波特率发生器一般由高频率分频得出来,而由于晶振A4、B3的偏差,导致MCU1输入的频率存在一定的偏差,当这个偏差超过通信设备2容忍的频率偏差(一般为3%)就会导致两者相互无法通信。本实施例的串口波特率的校正方法通过波特率收发测试来校正得到适合的波特率范围,为了描述方便,以上述结构为例进行说明。当然本领域技术人员可知,本实施例的校正方法并不限于上述应用场景。
[0050]步骤S1中,通过波特率发生单元A2配置预设包含若干个波特率值的集合A;为了较好地覆盖可能符合要求的波特率值的范围,可以将集合A本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种串口波特率的校正方法,其特征在于,用于对所述串口的波特率进行校正以获得目标波特率;所述校正方法包括:预设包含若干个波特率值的集合;分别对于所述集合内的每个波特率值执行筛选步骤;设置串口的波特率为所述波特率值;若收到测试数据,则检测所述测试数据;若所述测试数据符合预设检测要求,则记录所述波特率值;根据所有记录的波特率值校正目标波特率。2.如权利要求1所述的串口波特率的校正方法,其特征在于,所述根据所有记录的波特率值校正目标波特率的步骤包括:将所述目标波特率设置为所述所有记录的波特率值的中程数或中位数。3.如权利要求1所述的串口波特率的校正方法,其特征在于,所述预设包含若干个波特率值的集合的步骤包括:设置第一波特率值、第二波特率值和第一差值;设置以所述第一波特率值和所述第二波特率值为端点、所述第一差值为间隔的等差数列;设置所述集合为所述等差数列中的每个数值作为波特率值构成的集合。4.如权利要求1所述的串口波特率的校正方法,其特征在于,针对前一个所述波特率值执行完所述筛选步骤之后,间隔预设时间,按照预设顺序针对下一个所述波特率值执行所述筛选步骤。5.一种串口波特率的校正系统,其特征在于,用于对所述串口的波特率进行校正以获得目标波特率;所述校正系统包括:预设模块,用于预设包含若干个波特率值的集合;筛选模块,用于分别对于所述集合内的每个波特率值进行筛选,所述筛选模块包括:设置单元,用于设置串口的波特率为所述波特率值;检测单元,用于当收到测试数据,则检测所述测试数据;记录单元,用...

【专利技术属性】
技术研发人员:张勇星郑雷
申请(专利权)人:合肥移瑞通信技术有限公司
类型:发明
国别省市:

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

1