伍召學(xué),黃 俊,謝 虎
(重慶郵電大學(xué)信號處理與片上系統(tǒng)實驗室,重慶400065)
根據(jù)《寬帶網(wǎng)絡(luò)基礎(chǔ)設(shè)施“十二五”規(guī)劃》,我國寬帶建設(shè)將以網(wǎng)絡(luò)能力全面提升為主線,以加快城域網(wǎng)、部署大容量的DWDM系統(tǒng)為著力點,逐步進行城域網(wǎng)上聯(lián)骨干網(wǎng)的扁平化改造,增加骨干網(wǎng)絡(luò)核心節(jié)點的數(shù)量,提升寬帶網(wǎng)絡(luò)保障能力。而節(jié)點一般接入到兩個或多個網(wǎng)絡(luò)中,一旦出現(xiàn)設(shè)備故障,將造成極大的沖擊和損失。因此,針對節(jié)點的旁路保護顯得至關(guān)重要。
基于10G傳輸?shù)墓饫w旁路保護器[1]是專門針對當(dāng)前DWDM系統(tǒng)接入節(jié)點的旁路保護設(shè)備。當(dāng)節(jié)點出現(xiàn)硬件故障、電源故障、軟件死鎖時快速、自動跳過該節(jié)點切換到直通狀態(tài)進行通信,形成網(wǎng)絡(luò)自愈,保證網(wǎng)絡(luò)可用性,不影響網(wǎng)絡(luò)穩(wěn)定性,讓網(wǎng)絡(luò)維護更加得心應(yīng)手。
本設(shè)計的主要目的是利用MPC8308豐富的內(nèi)部資源,配合基于10G傳輸?shù)囊蕴W(wǎng)交換芯片BCM56334、物理芯片BCM8705以及精密的光學(xué)元件,設(shè)計出一種性價比較高的旁路保護器。該旁路保護器通過鏡像端口與被保護設(shè)備的防火墻相連,實現(xiàn)了光纖網(wǎng)絡(luò)安全的完美保護。旁路保護器硬件原理示意圖如圖1所示。
圖1 硬件原理圖
旁路保護器硬件上采用飛思卡爾的 MPC8308[2-3]作為主處理器,通過數(shù)據(jù)采集模塊與被保護設(shè)備相連,通過RJ-45進行管理操作,通過RS-232串口進行配置和軟件升級操作,通過判斷接收返回的心跳信號是否異常來控制WDT驅(qū)動光開關(guān),切換光路。數(shù)據(jù)采集模塊主要由BCM8705和光模塊(XFP)組成,通過配對使用,構(gòu)成獨立的接收或轉(zhuǎn)發(fā)電路,提高了系統(tǒng)效率。數(shù)據(jù)采集模塊示意圖如圖2所示。
圖2 數(shù)據(jù)采集模塊
旁路保護器主要用于10G傳輸?shù)脑O(shè)備保護,信息吞吐量大,而且是主動外置保護設(shè)備,要發(fā)送和接收心跳包,對響應(yīng)實時性要求較高,因此本設(shè)計采用飛思卡爾的MPC8308作為主處理器。MPC8308中的PowerPC e300c帶有16 kbyte的指令cache和16 kbyte的數(shù)據(jù)cache,實現(xiàn)了PowerPC的用戶指令集系統(tǒng)結(jié)構(gòu),并提供了硬件和軟件調(diào)試支持,主頻最高可達333/226 MHz。另外,MPC8308提供了2個三速(10110011000)Mbit/s的Ethernet控制器、1個DDR/DDR2 SDRAM存儲器控制器、1個靈活的本地總線控制器、1個PCI連接器、5個千兆以太網(wǎng)端口、1個通信I/O端口、2路UART等資源。此控制芯片開發(fā)成本低、開發(fā)周期短??刂颇K和交換芯片連接示意圖如圖3所示。
圖3 交換芯片連接原理圖
在具體連接上,MPC8308通過PCIe接口對以太網(wǎng)交換模塊的交換芯片BCM56334進行業(yè)務(wù)配置,通過連接一塊1G PHY(BCM5461)芯片實現(xiàn)RGMII到COFFER接口的轉(zhuǎn)換。
系統(tǒng)中以太網(wǎng)數(shù)據(jù)處理部分主要由以太網(wǎng)交換芯片、數(shù)據(jù)采集模塊兩部分構(gòu)成。以太網(wǎng)交換芯片和物理層芯片分別采用了博通的BCM56334和BCM8705,二者均支持10G的數(shù)據(jù)傳輸。BCM56334通過4個1.0G/2.5G/10G/12G/13G棧端口與4塊BCM8705相連,實現(xiàn)了物理層數(shù)據(jù)向MAC層的傳輸。XFP是一種可熱插拔的且獨立于通信協(xié)議的光學(xué)收發(fā)器,在系統(tǒng)中主要用于光電轉(zhuǎn)換。連接電路如圖4所示。
圖4 BCM56334和BCM8705連接圖
旁路切換電路主要由MPC8308、WDT和光開關(guān)組成。設(shè)計中使用微機械光開關(guān)從物理上切換光路。光開關(guān)選用2×2的單模/多模微機械光開關(guān)。光開關(guān)支持兩路光路同時切換。同時,此光開關(guān)具有損耗小、切換壽命長,切換時延小于4 ms等特點。
出于安全性考慮,旁路保護器使用串口在XP系統(tǒng)的超級終端下設(shè)置參數(shù)。用MPC8308自身的DUART端口配置,來完成RS-232串口設(shè)計;出于設(shè)備可擴展和管理要求考慮,MPC8308通過對RGMII接口的配置,連接一塊物理芯片BCM5461來完成RJ-45網(wǎng)口設(shè)計。
光開關(guān)將光信號引入旁路保護器內(nèi)部??刂颇K監(jiān)聽防火墻返回的心跳信號,一旦在預(yù)先設(shè)置的門限值(ms)內(nèi)未收到返回信號,則發(fā)送喂狗信號控制看門狗,看門狗接收到指令后驅(qū)動光開關(guān),切換到旁路電路;反之,則說明以太網(wǎng)交換電路和防火墻均工作正常,便將防火墻接入網(wǎng)絡(luò)并返回心跳包,控制模塊同時進行心跳計時并通過判定心跳信號是否超時來進行下一步工作電路判斷。旁路保護器在網(wǎng)絡(luò)中工作指令流程如圖5所示。
圖5 指令轉(zhuǎn)發(fā)流程圖
旁路保護器軟件功能的實現(xiàn)依賴于嵌入式Linux平臺的構(gòu)建。平臺構(gòu)建流程如圖6所示。
圖6 軟件平臺搭建流程
嵌入式系統(tǒng)的開發(fā)一般需要交叉編譯開發(fā)環(huán)境[4-6]。主機系統(tǒng)工作在Centos環(huán)境下,將飛思卡爾針對開發(fā)板提供的嵌入式開發(fā)套件BSP源代碼包掛載到/opt/freescale目錄下。執(zhí)行./install完成安裝,最后生成項目開發(fā)所需的交叉編譯工具:powerpc-e300c3-linux-gnugcc、powerpc-e300c3-linux-gnu-g++、powerpce300c3-linux-gnu-ar。
移植工作主要針對不同的目標(biāo)板進行一些配置修改。以MPC8308RDB作為目標(biāo)板,首先確定目標(biāo)板上的系統(tǒng)資源映射,在此基礎(chǔ)上通過修改配置文件和代碼完成U-BOOT的移植,如果移植后無法滿足外部設(shè)備的一些功能需求,還需要添加一些驅(qū)動程序。本平臺的地址空間映射如表1所示。
表1 8 Mbyte NOR映射圖
在移植過程中,需要對MPC8308ERDB.h文件做一些修改,比如:
設(shè)置正確的輸入時鐘:
#define CONFIG_83XX_CLKIN 33333333/*in Hz*/
#define CONFIG_SYS_CLK_FREQ CONFIG_83XX_CLKIN
設(shè)置bootdelay:
#define bootdelay 3
注銷CONFIG_VSC7385_ENET,因目標(biāo)板不包含此交換芯片,否則U-BOOT會一直重啟:
由于系統(tǒng)中要掛載JFFS2文件系統(tǒng),還需對archpowerpcbootdtsmpc8308erdb.dts文件中JFFS2定義部分進行內(nèi)存大小設(shè)置。最后,將編譯好的u-boot.bin通過JTAG燒錄到Flash中,再通過tftp將內(nèi)核(uImage)、文件系統(tǒng)(rootf.gz.ext2.u-boot)加載到 Flash 中,完成 U-BOOT 和內(nèi)核移植工作。
SDK源代碼包從博通官網(wǎng)上下載。
1)首先在/opt/share/broadcom目錄下解壓出SDK源代碼。
2)進入sdk -all-5.10.1systemslinuxkernel,建立目錄mpc8308,選擇合適的目標(biāo)平臺(bmw-2_6),將該平臺下的makefile復(fù)制到mpc8308目錄下,打開/mpc8308下的makefile,找到platform,將bmw-2_6替換為mpc8308。
3)進入 sdk-all-5.10.1make目錄,復(fù)制當(dāng)前文件Makefile.linux-bmw -2_6,并重新更名為 Makefile.linuxmpc8308。要順利向后執(zhí)行代碼,必須先設(shè)置環(huán)境變量,這里建立一個setenv.sh腳本文件,錄入如下代碼:
export PATH=MYMPATH:/opt/freescale/usr/local/gcc-4.1.78 - eglibc-2/powerpce300c3-linux-gnu/bin/
export CROSS_COMPILE=powerpc-e300c3-linux-gnu
export PPC_TOOLS_DIR=/opt/freescale/usr/local/gcc-4.1.78 - eglibc-2/powerpc-e300c3-linux-gnu/bin/
export SDK=/opt/share/broadcom/sdk - all-5.10.1
export KERNDIR=/home/ferry/wok/ltib-mpc8308erdb-20100413/rpm/BUILD/-linux
上述變量中,PATH為交叉編譯環(huán)境的路徑,CROSS_COMPILE為編譯工具,即U-BOOT移植過程中所生成的交叉編譯工具,SDK為sdk安裝目錄,KERNDIR為U-BOOT源代碼所在目錄。針對目標(biāo)芯片,對當(dāng)前環(huán)境做適當(dāng)修改。注銷掉WRS_LINUX_VERSION=2.0,將CFGFLAGS+= -DBCM_PLATFORM_STRING=”BBMW_MPC8245/PPC603e”編譯環(huán)境變量替換為CFGFLAGS+=-DBCM_PLATFORAM_STRING=”BMW__MPC8308”,ARCH=ppc替換為ARCH=powerpc,最后再將KFLAGS重新設(shè)置為目標(biāo)參考值。
4)執(zhí)行source setenv.sh,導(dǎo)入腳本文件,進入 sdkall-5.10.1systemslinuxkernelmpc8308 執(zhí)行 make 命令。編譯成功后,在/sdk -all-5.10.1 生成 build 目錄,在/build目錄下生成7個文件,如表2所示。
最后將用到的模塊加載。執(zhí)行過程如下:
#insmod linux-kernel-bde.ko–f
#insmod linux-bcm-core.ko–f
#./bcm.user.proxy
表2 生成模塊列表
經(jīng)過測試,系統(tǒng)響應(yīng)時間如表3所示。
表3 響應(yīng)時間
初始上電后,看門狗的LED呈淺黃色,CPU每隔5 ms發(fā)送一次心跳數(shù)據(jù)包。當(dāng)被保護設(shè)備掉電時,看門狗的LED呈紅色,系統(tǒng)自動切換到旁路模式,切換時延小于20 ms。光路切換時延是指心跳包通過內(nèi)部電路繞過防火墻情況下,從防火墻返回心跳信號到光路切換完成所需要的時間。
經(jīng)以上分析測試,旁路保護器具有響應(yīng)快、自動檢測、功耗低、可擴展性強等特點,能支持10G單模和多模數(shù)據(jù)傳輸,具備很好的實用價值,該旁路保護器已實現(xiàn)產(chǎn)品化,逐步推向市場。
本文創(chuàng)新點:硬件上充分利用了MPC8308高度集成、低功耗的優(yōu)勢,提供了RJ-45和RS-232兩個接口,擴展了系統(tǒng)功能,硬件上也采用了雙重電路安全設(shè)計,對設(shè)備自身提供了安全保護功能;在軟件上,采用了飛思卡爾提供的LITB開發(fā)包以及博通交換芯片SDK源碼包,構(gòu)建了優(yōu)秀的開發(fā)平臺,縮短了產(chǎn)品開發(fā)的周期。
[1]孫紀坤.嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解-基于ARM[M].北京:人民郵電出版社,2006.
[2] Freescale Semiconductor Inc.PowerPCMPC8308 referencemanual[EB/OL].[2013-05-25].http://www.ic72.com/pdf/info_2180642.html.
[3]張娟,蔣瑜.基于PowerPC8247的嵌入式Linux系統(tǒng)開發(fā)[J].計算機系統(tǒng)應(yīng)用,2009,18(12):224-227.
[4]梁海軍,趙建,陳陸艷.基于msp430單片機的光線旁路保護器的實現(xiàn)[J].微計算機信息,2009,25(11):113-115.
[5]吳聰,謝虎.基于ARM Correx-M3的高速誤碼測試系統(tǒng)設(shè)計[J].電視技術(shù),2013,37(5):196-199.
[6]高晶敏,蘭亞柱.Porting U-Boot to the Control Computer Based on MPC8349[J].微計算機信息.2009,9(2):83-85.