吳 聰,謝 虎
(1.重慶郵電大學信號處理與片上系統實驗室,重慶 400065;2.上海欣諾通信技術有限公司,上海 201613)
受3G、三網融合以及各種新型網絡應用的逐漸普及的影響,通信行業正在經歷從以往的語音通信業務為主向大力發展數據業務轉型,通信網絡的數據傳輸量大幅增長。據中國電信估計,未來5年骨干網流量每年將增加56% ~80%,因而我國骨干網帶寬需要擴大10~20倍。目前我國的骨干傳輸網都是基于10 Gbit/s速率傳輸的,隨之而來,在網絡建設、施工以及維護中對于基于10 Gbit/s速率的高速誤碼測試儀器的需求更顯迫切。
誤碼測試儀主要用于對現代數字通信系統的誤碼性能測試與評估[1]。目前市面上已經有多種誤碼測試儀,國內的誤碼測試產品普遍信號處理速度比較低,美國Agilent公司、Tektronix公司生產的高端、成熟的誤碼測試儀功能完善,處理速率很高,但是價格十分昂貴。因此設計一種廉價的高速率誤碼測試儀對我國光通信網絡建設和發展都有重要意義。
誤碼測試系統由發送模塊和接收模塊兩部分組成[2]。發送端模塊的測試碼發生器產生一個已知序列的偽隨機碼序列數據流送入被測試系統的輸入端,在經過被測試系統后,接入誤碼測試系統的接收端模塊,接收端將產生與發送端相同并同步的偽隨機碼序列,與收到的信號進行對比,如果不同則認為是誤碼,對誤碼計數器加1,隨之記錄并顯示測試結果[3]。測試系統原理圖如圖1所示。

圖1 誤碼測試系統原理圖
LM3S9B90是TI公司的32位ARM Cortex-M3微處理器,CPU時鐘高達80 MHz,處理速度達到1.25 MI/s(兆指令/s)[4]。它整合了Cortex-M3 和Thumb-2 指令集。Thumb-2技術可以使16位和32位指令并存,帶來了代碼密度和性能的最佳平衡。Thumb-2比純32位代碼占用少26%,同時帶來25%的性能提升,它為對成本尤其敏感的嵌入式微控制器應用方案帶來了高性能的32位運算能力。LM3S9B90豐富的外設接口簡化了硬件電路的設計[5],片內256 kbyte的Flash和96 kbyte RAM對于本設計中存儲器的需求也已經足夠,不需要外置存儲芯片,降低了系統成本。
Si5040是Silicon Laboratories生產的在數據發送和接收端都帶有信號抖動消除單元的10 Gbit/s XFP收發器。Si5040低功耗低抖動性能非常適合空間有限的XFP模塊應用,Si5040是連續支持9.9~11.4 Gbit/s之間所有電信與數據通訊協議和信號抖動消除能力的收發器芯片,支持協議包括 OC-192/STM-64、10 Gbit/s Ethernet、10 Gbit/s Fiber Channel及其FEC速率,同時還支持模擬信號LOS監測、數字信號CID(連0或連1)監測以及數字眼圖(Eye Opening)3種信號質量監測功能。此外,Si5040還提供線路環回檢測、XFI回路檢測和收發雙向的PRBS碼流生成和檢測功能,這使得系統級的測試和調試變得更簡單。通過MCU的I2C或SPI接口可完成芯片寄存器配置和狀態監測[6]。
誤碼測試硬件系統由上位機、控制模塊、誤碼測試模塊和被測線路或設備構成,系統硬件結構如圖2所示。其中上位機(PC)是人機交互設備,上位機軟件主要用于操作對誤碼測試系統的控制以及對誤碼測試系統的各項數據進行監控;控制模塊和誤碼檢測模塊共同構成誤碼測試系統的硬件部分,其中控制模塊由微控制器LM3S9B90和外圍電路組成,是整個系統的核心部分,主要完成與上位機、Si5040芯片以及XFP光模塊的通信連接;誤碼測試模塊由Si5040誤碼測試芯片和XFP光模塊構成,Si5040芯片用于產生高速偽隨機碼、完成碼型同步及對比,檢測出誤碼數(Error Count),XFP光模塊用于光電信號的轉換;被測線路或設備是被用于誤碼測試的線路或設備。

圖2 誤碼測試系統硬件結構框圖
誤碼測試系統工作流程如下:微控制器LM3S9B90對Si5040寄存器復位后配置成為誤碼測試模式;Si5040產生10 Gbit/s的偽隨機碼流電信號,XFP模塊將Si5040傳輸過來的電信號轉換成光信號通過TX端發送到測試線路中去;在接收端,XFP模塊的RX端將接收到的光信號轉換成高速電信號后傳遞給Si5040;Si5040將接收的高速電信號與發端偽隨機碼進行同步比較,在電域中得出誤比特數并記錄到寄存器中;上位機軟件會每隔100 ms向微控制器發送讀取指令,微控制器讀取Si5040的寄存器值后立刻返回給上位機,上位機將受到的信息解析后,將誤碼數、誤碼率等信息顯示到界面中,完成誤碼測試。
本文中設計的誤碼測試系統軟件分為底層驅動程序、應用程序和上位機程序3部分。其中,底層驅動主要完成對微控制器的控制以及與外設之間的底層通信。應用程序是底層外設與上位機之間的連接橋梁,主要完成從上位機讀取指令、分析指令做出相應的對底層外設信息讀取或配置,最后將數據返回給上位機。上位機軟件主要實現從串口接收微控制器發送回來的誤碼測試信息,并將此信息進行解析,實時顯示測試時間、誤碼數、誤碼率以及各種告警信息,同時完成誤碼測試碼元設置、誤碼測試時間設置、誤碼率告警閾值設置、誤碼測試結果記錄等功能。軟件設計結構如圖3所示。

圖3 誤碼測試系統軟件結構框圖
Luminary Micro?Stellaris?外圍驅動程序庫是一系列用來訪Stellaris系列的基于ARM?CortexTM-M3微處理器上的外設的驅動程序[7]。TI Stellaris系列M3/M4之所以強大,StellarisWare軟件庫提供的快速軟件開發解決方案功不可沒。開發者不必對M3微處理器內部寄存器悉數了解,只需要調用相應驅動庫就可以實現對M3微處理器的控制。
在本設計中使用StellarisWare軟件庫提供的外設驅動程序,大大節約了開發時間,提高了開發效率。
LM3S9B90的應用程序是底層外設與上位機之間的連接橋梁。應用程序采用中斷方式通過UART驅動接收上位機發過來的串口指令,調用SPI和I2C驅動來讀取或設置XFP光模塊和SI5040的寄存器。應用程序是一個被動過程,上位機給應用程序發送相應的指令后應用程序才去響應上位機,例如,上位機向應用程序發送指令要讀取SI5040的誤碼數,應用程序收到指令后再調用SPI驅動去讀取誤碼數,之后將讀到的誤碼數返回給上位機。圖4為應用程序流程圖。

圖4 應用程序流程圖
微控制器的初始化包括對系統時鐘初始化、串口初始化、I2C初始化、看門狗初始化、I/O初始化。系統外部接16 MHz晶振,通過PLL再分頻后系統時鐘配置成80 MHz。串口初始化時配置成波特率115200 Baud,數據位8位,停止位1位,接收中斷使能。對微控制器的SPI和I2C端口都配置為主機模式,設置Si5040和XFP模塊從機地址。為防止程序出錯,設計中啟用了看門狗,如到達設定看門狗時間內沒有對看門狗計數初值進行重新填充,看門狗就會復位微控制器。在LM3S9B90中串口、SPI和I2C接口都是和GPIO復用的,而且默認狀態下GPIO都是沒有啟用的,因此需要對相應I/O口啟用并設置用做特殊接口。
在對微處理器初始化后,緊接著需要對Si5040進行復位,這樣Si5040的所有寄存器都會恢復默認值,目的是為了消除上一次測試對本次的影響。之后程序進入等待狀態,當微處理器通過中斷方式受到上位機發的指令之后首先判斷指令是否正確,如不正確就清空接收緩存,繼續等待上位機發送過來的指令,如接受到的指令正確就執行串口響應程序,并將數據返回給上位機,完成對上位機的響應。
上位機軟件是測試人員對誤碼測試系統硬件監控接口。上位機的功能包括:控制誤碼測試功能開啟和停止;顯示誤碼數目、運行時間及BER;監控測試系統輸入輸出光功率;控制XFP模塊激光器開關;記錄測試結果、各種告警監控以及根據檢查需要設置檢測參數(產生與檢測碼型、碼型翻轉、測試時間、誤碼率閾值等)。告警顯示的信息有“時鐘是否失鎖”、“是否失去同步”、“XFP激光器是否打開”、“誤碼測試記錄”、“接收光功率是否過低”、“串口是否連接”。
上位機監控軟件以Windows XP環境采用Microsoft Visual Basic 6.0開發的,上位機軟件主要由測試和設置兩個界面構成。測試界面內容包括測試時間、誤碼數、誤碼率、輸入和輸出光功率、告警信息測試按鈕等,設置界面內容包括碼型設置、碼型翻轉設置、測試時間設置、誤碼率閾值設置和測試結果記錄設置。測試界面如圖5所示。上位機軟件開發分成用戶界面開發、窗體和空間屬性設置和程序開發3個步驟。首先根據系統需求設計好窗體界面,設置窗體和系統控件的屬性,然后編寫應用程序,由于VB采用事件驅動模式,所以最后需要把應用程序調用到控件中去。

圖5 誤碼測試系統測試界面(截圖)
在設置好測試參數后,當用戶點擊測試界面中的STRAT按鈕控件時,激發誤碼測試程序,程序調用MSCOMM控件向串口發送讀取誤碼數的指令到微控制器,然后將微控制器返回的數據解析為誤碼數和BER顯示到測試界面中。程序每100 ms讀取一次誤碼數目,每1 s讀取1次告警信息,并實時地將這些信息解析顯示到測試界面中,達到實時監控的目的。
經過實驗測試,本設計中的上位機與LM3S9B90、LM3S9B90與Si5040和XFP光模塊之間均能正常通信。根據本設計方案設計的誤碼測試系統已經運用于WDM系統中的10 Gbit/s波長轉換單元的誤碼性能測試。與美國Agilent公司的4960B誤碼測試儀進行對比測量的結果來看,在測試碼型為PRBS31,測試時間為60 min的測試條件下兩種設備的誤碼率和誤碼數基本一致。
本誤碼測試系統采用了價格低廉的高性能微控制器LM3S9B90和帶誤碼檢測功能收發器芯片Si5040,既保證了較高的誤碼測試儀性能,又很好地控制了測試系統的成本。與Agilent公司的4960B的對比測試更是體現了系統的優秀誤碼測試性能。本系統設計簡單,價格低廉,可以代替國外昂貴的高速誤碼測試儀,用于基于10 Gbit/s速率的光通信系統以及10 Gbit/s速率光模塊的測試。
[1]李履信,沈建華.光纖通信系統[M].北京:機械工業出版社,2003.
[2]王苗苗.基于DS2172的誤碼測試儀的設計[D].保定:河北大學,2008.
[3]潘東.基于ADμC7020的誤碼測試儀設計[J].單片機與嵌入式系統應用,2010(10):44-45.
[4]TI Corporation.LM3S9B90 Datasheet[EB/OL].[2012-05-10].http://www.ti.com/product/lm3s9b90.
[5]馬鈞元.基于Cortex和ZigBee的智能家居網關設計與實現[J].電視技術,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.