基于嵌入式實(shí)時(shí)操作系統(tǒng)的現(xiàn)場控制系統(tǒng)
1 引言
本文引用地址:http://butianyuan.cn/article/152146.htm今天,隨著控制、計(jì)算機(jī)、通訊、網(wǎng)絡(luò)等技術(shù)的發(fā)展,信息交換領(lǐng)域正在迅速覆蓋從工廠的現(xiàn)場設(shè)備層到控制、管理的各個(gè)層次。基于以太網(wǎng)的工業(yè)控制網(wǎng)絡(luò)具有數(shù)據(jù)傳輸率高、可靠性好、易維護(hù)、可遠(yuǎn)程傳輸、互操作性好等優(yōu)點(diǎn)。隨著互聯(lián)網(wǎng)技術(shù)的普及與推廣,以及網(wǎng)絡(luò)通信速率的提高、交換技術(shù)的發(fā)展,使得它受到了全球的擁護(hù)和軟硬件支持,并得到了迅速發(fā)展和普及。本文設(shè)計(jì)和開發(fā)了具有工業(yè)以太網(wǎng)功能的現(xiàn)場控制設(shè)備。
2 嵌入式操作系統(tǒng)的選擇
實(shí)時(shí)嵌入式操作系統(tǒng)的種類繁多,大體上可以分為兩種:商用型和免費(fèi)型的。商用型的實(shí)時(shí)操作系統(tǒng)功能穩(wěn)定、可靠、有完善的技術(shù)支持和售后服務(wù),但往往價(jià)格昂貴,如QNX和Windows CE等。免費(fèi)型的實(shí)時(shí)操作系統(tǒng)在價(jià)格方面具有優(yōu)勢,目前主要有Linux和μC/OS-II。由于商用實(shí)時(shí)操作系統(tǒng)的成本太高,采用免費(fèi)軟件是最好的選擇,因此嵌入式實(shí)時(shí)操作系統(tǒng)最終選擇了μC/OS-II。
3 μC/OS-Ⅱ下多任務(wù)程序的設(shè)計(jì)
程序的一開始通過一些宏定義對與μC/OS-Ⅱ運(yùn)行環(huán)境相關(guān)的一些配置參數(shù)、服務(wù)器的IP地址、網(wǎng)關(guān)以及子網(wǎng)掩碼等局域網(wǎng)參數(shù)做了設(shè)置,主程序中負(fù)責(zé)硬件初始化,初始化實(shí)時(shí)多任務(wù)操作統(tǒng),初始化TCP/IP協(xié)議棧,建立任務(wù),為其分配優(yōu)先級,激活各任務(wù)將其置為就緒態(tài)。然后在系統(tǒng)內(nèi)核RTOS的調(diào)度下,各個(gè)任務(wù)按照優(yōu)先級的不同依次投入運(yùn)行,任務(wù)運(yùn)行結(jié)構(gòu)如圖1所示。
圖1 任務(wù)運(yùn)行調(diào)度示意圖
3.1 故障監(jiān)控任務(wù)
監(jiān)控任務(wù)用來監(jiān)視當(dāng)前程序運(yùn)行狀態(tài),它的優(yōu)先級為最高,它判斷前一個(gè)運(yùn)行任務(wù)的運(yùn)行狀態(tài),如果有錯(cuò)誤發(fā)生就采取相應(yīng)的糾錯(cuò)方案,否則退回到等待狀態(tài)。被監(jiān)視任務(wù)正常運(yùn)行時(shí)其執(zhí)行時(shí)間是可預(yù)估的,被監(jiān)視任務(wù)在其即將運(yùn)行完畢時(shí)向監(jiān)視任務(wù)發(fā)送消息說明自身運(yùn)行正常。被監(jiān)視任務(wù)運(yùn)行時(shí),監(jiān)控任務(wù)處于等待態(tài),等待被監(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í)行順序的先后下一任務(wù)開始運(yùn)行,監(jiān)視任務(wù)等待下一任務(wù)發(fā)送的消息。若等待時(shí)間已過,監(jiān)控任務(wù)仍未收到消息,則系統(tǒng)的時(shí)間管理函數(shù)將強(qiáng)行把監(jiān)視任務(wù)設(shè)置為就緒態(tài)。因?yàn)楸O(jiān)控任務(wù)的優(yōu)先權(quán)是最高的,監(jiān)控任務(wù)將首先投入運(yùn)行,它將搶占對CPU的控制權(quán)并采取相應(yīng)的糾錯(cuò)方案,進(jìn)行相應(yīng)的故障處理,從而避免死機(jī)的發(fā)生。任務(wù)實(shí)現(xiàn)的流程圖如圖2所示。
圖2 故障監(jiān)控任務(wù)流程圖
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論