一种数据处理方法及终端与流程

文档序号:14993516发布日期:2018-07-20 23:01阅读:153来源:国知局

本发明涉及电子技术领域,尤其涉及一种数据处理方法及终端。



背景技术:

目前,j1708协议的数据链路层在接收数据时通常采用超时轮询的方法,即调用处理器不断地查询串口是否存在数据,当该处理器检查到数据存在时可立即读取该数据,如果处理器在执行其他程序时,串口接收到数据后处理器不能及时读取可能造成该数据的丢失,而使得该处理器读取的一帧数据出错,而且由于采用超时轮询接收数据的方式需要调用处理器不断地读取数据而长时间占用该处理器而使得该处理器不能执行其他的操作,因此使得该处理器的处理效率降低。



技术实现要素:

本发明实施例提供一种数据处理方法及终端,可提高处理器的处理效率。

第一方面,本发明实施例提供了一种数据处理方法,该方法包括:

从循环缓冲区中读取第n个数据和所述第n个数据的接收时间戳,所述n为大于或等于1的整数;

从所述循环缓冲区中读取第n+1个数据和所述第n+1个数据的接收时间戳;

当所述第n+1个数据的接收时间戳和所述第n个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。

其中,所述方法还包括:

当所述第n+1个数据的接收时间戳和所述第n个数据的接收时间戳之间的差值小于或等于预设阈值时,从所述循环缓冲区中读取第n+2个数据和所述第n+2个数据的接收时间戳;

直至从所述循环缓冲区中读取的第n+k个数据的接收时间戳与从所述循环缓冲区中读取的第n+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,所述k为大于或等于1的整数。

其中,当所述第n+1个数据的接收时间戳和所述第n个数据的接收时间戳之间的差值小于或等于预设阈值时且所述循环缓冲区没有数据时,所述方法还包括:

等待预设时长;

当所述预设时长内所述循环缓冲区存在数据时,执行所述的从所述循环缓冲区中读取第n+2个数据和所述第n+2个数据的接收时间戳的步骤;

当所述预设时长后所述循环缓冲区不存在数据时,确定一帧数据接收完成。

其中,所述方法还包括:

当检测到中断标志时,接收数据并获取时间戳;

将获取的所述时间戳作为所述数据的接收时间戳,并将所述数据和所述接收时间戳关联存储于循环缓冲区。

其中,当所述第n+1个数据的接收时间戳和所述第n个数据的接收时间戳之间的差值大于预设阈值时,所述方法还包括:

根据所述第n+1个数据和所述第n+1个数据的接收时间戳的读取位置,将所述第n+1个数据和所述第n+1个数据的接收时间戳重新关联存储于所述循环缓冲区中的所述读取位置。

第二方面,本发明实施例提供了一种终端,该终端包括:

读取单元,用于从循环缓冲区中读取第n个数据和所述第n个数据的接收时间戳,所述n为大于或等于1的正整数;

所述读取单元,还用于从所述循环缓冲区中读取第n+1个数据和所述第n+1个数据的接收时间戳;

确定单元,用于当所述第n+1个数据的接收时间戳和所述第n个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。

其中,所述终端还包括:

所述读取单元,还用于当所述第n+1个数据的接收时间戳和所述第n个数据的接收时间戳之间的差值小于或等于预设阈值时,从所述循环缓冲区中读取第n+2个数据和所述第n+2个数据的接收时间戳;

所述确定单元,还用于直至从所述循环缓冲区中读取的第n+k个数据的接收时间戳与从所述循环缓冲区中读取的第n+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,所述k为大于或等于1的整数。

其中,所述终端还包括:

等待单元,用于等待预设时长;

执行单元,用于所述当所述预设时长内所述循环缓冲区存在数据时,执行所述的从所述循环缓冲区中读取第n+2个数据和所述第n+2个数据的接收时间戳的步骤;

所述确定单元,还用于当所述预设时长后所述循环缓冲区不存在数据时,确定一帧数据接收完成。

其中,所述终端还包括:

接收单元,用于当检测到中断标志时,接收数据并获取时间戳;

存储单元,用于将获取的所述时间戳作为所述数据的接收时间戳,并将所述数据和所述接收时间戳关联存储于所述循环缓冲区。

其中,所述终端还包括:

所述存储单元,还用于根据所述第n+1个数据和所述第n+1个数据的接收时间戳的读取位置,将所述第n+1个数据和所述第n+1个数据的接收时间戳重新关联存储于所述循环缓冲区中的所述读取位置。

第三方面,本发明实施例提供了另一种终端,包括处理器、收发器和存储器,所述处理器、收发器和存储器相互连接,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。

本发明实施例通过从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,并从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,该终端确定一帧数据接收成功,使得终端实现了从循环缓冲区中读取数据,而不是为了接收一帧数据而占用处理器一直等待的方法,可有效地减少数据的丢失的同时可根据读取的数据的读取时间戳对接收的数据是否是一帧数据进行正确的判断,解决了通过超时轮询判断一帧数据是否接收完成而占用处理器资源的问题,可有效地节省时间,并提高终端的处理效率。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据处理方法的示意流程图;

图2是本发明实施例提供的另一种数据处理方法的示意流程图;

图3是本发明实施例提供的又一种数据处理方法的示意流程图;

图4是本发明实施例提供的一种终端的示意性框图;

图5是本发明实施例提供的另一种终端示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明实施例提供的一种数据处理方法的示意流程图,如图1所示,该方法可包括:

s101,终端从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,该n为大于或等于1的正整数。

具体的,当终端检测到数据并将该数据和该数据的接收时间戳写入循环缓冲区时,可将该循环缓冲区的长度加1,因此终端可通过对比当前循环缓冲区的长度和该循环缓冲区的历史长度,确定该循环缓冲区中是否存在数据,并在该循环缓冲区中存在数据时,从该循环缓冲区中依次读取第n个数据。

可选的,该终端还可在处理器空闲时,从该循环缓冲区中读取第n个数据,该终端可先执行其他程序,在处理器空闲时则从该循环缓冲区中读取数据,使得终端实现了对处理器资源的最大化运用,有效地避免了对处理器资源的浪费。

需要说明的是,该终端从该循环缓冲区中读取的第1个数据和该第1个数据的接收时间戳是该循环缓冲区写入的第1个数据和该第1个数据的接收时间戳。

s102,该终端从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳。

具体的,该终端可在从该循环缓冲区中读取第n个数据后,可再次检测该循环缓冲区中是否存在数据,如果检测到该循环缓冲区中存在数据,可立即从该循环缓冲区中读取第n+1个数据和该第n+1个数据的读取时间戳,或者,当该终端检测到该循环缓冲区中存在数据时,如果处理器在处理其他程序,该终端可在处理器空闲时再从该循环缓冲区中读取第n+1个数据,使得终端实现了不仅能立即处理该循环缓冲区中的数据,还可对该数据做延迟处理。

s103,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,该终端确定一帧数据接收完成。

具体的,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时,该第n+1个数据和该第n个数据属于同一帧数据,因此该终端可继续从该循环缓冲区中读取数据,直到该终端从读取的数据中确定一帧数据接收完成为止。

本发明实施例通过从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,并从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,该终端确定一帧数据接收成功,使得终端实现了从循环缓冲区中读取数据,而不是为了接收一帧数据而占用处理器一直等待,可有效地减少数据的丢失的同时可根据读取的数据的读取时间戳对读取的数据是否是一帧数据进行正确的判断,解决了通过超时轮询判断一帧数据是否接收完成而占用处理器资源的问题,可有效地节省时间,并提高终端的处理效率。

参见图2,是本发明实施例提供的另一种数据处理方法的示意流程图,其中,与图1相比,图2对该终端读取的数据的接收时间戳之间的差值的可能情况进行了具体的分析,使得终端可更加精确的判断是否一帧数据接收完成,如图2所示,该方法可包括:

s201,当终端检测到中断标志时,接收数据并获取时间戳,将获取的该时间戳作为该数据的接收时间戳,并将该数据和该接收时间戳关联存储于循环缓冲区。

具体的,该终端可通过收发器接收数据,当该收发器接收到数据时,可生成数据接收标志(即中断标志)而触发中断,当该终端检测到该数据接收标志时,可执行中断服务函数,即处理器获取时间戳作为该数据的接收时间戳,并将该收发器接收到的数据和该数据的接收时间戳按照接收顺序关联存储于收发器的循环缓冲区中。

其中,在该终端接收数据之前,可先开启该收发器的中断接收功能,使得该收发器在接收到数据后可生成中断标志从而触发中断的发生,同时,还可在该收发器中开辟一循环缓冲区使得该收发器可将接收到的数据和获取的该数据的接收时间戳关联存储到该循环缓冲区中,由于该循环缓冲区具有的先进先出的特性,确保了该处理器从该循环缓冲区中读取的第1个数据就是写入该循环缓冲区的第1个数据,也使得该处理器可从该循环缓冲区中依次读取数据和该数据对应的接收时间戳,从而可确保该处理器读取的一帧数据的正确性。

其中,该终端触发中断后获取的时间戳可来自定时器,该定时器可根据预设的中断频率产生中断,从而使得该定时器中的时间戳加1,需要说明的是,该定时器产生的中断只用于将时间戳加1,和收发器接收数据后触发的中断为两个不同的中断。

可选的,终端可先初始化定时器的时间戳,例如可将时间戳置0,在检测到该定时器产生中断时,将时间戳加1,终端可通过在定时器中设置较高的中断频率使得该定时器可频繁发生中断,而使得时间戳的值的变化较快,保证了在终端接收到数据时,定时器的时间戳值恰好发生变化,确保了从该定时器中获取的作为该数据的接收时间戳的准确性,使得终端提高了对一帧数据判断的精度。

s202,该终端从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,该n为大于或等于1的整数。

其中,步骤s202的具体执行方式可参见步骤s102,在此不再赘述。

s203,该终端从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳。

具体的,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时,可执行步骤s204,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于该预设阈值时,可执行步骤s205。

其中,与第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值进行对比的预设阈值是根据收发器的波特率设置的,例如当该收发器的波特率为9200波特(baud)时,对应的一个比特位的时间长度约为104微秒(μs),因此,为了使得接收时间戳之间的差值和该预设阈值可以进行对比,该终端可设置该时间戳值的变化和时长变化的对应关系,例如,时间戳每加1可表示时间经过了104μs,使得终端在接收到数据和该数据的接收时间戳时,可通过相邻接收时间戳之前的差值和预设阈值的对比准确判断相应的数据是否是同一帧数据。

s204,该终端从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳。

具体的,当该终端读取的第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时,该终端确定该第n个数据和该第n+1个数据属于同一帧数据,该终端为了接收一帧数据成功,可继续从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳,直到该终端从该循环缓冲区中读取的第n+k个数据的接收时间戳和该第n+k-1个数据的接收时间戳之间的差值大于预设阈值为止,此时终端可确定一帧数据接收成功,该一帧数据包括该终端读取的第1至第n+k-1个数据,其中n和k都为大于或等于1的整数。

s205,该终端根据该第n+1个数据和该第n+1个数据的接收时间戳的读取位置,将该第n+1个数据和该第n+1个数据的接收时间戳重新关联存储于该循环缓冲区中的该取位置。

具体的,当该终端读取的第n+1和数据的时间戳和该第n个数据的时间戳之间的差值大于预设阈值时,说明该第n+1个数据和该第n个数据不属于同一帧,因此,该终端可根据该第n+1个数据和该第n+1个数据的接收时间戳的读取位置,将该第n+1个数据和该第n+1个数据的接收时间戳重新关联存储于该循环缓冲区的读取位置,从而保证了该终端在再次从该循环缓冲区中读取的下一帧数据不出错。

例如,当该终端检测到中断标志时,可接收数据并获取该数据的接收时间戳,并将该数据和该数据的接收时间戳关联存储于循环缓冲区中,若假如该终端接收到5个数据,于是该终端将该5个数据按照接收的先后顺序存储在该循环缓冲区中,当该终端处理器空闲时,该处理器可从该循环缓冲区中读取第1个数据和该第1个数据的接收时间戳,并从该循环缓冲区中读取第2个数据和该第2个数据的接收时间戳,如果该第1个数据的接收时间戳和该第2个数据的接收时间戳之间的差值小于预设差值,说明该第1个数据和该第2个数据属于同一帧数据,则从该循环缓冲区中读取第3个数据和该第3个数据的接收时间戳,如果该第3个数据的接收时间戳和该第2个数据的接收时间戳之间的差值大于该预设差值,表明该第3个数据和该第2个数据不属于同一帧数据,则根据该第3个数据和该第3个数据的接收时间戳的读取位置,将该第3个数据和该第3个数据的接收时间戳重新写入该循环缓冲区的该读取位置中,并可确定一帧数据接收成功,该一帧数据包括该第1数据和该第2数据。

在本发明实施例中,终端可在检测到中断标志时将接收的数据和该数据的接收时间戳关联存储于循环缓冲区中,终端在处理器空闲时从该循环缓冲区中依次读取第n个数据和该第n个数据的接收时间戳,通过对比第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值确定一帧数据,并在第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,由于如果该第n+1个数据的接收时间戳和该第n个数据的接收时间戳小于或等于该预设阈值时,该终端可继续从该循环缓冲区中读取数据直至将该循环缓冲区中的数据读完或者读到第n+k个数据的接收时间戳和第n+k-1个数据的接收时间戳之间的差值大于该预设阈值时,确定一帧数据接收完成,使得终端可根据读取数据的接收时间戳的不同情况确定该一帧数据接收完成,实现了终端对一帧数据的灵活判断。

参见图3,是本发明实施例提供的又一种数据处理方法的示意流程图,如图3所示,该方法可包括:

s301,当终端检测到中断标志时,接收数据并获取时间戳,将获取的该时间戳作为该数据的接收时间戳,并将该数据和该接收时间戳关联存储于循环缓冲区。

s302,该终端从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,该n为大于或等于1的整数。

s303,该终端从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳。

其中,步骤s301—步骤s303具体实施方式可参见步骤s201—步骤s203,在此不再进行赘述。

s304,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值且该循环缓冲区中没有数据时,该终端等待预设时长。

具体的,当该终端读取的第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值且检测到该循环缓冲区没有数据时,可设置预设时长,如果在该预设时长内该循环缓冲区中再次存在数据,可执行从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳,直到该终端从该循环缓冲区中读取的第n+k个数据的接收时间戳和该第n+k-1个数据的接收时间戳之间的差值大于预设阈值为止,此时终端可确定一帧数据接收成功,该一帧数据包括该终端读取的第1至第n+k-1个数据,或者,如果在该预设时长内该循环缓冲区中不存在数据时,可确定一帧数据接收完成,该一帧数据可包括读取的第1至第n+1个数据。

可选的,当该循环缓冲区在该预设时长内再次存在数据时,该终端在从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳后,该终端可再次设置预设时长,即当终端在读取的第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值且该循环缓冲区中没有数据时,可设置预设时长,如果在该预设时长内该循环缓冲区中再次存在数据时,该终端可从循环缓冲区中获取第n+2个数据,为了避免该终端从该循环缓冲区中获取第n+2个数据时将第一次设置的预设时长覆盖,所以该终端在每次接收到新的数据时可重新设置一预设时长,并在该预设时长内判断该循环缓冲区是否再次存在数据,其中,该预设时长可和第一次设置的预设时长相同,也可不相同,在本发明实施例中不作限定。

其中,由于一帧数据中数据之间的接收间隔最大可达到10个比特位的时间,因此,为了避免处理器长时间地等待读取数据而浪费处理器资源,或者由于终端的等待时长过短而导致终端漏读该循环缓冲区中再次存在的数据,该终端设置的预设时长(等待时长)例如可以是10个比特位,其中1个比特位的等待时长约为104μs,使得终端既实现了等待数据而最小程度地浪费处理器资源,又避免了终端漏读该循环缓冲区中存在的数据。例如,当该终端检测到中断标志时,可接收数据并获取该数据的接收时间戳,并将该数据和该数据的接收时间戳关联存储于循环缓冲区中,若假如该终端接收到5个数据,于是该终端将该5个数据按照接收的先后顺序存储在该循环缓冲区中,当该终端处理器空闲时,该处理器可从该循环缓冲区中读取第1个数据和该第1个数据的接收时间戳,如果该处理器从该循环缓冲区中读取到第1个数据后,该循环缓冲区中不存在数据了,于是该终端可设置10个比特位的等待时间,如果该处理器在该10个比特位的等待时间中没有再次从该循环缓冲区中读取到数据,则说明该处理器一帧数据接收成功,该一帧数据包括该第1个数据,如果该处理器在该10个比特位的等待时间中再次从该循环缓冲区中读取到第2个数据,说明该第2个数据和该第1个数据属于同一帧,该终端再次设置10个比特位的等待时间,并在这10个比特位的等待时间中没有再次获取到数据时,确定该处理器一帧数据接收成功,该一帧数据包括该第1个数据和该第2个数据。

在本发明实施例中,在终端检测到中断标志时可接收数据并将获取的时间戳作为该数据的接收时间戳后,将该数据和该接收时间戳关联存储在循环缓冲区中,该终端在处理器空闲时,该处理器可从该循环缓冲区中依次读取第n个数据和该第n个数据的接收时间戳以及第n+1个数据和该第n+1个数据的接收时间戳,并当该第n个数据的接收时间戳和该第n+1个数据的接收时间戳之间的差值小于或等于预设阈值且该循环缓冲区中不存在数据时,可设置等待时长,并在该等待时长中没有接收到数据时确定一帧数据接收成功,使得终端进一步提高了对一帧数据接收成功的准确地判断。

本发明实施例还提供一种终端,该终端用于执行前述任一项该的方法的单元。具体地,参见图4,是本发明实施例提供的一种终端的示意框图。本实施例的终端包括:读取单元401和确定单元402。

读取单元401,用于从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,该n为大于或等于1的整数;

该读取单元401,还用于从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳;

确定单元402,用于当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。

其中,该读取单元401,还用于当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时,从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳;

该确定单元402,还用于直至从该循环缓冲区中读取的第n+k个数据的接收时间戳与从该循环缓冲区中读取的第n+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,该k为大于或等于1的整数。

其中,该终端还包括:等待单元403和执行单元404。

等待单元403,用于等待预设时长;

执行单元404,用于当该预设时长内该循环缓冲区存在数据时,执行该的从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳的步骤;

该确定单元402,还用于当该预设时长后该循环缓冲区不存在数据时,确定一帧数据接收完成。

其中,该终端还包括:接收单元405和存储单元406。

接收单元405,用于当检测到中断标志时,接收数据并获取时间戳;

存储单元406,用于将获取的该时间戳作为该数据的接收时间戳,并将该数据和该接收时间戳关联存储于循环缓冲区。

其中,存储单元406,还用于根据该第n+1个数据和该第n+1个数据的接收时间戳的读取位置,将该第n+1个数据和该第n+1个数据的接收时间戳重新关联存储于该循环缓冲区中的该读取位置。

本发明实施例通过读取单元401从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,并通过读取单元401从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,该确定单元402确定一帧数据接收成功,使得终端实现了从循环缓冲区中读取数据,而不是为了接收一帧数据而占用处理器一直等待的方法,可有效地减少数据的丢失的同时可根据读取的数据的读取时间戳对接收的数据是否是一帧数据进行正确的判断,解决了通过超时轮询判断一帧数据是否接收完成而占用处理器资源的问题,可有效地节省时间,并提高终端的处理效率。

参见图5,是本发明另一实施例提供的一种终端示意框图。如图所示的本实施例中的终端可以包括:一个或多个处理器501;一个或多个收发器502和存储器503。上述处理器501、收发器502和存储器503通过总线504连接。存储器503用于存储计算机程序,该计算机程序包括程序指令,处理器501用于执行存储器503存储的程序指令。其中,处理器501被配置用于调用该程序指令执行:

从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,该n为大于或等于1的整数;

从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳;

当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。

其中,该处理器501还用于执行:

当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时,从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳;

直至从该循环缓冲区中读取的第n+k个数据的接收时间戳与从该循环缓冲区中读取的第n+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,该k为大于或等于1的整数。

其中,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时且该循环缓冲区没有数据时,该处理器501还用于执行:

等待预设时长;

当该预设时长内该循环缓冲区存在数据时,执行该的从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳的步骤;

当该预设时长后该循环缓冲区不存在数据时,确定一帧数据接收完成。

其中,该处理器501还用于执行:

当检测到中断标志时,接收数据并获取时间戳;

调用存储器503将获取的该时间戳作为该数据的接收时间戳,并将该数据和该接收时间戳关联存储于循环缓冲区。

其中,当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,该处理器501还用于执行:

调用存储器503根据该第n+1个数据和该第n+1个数据的接收时间戳的读取位置,将该第n+1个数据和该第n+1个数据的接收时间戳重新关联存储于该循环缓冲区中的该读取位置。

在本发明的另一实施例中提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现:

从循环缓冲区中读取第n个数据和该第n个数据的接收时间戳,该n为大于或等于1的整数;

从该循环缓冲区中读取第n+1个数据和该第n+1个数据的接收时间戳;

当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。

其中,该程序被处理器执行时还用于实现:

当该第n+1个数据的接收时间戳和该第n个数据的接收时间戳之间的差值小于或等于预设阈值时,从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳;

直至从该循环缓冲区中读取的第n+k个数据的接收时间戳与从该循环缓冲区中读取的第n+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,该k为大于或等于1的整数。

其中,该程序被处理器执行时还用于实现:

等待预设时长;

当该预设时长内该循环缓冲区存在数据时,执行该的从该循环缓冲区中读取第n+2个数据和该第n+2个数据的接收时间戳的步骤;

当该预设时长后该循环缓冲区不存在数据时,确定一帧数据接收完成。

其中,该程序被处理器执行时还用于实现:

当检测到中断标志时,接收数据并获取时间戳;

将获取的该时间戳作为该数据的接收时间戳,并将该数据和该接收时间戳关联存储于循环缓冲区。

其中,该程序被处理器执行时还用于实现:

根据该第n+1个数据和该第n+1个数据的接收时间戳的读取位置,将该第n+1个数据和该第n+1个数据的接收时间戳重新关联存储于该循环缓冲区中的该读取位置。

以上该,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1