基于USB 2.0的同步數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
l 引 言
通用串行總線(Univeisal Serial Bus,USB)憑借其即插即用、熱插拔以及較高的傳輸速率等優(yōu)點(diǎn),成為PC機(jī)與外設(shè)連接的普遍標(biāo)準(zhǔn)。迄今為止,常用的USB總線標(biāo)準(zhǔn)有1998年發(fā)布的USB 1.1版本和2000年發(fā)布的USB2.0版本。其中1.1版本支持兩種傳輸速率:1.5 Mb/s和12 Mb/s,主要應(yīng)用在低速傳輸要求的場(chǎng)合。而USB2.0[1]版本在1.1版本的基礎(chǔ)上擴(kuò)展了以下特點(diǎn):
最高480.Mb/s傳輸速率,比USB 1.1提高了40倍;全面兼容USB 1.1設(shè)備;新的HUB結(jié)構(gòu)成倍地提高USB1.1設(shè)備的數(shù)據(jù)流速度。
對(duì)于一個(gè)基于USB的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),無論USB芯片還是D/A轉(zhuǎn)換器,都有多種不同的選擇方案。考慮到系統(tǒng)的精度、速率等諸元素,筆者在設(shè)計(jì)時(shí)選擇了EZ-USB FX2系列中功能較強(qiáng)的CY7C68013A TQFP 128腳封裝芯片作為核心控制器,結(jié)合模數(shù)轉(zhuǎn)化器AD7658,開發(fā)了,一套基于USB 2.O的高速同步數(shù)據(jù)采集系統(tǒng)。
2 CY7C68013A芯片介紹
設(shè)計(jì)系統(tǒng)中的接口芯片選用Cypress公司的EZ-USB FX2系列中的CY7C68013A[2](128腳),他包括1個(gè)8051處理器,1個(gè)串行接口引擎(SIE),1個(gè)USB收發(fā)器,8.5 kB片上RAM,4 kB FIFO存儲(chǔ)器和1個(gè)通用可編程接口(GPIF)。
(1)內(nèi)部集成了一個(gè)增強(qiáng)型的51內(nèi)核,其指令集與標(biāo)準(zhǔn)的8051兼容,并且在多方面有所改進(jìn)。例如:最高工作頻率可達(dá)48 MHz,一個(gè)指令周期為4個(gè)時(shí)鐘周期,2個(gè)UART接口,3個(gè)定時(shí)計(jì)數(shù)器,1個(gè)1。C接口引擎等。
(2)提供了一個(gè)串行接、口引擎(SIE),負(fù)責(zé)完成大部分USB 2.0協(xié)議的處理工作,從而大大減輕了USB協(xié)議處理的工作量,并且提供了4 kB的FIFO保證數(shù)據(jù)高速傳輸?shù)男枰:鸵酝腢SB傳輸引擎不同的是,68013的內(nèi)核部分不直接參與FIFO以及傳輸工作,傳輸與控制部分脫離,大大提高了總線傳輸?shù)乃俣?,這也是本系統(tǒng)的特點(diǎn)之一。
(3)為實(shí)現(xiàn)與各種不同外設(shè)的互連,芯片中集成了一個(gè)GPIF模塊,使用戶可按照外設(shè)的時(shí)序進(jìn)行波形編輯,而不需要復(fù)雜的程序描述,就可以保證GPIF與內(nèi)部FIFO的協(xié)調(diào)工作,實(shí)現(xiàn)芯片與高速外圍設(shè)備之間的邏輯連接和高速數(shù)據(jù)傳輸。這對(duì)于開發(fā)者來說是相當(dāng)友好的。筆者就是利用這一特性,實(shí)現(xiàn)數(shù)據(jù)的高速同步采集及傳輸。
3 同步高速數(shù)據(jù)采集芯片AD7658
3.1 AD7658 [3]的結(jié)構(gòu)
AD7658是AD公司推出的高速、6通道、低功耗、雙極性12位的A/D轉(zhuǎn)換芯片,其內(nèi)部結(jié)構(gòu)如圖2所示,其主要特點(diǎn)是:6個(gè)獨(dú)立的快速ADC模塊(允許同時(shí)采樣和轉(zhuǎn)換6路信號(hào));正確的雙極模擬輸入;最高的速度:250 KSPS;低功率:5 V的電源以250 KSPS速度運(yùn)行下,功率是400 mW;串行和并行接口;高速串行接口;兼容SPI/QSPI/DSP接口;節(jié)電模式時(shí)最大消耗5μA;64LQF、P封裝。
3.2 AD7658的控制時(shí)序
前面已經(jīng)提到AD7658可以采用并行接口或者高速的串行接口,在本文中,我們采用并平行接口。在USB2.0同步高速數(shù)據(jù)采集器中他的控制時(shí)序,是利用GPIF實(shí)現(xiàn)圖3所示的時(shí)序控制。
其中CONVST 是轉(zhuǎn)換開始啟動(dòng)信號(hào),下降沿觸發(fā)3路.ADC開始裝換;BUSY信號(hào)在CONVST信號(hào)觸發(fā)后;變成并保持為高電平狀態(tài),直到3路ADC轉(zhuǎn)換完畢,才又回到低電平;CS信號(hào)和RD信號(hào)分別是芯片使能信號(hào)以及讀允許信號(hào)。兩者第一次同為低電平時(shí),讀出第一組ADC轉(zhuǎn)換的數(shù)據(jù);在第二次為高電平時(shí),讀出第二組ADC轉(zhuǎn)換的數(shù)據(jù)。
4 USB高速數(shù)據(jù)采集的硬件設(shè)計(jì)
實(shí)際信號(hào)經(jīng)過傳感器,轉(zhuǎn)轉(zhuǎn)成電信號(hào),而后進(jìn)行信號(hào)調(diào)理,達(dá)到AD7658可以輸入的信號(hào)范圍,之后在GPIF模塊的控制下,由AD7658對(duì)其進(jìn)行等間隔采樣,然后將采樣結(jié)果通過GPIF 傳送到CY7C68013A的內(nèi)部FIFO中緩存;當(dāng)采集一定量的數(shù)據(jù)CY7C68013A自動(dòng)將數(shù)據(jù)打包(不需要8051的介入),通過USB總線傳輸?shù)絇C機(jī)中進(jìn)行數(shù)據(jù)處理。
5 USB高速數(shù)據(jù)采集軟件設(shè)計(jì)
該系統(tǒng)的軟件設(shè)計(jì)主要包括兩部分,一部分是固件設(shè)計(jì),另一部分是驅(qū)動(dòng)和應(yīng)用程序。
5.1 固件設(shè)計(jì)
固件是運(yùn)行在CY7C68013A上的程序,本系統(tǒng)采用C51語言來編程設(shè)計(jì),其主要功能是控制CY7C68013接收并處理USB驅(qū)動(dòng)程序的請(qǐng)求(如請(qǐng)求設(shè)備描述符、請(qǐng)求或設(shè)置設(shè)備狀態(tài),請(qǐng)求或設(shè)置設(shè)備接口等USB 2.0標(biāo)準(zhǔn)請(qǐng)求)、控制CY7C68013A接收應(yīng)用程序的控制指令、通過cY7C6801 3A存放數(shù)據(jù)并實(shí)時(shí)上傳至PC等。
本方案中的固件設(shè)計(jì)思路是:在Cypress公司自己提供的固件開發(fā)軟件平臺(tái)上,結(jié)合該固件工程所提供的FW.C,BULK.C,DSCR.A51,F(xiàn)X2.H,F(xiàn)X2REGS.H等文件,運(yùn)用高級(jí)語言C51進(jìn)行編程。固件程序的載入方式為:使用CY7(268013A特有的軟配置功能。將固件程序存儲(chǔ)到計(jì)算機(jī)中,當(dāng)沒備接入U(xiǎn)SB電纜時(shí),通過Cypress公司提供的開發(fā)軟件Usb Control Pariel的Download項(xiàng),將固件載入到控制芯片中。
5.2驅(qū)動(dòng)程序設(shè)計(jì)
USB需要通用驅(qū)動(dòng)和下載固件驅(qū)動(dòng)兩個(gè)程序。通用驅(qū)動(dòng)用于完成外設(shè)與用戶程序的通信,可使用Cypress公司開發(fā)包所提供的已經(jīng)編好的通用驅(qū)動(dòng)程序ezusb.sys,一般不需要重新編寫;下載固件驅(qū)動(dòng)則負(fù)責(zé)在外設(shè)連接USB總線后把特定的固件程序下載到CY7C68013A的RAM中使C2PU重啟,同時(shí)模擬斷開與USB總線的連接,以完成對(duì)外設(shè)的重新設(shè)置,使主機(jī)能夠根據(jù)新的設(shè)置來安裝通用驅(qū)動(dòng)程序,重新列舉外設(shè)為一個(gè)新的USB設(shè)備。他可以由Cypress公司已經(jīng)編好的驅(qū)動(dòng)部分和固件程序由DDK編譯后生成。在本設(shè)計(jì)方案中,采用的就是在配置好的輔助開發(fā)環(huán)境中修改這個(gè)通用驅(qū)動(dòng)程序的方式。
5.3應(yīng)用程序設(shè)計(jì)
主機(jī)應(yīng)用程序是主要實(shí)現(xiàn)從高速數(shù)據(jù)采集處理板讀取處理后的數(shù)據(jù)、存儲(chǔ)、顯示處理結(jié)果以及向數(shù)據(jù)采集處理板發(fā)送控制命令。本系統(tǒng)開發(fā)使用Windows XP作為開發(fā)平臺(tái),以VC++6.0為開發(fā)工具,設(shè)計(jì)中考慮到工程要求,主要兼顧了以下功能:采集傳輸控制功能(連接設(shè)備,設(shè)定采集參數(shù),啟動(dòng)和停止采集,下載程序,塊傳輸測(cè)試的開始、結(jié)束、設(shè)置、計(jì)數(shù)編輯、持續(xù)時(shí)間編輯);描述符的讀取功能(設(shè)備、配置、接口、端點(diǎn)、字符串的描述符讀取);系統(tǒng)功能(數(shù)據(jù)圖形結(jié)果,文件數(shù)據(jù)的生成)。
6 結(jié) 語
隨著現(xiàn)在實(shí)際要求的多樣化、復(fù)雜化,對(duì)數(shù)據(jù)采集的精度、速度要求也越來越高,USB 2.0已經(jīng)成為必然的趨勢(shì)。本系統(tǒng)是一個(gè)簡(jiǎn)單的USB接口設(shè)計(jì),通過最簡(jiǎn)單的連接,達(dá)到高速實(shí)時(shí)數(shù)據(jù)采集的目的。該系統(tǒng)電路簡(jiǎn)單、工作穩(wěn)定、傳輸速率高,還具有USB設(shè)備的體積小,使用方便等特點(diǎn),可以滿足了很多工程中數(shù)據(jù)采集的要求。
參考文獻(xiàn):
[1].AD7658datasheethttp://www.dzsc.com/datasheet/AD7658_1131529.html.
[2].CY7C68013datasheethttp://www.dzsc.com/datasheet/CY7C68013_.html.
[3].BULKdatasheethttp://www.dzsc.com/datasheet/BULK_2523104.html.
[4].A51datasheethttp://www.dzsc.com/datasheet/A51_1823359.html.
評(píng)論