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