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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 時(shí)間片輪轉(zhuǎn)調(diào)度在微控制器C8051F020中的實(shí)現(xiàn)及應(yīng)用

          時(shí)間片輪轉(zhuǎn)調(diào)度在微控制器C8051F020中的實(shí)現(xiàn)及應(yīng)用

          作者: 時(shí)間:2012-03-13 來源:網(wǎng)絡(luò) 收藏

          在微機(jī)控制領(lǐng)域中,多數(shù)系統(tǒng)是實(shí)時(shí)控制系統(tǒng)。實(shí)時(shí)的含義是對(duì)隨機(jī)發(fā)生的外部事件做出及時(shí)的響應(yīng)并對(duì)其進(jìn)行處理。為了更好地完成實(shí)時(shí)數(shù)據(jù)的采集、處理、存儲(chǔ)和相應(yīng)的多種實(shí)時(shí)控制操作,必須同時(shí)考慮到實(shí)時(shí)性和多任務(wù)并行性這2個(gè)因素。既要保證系統(tǒng)以足夠快的速度對(duì)外部事件進(jìn)行響應(yīng)并處理,又能在宏觀上并行執(zhí)行多個(gè)任務(wù)。實(shí)時(shí)多任務(wù)系統(tǒng)依靠適當(dāng)?shù)娜蝿?wù)方法來決定在系統(tǒng)中哪個(gè)任務(wù)可以獲得CPU和其他系統(tǒng)資源,哪個(gè)任務(wù)暫時(shí)退出運(yùn)行狀態(tài),從而達(dá)到實(shí)時(shí)處理多任務(wù)的目的。算法是多任務(wù)的常用算法。在這種算法中,如果將某個(gè)片分配給某個(gè)任務(wù),那么在此片內(nèi),這個(gè)任務(wù)獲得CPU并運(yùn)行,然后在下個(gè)時(shí)間片到來時(shí)又將CPU分配給另一個(gè)任務(wù)。這樣,并發(fā)任務(wù)在微觀上交替運(yùn)行,而在宏觀上并行執(zhí)行。

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

          1實(shí)時(shí)多任務(wù)機(jī)制的

          實(shí)時(shí)控制系統(tǒng)中允許多個(gè)實(shí)時(shí)任務(wù)并行執(zhí)行,在一些測(cè)控系統(tǒng)中有數(shù)據(jù)采集、端口檢測(cè)、模擬量輸出、開關(guān)量輸出數(shù)據(jù)處理和存儲(chǔ)等多種任務(wù)。在單片機(jī)中,要達(dá)到這樣的效果:在微觀上,某一時(shí)刻只能運(yùn)行一個(gè)任務(wù),但在宏觀上這些任務(wù)是同時(shí)運(yùn)行的。

          實(shí)時(shí)任務(wù)通過分時(shí)處理,相當(dāng)于操作系統(tǒng)中的進(jìn)程。每個(gè)任務(wù)有3種狀態(tài),即運(yùn)行狀態(tài)、就緒狀態(tài)和等待狀態(tài),某個(gè)任務(wù)一旦建立后即處于這3種狀態(tài)之一。處于運(yùn)行狀態(tài)的任務(wù)獨(dú)占CPU 和其他一些資源;就緒狀態(tài)是該任務(wù)已獲得了除處理機(jī)以外的一切所需資源,運(yùn)行條件滿足,只因?yàn)槿鄙貱PU而不能運(yùn)行;等待狀態(tài)是一個(gè)任務(wù)在等待某個(gè)事件(如其他任務(wù)的信息,等待某系統(tǒng)資源等)的發(fā)生而暫時(shí)停止執(zhí)行。通過有效的任務(wù)來完成3個(gè)狀態(tài)的轉(zhuǎn)變。在實(shí)時(shí)多任務(wù)系統(tǒng)中任務(wù)調(diào)度算法的優(yōu)劣直接關(guān)系到系統(tǒng)的實(shí)時(shí)性與并行性。

          時(shí)間片法是根據(jù)某一時(shí)間片的切換輪流地調(diào)度所有就緒任務(wù)的方法:將CPU 的運(yùn)行時(shí)間劃分為許多小的時(shí)間片,由調(diào)度程序按一定順序分配給不同任務(wù),每個(gè)任務(wù)分別在自己的時(shí)間片內(nèi)訪問CPU,中斷實(shí)現(xiàn)系統(tǒng)對(duì)外界信息的實(shí)時(shí)響應(yīng),同時(shí)擔(dān)當(dāng)時(shí)間片切換的驅(qū)動(dòng)力??紤]到不同任務(wù)的實(shí)時(shí)性要求不同,不能統(tǒng)一劃分,我們采取以最小時(shí)間片為基準(zhǔn),其他時(shí)間片是他的倍數(shù),這樣就提高了系統(tǒng)的資源利用率。

          在這種調(diào)度算法中,時(shí)間片的選擇很重要,通常要考慮所要完成任務(wù)的數(shù)目、各任務(wù)的不同實(shí)時(shí)性要求、系統(tǒng)的處理能力等因素。

          2時(shí)間片調(diào)度在火車閘片摩擦系數(shù)測(cè)試系統(tǒng)中的

          2.1系統(tǒng)分析

          要模擬火車剎車的過程,完成對(duì)火車閘片的摩擦系數(shù)的測(cè)試,需實(shí)現(xiàn)以下幾個(gè)步驟:

          (1)用模擬輸出端口輸出0~10 V電壓作為變頻器的頻率設(shè)定值,使變頻器控制電機(jī)按升速時(shí)間將車輪轉(zhuǎn)速逐步提升,按升速時(shí)間達(dá)到設(shè)定速度。

          (2)據(jù)設(shè)定氣壓和實(shí)際氣壓的比較決定應(yīng)該排氣還是進(jìn)氣,并執(zhí)行相應(yīng)的打開/關(guān)閉進(jìn)氣閥或出氣閥的操作,使氣壓達(dá)到設(shè)定值。在未測(cè)試前要不斷檢測(cè)氣壓狀態(tài),保持氣壓的穩(wěn)定。

          (3)測(cè)試按鈕按下時(shí),打開加壓閥,開始剎車。由于要模擬火車的剎車慣量,電機(jī)不能立即停止,因此在加壓的同時(shí),要使變頻器控制電機(jī)逐步減速。系統(tǒng)按降速時(shí)間降到0,在這個(gè)減速剎車的過程中,同時(shí)記錄從測(cè)力傳感器采集并平滑后的數(shù)據(jù)放入指定變量區(qū)。

          既要保證任務(wù)的實(shí)時(shí)響應(yīng),又要實(shí)現(xiàn)多任務(wù)在宏觀上的同時(shí)進(jìn)行,我們采用時(shí)間片輪轉(zhuǎn)調(diào)度算法,且根據(jù)不同任務(wù)的不同實(shí)時(shí)性要求, 以最小時(shí)間片為基準(zhǔn),劃分不同時(shí)間片。該測(cè)試系統(tǒng)要實(shí)現(xiàn)數(shù)據(jù)采集,模擬量輸出,開關(guān)量輸出/讀入等操作,這些操作對(duì)應(yīng)的具體任務(wù)及其實(shí)時(shí)性要求如表1所示。

          63.jpg

          實(shí)時(shí)性要求相同的任務(wù),為同一級(jí)別,用狀態(tài)變量來區(qū)分任務(wù)是處于就緒狀態(tài),還是等待狀態(tài),從而決定是否分配時(shí)間片。

          2.2時(shí)間片的選定

          在時(shí)間片輪轉(zhuǎn)算法中,時(shí)間片的大小對(duì)系統(tǒng)性能有很大影響。如果時(shí)間片太大,大到每個(gè)任務(wù)都能在該時(shí)間片內(nèi)執(zhí)行完畢,則時(shí)間片輪轉(zhuǎn)調(diào)度算法就失去意義,而且可能耽 誤一些實(shí)時(shí)性較強(qiáng)的任務(wù);時(shí)間片過小,會(huì)使一些任務(wù)來不及響應(yīng)。由上面的分析,可以看出在這個(gè)測(cè)試系統(tǒng)中,所要選擇的基準(zhǔn)時(shí)間片為1 ms,其他的時(shí)間片為他的倍數(shù)。


          上一頁 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); })();