1、 引言
隨著現代工業生產和科學研究對數據采集要求的日益提高,在瞬態信號測量、圖像處理等一些高速、高精度的測量中,需要高速采集數據?,F在通用的高速數據采集卡一般多是PCI卡或ISA卡,存在以下缺點:安裝復雜,價格昂貴,受計算機插槽數量、地址、中斷資源限制,可擴展性差,在一些電磁干擾性強的測試現場,無法專門對其做電磁屏蔽,導致采集的數據失真。
本數據采集卡采用Philips公司的LPC2142微控制器(基于ARM7內核,內置了寬范圍的USB 2.0串行通信接口),有效地解決了傳統高速數據采集卡的缺陷。
2、 基于ARM的數據采集卡原理
本系統主要由雙通道模/數轉換器AD9238、ARM微控制器及FPGA器件EP1C3T100組成。結構框圖如圖1所示。AD9238具有A、B兩個通道,前端的差分放大器對模擬信號放大后送至AD9238,由AD9238將模擬信號轉換成12位的數字信號,同時送至FPGA中的FIFO緩存器。由LabVIEW設件制作的界面向LPC2142發送控制指令,LPC2142讀取FIFO緩存器中的數據并通過USB端口發送給主機。主機還可通過界面菜單選擇采樣頻率、采樣的起始點、模擬信號調理及讀取精度測頻數據等。
3、 數據采集卡的硬件結構
3.1 AD9238簡介
AD9238是美國模擬器件公司(ADI)推出的12位、雙通道模數轉換器。該轉換器分為3種型號,采樣率最高分別可達20 MS/s,40 MS/s和65 MS/s。它提供與單通道A/D轉換器同樣優異的動態性能,但是具有比采用2個單通道A/D轉換器更好的抗串擾性能;采用單3 V供電(2.7 V~3.6 V);Rsn=70 dBc;Rsfd=85 dBc;ENOB=11.3 b;差分輸入時有500 MHz的3 dB帶寬;帶有片上的參考電壓和SHA;1~2 Vpp的模擬輸入范圍;輸出數據格式為偏移一進制碼或者一進制補碼。
AD9238的兩個通道分別采用一個AD8138做為運放驅動器。I/O兩路中頻模擬信號分別經過2個AD8138變為差分信號送給A/D轉換器(第2,3,14,IS引腳)。
高速ADC對時鐘的占空比很敏感,一般來說需要有50%(±5%)的占空比。AD9238給每個通道單獨提供時鐘(引腳CLK_A和CLK_B),當2個通道的采樣時鐘同頻同相時,性能較好,當2個通道不同步時,性能會有所下降。
本數據采集卡采用40 MHz的AD9238,單雙通道選擇和轉換頻率可由軟件控制。
3.2 Cyclone系列FPGA器件
由于高速數據采集系統的特殊要求,在眾多FPGA器件中選擇了Altera公司的Cyclone系列器件。Cyclone系列基于先進的Stratix的工藝構架,為高速應用提供了極高的性價比,此外Cyelone系列器件內部RAM存儲器可以生成FIFO緩存器,為高速采樣提供緩存空間。
Altera公司的Quartus II軟件是一款易于使用的綜合開發工具,它集成了Altera的FPGA/CPLD開發流程中所涉及的所有工具和第三方軟件接口,界面友好,為設計提供了便利條件。
這里FPGA器件主要完成數據緩存、等精度測頻、采樣頻率分頻及觸發控制等工作。
3.3 FPGA在觸發控制中的應用
由于此數據采集卡是高速緩存式的,緩存空間有限,所以不能采用連續式采集方式,而采用觸發式采集方式。為了提高數據采集卡的適用能力,不僅可以采集周期信號,而且可以采集觸發信號,還可手動觸發采集,筆者增加了觸發點捕捉電路。系統主要由AD8561電壓比較器和FPGA器件組成,AD8561轉換速度很高,可滿足判斷速度足夠高的要求。首先模擬信號送到AD8561比較器的正輸入端,負輸入端連接至LPC2142的D/A轉換器輸出端,LPC2142的D/A轉換器輸出電壓作為AD8561比較器的參考電壓,此參考電壓可以通過向LPC2142的D/A轉換器的寄存器寫入不同值進行調節,此調節最終通過由LabVIEW制作的界面控制。當輸人信號電壓高于參考電壓時,AD8561的輸出端TOUT拉高,TOUT的電平可以通過向AD8561的LATCH端輸入高電平進行鎖存。觸發控制電路圖如圖2所示。
在手動采集方式下,TRIENO為低電平,TRIEN1高電平,當緩存器為空即FWr_FUL為高電平,通過LabVIEW制作的界面控制QSTART為高電平時,FWr_EN被拉高進行數據采集。當緩存器滿時FWr_FUL被拉低,停止采集數據。
在輸入信號觸發方式下,TRIEN0和QSTART為低電平,當緩存器為空即FWr_FUL為高電平,輸入信號電壓高于比較器的參考電壓時,TOUT被拉高,FWr_EN被拉高進行數據采集。當緩存器滿時FWr_FUL被拉低,停止采集數據。拉高TRIEN1后讀取緩存數據。
采集周期信號和輸入信號觸發方式相似,只是保持TRIEN1為高電平。在讀取緩存數據時.觸發信號到來后采集數據。
4、 高速數據采集卡的軟件設計
4.1 基于μC/OS-II的USB驅動編程
μC/OS-II提供了多任務實時操作系統的內核。在應用該操作系統時,通常需要用戶自己編寫基于μC/OS-II的外圍器件驅動程序,以使外圍器件能在操作系統的協調下更好地為用戶服務。為了使軟件可移植性強、易維護,筆者在編寫LPC2142 USB固件時綜合考慮USB協議、LPC2142 USB硬件條件,把驅動程序分為5層,如圖3所示。圖中的雙向線表示用戶軟件與USB固件之間存在著數據交換,單向線表示上層軟件對下層軟件的調用,這樣使得固件結構分明。
擁有了USB驅動程序,用戶可在此平臺上完成用戶軟件所要實現的任務,如圖4所示。單向線表示主任務對讀寫任務的控制。主任務通過信號量控制讀/寫任務的運行狀態,從而實現對FIFO緩存器的讀和寫;雙向線表示各個模塊之間存在著數據交換。為了加快大量數據的收發,本程序把LPC2142USB的邏輯端點1作為控制命令的傳輸通道,把端點2作為數據的傳輸通道。
主任務不斷的讀取端點1,當接收到PC機發來的讀命令時,就激活高優先級讀任務的準備就緒信號量。讀任務被喚醒進入讀中斷服務程序,將緩存器的數據通過USB總線發送給PC機,發送完畢后就關閉讀任務的就緒信號量,返回到主任務的循環中,等待PC機發來的下一個命令。寫任務與此相似,不再敘述。
4.2 基于LabWindow/CVI的主機軟件編程
4.2.1 LabWindows/CVI簡介
作為虛擬測量儀器,關鍵是要具有易于生成良好操作界面和強大數據處理能力的工具軟件。本系統的程序設計是用LabVIEW開發的。LabVIEW是美國NI公司開發的基于C/C++的專門用于虛擬儀表及過程控制的可視化編程語言,采用LabVIEW提供的控制件庫(包括開關、旋鈕、圖表等)很容易地設計出符合實際要求、新穎美觀的操作界面。此外LabVIEW具有很強的數據處理功能,它提供了豐富的庫函數用于數據輸入接口、數據處理(FFT等)和圖形顯示等功能,為開發應用軟件帶來極大方便。圖5為LabVIEW開發的系統操作界面。
4.2.2 程序設計
整個設計程序包括四個部分:面板設計、初始化、數據采集、數據處理和結果顯示,通過精心設計程序,基本完成了預定的各項測量功能。并保證了系統的運行速度。各部分功能介紹如下。
(1) 面板設計:提供友好的操作界面,符合常規測量儀器的操作習慣。
(2) 初始化:完成系統初始化功能,包括復位、送工作方式字、設置程序運行參數等。
(3) 數據采集:LabVIEW不能直接訪問用戶自己設計的硬件,作為一個開放式開發平臺,LabVIEW提供了DLL接口,使用戶在LabVIEW平臺上能調用其他軟件平臺編譯的模塊。并提供對象連接和嵌入技術(簡稱OLE)的支持。筆者利用VC++6.0編寫了DLL文件,并在LabVIEW環境下調用該文件,實現了LabVIEW程序與數據采集卡的數據通信。
下面即為讀寫USB設備所創建的DLL編譯項目的相關文件:
DLLBulk.h:聲明變量或功能函數的頭文件。
DLLBulk.def:模塊定義文件,是由若干個描述DLL模塊參數的語句組成的文本文件。
DLLBulk.cpp:是DLL的主要代碼文件。
對DLLBulk.dsw下的各個文件進行編譯之后,在菜單欄中選擇Build-》Build DLLBulk.dll就生成了可以被LabVIEW調用的DLL文件。
(4) 數據處理及顯示:對內存中的采樣數據進行各種處理用于不同測量目的。包括信號波形實時顯示、自動測量信號幅度和時間、圖盤、刪除圖形以及回放等附加功能。限于篇幅,程序清單此處略。
5、 結束語
文中所述的整個虛擬測量系統完全在人機交操作下運行,并隨時可更改測量參數及進行各種信號處理。系統各項指標為:最高采樣率為40 MHz,并可按1/2、1/4、1/8…1/128程控分頻采樣,雙路模擬輸入;ADC精度為12位;模擬輸入范圍為0 V~2V;在板數據緩存4 KB字節/路,傳輸方式為塊傳輸。該系統可進行實時信號波形、信號最大值、最小值、峰峰值顯示,同時提供了顯示圖形文件存盤、回放、刪除處理功能。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7489瀏覽量
151053 -
FPGA
+關注
關注
1626文章
21668瀏覽量
601864 -
數據采集
+關注
關注
38文章
5906瀏覽量
113521
發布評論請先 登錄
相關推薦
評論