基于裸機編程的實時系統(tǒng)
發(fā)布時間:2007/8/29 0:00:00 訪問次數(shù):926
摘要:在系統(tǒng)控制過程中,實時性是系統(tǒng)性能的一個重要測試指標。應(yīng)用實時操作系統(tǒng)是保證實時性的一種普遍方法,但是一些資源相對缺乏的單片機是不適合用操作系統(tǒng)的。本文介紹在中低檔控制系統(tǒng)中,在不采用實時操作系統(tǒng)的情況下,如何對多個任務(wù)進行控制,以達到實時性要求的方法。
關(guān)鍵詞:嵌入式系統(tǒng) 單片機 實時操作系統(tǒng)
引 言
在嵌入式控制系統(tǒng)的設(shè)計中,如何對被控制的多個任務(wù)進行有效協(xié)調(diào),使其動作順序合理、響應(yīng)速度快捷,往往是設(shè)計者所考慮的一個很重要的方面,也是衡量檢驗一個系統(tǒng)的綜合性能的重要指標。為了在多個任務(wù)的協(xié)調(diào)控制中滿足實時性的要求,設(shè)計者往往會考慮在系統(tǒng)中嵌入目前流行的某種實時操作系統(tǒng),F(xiàn)在也有一些通過驗證的比較優(yōu)秀的實時操作系統(tǒng)可供選擇,有的源代碼甚至是免費提供的,網(wǎng)上也有大量的移植成功的源代碼范例;趯崟r操作系統(tǒng)編程可以大大縮短開發(fā)的周期,實時性也有足夠的保證;趯崟r操作系統(tǒng)編程的代價之一是,增加了程序代碼的長度;代價之二是,需要較多的RAM空間,在不擴展片外存儲器的情況下,中低檔單片機是難以勝任的。另一方面,大部分中低檔應(yīng)用系統(tǒng)通過合理的設(shè)計,采用基于裸機編程(沒有實時操作系統(tǒng))的方法,也可以保證一定的實時性,從而達到實時控制的要求,這是本文所要介紹的內(nèi)容。
1 系統(tǒng)設(shè)計原理
1.1 通過定時中斷間隔的設(shè)計來保證實時性
為了完成控制系統(tǒng)中多任務(wù)的實時響應(yīng)要求,可以利用定時中斷作為系統(tǒng)的時鐘。每個中斷的間隔作為時鐘的最小基本單位,這個值要小于或等于被控制的各個任務(wù)中對時間要求最苛刻的任務(wù)的最大允許響應(yīng)時間。定時間隔越短,響應(yīng)越快捷,但系統(tǒng)CPU的負擔也越重(因為CPU休眠的時間也越來越少)。這是一對相互矛盾的事物,需要設(shè)計者謹慎的協(xié)調(diào)才能達到最完美的效果。例如在配料控制系統(tǒng)中,如果加料速度為20 kg/s,要求配料誤差為1 kg,則系統(tǒng)的實時性必須保證在50 ms之內(nèi)。為了留有余地,可將定時中斷間隔設(shè)置為20 ms。
1.2 通過對所有任務(wù)的及時“照看”來管理多任務(wù)
可以根據(jù)各個任務(wù)對實時性要求的不同程度,將任務(wù)分為不同的類型。對實時性要求越是苛刻的任務(wù),就需要得到系統(tǒng)越頻繁的“照看”。對于實時性要求不高的任務(wù),系統(tǒng)對它的“照看”時間間隔可以長一些。例如,有兩個任務(wù)A和B,任務(wù)A每秒必須“照看”10次,任務(wù)B每秒必須“照看”2次,則控制流程如圖1所示。從圖1中可以看出,任務(wù)A每隔0.1 s“照看”1次,任務(wù)B每隔0.5 s“照看”1次。對實時性要求基本相同的若干任務(wù),可依次“照看”,其程序流程如圖2所示。
圖1處理實時性要求不同的任務(wù)
圖2處理實時性要求基本相同的任務(wù)
將所有任務(wù)都放在定時監(jiān)控循環(huán)中來“照看”,就可以使各個任務(wù)得到實時“照看”,問題的關(guān)鍵是系統(tǒng)如何“照看”各個任務(wù)。如果某任務(wù)運行一次所需要的時間遠小于定時間隔,則該任務(wù)可安排在系統(tǒng)“照看”它時完整地執(zhí)行一次。在這種情況下,“照看”某任務(wù)和“運行”某任務(wù)是一回事。如果某任務(wù)的運行時間遠大于定時間隔,例如在配料系統(tǒng)中,一次配料任務(wù)需要數(shù)十秒鐘,而定時間隔只有20 ms,因此,在“照看”該任務(wù)時不可能等待它完成后再“照看”其他任務(wù),否則系統(tǒng)就會崩潰。為此,系統(tǒng)對任何任務(wù)的“照看”時間必須遠小于定時間隔,只有這樣才能保證系統(tǒng)在一個定時間隔中完成對所有任務(wù)的“照看”。由此可以看出,在本方法中,任何任務(wù)都不能較長時間單獨占有CPU,而是在不斷地得到系統(tǒng)的“照看”,通過“照看”來維持各個任務(wù)的正常運行。
1.3將任務(wù)分解為若干狀態(tài)
對于執(zhí)行時間大于定時間隔的任務(wù),其執(zhí)行過程都是由若干不同狀態(tài)構(gòu)成的。在不同狀態(tài)下,需要系統(tǒng)進行不同方式的“照看”,為此,為這個任務(wù)設(shè)置一個狀態(tài)變量,以指示該任務(wù)當前的狀態(tài)。當系統(tǒng)“照看”該任務(wù)時,首先讀取該任務(wù)的狀態(tài)變量,然后根據(jù)狀態(tài)變量的值來執(zhí)行對應(yīng)的“照看”操作。
摘要:在系統(tǒng)控制過程中,實時性是系統(tǒng)性能的一個重要測試指標。應(yīng)用實時操作系統(tǒng)是保證實時性的一種普遍方法,但是一些資源相對缺乏的單片機是不適合用操作系統(tǒng)的。本文介紹在中低檔控制系統(tǒng)中,在不采用實時操作系統(tǒng)的情況下,如何對多個任務(wù)進行控制,以達到實時性要求的方法。
關(guān)鍵詞:嵌入式系統(tǒng) 單片機 實時操作系統(tǒng)
引 言
在嵌入式控制系統(tǒng)的設(shè)計中,如何對被控制的多個任務(wù)進行有效協(xié)調(diào),使其動作順序合理、響應(yīng)速度快捷,往往是設(shè)計者所考慮的一個很重要的方面,也是衡量檢驗一個系統(tǒng)的綜合性能的重要指標。為了在多個任務(wù)的協(xié)調(diào)控制中滿足實時性的要求,設(shè)計者往往會考慮在系統(tǒng)中嵌入目前流行的某種實時操作系統(tǒng),F(xiàn)在也有一些通過驗證的比較優(yōu)秀的實時操作系統(tǒng)可供選擇,有的源代碼甚至是免費提供的,網(wǎng)上也有大量的移植成功的源代碼范例;趯崟r操作系統(tǒng)編程可以大大縮短開發(fā)的周期,實時性也有足夠的保證;趯崟r操作系統(tǒng)編程的代價之一是,增加了程序代碼的長度;代價之二是,需要較多的RAM空間,在不擴展片外存儲器的情況下,中低檔單片機是難以勝任的。另一方面,大部分中低檔應(yīng)用系統(tǒng)通過合理的設(shè)計,采用基于裸機編程(沒有實時操作系統(tǒng))的方法,也可以保證一定的實時性,從而達到實時控制的要求,這是本文所要介紹的內(nèi)容。
1 系統(tǒng)設(shè)計原理
1.1 通過定時中斷間隔的設(shè)計來保證實時性
為了完成控制系統(tǒng)中多任務(wù)的實時響應(yīng)要求,可以利用定時中斷作為系統(tǒng)的時鐘。每個中斷的間隔作為時鐘的最小基本單位,這個值要小于或等于被控制的各個任務(wù)中對時間要求最苛刻的任務(wù)的最大允許響應(yīng)時間。定時間隔越短,響應(yīng)越快捷,但系統(tǒng)CPU的負擔也越重(因為CPU休眠的時間也越來越少)。這是一對相互矛盾的事物,需要設(shè)計者謹慎的協(xié)調(diào)才能達到最完美的效果。例如在配料控制系統(tǒng)中,如果加料速度為20 kg/s,要求配料誤差為1 kg,則系統(tǒng)的實時性必須保證在50 ms之內(nèi)。為了留有余地,可將定時中斷間隔設(shè)置為20 ms。
1.2 通過對所有任務(wù)的及時“照看”來管理多任務(wù)
可以根據(jù)各個任務(wù)對實時性要求的不同程度,將任務(wù)分為不同的類型。對實時性要求越是苛刻的任務(wù),就需要得到系統(tǒng)越頻繁的“照看”。對于實時性要求不高的任務(wù),系統(tǒng)對它的“照看”時間間隔可以長一些。例如,有兩個任務(wù)A和B,任務(wù)A每秒必須“照看”10次,任務(wù)B每秒必須“照看”2次,則控制流程如圖1所示。從圖1中可以看出,任務(wù)A每隔0.1 s“照看”1次,任務(wù)B每隔0.5 s“照看”1次。對實時性要求基本相同的若干任務(wù),可依次“照看”,其程序流程如圖2所示。
圖1處理實時性要求不同的任務(wù)
圖2處理實時性要求基本相同的任務(wù)
將所有任務(wù)都放在定時監(jiān)控循環(huán)中來“照看”,就可以使各個任務(wù)得到實時“照看”,問題的關(guān)鍵是系統(tǒng)如何“照看”各個任務(wù)。如果某任務(wù)運行一次所需要的時間遠小于定時間隔,則該任務(wù)可安排在系統(tǒng)“照看”它時完整地執(zhí)行一次。在這種情況下,“照看”某任務(wù)和“運行”某任務(wù)是一回事。如果某任務(wù)的運行時間遠大于定時間隔,例如在配料系統(tǒng)中,一次配料任務(wù)需要數(shù)十秒鐘,而定時間隔只有20 ms,因此,在“照看”該任務(wù)時不可能等待它完成后再“照看”其他任務(wù),否則系統(tǒng)就會崩潰。為此,系統(tǒng)對任何任務(wù)的“照看”時間必須遠小于定時間隔,只有這樣才能保證系統(tǒng)在一個定時間隔中完成對所有任務(wù)的“照看”。由此可以看出,在本方法中,任何任務(wù)都不能較長時間單獨占有CPU,而是在不斷地得到系統(tǒng)的“照看”,通過“照看”來維持各個任務(wù)的正常運行。
1.3將任務(wù)分解為若干狀態(tài)
對于執(zhí)行時間大于定時間隔的任務(wù),其執(zhí)行過程都是由若干不同狀態(tài)構(gòu)成的。在不同狀態(tài)下,需要系統(tǒng)進行不同方式的“照看”,為此,為這個任務(wù)設(shè)置一個狀態(tài)變量,以指示該任務(wù)當前的狀態(tài)。當系統(tǒng)“照看”該任務(wù)時,首先讀取該任務(wù)的狀態(tài)變量,然后根據(jù)狀態(tài)變量的值來執(zhí)行對應(yīng)的“照看”操作。
熱門點擊
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究
- 嵌入式操作系統(tǒng)FreeRTOS的原理與實現(xiàn)
- μC/OS—II的嵌入式串口通信模塊設(shè)計
- UC系列通用嵌入式軟硬件平臺
- 關(guān)于uC/OS-II中優(yōu)先級翻轉(zhuǎn)問題
- Cache在嵌入式處理器中的使用問題
推薦技術(shù)資料
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究
深圳服務(wù)熱線:13692101218 13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)

深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式