基于單片機(jī)和FPGA的簡易數(shù)字存儲(chǔ)示波器設(shè)計(jì)
l 引言
本文引用地址:http://m.butianyuan.cn/article/89155.htm與傳統(tǒng)模擬示波器相比.?dāng)?shù)字存儲(chǔ)示波器不僅具有可存儲(chǔ)波形、體積小、功耗低,使用方便等優(yōu)點(diǎn),而且還具有強(qiáng)大的信號(hào)實(shí)時(shí)處理分析功能。在電子測量領(lǐng)域,數(shù)字存儲(chǔ)示波器正在逐漸取代模擬示波器。但目前我國使用高性能數(shù)字存儲(chǔ)示波器主要依靠國外產(chǎn)品,而且價(jià)格昂貴。因此研究數(shù)字存儲(chǔ)示波器具有重要價(jià)值。借于此,提出了一種簡易數(shù)字存儲(chǔ)示波器的設(shè)計(jì)方案,經(jīng)測試,性能優(yōu)良。
2 數(shù)字存儲(chǔ)示波器基本工作原理
數(shù)字存儲(chǔ)示波器與模擬示波器不同在于信號(hào)進(jìn)入示波器后立刻通過高速A/D轉(zhuǎn)換器將模擬信號(hào)前端快速采樣,存儲(chǔ)其數(shù)字化信號(hào)。并利用數(shù)字信號(hào)處理技術(shù)對(duì)所存儲(chǔ)的數(shù)據(jù)進(jìn)行實(shí)時(shí)快速處理,得到信號(hào)的波形及其參數(shù),并由示波器顯示,從而實(shí)現(xiàn)模擬示波器功能,而且測量精度高。還可存儲(chǔ)信號(hào),因而,數(shù)字存儲(chǔ)示波器可以存儲(chǔ)和調(diào)用顯示特定時(shí)刻信號(hào)。
3 系統(tǒng)分析論證
3.1 A/D實(shí)時(shí)采樣
根據(jù)奈奎斯特采樣定理,采樣速率必須高于2倍的信號(hào)最高頻率分量。對(duì)于正弦信號(hào),一周期內(nèi)應(yīng)有2個(gè)采樣點(diǎn)。為了不失真恢復(fù)被測信號(hào),通常一周期內(nèi)需要采樣8個(gè)點(diǎn)以上。為了配合高速模數(shù)轉(zhuǎn)換器,采用FPGA控制M/D轉(zhuǎn)換器的采樣速率,以實(shí)現(xiàn)高速實(shí)時(shí)采樣。實(shí)時(shí)采樣可以實(shí)現(xiàn)整個(gè)頻段的全速采樣,本系統(tǒng)設(shè)計(jì)選用ADI公司的12位高速A/D轉(zhuǎn)換器AD9220,其最高采樣速率可達(dá)10 MHz。
3.2 雙蹤顯示
本系統(tǒng)設(shè)計(jì)的雙蹤顯示模塊是以高速切換模擬開關(guān)選通兩路信號(hào)進(jìn)入采樣電路,兩路波形存儲(chǔ)在同一個(gè)存儲(chǔ)器的奇、偶地址位。雙蹤顯示時(shí),先掃描奇地址數(shù)據(jù)位,再掃描偶地址數(shù)據(jù)位。采用模擬開關(guān)代替一個(gè)模數(shù)轉(zhuǎn)換器,避免兩片高速A/D轉(zhuǎn)換器相互干擾,降低系統(tǒng)調(diào)試難度,并且實(shí)現(xiàn)系統(tǒng)功能。
3.3 觸發(fā)方式
采用FPGA內(nèi)部軟件觸發(fā)方式,通過軟件設(shè)置觸發(fā)電平,所設(shè)置的施密特觸發(fā)器參數(shù)易于修改,從而抑制比較器產(chǎn)生的毛刺。當(dāng)采樣值大于觸發(fā)電平,則產(chǎn)生一次觸發(fā)。該方式充分利用了FPGA的資源,減少外圍電路,消除硬件毛刺產(chǎn)生的干擾,易于調(diào)整觸發(fā)電壓。
3.4 波形顯示位置的調(diào)節(jié)
3.4.1 行掃描調(diào)節(jié)
通過控制FPGA內(nèi)部雙口RAM(1 KB)的起始地址的偏移量確定來控制波形的移動(dòng)。其具體方法是將滑動(dòng)變阻器R上的電平通過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)傳輸給FPGA,再與初始電平數(shù)字信號(hào)(顯示位置復(fù)位時(shí),滑動(dòng)變阻器R的電平采樣值)相比較決定起始地址ADR0的偏移量。該方法可易于實(shí)現(xiàn)波形滿屏和自動(dòng)顯示功能。
3.4.2 列掃描調(diào)節(jié)
MAXl97采樣A、B通道的Position電位器值,所得采樣值經(jīng)FPGA送至16位串行D/A轉(zhuǎn)換器,MAX542產(chǎn)生直流電平,該直流電平與列掃描波形相加送至模擬示波器顯示,實(shí)現(xiàn)波形上下移動(dòng)。為分離A、B通道,在讀A通道波形數(shù)據(jù)時(shí),F(xiàn)PGA必須將Position A電位器的值送至D/A轉(zhuǎn)換器;而在讀B通道波形數(shù)據(jù)時(shí),也必須將Position B電位器的值送至D/A轉(zhuǎn)換器,這樣可在調(diào)節(jié)某一電位器時(shí),實(shí)現(xiàn)相應(yīng)通道波形上下移動(dòng)。
3.5 波形數(shù)據(jù)存儲(chǔ)
數(shù)字示波器存儲(chǔ)波形數(shù)據(jù)可采用外接的雙口RAM或通用靜態(tài)RAM,同時(shí)FPGA可控制RAM的地址線,從而實(shí)現(xiàn)波形數(shù)據(jù)的存儲(chǔ)。雙口RAM可同時(shí)進(jìn)行讀寫操作,由于本系統(tǒng)設(shè)計(jì)采用FPGA,因此可充分利用FPGA的邏輯陣列和嵌入式陣列,可將雙口RAM寫入FPGA內(nèi)部,從而無需外接RAM,減少硬件電路,提高簡易數(shù)字示波器的可靠性。
4 系統(tǒng)設(shè)計(jì)方案
本系統(tǒng)設(shè)計(jì)框圖如圖1所示。整個(gè)系統(tǒng)是以FPGA為核心,包括前端模擬信號(hào)處理模塊、單片機(jī)模塊、顯示模塊和鍵盤輸入模塊。而信號(hào)的前級(jí)處理模塊又包括射級(jí)跟隨器、程控放大電路、整形電路。A、B通道的信號(hào)經(jīng)前級(jí)處理變?yōu)镺~4 V,AD9220對(duì)其采樣。波形存儲(chǔ)控制模塊將其采樣數(shù)據(jù)寫入FPGA內(nèi)部RAM,再由波形顯示控制模塊進(jìn)行顯示。FPGA通過編程設(shè)置實(shí)現(xiàn)測頻、鍵盤掃描、顯示驅(qū)動(dòng)、波形存儲(chǔ)控制等功能。單片機(jī)AT89S52控制整個(gè)系統(tǒng)鍵盤和點(diǎn)陣液晶模塊實(shí)現(xiàn)人機(jī)交互。通過面板按鍵可方便調(diào)整波形顯示方式。
5 硬件電路設(shè)計(jì)
5.1 程控放大電路
采用模擬開關(guān)CD4051、寬帶運(yùn)算放大器AD844及精密電位器實(shí)現(xiàn)10 mV/div~2 V/div的多檔垂直分辨率。FPGA含有通道選擇寄存器模塊,通過單片機(jī)寫入通道號(hào)控制模擬開關(guān)以選通不同的反饋電阻,實(shí)現(xiàn)不同放大倍數(shù),將信號(hào)調(diào)理在滿足AD9220的0~4 V的范圍內(nèi),具體電路如圖2所示。
5.2 數(shù)據(jù)采集模塊
本系統(tǒng)設(shè)計(jì)采用ADI公司的高速模數(shù)轉(zhuǎn)換器AD9220實(shí)現(xiàn)波形信號(hào)的采集,AD9220最高采樣速率可達(dá)10 MHz,采用外部晶體振蕩器8 MHz,F(xiàn)PGA內(nèi)部通過采樣實(shí)現(xiàn)波形存儲(chǔ)。AD9220有直流耦合和交流耦合兩種輸入方式。本系統(tǒng)設(shè)計(jì)采用直流耦合,0~5 V的輸入方式。采用內(nèi)部2.5 V參考電壓。由于系統(tǒng)垂直分辨率只需255級(jí),故采用AD9220的高8位。數(shù)據(jù)采集電路如圖3所示。
5.3 FPGA設(shè)計(jì)
系統(tǒng)采用Verilog HDL語言,在QuartusII軟件下對(duì)FPGA進(jìn)行邏輯電路的描述編程,可靈活實(shí)現(xiàn)系統(tǒng)所需電路和控制模塊。
5.3.1 觸發(fā)模塊
單片機(jī)先向FPGA模塊寫入設(shè)置的觸發(fā)電壓,F(xiàn)PGA內(nèi)部相比較后,當(dāng)采樣值大于該觸發(fā)電壓時(shí),則產(chǎn)生一次觸發(fā)。圖4為觸發(fā)模塊。
5.3.2 程控放大控制模塊
單片機(jī)首先以100 mv/div的檔位對(duì)信號(hào)采樣,通過比較與該信號(hào)最近的模擬開關(guān)的通道號(hào),然后寫入控制字,產(chǎn)生相應(yīng)通道號(hào),實(shí)現(xiàn)垂直分辨率的調(diào)整。
5.3.3 波形存儲(chǔ)控制模塊
該模塊為RAM模塊的寫地址累加器,可控制波形的存儲(chǔ)。H_sering為單次和多次觸發(fā)控制引腳,當(dāng)為高電平時(shí),單次觸發(fā),停止向RAM寫入數(shù)據(jù),所顯示波形為存儲(chǔ)波形;為低電平時(shí),多次觸發(fā),當(dāng)檢測到一次觸發(fā)時(shí),即向RAM寫一次數(shù)據(jù),共l K個(gè)點(diǎn),并在寫操作時(shí)屏蔽觸發(fā)。寫地址先寫奇地址,存入通道一采樣后的波形數(shù)據(jù),后寫偶地址,存入通道二采樣后的波形數(shù)據(jù)。如果連續(xù)多次檢測不到觸發(fā)時(shí),向RAM中寫入全0,顯示一條直線,即實(shí)現(xiàn)自動(dòng)捕捉功能。波形存儲(chǔ)控制模塊如圖5所示。
5.3.4 波形顯示控制模塊
該模塊為讀地址累加器,從RAM中讀取數(shù)據(jù),并產(chǎn)生行掃描和列掃描數(shù)據(jù)。通過單片機(jī)寫入累加器基地址,改變讀取數(shù)據(jù)的起始位,實(shí)現(xiàn)波形的平移。該模塊還可計(jì)算波形的峰峰值、平均值,單片機(jī)可直接讀回?cái)?shù)值。波形顯示控制模塊如圖6所示。
6 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)實(shí)現(xiàn)人機(jī)交互、信息提示、系統(tǒng)啟動(dòng)與復(fù)位等功能。首先系統(tǒng)初始化,顯示默認(rèn)通道波形,再等待按鍵按下。當(dāng)按鍵按下后,完成相應(yīng)功能,顯示相應(yīng)波形,然后循環(huán)等待。系統(tǒng)軟件設(shè)計(jì)流程如圖7所示。
7 測試結(jié)果
使用自制的數(shù)字存儲(chǔ)示波器和tektronix TDSl002型數(shù)字示波器測量輸入信號(hào),其中部分測量數(shù)據(jù)如表1所列。
通過對(duì)比測試和結(jié)果分析,各種輸入信號(hào)在自制數(shù)字存儲(chǔ)示波器上可精確顯示波形,并且實(shí)現(xiàn)波形的雙蹤顯示及波形水平、垂直平移,頻率、平均值、峰峰值的測量,誤差小,達(dá)到一定的精度要求。
8 結(jié)語
本系統(tǒng)設(shè)計(jì)采用單片機(jī)作為核心控制器,充分利用FPGA的可編程邏輯功能,完成相關(guān)電路設(shè)計(jì)。軟硬件有機(jī)結(jié)合實(shí)現(xiàn)簡易數(shù)字存儲(chǔ)示波器的設(shè)計(jì),系統(tǒng)總體功能完善,穩(wěn)定性高,使用方便。
評(píng)論