一種簡易數(shù)字波形存儲器的實現(xiàn)
關(guān)鍵詞:DMA;雙端口;RAM;存儲器;AT89C51 GAL
隨著信號處理技術(shù)的發(fā)展,波形存儲變得日益重要,各種類型的波形存儲裝置也越來越多。相對于其它波形存儲裝置,本文給出的設(shè)計的最大特點是速度快,可進行DMA存儲,且不占用CPU時間來對信號進行處理。
1 系統(tǒng)的總體設(shè)計
由于本設(shè)計采用了雙口RAM和DMA思想,而且數(shù)據(jù)的采集、存儲與輸出均由邏輯電路控制,因此,提高了數(shù)據(jù)示波器的采樣速度,同時易于實現(xiàn)“實時顯示”,并可在“偽”實時處理時對數(shù)據(jù)進行操作。此外,數(shù)據(jù)的實時顯示和“偽”實時處理可通過“DMA允許”來控制,其總體設(shè)計方案如圖1所示。
1.1 輸入電路
本設(shè)計的輸入電路實際是一個可調(diào)增益電路,主要完成對信號的放大。本設(shè)計設(shè)置有0.01/div、0.1/div和1/div三檔垂直靈敏度,可分別對輸入信號進行1倍、10倍和100倍的放大。具體可采用以下兩種方案:
(1)采用可編程增益運放來實現(xiàn)1、10、100的放大倍數(shù)。由于采用集成運放,因而精度較高,調(diào)試方便,但造價也較高。
(2)采用三級放大,第一級為跟隨器方式,后兩級的放大倍數(shù)均為10,每一級放大后都有一個輸出抽頭。具體連接如圖2所示。
1.2 A/D轉(zhuǎn)換器的選擇(1)
A/D轉(zhuǎn)換器是波形存儲的關(guān)鍵部件。它決定了示波器的最大采樣速率以及分辨率。目前常用的A/D轉(zhuǎn)換器的輸出形式有并行和串行兩種,其轉(zhuǎn)換方式有逐次逼近型ADC、積分型ADC、∑-Δ型ADC與流水線型ADC。
對本設(shè)計來說,顯然應(yīng)該選擇高速A/D。綜合考慮各方面的因素,筆者選用了8位CMOS、20MSPS模擬-數(shù)字轉(zhuǎn)換器(ADC)TLC5510。
如果需要進一步提高存儲示波器輸入信號的頻率,可考慮并行A/D,即用兩片A/D對一路信號進行分時采樣,因為這樣可在不提高器件頻率特性的基礎(chǔ)上將輸入信號的帶寬提高一倍。以此類推,可并聯(lián)多塊A/D以使輸入信號的帶寬進一步得到提高(本設(shè)計中不涉及此項,有興趣的讀者不妨一試)。
1.3 存儲器的選擇
筆者在本設(shè)計中選用了兩片雙口4kB的RAM IDT7134(4kB)。它在雙路使用時,一路對應(yīng)一個存儲器。使用雙口RAM便于對波形進行實時處理和“偽”實時處理。
1.4 觸發(fā)電路的設(shè)計
觸發(fā)電路在設(shè)計時有三種方案,其一是采用可調(diào)電阻。因為該輸入信號處在一個連續(xù)的范圍內(nèi),即觸發(fā)電平可以連續(xù)變化,因此采用可調(diào)電阻能簡化電路。 其二是選用數(shù)字電位器代替模擬電阻。該方案雖然可實現(xiàn)程序控制,但觸發(fā)電平不能連續(xù)可調(diào),且會增加系統(tǒng)的控制任務(wù)。其三是由D/A轉(zhuǎn)換器組成的觸發(fā)電路,如圖3所示。在該電路中,觸發(fā)電平與Di輸入的關(guān)系為:
V=VREF Di/2n
式中,n為D/A的位數(shù),VREF為基準電壓。
利用D/A觸發(fā)電路能滿足觸發(fā)電平可調(diào)的要求,但會增加系統(tǒng)的復(fù)雜度。因此,應(yīng)綜合考慮以上三個方案。
1.5 GAL和控制電路
a. GAL器件
GAL?2?器件通常采用E2CMOS工藝制造,E2CMOS工藝的特點是可試驗性、低功耗、高速和立即可擦寫。目前最常用的GAL器件有GAL16V8和GAL20V8兩種系列,它們最多有8個輸出端(也可編程輸入),分別有16和20個輸入端。
GAL器件的特點如下:
● 方便編程,編程單元和邏輯配置可重復(fù)進行編程;
● 高性能的E2CMOS工藝使得器件的功耗很低(最大運行功耗為45mA),速度高(存取速度為15~25ns);輸出邏輯宏單元的配置使設(shè)計具有更大的靈活性;
●具有保密單元,可對程序進行加密以保護知識產(chǎn)權(quán)。
除此之外,GAL器件還具有輸出寄存器的預(yù)加載功能以及鎖定保護、輸入緩沖和加電復(fù)位等技術(shù)特性和功能。
筆者選用GAL16V8來完成圖4所示的邏輯功能。其GAL輸入輸出端口的邏輯關(guān)系為:
(abel語言)
Aout=(A0#A1#A2#A3);
Bout=!(B0#B1);
Cout1=!(C1);
Cout0=(C0&!S0#!C1&S0#!C2&S0);
系統(tǒng)中數(shù)字部分的邏輯關(guān)系均可由GAL來實現(xiàn),這樣不但可使電路得到簡化,同時也可以提高系統(tǒng)的可靠性。
b. 數(shù)字控制電路
圖5所示是該系統(tǒng)中數(shù)字控制電路的工作原理圖。當(dāng)系統(tǒng)工作于實時顯示模式時,CPU首先對所有控制電路進行復(fù)位,并使地址計數(shù)開始,然后在每一個時鐘完成A/D的數(shù)據(jù)輸出、寫入RAM和D/A直接輸出。直到地址溢出(滿屏顯示所需數(shù)據(jù)量)后,再將寫RAM地址計數(shù)信號禁止,同時給出CPU存儲完畢信號。
當(dāng)系統(tǒng)進行波形鎖存時,A/D將停止工作,并將滿屏所需的數(shù)據(jù)量存于RAM中,此后計數(shù)器只需給出地址,即可由D/A輸出波形。
在進行波形移動時,如果在鎖存信號方式的基礎(chǔ)上一屏顯示未定,那么,CPU將對地址預(yù)置數(shù)+N(或-N),并會在輸出波形后將新的預(yù)置數(shù)送入地址口線,此時的CPU可再設(shè)定下次顯示的首地址,這樣即可實現(xiàn)波形的左右移動,從而顯示出波形的任意一部分。
2 系統(tǒng)軟件設(shè)計流程
本波形存儲器系統(tǒng)的主程序分為初始化和鍵盤管理兩部分。圖6為其主程序框圖。其中初始化模塊主要是在系統(tǒng)加電后?完成對單片機系統(tǒng)即外圍元件的初始化?如對PS7219初始狀態(tài)的設(shè)定、對定時器和DMA系統(tǒng)初始狀態(tài)的設(shè)定以及為系統(tǒng)變量賦值等。
由74LS148和74LS76組成的8按鍵鍵盤管理模塊由AT89C51采用查詢方式進行處理。為了提高系統(tǒng)的可靠性,此處沒有使用中斷方式。鍵盤管理的功能是根據(jù)按鍵的功能號和當(dāng)前狀態(tài)來轉(zhuǎn)入相應(yīng)的狀態(tài),并執(zhí)行有關(guān)功能模塊,然后進入下一次循環(huán)。為了方便鍵盤的管理,本設(shè)計專門開辟了一個8字節(jié)的RAM區(qū)作為鍵盤的管理控制區(qū)(這樣)每次處理鍵盤服務(wù)程序時只須訪問此區(qū)即可。
3 可靠性設(shè)計
為了提高本系統(tǒng)的可靠性,本設(shè)計還采用了以下幾項措施:
(1)采用監(jiān)控電路。對單片機系統(tǒng)進行監(jiān)控。筆者在設(shè)計時,采用的是MAX813微處理監(jiān)控芯片,通過該芯片可使程序在進入死循環(huán)時能夠重新復(fù)位,從而保證了軟件系統(tǒng)運行的可靠性,同時,在系統(tǒng)軟件設(shè)計時,筆者還采用了軟件看門狗技術(shù)。
(2)在可靠性方面。系統(tǒng)初始化時,也已用單片機對所有端口按各子模塊要求進行了相應(yīng)設(shè)置。
評論