一種嵌入式電網(wǎng)監(jiān)測儀的實(shí)現(xiàn)方案
4 系統(tǒng)任務(wù)
圖2是基于μC/OS-II的嵌入式系統(tǒng)的框架結(jié)構(gòu)。按電網(wǎng)監(jiān)測系統(tǒng)所要實(shí)現(xiàn)的功能,整個系統(tǒng)劃分為二個中斷程序和五個并行存在的任務(wù)層。
中斷程序按其優(yōu)先級從高到低分別是網(wǎng)絡(luò)通信和數(shù)據(jù)采集。將系統(tǒng)的任務(wù)按其優(yōu)先級從高到低順序排列的次序是:系統(tǒng)監(jiān)控任務(wù),鍵盤掃描任務(wù),任務(wù)之間的通信,數(shù)據(jù)運(yùn)算統(tǒng)計處理任務(wù),液晶顯示任務(wù)。中斷發(fā)生時,系統(tǒng)將強(qiáng)行剝奪運(yùn)行態(tài)任務(wù)時CPU的使用權(quán),將它轉(zhuǎn)入中斷態(tài)并保存相關(guān)數(shù)據(jù)到堆棧區(qū)之后,執(zhí)行中斷服務(wù)程序。在中斷返回時,系統(tǒng)返回函數(shù)將重新進(jìn)行任務(wù)調(diào)度,將優(yōu)先權(quán)最高的就緒態(tài)任務(wù)轉(zhuǎn)為運(yùn)行態(tài)。
在該電網(wǎng)遠(yuǎn)程監(jiān)測系統(tǒng)軟件中,系統(tǒng)監(jiān)視任務(wù)優(yōu)先權(quán)最高,最先進(jìn)入運(yùn)行態(tài)。該任務(wù)分別查詢每一個被監(jiān)視的任務(wù)是否向其發(fā)送消息。按優(yōu)先權(quán)級別順序,鍵盤掃描任務(wù)將由就緒態(tài)轉(zhuǎn)為運(yùn)行態(tài)。在該任務(wù)將要執(zhí)行完畢時,向系統(tǒng)監(jiān)視任務(wù)發(fā)送消息,然后執(zhí)行延時函數(shù)將自身轉(zhuǎn)為掛起態(tài),交出CPU使用權(quán),讓其他任務(wù)得以執(zhí)行。如果沒有,則進(jìn)入掛起態(tài),再次等待其他被監(jiān)視任務(wù)的運(yùn)行消息。系統(tǒng)按任務(wù)優(yōu)先級繼續(xù)執(zhí)行優(yōu)先級高的就緒態(tài)任務(wù),依次類推。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論