《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于USB2.0的同步高速數(shù)據(jù)采集器的設計

基于USB2.0的同步高速數(shù)據(jù)采集器的設計

2008-08-11
作者:梁鴻翔 王潤田

??? 摘 要: 介紹了一種基于USB2.0接口的同步高速數(shù)據(jù)采集的設計方案及其軟硬件的設計方法,對Cypress的USB2.0控制芯片CY7C68013和同步數(shù)據(jù)采集芯片AD7862的特性作了簡要說明,同時重點介紹GPIF及其驅動軟件的設計。
??? 關鍵詞: USB2.0? EZ-USB FX2? 同步數(shù)據(jù)采集

?

??? 隨著計算機技術的迅速發(fā)展,對外部總線速度的要求越來越高。通用串行總線(Universal Serial Bus,即USB總線)憑借其即插即用、熱插拔以及較高的傳輸速率等優(yōu)點,成為PC機與外設" title="外設">外設連接的普遍標準。在許多便攜式電腦上,已經找不到RS-232接口。迄今為止,常用的USB總線標準有1998年發(fā)布的USB1.1版本和2000年發(fā)布的USB2.0版本。其中1.1版本支持兩種傳輸速率:1.5Mbps和12Mbps,主要應用在低速傳輸要求的場合;而2.0版本面向高數(shù)據(jù)率傳輸?shù)膱龊?,支?80Mbps的傳輸速度,并向下完全兼容USB1.1協(xié)議。在實際應用中,通常會遇到一些突發(fā)信號,需要對其進行高速采集,對數(shù)據(jù)進行高速傳輸,所以USB2.0標準自然成為首選。以Cypress公司的EZ-USB FX2系列中的CY7C68013芯片作為核心控制器,設計開發(fā)了一套符合USB2.0標準的高速同步數(shù)據(jù)采集器" title="數(shù)據(jù)采集器">數(shù)據(jù)采集器。
1 CY7C68013芯片
??? Cypress公司的EZ-USB FX2系列中的CY7C68013,是目前市面上比較少的符合USB2.0標準的USB控制器之一。與其它同類芯片相比,它提供了4KB的FIFO和一個功能十分強大的GPIF(General Programmable Interface)模塊。后者相當于一個可編程狀態(tài)機,正是由于它的存在,使得CY7C68013比其它同類芯片具有強大的互聯(lián)" title="互聯(lián)">互聯(lián)能力。圖1是CY7C68013芯片的結構示意圖,其主要特點如下:
??? ·CY7C68013內部集成了一個增強型的51內核,其指令集與標準的8051兼容,并且在多方面有所改進。例如:最高工作頻率可達48MHz,一個指令周期為4個時鐘周期,兩個UART接口,三個定時計數(shù)器,一個I2C接口引擎等。
??? ·CY7C68013提供了一個串行接口引擎(SIE),負責完成大部分USB2.0協(xié)議的處理工作,從而大大減輕了USB協(xié)議處理的工作量,并且提供了4KB的FIFO保證數(shù)據(jù)高速傳輸?shù)男枰?BR>??? ·為了滿足與各種不同類型外設的互聯(lián)需要,芯片中集成了一個GPIF模塊,讓用戶可以按照外設的時序進行波形編輯,而不需要復雜的程序描述,就可以保證GPIF與內部FIFO的協(xié)調工作,實現(xiàn)芯片與高速外圍設備之間的邏輯連接和高速數(shù)據(jù)傳輸。這對于開發(fā)者來說是相當友好的。筆者就是利用這一特性,實現(xiàn)數(shù)據(jù)的高速同步采集及傳輸。

?


2 同步高速數(shù)據(jù)采集芯片AD7862
2.1? AD7862的結構

??? AD7862是AD公司推出的高速、低功耗、雙極性12位的A/D轉換芯片,其中包含了兩個獨立的快速ADC模塊(允許同時采樣和轉換兩路信號)、4路模擬輸入信號(VA1、VA2、VB1、VB2)、2.5V的內部電壓基準以及一個12位的高速并行接口。芯片正常運行時功耗只有60mW,當使用節(jié)電方式時,只有50μW,對于自帶電源的USB設備這種低功耗無疑是一種優(yōu)點。該芯片的內部結構如圖2所示。每個ADC都有一個兩通道的多路選擇器,芯片通過地址信號A0分別選通VA1、VA2 或 VB1、VB2,當一個CONVST信號到來時,同時轉換地址A0選中的兩路信號。

?


2.2? AD7862的控制時序
??? AD7862的控制時序如圖3所示。在USB2.0同步高速數(shù)據(jù)采集器中,利用GPIF實現(xiàn)圖3所示的時序控制。其中CONVST是轉換開始啟動信號,下降沿觸發(fā)兩路ADC開始裝換;BUSY信號在CONVST信號觸發(fā)后,變成并保持為高電平狀態(tài),直到兩路ADC轉換完畢,才又回到低電平;地址A0用于對兩路模擬信號的選擇,CS信號和RD信號分別是芯片使能信號以及讀允許信號。兩者第一次同為低電平時,讀出第一組ADC轉換的數(shù)據(jù);在第二次為高電平時,讀出第二組ADC轉換的數(shù)據(jù)。使用AD7862值得注意的一點是該芯片提供了電源管理功能,當芯片將第二組數(shù)據(jù)讀出后,CONVST信號繼續(xù)保持低電平,芯片進入休眠模式。這時芯片的功耗只有50μW。這一點對于現(xiàn)在的便攜式設備十分重要。

?


3 同步高速數(shù)據(jù)采集器的硬件設計
??? 傳統(tǒng)的高速數(shù)據(jù)采集卡一般都采用PCI總線設計,但是筆記本電腦以及大部分便攜式設備是沒有PCI插槽的。利用USB2.0技術,不僅保證了較高的數(shù)據(jù)傳輸率(傳輸率最大可以達到480Mbps),同時還具有便攜和無需外加電源等優(yōu)點。圖4是系統(tǒng)的結構示意圖。它的工作原理是:在GPIF模塊的控制下,由AD7862對目標進行等間隔采樣,然后將采樣結果通過GPIF傳送到CY7C68013的內部FIFO中緩存;當采集一定量的數(shù)據(jù)后,CY7C68013自動將數(shù)據(jù)打包(不需要8051的介入),通過USB總線傳輸?shù)絇C機中進行數(shù)據(jù)處理。由于有GPIF的硬件支持,CY7C68013中的8051內核只是在很少的時間內,對控制進行了輔助處理,大部分工作由GPIF硬件完成。這樣8051還可以與其他外設進行互聯(lián)等工作。在高速數(shù)據(jù)采集器上附加了兩路RS-232接口,用于將GPS數(shù)據(jù)和高精度智能測深儀的數(shù)據(jù)中轉到主控計算機上,大大方便了新近推出的筆記本電腦與傳統(tǒng)外設之間的聯(lián)系。因為新近推出的筆記本電腦大多不具有RS-232接口,而那些野外觀測儀器大多只能通過RS-232接口進行數(shù)據(jù)交換。

?


??? 對于CY7C68013來說,其配置和固件" title="固件">固件都是軟的,存儲在外部的E2PROM中,上電時從I2C總線自動裝載到片內RAM中,修改起來十分方便,便于固件升級。由于CY7C68013提供了豐富的I/O口,所以進行功能擴展也是很方便的,例如增加一個GPIB數(shù)據(jù)口等。
4 軟件設計
??? USB 設備的軟件設計包括三方面:固件設計、硬件驅動程序設計以及高級應用程序" title="應用程序">應用程序的設計。
4.1 固件(firmware)設計
??? Cypress公司為CY7C68013提供了一個開發(fā)框架,可以在 KEIL C51環(huán)境下開發(fā)。由于開發(fā)框架的引入,從而大大縮短了用戶的研發(fā)周期。該框架由以下幾部分組成:
??? (1)FW.C中包含了程序框架的MAIN函數(shù),管理整個51內核的運行,因為Cypress對這個部分的功能進行了精心劃分,一般是不用改動的。
??? (2)用戶必須將PERIPH.C實例化,它負責系統(tǒng)周邊器件的互聯(lián)。固件的設計主要針對這個文件,用戶必須根據(jù)自己系統(tǒng)的需要,實例化這個文件,以實現(xiàn)自己的功能。在這個文件中有幾個函數(shù)是比較關鍵的,在這里做一下特別說明:
??? ·TD_Init 函數(shù),負責對USB端點進行初始化設置。本設計中將端點6設置為1024個字節(jié),緩存深度為4級,模式設為自動輸入方式。
??? ·TD_Poll 函數(shù),負責系統(tǒng)中循環(huán)任務的處理。它主要是對各個端點的狀態(tài)進行查詢,處理各種 OUT或IN端點的交互。值得說明的一點是,這種處理只是輔助性質的,大部分工作由硬件自動完成。
??? ·DR_VendorCmnd 函數(shù),主要負責用戶自定義命令的譯碼工作,用戶請求通過端點0傳輸給內核。由于CY7C68013上SIE硬件的支持,用戶只需查詢固定地址單元即可獲得當前的命令代碼。
??? ·GPIFINIT.C ,其中只有一個GpifInit函數(shù),它是GPIF模塊的初始化函數(shù),一般在TD_Init 函數(shù)中調用。這個函數(shù)是由Cypress公司提供的一個GPIF Designer開發(fā)工具根據(jù)用戶設計的波形生成的,用戶不需要自己設計波形查詢表,減輕了設計者的工作強度。
??? ·DSCR.A51是描述表文件,負責USB設備的描述工作,CY7C68013在上電后自動利用其中的VID和PID取代默認的VID和PID。
??? ·兩個包含文件EZUSB.LIB和USBJMPTB.OBJ,前者是EZUSB函數(shù)庫的二進制文件,后者是USB的中斷向量表。
??? 固件調試,使用Cypress提供的EZ-USB control panel,具體的操作讀者可以參考其自帶幫助。
4.2 驅動程序的設計
??? 驅動程序負責對底層硬件的訪問。在本設計的驅動程序開發(fā)中,使用的開發(fā)工具是Jungo公司的WinDriver v6.03,它支持多種操作系統(tǒng)。利用WinDriver開發(fā)的優(yōu)點是用戶不需要了解操作系統(tǒng)內部的具體工作機理,同時也不需要了解各個系統(tǒng)DDK (Developing or Debugging in Kernel)的開發(fā)工具,用戶只需使用WinDriver提供的開發(fā)平臺,即可完成驅動程序的設計工作,剩下的底層細節(jié)由WinDriver內核統(tǒng)一處理,從而降低了對開發(fā)者編程能力的要求,同時也大大縮短了開發(fā)周期。下面就使用WinDriver開發(fā)驅動程序的步驟做一個簡要說明(以在Windows操作系統(tǒng)下的開發(fā)為例):
??? (1)啟動 WinDriver的DriverWizard工具;
??? (2)利用 DriverWizard 檢測硬件是否正常;
??? (3)在DriverWizard 中選擇所使用的開發(fā)環(huán)境,這里使用VB6.0開發(fā)環(huán)境,并生成驅動程序代碼;
??? (4)對生成的代碼進行修改,使其符合系統(tǒng)的需要;
??? (5)在WinDriver環(huán)境的用戶模式下,調試驅動程序;
??? (6)如果程序需要內核訪問,以提高驅動程序的效率,進入內核開發(fā)。
4.3? 高級應用程序的設計
??? 高級應用程序建立在驅動程序之上,在本設計中,選用了VB6.0的開發(fā)環(huán)境來開發(fā)應用程序。它以驅動程序為橋梁,對USB設備進行命令控制,處理USB設備傳回的數(shù)據(jù),例如波形顯示、頻譜分析等。開發(fā)者可以依據(jù)自己的實際需求,制作一個USB控制器的控件或數(shù)據(jù)包,在編寫應用程序時連接或嵌入到應用程序中。
?? ?隨著筆記本電腦的迅速普及,高性能便攜式采集器將會倍受矚目,尤其是在RS-232接口已被大多數(shù)筆記本電腦擯棄的今天,對USB數(shù)據(jù)采集器的需求就變得更加迫切,并已顯示出了良好的市場前景。本文所述的基于USB2.0的高速同步數(shù)據(jù)采集器就其功能來說已不僅限于數(shù)據(jù)采集,應該說是一個功能強大的混合信號處理器。經過在水下機器人聲納和浙江深水網箱監(jiān)測設備中的使用表明數(shù)據(jù)吞吐量大、性能穩(wěn)定,達到了設計要求。只要搭配合適的傳感器以及相應的信號調理電路,利用本文所述的高性能采集器,就可以對各種模擬量進行采集和分析處理。如果再能夠配以合適的固件設計,則完全可以構成一個多功能控制系統(tǒng)。
參考文獻
1 Cypress Semiconductor Corporation. EZ-USB FX2 Manual?Technical Reference Version 2.1. Copyright (c) 2000, 2001
2 Anchor Chips, Inc. Anchor EZ-USB Frameworks. Copyright?(c) 1998
3 Jungo Ltd. WinDriver v6.03 User's Guide. 2003

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。