USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)

崔巖松時(shí)間:2008年09月25日

字體:大中小

關(guān)鍵詞:

???摘?要:???關(guān)鍵詞:?現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益提高,在瞬態(tài)信號(hào)測(cè)量、圖像處理等一些高速、高精度的測(cè)量中,需要進(jìn)行高速數(shù)據(jù)采集?,F(xiàn)在通用的高速數(shù)據(jù)采集卡一般多是PCI卡或ISA卡,存在以下缺點(diǎn):安裝麻煩;價(jià)格昂貴;受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源限制,可擴(kuò)展性差;在一些電磁干擾性強(qiáng)的測(cè)試現(xiàn)場(chǎng),無(wú)法專(zhuān)門(mén)對(duì)其做電磁屏蔽,導(dǎo)致采集的數(shù)據(jù)失真。通用串行總線USB是1995年康柏、微軟、IBM、DEC等公司為解決傳統(tǒng)總線不足而推廣的一種新型的通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易于擴(kuò)展等優(yōu)點(diǎn),已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)?;赨SB的高速數(shù)據(jù)采集卡充分利用USB總線的上述優(yōu)點(diǎn),有效解決了傳統(tǒng)高速數(shù)據(jù)采集卡的缺陷。1USB數(shù)據(jù)采集卡原理1.1USB簡(jiǎn)介考慮到USB傳輸速度較高,如果用只實(shí)現(xiàn)USB接口的芯片外加普通微控制器(如8051),其處理速度就會(huì)很慢而達(dá)不到USB傳輸?shù)囊?如果采用高速微處理器(如DSP),雖然滿(mǎn)足了USB傳輸速率,但成本較高。所以選擇了TI公司內(nèi)置USB接口的微控制器芯片TUSB3210,開(kāi)發(fā)了具有USB接口的高速數(shù)據(jù)采集卡。1.2系統(tǒng)原理圖系統(tǒng)原理圖如圖1所示。?整個(gè)系統(tǒng)以TUSB3210為核心,負(fù)責(zé)啟動(dòng)A/D轉(zhuǎn)換,控制FIFO的讀寫(xiě)及采樣頻率的設(shè)定,與主機(jī)之間的通信及數(shù)據(jù)傳輸。2USB數(shù)據(jù)采集卡硬件2.1TUSB3210芯片TUSB3210是TI公司推出的內(nèi)嵌8052內(nèi)核并帶有USB接口的微控制器芯片。TUSB3210有256字節(jié)的內(nèi)部RAM,8K字節(jié)的程序RAM,512字節(jié)的USB數(shù)據(jù)緩沖和端點(diǎn)描述塊EDB(EndpointDescriptorBlocks),4個(gè)通用的GPIO端口P0、P1、P2、P3,I2C接口電路,看門(mén)狗電路等。TUSB3210采用基于內(nèi)部RAM的解決方案,允許通過(guò)I2C總線從串行EEPROM中讀入固件或從主機(jī)中下載固件程序。這項(xiàng)功能便于設(shè)備的開(kāi)發(fā)與在線升級(jí)。2.2A/D芯片MAX1449MAX1449是MAXIM公司生產(chǎn)的10位、105MSPS、單3.3V電源、低功耗的高速A/D芯片。它采用差分輸入,帶有高寬帶采樣/保持(T/H)的10階段流水線(pipeline)型結(jié)構(gòu)的ADC,如圖2。采樣信號(hào)每半個(gè)時(shí)鐘周期通過(guò)一個(gè)流水線階段,完成連續(xù)轉(zhuǎn)換到數(shù)據(jù)輸出共需5.5個(gè)時(shí)鐘周期。??每個(gè)流水線首先通過(guò)一個(gè)1.5位的閃速ADC對(duì)輸入電壓量化,由DAC產(chǎn)生一個(gè)對(duì)應(yīng)于量化結(jié)果的電壓并與輸入電壓作差,輸出電壓放大2倍后送到下一級(jí)流水線處理。每級(jí)流水線提供1位的分辨率,并進(jìn)行差錯(cuò)校正,得到良好的線性和低失調(diào)。MAX1449提供一個(gè)2.048V的精確帶隙基準(zhǔn)源,用來(lái)設(shè)定ADC滿(mǎn)量程范圍,也可以用外部基準(zhǔn)源改變量程范圍。MAX1449的最大差分輸入電壓范圍為2V。2.3輸入信號(hào)處理電路MAX1449芯片的輸入信號(hào)為差分輸入時(shí)有最佳的采樣效果。在本系統(tǒng)中用TI的THS4503作為單端輸入到差分輸出的轉(zhuǎn)換電路。THS4503高性能的全差分運(yùn)放,帶寬可達(dá)270MHz,具有非常好的線性,在100MHz下可支持11位的A/D轉(zhuǎn)換要求,適合作為A/D變換的前端接口電路。具體電路見(jiàn)圖3所示。??2.4FIFO和時(shí)鐘發(fā)生電路高速A/D變換的數(shù)據(jù)不能直接通過(guò)USB送入主機(jī),系統(tǒng)中通過(guò)FIFO來(lái)緩沖數(shù)據(jù)。本系統(tǒng)采用TI公司的SN74V293芯片。它的容量為65536×18或131072×9,最快讀寫(xiě)周期為6ns,可以滿(mǎn)足100MHz采樣數(shù)據(jù)的存儲(chǔ)。用戶(hù)可以選擇輸入、輸出寬度,當(dāng)選擇輸入、輸出寬度為18時(shí),可存儲(chǔ)64K×10位的數(shù)據(jù)。如果選擇輸入、輸出為9位,則可使存儲(chǔ)容量擴(kuò)大到128K×9位,這樣對(duì)精度要求不高的用戶(hù)可以獲得更多數(shù)據(jù)。SN74V293有獨(dú)立的讀寫(xiě)時(shí)鐘控制電路,允許讀寫(xiě)操作同時(shí)進(jìn)行。SN74V293內(nèi)部有滿(mǎn)、空、半滿(mǎn)輸出信號(hào)以及可編程設(shè)定的幾乎滿(mǎn)和幾乎空輸出信號(hào),通過(guò)這些信號(hào)控制器可以靈活控制FIFO的讀寫(xiě)操作。對(duì)于高速數(shù)據(jù)采集系統(tǒng),時(shí)鐘信號(hào)很重要。在本系統(tǒng)中選用DALLAS公司的DS1073時(shí)鐘芯片。DS1073是無(wú)需外部元件的頻率振蕩器。通過(guò)DALLAS獨(dú)有的1-wire技術(shù),可以設(shè)定內(nèi)部的分頻器數(shù)值,實(shí)現(xiàn)輸出頻率從27.3kHz~100MHz可調(diào),從而方便地改變采樣時(shí)鐘,簡(jiǎn)化電路設(shè)計(jì)。MAX1449數(shù)據(jù)輸出時(shí)下降沿有效,而FIFO寫(xiě)入時(shí)上升沿鎖存數(shù)據(jù)。系統(tǒng)中采用DS90LC028A實(shí)現(xiàn)對(duì)時(shí)鐘信號(hào)的取反。2.5PCB板制作由于是高速A/D采集,在制作PCB板時(shí)有一些需要注意的地方。電路板最好使用多層板,元件盡量選用表面封裝器件。這樣可以減小元器件之間的距離,減小寄生電感、寄生電容,同時(shí)減小電路板的尺寸。所有的旁路電容都要盡量靠近芯片的電源管腳。模擬公共地和數(shù)字公共地要分開(kāi),選一點(diǎn)通過(guò)低值表貼電阻(1~5Ω)、磁珠或直接連接,以免數(shù)字地電流干擾模擬地。電源最好用線性穩(wěn)壓電源,A/D和前端處理電路要用同一電源地輸出,減小電源波動(dòng)對(duì)采集的影響。3USB高速數(shù)據(jù)采集卡的軟件開(kāi)發(fā)一個(gè)USB設(shè)備,軟件設(shè)計(jì)是必不可少的。USB應(yīng)用系統(tǒng)軟件設(shè)計(jì)分為三部分:USB外設(shè)端的固件(Firmware)、主機(jī)操作系統(tǒng)上的客戶(hù)驅(qū)動(dòng)程序以及主機(jī)應(yīng)用軟件。主機(jī)應(yīng)用軟件通過(guò)客戶(hù)驅(qū)動(dòng)程序與系統(tǒng)USBI(USBDeviceInterface)進(jìn)行通信,由系統(tǒng)產(chǎn)生USB數(shù)據(jù)的傳送動(dòng)作;固件則響應(yīng)各種來(lái)自系統(tǒng)的USB標(biāo)準(zhǔn)請(qǐng)求,完成各種數(shù)據(jù)的交換工作和事件處理。3.1USB接口編程固件程序主要是實(shí)現(xiàn)USB通信。TUSB3210采用SIE來(lái)管理USB通信。當(dāng)主機(jī)與芯片進(jìn)行USB通信時(shí),會(huì)產(chǎn)生外部中斷0,通過(guò)中斷矢量寄存器判斷。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int這三個(gè)中斷主要用于與主機(jī)建立連接、進(jìn)行控制傳輸或中斷傳輸;Input_endpoint1_Int、Output_endpoint1_Int這兩個(gè)中斷主要在批量傳輸時(shí)使用。在固件中分別執(zhí)行不同的中斷程序來(lái)實(shí)現(xiàn)USB的數(shù)據(jù)傳輸。voidEX0_int(void)interrupt0//外部中斷0{??????EA=DISABLE;//關(guān)中斷??????switch(bVECINT){//確定中斷ID?????????????caseVECINT_OUTPUT_ENDPOINT0:????????bVECINT=0x00;??????????????????Ep0OutputInterruptHandler();??????????????????break;?????????????caseVECINT_INPUT_ENDPOINT0:??????????????????bVECINT=0x00;??????????????????Ep0InputInterruptHandler();??????????????????break;?????????????caseVECINT_OUTPUT_ENDPOINT1:??????????????????bVECINT=0x00;??????????????????Ep1OutputInterruptHandler();??????????????????break;?????????????caseVECINT_INPUT_ENDPOINT1:??????????????????bVECINT=0x00;????????Ep1InputInterruptHandler();??????????????????break;?????????????caseVECINT_SETUP_PACKET_RECEIVED:????????????????SetupPacketInterruptHandler();????????????????bUSBSTA=USBSTA_SETUP;??????????????????bVECINT=0x00;??????????????????break;?????????????default:break;//不知道中斷ID??????}??????EA=ENABLE;//開(kāi)中斷}3.2主機(jī)軟件設(shè)計(jì)筆者首先開(kāi)發(fā)TUSB3210在主機(jī)中的驅(qū)動(dòng)程序。用WinDK3.0開(kāi)發(fā)了Win2000下的驅(qū)動(dòng)程序,實(shí)現(xiàn)了控制傳輸、中斷傳輸和批量傳輸?shù)臉?biāo)準(zhǔn)接口函數(shù)。HANDLEm_hUsbSample;??//USB句柄m_hUsbSample=CreateFile(″\.USBSampl0″,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);??????????????????????????????????????????//打開(kāi)USB句柄DeviceIoControl(m_hUsbSample,IOCTL_USBSAMPL_REBOOT,NULL,0,NULL,0,&length,NULL);?????//控制傳輸WriteFile(m_hUsbSample,pBuffer,writelength,&writelength,NULL);??????????????????????????????????????????????????//批量輸出傳輸ReadFile(m_hUsbSample,pBuffer,64,&length,NULL);???????????????????????????????????????????????????//批量輸入傳輸CloseHandle(m_hUsbSample);????????

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論