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