基于USB 2.0的高速數(shù)據(jù)采集卡在虛擬儀器中的應用
USB控制器
數(shù)據(jù)采集接口卡是硬件部分的核心,選擇合適的能適用于USB協(xié)議的芯片是關鍵。EZ-USB FX2(即CY7C68013)是世界上首批USB2.0集成微控制器。其內(nèi)部集成了USB2.0的收發(fā)器、串行接口引擎(SIE)、增強的8051微控制器和一個可編程的串行接口。
在外設未通過USB接口接到PC機之前,外設上的固件存儲在PC上;一旦外設連接到PC機上,PC先確認外設身份(即讀設備描述符),然后將該外設的固件下載到芯片的RAM中,這樣在開發(fā)過程中當固件需要修改時,可以在PC機上修改好后,下載到芯片中。
固件開發(fā)
設備固件是設備運行的核心,它控制整個硬件系統(tǒng)的運行,并負責處理PC機發(fā)來的各種USB請求,以完成它們之間的數(shù)據(jù)傳輸。其主要功能包括控制放大模塊,實現(xiàn)通道選擇;控制A/D模塊的數(shù)據(jù)采集;通過FX2實時上傳采集數(shù)據(jù)給PC;控制FX2芯片接收并處理USB設備驅(qū)動程序的請求(如設置USB接口狀態(tài)等多種USB協(xié)議標準請求)等。
由于固件的開發(fā)流程比較復雜,故本設計中采用C語言進行開發(fā),這樣比較容易實現(xiàn)模塊化和分層結構化的程序設計。
EZ-USB FX2固件庫為用戶提供了底層Keil C函數(shù)庫。EZ-USB FX2軟件開發(fā)包提供了該庫的目標文件,同時還提供了該函數(shù)庫的源代碼,用戶可以利用Keil C來重新編寫該函數(shù)庫。
EZ-USB FX2固件是使用EZ-USB FX2程序框架或直接使用EZ-USB FX2固件庫開發(fā)的程序,這是開發(fā)USB外設的重要部分。EZ-USB FX2在其固件程序中把自己定義為USB大存儲類、塊傳輸子類,操作系統(tǒng)中(Win98以上)有相應的USB類設備驅(qū)動程序來支持這種USB類外設。在FX2的固件程序中寫入USB通信模塊,就可以實現(xiàn)主機和USB設備的通信。
固件程序必須包括DSCR.A51(A51宏匯編器)、USBJmpTb.OBJ(目標文件轉換器)和Ezusb.lib(Ezusb C編譯器庫文件和啟動代碼)。在固件程序框架中,定義了基本的USB設備的功能,一般不許修改。本設計要實現(xiàn)的具體功能則在應用層中的固件程序中完成。
應用程序開發(fā)
根據(jù)實際要求,本系統(tǒng)需要通過軟件下載固件程序,以及對ADC、放大模塊、采集模塊進行控制,同時還要接收或者發(fā)送數(shù)據(jù)。在采集開始前,可以先將命令發(fā)送出去,實現(xiàn)在固件程序中定義的相應功能,如通過EZ-USB FX2口線控制前置放大模塊等。然后可以讀取傳送到主機的數(shù)據(jù),或者向設備發(fā)送數(shù)據(jù)等。
Visual C++作為一種面向?qū)ο蟮募砷_發(fā)軟件,它最突出的特性就是封裝性、繼承性和多態(tài)性。所以,我們選用Visual C++來設計應用程序。
最后將用Visual C++編寫好的USB應用程序封裝成DLL,即可在用Labview編寫的虛擬儀器最上層應用程序中直接調(diào)用。
結語
本文就基于USB2.0的高速數(shù)據(jù)采集卡在虛擬儀器中的應用做了具體的闡述,將該系統(tǒng)應用于虛擬儀器中可實現(xiàn)熱插拔,克服了傳統(tǒng)數(shù)據(jù)采集卡插拔麻煩且擴展槽有限的缺點。USB2.0傳輸率達到480Mbps,可充分滿足高速采集的需求。所以,本文給出的基于USB2.0的高速數(shù)據(jù)采集卡在虛擬儀器的研制開發(fā)中有著很強的實用性和廣闊的應用前景。
參考文獻:
[1].AD9059datasheethttp://www.dzsc.com/datasheet/AD9059_122633.html.
[2].CPLDdatasheethttp://www.dzsc.com/datasheet/CPLD_1136600.html.
[3].AD8321datasheethttp://www.dzsc.com/datasheet/AD8321_1055558.html.
評論