基于嵌入式技術(shù)的水泥回轉窯胴體溫度監測系統設計
3 嵌入式系統軟件設計
系統采用μC/OS-II操作系統作為應用軟件的平臺,可以避免傳統的前后臺程序設計時(shí)伴隨系統功能增加而造成程序編寫(xiě)量呈指數增加以及資源調度不當發(fā)生的死鎖現象,同時(shí)也提高了系統的實(shí)時(shí)性和可靠性。
3.1 μC/OS-II的移植
μC/OS-II是一個(gè)源碼開(kāi)放的嵌入式多任務(wù)實(shí)時(shí)操作系統內核。其核心代碼結構簡(jiǎn)潔精練,具有足夠的穩定性和安全性。μC/OS-II的移植對處理器有一定的要求,比如必須具有響應中斷的能力,并具有開(kāi)關(guān)中斷的指令,處理器必須可支持一定數量的硬件堆棧,并且應該有對堆棧指令進(jìn)行讀/寫(xiě)操作的指令等。同時(shí),移植時(shí)編譯器應該具有產(chǎn)生可重入代碼的能力。本設計所選用的處理器LPC2119以及開(kāi)發(fā)工具ADSl.2能滿(mǎn)足移植要求。μC/OS-II的文件系統結構包括核心代碼部分、配置代碼部分、處理器相關(guān)代碼部分。其中處理器相關(guān)代碼部分是移植時(shí)需要修改的部分,它包括OS_CPU.H、OS_CPU_C.C、OS_CPU_A.S 3個(gè)文件,OC_CPU.H包括數據類(lèi)型定義、堆棧單位定義、堆棧增長(cháng)方向定義、關(guān)中斷和開(kāi)中斷宏定義等。
OS_CPU_C.C包含6個(gè)函數,其中,OSInetEnter()是任務(wù)堆棧初始化函數,是必需的,其他5個(gè)函數都是鉤子函數,可以為空。
OS_CPU_A.S這部分需要對處理器和寄存器進(jìn)行操作,用匯編語(yǔ)言編寫(xiě),包括四個(gè)函數:OSStartHighRdy()函數被OSStart()調用,使就緒的最高優(yōu)先級任務(wù)運行:OSCtwSw()在任務(wù)級切換函數中調用,保存任務(wù)環(huán)境變量,將當前SP存入TCB中,載入就緒最高優(yōu)先級任務(wù)的SP,中斷返回等;OSIntCtxSw()在退出中斷服務(wù)函數OSIntExit()中調用,實(shí)現中斷級任務(wù)的切換;OSTicklSR()是系統時(shí)鐘節拍中斷服務(wù)函數,它為內核提供時(shí)鐘節拍,頻率越高系統負荷越重;使用硬件定時(shí)器作為時(shí)鐘中斷源,定時(shí)中斷頻率一般為10~100Hz。
3.2 用戶(hù)任務(wù)設計
嵌入式系統中,合理的劃分任務(wù)及優(yōu)先級,不但能簡(jiǎn)化軟件設計的復雜性、任務(wù)調度的正確性,而且還能增強系統的穩定性、健壯性以及實(shí)時(shí)性。
本系統軟件主要功能有:a.回轉窯工況顯示:b.溫度數據關(guān)聯(lián)處理;c.窯同步信號采集;d.回轉窯胴體溫度掃描。
基于μC/OS-II實(shí)時(shí)操作系統,根據回轉窯胴體溫度監測系統的功能要求,劃分了任務(wù)以及優(yōu)先級,任務(wù)優(yōu)先級取偶數,為以后系統升級留下空間。如表1所示。
評論