基于USB的數(shù)據(jù)采集系統(tǒng)的設(shè)計與研究
模/數(shù)轉(zhuǎn)換器需要外部提供基準電壓,ADC0804需要+2.5 V電壓,而且基準電壓是否穩(wěn)定、精確,直接影響數(shù)據(jù)轉(zhuǎn)換的精度。而NationalSemiconductor公司的LM336-2.5 V是一個能提供精確+2.5 V電壓的器件,他的集成電路是精確的2.5 V并聯(lián)推挽穩(wěn)壓二極管組成,還有一個用來調(diào)節(jié)溫度對電壓影響的引腳ADJ。芯片所產(chǎn)生的2.5 V的電壓可以很方便的從5 V電壓系統(tǒng)中獲得。
4數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計
該數(shù)據(jù)采集系統(tǒng)的軟件系統(tǒng)主要由3部分組成:USB固件程序(Firmware)、I_JSB設(shè)備驅(qū)動程序以及客戶應(yīng)用程序。3部分程序之間相互協(xié)作來完成整個采集卡的功能。
4.1 固件程序設(shè)計
固件程序是指運行在設(shè)備CPU中的程序。只有在該程序運行時,外設(shè)才能稱之為具有給定功能的外部設(shè)備。固件程序負責初始化各硬件單元,重新配置設(shè)備及A/D采樣控制。固件代碼的存儲位置有3種:第一種是存在主機中,設(shè)備加電后由驅(qū)動程序把固件下載到片內(nèi)RAM后執(zhí)行,即重新枚舉;第二種方法是把固件代碼固化到一片E2PRAM中,外設(shè)加電后由FX2通過I21C總線下載到片內(nèi)RAM后自動執(zhí)行;最后一種方法是把程序固化到一片R()M中,使之充當外部程序存儲器,連在FX2三總線上。本文選用第一種方式,這種方式便于系統(tǒng)的調(diào)試和升級。
Cypress公司為CY7C68013提供了一個開發(fā)框架,可以在KEILC51環(huán)境下開發(fā)。由于開發(fā)框架的引入,大大縮短了用戶的研發(fā)周期。該框架由以下幾部分組成:
(1)Fw.C中包含了程序框架的MAIN函數(shù),管理整個51內(nèi)核的運行,因為CypreSS對這個部分的功能進行了精心劃分,一般是不用改動的。
(2)用戶必須將PERIP H.C實例化,他負責系統(tǒng)周邊器件的互聯(lián)。固件的設(shè)計主要針對這個文件,用戶必須根據(jù)自己系統(tǒng)的需要,實例化這個文件,以實現(xiàn)自己的功能。在這個文件中有幾個函數(shù)是比較關(guān)鍵的,在這里做特別說明:
TD Init函數(shù),負責對USB端點進行初始化設(shè)置。本設(shè)計中將端點6設(shè)置為1 024個字節(jié),緩存深度為4級,模式設(shè)為自動輸入方式。
TD Poll函數(shù),負責系統(tǒng)中循環(huán)任務(wù)的處理。他主要是對各個端點的狀態(tài)進行查詢,處理各種OUT或IN端點的交互。值得說明的一點是,這種處理只是輔助性質(zhì)的,大部分工作由硬件自動完成。
評論