《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)

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

2008-09-25
作者:崔巖松

??? 摘? 要: 討論了基于USB接口的高速數(shù)據(jù)采集卡" title="高速數(shù)據(jù)采集卡">高速數(shù)據(jù)采集卡的實(shí)現(xiàn)。該系統(tǒng)采用TI公司的TUSB3210芯片作為USB通信及主控芯片,完全符合USB1.1協(xié)議,是一種新型的數(shù)據(jù)采集卡。

??? 關(guān)鍵詞: USB? A/D" title="A/D">A/D? FIFO? 固件

?

  現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對數(shù)據(jù)采集的要求日益提高,在瞬態(tài)信號測量、圖像處理等一些高速、高精度的測量中,需要進(jìn)行高速數(shù)據(jù)采集。現(xiàn)在通用的高速數(shù)據(jù)采集卡一般多是PCI卡或ISA卡,存在以下缺點(diǎn):安裝麻煩;價格昂貴;受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源限制,可擴(kuò)展性差;在一些電磁干擾性強(qiáng)的測試現(xiàn)場,無法專門對其做電磁屏蔽,導(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ā)展趨勢。基于USB的高速數(shù)據(jù)采集卡充分利用USB總線的上述優(yōu)點(diǎn),有效解決了傳統(tǒng)高速數(shù)據(jù)采集卡的缺陷。

1 USB數(shù)據(jù)采集卡原理

1.1 USB簡介

  通用串行總線適用于將USB外圍設(shè)備連接到主機(jī)上,通過PCI總線與PC內(nèi)部的系統(tǒng)總線連接,實(shí)現(xiàn)數(shù)據(jù)傳送。同時USB又是一種通信協(xié)議,支持主系統(tǒng)與其外設(shè)之間的數(shù)據(jù)傳送。USB器件支持熱插拔,可以即插即用。USB1.1支持兩種傳輸速度,既低速1.5Mbps和高速12Mbps,在USB2.0中其速度提高到480Mbps。USB具有四種傳輸方式" title="傳輸方式">傳輸方式,既控制方式(Control mode)、中斷傳輸方式(Interrupt mode)、批量傳輸方式(Bulk mode)和等時傳輸方式(Iochronous mode)。

  考慮到USB傳輸速度較高,如果用只實(shí)現(xiàn)USB接口的芯片外加普通微控制器(如8051),其處理速度就會很慢而達(dá)不到USB傳輸?shù)囊?如果采用高速微處理器(如DSP),雖然滿足了USB傳輸速率,但成本較高。所以選擇了TI公司內(nèi)置USB接口的微控制器芯片TUSB3210,開發(fā)了具有USB接口的高速數(shù)據(jù)采集卡。

1.2 系統(tǒng)原理圖

  系統(tǒng)原理圖如圖1所示。

?

  整個系統(tǒng)以TUSB3210為核心,負(fù)責(zé)啟動A/D轉(zhuǎn)換,控制FIFO的讀寫及采樣頻率的設(shè)定,與主機(jī)之間的通信及數(shù)據(jù)傳輸。

2 USB數(shù)據(jù)采集卡硬件

2.1 TUSB3210芯片

  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(Endpoint Descriptor Blocks),4個通用的GPIO端口P0、P1、P2、P3,I2C接口電路,看門狗電路等。

  TUSB3210的USB接口符合USB1.1協(xié)議,有4個輸入端點(diǎn)(Input Endpoint)和4個輸出端點(diǎn)(Output Endpoint),支持全速和低速傳輸速率,并具有USB協(xié)議所規(guī)定的4種傳輸方式。TUSB3210的USB接口采用串行接口引擎(SIE)編碼和解碼串行數(shù)據(jù),并且進(jìn)行校驗(yàn)、位填充,執(zhí)行USB所需要的其他信號。這樣采用硬件完成USB協(xié)議,簡化了固件" title="固件">固件代碼的編制。

  TUSB3210采用基于內(nèi)部RAM的解決方案,允許通過I2C總線從串行EEPROM中讀入固件或從主機(jī)中下載固件程序。這項(xiàng)功能便于設(shè)備的開發(fā)與在線升級。

2.2 A/D芯片MAX1449

  MAX1449是MAXIM公司生產(chǎn)的10位、105MSPS、單3.3V電源、低功耗的高速A/D芯片。它采用差分輸入,帶有高寬帶采樣/保持(T/H)的10階段流水線(pipeline)型結(jié)構(gòu)的ADC,如圖2。采樣信號每半個時鐘周期通過一個流水線階段,完成連續(xù)轉(zhuǎn)換到數(shù)據(jù)輸出共需5.5個時鐘周期。

?

?

  每個流水線首先通過一個1.5位的閃速ADC對輸入電壓量化,由DAC產(chǎn)生一個對應(yīng)于量化結(jié)果的電壓并與輸入電壓作差,輸出電壓放大2倍后送到下一級流水線處理。每級流水線提供1位的分辨率,并進(jìn)行差錯校正,得到良好的線性和低失調(diào)。

MAX1449提供一個2.048V的精確帶隙基準(zhǔn)源,用來設(shè)定ADC滿量程范圍,也可以用外部基準(zhǔn)源改變量程范圍。MAX1449的最大差分輸入電壓范圍為2V。

2.3 輸入信號處理電路

  MAX1449芯片的輸入信號為差分輸入時有最佳的采樣效果。在本系統(tǒng)中用TI的THS4503作為單端輸入到差分輸出的轉(zhuǎn)換電路。THS4503高性能的全差分運(yùn)放,帶寬可達(dá)270MHz,具有非常好的線性,在100MHz下可支持11位的A/D轉(zhuǎn)換要求,適合作為A/D變換的前端接口電路。具體電路見圖3所示。

?

?

2.4 FIFO和時鐘發(fā)生電路

  高速A/D變換的數(shù)據(jù)不能直接通過USB送入主機(jī),系統(tǒng)中通過FIFO來緩沖數(shù)據(jù)。本系統(tǒng)采用TI公司的SN74V293芯片。它的容量為65536×18或131072×9,最快讀寫周期為6ns,可以滿足100MHz采樣數(shù)據(jù)的存儲。用戶可以選擇輸入、輸出寬度,當(dāng)選擇輸入、輸出寬度為18時,可存儲64K×10位的數(shù)據(jù)。如果選擇輸入、輸出為9位,則可使存儲容量擴(kuò)大到128K×9位,這樣對精度要求不高的用戶可以獲得更多數(shù)據(jù)。

  SN74V293有獨(dú)立的讀寫時鐘控制電路,允許讀寫操作同時進(jìn)行。SN74V293內(nèi)部有滿、空、半滿輸出信號以及可編程設(shè)定的幾乎滿和幾乎空輸出信號,通過這些信號控制器可以靈活控制FIFO的讀寫操作。

  對于高速數(shù)據(jù)采集系統(tǒng),時鐘信號很重要。在本系統(tǒng)中選用DALLAS公司的DS1073時鐘芯片。DS1073是無需外部元件的頻率振蕩器。通過DALLAS獨(dú)有的1-wire技術(shù),可以設(shè)定內(nèi)部的分頻器數(shù)值,實(shí)現(xiàn)輸出頻率從27.3kHz~100MHz可調(diào),從而方便地改變采樣時鐘,簡化電路設(shè)計(jì)。MAX1449數(shù)據(jù)輸出時下降沿有效,而FIFO寫入時上升沿鎖存數(shù)據(jù)。系統(tǒng)中采用DS90LC028A實(shí)現(xiàn)對時鐘信號的取反。

2.5 PCB板制作

  由于是高速A/D采集,在制作PCB板時有一些需要注意的地方。電路板最好使用多層板,元件盡量選用表面封裝器件。這樣可以減小元器件之間的距離,減小寄生電感、寄生電容,同時減小電路板的尺寸。所有的旁路電容都要盡量靠近芯片的電源管腳。模擬公共地和數(shù)字公共地要分開,選一點(diǎn)通過低值表貼電阻(1~5Ω)、磁珠或直接連接,以免數(shù)字地電流干擾模擬地。電源最好用線性穩(wěn)壓電源,A/D和前端處理電路要用同一電源地輸出,減小電源波動對采集的影響。

3 USB高速數(shù)據(jù)采集卡的軟件

  開發(fā)一個USB設(shè)備,軟件設(shè)計(jì)是必不可少的。USB應(yīng)用系統(tǒng)軟件設(shè)計(jì)分為三部分:USB外設(shè)端的固件(Firmware)、主機(jī)操作系統(tǒng)上的客戶驅(qū)動程序以及主機(jī)應(yīng)用軟件。主機(jī)應(yīng)用軟件通過客戶驅(qū)動程序與系統(tǒng)USBI(USB Device Interface)進(jìn)行通信,由系統(tǒng)產(chǎn)生USB數(shù)據(jù)的傳送動作;固件則響應(yīng)各種來自系統(tǒng)的USB標(biāo)準(zhǔn)請求,完成各種數(shù)據(jù)的交換工作和事件處理。

3.1 USB接口編程

  固件程序主要是實(shí)現(xiàn)USB通信。TUSB3210采用SIE來管理USB通信。當(dāng)主機(jī)與芯片進(jìn)行USB通信時,會產(chǎn)生外部中斷0,通過中斷矢量寄存器判斷。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int 這三個中斷主要用于與主機(jī)建立連接、進(jìn)行控制傳輸或中斷傳輸;Input_endpoint1_Int、Output_endpoint1_Int這兩個中斷主要在批量傳輸時使用。在固件中分別執(zhí)行不同的中斷程序來實(shí)現(xiàn)USB的數(shù)據(jù)傳輸。

  void EX0_int(void) interrupt 0 // 外部中斷0

  {

?????? EA=DISABLE; // 關(guān)中斷

?????? switch (bVECINT){ // 確定中斷ID

????????????? case VECINT_OUTPUT_ENDPOINT0:

????     ???? bVECINT=0x00;

?????????????????? Ep0OutputInterruptHandler();

?????????????????? break;

????????????? case VECINT_INPUT_ENDPOINT0:

?????????????????? bVECINT=0x00;

?????????????????? Ep0InputInterruptHandler();

?????????????????? break;

????????????? case VECINT_OUTPUT_ENDPOINT1:

?????????????????? bVECINT=0x00;

?????????????????? Ep1OutputInterruptHandler();

?????????????????? break;

????????????? case VECINT_INPUT_ENDPOINT1:

?????????????????? bVECINT=0x00;

????????      Ep1InputInterruptHandler();

?????????????????? break;

????????????? case VECINT_SETUP_PACKET_RECEIVED:

?? ?????????????? SetupPacketInterruptHandler();

 ???????????????? bUSBSTA=USBSTA_SETUP;

?????????????????? bVECINT=0x00;

?????????????????? break;

????????????? default: break; //不知道中斷ID

?????? }

?????? EA=ENABLE; // 開中斷

  }

3.2 主機(jī)軟件設(shè)計(jì)

  筆者首先開發(fā)TUSB3210在主機(jī)中的驅(qū)動程序。用WinDK3.0開發(fā)了Win2000下的驅(qū)動程序,實(shí)現(xiàn)了控制傳輸、中斷傳輸和批量傳輸?shù)臉?biāo)準(zhǔn)接口函數(shù)。

  在應(yīng)用程序開發(fā)中,可用VC++編制應(yīng)用程序。可以把USB設(shè)備當(dāng)成文件來操作,利用CreateFile得到USB句柄" title="句柄">句柄,用DeviceIoControl來進(jìn)行控制傳輸,用ReadFile、WriteFile進(jìn)行批量傳輸。程序?qū)嵗缦?

  HANDLE m_hUsbSample;?? //USB句柄

  m_hUsbSample=CreateFile(″\.USBSampl0″, GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_

    WRITE, NULL,OPEN_EXISTING,0,NULL);????????????????????????????????????????  ?? //打開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); ??   ????????????? //關(guān)閉USB句柄

  使用上述函數(shù)編制USB高速數(shù)據(jù)采集卡的主機(jī)軟件。

  通過以上設(shè)計(jì)實(shí)現(xiàn)了基于USB數(shù)據(jù)采集卡的基本功能。但還有一些如信號的觸發(fā)、事件的捕獲功能還需完善;需開發(fā)基于USB2.0的系統(tǒng),進(jìn)一步提高數(shù)據(jù)傳輸?shù)乃俾省?/P>

?

參考文獻(xiàn)

1 TUSB3210 Datasheet. SLLS466. http://www.ti.com,2001

2 MAX1449 Datasheet. http://www.maxim-ic.com.cn,2000

3 SN74V293 Datasheet.SCAS669C. http://www.ti.com,2002

4 Jan Axelson. USB大全[M]. 北京:中國電力出版社,1999

5 Chirs,Cant.WindowsWDM設(shè)備驅(qū)動程序開發(fā)指南[M].北京:機(jī)械工業(yè)出版社, 2000

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美国产激情| 狠狠狠色丁香婷婷综合激情| 欧美在线免费| 亚洲影院免费| 亚洲午夜视频在线| 亚洲精品综合| 亚洲靠逼com| 亚洲日本电影在线| 最新成人av网站| 亚洲国产毛片完整版| 久久精品免费观看| 久久国产主播精品| 欧美一级专区| 欧美性一区二区| 亚洲欧美大片| 久久亚洲免费| 欧美呦呦网站| 亚洲在线观看视频| 夜夜嗨av色综合久久久综合网| 亚洲丰满少妇videoshd| 亚洲国产精品一区二区第一页 | 亚洲三级电影全部在线观看高清| 欧美自拍偷拍午夜视频| 久久精品国产99| 91久久精品国产91久久性色tv| 久久国产加勒比精品无码| 亚洲欧美中日韩| 久久精品国产亚洲5555| 亚洲电影激情视频网站| 亚洲精品国精品久久99热一| 99国产精品自拍| 亚洲一区二区在线观看视频| 午夜精品短视频| 久久久噜噜噜久久| 欧美成人久久| 欧美日韩中文字幕精品| 国产精品久久久久久超碰| 国产精品中文在线| 国产尤物精品| 亚洲狠狠婷婷| 亚洲特黄一级片| 久久精品国产精品 | 国一区二区在线观看| 雨宫琴音一区二区在线| 亚洲精品少妇网址| 亚洲制服av| 亚洲国产精品v| 亚洲一区成人| 欧美国产视频日韩| 久久综合图片| 欧美午夜精品理论片a级按摩| 国产欧美日本| 亚洲国产精品激情在线观看| 一区二区三区高清不卡| 欧美一区在线看| 一区二区免费在线观看| 欧美在线视频网站| 欧美黄色日本| 国产日韩欧美高清免费| 亚洲国产精品视频| 亚洲主播在线观看| 亚洲精选国产| 久久精品日韩| 欧美日韩一卡二卡| 狠狠色伊人亚洲综合成人| 日韩视频一区二区三区在线播放| 亚洲欧美一区二区三区久久| 日韩视频在线观看国产| 久久精品一区二区三区不卡| 在线电影院国产精品| 亚洲成人在线网| 亚洲精品在线二区| 午夜精品成人在线视频| 99国产精品久久久久久久成人热 | 一区二区三区高清| 久久久免费精品| 国产精品v日韩精品v欧美精品网站| 国产自产v一区二区三区c| 91久久中文| 久久国内精品视频| 午夜精彩国产免费不卡不顿大片| 欧美成人午夜剧场免费观看| 国产欧美日韩免费| 99这里只有久久精品视频| 亚洲大胆人体视频| 午夜在线精品偷拍| 欧美日韩极品在线观看一区| 韩国av一区二区三区在线观看| 亚洲图片你懂的| 99精品国产高清一区二区| 久久麻豆一区二区| 国产精一区二区三区| 亚洲老司机av| 亚洲人成在线免费观看| 久久精品国产99| 国产精品久久久久久久午夜片| 亚洲国产你懂的| 久久精品视频在线免费观看| 欧美中文字幕在线| 国产精品va在线播放我和闺蜜| 亚洲日本无吗高清不卡| 亚洲国产日韩欧美| 久久香蕉精品| 国产一区二区三区直播精品电影 | 国产老女人精品毛片久久| 夜夜嗨一区二区| 亚洲免费高清| 欧美激情国产日韩精品一区18| 影音先锋久久精品| 亚洲高清不卡在线| 久久久久免费视频| 国产一区二区黄色| 欧美一区二区三区在线视频| 亚洲欧美在线播放| 国产精品日韩二区| 亚洲一级黄色| 午夜精品一区二区三区在线播放 | 在线亚洲伦理| 亚洲一区二区在线观看视频| 欧美日韩综合在线| 在线视频精品| 亚洲欧美日韩国产精品| 欧美亚州一区二区三区| 日韩亚洲欧美成人| 亚洲视频在线观看| 欧美视频一区二区三区四区| 一本久道久久综合狠狠爱| 亚洲特级毛片| 国产精品美女www爽爽爽视频| 一区二区精品| 午夜精品免费视频| 欧美与欧洲交xxxx免费观看 | 国产精品男女猛烈高潮激情 | 91久久在线观看| 99v久久综合狠狠综合久久| 欧美激情综合色| 日韩一二三区视频| 亚洲伊人一本大道中文字幕| 国产精品久久久久久久7电影| 亚洲一区二区3| 欧美专区亚洲专区| 激情成人亚洲| 亚洲精品日韩精品| 欧美三级视频在线| 亚洲欧美国产精品va在线观看| 久久国产主播| 亚洲国产精品视频一区| 中文欧美字幕免费| 国产精品视频一| 久久动漫亚洲| 蜜乳av另类精品一区二区| 亚洲人成啪啪网站| 亚洲自拍偷拍福利| 国产欧美三级| 亚洲国产日韩欧美在线图片| 欧美区在线观看| 亚洲欧美日韩精品久久奇米色影视 | 国产精品色一区二区三区| 欧美一区二区三区在线播放| 欧美大片在线看| 一区二区三区不卡视频在线观看 | 欧美日韩和欧美的一区二区| 亚洲专区一二三| 欧美成人精品1314www| 日韩一级精品| 久久久久久综合网天天| 亚洲人成久久| 久久国产高清| 亚洲欧洲一级| 欧美在线亚洲在线| 亚洲国产精品一区| 欧美一区激情| 亚洲精品一区二区网址| 羞羞漫画18久久大片| 亚洲韩国日本中文字幕| 亚洲欧美成人| 亚洲国产欧美不卡在线观看| 午夜视频精品| 亚洲日本激情| 久久免费精品视频| 一区二区三区视频免费在线观看| 久久亚洲风情| 亚洲视频在线看| 欧美激情日韩| 久久精品国产999大香线蕉| 国产精品vip| 亚洲精品一区在线观看香蕉| 国产欧美日本在线| 夜夜夜久久久| 狠狠久久综合婷婷不卡| 午夜精品久久久久久久久久久久| 在线视频观看日韩| 欧美在线观看www| 99精品国产一区二区青青牛奶| 久久综合99re88久久爱| 亚洲一区二区欧美日韩| 欧美激情一区二区三区蜜桃视频| 香蕉成人伊视频在线观看| 国产精品v片在线观看不卡| 亚洲毛片在线观看|