一种软件实现串行数据接收的方法、装置及电子设备制造方法及图纸

技术编号:21547755 阅读:63 留言:0更新日期:2019-07-06 21:22
本发明专利技术适用于通信领域,提供了一种软件实现串行数据接收的方法、装置及电子设备,其中,所述方法包括:S1、设置N倍数据传输速率的定时器;S2、检测数据;S3、利用N倍数据传输速率的定时器进行数据采集。所述装置包括定时器设置模块,用于设置N倍数据传输速率的定时器;数据检测模块,用于检测数据;数据采集模块,用于利用N倍数据传输速率的定时器进行数据采集。

A Method, Device and Electronic Equipment for Serial Data Receiving by Software

【技术实现步骤摘要】
一种软件实现串行数据接收的方法、装置及电子设备
本专利技术属于通信领域,尤其涉及一种软件实现串行数据接收的方法、装置及电子设备。
技术介绍
外设通信接口中,类似UART接口,需要进行串行数据通信,简单易实现的方法将减低复杂度,减少出错机率,采用2倍或4倍或更高采样率将有助于提高采集精确度,本文采用3倍采样率进行采集,对串行进行采集,简化实现复杂度。
技术实现思路
本专利技术提供了一种软件实现串行数据接收的方法、装置及电子设备,旨在解决现有技术中串行数据采集复杂且出错率高的技术问题。为此,本专利技术提供了一种软件实现串行数据接收的方法,包括:S1、设置N倍数据传输速率的定时器;S2、检测数据;S3、利用N倍数据传输速率的定时器进行数据采集;其中,N为数据传输速率的倍数,且N为正数。优选地,所述步骤S2具体为:判断是否采集到起始位数据,是则触发所述定时器并进入步骤S3,否则继续判断是否检测到起始位数据。优选地,所述步骤S3具体为:S31、获取起始位数据并初始化i;S32、利用N倍数据传输速率采集第i位数据;S33、判断i是否小于等于设定阈值,是则i=i+1,返回步骤S32,否则返回步骤S2;其中,i为所采集的数据的位数,且i为整数。作为进一步优选地,所述步骤S32具体为:采集第i位数据,判断第i位数据采集次数是否达到N次,是则进入步骤S33,否则继续采集第i位数据。优选地,在所述步骤S3中,所述多倍数据传输速率的定时器为3倍定时器。按照本专利技术的另一个方面,本专利技术提供了一种软件实现串行数据接收的装置,包括:定时器设置模块,用于设置N倍数据传输速率的定时器;数据检测模块,用于检测数据;数据采集模块,用于利用N倍数据传输速率的定时器进行数据采集;其中,N为数据传输速率的倍数,且N为正数。优选地,所述数据检测模块具体用于判断是否采集到起始位数据并在采集到起始位数据时触发所述定时器。优选地,所述数据采集模块包括:起始位数据获取单元,用于获取起始位数据并初始化i;数据获取单元,用于利用N倍数据传输速率采集第i位数据;判断单元,用于采集第i位数据,并判断i是否小于等于设定阈值并在i小于等于设定阈值时将i加1;其中,i为所采集的数据的位数,且i为整数。作为进一步优选地,所述数据获取单元具体用于判断第i位数据采集次数是否达到N次,若没有达到N次,则继续采集第i位数据。优选地,所述多倍数据传输速率的定时器为3倍定时器。在本专利技术的另一方面,本专利技术提供了一种电子设备,包括存储器以及处理器,所述处理器用于执行所述软件实现串行数据接收的方法。本专利技术提供的一种软件实现串行数据接收的方法、装置及电子设备,通过采用三倍数据传输速率的定时器进行数据采集,提高了数据采集的精度,降低了软件实现复杂度,同时也降低了出错率。附图说明图1是本专利技术实施例中提供的一种软件实现串行数据接收的方法的流程图;图2是本专利技术实施例中提供的一种软件实现串行数据接收的装置的结构图。其中,1-定时器设置模块;2-数据检测模块;31-起始位数据获取单元;32-数据获取单元;33-判断单元。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术的各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。在本专利技术的实施例一中,如图1所示,本专利技术提供了一种软件实现串行数据接收的方法,包括:S1、设置N倍数据传输速率的定时器;S2、检测数据;S3、利用N倍数据传输速率的定时器进行数据采集;其中,N为数据传输速率的倍数,且N为正数。其中,所述步骤S2具体为:判断是否采集到起始位数据,是则触发所述定时器并进入步骤S3,否则继续判断是否检测到起始位数据。所述步骤S3具体为:S31、获取起始位数据并初始化i;S32、利用N倍数据传输速率采集第i位数据;S33、采集第i位数据,判断i是否小于等于设定阈值,是则i=i+1,返回步骤S32,否则返回步骤S2;其中,i为所采集的数据的位数,且i为整数。所述步骤S32具体为:判断第i位数据采集次数是否达到N次,是则进入步骤S33,否则继续采集第i位数据。在所述步骤S3中,所述多倍数据传输速率的定时器为3倍定时器。在本专利技术的具体实施例中,需要采集的数据为8位,首先设置定时器为3倍数据传输速率的定时器,然后判断是否检测到起始位数据,若检测到起始位数据,则触发定时器进行数据采集,从第一位数据开始采集,判断第一位数据采集次数是否达到3次,是则采集下一位数据,否则继续采集第一位数据,当采集的数据位数达到8位时,可以停止数据采集操作或进行下一轮数据采集操作。在本专利技术的实施例二中,如图2所示,本专利技术提供了一种软件实现串行数据接收的装置,包括:定时器设置模块1,用于设置N倍数据传输速率的定时器;数据检测模块2,用于检测数据;数据采集模块,用于利用N倍数据传输速率的定时器进行数据采集;其中,N为数据传输速率的倍数,且N为正数。所述定时器设置模块1的输出端连接所述数据检测模块2的第一输入端,所述数据检测模块2的输出端连接所述数据采集模块的输入端,所述数据采集模块的输出端连接所述数据检测模块2的第二输入端。所述数据检测模块2具体用于判断是否采集到起始位数据并在采集到起始位数据时触发所述定时器。在本专利技术的具体实施例中,所述数据采集模块包括:起始位数据获取单元31,用于获取起始位数据并初始化i;数据获取单元32,用于利用N倍数据传输速率采集第i位数据;判断单元33,用于采集第i位数据,并判断i是否小于等于设定阈值并在i小于等于设定阈值时将i加1;其中,i为所采集的数据的位数,且i为整数。所述起始位数据获取单元31的输入端作为所述数据采集模块的输入端,所述起始位数据获取单元31的输出端连接所述数据获取单元32的第一输入端,所述数据获取单元32的输出端连接所述判断单元33的输入端,所述判断单元33的第一输出端连接所述数据获取单元32的第二输入端,所述判断单元33的第二输出端作为所述数据采集模块的输出端。所述数据获取单元32具体用于判断第i位数据采集次数是否达到N次,若没有达到N次,则继续采集第i位数据。所述多倍数据传输速率的定时器为3倍定时器。在本专利技术的具体实施例三中,本专利技术提供了一种电子设备,包括存储器以及处理器,所述处理器用于所述软件实现串行数据接收的方法。本专利技术主要利用3倍之前的速率进行数据采集,类似115200bps的波特率,采用115200*3倍的定时器进行数据采集,尤其在软件实现上,对UART的接收和发送极其简化处理。大致采用3倍之前速率,取3次采样的中间的数组作为采集到的UART数据,除起始bit的同步需要做一个起始bit检测,同时利用软件状态及在定时器中断进行处理,降低软件的实现复杂度。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网...

【技术保护点】
1.一种软件实现串行数据接收的方法,其特征在于,包括:S1、设置N倍数据传输速率的定时器;S2、检测数据;S3、利用N倍数据传输速率的定时器进行数据采集;其中,N为数据传输速率的倍数,且N为正数。

【技术特征摘要】
1.一种软件实现串行数据接收的方法,其特征在于,包括:S1、设置N倍数据传输速率的定时器;S2、检测数据;S3、利用N倍数据传输速率的定时器进行数据采集;其中,N为数据传输速率的倍数,且N为正数。2.如权利要求1所述的软件实现串行数据接收的方法,其特征在于,所述步骤S2具体为:判断是否采集到起始位数据,是则触发所述定时器并进入步骤S3,否则继续判断是否检测到起始位数据。3.如权利要求1所述的软件实现串行数据接收的方法,其特征在于,所述步骤S3具体为:S31、获取起始位数据并初始化i;S32、利用N倍数据传输速率采集第i位数据;S33、判断i是否小于等于设定阈值,是则i=i+1,返回步骤S32,否则返回步骤S2;其中,i为所采集的数据的位数,且i为整数。4.如权利要求3所述的软件实现串行数据接收的方法,其特征在于,所述步骤S32具体为:采集第i位数据,判断第i位数据采集次数是否达到N次,是则进入步骤S33,否则继续采集第i位数据。5.如权利要求1所述的软件实现串行数据接收的方法,其特征在于,在所述步骤S3中,所述多倍数据传输速率的定时器为3倍定时器。6.一种软件实...

【专利技术属性】
技术研发人员:符运河
申请(专利权)人:建荣半导体深圳有限公司建荣集成电路科技珠海有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1