精品人妻一区二区三区麻豆91国产精品亚洲精品日韩|国产成人精品久久久久日韩中文字幕视频一区二区|国产区精品福利在线熟女|xk8134星空传媒|亚洲一区二区精品3399|5566中文字幕一区二区|国产69精品久久久久9999|中文字幕亚洲欧美日韩|国产日韩久久久久精品影院|亚洲国产精品久久久久久久久,果冻传媒精选麻豆人口中文av内射,欧美成人精品一区二区三区在线观看国产91精品肉色丝袜 ,国产日韩欧美一区二区久久精品东北电影制片厂第一部电影

在線客服
首頁 > 技術文章 >
技術文章
技術文章

USB接口的高速數據采集卡的設計與實現

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

現代工業(yè)生產和科學研究對數據采集的要求日益提高,在瞬態(tài)信號測量,、圖像處理等一些高速,、高精度的測量中,需要進行高速數據采集。現在通用的高速數據采集卡一般多是PCI卡或ISA卡,,存在以下缺點:安裝麻煩,;價格昂貴;受計算機插槽數量,、地址,、中斷資源限制,可擴展性差,;在一些電磁干擾性強的測試現場,,無法專門對其做電磁屏蔽,導致采集的數據失真,。

通用串行總線USB是1995年康柏,、微軟、IBM,、DEC等公司為解決傳統(tǒng)總線不足而推廣的一種新型的通信標準,。該總線接口具有安裝方便,、高帶寬,、易于擴展等優(yōu)點,已逐漸成為現代數據傳輸的發(fā)展趨勢,?;赨SB的高速數據采集卡充分利用USB總線的上述優(yōu)點,有效解決了傳統(tǒng)高速數據采集卡的缺陷,。

1 USB數據采集卡原理

1.1 USB簡介

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

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

1.2 系統(tǒng)原理圖

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


  4 通道12位.USB2.0高速數據采集卡                  2 通道12位.USB2.0高速數據采集卡 

  2 通道8位.USB2.0高速數據采集卡                   4  通道8位.USB2.0高速數據采集卡


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

2 USB數據采集卡硬件

2.1 TUSB3210芯片
         TUSB3210是TI公司推出的內嵌8052內核并帶有USB接口的微控制器芯片,。TUSB3210有256字節(jié)的內部RAM,,8K字節(jié)的程序RAM,512字節(jié)的USB數據緩沖和端點描述塊EDB(Endpoint Desc-riptor Blocks),,4個通用的GPIO端口P0,、P1、P2,、P3,,I2C接口電路,看門狗電路等,。
        TUSB3210的USB接口符合USB1.1協議,,有4個輸入端點(Input Endpoint)和4個輸出端點(Output End-Point),支持全速和低速傳輸速率,,并具有USB協議所規(guī)定的4種傳輸方式,。TUSB3210的USB接口采用串行接口引擎(SIE)編碼和解碼串行數據,并且進行校驗,、位填充,,執(zhí)行USB所需要的其他信號。這樣采用硬件完成USB協議,,簡化了固件代碼的編制,。
TUSB3210采用基于內部RAM的解決方案,允許通過I2C總線從串行EEPROM中讀入固件或從主機中下載固件程序,。這項功能便于設備的開發(fā)與在線升級,。
2.2 A/D芯片MAX1449
       MAX1449是MAXIM公司生產的10位、105MSPS,、單3.3V電源,、低功耗的高速A/D芯片。它采用差分輸入,,帶有高寬帶采樣/保持(T/H)的10階段流水線(pipeline)型結構的ADC,,如圖2,。采樣信號每半個時鐘周期通過一個流水線段,完成連續(xù)轉換到數據輸出共需5.5個時鐘周期,。每個流水線首先通過一個1.5位的閃速ADC對輸入電壓量化,,由DAC產生一個對應于量化結果的電壓并與輸入電壓作差,輸出電壓放大2倍后送到下一級流水線處理,。每級流水線提供1位的分辨率,,并進行差錯校正,得到良好的線性和低失調,。  
  
    MAX1449提供一個2.048V的精確帶隙基準源,,用來設定ADC滿量程范圍,也可以用外部基準源改變量程范圍,。MAX1449的最大差分輸入電壓范圍為2V,。

2.3 輸入信號處理電路
        MAX1449芯片的輸入信號為差分輸入時有最佳的采樣效果。在本系統(tǒng)中用TI的HTS4503作為單端輸入到差分輸出的轉換電路,。THS4503高性能的全差分運放,,帶寬可達270MHz,具有非常好的線性,,在100MHz下可支持11位的A/D轉換要求,,適合作為A/D變換的前端接口電路。具體電路見圖3所示,。
2.4 FIFO和時鐘發(fā)生電路
        高速A/D變換的數據不能直接通過USB送入主機,,系統(tǒng)中通過FIFO來緩沖數據,。本系統(tǒng)采用TI公司SN74V293芯片,。它的容量為65536×18或131072×9,最快讀寫周期為6ns,,可以滿足100MHz采樣數據的存儲,。用戶可以選擇輸入、輸出寬度,,當選擇輸入,、輸出寬度為18時,可存儲64K×10位的數據,。如果選擇輸入,、輸出為9位,則可使存儲容量擴大到128×9位,,這樣對精度要求不高的用戶可以獲得更多數據,。
SN74V293有獨立的讀寫時鐘控制電路,允許讀寫操作同時進行,。SN74V293內部有滿,、空、半滿輸出信號以及可編程設定的幾乎滿和幾乎空輸出信號,通過這些信號控制器可以靈活控制FIFO的讀寫操作,。
對于高速數據采集系統(tǒng),,時鐘信號很重要。在本系統(tǒng)中選用DALLAS公司的DS1073時鐘芯片,。DS1073是無需外部元件的頻率振蕩器,。通過DALLAS獨有的1-wire技術,可以設定內部的分頻器數值,,實現輸出頻率從27.3kHz~100MHz可調,,從而方便地改變采樣時鐘,簡化電路設計,。MAX1449數據輸出時下降沿有效,,而FIFO寫入時上升沿鎖存數據。系統(tǒng)中采用DS90LC028A實現對時鐘信號的取反,。
   
    2.5 PCB板制作
       由于是高速A/D采集,,在制作PCB板時有一些需要注意的地方。電路板最好使用多層板,,元件盡量選用表面封裝器件,。這樣可以減小元器件之間的距離,減小寄生電感,、寄生電容,,同時減小電路板的尺寸。所有的旁路電容都要盡量靠近芯片的電源管腳,。模擬公共地和數字公共地要分開,,選一點通過低值表貼電阻(1~5Ω)、磁珠或直接連接,,以免數字地電流干擾模擬地,。電源最好用線性穩(wěn)壓電源,A/D和前端處理電路要用同一電源地輸出,,減小電源波動對采集的影響,。

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

3.1 USB接口編程
      固件程序主要是實現USB通信,。TUSB3210采用SIE來管理USB通信,。當主機與芯片進行USB通信時,會產生外部中斷0,,通過中斷矢量寄存器判斷,。Setup_packed_Int、Input_endpoint0_Int,、Output_endpoint0_Int這三個中斷主要用于與主機建立連接,、進行控制傳輸或中斷傳輸;Input_endpoint1_Int,、Output_endpoint1_Int這兩個中斷主要在批量傳輸時使用,。在固件中分別執(zhí)行不同的中斷程序來實現USB的數據傳輸。
Void EX0_int(void) interrupt 0 //外部中斷0
{
EA=DISABLE; //關中斷
switch (bBECINT)(//確定中斷ID
case VECINT_OUTPUT_ENDPOINT0:
bVECFINT=0x00;
Ep0QutputInterruptHandler(),;
break;
case VECINT_INPUT_ENDPOINT0:
bBECINT=0x00;
Ep0InputInterruptHandler(),;
break;
case VECINT_OUTPUT_ENDPOINT1:
bVECINT=0x00;
Ep 1 OutputInterruptHandler();
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 主機軟件設計
      筆者首先開發(fā)TUSB3210在主機中的驅動程序,。用WinDK3.0開發(fā)了Win2000下的驅動程序,,實現了控制傳輸、中斷傳輸和批傳輸的標準接口函數,。
      在應用程序開發(fā)中,,可用VC++編制應用程序??梢园裊SB設備當成文件來操作,,利用CreateFile得到USB句柄,用DeviceIoControl來進行控制傳輸,,用ReadFile,、WriteFile進行批量傳輸。程序實例如下:
HANDLE m_hUsbSample,; //USB句柄
m_hUsbSample=CreateFile(\\.\USBSampl0,,GENERIC_READ|
GENERIC_WRITE,,FILE_SHARE_READ|FILE_SHARE_WRITE,,NULI,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,&lgngth,NULL); //批量輸入傳輸
CloseHandle(m_hUsbSample); //關閉USB句柄
使用上述函數編制USB高速數據采集卡的主機軟件,。
通過以上設計實現了基于USB數據采集卡的基本功能,。但還有一些如信號的觸發(fā)、事件的捕獲功能還需完善,;需開發(fā)基于USB2.0的系統(tǒng),,進一步提高數據傳輸的速率,。

北京迪陽世紀科技有限責任公司 版權所有 ? 2008 - 2018 著作權聲明
010-62156134 62169728 13301007825 節(jié)假日:13901042484 微信號:sun62169728
地址:北京市西城阜外百萬莊扣鐘北里7號公寓
E_mail:[email protected] 傳真: 010-68328400
京ICP備17023194號-1 公備110108007750