<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式實(shí)現地鐵雜散電流監測裝置

嵌入式實(shí)現地鐵雜散電流監測裝置

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

本文引用地址:http://dyxdggzs.com/article/150392.htm

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

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

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

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

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

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

  4 系統的工作過(guò)程

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

  5  結束語(yǔ)

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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



上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>