CN113840188B - 一种利用dcc开销传输以太网数据的装置及方法 - Google Patents
一种利用dcc开销传输以太网数据的装置及方法 Download PDFInfo
- Publication number
- CN113840188B CN113840188B CN202111149075.2A CN202111149075A CN113840188B CN 113840188 B CN113840188 B CN 113840188B CN 202111149075 A CN202111149075 A CN 202111149075A CN 113840188 B CN113840188 B CN 113840188B
- Authority
- CN
- China
- Prior art keywords
- ethernet
- frame
- data
- address
- hdlc
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0005—Switch and router aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/16—Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
- H04J3/1605—Fixed allocated frame structures
- H04J3/1611—Synchronous digital hierarchy [SDH] or SONET
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种利用DCC开销传输以太网数据的装置及方法,所述装置包括CPU、以太网交换芯片、FPGA、SDH协议芯片和光模块;所述CPU与以太网交换芯片之间通过以太网接口互连,以太网交换芯片与FPGA之间通过以太网接口互连,FPGA与SDH协议芯片之间通过DCC开销接口互连,光模块与SDH协议芯片互连。所述方法包括以太网接收引擎处理流程、HDLC发送引擎处理流程、HDLC接收引擎处理流程、以太网发送引擎处理流程和流量控制处理流程,通过上述流程完成以太网数据的传输。本发明利用FPGA内部的块RAM资源实现数据缓存和地址缓存,无需FPGA外接存储器即可满足系统设计要求,相对传统方法,减少了硬件面积,减少了硬件开销,降低了系统设计复杂度。
Description
技术领域
本发明涉及SDH光网络中DCC开销和以太网数据传输领域,具体是一种利用DCC开销传输以太网数据的装置及方法。
背景技术
DCC(Data Communication Channel,数据通信信道)开销是用于SDH光网络节点之间传输网络管理数据的物理通路。网络管理数据通常为以太网数据,利用以太网接口进行传输,以太网接口的速率通常为100Mbit/s或者1000Mbit/s。DCC开销接口通常为串行数据接口,接口最大速率为768Kbit/s。以太网接口与DCC接口之间的传输速率相差悬殊,当以太网接口接收到大量突发性数据时,DCC开销接口由于带宽限制,无法及时将数据发送出去,容易产生数据丢失的问题。因此,如何解决以太网接口与DCC接口之间存在的速率差悬殊的问题,是利用DCC开销传输以太网数据的难点。传统的方法是FPGA外接大容量存储器,当以太网接口接收到大量突发性数据时,将以太网数据都缓存到外接的大容量存储器中,再通过DCC开销接口发送出去。传统方法存在的缺点是需要FPGA外接大容量存储器,额外增加硬件面积和硬件开销,增加系统设计复杂度。
发明内容
本发明针对现有技术的不足,提供了一种利用DCC开销传输以太网数据的装置及方法,应用于SDH光网络中,利用DCC开销传输以太网数据,为网络管理数据提供传输通道。
本发明一种利用DCC开销传输以太网数据的装置,包括CPU、以太网交换芯片、FPGA、SDH协议芯片和光模块;所述CPU与以太网交换芯片之间通过以太网接口互连,以太网交换芯片与FPGA之间通过以太网接口互连, FPGA与SDH协议芯片之间通过DCC开销接口互连,光模块与SDH协议芯片互连。
所述CPU的以太网接口MAC层具有流量控制功能,用于发送和接收SDH光网络的管理、维护数据。
所述以太网交换芯片各以太网端口具有流量控制功能,用于以太网数据包的交换,可实现多路DCC开销传输以太网数据的功能。
所述SDH协议芯片具有DCC开销接口,用于SDH信号成帧、解帧、开销处理等功能。
所述光模块用于光/电转换,实现SDH信号光纤传输。
所述FPGA包括一组依次连接的以太网接收适配模块、以太网接收引擎、以太网数据缓存模块和HDLC发送引擎;以及以太网帧地址缓存模块;
所述以太网帧地址缓存模块的输入端与以太网接收引擎连接,输出端与HDLC发送引擎连接;
所述FPGA还包括一组依次连接的HDLC接收引擎、HDLC数据缓存模块、以太网发送引擎和以太网发送适配模块;以及HDLC帧地址缓存模块;
所述HDLC帧地址缓存模块的输入端与HDLC接收引擎连接,输出端与以太网发送引擎连接;
所述FPGA还包括以太网数据缓存剩余空间计算模块和PAUSE帧生成模块;
所述以太网数据缓存剩余空间计算模块的输入端分别与以太网接收引擎和HDLC发送引擎连接,输出端与PAUSE帧生成模块连接;
所述PAUSE帧生成模块的输入端与以太网数据缓存剩余空间计算模块连接,输出端与以太网发送引擎连接。
所述以太网接收适配模块将以太网接口输入的信号转换为以字节为单位的数据流;
所述以太网接收引擎实现以太网帧的起始和结束检测,实现以太网帧的CRC32校验,将校验通过的以太网帧的前导码和CRC32字节删除得到净荷数据,将净荷数据写入以太网数据缓存模块,记录净荷数据存储的首地址和尾地址,将地址信息写入以太网帧地址缓存模块;
所述以太网数据缓存模块使用FPGA内部的块RAM资源,为简单双端口RAM,以太网接收引擎从其中一个端口写入数据,HDLC发送引擎从另一个端口读取数据。
所述以太网帧地址缓存模块使用FPGA内部的块RAM资源,为通用FIFO,以太网接收引擎将净荷数据的首地址和尾地址写入FIFO,HDLC发送引擎从FIFO中读取净荷数据的首地址和尾地址。
所述HDLC发送引擎从以太网帧地址缓存模块读取待发送的净荷数据的首地址和尾地址,然后再根据地址信息从以太网数据缓存模块中读取净荷数据,对净荷数据进行CRC16校验,将校验结果填充至净荷数据末尾形成HDLC帧,对HDLC帧的数据进行5个连续bit1插入1个bit0的操作,对于空闲数据发送空闲码“01111110” ,最后将数据进行并串转换,发送至DCC开销接口。
所述以太网数据缓存剩余空间计算模块从以太网接收引擎获取写地址,从HDLC发送引擎获取读地址,并根据写地址、读地址和总存储空间计算出数据缓存的剩余空间。
所述PAUSE帧生成模块,用于生成PAUSE帧,根据以太网数据缓存剩余空间大小,动态调整PAUSE帧中携带的暂停时间信息;动态调整的策略是,当剩余空间减小时,暂停时间信息增大,增加以太网交换机发送以太网帧的时间间隔;当剩余空间增大时,暂停时间信息减小,减少以太网交换机发送以太网帧的时间间隔。PAUSE帧生成之后,向以太网发送引擎请求发送PAUSE帧,以太网发送引擎发送完当前以太网帧之后,优先发送PAUSE帧。
所述HDLC接收引擎接收DCC开销接口的串行数据,通过检测非空闲码“01111110”识别HDLC帧的起始和结束,对HDLC帧数据进行5个连续bit1删除1个bit0的操作,然后进行串并转换,恢复出以字节为单位的HDLC帧,对HDLC帧的净荷数据进行CRC16检验,将校验通过的净荷数据写入HDLC数据缓存模块,记录净荷数据存储的首地址和尾地址,将地址信息写入HDLC帧地址缓存模块。
所述HDLC数据缓存模块使用FPGA内部的块RAM资源,为简单双端口RAM,HDLC接收引擎从其中一个端口写入数据,以太网发送引擎从另一个端口读取数据。
所述HDLC帧地址缓存模块使用FPGA内部的块RAM资源,为通用FIFO,HDLC接收引擎将HDLC净荷数据的首地址和尾地址写入FIFO,以太网发送引擎从FIFO中读取净荷数据的首地址和尾地址。
所述以太网发送引擎,首先判断PAUSE帧生成模块是否存在PAUSE帧发送请求,如果存在PAUSE帧发送请求,则优先发送PAUSE帧,如果不存在PAUSE帧发送请求,则从HDLC帧地址缓存模块读取待发送的净荷数据的首地址和尾地址;然后再根据地址信息从HDLC数据缓存模块中读取净荷数据,对净荷数据进行CRC32校验,将前导码插入到净荷数据开头,将校验结果填充至净荷数据末尾,形成以太网帧。
所述以太网发送适配模块将以字节为单位的数据流转换成以太网接口输出的信号。
本发明提供了一种利用DCC开销传输以太网数据的方法,所述方法包括以太网接收引擎处理流程、HDLC发送引擎处理流程、HDLC接收引擎处理流程、以太网发送引擎处理流程和流量控制处理流程,通过上述流程完成以太网数据的传输。
所述以太网接收引擎处理流程包括以下步骤:
S101、以太网接收引擎处于空闲状态时,实时检测是否接收到以太网帧的起始标志,如果检测到以太网帧的起始标志,则执行S102,否则停留在空闲状态;
S102、记录以太网帧净荷数据存储的首地址;
S103、接收以太网帧净荷数据,同时对接收到的以太网帧净荷数据进行CRC32校验和数据长度计算操作,并实时检测是否接收到以太网帧的结束标志,如果检测到以太网帧的结束标志,则执行S104,否则继续接收以太网帧净荷数据;
S104、记录以太网帧净荷数据存储的尾地址;
S105、判决接收到的以太网帧净荷数据是否存在错误,错误的类型包括CRC32检验错误、数据长度错误,如果检测到错误则丢弃该以太网帧,如果没有检测到错误,则执行S106;
S106、将以太网帧的净荷数据存储到以太网数据缓存模块;
S107、将以太网帧的净荷数据的首地址和尾地址存储到以太网帧地址缓存模块,并返回S101。
所述HDLC发送引擎处理流程包括以下步骤:
S201、HDLC发送引擎处于空闲状态时,发送空闲码“01111110”,并实时检测以太网帧地址缓存模块是否为非空,如果检测到以太网帧地址缓存模块为非空,则执行S202,否则停留在空闲状态;
S202、读取以太网帧地址缓存模块中的净荷数据的首地址和尾地址;
S203、根据首地址,从以太网数据缓存模块中读取净荷数据,进行并串转换发送,并执行5个连续bit1插入1个bit0的操作,同时对读取的净荷数据进行CRC16校验;
S204、实时检测读地址是否到达尾地址,如果读地址到达尾地址,则获取计算出来的CRC16校验值,进行并串转换发送,并执行5个连续bit1插入1个bit0的操作,如果读地址没有到达尾地址,则返回S203;
S205、HDLC帧发送结束后,等待特定时间,返回S201。
所述HDLC接收引擎处理流程包括以下步骤:
S301、HDLC接收引擎处于空闲状态时,实时检测是否接收到非空闲码“01111110”的数据,如果检测到非空闲码“01111110”的数据,则执行S302,否则停留在空闲状态;
S302、记录HDLC帧净荷数据存储的首地址;
S303、接收HDLC帧数据,并执行5个连续bit1删除1个bit0的操作,进行串并转换,同时对接收到的HDLC帧净荷数据进行CRC16校验和数据长度计算操作,并实时检测是否接收到空闲码“01111110”的数据,如果检测到空闲码“01111110”的数据,则执行S304,否则继续接收HDLC帧净荷数据;
S304、记录HDLC帧净荷数据存储的尾地址;
S305、判决接收到的HDLC帧净荷数据是否存在错误,错误的类型包括CRC16检验错误、数据长度错误,如果检测到错误则丢弃该HDLC帧,如果没有检测到错误,则执行S306;
S306、将HDLC帧的净荷数据存储到HDLC数据缓存模块;
S307、将HDLC帧的净荷数据的首地址和尾地址存储到HDLC帧地址缓存模块,并返回S301。
所述以太网发送引擎处理流程包括以下步骤:
S401、以太网发送引擎处于空闲状态时,实时检测是否有PAUSE帧需要发送,如果有PAUSE帧需要发送则执行S402,否则执行S403;
S402、发送PAUSE帧;
S403、实时检测HDLC帧地址缓存模块是否为非空,如果检测到HDLC帧地址缓存模块为非空,则执行S404,否则返回S401;
S404、发送前导码;
S405、读取HDLC帧地址缓存模块中的净荷数据的首地址和尾地址;
S406、根据首地址,从HDLC数据缓存模块中读取净荷数据并发送,同时对读取的净荷数据进行CRC32校验;
S407、实时检测读地址是否到达尾地址,如果读地址到达尾地址,则获取计算出来的CRC32校验值并发送,如果读地址没有到达尾地址,则返回S406;
S408、以太网帧发送结束后,等待特定时间,返回S401。
所述流量控制处理流程包括以下步骤:
S501、从以太网接收引擎获取以太网数据缓存模块的写地址,从HDLC发送引擎获取以太网数据缓存模块的读地址;
S502、根据获取的写地址和读地址计算以太网数据缓存的剩余空间,当写地址大于读地址时,剩余空间按照如下公式进行计算:
(1)
式中,s为以太网数据缓存的剩余空间,K为以太网数据缓存总容量,w为写地址,r为读地址;
当读地址大于写地址时,剩余空间按照如下公式进行计算:
(2)
式中,s为以太网数据缓存的剩余空间,w为写地址,r为读地址;
S503、根据剩余空间大小确定PAUSE帧中的暂停时间信息,暂停时间信息确定按照如下公式进行计算:
(3)
式中,p为PAUSE帧中的暂停时间信息,s为以太网数据缓存的剩余空间,M为PAUSE帧中的暂停时间信息取值范围的最大值,N为以太网数据缓存地址空间范围的最大值;
S504、将暂停时间信息插入到PAUSE帧中,生成完整的PAUSE帧;
S505、通过以太网发送引擎将PAUSE帧发送给交换芯片,设置PAUSE帧生成的周期为;
S506、交换芯片接收到PAUSE帧后,提取暂停时间信息;
S507、交换芯片根据暂停时间信息确定该端口发送以太网帧的时间间隔,时间间隔按照如下公式进行计算:
(4)
式中,为交换机发送以太网帧的时间间隔,p为PAUSE帧中的暂停时间信息,n为暂停时间量子,暂停时间量子代表传输512bit以太网数据所需要的时间;
S508、交换芯片的端口在发送完当前的以太网帧之后,将该端口的以太网帧的发帧间隔调整为。
本发明方法使用流量控制机制,根据以太网数据缓存模块剩余空间大小,动态调整PAUSE帧中携带的暂停时间信息,并通过PAUSE帧周期性地反馈给以太网交换芯片。以太网交换芯片根据暂停时间信息动态调整发帧间隔,确保FPGA内部的以太网数据缓存模块不溢出,从而解决了以太网接口与DCC接口之间存在的速率差悬殊的问题。本发明利用FPGA内部的块RAM资源实现数据缓存和地址缓存,无需FPGA外接存储器即可满足系统设计要求,相对传统方法,减少了硬件面积,减少了硬件开销,降低了系统设计复杂度。
附图说明
图1为本发明利用DCC开销传输以太网数据的装置的示意图;
图2为本发明以太网帧及其净荷数据定义的示意图;
图3为本发明HDLC帧及其净荷数据定义的示意图;
图4为本发明PAUSE帧及其暂停时间信息定义的示意图;
图5为本发明利用DCC开销传输以太网数据的方法的以太网接收引擎处理流程图;
图6为本发明利用DCC开销传输以太网数据的方法的HDLC发送引擎处理流程图;
图7为本发明利用DCC开销传输以太网数据的方法的HDLC接收引擎处理流程图;
图8为本发明利用DCC开销传输以太网数据的方法的以太网发送引擎处理流程图;
图9为本发明利用DCC开销传输以太网数据的方法的流量控制处理流程图;
图10为本实施例以太网交换机发送以太网帧的时间间隔随着以太网数据缓存剩余空间变化的示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步说明,但不是以本发明的限定。
实施例
一种利用DCC开销传输以太网数据的装置,如图1所示,包括CPU、以太网交换芯片、FPGA、SDH协议芯片和光模块;所述CPU与以太网交换芯片之间通过以太网接口互连,以太网交换芯片与FPGA之间通过以太网接口互连, FPGA与SDH协议芯片之间通过DCC开销接口互连,光模块与SDH协议芯片互连。
如图1所示, FPGA包括一组依次连接的以太网接收适配模块、以太网接收引擎、以太网数据缓存模块和HDLC发送引擎,以及以太网帧地址缓存模块模块;
以太网帧地址缓存模块的输入端与以太网接收引擎连接,输出端与HDLC发送引擎连接;
FPGA还包括一组依次连接的HDLC接收引擎、HDLC数据缓存模块、以太网发送引擎和以太网发送适配模块,以及HDLC帧地址缓存模块;
HDLC帧地址缓存模块的输入端与HDLC接收引擎连接,输出端与以太网发送引擎连接;
FPGA还包括以太网数据缓存剩余空间计算模块和PAUSE帧生成模块;
以太网数据缓存剩余空间计算模块的输入端分别与以太网接收引擎和HDLC发送引擎连接,输出端与PAUSE帧生成模块连接;
PAUSE帧生成模块的输入端与以太网数据缓存剩余空间计算模块连接,输出端与以太网发送引擎连接。
本实施例,假设以太网接口为MII接口,速率为100Mbit/s,DCC开销接口为时钟和数据的串行接口,速率为768Kbit/s。假设以太网数据缓存模块和HDLC数据缓存模块大小为64KB,其地址空间范围为0x0000-0xFFFF。假设以太网帧地址缓存模块和HDLC帧地址缓存模块的存储深度为1024。数据的转换包括以太网帧转换为HDLC帧、HDLC帧转换为以太网帧,以太网帧的定义如图2所示,HDLC帧的定义如图3所示。
用于流量控制的PAUSE帧的定义如图4所示,设置PAUSE帧生成的周期为,暂停时间信息的取值范围为0-65535,十六进制表示为0x0000-0xFFFF,单位为暂停时间量子,一个暂停时间量子代表传输512bit以太网数据所需要的时间。
一种利用DCC开销传输以太网数据的方法,包括以太网接收引擎处理流程、HDLC发送引擎处理流程、HDLC接收引擎处理流程、以太网发送引擎处理流程和流量控制处理流程。
本实施例,假设当前待传输的以太网帧(Frame_ETH_i)的净荷数据长度为256字节,当前以太网接收引擎的写地址为0x0200,以太网接收引擎处理流程如图5所示,具体步骤如下:
S101、以太网接收引擎处于空闲状态时,实时检测是否接收到以太网帧的起始标志,如果检测到以太网帧的起始标志,则执行S102,否则停留在空闲状态;
S102、记录以太网帧净荷数据存储的首地址0x0200;
S103、接收以太网帧净荷数据,同时对接收到的以太网帧净荷数据进行CRC32校验和数据长度计算操作,并实时检测是否接收到以太网帧的结束标志,如果检测到以太网帧的结束标志,则执行S104,否则继续接收以太网帧净荷数据;
S104、记录以太网帧净荷数据存储的尾地址0x02FF,以太网帧的净荷数据长度为256字节,转换为十六进制为0x100,尾地址0x02FF=首地址0x0200+长度0x100-1;
S105、判决接收到的以太网帧净荷数据是否存在错误,错误的类型包括CRC32检验错误、数据长度错误,如果检测到错误则丢弃该以太网帧,如果没有检测到错误,则执行S106;
S106、将以太网帧的净荷数据存储到以太网数据缓存模块;
S107、将以太网帧的净荷数据的首地址0x0200和尾地址0x02FF存储到以太网帧地址缓存模块,并返回S101。
以太网帧地址缓存模块为先进先出FIFO,HDLC发送引擎依次读取以太网帧地址缓存模块的地址信息并进行HDLC帧发送,假设经过一定时间后读取到上述传输的以太网帧(Frame_ETH_i)的地址信息,HDLC发送引擎处理流程如图6所示,具体步骤如下:
S201、HDLC发送引擎处于空闲状态时,发送空闲码“01111110”,并实时检测以太网帧地址缓存模块是否为非空,如果检测到以太网帧地址缓存模块为非空,则执行S202,否则停留在空闲状态;
S202、读取以太网帧地址缓存模块中的净荷数据的首地址0x0200和尾地址0x02FF;
S203、根据首地址,从以太网数据缓存模块中读取净荷数据,进行并串转换发送,并执行5个连续bit1插入1个bit0的操作,同时对读取的净荷数据进行CRC16校验;
S204、实时检测读地址是否到达尾地址0x02FF,如果读地址到达尾地址0x02FF,则获取计算出来的CRC16校验值,进行并串转换发送,并执行5个连续bit1插入1个bit0的操作,如果读地址没有到达尾地址0x02FF,则返回S203;
S205、HDLC帧发送结束后,等待特定时间,返回S201。
本实施例,假设当前待传输的HDLC帧(Frame_HDLC_i)的净荷数据长度为512字节,当前HDLC接收引擎的写地址为0x0300,HDLC接收引擎处理流程如图7所示,具体步骤如下:
S301、HDLC接收引擎处于空闲状态时,实时检测是否接收到非空闲码“01111110”的数据,如果检测到非空闲码“01111110”的数据,则执行步骤二,否则停留在空闲状态;
S302、记录HDLC帧净荷数据存储的首地址0x0300;
S303、接收HDLC帧数据,并执行5个连续bit1删除1个bit0的操作,进行串并转换,同时对接收到的HDLC帧净荷数据进行CRC16校验和数据长度计算操作,并实时检测是否接收到空闲码“01111110”的数据,如果检测到空闲码“01111110”的数据,则执行步骤四,否则继续接收HDLC帧净荷数据;
S304、记录HDLC帧净荷数据存储的尾地址0x04FF,HDLC帧的净荷数据长度为512字节,转换为十六进制为0x200,尾地址0x04FF=首地址0x0300+长度0x200-1;;
S305、判决接收到的HDLC帧净荷数据是否存在错误,错误的类型包括CRC16检验错误、数据长度错误,如果检测到错误则丢弃该HDLC帧,如果没有检测到错误,则执行S306;
S306、将HDLC帧的净荷数据存储到HDLC数据缓存模块;
S307、将HDLC帧的净荷数据的首地址0x0300和尾地址0x04FF存储到HDLC帧地址缓存模块,并返回S301。
HDLC帧地址缓存模块为先进先出FIFO,以太网发送引擎依次读取HDLC帧地址缓存模块的地址信息并进行以太网帧发送,假设经过一定时间后读取到上述传输的HDLC帧(Frame_HDLC_i)的地址信息,以太网发送引擎处理流程如图8所示,具体步骤如下:
S401、以太网发送引擎处于空闲状态时,实时检测是否有PAUSE帧需要发送,如果有PAUSE帧需要发送则执行S402,否则执行S403;
S402、发送PAUSE帧;
S403、实时检测HDLC帧地址缓存模块是否为非空,如果检测到HDLC帧地址缓存模块为非空,则执行步骤四,否则返回S401;
S404、发送前导码;
S405、读取HDLC帧地址缓存模块中的净荷数据的首地址0x0300和尾地址0x04FF;
S406、根据首地址,从HDLC数据缓存模块中读取净荷数据并发送,同时对读取的净荷数据进行CRC32校验;
S407、实时检测读地址是否到达尾地址0x04FF,如果读地址到达尾地址0x04FF,则获取计算出来的CRC32校验值并发送,如果读地址没有到达尾地址0x04FF,则返回S406;
S408、以太网帧发送结束后,等待特定时间,返回S401。
流量控制需要达到的目的是,根据以太网数据缓存模块剩余空间大小,动态调整以太网交换芯片的发帧间隔,确保FPGA内部的以太网数据缓存模块不溢出。
本实施例,分别从以太网数据缓存剩余空间占比为2.34%时和以太网数据缓存剩余空间占比为98.05%时两种情况说明本发明流量控制处理流程如何达到上述目的。
本实施例,假设以太网数据缓存模块剩余空间占比为2.34%时,假设以太网接收引擎的写地址为0x5000,HDLC发送引擎的读地址为0x5600,流量控制处理流程如图9所示,具体步骤如下:
S501、从以太网接收引擎获取以太网数据缓存模块的写地址0x5000,从HDLC发送引擎获取以太网数据缓存模块的读地址0x5600;
S502、根据获取的写地址和读地址计算以太网数据缓存模块的剩余空间,读地址大于写地址,根据公式(2)计算以太网数据缓存模块的剩余空间s为:
(2)
S503、根据剩余空间大小确定PAUSE帧中的暂停时间信息,根据公式(3)确定暂停时间信息,暂停时间信息取值范围的最大值M=0xFFFF,以太网数据缓存地址空间范围的最大值N=0xFFFF,则暂停时间信息p为:
(3)
S504、将暂停时间信息插入到PAUSE帧中,生成完整的PAUSE帧;
S505、通过以太网发送引擎将PAUSE帧发送给交换芯片;
S506、交换芯片接收到PAUSE帧后,提取暂停时间信息0xF9FF;
S507、交换芯片根据暂停时间信息确定该端口发送以太网帧的时间间隔,根据PAUSE帧的定义,暂停时间信息p为0xF9FF,换算成十进制为63999个暂停时间量子,一个暂停时间量子代表传输512bit以太网数据所需要的时间,对于速率为100Mbit/s的以太网接口,暂停时间量子n代表的时长为5.12us,则根据公式(4),计算交换机发送以太网帧的时间间隔为:
;
S508、交换芯片的端口在发送完当前的以太网帧之后,将该端口的以太网帧的发帧间隔调整为327.7ms。
本实施例,假设以太网数据缓存剩余空间占比为98.05%时,假设以太网接收引擎的写地址为0x3500,HDLC发送引擎的读地址为0x3000,流量控制处理流程如图9所示,具体步骤如下:
S501、从以太网接收引擎获取以太网数据缓存的写地址0x3500,从HDLC发送引擎获取以太网数据缓存的读地址0x3000;
S502、根据获取的写地址和读地址计算以太网数据缓存的剩余空间,写地址大于读地址,根据公式(1)计算以太网数据缓存的剩余空间s为:
(1)
S503、根据剩余空间大小确定PAUSE帧中的暂停时间信息,根据公式(3)确定暂停时间信息,暂停时间信息取值范围的最大值M=0xFFFF,以太网数据缓存地址空间范围的最大值N=0xFFFF,则暂停时间信息p为:
(3)
S504、将暂停时间信息插入到PAUSE帧中,生成完整的PAUSE帧;
S505、通过以太网发送引擎将PAUSE帧发送给交换芯片;
S506、交换芯片接收到PAUSE帧后,提取暂停时间信息0x500;
S507、交换芯片根据暂停时间信息确定该端口发送以太网帧的时间间隔,根据PAUSE帧的定义,暂停时间信息p为0x500,换算成十进制为1280个暂停时间量子,一个暂停时间量子代表传输512bit以太网数据所需要的时间,对于速率为100Mbit/s的以太网接口,暂停时间量子n代表的时长为5.12us,则根据公式(4),计算交换机发送以太网帧的时间间隔为:
(4)
S508、交换芯片的端口在发送完当前的以太网帧之后,将该端口的以太网帧的发帧间隔调整为6.6ms。
进一步,将以太网数据缓存剩余空间与以太网交换机发送以太网帧的时间间隔之间的对应关系以坐标轴的方式表示出来,如图10所示,图中的A点代表以太网数据缓存剩余空间占比为2.34%时的情况,交换机发送以太网帧的时间间隔为327.7ms,图中的B点代表以太网数据缓存剩余空间占比为98.05%时的情况,交换机发送以太网帧的时间间隔为6.6ms。由图10可知,当剩余空间的占比取值由A点到B点方向变化时,以太网数据缓存剩余空间变大,以太网交换机发送以太网帧的时间间隔变小。当剩余空间的占比取值由B点到A点方向变化时,以太网数据缓存剩余空间变小,以太网交换机发送以太网帧的时间间隔变大。因此,本发明可以在保证DCC开销接口带宽利用率的情况下,确保以太网数据缓存不溢出,确保以太网数据不丢失。
Claims (8)
1.一种利用DCC开销传输以太网数据的装置,其特征在于:所述装置包括CPU、以太网交换芯片、FPGA、SDH协议芯片和光模块;
所述CPU与以太网交换芯片之间通过以太网接口互连,以太网交换芯片与FPGA之间通过以太网接口互连, FPGA与SDH协议芯片之间通过DCC开销接口互连,光模块与SDH协议芯片互连;
所述CPU的以太网接口MAC层具有流量控制功能,用于发送和接收SDH光网络的管理、维护数据;
所述以太网交换芯片各以太网端口具有流量控制功能,用于以太网数据包的交换,可实现多路DCC开销传输以太网数据的功能;
所述SDH协议芯片具有DCC开销接口,用于SDH信号成帧、解帧、开销处理等功能;
所述光模块用于光/电转换,实现SDH信号光纤传输;
所述FPGA包括一组依次连接的以太网接收适配模块、以太网接收引擎、以太网数据缓存模块和HDLC发送引擎;以及以太网帧地址缓存模块;
所述以太网帧地址缓存模块的输入端与以太网接收引擎连接,输出端与HDLC发送引擎连接;
所述FPGA还包括一组依次连接的HDLC接收引擎、HDLC数据缓存模块、以太网发送引擎和以太网发送适配模块;以及HDLC帧地址缓存模块;
所述HDLC帧地址缓存模块的输入端与HDLC接收引擎连接,输出端与以太网发送引擎连接;
所述FPGA还包括以太网数据缓存剩余空间计算模块和PAUSE帧生成模块;
所述以太网数据缓存剩余空间计算模块的输入端分别与以太网接收引擎和HDLC发送引擎连接,输出端与PAUSE帧生成模块连接;
所述PAUSE帧生成模块的输入端与以太网数据缓存剩余空间计算模块连接,输出端与以太网发送引擎连接。
2.根据权利要求1所述的利用DCC开销传输以太网数据的装置,其特征在于:
所述以太网接收适配模块将以太网接口输入的信号转换为以字节为单位的数据流;
所述以太网接收引擎实现以太网帧的起始和结束检测,实现以太网帧的CRC32校验,将校验通过的以太网帧的前导码和CRC32字节删除得到净荷数据,将净荷数据写入以太网数据缓存模块,记录净荷数据存储的首地址和尾地址,将地址信息写入以太网帧地址缓存模块;
所述以太网数据缓存模块使用FPGA内部的块RAM资源,为简单双端口RAM,以太网接收引擎从其中一个端口写入数据,HDLC发送引擎从另一个端口读取数据;
所述以太网帧地址缓存模块使用FPGA内部的块RAM资源,为通用FIFO,以太网接收引擎将净荷数据的首地址和尾地址写入FIFO,HDLC发送引擎从FIFO中读取净荷数据的首地址和尾地址;
所述HDLC发送引擎从以太网帧地址缓存模块读取待发送的净荷数据的首地址和尾地址,然后再根据地址信息从以太网数据缓存模块中读取净荷数据,对净荷数据进行CRC16校验,将校验结果填充至净荷数据末尾形成HDLC帧,对HDLC帧的数据进行5个连续bit1插入1个bit0的操作,对于空闲数据发送空闲码“01111110” ,最后将数据进行并串转换,发送至DCC开销接口;
所述以太网数据缓存剩余空间计算模块从以太网接收引擎获取写地址,从HDLC发送引擎获取读地址,并根据写地址、读地址和总存储空间计算出数据缓存的剩余空间;
所述PAUSE帧生成模块,用于生成PAUSE帧,根据以太网数据缓存剩余空间大小,动态调整PAUSE帧中携带的暂停时间信息;动态调整的策略是,当剩余空间减小时,暂停时间信息增大,增加以太网交换机发送以太网帧的时间间隔;当剩余空间增大时,暂停时间信息减小,减少以太网交换机发送以太网帧的时间间隔;PAUSE帧生成之后,向以太网发送引擎请求发送PAUSE帧,以太网发送引擎发送完当前以太网帧之后,优先发送PAUSE帧;
所述HDLC接收引擎接收DCC开销接口的串行数据,通过检测非空闲码“01111110”识别HDLC帧的起始和结束,对HDLC帧数据进行5个连续bit1删除1个bit0的操作,然后进行串并转换,恢复出以字节为单位的HDLC帧,对HDLC帧的净荷数据进行CRC16检验,将校验通过的净荷数据写入HDLC数据缓存模块,记录净荷数据存储的首地址和尾地址,将地址信息写入HDLC帧地址缓存模块;
所述HDLC数据缓存模块使用FPGA内部的块RAM资源,为简单双端口RAM,HDLC接收引擎从其中一个端口写入数据,以太网发送引擎从另一个端口读取数据;
所述HDLC帧地址缓存模块使用FPGA内部的块RAM资源,为通用FIFO,HDLC接收引擎将HDLC净荷数据的首地址和尾地址写入FIFO,以太网发送引擎从FIFO中读取净荷数据的首地址和尾地址;
所述以太网发送引擎首先判断PAUSE帧生成模块是否存在PAUSE帧发送请求,如果存在PAUSE帧发送请求,则优先发送PAUSE帧,如果不存在PAUSE帧发送请求,则从HDLC帧地址缓存模块读取待发送的净荷数据的首地址和尾地址,然后再根据地址信息从HDLC数据缓存模块中读取净荷数据,对净荷数据进行CRC32校验,将前导码插入到净荷数据开头,将校验结果填充至净荷数据末尾,形成以太网帧;
所述以太网发送适配模块将以字节为单位的数据流转换成以太网接口输出的信号。
3.根据权利要求1-2任一项所述的装置传输以太网数据的方法,其特征在于:所述方法包括以太网接收引擎处理流程、HDLC发送引擎处理流程、HDLC接收引擎处理流程、以太网发送引擎处理流程和流量控制处理流程,通过上述流程完成以太网数据的传输。
4.根据权利要求3所述传输以太网数据的方法,其特征在于:所述以太网接收引擎处理流程包括以下步骤:
S101、以太网接收引擎处于空闲状态时,实时检测是否接收到以太网帧的起始标志,如果检测到以太网帧的起始标志,则执行S102,否则停留在空闲状态;
S102、记录以太网帧净荷数据存储的首地址;
S103、接收以太网帧净荷数据,同时对接收到的以太网帧净荷数据进行CRC32校验和数据长度计算操作,并实时检测是否接收到以太网帧的结束标志,如果检测到以太网帧的结束标志,则执行S104,否则继续接收以太网帧净荷数据;
S104、记录以太网帧净荷数据存储的尾地址;
S105、判决接收到的以太网帧净荷数据是否存在错误,错误的类型包括CRC32检验错误、数据长度错误,如果检测到错误则丢弃该以太网帧,如果没有检测到错误,则执行S106;
S106、将以太网帧的净荷数据存储到以太网数据缓存模块;
S107、将以太网帧的净荷数据的首地址和尾地址存储到以太网帧地址缓存模块,并返回S101。
5.根据权利要求3所述传输以太网数据的方法,其特征在于:所述HDLC发送引擎处理流程包括以下步骤:
S201、HDLC发送引擎处于空闲状态时,发送空闲码“01111110”,并实时检测以太网帧地址缓存模块是否为非空,如果检测到以太网帧地址缓存模块为非空,则执行S202,否则停留在空闲状态;
S202、读取以太网帧地址缓存模块中的净荷数据的首地址和尾地址;
S203、根据首地址,从以太网数据缓存模块中读取净荷数据,进行并串转换发送,并执行5个连续bit1插入1个bit0的操作,同时对读取的净荷数据进行CRC16校验;
S204、实时检测读地址是否到达尾地址,如果读地址到达尾地址,则获取计算出来的CRC16校验值,进行并串转换发送,并执行5个连续bit1插入1个bit0的操作,如果读地址没有到达尾地址,则返回S203;
S205、HDLC帧发送结束后,等待特定时间,返回S201。
6.根据权利要求3所述传输以太网数据的方法,其特征在于:所述HDLC接收引擎处理流程包括以下步骤:
S301、HDLC接收引擎处于空闲状态时,实时检测是否接收到非空闲码“01111110”的数据,如果检测到非空闲码“01111110”的数据,则执行S302,否则停留在空闲状态;
S302、记录HDLC帧净荷数据存储的首地址;
S303、接收HDLC帧数据,并执行5个连续bit1删除1个bit0的操作,进行串并转换,同时对接收到的HDLC帧净荷数据进行CRC16校验和数据长度计算操作,并实时检测是否接收到空闲码“01111110”的数据,如果检测到空闲码“01111110”的数据,则执行S304,否则继续接收HDLC帧净荷数据;
S304、记录HDLC帧净荷数据存储的尾地址;
S305、判决接收到的HDLC帧净荷数据是否存在错误,错误的类型包括CRC16检验错误、数据长度错误,如果检测到错误则丢弃该HDLC帧,如果没有检测到错误,则执行S306;
S306、将HDLC帧的净荷数据存储到HDLC数据缓存模块;
S307、将HDLC帧的净荷数据的首地址和尾地址存储到HDLC帧地址缓存模块,并返回S301。
7.根据权利要求3所述传输以太网数据的方法,其特征在于:所述以太网发送引擎处理流程包括以下步骤:
S401、以太网发送引擎处于空闲状态时,实时检测是否有PAUSE帧需要发送,如果有PAUSE帧需要发送则执行S402,否则执行S403;
S402、发送PAUSE帧;
S403、实时检测HDLC帧地址缓存模块是否为非空,如果检测到HDLC帧地址缓存模块为非空,则执行S404,否则返回S401;
S404、发送前导码;
S405、读取HDLC帧地址缓存模块中的净荷数据的首地址和尾地址;
S406、根据首地址,从HDLC数据缓存模块中读取净荷数据并发送,同时对读取的净荷数据进行CRC32校验;
S407、实时检测读地址是否到达尾地址,如果读地址到达尾地址,则获取计算出来的CRC32校验值并发送,如果读地址没有到达尾地址,则返回S406;
S408、以太网帧发送结束后,等待特定时间,返回S401。
8.根据权利要求3所述传输以太网数据的方法,其特征在于:所述流量控制处理流程包括以下步骤:
S501、从以太网接收引擎获取以太网数据缓存模块的写地址,从HDLC发送引擎获取以太网数据缓存模块的读地址;
S502、根据获取的写地址和读地址计算以太网数据缓存的剩余空间,当写地址大于读地址时,剩余空间按照如下公式进行计算:
(1)
式中,s为以太网数据缓存的剩余空间,K为以太网数据缓存总容量,w为写地址,r为读地址;
当读地址大于写地址时,剩余空间按照如下公式进行计算:
(2)
式中,s为以太网数据缓存的剩余空间,w为写地址,r为读地址;
S503、根据剩余空间大小确定PAUSE帧中的暂停时间信息,暂停时间信息确定按照如下公式进行计算:
(3)
式中,p为PAUSE帧中的暂停时间信息,s为以太网数据缓存的剩余空间,M为PAUSE帧中的暂停时间信息取值范围的最大值,N为以太网数据缓存地址空间范围的最大值;
S504、将暂停时间信息插入到PAUSE帧中,生成完整的PAUSE帧;
S505、通过以太网发送引擎将PAUSE帧发送给交换芯片,设置PAUSE帧生成的周期为;
S506、交换芯片接收到PAUSE帧后,提取暂停时间信息;
S507、交换芯片根据暂停时间信息确定该端口发送以太网帧的时间间隔,时间间隔按照如下公式进行计算:
(4)
式中,为交换机发送以太网帧的时间间隔,p为PAUSE帧中的暂停时间信息,n为暂停时间量子,暂停时间量子代表传输512bit以太网数据所需要的时间;
S508、交换芯片的端口在发送完当前的以太网帧之后,将该端口的以太网帧的发帧间隔调整为。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111149075.2A CN113840188B (zh) | 2021-09-29 | 2021-09-29 | 一种利用dcc开销传输以太网数据的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111149075.2A CN113840188B (zh) | 2021-09-29 | 2021-09-29 | 一种利用dcc开销传输以太网数据的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113840188A CN113840188A (zh) | 2021-12-24 |
CN113840188B true CN113840188B (zh) | 2023-05-12 |
Family
ID=78967459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111149075.2A Active CN113840188B (zh) | 2021-09-29 | 2021-09-29 | 一种利用dcc开销传输以太网数据的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113840188B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7317681B1 (en) * | 2002-01-11 | 2008-01-08 | Cisco Systems O.I.A. (1988)Ltd. | Redundancy for dual optical ring concentrator |
CN101188534A (zh) * | 2007-12-11 | 2008-05-28 | 中兴通讯股份有限公司 | 一种实现信令通讯网络和管理通讯网络通道的装置和方法 |
CN102665151A (zh) * | 2012-04-24 | 2012-09-12 | 烽火通信科技股份有限公司 | 一种分组传送网中sdh业务dcc开销的处理方法及装置 |
CN103731225A (zh) * | 2013-12-24 | 2014-04-16 | 北京格林伟迪科技有限公司 | 一种数据传输方法和装置 |
CN106571991A (zh) * | 2016-11-09 | 2017-04-19 | 湖南戈人自动化科技有限公司 | 一种数据传输方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1757210A (zh) * | 2003-01-15 | 2006-04-05 | 希尔纳公司 | 用于在光网络上传输分组数据的方法和装置 |
-
2021
- 2021-09-29 CN CN202111149075.2A patent/CN113840188B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7317681B1 (en) * | 2002-01-11 | 2008-01-08 | Cisco Systems O.I.A. (1988)Ltd. | Redundancy for dual optical ring concentrator |
CN101188534A (zh) * | 2007-12-11 | 2008-05-28 | 中兴通讯股份有限公司 | 一种实现信令通讯网络和管理通讯网络通道的装置和方法 |
CN102665151A (zh) * | 2012-04-24 | 2012-09-12 | 烽火通信科技股份有限公司 | 一种分组传送网中sdh业务dcc开销的处理方法及装置 |
CN103731225A (zh) * | 2013-12-24 | 2014-04-16 | 北京格林伟迪科技有限公司 | 一种数据传输方法和装置 |
CN106571991A (zh) * | 2016-11-09 | 2017-04-19 | 湖南戈人自动化科技有限公司 | 一种数据传输方法及装置 |
Non-Patent Citations (2)
Title |
---|
在SDH上传送以太网业务的GFP协议的应用研究与逻辑实现;吕小燕;《西北工业大学硕士毕业论文》;全文 * |
基于Xilinx FPGA的千兆以太网及E1信号的光纤传输;覃勇;《今日电子》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113840188A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194679B (zh) | 一种基于SpaceFibre接口的多协议接口数据采集装置和采集方法 | |
CN111131091B (zh) | 一种面向片上网络的片间互连方法和系统 | |
US7912078B2 (en) | Credit based flow control in an asymmetric channel environment | |
CN101707544B (zh) | E1信道多向网桥透传方法 | |
CA2477668C (en) | System and method for operating a packet buffer | |
CN105791777B (zh) | 基于fpga的千兆以太网视频多路采集传输系统 | |
CN103885840B (zh) | 一种基于AXI4总线的FCoE协议加速引擎IP核 | |
CN103795593A (zh) | 一种飞船高速通信处理器上行链路的测试系统及方法 | |
CN110855582A (zh) | 兼容SpaceWire总线的时间触发以太网交换装置 | |
CN101527724B (zh) | 用于在高速互联网协议网络中传送数据的数据传输容器 | |
EP1491995B1 (en) | Dual-port functionality for a single-port cell memory device | |
CN113840188B (zh) | 一种利用dcc开销传输以太网数据的装置及方法 | |
CN108429707B (zh) | 一种适应不同传输速率的时间触发业务转发器及方法 | |
CN100591067C (zh) | 一种用逻辑实现sdh和以太网速率适配的方法 | |
CN108614792B (zh) | 1394事务层数据包存储管理方法及电路 | |
CN101340336A (zh) | 基于e1的以太网高效传输方法 | |
JP2020519100A (ja) | フレックスイーサネットプロトコルにおいてトラヒックを伝送する方法、装置及びシステム | |
CN115834804A (zh) | 多路srio转多路arinc818的视频传输系统 | |
CN116131901A (zh) | 一种卫星数据通道控制系统及方法 | |
JP2007174173A (ja) | サーキットエミュレーション装置及びパケット転送方法 | |
CN106954103B (zh) | 一种100g epon系统中下行业务的发送系统及其发送方法 | |
CN106330413B (zh) | 控制2.4g无线音频传输丢包的方法及系统 | |
RU2431234C2 (ru) | Способ передачи блоков данных с динамической границей | |
CN202735509U (zh) | 基于千兆网的雷达高速数据传输装置 | |
CN111726300A (zh) | 一种数据发送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |