<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現在位置:范文先生網>理工論文>電子通信論文>具有USB2.0接口的高速數據采集卡設計

      具有USB2.0接口的高速數據采集卡設計

      時間:2023-02-20 22:51:20 電子通信論文 我要投稿
      • 相關推薦

      具有USB2.0接口的高速數據采集卡設計

      摘要:討論基于USB接口的高速數據采集卡的設計與實現。詳細講述數據采集卡的硬件部分設計,并簡要介紹固件程序、驅動程序和應用軟件的設計。
        關鍵詞:USB2.0FPFOFPGA固件程序主從系統
        
        引言
        
        數據采集在現代工業生產及科學研究中的重要地位日益突出,并且實時高速數據采集的要求也不斷提高。在信號測量、圖像處理、音頻信號處理等一些高速、高精度的測量中,都需要進行高速數據采集,F在通用的高速數據采集卡一般多是PCI卡或ISA卡,這些采集卡存在很多缺點,比如安裝麻煩,價格昂貴,尤其是受計算機插槽數量、地址、中斷資源的限制,可擴展性差。
        
        通用串行總線USB是用來連接外圍設備與計算機之間的新式標準接口總線。它是一種快速、雙向、同步傳輸、廉價的并可以實現熱拔插的串行接口。USB技術是為實現計算機和通信集成而提出的一種用于擴充PC體系結構的工業標準;赨SB接口的高速數據采集卡,充分利用了USB總線的優點,它也必將被越來越多的用戶所接受。
        
        1USB數據采集卡原理
        
        1.1USB簡介
        
        USB是英文UniversalSerialBus的縮寫,中文含義是“通用串行總線”。它支持在主機與各式各樣即插即用的外設之間進行數據傳輸。它由主機預定傳輸數據的標準協議,在總線上的各種設備分享USB總線帶寬。當總線上的外設和主機在運行時,允許自由添加、設置、使用以及拆除一個或多個外設。USB總線技術的提出就是想利用單一的總線技術,來滿足多種應用領域的需要。USB1.1協議支持兩種傳輸速度,即低速1.5Mbps和高速12Mbps。為了在高速接口之爭中占有一席之地,2000年發布了USB2.0協議,它向下兼容USB1.1協議,數據的最高傳輸速率提高到480Mbps,這就使USB對打印機和其它需要快速傳遞大容量數據的外設更具吸引力。
        
        為了滿足實際數據采集USB傳輸速度較高的需要,選擇了Cypress公司的內置USB接口微控制器芯片EZUSBFX2系列,開發了具有USB接口的高速數據采集卡。
        
        1.2系統框圖
        
        USB系統是一個主從系統,而非對等(peer-to-peer)系統。在主從系統中,命令是由主設備發出,而從設備只能接收命令,只有在主設備讀取數據時,從設備才能提交數據。如圖1所示,在USB控制器與外圍電路之間需要一個FIFO,來充當數據的緩存區。那么,在USB從設備向主設備發送數據時存在一個問題:FIFO多大才能滿足要求。為了滿足數據采集中高速實時流數據垢應用,避免FIFO溢出,在我們的系統中,通過FPGA及SDRAM構造一個容量的FIFO(圖1虛線框內所示),可以提供一個低成本并能滿足高速實時流數據傳輸的解決方案。
        
        圖2
        
        2USB數據采集卡硬件
        
        2.1EZ-USBFX2(CY7C68013)芯片
        
        Cypress公司的EZ-USBFX2系列芯片是最早符合USB2.0協議的微控制器之一,它集成了符合USB2.0協議的收發器(transceiver),串行接口引擎(SIE),增強型的8051內核以及可編程的外圍接口。FX2系列芯片獨特的結構使得數據傳輸速度最高可達56Mbps,最大限度地滿足了USB2.0的帶寬。
        
        EZ-USBFX2的微處理器是一個增強型的8051內核,性能可達標準8051的5~10倍,并與標準8051的指令完全兼容。增強型的8051內核使用RAM世馘作程序指令和數據存儲器,從而使得EZ-USBFX2具有“軟”特性,也就是說,可以通過自行編寫程序指令來實現所需的功能。EZ-USBFZ2使用增強型SIE/USB接口(稱為USB核),通過執行USB部本身的協議來簡化8051代碼編寫的工作。這樣采用硬件完成USB塄,簡化了固件代碼的編制。對于固件代碼的使用,主機通過軟件下載的方法實現。這種方法充分利用FZ2內部的8KBRAM來裝載8051代碼和數據。由于EZ-USBFZ2具有重新枚舉的能力,所以在初始化枚舉時,用戶并不需要斷天設備就可以裝載新的描述符。設備描述符和8051程序代碼都能通過主機中的磁盤文件下載,只有制造商號、產品號和設備號從啟動時從一個16字節的EEPROM下載到硬件中的。通過這種方式,可以比較容易地從主機升級軟件和修改USB總線設備的固件代碼。
        
        EZ-USBFX2的通用可編程接口GPIF以及Master/Slave端點FIFO所對應的8/16位數據總線,可以很容易地實現FX2與當前一些主流通過接口(如ATA、UTOPIA、EPP、PCMCIA和大部分DSP處理器)的互連。它共有7個端點,端點0,端點1和IN和OUT,還有端點2、4、6和8。其中,前3個端點的大小是固定的64字節,后4個端點默認大小是2級512字節的FIFO,端點2和端點4默認是OUT端點,端點6和端點8默認是IN端點,而端點2和6分別可以定義為2級、3級或4級的存儲器,每級的大小也可以是512字節或1024字節。從EZ-USBFX2方向來看,一個端點相當于通過總線收發數據的緩沖區,EZ-USBFX2從OUT緩沖區中讀取端點數據,將通過USB傳的端點數據寫入IN緩沖區。它求全責備速(12Mbps)和
        
        
        
        高速(480Mbps)傳輸速率,并具有USB協議所規定的4種傳輸方式,即控制方式(controlmode)、中斷傳輸方式(interruptmode)、批量傳輸方式(bulkmode)和等時傳輸方式(isochronousmode)。
        
        EZ-USBFX2系列是基于RAM的“軟”結構,在開發過程中允許無限制設置和升級;它支持全速USB總線吞吐量的傳輸,使用EZ-USBFX2進行設計,可以不受端點數、緩沖區大小和傳輸速度的限制;此外,其內核中做了大量的輔助指令,簡化了編碼,同時也加快了對USB特性的了解;谝陨螮Z-USBFX2系列芯片的特性,在開發的過程中,采用了EZ-USBFX2系列中的CY7C68013芯片(128引腳),其簡化結構如圖2所示。
        
        FX2可配置成三種不同的接口模式Ports、GPIFMaster和SlaveFIFO,本項目采用SlaveFIFO模式。在該模式下,外部邏輯或外部處理器直接連接到FX2的端點FIFO,GPIF沒有被激活,因為外部邏輯可以直接控制FIFO,所以FIFO的基本控制信號(標志、片選、使能)由FX2的引腳引出。外部控制可以是同步或異步,可以使用內部時鐘,也可以向FX2的接口提供外部時鐘。
        
        2.2FPGA芯片EP1C6-Q240
        
        在本設計中,所用的FPGA采用Altera公司最新的CYCLONE芯片EP1C6-Q240。它是一款高速價比的FPCA芯片,工作電壓為1.5V,采用0.13μm工藝技術,全銅SRAM工藝,其存儲器密度可達5980個邏輯單元,包含20個128×36位的RAM塊,總的RAM空間達到92160位,內嵌了2個鎖相環電路和一個用于連接SDRAM的特定雙數據率(deficateddatarate)接口。此外,該芯片還支持多種不同的I/O標準(包括PCI接口,可連接ASSP和ASIC設備的接口以及串行設備接口等)。
        
        這里FPGA的作用除了與SDRAM構成一個大容量的FIFO以外,還需要完成一些控制功能。對于本文的應用,需要完成HDB3碼到NRZ碼的轉換及數據的串并轉換等。具體問題要具體分析,用戶可根據自己的需求對FPGA進行編程。
        
        2.3A/D轉換芯片MAX1180
        
        MAX1180是Maxim公司的雙通道105Msps、3.3V工作電壓、低功耗的高速A/D芯片,采樣數據10位電平量化。它是采用差分輸入,帶有寬帶跟蹤/保持(track-and-hold)的雙通道9級流水線型結構的ADCs,如圖3所示。實際的芯片包括兩個圖示的電路,作為輸入的兩路通道,互不干擾。各路采樣信號每半個時鐘周期通過一個STAGE,完成連續轉換到數據輸出共需5個時鐘周期。每個流水線首先通過一個1.5位的快閃ADC對輸入電碼量化,然后再由DAC產生一個對應于量化結果的電壓并與輸入電壓作差,輸出電壓放大2倍后送到下一級流水線處理。A/D-D/A兩次變化以及差分處理的目的在于進行差錯校正,以保證在流水線上的各個階段,ADC的偏移量得到補償并且無代碼丟失。
        
        2.4硬件連接
        
        根據系統對數據傳輸的速度和實時性的要求,配置CY7C68013工作的接口模式為SlaveFIFO模式。當進行數據采集時,硬件連接方式如圖4所示。
        
        A/D轉換器的采樣時鐘同時作為CY7C68013的SlaveFIFO模式的讀寫控制時鐘,即CY7C68013的接口時鐘連接到IFCLK引腳。SCWR/SLRD是CY7C68013SlaveFIFO的寫使能/讀允許信號。FPGA向C7C68013SlaveFIFO提供SlaveFIFO輸出允許信號SLOE,僅在數據輸出時有效。FD[15:0]為16位雙向數據總線。FIFOADR1:0》為端點FIFO選擇信號。在數據輸入時固定為00,選擇的是端點2;在數據輸出時固定為10,選擇的是端點6。
        
        3USB數據采集卡軟件
        
        軟件設計是一個USB設備開發的必備環節。USB應用系統軟件設計分為三部分:初始化軟件、主機操作系統上的客戶驅動程序以及主機應用程序。初始化軟件是下載到控制器中的固件代碼,它響應各種來自系統的USB標準請求(包括USB設備的枚舉、驅動程序的選擇加載等),完成連接設備和主機的任務。主機應用軟件通過客戶驅動程序與系統USBI(USBDeviceInterface)進行通信,其主要任務是將采集進來的數據流,根據所需處理功能的要求來完成各種基于Windows程序的處理。
        
        3.1EZ-USBFX2的初始化
        
        通過固件程序的調度,主機才能得到設備的描述符以及完成端點數據的傳輸。對于固件程序的編程,其基本結構如下:
        
       、俪跏蓟ㄌ幚砥骱屯鈬娐返某跏蓟;
        
       、谥骱瘮,包括完成符合設備特定要求的代碼;
        
       、壑袛嗵幚,包括處理各種中斷的程序代碼。
        
        總
        
        
        
        的來說,固件程序的編寫有兩種方式。其一,對于熟悉8051匯編語言的用戶來說,可以直接利用匯編語言編寫結構緊湊、高效率的固件代碼;其二,EZ-USB以利用現成的固件程序框架函數,根據設備的需求添加相慶的用戶,來完成特定的目的。
        
        為了加快USB接口的開發過程,利用EZ-USBFX2提供的一些框架函數來簡化用戶代碼,使用相應端口(端口2輸入,端口6輸出)利用EZ-USBFX2的SlaveFIFO結構采用此處理傳輸,基本的固件程序框架函數如下:
        
        voidTD_Init(void)//該函數用來完成EZ-USBFX2的初始化
        
        {CPUCS=0x10;//工作頻率48MHz
        
        IFCONFIG=0xC3;//決定FX2的工作模式(slaveFIFO)及相關設置
        
        IN07VAL=bmEP2;
        
        OUT07VAL=bmEP6;//使能端點2輸入和端點6輸出
        
        …
        
        EP2FIFOCFG=0x6D;//AUTOOUT=0,AUTOIN=1,WORDWIDE=1
        
        SYNCODELAY;
        
        EP6FIFOCFG=0x75;//AUTOOUT=1,AUTOIN=0,WORDWIDE=1
        
        SYNCDELAY;//對端點2和端點6的配置,WORDWIDE=1配置的是使用16位數據線。
        
        EP2CFG=0xEA;//端點2:輸入、批量傳輸、最大包字節為1024,雙緩沖
        
        SYNCDELAY;
        
        EP6CFG=0xAA;//端點6:輸出、批量傳輸、最大包字節為1024、雙緩沖
        
        SYNCDELAY;
        
        }
        
        voidTD_Poll(void)//此函數在設備運行時反復被調用,它包括完成用戶任務的函數
        
        {
        
        }
        
        BOOLTD_Suspend(void)//該函數在設備進行掛起狀態前調用
        
        {
        
        return(TRUE);
        
        }
        
        BOOLTD_Resume(void)//設備重啟后調用
        
        {
        
        return(TRUE);
        
        }
        
        在整個固件程序中,EZ-USBFX2設備上電或復位后,首先對所有的內部狀態變量初始化,隨后調用TD_Init()函數,并開中斷,此時固件程序不斷檢測控制端口0是否收到SETUP包。一旦收到,固件程序就開始調用用戶函數TD_Poll(),其中用戶需要完成的功能代碼就在TD_Poll()函數一。調用完成后,重復檢測端口0是否收到SETUP包,若有,繼續執行設備請求,調用TD_Poll()函數;否則,檢測USB核是否有USB掛起事件,若有,調用TD_Suspend()函數,其返為真時,檢測USB核是否有重新開始事件,沒有時,設備進入掛起狀態,反之,調用TD_Resume(),進行下一次循環;當TD_Suspend()函數返回為假時,直接轉入下次循環。
        
        此外,固件程序框架中還定義了許多中斷處理函數,當用到時可以在相應的九加入自己編寫的代碼,這樣既清晰又便于理解,用戶就可以在不用改變整個程序的前提下,僅僅通過改變相應的模塊,來實現自己的功能。
        
        3.2主機軟件部分
        
        主機軟件部分包括USB客戶驅動程序主和機應用程序。USB客戶驅程序是支持即插即用功能的標準WDM驅動程序,它為實現控制傳輸、中斷傳輸和批傳輸提供了標準接口函數。而主機應用程序的作用在于與操作系統相互作用,當操作系統認為有新設備接入時,就會自動調用相應的設備驅支以。加之該軟件需要一個圖形用戶界面來控制所用的函數,這里采用VC++來編制應用程序,利用CreateFile得到USB句柄,用DeviceIoControl來向設備驅動程序發送請求,完成在EZ-USBFX2中的數據批傳輸的讀取與寫入。程序實例如下:
        
        HANDLEDeviceHandle;
        
        DeviceHandle=CreateFile(\\.\ezusb0,GENERIC_WRITE,
        
        FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
        
        //得到設備ezusb0的句柄
        
        DeviceIoControl(DeviceHandle,
        
        IOCT
        
        
        
        L_EZUSB_BULK_WRITE,
        
        LPVOIDlpInBuffer,//;輸入數據存儲地址指針
        
        Sizeof(BULK_TRANSFER_CONTROL),
        
        LPVOIDlpOutBuffer,//輸出數據存儲地址指針
        
        DWORDnOutBufferSize,//輸出緩存大小
        
        LPDWORDlpBytesReturned,//接收輸出數據字節計數器變量的指針
        
        NULL);
        
        //寫數據到EZ-USBFX2設備
        
        DeviceIoControl(DeviceHandle,IOCTL_EZUSB_BULK_READ,
        
        LPVOIDlpInBuffer,//輸入數據存儲地址地
        
        Sizeof(BULK_TRANSFER_CONTROL),
        
        LPVOIDlpOutBuffer,//輸出數據存儲地址批晚霞
        
        DWORDnOutBufferSize,//輸出緩存大小
        
        LPDWORDlpBytesReturned,//接收輸出數據字節計數器變量的指針
        
        NULL);
        
        //從EZ-USBFX2設備中讀數據
        
        ColseHandle(DeviceHandle);//關閉USB句柄
        
        結語
        
        本項目的目的是將信號處理電路中輸出的信號(I、Q兩路),通過模數轉換,在滿足10Mbps傳輸速率的基礎上,通過USB接口完成數據寫入硬盤的工作。事實證明,基于USB2.0接口的高速數據采集卡完全滿足設計要求?梢灶A見,基于USB2.0接口的高速數據采集卡一定會有廣闊的應用空間。
        
        
        
        

      【具有USB2.0接口的高速數據采集卡設計】相關文章:

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

      USB2.0接口和DSP構成的高速數據采集系統08-06

      基于TLC5540的高速數據采集卡設計08-06

      基于USB2.0總線的高速數據采集系統設計08-06

      基于USB2.0的高速同步數據采集系統設計08-06

      基于USB2.0的同步高速數據采集器的設計08-06

      焊縫檢測系統中PCI總線高速數據采集卡的設計08-06

      基于TC534的數據采集卡設計08-06

      基于USB接口的數據采集系統設計08-06

      主站蜘蛛池模板: 人妻少妇88久久中文字幕| 国产AV福利第一精品| 日韩人妻av一区二区三区| 九九热精品视频在线免费| 日韩有码精品中文字幕| 亚洲精品久综合蜜| 国产精品成人自产拍在线| 亚洲乱码中文字幕小综合| 国内少妇偷人精品免费| 国产免费久久精品44| 国产黄色一级片在线观看| 亚洲国产天堂久久综合226114| 少妇又紧又色又爽又刺激视频| 精品一区二区三区国产馆| 性欧美VIDEOFREE高清大喷水| 青青草原国产AV福利网站| 香蕉乱码成人久久天堂爱| 亚洲国产精品成人av网| 成人自拍小视频在线观看| 国产精品亚洲二区在线播放| 日韩内射美女人妻一区二区三区 | 日本高清视频色欧WWW| 91国在线啪精品一区| 亚洲av永久一区二区| 亚洲中文字幕日韩精品| 农村熟女大胆露脸自拍| 精品国产女同疯狂摩擦2| 99久久精品国产一区色| 中文字幕久久国产精品| 亚洲欧美不卡高清在线| 亚洲爽爆av一区二区| av中文字幕国产精品| 日本成熟少妇喷浆视频| 久久精品夜夜夜夜夜久久| 人妻少妇精品中文字幕| 亚洲午夜性猛春交XXXX| 99久久精品一区二区国产| 99精品国产中文字幕| 无码一区二区三区久久精品| 精品午夜福利在线视在亚洲| 日韩中文字幕人妻一区|