EthernetPON系統(tǒng)核心MAC控制器的設計與實現(xiàn)
關(guān)鍵詞:以太網(wǎng)無源光網(wǎng)絡;媒體接入控制;嵌入式系統(tǒng);現(xiàn)場可編程門列陣
近年來隨著傳輸技術(shù)和交換技術(shù)的不斷進步,核心網(wǎng)已經(jīng)基本實現(xiàn)了光纖化、數(shù)字化和寬度化,而傳統(tǒng)的接入網(wǎng)仍然是采用電纜傳輸?shù)哪M系統(tǒng),兩者在技術(shù)上的巨大差距導致接入網(wǎng)成為全球信息高速公路的瓶頸.目前盡管出現(xiàn)了一系列解決這一瓶頸問題的技術(shù)手段,如雙絞線上的xDSL系統(tǒng)、同軸電纜上的HFC系統(tǒng)以及五類線上的LAN,但都只能算是一些過渡性解決方案,不能滿足視頻點播、家庭購物、數(shù)字高清晰度電視播放等新業(yè)務對寬帶通信的需求,唯一能夠從根本上徹底解決接入瓶頸的長遠技術(shù)手段就是全光接入網(wǎng).基于以太網(wǎng)的無源光網(wǎng)絡(EPON)就是這一背景下應運而生的光纖接入技術(shù).EPON與傳統(tǒng)以太網(wǎng)的主要區(qū)別在于傳統(tǒng)以太網(wǎng)是點到點(Peer-to-Peer,P2P)的對等網(wǎng)絡,而EPON是點到多點(Point-to-Multipoint,P2MP)的主從網(wǎng)絡,其技術(shù)創(chuàng)新就在于點對多點MAC接入控制的設計與實現(xiàn).本文提出了一種EPON系統(tǒng)MAC控制器的設計方案,詳細闡述了采用包含嵌入式CPU的FP2GA開發(fā)MAC控制器的設計全過程,并通過系統(tǒng)軟、硬件仿真驗證了該設計的可行性,為我國開發(fā)MAC控制器專用芯片提供實用參考.
EPON系統(tǒng)結(jié)構(gòu)
如圖1所示,一個典型的EPON系統(tǒng)主要由三部分組成,即光線路終端(OLT)、無源光分路器(POS)和光網(wǎng)絡單元(ONU).其中OLT位于局端,一般放在中心機房(Central Office,CO),ONU位于用戶端,POS連接OLT和ONU,它的功能是分發(fā)下行數(shù)據(jù)和匯聚上行數(shù)據(jù).從OLT到ONU的方向為下行方向,反之為上行方向.OLT上行鏈路與各業(yè)務節(jié)點相連,ONU下行鏈路則與各用戶終端設備連接.
圖1 EPON系統(tǒng)架構(gòu)
在EPON中,從OLT到多個ONU的下行數(shù)據(jù)傳輸過程與從多個ONU到OLT的上行數(shù)據(jù)傳輸過程有本質(zhì)的區(qū)別,如圖2所示.下行數(shù)據(jù)采用廣播方式以變長以太包的形式從OLT發(fā)給多個ONU,每個以太包帶有標識目標ONU的邏輯鏈路標識(LLID),通過識別LLID判斷信息包是發(fā)給某個或多個ONU的.當數(shù)據(jù)流到達ONU時,ONU只提取發(fā)給它的信息包而丟棄發(fā)給其他ONU的信息包;而上行數(shù)據(jù)則采用時分多址接入(TDMA)技術(shù),每個ONU都分配一個傳輸時隙,所有時隙保持同步,彼此間留有間隙,保證不同ONU的數(shù)據(jù)包匯聚到公共光纖時不發(fā)生相互碰撞.
圖2 EPON的上、下行傳輸機制
OLT系統(tǒng)設計
為支持EPON的協(xié)議棧結(jié)構(gòu)和工作模式,本文采用圖3所示的OLT系統(tǒng)設計,它主要由MAC控制器、EPON千兆位突發(fā)光收發(fā)器、存儲器和外圍接口電路組成.其中MAC控制器是采用Altera公司的EXCAL IBUR-ARM系列FPGA(帶ARM9硬核)芯片實現(xiàn).在CO端,OLT通過標準的千兆以太收發(fā)器與上層交換機相連;在EPON端,OLT通過專用的光收發(fā)器連接PON網(wǎng)絡.
圖3 OLT系統(tǒng)總體框圖
該系統(tǒng)可以實現(xiàn)以下功能:
(1)以廣播方式向ONU下行發(fā)送以太數(shù)據(jù)包,以TDMA方式接收來自ONU的以太包;
(2)發(fā)起并控制ONU的注冊過程,根據(jù)用戶的QoS要求為ONU分配帶寬;
(3)除了網(wǎng)絡的匯聚和接入功能,OLT還提供OAM功能.
核心MAC控制器的實現(xiàn)
圖4所示為本文設計的EPON系統(tǒng)核心MAC 控制器的功能框圖,它由硬件和軟件部分組成.硬件部分(圖中實線表示的模塊)由FPGA來完成[3],實現(xiàn)點對點仿真,以太幀的校驗、加/解密、分類/仲裁/復用等控制功能;軟件部分由嵌入式系統(tǒng)Monta Vista Linux來完成對ONU的注冊和動態(tài)帶寬分配(DBA).
首先對圖中各模塊的功能作一簡要說明.位寬變換模塊實現(xiàn)數(shù)據(jù)流的8bit位寬(字節(jié)為單位)與32bit位寬(雙字為單位)之間的互換;LLD添加/校驗模塊主要完成LLD的添加/校驗;分類/仲裁/復用模塊實現(xiàn)對以太幀的分類、發(fā)送優(yōu)先級仲裁和復用;測距模塊計算ONU至OLT的往復時間(RTT),以便進行上行時延補償.時標處理模塊實現(xiàn)OLT與ONU的時鐘同步.下面就MAC控制器在軟、硬件設計中涉及到的關(guān)鍵技術(shù)進行全面闡述.
圖4 核心MAC控制器功能框圖
位寬變換及時鐘設計
考慮到EXCAL IBUR-ARM系列FPGA內(nèi)嵌的ARM922T是一款RISC架構(gòu)的32bit微處理器,為了方便FPGA與微處理器之間的數(shù)據(jù)交換,MAC控制器的內(nèi)部數(shù)據(jù)統(tǒng)一采用雙字為單位進行處理.OLT與ONU之間的線路傳輸速率是1.25Gbit/s,碼流在物理層經(jīng)過串/并變換、8B/10B編碼之后的速率為125Mbit/s,而進行位寬變換后,FPGA的工作頻率下降到31.25MHz.本文設計FPGA開發(fā)板時,采用了25MHz的晶振作為時鐘源.
值得一提的是,位寬變換模塊需用到125MHz和31.25MHz2個時鐘(分別由倍頻器和分頻器提供).輸入的8bit碼流以125MHz的頻率順序?qū)懭?個FIFO中,同時以31.25MHz的頻率從這4個FIFO中并行輸出,直至一幀結(jié)束.但必須考慮數(shù)據(jù)幀的幀長(以字節(jié)為單位)不能被4整除的情況,如最后只剩下3個8bit碼.這時將‘0x00’寫入最后的空閑FIFO中,使幀長滿足4的整數(shù)倍.為此,位寬變換模塊增加了以字節(jié)為單位的幀長和以雙字為單位的幀長統(tǒng)計功能,用于告知其后級聯(lián)的模塊只對幀有效數(shù)據(jù)進行處理.所有的變換處理均在FPGA內(nèi)部實現(xiàn),因而不增加FPGA的外部引腳.
分類、仲裁和復用技術(shù)
分類、仲裁及復用是MAC控制器最為關(guān)鍵的功能,FPGA與微處理器如何進行數(shù)據(jù)交換、數(shù)據(jù)流如何分類及緩沖、何種仲裁機制能夠?qū)崿F(xiàn)信道的最佳復用等技術(shù)細節(jié)都是模塊設計時必須考慮的問題.上行分類器收到以太幀后,首先根據(jù)幀類型(Type域)區(qū)分MAC幀、OAM幀和數(shù)據(jù)幀.如果是MAC幀或OAM幀,則直接寫入雙端口RAM的MAC幀隊列或OAM幀隊列,同時給出相應的中斷請求信號,通知ARM來處理;如果是數(shù)據(jù)幀,區(qū)分是發(fā)往核心網(wǎng)的SNI幀,還是送給其他ONU的P2P幀.SNI幀按照FIFO機制送往上層交換機;P2P幀則寫入SDRAM中,直接參與下行數(shù)據(jù)幀的仲裁和復用.圖5給出了幀分類、仲裁和復用處理流圖.
圖5 幀分類/仲裁/復用處理流程圖
圖中,下行仲裁/復用器首先對送給同一個ONU的數(shù)據(jù)幀(包括下行幀和P2P幀)、OAM幀和MAC幀進行優(yōu)先級仲裁,MAC幀優(yōu)先級最高,數(shù)據(jù)幀次之,OAM優(yōu)先級最低.然后要為發(fā)往不同ONU的幀優(yōu)先級進行二次仲裁,最終通過一條物理鏈路將這些幀以時分復用送出去,所以下行幀和P2P幀必須先緩存在SDRAM中,等待發(fā)送指示信號.將SNI幀放在SDRAM中也是可行的,但由于上行信道的帶寬分配過程已經(jīng)實現(xiàn)了對幀的優(yōu)先級仲裁,所以本文選擇用FIFO替代SDRAM,完成對SNI幀的緩沖,這樣可以大大減少FPGA芯片的外部引腳,降低了ASIC芯片的制造成本.
安全策略
在EPON系統(tǒng)中,各個ONU的上行通道是彼此獨立的,用戶無法竊取他人的信息;下行方向是媒質(zhì)共享網(wǎng)絡,數(shù)據(jù)以廣播形式發(fā)送,每個ONU都能接收到所有的下行數(shù)據(jù),802.3ah引入LLID來限制每個ONU只能接收屬于自己的數(shù)據(jù)包.然而用戶可以通過某種方式繞開LLID校驗,竊取其他ONU的信息,最為典型的解決方法就是在下行方向?qū)λ械臄?shù)據(jù)幀進行加密傳輸.事實上,這種加密方式存在許多安全隱患.首先,未經(jīng)加密的下行MAC幀和OAM幀如果被成功獲取的話,入侵者便可以輕易掌握其他用戶的關(guān)鍵信息,如ONU的LLID和終端用戶MAC地址,進而在上行方向通過盜用LLID和MAC地址來竊取其他用戶的帶寬;其次,在上行方向合法用戶可能通過偽造MAC幀或OAM幀,來更改EPON系統(tǒng)配置,甚至侵入電信管理網(wǎng)絡,擾亂整個電信網(wǎng).針對這兩種威脅,本文采用了一種加密與認證相結(jié)合的安全策略.
信息加密
加密算法本文采用的是AES算法,密鑰長度選取128bit.下行方向OLT對所有類型的幀進行加密,加密區(qū)域從目的MAC地址到FCS域.密鑰由ONU產(chǎn)生,上行發(fā)送給OLT,不可能被用戶截獲,不同的ONU使用不同的密鑰,從而保證了下行數(shù)據(jù)私密性的要求;上行方向,為了防止假冒用戶,ONU對MAC幀和OAM幀進行加密,加密區(qū)域也是目的MAC地址到FCS域.
為提供密鑰更新功能,本文定義了兩類新的MAC幀,密鑰更新請求幀(new_key_request)和密鑰更新響應幀(new_key_respond),類型代碼分別為07和08(802 3ah已經(jīng)采用了六類MAC幀,類型代碼01-06).ONU通過注冊過程將初始密鑰發(fā)送給OLT,OLT定期向下廣播密鑰更新請求幀,ONU則通過密鑰更新響應幀將新密鑰上傳給OLT,如圖6所示.為了保證密鑰的同步性,在Preamble中增加了1bit的flag域和1bit的keyindex域,flag為‘1’標識該幀已被加密,并通過keyindex告知接收端采用哪個密鑰解密,加/解密端同時存儲了2個密鑰以保證新舊密鑰的平穩(wěn)過渡.
圖6 密鑰的更新與同步過程
消息認證
上行方向如果只是簡單地加密,顯然是不夠的,因為用戶可以盜用他人的合法LLID傳輸數(shù)據(jù).因而OLT還必須進一步對消息發(fā)送源的真?zhèn)芜M行鑒別和認證,即確認接收到的ONUn的數(shù)據(jù)確實是由ONUn發(fā)出的.本文通過FCS校驗來對消息源進行認證,這種方法簡單而有效.首先對Preamble進行CRC校驗,對加密區(qū)域進行解密處理,然后進行FCS校驗,如果Preamble的CRC校驗結(jié)果正確,加密域的FCS校驗錯誤,則說明加密錯誤或者該消息是用戶偽造的,應該予以丟棄,這樣就確保了消息的真實性與合法性.
動態(tài)帶寬分配
在802.3ah協(xié)議中,帶寬分配算法是開放的,協(xié)議不作明確規(guī)定,由制造商自行設計.目前802.3ah工作組討論較多的都是一種基于公平調(diào)度(FS)的動態(tài)帶寬分配算法,它在一個輪詢周期內(nèi)只給每個ONU一個發(fā)送機會以保證服務的公平性.這種分配方式算法簡單,易于實現(xiàn).然而它忽略了綜合業(yè)務網(wǎng)的一個非常重要的特征:網(wǎng)絡流量自相似特性導致的數(shù)據(jù)流突發(fā)性,無法根本解決公平性和數(shù)據(jù)流的突發(fā)性之間的矛盾.即使EPON出于小負荷狀態(tài),下述矛盾現(xiàn)象也是不可避免的:某些ONU處于零負荷狀態(tài),每個輪詢周期都報告零字節(jié)帶寬請求;另一些ONU負荷輕,經(jīng)過一次發(fā)送機會已經(jīng)將緩沖區(qū)內(nèi)所有的數(shù)據(jù)包全部上傳;還有一些重負荷ONU,恰好處于數(shù)據(jù)流持續(xù)突發(fā)和震蕩狀態(tài),即使每個輪詢周期都給這些ONU分配上限帶寬Wmax,它們的緩沖區(qū)內(nèi)仍然累積了大量等待發(fā)送的數(shù)據(jù)包.因此,整個上行信道將被“空閑”O(jiān)NU的MAC控制信息和GB帶寬大量占用,而那些真正急需帶寬資源的“突發(fā)”O(jiān)NU卻長時間處于等待狀態(tài).
為此,本文設計了一種基于滑動窗(SW)的動態(tài)帶寬分配算法,將一個周期的帶寬分配過程分成2個階段,第1個階段是預留階段,第2個階段是競爭階段.預留階段采用FS算法為所有ONU分配帶寬來保證公平性;競爭階段將為那些處于數(shù)據(jù)突發(fā)狀態(tài)的ONU安排第2次發(fā)送機會,其帶寬大小用滑動窗來加以限制.在競爭階段,為了將自相似性引發(fā)的數(shù)據(jù)持續(xù)突發(fā)性這一因素考慮在內(nèi),用SW算法取代FS算法,取消上限帶寬Wmax的限制,而采用一個滑動窗Bmax來對ONU當前最后N個周期授權(quán)的帶寬總和B進行限制.也就是說,SW算法將以ONU在最近的N個周期(包括當前這個周期在內(nèi))獲得的總帶寬不超過Bmax為條件,在當前周期的競爭階段為其分配帶寬. OLT在第j個ONU的第i個輪詢周期分配帶寬:
式中:Rj I表示在第i個周期的預留階段分配給ONUj的帶寬大小,它在不超過上限帶寬Wmax的前提下,根據(jù)ONUj申請的帶寬rji進行分配;Cji表示在第i個周期的競爭階段分配給ONUj的帶寬大小,它的值用滑動窗Bmax進行限制.Bmax代表ONUj在最近N個周期(包括預留和競爭階段)得到的帶寬總和.
仿真結(jié)果
本文采用Altera的型號為EPXA 10F 1020C1的FPGA,通過硬件描述語言Verilog HDL對MAC控制器的硬件模塊進行了仿真.系統(tǒng)由1個OLT、2個ONU、4個用戶終端組成,時鐘頻率為125MHz.圖7是8~32bit的位寬變換模塊的仿真結(jié)果,wr_clk和rd_clk分別是125MHz的寫時鐘和31.25MHz的讀時鐘,bytei和seg_out分別是輸入的8bit碼流和輸出的32bit碼流.
圖7 位寬變換仿真結(jié)果
圖8為幀分類和RTT計算的仿真結(jié)果,MAC控制器根據(jù)幀類型域和LLID標識將上行幀分為MAC幀、OAM幀、SNI幀和P2P幀,并寫入相應的幀隊列;local_time是OLT的本地時鐘計數(shù)器,將local_time與ONU的MAC幀的time stamp值進行模減得到ONU的RTT.
圖8 幀分類與RTT計算的仿真結(jié)果
圖9給出了SW算法和FS算法在平均包延時和帶寬利用率方面的性能比較結(jié)果.
圖9 SW與FS算法的包延時和帶寬利用率性能分析
由圖可見,當ONU的載荷小于0.9時,SW算法的包延時明顯小于FS算法;在帶寬利用率方面,SW算法的性能也優(yōu)于FS算法,這是因為SW算法將FS算法中大量被“空閑”O(jiān)NU的MAC控制信息和GB帶寬占有的資源在競爭階段分配給了“繁忙”O(jiān)NU,從而提高了網(wǎng)絡的帶寬利用率.SW算法通過滑動窗機制將整個上行帶寬分2個階段進行動態(tài)分配,既滿足了網(wǎng)絡公平服務的要求,又緩解了數(shù)據(jù)突發(fā)性對網(wǎng)絡性能造成的負面影響,有效解決了公平性與突發(fā)性這一FS算法無法克服的矛盾,因而非常顯著地改善了網(wǎng)絡的服務質(zhì)量.
結(jié) 語
本文提出了一種基于FPGA技術(shù)與嵌入式系統(tǒng)的EPON核心MAC控制器設計方案,用于實現(xiàn)EPON下行廣播和上行TDMA的傳輸方式.對于幀校驗、加密、分類及仲裁等控制部分用FPGA實現(xiàn),注冊過程與動態(tài)帶寬分配在嵌入式Linux平臺上完成.文中對MAC控制器硬件設計的關(guān)鍵技術(shù)點進行了全面闡述,提出了一種基于滑動窗機制的動態(tài)帶寬分配方案以改善網(wǎng)絡QoS性能.系統(tǒng)的軟、硬件仿真驗證了該方案的可行性,為我國開發(fā)MAC控制器專用芯片提供了實用參考.