CN102098333B - 一种hdlc数据处理的方法和*** - Google Patents

一种hdlc数据处理的方法和*** Download PDF

Info

Publication number
CN102098333B
CN102098333B CN 201010617473 CN201010617473A CN102098333B CN 102098333 B CN102098333 B CN 102098333B CN 201010617473 CN201010617473 CN 201010617473 CN 201010617473 A CN201010617473 A CN 201010617473A CN 102098333 B CN102098333 B CN 102098333B
Authority
CN
China
Prior art keywords
data
bit
bit data
last
company
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.)
Expired - Fee Related
Application number
CN 201010617473
Other languages
English (en)
Other versions
CN102098333A (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.)
Beijing Zhongchuang Telecom Test Co Ltd
Original Assignee
Beijing Zhongchuang Telecom Test 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 Beijing Zhongchuang Telecom Test Co Ltd filed Critical Beijing Zhongchuang Telecom Test Co Ltd
Priority to CN 201010617473 priority Critical patent/CN102098333B/zh
Publication of CN102098333A publication Critical patent/CN102098333A/zh
Application granted granted Critical
Publication of CN102098333B publication Critical patent/CN102098333B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种HDLC数据处理的方法和***,该方法包括:读取接收的当前八比特数据并统计其连一数;提取预先保存的与当前八比特数据相同的通道中前一八比特数据及其状态信息;依据当前八比特数据、当前八比特数据的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标示出状态标识信息;根据前一八比特数据的标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;将去插零操作后得到的净荷数据进行合包,以还原成原数据包。本发明的方法每个处理周期内可以处理八比特的数据量,处理的数据量增加,提高了数据处理的效率。

Description

一种HDLC数据处理的方法和***
技术领域
本发明涉及通信技术领域,更具体的说是涉及一种HDLC数据处理的方法和***。
背景技术
高级数据链路控制(HDLC,High-level Data Link)协议是面向比特的数据链路层协议,是通信领域中应用最广泛的协议之一,。在HDLC协议规定的通信方式中,所有信息都是以帧的形式发送的。
HDLC的帧格式如图1所示,它包括:标志序列(F)、地址字段(A)、控制字段(C)、信息字段(I)和帧校验字段(FCS)。HDLC中采用“01111110”作为标志序列,称为F标志。HDLC协议规定所有的帧都必须以F标志开始和结束。接收方可以通过搜索“01111110”来探知帧的开始和结束,以此建立帧同步。为了确保F标志字段是独一无二的,发送方在发送信息时采用“0”比特***技术,即发送方在发送除标志字符外的所有信息时,只要遇到连续的5个“1”,就自动***一个“0”;反之,接收方在接收数据时,只要遇到连续的5个“1”,就自动将其后的“0”删掉,恢复原来的数据。
基于HDLC协议传输数据时,数据接收方需要对接收的数据进行处理以还原出原始的数据。接收方对数据进行的处理包括:数据预处理和合包操作,其中数据预处理包括:帧标识检测和去插零操作。接收端接收的数据会保存在先进先出存储器(fifo,first in first out)中,进行数据预处理的时,从fifo中读取若干比特的数据,并进行并串转化,从该若干比特的数据中首个比特数据与之前接收到的该通道中末尾未去插零的数据组成八比特数据串,进行连1数检测,以便检测帧标识,并确定是否需进行去插零操作。然后再依次对当前接收到的若干比特的数据中的后续比特数据逐个进行相同的帧标识检测,以及去插零操作。最后,进行串并转换后,当预处理后的数据满足合包条件时,进行合包还原为原始数据包。
但由于现有基于HDLC的数据接收方,接收数据进行处理时需要逐个比特的进行连1检测,完成帧标识检测以及去插零操作,因此每个处理周期只能处理一个比特的数据,数据处理效率较低。
发明内容
有鉴于此,本发明提供一种HDLC数据处理的方法和***,能提高HDLC数据处理的效率。
为实现上述目的,本发明提供如下技术方案:一种HDLC数据处理的方法,包括:
读取接收的当前八比特数据,统计该当前八比特数据的连一数其中,所述当前八比特数据的连一数包括:所述当前八比特数据从低到高的连一数;
参考当前八比特数据所属的通道,提取预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一八比特数据的从高到低连一数和前一八比特数据的状态标识信息;
依据当前八比特数据、当前八比特数据从低到高的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标示出状态标识信息;
根据前一八比特数据的状态标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;
将去插零操作后得到的净荷数据进行合包,以还原成原数据包。
优选的,所述前一八比特数据的标识信息包括:前一八比特数据的尾包指示信息、和\或数据状态信息。
优选的,所述依据当前八比特数据、当前八比特数据的连一数和前一八比特数据的从高到低的连一数,进行帧标识检测,并根据检测结果给出状态标识信息,包括:
依据当前八比特数据、当前八比特数据的从低到高连一数和前一八比特数据的从高到低的连一数,检测当前八比特数据,以及当前八比特数据和前一八比特数据组成的数据流中的连一数,如果检测到六连一,则检测到帧头或帧尾,为该帧头或帧尾标示出相应的尾包信号;
如果检测到七个或七个以上的连一数,则检测到帧终止,并为该帧终止标示出相应的尾包信号和帧终止信号;
如果没有检测到六个或六个以上的连一,则确定当前八比特数据为普通数据,并为当前数据标示出数据信号。
优选的,所述根据前一八比特数据的状态标识信息和当前八比特数据的状态标识信息,进行五连一检测,包括:
依据前一八比特数据的尾包信号、帧终止信号或数据信号,以及当前数据的尾包信号、帧终止信号或数据信号,判断当前数据和前一数据是否属于同一数据包,如果是,则对当前八比特数据和前一八比特数据组成的数据流、以及当前八比特数据进行五连一检测;如果否,则仅对当前八比特数据进行五连一检测。
优选的,所述统计该当前八比特数据的连一数,还包括:统计当前八比特数据从高到低的连一数;
所述将去插零操作后得到的净荷数据进行合包,以还原成原数据包之前还包括:
将当前八比特数据的从高到低的连一数、当前八比特数据的状态标识信息保存到中间处理状态,以便当处理下一八比特数据时,读取该中间处理状态的信息,进行帧标识检测和去插零操作。
对应本发明的方法,本发明还提供了一种HDLC数据处理的***,其特征在于,包括:
统计单元,用于读取接收的当前八比特数据,统计该当前八比特数据的连一数,其中,所述当前八比特数据的连一数包括:所述当前八比特数据从低到高的连一数;
信息提取单元,用于参考当前八比特数据所属的通道,提取预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一八比特数据的从高到低连一数和前一八比特数据的状态标识信息;
帧标识检测单元,用于依据当前八比特数据、当前八比特数据从低到高的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标示出状态标识信息;
五连一检测单元,用于根据前一八比特数据的状态标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;
合包单元,用于将去插零操作后得到的净荷数据进行合包,以还原成原数据包。
优选的,所述前一八比特数据的标识信息包括:前一八比特数据的尾包指示信息、和\或数据状态信息。
优选的,所述帧标识检测单元具体包括:用于依据当前八比特数据、当前八比特数据的从低到高连一数和前一八比特数据的从高到低的连一数,检测当前八比特数据,以及当前八比特数据和前一八比特数据组成的数据流中的连一数,如果检测到六连一,则检测到帧头或帧尾,为该帧头或帧尾标示出相应的尾包信号;
如果检测到七个或七个以上的连一数,则检测到帧终止,并为该帧终止标示出相应的尾包信号和帧终止信号;
如果没有检测到六个或六个以上的连一,则确定当前八比特数据为普通数据,并为当前数据标示出数据信号。
优选的,所述五连一检测单元包括:五连一检测子单元,用于依据前一八比特数据的尾包信号、帧终止信号或数据信号,以及当前数据的尾包信号、帧终止信号或数据信号,判断当前数据和前一数据是否属于同一数据包,如果是,则对当前八比特数据和前一八比特数据组成的数据流、以及当前八比特数据进行五连一检测;如果否,则仅对当前八比特数据进行五连一检测。
优选的,所述统计单元还包括:第二统计单元,用于统计当前数据从高到低的连一数;
所述***还包括:中间状态保存单元,用于将当前八比特数据的从高到低的连一数、当前八比特数据的状态标识信息保存到中间处理状态,以便当处理下一八比特数据时,读取该中间处理状态的信息,进行帧标识检测和去插零操作。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种HDLC数据处理的方法和***,该方法不需要对通道内的数据进行串并转换,直接统计读取到的某一通道八比特数据的连一数,并提取该通道中上一八比特数据的从高到低连一数和状态标识信息,依据当前八比特数据、当前八比特数据的连一数和前一八比特数据的连一数,进行帧标识检测,并给出状态标识信息,然后利用当前八比特数据的状态标识信息和前一八比特数据的状态标识信息进行相应的五连一检测,以便完成去插零操作,并进行后续的合包操作。由于本发明不需要对通道内的并行8比特数据进行并串转换,直接统计读取的八比特数据具有的连一数,然后对该八比特数据整体进行帧标识检测和五连一检测,因此每个处理周期内可以处理八比特的数据量,处理的数据量增加,提高了数据处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一种HDLC数据处理的方法的步骤流程图;
图2为本发明另一实施例的一种HDLC数据处理的方法的步骤流程图;
图3为本发明实施例一种HDLC数据处理的***的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例一种HDLC数据处理的方法的步骤流程图,该方法包括:
步骤S101:读取接收的当前八比特数据,统计该当前八比特数据的连一数;
基于HDLC的数据接收端在数据处理的前端接收多个端口的数据,经过现场可编程逻辑门阵列(FPGA,Field Programmable Logic_Gate Array)芯片仲裁处理后成为一路信号。也就是说,接收端通过多个端口接收数据,然后通过FPGA仲裁处理后成为一路,再按顺序处理每个端口的数据。
一般接收端接收的数据会保存在先进先出存储器(fifo,first in first out)中,再从fifo中读取数据进行处理。
现有技术中采用逐个比特的进行连一数检测,造成帧标识检测和五连一检测过程中工作带宽较小,即,一个处理周期内只能处理一个比特的数据,处理效率较低。为了克服现有技术中的缺陷,本发明直接统计该当前八比特数据的连一数,以便后续对该当前八比特数据进行帧标识检测和五连一检测(目的是进行去插零操作)时无需逐个比特的检测。也就是说,接收到某个通道中的数据为八比特,则只需统计该数据中这八比特数据中的连一数,以便后续对这八比特数据一次完成帧标识检测和去插零操作。
其中,数据都是以“0”、“1”的形式发送和接收的。F帧为“01111110”代表一帧的开始和结束,在数据的发送中,为了确保F标志字段是独一无二的,发送方在发送信息时采用“0”比特***技术,即发送方在发送除标志字符外的所有信息时,只要遇到连续的5个“1”,就自动***一个“0”。因此接收当需要判断数据流中的连一数,以判断当前八比特数据和前一八比特数据相接处,以及当前八比特数据本身的连一数。
为了能判断当前八比特数据和前一八比特数据相接处连续为一的比特数据,统计当前八比特数据的连一数包括:统计当前八比特数据从低到高的连一数,即该八比特数据从低位到高位的连一数。例如当前八比特数据为从高位到低位依次为“1110 0101”,则该数据从低到高的连一数为3。
为了能为后续接收到的下一八比特数据的检测提供依据,统计当前八比特数据的连一数还应包括:统计当前八比特数据从高到低的连一数。仍以上面的数据“1110 0101”为例,该数据从高到低的连一数为1。
步骤S102:根据当前八比特数据所属的通道,提取预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一数据的从高到低连一数和前一八比特数据的状态标识信息;
其中fifo中的数据是由很多数据组合在一起的,里面包括要处理的数据和它对应的通道号等信息。由于每个端口包含多个通道,各个通道之间是通过通道号来区分的,根据当前接收到的八比特数据的通道号,可以知道当前八比特数据所属的通道,然后依据该通道号找到预先保存的该通道中前一八比特数据和前一八比特数据相关状态信息。该前一八比特数据可以保存在中间处理状态中,是前一八比特数据进行去插零操作前的相关信息。其中前一八比特数据的状态信息包括:前一八比特数据从高到低的连一数和前一八比特数据的状态标识信息。
其中,状态标识信息是用于表明某八比特数据为帧头、帧尾、帧终止或仅仅为普通的八比特数据的信息。状态标识信息可以包括:尾包信号、帧终止信号、和/或数据信号。例如,当某八比特数据流中存在6个连1的比特数据,则表明检测到帧头或帧尾,则需要标示出尾包信号(last_packet_sign);当某八比特数据流中存在7个或7个以上连1的比特数据,则检测到帧终止,则标示出尾包信号(last_packet_sign)和帧终止信号(status_reg=1)。如果某八比特数据流既不是帧头(帧尾)又不是帧终止,则该八比特数据流为普通数据字段,标示出数据信号。也就是说,根据前一八比特数据的标识信息可以判断出前一八比特数据为帧头(帧尾)、帧终止或普通数据字段。
步骤S103:依据当前八比特数据、当前八比特数据的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标出状态标识信息;
其中,帧标识检测为检测多个比特数据组成的数据流中连续为一的比特数目,根据该连续为一的比特数目,判断数据流中是否存在帧头、帧尾或帧终止。
具体的检测过程为:检测当前八比特数据本身的连一数,并依据当前八比特数据的从低到高连一数和前一八比特数据的从高到低的连一数,确定当前八比特数据和前一八比特数据组成的数据流中的连一数,判断所述数据流中和当前八比特数据中是否存在六连一,如果是,则检测到帧头或帧尾,为该帧头或帧尾标示出相应的尾包信号;如果否,则判断是否检测到七个或七个以上的连一数,如果是,则检测到帧终止,并为该帧终止标示出相应的尾包信号和帧终止信号;如果否,则确定当前八比特数据为普通数据,并为当前数据标示出数据信号。
也就是说,进行帧标识检测时,需要检测当前八比特数据,以及当前八比特数据和前一八比特数据组成的数据流中的连一数,判断当前八比特数据是否为帧头、帧尾或帧终止,并判断当前八比特数据和前一八比特数据组成的数据流中是否存在帧头、帧尾或帧终止。其中需要对当前八比特数据和前一8比特数据组成的数据流进行帧标识检测的原因为:由于基于HDLC协议发送数据时,为了确保F标志字段是独一无二的,发送信息时采用“0”比特***技术,即发送方在发送除标志字符外的所有信息时,只要遇到连续的5个“1”,就自动***一个“0”,这样接收到的八比特数据可能不会是一个完整帧头、帧尾或帧终止,因此需要检测当前接收的八比特数据和前一八比特数据组成的数据流中是否存在帧头、帧尾或帧终止。
例如,当前接收的八比特数据从高位到低位依次为“1110 0010”,前一八比特数据从高位到低位依次为“0110 0111”,则当前八比特数据中从低到高的连一数位为3,前一八比特数据从高到低的连一数为3,则可知道当前8比特数据和前一八比特数据组成的数据流中存在6连1,则检测到帧头或帧尾。并为该帧头或帧尾标示出尾包信号。
又如,当前八比特数据为“0111 1110”,前一八比特数据为“0110 0111”,当前数据从低到高的连一数位0,前一八比特数据从高到低的连一数为3,当前八比特数据存在6连1,当前八比特数据位帧头或帧尾。
步骤S104:依据前一八比特数据的标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;
由于基于HDLC协议的数据发送方会在除帧标识以外的五连一数据后插零,因此数据接收方应检测接收的数据中的五连一数据,并将五连一后的零去除,来恢复原来的数据。
其中,分析前一八比特数据和当前八比特数据标示的状态标识信息,是为了判断当前八比特数据和前一八比特数据是否属于同一数据包,如果是,则检测当前八比特数据和前一八比特数据相接处是否存在五连一,以及当前八比特数据的五连一;如果否,则仅检测当前八比特数据中是否存在五连一。
判断是否需要对当前八比特数据和前一八比特数据相接处进行五连一检测,可以为,根据前一八比特数据中的尾包信号或数据状态信息,以及当前八比特数据的尾包信号或数据状态信息,判断当前数据和前一数据是否为同一数据包,如果是,则检测当前数据和前一数据相连处的五连一数。其中,当前八比特数据和前一八比特数据相接处,是指前一八比特数据从高位到低位与当前八比特数据的高位的数据流接连处。如,当前八比特数据从高位到低位为“1101 1110”,前一八比特数据从高位到低位为“0110 0111”则二者相接处有五个连一的比特数据。
例如,如果当前八比特数据为数据数据状态,则当前八数据和前一八比特数据为同一个数据包,需要检测当前八比特数据和前一八比特数据相接处的五连一;如果当前八比特数据的尾包信号和前一数据的尾包信号都为零,则当前八数据和前一八比特数据为同一个数据包,需要检测当前八比特数据和前一八比特数据相接处的五连一;如前一八比特数据的尾包信号为1,当前一八比特数据的尾包信号为0或1,则当前八数据和前一八比特数据不属于同一个数据包,则只需检测当前八比特数据的五连一。当然还可以通过其他方法判断当前八比特数据和前一八比特数据是否为同一数据包,在此不一一列举。
步骤S105:将去插零操作后得到的净荷数据进行合包,并以包为单位进行校验,以还原成原数据。
接收方对接收到的数据进行帧标识检测、以及去插零后,得到的数据为净荷数据,由于进行去插零后的净荷数据可能不足8比特数据,因此需要等到基于该通道的数据,组合为8比特的数据模块后,在进行后续的基于该通道内的数据进行合包操作。
其中在步骤S105将去插零操作后得到的净荷数据进行合包,以还原成原数据包之前还包括:将当前八比特数据的从高到低连一数、当前八比特数据的状态标识信息保存到中间处理状态,以便当处理下一八比特数据时,读取该中间处理状态的信息,进行帧标识检测和去插零操作。
在对数据合包后还需要以包为单位校验FCS(frame check sequence帧校验序列字段)。HDLC采用16位循环冗余校验码CRC-16(Cyclic RedundancyCode),其生成多项式为CCITT多项式X^16+X^12+X^5+1,标志位和按透明规则***的所有“0”不在校验的范围内。
中间处理状态中保存着相对于需要进行帧标识检测的八比特数据之前的八比特数据的信息,如,前一八比特数据的从高到低的连一数,前一八比特数据的状态信息。当然还可以根据需要保存前一八比特数据的其他信息。
另外,当当前八比特数据的相关信息还未保存到中间处理状态时,读取到该通道的下一八比特数据时,需要将新读取到的八比特数据寄存,以便完成所述当前八比特数据的相关信息的保存后在进行处理下一八比特数据。
为能清楚的描述本发明的处理HDLC数据的步骤,参见图2,为本发明另一实施例一种HDLC数据处理的方法的步骤流程图,该方法包括:
步骤S201:读取接收到的当前八比特数据,统计该当前八比特数据的从高到低的和从低到高的连续为一的比特数;
步骤S202:根据当前八比特数据的通道号,判断当前八比特数据所属的通道,提取中间处理状态中预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一数据的从高到低连一数和前一八比特数据的状态标识信息;
步骤S203:依据当前八比特数据、当前八比特数据的从高到低的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标出状态标识信息;
步骤S204:依据前一八比特数据的标识信息和当前八比特数据的状态标识信息,判断当前八比特数据和前一八比特数据是否为同一包的数据,如果是,则对前一八比特数据和当前八比特数据相接处,以及当前八比特数据进行五连一检测;如果否则仅对当前八比特数据进行五连一检测;
步骤S205:将当前八比特数据从高到低的连一数,以及当前八比特数据的状态标识信息存入中间处理状态中,以便进行下一八比特数据处理时提取;
步骤S206:对进行五连一检测后的当前八比特数据进行去插零操作;
步骤S207:将去插零操作后得到的净荷数据进行合包,以还原成原数据包。
对应本发明的方法,本发明还提供了一种HDLC数据处理的***,参见图3为本发明实施例的一种HDLC数据处理的***的结构框图,该***包括:
统计单元301,用于读取接收的当前八比特数据,统计该当前八比特数据的连一数;
信息提取单元302,用于参考当前八比特数据所属的通道,提取预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一八比特数据的从高到低连一数和前一八比特数据的状态标识信息;
帧标识检测单元303,用于依据当前八比特数据、当前八比特数据的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标示出状态标识信息;
五连一检测单元304,用于根据前一八比特数据的标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;
合包单元305,用于将去插零操作后得到的净荷数据进行合包,以还原成原数据包。
其中,信息提取单元302提取的所述前一八比特数据的标识信息包括:前一八比特数据的尾包指示信息、和\或数据状态信息。
为了能判断当前八比特数据和前一八比特数据相接处连续为一的比特数据,所述统计单元包括:
第一统计单元,用于统计当前八比特数据从低到高的连一数。
对应第一统计单元,所述帧标识检测单元具体包括:
用于依据当前八比特数据、当前八比特数据的从低到高连一数和前一八比特数据的从高到低的连一数,检测当前八比特数据,以及当前八比特数据和前一八比特数据组成的数据流中的连一数,如果检测到六连一,则检测到帧头或帧尾,为该帧头或帧尾标示出相应的尾包信号;
如果检测到七个或七个以上的连一数,则检测到帧终止,并为该帧终止标示出相应的尾包信号和帧终止信号;
如果没有检测到六个或六个以上的连一,则确定当前八比特数据为普通数据,并为当前数据标示出数据信号。
进一步的,所述五连一检测单元包括:五连一检测子单元,用于依据前一八比特数据的尾包信号、帧终止信号或数据信号,以及当前数据的尾包信号、帧终止信号或数据信号,判断当前数据和前一数据是否属于同一数据包,如果是,则对当前八比特数据和前一八比特数据组成的数据流、以及当前八比特数据进行五连一检测;如果否,则仅对当前八比特数据进行五连一检测。
为了能为后续接收到的下一八比特数据的检测提供依据,所述统计单元还包括:
第二统计单元,用于统计当前八比特数据从高到低的连一数;
同时,本发明的***还包括:中间状态保存单元,用于将当前八比特数据的从高到低的连一数、当前八比特数据的状态标识信息保存到中间处理状态,以便当处理下一八比特数据时,读取该中间处理状态的信息,进行帧标识检测和去插零操作。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种HDLC数据处理的方法,其特征在于,包括:
读取接收的当前八比特数据,统计该当前八比特数据的连一数,其中,所述当前八比特数据的连一数包括:所述当前八比特数据从低到高的连一数;
参考当前八比特数据所属的通道,提取预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一八比特数据的从高到低连一数和前一八比特数据的状态标识信息;
依据当前八比特数据、当前八比特数据从低到高的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标示出状态标识信息;
根据前一八比特数据的状态标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;
将去插零操作后得到的净荷数据进行合包,以还原成原数据包。
2.根据权利要求1所述的方法,其特征在于,所述前一八比特数据的标识信息包括:
前一八比特数据的尾包指示信息、和\或数据状态信息。
3.根据权利要求1所述的方法,其特征在于,所述依据当前八比特数据、当前八比特数据从低到高的连一数和前一八比特数据的从高到低的连一数,进行帧标识检测,并根据检测结果给出状态标识信息,包括:
依据当前八比特数据、当前八比特数据的从低到高连一数和前一八比特数据的从高到低的连一数,检测当前八比特数据,以及当前八比特数据和前一八比特数据组成的数据流中的连一数,如果检测到六连一,则检测到帧头或帧尾,为该帧头或帧尾标示出相应的尾包信号;
如果检测到七个或七个以上的连一数,则检测到帧终止,并为该帧终止标示出相应的尾包信号和帧终止信号;
如果没有检测到六个或六个以上的连一,则确定当前八比特数据为普通数据,并为当前数据标示出数据信号。
4.根据权利要求3所述的方法,其特征在于,所述根据前一八比特数据的状态标识信息和当前八比特数据的状态标识信息,进行五连一检测,包括:
依据前一八比特数据的尾包信号、帧终止信号或数据信号,以及当前八比特数据的尾包信号、帧终止信号或数据信号,判断当前八比特数据和前一八比特数据是否属于同一数据包,如果是,则对当前八比特数据和前一八比特数据组成的数据流、以及当前八比特数据进行五连一检测;如果否,则仅对当前八比特数据进行五连一检测。
5.根据权利要求1所述的方法,其特征在于,所述统计该当前八比特数据的连一数,还包括:
统计当前八比特数据从高到低的连一数;
所述将去插零操作后得到的净荷数据进行合包,以还原成原数据包之前还包括:
将当前八比特数据的从高到低的连一数、当前八比特数据的状态标识信息保存到中间处理状态,以便当处理下一八比特数据时,读取该中间处理状态的信息,进行帧标识检测和去插零操作。
6.一种HDLC数据处理的***,其特征在于,包括:
统计单元,用于读取接收的当前八比特数据,统计该当前八比特数据的连一数,其中,所述当前八比特数据的连一数包括:所述当前八比特数据从低到高的连一数;
信息提取单元,用于参考当前八比特数据所属的通道,提取预先保存的该通道中前一八比特数据及其状态信息,所述状态信息包括前一八比特数据的从高到低连一数和前一八比特数据的状态标识信息;
帧标识检测单元,用于依据当前八比特数据、当前八比特数据从低到高的连一数和前一八比特数据从高到低的连一数,进行帧标识检测,并根据检测结果标示出状态标识信息;
五连一检测单元,用于根据前一八比特数据的状态标识信息和当前八比特数据的状态标识信息,进行五连一检测,以完成去插零操作;
合包单元,用于将去插零操作后得到的净荷数据进行合包,以还原成原数据包。
7.根据权利要求6所述的***,其特征在于,所述前一八比特数据的标识信息包括:
前一八比特数据的尾包指示信息、和\或数据状态信息。
8.根据权利要求6所述的***,其特征在于,所述帧标识检测单元具体包括:
用于依据当前八比特数据、当前八比特数据的从低到高连一数和前一八比特数据的从高到低的连一数,检测当前八比特数据,以及当前八比特数据和前一八比特数据组成的数据流中的连一数,如果检测到六连一,则检测到帧头或帧尾,为该帧头或帧尾标示出相应的尾包信号;
如果检测到七个或七个以上的连一数,则检测到帧终止,并为该帧终止标示出相应的尾包信号和帧终止信号;
如果没有检测到六个或六个以上的连一,则确定当前八比特数据为普通数据,并为当前数据标示出数据信号。
9.根据权利要求8所述的***,其特征在于,所述五连一检测单元包括:
五连一检测子单元,用于依据前一八比特数据的尾包信号、帧终止信号或数据信号,以及当前数据的尾包信号、帧终止信号或数据信号,判断当前数据和前一数据是否属于同一数据包,如果是,则对当前八比特数据和前一八比特数据组成的数据流、以及当前八比特数据进行五连一检测;如果否,则仅对当前八比特数据进行五连一检测。
10.根据权利要求6所述的***,其特征在于,所述统计单元还包括:
第二统计单元,用于统计当前八比特数据从高到低的连一数;
所述***还包括:中间状态保存单元,用于将当前八比特数据的从高到低的连一数、当前八比特数据的状态标识信息保存到中间处理状态,以便当处理下一八比特数据时,读取该中间处理状态的信息,进行帧标识检测和去插零操作。
CN 201010617473 2010-12-31 2010-12-31 一种hdlc数据处理的方法和*** Expired - Fee Related CN102098333B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010617473 CN102098333B (zh) 2010-12-31 2010-12-31 一种hdlc数据处理的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010617473 CN102098333B (zh) 2010-12-31 2010-12-31 一种hdlc数据处理的方法和***

Publications (2)

Publication Number Publication Date
CN102098333A CN102098333A (zh) 2011-06-15
CN102098333B true CN102098333B (zh) 2013-04-24

Family

ID=44131192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010617473 Expired - Fee Related CN102098333B (zh) 2010-12-31 2010-12-31 一种hdlc数据处理的方法和***

Country Status (1)

Country Link
CN (1) CN102098333B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721105B (zh) * 2016-01-22 2020-06-02 广州市毅航互联通信股份有限公司 一种基于字节流的解码方法
CN112925631B (zh) * 2021-04-08 2022-11-04 上海科世达-华阳汽车电器有限公司 一种任务调度方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917519A (zh) * 2006-09-13 2007-02-21 华为技术有限公司 高级数据链路控制协议串行数据的并行传输方法及其***
CN1984148A (zh) * 2006-05-15 2007-06-20 华为技术有限公司 实现高层数据链路控制的装置及方法
CN101335764A (zh) * 2008-07-15 2008-12-31 上海华为技术有限公司 合成复帧、解析复帧的方法、装置及复帧处理***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1984148A (zh) * 2006-05-15 2007-06-20 华为技术有限公司 实现高层数据链路控制的装置及方法
CN1917519A (zh) * 2006-09-13 2007-02-21 华为技术有限公司 高级数据链路控制协议串行数据的并行传输方法及其***
CN101335764A (zh) * 2008-07-15 2008-12-31 上海华为技术有限公司 合成复帧、解析复帧的方法、装置及复帧处理***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HDLC协议在FPGA通信***中的实现;宋飞等;《计算机应用》;20090430;第29卷(第4期);1092-1094 *
宋飞等.HDLC协议在FPGA通信***中的实现.《计算机应用》.2009,第29卷(第4期),1092-1094.

Also Published As

Publication number Publication date
CN102098333A (zh) 2011-06-15

Similar Documents

Publication Publication Date Title
CN107147657A (zh) 适用于多机可靠通信的通信协议、编解码方法及通讯设备
CN101146102B (zh) Rru网络中hdlc数据下行、上行的方法及通讯装置
CN107258076A (zh) 通信网络中的数据传输
CN105975424B (zh) 一种主从串行通讯协议
WO2000052879A3 (en) Method and apparatus for data re-assembly with a high performance network interface
CN101860467B (zh) 一种专用绞线式列车总线控制装置
CN101834685B (zh) 1588报文提取处理方法及设备
CN102394719A (zh) 基于fpga的多通道hdlc数据处理方法
CN112187789B (zh) 一种数据链路协议转换***
CN116418647A (zh) 网络管理信息的收发方法、装置和设备
CN108989286A (zh) 通用数据流的封装方法、解封装方法及装置
CN106254018B (zh) 高速信号接收与多路解复用的集成***以及数据处理方法
CN102098333B (zh) 一种hdlc数据处理的方法和***
CN108988977B (zh) 一种灵活以太网协议中传递业务流的方法、装置和***
CN102137086B (zh) 数据传输处理方法、装置及***
CN102655476B (zh) 一种互联网协议流转发方法,及设备
CN108833436B (zh) 一种实现设备通信互联的通信控制方法
CN107783922A (zh) 一种数据编解码方法和装置
CN100444595C (zh) 一种主从设备通信方法
CN101459662A (zh) 多用户数据包传输的方法、装置及***
US7327732B2 (en) Method and apparatus for combined framing and packet delineation
CN101572658A (zh) 无线中继报文传输的处理方法、装置和***
CN101083772A (zh) 传输流解复用装置及方法
CN206181067U (zh) 一种mii接口与gpmc接口数据通信***
CN102932106B (zh) 一种数据的发送、接收方法、装置和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Yu Hengxin

Inventor after: Zheng Chen

Inventor after: Zhang Haidong

Inventor after: Cao Zhiqiang

Inventor before: Lu Hailiang

Inventor before: Jia Lin

Inventor before: Zhang Haidong

Inventor before: Cao Zhiqiang

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: LU HAILIANG JIA LIN ZHANG HAIDONG CAO ZHIQIANG TO: YU HENGXIN ZHENG CHEN ZHANG HAIDONG CAO ZHIQIANG

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130424

Termination date: 20171231