一种串口波特率自适应接收端、实现方法、系统与流程

文档序号:24413841发布日期:2021-03-26 20:29阅读:186来源:国知局
一种串口波特率自适应接收端、实现方法、系统与流程

1.本发明涉及数据通信技术领域,尤指一种串口波特率自适应接收端、实现方法、系统。


背景技术:

2.在信息社会,信息技术的应用也越来越广泛,然而如何保障信息在传输中的安全已成为社会研究的热点和趋势。信息加密是保障信息安全的关键因素和有效方法。
3.串口通信因为成本低、易于实现,是目前嵌入式系统中常用的一种通信模式。在串口通信中,“波特率”是用来描述通信速度的单位。在通信中,只有通信双方的波特率相同才能确保通信的正常进行,这为串口通信设备的使用带来了不便,尤其是当对一方对另一方波特率未知的时候。如果能实现串口通信波特率的自适应,无疑会提高串口通信设备使用的灵活性和通用性。


技术实现要素:

4.本发明的目的是提供一种串口波特率自适应接收端、实现方法、系统,实现发送端与接收端之间的串口通信波特率自适应,提高串口通信的灵活性和通用性。
5.本发明提供的技术方案如下:本发明提供一种串口波特率自适应接收端,包括:串口接收端口,用于接收发送端发送的信号波形;边沿检测器,用于在所述串口接收端口接收所述信号波形的同时,对包头进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度;数据移位寄存器,用于进行移位操作使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数;波特率自动计算器,用于根据所述两个相邻的目标边沿的脉冲宽度,计算得到所述发送端进行数据发送时的波特率结果;波特率发生器,用于根据所述波特率结果生成与接收信号匹配的接收波特率;接收移位寄存器,用于根据与所述接收波特率相同的波特率,接收所述发送端发送的信号波形并传递给处理器。
6.进一步的,所述边沿检测器包括:识别单元,用于识别所接收信号波形的包头;所述包头包括若干个边沿;检测单元,用于根据预设起始条件检测第一目标边沿,并在检测到与所述第一目标边沿相邻的第二目标边沿后,检测获取所述第一目标边沿与所述第二目标边沿之间的脉冲宽度。
7.进一步的,所述数据移位寄存器包括:判断单元,用于判断所述两个目标边沿之间的脉冲宽度是否符合所述预设位数;移位单元,用于若不符合按照数据位的高低顺序,将所述信号波形向右进行移位
对应的位数,使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数。
8.本发明还提供一种串口波特率自适应系统,包括:发送端和接收端;所述接收端包括:串口接收端口,用于接收发送端发送的信号波形;边沿检测器,用于在所述串口接收端口接收所述信号波形的同时,对包头进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度;数据移位寄存器,用于进行移位操作使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数;波特率自动计算器,用于根据所述两个相邻的目标边沿的脉冲宽度,计算得到所述发送端进行数据发送时的波特率结果;波特率发生器,用于根据所述波特率结果生成与接收信号匹配的接收波特率;接收移位寄存器,用于根据与所述接收波特率相同的波特率,接收所述发送端发送的信号波形并传递给处理器。
9.进一步的,所述边沿检测器包括:识别单元,用于识别所接收信号波形的包头;所述包头包括若干个边沿;检测单元,用于根据预设起始条件检测第一目标边沿,并在检测到与所述第一目标边沿相邻的第二目标边沿后,检测获取所述第一目标边沿与所述第二目标边沿之间的脉冲宽度。
10.进一步的,所述数据移位寄存器包括:判断单元,用于判断所述两个目标边沿之间的脉冲宽度是否符合所述预设位数;移位单元,用于若不符合按照数据位的高低顺序,将所述信号波形向右进行移位对应的位数,使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数。
11.本发明还提供一种串口波特率自适应实现方法,包括步骤:串口接收端口接收发送端发送的信号波形,且边沿检测器在所述串口接收端口接收所述信号波形的同时,对包头进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度;数据移位寄存器进行移位操作使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数;波特率自动计算器根据所述两个相邻的目标边沿的脉冲宽度,计算得到所述发送端进行数据发送时的波特率结果;波特率发生器根据所述波特率结果生成与接收信号匹配的接收波特率;接收移位寄存器根据与所述接收波特率相同的波特率,接收所述发送端发送的信号波形并传递给处理器。
12.进一步的,所述进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度包括步骤:所述边沿检测器识别所接收信号波形的包头;所述包头包括若干个边沿;所述边沿检测器根据预设起始条件检测第一目标边沿,并在检测到与所述第一目标边沿相邻的第二目标边沿后,检测获取所述第一目标边沿与所述第二目标边沿之间的脉冲宽度。
13.进一步的,所述数据移位寄存器进行移位操作使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数包括步骤:所述数据移位寄存器判断所述两个目标边沿之间的脉冲宽度是否符合所述预设位数;若不符合,所述数据移位寄存器按照数据位的高低顺序,将所述信号波形向右进行移位对应的位数,使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数。
14.通过本发明提供的一种串口波特率自适应接收端、实现方法、系统,能够实现发送端与接收端之间的串口通信波特率自适应,提高串口通信的灵活性和通用性。
附图说明
15.下面将以明确易懂的方式,结合附图说明优选实施方式,对一种串口波特率自适应接收端、实现方法、系统的上述特性、技术特征、优点及其实现方式予以进一步说明。
16.图1是本发明一种串口波特率自适应接收端的一个实施例的结构示意图;图2是本发明一种串口波特率自适应系统的一个实施例的结构示意图;图3是本发明一种串口波特率自适应接收端的另一个实施例的结构示意图;图4是本发明数据包的包头示例图;图5是本发明一种串口波特率自适应方法的流程图。
具体实施方式
17.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
18.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所述描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或集合的存在或添加。
19.为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
20.还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
21.另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
23.本发明的一个实施例,如图1所示,一种串口波特率自适应接收端,包括:
串口接收端口,用于接收发送端发送的信号波形;边沿检测器,用于在所述串口接收端口接收所述信号波形的同时,对包头进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度;数据移位寄存器,用于进行移位操作使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数;波特率自动计算器,用于根据所述两个相邻的目标边沿的脉冲宽度,计算得到所述发送端进行数据发送时的波特率结果;波特率发生器,用于根据所述波特率结果生成与接收信号匹配的接收波特率;接收移位寄存器,用于根据与所述接收波特率相同的波特率,接收所述发送端发送的信号波形并传递给处理器。
24.具体的,波特率指单位时间内传输信号符号的数量,是数字通信中反映信号波形变换频繁程度的物理量,波特率表示符号传输速率,其中,每个符号可以表示一个或多个数据位。串口是一种异步通信接口,在进行串口通信时,发送端和接收端的波特率只有在比较接近时双方才能正常通信。而时钟周期是波特率的倒数,由于发送端和接收端双方进行串口通信时,如果存在时钟周期偏差,可能会存在双方串口通信失败的情况。
25.因此,为了自适应调整接收端的波特率与发送端的波特率相同或相近,本发明根据包头上升沿或者下降沿的信息,计算发送端的波特率,根据波特率自动调整接收端的波特率设置,使得接收端的波特率与发送端的波特率接近,能正确的接收信号。该方法不需要预先设定波特率,可满足任意波特率的自适应。一般数据的传输以信号波形的形式,因此,接收端可以在每个信号波形开始时,通过串口接收端口、边沿检测器、数据移位寄存器、波特率自动计算器、波特率发生器和接收移位寄存器自动做一次波特率自适应校准,防止芯片频率变化导致的通信失败,以便将发送端发送的信号波形准确的传递给接收端的处理器进行数据交互。
26.本发明通过抓取接收信号的包头的特征值计算波特率,实现串口波特率的自适应,不需要软件的参与和计算,根据设置的包头信息自动计算波特率,能适应各种包头的情况,且只增加少许的硬件电路设计。
27.本发明的一个实施例,如图2所示,一种串口波特率自适应系统,包括:发送端和接收端;接收端包括:串口接收端口,用于接收发送端发送的信号波形;边沿检测器,用于在所述串口接收端口接收所述信号波形的同时,对包头进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度;数据移位寄存器,用于进行移位操作使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数;波特率自动计算器,用于根据所述两个相邻的目标边沿的脉冲宽度,计算得到所述发送端进行数据发送时的波特率结果;波特率发生器,用于根据所述波特率结果生成与接收信号匹配的接收波特率;接收移位寄存器,用于根据与所述接收波特率相同的波特率,接收所述发送端发送的信号波形并传递给处理器。
28.具体的,本实施例是上述装置实施例对应的系统实施例,具体效果参见上述装置
实施例,在此不再一一赘述。
29.基于前述实施例,所述边沿检测器包括:识别单元,用于识别所接收信号波形的包头;所述包头包括若干个边沿;检测单元,用于根据预设起始条件检测第一目标边沿,并在检测到与所述第一目标边沿相邻的第二目标边沿后,检测获取所述第一目标边沿与所述第二目标边沿之间的脉冲宽度。
30.具体的,本实施例是针对上述装置实施例和系统实施例的进一步优化改进,本实施例中,对于边沿检测器进行了进一步的限定。由于信号波形是以数据包的格式传输的,数据包的包头可能具有特定的字符组合,检测特定的字符组合推算出接收信号包的实际波特率,根据实际波特率调整接收波特率。而包头的形式设置会影响实际波特率的检测。
31.由于接收端和发送端两者相互进行通信传输时,采用的是已知的串口通信协议,因此,数据发送过程中的数据包的包头类型已知,进而让边沿检测器根据已知的包头类型选择对应的边沿检测方式,以从包头中查找符合要求的两个相邻的目标边沿。示例性的,将包头的第一个上升沿作为第一目标边沿,第二个上升沿作为第二目标边沿。或者,将包头的第一个上升沿作为第一目标边沿,第一个下降沿作为第二目标边沿。或者,将包头的第一个下降沿作为第一目标边沿,第二个下降沿作为第二目标边沿。或者,将包头的第一个下降沿作为第一目标边沿,第一个上升沿作为第二目标边沿。
32.具体实现原理为:通过检测接收信号的第一目标边沿和与第一目标边沿相邻的第二目标边沿之间的宽度,根据两个目标边沿之间的宽度以及位数自动计算每个传输位对应的波特率。目标边沿都可以设置为上升沿或者下降沿,这样能适配各个包头的情况,比现有的方法应用范围更广。自动计算后的波特率会加载到波特率发生器中,分别产生接收和发送的波特率,用于接收移位寄存器进行数据的接收,以及发送移位寄存器的数据发送。由于只有第一目标边沿和第二目标边沿之间的数据用于计算波特率,检测完成后,第二目标边沿后的数据可立刻采用自动计算的接收波特率进行数据交互,不会导致第二目标边沿后的数据接收。
33.由于串口是一种异步通信接口,发送端和接收端的波特率设置应该接近,才能让发送端和接收端两者实现数据通信交互。本发明在时钟频率存在偏差或者未知波特率的情况下,可以通过抓取接收信号的包头的特征值,即抓取包头的第一目标边沿和第二目标边沿进而计算第一目标边沿与所述第二目标边沿之间的脉冲宽度,从而使得后续根据脉冲宽度计算得到接收波特率,实现串口波特率的自适应。本发明硬件的波特率自适应的方法,不需要软件的参与和计算,根据设置的包头信息自动计算波特率,能适应各种包头的情况,且只增加少许的硬件电路设计。
34.本发明根据包头上升沿或者下降沿的信息,计算发送方的波特率,根据波特率自动调整接收方的设置,使得双方的波特率接近,能正确的接收信号。该方法不需要预先设定波特率,可满足任意波特率的自适应。一般传输以数据包的形式,可以在每个数据包的开始自动做一次波特率自适应校准,防止芯片频率变化导致的通信失败。
35.此外,由于针对特定的数据包的包头,也存在一些通过脉宽检测的方法检测特定的脉宽推算波特率,但如果包头字符不符合脉宽检测的要求,或者包头非固定的状况,可能存在检测不出波特率的情况。由于接收的数据第一个边沿和第二个边沿之间的字符是已知
的,并且在第二个边沿后立刻计算出正确的波特率,第二个边沿后的数据即使是可变的,也可以通过识别到的正确波特率接收到后几位的正确数据,从而在波特率自动识别的过程中也正确的接收识别出包头。本发明通过包头两个目标边沿的选择,可以适合更加宽泛的包头字符的情况,也能适应可变包头字符的情况。
36.基于前述实施例,所述数据移位寄存器包括:判断单元,用于判断所述两个目标边沿之间的脉冲宽度是否符合所述预设位数;移位单元,用于若不符合按照数据位的高低顺序,将所述信号波形向右进行移位对应的位数,使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数。
37.具体的,本实施例是针对上述装置实施例和系统实施例的进一步优化改进,本实施例中,对于数据移位寄存器进行了进一步的限定,如图3所示是计算波特率的硬件示意图,仅通过移位操作和多路选择器即可实现波特率的自动计算。
38.从硬件实现的角度考虑,如果两个目标边沿之间的脉冲宽度是1,2,4,8个位数,则可以通过移位操作计算正确的波特率,而不需要复杂的除法操作增加波特率自适应的硬件成本。配合两个目标边沿的选择,对包头字符的要求远小于根据单个边沿或者特定字符脉冲的要求。
39.串口每个发送的字符帧由一位起始位(低电平)、多个数据位和一位停止位组成。起始位是一个位周期的低电平,停止位是一定时间周期的高电平。根据发送的包头,可以灵活选择第一目标边沿为上升或者下降沿,以及第二目标边沿为上升或者下降沿,使之包含的脉冲宽度为1,2,4,8位,通过简单的硬件自动计算出波特率。
40.比如图4所示的包头,可以按下列表1的方式配置两个相邻的目标边沿,进而能够得到两个相邻目标边沿所对应的脉冲宽度的对应关系如下表1所示。包头第一目标边沿第二目标边沿脉冲位宽10000111下降沿上升沿100111100上升沿下降沿401110000下降沿下降沿8
41.表1、包头、两个相邻目标边沿、脉冲宽度之间的对应关系表由于硬件设计里面,除法的硬件计算开销比较大。考虑到自动计算的硬件成本,本发明通过数据移位寄存器计算判断脉冲宽度是否符合所述预设位数(即1,2,4,8位),如果不符合数据移位寄存器会按照数据位的高低顺序,将信号波形向右进行移位对应的位数,使得所述两个相邻的目标边沿之间的脉冲宽度符合预设位数,这种简单的移位操作能够替换复杂的除法运算,进而有助于降低整个自动波特率自适应的硬件开销,在不增加或者少量增加硬件成本的情况下计算出正确的波特率。
42.示例性的,假设通过上述方式计算出脉冲宽度为12,且其二进制表示为“1100”,那么可以将“1100”的最低一位“0”去除掉,那么,脉冲宽度就变为了6,即“1100”变成“110”相当于做了除以2的除法运算。可以将“1100”的最低两位“00”去除掉,那么,脉冲宽度就变为了3,即“1100”变成“11”相当于做了除以3的除法运算。
43.本发明是通过检测接收信号的第一目标边沿和第二目标边沿之间的宽度,根据两个边沿之间的宽度以及位数自动计算每个传输位对应的波特率。
44.每个边沿都可以设置为上升沿或者下降沿,这样能适配各个包头的情况,比现有
的方法应用范围更广。自动计算后的波特率会加载到波特率发生器中,分别产生接收和发送的波特率,用于接收移位寄存器的接收和发送移位寄存器的发送。由于只有第一目标边沿和第二目标边沿之间的数据用于计算波特率,检测完成后,第二目标边沿后的数据可立刻用自动计算的波特率接收,不会丢失第二目标边沿后的数据。边沿检测器用于检测接收信号的边沿,根据预设的配置,可以检测上升沿到上升沿,上升沿到下降沿,下降沿到上升沿,下降沿到下降沿,满足各种包头形式。波特率自动计算模块根据两个边沿之间的长度,以及预设的边沿之间的数据位宽,自动计算接收到数据的波特率。边沿之间可以包括起始位,数据位,校验位或者停止位,不影响波特率的计算。
45.具体的,本实施例是上述装置实施例对应的系统实施例,具体效果参见上述装置实施例,在此不再一一赘述。
46.本发明的一个实施例,如图5所示,一种串口波特率自适应实现方法,包括:s100串口接收端口接收发送端发送的信号波形,且边沿检测器在串口接收端口接收信号波形的同时,对包头进行边沿检测以及检测两个相邻的目标边沿之间的脉冲宽度;s200数据移位寄存器进行移位操作使得两个目标边沿之间的脉冲宽度符合预设位数;s300波特率自动计算器根据两个目标边沿的脉冲宽度,计算得到发送端进行数据发送时的波特率结果;s400波特率发生器根据波特率结果生成与接收信号匹配的接收波特率;s500接收移位寄存器根据与接收波特率相同的波特率,接收发送端发送的信号波形并传递给处理器。
47.具体的,本实施例是上述实施例对应的方法实施例,具体效果参见上述实施例,在此不再一一赘述。
48.本发明的一个实施例,一种串口波特率自适应实现方法,包括:s110串口接收端口接收发送端发送的信号波形;s120边沿检测器在串口接收端口接收信号波形的同时,识别所接收信号波形的包头;包头包括若干个边沿;s130边沿检测器根据预设起始条件检测第一目标边沿,并在检测到与第一目标边沿相邻的第二目标边沿后,检测获取第一目标边沿与第二目标边沿之间的脉冲宽度;s210数据移位寄存器判断两个目标边沿之间的脉冲宽度是否符合预设位数;s220若不符合,数据移位寄存器按照数据位的高低顺序,将信号波形向右进行移位对应的位数,使得两个目标边沿之间的脉冲宽度符合预设位数;s300波特率自动计算器根据两个目标边沿的脉冲宽度,计算得到发送端进行数据发送时的波特率结果;s400波特率发生器根据波特率结果生成与接收信号匹配的接收波特率;s500接收移位寄存器根据与接收波特率相同的波特率,接收发送端发送的信号波形并传递给处理器。
49.具体的,本实施例是上述实施例对应的方法实施例,具体效果参见上述实施例,在此不再一一赘述。
50.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各程
序模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的程序模块完成,即将所述装置的内部结构划分成不同的程序单元或模块,以完成以上描述的全部或者部分功能。实施例中的各程序模块可以集成在一个处理单元中,也可是各个单元单独物理存在,也可以两个或两个以上单元集成在一个处理单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序单元的形式实现。另外,各程序模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
51.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。
52.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
53.在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
54.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
55.另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
56.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1