CN109885525A - Uart接收方法、装置、电子设备及可读存储介质 - Google Patents
Uart接收方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN109885525A CN109885525A CN201910209866.6A CN201910209866A CN109885525A CN 109885525 A CN109885525 A CN 109885525A CN 201910209866 A CN201910209866 A CN 201910209866A CN 109885525 A CN109885525 A CN 109885525A
- Authority
- CN
- China
- Prior art keywords
- code element
- preset
- counter
- value
- period
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000005070 sampling Methods 0.000 claims description 157
- 238000004891 communication Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Dc Digital Transmission (AREA)
Abstract
本发明实施例提供了一种UART接收方法、装置、电子设备及可读存储介质,应用于航空技术领域,所述方法包括:在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器清0,启动下一预设码元周期对接收信号进行采样。本发明可提高码元接收的准确性。
Description
技术领域
本发明涉及航空技术领域,特别是涉及一种UART接收方法、装置、电子设备及可读存储介质。
背景技术
工业级无人直升机的飞控系统是安全关键系统,飞控系统内部通信的可靠性对系统的安全稳定运行有着非常关键的作用。UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)作为飞控系统主流的通信方式应该具备较强的抗干扰能力。
传统的UART接收方法在链路上为高电平的空闲态(IDLE)持续检测接收管脚(rx_pin)上是否出现下降沿,如果发现rx_pin上有下降沿则立即进入起始态(START),开始一个码元周期的时间的倒计时。倒计时结束后进入数据态(DATA,并在数据位状态的每个码元周期的中间采样点记录采样值作为相应位的判决值,当DATA状态接收到最后一位码元结束时进入校验态(PARITY)(如果有),采样码元中间点作为校验值,之后等待码元周期结束后进入停止态(STOP)。在停止位码元的中间位置跳转至IDLE状态,等待下一个UART字的接收。
可见,上述方法中,可能因为接收信号上的一个下降沿毛刺而误判为一个UART字的开始,从而错误的接收了一个UART字;将码元中间位置的采样点作为判决值,容易受到突发干扰的影响造成误码;在接收接近停止位的码元时可能因为波特率畸变而造成采样点跑偏,而造成误码。因此,上述方法码元接收的准确性较低。
发明内容
本发明实施例的目的在于提供一种UART接收方法、装置、电子设备及可读存储介质,以提高码元接收的准确性。具体技术方案如下:
本发明实施例提供了一种UART接收方法,所述方法包括:
在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;
在每个预设码元周期开始时,启动码元计数器,在所述预设码元周期内的每个时钟周期,获取采样信号,将所述码元计数器的值加1,所述码元计数器的初始值为0;
若所述码元计数器的值达到所述预设码元周期;或者,
若所述码元计数器的值与所述预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,
若所述码元计数器的值与所述预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将所述码元计数器的值清0,启动下一预设码元周期对所述接收信号进行采样。
可选的,在所述在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样之前,所述方法还包括:
在空闲态,若检测到所述接收信号的采样信号由高电平跳变至低电平,进入起始态,启动码元计数器对采样信号进行计数;
在采样信号的个数达到所述预设码元周期时,计算所述采样信号中低电平采样信号的比例,判断得到的比例是否不小于预设低电平比例;
若得到的比例不小于所述预设低电平比例,确定所述起始态有效,进入所述数据态;
若得到的比例小于所述预设低电平比例,确定所述起始态无效,返回所述空闲态。
可选的,本发明实施例的UART接收方法,还包括:
在每个预设码元周期开始时,启动高电平计数器和低电平计数器,在所述预设码元周期内的每个时钟周期,若获取的采样信号为高电平,将所述高电平计数器的值加1,若获取的采样信号为低电平,将所述低电平计数器的值加1,所述高电平计数器和所述低电平计数器的初始值均为0;
若所述码元计数器的值达到所述预设码元周期;或者,
若所述码元计数器的值与所述预设码元周期的比值大于所述第二预设比例,且所获取的采样信号发生跳变,比较所述高电平计数器的值和所述低电平计数器的值的大小;
若所述高电平计数器的值大于所述低电平计数器的值,确定所述预设码元周期的采样信号为1;
若所述高电平计数器的值小于或等于所述低电平计数器的值,确定所述预设码元周期的采样信号为0。
可选的,所述按照预设码元周期,周期性对所获取的接收信号进行采样,包括:
若所述接收信号中包含校验位,在所述接收信号中的数据位采样完成之后,进入校验态,按照所述预设码元周期,周期性对所述校验位进行采样。
本发明实施例提供了一种UART接收装置,所述装置包括:
信号采样模块,用于在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;
码元计数模块,用于在每个预设码元周期开始时,启动码元计数器,在所述预设码元周期内的每个时钟周期,获取采样信号,将所述码元计数器的值加1,所述码元计数器的初始值为0;
码元边界设置模块,用于若所述码元计数器的值达到所述预设码元周期;或者,若所述码元计数器的值与所述预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若所述码元计数器的值与所述预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将所述码元计数器的值清0,启动下一预设码元周期对所述接收信号进行采样。
可选的,本发明实施例的UART接收装置,还包括:
起始态检测模块,用于在空闲态,若检测到所述接收信号的采样信号由高电平跳变至低电平,进入起始态,启动码元计数器对采样信号进行计数;
判断模块,用于在采样信号的个数达到所述预设码元周期时,计算所述采样信号中低电平采样信号的比例,判断得到的比例是否不小于预设低电平比例;
起始态有效模块,用于若得到的比例不小于所述预设低电平比例,确定所述起始态有效,进入所述数据态;
起始态无效模块,用于若得到的比例小于所述预设低电平比例,确定所述起始态无效,返回所述空闲态。
可选的,本发明实施例的UART接收装置,还包括:
高电平和低电平计数模块,用于在每个预设码元周期开始时,启动高电平计数器和低电平计数器,在所述预设码元周期内的每个时钟周期,若获取的采样信号为高电平,将所述高电平计数器的值加1,若获取的采样信号为低电平,将所述低电平计数器的值加1,所述高电平计数器和所述低电平计数器的初始值均为0;
高电平和低电平比较模块,用于若所述码元计数器的值达到所述预设码元周期;或者,若所述码元计数器的值与所述预设码元周期的比值大于所述第二预设比例,且所获取的采样信号发生跳变,比较所述高电平计数器的值和所述低电平计数器的值的大小;
高电平确认模块,用于若所述高电平计数器的值大于所述低电平计数器的值,确定所述预设码元周期的采样信号为1;
低电平确认模块,用于若所述高电平计数器的值小于或等于所述低电平计数器的值,确定所述预设码元周期的采样信号为0。
可选的,所述信号采样模块,包括:
校验位采样子模块,用于若所述接收信号中包含校验位,在所述接收信号中的数据位采样完成之后,进入校验态,按照所述预设码元周期,周期性对所述校验位进行采样。
本发明实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的UART接收方法的步骤。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一所述的UART接收方法的步骤。
本发明实施例提供的UART接收方法、装置、电子设备及可读存储介质,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。本发明可以对接收码元的边界进行实时校正,使得接收信号在预设码元周期发生畸变时依然能正确确定采样点,提高码元接收的准确性及系统抗干扰能力。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的UART接收方法的一种流程图;
图2为本发明实施例的一种码元边界校正示意图;
图3为本发明实施例的又一种码元边界校正示意图;
图4为本发明实施例的UART接收方法的又一种流程图;
图5为本发明实施例的一种起始态有效性判定示意图;
图6为本发明实施例的又一种起始态有效性判定示意图;
图7为本发明实施例的UART接收装置的结构图;
图8为本发明实施例的电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高工业级无人直升机飞控系统内部通信的抗干扰能力,降低因外部干扰造成的UART通信信号畸变而引起的机内通信失效而给飞机带来致命性故障的概率,提升系统的可靠性和安全性。本发明实施例提供了一种UART接收方法、装置、电子设备及可读存储介质,可以提高码元接收的准确性。
下面首先对本发明实施例所提供的UART接收方法进行详细介绍。
参见图1,图1为本发明实施例的UART接收方法的一种流程图,包括以下步骤:
S101,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样。
本发明实施例中,数据态表示对接收信号进行采样的状态,在数据态,可以包含若干个预设码元周期,每个预设码元周期均以相同的方式对接收信号进行采样。当然,各预设码元周期是按顺序依次对接收信号进行采样的,也就是说,不同预设码元周期的采样信号可以不同,在此仅以一个预设码元周期为例进行说明。
S102,在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0。
具体的,每个预设码元周期可以包含多个时钟周期,若每个时钟周期的采样信号为1bit,若预设码元周期包含N个时钟周期,那么,在预设码元周期内的采样信号为N bit,预设码元周期即为N,N为大于0的整数。在每个预设码元周期开始时,启动码元计数器,该码元计数器用于统计预设码元周期内采样信号的个数,在每个时钟周期递增1。
S103,若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。
本发明实施例中,在码元计数器的值满足以下条件时,对码元计数器进行清0,
1)码元计数器的值达到预设码元周期时;
2)码元计数器的值很小,若码元计数器的值与预设码元周期的比值小于第一预设比例,且采样信号发生跳变;
3)码元计数器的值接近预设码元周期,若码元计数器的值与预设码元周期的比值大于第二预设比例,且采样信号发生跳变。
对于1),表示在预设码元周期结束时,码元计数器的值与预设码元周期相等,此时,进入下一个预设码元周期,不需要对码元边界进行校正,也就是说,现有技术中该情况下也可以对码元计数器进行清0。对于2),表示在一个预设码元周期内,在对码元计数器进行清0后,在获取的采样信号比较少时,若采样信号发生跳变,此时,再次对码元计数器进行清0,可以重新开始新的预设码元周期对接收信号进行采样,第一预设比例可以是0.1、0.2等。码元边界的校正可参见图2,可以看出,实际接收的采样信号的码元周期大于预设码元周期。对于3),表示在一个预设码元周期内,在采样信号比较多时,若采样信号发生跳变,对码元计数器进行清0,此时,可以重新开始新的预设码元周期对接收信号进行采样,这样,实际接收的采样信号的码元周期小于预设码元周期,第二预设比例可以是0.8、0.9等。码元边界的校正可参见图3,可以看出,实际接收的采样信号的码元周期小于预设码元周期。其中,第二预设比例大于第一预设比例。
本发明实施例提供的UART接收方法,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。本发明可以对接收码元的边界进行实时校正,使得接收信号在预设码元周期发生畸变时依然能正确确定采样点,提高码元接收的准确性及系统抗干扰能力。
参见图4,图4为本发明实施例的UART接收方法的又一种流程图,包括以下步骤:
S001,在空闲态,若检测到接收信号的采样信号由高电平跳变至低电平,进入起始态,启动码元计数器对采样信号进行计数。
本发明实施例中,系统上电之后进入空闲态,并持续检测接收管脚(rx_pin)上是否出现下降沿(即采样信号由高电平跳变至低电平),如果发现rx_pin上有下降沿则进入起始态,并启动码元计数器对采样信号进行计数。
S002,在采样信号的个数达到预设码元周期时,计算采样信号中低电平采样信号的比例,判断得到的比例是否不小于预设低电平比例。
具体的,当码元计数器统计的采样信号的个数达到预设码元周期时,进行起始态有效性判定,具体为,判断采样信号中低电平采样信号的比例,是否不小于预设低电平比例,如果是,执行S003;否则判定为无效,执行S004,返回S001,重新检测rx_pin的下降沿,有效起始态和无效起始态可分别参见图5和图6。预设低电平比例可以根据波特率误差进行设定,例如可以为0.75、0.8等,在此不做限定。
S003,确定起始态有效,进入数据态。
S004,确定起始态无效,返回空闲态。
S101,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样。
本发明实施例中,若接收信号中包含校验位,在接收信号中的数据位采样完成之后,进入校验态,按照预设码元周期,周期性对校验位进行采样。在校验态,校验位的接收方法与数据位相同,在此不再赘述,校验位接收完成后状态机跳转至停止态。若接收信号中不包含校验位,则状态机跳转至停止态。在停止态码元的中间位置跳转至空闲态,等待下一个UART信号的接收。
S102,在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0。
S103,若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。
其中,S102和S103分别与图1实施例中的S102和S103相同,在此不再赘述。
可见,本发明实施例的UART接收方法,通过对接收码元的边界进行实时校正,使得接收信号在预设码元周期发生畸变时依然能正确确定采样点,可以提高码元接收的准确性及系统抗干扰能力。通过起始态有效性判断,可以防止rx_pin上的低电平毛刺被误以为是一个有效的起始位,进一步提高码元接收的准确性。
本发明的一种实现方式中,在每个预设码元周期开始时,启动高电平计数器和低电平计数器,在预设码元周期内的每个时钟周期,若获取的采样信号为高电平,将高电平计数器的值加1,若获取的采样信号为低电平,将低电平计数器的值加1,高电平计数器和低电平计数器的初始值均为0。
若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,比较高电平计数器的值和低电平计数器的值的大小;若高电平计数器的值大于低电平计数器的值,确定预设码元周期的采样信号为1;若高电平计数器的值小于或等于低电平计数器的值,确定预设码元周期的采样信号为0。
本发明通过对实际接收的采样信号的码元周期内所有采样信号进行累加判决,相比于传统的使用中间采样点的电平作为判决输出的方法,本发明可以降低误码率,提升通信链路的可靠性。
相应于上述方法实施例,本发明实施例提供了一种UART接收装置,参见图7,图7为本发明实施例的UART接收装置的结构图,包括:
信号采样模块701,用于在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;
码元计数模块702,用于在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;
码元边界设置模块703,用于若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。
本发明实施例提供的UART接收装置,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。本发明可以对接收码元的边界进行实时校正,使得接收信号在预设码元周期发生畸变时依然能正确确定采样点,提高码元接收的准确性及系统抗干扰能力。
可选的,本发明实施例的UART接收装置,还包括:
起始态检测模块,用于在空闲态,若检测到接收信号的采样信号由高电平跳变至低电平,进入起始态,启动码元计数器对采样信号进行计数;
判断模块,用于在采样信号的个数达到预设码元周期时,计算采样信号中低电平采样信号的比例,判断得到的比例是否不小于预设低电平比例;
起始态有效模块,用于若得到的比例不小于预设低电平比例,确定起始态有效,进入数据态;
起始态无效模块,用于若得到的比例小于预设低电平比例,确定起始态无效,返回空闲态。
可选的,本发明实施例的UART接收装置,还包括:
高电平和低电平计数模块,用于在每个预设码元周期开始时,启动高电平计数器和低电平计数器,在预设码元周期内的每个时钟周期,若获取的采样信号为高电平,将高电平计数器的值加1,若获取的采样信号为低电平,将低电平计数器的值加1,高电平计数器和低电平计数器的初始值均为0;
高电平和低电平比较模块,用于若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,比较高电平计数器的值和低电平计数器的值的大小;
高电平确认模块,用于若高电平计数器的值大于低电平计数器的值,确定预设码元周期的采样信号为1;
低电平确认模块,用于若高电平计数器的值小于或等于低电平计数器的值,确定预设码元周期的采样信号为0;
可选的,信号采样模块包括:
校验位采样子模块,用于若接收信号中包含校验位,在接收信号中的数据位采样完成之后,进入校验态,按照预设码元周期,周期性对校验位进行采样。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例还提供了一种电子设备,参见图8,图8为本发明实施例的电子设备的结构图,包括:处理器801、通信接口802、存储器803和通信总线804,其中,处理器801、通信接口802、存储器803通过通信总线804完成相互间的通信;
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述任一UART接收方法的步骤。
需要说明的是,上述电子设备提到的通信总线804可以是PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口802用于上述电子设备与其他设备之间的通信。
存储器803可以包括RAM(Random Access Memory,随机存取存储器),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器801可以是通用处理器,包括:CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital SignalProcessing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例的电子设备中,处理器通过执行存储器上所存放的程序,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。本发明可以对接收码元的边界进行实时校正,使得接收信号在预设码元周期发生畸变时依然能正确确定采样点,提高码元接收的准确性及系统抗干扰能力。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现上述任一UART接收方法的步骤。
本发明实施例的计算机可读存储介质中存储的指令在计算机上运行时,在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;在每个预设码元周期开始时,启动码元计数器,在预设码元周期内的每个时钟周期,获取采样信号,将码元计数器的值加1,码元计数器的初始值为0;若码元计数器的值达到预设码元周期;或者,若码元计数器的值与预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若码元计数器的值与预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将码元计数器的值清0,启动下一预设码元周期对接收信号进行采样。本发明可以对接收码元的边界进行实时校正,使得接收信号在预设码元周期发生畸变时依然能正确确定采样点,提高码元接收的准确性及系统抗干扰能力。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种UART接收方法,其特征在于,所述方法包括:
在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;
在每个预设码元周期开始时,启动码元计数器,在所述预设码元周期内的每个时钟周期,获取采样信号,将所述码元计数器的值加1,所述码元计数器的初始值为0;
若所述码元计数器的值达到所述预设码元周期;或者,
若所述码元计数器的值与所述预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,
若所述码元计数器的值与所述预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将所述码元计数器的值清0,启动下一预设码元周期对所述接收信号进行采样。
2.根据权利要求1所述的UART接收方法,其特征在于,在所述在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样之前,所述方法还包括:
在空闲态,若检测到所述接收信号的采样信号由高电平跳变至低电平,进入起始态,启动码元计数器对采样信号进行计数;
在采样信号的个数达到所述预设码元周期时,计算所述采样信号中低电平采样信号的比例,判断得到的比例是否不小于预设低电平比例;
若得到的比例不小于所述预设低电平比例,确定所述起始态有效,进入所述数据态;
若得到的比例小于所述预设低电平比例,确定所述起始态无效,返回所述空闲态。
3.根据权利要求1所述的UART接收方法,其特征在于,所述方法还包括:
在每个预设码元周期开始时,启动高电平计数器和低电平计数器,在所述预设码元周期内的每个时钟周期,若获取的采样信号为高电平,将所述高电平计数器的值加1,若获取的采样信号为低电平,将所述低电平计数器的值加1,所述高电平计数器和所述低电平计数器的初始值均为0;
若所述码元计数器的值达到所述预设码元周期;或者,
若所述码元计数器的值与所述预设码元周期的比值大于所述第二预设比例,且所获取的采样信号发生跳变,比较所述高电平计数器的值和所述低电平计数器的值的大小;
若所述高电平计数器的值大于所述低电平计数器的值,确定所述预设码元周期的采样信号为1;
若所述高电平计数器的值小于或等于所述低电平计数器的值,确定所述预设码元周期的采样信号为0。
4.根据权利要求1所述的UART接收方法,其特征在于,所述按照预设码元周期,周期性对所获取的接收信号进行采样,包括:
若所述接收信号中包含校验位,在所述接收信号中的数据位采样完成之后,进入校验态,按照所述预设码元周期,周期性对所述校验位进行采样。
5.一种UART接收装置,其特征在于,所述装置包括:
信号采样模块,用于在数据态,按照预设码元周期,周期性对所获取的接收信号进行采样;
码元计数模块,用于在每个预设码元周期开始时,启动码元计数器,在所述预设码元周期内的每个时钟周期,获取采样信号,将所述码元计数器的值加1,所述码元计数器的初始值为0;
码元边界设置模块,用于若所述码元计数器的值达到所述预设码元周期;或者,若所述码元计数器的值与所述预设码元周期的比值小于第一预设比例,且所获取的采样信号发生跳变;或者,若所述码元计数器的值与所述预设码元周期的比值大于第二预设比例,且所获取的采样信号发生跳变,将所述码元计数器的值清0,启动下一预设码元周期对所述接收信号进行采样。
6.根据权利要求5所述的UART接收装置,其特征在于,所述装置还包括:
起始态检测模块,用于在空闲态,若检测到所述接收信号的采样信号由高电平跳变至低电平,进入起始态,启动码元计数器对采样信号进行计数;
判断模块,用于在采样信号的个数达到所述预设码元周期时,计算所述采样信号中低电平采样信号的比例,判断得到的比例是否不小于预设低电平比例;
起始态有效模块,用于若得到的比例不小于所述预设低电平比例,确定所述起始态有效,进入所述数据态;
起始态无效模块,用于若得到的比例小于所述预设低电平比例,确定所述起始态无效,返回所述空闲态。
7.根据权利要求5所述的UART接收装置,其特征在于,所述装置还包括:
高电平和低电平计数模块,用于在每个预设码元周期开始时,启动高电平计数器和低电平计数器,在所述预设码元周期内的每个时钟周期,若获取的采样信号为高电平,将所述高电平计数器的值加1,若获取的采样信号为低电平,将所述低电平计数器的值加1,所述高电平计数器和所述低电平计数器的初始值均为0;
高电平和低电平比较模块,用于若所述码元计数器的值达到所述预设码元周期;或者,若所述码元计数器的值与所述预设码元周期的比值大于所述第二预设比例,且所获取的采样信号发生跳变,比较所述高电平计数器的值和所述低电平计数器的值的大小;
高电平确认模块,用于若所述高电平计数器的值大于所述低电平计数器的值,确定所述预设码元周期的采样信号为1;
低电平确认模块,用于若所述高电平计数器的值小于或等于所述低电平计数器的值,确定所述预设码元周期的采样信号为0。
8.根据权利要求5所述的UART接收装置,其特征在于,所述信号采样模块,包括:
校验位采样子模块,用于若所述接收信号中包含校验位,在所述接收信号中的数据位采样完成之后,进入校验态,按照所述预设码元周期,周期性对所述校验位进行采样。
9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1~4任一所述的UART接收方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1~4任一所述的UART接收方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910209866.6A CN109885525B (zh) | 2019-03-19 | 2019-03-19 | Uart接收方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910209866.6A CN109885525B (zh) | 2019-03-19 | 2019-03-19 | Uart接收方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885525A true CN109885525A (zh) | 2019-06-14 |
CN109885525B CN109885525B (zh) | 2021-02-12 |
Family
ID=66933058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910209866.6A Active CN109885525B (zh) | 2019-03-19 | 2019-03-19 | Uart接收方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885525B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865957A (zh) * | 2019-11-15 | 2020-03-06 | 上海移芯通信科技有限公司 | 一种uart接口的数据接收方法和装置 |
CN114696852A (zh) * | 2022-02-28 | 2022-07-01 | 深圳市紫光同创电子有限公司 | 接收机抽头系数获取方法、设备及存储介质 |
CN116015324A (zh) * | 2022-12-20 | 2023-04-25 | 贵州航天电器股份有限公司 | 一种强化抗干扰的uart数据接收装置及其接收方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604161A (zh) * | 2009-04-17 | 2009-12-16 | 北京铱钵隆芯科技有限责任公司 | 位同步解码方法 |
CN102546084A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 异步串行通信数据接收时的抗干扰纠错采样系统和方法 |
CN103036823A (zh) * | 2012-12-14 | 2013-04-10 | 中船重工(武汉)凌久电子有限责任公司 | 基于fpga的波特率快速自适应方法、处理器及接收端 |
US20140173164A1 (en) * | 2012-05-22 | 2014-06-19 | Sridharan Ranganathan | Providing A Load/Store Communication Protocol With A Low Power Physical Unit |
CN104820812A (zh) * | 2015-04-12 | 2015-08-05 | 浙江海康科技有限公司 | 一种副载波调制的米勒码的解码方法及解码装置 |
CN105224485A (zh) * | 2014-07-03 | 2016-01-06 | 刘伯安 | 一种普适的串行数据的接收方法及装置 |
CN105680947A (zh) * | 2015-12-29 | 2016-06-15 | 暨南大学 | 一种可滤除毛刺的串行数据接收方法 |
CN107679000A (zh) * | 2017-11-02 | 2018-02-09 | 英特格灵芯片(天津)有限公司 | 一种接收端信号占空比自适应调整的电路和方法 |
CN108390752A (zh) * | 2018-01-25 | 2018-08-10 | 固高科技(深圳)有限公司 | 信号接收方法 |
-
2019
- 2019-03-19 CN CN201910209866.6A patent/CN109885525B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604161A (zh) * | 2009-04-17 | 2009-12-16 | 北京铱钵隆芯科技有限责任公司 | 位同步解码方法 |
CN102546084A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 异步串行通信数据接收时的抗干扰纠错采样系统和方法 |
US20140173164A1 (en) * | 2012-05-22 | 2014-06-19 | Sridharan Ranganathan | Providing A Load/Store Communication Protocol With A Low Power Physical Unit |
CN103036823A (zh) * | 2012-12-14 | 2013-04-10 | 中船重工(武汉)凌久电子有限责任公司 | 基于fpga的波特率快速自适应方法、处理器及接收端 |
CN105224485A (zh) * | 2014-07-03 | 2016-01-06 | 刘伯安 | 一种普适的串行数据的接收方法及装置 |
CN104820812A (zh) * | 2015-04-12 | 2015-08-05 | 浙江海康科技有限公司 | 一种副载波调制的米勒码的解码方法及解码装置 |
CN105680947A (zh) * | 2015-12-29 | 2016-06-15 | 暨南大学 | 一种可滤除毛刺的串行数据接收方法 |
CN107679000A (zh) * | 2017-11-02 | 2018-02-09 | 英特格灵芯片(天津)有限公司 | 一种接收端信号占空比自适应调整的电路和方法 |
CN108390752A (zh) * | 2018-01-25 | 2018-08-10 | 固高科技(深圳)有限公司 | 信号接收方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865957A (zh) * | 2019-11-15 | 2020-03-06 | 上海移芯通信科技有限公司 | 一种uart接口的数据接收方法和装置 |
CN114696852A (zh) * | 2022-02-28 | 2022-07-01 | 深圳市紫光同创电子有限公司 | 接收机抽头系数获取方法、设备及存储介质 |
CN114696852B (zh) * | 2022-02-28 | 2023-11-07 | 深圳市紫光同创电子有限公司 | 接收机抽头系数获取方法、设备及存储介质 |
CN116015324A (zh) * | 2022-12-20 | 2023-04-25 | 贵州航天电器股份有限公司 | 一种强化抗干扰的uart数据接收装置及其接收方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109885525B (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885525B (zh) | Uart接收方法、装置、电子设备及可读存储介质 | |
US6212660B1 (en) | Methods and apparatuses for identification of the position of data packets which are located in a serial received data stream | |
US5276691A (en) | Method for the control of receiver synchronization in a mobile phone | |
TWI408931B (zh) | 資料通訊裝置、及通訊控制方法、以及程式産品 | |
CN102546084B (zh) | 异步串行通信数据接收时的抗干扰纠错采样系统和方法 | |
CN106502811B (zh) | 一种1553b总线通信故障处理方法 | |
CN109217922B (zh) | 一种光模块上报接收信号丢失告警的方法及装置 | |
US20150195124A1 (en) | Method for error diagnosis of can communication | |
CN111181815A (zh) | 自动波特率检测电路及其检测方法 | |
CN117318869A (zh) | 报文时戳验证方法、电子设备及存储介质 | |
US12013744B2 (en) | Electrostatic interference processing method, apparatus, and device, and readable storage medium | |
CN114527832B (zh) | 脉冲信号边沿测量方法及装置、存储介质及微控制单元 | |
CN111611186B (zh) | 一种嵌入式芯片中传输控制方法和装置 | |
CN106445462B (zh) | 一种Unity3D平台的串口数据处理方法 | |
CN110049312B (zh) | 一种arinc818协议故障注入方法及装置 | |
US3413600A (en) | Transmission system | |
JP3329229B2 (ja) | Atコマンド受信方式 | |
CN117215172B (zh) | 一种卫星授时方法、装置、卫星授时系统及存储介质 | |
CN109298969A (zh) | 一种串行通讯数据恢复方法及系统 | |
CN112148514B (zh) | 看门狗复位的方法、装置、存储介质和电子设备 | |
CN118244093B (zh) | 芯片内部时钟的校准方法、装置、电子设备及存储介质 | |
CN116915367B (zh) | 数据检测方法、存储介质和电子设备 | |
CN112821915B (zh) | 数据处理装置与方法 | |
CN117978325A (zh) | 信号系统间传递数据的有效数据帧侦测方法、设备及介质 | |
SU932495A1 (ru) | Микропрограммное устройство управлени с восстановлением при сбо х |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |