一种串口波特率自动识别的方法、设备及系统的制作方法

文档序号:10666369阅读:361来源:国知局
一种串口波特率自动识别的方法、设备及系统的制作方法
【专利摘要】本申请提供了一种串口波特率自动识别的方法,滤除串口接收数据线接收的目标信号上的毛刺;利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存;当目标信号的特征参数满足预设条件时,利用第二采样率对目标信号进行采样,得到新采样的数据;利用第二采样率对已经采样的数据进行重构,并将重构后的数据和新采样的数据进行缓存;根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率;利用疑似波特率对缓存的数据进行解析;利用预设的波特率判决标准对解析后的数据进行判决,当解析后的数据满足预设的波特率判决标准时,确定疑似波特率为正确波特率。能够有效的进行波特率的自动识别,并提高波特率识别的准确性。
【专利说明】
一种串口波特率自动识别的方法、设备及系统
技术领域
[0001]本申请涉及串口波特率识别领域,特别涉及一种串口波特率自动识别的方法、设备及系统。
【背景技术】
[0002]随着技术的发展,人们对串口波特率的识别方法要求越来越高。
[0003]现有的波特率自动识别方法要么限定初始波特率,要么限定初始数据,或者将前N个字节作为训练序列,或者只识别几种固定的波特率。这些限制都会让自动识别波特率的功能受到限制,而且在波特率监控设备中均不能使用,因为被监控者的波特率每帧数据的波特率都有可能不一样,进而导致波特率的识别不够准确。
[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]接收缓冲器,用于将解析后的数据进行缓存。
[0036]—种串口波特率自动识别的系统,所述系统包括:
[0037]发送缓冲器、发送模块和上述的设备。
[0038]本申请提供的一种串口波特率自动识别的方法中,首先滤除串口接收数据线接收的目标信号上的毛刺;利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存;检测所述串口接收数据线上接收的目标信号的特征参数,当所述特征参数满足预设条件时,根据目标信号变化的宽度,确定第二采样率,利用所述第二采样率对所述目标信号进行采样,得到新采样的数据;利用所述第二采样率对已经采样的数据进行重构,并将重构后的数据和所述新采样的数据进行缓存;然后根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率;利用所述疑似波特率对所述缓存的数据进行解析;利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率。本申请中滤除目标信号上的毛刺,以防止毛刺影响波特率的识别,利用变采样率对信号进行采样,节省资源,并且提高采样的准确性,最后根据波特率与最小数据宽度的关系寻找疑似波特率,再判断疑似波特率是否为正确波特率,完全能够满足实际中的波特率识别需求,提高准确性,相对于现有技术,本申请无需固定初始波特率,无需固定初始数据,也无需采样训练序列,能够有效的进行波特率的自动识别,并提高波特率识别的准确性。
【附图说明】
[0039]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040]图1是本申请的一种串口波特率自动识别的方法实施例的流程图;
[0041]图2是本申请的一种串口波特率自动识别的设备实施例的结构不意图;
[0042]图3是本申请的一种串口波特率自动识别的系统实施例的结构示意图。
【具体实施方式】
[0043]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0044]参考图1,示出了本申请一种串口波特率自动识别的方法实施例的流程图,可以包括以下步骤:
[0045]步骤SlOl:滤除串口接收数据线接收的目标信号上的毛刺。
[0046]本申请中,由于串口的标准波特率一般为300115200波特率,有极少数场合会使用到460800波特率,因此滤除500k以上频率的信号,然后再用数字电路进行采样,可以有效的防止毛刺影响波特率的自动识别。
[0047]步骤S102:利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存。
[0048]本申请中所述第一采样率为最高采样率,初始使用最高速度进行采样,并将采样后的数据进行缓存。
[0049]步骤S103:检测所述串口接收数据线上接收的目标信号的特征参数,当所述特征参数满足预设条件时,根据目标信号变化的宽度,确定第二采样率,利用所述第二采样率对所述目标信号进行采样,得到新采样的数据。
[0050]本申请中检测所述串口接收数据线上接收的目标信号的变化次数,当所述变化次数满足预设次数时,进行变采样率操作,利用新的采样率进行采样。
[0051]—旦检测到接收数据线上的数据变化三次,就根据数据变化的宽度,改变采样率进行米样。
[0052]本申请中接收数据线上的数据变换的次数不仅仅限于三次,可以自由设定。
[0053]步骤S104:利用所述第二采样率对已经采样的数据进行重构,并将重构后的数据和所述新采样的数据进行缓存。
[0054]本申请中,利用第二采样率对已经采样的数据进行重构,包括:
[0055]利用第二采样率对所述已经采样的数据进行重新采样,得到重新采样后的数据,并利用所述重新采样后的数据替换所述已经采样的数据。
[0056]在进行串口波特率识别的过程中需要将串口波形保存下来了,但RAM资源有限,不能消耗过多RAM。因此采用变采样率进行波形采样,初始设置为最高速率采样,接收到下一波形后,改变采样率到一个合适的采样率进行采样,并将已经采样的波形进行重构以节约RAM资源。
[0057]步骤S105:根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率。
[0058]本申请中,所述根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率,包括:
[0059]从所述缓存的数据中确定最小数据宽度。
[0060]根据波特率与最小数据宽度的关系,将所述最小数据宽度确定为缓存数据的疑似波特率。
[0061]目前所有的波特率自动识别方法均采用是否能够识别波特率作为评价方法。但是在实际使用过程中,如果一种波特率识别方法能够对所有数据能够识别99.9%也是可以接受的,并且不影响正常使用。
[0062]在串口通信中,我们认为所有传输的数据出现的概率相等,例如在串口通信8位数据宽度时0x00Oxff出现的概率均为1/256,相应的在7位数据宽度时0x000x7f出现的概率均为1/128,6位数据宽度时0x000x3f出现的概率均为1/64,5位数据宽度时OxOO-Oxlf出现的概率均为1/32。基于此,对不同数据不同的波特率进行识别,判断自动波特率识别的成功概率,进而判断自动波特率识别功能是否能够实用。
[0063]通过分析串口通信中的所有可能传输数据,8位数据模式中0x00Oxff,7位数据模式中0x00 — 0x7f,6位数据模式中0x00 — 0x3f,5位数据模式中0x00 — Oxlf,发现数据传输中最小宽度等于波特率的概率为89%左右,最小宽度等于波特率的2倍的概率为
7.8%左右,因此只考虑这两种情况,那么一个字节判断出波特率的概率为96.8%,如果保存四个字节进行判断,那么自动识别出波特率的概率已经超过99.99%,此识别率完全能满足实际中的波特率识别需求。
[0064]本申请中首先确定缓存的数据中的最小数据宽度,然后根据波特率与最小数据宽度的关系,将所述最小数据宽度确定为缓存数据的疑似波特率。
[0065]步骤S106:利用所述疑似波特率对所述缓存的数据进行解析。
[0066]将采样后的数据存在RAM中,待识别出波特率以后再进行解析。解决了目前市面上波特率自动识别方法中丢失识别以前通信数据的问题,在某些使用场合是不允许丢掉识别以前的串口通信数据的。
[0067]步骤S107:利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率。
[0068]本申请中,所述利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率,包括:
[0069]获取所述解析后数据的校验位;
[0070]按照预设原则,将至少三个字节数据的校验位依次与五种校验方式进行比较,当所述至少三个字节的数据校验位均满足所述五种校验方式中的任意一种时,则确定所述疑似波特率为正确波特率。
[0071]在自动波特率识别中,未识别出正确波特率时,只能确定疑似波特率,因此就涉及到如何判断疑似波特率是否为正确波特率。串口通信中包括数据位,校验位,数据位是我们将要识别出的数据,没法判断一个数据是否为正确数据,因此利用校验位来进行判决。
[0072]目前串口通信中,有五种校验模式:奇校验,偶校验,O校验,I校验,无校验。
[0073]因此我们可以用疑似波特率解析录制的串口波形,将解析到的校验位与五种校验方式进行比较,而且比较至少三个字节数据的校验位,如果均为某一种校验方式,那么认为此疑似波特率为正确的波特率,如果有不正确的,那么认为疑似波特率不是正确的波特率,需要重新进行波特率判断。
[0074]本申请中比较的字节数据越多,对疑似波特率的判断越准确,但是比较的字节数据越多就会浪费比较多的资源,因此,本申请中选择三个字节数据进行比较,当然也可以选择其他数目的字节数据进行比较,本申请中不作限制。
[0075]—旦判断到符合标准的波特率,就将波特率参数固定下来,使用解析出来的波特率作为正常波特率进行通信。
[0076]本申请提供的一种串口波特率自动识别的方法中,首先滤除串口接收数据线接收的目标信号上的毛刺;利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存;检测所述串口接收数据线上接收的目标信号的特征参数,当所述特征参数满足预设条件时,根据目标信号变化的宽度,确定第二采样率,利用所述第二采样率对所述目标信号进行采样,得到新采样的数据;利用所述第二采样率对已经采样的数据进行重构,并将重构后的数据和所述新采样的数据进行缓存;然后根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率;利用所述疑似波特率对所述缓存的数据进行解析;利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率。本申请中滤除目标信号上的毛刺,以防止毛刺影响波特率的识别,利用变采样率对信号进行采样,节省资源,并且提高采样的准确性,最后根据波特率与最小数据宽度的关系寻找疑似波特率,再判断疑似波特率是否为正确波特率,完全能够满足实际中的波特率识别需求,提高准确性,相对于现有技术,本申请无需固定初始波特率,无需固定初始数据,也无需采样训练序列,能够有效的进行波特率的自动识别,并提高波特率识别的准确性。
[0077]本申请中,还包括:
[0078]当所述解析后的数据无校验位时,则将检验位后的停止位作为校验位,并利用预设的波特率判决标准对解析后的数据进行判决。此时的校验相当于I校验。
[0079]本申请中,还包括:
[0080]将解析后的数据进行缓存。
[0081]与上述本申请一种串口波特率自动识别的方法实施例所提供的方法相对应,参见图2,本申请还提供了一种串口波特率自动识别的设备实施例,在本实施例中,该设备包括:
[0082]滤波器201,用于滤除串口接收数据线接收的目标信号上的毛刺。
[0083]变采样控制器202,用于利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存;检测所述串口接收数据线上接收的目标信号的特征参数,当所述特征参数满足预设条件时,根据目标信号变化的宽度,确定第二采样率,利用所述第二采样率对所述目标信号进行采样,得到新采样的数据;利用所述第二采样率对已经采样的数据进行重构,并将重构后的数据和所述新采样的数据进行缓存。
[0084]波形缓冲器203,用于对所述采样后的数据、重构后的数据和新采样的数据进行缓存。
[0085]波特率解析器204,用于根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率。
[0086]数据解析器205,用于利用所述疑似波特率对所述缓存的数据进行解析。
[0087]所述波特率解析器还用于,利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率。
[0088]本申请中,还包括:
[0089]接收缓冲器206,用于将解析后的数据进行缓存。
[0090]在图2的基础上,参考图3,示出了本申请一种串口波特率自动识别的系统的结构示意图,所述系统还包括:
[0091]发送缓冲器301和发送模块302。
[0092]综上,本申请提供的一种串口波特率自动识别的方法、设备及系统,能够有效的进行波特率的自动识别,并且提高了波特率识别的准确性。
[0093]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0094]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0095]为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0096]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0097]以上对本申请所提供的一种串口波特率自动识别的方法、设备及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【主权项】
1.一种串口波特率自动识别的方法,其特征在于,所述方法包括: 滤除串口接收数据线接收的目标信号上的毛刺; 利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存; 检测所述串口接收数据线上接收的目标信号的特征参数,当所述特征参数满足预设条件时,根据目标信号变化的宽度,确定第二采样率,利用所述第二采样率对所述目标信号进行采样,得到新采样的数据; 利用所述第二采样率对已经采样的数据进行重构,并将重构后的数据和所述新采样的数据进行缓存; 根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率; 利用所述疑似波特率对所述缓存的数据进行解析; 利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率。2.根据权利要求1所述的方法,其特征在于,所述利用第二采样率对已经采样的数据进行重构,包括: 利用第二采样率对所述已经采样的数据进行重新采样,得到重新采样后的数据,并利用所述重新采样后的数据替换所述已经采样的数据。3.根据权利要求1所述的方法,其特征在于,所述根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率,包括: 从所述缓存的数据中确定最小数据宽度; 根据波特率与最小数据宽度的关系,将所述最小数据宽度确定为缓存数据的疑似波特率。4.根据权利要求1所述的方法,其特征在于,所述利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率,包括: 获取所述解析后数据的校验位; 按照预设原则,将至少三个字节数据的校验位依次与五种校验方式进行比较,当所述至少三个字节的数据校验位均满足所述五种校验方式中的任意一种时,则确定所述疑似波特率为正确波特率。5.根据权利要求4所述的方法,其特征在于,还包括: 当所述解析后的数据无校验位时,则将检验位后的停止位作为校验位,并利用预设的波特率判决标准对解析后的数据进行判决。6.根据权利要求1所述的方法,其特征在于,还包括: 将解析后的数据进行缓存。7.—种串口波特率自动识别的设备,其特征在于,所述设备包括: 滤波器,用于滤除串口接收数据线接收的目标信号上的毛刺; 变采样控制器,用于利用第一采样率对消除毛刺的目标信号进行采样,并将采样后的数据进行缓存;检测所述串口接收数据线上接收的目标信号的特征参数,当所述特征参数满足预设条件时,根据目标信号变化的宽度,确定第二采样率,利用所述第二采样率对所述目标信号进行采样,得到新采样的数据;利用所述第二采样率对已经采样的数据进行重构,并将重构后的数据和所述新采样的数据进行缓存; 波形缓冲器,用于对所述采样后的数据、重构后的数据和新采样的数据进行缓存; 波特率解析器,用于根据波特率与最小数据宽度的关系,确定缓存数据的疑似波特率; 数据解析器,用于利用所述疑似波特率对所述缓存的数据进行解析; 所述波特率解析器还用于,利用预设的波特率判决标准对解析后的数据进行判决,当所述解析后的数据满足预设的波特率判决标准时,确定所述疑似波特率为正确波特率。8.根据权利要求7所述的设备,其特征在于,还包括: 接收缓冲器,用于将解析后的数据进行缓存。9.一种串口波特率自动识别的系统,其特征在于,所述系统包括: 发送缓冲器、发送模块和上述权利要求7至8任一项所述的设备。
【文档编号】H04L25/02GK106034092SQ201510116553
【公开日】2016年10月19日
【申请日】2015年3月17日
【发明人】黄宇钊, 陈伟明, 左平, 刘云峰, 刘继军
【申请人】杭州讯能科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1