陳雯婷,曾慶立,芮天喆,赫忠天
(吉首大學 信息科學與工程學院,湖南吉首,416000)
示波器是一種用途十分廣泛的電子測量儀器,多用于觀察信號的波形,用戶通過波形計算出信號的參數,因此常被用作硬件輸出參數的檢測以及電路的調試。傳統數字示波器具有體積大、成本高等缺點,不適用于戶外現場測試,而便攜式數字存儲示波器具有體積小、成本低、操作簡易等優點,解決了傳統示波器戶外測試不便的問題[1-2]。
本文設計了一款基于SOPC的便攜式數字存儲示波器,將FPGA的邏輯設計、算法設計和嵌入式設計結合在一起,使用Qsys系統集成工具搭建了一個基于Nios II的嵌入式系統,Nios II具有較強的性能及可定制特性[3-4]。SOPC 集成了 FPGA 和嵌入式系統的優勢,并兼具硬件編程和軟件編程[5],使整個系統操作更加靈活。另外μC GUI系統的實時性及操作靈活性,極大地提高了系統在復雜工作環境下進行信號檢測的效率[6]。
便攜式數字存儲示波器的設計架構圖如圖1所示,示波器功能包括信號的采集、測量、存儲以及顯示。其工作流程大致為:

圖1 設計架構圖
(1)被測信號經前端調理電路處理后通過高速AD9226轉化為數字信號后被傳輸至系統中。
(2)數字信號一路通過測量模塊計算出信號的頻率和峰峰值,同時將定時器定時更新的頻率和峰峰值通過接口模塊傳遞給Nios II。另一路將信號抽樣后的數據寫入雙口RAM中進行存儲操作。
(3)采用μC GUI繪制人機交互界面,并將像素數據寫入DDR2中,使用具有突發讀寫能力的Avalon-MM Pipeline Bridge IP核與DDR2控制器進行通信,顯示控制模塊將讀取的數據傳輸至TFT顯示屏顯示。
相比于傳統的數字存儲示波器,系統采用軟硬件協同合作,通過在FPGA中內嵌Nios II CPU,代替傳統FPGA+MCU的模式,將數字電路以及系統控制部分集成在FPGA內部,在降低設計成本的同時減少了FPGA外部的硬件設計流程以及PCB設計面積[7-9]。
示波器系統設計分為邏輯硬件設計和Nios II軟件設計兩部分,邏輯硬件部分實現提供外圍接口的控制功能、包括信號時鐘模塊、信號采集模塊、數據存取控制模塊、數據測量模塊以及人機交互模塊,整個系統的控制電路都集成在FPGA芯片中,其內部電路部分采用數字電路實現,在FPGA中采用Verilog HDL硬件描述語言實現各個硬件模塊的邏輯電路。Nios II軟件設計實現通過程序控制邏輯硬件的功能,根據觸摸屏的按鍵操作實現示波器的信號采集、數據存取以及測量功能。本系統采用模塊化設計思想對各個模塊進行設計,在系統的工程頂層連接各個功能模塊。
在系統中,由外部50MHz晶振時鐘提供FPGA邏輯控制芯片所需的時鐘信號,采用FPGA芯片內部集成的鎖相環PLL進行時鐘倍頻或分頻,提供系統所需要的工作時鐘信號,保證各個模塊正常且穩定的工作。根據模塊的需求配置相應的參數,PLL輸出sys_clk、ad_clk、lcd_clk三個工作時鐘。其中sys_clk提供Nios II系統的工作時鐘,ad_clk提供高速A/D的采樣時鐘以及其他邏輯控制模塊的工作時鐘,lcd_clk提供人機交互模塊的工作時鐘。
信號采集模塊包括前端信號調理電路以及高速ADC器件。信號調理電路作用是使經過調理后的信號符合A/D轉換的要求。調理后的模擬信號經過高速A/D轉換為數字信號,信號采集模塊根據設定的采樣率,對待測信號經高速A/D轉換的數字信號進行間隔采樣,輸出采樣后的有效信號。本系統采用ADI公司精度為12 bit的AD9226模數轉換器實現,其采樣率高達65Msps,且具有功耗低、價格低和性能高等優點。信號采集電路如圖2所示,信號采集電路默認輸入電壓范圍為-5V~+5V,而AD9226電壓輸入范圍為1V~3V,信號經過信號調理電路后便將輸入信號從-5V~+5V衰減至1V~3V。衰減電路的轉換公式為:

圖2 信號采集電路

當Vin= -5V時,Vout= 1V;當Vin= 5V時,Vout= 3V。
圖3是采集數據時邏輯分析儀(SignalTap II)抓取的時序,SignalTap II在Nios II系統調試的過程中可以捕捉并顯示實時信號[10],加快了系統開發流程,提高了SOPC系統的操作靈活性。

圖3 數據采集測試時序圖
數據測量模塊實現對信號電壓值以及頻率值進行測量的功能,數據測量模塊由三個子模塊組成:脈沖生成模塊、峰峰值測量模塊和頻率計模塊。
(1)脈沖生成模塊實現AD數據轉換為脈沖的功能,通過比較輸入信號與觸發電平的大小,即當輸入信號大于觸發電平值時,模塊輸出脈沖為高,反之為低。
(2)頻率計模塊采用等精度測量法對信號進行測量,等精度測量法原理圖4所示,在門控時間內對頻率進行測量,門控時間的值是可變的,門控的時間則是待測信號周期的整數倍。門控時間內,被測信號計數值與頻率的比值等于基準時鐘計數值與頻率的比值,比值就是門控時間,即:

圖4 等精度測量原理圖

由式(1)可推出:

式(2)中,f_clk表示被測信號頻率值,f_cnt表示被測信號計數值,n_clk表示時鐘信號頻率,n_cnt表示時鐘信號個數。
(3)峰峰值測量模塊通過不斷比較待測信號周期內輸入的采樣值大小,計算出周期內最大值和最小值,從而計算出信號的峰峰值。
數字存儲示波器的優點是可以觀察到觸發條件前后的信號波形,在設計中通過按下停止鍵可實現波形重現顯示的功能,使用Verilog HDL硬件描述語言實現對采集數據的觸發以及存儲功能。
波形觸發控制模塊的作用是產生精確的采樣起始位置,使得示波器顯示出不重疊的清晰信號波形。波形觸發控制模塊通過判斷經高速AD處理后的信號是否滿足電平觸發條件以及邊沿觸發條件,當信號滿足觸發條件時便將輸出滿足條件的波形實現觸發控制功能。
波形存儲控制模塊設計中通過例化一個雙口RAM存儲器并設置固定的存儲深度用于存儲波形數據,存儲深度設置為屏幕顯示區域的水平方向分辨率,將處理后的波形數據寫入RAM存儲器中,寫入的地址由0到存儲深度,當按下示波器屏幕的停止鍵時,將RAM中存儲的波形數據依次讀出即可。在系統中直接調用“RAM:2-PORT”對其參數進行設置,其設置圖如圖5所示。

圖5 雙口RAM參數設置圖
數字存儲示波器最基本功能就是將采集的波形進行顯示,人機交互模塊負責驅動屏幕將波形存儲模塊中的波形數據進行顯示,通過讀取RAM中數據,并將讀出的波形數據與屏幕顯示區域的像素點進行對比實現波形的繪制。過程中根據用戶的按鍵操作對波形進行水平以及垂直方向的移動及縮放,波形的縮放和移動與RAM地址相關,根據縮放比例將RAM中讀出的數據進行乘除運算實現波形的縮放,通過加減運算實現波形的移動。
本系統顯示采用TFT觸摸液晶屏實現,TFT 觸摸液晶屏具有體積小、分辨率高、色彩豐富等特點。本設計選取的是正點原子ATK-4342 RGB LCD電容觸摸屏,分辨率為480×272,不帶集成顯存,因此設計中使用DDR2 SDRAM作為屏幕的顯存,通過FIFO將DDR2 SDRAM存儲的界面顯示數據讀出并傳輸至屏幕進行顯示。
本系統通過使用Verilog硬件描述語言編寫相應功能的IP核,移植Nios II軟核處理器構建片上可編程系統,系統通過Avalon總線將定制的IP核與Nios II相連接。Nios II集成開發環境(IDE)是Nios II處理器的軟件開發工具,為Nios II系統提供了軟件開發平臺,使用過程中通過此平臺完成SOPC系統的軟件開發任務,包括各項復雜的控制及運算。Nios II處理器可根據用戶實際需求配置所需的外設及存儲器接口,增加了系統的功能同時簡化了電路。
在系統中,通過調用Nios II、JTAG_UART、EPCS_FLASH、TIMER、Avalon-MM Pipeline Bridge以及DDR2等IP核完成Qsys系統的搭建。在Qsys搭建的嵌入式系統中,Nios II處理器是系統控制的核心。本系統軟件設計主要為TFT觸摸屏顯示程序,其運行在Nios II軟核處理器上,采用自頂向下的編程邏輯進行設計,設計過程中充分利用查詢和判斷功能,提高程序的可讀性。其程序流程圖如圖6所示。

圖6 程序流程圖
系統工作流程如下:開機后,FPGA芯片從EPCS中的系統中加載數據,并開始執行命令。首先進行系統初始化和顯示界面初始化操作,然后系統進入主循環狀態檢測屏幕的觸摸中斷信號,通過按鍵狀態并根據屏幕像素點的坐標判斷用戶操作進入相應的功能函數,最后系統按照指定的功能調用函數實現相應的操作,根據系統設定的功能進行工作,并將各項參數傳送至TFT觸摸屏進行顯示。
系統初始化主要包括觸摸中斷初始化和定時器中斷初始化,觸摸屏中斷作為開始獲取觸摸點坐標的標志,定時器中斷作為定時獲取波形頻率以及峰峰值的信號。顯示界面初始化用以實現設定觸摸屏的顯示區域以及按鍵菜單選項的功能,Nios II處理器根據TFT驅動初始化程序完成對電容觸摸屏的顯示初始化配置。系統檢測到觸摸中斷信號為高電平后開始對觸摸點坐標進行處理,根據輸入的觸摸點坐標判斷用戶的按鍵操作,系統進行相應的功能操作,如果觸摸點坐標超過屏幕的有效觸摸區域,則將此次操作視為無效操作并不做任何功能處理。
本系統軟件設計主要為TFT觸摸屏顯示程序,根據示波器功能需求,設計出示波器的功能顯示頁面如圖7所示。

圖7 示波器功能顯示界面圖
示波器的操作顯示界面較為復雜,其中包括示波器的波形、頻率、峰峰值以及功能鍵的顯示,為提高示波器顯示界面的開發效率,使用Nios II移植μC GUI對示波器的顯示界面進行繪制。
根據示波器顯示總體需求,其顯示界面中包括觸摸功能按鍵的繪制以及數據的顯示。示波器觸摸功能包括:波形觸發控制、波形運行控制、波形移動控制、波形縮放控制,其有效觸摸區域為兩側的示波器功能按鍵,對其余區域進行觸摸操作無效,在系統中調用GUI_DrawLine() 、GUI_DrawRect()函數分別實現示波器界面畫線、畫矩形框的功能。示波器數據的顯示包括觸發邊沿、觸發電平、頻率、電壓峰峰值、垂直分辨率以及水平分辨率。設計過程中對屏幕像素點進行讀取并設定需要顯示數據的像素點坐標,電壓和頻率值通過讀取硬件模塊傳輸的參數實現,而其它的數據根據用戶的觸摸操作處理后進行準確的顯示。
對系統進行測試,圖8是本系統與標準示波器分別測量峰峰值和頻率為4V、1MHz的交流正弦波信號。

圖8 測量對比圖
采用SDG 1032X信號發生器對示波器進行測試,部分參數測量結果見表1和表2。

表1 頻率測量值

表2 頻率為1MHz時正弦波電壓測試值
由表1和表2測試數據可知,測量結果都在測量誤差允許范圍內,對其重復測試表明系統工作穩定,可靠性強。
與傳統示波器使用按鍵進行操作不同,本文設計的示波器使用觸摸屏進行觸摸操作,經測試,當點擊觸摸屏的“STOP”按鍵后,便可在屏幕上重現波形數據,波形輸出穩定,沒有明顯失真。當點擊觸摸屏的“AUTO”按鍵后,示波器會自動調整波形的分辨率、觸發方式等參數,使得信號波形以最好的形態顯示。當點擊觸摸屏的“↑↓→←”按鍵后,可實現對波形水平及垂直方向的平移功能。當點擊觸摸屏的“Ver+、Ver-、Hor+、Hor-”按鍵后,可實現波形水平及垂直方向的縮放功能。當點擊觸摸屏的“Edge、Trig+、Trig-”按鍵后,可實現波形觸發功能的測試。
本文設計的基于SOPC的便攜式數字存儲示波器,測試表明能夠實現了傳統臺式示波器的基本功能。本系統具有體積小、靈活性高、功耗低以及成本低等優點,充分體現了SOPC技術方案的優越性,采用該方案設計的示波器各項指標都達到了設計要求,可以滿足戶外普通測試以及實驗教學使用。在今后的研究中,為進一步提高設計性能,可提高示波器的實時采樣速率以及示波器測量精度和范圍。