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