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