谷物品質(zhì)快速檢測儀關(guān)鍵部件的研究與設(shè)計(jì)
2 USB接口單元
USB接口單元的主要實(shí)現(xiàn)芯片是Cypress公司的CY7C68013,負(fù)責(zé)完成硬件系統(tǒng)和PC上位機(jī)之間的數(shù)據(jù)傳輸。Cypress公司的EZ-USB FX2系列芯片是世界上第一個集成USB2.0協(xié)議的微處理器,它支持12Mb/s的全速傳輸和480Mb/s的高速傳輸,可使用4種USB傳輸方式:控制傳輸、中斷傳輸、塊傳輸和同步傳輸,完全適用于USB2.0,并向下兼容USB1.1。其CPU采用增強(qiáng)型8051,它比標(biāo)準(zhǔn)8051的速度更快、功能更強(qiáng),且指令集和標(biāo)準(zhǔn)8051完全兼容,并可使用C51編譯器。FX2內(nèi)部包含8.5KB的RAM,它們兼做程序存儲器和數(shù)據(jù)存儲器,增強(qiáng)型8051的固件代碼就存儲在該區(qū)域內(nèi),F(xiàn)X2也具有I2C總線,以使其能從外部EEPROM中下載芯片程序。另外,F(xiàn)X2系列芯片采用3.3V供電,且可使用USB總線電源,但是功耗較大。 [2]
本系統(tǒng)中使用CY7C68013的PA0-PA6管腳作為AD工作狀態(tài)的控制信號,以決定ADS7825數(shù)據(jù)采集和存儲,PB0-PB7為8位數(shù)據(jù)總線根據(jù)工作狀態(tài)進(jìn)行高低8位的數(shù)據(jù)傳輸。如圖3所示為CY7C68013和ADS7825連接原理圖。
2.2 軟件程序的編寫
軟件程序包括包括三部分,芯片固件程序、驅(qū)動程序、上位機(jī)Win32應(yīng)用程序。
1 芯片固件程序
CY7C68013芯片固件程序負(fù)責(zé)PC發(fā)來的各種USB請求,以完成主機(jī)與外圍電路間的數(shù)據(jù)傳輸。該固件框架使用Keil C51 C編寫,其中使用了許多Keil C對標(biāo)準(zhǔn)C的擴(kuò)展。固件框架主要包含初始化、處理標(biāo)準(zhǔn)USB設(shè)備請求以及USB掛起時的電源管理。
框架完成了一個簡單的任務(wù)循環(huán)(見圖4)。首先框架初始化內(nèi)部的狀態(tài)變量,然后條用用戶初始化函數(shù)TD_Init。從該函數(shù)返回后,框架初始化USB接口到未配置狀態(tài)并使能中斷。然后每隔1s進(jìn)行一次設(shè)備重枚舉,直到端點(diǎn)0接收到一個SETUP包。一旦檢測到SETUP包,框架將開始交互的任務(wù)調(diào)度,其任務(wù)調(diào)度的步驟如下:
?、僬{(diào)用用戶函數(shù)TD_Poll,實(shí)現(xiàn)數(shù)據(jù)采集。
②判斷是否有標(biāo)準(zhǔn)設(shè)備請求等待處理,如果有,則分析該請求并響應(yīng);其中,DR_VendorCmnd函數(shù)負(fù)責(zé)處理上位機(jī)發(fā)出的供應(yīng)商定義請求,通過上位機(jī)發(fā)送請求來控制AD采集的開始和結(jié)束。
?、叟袛郩SB內(nèi)核是否收到USB掛起信號。如果收到,則調(diào)用用戶函數(shù)TD_Suspend。從該函數(shù)成功返回后,再檢測是否發(fā)生USB喚醒事件。如果未檢測到,則處理器進(jìn)入掛起方式;如果檢測到,則調(diào)用用戶函數(shù)TD_Resume,程序繼續(xù)運(yùn)行。如果從TD_Suspend函數(shù)返回FALSE,則程序繼續(xù)運(yùn)行。
圖4. 固件程序流程圖
圖5. 驅(qū)動程序流程圖
評論