基于DSP的鋁電磁鑄造磁場控制器的設(shè)計和實現(xiàn)
(5)人機(jī)接口設(shè)計
人機(jī)接口處理采用專門的單片機(jī)進(jìn)行管理,單片機(jī)與系統(tǒng)主控制核心DSP間采用SPI總線形式通信,編程簡單且實現(xiàn)容易。單片機(jī)主要完成鍵盤掃描(參數(shù)的設(shè)置等)、液晶顯示(運(yùn)行檢測的參數(shù)顯示)功能。根據(jù)人機(jī)接口功能的需要,考慮性價比,選用新華龍推出的C8051F410單片機(jī),顯示裝置則選擇北京青云公司的LCM128×64藍(lán)色背光液晶,按照總體設(shè)計規(guī)劃設(shè)置6個按鍵,采用矩陣式結(jié)構(gòu)即可。人機(jī)接口框圖如圖6所示。 本文引用地址:http://m.butianyuan.cn/article/152311.htm
1.2 系統(tǒng)軟件設(shè)計
(1)系統(tǒng)軟件架構(gòu)
鑒于整個系統(tǒng)要實現(xiàn)的任務(wù)繁多,DSP各外設(shè)均被應(yīng)用,對處理的實時性要求比較高,并且DSP(TMS320F2808)平臺支持和能承載RTOS的開發(fā),所以系統(tǒng)軟件采用mC/OS-II設(shè)計。mC/OS-II是一種源碼公開、可移植、可固化(ROMable)、可裁減(scalable)、可剝奪性(preemptive)、占先式的實時多任務(wù)操作系統(tǒng)[3,5]。整個系統(tǒng)軟件分為兩步:a.μ C/OS-II到DSP移植;b.μC/OS-II平臺上軟件的編寫。μ C/OS-II到DSP移植只需要修改與處理器相關(guān)的OS_CPU.H、OS_CPU_C.C和OS CPU A.A三個文件的代碼,移植的工作量相對較小。由于μ C/OS-II是基于優(yōu)先級的搶占式實時多任務(wù)操作系統(tǒng),因此,在進(jìn)行代碼編寫之前,應(yīng)先確認(rèn)系統(tǒng)的任務(wù)數(shù),每個任務(wù)的優(yōu)先級別,并為每個任務(wù)分配一定數(shù)量的堆??臻g以供運(yùn)行時調(diào)用。也就是說,要首先對復(fù)合磁場控制系統(tǒng)軟件的各功能模塊進(jìn)行管理。
根據(jù)復(fù)合磁場控制系統(tǒng)的特殊性,將控制軟件分為0~9十個級別,表1為軟件各功能模塊以及分別對應(yīng)的任務(wù)名稱、任務(wù)優(yōu)先級別。
控制程序的流程是:首先進(jìn)行CPU及程序數(shù)據(jù)初始化;再進(jìn)行操作系統(tǒng)初始化,主要完成任務(wù)控制塊(TCB)初始化、TCB優(yōu)先級表初始化、TCB鏈表初始化、事件控制塊(ECB)鏈表初始化、空任務(wù)的創(chuàng)建等等;然后創(chuàng)建任務(wù)D TK ST,在任務(wù)D TK ST中再創(chuàng)建其他任務(wù);最后啟動多任務(wù)調(diào)度。在多任務(wù)調(diào)度開始后,啟動時鐘節(jié)拍源開始計時,此節(jié)拍源給系統(tǒng)提供周期性的時鐘中斷信號,實現(xiàn)延時和超時確認(rèn)。當(dāng)時鐘中斷來臨時,系統(tǒng)把當(dāng)前正在執(zhí)行的任務(wù)掛起,保護(hù)現(xiàn)場,進(jìn)行中斷處理,判斷有無任務(wù)延時到期,若有,則使該任務(wù)進(jìn)入就緒態(tài),并把所有進(jìn)入就緒態(tài)的任務(wù)的優(yōu)先級進(jìn)行比較,通過任務(wù)切換去執(zhí)行最高優(yōu)先級的任務(wù),若沒有別的任務(wù)進(jìn)入就緒態(tài),則恢復(fù)現(xiàn)場繼續(xù)執(zhí)行原任務(wù)。任務(wù)之間通過信號量和消息郵箱進(jìn)行通信,任務(wù)和中斷之間通過消息郵箱進(jìn)行通信。
在保證功能實現(xiàn)的基礎(chǔ)上,為進(jìn)一步提高系統(tǒng)的可靠性,增加了系統(tǒng)監(jiān)控任務(wù)。該任務(wù)功能是監(jiān)視系統(tǒng)其他任務(wù)的運(yùn)行。被監(jiān)視任務(wù)在其即將運(yùn)行完畢時監(jiān)視任務(wù)發(fā)送消息說明自身運(yùn)行正常。被監(jiān)視任務(wù)運(yùn)行時,監(jiān)視任務(wù)等待被監(jiān)視任務(wù)給它發(fā)送消息,等待時間被設(shè)定為預(yù)計的任務(wù)正常運(yùn)行所需的最大時間。若等待時間內(nèi)監(jiān)視任務(wù)收到消息,則認(rèn)為發(fā)送消息的任務(wù)運(yùn)行正常,依照各任務(wù)執(zhí)行順序的開始運(yùn)行下一任務(wù),監(jiān)視任務(wù)等待下一任務(wù)發(fā)送的消息。若等待時間已過,監(jiān)視任務(wù)仍未收到消息,則系統(tǒng)的時間管理函數(shù)將強(qiáng)行把監(jiān)視任務(wù)視為就緒狀態(tài)。因為監(jiān)視任務(wù)的優(yōu)先權(quán)是最高的,它將搶占對CPU的控制權(quán)并采取相應(yīng)的糾錯方案以保證系統(tǒng)的穩(wěn)定運(yùn)行。
評論