版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
具有USB2.0接口的高速數(shù)據(jù)采集卡設(shè)計引言數(shù)據(jù)采集在現(xiàn)代工業(yè)生產(chǎn)及科學(xué)研究中的重要地位日益突出,并且實時高速數(shù)據(jù)采集的要求也不斷提高。在信號測量、圖像處理、音頻信號處理等一些高速、高精度的測量中,都需要進行高速數(shù)據(jù)采集?,F(xiàn)在通用的高速數(shù)據(jù)采集卡一般多是PCI卡或ISA卡,這些采集卡存在很多缺點,比如安裝麻煩,價格昂貴,尤其是受計算機插槽數(shù)量、地址、中斷資源的限制,可擴展性差。
通用串行總線USB是用來連接外圍設(shè)備與計算機之間的新式標準接口總線。它是一種快速、雙向、同步傳輸、廉價的并可以實現(xiàn)熱拔插的串行接口。USB技術(shù)是為實現(xiàn)計算機和通信集成而提出的一種用于擴充PC體系結(jié)構(gòu)的工業(yè)標準?;赨SB接口的高速數(shù)據(jù)采集卡,充分利用了USB總線的優(yōu)點,它也必將被越來越多的用戶所接受。系統(tǒng)框圖BOOLTD_Resume(void)//設(shè)備重啟后調(diào)用FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);FPGA芯片EP1C6-Q240EP6CFG=0xAA;//端點6:輸出、批量傳輸、最大包字節(jié)為1024、雙緩沖通過固件程序的調(diào)度,主機才能得到設(shè)備的描述符以及完成端點數(shù)據(jù)的傳輸。BOOLTD_Suspend(void)//該函數(shù)在設(shè)備進行掛起狀態(tài)前調(diào)用return(TRUE);③中斷處理,包括處理各種中斷的程序代碼。對于本文的應(yīng)用,需要完成HDB3碼到NRZ碼的轉(zhuǎn)換及數(shù)據(jù)的串并轉(zhuǎn)換等。它是采用差分輸入,帶有寬帶跟蹤/保持(track-and-hold)的雙通道9級流水線型結(jié)構(gòu)的ADCs,如圖3所示。在該模式下,外部邏輯或外部處理器直接連接到FX2的端點FIFO,GPIF沒有被激活,因為外部邏輯可以直接控制FIFO,所以FIFO的基本控制信號(標志、片選、使能)由FX2的引腳引出。主機軟件部分包括USB客戶驅(qū)動程序主和機應(yīng)用程序。加之該軟件需要一個圖形用戶界面來控制所用的函數(shù),這里采用VC++來編制應(yīng)用程序,利用CreateFile得到USB句柄,用DeviceIoControl來向設(shè)備驅(qū)動程序發(fā)送請求,完成在EZ-USBFX2中的數(shù)據(jù)批傳輸?shù)淖x取與寫入。BOOLTD_Suspend(void)//該函數(shù)在設(shè)備進行掛起狀態(tài)前調(diào)用{CPUCS=0x10;如圖1所示,在USB控制器與外圍電路之間需要一個FIFO,來充當數(shù)據(jù)的緩存區(qū)。系統(tǒng)框圖USB系統(tǒng)是一個主從系統(tǒng),而非對等(peer-to-peer)系統(tǒng)。在主從系統(tǒng)中,命令是由主設(shè)備發(fā)出,而從設(shè)備只能接收命令,只有在主設(shè)備讀取數(shù)據(jù)時,從設(shè)備才能提交數(shù)據(jù)。如圖1所示,在USB控制器與外圍電路之間需要一個FIFO,來充當數(shù)據(jù)的緩存區(qū)。那么,在USB從設(shè)備向主設(shè)備發(fā)送數(shù)據(jù)時存在一個問題:FIFO多大才能滿足要求。為了滿足數(shù)據(jù)采集中高速實時流數(shù)據(jù)垢應(yīng)用,避免FIFO溢出,在我們的系統(tǒng)中,通過FPGA及SDRAM構(gòu)造一個容量的FIFO(圖1虛線框內(nèi)所示),可以提供一個低成本并能滿足高速實時流數(shù)據(jù)傳輸?shù)慕鉀Q方案。USB系統(tǒng)是一個主從系統(tǒng),而非對等(peer-to-peer)系統(tǒng)。③中斷處理,包括處理各種中斷的程序代碼。return(TRUE);USB數(shù)據(jù)采集卡硬件在數(shù)據(jù)輸出時固定為10,選擇的是端點6。FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);對于固件代碼的使用,主機通過軟件下載的方法實現(xiàn)。0協(xié)議的微控制器之一,它集成了符合USB2.DeviceIoControl(DeviceHandle,IOCTL_EZUSB_BULK_READ,DWORDnOutBufferSize,//輸出緩存大小在數(shù)據(jù)輸入時固定為00,選擇的是端點2;EP6CFG=0xAA;//端點6:輸出、批量傳輸、最大包字節(jié)為1024、雙緩沖return(TRUE);USB數(shù)據(jù)采集卡硬件1.EZ-USBFX2(CY7C68013)芯片Cypress公司的EZ-USBFX2系列芯片是最早符合USB2.0協(xié)議的微控制器之一,它集成了符合USB2.0協(xié)議的收發(fā)器(transceiver),串行接口引擎(SIE),增強型的8051內(nèi)核以及可編程的外圍接口。FX2系列芯片獨特的結(jié)構(gòu)使得數(shù)據(jù)傳輸速度最高可達56Mbps,最大限度地滿足了USB2.0的帶寬。EZ-USBFX2的微處理器是一個增強型的8051內(nèi)核,性能可達標準8051的5~10倍,并與標準8051的指令完全兼容。增強型的8051內(nèi)核使用RAM世馘作程序指令和數(shù)據(jù)存儲器,從而使得EZ-USBFX2具有“軟”特性,也就是說,可以通過自行編寫程序指令來實現(xiàn)所需的功能。EZ-USBFZ2使用增強型SIE/USB接口(稱為USB核),通過執(zhí)行USB部本身的協(xié)議來簡化8051代碼編寫的工作。這樣采用硬件完成USB塄,簡化了固件代碼的編制。對于固件代碼的使用,主機通過軟件下載的方法實現(xiàn)。這種方法充分利用FZ2內(nèi)部的8KBRAM來裝載8051代碼和數(shù)據(jù)。由于EZ-USBFZ2具有重新枚舉的能力,所以在初始化枚舉時,用戶并不需要斷天設(shè)備就可以裝載新的描述符。設(shè)備描述符和8051程序代碼都能通過主機中的磁盤文件下載,只有制造商號、產(chǎn)品號和設(shè)備號從啟動時從一個16字節(jié)的EEPROM下載到硬件中的。通過這種方式,可以比較容易地從主機升級軟件和修改USB總線設(shè)備的固件代碼。EZ-USBFX2的通用可編程接口GPIF以及Master/Slave端點FIFO所對應(yīng)的8/16位數(shù)據(jù)總線,可以很容易地實現(xiàn)FX2與當前一些主流通過接口(如ATA、UTOPIA、EPP、PCMCIA和大部分DSP處理器)的互連。它共有7個端點,端點0,端點1和IN和OUT,還有端點2、4、6和8。其中,前3個端點的大小是固定的64字節(jié),后4個端點默認大小是2級512字節(jié)的FIFO,端點2和端點4默認是OUT端點,端點6和端點8默認是IN端點,而端點2和6分別可以定義為2級、3級或4級的存儲器,每級的大小也可以是512字節(jié)或1024字節(jié)。從EZ-USBFX2方向來看,一個端點相當于通過總線收發(fā)數(shù)據(jù)的緩沖區(qū),EZ-USBFX2從OUT緩沖區(qū)中讀取端點數(shù)據(jù),將通過USB傳的端點數(shù)據(jù)寫入IN緩沖區(qū)。它求全責備速(12Mbps)和高速(480Mbps)傳輸速率,并具有USB協(xié)議所規(guī)定的4種傳輸方式,即控制方式(controlmode)、中斷傳輸方式(interruptmode)、批量傳輸方式(bulkmode)和等時傳輸方式(isochronousmode)。EZ-USBFX2系列是基于RAM的“軟”結(jié)構(gòu),在開發(fā)過程中允許無限制設(shè)置和升級;它支持全速USB總線吞吐量的傳輸,使用EZ-USBFX2進行設(shè)計,可以不受端點數(shù)、緩沖區(qū)大小和傳輸速度的限制;此外,其內(nèi)核中做了大量的輔助指令,簡化了編碼,同時也加快了對USB特性的了解?;谝陨螮Z-USBFX2系列芯片的特性,在開發(fā)的過程中,采用了EZ-USBFX2系列中的CY7C68013芯片(128引腳),其簡化結(jié)構(gòu)如圖2所示。
FX2可配置成三種不同的接口模式Ports、GPIFMaster和SlaveFIFO,本項目采用SlaveFIFO模式。在該模式下,外部邏輯或外部處理器直接連接到FX2的端點FIFO,GPIF沒有被激活,因為外部邏輯可以直接控制FIFO,所以FIFO的基本控制信號(標志、片選、使能)由FX2的引腳引出。外部控制可以是同步或異步,可以使用內(nèi)部時鐘,也可以向FX2的接口提供外部時鐘。2.FPGA芯片EP1C6-Q240在本設(shè)計中,所用的FPGA采用Altera公司最新的CYCLONE芯片EP1C6-Q240。它是一款高速價比的FPCA芯片,工作電壓為1.5V,采用0.13μm工藝技術(shù),全銅SRAM工藝,其存儲器密度可達5980個邏輯單元,包含20個128×36位的RAM塊,總的RAM空間達到92160位,內(nèi)嵌了2個鎖相環(huán)電路和一個用于連接SDRAM的特定雙數(shù)據(jù)率(deficateddatarate)接口。此外,該芯片還支持多種不同的I/O標準(包括PCI接口,可連接ASSP和ASIC設(shè)備的接口以及串行設(shè)備接口等)。這里FPGA的作用除了與SDRAM構(gòu)成一個大容量的FIFO以外,還需要完成一些控制功能。對于本文的應(yīng)用,需要完成HDB3碼到NRZ碼的轉(zhuǎn)換及數(shù)據(jù)的串并轉(zhuǎn)換等。具體問題要具體分析,用戶可根據(jù)自己的需求對FPGA進行編程。3.A/D轉(zhuǎn)換芯片MAX1180
MAX1180是Maxim公司的雙通道105Msps、3.3V工作電壓、低功耗的高速A/D芯片,采樣數(shù)據(jù)10位電平量化。它是采用差分輸入,帶有寬帶跟蹤/保持(track-and-hold)的雙通道9級流水線型結(jié)構(gòu)的ADCs,如圖3所示。實際的芯片包括兩個圖示的電路,作為輸入的兩路通道,互不干擾。各路采樣信號每半個時鐘周期通過一個STAGE,完成連續(xù)轉(zhuǎn)換到數(shù)據(jù)輸出共需5個時鐘周期。每個流水線首先通過一個1.5位的快閃ADC對輸入電碼量化,然后再由DAC產(chǎn)生一個對應(yīng)于量化結(jié)果的電壓并與輸入電壓作差,輸出電壓放大2倍后送到下一級流水線處理。A/D-D/A兩次變化以及差分處理的目的在于進行差錯校正,以保證在流水線上的各個階段,ADC的偏移量得到補償并且無代碼丟失。硬件連接根據(jù)系統(tǒng)對數(shù)據(jù)傳輸?shù)乃俣群蛯崟r性的要求,配置CY7C68013工作的接口模式為SlaveFIFO模式。當進行數(shù)據(jù)采集時,硬件連接方式如圖4所示。
A/D轉(zhuǎn)換器的采樣時鐘同時作為CY7C68013的SlaveFIFO模式的讀寫控制時鐘,即CY7C68013的接口時鐘連接到IFCLK引腳。SCWR/SLRD是CY7C68013SlaveFIFO的寫使能/讀允許信號。FPGA向C7C68013SlaveFIFO提供SlaveFIFO輸出允許信號SLOE,僅在數(shù)據(jù)輸出時有效。FD[15:0]為16位雙向數(shù)據(jù)總線。FIFOADR[1:0]為端點FIFO選擇信號。在數(shù)據(jù)輸入時固定為00,選擇的是端點2;在數(shù)據(jù)輸出時固定為10,選擇的是端點6。USB數(shù)據(jù)采集卡軟件軟件設(shè)計是一個USB設(shè)備開發(fā)的必備環(huán)節(jié)。USB應(yīng)用系統(tǒng)軟件設(shè)計分為三部分:初始化軟件、主機操作系統(tǒng)上的客戶驅(qū)動程序以及主機應(yīng)用程序。初始化軟件是下載到控制器中的固件代碼,它響應(yīng)各種來自系統(tǒng)的USB標準請求(包括USB設(shè)備的枚舉、驅(qū)動程序的選擇加載等),完成連接設(shè)備和主機的任務(wù)。主機應(yīng)用軟件通過客戶驅(qū)動程序與系統(tǒng)USBI(USBDeviceInterface)進行通信,其主要任務(wù)是將采集進來的數(shù)據(jù)流,根據(jù)所需處理功能的要求來完成各種基于Windows程序的處理。HANDLEDeviceHandle;Cypress公司的EZ-USBFX2系列芯片是最早符合USB2.A/D轉(zhuǎn)換器的采樣時鐘同時作為CY7C68013的SlaveFIFO模式的讀寫控制時鐘,即CY7C68013的接口時鐘連接到IFCLK引腳。DeviceIoControl(DeviceHandle,IOCTL_EZUSB_BULK_READ,它支持全速USB總線吞吐量的傳輸,使用EZ-USBFX2進行設(shè)計,可以不受端點數(shù)、緩沖區(qū)大小和傳輸速度的限制;Cypress公司的EZ-USBFX2系列芯片是最早符合USB2.\ezusb0,GENERIC_WRITE,LPDWORDlpBytesReturned,//接收輸出數(shù)據(jù)字節(jié)計數(shù)器變量的指針它求全責備速(12Mbps)和高速(480Mbps)傳輸速率,并具有USB協(xié)議所規(guī)定的4種傳輸方式,即控制方式(controlmode)、中斷傳輸方式(interruptmode)、批量傳輸方式(bulkmode)和等時傳輸方式(isochronousmode)。return(TRUE);通過這種方式,可以比較容易地從主機升級軟件和修改USB總線設(shè)備的固件代碼。1.EZ-USBFX2的初始化
通過固件程序的調(diào)度,主機才能得到設(shè)備的描述符以及完成端點數(shù)據(jù)的傳輸。對于固件程序的編程,其基本結(jié)構(gòu)如下:①初始化,包括處理器和外圍電路的初始化;②主函數(shù),包括完成符合設(shè)備特定要求的代碼;③中斷處理,包括處理各種中斷的程序代碼。
總的來說,固件程序的編寫有兩種方式。其一,對于熟悉8051匯編語言的用戶來說,可以直接利用匯編語言編寫結(jié)構(gòu)緊湊、高效率的固件代碼;其二,EZ-USB以利用現(xiàn)成的固件程序框架函數(shù),根據(jù)設(shè)備的需求添加相慶的用戶,來完成特定的目的。為了加快USB接口的開發(fā)過程,利用EZ-USBFX2提供的一些框架函數(shù)來簡化用戶代碼,使用相應(yīng)端口(端口2輸入,端口6輸出)利用EZ-USBFX2的SlaveFIFO結(jié)構(gòu)采用此處理傳輸,基本的固件程序框架函數(shù)如下:voidTD_Init(void)//該函數(shù)用來完成EZ-USBFX2的初始化{CPUCS=0x10;//工作頻率48MHzIFCONFIG=0xC3;//決定FX2的工作模式(slaveFIFO)及相關(guān)設(shè)置IN07VAL=bmEP2;OUT07VAL=bmEP6;//使能端點2輸入和端點6輸出…EP2FIFOCFG=0x6D;//AUTOOUT=0,AUTOIN=1,WORDWIDE=1SYNCODELAY;EP6FIFOCFG=0x75;//AUTOOUT=1,AUTOIN=0,WORDWIDE=1SYNCDELAY;//對端點2和端點6的配置,WORDWIDE=1配置的是使用16位數(shù)據(jù)線。EP2CFG=0xEA;//端點2:輸入、批量傳輸、最大包字節(jié)為1024,雙緩沖SYNCDELAY;EP6CFG=0xAA;//端點6:輸出、批量傳輸、最大包字節(jié)為1024、雙緩沖SYNCDELAY;}voidTD_Poll(void)//此函數(shù)在設(shè)備運行時反復(fù)被調(diào)用,它包括完成用戶任務(wù)的函數(shù){}BOOLTD_Suspend(void)//該函數(shù)在設(shè)備進行掛起狀態(tài)前調(diào)用{return(TRUE);}BOOLTD_Resume(void)//設(shè)備重啟后調(diào)用{return(TRUE);}在整個固件程序中,EZ-USBFX2設(shè)備上電或復(fù)位后,首先對所有的內(nèi)部狀態(tài)變量初始化,隨后調(diào)用TD_Init()函數(shù),并開中斷,此時固件程序不斷檢測控制端口0是否收到SETUP包。一旦收到,固件程序就開始調(diào)用用戶函數(shù)TD_Poll(),其中用戶需要完成的功能代碼就在TD_Poll()函數(shù)一。調(diào)用完成后,重復(fù)檢測端口0是否收到SETUP包,若有,繼續(xù)執(zhí)行設(shè)備請求,調(diào)用TD_Poll()函數(shù);否則,檢測USB核是否有USB掛起事件,若有,調(diào)用TD_Suspend()函數(shù),其返為真時,檢測USB核是否有重新開始事件,沒有時,設(shè)備進入掛起狀態(tài),反之,調(diào)用TD_Resume(),進行下一次循環(huán);當TD_Suspend()函數(shù)返回為假時,直接轉(zhuǎn)入下次循環(huán)。
此外,固件程序框架中還定義了許多中斷處理函數(shù),當用到時可以在相應(yīng)的九加入自己編寫的代碼,這樣既清晰又便于理解,用戶就可以在不用改變整個程序的前提下,僅僅通過改變相應(yīng)的模塊,來實現(xiàn)自己的功能。2.主機軟件部分
主機軟件部分包括USB客戶驅(qū)動程序主和機應(yīng)用程序。USB客戶驅(qū)程序是支持即插即用功能的標準WDM驅(qū)動程序,它為實現(xiàn)控制傳輸、中斷傳輸和批傳輸提供了標準接口函數(shù)。而主機應(yīng)用程序的作用在于與操作系統(tǒng)相互作用,當操作系統(tǒng)認為有新設(shè)備接入時,就會自動調(diào)用相應(yīng)的設(shè)備驅(qū)支以。加之該軟件需要一個圖形用戶界面來控制所用的函數(shù),這里采用VC++來編制應(yīng)用程序,利用CreateFile得到USB句柄,用DeviceIoControl來向設(shè)備驅(qū)動程序發(fā)送請求,完成在EZ-USBFX2中的數(shù)據(jù)批傳輸?shù)淖x取與寫入。程序?qū)嵗缦拢篐ANDLEDeviceHandle;DeviceHandle=CreateFile(\\.\ezu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 展會宣傳推廣合同(2篇)
- 小賣鋪租賃合同(2篇)
- 2025年度建筑密封硅酮膠招標采購合同3篇
- 二零二五年度智慧城市物聯(lián)網(wǎng)設(shè)備采購合同2篇
- 二零二五版果園果樹種植技術(shù)指導(dǎo)與承包合同3篇
- 2024版短期貸款合同范例3篇
- 二零二五年度消防工程監(jiān)理合同2篇
- 二零二五年度建筑工程項目招投標與合同履約擔保服務(wù)合同3篇
- 二零二五版股權(quán)代持糾紛調(diào)解與風險防范合同5篇
- 二零二五年度不動產(chǎn)權(quán)屬轉(zhuǎn)移擔保合同3篇
- 2025年度影視制作公司兼職制片人聘用合同3篇
- 兒童糖尿病的飲食
- 2025屆高考語文復(fù)習(xí):散文的結(jié)構(gòu)與行文思路 課件
- 干細胞項目商業(yè)計劃書
- 浙江省嘉興市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末試題含解析
- 2024年高考新課標Ⅱ卷語文試題講評課件
- 回收二手機免責協(xié)議書模板
- 2023年系統(tǒng)性硬化病診斷及診療指南
- 外科醫(yī)師手術(shù)技能評分標準
- 《英語教師職業(yè)技能訓(xùn)練簡明教程》全冊配套優(yōu)質(zhì)教學(xué)課件
- 采購控制程序
評論
0/150
提交評論