DSP的VCM低頻主動(dòng)隔振控制系統(tǒng)設(shè)計(jì)
核心文件之間的包含調(diào)用關(guān)系如圖4所示。其中,math.h為編譯器自帶的頭文件。本文引用地址:http://cafeforensic.com/article/161929.htm
軟件系統(tǒng)的架構(gòu)可以用圖5所示的3個(gè)流程來(lái)表示。圖5(a)是主程序流程,即該軟件系統(tǒng)的前臺(tái)操作流程。在主程序的大循環(huán)(while(1){;})中,系統(tǒng)會(huì)不斷地從消息隊(duì)列中取消息,判斷消息類型,然后根據(jù)消息類型和消息值執(zhí)行相應(yīng)操作。圖5(b)是系統(tǒng)時(shí)鐘節(jié)拍的中斷服務(wù)函數(shù)流程。該時(shí)鐘節(jié)拍由硬件定時(shí)器Timer 2(T2)產(chǎn)生,節(jié)拍周期可調(diào),通常為20ms。每個(gè)時(shí)鐘節(jié)拍周期到了之后,系統(tǒng)中斷并進(jìn)人中斷服務(wù)函數(shù),執(zhí)行T2例行程序,這是系統(tǒng)的后臺(tái)操作。圖5(c)是T2例行程序的流程。進(jìn)入該例行程序,首先檢查有沒(méi)有軟件時(shí)鐘,如果有則調(diào)用軟件時(shí)鐘服務(wù)函數(shù),然后執(zhí)行系統(tǒng)例行程序。如果沒(méi)有,則直接調(diào)用系統(tǒng)例行程序。
軟件時(shí)鐘是一種基于系統(tǒng)時(shí)鐘節(jié)拍的定時(shí)操作,可以把它理解成鬧鐘,即每個(gè)一定時(shí)間都執(zhí)行某一操作,或僅是單次操作。軟件時(shí)鐘對(duì)應(yīng)的操作,可以送進(jìn)消息隊(duì)列在前臺(tái)執(zhí)行,也可以在中斷中執(zhí)行。但不宜把太多的軟件鬧鐘設(shè)為在消息隊(duì)列中執(zhí)行。
消息傳遞機(jī)制是該軟件系統(tǒng)前后臺(tái)配合的紐帶。所有后臺(tái)操作或外部請(qǐng)求都可以通過(guò)消息包的方式送進(jìn)消息隊(duì)列,然后在前臺(tái)以取消息、解消息的方式獲取需要處理的信息,然后執(zhí)行相應(yīng)的操作。目前,消息隊(duì)列是FIFO的方式,不支持優(yōu)先級(jí),在實(shí)際應(yīng)用時(shí)一定要保證消息隊(duì)列的容量足夠大。
結(jié)語(yǔ)
經(jīng)過(guò)實(shí)驗(yàn)調(diào)試,基于該VCM控制系統(tǒng)的低頻隔振平臺(tái)能有效地動(dòng)態(tài)抑制外界振動(dòng)干擾。此外,基于時(shí)鐘節(jié)拍和消息機(jī)制的軟件系統(tǒng)被多次移植到其他項(xiàng)目應(yīng)用上,均取得了良好的效果。
評(píng)論