串口波特率识别方法和装置制造方法

文档序号:6517949阅读:352来源:国知局
串口波特率识别方法和装置制造方法
【专利摘要】本发明公开了一种串口波特率识别方法和装置。所述方法包括:通过中断端口接收所述串口发送的数据,并启动定时器开始计时;根据所述串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间;根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔;根据所述最短中断时间间隔,计算所述串口的波特率。采用本发明技术方案,能够快速识别串口波特率,从而提高通信效率。
【专利说明】串口波特率识别方法和装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别是涉及一种串口波特率识别方法和装置。
【背景技术】
[0002]随着计算机技术的发展,医疗设备也随着行业分工的细化,陆续出现了多种插件式监护仪,这些插件式监护仪可以配套使用生理参数监测模块。
[0003]生理参数监测模块一般是通过串口进行通信,当集成一种插件式监护仪时,监护仪主机就必须知道生理参数监测模块的串口波特率,否则就无法通信。然而,不同厂家的生理参数监测模块的串口波特率各不一样,并且在通信时,根据不同的数据传输量,串口波特率也不尽相同,因此对生理参数监测模块的选用、识别以及通信效率带来不利的影响。

【发明内容】

[0004]基于此,有必要提供一种串口波特率识别方法和装置,应用本方法和装置,能够快速识别串口波特率,从而提高通信效率。
[0005]一种串口波特率识别方法,包括:
[0006]通过中断端口接收所述串口发送的数据,并启动定时器开始计时;
[0007]根据所述串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间;
[0008]根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔,并根据所述最短中断时间间隔,计算所述串口的波特率。
[0009]在其中一个实施例中,所述根据所述串口发送的数据中预设的电平变化触发中断,包括:
[0010]根据所述串口发送的数据中的电平变化上升沿触发中断。
[0011]在其中一个实施例中,所述记录预置次数的中断所对应的触发时间,包括:
[0012]记录100次中断所对应的触发时间。
[0013]在其中一个实施例中,所述根据最短中断时间间隔,计算所述串口的波特率,具体为:
[0014]根据公式:S = (1000000 X δ )/T计算波特率S,其中最短中断时间间隔为T微秒,δ为修正常数。
[0015]在其中一个实施例中,修正常数δ取值为1.92。
[0016]一种串口波特率识别装置,包括:
[0017]中断输入模块,用于通过中断端口接收所述串口发送的数据;
[0018]定时器模块,用于在所述中断输入模块接收所述串口发送的数据后,启动定时器开始计时;
[0019]中断处理模块,用于根据所述串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间;[0020]波特率计算模块,用于根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔,并根据所述最短中断时间间隔,计算所述串口的波特率。
[0021]在其中一个实施例中,所述中断处理模块,用于根据所述串口发送的数据中的电平变化上升沿触发中断。
[0022]在其中一个实施例中,所述中断处理模块,用于记录100次中断所对应的触发时间。
[0023]在其中一个实施例中,所述波特率计算模块,用于根据公式:S = (1000000X δ)/T计算波特率S,其中最短中断时间间隔为T微秒,δ为修正常数。
[0024]在其中一个实施例中,修正常数δ取值为1.92。
[0025]上述串口波特率识别方法和装置,在通过中断端口接收到串口发送的数据后,开启定时器进行计时,根据串口发送的数据中预设的电平变化触发中断,并记录每次中断对应的触发时间,再根据所有相邻的触发时间,确定最短中断时间间隔,再根据最短中断时间间隔计算串口的波特率,因而只需要从串口接收几个字节的数据就能快速确定串口的波特率,提高了通信的效率。
【专利附图】

【附图说明】
[0026]图1为一个实施例中的串口波特率识别方法的流程示意图;
[0027]图2为一个实施例中的串口波特率识别装置的结构示意图。
【具体实施方式】
[0028]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0029]参见图1,在一个实施例中,提供了一种串口波特率识别方法,该方法可以应用于通过一处理芯片接收数据发送方串口发送的数据,从而测出串口波特率的使用场景,其中的处理芯片可以但不限于是单片机等处理器,数据发送方例如可以是用于监护仪的生理数据监测模块。
[0030]本方法包括:
[0031]步骤102,通过中断端口接口串口发送的数据,并启动定时器开始计时。
[0032]具体的,将数据发送方的串口连接到中处理芯片的外部中断端口,进行中断程序的初始化。在数据发送方通过串口发送数据后,启动定时器开始工作,本实施例中,定时器可以为高精准的微秒计时器。
[0033]步骤104,根据串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间。
[0034]串口输出连接到处理芯片的中断端口,处理芯片的中断可以是在接收信号的电平上升沿触发。在串口时序中,数据位I可以是高电平来表示,数据位O可以由低电平表示,因此处理芯片的中断端口在接收到“01”上升沿时将触发中断,例如中断端口在接收到数据“0101”时将触发两次中断,同理中断端口在接收到数据“010001”时也将触发两次中断。本实施例中,定时器保持计时工作,在每次触发中断时,由中断程序读取并记录当前中断对应的触发时间。记录预置次数的中断所对应的触发时间,应当是记录足够多次,例如可以是设置为记录100次中断所对应的触发时间。
[0035]步骤106,根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔,并根据最短中断时间间隔,计算串口的波特率。
[0036]本实施例中,记录了预置次数如100次中断对应的触发时间后,根据所有相邻两次中断的触发时间作差,所得到的差即为中断时间间隔,从这些差值中得到最短中断时间间隔,最短中断时间间隔可以视为“0101”两次电平上升沿变化的时间间隔,也可以视为串口传输两位数据的时间,因此根据串口波特率的概念就可以计算出波特率,理论上波特率可以由S= (1000000X2)/T计算得出,其中T为最短中断时间间隔,以微秒计量。但在实际操作中,由于误差的存在,需对上述公式进行修正,通过公式S= (1000000 X δ)/τ计算波特率S,δ为修正常数。本实施例中,根据实际测量的大量结果,在固定的波特率下,最短中断时间间隔保持一个固定值,例如115200波特率的最短中断时间间隔为16.667微秒,19200波特率对应的T值为100微秒,9600波特率对应的T值为200微秒,因此可以确定修正常数S的最优值为1.92,故可以将上述修正后的公式用于波特率的计算。
[0037]参见图2,相应提供了一种串口波特率识别装置,包括:
[0038]中断输入模块202,用于通过中断端口接收串口发送的数据。
[0039]定时器模块204,用于在中断输入模块202接收串口发送的数据后,启动定时器开始计时。
[0040]中断处理模块206,用于根据串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间。
[0041]波特率计算模块208,用于根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔,并根据最短中断时间间隔,计算串口的波特率。
[0042]本实施例中,终端处理模块206可以根据串口发送的数据中的电平变化上升沿触发中断,并记录100次中断对应的触发时间。
[0043]波特率计算模块208根据所记录的100次中断对应的触发时间,将任意相邻两次中断的触发时间进行作差,得到最短中断时间间隔Τ,并根据最短中断时间间隔,利用公式S = (1000000X δ)/τ计算波特率S,其中T取微秒值,修正常数δ最优取值为1.92。
[0044]上述串口波特率识别方法和装置,在通过中断端口接收到串口发送的数据后,开启定时器进行计时,根据串口发送的数据中预设的电平变化触发中断,并记录每次中断对应的触发时间,再根据所有相邻的触发时间,确定最短中断时间间隔,再根据最短中断时间间隔计算串口的波特率,因而只需要从串口接收几个字节的数据就能快速确定串口的波特率,提高了通信的效率。
[0045]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种串口波特率识别方法,其特征在于,所述方法包括: 通过中断端口接收串口发送的数据,并启动定时器开始计时; 根据所述串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间; 根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔,并根据所述最短中断时间间隔,计算所述串口的波特率。
2.根据权利要求1所述的方法,其特征在于,所述根据所述串口发送的数据中预设的电平变化触发中断,包括: 根据所述串口发送的数据中的电平变化上升沿触发中断。
3.根据权利要求2所述的方法,其特征在于,所述记录预置次数的中断所对应的触发时间,包括: 记录100次中断所对应的触发时间。
4.根据权利要求2或3所述的方法,其特征在于,所述根据最短中断时间间隔,计算所述串口的波特率,具体为: 根据公式:S= (1000000X δ)/Τ计算波特率S,其中最短中断时间间隔为T微秒,δ为修正常数。
5.根据权利要求4所述的方法,其特征在于,修正常数δ取值为1.92。
6.一种串口波特率识别装置,其特征在于,所述装置包括: 中断输入模块,用于通过中断端口接收所述串口发送的数据; 定时器模块,用于在所述中断输入模块接收所述串口发送的数据后,启动定时器开始计时; 中断处理模块,用于根据所述串口发送的数据中预设的电平变化触发中断,并记录预置次数的中断所对应的触发时间; 波特率计算模块,用于根据所记录的预置次数的中断对应的触发时间,确定最短中断时间间隔,并根据所述最短中断时间间隔,计算所述串口的波特率。
7.根据权利要求6所述的装置,其特征在于,所述中断处理模块,用于根据所述串口发送的数据中的电平变化上升沿触发中断。
8.根据权利要求7所述的装置,其特征在于,所述中断处理模块,用于记录100次中断所对应的触发时间。
9.根据权利要求7或8所述的装置,其特征在于,所述波特率计算模块,用于根据公式:S= (1000000Χ δ)/τ计算波特率S,其中最短中断时间间隔为T微秒,δ为修正常数。
10.根据权利要求9所述的装置,其特征在于,修正常数δ取值为1.92。
【文档编号】G06F13/42GK103559164SQ201310542918
【公开日】2014年2月5日 申请日期:2013年11月5日 优先权日:2013年11月5日
【发明者】马锐, 邹海涛, 易明生 申请人:深圳市科曼医疗设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1