嚴(yán)世勝,鐘承堯,吳建清
(海南師范大學(xué)物理與電子工程學(xué)院,海南海口571158)
示波器在電子領(lǐng)域是十分常用而且重要的電子測(cè)量?jī)x器,它能夠直接觀察以及顯示被測(cè)量的信號(hào),在工農(nóng)業(yè)生產(chǎn)、軍事、醫(yī)療以及教育等方面均有廣泛的運(yùn)用.然而傳統(tǒng)的模擬示波器過(guò)于笨重、操作復(fù)雜、耗能高,這些缺點(diǎn)為我們的使用帶來(lái)了諸多不便.而數(shù)字存儲(chǔ)示波器是近年來(lái)隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展而發(fā)展起來(lái)的一種新型示波器,它是在模擬示波器的基礎(chǔ)上不斷地發(fā)展,增加了波形存儲(chǔ)、測(cè)量數(shù)據(jù)的運(yùn)算和分析等諸多功能[1].數(shù)字存儲(chǔ)示波器是利用ADC技術(shù)把模擬信號(hào)轉(zhuǎn)換成數(shù)字量進(jìn)行存儲(chǔ)再現(xiàn)的示波器,具有時(shí)間和幅度測(cè)量準(zhǔn)確度大大提高的優(yōu)點(diǎn).
在數(shù)字存儲(chǔ)示波器的數(shù)據(jù)采集系統(tǒng)中,A/D 轉(zhuǎn)換器進(jìn)行采樣控制,傳統(tǒng)的方法一般選用單片機(jī)完成.但由于單片機(jī)控制周期較長(zhǎng)、速度慢,極大地限制了高速A/D轉(zhuǎn)換器的性能和速度.而采用FPGA作為高速A/D 轉(zhuǎn)換器的采樣控制,其采樣周期只有時(shí)鐘頻率為12 MHz單片機(jī)采樣周期的千分之一,完全能勝任高速A/D轉(zhuǎn)換器的要求.系統(tǒng)中利用了Altera公司生產(chǎn)的Cyclone 系列EP1C6Q240 作為設(shè)計(jì)的核心器件.使得示波器具有體積小、耗能低、結(jié)構(gòu)簡(jiǎn)單和低成本等優(yōu)點(diǎn).
該系統(tǒng)主要由程控放大電路、高速A/D轉(zhuǎn)換器、數(shù)據(jù)緩存模塊、多路選擇器、分頻器、LPM 嵌入式鎖相環(huán)、AVR 單片機(jī)和液晶屏等組成[2-4],如圖1 所示.除了程控放大電路、高速A/D轉(zhuǎn)換器、AVR單片機(jī)和液晶屏外,其他電路的全部由一片F(xiàn)PGA完成.
模擬信號(hào)首先從外部輸入到程控放大電路,放大或衰減到合適的幅度,然后再送入高速A/D 轉(zhuǎn)換器中進(jìn)行采樣,采樣后的數(shù)據(jù)存儲(chǔ)到先入先出鎖存器中,最后通過(guò)單片機(jī)將數(shù)據(jù)送到液晶屏中顯示出波形.標(biāo)準(zhǔn)頻率由20 MHz有源晶振提供,為FPGA提供標(biāo)準(zhǔn)時(shí)鐘信號(hào).
圖1 數(shù)字示波器系統(tǒng)結(jié)構(gòu)框圖Fig.1 System diagram of a digital oscilloscope
分頻器與多路選擇器由鎖相環(huán)ALTPLL1、分頻器模塊CLK、八選一數(shù)據(jù)選擇器74151元件等共同構(gòu)成了系統(tǒng)的時(shí)鐘及選擇器模塊,見圖2.
圖2 時(shí)鐘產(chǎn)生及選擇器模塊Fig.2 Clock generator and selector module
Cyclone系列的FPGA內(nèi)含高性能的嵌入式模擬鎖相環(huán),這個(gè)鎖相環(huán)PLL 能夠和一個(gè)輸入的時(shí)鐘信號(hào)同步,并且以其作為參考信號(hào)實(shí)現(xiàn)鎖相,從而輸出多個(gè)同步的倍頻或者分頻的片內(nèi)時(shí)鐘.利用鎖相環(huán)實(shí)現(xiàn)的內(nèi)部時(shí)鐘與直接來(lái)自外部的時(shí)鐘相比,能夠有效地減少時(shí)鐘延時(shí)與時(shí)鐘變形,改善時(shí)鐘的建立與保持時(shí)間,從而減少來(lái)自外部的干擾,使系統(tǒng)能夠更加穩(wěn)定地工作.設(shè)計(jì)時(shí)由外部提供一個(gè)20 MHz的標(biāo)準(zhǔn)時(shí)鐘信號(hào)給ALTPLL1 的輸入端口inclk0,設(shè)置鎖相環(huán)輸出的兩個(gè)信號(hào)c0、c1 分別為60 MHz 和30 MHz,并經(jīng)若干個(gè)10分頻模塊后得到6 MHz、3 MHz、600 kHz、60 kHz、6 kHz和600 Hz的時(shí)鐘信號(hào),將這8種不同頻率的時(shí)鐘信號(hào)送到74151 的8 個(gè)輸入端口D0-D7,通過(guò)AVR單片機(jī)控制S0、S1、S2三根選通信號(hào)線來(lái)控制多路選擇器最后的輸出時(shí)鐘.這8 個(gè)不同頻率的時(shí)鐘是用來(lái)控制A/D 轉(zhuǎn)換器的采樣頻率,即分別是示波器的8個(gè)時(shí)基檔位:0.5μs/div、1μs/div、5μs/div、10μs/div、50μs/div、500μs/div、5ms/div 和50ms/div.
數(shù)據(jù)緩存模塊由先入先出存儲(chǔ)器FIFO8、鎖存器74374、FIFO 讀寫控制模塊FIFOctr、反相器7404和二十四分頻器模塊DIVFREQ等組成[5],見圖3.
2.2.1 FIFO和鎖存器模塊
由于經(jīng)過(guò)A/D 轉(zhuǎn)換器傳來(lái)的數(shù)據(jù)頻率很高,顯示屏無(wú)法直接顯示,故而在A/D 轉(zhuǎn)換器之后加上一個(gè)異步FIFO來(lái)起到高速數(shù)據(jù)緩沖的作用.在QuartusⅡ軟件的Tools菜單中找到MegaWizard plug-in Man?ager工具,在其打開的窗口下選擇LAM_FIFO+項(xiàng),然后再對(duì)其進(jìn)行簡(jiǎn)單的設(shè)置即可得到FIFO8 模塊.這里只用到FIFO8 的3 個(gè)標(biāo)志位中的2 個(gè):滿標(biāo)志FF和空標(biāo)志EF,F(xiàn)IFO8的數(shù)據(jù)寬度設(shè)置為8bits,深度設(shè)置為4096.FIFO8 模塊中的wrfull 為FF 標(biāo)志位,rdempty為EF標(biāo)志位,wrreq 和rdreq分別為寫數(shù)據(jù)位和讀數(shù)據(jù)位,它們分別由wrclk 和rdclk 時(shí)鐘來(lái)控制其讀寫的操作.data[7‥0]為FIFO的數(shù)據(jù)輸入端,q[7‥0]為FIFO的數(shù)據(jù)輸出端[6-8].
實(shí)驗(yàn)表明,A/D 轉(zhuǎn)換器在開機(jī)啟動(dòng)后的幾個(gè)時(shí)鐘周期內(nèi)采樣不是很可靠,這將使得FIFO8 存儲(chǔ)的數(shù)據(jù)也不準(zhǔn)確,從而導(dǎo)致在顯示屏上顯示的波形不準(zhǔn)確.為了解決這個(gè)問(wèn)題,可以讓A/D轉(zhuǎn)換器一直工作,通過(guò)FIFO8 來(lái)控制A/D 轉(zhuǎn)換器采樣.在FIFO8 之前接入一個(gè)74374 鎖存器,這樣就達(dá)到了鎖存數(shù)據(jù)以及提高數(shù)據(jù)穩(wěn)定性的目的.
2.2.2 FIFOcrt讀寫控制模塊FIFO8 寫時(shí)鐘wrclk 與A/D 轉(zhuǎn)換器采樣時(shí)鐘一樣,由八選一多路選擇器提供.讀時(shí)鐘rdclk 由二十四分頻器模塊DIVFREQ 提供.由于FIFO8 讀數(shù)據(jù)的速度比寫數(shù)據(jù)的速度要快很多,避免讀取數(shù)據(jù)時(shí)經(jīng)常出現(xiàn)間斷的現(xiàn)象,需要控制wrreq 和rdreq 位,讓FIFO8 寫數(shù)據(jù)寫滿時(shí)才開始讀取數(shù)據(jù),當(dāng)數(shù)據(jù)被讀空時(shí)將不進(jìn)行任何讀取的操作,此時(shí)只能進(jìn)行寫數(shù)據(jù)的操作.為此利用FIFOctr 模塊來(lái)實(shí)現(xiàn)對(duì)其控制,實(shí)現(xiàn)FIFOctr模塊的VHDL源程序如下[9]:
圖3 數(shù)據(jù)緩存模塊Fig.3 Data caching module
數(shù)字示波器中最重要的電路之一是A/D 轉(zhuǎn)換器,它的作用是將被測(cè)信號(hào)采樣并轉(zhuǎn)換成數(shù)字信號(hào)存入存儲(chǔ)器,因?yàn)樗苯記Q定著數(shù)字示波器所能測(cè)量的最高頻率,根據(jù)乃奎斯特定理,采樣頻率至少是被測(cè)信號(hào)最高頻率的2 倍才能復(fù)現(xiàn)出被測(cè)信號(hào).而在數(shù)字示波器中采樣頻率至少應(yīng)該是被測(cè)信號(hào)頻率的5~8倍,否則根本觀察不到信號(hào)的波形.設(shè)計(jì)中選用美國(guó)德州儀器(TI)公司的8位半閃速結(jié)構(gòu)的TLC5510,它是一種采用CMOS 工藝制造的8 位高阻抗并行A/D 轉(zhuǎn)換芯片,轉(zhuǎn)換速率為5MSa/s~40MSa/s.通過(guò)改變FPGA 輸出不同的時(shí)鐘來(lái)控制TLC5510 的采樣頻率,并將采樣后的數(shù)據(jù)送到FPGA中緩存[10].
系統(tǒng)中選用320×240點(diǎn)陣的液晶顯示屏作為波形顯示;選用AVR 單片機(jī)Mega64 作為系統(tǒng)控制.該示波器能實(shí)現(xiàn)信號(hào)幅度和頻率的測(cè)量,達(dá)到一定的精度要求.在5μs/div的時(shí)基檔位下對(duì)輸入的100kHz正弦波和方波信號(hào)進(jìn)行測(cè)量,測(cè)試波形見圖4、圖5.
圖4 100kHz正弦波測(cè)量Fig.4 100kHz sine wave measurements
圖5 100kHz方波測(cè)量Fig.5 100kHz square wave measurement
以FPGA作為A/D轉(zhuǎn)換器采樣控制和數(shù)據(jù)緩存,完成相關(guān)電路的設(shè)計(jì)與測(cè)試.實(shí)驗(yàn)測(cè)試表明,F(xiàn)PGA在數(shù)字存儲(chǔ)示波器中得到了很好的運(yùn)用,工作穩(wěn)定、可靠,達(dá)到了較好的效果.而且系統(tǒng)還具有頻帶寬、體積小、開發(fā)成本低和擴(kuò)展方便等特點(diǎn),具有較高的應(yīng)用前景.
[1]程志強(qiáng),汪思靜,楊杰,等.嵌入式數(shù)字存儲(chǔ)示波器的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(2):162-164.
[2]孫盛坤,丁昊,宋杰.基于FPGA 和TFT 彩屏液晶的便攜示波器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(4):158-161.
[3]申禮斌,李立欣,馮浩.基于SOPC 的便攜式數(shù)字示波器設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2014,22(18):65-68.
[4]王慶春,何曉燕.基于FPGA的手持式示波器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013,36(10):106-108.
[5]石明江,張禾,河道清.基于FPGA 的手持式數(shù)字存儲(chǔ)示波器顯示驅(qū)動(dòng)設(shè)計(jì)[J].液晶與顯示,2010,25(5):738-742.
[6]宋鵬飛,王厚軍,曾浩.高速深存儲(chǔ)數(shù)據(jù)采集系統(tǒng)研究與設(shè)計(jì)[J].儀器儀表學(xué)報(bào),2011,32(4):904-912.
[7]楊培善,許忠仁,付貴增,等.基于FPGA的高速A/D轉(zhuǎn)換控制器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009,35(6):65-68.
[8]楊軍,孔兵,宋克儉,等.基于FPGA的高速異步FIFO存儲(chǔ)器設(shè)計(jì)[J].云南大學(xué)學(xué)報(bào):自然科學(xué)版,2007,29(6):560-565.
[9]潘松,黃繼業(yè).EDA 技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2010:211-214.
[10]于勝學(xué).閃速8位A/D 轉(zhuǎn)換器TLC5510 與單片微機(jī)的接口技術(shù)[J].微計(jì)算機(jī)信息,2009,25(9):15-16.