一种8B/10B编码与64B/66B编码互转的装置和方法与流程

文档序号:20949894发布日期:2020-06-02 20:04阅读:1052来源:国知局
一种8B/10B编码与64B/66B编码互转的装置和方法与流程

本发明涉及网络技术领域,尤其涉及一种8b/10b编码与64b/66b编码互转的装置和方法。



背景技术:

在网络通信高速发展的今天,对信号速率质量等要求越来越高。网络通信普遍采用高速串行传输方式,需要对信号进行编码以使信号上有足够密集的电平转换,才能保证信号正确传输,其中千兆速率采用最广泛的是8b10b编码技术,用于串行scsi,串行ata,光纤链路,吉比特以太网,pciexpress总线等。而随着带宽的需求越来越大,为了减少编码开销降低硬件的复杂性,ieee802.3工作组便为10g以太网提出了64b/66b编码技术,主要应用于fiberchannel10gfc和16gfc、10g以太网、100g以太网、10gepon、infiniband、thunderbolt和xilinx的aurora协议等。

pon(无源光网络)是指(光配线网中)不含有任何电子器件及电子电源,odn全部由光分路器(splitter)等无源器件组成,不需要贵重的有源电子设备,结构主要由中心局的光线路终端(olt:opticallineterminal)、包含无源光器件的光分配网(odn:opticaldistributionnetwork)、用户端的光网络单元/光网络终端(onu/ontopticalnetworkunit/opticalnetworkterminal)组成。

对于光线路终端(olt:opticallineterminal),其pon口采用的是点到多点(p2mp)结构的单纤双向光传输网络,在单根光纤上采用下行1490nm/上行1310nm波长组合的波分复用技术(wdm),上行方向是点到点方式使用时分复用技术(tdm),下行方向是广播方式,其发送速率1.25gbps,采用8b/10b编码数据进行传输,每个pon口只能用独立光纤进行传输,也即8pon的olt需要用8根独立光纤传输每个pon数据,这对于pon远距离传输来说,需要耗费大量的光纤用料和光纤铺设成本,而且传输距离和速率都不高。所以在pon远距离传输时,如果能只用一根光纤传输多路pon数据,将会大大节约光纤、人工成本等,单路光纤传输多路数据也将变得非常重要。

本发明通过对8路pon通道数据进行数据检测以处理数据传输延时问题,后合并成64bit数据进行10gbit/s速率传输,并在接收端进行拆分给对应8个通道进行数据接收,解决了单根光纤远距离传输多路pon通道数据问题,并且有效提高传输速率。



技术实现要素:

本发明要解决的问题是:通过单根光纤,以64b/66b编码、10gbps速率传输从8路独立pon口接收到的经过8b/10b编码、1.25gpbs速率传输过来的数据,并且对合并后的数据进行有效数据判断,拆分给对应接收通道。

为了解决上述技术问题,本发明采用如下技术手段:

一种8b/10b编码与64b/66b编码互转的装置,包括8转64模块和64转8模块,其中8转64模块包括:

通道1至通道8,用于传输8组10bit数据;

缓存器1至缓存器8,与通道1至通道8一一对应连接,用于缓存8组10bit数据;

8b/10b解码单元1至8b/10b解码单元8,与缓存器1至缓存器8一一对应连接,用于将待发送的8组10bit数据转换成8组8bit数据;

8转64单元,与8b/10b解码单元1至8b/10b解码单元8连接,用于对8个通道经解码后并行输出的8组8bit数据合成为一组64bit数据;

数据延时处理单元,与通道1至通道8、缓存器1至缓存器8和8转64单元连接,用于进行8个通道数据检测,并且在一定时间后触发8个通道的缓存器和8转64单元向下级传输数据,用以解决数据传输延时问题;

64b/66b编码单元,与8转64单元连接,用于将待发送的64bit数据转换成66bit数据;

66b数据传输单元,与64b/66b编码单元连接,用于传输66bit数据;

64转8模块包括:

64b/66b解码单元,与66b数据传输单元连接,用于将待发送的66bit数据转换成64bit数据;

64转8单元,与64b/66b解码单元连接,用于对接收到的经过解码后的一组64bit数据拆分成8组8bit数据并行输出给8个对应通道进行检测;

控制码检测单元1至控制码检测单元8,与64转8单元连接,用于进行控制起始码和结束码检测,从检测到起始码,到后面检测到结束码,中间的数据认为是有效数据,否则认为该通道没进行数据传输,接收到的是无效数据,进行丢弃,用以解决发送端数据延时过大或没进行数据传输;

8b/10b编码单元1至8b/10b编码单元8,与控制码检测单元1至控制码检测单元8一一对应连接,用于将待发送的8组8bit数据转换成8组10bit数据;

通道1传输单元至通道8传输单元,与8b/10b编码单元1至8b/10b编码单元8一一对应连接,用于传输8组10bit数据。

进一步地,所述数据延时处理单元具体包括如下步骤:

步骤ts101:定义一个8bit数据检测标志位d[7:0],分别对应8个通道,初始状态为11111111,表示无数据,数据延时处理单元对8个通道进行独立数据检测,检测到数据时对应标志位d置0,比如检测到第2路、第5路有数据,则d[7:0]变为11101101,在d恢复初始状态,即11111111状态前,已经触发的标志位d不会进行重复触发;

步骤ts102:定义一个同步信号syn,一个同步信号计数器c,计数周期为一个8b/10b编码数据时钟周期长度;在复位信号reset到来时,标志位d[7:0]恢复初始状态11111111,c开始计数,计数溢出(即一个8b/10b编码数据时钟周期长度)触发同步信号,发送一个同步时钟脉冲syn;

步骤ts103:同步时钟脉冲syn触发8个通道缓存器和8转64单元向下一级传输数据,缓存器并行输出10位8b/10b编码数据,8转64单元并行输出64bit数据,同时syn触发c清零,标志位d[7:0]恢复初始状态11111111;

步骤ts104:对于计数器c清零,任何一位标志位d为0都会触发c清零,数据最多超过7个8b/10b编码周期到达则认为该通道无数据传输,同步时钟脉冲syn和复位信号reset也会触发c清零,以确保缓存器和8转64单元输出数据没有延时。

进一步地,所述8转64单元具体包括如下步骤:

步骤ts201:每个通道缓存器输出10bit数据,采用现有8b/10b解码ip核,对8b/10b编码数据解码后并行输出;

步骤ts202:定义8个8位并行输入并行输出寄存器t[7:0],总共64位,分别映射8个通道的8位并行数据;

步骤ts203:syn同步脉冲作用于寄存器读写使能脚we,脉冲为低时,即0,寄存器的值进行锁存;脉冲为高且保持一定周期高电平时,即1,寄存器输出64bit数据。

进一步地,所述64转8单元具体包括如下步骤:

步骤rs101:采用现有64b/66b解码ip核,对经过64b/66b编码的数据进行解码后并行输出;

步骤rs102::64转8单元定义8个8位并行输入并行输出寄存器r[7:0],共64个寄存器,经过64b/66b解码后的64bit数据可以并行存入寄存器r[7:0],并分别向对应通道并行输出数据。

进一步地,所述控制码检测单元具体包括:由于8b/10b编码中将k28.1、k28.5和k28.7作为k码的控制字符,称为“comma”;在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,所以comma字符用于指示帧的开始和结束标志,如表1所示:

表1

在控制码检测单元中,定义一个标志位s,初始状态为1,当检测到k28.1、k28.5、k28.7,即00111100、10111100、11111100时,s进行翻转,当s为1时,通道接收到的数据认为是无效数据,进行丢弃;当s为0时,通道收到的数据认为是有效数据,进行传输。

一种8b/10b编码与64b/66b编码互转的方法,分为8转64模块,即8b/10b编码转64b/66b编码;64转8模块,即64b/66b编码转8b/10b编码,其中:

8转64模块包括如下步骤:

步骤ts1:进行8个通道数据检测,并且输出同步信号syn控制缓存器和8转64单元向下级输出数据;

步骤ts2:8转64单元对8路数据进行解码后合并为一组64bit数据;

步骤ts3:对64bit数据进行64b/66b编码传输;

64转8模块包括如下步骤:

步骤rs1:对从8转64模块传输过来的数据进行解码后拆分成8组8bit数据并分发给对应8个通道;

步骤rs2:每个通道都对接收到的8bit数据进行控制码检测;

步骤rs3:每个通道都对8bit数据进行8b/10b编码传输。

进一步地,步骤ts1具体包括:

步骤ts101:定义一个8bit数据检测标志位d[7:0],分别对应8个通道,初始状态为11111111,表示无数据,数据延时处理单元对8个通道进行独立数据检测,检测到数据时对应标志位d置0,比如检测到第2路、第5路有数据,则d[7:0]变为11101101,在d恢复初始状态,即11111111状态前,已经触发的标志位d不会进行重复触发;

步骤ts102:定义一个同步信号syn,一个同步信号计数器c,计数周期为一个8b/10b编码数据时钟周期长度;在复位信号reset到来时,标志位d[7:0]恢复初始状态11111111,c开始计数,计数溢出(即一个8b/10b编码数据时钟周期长度)触发同步信号,发送一个同步时钟脉冲syn;

步骤ts103:同步时钟脉冲syn触发8个通道缓存器和8转64单元向下一级传输数据,缓存器并行输出10位8b/10b编码数据,8转64单元并行输出64bit数据,同时syn触发c清零,标志位d[7:0]恢复初始状态11111111;

步骤ts104:对于计数器c清零,任何一位标志位d为0都会触发c清零,数据最多超过7个8b/10b编码周期到达则认为该通道无数据传输,同步时钟脉冲syn和复位信号reset也会触发c清零,以确保缓存器和8转64单元输出数据没有延时。

进一步地,步骤ts2中8转64单元具体包括:

步骤ts201:每个通道缓存器输出10bit数据,采用现有8b/10b解码ip核,对8b/10b编码数据解码后并行输出;

步骤ts202:定义8个8位并行输入并行输出寄存器t[7:0],总共64位,分别映射8个通道的8位并行数据;

步骤ts203:syn同步脉冲作用于寄存器读写使能脚we,脉冲为低时,即0,寄存器的值进行锁存;脉冲为高且保持一定周期高电平时,即1,寄存器输出64bit数据。

进一步地,步骤rs1中64转8单元具体包括:

步骤rs101:采用现有64b/66b解码ip核,对经过64b/66b编码的数据进行解码后并行输出;

步骤rs102:64转8单元定义8个8位并行输入并行输出寄存器r[7:0],共64个寄存器,经过64b/66b解码后的64bit数据可以并行存入寄存器r[7:0],并分别向对应通道并行输出数据。

进一步地,步骤rs2具体包括:由于8b/10b编码中将k28.1、k28.5和k28.7作为k码的控制字符,称为“comma”;在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,所以comma字符用于指示帧的开始和结束标志,如表1所示:

表1

在控制码检测单元中,定义一个标志位s,初始状态为1,当检测到k28.1、k28.5、k28.7,即00111100、10111100、11111100时,s进行翻转,当s为1时,通道接收到的数据认为是无效数据,进行丢弃;当s为0时,通道收到的数据认为是有效数据,进行传输。

本发明与现有技术相比,具有如下有益效果:

1.本发明用单路光纤传输多路pon信息,并且把传输速率提高为10gpbs,大大节约远距离光纤传输的光纤成本和传输速率。

2.本发明符合8b/10b编解码,64b/66b编解码规范,可利用现有的编解码ip核,逻辑开发高效简单。i

3.本发明通过数据检测可用有效处理各路pon通道数据延时或没有有效数据传输问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1为本发明的8转64模块示意图(由于附图大小关系,其中2~7通道省略没画出来,过程和通道1、通道8一样);

图2为本发明的64转8模块示意图(由于附图大小关系,其中2~7通道省略没画出来,过程和通道1、通道8一样);

图3为本发明的数据延时处理单元操作步骤图;

图4为本发明的8转64单元原理示意图;

图5为本发明的64转8单元原理示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

8b/10b编码将待发送的8位数据转换成10位代码组,其目的是保证直流平衡,以及足够密集的电平转换。8bit原始数据可以分成两部分:低位的5bitedcba(设其十进制数值为x)和高位的3bithgf(设其十进制数值为y),则该8bit数据可以记为d.x.y。另外,8b/10b编码中还用到12个控制字符,他们可以作为传输中帧起始、帧结束、传输空闲等状态标识,与数据字符的记法类似,控制字符一般记为k.x.y。8b/10b编码中将k28.1、k28.5和k28.7作为k码的控制字符,称为“comma”。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此可以用comma字符指示帧的开始和结束标志,或始终修正和数据流对齐的控制字符。

64b/66b编码技术是ieee802.3工作组为10g以太网提出的,目的是减少编码开销,降低硬件的复杂性,并作为8b/10b编码的另一种选择,以支持新的程序和数据。64b/66b编码将64bit数据或控制信息编码组成66bit块传输,66bit块的前两位表示同步头,主要由于接收端的数据对齐和接收数据位流的同步。同步头有“01”和“10”两种,“01“表示后面的64bit都是数据,“10”表示后面的64bit是数据和控制信息的混合,64bit的数据必须经过扰码以后才能进行传输。64b/66b编码所使用的扰码器为x58+x39+1.

fpga(fieldprogrammablegatearray)是在pal、gal等可编程器件的基础上进一步发展的产物。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单元。由于fpga作为专用集成电路(asic)领域中的一种半定制电路而出现,具有布线资源丰富,可重复编程和集成度高,投资较低的特点,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,在数字电路设计领域得到了广泛的应用。

实施例1

本发明提供一种8b/10b编码与64b/66b编码互转的装置,包括8转64模块和64转8模块,其中8转64模块包括(参考图1):

通道1至通道8,用于传输8组10bit数据;

缓存器1至缓存器8,与通道1至通道8一一对应连接,用于缓存8组10bit数据;

8b/10b解码单元1至8b/10b解码单元8,与缓存器1至缓存器8一一对应连接,用于将待发送的8组10bit数据转换成8组8bit数据;

8转64单元,与8b/10b解码单元1至8b/10b解码单元8连接,用于对8个通道经解码后并行输出的8组8bit数据合成为一组64bit数据;

数据延时处理单元,与通道1至通道8、缓存器1至缓存器8和8转64单元连接,用于进行8个通道数据检测,并且在一定时间后触发8个通道的缓存器和8转64单元向下级传输数据,用以解决数据传输延时问题;

64b/66b编码单元,与8转64单元连接,用于将待发送的64bit数据转换成66bit数据;

66b数据传输单元,与64b/66b编码单元连接,用于传输66bit数据;

64转8模块包括(参考图2):

64b/66b解码单元,与66b数据传输单元连接,用于将待发送的66bit数据转换成64bit数据;

64转8单元,与64b/66b解码单元连接,用于对接收到的经过解码后的一组64bit数据拆分成8组8bit数据并行输出给8个对应通道进行检测;

控制码检测单元1至控制码检测单元8,与64转8单元连接,用于进行控制起始码和结束码检测,从检测到起始码,到后面检测到结束码,中间的数据认为是有效数据,否则认为该通道没进行数据传输,接收到的是无效数据,进行丢弃,用以解决发送端数据延时过大或没进行数据传输;

8b/10b编码单元1至8b/10b编码单元8,与控制码检测单元1至控制码检测单元8一一对应连接,用于将待发送的8组8bit数据转换成8组10bit数据;

通道1传输单元至通道8传输单元,与8b/10b编码单元1至8b/10b编码单元8一一对应连接,用于传输8组10bit数据。

具体地,所述数据延时处理单元具体包括如下步骤(参考图3):

步骤ts101:定义一个8bit数据检测标志位d[7:0],分别对应8个通道,初始状态为11111111,表示无数据,数据延时处理单元对8个通道进行独立数据检测,检测到数据时对应标志位d置0,比如检测到第2路、第5路有数据,则d[7:0]变为11101101,在d恢复初始状态,即11111111状态前,已经触发的标志位d不会进行重复触发;

步骤ts102:定义一个同步信号syn,一个同步信号计数器c,计数周期为一个8b/10b编码数据时钟周期长度;在复位信号reset到来时,标志位d[7:0]恢复初始状态11111111,c开始计数,计数溢出(即一个8b/10b编码数据时钟周期长度)触发同步信号,发送一个同步时钟脉冲syn;

步骤ts103:同步时钟脉冲syn触发8个通道缓存器和8转64单元向下一级传输数据,缓存器并行输出10位8b/10b编码数据,8转64单元并行输出64bit数据,同时syn触发c清零,标志位d[7:0]恢复初始状态11111111;

步骤ts104:对于计数器c清零,任何一位标志位d为0都会触发c清零,数据最多超过7个8b/10b编码周期到达则认为该通道无数据传输,同步时钟脉冲syn和复位信号reset也会触发c清零,以确保缓存器和8转64单元输出数据没有延时。

具体地,所述8转64单元具体包括如下步骤(参考图4):

步骤ts201:每个通道缓存器输出10bit数据,采用现有8b/10b解码ip核,对8b/10b编码数据解码后并行输出;

步骤ts202:定义8个8位并行输入并行输出寄存器t[7:0],总共64位,分别映射8个通道的8位并行数据;

步骤ts203:syn同步脉冲作用于寄存器读写使能脚we,脉冲为低时,即0,寄存器的值进行锁存;脉冲为高且保持一定周期高电平时,即1,寄存器输出64bit数据。

具体地,所述64转8单元具体包括如下步骤(参看图5):

步骤rs101:采用现有64b/66b解码ip核,对经过64b/66b编码的数据进行解码后并行输出;

步骤rs102::64转8单元定义8个8位并行输入并行输出寄存器r[7:0],共64个寄存器,经过64b/66b解码后的64bit数据可以并行存入寄存器r[7:0],并分别向对应通道并行输出数据。

具体地,所述控制码检测单元具体包括:由于8b/10b编码中将k28.1、k28.5和k28.7作为k码的控制字符,称为“comma”;在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,所以comma字符用于指示帧的开始和结束标志,如表1所示:

表1

在控制码检测单元中,定义一个标志位s,初始状态为1,当检测到k28.1、k28.5、k28.7,即00111100、10111100、11111100时,s进行翻转,当s为1时,通道接收到的数据认为是无效数据,进行丢弃;当s为0时,通道收到的数据认为是有效数据,进行传输。

本发明8b/10b编码与64b/66b编码互转的装置,对8路通道进行数据检测和8b/10b解码得到8组8bit数据,然后合并成一组64bit数据,并且进行64b/66b编码后传输,64转8模块通过对64b/66b数据解码后拆分成8组8bit数据,并且进行控制码检测,判断为有效数据后进行传输。

实施例2

本发明还提供了一种8b/10b编码与64b/66b编码互转的方法,分为8转64模块,即8b/10b编码转64b/66b编码;64转8模块,即64b/66b编码转8b/10b编码。

8转64模块包括如下步骤:

步骤ts1:进行8个通道数据检测,并且输出同步信号syn控制缓存器和8转64单元向下级输出数据;

步骤ts2:8转64单元对8路数据进行解码后合并为一组64bit数据;

步骤ts3:对64bit数据进行64b/66b编码传输。

64转8模块包括如下步骤:

步骤rs1:对从8转64模块传输过来的数据进行解码后拆分成8组8bit数据并分发给对应8个通道;

步骤rs2:每个通道都对接收到的8bit数据进行控制码检测;

步骤rs3:每个通道都对8bit数据进行8b/10b编码传输;

上述技术方案中,步骤ts1具体包括,参考图3:

步骤ts101:定义一个8bit数据检测标志位d[7:0],分别对应8个通道,初始状态为11111111,表示无数据,数据延时处理单元对8个通道进行独立数据检测,检测到数据时对应标志位d置0,比如检测到第2路、第5路有数据,则d[7:0]变为11101101,在d恢复初始状态,即11111111状态前,已经触发的标志位d不会进行重复触发。

步骤ts102:定义一个同步信号syn,一个同步信号计数器c,计数周期为一个8b/10b编码数据时钟周期长度。在复位信号reset到来时,标志位d[7:0]恢复初始状态11111111,c开始计数,计数溢出(即一个8b/10b编码数据时钟周期长度)触发同步信号,发送一个同步时钟脉冲syn;

步骤ts103:同步时钟脉冲syn触发8个通道缓存器和8转64单元向下一级传输数据,缓存器并行输出10位8b/10b编码数据,8转64单元并行输出64bit数据,同时syn触发c清零,标志位d[7:0]恢复初始状态11111111;

步骤ts104:对于计数器c清零,任何一位标志位d为0都会触发c清零,数据最多超过7个8b/10b编码周期到达则认为该通道无数据传输,同步时钟脉冲syn和复位信号reset也会触发c清零,以确保缓存器和8转64单元输出数据没有延时。

上述技术方案中,步骤ts28转64单元具体具体包括,参看图4:

步骤ts201:每个通道缓存器输出10bit数据,采用现有8b/10b解码ip核,对8b/10b编码数据解码后并行输出。

步骤ts202:定义8个8位并行输入并行输出寄存器t[7:0],总共64位,分别映射8个通道的8位并行数据。

步骤ts203:syn同步脉冲作用于寄存器读写使能脚we,脉冲为低时,即0,寄存器的值进行锁存;脉冲为高且保持一定周期高电平时,即1,寄存器输出64bit数据。

上述技术方案中,步骤ts3具体包括:采用现有64b/66b编码ip核,对64bit数据编码后串行输出。

上述技术方案中,步骤rs164转8单元具体包括,参看图5:

步骤rs101:采用现有64b/66b解码ip核,对经过64b/66b编码的数据进行解码后并行输出。

步骤rs102::64转8单元定义8个8位并行输入并行输出寄存器r[7:0],共64个寄存器,经过64b/66b解码后的64bit数据可以并行存入寄存器r[7:0],并分别向对应通道并行输出数据。

上述技术方案中,步骤rs2具体包括:由于8b/10b编码中将k28.1、k28.5和k28.7作为k码的控制字符,称为“comma”。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,所以comma字符用于指示帧的开始和结束标志,如表1所示:

表1

在控制码检测单元中,定义一个标志位s,初始状态为1,当检测到k28.1、k28.5、k28.7,即00111100、10111100、11111100时,s进行翻转,当s为1时,通道接收到的数据认为是无效数据,进行丢弃;当s为0时,通道收到的数据认为是有效数据,进行传输。

上述技术方案中,步骤rs3具体包括:采用现有8b/10b编码单元ip核,对8bit数据进行编码后输出。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1