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

          新聞中心

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

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

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

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

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

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

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

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

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

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

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

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

            5  結(jié)束語

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

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

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



          上一頁 1 2 3 下一頁

          評論


          相關(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); })();