CN114710224A - 帧同步方法及装置、计算机可读介质、电子设备 - Google Patents
帧同步方法及装置、计算机可读介质、电子设备 Download PDFInfo
- Publication number
- CN114710224A CN114710224A CN202210195038.3A CN202210195038A CN114710224A CN 114710224 A CN114710224 A CN 114710224A CN 202210195038 A CN202210195038 A CN 202210195038A CN 114710224 A CN114710224 A CN 114710224A
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- index
- frame synchronization
- buffer area
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0602—Systems characterised by the synchronising information used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0602—Systems characterised by the synchronising information used
- H04J3/0605—Special codes used as synchronising signal
- H04J3/0608—Detectors therefor, e.g. correlators, state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
- H04L27/2601—Multicarrier modulation systems
- H04L27/2647—Arrangements specific to the receiver only
- H04L27/2655—Synchronisation arrangements
- H04L27/2656—Frame synchronisation, e.g. packet synchronisation, time division duplex [TDD] switching point detection or subframe synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本公开具体涉及计算机技术领域,具体涉及一种帧同步方法及装置、计算机可读介质、电子设备。所述帧同步方法包括:响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区;在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引;以及在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。本方法通过实现对数据帧整体的判断,有效的提高帧同步性能,并能提高帧同步的容错性能。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种帧同步方法、一种帧同步装置、一种计算机可读介质、一种电子设备。
背景技术
在数字时分多路通信系统中,为了能正确分离各路时隙信号,在发送端必须提供每帧的起始标记,在接收端检测并获取这一标志的过程称为帧同步。在现有的一些技术方案中,可以使用字符计数法、字节填充收尾界符法等方法来实现帧同步。但是,上述的方法均存在一定的缺陷。其中,字符计数法可靠性较差;而字节填充收尾界符法由于增加了转义字符检测,增加了传输数据容量,降低了传输性能。此外,例如比特填充的收尾标志法和物理编码违例法,需要采用特定比特编码方法才能采用,应用场景存在一定的限制。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种帧同步方法、一种帧同步装置、一种计算机可读介质、一种电子设备,能够实现基于数据链路层的高容错、高性能的帧同步方案。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种帧同步方法,包括:
响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区;
在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引;以及
在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
在本示例性实施方式中,所述响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区,包括:
响应于接收自对端设备的待处理数据包,进行初始化操作并进入第一数据处理状态;
在所述索引为零时,进入第二数据处理状态;
从所述数据接口读取预设长度的数据写入缓冲区,进入第三数据处理状态。
在本示例性实施方式中,所述预设长度为数据链路层的帧长;
所述读取预设长度的数据写入缓冲区,包括:
在所述缓冲区的第一预设位置为起点放置所述预设长度的数据。
在本示例性实施方式中,所述在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引,包括:
在第三数据处理状态下,在所述缓冲区中以所述第一目标位置为起点识别是否包含帧头标识;并在识别到所述帧头标识时,基于所述帧头标识在所述缓冲区的位置修改所述索引;以及
添加存在所述帧头的第一状态标识信息。
在本示例性实施方式中,所述在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步,包括:
在第三数据处理状态,在识别到存在所述帧头的第一状态标识信息,且索引为零时,判断所述缓冲区中的第二目标位置是否为帧尾;
在确定所述缓冲区中的第二目标位置为帧尾时,对所述帧头、帧尾进行校验;
在所述帧头和帧尾校验通过时,确定对所述待处理数据包的帧同步。
在本示例性实施方式中,所述对所述帧头、帧尾进行校验时,所述方法还包括:
基于所述缓冲区的数据计算校验和,并将该校验和与所述对端设备发送的校验和进行对比;
在该校验和,以及所述帧头和帧尾校均通过校验时,确定对所述待处理数据包的帧同步。
在本示例性实施方式中,所述方法还包括:
若所述帧头、帧尾、校验和中的任意一项校验失败时,在所述缓冲区以第三目标位置为起点识别帧头;
在识别到帧头时,根据所述帧头的当前位置修正所述索引,并进入第一数据处理状态;或者
在识别帧头失败时,将所述索引置零,并进入第一数据处理状态。
在本示例性实施方式中,所述方法还包括:
进入第一数据处理状态后,在识别所述索引不为零时,在所述缓冲区中将索引值对应位置前的数据删除;
进入第二数据处理状态,向数据接口读取长度为索引值的数据,并写入所述缓冲区。
在本示例性实施方式中,所述方法还包括:
进入第三数据处理状态,若在所述缓冲区中所述索引值对应的位置不存在所述帧头时,将所述索引置零;以及
进入第一数据处理状态。
在本示例性实施方式中,所述方法还包括:
在第三数据处理状态,在识别到存在所述帧头的第一状态标识信息,且索引小于零或大于数据链路层帧长的值时,将所述索引置零;以及
进入第一数据处理状态。
根据本公开的第二方面,提供一种帧同步装置,包括:
数据读取模块,用于响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区;
索引修正模块,用于在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引;以及
校验模块,用于在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
根据本公开的第三方面,提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的帧同步方法。
根据本公开的第四方面,提供一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的帧同步方法。
本公开的一种实施例所提供的帧同步方法,在接收到对端设备发送的待处理数据包后,可以首先识别对应的索引,在确定索引为零时向数据接口读取预设长度的数据写入缓冲区,并在缓冲区内的指定位置对帧头、帧尾进行识别和校验;在校验成功时完成在数据链路层的帧同步,从而实现对数据帧整体的判断,有效的提高帧同步性能。并且,在下一轮帧同步时,能够以当前的判断结果为基础执行,有效的提高了帧同步到容错性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种帧同步方法的示意图;
图2示意性示出本公开示例性实施例中一种系统结构的示意图;
图3示意性示出本公开示例性实施例中帧同步方法的流程示意图;
图4示意性示出本公开示例性实施例中一种帧同步装置的组成示意图;
图5示意性示出本公开示例性实施例中一种电子设备的结构示意图;
图6示意性示出本公开示例性实施例中一种程序产品的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在相关技术中,帧同步是指接收方应当能从接收到二进制比特流区分出帧的开始和帧的结束。现有的帧同步方法包括:字符计数法、字节填充首尾界符法、比特填充的收尾标志法和编码违例法,等等。其中,编码违例法采用特定比特编码方法时才能采用。字符计数法是用一个特殊字符来表示一帧的开始,然后用一个计数字段来表明该帧包含的字节数。当目标设备接收到该帧时,根据此字段提供的字节数,便可知道该帧的结束和下一帧的开始位。该方法缺陷是如果计数字段在传输中出差错,接收方便无法知道下一帧的开始位,这样就无法帧同步,这种方法虽然简单,但是可靠性比较差。字节填充收尾界符法是使用一些特殊字符来界定一帧的开始和结束。为了不将所传输数据出现的特殊字符被误判为帧的首尾界定符,在数据信息中这些特殊信息字符前增加一个转义字符,也就是发送方在数据信息的发现和标志帧头、帧尾以及转义字符相同的字符前加一个转义字符,当接收方接收到信息时,如果发现转义字符则将第一个转义字符去掉,还原原来数据信息。该方法提升数据传输可靠性,缺陷是增加转义字符检测,增加了传输数据容量,降低了传输性能。
针对上述的现有技术的缺点和不足,本示例实施方式中提供了一种基于数据链路层的帧同步方法,。参考图1中所示,上述的帧同步方法可以包括以下步骤:
S11,响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区;
S12,在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引;以及
在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步;
S13,在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
本示例实施方式所提供的帧同步方法中,可以应用于数据链路层,在接收到对端设备发送的待处理数据包后,可以首先识别对应的索引,在确定索引为零时向数据接口读取预设长度的数据写入缓冲区,并在缓冲区内的指定位置对帧头、帧尾进行识别和校验;在校验成功时完成在数据链路层的帧同步;一方面,能够实现对数据帧整体的判断,有效的提高帧同步性能;另一方面,在下一轮帧同步时,能够以当前的判断结果为基础执行,有效的提高了帧同步到容错性。
下面,将结合附图及实施例对本示例实施方式中的帧同步方法的各个步骤进行更详细的说明。
在步骤S11中,响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区。
本示例实施方式中,上述的方法可以应用于终端设备。参考图2所示,处于通讯状态的第一终端设备201和第二终端设备202之间可以进行数据交互。其中,上述的终端设备可以是手机、平板电脑、笔记本电脑等智能终端设备;或者,也可以是用于处理实时数据、离线数据的服务器。在以第一终端设备为执行主体时,则第二终端设备为其对端设备。
具体而言,上述的步骤S11可以包括:
步骤S111,响应于接收自对端设备的待处理数据包,进行初始化操作并进入第一数据处理状态;
步骤S112,在所述索引为零时,进入第二数据处理状态;
步骤S113,从所述数据接口读取预设长度的数据写入缓冲区,进入第三数据处理状态。
举例来说,以第一终端设备为例,在接收到第二终端设备的数据流后,可以将其作为待处理数据包,首先需要进行帧同步操作。在数据链路层,第一终端设备可以首先进行初始化操作。具体的,初始化操作可以包括对缓冲区、索引index的初始;其中,可以初始化缓冲区的长度为数据链路层数据帧的长度,初始化index为零,配置是否存在帧头的状态标识信息为否;其中,index可以是缓冲区的索引,用于表示帧头在缓冲区中的位置;可以利用第一状态标识信息标识当前缓冲区中存在帧头,利用第二状态标识信息标识当前缓冲区中不存在帧头;缓冲区可以是用于存储接口数据的缓存。
在初始化完成后,可以执行并进入第一数据处理状态;其中,第一数据处理状态可以是终端的移动数据态。在该状态在,首先判断index是否为零。在读取index为零时,执行并进入第二数据处理状态;其中,第二数据处理状态可以是终端的读取数据态。
在读取数据态时,若当前index为零,则向数据接口读取字节为数据链路层帧长的数据放入缓冲区。具体而言,上述的预设长度可以为数据链路层的帧长;所述读取预设长度的数据写入缓冲区可以包括:在所述缓冲区的第一预设位置为起点放置所述预设长度的数据。
其中,数据接口可以是第一终端设备与第二终端设备之间进行数据交互,且需要进行帧同步操作的数据接口。即,向数据接口读取固定长度的数据将当前为空的缓冲区填满。上述的第一预设位置可以为缓冲区的第一个字节的位置。即,当前,在缓冲区中,从第一个字节开始写入接口数据。
在数据写入完成后,便可以执行并进入第三数据处理状态;其中,第三数据处理状态可以为帧同步检测态。
在步骤S12中,在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引。
本示例实施方式中,具体而言,上述的步骤S12可以包括:
步骤S121,在第三数据处理状态下,在所述缓冲区中以所述第一目标位置为起点识别是否包含帧头标识;并在识别到所述帧头标识时,基于所述帧头标识在所述缓冲区的位置修改所述索引;以及
步骤S122,添加存在所述帧头的第一状态标识信息。
具体的,在帧同步检测态,从缓冲区的第一字节开始找帧头标识,如果找到帧头,则用index记录当前帧头在缓冲区的位置,并利用bFonud标识为存在且找到帧头,即为缓冲区添加第一状态标识信息。
在步骤S13中,在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
本示例实施方式中,具体而言,上述的步骤S13可以包括:
步骤S131,在第三数据处理状态,在识别到存在所述帧头的第一状态标识信息,且索引为零时,判断所述缓冲区中的第二目标位置是否为帧尾;
步骤S132,在确定所述缓冲区中的第二目标位置为帧尾时,对所述帧头、帧尾进行校验;
步骤S133,在所述帧头和帧尾校验通过时,确定对所述待处理数据包的帧同步。
具体的,上述的第二目标位置可以为缓冲区的最后一个字节。举例来说,在帧同步检测态,如果bFound标识为找到帧头,并且index值为零,则识别并检测数据缓冲区最后一个字节是否为帧尾。若最后一个字节是真伪,则可以对帧头、帧尾进行校验。
此外,在进行校验时,上述的方法还可以包括:基于所述缓冲区的数据计算校验和,并将该校验和与所述对端设备发送的校验和进行对比;在该校验和,以及所述帧头和帧尾校均通过校验时,确定对所述待处理数据包的帧同步。
举例来说,在对帧头、帧尾进行校验时,还可以对校验和进行校验。例如,一种常用的帧格式包括依次的:帧头、原地址、目标地址、类型、数据字节数、数据域、校验和、帧尾。
在对缓冲区中的数据进行校验时,只有在帧头、校验和、帧尾全部校验成功时,帧同步成功,此时可以将该包数据发送给上层应用。
此外,在本公开的一些示例性实施方式中,在进行校验时,上述方法还可以包括:
步骤S21,若所述帧头、帧尾、校验和中的任意一项校验失败时,在所述缓冲区以第三目标位置为起点识别帧头;
步骤S22,在识别到帧头时,根据所述帧头的当前位置修正所述索引,并进入第一数据处理状态;或者
步骤S23,在识别帧头失败时,将所述索引置零,并进入第一数据处理状态。
具体的,在帧同步检测态,若bFound标识为找到帧头,并且index值为零,检测帧头、帧尾和校验和,若存在任意一个或多个校验不成功,则帧同步不成功。此时,可以从数据缓冲区的第二个字节开始查找帧头,如果找到则置index为数据缓冲区第一个字节距离找到帧头字节数,并进入移动数据态,也就是进入下一轮数据链路层通讯帧同步检测过程。
或者,在帧同步检测态,若bFound标识为找到帧头,并且index值为零,检测帧头、帧尾和校验和,若存在任意一个或多个校验不成功,则帧同步不成功。此时,可以从数据缓冲区的第二个字节开始查找帧头,若未找到帧头,即当前的缓冲区内没有帧头数据,则将index置为零,并进入移动数据态,也就是进入下一轮数据链路层帧同步检测过程。
基于上述内容,在本公开的一些示例性实施方式中,上述的方法还可以包括:
步骤S31,进入第一数据处理状态后,在识别所述索引不为零时,在所述缓冲区中将索引值对应位置前的数据删除;
步骤S32,进入第二数据处理状态,向数据接口读取长度为索引值的数据,并写入所述缓冲区。
具体而言,第一终端设备在初始化后,或者在其他数据处理阶段进入移动数据态后,若当前index不为零,即当前缓冲区中存在数据,并识别到帧头,则可以将缓冲区中的帧头位置之前的数据删除,将帧头移动至缓冲区的第一个字节位置。例如,在缓冲区中向左移动数据,移动数据的个数为帧长-索引值,移动的长度为索引值数量的字节,即,将帧头及后面的数据向前移动至起始位置。同步的,向数据接口读取长度为索引值大小的字节的数据,并写入缓冲区剩余的字节位置,并进入帧同步检测态,进行后续的验证程序。
基于上述内容,在本公开的一些示例性实施方式中,上述的方法还可以包括:
步骤S41,进入第三数据处理状态,若在所述缓冲区中所述索引值对应的位置不存在所述帧头时,将所述索引置零;以及
步骤S42,进入第一数据处理状态。
具体而言,在进入帧同步检测态后,若索引值对应的位置,即bFound标识对应的字节位置未识别到帧头,则表示当前索引识别的结果存在错误,需要更正该错误,进入移动数据态移动数据态,将index值置为零,并重新在缓冲区中从第一个字节位置开始识别帧头。若识别到帧头,则更正对应的index。
在本公开的一些示例性实施方式中,上述的方法还可以包括:
步骤S51,在第三数据处理状态,在识别到存在所述帧头的第一状态标识信息,且索引小于零或大于数据链路层帧长的值时,将所述索引置零;以及
步骤S52,进入第一数据处理状态。
具体而言,在帧同步检测态,bFound标识为找到帧头,并且index的值不为零,但index的值小于零,或者大于数据链路层帧长的数值,则表示当前的索引值存在错误;此时,将索引值更正为零,并进入移动数据态,并重新在缓冲区中从第一个字节位置开始识别帧头。若识别到帧头,则更正对应的index。
或者,若bFound标识为找到帧头,并且index的值为零到数据链路层帧长的数值直接的数值,则维持index值不变,进入移动数据态,进行下一轮数据链路层帧同步检测过程。
本公开实施例所提供的基于数据链路层的帧同步方法,参考图3所示,初始化帧头位置index为零,缓冲区BUF的长度为帧长,假设帧长为FRAMELEN(数据链路层帧长),是否找到帧头的标识bFound为没找到。之后,进入移动数据态,判断index是否为零;如果为零,进入读取数据态;或者,如果index不为零,则向左移动缓冲区数据个数为FRAMELEN-index,移动字节长度为index;进入读取数据态。在读取数据态时,如果index为零,则从数据接口读取字节数为FRAMELEN的数据,并将读取数据放入缓冲区,从缓冲区的第一个字节开始放置;或者,如果index大于零且小于FRAMELEN,则从数据接口读取字节长度为index;之后进入帧同步检测态。在帧同步检测态,从缓冲区BUF的第一字节开始寻找帧头标识,如果找到帧头,则用index记录帧头在当前缓冲区位置,并标识bFound为找到。在帧同步检测态,如果bFound标识为没有找到帧头,则置index为零,进入移动数据态,也就是进行下一轮数据链路层帧同步检测过程。或者,在帧同步检测态,如果bFound标识为找到帧头,并且index的值为零,则检测数据缓冲区BUF最后一个字节是否为帧尾,并计算缓冲区数据除帧头、帧尾,以及校验和,将计算出校验和和对端发送的校验和进行比较,在帧头、帧尾和校验和均检测通过时,则帧同步成功,将该包数据发送给上层应用。之后,再次进入移动数据态,也就是进行下一轮数据链路层帧同步检测过程。或者,在帧同步检测态,如果bFound标识为找到帧头,并且index的值为零,若检测帧头、帧尾和校验和中至少有一个检测不成功,则帧同步不成功。然后,从数据缓冲区第二个字节开始查找帧头,如果找到则置index为数据缓冲区第一个字节距离找到帧头字节数,并进入移动数据态,也就是进入下一轮数据链路层通讯帧同步检测过程。或者,在帧同步检测态,如果bFound标识为找到帧头,并且index的值不为零,且index的值小于零或者大于FRAMELEN,则置index为零,否则维持index值不变;并进入移动数据态,也就是进入下一轮数据链路层帧同步检测过程。
对于处于通讯状态的终端设备,需要对当前传输的数据包进行检测,判断是否为一个完整数据包时,进行初始化,进入数据移动态。在数据移动态,index的值表示当前数据缓冲区BUF是否有帧头及帧头位置,如果index值为零,表示数据缓冲区BUF无帧头;如果index的值不为零,表示当前数据缓冲区BUF有帧头,并且帧头位置是缓冲区BUF的第index个字节为帧头,则向左滑动缓冲区数据,将数据缓冲区第index个字节位置开始的数据开始左滑动index个字节数,滑动字节总数为FRAMELEN-index。移动数据完成,进入数据读取状态。在数据读取态,如果index的值为零,则从通信端口读取FRAMELEN长度数据,并将数据放入数据缓冲区BUF;如果index的值不为零,则从通信端口读取index长度数据,并将数据放入数据缓冲BUF的FRAMELEN-index位置处,读取数据完成,进入帧同步检测态。在帧同步检测态,初始化bFound为未找到帧头,从数据缓冲区第一个字节开始查找帧头,如果找到则标志bFound为找到帧头,并且置index为当前帧头在数据缓冲区BUF的位置。没有找到则置index为零。在帧同步检测态,如果找到帧头则index表示帧头位置;当帧头不是第一个字节则进入数据移动态,如果是第一个字节,如果帧同步成功index置零;如果帧同步不成功,从第二位置开始寻找帧头位置,进入数据移动态;如果没有找到帧头则index值为零,表示当前数据缓冲区BUF无帧头,进入数据移动态。
本公开的方法通过整体判断,具体是通过对帧头、帧尾和校验和进行判断,如果全部正确则会判断同步成功一个帧数据包,大大提供帧同步性能。同时,在帧同步失败时,继续检测本包数据下一个帧头,并读取适当长度,进行下一轮帧同步,在高性能基础上提供了帧同步容错率。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,参考图4所示,本示例的实施方式中还提供一种帧同步装置40,包括:数据读取模块401、索引修正模块402、校验模块403。其中,
所述数据读取模块401可以用于响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区。
所述索引修正模块402可以用于在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引。
所述校验模块403可以用于在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
上述的基于数据链路层的帧同步装置中各模块的具体细节已经在对应的帧同步方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
图5示出了适于用来实现本发明实施例的电子设备的示意图。
需要说明的是,图5示出的电子设备500仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500包括中央处理单元(Central Processing Unit,CPU)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从储存部分508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
举例来说,上述的电子设备可以是智能穿戴设备、智能终端等,例如智能手环、智能手表或者手机等电子设备。
特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的各种功能。
具体来说,上述的电子设备可以是手机、平板电脑或者笔记本电脑等智能移动终端设备。或者,上述的电子设备也可以是台式电脑等智能终端设备。
需要说明的是,本发明实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
需要说明的是,作为另一方面,参考图6所示,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图1所示的各个步骤。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (13)
1.一种帧同步方法,其特征在于,所述方法包括:
响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区;
在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引;以及
在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
2.根据权利要求1所述的帧同步方法,其特征在于,所述响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区,包括:
响应于接收自对端设备的待处理数据包,进行初始化操作并进入第一数据处理状态;
在所述索引为零时,进入第二数据处理状态;
从所述数据接口读取预设长度的数据写入缓冲区,进入第三数据处理状态。
3.根据权利要求2所述的帧同步方法,其特征在于,所述预设长度为数据链路层的帧长;
所述读取预设长度的数据写入缓冲区,包括:
在所述缓冲区的第一预设位置为起点放置所述预设长度的数据。
4.根据权利要求1所述的帧同步方法,其特征在于,所述在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引,包括:
在第三数据处理状态下,在所述缓冲区中以所述第一目标位置为起点识别是否包含帧头标识;并在识别到所述帧头标识时,基于所述帧头标识在所述缓冲区的位置修改所述索引;以及
添加存在所述帧头的第一状态标识信息。
5.根据权利要求1或4所述的帧同步方法,其特征在于,所述在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步,包括:
在第三数据处理状态,在识别到存在所述帧头的第一状态标识信息,且索引为零时,判断所述缓冲区中的第二目标位置是否为帧尾;
在确定所述缓冲区中的第二目标位置为帧尾时,对所述帧头、帧尾进行校验;
在所述帧头和帧尾校验通过时,确定对所述待处理数据包的帧同步。
6.根据权利要求5所述的帧同步方法,其特征在于,所述对所述帧头、帧尾进行校验时,所述方法还包括:
基于所述缓冲区的数据计算校验和,并将该校验和与所述对端设备发送的校验和进行对比;
在该校验和,以及所述帧头和帧尾校均通过校验时,确定对所述待处理数据包的帧同步。
7.根据权利要求6所述的帧同步方法,其特征在于,所述方法还包括:
若所述帧头、帧尾、校验和中的任意一项校验失败时,在所述缓冲区以第三目标位置为起点识别帧头;
在识别到帧头时,根据所述帧头的当前位置修正所述索引,并进入第一数据处理状态;或者
在识别帧头失败时,将所述索引置零,并进入第一数据处理状态。
8.根据权利要求2所述的帧同步方法,其特征在于,所述方法还包括:
进入第一数据处理状态后,在识别所述索引不为零时,在所述缓冲区中将索引值对应位置前的数据删除;
进入第二数据处理状态,向数据接口读取长度为索引值的数据,并写入所述缓冲区。
9.根据权利要求8所述的帧同步方法,其特征在于,所述方法还包括:
进入第三数据处理状态,若在所述缓冲区中所述索引值对应的位置不存在所述帧头时,将所述索引置零;以及
进入第一数据处理状态。
10.根据权利要求4所述的帧同步方法,其特征在于,所述方法还包括:
在第三数据处理状态,在识别到存在所述帧头的第一状态标识信息,且索引小于零或大于数据链路层帧长的值时,将所述索引置零;以及
进入第一数据处理状态。
11.一种帧同步装置,其特征在于,包括:
数据读取模块,用于响应于接收自对端设备的待处理数据包,在识别对应的索引为零时,向数据接口读取预设长度的数据写入缓冲区;
索引修正模块,用于在所述缓冲区中从第一目标位置读取数据,并在确定帧头时,基于所述帧头在所述缓冲区的位置修正所述索引;以及
校验模块,用于在所述缓冲区中在第二目标位置读取数据,并在确定帧尾时,对所述帧头和帧尾进行校验,在校验通过时完成对所述待处理数据包的帧同步。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的帧同步方法。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至10中任一项所述的帧同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210195038.3A CN114710224A (zh) | 2022-03-01 | 2022-03-01 | 帧同步方法及装置、计算机可读介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210195038.3A CN114710224A (zh) | 2022-03-01 | 2022-03-01 | 帧同步方法及装置、计算机可读介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114710224A true CN114710224A (zh) | 2022-07-05 |
Family
ID=82166237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210195038.3A Pending CN114710224A (zh) | 2022-03-01 | 2022-03-01 | 帧同步方法及装置、计算机可读介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114710224A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115334159A (zh) * | 2022-08-11 | 2022-11-11 | 北京百度网讯科技有限公司 | 处理流式数据的方法、装置、设备和介质 |
CN115623095A (zh) * | 2022-12-12 | 2023-01-17 | 苏州联讯仪器股份有限公司 | 一种数据包提取方法、装置、设备及介质 |
CN116506326A (zh) * | 2023-06-21 | 2023-07-28 | 季华实验室 | 子线程数据接收方法、数据监控方法、上位机和机器人 |
CN117040590A (zh) * | 2023-08-08 | 2023-11-10 | 北京和德宇航技术有限公司 | 一种数据帧确定方法、装置、设备及存储介质 |
CN117336395A (zh) * | 2023-12-01 | 2024-01-02 | 杭州乾景科技有限公司 | 一种井下通讯数据处理方法、装置及电子设备 |
-
2022
- 2022-03-01 CN CN202210195038.3A patent/CN114710224A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115334159A (zh) * | 2022-08-11 | 2022-11-11 | 北京百度网讯科技有限公司 | 处理流式数据的方法、装置、设备和介质 |
CN115334159B (zh) * | 2022-08-11 | 2023-07-21 | 北京百度网讯科技有限公司 | 处理流式数据的方法、装置、设备和介质 |
CN115623095A (zh) * | 2022-12-12 | 2023-01-17 | 苏州联讯仪器股份有限公司 | 一种数据包提取方法、装置、设备及介质 |
CN115623095B (zh) * | 2022-12-12 | 2023-04-07 | 苏州联讯仪器股份有限公司 | 一种数据包提取方法、装置、设备及介质 |
CN116506326A (zh) * | 2023-06-21 | 2023-07-28 | 季华实验室 | 子线程数据接收方法、数据监控方法、上位机和机器人 |
CN116506326B (zh) * | 2023-06-21 | 2023-11-24 | 季华实验室 | 子线程数据接收方法、数据监控方法、上位机和机器人 |
CN117040590A (zh) * | 2023-08-08 | 2023-11-10 | 北京和德宇航技术有限公司 | 一种数据帧确定方法、装置、设备及存储介质 |
CN117040590B (zh) * | 2023-08-08 | 2024-06-25 | 北京和德宇航技术有限公司 | 一种数据帧确定方法、装置、设备及存储介质 |
CN117336395A (zh) * | 2023-12-01 | 2024-01-02 | 杭州乾景科技有限公司 | 一种井下通讯数据处理方法、装置及电子设备 |
CN117336395B (zh) * | 2023-12-01 | 2024-03-12 | 杭州乾景科技有限公司 | 一种井下通讯数据处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114710224A (zh) | 帧同步方法及装置、计算机可读介质、电子设备 | |
CN111930676B (zh) | 多处理器间的通信方法、装置、系统及存储介质 | |
CN110019873B (zh) | 人脸数据处理方法、装置及设备 | |
CN112822260B (zh) | 文件传输方法及装置、电子设备、存储介质 | |
CN113626416A (zh) | 数据校验的方法、装置、计算设备和存储介质 | |
CN112558875A (zh) | 数据校验方法、装置、电子设备及存储介质 | |
CN109743133B (zh) | 数据对账方法及装置 | |
CN112433885A (zh) | 区块链共识处理方法及装置、电子设备、存储介质 | |
US10014981B2 (en) | Transmission method and device based on management data input/output multi-source agreements | |
CN111835808A (zh) | 数据存储方法及装置、数据读取方法及装置、存储介质 | |
US20220171749A1 (en) | System and Process for Data Enrichment | |
CN110826616B (zh) | 信息处理方法及装置、电子设备、存储介质 | |
CN110609822B (zh) | 数据流处理方法、设备和计算机程序产品 | |
CN113807056B (zh) | 一种文档名称序号纠错方法、装置和设备 | |
US20160253374A1 (en) | Data file writing method and system, and data file reading method and system | |
CN114979307A (zh) | 通信协议的解析方法、智能终端及存储介质 | |
CN109918231B (zh) | 数据重整的异常修复方法、装置、设备和存储介质 | |
US20130142063A1 (en) | Verifying the functionality of an integrated circuit | |
CN110896391B (zh) | 一种报文处理方法和装置 | |
CN115633044B (zh) | 报文的处理方法、装置、电子设备及存储介质 | |
CN118034993B (zh) | 存储数据的保护方法、装置、电子设备及存储介质 | |
CN117271202B (zh) | 多遍重发数据最优提取方法 | |
CN114679425B (zh) | 一种5g网络下的报文处理方法、网络设备及存储介质 | |
US9641287B2 (en) | Methods and apparatus for high-integrity data transfer with preemptive blocking | |
CN116506326B (zh) | 子线程数据接收方法、数据监控方法、上位机和机器人 |
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 |