基于FPGA技术与以太网的无源光网络实现MAC控制器的设计方案Word文件下载.docx
《基于FPGA技术与以太网的无源光网络实现MAC控制器的设计方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA技术与以太网的无源光网络实现MAC控制器的设计方案Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
![基于FPGA技术与以太网的无源光网络实现MAC控制器的设计方案Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/9/59ef3374-dbe6-4f8f-89ac-6a13f9871dca/59ef3374-dbe6-4f8f-89ac-6a13f9871dca1.gif)
其中OLT位于局端,一般放在中心机房(CentralOffice,CO),ONU位于用户端,POS连接OLT和ONU,它的功能是分发下行数据和汇聚上行数据。
从OLT到ONU的方向为下行方向,反之为上行方向.OLT上行链路与各业务节点相连,ONU下行链路则与各用户终端设备连接。
图1 EPON系统架构
在EPON中,从OLT到多个ONU的下行数据传输过程与从多个ONU到OLT的上行数据传输过程有本质的区别,如图2所示。
下行数据采用广播方式以变长以太包的形式从OLT发给多个ONU,每个以太包带有标识目标ONU的逻辑链路标识(LLID),通过识别LLID判断信息包是发给某个或多个ONU的。
当数据流到达ONU时,ONU只提取发给它的信息包而丢弃发给其他ONU的信息包;
而上行数据则采用时分多址接入(TDMA)技术,每个ONU都分配一个传输时隙,所有时隙保持同步,彼此间留有间隙,保证不同ONU的数据包汇聚到公共光纤时不发生相互碰撞。
图2 EPON的上、下行传输机制
OLT系统设计
为支持EPON的协议栈结构和工作模式,本文采用图3所示的OLT系统设计,它主要由MAC控制器、EPON千兆位突发光收发器、存储器和外围接口电路组成。
其中MAC控制器是采用Altera公司的EXCALIBUR-ARM系列FPGA(带ARM9硬核)芯片实现。
在CO端,OLT通过标准的千兆以太收发器与上层交换机相连;
在EPON端,OLT通过专用的光收发器连接PON网络。
图3 OLT系统总体框图
该系统可以实现以下功能:
(1)以广播方式向ONU下行发送以太数据包,以TDMA方式接收来自ONU的以太包;
(2)发起并控制ONU的注册过程,根据用户的QoS要求为ONU分配带宽;
(3)除了网络的汇聚和接入功能,OLT还提供OAM功能。
核心MAC控制器的实现
图4所示为本文设计的EPON系统核心MAC控制器的功能框图,它由硬件和软件部分组成。
硬件部分(图中实线表示的模块)由FPGA来完成[3],实现点对点仿真,以太帧的校验、加/解密、分类/仲裁/复用等控制功能;
软件部分由嵌入式系统MontaVistaLinux来完成对ONU的注册和动态带宽分配(DBA)。
首先对图中各模块的功能作一简要说明。
位宽变换模块实现数据流的8bit位宽(字节为单位)与32bit位宽(双字为单位)之间的互换;
LLD添加/校验模块主要完成LLD的添加/校验;
分类/仲裁/复用模块实现对以太帧的分类、发送优先级仲裁和复用;
测距模块计算ONU至OLT的往复时间(RTT),以便进行上行时延补偿。
时标处理模块实现OLT与ONU的时钟同步。
下面就MAC控制器在软、硬件设计中涉及到的关键技术进行全面阐述。
图4 核心MAC控制器功能框图
位宽变换及时钟设计
考虑到EXCALIBUR-ARM系列FPGA内嵌的ARM922T是一款RISC架构的32bit微处理器,为了方便FPGA与微处理器之间的数据交换,MAC控制器的内部数据统一采用双字为单位进行处理.OLT与ONU之间的线路传输速率是1.25Gbit/s,码流在物理层经过串/并变换、8B/10B编码之后的速率为125Mbit/s,而进行位宽变换后,FPGA的工作频率下降到31.25MHz.本文设计FPGA开发板时,采用了25MHz的晶振作为时钟源。
值得一提的是,位宽变换模块需用到125MHz和31.25MHz2个时钟(分别由倍频器和分频器提供)。
输入的8bit码流以125MHz的频率顺序写入4个FIFO中,同时以31.25MHz的频率从这4个FIFO中并行输出,直至一帧结束。
但必须考虑数据帧的帧长(以字节为单位)不能被4整除的情况,如最后只剩下3个8bit码。
这时将‘0x00’写入最后的空闲FIFO中,使帧长满足4的整数倍。
为此,位宽变换模块增加了以字节为单位的帧长和以双字为单位的帧长统计功能,用于告知其后级联的模块只对帧有效数据进行处理。
所有的变换处理均在FPGA内部实现,因而不增加FPGA的外部引脚。
分类、仲裁和复用技术
分类、仲裁及复用是MAC控制器最为关键的功能,FPGA与微处理器如何进行数据交换、数据流如何分类及缓冲、何种仲裁机制能够实现信道的最佳复用等技术细节都是模块设计时必须考虑的问题。
上行分类器收到以太帧后,首先根据帧类型(Type域)区分MAC帧、OAM帧和数据帧。
如果是MAC帧或OAM帧,则直接写入双端口RAM的MAC帧队列或OAM帧队列,同时给出相应的中断请求信号,通知ARM来处理;
如果是数据帧,区分是发往核心网的SNI帧,还是送给其他ONU的P2P帧.SNI帧按照FIFO机制送往上层交换机;
P2P帧则写入SDRAM中,直接参与下行数据帧的仲裁和复用。
图5给出了帧分类、仲裁和复用处理流图。
图5 帧分类/仲裁/复用处理流程图
图中,下行仲裁/复用器首先对送给同一个ONU的数据帧(包括下行帧和P2P帧)、OAM帧和MAC帧进行优先级仲裁,MAC帧优先级最高,数据帧次之,OAM优先级最低。
然后要为发往不同ONU的帧优先级进行二次仲裁,最终通过一条物理链路将这些帧以时分复用送出去,所以下行帧和P2P帧必须先缓存在SDRAM中,等待发送指示信号。
将SNI帧放在SDRAM中也是可行的,但由于上行信道的带宽分配过程已经实现了对帧的优先级仲裁,所以本文选择用FIFO替代SDRAM,完成对SNI帧的缓冲,这样可以大大减少FPGA芯片的外部引脚,降低了ASIC芯片的制造成本。
安全策略
在EPON系统中,各个ONU的上行通道是彼此独立的,用户无法窃取他人的信息;
下行方向是媒质共享网络,数据以广播形式发送,每个ONU都能接收到所有的下行数据,802.3ah引入LLID来限制每个ONU只能接收属于自己的数据包。
然而用户可以通过某种方式绕开LLID校验,窃取其他ONU的信息,最为典型的解决方法就是在下行方向对所有的数据帧进行加密传输。
事实上,这种加密方式存在许多安全隐患。
首先,未经加密的下行MAC帧和OAM帧如果被成功获取的话,入侵者便可以轻易掌握其他用户的关键信息,如ONU的LLID和终端用户MAC地址,进而在上行方向通过盗用LLID和MAC地址来窃取其他用户的带宽;
其次,在上行方向合法用户可能通过伪造MAC帧或OAM帧,来更改EPON系统配置,甚至侵入电信管理网络,扰乱整个电信网。
针对这两种威胁,本文采用了一种加密与认证相结合的安全策略。
信息加密
加密算法本文采用的是AES算法,密钥长度选取128bit.下行方向OLT对所有类型的帧进行加密,加密区域从目的MAC地址到FCS域。
密钥由ONU产生,上行发送给OLT,不可能被用户截获,不同的ONU使用不同的密钥,从而保证了下行数据私密性的要求;
上行方向,为了防止假冒用户,ONU对MAC帧和OAM帧进行加密,加密区域也是目的MAC地址到FCS域。
为提供密钥更新功能,本文定义了两类新的MAC帧,密钥更新请求帧(new_key_request)和密钥更新响应帧(new_key_respond),类型代码分别为07和08(8023ah已经采用了六类MAC帧,类型代码01-06).ONU通过注册过程将初始密钥发送给OLT,OLT定期向下广播密钥更新请求帧,ONU则通过密钥更新响应帧将新密钥上传给OLT,如图6所示。
为了保证密钥的同步性,在Preamble中增加了1bit的flag域和1bit的keyindex域,flag为‘1’标识该帧已被加密,并通过keyindex告知接收端采用哪个密钥解密,加/解密端同时存储了2个密钥以保证新旧密钥的平稳过渡。
图6 密钥的更新与同步过程
消息认证
上行方向如果只是简单地加密,显然是不够的,因为用户可以盗用他人的合法LLID传输数据。
因而OLT还必须进一步对消息发送源的真伪进行鉴别和认证,即确认接收到的ONUn的数据确实是由ONUn发出的。
本文通过FCS校验来对消息源进行认证,这种方法简单而有效。
首先对Preamble进行CRC校验,对加密区域进行解密处理,然后进行FCS校验,如果Preamble的CRC校验结果正确,加密域的FCS校验错误,则说明加密错误或者该消息是用户伪造的,应该予以丢弃,这样就确保了消息的真实性与合法性。
动态带宽分配
在802.3ah协议中,带宽分配算法是开放的,协议不作明确规定,由制造商自行设计。
目前802.3ah工作组讨论较多的都是一种基于公平调度(FS)的动态带宽分配算法,它在一个轮询周期内只给每个ONU一个发送机会以保证服务的公平性。
这种分配方式算法简单,易于实现。
然而它忽略了综合业务网的一个非常重要的特征:
网络流量自相似特性导致的数据流突发性,无法根本解决公平性和数据流的突发性之间的矛盾。
即使EPON出于小负荷状态,下述矛盾现象也是不可避免的:
某些ONU处于零负荷状态,每个轮询周期都报告零字节带宽请求;
另一些ONU负荷轻,经过一次发送机会已经将缓冲区内所有的数据包全部上传;
还有一些重负荷ONU,恰好处于数据流持续突发和震荡状态,即使每个轮询周期都给这些ONU分配上限带宽Wmax,它们的缓冲区内仍然累积了大量等待发送的数据包。
因此,整个上行信道将被“空闲”ONU的MAC控制信息和GB带宽大量占用,而那些真正急需带宽资源的“突发”ONU却长时间处于等待状态。
为此,本文设计了一种基于滑动窗(SW)的动态带宽分配算法,将一个周期的带宽分配过程分成2个阶段,第1个阶段是预留阶段,第2个阶段是竞争阶段。
预留阶段采用FS算法为所有ONU分配带宽来保证公平性;
竞争阶段将为那些处于数据突发状态的ONU安排第2次发送机会,其带宽大小用滑动窗来加以限制。
在竞争阶段,为了将自相似性引发的数据持续突发性这一因素考虑在内,用SW算法取代FS算法,取消上限带宽Wmax的限制,而采用一个滑动窗Bmax来对ONU当前最后N个周期授权的带宽总和B进行限制。
也就是说,SW算法将以ONU在最近的N个周期(包括当前这个周期在内)获得的总带宽不超过Bmax为条件,在当前周期的竞争阶段为其分配带宽。
OLT在第j个ONU的第i个轮询周期分配带宽:
式中:
RjI表示在第i个周期的预留阶段分配给ONUj的带宽大小,它在不超过上限带宽Wmax的前提下,根据ONUj申请的带宽rji进