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