<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式實(shí)現(xiàn)地鐵雜散電流監(jiān)測(cè)裝置

          嵌入式實(shí)現(xiàn)地鐵雜散電流監(jiān)測(cè)裝置

          作者: 時(shí)間:2011-08-08 來源:網(wǎng)絡(luò) 收藏
          3. 4 任務(wù)的劃分和構(gòu)成

          本文引用地址:http://www.ex-cimer.com/article/150392.htm

            系統(tǒng)中并行存在的幾個(gè)任務(wù)按優(yōu)先級(jí)從高到低依次是:顯示任務(wù)、鍵盤管理任務(wù)、輸出任務(wù)、各路數(shù)據(jù)數(shù)據(jù)采集任務(wù)和數(shù)據(jù)處理任務(wù)。系統(tǒng)采用靜態(tài)優(yōu)先級(jí),這樣系統(tǒng)的控制會(huì)相對(duì)比較簡單。

            系統(tǒng)中的每個(gè)任務(wù)包括應(yīng)用程序、任務(wù)堆棧以及任務(wù)控制塊( TCB) 三部分。任務(wù)控制塊是一個(gè)數(shù)據(jù)結(jié)構(gòu),當(dāng)任務(wù)的CPU 使用權(quán)被剝奪時(shí),ucosII 用它來保存該任務(wù)的狀態(tài)。當(dāng)任務(wù)重新獲得CPU 的使用權(quán)時(shí),任務(wù)控制塊能確保任務(wù)從被中斷的那一點(diǎn)執(zhí)行下去。操作系統(tǒng)可以通過查詢?nèi)蝿?wù)控制塊的內(nèi)容從而對(duì)任務(wù)進(jìn)行管理。系統(tǒng)中任務(wù)的狀態(tài)有5 種:休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、中斷服務(wù)和等待態(tài)。狀態(tài)之間的轉(zhuǎn)換如圖5所示。

            休眠態(tài)時(shí)任務(wù)駐留在程序空間中,還沒有交給uc/ os2II 管理。當(dāng)任務(wù)一旦建立,就進(jìn)入就緒態(tài)。就緒態(tài)中優(yōu)先級(jí)最高的任務(wù)轉(zhuǎn)為運(yùn)行態(tài)。如果系統(tǒng)的運(yùn)行導(dǎo)致就緒態(tài)中的一個(gè)任務(wù)優(yōu)先級(jí)高于運(yùn)行態(tài)的任務(wù)優(yōu)先級(jí),則系統(tǒng)通過調(diào)度使運(yùn)行態(tài)任務(wù)喪失對(duì)CPU 的控制權(quán)轉(zhuǎn)為等待態(tài)或者就緒態(tài),轉(zhuǎn)而運(yùn)行就緒態(tài)中的那個(gè)任務(wù)。這樣就了任務(wù)的切換。

            每個(gè)處于等待態(tài)的任務(wù)都對(duì)應(yīng)一個(gè)等待時(shí)間,時(shí)間管理函數(shù)可將等待時(shí)間已過的等待態(tài)的任務(wù)轉(zhuǎn)為就緒態(tài),這實(shí)際上也就是時(shí)鐘中斷的中斷服務(wù)程序。

            3.5 任務(wù)的通信和調(diào)度

            本系統(tǒng)中任務(wù)間的通信采用消息隊(duì)列來完成的。消息隊(duì)列是uc/ os2II 中的一種通信機(jī)制,可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一任務(wù)發(fā)送以指針方式定義的變量。為方便易用,采用消息隊(duì)列,用于數(shù)據(jù)采集任務(wù)、數(shù)據(jù)處理任務(wù)、鍵盤管理任務(wù)、輸出任務(wù)、顯示任務(wù)之間的通信。系統(tǒng)通過隊(duì)列控制塊來管理消息隊(duì)列,每個(gè)消息隊(duì)列對(duì)應(yīng)一個(gè)隊(duì)列控制塊。消息的存取基于優(yōu)先級(jí)原則,隊(duì)列控制塊中等待任務(wù)列表內(nèi)優(yōu)先級(jí)任務(wù)最高的任務(wù)先從消息隊(duì)列中取消息,系統(tǒng)采用搶占式內(nèi)核,調(diào)度函數(shù)總是保證優(yōu)先級(jí)最高的就緒態(tài)任務(wù)轉(zhuǎn)為運(yùn)行態(tài)。當(dāng)就緒態(tài)的任務(wù)搶占CPU 時(shí),系統(tǒng)執(zhí)行一次中斷服務(wù)程序。當(dāng)任務(wù)中的消息發(fā)送完成以及中斷返回時(shí),系統(tǒng)調(diào)用調(diào)度函數(shù),將任務(wù)從等待態(tài)轉(zhuǎn)為就緒態(tài),這樣就緒態(tài)中任務(wù)的最高優(yōu)先級(jí)就會(huì)發(fā)生變化,進(jìn)而影響到運(yùn)行態(tài)和就緒態(tài)間的任務(wù)切換。在本系統(tǒng)中,正在運(yùn)行的任務(wù)需要通過消息(調(diào)用OSQPEND( ) 函數(shù)) 來等待一個(gè)事件的發(fā)生。假如該事件一直沒有出現(xiàn),調(diào)用該函數(shù)的任務(wù)將被置于等待狀態(tài)(優(yōu)先級(jí)最低的任務(wù)可不需要等待某個(gè)消息) 。此時(shí)下一個(gè)優(yōu)先級(jí)最高的任務(wù)將立即獲得CPU 控制權(quán)。

            4 系統(tǒng)的工作過程

            本系統(tǒng)采用兩種方式顯示采集的大小,循環(huán)顯示和指定顯示,在正常工作情況下,采用循環(huán)顯示方式顯示8路采集大小,每采集完一路電壓,就向數(shù)據(jù)處理任務(wù)發(fā)送一條消息,而數(shù)據(jù)處理任務(wù)每處理完一路就向顯示任務(wù)發(fā)送一條消息,由于鍵盤掃描任務(wù)優(yōu)先級(jí)比數(shù)據(jù)采集任務(wù)最高,每當(dāng)用戶鍵盤選擇時(shí),就搶斷當(dāng)前采集任務(wù),而去處理用戶需要選擇的那路電壓,并相應(yīng)顯示。當(dāng)采集超過一定標(biāo)準(zhǔn)時(shí),系統(tǒng)會(huì)報(bào)警,以告之人員,另外本系統(tǒng)還留有串行232接口,用于和微機(jī)通信,以儲(chǔ)存雜散電流的歷史情況。當(dāng)所有任務(wù)運(yùn)行完后,開始下一個(gè)周期的運(yùn)行。應(yīng)用程序與uc/ os2II 的內(nèi)核是一起下載到單片機(jī)系統(tǒng)中。成功的移植需要對(duì)內(nèi)核程序進(jìn)行一定的修改,主要是修改內(nèi)核中與硬件密切相關(guān)的幾個(gè)文件,具體可參考相關(guān)文獻(xiàn).

            5  結(jié)束語

            本系統(tǒng)經(jīng)調(diào)試,軟硬件工作均正常。實(shí)驗(yàn)證明,本系統(tǒng)較傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)在安全性和實(shí)時(shí)性方面都有了很大的提高,完全能夠適應(yīng)復(fù)雜系統(tǒng)的需要。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          基爾霍夫電流相關(guān)文章:基爾霍夫電流定律



          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();