初 華 萬 強 曹海源 張廣遠 黎 偉
(武漢軍械士官學校光電技術研究所,湖北 武漢 430075)
在儀器與測量領域中,示波器的應用相當廣泛[1]。傳統的模擬示波器由于功能單一、測量精度不高,在科研領域中的應用受到限制[2]。近年來研發的數字存儲示波器,采用微處理器進行數據測量、數據處理及波形分析,其精度和處理速度得到大大提高[3]。與傳統模擬示波器相比,數字存儲示波器不僅具有可存儲波形、體積小、功耗低、使用方便等優點,而且還具有強大的信號實時處理分析功能[4]。目前,市場上的數字示波器已經實現與計算機互聯、數據共享、參數檢測等強大功能,但其存在價格昂貴、攜帶不方便、專用性和針對性差等缺點。當在某一種產品上集成示波器功能時,將使該產品的成本、體積、質量等大大增加[5]。
本文提出了一種基于數字信號處理器(digital signal process,DSP)和現場可編程門陣列(field programmable gate array,FPGA)的數字示波器,專門針對激光發生器泵浦電源進行參數檢測[6]。
系統采用DSP+FPGA的控制方案,充分發揮了兩者的長處。整個系統由前端信號處理單元、FPGA時序邏輯單元、DSP控制單元以及波形數據存儲和顯示單元組成,輸入信號經隔離、放大、斬波、分頻等處理后,送入FPGA單元并測量輸入信號的頻率,然后根據頻率的大小確定采樣時鐘的頻率。對于10 Hz~50 kHz的信號,采用適時采樣法;對于50 kHz~1 MHz的信號,采用等效采樣法,即利用FPGA產生頻率為1 MHz的固定采樣時鐘;對于1~10 MHz的信號,由于輸入信號頻率很高,低采樣頻率無法完全采集輸入信號各個周期的信號值,所以先對輸入信號進行分頻,再利用FPGA發出1 MHz微小步進的采樣時鐘。這就實現了對輸入信號的等效采樣。
經過A/D采樣后得到的數據送入DSP進行數字濾波及算法處理,剔除壞值;再對有效數據進行計算,得出各類測量參數,并將數據存入主RAM中,同時在液晶屏LCD上顯示。如果需要觀測被測波形,DSP根據鍵盤的輸入來選擇存儲位置。當鍵盤選擇“暫停”鍵時,將數據存入從RAM,液晶屏波形暫停;當鍵盤選擇“存儲”時,DSP將數據存入永久性存儲的Flash,從而實現數據永久存儲的功能。系統整體結構設計如圖1所示。

圖1 系統整體結構圖Fig.1 Structure of the overall system
根據輸入信號頻率的大小,采用實時采樣和等效采樣兩種方式對輸入信號進行A/D采樣[7]。實時采樣的采樣頻率必須滿足采樣定理,對于周期性的正弦信號,一個周期內應大于兩個采樣點。考慮到實際因素的影響,按照恢復原始波形的精度要求選取相應的采樣點數。在實時采樣中,A/D轉換速率必須大于最高采樣頻率才能正確地工作。因此,A/D的轉換速率決定了最高采樣頻率。受A/D轉換速率的限制,實現高頻信號的實時采樣比較困難,因此對于高頻的周期信號,可以采用等效采樣的方法。采樣示意圖如圖2所示。

圖2 采樣示意圖Fig.2 Schematic diagram of sampling
圖2中,圖2(a)表示實時采樣,即根據需要,在一個周期內采集有限個點數,如圖2(a)用4個點說明。圖2(b)表示等效采樣,即采用步進延時的方法,對每個周期波形的不同點進行采樣,從而獲取整個波形的采樣數據。
所謂步進延時是指每一次采樣比上一次采樣點的位置延遲Δt時間(Δt的取值與采樣點數有關),假設在一個周期內采樣m點可完整重現待測信號波形(圖2中用m=4舉例說明),則:

式中:f為待測信號的頻率。
只要精確控制采樣的時間延遲,就能準確地恢復原始信號。對于特高頻信號,可以借助分頻的方法,在幾個甚至幾百個信號周期對波形采集一次。采用這種方法,可以恢復原始波形數據。
高頻信號經過運放放大及A/D采樣后,測量狀態信號時往往受到噪聲的干擾,微分擴張狀態觀測器(differential extended state observer,DESO)具有良好的濾波功能[8]。設輸入待測信號為x1(t),量測噪聲為n(t),則含被測噪聲的濾波對象為:


數字示波器的參數分為幅度類參數和時間類參數[9]兩類。參數的計算必須剔除奇異點,采用限幅濾波的方法確定奇異點,將剔除奇異點之后的數據作為計算的依據。設采樣后的值為m,將與m相鄰的值(即n)與m作差,差值為δ。由于采樣頻率很快,因此有理由相信差值δ小于誤差幅度ε。當δ大于ε時,可以認為此時的m值為壞值,予以剔除,并由與m值相鄰的值n取代m。
峰峰值、平均值和有效值等幅度類參數的測量過程如下。
①峰峰值:峰峰值的測量采用頻數直方圖密度分布眾數法[9]。峰峰值 Vpp=Vtop- Vbase(其中,Vtop為幅度頂值,Vbase為幅度底值),但幅度頂值不一定是波形最大值,幅度底值也不一定是最小值。例如,有小毛刺的脈沖波形,Vtop≠Vmax、Vbase≠Vmin。頻數直方圖密度分布眾數法是指找出出現次數超過整個顯示點數5%的反復出現的點,并在這些點中找出最大值。Vbase為出現次數超過整個顯示點數5%的反復出現的點,即在這些點中找出的最小值。假設A/D采樣位數為12 B,采樣值的范圍為0~4095,程序實現時初始化Vtop=0、Vbase=4095。然后將數據依次讀入,若讀入的數據小于Vbase,則將讀入數據賦給Vbase,并依次用Vbase與讀入的新數據比較,找出最小值;同理,將讀入數據與Vtop比較,較大者即將新值賦給Vtop,直到找出最大值。具體程序如下。

時間類參數主要包括周期、頻率、脈寬等,在此重點介紹周期參數的測量。周期主要通過FPGA脈沖計數實現。輸入信號經過比較器比較輸出后變成脈沖信號,FPGA脈沖捕獲口每次檢測到脈沖上升沿后開始計數,檢測到下一次脈沖上升沿后停止。脈沖周期與計數值成正比,假設計數周期為T,計數值為n,則輸入信號周期為nT。
周期測量示意圖如圖3所示。

圖3 周期測量示意圖Fig.3 Schematic diagram of periodic measurement
垂直分辨率、掃描速度、垂直靈敏度、存儲容量和顯示頻率這幾個指標的計算過程如下。
①垂直分辨率
示波器按垂直方向共分為8格,同時要求每格分512份,則共有512×8=4096份,因而采用12位A/D即可,即垂直分辨率為12位[10]。
②掃描速度
假設掃描速度為t、每格點數為n、采樣頻率為fS,則fS=t/n。當n=20時,針對不同的掃描速度,可得到不同的采樣頻率:當 t=0.2 s時,fS=100 Hz;當 t=0.2 ms時,fS=100 kHz;當 t=20 μs 時,fS=100 MHz。在n一定的情況下,可通過改變采樣頻率的方式改變掃描速度。
③垂直靈敏度
垂直靈敏度和前端放大倍數呈反比例關系。垂直靈敏度的調整可以通過改變前端程控放大器的增益來實現。本文需設計一個增益為1x、10x、100x的程控增益放大器,假設垂直靈敏度最大為1 V/div,示波器垂直方向共8格,則顯示信號的幅度范圍為-4~+4 V。由于A/D輸入電壓只能為正電壓,電壓范圍為0~2 V,所以負電壓要經過電平轉換,轉換為負電壓絕對值大小的正電壓,即經過電平轉換以后的A/D采樣范圍為-2~+2 V,這可以通過電平變換用電壓幅度在-2~+2 V之間的信號得到。為了使輸入信號幅度也在-4~+4 V之間,x應取為0.5,即程控增益放大器的三檔增益分別為 0.5、5、50。
④存儲容量
存儲容量表明水平方向劃分的細微程度,它是水平分辨率的倒數。示波器顯示屏水平刻度為10 div,水平分辨率為10點/div。顯示滿屏幕需要10×10=100個點,即水平分辨率為1/100=1%。
⑤顯示頻率
顯示屏上顯示的信號是從存儲器中讀出的信號,只要確保觀察到的波形不閃爍即可。單通道時刷新頻率為200 Hz,通過計算,每秒讀出的點數為200×100=20000,即RAM讀出頻率為20 kHz。
波形數據存儲在RAM中,由DSP控制讀取,并送入液晶屏顯示。由于液晶屏的分辨率為800×600,除邊框及修飾,X軸實際像素選取為500,以5個像素選取一點,可計算出存儲深度為100點。設在t1時刻波形顯示參數的縱坐標分別為(Y1,Y2,…,Ym),為實現波形移動,在t2時刻需顯示的點縱坐標為(Y2,Y3,…,Ym+1),其中m為存儲深度,Ym+1為t2時刻新采集到的參數值,則得到的波形顯示示意圖如圖4所示。

圖4 波形顯示示意圖Fig.4 Schematic of waveform display
由于在每個時刻液晶屏上只能顯示一條曲線,所以在向液晶屏發送新的數組之前必須清屏,否則屏上將被所有的線畫滿。由于液晶屏的坐標系與普通笛卡爾坐標系不同,采用的是圖像坐標系,即以可視區域的左上角為坐標原點,向右為X軸正向,向下為Y軸正向。因此,Ym+1與實際參數值成反比,并且需要對最大值進行限幅。

式中:C為某一參數的實際值;kc為常數。
為了測量激光發生器電源模塊的參數,本文設計了數字示波器。由于電源脈沖頻率很高,故采用等效采樣的方式進行采樣;因采樣前經過波形的程控放大,噪聲很強,故對采樣信號進行DESO濾波處理;采樣和濾波后的數據,經剔除壞值后,運用頻數直方圖密度分布眾數法,計算幅度類參數和時間類參數;計算后的參數和波形數據送液晶屏顯示。經過測試,數字示波器[11-18]運行穩定、集成度高,具有廣闊的應用前景。
[1]劉偉,丁雷,許婷,等.基于單片機微控制器的簡易數字示波器設計[J].信息系統工程,2010(10):82 -85.
[2]梁海泉,張逸成,楊挺,等.基于虛擬儀器平臺的多通道示波器設計[J].自動化儀表,2007,28(2):61 -64.
[3]張一嬌,田書林,張沁川.示波器多國語言的設計與實現[J].自動化儀表,2009,30(6):57 -59.
[4]薛紅,薛軍,姜萬波.TDS-ACS實驗系統中虛擬示波器的設計[J].自動化儀表,2002,23(12):22 -24.
[5]張宇翔,王明利,呂運朋,等.高速數字存儲示波器前端電路設計[J].自動化儀表,2010,31(4):65 -67.
[6]騰志超,謝湘南,邱渡裕,等.數字存儲示波器的雙時基系統設計[J].自動化儀表,2009,30(6):60 -62.
[7]韓峰.單片機等效采樣示波器的設計[J].雞西大學學報:自然科學版,2006(6):63-64.
[8]袁東,馬曉軍,初華,等.DESO濾波器在DSP上的實現及其應用[J].裝甲兵工程學院學報,2010(6):57-60.
[9]程言奎,李英,白瑞林,等.基于ARM9的嵌入式數字示波器參數測量模塊的設計[J].計算機測量與控制,2008,16(12):1822 -1824.
[10]郭偉民,鄧曉莉,李莉,等.數字示波器檢定方法研究[J].信息與電子工程,2004(3):65-69.
[11]劉堯猛,馬永軍,丁忠林.基于ARM9和FPGA的嵌入式數字示波器[J].計算機應用與軟件,2010(3):84-86.
[12]詹振球.基于DSP和CPLD的虛擬數字示波器的設計[J].山西電子技術,2007(3):37-39.
[13]趙汝和,袁太文,李迅波.數字示波器自動檢定系統[J].測控技術與儀器儀表,2007(2):78-80.
[14]王怡,陳燕東.新型虛擬多功能數字示波器的設計與實現[J].湖南工程學院學報:自然科學版,2007(6):43-46.
[15]鄭礴,韓根亮,席彩紅.虛擬數字示波器的設計[J].甘肅科學學報:自然科學版,2008(3):96 -98.
[16]劉憲力,特日格樂,張清.基于等效和實時采樣的數字示波器設計[J].電子設計工程,2009(6):69-71.
[17]謝水珍.基于Labview的虛擬函數信號發生器的設計[J].微計算機信息,2005(8):21-23.
[18]楊樂平,李海濤,楊磊.Labview程序設計與應用[M].2版.北京:電子工業出版社,2006.