基于USB2.0技術(shù)的高速雙路數據采集系統

發(fā)布時(shí)間:2010-3-7 09:13    發(fā)布者:李寬
關(guān)鍵詞: 技術(shù) , 數據采集 , 系統
本文設計了一種基于USB2.0芯片CY7C68013和Maxim公司的高速并行模數轉換芯片MAX1195的高速雙路數據采集系統,采用EZ-USB FX2 的特有的GPIF(General Programmable  Interface)傳輸方式,徹底打破了8051CPU對USB2.0傳輸速率的瓶頸,同時(shí)避免了使用其他微處理器或者CPLD、FPGA等的硬件開(kāi)支。本文詳細介紹了該數據采集系統的硬件組成和軟件設計,包括單片機CY7C68013的固件設計和計算機主機用戶(hù)程序。通過(guò)與高精度激光縱模分析儀的連接調試,證明該系統已經(jīng)達到了既定目標。

1.引言

近年來(lái),USB接口由于其傳輸速率高,真正的即插即用等優(yōu)點(diǎn)正在逐漸取代傳統的計算機接口如:RS232,EPP等。目前,許多的芯片生產(chǎn)商都推出了符合USB協(xié)議的芯片,如PHILIPS公司的PDIUSBD12,NS公司的USBN9602等。在眾多的USB2.0芯片中,Cypress公司的 EZ-USB FX2(CY7C68013)芯片是一個(gè)不錯的選擇。本文設計了一種基于EZ-USB FX2和MAX1195的數據采集系統,該系統符合USB2.0協(xié)議標準,通過(guò)與高精度激光縱模分析儀連接進(jìn)行調試,證明該系統達到了預定目的。

2. CY7C68013芯片和MAX1195芯片介紹

2.1 CY7C68013介紹:

CY7C68013在一塊芯片上同時(shí)集成了USB2.0收發(fā)器,串行接口引擎SIE,增強型的8051微控制器以及一個(gè)可編程外圍接口 GPIF(General Programmable Interface)。CY7C68013的“量子FIFO”(FIFO,先進(jìn)先出存儲器)特性使得無(wú)需8051CPU的任何干預,數據即可從外設上傳到主機,這種數據傳輸模式徹底解決了USB2.0收發(fā)器與一般8051微控制器連接時(shí)由于8051的時(shí)鐘頻率低而導致的傳輸速率瓶頸問(wèn)題。 CY7C68013芯片的另一個(gè)突出優(yōu)點(diǎn)是其“‘軟’配置”,代碼和數據能夠直接通過(guò)USB接口下載到片內的RAM上,這一功能通過(guò)Cypress公司獨創(chuàng )的“重枚舉”(ReNumerationTM)功能實(shí)現。CY7C68013芯片有四個(gè)可編程的批量、中斷、同步傳輸端點(diǎn),可以分別設置為雙緩沖,三緩沖和四緩沖模式,8位或者16位的外部數據接口,該接口可以根據需要工作在GPIF或者SLAVEFIFO模式。其中GPIF能夠和絕大部分并行接口如 FIFO等實(shí)現“無(wú)膠”連接,即無(wú)需外加任何微控制器或CPLD、FPGA等。本文的設計中采用了GPIF方式。

2.2 MAX1195介紹:

MAX1195是由MAXIM公司推出的一款低功耗、雙路、高速、八位模數轉換芯片,采用流水線(xiàn)(Pipeline)結構,最高采樣率 40Mbps,內部集成了兩個(gè)ADC,真正實(shí)現兩路同步采樣轉換。其工作電壓范圍是2.7V-3.6V,具有減小功耗的休眠模式和關(guān)斷(Shut- Down)模式,單端或者差分輸入方式,片上采樣保持(T/H)電路,內部或者外部參考電壓,含有用戶(hù)可選擇的數據輸出格式:二的補碼格式或者補償二進(jìn)制碼格式,具有輸出使能控制 ,可以將輸出置為高阻態(tài)。此外MAXIM還提供了與MAX1195引腳、封裝完全兼容的10位、更高采樣率的模數轉換芯片,如MAX1197、 MAX1198等,因此系統升級非常方便。在本文的工作中,采用了內部參考電壓、雙路單端模擬輸入、補償二進(jìn)制碼輸出格式。

3.系統整體構成及其工作原理介紹:

3.1系統構成:

系統的整體框圖如圖1所示。整個(gè)系統主要包括USB傳輸芯片CY7C68013,先進(jìn)先出存儲器(FIFO)SN74V235和模數轉換芯片 MAX1195組成。反相器74LVC04主要起MAX1195和FIFO之間的邏輯控制作用。


圖1  系統整體框圖

3.2系統工作原理:

MAX1195的兩路輸入信號是同時(shí)被采樣的,十六位的數據輸出總線(xiàn)使兩路數據可以同時(shí)輸出,分別占八位,即:D0A~D7A和 D0B~D7B;SN74V235輸入為18位,根據CMOS技術(shù)的要求,將未使用的D16和D17引腳接地。MAX1195采集到的數據首先送進(jìn)FIFO里, FIFO的寫(xiě)時(shí)鐘(WCLK)和AD的轉換時(shí)鐘反相,這樣可以充分滿(mǎn)足MAX1195輸出數據的建立時(shí)間,避免發(fā)生數據丟失或者數據重復寫(xiě)入現象。 SN74V235的 (Programmable Almost Full)可編程幾乎滿(mǎn)信號經(jīng)74LVC04反相后接MAX1195的Sleep和 引腳,以免FIFO發(fā)生溢出而丟失數據。SN74V235的數據輸出引腳Q0~Q15與CY7C68013的GPIF模式下的數據線(xiàn)FD[15:0]即端口B和端口D組成的十六位數據總線(xiàn)相連,數據SN74V235到EZ-USB FX2的時(shí)序過(guò)程由CY7C68013的GPIF控制。FX2采用了“量子FIFO”結構,在FX2里面,數據可以分為兩個(gè)域:USB域和GPIF接口域。這兩個(gè)域是獨立的,允許分別使用不同的時(shí)鐘和邏輯控制數據的傳輸,USB域是由SIE控制的,SIE通過(guò)USB口接收或者發(fā)送端點(diǎn)FIFO的數據。 FX2的“量子FIFO”能夠幾乎不花時(shí)間在這兩個(gè)數據域中的轉移數據,因為這兩個(gè)域用的FIFO在物理上是同一個(gè)。所以根據“量子FIFO”原理,實(shí)際上數據已經(jīng)存在于屬于USB域的端點(diǎn)FIFO里面了,采用USB的BULK傳輸方式,使該數據完全不經(jīng)過(guò)低頻CPU干預,而是采用FX2提供的 AutoIn模式,即一旦FX2端點(diǎn)緩沖區的數據達到指定字節數,數據將自動(dòng)被打包從USB口上傳到主機。

3.3 GPIF波形及程序介紹:

GPIF是FX2的端點(diǎn)FIFO的片內控制器,可以完全代替片外的控制器而實(shí)現FX2與外圍FIFO的“無(wú)膠”連接。GPIF的核心是一個(gè)可編程狀態(tài)機,可以產(chǎn)生六個(gè)“控制”(CTL)和九個(gè)“地址”(GPIFADR[8:0])信號,可以接收六個(gè)外部(RDY)“準備好”輸入,八位或者十六位數據總線(xiàn),時(shí)鐘可以用FX2的IFCLK,也可以由外圍提供。本文GPIF接口的詳細硬件連接如圖2所示。


圖2  GPIF與SN74V235詳細連接圖

GPIF狀態(tài)機可以定義四個(gè)波形描述符,一般情況下是:FIFO讀,FIFO寫(xiě),單字/字節讀,單字/字節寫(xiě)。Cypress提供了圖形化的波形描述工具GPIF Designer,用戶(hù)只需要給出GPIF波形,GPIF Designer會(huì )自動(dòng)生成C語(yǔ)言的波形代碼Gpif.c,可以直接鏈接到用戶(hù)的固件程序中。本文中用到了FIFORd描述符,波形如圖3所示。


圖3  GPIF Designer設計的 FIFORd波形

4.系統軟件編寫(xiě)

系統軟件主要包括三個(gè)部分:下位機CY7C68013的固件,USB驅動(dòng)程序和上位機主機應用程序。

4.1 固件程序編寫(xiě)

對于下位機CY7C68013的固件編寫(xiě),Cypress公司給出了在Keil C51下的固件程序框架,固件框架完成EZ-USB FX2的初始化、USB標準設備請求處理、USB掛起模式下的電源管理服務(wù)和USB中斷處理。Cypress還提供了函數鉤子來(lái)加速用戶(hù)代碼的添加。用戶(hù)只需要簡(jiǎn)單地提供一個(gè)USB描述符表和執行外圍功能的代碼即可。

4.2 驅動(dòng)程序編寫(xiě)

Windows系統下的USB驅動(dòng)包括三層,從高到低依次是:USB客戶(hù)端設備驅動(dòng)(USB Client Device Driver)、USB總線(xiàn)驅動(dòng)(USB Hub(Bus) Driver)、主機控制器驅動(dòng)(Host Controller Driver)。后兩者由Windows系統提供,用戶(hù)只需要開(kāi)發(fā)USB客戶(hù)端設備驅動(dòng)程序,Cypress公司提供了一個(gè)通用的驅動(dòng)程序 (General Purpose Driver),即ezusb.sys,一般情況下,該驅動(dòng)程序可以滿(mǎn)足FX2開(kāi)發(fā)者的需要。本文使用了Cypress公司的通用驅動(dòng) ezusb.sys。為了使用ezusb.sys,用戶(hù)必須編寫(xiě)對應的inf文件,inf文件將特定的USB設備綁定給相應的驅動(dòng)程序,該inf文件參照 ezusbw2k.inf編寫(xiě)。

4.3 主機應用程序編寫(xiě)

通用驅動(dòng)程序GPD即ezusb.sys提供了基本USB設備請求和數據傳輸的用戶(hù)模式接口,用戶(hù)模式應用程序通過(guò)Win32函數 DeviceIoControl()給設備驅動(dòng)器發(fā)送請求。Ezusb.sys提供了基本設備請求、批量讀寫(xiě)、同步讀寫(xiě)等一系列IOCTL函數。這里以 IOCTL_EZUSB_BULK_READ(EZUSB批量傳輸)為例加以介紹。

批量傳輸模式下讀FX2的端點(diǎn)FIFO的關(guān)鍵代碼如下:

DWORD  ioctl_val=IOCTL_EZUSB_BULK_READ;  //設置從設備中讀數據

Bresult=DeviceIoControl ( hDevice , ioctl_val ,  //從設備讀數據

&bulkControl ,      //端點(diǎn)號

sizeof ( BULK_TRANSFER_CONTROL),  //傳入參數的大小

buffer ,  //讀數據的緩沖區

length ,  //讀數據的長(cháng)度

(unsigned long *)&nBytes , //驅動(dòng)返回的數據的實(shí)際長(cháng)度

NULL);

限于篇幅,其他程序代碼從略。

6.結束語(yǔ)

本文的創(chuàng )新點(diǎn)是充分發(fā)揮了CY7C68013的優(yōu)勢,利用FX2的內部可編程狀態(tài)機GPIF實(shí)現了與外圍FIFO“無(wú)膠”連接,避免了使用外圍ASIC或者CPLD、FPGA等的麻煩,系統升級方便。整個(gè)電路結構緊湊,占用面積小,便于攜帶。

本文采用Cypress公司的USB2.0芯片CY7C68013設計了一種通用的高速雙路同步數據采集系統,通過(guò)將其與高精度激光縱模分析儀連接進(jìn)行試驗,證明該系統實(shí)現了數據的高速實(shí)時(shí)傳輸,達到了預先設計的目標。隨著(zhù)USB口的進(jìn)一步普及和計算機的發(fā)展,本文設計的這種USB數據采集系統必將得到更加廣泛的應用。

作者: 岳躍平 霍玉晶 何淑芳 來(lái)源:微計算機信息 2007 年 第23卷 第19期
本文地址:http://selenalain.com/thread-8967-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页