CN108306967A - 一种数据处理方法及终端 - Google Patents

一种数据处理方法及终端 Download PDF

Info

Publication number
CN108306967A
CN108306967A CN201810101037.1A CN201810101037A CN108306967A CN 108306967 A CN108306967 A CN 108306967A CN 201810101037 A CN201810101037 A CN 201810101037A CN 108306967 A CN108306967 A CN 108306967A
Authority
CN
China
Prior art keywords
data
receiving time
cyclic buffer
read
time stamp
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
Application number
CN201810101037.1A
Other languages
English (en)
Other versions
CN108306967B (zh
Inventor
刘均
姜楚
詹伟
李晓雍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN201810101037.1A priority Critical patent/CN108306967B/zh
Publication of CN108306967A publication Critical patent/CN108306967A/zh
Application granted granted Critical
Publication of CN108306967B publication Critical patent/CN108306967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明实施例公开了一种数据处理方法及终端,其中方法包括:从循环缓冲区中读取第N个数据和该第N个数据的接收时间戳,该N为大于或等于1的整数,从该循环缓冲区中读取第N+1个数据和该第N+1个数据的接收时间戳,当该第N+1个数据的接收时间戳和该第N个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,与目前采用的超时轮询判断一帧结束的方法相比,可提高处理器的处理效率。

Description

一种数据处理方法及终端
技术领域
本发明涉及电子技术领域,尤其涉及一种数据处理方法及终端。
背景技术
目前,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个数据的接收时间戳重新关联存储于该循环缓冲区中的该读取位置。
以上该,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
从循环缓冲区中读取第N个数据和所述第N个数据的接收时间戳,所述N为大于或等于1的整数;
从所述循环缓冲区中读取第N+1个数据和所述第N+1个数据的接收时间戳;
当所述第N+1个数据的接收时间戳和所述第N个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第N+1个数据的接收时间戳和所述第N个数据的接收时间戳之间的差值小于或等于预设阈值时,从所述循环缓冲区中读取第N+2个数据和所述第N+2个数据的接收时间戳;
直至从所述循环缓冲区中读取的第N+k个数据的接收时间戳与从所述循环缓冲区中读取的第N+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,所述k为大于或等于1的整数。
3.根据权利要求2所述的方法,其特征在于,当所述第N+1个数据的接收时间戳与所述第N个数据的接收时间戳之间的差值小于或等于预设阈值且所述循环缓冲区没有数据时,所述方法还包括:
等待预设时长;
当所述预设时长内所述循环缓冲区存在数据时,执行所述的从所述循环缓冲区中读取第N+2个数据和所述第N+2个数据的接收时间戳的步骤;
当所述预设时长后所述循环缓冲区不存在数据时,确定一帧数据接收完成。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当检测到中断标志时,接收数据并获取时间戳;
将获取的所述时间戳作为所述数据的接收时间戳,并将所述数据和所述接收时间戳关联存储于所述循环缓冲区。
5.根据权利要求4所述的方法,其特征在于,当所述第N+1个数据的接收时间戳和所述第N个数据的接收时间戳之间的差值大于预设阈值时,所述方法还包括:
根据所述第N+1个数据和所述第N+1个数据的接收时间戳的读取位置,将所述第N+1个数据和所述第N+1个数据的接收时间戳重新关联存储于所述循环缓冲区中的所述读取位置。
6.一种终端,其特征在于,包括:
读取单元,用于从循环缓冲区中读取第N个数据和所述第N个数据的接收时间戳,所述N为大于或等于1的正整数;
所述读取单元,还用于从所述循环缓冲区中读取第N+1个数据和所述第N+1个数据的接收时间戳;
确定单元,用于当所述第N+1个数据的接收时间戳和所述第N个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成。
7.根据权利要求6所述的终端,其特征在于,所述终端还包括:
所述读取单元,还用于当所述第N+1个数据的接收时间戳和所述第N个数据的接收时间戳之间的差值小于或等于预设阈值时,从所述循环缓冲区中读取第N+2个数据和所述第N+2个数据的接收时间戳;
所述确定单元,还用于直至从所述循环缓冲区中读取的第N+k个数据的接收时间戳与从所述循环缓冲区中读取的第N+k-1个数据的接收时间戳之间的差值大于预设阈值时,确定一帧数据接收完成,所述k为大于或等于1的整数。
8.根据权利要求7所述的终端,其特征在于,所述终端还包括:
等待单元,用于等待预设时长;
执行单元,用于所述当所述预设时长内所述循环缓冲区存在数据时,执行所述的从所述循环缓冲区中读取第N+2个数据和所述第N+2个数据的接收时间戳的步骤;
所述确定单元,还用于当所述预设时长后所述循环缓冲区不存在数据时,确定一帧数据接收完成。
9.一种终端,其特征在于,包括处理器、收发器和存储器,所述处理器、所述收发器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-5任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的方法。
CN201810101037.1A 2018-01-31 2018-01-31 一种数据处理方法及终端 Active CN108306967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810101037.1A CN108306967B (zh) 2018-01-31 2018-01-31 一种数据处理方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810101037.1A CN108306967B (zh) 2018-01-31 2018-01-31 一种数据处理方法及终端

Publications (2)

Publication Number Publication Date
CN108306967A true CN108306967A (zh) 2018-07-20
CN108306967B CN108306967B (zh) 2021-04-06

Family

ID=62850877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810101037.1A Active CN108306967B (zh) 2018-01-31 2018-01-31 一种数据处理方法及终端

Country Status (1)

Country Link
CN (1) CN108306967B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110009206A (zh) * 2019-03-21 2019-07-12 五邑大学 一种定时语音评分方法、装置、设备和存储介质
CN110298001A (zh) * 2019-05-30 2019-10-01 北京奇艺世纪科技有限公司 日志数据包的获取方法和装置及计算机可读存储介质
CN111491129A (zh) * 2019-01-29 2020-08-04 深圳市共进电子股份有限公司 一种网络监控系统及路由器运行方法、装置及路由器
CN112131153A (zh) * 2020-09-15 2020-12-25 北京自动化控制设备研究所 一种使用arm处理器串口进行实时通讯的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010244A1 (en) * 2004-07-12 2006-01-12 Delzer Donald J FFT accelerated display mode
CN102104775A (zh) * 2009-12-18 2011-06-22 华为技术有限公司 一种帧率调整方法和装置
CN107040335A (zh) * 2016-01-04 2017-08-11 Ls 产电株式会社 串行通信中的帧接收监视方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010244A1 (en) * 2004-07-12 2006-01-12 Delzer Donald J FFT accelerated display mode
CN102104775A (zh) * 2009-12-18 2011-06-22 华为技术有限公司 一种帧率调整方法和装置
CN107040335A (zh) * 2016-01-04 2017-08-11 Ls 产电株式会社 串行通信中的帧接收监视方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111491129A (zh) * 2019-01-29 2020-08-04 深圳市共进电子股份有限公司 一种网络监控系统及路由器运行方法、装置及路由器
CN110009206A (zh) * 2019-03-21 2019-07-12 五邑大学 一种定时语音评分方法、装置、设备和存储介质
CN110298001A (zh) * 2019-05-30 2019-10-01 北京奇艺世纪科技有限公司 日志数据包的获取方法和装置及计算机可读存储介质
CN110298001B (zh) * 2019-05-30 2021-11-09 北京奇艺世纪科技有限公司 日志数据包的获取方法和装置及计算机可读存储介质
CN112131153A (zh) * 2020-09-15 2020-12-25 北京自动化控制设备研究所 一种使用arm处理器串口进行实时通讯的方法
CN112131153B (zh) * 2020-09-15 2024-04-02 北京自动化控制设备研究所 一种使用arm处理器串口进行实时通讯的方法

Also Published As

Publication number Publication date
CN108306967B (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN108306967A (zh) 一种数据处理方法及终端
US8032809B2 (en) Retransmission and delayed ACK timer management logic for TCP protocol
KR100819720B1 (ko) 온 칩 백그라운드 디버그 시스템 및 그 방법을 갖는데이터 처리 시스템
CN106708617B (zh) 一种基于Service的应用进程保活系统及保活方法
US9477478B2 (en) Multi level indirect predictor using confidence counter and program counter address filter scheme
US7836195B2 (en) Preserving packet order when migrating network flows between cores
US11210229B2 (en) Method, device and computer program product for data writing
CN111352659A (zh) 用于分支和获取流水线的误预测恢复设备和方法
TW201021597A (en) Method and system for optimizing power resources in wireless devices
CN111857304B (zh) 一种芯片的复位控制方法、装置、设备及存储介质
CN107426805A (zh) 无线节点设备、数据发送装置、数据发送方法及接收方法
CN111837444A (zh) 同步信号块传输方法、设备及存储介质
CN109413754A (zh) 一种信息接收、发送方法、终端及基站
CN115037658B (zh) 基于bpf的计量主站网络检测方法及计量主站
CN111552614A (zh) 一种cpu使用率的统计方法及装置
CN107870780A (zh) 数据处理装置和方法
CN112506722B (zh) 一种应用于交换机的自检复位方法及装置
CN110147254A (zh) 一种数据缓存处理方法、装置、设备及可读存储介质
CN102098215B (zh) 一种多应用收包的优先级管理方法
CN103107862A (zh) 逻辑器件及其mdio数据发送方法
CN108712494A (zh) 处理异步消息的方法、装置及设备
CN104639176A (zh) Bmc信号的异步解码器及方法
CN117132446A (zh) Gpu的数据访问处理方法、装置及存储介质
EP2351304A1 (en) Bit inversion for communication interface
EP2639702A1 (en) Circuit and method for software tracing

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