专利名称:利用fpga完成光传输设备嵌入式控制通道通信的实现装置的制作方法
技术领域:
本发明涉同步光网络通信技术领域,尤其涉及一种利用现场可编程逻辑器件(FPGA)实现光传输(SDH/SONET)设备之间的ECC(Embedded Control Channel)通信的装置。
背景技术:
在传统的光传输设备的1个或多个线路接口的线路板中,由FPGA器件形成的DCC处理单元完成与成帧器的开销收发对接,处理开销中1路或多路的D1~D12字节的全部或者部分,合成符合HDLC协议的数据包发送到DCC串行总线上,然后再由下一级器件完成DCC数据包格式到ECC数据包格式的协议转换,转换的方式主要有两种,实现方法如图1所示方式1利用CPU现成的串口,串口工作在HDLC协议模式,此串口直接和DCC处理单元的DCC串行总线对接,由CPU响应中断,然后再由CPU完成DCC数据的收发和协议的解析。
当CPU的HDLC通道资源不足时,就要启用方式2。
方式2利用外置的HDLC处理器扩展HDLC通道,通过HDLC处理器完成DCC数据收发,HDLC处理器通过硬件中断向CPU请求资源,并且通过并行数据地址总线和CPU进行数据对接,收发DCC数据。
最后,两种方式都是由CPU通过软件算法完成DCC数据格式到ECC数据格式的转换,然后由CPU上的HDLC串口通过HDLC总线发送给NCP网元控制板。
上述两种实现ECC通信的传统方式都占用了大量的CPU资源,随着光传输设备线路接口板的集成度不断提高,每块线路板的线路接口数量不断增加,DCC通道数量也相应增加,这就导致CPU的中断响应频繁,CPU的负荷不断加重,从而不能实时完成DCC到ECC协议转换处理,很容易造成ECC通信阻塞甚至通信中断。
发明内容
鉴于此,为了解决传统方式CPU负荷过重,不能实时完成DCC到ECC协议转换处理,容易造成ECC通信阻塞这些技术问题,本发明提出一种利用FPGA全硬件自动处理光传输设备之间ECC通信的装置,通过对FPGA进行有效的逻辑设计使得单板CPU只需在初始化时完成一些对FPGA初始化的操作,例如对寄存器进行设置,其余的协议处理工作由FPGA硬件自动完成,以下即为本发明的技术方案一种利用FPGA完成光传输设备嵌入式控制通道通信的装置,包括,至少一块网元控制板,用于网元管理和嵌入式控制通道协议的处理;至少一个数据通信通路处理单元,用于开销数据的收发;及CPU单元;其特征在于,该装置还包括现场可编程逻辑器件,完成由数据通信通路处理单元到网元控制板的数据通信通路数据到嵌入式控制通道数据的协议转换和传送,以及完成由网元控制板到数据通信通路处理单元的嵌入式控制通道数据到数据通信通路数据的协议转换和传送;缓冲区,用于由数据通信通路数据到嵌入式控制通道数据以及由嵌入式控制通道数据到数据通信通路数据的协议转换及传送过程中数据的缓存;所述网元控制板与所述现场可编程逻辑器件之间通过HDLC总线相连接;所述数据通信通路处理单元与所述现场可编程逻辑器件之间通过HDLC总线相连接;所述CPU单元与所述现场可编程逻辑器件之间线路相连,CPU单元完成对所述现场可编程逻辑器件的初始化和配置。
通过以上技术方案,解放了CPU的资源,解决了ECC通信阻塞的问题,提高了光传输网络的ECC通信的稳定性。
图1为传统的DCC-ECC转发实现方式示意图;图2为DCC-ECC转发的FPGA实现方案逻辑框图;图3为ECC-DCC的数据流向示意图;图4为ECC通道数据包的帧格式示意图;图5为标准的DCC通道数据包的帧格式示意图。
具体实施例方式
本发明利用FPGA实现ECC主控板到光通道板开销处理处的数据交换,完成HDLC协议处理,实现两边ECC和DCC数据的传送,整个传送过程不需要CPU实时控制。取代传统方案中,由CPU的HDLC通信串口或者HDLC扩展器收发串行数据(硬件部分),然后通过软件算法实时处理ECC数据和DCC数据之间转发(软件部分)的过程,实现方案如附图2所示。
整个方案的实现共分以下几个功能部分实现ECC_HDLC接收接收从ECC主控板中发来的HDLC帧,解析其中的ECC控制信息(若干字节ECC信息头),然后将符合本地的数据内容保存在缓存中。
DCC_HDLC发送从缓存取数据出来,并根据ECC_HDLC接收部分解析的ECC控制信息决定从缓存中的DCC内容通过相应的DCC端口发出去;DCC_HDLC接收(多组)多路同时接收从SDH/SONET开销处理(DCC提取)发来的HDLC帧,去掉帧头和CRC校验字节,将DCC信息内容写入缓存中。
ECC_HDLC发送将多路DCC信息内容根据优先级控制从缓存中提取出来,然后将DCC信息加上ECC控制信息(若干字节ECC信息头)、HDLC的CRC校验字和帧头,发送给ECC主控板;缓冲区包括缓冲区读写控制器,以及数据缓存区,分别对应若干路上行(DCC接收ECC发送)和下行(ECC接受DCC发送)方向。缓冲区用来缓存接收的数据,缓冲区读写控制器用来管理缓存区的读写指针和空满状态。同时完成对ECC_HDLC接收、DCC_HDLC发送、DCC_HDLC接收和ECC_HDLC发送四个模块对RAM的读写允许的分时控制;CPU接口完成对若干字节控制信息的初始化配置和各个模块工作性能的收集管理。
下面结合附图和数据处理流向对技术方案的实施作进一步的详细描述在本案例中,缓冲区控制器主要由若干个BD(buffer description)表和RAM读写控制时序组成,数据缓存采用RAM实现。在RAM中划分了若干个FIFO(firstin first out),用来缓存接收的数据;BD表用来管理FIFO区的读写指针和空满状态。
数据流向如附图3所示。
下行数据流包括步骤A、NCP网元控制板通过HDLC总线下发的数据;B、ECC_HDLC_RX接收(与本地址匹配且数据正确的)数据到RAM内;
C、从RAM中取出数据,然后从DCC_HDLC_TX的其中一个端口发送出去。
上行数据流包括步骤D、DCC_HDLC_RX接收数据(多路同时),然后将数据(只要是正确的)存放于RAM内;E、从RAM中取出数据,ECC_HDLC_TX通过HDLC总线发送出去F、NCP网元控制板接收数据。
ANCP板发数据NCP网元控制板将ECC数据包发往HDLC总线,数据格式如附图4所示,包括10字节信息头和通过DCC通道传送的ECC协议包。10字节信息头主要包括目的地址、源地址、目的端口号、帧长度、链路控制字节和3字节的保留字节。
BECC_HDLC接收发现有效帧头后,实时分析来自总线上的所有数据,只要数据包的目的地址和本地地址匹配,则把除帧头之外的数据存储到RAM中,直到发现结束帧头,然后检查数据包的状态,(数据包是否完整,是否有CRC错误),FIFO是否溢出,BD表是否溢出。如果数据包正确,FIFO和BD表没有溢出,则更新BD表,包括写入当前帧长度,并将指向BD表的指针加一个单位。BD表是一个封闭空间,如果到了表尾,则回到该BD表的表头重新开始。如果发现任何错误,则丢弃此数据包,向CPU接口的状态统计寄存器报告曾经发生错误,并将所有的指针都回到没有接收到这个数据包之前的状态。
CDCC_HDLC发送比较BD表的读写指针,如果发现指针值不同,则代表有新的ECC数据包收到,从BD表得到数据包的帧长度,并根据上一帧结束的FIFO指针加1个单位作为本帧的起始FIFO地址,根据包长度和起始指针开始从RAM内的FIFO区读回数据,并串转换,并根据ECC_HDLC_RX接收到的端口信息,决定从多个端口中的相应端口进行发送。发送完数据后,产生并发送新的CRC字节,然后发送结束标志的HDLC帧头。然后将指向BD表的指针加一个单位。
DCC_HDLC_TX发送的数据包格式如附图5所示。
DDCC_HDLC接收多个接收通道同时独立工作,发现有效帧头后开始接收数据包,并实时检查数据包的正确性,同时将数据写入FIFO中。接收到结束帧头后,检查数据包的状态,包括数据包是否完整,是否有CRC错误等,缓冲区是否溢出。如果没有错误,再读取BD表状态,检查BD表是否溢出或写满,如果没有溢出或可写,则向BD表写入当前帧长度,并将指向BD表的指针加1个单位。如果在检查中发现任何的错误,(数据包错误,或者缓冲区错误,或者是BD错误),则向CPU接口的状态统计寄存器报告曾经发生错误,所有的指针都回到没有接收到这个数据包之前的状态。
EECC_HDLC发送采用轮询方式,比较各个通道的发送BD指针与DCC_HDLC接收BD指针,如果发现不一样,则代表有新的数据包产生,则ECC_HDLC发送控制开始运作,先从RAM内读回BD信息,从中得到数据包的长度,然后根据上一帧结束的FIFO指针加一个单位作为起始FIFO指针,开始从RAM内的FIFO区读回数据,并串转换,准备发送数据,先从CPU接口配置的10字节ECC信息头寄存器中获取前十个字节的信息,作为数据的一部分发送到总线上去,然后发送FIFO中读到的数据,数据长度为BD表表示的帧长度,最后产生新的CRC字节和结束帧头。新的数据包格式如附图4所示。在发送真正完成之后,更新BD表,即指向BD表的指针加一个单位。
在发送过程中,如果出现冲突,数据包重新发送,指针回到发送完前一个帧时的状态。
FNCP网元控制板收数据这部分是在NCP网元控制板完成的,NCP板从HDLC总线上接收ECC数据包,解析10字节信息头,判断源地址和端口号从而做相应处理,并解析剥离了10字节信息头的通过DCC通道传的ECC协议包,完成DCC-ECC的连接。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种利用FPGA完成光传输设备嵌入式控制通道通信的装置,包括,至少一块网元控制板,用于网元管理和嵌入式控制通道协议的处理;至少一个数据通信通路处理单元,用于开销数据的收发;及CPU单元;其特征在于,该装置还包括现场可编程逻辑器件,完成由数据通信通路处理单元到网元控制板的数据通信通路数据到嵌入式控制通道数据的协议转换和传送,以及完成由网元控制板到数据通信通路处理单元的嵌入式控制通道数据到数据通信通路数据的协议转换和传送;缓冲区,用于由数据通信通路数据到嵌入式控制通道数据以及由嵌入式控制通道数据到数据通信通路数据的协议转换及传送过程中数据的缓存;所述网元控制板与所述现场可编程逻辑器件之间通过HDLC总线相连接;所述数据通信通路处理单元与所述现场可编程逻辑器件之间通过HDLC总线相连接;所述CPU单元与所述现场可编程逻辑器件之间线路相连,CPU单元完成对所述现场可编程逻辑器件的初始化和配置。
2.如权利要求1所述的利用FPGA完成光传输设备嵌入式控制通道通信的实现装置,其特征在于,所述的缓冲区由所述现场可编程逻辑器件内部的RAM资源构成。
3.如权利要求1所述的利用FPGA完成光传输设备嵌入式控制通道通信的实现装置,其特征在于,所述的缓冲区为一个外挂的缓冲区,并与所述现场可编程逻辑器件通过数据总线相连。
4.如权利要求3所述的利用FPGA完成光传输设备嵌入式控制通道通信的实现装置,其特征在于,所述外挂的缓冲区使用RAM实现。
5.如权利要求1所述的利用FPGA完成光传输设备嵌入式控制通道通信的实现装置,其特征在于,所述CPU单元在所述装置处于工作状态时还可以接收和处理有关所述现场可编程逻辑器件内部各模块的工作性能数据。
6.如权利要求1至3中任一权利要求所述的利用FPGA完成光传输设备嵌入式控制通道通信的实现装置,其特征在于,所述现场可编程逻辑器件包括如下模块数据通信通路接收控制模块,用于多路同时接收由数据通信通路处理单元发来的数据通信通路数据,经解析、验证后存入缓冲区,当缓冲区满或数据验证出错时进行相应的错误处理;嵌入式控制通道发送控制模块,用于将多路数据通信通路信息内容根据优先级从缓冲区中读取出来,然后加入嵌入式控制通道控制信息发送给NCP网元控制板;嵌入式控制通道接收控制模块,用于接收从网元控制板发来的嵌入式控制通道数据,解析其中嵌入式控制通道控制信息,然后将符合本地的嵌入式控制通道数据内容保存到缓冲区中,当缓冲区满或数据验证出错时进行相应的错误处理;数据通信通路发送控制模块,用于从缓冲区中读取嵌入式控制通道数据,并根据嵌入式控制通道控制信息决定从那个端口发送给数据通信通路处理单元;CPU接口模块,用于完成控制信息初始化配置和各个模块工作性能数据的收集和管理;缓冲区读写管理器,缓冲区读写管理器用来管理缓冲区的读写指针和空满状态,同时完成数据通信通路接收控制模块、嵌入式控制通道发送控制模块、嵌入式控制通道接收控制模块及数据通信通路发送控制模块对缓冲区读写允许的时分控制;所述数据通信通路接收控制模块、嵌入式控制通道发送控制模块、嵌入式控制通道接收控制模块、数据通信通路发送控制模块、CPU接口模块、缓冲区读写管理器通过内部数据总线相连。
7.如权利要求6所述的利用FPGA完成光传输设备嵌入式控制通道通信的实现装置,其特征在于,所述缓冲区控制器由若干缓冲区描述表和RAM读写控制时序组成。
全文摘要
本发明公开了一种利用现场可编程逻辑器件(FPGA)实现光传输(SDH/SONET)设备之间的ECC通信的装置。本发明提出一种利用FPGA全硬件自动处理光传输设备之间ECC通信的装置,通过对FPGA进行有效的逻辑设计使得单板CPU只需在初始化时完成一些对FPGA初始化的操作,其余的协议处理工作由FPGA硬件自动完成,本发明解决传统方式CPU负荷过重,不能实时完成DCC到ECC协议转换处理,容易造成ECC通信阻塞这些技术问题,提高了光传输网络的ECC通信的稳定性。
文档编号H04L29/06GK1988501SQ20051013244
公开日2007年6月27日 申请日期2005年12月23日 优先权日2005年12月23日
发明者刘毅, 桑吉淼 申请人:中兴通讯股份有限公司