100MHz 數(shù)字存儲(chǔ)示波表樣機(jī)的研究與試制----數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)(四)
3.4.4峰值采樣
本文引用地址:http://2s4d.com/article/201706/348242.htm峰值采樣是數(shù)字存儲(chǔ)示波器的重要技術(shù)之一,它主要用來(lái)捕捉信號(hào)波形的毛刺以及實(shí)現(xiàn)波形的包絡(luò)顯示。如果我們使用模擬示波器來(lái)觀察如圖3-19所示的失真正弦波,那么只有當(dāng)毛刺是重復(fù)性并且與主信號(hào)同步時(shí),我們才有可能看到這個(gè)毛刺。但由于毛刺常常是源于其他的電路系統(tǒng),所以這些毛刺信號(hào)往往是隨機(jī)而且與主信號(hào)不同步的。
數(shù)字存儲(chǔ)示波器要想準(zhǔn)確的捕捉到毛刺,其中一個(gè)有效的方法就是提高采樣率,減少采樣點(diǎn)之間的時(shí)間間隔,使得采樣點(diǎn)能夠落在隨機(jī)出現(xiàn)的毛刺上。但一味追求高采樣率隨之而來(lái)的問(wèn)題就是存儲(chǔ)空間的不夠用,從而導(dǎo)致捕獲時(shí)間的減少。例如,峰值采樣的典型應(yīng)用是觀察某些電路故障的長(zhǎng)時(shí)間記錄,從中尋找毛刺或其他不規(guī)則現(xiàn)象。如果我們只有5K的存儲(chǔ)深度,當(dāng)采樣率為50MHz時(shí)可以進(jìn)行的最長(zhǎng)捕獲時(shí)間為100μS,而當(dāng)采樣率提高到1GHz時(shí),最長(zhǎng)捕獲時(shí)間則縮短為5μS.所以,提高采樣率與有限的存儲(chǔ)深度之間存在著矛盾。解決這一矛盾的方法就是峰值采樣。
采用峰值采樣時(shí),示波器始終以最高的采樣率采樣,在每個(gè)取樣間隔中捕獲信號(hào)波形的最大和最小值,并由正負(fù)峰值檢測(cè)器將信號(hào)的最大、最小值暫時(shí)存儲(chǔ)起來(lái)。當(dāng)示波器要顯示采樣點(diǎn)的時(shí)候,示波器就用捕獲的信號(hào)的最大最小值來(lái)代替原來(lái)的采樣點(diǎn)數(shù)值,并將該峰值檢測(cè)器清零。因此,峰值采樣能夠幫助我們發(fā)現(xiàn)由于取樣間隔過(guò)寬而丟失的毛刺信號(hào)。
示波器上的峰值檢測(cè)分為硬件(模擬)峰值檢測(cè)器和數(shù)字式峰值檢測(cè)器。模擬峰值檢測(cè)器是一個(gè)專門的硬件電路,它以電容上電壓的形式存儲(chǔ)信號(hào)的峰值。這種的缺點(diǎn)是速度比較慢,它通常只能存儲(chǔ)寬度大于幾個(gè)微秒且具有相當(dāng)幅度的毛刺。數(shù)字式峰值檢測(cè)器是圍繞AD而構(gòu)成的,這時(shí)AD將以可能的最高采樣速率連續(xù)的對(duì)信號(hào)進(jìn)行采樣,然后將峰值存儲(chǔ)在一個(gè)專用的存儲(chǔ)器中,當(dāng)要顯示采樣點(diǎn)的時(shí)候,存儲(chǔ)的峰值就作為該時(shí)刻的采樣值來(lái)使用。數(shù)字式峰值檢測(cè)器的優(yōu)點(diǎn)是其速度和數(shù)字化過(guò)程的速度一樣快。
本項(xiàng)目中,我們采用了數(shù)字式峰值檢測(cè)方式。系統(tǒng)框圖如圖3-20.
在實(shí)際電路設(shè)計(jì)中,由于受FPGA速度的影響,AD的采樣率不能設(shè)置為最高的100MHz,而是采用固定的10MHz.如圖所示,調(diào)理通道出來(lái)的模擬信號(hào)經(jīng)A/D采樣后并不像普通采樣那樣直接進(jìn)入FIFO,而是先經(jīng)過(guò)峰值檢測(cè)模塊篩選出最大最小值后,再將最大最小值存入FIFO.寫(xiě)FIFO的時(shí)鐘由時(shí)基檔位決定。這樣將AD采樣時(shí)鐘和寫(xiě)FIFO時(shí)鐘區(qū)分開(kāi)來(lái),使得在低時(shí)基檔位下同樣能夠捕捉到信號(hào)的毛刺。峰值檢測(cè)模塊的功能框圖如圖3-21.
由圖可知,整個(gè)峰值檢測(cè)模塊主要由兩個(gè)比較器,兩個(gè)寄存器,最大最小值選擇器以及控制電路組成。從AD送來(lái)的數(shù)據(jù)首先進(jìn)入最大最小值寄存器,作為比較的初值,再與后面送進(jìn)來(lái)的數(shù)據(jù)相比較。比較過(guò)程中的最大最小值再分別存入最大最小值寄存器。比較完一組數(shù)據(jù)后,控制電路連續(xù)發(fā)出兩個(gè)FIFO寫(xiě)脈沖,將這組存儲(chǔ)在最大最小值寄存器里的數(shù)據(jù)寫(xiě)入FIFO.當(dāng)寫(xiě)FIFO結(jié)束以后,控制電路緊接著再發(fā)出一個(gè)CP脈沖,將下一組的第一個(gè)數(shù)據(jù)寫(xiě)入最大最小值寄存器,作為第二組比較的初值。峰值檢測(cè)電路的時(shí)序仿真如圖3-22.
其中的peak_sel信號(hào)為峰值功能選擇信號(hào),當(dāng)peak_sel為高電平時(shí),峰值功能被選中。base_out和p_clk分別為采樣脈沖和比較脈沖,它們同為10MHz.即從AD進(jìn)來(lái)一個(gè)數(shù)據(jù)就馬上進(jìn)行比較,比較結(jié)果作為最大最小值寄存器的鎖存信號(hào)。從圖3-19可以看到,AD數(shù)據(jù)同時(shí)送入比較器和寄存器,這就保證了當(dāng)比較結(jié)果為真時(shí),數(shù)據(jù)就會(huì)立即被寫(xiě)入寄存器。wclk信號(hào)為FIFO寫(xiě)時(shí)鐘,它的電路要求是必須在前一組最后一個(gè)數(shù)據(jù)采進(jìn)來(lái)之后,后一組第一個(gè)數(shù)據(jù)采進(jìn)來(lái)之前,完成兩次寫(xiě)FIFO的操作。MaxMin_sel信號(hào)為最大最小值選擇信號(hào),當(dāng)它為低電平時(shí),最大值寫(xiě)入FIFO;當(dāng)它為高電平時(shí),最小值寫(xiě)入FIFO.
由于峰值檢測(cè)是以一組采樣點(diǎn)中最大最小值的形式存儲(chǔ)一個(gè)事件的幅值數(shù)據(jù),所以事件的定時(shí)分辨率是無(wú)法知道的,它只能以峰值檢測(cè)間隔的分辨率來(lái)顯示檢測(cè)到的事件。例如,示波器的AD以1GSPS(1ns間隔)采樣,而峰值檢測(cè)的采速為10MSPS(100ns間隔),快速事件將以100ns分辨率進(jìn)行顯示,而不是以AD采樣的1ns.從AD來(lái)說(shuō),100ns之間有100個(gè)采樣點(diǎn),如果100個(gè)采樣點(diǎn)中不止一個(gè)快速事件,而示波器也只能捕捉到這些事件中的最大值和最小值。
3.5 SCAN方式下的數(shù)據(jù)采集
當(dāng)示波器的時(shí)基檔打到某一檔位的時(shí)候,示波器開(kāi)始使用SCAN方式(即掃描方式)來(lái)顯示波形。掃描方式主要用來(lái)觀測(cè)低頻信號(hào)和變化緩慢的信號(hào)。工作在掃描方式下的示波器就像一臺(tái)圖像記錄儀,記錄筆在屏幕右端,紙由左向右移動(dòng)。當(dāng)掃完一屏后,在顯示新波形的同時(shí)刪除舊波形數(shù)據(jù),新波形與舊波形之間有一格的空白區(qū)來(lái)加以區(qū)分。由于掃描方式主要是用來(lái)觀測(cè)低頻信號(hào)和變化緩慢的信號(hào),所以如果采用通常的觸發(fā)方式來(lái)顯示波形的話,觸發(fā)條件會(huì)很難滿足,故示波器工作在掃描方式下時(shí)不考慮觸發(fā)信號(hào)。
本項(xiàng)目中,我們?cè)O(shè)計(jì)當(dāng)時(shí)基檔打在100ms/div和更高的檔位時(shí)采用掃描方式。具體的實(shí)現(xiàn)流程如圖3-23.
從圖中我們可以看到掃描功能主要由index0,index1,index2三個(gè)計(jì)數(shù)器來(lái)完成。其中,index0中的計(jì)數(shù)值表示最新顯示數(shù)據(jù)距顯示屏左端的距離,它的范圍為0~249;index1中的計(jì)數(shù)值表示波形沒(méi)掃完一屏?xí)r距顯示屏左端的距離,范圍為1~250;index2中的計(jì)數(shù)值表示要清除的舊波形距顯示屏左端的距離,范圍為0~249.它的具體實(shí)現(xiàn)過(guò)程是:首先初始化,將index0,index1,index2設(shè)置為0,然后判斷是否設(shè)置為掃描模式。當(dāng)確認(rèn)為掃描模式后,判斷FIFO里是否采集夠100個(gè)點(diǎn)。采滿100個(gè)點(diǎn)后,將這100個(gè)數(shù)據(jù)存入相應(yīng)的存儲(chǔ)空間,并使index0,index1開(kāi)始計(jì)數(shù)。當(dāng)index1計(jì)數(shù)到225的時(shí)候,也就是新波形數(shù)據(jù)已經(jīng)掃描完第九格時(shí),index2開(kāi)始計(jì)數(shù),即開(kāi)始清除顯示屏最左端第一列的最老數(shù)據(jù),這樣保證了新波形與舊波形之間有一格的空白顯示區(qū)。當(dāng)掃描完一屏后,即index1計(jì)數(shù)到250的時(shí),其值不再變化,保持250不變。注意,在掃描模式下不考慮觸發(fā)信號(hào),AD不停的采樣,一次性寫(xiě)入FIFO 100個(gè)點(diǎn)。顯示時(shí)讀出這100個(gè)點(diǎn),從中選出最大值和最小值,再與前面最近的點(diǎn)比較,選出最終的最大最小值,顯示在同一坐標(biāo)軸上。每顯示和清除一列波形,屏幕刷新一次。
3.6時(shí)基電路的實(shí)現(xiàn)
時(shí)基電路是數(shù)字存儲(chǔ)示波器的重要組成部分,它的作用主要是提供AD的采樣時(shí)鐘和FIFO的寫(xiě)時(shí)鐘。它的電路實(shí)現(xiàn)如圖3-24.
圖中fp0為源時(shí)鐘,它是由外部晶振提供的標(biāo)準(zhǔn)100MHz頻率信號(hào)。進(jìn)來(lái)的100MHz頻率信號(hào)經(jīng)過(guò)由四個(gè)74390和兩個(gè)T觸發(fā)器構(gòu)成的二分頻、四分頻器組成的分頻網(wǎng)絡(luò),按照1、2、5步進(jìn)的方法產(chǎn)生所需要的AD采樣頻率和FIFO寫(xiě)時(shí)鐘。在示波表的控制面板上有一個(gè)時(shí)基控制按鈕sec/div,不同的時(shí)基檔位下對(duì)應(yīng)著不同的采樣頻率。每選擇不同的時(shí)基檔位時(shí),圖中的base_sel[5..0]信號(hào)即時(shí)鐘選擇信號(hào)就會(huì)輸出不同的值以選擇與檔位相應(yīng)的采樣時(shí)鐘。具體的時(shí)基檔位與采樣時(shí)鐘以及每個(gè)檔位下存儲(chǔ)深度的對(duì)應(yīng)關(guān)系如表3-3.另外,從圖中我們還可以看到有兩個(gè)由peak_sel作為選擇信號(hào)的選擇電路。這主要是用來(lái)實(shí)現(xiàn)在峰值檢測(cè)時(shí)特殊的寫(xiě)FIFO時(shí)鐘和固定AD采樣頻率為10MHz.(請(qǐng)參考3.4.4節(jié))
評(píng)論