著录项信息
专利名称 | 一种同步数字系列链路接入规程的解封装方法 |
申请号 | CN03104064.0 | 申请日期 | 2003-02-20 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2004-08-25 | 公开/公告号 | CN1523830 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/40 | IPC分类号 | H;0;4;L;1;2;/;4;0;;;H;0;4;L;1;2;/;2;6;;;H;0;3;M;1;3;/;0;5查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 黄科 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开一种同步数字系列链路接入规程的解封装方法,其中帧校验过程采用双字节或多字节数据总线,并且在所述的帧校验过程中采用与数据总线宽度的字节数相同的两个或多个CRC模块,将它们相互串联,相邻的CRC模块之间可以相互传递中间结果,每个CRC模块可以输入数据和输出结果;在校验前,先对数据进行预处理:如果是多字节有效数据,则直接把各字节分别送到两个或多个单字节循环冗余校验CRC模块,如果只有单字节数据有效,则把有效的该字节放到其中一个CRC模块。本发明节省了一个8比特CRC模块,而且在一个时钟周期内完成的比特位数减少,所耗费的资源减少,且该方法能够满足速率的要求。
1.一种同步数字系列链路接入规程的解封装方法,至少包括如下过程:
LAPS定帧;
帧校验;
LAPS净荷提取;
其特征是:
采用双字节或多字节数据总线,并且在所述的帧校验过程中采用与 数据总线宽度的字节数相同的两个或多个单字节循环冗余校验CRC模 块,将它们相互串联,相邻的单字节循环冗余校验CRC模块之间可以相 互传递中间结果,每个单字节循环冗余校验CRC模块可以输入数据和输 出结果;在校验前,先对数据进行预处理:如果是多字节有效数据,则 直接把各字节分别送到两个或多个单字节循环冗余校验CRC模块,如果 只有单字节数据有效,则把有效的该字节放到其中一个单字节循环冗余 校验CRC模块。
2、如权利要求1所述的同步数字系列链路接入规程的解封装方法,其 特征是:所述数据总线宽度为双字节,即16比特,所述CRC模块为两 个8比特CRC模块,分为高字节和低字节CRC模块,对于双字节的有效 数据,分别送入高字节和低字节CRC模块中,对于单字节的有效数据, 将其送到高字节的CRC模块中。
3、如权利要求1所述的同步数字系列链路接入规程的解封装方法,其 特征是:选取至少与数据总线字节数相同的两个或多个比较器,在LAPS 定帧前,统一遍历所有解扰码以后的数据,用上述比较器将经解扰码的 数据的高、低字节进行比较,如果是帧定界标识符、转义字符、速率适 配字节,则将相应标识位置一,并同时记下它的字节位置。
4、如权利要求3所述的同步数字系列链路接入规程的解封装方法,其 特征是:所述标识位保存在一个触发器中,用下一个输入字节有效信号 来清除和更新标识位指示信号。
5、如权利要求1至4中任何一个权利要求所述的同步数字系列链路接 入规程的解封装方法,其特征是:所述的LAPS净荷的提取方法是引入 多级单字节移位管道和数据缓存装置,并按如下步骤进行提取:1)帧 头丢弃;2)管道移位:将帧头后部的有效数据存入移位管道中,输入 数据为几个字节,移位管道就向一侧移动几个字节,位于移位管道中 的有效数据溢出,3)数据组装:根据当前状态,提取所述移位管道和 数据缓存装置中的数据后进行组装;4)帧尾丢弃。
6、如权利要求5所述的同步数字系列链路接入规程的解封装方法,其 特征是:所述的移位管道级数至少为帧头字节数加一。
7、如权利要求5所述的同步数字系列链路接入规程的解封装方法,其 特征是:当移位管道中溢出的有效数据为一个字节时,将该单字节数据 存入数据缓存装置中。
8、如权利要求5所述的同步数字系列链路接入规程的解封装方法,其 特征是:其中步骤3)数据组装时所根据的状态包括:数据缓存装置里 是否有数据、移位管道是否有移位、移位管道移位了几个字节、管道入 口是否检测到帧尾;如果数据缓存装置中和移位管道中有有效数据,则 将数据缓存装置中的有效数据和移位管道的移位级中的有效数据一同 取出,进行组装;如果数据缓存装置中无有效数据而移位管道中有非单 字节的有效数据,则取出移位管道中的有效数据进行组装。
9、如权利要求5所述的同步数字系列链路接入规程的解封装方法,其 特征是:步骤1)帧头丢弃还包括:引入一个计数器,从帧头开始对字 节计数,帧头以后的字节放入管道,计数器在帧尾的时候置零。
10、如权利要求5所述的同步数字系列链路接入规程的解封装方法,其 特征是:其中步骤4)帧尾丢弃的过程是:当管道入口检测到帧尾时, 则将移位管道中的帧尾字节丢弃,并组装移位管道剩余的有效数据和/ 或数据缓存装置中的有效数据。
技术领域:\n本发明涉及一种同步数字系列链路接入规程的解封装方法,尤其涉 及一种同步数字系列链路接入规程的解封装方法中的同步数字系列链路 接入规程定帧(LAPS定帧)、帧校验和同步数字系列链路接入规程净荷 的提取(LAPS净荷的提取)。\n背景技术:\n本发明用FPGA可编程逻辑实现了LAPS协议的解封装,包括X43+1的 自同步解扰码、丢弃速率适配字节、检测并且上告Abort字段(中止) (0x7d7e),LAPS的转义处理、CRC32校验(循环冗余校验)、以及LAPS 净荷的提取和相关告警的产生。本方法实现的LAPS解封装最大可支持带 宽为1.6Gbit/S,模块内部采用双字节总线(16比特),最高频率可达 100Mhz。\nLAPS协议是一种新兴的协议,它非常的类似于高级数据链路控制 (HDLC),应用于IP OVER SDH(同步数字系列上的IP协议)、Ethernet OVER SDH(同步数字系列上的以太网协议),非常简洁、高效。它的帧结 构如图1所示。\n0x7e是帧定位标识字段,0x04、0x03,为固定插入的地址和控制字 段,0xfe01标识数据净荷为MAC帧(媒质访问控制帧)(IPv4:0021, IPv6:0057),FCS字段(帧校验序列字段)是对地址、控制、SAPI(服 务访问点标识)以及数据净荷做CRC32的计算结果。LAPS协议是中国大 陆在数通方面提出的第一个被ITU-T认可而且例为世界标准的协议。在 国内的应用非常广泛。本方法完全的实现了LAPS协议的解封装(X.86、 X.85)而且与rfc2615协议兼容。\n由于FPGA(现场可编程门阵列)硬件本身的限制,它的工作频率不 太可能很高(现阶段一般不会大于100M),所以要实现大的流量就必须 增加内部数据总线的宽度。但是内部数据总线宽度的增加势必增加逻辑 编程的复杂性(逻辑的复杂性又会带来电路速度的降低)以及耗费更多 的逻辑资源。使电路的运行速度不易达到100M。\n发明内容:\n本发明的目的就是为了解决以上问题,提出一种同步数字系列链路 接入规程的解封装方法,该方法比较好的处理了双字节内部数据总线下 LAPS协议的解封装,同时耗费的资源非常少,并且保证了电路的运行速 度。\n为实现上述目的,本发明提出,一种同步数字系列链路接入规程的 解封装方法,至少包括如下过程:\nLAPS定帧;\n帧校验;\nLAPS净荷提取;\n其中帧校验过程是:采用双字节或多字节数据总线,并且在所述的 帧校验过程中采用与数据总线宽度的字节数相同的两个或多个单字节循 环冗余校验CRC模块,将它们相互串联,相邻的单字节循环冗余校验CRC 模块之间可以相互传递中间结果,每个单字节循环冗余校验CRC模块可 以输入数据和输出结果;在校验前,先对数据进行预处理:如果是多字 节有效数据,则直接把各字节分别送到两个或多个单字节循环冗余校验 CRC模块,如果只有单字节数据有效,则把有效的该字节放到其中一个 单字节循环冗余校验CRC模块。\n本发明方法还包括:选取至少与数据总线字节数相同的两个或多个 比较器,在LAPS定帧前,统一遍历所有解扰码以后的数据,用上述比 较器将经解扰码的数据的高、低字节进行比较,如果是帧定界标识符、 转义字符、速率适配字节,则将相应标识位置一,并同时记下它的字节 位置。\n所述标识位保存在一个触发器中,用下一个输入字节有效信号来清 除和更新标识位指示信号。\n本发明方法还包括:所述的LAPS净荷的提取方法是引入多级单字节 移位管道和数据缓存装置,并按如下步骤进行提取:1)帧头丢弃;2) 管道移位:将帧头后部的有效数据存入移位管道中,输入数据为几个字 节,移位管道就向一侧移动几个字节,位于移位管道中的有效数据溢出, 3)数据组装:根据当前状态,提取所述移位管道和数据缓存装置中的数 据后进行组装;4)帧尾丢弃。\n由于采用了以上的方案,CRC32校验方法只使用了两个8比特的CRC 模块,节省了一个8比特CRC模块,而且在一个时钟周期内完成的比特 位数减少,所耗费的资源减少,且该方法能够满足速率的要求。\n在解扰码以后先遍历所有数据,标识出0x7e、0x7d、0xdd、0x5d、 0x5e以及它们的位置,并且把这些标识送给下级模块,用来定帧和转义 处理可以方便解决双字节数据总线结构定帧时处理困难的问题,提取 LAPS帧净荷时引入移位管道解决了单字节输出及帧尾丢弃的问题。应用 本设计,非常节约资源,整个模块只需要350个逻辑单元(le),而且速 度很快,在一般的FPGA上可以轻松达到100M的时钟频率。\n附图说明:\n图1是现有技术LAPS帧结构;\n图2是现有技术同步数字系列链路接入规程的解封装方法处理流程 框图;\n图3现有技术同步数字系列链路接入规程的解封装方法的X43+1解扰 码电路图;\n图4现有技术同步数字系列链路接入规程的解封装方法中的CRC校验 方法流程图;\n图5本发明同步数字系列链路接入规程的解封装方法中的CRC校验方 法流程图;\n图6本发明同步数字系列链路接入规程的解封装方法的LAPS净荷提 取流程图。\n具体实施方式:\n下面通过具体的实施例并结合附图对本发明作进一步详细的描 述。\nLAPS的解封装需要完成如下功能:\n1:X43+1自同步解扰码\n2:LAPS定帧\n3:丢弃速率适配字段\n4:丢弃并且检测Abort字段\n5:LAPS转义处理\n6:LAPS地址、控制、SAPI字段的检测\n7:CRC32计算\n8:丢弃LAPS帧头、LAPS信息净荷的提取和丢弃帧尾\n双字节内部数据总线结构,使得步骤2~步骤8处理比较复杂。如图 示2所示是逻辑LAPS解封装方法处理流程框图。\n输入接口的功能是:根据输入数据有效指示信号来接收数据,数据 总线宽度可以是16比特、32比特等。由于前端模块的特殊性,有可能数 据不是连续过来的,也就是数据的输入有可能是断断续续的,这个要求 也为后面的模块增加了难度;\n解扰码过程:做X43+1解扰码。用FPGA来实现这部分功能的电路已 经比较成熟。本方案也是采用常规的设计方法来做的,具体实现电路如 图3所示。\nLAPS定帧过程:LAPS定帧包括LAPS帧头和帧尾的识别,根据LAPS帧 结构,LAPS帧头和帧尾都是由帧定界标识符(0x7e)来识别的。双字节 内部数据总线结构也给这里带来了麻烦。我们来看如下数据系列,解扰 码以后:\n0x5555、0x557e、0x7e7e、0x5555、0x7e55、0x5555..........\n帧定界标识符(0x7e)的位置很灵活,不同的位置以及不同的字序 组合都有可能表示不同的意思,0x7e在LAPS中共有5种解释:\n1:0x7e、0x55、.......这里0x7e代表LAPS帧头;\n2:0x55、0x7e、0x7e、0x55......这里第一个0x7e代表LAPS帧尾, 第二个代表帧头;\n3:0x55、0x7e、0x55......这里0x7e即代表LAPS帧头又代表帧尾;\n4:0x55、0x7e、0x7e、0x7e、0x55......这里第一个0x7e代表帧 尾,第二个是LAPS帧间的填充序列,应该直接丢弃,第三个标识又一个 LAPS帧头到来。\n5:0x55、0x7d、0x7e......在0x7d之后的0x7e和0x7d组成LAPS 的abort序列,共同解释为LAPS帧尾和LAPS净荷错误。\n对于转义字符(0x7d),也是同样的,它在不同的位置,以及不同 的字序组合,会有不同的解释:\n1:0x7d、0x5d、..... 标识0x7d\n2:0x7d、0x5e、..... 标识0x7e\n3:0x7d、0x7e、..... 标识abort序列,标识LAPS的帧尾,同时 标识本帧在发端已经错误。\n4:0x7d、0xdd、..... 速率适配字节,应该直接丢弃\n5:0x7d、其它非上面四种字节,表示LAPS帧本身有错误。\n0x7d和0x7e的解释是LAPS协议处理的核心部分,如上所述,它们的 处理难度有4种:\n1:都有很多种解释\n2:解释都与位置和字序组合有关系\n3:对于双字节数据总线结构,它们的位置非常灵活,可能出现在任 意位置(高字节或者低位字节)。\n4:数据可能是断断续续进来的,我们必须有一个很好的机制来记忆 当前状态。\n对于逻辑设计来说,要用很少的资源解决上述问题,同时要求设计 能够达到比较高的速度(100MHz),确实是比较难的。我们选取的解决 方法是:1)选取至少与数据总线字节数相同的两个或多个比较器,在LAPS 定帧前,统一遍历所有解扰码以后的数据,用上述比较器将经解扰码的 数据的高、低字节进行比较(一般FPGA内部都有硬件比较器模块,速度 非常快),如果是帧定界标识符、转义字符、速率适配字节,则将相应 标识位置一,并同时记下它的字节位置(是高字节还是低字节);一个 字节有3位标识,分别标识0x7d、0x7e、0xdd,根据这3个比较结果的 值和相对位置,可以搜索出帧以及其他特殊字符等,比如abort序列就是 0x7d和0xdd的相应值为1,而且0x7d位置在前面。标识位保存在一个触发 器中,用下一个输入字节有效信号来清除和更新标识位指示信号。这样 可以很方便的解决输入数据断断续续的情况,同时0x7e、0x7d、0xdd、 0x5d、0x5e的解释只与相邻(或前或后)的字节有关系,所以当后面一 拍数据输入以后,它的前一拍的状态就可以清除了。\n解扰码以后的数据,通过上述过程以后,输出它的状态和位置信息。 我们根据数据的状态和位置信息,可以一步简洁的处理完LAPS的定帧、 转义处理、速率适配字节丢弃以及错误告警等与0x7d和0x7e相关的功能。 其实就是根据状态,应用case语句处理各种情况。这样程序结构非常简 洁,而且程序的效率也高。\nLAPS定帧、转义处理、速率适配处理、abort字节处理完成以后,我 们就可以开始LAPS的FCS校验了。双字节或多字节的数据总线结构,给这 里也带来了麻烦,例如下序列:\n0x7e55、0x7d5d、XXXX、0x557d、0x5e55、0x557e..........\n转义处理以后是:\n0x55XX、0x7dXX、0x55XX、0x7e55、0x55..........\n(XX标识该位置没有数据。)\n不管是LAPS帧头、净荷还是帧尾,都有可能存在单字节的情况,对 于FPGA设计来说,单字节的帧校验序列(FCS)计算和双字节的帧校验序 列(FCS)计算是不能共用同一个模块的。这样如图4所示,现有技术, 选用两个CRC模块:一个是8比特的CRC32模块(它在一个时钟周期完成8 比特CRC计算),一个是16比特的CRC32模块(它在一个时钟周期完成16 比特CRC计算),同时这两个模块之间相互传递中间计算结果。\nCRC32校验用FPGA来实现,在一个时钟周期内完成的比特位数越多, 所耗费的资源就越多,同时电路能够达到的速率也就越低。\n如图5所示,本发明采用了一个比较好的方法来实现帧校验(CRC32 校验):采用双字节或多字节数据总线,并且在所述的帧校验过程中采 用与数据总线宽度的字节数相同的两个或多个单字节循环冗余校验CRC 模块(简称CRC模块),将它们相互串联,相邻的单字节循环冗余校验CRC 模块之间可以相互传递中间结果,每个单字节循环冗余校验CRC模块可以 输入数据和输出结果;在校验前,先对数据进行预处理:如果是多字节 有效数据,则直接把高、低字节分别送到两个或多个CRC模块,如果只有 单字节数据有效,则把有效的该字节放到其中一个CRC模块。\n对于上述的方案,当应用于数据总线宽度为双字节,即16比特的数 据时,所述CRC模块为两个8比特CRC模块,并分为高字节和低字节CRC模 块,对于双字节的有效数据,分别送入高字节和低字节CRC模块中,而对 于单字节的有效数据,将其送到高字节的CRC模块中。\n这个方法其实就是在16比特的CRC计算模块的中间开了一个口子,把 它分成两个8位的计算模块,从开的口子可以输入数据(输入低8比特数 据),和输出结果。这样可以完全的省去一个CRC8的计算资源。这样做 FPGA的资源减少很多,而且速度也能够达到100MHz的要求。\nLAPS净荷提取的过程是:剥离LAPS帧头(地址、控制、SAPI字段) 和LAPS帧尾(4字节的FCS的值)。对于双字节内部数据总线结构会遇到 单字节的问题。为了减少数据在模块内部的延时,是边收数据边剥离LAPS 开销边往下一级模块输出数据。另外如果不是净荷的帧尾,不允许向下 一级模块输出单字节。并且对于LAPS协议要求剥离掉帧头的前面四个字 节和帧尾的后面4个字节。\n本发明如图6所示,采用如下的LAPS净荷提取过程:引入多级单字节 移位管道和数据缓存装置,所述的移位管道级数至少为帧头字节数加一, 数据组装的数据来源于移位管道和数据缓存装置,并按如下步骤进行提 取:1)帧头丢弃;2)管道移位:将帧头后部的有效数据存入移位管道 中,输入数据为几个字节,移位管道就向一侧移动几个字节,位于移位 管道中的有效数据溢出,3)数据组装:根据当前状态,提取所述移位管 道和数据缓存装置中的数据后进行组装;4)帧尾丢弃。\n其中步骤3)中的数据组装可以采用如下方法:判断数据缓存装置里 是否有数据、移位管道是否有移位、移位管道移位了几个字节、管道入 口是否检测到帧尾;如果数据缓存装置中和移位管道中有有效数据,则 将数据缓存装置中的有效数据和移位管道的移位级中的有效数据一同取 出,进行组装;如果数据缓存装置中无有效数据而移位管道中有非单字 节的有效数据,则取出移位管道中的有效数据进行组装;\n其中步骤4)的过程是:当管道入口检测到帧尾时,则将移位管道中 的帧尾字节丢弃,并直接把组装移位管道剩余的有效数据,如果数据缓 存装置里边有数据的话,则一并取出。如果最后剩余一个字节,则取出 该单字节。\n以数据总线宽度为16比特的LAPS净荷提取为例,引入5级单字节移位 管道分别为第一级、第二级、第三级、第四级和第五级移位管道和一个 数据缓存装置,数据组装的数据来源于第四级和第五级移位管道和数据 缓存装置,详细流程如下:\n帧头丢弃:引入一个计数器,从LAPS帧头开始对字节计数,第四字 节以后的字节放入管道。计数器在LAPS帧尾的时候置零,在LAPS帧头开 始计数。\n管道移位:当输入数据为两个有效字节的时候,管道向右移动两个 字节。当输入数据为一个有效字节的时候,管道向右移动一个字节。\n数据缓存装置:如果移位管道中只能溢出的有效数据为一个字节时, 将该单字节数据存入数据缓存装置中;\n数据组装:如图6所示,数据组装的数据来源于数据缓存装置、第四 级移位管道中的数据即数据4和第五级移位管道中的数据即数据5。在取 数据时,判断当前状态,即数据缓存装置里边是否有数据、移位管道是 否有移位、移位管道移位了几个字节、管道入口是否检测到帧尾,确认 是否取数据以及取那个地方的数据。具体来讲有以下情况:\n(1):如管道没有移位动作但是管道入口检测到了帧尾,那么数据 缓存装置里边的数据要和管道中的第5个byte一起组装输出。\n(2):如管道没有移位动作但是管道入口没有检测到帧尾,那么 这时候继续等待不会组装。\n(3):如数据缓存装置没有数据,但是这时候管道移位了一个字 节,那么数据暂时到数据缓存装置。\n(4):如数据缓存装置有数据,但是这时候管道移位了一个字节, 那么缓冲器数据和管道中的第5个byte一起组装输出。\n总之如果当前只有一个字节可以输出,那么就暂时放于数据缓存装 置,等待筹齐了2个直接以后组装输出。如果当前有两个直接可以输出, 那么就直接输出。\n帧尾(LAPS FCS字段)丢弃:当管道入口检测到LAPS帧尾的时候, 那么第一级移位管道中的数据即数据1至第四级移位管道中的数据即数 据4肯定是四FCS字段,即应该丢弃;所以直接把第五级移位管道中的数 据即数据5,如果当前数据缓存装置里边有数据的话则将数据缓存装置里 边的数据一并输出。\n采用上述的LAPS净荷提取过程,非常方便的解决了单字节问题和 LAPS帧尾丢弃问题。所耗的资源也比较少,速度也快。本发明还是可以 实用于24bit,32bit甚至更宽的内部总线,有很强的扩展性,能够非常 方便的满足不同的SDH速率。
法律信息
- 2017-04-05
未缴年费专利权终止
IPC(主分类): H04L 12/40
专利号: ZL 03104064.0
申请日: 2003.02.20
授权公告日: 2007.05.30
- 2007-05-30
- 2005-03-30
- 2004-08-25
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2002-03-13
| | |
2
| |
2000-03-01
|
1999-07-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |