采用通用串行總線USB技術的高速數(shù)據(jù)采集卡的設計方案
出處:維庫電子市場網(wǎng) 發(fā)布于:2023-03-25 15:35:47
在現(xiàn)代工業(yè)生產(chǎn)及科學研究中的重要地位日益突出,并且實時高速數(shù)據(jù)采集的要求也不斷提高。在信號、圖像處理、信號處理等一些高速、高精度的測量中,都需要進行高速數(shù)據(jù)采集?,F(xiàn)在通用的高速數(shù)據(jù)采集卡一般多是PCI卡或ISA卡,這些采集卡存在很多缺點,比如安裝麻煩,價格昂貴,尤其是受插槽數(shù)量、地址、中斷資源的限制,可擴展性差。
通用串行總線是用來連接外圍設備與計算機之間的新式標準總線。它是一種快速、雙向、同步傳輸、廉價的并可以實現(xiàn)熱拔插的串行接口。USB技術是為實現(xiàn)計算機和通信集成而提出的一種用于擴充PC體系結構的工業(yè)標準?;赨SB接口的高速數(shù)據(jù)采集卡,充分利用了USB總線的優(yōu)點,它也必將被越來越多的用戶所接受。
1、USB數(shù)據(jù)采集卡原理
1.1 USB簡介
USB是英文Univeal Serial Bus的縮寫,中文含義是“通用串行總線”。它支持在主機與各式各樣即插即用的外設之間進行數(shù)據(jù)傳輸。它由主機預定傳輸數(shù)據(jù)的標準協(xié)議,在總線上的各種設備分享USB總線帶寬。當總線上的外設和主機在運行時,允許自由添加、設置、使用以及拆除一個或多個外設。USB總線技術的提出就是想利用單一的總線技術,來滿足多種應用領域的需要。USB1.1協(xié)議支持兩種傳輸速度,即低速1.5Mbps和高速12Mbps。為了在高速接口之爭中占有一席之地,2000年發(fā)布了USB2.0協(xié)議,它向下兼容USB1.1協(xié)議,數(shù)據(jù)的傳輸速率提高到480Mbps,這就使USB對打印機和其它需要快速傳遞大容量數(shù)據(jù)的外設更具吸引力。
為了滿足實際數(shù)據(jù)采集USB傳輸速度較高的需要,選擇了公司的內(nèi)置USB接口微控制器芯片EZUSB FX2系列,開發(fā)了具有USB接口的高速數(shù)據(jù)采集卡。
1.2 系統(tǒng)框圖
USB系統(tǒng)是一個主從系統(tǒng),而非對等(peer-to-peer)系統(tǒng)。在主從系統(tǒng)中,命令是由主設備發(fā)出,而從設備只能接收命令,只有在主設備讀取數(shù)據(jù)時,從設備才能提交數(shù)據(jù)。如圖1所示,在USB控制器與外圍之間需要一個FO,來充當數(shù)據(jù)的緩存區(qū)。那么,在USB從設備向主設備發(fā)送數(shù)據(jù)時存在一個問題:FIFO多大才能滿足要求。為了滿足數(shù)據(jù)采集中高速實時流數(shù)據(jù)垢應用,避免FIFO溢出,在我們的系統(tǒng)中,通過及S構造一個容量的FIFO(圖1虛線框內(nèi)所示),可以提供一個低成本并能滿足高速實時流數(shù)據(jù)傳輸?shù)慕鉀Q方案。
2、USB數(shù)據(jù)采集卡硬件
2.1 EZ-USB FX2(CY7C68013)芯片
Cypress公司的EZ-USB FX2系列芯片是早符合USB2.0協(xié)議的微控制器之一,它集成了符合USB2.0協(xié)議的(transceiver),串行接口引擎(SIE),增強型的8051內(nèi)核以及可編程的外圍接口。FX2系列芯片獨特的結構使得數(shù)據(jù)傳輸速度可達56Mbps,限度地滿足了USB2.0的帶寬。
EZ-USB FX2的微處理器是一個增強型的8051內(nèi)核,性能可達標準8051的5~10倍,并與標準8051的指令完全兼容。增強型的8051內(nèi)核使用世馘 作程序指令和數(shù)據(jù),從而使得EZ-USB FX2具有“軟”特性,也就是說,可以通過自行編寫程序指令來實現(xiàn)所需的功能。EZ-USB FZ2使用增強型SIE/USB接口(稱為USB核),通過執(zhí)行USB部本身的協(xié)議來簡化8051代碼編寫的工作。這樣采用硬件完成USB塄,簡化了固件代碼的編制。對于固件代碼的使用,主機通過軟件的方法實現(xiàn)。這種方法充分利用FZ2內(nèi)部的8KB RAM來裝載8051代碼和數(shù)據(jù)。由于EZ-USB FZ2具有重新枚舉的能力,所以在初始化枚舉時,用戶并不需要斷天設備就可以裝載新的描述符。設備描述符和8051程序代碼都能通過主機中的磁盤文件,只有商號、產(chǎn)品號和設備號從啟動時從一個16字節(jié)的EEP到硬件中的。通過這種方式,可以比較容易地從主機升級軟件和修改USB總線設備的固件代碼。
EZ-USB FX2的通用可編程接口GF以及Masr/Slave端點FIFO所對應的8/16位數(shù)據(jù)總線,可以很容易地實現(xiàn)FX2與當前一些主流通過接口(如ATA、UTOPIA、EPP、PCMCIA和大部分處理器)的互連。它共有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-USB FX2方向來看,一個端點相當于通過總線收發(fā)數(shù)據(jù)的緩沖區(qū),EZ-USB FX2從OUT緩沖區(qū)中讀取端點數(shù)據(jù),將通過USB傳的端點數(shù)據(jù)寫入IN緩沖區(qū)。它求全責備速(12 Mbps)和高速(480 Mbps)傳輸速率,并具有USB協(xié)議所規(guī)定的4種傳輸方式,即控制方式(control mode)、中斷傳輸方式(interrupt mode)、批量傳輸方式(bulk mode)和等時傳輸方式(isochronous mode)。
EZ-USB FX2系列是基于RAM的“軟”結構,在開發(fā)過程中允許無限制設置和升級;它支持全速USB總線吞吐量的傳輸,使用EZ-USB FX2進行設計,可以不受端點數(shù)、緩沖區(qū)大小和傳輸速度的限制;此外,其內(nèi)核中做了大量的輔助指令,簡化了編碼,同時也加快了對USB特性的了解?;谝陨螮Z-USB FX2系列芯片的特性,在開發(fā)的過程中,采用了EZ-USB FX2系列中的CY7C68013芯片(128引腳),其簡化結構如圖2所示。
FX2可配置成三種不同的接口模式Ports、GPIF Master和Slave FIFO,本項目采用Slave FIFO模式。在該模式下,外部邏輯或外部處理器直接連接到FX2的端點FIFO,GPIF沒有被激活,因為外部邏輯可以直接控制FIFO,所以FIFO的基本控制信號(標志、片選、使能)由FX2的引腳引出。外部控制可以是同步或異步,可以使用內(nèi)部,也可以向FX2的接口提供外部時鐘。
2.2 FPGA芯片EP1C6-Q240
在本設計中,所用的FPGA采用公司的CYCLONE芯片EP1C6-Q240。它是一款高速價比的A芯片,工作電壓為1.5V,采用0.13μm工藝技術,全銅SRAM工藝,其存儲器密度可達5980個邏輯單元,包含20個128×36位的RAM塊,總的RAM空間達到92160位,內(nèi)嵌了2個相環(huán)電路和一個用于連接SDRAM的特定雙數(shù)據(jù)率(deficated data rate)接口。此外,該芯片還支持多種不同的標準(包括PCI接口,可連接ASSP和設備的接口以及串行設備接口等)。
這里FPGA的作用除了與SDRAM構成一個大容量的FIFO以外,還需要完成一些控制功能。對于本文的應用,需要完成HDB3碼到NRZ碼的轉(zhuǎn)換及數(shù)據(jù)的串并轉(zhuǎn)換等。具體問題要具體分析,用戶可根據(jù)自己的需求對FPGA進行編程。
2.3 A/D轉(zhuǎn)換芯片MAX1180
MAX1180是Maxim公司的雙通道105Msps、3.3V工作電壓、低功耗的高速A/D芯片,采樣數(shù)據(jù)10位電平量化。它是采用差分輸入,帶有寬帶跟蹤/保持(track-and-hold)的雙通道9級流水線型結構的s,如圖3所示。實際的芯片包括兩個圖示的電路,作為輸入的兩路通道,互不干擾。各路采樣信號每半個時鐘周期通過一個STAGE,完成連續(xù)轉(zhuǎn)換到數(shù)據(jù)輸出共需5個時鐘周期。每個流水線首先通過一個1.5位的快閃ADC對輸入電碼量化,然后再由產(chǎn)生一個對應于量化結果的電壓并與輸入電壓作差,輸出電壓放大2倍后送到下流水線處理。A/D-D/A兩次變化以及差分處理的目的在于進行差錯校正,以保證在流水線上的各個階段,ADC的偏移量得到補償并且無代碼丟失。
2.4 硬件連接
根據(jù)系統(tǒng)對數(shù)據(jù)傳輸?shù)乃俣群蛯崟r性的要求,配置CY7C68013工作的接口模式為Slave FIFO模式。當進行數(shù)據(jù)采集時,硬件連接方式如圖4所示。
A/D轉(zhuǎn)換器的采樣時鐘同時作為CY7C68013的Slave FIFO模式的讀寫控制時鐘,即CY7C68013的接口時鐘連接到IFCLK引腳。SCWR/SLRD是CY7C68013 Slave FIFO的寫使能/讀允許信號。FPGA向C7C68013 Slave FIFO提供Slave FIFO輸出允許信號SLOE,僅在數(shù)據(jù)輸出時有效。FD[15:0]為16位雙向數(shù)據(jù)總線。FIFOADR1:0》為端點FIFO選擇信號。在數(shù)據(jù)輸入時固定為00,選擇的是端點2;在數(shù)據(jù)輸出時固定為10,選擇的是端點6。
3、USB數(shù)據(jù)采集卡軟件
軟件設計是一個USB設備開發(fā)的必備環(huán)節(jié)。USB應用系統(tǒng)軟件設計分為三部分:初始化軟件、主機操作系統(tǒng)上的客戶驅(qū)動程序以及主機應用程序。初始化軟件是到控制器中的固件代碼,它響應各種來自系統(tǒng)的USB標準請求(包括USB設備的枚舉、驅(qū)動程序的選擇加載等),完成連接設備和主機的任務。主機應用軟件通過客戶驅(qū)動程序與系統(tǒng)USBI(USB Device Inteace)進行通信,其主要任務是將采集進來的數(shù)據(jù)流,根據(jù)所需處理功能的要求來完成各種基于Windows程序的處理。
3.1 EZ-USB FX2的初始化
通過固件程序的調(diào)度,主機才能得到設備的描述符以及完成端點數(shù)據(jù)的傳輸。對于固件程序的編程,其基本結構如下:
①初始化,包括處理器和外圍電路的初始化;
②主函數(shù),包括完成符合設備特定要求的代碼;
③中斷處理,包括處理各種中斷的程序代碼。
總的來說,固件程序的編寫有兩種方式。其一,對于熟悉8051匯編語言的用戶來說,可以直接利用匯編語言編寫結構緊湊、高效率的固件代碼;其二,EZ-USB以利用現(xiàn)成的固件程序框架函數(shù),根據(jù)設備的需求添加相慶的用戶,來完成特定的目的。
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- 簡述計算機總線的分類2025/9/4 17:12:23
- 深度剖析三進線兩母聯(lián)供電系統(tǒng)設計方案2025/9/3 10:37:39
- 匯流排是什么匯流排好還是線接好2025/8/28 17:13:00
- 安森美 USB - C 電池充電器解決方案2025/8/28 15:45:10
- I2C 總線加上拉電阻的必要性2025/8/25 16:42:09