发明内容
针对现有技术存在的问题而做出本发明。
根据本发明的实施例,提供了一种SDH帧头的检测方法,该方法包括以下步骤:S102,接收并行数据码流;S104,以最小检测单元将并行数据码流分别与帧头的多种组合分别进行比较,以确定并行数据码流是否与多种组合中的一种相同;以及S106,如果并行数据码流与多种组合中的一种相同,则确定检测到帧头。
此外,在接收并行数据码流之前,首先对串行输入码流进行串并转换处理。
其中,该串并转换处理将串行输入码流转换为8进制或16进制的并行数据码流。
此外,步骤S104包括:S1042,将并行数据码流与多种组合中的每一个中的第一个数据比较第一预定次数;S1044,如果在第一预定次数的多次比较中并行码流与第一个数据都相同,则将并行数据码流与多种组合中的每一个中的第二个数据进行比较;S1046,如果与第二个数据相同,则将并行数据码流与多种组合中的每一个中的第三个数据进行比较第二预定次数;以及S1048,如果在第二预定次数的多次比较中并行码流与第三个数据都相同,则确定并行数据码流与多种组合中的一种相同。
其中,第一预定次数和第二预定次数根据系统性能进行预先设定。
优选地,最小检测单元为16位。
优选地,最小检测单元为32位。
优选地,在并行码流的固定位置提取数据来与帧头的多种组合进行比较。
优选地,随机选取并行码流中的位置提取数据来与帧头的多种组合进行比较。
优选地,根据预定规则选取并行码流中的位置提取数据来与帧头的多种组合进行比较。
如上所述,根据本发明的技术方案,将并行数据码流以16位或32位与帧头标志可能出现的多种组合进行反复比对,从而充分保证了帧头检测的准确性,并且能够利用少量的硬件逻辑资源实现对SDH帧头的快速有效检测及数据重排,灵活性高。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面将结合附图来详细说明本发明的实施例。
图1是示出根据本发明的SDH帧头的检测方法的流程图。
参照图1,根据本发明的SDH帧头的检测方法包括以下步骤:S102,接收并行数据码流;S104,以最小检测单元将并行数据码流分别与帧头的多种组合分别进行比较,以确定并行数据码流是否与多种组合中的一种相同;以及S106,如果并行数据码流与多种组合中的一种相同,则确定检测到帧头。
此外,在接收并行数据码流之前,首先对串行输入码流进行串并转换处理,其中,该串并转换处理将串行输入码流转换为8进制或16进制的并行数据码流。
参照图2,详细示出了比较处理的流程图。
步骤S104包括:S1042,将并行数据码流与多种组合中的每一个中的第一个数据比较第一预定次数;S1044,如果在第一预定次数的多次比较中并行码流与第一个数据都相同,则将并行数据码流与多种组合中的每一个中的第二个数据进行比较;S1046,如果与第二个数据相同,则将并行数据码流与多种组合中的每一个中的第三个数据进行比较第二预定次数;以及S1048,如果在第二预定次数的多次比较中并行码流与第三个数据都相同,则确定并行数据码流与多种组合中的一种相同。
其中,第一预定次数和第二预定次数根据系统性能进行预先设定。
优选地,最小检测单元为16位或32位。但是,将32位的最小检测单元与16位的最小检测单元相比,每次比较判断的工作量相对要增加一倍,因此需要消耗更多的逻辑资源来实现,并且位数的增大也不利于时钟频率的提高,影响系统整体性能。因此,最优选选择16位的最小检测单元。
此外,可以在并行码流的固定位置提取数据来与帧头的多种组合进行比较,也可以随机选取并行码流中的位置提取数据来与帧头的多种组合进行比较,或者根据预定规则选取并行码流中的位置提取数据来与帧头的多种组合进行比较。只要能够保证检测的正确性,可以根据设计自行决定任意一种方式。
众所周知,SDH16码流的帧头是由连续的48个“F6”及48个“28”组成,要判断帧头就必须能正确检测出这些标志位。
由于SDH码流是串行输入信号,所以首先要对串行输入码流进行串并转换,将其转换为8进制或16进制的并行数据。
以16进制为例,在进行检测时,一般以标志位分界处“F628”作为切入点,由于检测点不确定,导致接收到的并行码流可能出现以下16种组合:
(1) |
F6F6 |
F628 |
2828 |
(2) |
EDED |
EDEC |
5050 |
(3) |
DBDB |
DBD8 |
A0A0 |
(4) |
B7B7 |
B7B1 |
4141 |
(5) |
6F6F |
6F62 |
8282 |
(6) |
DEDE |
DEC5 |
0505 |
(7) |
BDBD |
BD8A |
0A0A |
(8) |
7B7B |
7B14 |
1414 |
(9) |
F6F6 |
2828 |
2828 |
(10) |
EDED |
EC50 |
5050 |
(11) |
DBDB |
D8A0 |
A0A0 |
(12) |
B7B7 |
B141 |
4141 |
(13) |
6F6F |
6282 |
8282 |
(14) |
DEDE |
C505 |
0505 |
(15) |
BDBD |
8A0A |
0A0A |
(16) |
7B7B |
1414 |
1414 |
下面,参照图3具体描述本发明的实施例。
图3是以一种组合为例说明本发明检测方法的具体比较过程的流程图。
从图3可以看出,在接收到并行输入码流之后,首先比较其是否与“EDED”相同,如果相同则继续进行比较处理。
在该图中,前四次比较都是将输入码流与“EDED”进行比较。然后,在第五次比较中,将将输入码流与“EDEC”进行比较,因为在帧头的分界处只会出现一次“EDEC”,因此,与“EDEC”的比较也只会进行一次。
接下来,如果出现了一次“EDEC”则在第六次比较中,将输入码流与“5050”进行比较,如果相同则继续进行比较处理。
在该图中,第六次和第七次都是输入码流与“5050”的比较处理。然后,如果两次比较都与“5050”相同,则确定检测到帧头,将并行数据重排后输出。
注意,在该图中,与“EDED”的比较进行了四次,与“5050”的比较进行了两次,但应该明白,比较次数并不限于四次和两次,比较次数应该根据所期望实现的精度和系统性能等因素进行设置。
此外,该应该注意,如果将串行输入信号转换为8进制,帧头可能出现的组合就不是16种,但具体的比较过程与16进制是相同的,也是将并行数据码流与多种组合的每一种分别进行比较,从而确定是否检测到帧头。
如上所述,在本发明的技术方案中,对并行输入的数据码流以16位或32位为最小的检测单元,与帧头标志可能出现的多种组合进行反复比对,充分保证了帧头检测的准确性,当反复比对成功次数累计到一定数目时,就确定检测到相应的帧头标志位,然后将并行数据重排后输出。通过该方案,实现了对SDH帧头快速有效的检测,可以获得节省硬件逻辑资源、提高判断的准确性、提升系统性能、灵活性高等的优点。
这里所说的硬件逻辑资源是指FPGA中的寄存器、Slice和LUT(look-up table,查找表)等这些基本的逻辑资源,FPGA工具会将代码功能用这些基本的逻辑资源来实现。在帧头检测和数据重排代码中都会消耗逻辑资源,各种功能有不同的实现方法,但消耗的资源会有区别。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。