本設計主要用于石油勘探儀器車與外部設備連接電纜的通信可靠性測試。誤碼率測試儀主要由測試信號發(fā)生模塊、收發(fā)模塊、誤碼統(tǒng)計模塊以及鍵盤和液晶顯示模塊等部分組成。通過對測量參數(shù)的設置,該設備可以對通信線路進行不同速率、不同碼元的誤碼率閉環(huán)測量,并通過圖形點陣顯示屏進行實時顯示,以供評估使用。
常見的誤碼率測試儀多數(shù)專用于測試各種標準高速信道,不便于測試實際應用中大量的專用信道,并且價格高,搭建測試平臺復雜。隨著大規(guī)模集成電路的迅速發(fā)展,F(xiàn)PGA在保持其集成度高、體積小、功耗低、性價比高等特點的同時,能夠?qū)崿F(xiàn)越來越復雜的功能,廣泛應用于通信設備的設計實現(xiàn)。本設計采用Altera公司的Cyclone系列FPGA芯片EPlCl2,內(nèi)嵌Nios II軟核CPU,并利用SOPC技術(shù)進行了整體設計,在保證具有良好性能的同時,更有利于后期的優(yōu)化和升級。接口采用ECL(電流開關型邏輯電路)電平,可以直接鏈接測試電纜,方便現(xiàn)場測試。
1 SOPC和Nios II概述
SOPC(System On Programmable Chip,可編程片上系統(tǒng))是基于大規(guī)模FPGA的單片系統(tǒng),是美國Altera公司于2000年提出的(同時推出了相應的開發(fā)軟件QuartusII)。SOPC的設計技術(shù)是現(xiàn)代計算機輔助設計技術(shù)、EDA技術(shù)和大規(guī)模集成電路技術(shù)高度發(fā)展的產(chǎn)物。SOPCBuilder是Altera公司為硬件設計人員開發(fā)的一套系統(tǒng)級硬件設計工具,通過它可以方便地創(chuàng)建Nios II CPU系統(tǒng)級設計項目,從而為設計人員提供SOPC設計必需的軟硬件設計平臺。
Nios II嵌入式處理器是FPGA生產(chǎn)廠商Altera公司推出的軟核CPU,是一種面向用戶的、可以靈活定制的通用精簡指令集架構(gòu)(RISC)32位高性能嵌入式CPU。NiosII以軟核的方式提供給用戶,并專門為在Altera的FPGA上實現(xiàn)做了優(yōu)化,用于SOPC集成,最后在FPGA上實現(xiàn)。Nios II IDE是SOPC系統(tǒng)的軟件開發(fā)環(huán)境,在Nios II IDE中可以進行軟件的編寫、下載和調(diào)試等工作。
2 誤碼率測試儀功能概述
誤碼率測試儀分別設有2個通信測試端口——輸出端口和輸入端口,分別連接到待測試電纜的兩端,構(gòu)成數(shù)據(jù)傳輸回路。FPGA內(nèi)部有一個Nios II軟核CPU,負責初始化和管理該系統(tǒng);用VHDL語言編寫了收發(fā)芯片AM7968和AM7969的控制器接口模塊,完成測試碼發(fā)送、接收、誤碼率統(tǒng)計的任務;系統(tǒng)還設有4×4的矩陣掃描鍵盤和128×64分辨率的0LED圖像點陣顯示屏作為人機接口,如圖1所示。
用戶通過矩陣鍵盤輸入并設置測試代碼、通信速率以及測量模式(定時測量、定量測量)。確認開始測量后,Nios配置AM7968和AM7969,并通過AM7968發(fā)送測試代碼,經(jīng)待測試電纜及AM7969接收到數(shù)據(jù)后,將接收的代碼與原始數(shù)據(jù)比較。如果發(fā)現(xiàn)不等,即認為是誤碼,統(tǒng)計誤碼個數(shù)的計數(shù)器加1。當測量停止時,0LED顯示屏輸出誤碼率數(shù)值及其他測量信息。
3 硬件設計
3. 1 收發(fā)模塊設計
誤碼率測試儀的收發(fā)芯片采用的是美國AMD公司的AM7968和AM7969。
AM7968發(fā)送端芯片和AM7969接收端芯片提供通過同軸電纜或者光線傳輸?shù)囊话阃ㄓ媒涌冢ㄐ潘俾试?0~175 Mbps的范圍內(nèi)可以調(diào)節(jié)。AM7968/AM7969為并行TTL總線接口,一共有12位的數(shù)據(jù)和控制總線,可以靈活配置成8~10位數(shù)據(jù)總線,對應4~2位控制總線的接口形式。
(1)發(fā)送端設計
如圖2所示,芯片AM7968是信號的發(fā)送端。根據(jù)功能設置,測試代碼的發(fā)送模式有固定代碼模式、循環(huán)碼模式和自定義代碼模式3種。故設置控制寄存器(mode_reg)位寬為2:OO為初始狀態(tài),系統(tǒng)位于初始化狀態(tài);01為固定代碼模式,發(fā)送系統(tǒng)預設的代碼;lO為循環(huán)代碼模式,測試代碼從00h~FFh連續(xù)循環(huán)發(fā)送;11為自定義代碼模式,發(fā)送用戶自定義的代碼。
發(fā)送頻率的設置,是通過AM7968的輸入時鐘(50MHz)直接分頻實現(xiàn)的。在AM7968的控制器中,設有時鐘分頻寄存器(clk_div_reg)。該寄存器位寬為8。也就是說,用戶可以在40~175 Mbps范圍之內(nèi),設定256種不同頻率,進行誤碼率的測試工作,盡可能地滿足用戶的測試頻率要求。
設備上電后進入模式選擇,用戶根據(jù)需要設定模式,確認后,mode_reg設置完畢。隨后進入速率選擇,設置時鐘分頻器的數(shù)值,用以設置代碼發(fā)送速率。Control_reg提供了AM7968其他端口的設置。參數(shù)設置完畢后,設置好的代碼就配合設定好的時鐘頻率,通過通信端口發(fā)送出去了。
需要特別說明的是循環(huán)代碼的發(fā)送過程。因為,在其他模式下,數(shù)據(jù)自發(fā)送開始就一直在數(shù)據(jù)總線上有效,只要控制好數(shù)據(jù)的發(fā)送脈沖信號即可;而循環(huán)代碼模式下,數(shù)據(jù)需要實時更新,且不能有遺漏和跳躍,因此特別設計了循環(huán)碼發(fā)生模塊。它以AM7968芯片的ACK信號作為循環(huán)代碼遞增的觸發(fā)信號。這是因為ACK信號是AM7968在數(shù)據(jù)發(fā)送完畢后立即發(fā)送的反饋信號。所以利用這個信號,就很好地保證了循環(huán)代碼的可靠性。
(2)接收端設計
如圖3所示,芯片AM7969是信號的接收端。在用戶設定了代碼模式后,AM7969的控制寄存器被配置為相應模式。之后設置誤碼計算模式,并將誤碼計數(shù)器復位,且設置好對應的對照代碼。
AM7969芯片中的鎖相環(huán)時鐘生成器(PLL clockgenerator),可以從接收到的數(shù)據(jù)流中分離出時鐘信號和數(shù)據(jù)信號。
由于線路傳輸存在延時問題,會使AM7969分離的時鐘相對于發(fā)送端AM7968的時鐘滯后。對比較器兩端的輸入來說,出現(xiàn)了不同步的情況。如果AM7969也利用本地系統(tǒng)時鐘,那么其接收到的數(shù)據(jù)就會紊亂。這種方法不可取。
本系統(tǒng)采取發(fā)送同步序列的方式來進行同步。在測量開始后,發(fā)送端發(fā)送同步序列。在10 ms內(nèi)(此時間閾值可進行設置),如果接收端沒有收到同步序列,則判定線路故障,無法正常測量;如果在時間閾值內(nèi)收到同步序列,則立刻進入測試狀態(tài)。例如,當發(fā)送代碼A0后,接收端如果在時限內(nèi)(時間閾值)收到信號,則進行比較,之后發(fā)送1個反饋信號Dstrb和1個數(shù)據(jù)A1,依此類推;如果接收端沒有收到信號,則系統(tǒng)將認為是誤碼丟失,記為誤碼,同時自行發(fā)送1個偽Dstrb,繼續(xù)測量。
3.2 顯示模塊設計
顯示部分采用了Visionox公司的VGGl2864E—S002、128×64點陣的單色圖形顯示模塊。該模塊有以下特點:亮度高,對比度高,視角寬,響應速度快,溫度范圍寬,功耗低;8位并行數(shù)據(jù)接口,讀、寫操作時序;模塊內(nèi)藏64×64顯示數(shù)據(jù)RAM(RAM中每位數(shù)據(jù)對應OLED屏上一個點的亮、暗狀態(tài));接口電路簡單,使用方便。
本設計通過VHDL語言編寫接口時序IP核控制器oled.VHD,使其作為Slave device連接到Avalon總線上,實現(xiàn)了數(shù)據(jù)顯示功能。
3.3 誤碼率測試儀的SOPC設計
圖4為在SOPC Builder工作窗口中的該誤碼率測試儀的SOPC系統(tǒng)。
其中,cpu_0為主Nios II處理器,cfi_flash_bridge_O為Avalon三態(tài)橋用來連接Flash IP核控制器cfi_flash_O,sdram是SDRAM IP核控制器,timer_O是Nios II內(nèi)部定時器,oled_O是OLED IP核控制器,pio_0是按鍵外部引腳,am7968_2_O和am7969_2_0分別是用VHDL語言編寫的收發(fā)芯片AM7968和AM7969的1P核控制器。
3.4 用SignalTap嵌入式邏輯分析儀驗證設計
SignalTap允許設計者在FPGA運行期間同時監(jiān)視內(nèi)部信號。通過下載電纜或傳統(tǒng)的分析設備連接到用戶PC機上,便可以在用戶的PC機上觀察到這些信號的波形。使用SignalTap類似于使用邏輯分析儀,用戶能夠設置初始化、觸發(fā)(內(nèi)部或外部)和顯示條件并觀察內(nèi)部信號,以此研究運行狀態(tài)。用戶的分析參數(shù)可以被編譯為嵌入式邏輯分析儀(ELA),它和設計的其他數(shù)據(jù)一起配置FPGA。
圖5是將誤碼率測試儀硬件邏輯下載到FPGA中,用SignalTap看到的系統(tǒng)實際運行時的波形截圖。它顯示的是當測試代碼設定為循環(huán)代碼模式時,測試代碼從0OH到FFH之間循環(huán)發(fā)送的波形情況。信號am_clk是系統(tǒng)時鐘;to_7969clk是信號接收端AM7969的輸入時鐘;am_ack是信號發(fā)送端AM7968的發(fā)送反饋信號,每返回一個am_ack表示有一個數(shù)據(jù)已經(jīng)發(fā)送出去;to_7969_clk是指AM7969從接收到的信號中分離出來的時鐘信號,從SignalTap可以看出有一定的延時;am_data信號是發(fā)送端AM7968發(fā)出的數(shù)據(jù);to_7969_data是信號接收端AM7969收到的數(shù)據(jù),可以看出,線路上有一定的延時;am_strb和tO_7969_dstrb分別是AM7968和AM7969的數(shù)據(jù)發(fā)送和接收的同步脈沖信號,本測試儀就是利用這個信號來統(tǒng)計測試碼發(fā)送個數(shù)和測試碼接收個數(shù)的。
4 軟件設計
在軟件設計方面,本著簡單易用的原則進行,在盡可能滿足實際使用需求的同時,提供友好的人機交互接口。下面分別介紹一下軟件的開發(fā)環(huán)境(Nios II IDE)和軟件開發(fā)設計。
Nios II集成開發(fā)環(huán)境(IDE)是Nios II系列嵌入式處理器的基本軟件開發(fā)工具。所有軟件開發(fā)任務都可以在Nios IIIDE下完成,包括編輯、編譯和調(diào)試程序。Nios II IDE提供了一個統(tǒng)一的開發(fā)平臺,用于所有Nios II處理器系統(tǒng)。僅僅通過1臺PC機、1片A1tera公司的FPGA以及1根JTAG下載電纜,軟件開發(fā)人員就能夠往Nios II處理器系統(tǒng)寫入程序,并與Nios II處理器系統(tǒng)進行通信。Nios II IDE為軟件開發(fā)提供4個主要功能:工程管理器、編輯器和編譯器、調(diào)試器、閃存編程器。
為了便于大批量地測量線路的誤碼率,方便用戶使用,設計了“自動測量”模式。該模式的各種參數(shù)是用戶預先設置好的,其中包括測試模式、測試速率、測試代碼以及時間閾值或者數(shù)量閾值。這樣,用戶在檢測大批量的通信電纜時,就不需要重復進行繁瑣的參數(shù)設置了。表1是需要用戶設置的參數(shù),圖6為主程序流程。
5 結(jié) 論
本文結(jié)合石油勘探儀器車與外部設備連接電纜測試的實際,提出了一種采用SOPC技術(shù)的誤碼率測試儀整體設計實現(xiàn)方案。能夠較好地滿足測量要求,接口友好,并且在誤碼率上給予用戶比較客觀的評價。設備具有體積小、重量輕、功耗低、成本低、性能高、易于軟硬件升級等優(yōu)點。比起其他專業(yè)誤碼率測試設備,在經(jīng)濟性、實用性方面表現(xiàn)得尤為突出。