基于USB接口的實(shí)用型數(shù)據(jù)采集卡設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要: 本文采用一種新型的通信標(biāo)準(zhǔn)USB,研制出一種基于USB接口的實(shí)用型數(shù)據(jù)采集卡。硬件是一外置式的密封設(shè)備,軟件具有很好的用戶圖形界面。整個(gè)系統(tǒng)功能齊全、操作簡(jiǎn)單,采樣速度24MB/s達(dá)到國(guó)內(nèi)先進(jìn)水平。詳細(xì)論述了高速數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì),并且對(duì)系統(tǒng)所使用的主要芯片和相關(guān)技術(shù)做了說(shuō)明;本文還對(duì)USB驅(qū)動(dòng)程序、固件程序和應(yīng)用層程序進(jìn)行了開(kāi)發(fā)。
關(guān)鍵字: 數(shù)據(jù)采集;USB;數(shù)模轉(zhuǎn)換;CPLD
1 引言
隨著低成本高性能的計(jì)算機(jī)資源普及運(yùn)用、大規(guī)模集成電路技術(shù)和通訊技術(shù)的飛速發(fā)展,數(shù)字化測(cè)量平臺(tái)逐漸成為測(cè)量?jī)x器的基礎(chǔ)。所有測(cè)量測(cè)試儀器的主要功能由數(shù)據(jù)采集采集與控制、數(shù)據(jù)分析與處理、結(jié)果的表達(dá)與輸出三大部分組成。高質(zhì)量的A/D采集卡及調(diào)理放大器是影響其發(fā)展的一個(gè)重要因素。本文實(shí)現(xiàn)了基于USB接口的實(shí)用型數(shù)據(jù)采集卡的設(shè)計(jì)。
2數(shù)據(jù)采集卡的結(jié)構(gòu)設(shè)計(jì)
本文采用集散型的系統(tǒng)結(jié)構(gòu),定位為高速、雙通道的數(shù)據(jù)采集系統(tǒng)。整個(gè)系統(tǒng)采用模塊化技術(shù),各個(gè)模塊通過(guò)總線連接。設(shè)計(jì)時(shí)將整個(gè)系統(tǒng)劃分為四個(gè)相互關(guān)聯(lián)的有機(jī)部分,即信號(hào)調(diào)理模塊、數(shù)據(jù)采集模塊、CPLD控制模塊和軟件操作平臺(tái)。模塊間連接關(guān)系如圖1所示。
圖1 模塊間的連接
高速數(shù)據(jù)采集卡的設(shè)計(jì)的關(guān)鍵是高速ADC的選擇和經(jīng)采樣得到的高速數(shù)據(jù)如何被送到計(jì)算機(jī)里進(jìn)行處理,在本章中將詳細(xì)介紹關(guān)于高速數(shù)據(jù)采集卡的各模塊的設(shè)計(jì)。高速數(shù)據(jù)采集卡硬件部分的設(shè)計(jì)從功能上主要包括信號(hào)調(diào)理模塊、高速模數(shù)轉(zhuǎn)換模塊、CPLD控制模塊以及與計(jì)算機(jī)接口部分電路組成。
2.1 信號(hào)調(diào)理模塊的設(shè)計(jì)
在高速數(shù)據(jù)采集系統(tǒng)中,現(xiàn)場(chǎng)輸入信號(hào)是高頻的模擬信號(hào),信號(hào)變化的范圍都比較大,如果采用單一的增益放大,那么放大以后的信號(hào)幅值有可能超過(guò)A/D轉(zhuǎn)換的量程,所以必須根據(jù)信號(hào)的變化相應(yīng)地調(diào)整放大器的增益。在自動(dòng)化程度較高的系統(tǒng)中,希望能夠在程序中用軟件控制放大器的增益,AD8321正是這樣一種具有增益可編程功能的芯片。AD8321是美國(guó)AD工公司生產(chǎn)的一種增益可編程線驅(qū)動(dòng)器,可廣泛應(yīng)用于多種領(lǐng)域。它具有頻帶寬、噪聲低、增益可編程且易于與單片機(jī)進(jìn)行串行通信等優(yōu)點(diǎn),十分適合在數(shù)據(jù)采集系統(tǒng)做前置放大。本文的高速數(shù)據(jù)采集系統(tǒng)原理圖如圖2。
圖2 高速數(shù)據(jù)采集系統(tǒng)原理圖
在此系統(tǒng)中,高頻模擬信號(hào)線輸入到AD8321,經(jīng)程控放大后再輸送到具有采樣保持功能的模數(shù)轉(zhuǎn)換器中,因?yàn)椴蓸宇l率為高頻,所以在A/D后接在EZ-USB FX2芯片,然后再連到計(jì)算機(jī)上。
2.2 高速模數(shù)轉(zhuǎn)換模塊的設(shè)計(jì)
圖3 AD9059管腳及基本連接
高速數(shù)據(jù)采集卡的核心是高速模數(shù)轉(zhuǎn)換器,它直接影響了整個(gè)數(shù)據(jù)采集卡的性能指標(biāo),所以選擇合適的高速模數(shù)轉(zhuǎn)換器是至關(guān)重要的。
本文采用的高速模數(shù)轉(zhuǎn)換器是AD公司生產(chǎn)的AD9059, AD9059是8位單片雙通道模數(shù)轉(zhuǎn)換器,主要有兩個(gè)跟蹤/保持電路(T/H)、2個(gè)模數(shù)轉(zhuǎn)換器(ADCa, ADCb)和一個(gè)2.5V的基準(zhǔn)電源等組成,具有高速、高性能、低功耗及易使用等特性,60MSPS的編碼速率和120MHz的最大功率模擬帶寬使其在多路數(shù)據(jù)采樣系統(tǒng)中表現(xiàn)出優(yōu)秀的動(dòng)態(tài)性能。大部分情況下,AD9059僅需要一個(gè)單極性的5V電源和一個(gè)編碼時(shí)鐘即能正常工作。編碼時(shí)鐘提供與TTL/CMOS兼容的邏輯數(shù)據(jù)輸出,并控制兩個(gè)模數(shù)轉(zhuǎn)換通道同時(shí)對(duì)數(shù)據(jù)進(jìn)行采樣。如長(zhǎng)時(shí)間不需要采集數(shù)據(jù),可啟動(dòng)體眠模式使總功耗小于12MW。AD9059的管腳和基本連接如圖3所示。管腳AINA, AINB為雙通道模擬輸入;VREF為參考電壓,一般可以采用內(nèi)部2.5V的參考電壓。理論上模擬電壓的輸入范圍與參考電壓有關(guān),Vrange (p-p)=VREF/2.5, Vmidscale=VREF。PWRDN為掉電功能選擇,當(dāng) PWRDN為邏輯高電平時(shí),AD9059處于掉電模式,這時(shí),所有的邏輯輸出變?yōu)楦咦钁B(tài),VD為+5V模擬供電電壓,VDD為邏輯輸出供電電壓,D0A-D7A和D0B-D7B為雙通道數(shù)據(jù)輸出,ENCODE為編碼時(shí)鐘,最大采樣時(shí)鐘為60MHZ, ADC在時(shí)鐘的上升沿開(kāi)始采樣。經(jīng)過(guò)A/D轉(zhuǎn)換后的數(shù)據(jù)直接傳送到FX2的數(shù)據(jù)線上。ADC的時(shí)鐘及控制信號(hào)等由CPLD提供。
2.3 CPLD的選擇與USB設(shè)計(jì)
在本設(shè)計(jì)中,所有的數(shù)字電路部分,全部是在CPLD內(nèi)實(shí)現(xiàn)的。在本設(shè)計(jì)中采用了Lattice公司的ISP1032這塊芯片,所用的EDA軟件是Lattice公司的ispEXPERT system,編程語(yǔ)言為ABEL語(yǔ)言和電路原理圖。
在用CPLD進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)一般采用由頂?shù)较拢纱值郊?xì),逐步求精的原則,最頂層的設(shè)計(jì)是指系統(tǒng)的整體要求,最底層的設(shè)計(jì)是具體的邏輯電路的實(shí)現(xiàn)。經(jīng)過(guò)在實(shí)踐中檢驗(yàn),在高速數(shù)據(jù)采集卡中,用CPLD來(lái)實(shí)現(xiàn)數(shù)字邏輯電路功能,可以使高速數(shù)據(jù)采集卡工作穩(wěn)定,各方面性能良好。
通用串行總線(Universal Serial Bus,簡(jiǎn)稱USB)是1995年康柏、微軟、IBM,DEC等公司為了解決傳統(tǒng)總線的不足推廣的一種新型串行通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易擴(kuò)展等優(yōu)點(diǎn),已經(jīng)逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)。在本文中采用的是具備USB通信功能的單片機(jī)的芯片,Cypress公司的EZ-USB FX2。
3 系統(tǒng)軟體設(shè)計(jì)
3.1 USB設(shè)備驅(qū)動(dòng)程序
圖4 USB驅(qū)動(dòng)程序體系結(jié)構(gòu)
Windows系統(tǒng)對(duì)構(gòu)成一個(gè)USB總線主機(jī)的不同軟件部分進(jìn)行了明確的劃分,如圖4所示,其中USB客戶軟件僅僅包含了用來(lái)控制不同的USB外設(shè)的設(shè)備驅(qū)動(dòng)程序。USB客戶軟件會(huì)通過(guò)一個(gè)Windows所定義的一個(gè)軟件接口來(lái)同根集線器驅(qū)動(dòng)程序進(jìn)行通信。而USB根集線器驅(qū)動(dòng)程序則要通過(guò)USBDI(通用串行總線驅(qū)動(dòng)程序接口)來(lái)實(shí)現(xiàn)同USBD通用串行總線驅(qū)動(dòng)程序)的通信。然后,USBD會(huì)選擇兩種主控制器驅(qū)動(dòng)程序(UHCD和OpenHCI)之一來(lái)同其下方的主控制器進(jìn)行通信。最后,在USB總線和主機(jī)控制器之間存在一個(gè)PCI總線枚舉器,它負(fù)責(zé)在檢測(cè)到系統(tǒng)中存在一個(gè)通用串行總線時(shí),裝載適當(dāng)?shù)腢SB總線系統(tǒng)軟件,主控制器驅(qū)動(dòng)程序會(huì)通過(guò)PC工枚舉器軟件直接實(shí)現(xiàn)對(duì)USB物理層總線的訪問(wèn)。HCD與USBD代表了基于對(duì)不同層次的抽象的軟件接口,它們能以某種方式共同工作,以滿足USB系統(tǒng)的整體要求。
3.2 固件程序開(kāi)發(fā)
設(shè)備固件是設(shè)備運(yùn)行的核心,它控制整個(gè)硬件系統(tǒng)的運(yùn)行,并負(fù)責(zé)處理PC機(jī)發(fā)來(lái)的各種USB請(qǐng)求,以完成它們之間的數(shù)據(jù)傳輸。其主要功能包括控制放大模塊、實(shí)現(xiàn)通道選擇;控制A/D模塊的數(shù)據(jù)采集;通過(guò)FX2實(shí)時(shí)上傳采集數(shù)據(jù)給PC;控制FX2芯片接收并處理USB設(shè)備驅(qū)動(dòng)程序的請(qǐng)求(如設(shè)置USB接口狀態(tài)等多種USB協(xié)議標(biāo)準(zhǔn)請(qǐng)求)等。
Cypress公司提供的EZ-USB FX2軟件包為用戶開(kāi)發(fā)基于EZ-USB FX2系列芯片的USB設(shè)備的編程提供了很大的方便。無(wú)論是開(kāi)發(fā)基于外設(shè)的8051固件程序,還是開(kāi)發(fā)基于USB主機(jī)的設(shè)備驅(qū)動(dòng)程序或應(yīng)用程序,該軟件包都提供了較完備的程序框架和例程庫(kù)。
EZ-USB FX2固件庫(kù)為用戶開(kāi)發(fā)EZ-USB FX2固件提供了底層Keil C函數(shù)庫(kù)。EZ-USB FX2軟件開(kāi)發(fā)包提供了該庫(kù)的目標(biāo)文件,同時(shí)還提供了該函數(shù)庫(kù)的源代碼,用戶可以利用Keil來(lái)重新編寫該函數(shù)庫(kù)。
EZ-USB FX2固件是使用EZ-USB FX2程序框架或直接使用EZ-USB FX2固件庫(kù)開(kāi)發(fā)的程序,這是開(kāi)發(fā)USB外設(shè)的重要部分。
FX2在其固件程序中把自己定義為USB大存儲(chǔ)類、塊傳輸子類,操作系統(tǒng)(Win98以上)有相應(yīng)的USB類設(shè)備驅(qū)動(dòng)程序來(lái)支持這種USB類外設(shè),而不需要另外在操作系統(tǒng)內(nèi)安裝其驅(qū)動(dòng)程序。在FX2的固件程序中寫入U(xiǎn)SB通信模塊,就可以實(shí)現(xiàn)主機(jī)和USB設(shè)備的通信。
固件程序必須包括DSCR.A51(A51宏匯編器), USBJmpTb.OBJ(目標(biāo)文件轉(zhuǎn)換器)和Ezusb.lib ( Ezusb C編譯器庫(kù)文件和啟動(dòng)代碼)。
固件程序有兩個(gè)C文件,一個(gè)是FW.C,即框架程序,定義了基本的USB設(shè)備的功能,一般不許修改。另一個(gè)是FUNCTION.C(FUNCTION為自己命名),本設(shè)計(jì)要實(shí)現(xiàn)的具體功能在此文件中完成。
3.3 應(yīng)用層程序
應(yīng)用層程序用Visual C++6.0來(lái)開(kāi)發(fā),它可以直接調(diào)用底層的設(shè)備驅(qū)動(dòng)程序。利用VC開(kāi)發(fā)的應(yīng)用軟件具有高效、美觀、操作方便等優(yōu)點(diǎn)。
圖5 軟件流程圖
如圖5所示,本系統(tǒng)需要通過(guò)軟件下載固件程序,對(duì)ADC、放大模塊、采集模塊進(jìn)行控制,同時(shí)還要接收或者發(fā)送數(shù)據(jù)。在采集開(kāi)始前,可以先將命令發(fā)送出去,實(shí)現(xiàn)在固件程序中定義的相應(yīng)功能,如通過(guò)FX2口線控制前置放大模塊等。然后可以讀取傳送到主機(jī)的數(shù)據(jù),或者向設(shè)備發(fā)送數(shù)據(jù)等。
本文作者創(chuàng)新點(diǎn): 本文設(shè)計(jì)的USB2.0為接口的數(shù)據(jù)采集卡,采樣及數(shù)據(jù)傳輸速度都達(dá)到了24Mb/s,達(dá)到國(guó)內(nèi)先進(jìn)水平。同時(shí)該系統(tǒng)具有簡(jiǎn)單實(shí)用,硬件成本低,構(gòu)造簡(jiǎn)單,復(fù)用性良好,功能強(qiáng)大的特點(diǎn),也是該系統(tǒng)的優(yōu)勢(shì)之處。