CN110012367B - 用于gpon olt的omci组帧装置及组帧方法 - Google Patents
用于gpon olt的omci组帧装置及组帧方法 Download PDFInfo
- Publication number
- CN110012367B CN110012367B CN201910236229.8A CN201910236229A CN110012367B CN 110012367 B CN110012367 B CN 110012367B CN 201910236229 A CN201910236229 A CN 201910236229A CN 110012367 B CN110012367 B CN 110012367B
- Authority
- CN
- China
- Prior art keywords
- frame
- omci
- description
- data
- dma
- 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
- 238000009432 framing Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 16
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 48
- 230000001502 supplementing effect Effects 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000013467 fragmentation Methods 0.000 claims description 2
- 238000006062 fragmentation reaction Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 abstract 1
- 230000003287 optical effect Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/25—Arrangements specific to fibre transmission
-
- 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
- H04Q11/0067—Provisions for optical access or distribution networks, e.g. Gigabit Ethernet Passive Optical Network (GE-PON), ATM-based Passive Optical Network (A-PON), PON-Ring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了用于GPON OLT的OMCI组帧装置及组帧方法,组帧装置包括:DMA写控制电路、CRC计算逻辑和GEM组帧读控制电路;组帧方法包括:将DMA数据块内OMCI帧的帧数据内容写入OMCI帧数据缓存,并将OMCI帧的帧描述信息进行处理,写入OMCI帧描述FIFO;根据OMCI帧描述FIFO写入的帧描述信息,将OMCI帧从32bitOMCI帧数据缓存读出;将OMCI帧封装成16bit总线位宽,2.48832Gbps的GEM帧格式的OMCI帧,并在尾部添加OMCI帧的CRC字段。本发明能在DMA通道有一定出错率的情况下,保证OMCI帧发送的健壮性。
Description
技术领域
本发明涉及通信领域,特别是涉及一种在GPON接入领域通过CPU发送OMCI(ONU管理和控制接口)帧的组帧电路。
背景技术
在PON(Passive Optical Network,无源光纤网络)系统中,OLT(Optical LineTerminal,中文名为光线路终端)是用于连接光纤干线的终端设备。PON系统,信号先连接到OLT,然后OLT连接到ONU(Optical Network Unit,中文名为光网络单元)。最后由ONU提供数据、IPTV(即交互式网络电视)、语音等业务给终端的用户。
为了保证高速、持续、稳定发送下行OMCI信令,在GPON OLT的CPU向128个ONU发送指令过程中,高速、健壮的控制电路将发挥非常重要的作用。
中国专利申请CN201310080961.3公开了一种XGPON系统中ONU端的XGEM组帧装置级组帧方法,其是一种ONU上行按照2.5Gbps最大带宽组建XGEM帧的装置,但该方案是针对ONU的,该方法和装置主要是接收到需转发到OLT的业务报文后,快速地向OLT转发,且不能实现用PCIE DMA通道,连续组建超过1.6Gbps大带宽速率的OMCI帧。中国专利申请CN201180000601.7公开了一种OMCI消息传输方法、设备和无源光网络系统。
然而以上专利技术方案都不涉及利用GPON OLT CPU高速发送下行高速OMCI信令的接口电路装置,不能完成用PCIE DMA通道连续组建超过2.48832Gbps大带宽速率的OMCI帧的技术要求。
发明内容
本发明是为了解决上述问题而进行的,目的在于提供一种用于GPON OLT的OMCI组帧装置及组帧方法,该装置能够快速而直接地从CPU PCIE的DMA通道中以2.48832Gbps速率接收DMA数据块,完成OMCI组帧,而且能在DMA通道有一定出错率的情况下,保证OMCI帧发送的健壮性。
本发明提供一种用于GPON OLT的OMCI组帧装置,和CPU的PCIEDMA通道连接,用于将CPU发出的DMA数据块进行处理,其特征在于,包括:
DMA写控制电路,和所述PCIE DMA通道连接,用于控制DMA数据块写入OMCI帧数据缓存和OMCI帧描述FIFO的过程;
CRC计算逻辑,用于计算CRC值;
GEM组帧读控制电路,与OMCI帧数据缓存和OMCI帧描述FIFO连接,用于对输入的DMA数据块读过程进行控制,在接收计算得到的CRC值后,输出对应的GEM数据帧。
本发明提供的用于GPON OLT的OMCI组帧装置,还可以具有这样的特征:
其中,所述CRC计算逻辑、GEM组帧读控制电路用于将所述OMCI帧描述FIFO写入的DMA数据块中的OMCI帧描述的写入包括起始地址、帧长度信息的描述信息,按照FIFO结构,和所述OMCI帧数据缓存中所存储数据帧进行关联,一一对应,且依次读取;
所述OMCI帧数据缓存和OMCI帧描述FIFO的输入端均和所述DMA写控制电路的输出端相连接,其输出端均和所述GEM组帧读控制电路的输入端相连接,
所述CRC计算逻辑和所述GEM组帧读控制电路相连。
本发明提供的用于GPON OLT的OMCI组帧装置,还可以具有这样的特征:
所述GEM组帧读控制电路不但和所述OMCI帧数据缓存和OMCI帧描述FIFO的输出端相连,而且还同业务帧数据缓存及描述FIFO输出端相连,
GEM组帧读控制电路根据内部优先级仲裁电路,一次响应一个OMCI帧或业务帧的读出请求。
本发明还提供上述的用于GPON OLT的OMCI组帧装置的组帧方法,其特征在于,包括以下步骤:
DMA写控制电路将DMA数据块内OMCI帧的帧数据内容写入OMCI帧数据缓存,并将OMCI帧的帧描述信息进行处理,写入OMCI帧描述FIFO,当DMA数据块传输结束时,停止本次DMA数据块写入过程;
根据OMCI帧描述FIFO写入的帧描述信息,读侧的GEM组帧读控制电路将OMCI帧从32bit OMCI帧数据缓存读出,同时送给CRC计算逻辑,计算本帧对应的CRC值;
GEM组帧读控制电路将OMCI帧封装成16bit总线位宽,2.48832Gbps的GEM帧格式的OMCI帧,并在尾部添加OMCI帧的CRC字段。
本发明提供的组帧方法,还可以具有这样的特征:
其中,当PCIE DMA通道产生结束标志信号时,即表示相应完整单位的DMA数据块传输结束,所述DMA数据块包括多个OMCI帧,该OMCI帧内容包括帧描述和帧数据内容,
对应的,所述DMA写控制电路将DMA数据块中的OMCI帧描述进行处理后,写入到OMCI帧描述FIFO内,将OMCI帧数据写入到OMCI帧数据缓存内,
在GEM组帧读控制电路对每一个OMCI帧数据的读取结束时,所述CRC计算逻辑完成对数据帧CRC值的计算。
本发明提供的组帧方法,还可以具有这样的特征:
其中,所述OMCI帧的数据结构为:
空数据、帧属性描述、原始帧长描述、帧数据内容,
DMA写控制电路处理PCIE DMA通道发出OMCI帧的过程包括:
在空闲状态,根据空数据全为零且包络有效的位置,搜索到帧描述的头部,OMCI帧描述包括帧属性描述和原始帧长描述;
空数据状态后定义帧属性描述、原始帧长描述的发送过程,在发送过程中将帧属性描述写入寄存器,将原始帧长描述作为起始值,写入帧长描述递减计数器中,同时帧长递增计数器被赋初值为零,接着再发送帧数据内容。
本发明提供的组帧方法,还可以具有这样的特征:
其中,OMCI帧描述FIFO中存储有多个数据帧的帧描述条目,该帧描述条目的数据结构为:
onu_num、port id、crc_en、frame_len、start_addr,
onu_num、port id、crc_en是帧的属性描述,
onu_num表示该数据帧所要下传的PON ONU的序列号,
port id表示OMCI帧的GEM PORT ID标记,
crc_en为是否进行CRC值重算的标志,
frame_len是数据帧的实际的字节长度,
start_addr是写入OMCI帧的起始地址。
本发明提供的组帧方法,还可以具有这样的特征:
其中,DMA写控制电路处理PCIE DMA通道发出OMCI帧的过程包括:
在发送数据帧的前一拍,原始帧长描述作为起始值,写入帧长描述递减计数器,其后根据包络有效指示,每写入一拍数据进数据缓存,帧长描述递减计数器减去4字节,帧长递增计数器加上4字节;
当帧长描述递减计数器递减到小于或等于4字节时,便写入上述帧描述条目,写入OMCI帧描述FIFO的描述条目的frame_len是数据帧的实际的字节长度,即为当前帧长描述递减计数器加上帧长递增计数器的值。
本发明提供的组帧方法,还可以具有这样的特征:
如DMA数据块中的某个OMCI帧的帧描述中的原始帧长描述与该数据帧的实际长度不匹配时,按照以下方法进行健壮性处理:
a.当某个OMCI帧的帧描述中的原始帧长描述大于该数据帧的实际长度时,把后续包络有效指示对应的数据当成空闲数据,补到数据帧的末尾;
当帧长描述递减计数器递减小于或等于4时,写入帧描述条目,写入帧描述条目的帧长值就是原始帧长描述;
然后回到空闲状态,继续根据空数据全为零且包络有效的位置,搜索到帧描述的头部;
若直到一个搬运块结束即tx_req_clr信号已给出时,帧长描述递减计数器仍不能递减到小于或等于4,则按照此时的实际帧长指针加上4字节后,写入帧描述条目并停止数据帧内容的写入,以保证此时写入帧长描述条目的帧长和实际写入缓存的帧长匹配;
b.当某个数据帧的帧描述中的原始帧长描述小于该数据帧的实际长度时,就不写入该帧多于原始帧长描述的帧尾数据;
当帧长描述递减计数器递减到小于或等于4时,写入帧描述条目,写入帧描述条目的帧长值就是原始帧长描述。
本发明提供的组帧方法,还可以具有这样的特征:
将添加了CRC值的完整OMCI帧数据,从写侧以每拍32bit写入,经过GEM组帧读控制电路和GTC帧组帧器,按照每拍16bit读出,并进行封装得到GEM帧或GTC帧,封装过程包括GEM帧头添加、CRC重算、分片GEM帧组帧、GTC帧头添加。
发明的作用和效果在于:根据本发明所涉及的GPON OLT的OMCI组帧装置及组帧方法,因为具有DMA写控制电路,和所述PCIE DMA通道连接,用于控制DMA数据块写入OMCI帧数据缓存和OMCI帧描述FIFO的过程;具有CRC计算逻辑和GEM组帧读控制电路,与OMCI帧数据缓存和OMCI帧描述FIFO连接,用于对输入的DMA数据块读过程进行控制,计算CRC值后,输出对应的GEM数据帧。DMA写控制电路写OMCI帧数据缓存和帧描述FIFO的过程,保证从PCIEDMA通道中高速输出DMA数据块内的OMCI帧,在转换封装为GEM、GTC数据帧的准确性及健壮性。
由于具有DMA写控制电路,对高速输出的DMA数据块的连续写过程进行控制,保证了包括长度随机的DMA数据块的持续高速处理,不会出现紊乱和堵塞;
由于DMA通道能够输出任一完整单位的DMA数据块传输结束标志,这样即使CPU发送DMA数据块内的多个OMCI帧,出现了少量描述和帧长不匹配的错误帧,DMA写控制电路也能及时处理,后续发送中可以恢复正常,保持健壮性。
附图说明
图1为本发明的实施例中的用于GPON OLT的OMCI组帧装置与PON ONU连接的示意图;
图2为本发明的实施例中的用于GPON OLT的OMCI组帧装置的结构框图;
图3为本发明的实施例中用于PON OLT的OMCI组帧装置的组帧方法的步骤示意图;
图4为本发明的实施例中OMCI帧的数据结构示意图;
图5为本发明的实施例中OMCI帧的帧描述结构示意图;以及
图6为本发明的实施例中的DMA写控制电路的方法流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明用于GPON OLT的OMCI组帧装置及组帧方法作具体阐述。
在本实施例中出现的英文缩写的含义:
GPON,吉比特无源光网络。GPON下行速率有2.48832Gbps及1.24416Gbps两种规格,在本实施例按照用户侧时钟155.52M,选用2.48832Gbps规格作说明。
OLT,即PON(无源光网络中)的光线路终端(OLT:Optical Line Terminal)。
OMCI,OMCI(光网络单元管理控制接口,即ONU Management and ControlInterface)是GPON标准中定义的一种OLT与ONT之间信息交互的协议,用于在GPON网络中OLT对ONT的管理,包括配置管理、故障管理、性能管理和安全管理等。按照该协议封装的数据帧即为OMCI帧。
ONU,用户端的光网络单元/光网络终端(ONU/ONT Optical Network Unit/Optical Network Terminal)。
DMA,Direct Memory Access直接存储器访问。
CRC,循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数。
GEM,GEM(G-PON Encapsulation Mode,GPON封装方式)是一种在GPON上封装数据的方式。
GTC,GTC(GPON Transmission Convergence)的成帧子层。
PCIE,PCI-Express是最新的总线和接口标准。
FIFO,First Input First Output的缩写,先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
BWMAP,bandwidth map,带宽映射。
PLOAM,Physical Layer Operations,Administration and Maintenance物理层操作管理和维护。
Serdes,Serdes是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种主流的时分多路复用(TDM)、点对点(P2P)的串行通信技术。
ETH,即Ethernet(以太网)。
ALLOC ID,分配标识。
CPU,Central Processing Unit即中央处理器。
IDLE,即英文idle,空闲,在本实施例中指进入空闲等待的状态。
图1为本发明的实施例中的用于GPON OLT的OMCI组帧装置与GPON ONU连接的示意图。
图2为本发明的实施例中的用于GPON OLT的OMCI组帧装置的结构框图。
如图1、2所示,用于GPON OLT的OMCI组帧装置具有DMA写控制电路10、CRC计算逻辑41及GEM组帧读控制电路40以及GTC组帧器60。
DMA写控制电路10,和GPON OLT中的CPU的PCIE DMA通道连接,用于控制DMA数据块的写入过程。
CRC计算逻辑41及GEM组帧读控制电路40,和所述OMCI帧数据缓存和OMCI帧描述FIFO读出口连接,用于对写入OMCI帧数据缓存20和OMCI帧描述FIFO 30的OMCI帧的读过程进行控制,计算CRC值后输出对应的GEM数据帧。
OMCI帧数据缓存20,用于将从DMA写控制电路10中输出的DMA数据块中的OMCI帧数据进行缓存。
OMCI帧描述FIFO 30,用于将DMA写控制电路10处理后的DMA数据块中的帧描述按照FIFO(First Input First Output,先进先出)的规则进行缓存。
GEM组帧读控制电路40,用于对OMCI帧数据内容和帧描述的读取过程、CRC值的计算和替换过程进行控制,并输出对应的GEM帧。
CRC计算逻辑41,用于在GEM组帧读控制电路40的控制下对数据帧的CRC值进行计算。
所述OMCI帧数据缓存20和OMCI帧描述FIFO 30的输入端和所述DMA写控制电路10的输出端相连接,而它们的输出端和所述GEM组帧读控制电路40的输入端相连接。所述OMCI帧描述FIFO 30用于将DMA数据块中的帧描述按照FIFO结构和所述OMCI帧数据缓存20中所存储的数据帧进行关联,所述CRC计算逻辑41和所述GEM组帧读控制电路40连接。
在本实施例中,CRC计算逻辑41的读口属于155.52M的无源光网络时钟域,OMCI帧数据缓存20、OMCI帧描述FIFO 30的读控制电路在GEM组帧读控制电路40内部。PCIE DMA通道的DMA写控制电路10属于PCIE DMA通道CPU时钟域,OMCI帧数据缓存20、OMCI帧描述FIFO30的写控制电路在PCIE DMA通道的写控制逻辑电路10内部。缓存往往使用的是RAM(随机存储器,断电即掉的非永久储存),但不是所有的缓存都用RAM,本实施例中的缓存使用的都是RAM。
以下结合本实施例的用于GPON OLT的OMCI组帧装置来具体说明对应的组帧方法。
图3为本发明的实施例中用于GPON OLT的OMCI组帧装置的组帧方法的步骤示意图。
如图3所示,用于GPON OLT的OMCI组帧装置的组帧方法,其特征在于,将CPU的PCIEDMA通道发出的DMA数据块进行处理,得到对应的GEM帧和GTC帧,包括以下步骤S1到S3:
步骤S1,将DMA数据块内OMCI帧的帧数据内容写入OMCI帧数据缓存,并将OMCI帧的帧描述信息进行处理后,写入OMCI帧描述FIFO,当DMA数据块传输结束时,停止本次DMA数据块写入过程。
OMCI帧描述是在帧尾写入的,即在帧尾写入OMCI帧描述。
帧尾写入描述,可以保证帧描述条目写入的实际帧长描述,和写入数据缓存的帧实际占用缓存大小相匹配,如果在写整个帧的过程中发现错误,可以通过回退数据缓存首地址的方式覆盖刷新已写入错误帧内容,且不写入描述条目,保证错误帧不会在读侧读出,不会再向下游转发且完全滤除。
具体的,PCIE DMA通道通过以下过程控制每次DMA发送过程的结束:
当PCIE DMA通道产生一拍高有效的DMA数据块结束标志信号tx_req_clr时,表示本次DMA搬运结束;tx_req_clr信号和DMA数据块的包络信号dma_data_we的最后一拍对齐。
DMA写控制电路10响应DMA通道产生的数据块结束标志信号tx_req_clr,并产生正确的写结束操作逻辑。在OMCI帧数据缓存20及OMCI帧描述FIFO30处于非满状态时,DMA通道发出的请求发送信号tx_req为高电平,表示上游PCIE DMA数据能够写入到数据帧缓存和OMCI帧描述中。搬运过程的DMA数据块长度可以配置。
其中,所述DMA数据块包括多个OMCI帧,该OMCI帧包括帧描述和帧数据(frame_data)。
图4为本发明的实施例中OMCI帧的数据结构示意图。
DMA数据块内的OMCI数据是帧描述和帧数据的混合体:每个OMCI帧的开头128bit为该帧的帧描述,包括空数据、帧属性描述,原始帧长描述,其后为帧数据;以上数据对应的包络信号dma_data_we为高电平,其余为低电平。定义PCIE与DMA通道的接口DMA帧写入的数据结构如图4所示。
每个DMA数据块的OMCI帧的第一个32bit Dummy Data(空数据)要和128bit(4个Double Word,即16字节)边界对齐,即只能从第1、5、9…个Double Word处开始,DummyData0最先写入。也就是说,如果上一个帧的最后一个字节没有达到128bit边界,后面会填充无效字节,直到128bit边界,帧描述中的length字段所描述的长度为数据包的长度,即原始帧长描述。
一个DMA数据块根据其配置长度不同,可以装载一个或者多个OMCI帧。如果CPU发现剩余的数据块空间不能够装一个完整的OMCI帧,则放在下一个搬运过程的DMA数据块中发送。
DMA通道数据宽度为32bit,即4字节,固定采用持续4拍突发Burst,每个突发burst传4x4=16字节数据。前一个突发和后一个突发之间可能存在间隙,也可能不存在间隙。帧尾不足16字节的,填充dummy字段补成16字节。DMA写控制电路10将OMCI帧描述后面的数据frame_data写入OMCI帧数据缓存20;在已经发送完frame_data的帧尾时刻,将DMA数据块的OMCI帧结构头部的帧属性描述、重新计算后的帧长描述frame_len及帧起始地址_start_addr,以OMCI帧描述FIFO结构写入到OMCI帧描述FIFO 30内。OMCI帧描述FIFO的数据结构对应图5。
DMA写控制电路10将DMA数据块中的OMCI帧描述,拼接OMCI帧数据缓存的起始地址start_addr之后,写入OMCI帧描述FIFO;将DMA数据帧内容写入到OMCI帧数据缓存20中。
OMCI帧数据缓存20空间大小为4K(4096)字节,满足同时装载两个最长的OMCI帧的需求。
图5为本发明的实施例中OMCI帧的帧描述结构示意图。
OMCI帧数据缓存20的深度为1024,宽度为32bit,宽度设计主要考虑到CPU数据总线的宽度为32bit。当一个数据的帧尾只有1-3个字节有效时,需要将不足4字节的位置补0,补成4字节写入。OMCI帧描述FIFO 30中存储有多个数据帧的帧描述条目,该帧描述条目的数据结构如图5所示,包括:
onu_num、port id、crc_en、frame_len,start_addr
其中,onu_num表示该数据帧所要下传的PON ONU的序列号,
port id表示OMCI帧的GEM PORT ID或GEM PORT ID标记,
crc_en为是否进行CRC值重算的标志,
frame_len是数据帧的实际字节长度。
start_addr是写入OMCI帧数据缓存20的OMCI帧的起始地址。
OMCI帧数据缓存的普通正常读写,即当OMCI帧描述的原始帧长信息和后续帧内容burst(突发)长度严格匹配时,控制电路通过每帧的原始帧长描述信息,确定该帧数据在缓存内的起始和结束位置。每一个帧的写入起始位置,即是上一个帧的写入结束位置的下一个地址。根据缓存的连续读写的性质,当前帧的写入起始位置,加上帧长描述信息对应的时钟数,就是下一个帧的起始地址。
图6是DMA写控制电路的方法流程图。
DMA写控制电路10在写满出现或者写帧描述和实际帧长不匹配的时候,通过OMCI帧数据缓存20及OMCI帧描述FIFO 30的非正常读写处理机制,通过DMA数据块的tx_req_clr指示,保证写满时,以及写帧描述和实际帧长不匹配时的健壮性。在一次出错以后,能够在下一个DMA数据块恢复正常。DMA写控制电路的方法流程图可以用图6表示。
DMA写控制电路10区分两种情况到达健壮性目标:
DMA写控制电路10如遇到帧尾长度描述和实际长度不匹配,DMA写控制电路10中的写帧状态机需要区分情况分别处理,保证FIFO读写的健壮性,在写状态机侧使缓存RAM写入数据帧长度和描述帧长一致,不发生连续读取的RAM读写地址紊乱的故障。即使来自PCIE上游接口个别原始帧长描述有错误的情况下,仍能保证RAM连续读写的正确性。避免OMCI帧数据缓存读写地址紊乱的写处理会遇到两种异常情形:
DMA数据块中的某个数据帧的帧描述中的原始帧长描述与该数据帧的实际长度不匹配时,按照以下方法进行健壮性处理:
某个数据帧的帧描述中的原始帧长描述大于该数据帧的实际长度时,把后续包络有效指示对应的数据当成空闲数据,补到数据帧的末尾;
当帧长描述递减计数器递减小于等于4的时刻,按照上文中的附图5OMCI帧的帧描述结构写入帧描述条目;写入帧描述条目的帧长值就是原始帧长描述;然后回到空闲状态,继续根据空数据全为零且包络有效的位置,搜索到帧描述的头部;
若直到一个搬运块结束即tx_req_clr信号已给出时,帧长描述递减计数器仍不能递减到小于或等于4,则按照此时的实际帧长指针加上4字节后,写入帧描述条目,停止数据帧内容的写入,保证此时写入帧长描述条目的帧长和实际写入OMCI帧数据缓存的帧长匹配。这时写入的实际帧长指针之所以要加上4字节,是因为tx_req_clr信号给出时,dma写入数据的包络信号dma_data_we还保持一拍高电平,OMCI帧数据还可能要再写一拍,即4字节,才能停止写入OMCI帧数据缓存。
当某个数据帧的帧描述中的原始帧长描述小于该数据帧的实际长度时,就不写入该帧多于原始帧长描述的帧尾数据;
当帧长描述递减计数器递减到小于或等于4时,写入帧描述条目,写入帧描述条目的帧长值就是原始帧长描述,
遇到实际帧长和帧长描述不匹配的情形,crc_en一律不重算,保证这种错误帧能在接收端因crc效验不能通过而丢弃。
以上两种情形均能保证错误帧写入时的帧长描述属性,和数据缓存写入帧内容的长度匹配,保证写入OMCI帧数据缓存和帧长描述一致性,而不发生数据缓存地址紊乱错误。
如图6所示的DMA写控制电路的方法,其有效性结合附图6可以通过以下的论述证明:
写入OMCI帧数据缓存的实际帧长的占用拍数,就是搜索到原始帧长描述,对帧长描述递减计数器进行初始化后,假设后续包络信号dma_data_we的持续拍数为N,则帧长递增计数器等于4N字节;
帧长描述递减计数器为原始帧长描述减去4N字节。当帧长描述递减计数器递减到小于等于4字节时,此时的帧长描述递减计数器加上帧长递增计数器,等于原始帧长描述-4(N-1)+4(N-1),消去4(N-1),实际就是等于原始帧长描述;帧长描述递减计数器最后一拍若不足4字节,也要占用一拍4字节的OMCI缓存地址.读侧根据帧长描述只取最后一拍的有效字节。
如遇tx_req_clr为高但帧长描述递减计数器还未递减至小于等于4字节的非正常情况,写入OMCI帧描述FIFO的帧长描述为4(N-1)+4字节,除以一拍四字节,正好等于dma_data_we的持续拍数N。
以上的帧长描述递减计数器、帧长递增计数器均是由“DMA写控制电路10”维护的,实际上帧长描述递减计数器、帧长递增计数器也是运行在DMA写控制电路10中的。
步骤S2,根据OMCI帧描述FIFO写入的帧描述信息,读侧的GEM组帧读控制电路将OMCI帧从32bit OMCI帧数据缓存读出,同时送给CRC计算逻辑,计算本帧对应的CRC值。
GEM组帧读控制电路40不但和所述OMCI帧数据缓存和OMCI帧描述FIFO的输出端相连,而且还同业务帧数据缓存和描述FIFO 50读输出端相连。GEM组帧读控制电路根据内部优先级仲裁电路,一次响应一个OMCI帧或业务帧的读出请求。
对应的,CRC计算逻辑41根据帧长描述,一旦计算到OMCI帧尾,就根据crc_en指示,完成对OMCI帧数据CRC值的替换。帧数据缓存采用4K字节的缓存结构,这是考虑到OMCI的最大帧长是1980字节,能够同时装载两个最长帧而不发生满溢出问题。如果发生写入突发速率过大,OMCI帧数据缓存还是出现了满的情况,OMCI帧写电路在帧尾不写入帧描述,并将已经写入OMCI帧数据缓存的帧内容,通过回退到之前本帧的写起始地址的方式清除,后续OMCI帧从该起始地址之后写入,覆盖并刷新先前已写入内容。
GEM组帧读控制电路40从OMCI帧描述FIFO30读出并锁存onu_num、portid、frame_len等描述信息。
存储OMCI帧描述的FIFO 30深度为27=128;原因在于FIFO的缓存大于4K字节/48字节=83,采用2的7次方128个地址。Base类型的OMCI帧长度是48字节。不考虑连续omci报文都是小于48字节的情形,128个地址可满足基本连续读写需求。
与PCIE DMA通道接口的DMA写控制电路10的写控制逻辑分成以下几个状态:空闲等待IDLE状态、描述解析、数据写入状态。本逻辑实现写入OMCI帧描述FIFO 30的帧长描述,和实际写入的OMCI帧数据缓存20的长度相匹配,是一个重要步骤。该操作通过OMCI帧的原始帧长描述信息根据到达Burst递减,以及实际写入OMCI帧数据缓存20的实际BURST长度累加,在OMCI帧的帧尾写时刻进行比较并处理,在帧尾写入时刻,最后才写入到帧描述FIFO中。
步骤S3,GEM组帧读控制电路将OMCI帧封装成16bit总线位宽,2.48832Gbps的GEM帧格式的OMCI帧,并在尾部添加OMCI帧的CRC字段。
经过GEM组帧读控制电路40和GTC组帧器60将数据帧和帧描述封装为与总线位宽匹配的GEM帧或GTC帧。
完整的OMCI帧通过读取OMCI帧数据缓存20和OMCI帧描述FIFO30,通过GEM组帧读控制电路中的GEM帧组帧状态机的读控制动作,完成G.984.3协议GPON下行GEM的封装,封装过程包括GEM帧头添加、CRC重算、GEM分片帧组帧等功能。GTC组帧器包括GTC帧头添加,进一步根据情况还可以加入BWMAP结构调整和PLOAM消息发送等功能。
如图1所示,GEM/GTC帧组帧完成后通过下行Serdes及光通道传送至各ONU。对于GPON OLT OMCI通道,作为发送方的OLT采用4字节的循环校验CRC码用于检验和防止欺骗。GEM组帧读控制电路40把32bit位宽变成16bit位宽,满足下行155.52*16bit=2.48832Gbps的速率要求,所以本实施例中得到的就是2.48832Gbps的GEM帧格式的OMCI帧。对于OMCI帧,GEM组帧读控制电路40主要完成下面两个步骤的处理:
1.普通数据处理。将前级OMCI帧数据缓存读取出来的32bit的OMCI帧数据,分两拍按照16bit总线数据发送,完成32bit到16bit的总线位宽变换功能。
2.GEM组帧读控制电路40把计算得到的CRC值,根据帧尾一拍剩余长度的不同,和CRC字段拼接成完整的OMCI帧。
在以上过程中,会涉及到最后OMCI帧最后一拍数据的情况。
另外,通过GEM组帧读控制电路40的缓存读地址,可以用来产生DMA写控制电路10的满指示:
首先GEM组帧读控制电路40产生DMA数据缓存写控制的满指示逻辑需要的读地址。该读地址经过格雷码变换后,传至写时钟侧再做反格雷码变换,再通过比较写侧地址和读地址的反格雷码变换的差值,产生满指示信号。
如果出现满的现象,则按照上述步骤S2中的满异常时写指针回退到起始地址进行处理。在本设计中,尽管OMCI的DMA帧相比ETH帧有更高的发送优先级,但由于OMCI通道发送的优先级低于BWMAP消息授权的发送优先级,存在很多ALLOC ID授权需要发送时,DMA数据缓存写满不能读的可能仍然存在,而在本发明中,如果出现瞬时写满的情况出现了缓存满,仍然能够保证发送电路的健壮性。
实施例的作用和效果在于:根据本发明所涉及的GPON OLT的OMCI组帧装置及组帧方法,因为具有DMA写控制电路,和所述PCIEDMA通道连接,用于控制DMA数据块写入OMCI帧数据缓存和OMCI帧描述FIFO的过程;
具有CRC计算逻辑和GEM组帧读控制电路,与OMCI帧数据缓存和OMCI帧描述FIFO连接,用于对输入的DMA数据块读过程进行控制,计算CRC值后,输出对应的GEM数据帧。DMA写控制电路写OMCI帧数据缓存和帧描述FIFO的过程,保证从PCIE DMA通道中高速输出DMA数据块内的OMCI帧,在转换封装为GEM、GTC数据帧的准确性及健壮性。
由于具有DMA写控制电路,对高速输出的DMA数据块的连续写过程进行控制,保证了包括长度随机的DMA数据块的持续高速处理,不会出现紊乱和堵塞;
由于DMA通道能够输出任一完整单位的DMA数据块传输结束标志,这样即使CPU发送DMA数据块内的多个OMCI帧,出现了少量描述和帧长不匹配的错误帧,DMA写控制电路也能及时处理,后续发送中可以恢复正常,保持健壮性。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (7)
1.一种用于GPON OLT的OMCI组帧装置,和CPU的PCIE DMA通道连接,用于将CPU发出的DMA数据块进行处理,其特征在于,包括:
DMA写控制电路,和所述PCIE DMA通道连接,用于控制DMA数据块写入OMCI帧数据缓存和OMCI帧描述FIFO的过程;
CRC计算逻辑,用于计算CRC值;
GEM组帧读控制电路,与OMCI帧数据缓存和OMCI帧描述FIFO连接,用于对输入的DMA数据块读过程进行控制,在接收计算得到的CRC值后,输出对应的GEM数据帧;
所述DMA写控制电路,和所述PCIE DMA通道连接,用于控制DMA数据块写入OMCI帧数据缓存和OMCI帧描述FIFO的过程,包括:DMA写控制电路将DMA数据块内OMCI帧的帧数据内容写入OMCI帧数据缓存,并将OMCI帧的帧描述信息进行处理,写入OMCI帧描述FIFO,当DMA数据块传输结束时,停止本次DMA数据块写入过程;
其中,所述OMCI帧的数据结构为:空数据、帧属性描述、原始帧长描述、帧数据内容,DMA写控制电路处理PCIE DMA通道发出OMCI帧的过程包括:在空闲状态,根据空数据全为零且包络有效的位置,搜索到帧描述的头部,OMCI帧描述包括帧属性描述和原始帧长描述;空数据全为零的状态后定义帧属性描述、原始帧长描述的发送过程,在发送过程中将帧属性描述写入寄存器,将原始帧长描述作为起始值,写入帧长描述递减计数器中,同时帧长递增计数器被赋初值为零,接着再发送帧数据内容;
其中,DMA写控制电路处理PCIE DMA通道发出OMCI帧的过程包括:在发送数据帧的前一拍,原始帧长描述作为起始值,写入帧长描述递减计数器,其后根据包络有效指示,每写入一拍数据进数据缓存,帧长描述递减计数器减去4字节,帧长递增计数器加上4字节;当帧长描述递减计数器递减到小于或等于4字节时,便写入帧描述条目,写入OMCI帧描述FIFO的描述条目的frame_len是数据帧的实际的字节长度,即为当前帧长描述递减计数器加上帧长递增计数器的值;
如DMA数据块中的某个OMCI帧的帧描述中的原始帧长描述与该数据帧的实际长度不匹配时,DMA写控制电路按照以下方法进行健壮性处理:a.当某个OMCI帧的帧描述中的原始帧长描述大于该数据帧的实际长度时,把后续包络有效指示对应的数据当成空闲数据,补到数据帧的末尾;当帧长描述递减计数器递减小于或等于4时,写入帧描述条目,写入帧描述条目的帧长值就是原始帧长描述;然后回到空闲状态,继续根据空数据全为零且包络有效的位置,搜索到帧描述的头部;若直到一个搬运块结束即tx_req_clr信号已给出时,帧长描述递减计数器仍不能递减到小于或等于4,则按照此时的实际帧长指针加上4字节后,写入帧描述条目并停止数据帧内容的写入,以保证此时写入帧长描述条目的帧长和实际写入缓存的帧长匹配;b.当某个数据帧的帧描述中的原始帧长描述小于该数据帧的实际长度时,就不写入该帧多于原始帧长描述的帧尾数据;当帧长描述递减计数器递减到小于或等于4时,写入帧描述条目,写入帧描述条目的帧长值就是原始帧长描述;
其中,OMCI帧描述FIFO中存储有多个数据帧的帧描述条目,该帧描述条目的数据结构为:onu_num、port id、frame_len、start_addr,onu_num、port id是帧的属性描述,onu_num表示该数据帧所要下传的PON ONU的序列号,port id表示OMCI帧的GEM PORT ID标记,frame_len是数据帧的实际的字节长度,start_addr是写入OMCI帧的起始地址;
CRC计算逻辑根据帧长描述,一旦计算到OMCI帧尾,得到CRC值,GEM组帧读控制电路将OMCI帧封装成16bit总线位宽,2.48832Gbps的GEM帧格式的OMCI帧,并在OMCI帧尾部添加OMCI帧的CRC字段;
根据OMCI帧描述FIFO写入的帧描述信息, 读侧的GEM组帧读控制电路将OMCI帧从32bit OMCI帧数据缓存读出,同时送给CRC计算逻辑,计算本帧对应的CRC值;
读侧的GEM组帧读控制电路将OMCI帧从32bitOMCI帧数据缓存读出,GEM组帧读控制电路将OMCI帧封装成16bit总线位宽,2.48832Gbps的GEM帧格式的OMCI帧。
2.根据权利要求1所述的用于GPON OLT的OMCI组帧装置,其特征在于:
其中,所述CRC计算逻辑、GEM组帧读控制电路用于将所述OMCI帧描述FIFO 写入的包括起始地址、帧长度信息等OMCI帧描述信息,按照FIFO结构,和所述OMCI帧数据缓存中所存储数据帧进行关联,一一对应,且依次读取;
所述OMCI帧数据缓存和OMCI帧描述FIFO的输入端均和所述DMA写控制电路的输出端相连接,其输出端均和所述GEM组帧读控制电路的输入端相连接,
所述CRC计算逻辑和所述GEM组帧读控制电路相连。
3.根据权利要求2所述的用于GPON OLT的OMCI组帧装置,其特征在于:
所述GEM组帧读控制电路不但和所述OMCI帧数据缓存和OMCI帧描述FIFO的输出端相连,而且还同业务帧数据缓存及描述FIFO输出端相连,
GEM组帧读控制电路根据内部优先级仲裁电路,一次响应一个OMCI帧或业务帧的读出请求。
4.权利要求1-3中任意一项所述的用于GPON OLT的OMCI组帧装置的组帧方法,其特征在于,包括以下步骤:
GEM组帧读控制电路将OMCI帧封装成16bit总线位宽,2.48832Gbps的GEM帧格式的OMCI帧,并在尾部添加OMCI帧的CRC字段。
5.根据权利要求4所述的组帧方法,其特征在于:
其中,当PCIE DMA通道产生结束标志信号时,即表示相应完整单位的DMA数据块传输结束,所述DMA数据块包括多个OMCI帧,该OMCI帧内容包括帧描述和帧数据内容,
对应的,所述DMA写控制电路将DMA数据块中的OMCI帧描述进行处理后,写入到OMCI帧描述FIFO内,将OMCI帧数据写入到OMCI帧数据缓存内,
在GEM组帧读控制电路对每一个OMCI帧数据的读取结束时,所述CRC计算逻辑完成对数据帧CRC值的计算。
6.根据权利要求4所述的组帧方法,其特征在于:
其中,OMCI帧描述FIFO中存储有多个数据帧的帧描述条目,该帧描述条目的数据结构还包括crc_en,crc_en为是否进行CRC值重算的标志,所述crc_en指示只决定是否进行OMCI帧数据 CRC值的替换。
7.根据权利要求4所述的组帧方法,其特征在于:
将添加了CRC值的完整OMCI帧数据,从写侧以每拍32bit写入,经过GEM组帧读控制电路和GTC帧组帧器,按照每拍16bit读出,并进行封装得到GEM帧或GTC帧,封装过程包括GEM帧头添加、CRC重算、分片GEM帧组帧、GTC帧头添加。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910236229.8A CN110012367B (zh) | 2019-03-27 | 2019-03-27 | 用于gpon olt的omci组帧装置及组帧方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910236229.8A CN110012367B (zh) | 2019-03-27 | 2019-03-27 | 用于gpon olt的omci组帧装置及组帧方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN110012367A CN110012367A (zh) | 2019-07-12 |
| CN110012367B true CN110012367B (zh) | 2021-10-19 |
Family
ID=67168376
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910236229.8A Active CN110012367B (zh) | 2019-03-27 | 2019-03-27 | 用于gpon olt的omci组帧装置及组帧方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN110012367B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110417504B (zh) * | 2019-09-11 | 2021-08-24 | 天津光电通信技术有限公司 | 一种将otn中解出的信号从serdes输出的方法 |
| CN111654265B (zh) * | 2020-06-19 | 2023-07-25 | 京东方科技集团股份有限公司 | 一种快速校验电路、方法及装置 |
| CN118233062B (zh) * | 2024-04-17 | 2025-02-11 | 苏州异格技术有限公司 | 传输以太帧的方法和装置 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1547358A (zh) * | 2003-12-02 | 2004-11-17 | 烽火通信科技股份有限公司 | 一种用于以太网无源光网络的数据帧缓存设备和方法 |
| CN101764647A (zh) * | 2009-12-17 | 2010-06-30 | 浙江工业大学 | Gpon网管系统的onu管理控制平台 |
| CN101820558A (zh) * | 2010-04-23 | 2010-09-01 | 烽火通信科技股份有限公司 | 一种无源光网络检测长发光onu的方法 |
| CN102217328A (zh) * | 2011-05-19 | 2011-10-12 | 华为技术有限公司 | Omci消息传输方法、装置及无源光网络系统 |
| CN102388566A (zh) * | 2011-09-26 | 2012-03-21 | 华为技术有限公司 | 转换终端设备的标识符的方法、装置和系统 |
| CN103152292A (zh) * | 2013-03-14 | 2013-06-12 | 烽火通信科技股份有限公司 | Xgpon系统中onu端的xgem组帧装置及组帧方法 |
| CN103354508A (zh) * | 2013-07-08 | 2013-10-16 | 上海斐讯数据通信技术有限公司 | 一种omci管理方法 |
| CN103780506A (zh) * | 2012-10-26 | 2014-05-07 | 中兴通讯股份有限公司 | 一种用于以太网设备的数据缓存系统及方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100594028B1 (ko) * | 2003-04-15 | 2006-07-03 | 삼성전자주식회사 | Gpon에서의 ont 관리 제어 정보 전송을 위한gtc 프레임 구조와 그 전송 방법 |
-
2019
- 2019-03-27 CN CN201910236229.8A patent/CN110012367B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1547358A (zh) * | 2003-12-02 | 2004-11-17 | 烽火通信科技股份有限公司 | 一种用于以太网无源光网络的数据帧缓存设备和方法 |
| CN101764647A (zh) * | 2009-12-17 | 2010-06-30 | 浙江工业大学 | Gpon网管系统的onu管理控制平台 |
| CN101820558A (zh) * | 2010-04-23 | 2010-09-01 | 烽火通信科技股份有限公司 | 一种无源光网络检测长发光onu的方法 |
| CN102217328A (zh) * | 2011-05-19 | 2011-10-12 | 华为技术有限公司 | Omci消息传输方法、装置及无源光网络系统 |
| CN102388566A (zh) * | 2011-09-26 | 2012-03-21 | 华为技术有限公司 | 转换终端设备的标识符的方法、装置和系统 |
| CN103780506A (zh) * | 2012-10-26 | 2014-05-07 | 中兴通讯股份有限公司 | 一种用于以太网设备的数据缓存系统及方法 |
| CN103152292A (zh) * | 2013-03-14 | 2013-06-12 | 烽火通信科技股份有限公司 | Xgpon系统中onu端的xgem组帧装置及组帧方法 |
| CN103354508A (zh) * | 2013-07-08 | 2013-10-16 | 上海斐讯数据通信技术有限公司 | 一种omci管理方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110012367A (zh) | 2019-07-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110012367B (zh) | 用于gpon olt的omci组帧装置及组帧方法 | |
| CN105406937B (zh) | 定帧方法及装置 | |
| CN109981496B (zh) | 用于xgpon olt的omci组帧装置及组帧方法 | |
| US20110276731A1 (en) | Dual-port functionality for a single-port cell memory device | |
| US8649398B2 (en) | Packet network interface apparatus and method | |
| CN102752674B (zh) | 10g epon报文的捕获电路及写控制方法 | |
| CN102104548B (zh) | 一种数据包接收处理方法和装置 | |
| US6973096B2 (en) | System and method for processing bandwidth allocation messages | |
| CN109218154B (zh) | 一种基于fpga的千兆以太网到slip的转换系统 | |
| US6886062B2 (en) | Method and apparatus for improving time constraints and extending limited length cables in a multiple-speed bus | |
| WO2021147050A1 (zh) | 一种基于PCIe的数据传输方法及装置 | |
| US20260032016A1 (en) | Flow control method and apparatus, and system | |
| CN101552931B (zh) | 一种实现吉比特无源光网络封装模式帧重组的系统和方法 | |
| CN108614792B (zh) | 1394事务层数据包存储管理方法及电路 | |
| US6754743B2 (en) | Virtual insertion of cells from a secondary source into a FIFO | |
| CN1988501B (zh) | 利用fpga完成光传输设备嵌入式控制通道通信的实现装置 | |
| WO2024061124A1 (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
| CN118227542B (zh) | 一种基于AXI总线的Interlaken接口转换方法及桥接系统 | |
| CN105634988B (zh) | 一种抖动缓存处理方法及装置 | |
| CN102932086B (zh) | 数据时分传输方法及系统 | |
| CN101729188A (zh) | 发送和接收映射开销的方法、装置 | |
| WO2025130812A1 (zh) | 编码方法、解码方法、装置、系统及芯片 | |
| CN115774631A (zh) | 一种mac数据处理方法、装置、存储介质 | |
| CN117675442A (zh) | 一种数据处理方法、电子设备及计算机可读存储介质 | |
| CN118784136A (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 |