吳 聰,謝 虎
(1.重慶郵電大學(xué)信號處理與片上系統(tǒng)實驗室,重慶 400065;2.上海欣諾通信技術(shù)有限公司,上海 201613)
受3G、三網(wǎng)融合以及各種新型網(wǎng)絡(luò)應(yīng)用的逐漸普及的影響,通信行業(yè)正在經(jīng)歷從以往的語音通信業(yè)務(wù)為主向大力發(fā)展數(shù)據(jù)業(yè)務(wù)轉(zhuǎn)型,通信網(wǎng)絡(luò)的數(shù)據(jù)傳輸量大幅增長。據(jù)中國電信估計,未來5年骨干網(wǎng)流量每年將增加56% ~80%,因而我國骨干網(wǎng)帶寬需要擴(kuò)大10~20倍。目前我國的骨干傳輸網(wǎng)都是基于10 Gbit/s速率傳輸?shù)?,隨之而來,在網(wǎng)絡(luò)建設(shè)、施工以及維護(hù)中對于基于10 Gbit/s速率的高速誤碼測試儀器的需求更顯迫切。
誤碼測試儀主要用于對現(xiàn)代數(shù)字通信系統(tǒng)的誤碼性能測試與評估[1]。目前市面上已經(jīng)有多種誤碼測試儀,國內(nèi)的誤碼測試產(chǎn)品普遍信號處理速度比較低,美國Agilent公司、Tektronix公司生產(chǎn)的高端、成熟的誤碼測試儀功能完善,處理速率很高,但是價格十分昂貴。因此設(shè)計一種廉價的高速率誤碼測試儀對我國光通信網(wǎng)絡(luò)建設(shè)和發(fā)展都有重要意義。
誤碼測試系統(tǒng)由發(fā)送模塊和接收模塊兩部分組成[2]。發(fā)送端模塊的測試碼發(fā)生器產(chǎn)生一個已知序列的偽隨機(jī)碼序列數(shù)據(jù)流送入被測試系統(tǒng)的輸入端,在經(jīng)過被測試系統(tǒng)后,接入誤碼測試系統(tǒng)的接收端模塊,接收端將產(chǎn)生與發(fā)送端相同并同步的偽隨機(jī)碼序列,與收到的信號進(jìn)行對比,如果不同則認(rèn)為是誤碼,對誤碼計數(shù)器加1,隨之記錄并顯示測試結(jié)果[3]。測試系統(tǒng)原理圖如圖1所示。
圖1 誤碼測試系統(tǒng)原理圖
LM3S9B90是TI公司的32位ARM Cortex-M3微處理器,CPU時鐘高達(dá)80 MHz,處理速度達(dá)到1.25 MI/s(兆指令/s)[4]。它整合了Cortex-M3 和Thumb-2 指令集。Thumb-2技術(shù)可以使16位和32位指令并存,帶來了代碼密度和性能的最佳平衡。Thumb-2比純32位代碼占用少26%,同時帶來25%的性能提升,它為對成本尤其敏感的嵌入式微控制器應(yīng)用方案帶來了高性能的32位運(yùn)算能力。LM3S9B90豐富的外設(shè)接口簡化了硬件電路的設(shè)計[5],片內(nèi)256 kbyte的Flash和96 kbyte RAM對于本設(shè)計中存儲器的需求也已經(jīng)足夠,不需要外置存儲芯片,降低了系統(tǒng)成本。
Si5040是Silicon Laboratories生產(chǎn)的在數(shù)據(jù)發(fā)送和接收端都帶有信號抖動消除單元的10 Gbit/s XFP收發(fā)器。Si5040低功耗低抖動性能非常適合空間有限的XFP模塊應(yīng)用,Si5040是連續(xù)支持9.9~11.4 Gbit/s之間所有電信與數(shù)據(jù)通訊協(xié)議和信號抖動消除能力的收發(fā)器芯片,支持協(xié)議包括 OC-192/STM-64、10 Gbit/s Ethernet、10 Gbit/s Fiber Channel及其FEC速率,同時還支持模擬信號LOS監(jiān)測、數(shù)字信號CID(連0或連1)監(jiān)測以及數(shù)字眼圖(Eye Opening)3種信號質(zhì)量監(jiān)測功能。此外,Si5040還提供線路環(huán)回檢測、XFI回路檢測和收發(fā)雙向的PRBS碼流生成和檢測功能,這使得系統(tǒng)級的測試和調(diào)試變得更簡單。通過MCU的I2C或SPI接口可完成芯片寄存器配置和狀態(tài)監(jiān)測[6]。
誤碼測試硬件系統(tǒng)由上位機(jī)、控制模塊、誤碼測試模塊和被測線路或設(shè)備構(gòu)成,系統(tǒng)硬件結(jié)構(gòu)如圖2所示。其中上位機(jī)(PC)是人機(jī)交互設(shè)備,上位機(jī)軟件主要用于操作對誤碼測試系統(tǒng)的控制以及對誤碼測試系統(tǒng)的各項數(shù)據(jù)進(jìn)行監(jiān)控;控制模塊和誤碼檢測模塊共同構(gòu)成誤碼測試系統(tǒng)的硬件部分,其中控制模塊由微控制器LM3S9B90和外圍電路組成,是整個系統(tǒng)的核心部分,主要完成與上位機(jī)、Si5040芯片以及XFP光模塊的通信連接;誤碼測試模塊由Si5040誤碼測試芯片和XFP光模塊構(gòu)成,Si5040芯片用于產(chǎn)生高速偽隨機(jī)碼、完成碼型同步及對比,檢測出誤碼數(shù)(Error Count),XFP光模塊用于光電信號的轉(zhuǎn)換;被測線路或設(shè)備是被用于誤碼測試的線路或設(shè)備。
圖2 誤碼測試系統(tǒng)硬件結(jié)構(gòu)框圖
誤碼測試系統(tǒng)工作流程如下:微控制器LM3S9B90對Si5040寄存器復(fù)位后配置成為誤碼測試模式;Si5040產(chǎn)生10 Gbit/s的偽隨機(jī)碼流電信號,XFP模塊將Si5040傳輸過來的電信號轉(zhuǎn)換成光信號通過TX端發(fā)送到測試線路中去;在接收端,XFP模塊的RX端將接收到的光信號轉(zhuǎn)換成高速電信號后傳遞給Si5040;Si5040將接收的高速電信號與發(fā)端偽隨機(jī)碼進(jìn)行同步比較,在電域中得出誤比特數(shù)并記錄到寄存器中;上位機(jī)軟件會每隔100 ms向微控制器發(fā)送讀取指令,微控制器讀取Si5040的寄存器值后立刻返回給上位機(jī),上位機(jī)將受到的信息解析后,將誤碼數(shù)、誤碼率等信息顯示到界面中,完成誤碼測試。
本文中設(shè)計的誤碼測試系統(tǒng)軟件分為底層驅(qū)動程序、應(yīng)用程序和上位機(jī)程序3部分。其中,底層驅(qū)動主要完成對微控制器的控制以及與外設(shè)之間的底層通信。應(yīng)用程序是底層外設(shè)與上位機(jī)之間的連接橋梁,主要完成從上位機(jī)讀取指令、分析指令做出相應(yīng)的對底層外設(shè)信息讀取或配置,最后將數(shù)據(jù)返回給上位機(jī)。上位機(jī)軟件主要實現(xiàn)從串口接收微控制器發(fā)送回來的誤碼測試信息,并將此信息進(jìn)行解析,實時顯示測試時間、誤碼數(shù)、誤碼率以及各種告警信息,同時完成誤碼測試碼元設(shè)置、誤碼測試時間設(shè)置、誤碼率告警閾值設(shè)置、誤碼測試結(jié)果記錄等功能。軟件設(shè)計結(jié)構(gòu)如圖3所示。
圖3 誤碼測試系統(tǒng)軟件結(jié)構(gòu)框圖
Luminary Micro?Stellaris?外圍驅(qū)動程序庫是一系列用來訪Stellaris系列的基于ARM?CortexTM-M3微處理器上的外設(shè)的驅(qū)動程序[7]。TI Stellaris系列M3/M4之所以強(qiáng)大,StellarisWare軟件庫提供的快速軟件開發(fā)解決方案功不可沒。開發(fā)者不必對M3微處理器內(nèi)部寄存器悉數(shù)了解,只需要調(diào)用相應(yīng)驅(qū)動庫就可以實現(xiàn)對M3微處理器的控制。
在本設(shè)計中使用StellarisWare軟件庫提供的外設(shè)驅(qū)動程序,大大節(jié)約了開發(fā)時間,提高了開發(fā)效率。
LM3S9B90的應(yīng)用程序是底層外設(shè)與上位機(jī)之間的連接橋梁。應(yīng)用程序采用中斷方式通過UART驅(qū)動接收上位機(jī)發(fā)過來的串口指令,調(diào)用SPI和I2C驅(qū)動來讀取或設(shè)置XFP光模塊和SI5040的寄存器。應(yīng)用程序是一個被動過程,上位機(jī)給應(yīng)用程序發(fā)送相應(yīng)的指令后應(yīng)用程序才去響應(yīng)上位機(jī),例如,上位機(jī)向應(yīng)用程序發(fā)送指令要讀取SI5040的誤碼數(shù),應(yīng)用程序收到指令后再調(diào)用SPI驅(qū)動去讀取誤碼數(shù),之后將讀到的誤碼數(shù)返回給上位機(jī)。圖4為應(yīng)用程序流程圖。
圖4 應(yīng)用程序流程圖
微控制器的初始化包括對系統(tǒng)時鐘初始化、串口初始化、I2C初始化、看門狗初始化、I/O初始化。系統(tǒng)外部接16 MHz晶振,通過PLL再分頻后系統(tǒng)時鐘配置成80 MHz。串口初始化時配置成波特率115200 Baud,數(shù)據(jù)位8位,停止位1位,接收中斷使能。對微控制器的SPI和I2C端口都配置為主機(jī)模式,設(shè)置Si5040和XFP模塊從機(jī)地址。為防止程序出錯,設(shè)計中啟用了看門狗,如到達(dá)設(shè)定看門狗時間內(nèi)沒有對看門狗計數(shù)初值進(jìn)行重新填充,看門狗就會復(fù)位微控制器。在LM3S9B90中串口、SPI和I2C接口都是和GPIO復(fù)用的,而且默認(rèn)狀態(tài)下GPIO都是沒有啟用的,因此需要對相應(yīng)I/O口啟用并設(shè)置用做特殊接口。
在對微處理器初始化后,緊接著需要對Si5040進(jìn)行復(fù)位,這樣Si5040的所有寄存器都會恢復(fù)默認(rèn)值,目的是為了消除上一次測試對本次的影響。之后程序進(jìn)入等待狀態(tài),當(dāng)微處理器通過中斷方式受到上位機(jī)發(fā)的指令之后首先判斷指令是否正確,如不正確就清空接收緩存,繼續(xù)等待上位機(jī)發(fā)送過來的指令,如接受到的指令正確就執(zhí)行串口響應(yīng)程序,并將數(shù)據(jù)返回給上位機(jī),完成對上位機(jī)的響應(yīng)。
上位機(jī)軟件是測試人員對誤碼測試系統(tǒng)硬件監(jiān)控接口。上位機(jī)的功能包括:控制誤碼測試功能開啟和停止;顯示誤碼數(shù)目、運(yùn)行時間及BER;監(jiān)控測試系統(tǒng)輸入輸出光功率;控制XFP模塊激光器開關(guān);記錄測試結(jié)果、各種告警監(jiān)控以及根據(jù)檢查需要設(shè)置檢測參數(shù)(產(chǎn)生與檢測碼型、碼型翻轉(zhuǎn)、測試時間、誤碼率閾值等)。告警顯示的信息有“時鐘是否失鎖”、“是否失去同步”、“XFP激光器是否打開”、“誤碼測試記錄”、“接收光功率是否過低”、“串口是否連接”。
上位機(jī)監(jiān)控軟件以Windows XP環(huán)境采用Microsoft Visual Basic 6.0開發(fā)的,上位機(jī)軟件主要由測試和設(shè)置兩個界面構(gòu)成。測試界面內(nèi)容包括測試時間、誤碼數(shù)、誤碼率、輸入和輸出光功率、告警信息測試按鈕等,設(shè)置界面內(nèi)容包括碼型設(shè)置、碼型翻轉(zhuǎn)設(shè)置、測試時間設(shè)置、誤碼率閾值設(shè)置和測試結(jié)果記錄設(shè)置。測試界面如圖5所示。上位機(jī)軟件開發(fā)分成用戶界面開發(fā)、窗體和空間屬性設(shè)置和程序開發(fā)3個步驟。首先根據(jù)系統(tǒng)需求設(shè)計好窗體界面,設(shè)置窗體和系統(tǒng)控件的屬性,然后編寫應(yīng)用程序,由于VB采用事件驅(qū)動模式,所以最后需要把應(yīng)用程序調(diào)用到控件中去。
圖5 誤碼測試系統(tǒng)測試界面(截圖)
在設(shè)置好測試參數(shù)后,當(dāng)用戶點(diǎn)擊測試界面中的STRAT按鈕控件時,激發(fā)誤碼測試程序,程序調(diào)用MSCOMM控件向串口發(fā)送讀取誤碼數(shù)的指令到微控制器,然后將微控制器返回的數(shù)據(jù)解析為誤碼數(shù)和BER顯示到測試界面中。程序每100 ms讀取一次誤碼數(shù)目,每1 s讀取1次告警信息,并實時地將這些信息解析顯示到測試界面中,達(dá)到實時監(jiān)控的目的。
經(jīng)過實驗測試,本設(shè)計中的上位機(jī)與LM3S9B90、LM3S9B90與Si5040和XFP光模塊之間均能正常通信。根據(jù)本設(shè)計方案設(shè)計的誤碼測試系統(tǒng)已經(jīng)運(yùn)用于WDM系統(tǒng)中的10 Gbit/s波長轉(zhuǎn)換單元的誤碼性能測試。與美國Agilent公司的4960B誤碼測試儀進(jìn)行對比測量的結(jié)果來看,在測試碼型為PRBS31,測試時間為60 min的測試條件下兩種設(shè)備的誤碼率和誤碼數(shù)基本一致。
本誤碼測試系統(tǒng)采用了價格低廉的高性能微控制器LM3S9B90和帶誤碼檢測功能收發(fā)器芯片Si5040,既保證了較高的誤碼測試儀性能,又很好地控制了測試系統(tǒng)的成本。與Agilent公司的4960B的對比測試更是體現(xiàn)了系統(tǒng)的優(yōu)秀誤碼測試性能。本系統(tǒng)設(shè)計簡單,價格低廉,可以代替國外昂貴的高速誤碼測試儀,用于基于10 Gbit/s速率的光通信系統(tǒng)以及10 Gbit/s速率光模塊的測試。
[1]李履信,沈建華.光纖通信系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2003.
[2]王苗苗.基于DS2172的誤碼測試儀的設(shè)計[D].保定:河北大學(xué),2008.
[3]潘東.基于ADμC7020的誤碼測試儀設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(10):44-45.
[4]TI Corporation.LM3S9B90 Datasheet[EB/OL].[2012-05-10].http://www.ti.com/product/lm3s9b90.
[5]馬鈞元.基于Cortex和ZigBee的智能家居網(wǎng)關(guān)設(shè)計與實現(xiàn)[J].電視技術(shù),2012,36(1):56-58.
[6]Silicon Labs Corporation.SI5040 Datasheet[EB/OL].[2012-05-10].http://www.silabs.com/pages/product/SI5040.
[7]TI Corporation.Stellaris?peripheral driver library user’s guide[EB/OL].[2012-05-10].http://wenku.baidu.com/view/a2e24da40029bd 64783e2c33.html.