時間片輪轉(zhuǎn)調(diào)度在微控制器C8051F020中的實現(xiàn)及應(yīng)用
在微機控制領(lǐng)域中,多數(shù)系統(tǒng)是實時控制系統(tǒng)。實時的含義是對隨機發(fā)生的外部事件做出及時的響應(yīng)并對其進行處理。為了更好地完成實時數(shù)據(jù)的采集、處理、存儲和相應(yīng)的多種實時控制操作,必須同時考慮到實時性和多任務(wù)并行性這2個因素。既要保證系統(tǒng)以足夠快的速度對外部事件進行響應(yīng)并處理,又能在宏觀上并行執(zhí)行多個任務(wù)。實時多任務(wù)系統(tǒng)依靠適當?shù)娜蝿?wù)調(diào)度方法來決定在系統(tǒng)中哪個任務(wù)可以獲得CPU和其他系統(tǒng)資源,哪個任務(wù)暫時退出運行狀態(tài),從而達到實時處理多任務(wù)的目的。時間片輪轉(zhuǎn)算法是實現(xiàn)多任務(wù)調(diào)度的常用算法。在這種算法中,如果將某個時間片分配給某個任務(wù),那么在此時間片內(nèi),這個任務(wù)獲得CPU并運行,然后在下個時間片到來時又將CPU分配給另一個任務(wù)。這樣,并發(fā)任務(wù)在微觀上交替運行,而在宏觀上并行執(zhí)行。
1實時多任務(wù)機制的實現(xiàn)
實時控制系統(tǒng)中允許多個實時任務(wù)并行執(zhí)行,在一些測控系統(tǒng)中有數(shù)據(jù)采集、端口檢測、模擬量輸出、開關(guān)量輸出數(shù)據(jù)處理和存儲等多種任務(wù)。在單片機中,要達到這樣的效果:在微觀上,某一時刻只能運行一個任務(wù),但在宏觀上這些任務(wù)是同時運行的。
實時任務(wù)通過分時處理實現(xiàn),相當于操作系統(tǒng)中的進程。每個任務(wù)有3種狀態(tài),即運行狀態(tài)、就緒狀態(tài)和等待狀態(tài),某個任務(wù)一旦建立后即處于這3種狀態(tài)之一。處于運行狀態(tài)的任務(wù)獨占CPU 和其他一些資源;就緒狀態(tài)是該任務(wù)已獲得了除處理機以外的一切所需資源,運行條件滿足,只因為缺少CPU而不能運行;等待狀態(tài)是一個任務(wù)在等待某個事件(如其他任務(wù)的信息,等待某系統(tǒng)資源等)的發(fā)生而暫時停止執(zhí)行。通過有效的任務(wù)調(diào)度來完成3個狀態(tài)的轉(zhuǎn)變。在實時多任務(wù)系統(tǒng)中任務(wù)調(diào)度算法的優(yōu)劣直接關(guān)系到系統(tǒng)的實時性與并行性。
時間片輪轉(zhuǎn)法是根據(jù)某一時間片的切換輪流地調(diào)度所有就緒任務(wù)的方法:將CPU 的運行時間劃分為許多小的時間片,由調(diào)度程序按一定順序分配給不同任務(wù),每個任務(wù)分別在自己的時間片內(nèi)訪問CPU,中斷實現(xiàn)系統(tǒng)對外界信息的實時響應(yīng),同時擔(dān)當時間片切換的驅(qū)動力。考慮到不同任務(wù)的實時性要求不同,不能統(tǒng)一劃分,我們采取以最小時間片為基準,其他時間片是他的倍數(shù),這樣就提高了系統(tǒng)的資源利用率。
在這種調(diào)度算法中,時間片的選擇很重要,通常要考慮所要完成任務(wù)的數(shù)目、各任務(wù)的不同實時性要求、系統(tǒng)的處理能力等因素。
2時間片輪轉(zhuǎn)調(diào)度在火車閘片摩擦系數(shù)測試系統(tǒng)中的應(yīng)用
2.1系統(tǒng)分析
要模擬火車剎車的過程,完成對火車閘片的摩擦系數(shù)的測試,需實現(xiàn)以下幾個步驟:
(1)用模擬輸出端口輸出0~10 V電壓作為變頻器的頻率設(shè)定值,使變頻器控制電機按升速時間將車輪轉(zhuǎn)速逐步提升,按升速時間達到設(shè)定速度。
(2)據(jù)設(shè)定氣壓和實際氣壓的比較決定應(yīng)該排氣還是進氣,并執(zhí)行相應(yīng)的打開/關(guān)閉進氣閥或出氣閥的操作,使氣壓達到設(shè)定值。在未測試前要不斷檢測氣壓狀態(tài),保持氣壓的穩(wěn)定。
(3)測試按鈕按下時,打開加壓閥,開始剎車。由于要模擬火車的剎車慣量,電機不能立即停止,因此在加壓的同時,要使變頻器控制電機逐步減速。系統(tǒng)按降速時間降到0,在這個減速剎車的過程中,同時記錄從測力傳感器采集并平滑后的數(shù)據(jù)放入指定變量區(qū)。
既要保證任務(wù)的實時響應(yīng),又要實現(xiàn)多任務(wù)在宏觀上的同時進行,我們采用時間片輪轉(zhuǎn)調(diào)度算法,且根據(jù)不同任務(wù)的不同實時性要求, 以最小時間片為基準,劃分不同時間片。該測試系統(tǒng)要實現(xiàn)數(shù)據(jù)采集,模擬量輸出,開關(guān)量輸出/讀入等操作,這些操作對應(yīng)的具體任務(wù)及其實時性要求如表1所示。
實時性要求相同的任務(wù),為同一級別,用狀態(tài)變量來區(qū)分任務(wù)是處于就緒狀態(tài),還是等待狀態(tài),從而決定是否分配時間片。
2.2時間片的選定
在時間片輪轉(zhuǎn)算法中,時間片的大小對系統(tǒng)性能有很大影響。如果時間片太大,大到每個任務(wù)都能在該時間片內(nèi)執(zhí)行完畢,則時間片輪轉(zhuǎn)調(diào)度算法就失去意義,而且可能耽 誤一些實時性較強的任務(wù);時間片過小,會使一些任務(wù)來不及響應(yīng)。由上面的分析,可以看出在這個測試系統(tǒng)中,所要選擇的基準時間片為1 ms,其他的時間片為他的倍數(shù)。
3軟件設(shè)計與實現(xiàn)
3.1軟件設(shè)計
每個子任務(wù)時間片的劃分由系統(tǒng)時鐘定時完成,系統(tǒng)調(diào)度程序?qū)⑺纸o各個子任務(wù)。系統(tǒng)用其內(nèi)帶的定時器來完成這一工作,定時頻率設(shè)計為各子任務(wù)要求執(zhí)行頻率的整數(shù)倍。
使用CYGNAL公司的C8051F020微控制器,系統(tǒng)時鐘選擇f=11.059 2 MHz;采用定時器中斷和記數(shù)來實現(xiàn)時間片:
主要測試任務(wù)的實時要求為10 ms,將10 ms劃分為10塊,一個任務(wù)執(zhí)行時間為1 ms,那么每隔10 ms,一個特定任務(wù)就會調(diào)度一次,且在這10 ms內(nèi),可以讓10個任務(wù)得到交替執(zhí)行,既滿足了實時性要求,又實現(xiàn)了多任務(wù)操作。其調(diào)度結(jié)構(gòu)如下:
有些任務(wù),要以其他任務(wù)的完成為前提,如:在速度未到達設(shè)定值前,不能進行測試 操作,不能執(zhí)行降速任務(wù),因而該任務(wù)處于等待狀態(tài)。必須根據(jù)任務(wù)所處的狀態(tài),動態(tài)地加載任務(wù)。
在測試過程中,DA值輸出為10 ms一次,每執(zhí)行一個時間片,進行記數(shù),記到n時, D A值增加25個,即以n×10 ms為周期,DA值增加一次,使變頻器控制電機轉(zhuǎn)速勻速上升。下降過程也同樣,這樣,既能保證DA值勻速上升/下降,又能根據(jù)最大DA值(10 V輸出對應(yīng)DA值為4 000)和每n個時間片周期內(nèi)下降的DA值來準確控制上升和下降時間,將大任務(wù)分成一個個小任務(wù)來執(zhí)行,提高系統(tǒng)資源利用率和實時性。
3.2測試系統(tǒng)的實現(xiàn)
下位機用時間片輪轉(zhuǎn)調(diào)度法實現(xiàn)實時多任務(wù)系統(tǒng)。上位 機用虛擬儀器開發(fā)平臺LabVIEW 實現(xiàn)人機界面,通過ModBUS協(xié)議和下位機通信,在指定數(shù)據(jù)區(qū)寫入各設(shè)定參數(shù),進行測試,把測試結(jié)果存放在指定數(shù)據(jù)區(qū),取得數(shù)據(jù)后經(jīng)公式換算得到摩擦系數(shù),降速過程中每一單位速度(km/h)數(shù)對應(yīng)一個摩擦系數(shù)瞬時值,得到的曲線如圖1所示。
?
4結(jié)語
對于實時多任務(wù)操作系統(tǒng),主要任務(wù)是對實時性要求不同的各種任務(wù)做出及時響應(yīng)。
在單片機中引入時間片輪轉(zhuǎn)調(diào)度的任務(wù)分配方法,有 效地改善了系統(tǒng)的結(jié)構(gòu),系統(tǒng)可以在宏 觀上并行執(zhí)行各種任務(wù), 使資源的利用率進一步提高;并使其在事件發(fā)生時能夠在嚴格的時 限內(nèi)做出響應(yīng),從而實現(xiàn)了實時多任務(wù)的測控系統(tǒng)。
參考文獻
[1]馬忠梅,籍順心,張凱,等.單片機的C語言應(yīng)用程序設(shè)計[M] .北京:北京航空航天大學(xué)出版社,2001.
[2]徐士良,朱明方.軟件應(yīng)用技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社 ,2000.
[3]龐麗萍.操作系統(tǒng)原理[M].武漢:華中理工大學(xué)出版社,1987.
[4]李剛,林凌.與8051兼容的高性能高速單片機C8051FXXX系列[M].北京:北京航空航天大學(xué)出版社,2002.