超聲波流量計(jì) 超聲波換能器性能開(kāi)發(fā)及設(shè)計(jì)與實(shí)現(xiàn)五十二
4.4。4固件程序設(shè)計(jì)(超聲波流量計(jì))
所有基于微控制器及其井曝電路的功能設(shè)備的正常工作都離不開(kāi)匿彳牛的參與,露件的工作就是輔助硬件,或者說(shuō)是控制硬件來(lái)完成預(yù)期的設(shè)備功能。對(duì)于USB,固件程序主要完成以下的工作f33l:
(1)初始化工作,包括設(shè)置一些特殊功能寄存器的初值以實(shí)現(xiàn)所需的設(shè)備屬性或者功能,例如開(kāi)中斷、使能端點(diǎn)、配置端口等;
(2)輔助硬件完成設(shè)備的重枚舉過(guò)程,包括模擬設(shè)備的斷開(kāi)與重新連接,對(duì)收到的設(shè)置包進(jìn)行分析判斷,從而對(duì)主機(jī)的設(shè)備請(qǐng)求作出適當(dāng)?shù)捻憫?yīng),完成主機(jī)對(duì)設(shè)備的配置任務(wù);
(3)對(duì)中斷的處理;
(4)數(shù)據(jù)的接收與發(fā)送;國(guó)外圍電路的控制。
Cyress公司為EZ-USB FX2芯片提供了用Keil 51C開(kāi)發(fā)的固件庫(kù)和固件框架。固件庫(kù)中,fx2.h定義了一些常量、數(shù)據(jù)結(jié)構(gòu)、宏、通用函數(shù);fx2regs.h中包括位屏蔽定義和寄存器定義;EZUSB.LIB包含庫(kù)函數(shù)的二進(jìn)制代碼;USBJMPTB.OBJ包含USB中斷矢量和跳轉(zhuǎn)表;另外固件庫(kù)還包括一些函數(shù)和全局變量。固件框架實(shí)現(xiàn)了初始化芯片、處理USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求及掛起狀態(tài)下的電源管理等功能。專(zhuān)用固件文件包括FW.C、PERIPH.C、DSCR.ASl、EZUSB.LIB、USBJMPTB.OBJ,其中DSCR.A51是描述符;FW.C是固件的原始程序代碼,主要實(shí)現(xiàn)設(shè)備初始化和重新列舉和響應(yīng)設(shè)備請(qǐng)求;PERIPH.C是用戶子函數(shù)掛鉤的相關(guān)定義,包括任務(wù)分配、設(shè)備請(qǐng)求和USB總線中斷處理。
超聲波流量計(jì)