一、引言
數據采集(Data Acquisition)技術是信息科學的一個重要分支,主要研究數字化信息的采集、存儲、處理等方面的內容。隨著電子技術的不斷發展和人們對信息量需求的不斷擴大,對高速、大容量的數據采集系統的需求也越來越高,以往的數據采集系統多采用單片機系統實現,由于單片機的速度和容量的限制,難于設計高速大容量的數據采集卡。近年來,由于PC機的廣泛應用,采用PC機實現數據采集系統已成必然趨勢,因此,筆者研制了基于PC的高速數據采集卡。
圖1數據采集卡硬件結構圖
二、硬件結構及功能
本數據采集卡是采集高頻地質雷達信號,數據采集電路分為模擬電路和數字電路兩部分,其實現框圖如圖1所示:
其中接口及地址譯碼電路是為數據采集卡中各部分電路分配系統地址、提供啟動信號和必要的控制信號;前置放大器是一個臺階增益為2的256倍程控增益放大器,是對來自雷達發射波采樣保持后的信號進行阻抗匹配,并進行程控增益放大,使該信號的電壓幅度盡可能接近A/D轉換器的輸入電壓滿度值,以便得到信噪比較高的數字化輸出結果;A/D轉換器是16位的,是將前置程控增益放大器輸出的模擬信號數字化;延時電路1是用于啟動天線發射子系統發射高頻高壓雷達脈沖信號,該延時是可編程的,它主要用來消除電路自身和傳輸線路帶來的時滯影響,使得發射啟動信號與接收啟動信號之間的時間差控制在有效范圍內。延時電路2是在系統啟動脈沖觸發下,延遲一個可編程時間段后,產生一個觸發脈沖,用于啟動天線接收子系統的采樣保持和數據采集卡的A/D轉換。微機總線采用ISA總線,ISA總線是在PC總線的基礎上發展起來的,但比PC總線在性能上有了較大的提高,其布線要求沒有PCI接口板的要求高,又能滿足本數據采集系統的速度要求。
ISA為工業標準總線,該總線較PC總線在性能上有了較大的提高,如其尋址空間的范圍、數據總線的寬度、中斷處理能力等都有很大的提高。ISA信號線分為5類:數據線、地址線、控制線、狀態線、輔助線和電源線,只簡介本數據采集卡用到的信號線。
圖2ISA和GAL連接圖
地址線A0~A19共20根,為輸出信號。在系統總線周期由CPU驅動,在DMA周期由DMA驅動。數據線D0~D7和SD8~SD15雙向。
AEN:地址允許信號,由DMA控制器發出。AEN=1表示目前為DMA總線周期;AEN=0表示CPU在行使總線控制權。
-IOR:I/O讀命令輸出。信號有效時,將選中的I/O設備接口中的數據讀到數據總線。
-IOW:I/O寫命令輸出。信號有效時,把數據總線上的數據寫入所選中的單元。
-IOCS16:是三態信號,信號有效時,將數據讀到數據總線。本數據采集卡是把A/D轉換的數據通過總線存儲到微機中。
三、 I/O端口地址譯碼
為了CPU便于對I/O設備進行尋址和選擇,必須給I/O設備進行編址。CPU通過I/O設備的地址碼向I/O設備寫數據或者從I/O設備的地址碼中讀數據,一般系統占用低端512個I/O端口地址,即0000H∽01FFH,留給用戶使用的一般從512∽1024 I/O端口地址之間的地址,即0200H∽03FFH。單個地址編碼可以采用與門、或門、非門等簡單的基本器件實現,例如某個設備使用0200H端口地址,即轉化為二進制為001000000000B,筆者用A0∽A9地址線來實現,既A9=1,A0∽A8全為0,另外需要AEN地址允許信號置成低電平,對端口寫數據-IOW或是對端口讀數據-IOR置成低電平,假設是對端口讀數據,信號SIG=/AEN*/IOR*/A9*/A8*/A7*/A6*/A5*/A4*/A3*/A2*/A1*/A0,只要把地址線A0∽A8分別接上非門,然后把A0∽A9,IOR和AEN接在與非門上,地址線上只要出現0200H端口地址,就出現一個高電平脈沖,就達到了單個地址的編碼。一般I/O設備都有多個地址端口,即每一臺設備占用若干個地址編碼,分別表示相應的設備的存儲器的地址,通常設計I/O設備地址使用連續的地址碼,這樣再采用單個地址的編碼方法既復雜又難于實現,目前大部分采用通用編程陣列GAL,它以可靈活編程實現各種邏輯功能的特點而成為構成數字系統的理想器件,具有可以設計任意地址范圍的譯碼器,并因其電可擦除、可重新編程、輸出邏輯宏單元可組態、可以加密及其成本低等諸多優點而得到廣泛的應用。我們采用GAL20V8作為地址譯碼來設計數據采集卡電路,其相關的部分電路連線圖如圖2所示。
首先是GAL的24個引腳標號,按順序排好,然后對輸出的引角進行編碼,STRAD的地址編碼為0208H高電平的寫信號,SD0的OE端地址為0202H,OA0是A0的反向,/RDDATA是讀74HC245的信號,地址為0200H,低電平有效,IO16的OE端地址是0200H,/DACS的地址為從0200H開始,低電平有效,它再配合其他的器件來實現DA轉換器片選及鎖存,/WRGAIN寫增益信號,地址為0209H,低電平有效,/WR是寫入DA轉換器的延遲時間,地址為0204H,0205H,0206H,0207H,通過這幾個地址寫入數據,并且和/WRGAIN寫增益信號一起控制前置放大器的放大倍數,其地址為0209H。
GAL的輸入信號與PC62的地址線A0∽A9和-IOR、-IOW及AEN相連,輸出信號為SD0,此信號是為了打標觸發設置的,WR是控制其中一個74HC245總線收發器,OSA0是控制DA轉換器的高字節的寫入,STRAD是啟動AD轉換器的信號,WRGAIN是控制前置放大的寫增益信號,RDDATA是控制從另一個74HC245讀入數據到總線端口的信號,DACS是片選DA轉換器的鎖存和片選的,-IOCS16是控制高8位的數據寫入信號。
四、數據的讀寫及編程實現
數據的讀入即從I/O卡存儲器讀數據到總線上,然后由主機CPU進行處理,數據的寫入即從總線向I/O卡的存儲器寫入數據,還需地址總線允許信號AEN和I/O端口讀信號IOR或I/O端口寫信號IOW等信號的配合,才能完成數據的讀寫。例如:STRAD啟動AD轉換器的信號,當地址總線選中0208H時,通過GAL譯碼電路使STRAD出現一個高電平信號,就啟動了AD;/RDDATA信號設置地址為0200H,當地址總線上出現0200H地址時,通過GAL譯碼產生一個低電平,使RDDATA信號有效,并且IO16三態信號允許,74HC245中的數據才能通過ISA總線的數據線SD8∽SD15讀到總線上,然后主機CPU進行處理。
調試用匯編程序摘錄如下:
MOV DX,0208
OUT DX,AL
MOV CX,0100
A1:LOOP A1
MOV CX,0200
MOV BX,0200
A2:OUT DX,AL
MOV DX,0200
IN AL,DX
MOV AH,AL
INCDX
INAL,DX
MOV [BX],AX
INCBX
INCBX
LOOP A2
INT 3
五、實驗結果及誤差改進措施
本數據采集卡可以直接插在PC的ISA插槽上使用,具有方便靈活使用的特點,I/O地址已經設定,一般不需改動,如果改動,可以用GAL編程器重新設置地址,只要把幾個端口地址重新編碼即可,但相應的軟件涉及到端口地址的必須改動。由于采集高頻信號需要相當高速度及大容量的要求,我們采用等效采樣技術避免了高速度的要求,經過實驗驗證,本數據采集卡可以實現高頻信號的采集,我們是對雷達高頻信號的采集,最高頻率可達30GHZ。其采集結果如圖3所示:
圖3實測雷達反射波形
在數據采集過程中,不可避免的會產生誤差,為了提高采樣精度,對同一點多次采樣并以平均值取代該點樣值。實踐證明n次采樣的平均值取代單次采樣得到的值,通常更接近于樣點的真實數值,因而可以對延時誤差有效地加以改善。