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