一种串口波特率检测方法、装置、设备及存储介质与流程
- 国知局
- 2024-09-05 14:47:54
本发明涉及计算机,特别是涉及一种串口波特率检测方法、装置、设备及存储介质。
背景技术:
1、串口波特率就是在串口通信中每秒传输的二进制位数,是串口通信的一个重要参数,它决定了串口通信的速度和稳定性。一般而言,波特率越高,数据传输速度就越快。波特率是由发送方和接收方共同决定的,在串口通信中,发送方和接收方需要通过某种方式(如协议)约定一个共同的波特率,然后按照这个波特率进行数据的发送和接收。
2、事先波特率未知且通信主机无法在特定阶段提供特征字符用于波特率检测的情况下,现有技术中串口波特率自适应调整通常有几类方法:
3、一、基于预设值的遍历式自适应调整。
4、需要给从机(通信接收方/波特率检测方)预先设定数种特定波特率/波特率范围;采用遍历的方式用预设范围内不同波特率采样自主机的通信数据,当满足特定条件时,则判定当前采样波特率为正确波特率;正确波特率的判定条件可以是识别出主机发送的特定字节数据或者是在有校验位情况下,通信数据持续符合校验逻辑。
5、然而,基于预设值的遍历式自适应调整方案有以下几个缺点:受预设波特率限制,调整范围有限;遍历地尝试波特率自适应调整耗时较长;只适合在明确知道对方波特率可能取值的情况下使用;
6、二、基于特征字符的波特率自适应检测。
7、需要主机(通信发送方)在特定的工作时机(比如通信初始建立过程中),发送特定字符来协助从机完成检测。从机在相应的工作时机,通过高频时钟对特定字符的电平持续时间进行计数,并通过一定的逻辑运算得出正确的运行波特率。以stm32系列芯片采用的abr方法为例:abr是指接收设备通过检查第一个(特定工作时机)字符(通常是预先选择的标志字符)确定传入数据速率的过程。
8、基于特征字符的波特率自适应检测方案有以下几个缺点:从机的波特率检测过程必须主机在特定时机发送特定字符配合,因此从机新增该功能时,必须对主机进行相应的改造,成本增加;每次波特率发生改变时,均需要打断正常通信过程,使双方进入波特率匹配的特定时机,降低了通信效率。
技术实现思路
1、鉴于上述问题,本发明提供用于克服上述问题或者至少部分地解决上述问题的一种串口波特率检测方法、装置、设备及存储介质。用于解决事先波特率未知且通信主机无法在特定阶段提供特征字符用于波特率检测的情况下串口通信波特率的检测问题。同时,该方法使用范围更广,且更为便捷。
2、本发明提供了如下方案:
3、一种串口波特率检测方法,包括:
4、确定波特率调节范围,根据所述波特率调节范围确定波特率计算下限值以及波特率计算上限值;
5、获取参考时钟以及通信信号;
6、利用移位寄存器检测所述通信信号的下降沿以及上升沿,利用所述下降沿的来临时机确定启动计数器的开始计数时刻,利用所述上升沿的来临时机确定结束所述计数器的停止计数时刻;以便将所述计数器从所述开始计数时刻到所述停止计数时刻之间的计数值作为目标计数值;
7、获取所述计数器两次计数得到的两个所述目标计数值;判断两个所述目标计数值的大小;将两个所述目标计数值中大的所述目标计数值赋值为大数据,将两个所述目标计数值中小的所述目标计数值赋值为小数据,将所述大数据与所述小数据做差获得计数差值;
8、判断所述计数差值是否小于所述波特率计算下限值;
9、确定小于所述波特率计算下限值将所述小数据作为波特率计算结果输出。
10、优选地:获取多次所述波特率计算结果,将多次所述波特率计算结果中的最大值以及最小值去除后,再求剩余的所述波特率计算结果的平均值作为目标波特率计算结果输出。
11、优选地:获取不少于10次所述波特率计算结果,将不少于10次所述波特率计算结果中的最大值以及最小值去除后,再求剩余的所述波特率计算结果的平均值作为目标波特率计算结果输出。
12、优选地:确定大于所述波特率计算下限值,判断所述计数差值与小的所述目标计数值的大小;
13、将所述计数差值与小的所述目标计数值中大的赋值为所述大数据,将所述计数差值与小的所述目标计数值中小的赋值为所述小数据;
14、重复计数差值计算以及将计数差值与所述波特率计算下限值比对直至确定小于所述波特率计算下限值将所述小数据作为波特率计算结果输出。
15、优选地:所述波特率调节范围包括100bps~1000000bps,所述参考时钟的频率包括100mhz,所述波特率计算下限值为10^2。
16、优选地:所述计数器的最小位宽采用所述参考时钟的频率以及所述波特率计算下限值经过计算确定。
17、优选地:所述移位寄存器为8位移位寄存器;
18、利用所述下降沿的来临时机确定启动计数器的开始计数时刻包括:
19、每一个100mhz参考时钟的上升沿来临时,对串口接收通道进行采样,采样结果存入所述移位寄存器最低位,所述移位寄存器其他位左移一位,原来的最高位舍弃,当所述移位寄存器为8’b1111_0000时确定为所述开始计数时刻;
20、利用所述上升沿的来临时机确定结束所述计数器的停止计数时刻包括:
21、每一个100mhz参考时钟的上升沿来临时,对串口接收通道进行采样,采样结果存入所述移位寄存器最低位,所述移位寄存器其他位左移一位,原来的最高位舍弃,当所述移位寄存器为8’b0000_1111时确定为所述停止计数时刻。
22、一种串口波特率检测装置,包括:
23、调节范围确定单元,用于确定波特率调节范围,根据所述波特率调节范围确定波特率计算下限值以及波特率计算上限值;
24、时钟及信号获取单元,用于获取参考时钟以及通信信号;
25、目标计数值获取单元,用于利用移位寄存器检测所述通信信号的下降沿以及上升沿,利用所述下降沿的来临时机确定启动计数器的开始计数时刻,利用所述上升沿的来临时机确定结束所述计数器的停止计数时刻;以便将所述计数器从所述开始计数时刻到所述停止计数时刻之间的计数值作为目标计数值;
26、计数差值获取单元,用于获取所述计数器两次计数得到的两个所述目标计数值;判断两个所述目标计数值的大小;将两个所述目标计数值中大的所述目标计数值赋值为大数据,将两个所述目标计数值中小的所述目标计数值赋值为小数据,将所述大数据与所述小数据做差获得计数差值;
27、比对单元,用于判断所述计数差值是否小于所述波特率计算下限值;
28、波特率计算结果输出单元,用于确定小于所述波特率计算下限值将所述小数据作为波特率计算结果输出。
29、一种串口波特率检测设备,所述设备包括处理器以及存储器:
30、所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
31、所述处理器用于根据所述程序代码中的指令执行上述的串口波特率检测方法。
32、一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述的串口波特率检测方法。
33、根据本发明提供的具体实施例,本发明公开了以下技术效果:
34、本技术实施例提供的一种串口波特率检测方法、装置、设备及存储介质,可自适应达到的波特率是一个范围内的连续值,而非遍历式方案中的数量有限的离散值。相较于传统基于特征字符的波特率自适应方法,该方法无需与主机事先约定/修改主机逻辑、无需特殊时机、无需特定字符的从机波特率自适应检测方法。同时,所计算得到的波特率仅受设定波特率计算下限值,上限值限制,调节范围更广。另外,该方法的低电平计数可在任意过程中进行,无需通信主机执行额外工作过程,因此该方法对于系统升级更为便捷、成本更低。
35、当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
本文地址:https://www.jishuxx.com/zhuanli/20240905/288155.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。