一种自适应波特率的方法、装置及打印机与流程

专利2022-06-29  76


本发明涉及串口通讯技术领域,尤其是涉及一种自适应波特率的方法、装置及热敏打印机。



背景技术:

在工业控制领域,大多数电子设备多以串行通信接口与主机设备进行数据交互。在电子设备首次安装时,需要人工设置串行接口波特率,使通信双方速率相同。这些操作加大了设备装机时的工作量,甚至在未知一方波特率的时候,装机工作无法进行下去,极其影响生产效率。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种自适应波特率的方法、装置及打印机,能够自动设置波特率实现与主机设备的通信。

本发明所采用的技术方案是:

第一方面,本发明提供一种自适应波特率的方法,所述方法包括以下步骤:

波特率计算步骤:计算主机设备的波特率;

波特率选择步骤:对照预设标准波特率表,选择与所述主机设备的波特率最接近的标准波特率;

波特率设置步骤:根据选择出的所述标准波特率,设置波特率,与所述主机设备进行串口通信。

进一步地,所述方法还包括步骤:

波特率检测步骤:检测波特率是否已设置,若未设置则执行所述波特率计算步骤。

进一步地,所述波特率计算步骤具体包括:

记录与所述主机设备尝试通信时发生的帧错误次数;

当所述帧错误次数递减至零时则确定当前的波特率为所述主机设备的波特率。

进一步地,所述预设标准波特率表为:110,300,600,1200,2400,4500,4800,9600,14400,19200,28800,34500,38400,43000,56000,57600,62500,76800,115200,128000,137500,153600,194000,230400,256000,460800,614400,921600。

第二方面,本发明提供一种自适应波特率的装置,所述装置包括:

波特率计算模块,用于计算主机设备的波特率;

波特率选择模块,用于对照预设标准波特率表,选择与所述主机设备的波特率最接近的标准波特率;

波特率设置模块,用于根据选择出的所述标准波特率,设置波特率,与所述主机设备进行通信。

进一步地,所述装置还包括:

波特率检测模块,用于检测波特率是否已设置,若未设置则执行所述波特率计算步骤。

第三方面,本发明提供一种打印机,其特征在于,包括处理器、存储器以及存储在存储器内的计算机程序,其中所述计算机程序能够被所述处理器执行,以执行上述的自适应波特率的方法。

本发明的有益效果是:

本发明通过计算主机设备的波特率,再从预设标准波特率表中选择与计算出的主机设备的波特率最接近的波特率,作为标准波特率,以标准波特率和主机设备进行串口通信。克服了现有技术中需人工设置波特率增加了装机工作量的技术问题,从而提供了一种更加自动化、智能化的自适应波特率的方法。

附图说明

图1是本发明中自适应波特率的方法的一实施例的流程示意图;

图2是本发明中数据字节的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例一

本实施例提供了一种自适应波特率的方法,如图1所示,该方法包括以下步骤:

s100.波特率检测步骤:检测波特率是否已设置,若未设置则执行波特率计算步骤;

s200.波特率计算步骤:计算主机设备的波特率;

s300.波特率选择步骤:对照预设标准波特率表,选择与主机设备的波特率最接近的标准波特率;

s400.波特率设置步骤:根据选择出的标准波特率,设置波特率,与主机设备进行串口通信。

当打印机等受控设备与主机设备进行通信时,需通信双方的波特率相同才能进行数据交互。本实施例提供的自适应波特率的方法,可以自动调整打印机等受控设备的波特率与主机设备一致,从而实现双方的数据交互。具体地:

步骤s100:波特率检测步骤,具体地,受控设备与主机设备建立串口连接后,由于双方的波特率不一致,当主机设备在向受控设备发送数据的时候,串口会发生帧错误。此时受控设备检测受控设备的波特率参数是否已经设置,若没有设置则是因为速度不匹配导致的,此时触发进入后续步骤;

步骤s200:波特率计算步骤,具体地,在计算主机设备的波特率时,受控设备捕捉主机设备发来的串口数据中的一个字节的负脉冲宽度,如图2所示,一个字节包括起始位、8个串口位(图中1~8)、校验位(参照图2,有的字节无校验位)和停止位。由于起始位始终为低电平,若捕捉的负脉冲(正好为起始位)宽度(即起始位宽度)为t1,刚好占一个串口位,以t1为单位向后延伸8个位,分别和校验位、停止位的位置是对应的(若无校验位,则只需判断停止位的位置是否对应),则将捕捉的负脉冲宽度t1的倒数1/t1初步判断为主机设备的波特率。若校验位、停止位的位置不对应,例如图中的负脉冲宽度为t2和t3,则重复步骤s200,重新捕捉下一个负脉冲,直至校验位、停止位的位置对应。

初步判断出主机设备的波特率后,受控设备以该波特率跟主机设备进行通信,接收主机设备发来的数据,判断数据中的字节是否正确,记录为帧错误次数并存储在计数器中,字节错误则帧错误次数加1,字节正确则帧错误次数减1。具体地,如图2所示,若主机设备发来的数据中的字节带校验位,通过判断8个串口位(图中1~8)中高电平的个数来判断该字节是否准确。假设主机设备与受控设备之间设置的校验机制为奇校验(或偶校验),当8个串口位中高电平的个数为奇数个(或偶数个),则该字节准确,否则该字节错误,最终以计数器中的帧错误次数归零做为正确与否的判断依据,从而为主机设备的波特率增加了一道判断机制,能够进一步确定初步判断的主机设备的波特率是否正确。

步骤s300:波特率选择步骤,具体地,对照预设标准波特率表,选择与主机设备的波特率最接近的标准波特率。本实施例中,预设标准波特率表为:110,300,600,1200,2400,4500,4800,9600,14400,19200,28800,34500,38400,43000,56000,57600,62500,76800,115200,128000,137500,153600,194000,230400,256000,460800,614400,921600,从中选择与步骤s200中确定的主机设备的波特率最接近的波特率,作为标准波特率;

步骤s400:波特率设置步骤,具体地,根据步骤s300中选择出的标准波特率,设置受控设备的波特率,使得受控设备可以与主机设备进行正常的串口通信。

实施例二

本实施例提供了一种自适应波特率的装置,该装置包括:

波特率检测模块,用检测波特率是否已设置;

波特率计算模块,用于计算主机设备的波特率;

波特率选择模块,用于对照预设标准波特率表,选择与主机设备的波特率最接近的标准波特率;

波特率设置模块,用于根据选择出的标准波特率,设置波特率,与主机设备进行通信。

自适应波特率的装置的具体工作过程参照实施例一中对自适应波特率的方法的描述,此处不再赘述。

实施例三

本实施例提供了一种打印机,该打印机包括处理器、存储器以及存储在存储器内的计算机程序,其中计算机程序能够被处理器执行,以执行如实施例一种所述的自适应波特率的方法。

本实施例中,受控设备为打印机,打印机的处理器能够调用存储器中的计算机程序,从而实现自适应主机设备的波特率,与主机设备进行正常的串口通信。

具体地,打印机出厂时,波特率参数设置为“待检测”状态。首次装机时,用户操作主机设备,发送打印数据给打印机,在此过程中,打印机完成实施例一种所述的波特率计算步骤,并自动保存,完成波特率参数设置。

打印机波特率在“待检测”状态时,波特率为极高波特率921600bps,当尝试与主机设备进行通信时,会发生串口帧错误。打印机程序记录帧错误次数,在检测过程中,帧错误计数器继续增加,当计算出正确波特率并通过校验机制判断字节正确后,通信正常,帧错误计数器开始递减,减至零时,则已经正确接收了足够多字节,由此判定计算出的主机设备的波特率正常,保存波特率参数。从预设标准波特率表中选择与其最接近的波特率,作为标准波特率,以该标准波特率继续与主机设备进行正常的串口通信。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。


技术特征:

1.一种自适应波特率的方法,其特征在于,所述方法包括以下步骤:

波特率计算步骤:计算主机设备的波特率;

波特率选择步骤:对照预设标准波特率表,选择与所述主机设备的波特率最接近的标准波特率;

波特率设置步骤:根据选择出的所述标准波特率,设置波特率,与所述主机设备进行串口通信。

2.根据权利要求1所述的一种自适应波特率的方法,其特征在于,所述方法还包括步骤:

波特率检测步骤:检测波特率是否已设置,若未设置则执行所述波特率计算步骤。

3.根据权利要求1所述的一种自适应波特率的方法,其特征在于,所述波特率计算步骤具体包括:

记录与所述主机设备尝试通信时发生的帧错误次数;

当所述帧错误次数递减至零时则确定当前的波特率为所述主机设备的波特率。

4.根据权利要求1至3任一项所述的一种自适应波特率的方法,其特征在于,所述预设标准波特率表为:110,300,600,1200,2400,4500,4800,9600,14400,19200,28800,34500,38400,43000,56000,57600,62500,76800,115200,128000,137500,153600,194000,230400,256000,460800,614400,921600。

5.一种自适应波特率的装置,其特征在于,所述装置包括:

波特率计算模块,用于计算主机设备的波特率;

波特率选择模块,用于对照预设标准波特率表,选择与所述主机设备的波特率最接近的标准波特率;

波特率设置模块,用于根据选择出的所述标准波特率,设置波特率,与所述主机设备进行通信。

6.根据权利要求5所述的一种自适应波特率的装置,其特征在于,所述装置还包括:

波特率检测模块,用于检测波特率是否已设置,若未设置则执行所述波特率计算步骤。

7.一种打印机,其特征在于,包括处理器、存储器以及存储在存储器内的计算机程序,其中所述计算机程序能够被所述处理器执行,以执行如权利要求1至4任一项所述的自适应波特率的方法。

技术总结
本发明公开了一种自适应波特率的方法、装置及打印机,涉及串口通讯技术领域。方法包括:波特率计算步骤:计算主机设备的波特率;波特率选择步骤:对照预设标准波特率表,选择与所述主机设备的波特率最接近的标准波特率;波特率设置步骤:根据选择出的所述标准波特率,设置波特率,与所述主机设备进行串口通信。本发明通过计算主机设备的波特率,再从预设标准波特率表中选择与计算出的主机设备的波特率最接近的波特率,作为标准波特率,以标准波特率和主机设备进行串口通信。克服了现有技术中需人工设置波特率增加了装机工作量的技术问题,从而提供了一种更加自动化、智能化的自适应波特率的方法。

技术研发人员:陈炜煌;常广宝
受保护的技术使用者:东莞炜煌打印机有限公司
技术研发日:2020.01.20
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-30132.html

最新回复(0)