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