殷愛菡,劉方仁
(華東交通大學(xué)信息工程學(xué)院,江西南昌 330013)
以太無源光網(wǎng)絡(luò)EPON(ethernet passive optical network,EPON)是光接入網(wǎng)的重要解決方案之一[1],為了實現(xiàn)EPON系統(tǒng)良好的可擴(kuò)展性和方便的操作維護(hù)管理,在系統(tǒng)開通運行后,新連接的或者掉電的光網(wǎng)絡(luò)單元ONU(optical network unit,ONU)需要能夠自動加入到系統(tǒng)中,而不影響其它正常工作的ONU。以往關(guān)于ONU注冊的研究,大部分集中在對ONU注冊算法的研究,如對ONU注冊窗口大小和周期的選擇[2],以及對ONU注冊流程及其安全性研究[3],很少涉及到ONU注冊的硬件實現(xiàn)。本文提出了一種基于FPGA的ONU注冊方案,且采用自頂向下的設(shè)計方法,通過硬件描述語言Verilog HDL編程實現(xiàn),該方案具有占用硬件資源少、結(jié)構(gòu)簡單、可靠性高和可移植性等優(yōu)點。
ONU的注冊是指新連接的或斷線的ONU接入網(wǎng)絡(luò),能夠被光線路終端OLT(optical line terminal,OLT)自動識別,這一過程由OLT來驅(qū)動。注冊過程中需要的控制幀有:傳送注冊授權(quán)和帶寬授權(quán)的GATE幀,傳送注冊請求的REGISTER_REQ幀,傳送注冊信息的REGISTER幀,傳送注冊確認(rèn)信息的REGISTER_ACK幀。具體的注冊過程及原理如下.
1)OLT周期性的向系統(tǒng)各個ONU廣播發(fā)送注冊授權(quán)GATE幀,讓新接入的或者斷線的ONU有機(jī)會被OLT識別。OLT發(fā)送注冊授權(quán)GATE幀后,啟動發(fā)現(xiàn)窗口定時器,若定時器超時未收到ONU的應(yīng)答,則關(guān)閉發(fā)現(xiàn)窗口,等待下一周期的到來[4]。
2)已注冊的ONU忽略注冊授權(quán)GATE幀,而未注冊的ONU接收到注冊授權(quán)GATE幀后,首先根據(jù)時間標(biāo)簽調(diào)整本地時鐘,然后在授權(quán)的時隙內(nèi)利用REGISTER_REQ幀發(fā)送注冊請求信息。若ONU在發(fā)送注冊請求后的指定時間內(nèi)未收到OLT發(fā)來的REGISTER幀,則認(rèn)為發(fā)生了注冊沖突。ONU進(jìn)行隨機(jī)延時后重新發(fā)送注冊請求,直至收到OLT發(fā)來的REGISTER幀[5]。
3)OLT在發(fā)現(xiàn)窗口內(nèi)收到一個有效地注冊請求消息后,首先給新發(fā)現(xiàn)的ONU分配邏輯鏈路標(biāo)識LLID(logical link identifier),并將LLID與該ONU的MAC地址綁定起來,同時利用REGISTER幀給該ONU發(fā)送注冊信息;然后OLT再給該ONU發(fā)送帶寬授權(quán)GATE幀以使其向OLT發(fā)送注冊確認(rèn)幀[6]。
4)未注冊的ONU收到REGISTER幀后,利用該消息中攜帶的新分配的LLID替換未注冊時的LLID,同時等待OLT發(fā)送帶寬授權(quán)GATE幀。收到授權(quán)后,ONU利用REGISTER_ACK幀向OLT發(fā)送注冊確認(rèn)信息,這樣就完成了整個注冊過程。具體的注冊過程如圖1所示。
根據(jù)ONU的注冊過程以及模塊化的FPGA設(shè)計思想,將ONU注冊作為一個模塊來實現(xiàn),其總體設(shè)計框圖如圖2所示。為了更好地說明ONU注冊的FPGA實現(xiàn)過程,設(shè)計了一個由OLT和3個ONU組成的簡單注冊模塊。由設(shè)計框圖可知,注冊模塊包括:啟動注冊模塊、OLT端控制幀處理模塊、單播/廣播控制模塊和ONU端控制幀處理模塊等4個子模塊。


ONU注冊過程的第一步是OLT以廣播的方式周期發(fā)送注冊授權(quán)GATE幀,由于該幀是周期發(fā)送的,且該GATE幀的內(nèi)容是固定的,因此單獨設(shè)計一個模塊來周期發(fā)送注冊授權(quán)GATE幀。注冊授權(quán)GATE幀的長度為72個字節(jié),故啟動注冊模塊的設(shè)計中將該GATE幀存儲在一個長度為18,位寬為32的數(shù)組中。clk_gate為發(fā)送注冊授權(quán)GATE幀的標(biāo)識信號,當(dāng)clk_gate產(chǎn)生一個高電平時,OLT就立即發(fā)送注冊授權(quán)GATE幀。
OLT端控制幀處理模塊的主要功能是發(fā)送REGISTER幀和帶寬授權(quán)GATE幀,處理ONU發(fā)來的REGISTER_REQ幀和REGISTER_ACK幀。控制幀的發(fā)送與接收可以利用FIFO來實現(xiàn)[7]。考慮到控制幀的長度為72字節(jié),故FIFO的位寬設(shè)定為32,深度設(shè)定為18。OLT端控制幀處理模塊接收到ONU發(fā)來的控制幀后將其保存到64位的移位寄存器中,然后判斷移位寄存器的數(shù)值是不是幀前導(dǎo)碼。若不是幀前導(dǎo)碼,則繼續(xù)檢測;若是,則將計數(shù)器置0,并開始計數(shù),直到計數(shù)器的值為8時,再進(jìn)行數(shù)據(jù)檢測。此時檢測的是操作碼字段的值,根據(jù)操作碼字段的值來進(jìn)行幀識別,從而對不同的幀作出相應(yīng)的處理。操作碼0x0002代表GATE幀,0x0004代表REGISTER_REQ幀,0x0005代表REGISTER幀,0x0006代表REGISTER_ACK幀,其中0x表示十六進(jìn)制[8]。該模塊程序設(shè)計流程圖如圖3所示。
在ONU的注冊過程中,OLT控制幀的發(fā)送方式分為廣播發(fā)送與單播發(fā)送,注冊授權(quán)GATE幀和REG-ISTER幀為廣播發(fā)送,帶寬授權(quán)GATE幀為單播發(fā)送。當(dāng)控制幀進(jìn)入單播/廣播控制模塊時,檢測該幀的操作碼字段,從而識別該幀的類型,選擇相應(yīng)發(fā)送方式。單播/廣播控制模塊程序設(shè)計流程圖如圖4所示。


ONU端控制幀處理模塊的主要功能是接收注冊授權(quán)GATE幀、帶寬授權(quán)GATE幀,發(fā)送REGISTER_REQ幀和REGISTER_ACK幀。ONU端控制幀處理模塊也采用FIFO來進(jìn)行數(shù)據(jù)處理的,將接收到的數(shù)據(jù)存儲到64位的移位寄存器中,檢測其操作碼字段的值,從而確定幀的類型。當(dāng)ONU連續(xù)收到REGISTER幀和帶寬授權(quán)GATE幀后,ONU向OLT發(fā)送一個REGISTER_ACK幀,報告注冊結(jié)果。ONU端控制幀處理模塊程序設(shè)計流程圖如圖5所示。
ONU注冊的FPGA實現(xiàn)和功能驗證是在Modelsim SE 6.5和QuartusⅡ7.1環(huán)境下完成的。驗證所采用的芯片是CycloneⅡ系列芯片EP2C8Q208C7。為了對ONU注冊過程進(jìn)行仿真,特設(shè)定如下參數(shù):OLT的MAC地址為0x201010011030,LLID為0x1fff;ONU1的MAC地址為0x201010011001,ONU2的MAC地址為0x201010011002,ONU3的MAC地址為0x201010011003;注冊成功后OLT分配給ONU1,ONU2,ONU3的LLID分別為0x1111,0x2222,0x3333。
ONU注冊的仿真過程如圖6所示,圖6(a)是OLT發(fā)送的注冊授權(quán)GATE幀,圖6(b)是OLT接收到ONU1發(fā)送的REGISTER_REQ幀,圖6(c)和圖6(d)分別是OLT向ONU1發(fā)送的REGISTER幀和帶寬授權(quán)GATE幀。ONU注冊成功的確認(rèn)結(jié)果如圖7所示,圖中的數(shù)據(jù)是OLT接收到ONU發(fā)送的REGISTER_ACK確認(rèn)幀。該幀的第1,2組數(shù)據(jù)是幀前導(dǎo)碼,第3,4,5組數(shù)據(jù)是目的地址和源地址,第6組數(shù)據(jù)是幀類型標(biāo)識和操作碼,第7組數(shù)據(jù)是時戳,第8組數(shù)據(jù)是數(shù)據(jù)域,其前2位數(shù)字表示注冊成功與否,若為0x01則表示注冊成功;中間4位數(shù)字表示注冊完成后OLT分配給某個ONU的LLID,后面2位數(shù)字則是對同步時間值作的回應(yīng)。

圖7(a)(b)(c)分別是OLT接收到ONU1,ONU2,ONU3發(fā)送的REGISTER_ACK幀。從圖7中的結(jié)果可以看出,圖7(a)中的第3組數(shù)據(jù)和第4組數(shù)據(jù)的前4位為0x201010011030,為OLT的MAC地址,表示該幀是發(fā)送給OLT的;第4組數(shù)據(jù)的后4位和第5組數(shù)據(jù)為0x201010011001,為ONU1的MAC地址,表示該幀是從ONU1發(fā)出的;第6組數(shù)據(jù)的前4位為0x8808,表示該幀的類型為控制幀,其后4位為0x0006,表示該幀為注冊確認(rèn)幀;第7組數(shù)據(jù)表示ONU1發(fā)送該確認(rèn)幀時的本地時間值;第8組數(shù)據(jù)的前2位數(shù)字為0x01,且中間4位數(shù)字為1111,這說明ONU1注冊成功,且分配的LLID與前面預(yù)期設(shè)定的分配值相同。同理,圖7(b)中的第8組數(shù)據(jù)的前6位數(shù)字為0x012222,圖7(c)中的第8組數(shù)據(jù)的前6位數(shù)字為0x013333。綜上所述,仿真結(jié)果驗證了該ONU注冊方案的有效性和可行性。


通過對ONU注冊的各個模塊的程序設(shè)計,在Altera的平臺上實現(xiàn)了FPGA硬件電路,成功實現(xiàn)了提出的ONU注冊方案,仿真結(jié)果與預(yù)期的理論值完全相符。該方案設(shè)計靈活,具有可移植性,能很容易地擴(kuò)展為16個或者32個ONU的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),可廣泛地應(yīng)用于新一代無源光接入網(wǎng)中。
[1]SíLVIAPATO,HENRIQUE SILVA,PAULO MONTEIRO.Forward error correction in 10 Gbits/s Ethernet passive optical networks[J].Journal of Optical Networking,2009,8(1):84-94
[2]戚世杰,李迎春,林如儉.EPON系統(tǒng)注冊過程[J].上海大學(xué)學(xué)報:自然科學(xué)版,2005(11):346-349.
[3]簡化,李慶山,秦前清.EPON中ONU的自動加入技術(shù)及實現(xiàn)[J].光通信技術(shù),2004(9):18-19.
[4]朱華偉,侯曉榮,何崢.10 G EPON系統(tǒng)ONU注冊技術(shù)研究[J].光通信技術(shù),2010(2):1-4.
[5]張多英,李學(xué)易,劉偉平,等.EPON系統(tǒng)中的MPCP協(xié)議研究[J].應(yīng)用光學(xué),2004,25(4):21-25.
[6]李霞,黃俊,朱雁程.EPON中LLID配置方式[J].光通信技術(shù),2009(5):8-10.
[7]陳軍,張遠(yuǎn)見,楊俊.一種節(jié)能型可升級異步FIFO的FPGA實現(xiàn)[J].電子技術(shù)應(yīng)用,2009(4):66-69.
[8]LAN/MAN Standards Committee of the IEEE Computer Society.IEE Std 802.3ah-2004[S].New York:The Institue of Electrical and Electronics Engineers:2004.