實時嵌入式系統(tǒng)是什么?很多人都沒有明確的答案,甚至可能目前獲取到的都是一些似是而非的知識,簡單來說,實時嵌入式系統(tǒng)包括分類,約束和設(shè)計模式。
嵌入式系統(tǒng)設(shè)計是電氣和計算機工程領(lǐng)域中最A(yù)mazing但也是最具挑戰(zhàn)性的領(lǐng)域之一。如果您不確定嵌入式系統(tǒng)設(shè)計是什么,請一定要看完本篇。嵌入式系統(tǒng)設(shè)計如此具有挑戰(zhàn)性的很大原因在于嵌入式系統(tǒng)所需的眾多設(shè)計約束,這些限制條件可能包括功耗,有限的內(nèi)存,I/O可用性,溫度,空間限制,當然還有總體成本。對于某些嵌入式系統(tǒng),一個特別重要的約束是時間。
當系統(tǒng)必須在嚴格定義的時間內(nèi)響應(yīng)事件或請求時,我們將其稱為實時系統(tǒng)。這個定義的時間稱為截止日期。這些系統(tǒng)必須是可預(yù)測的,因此根據(jù)定義是確定性的。
如果嵌入了實時系統(tǒng),我們稱之為實時嵌入式系統(tǒng),我們在本文中可互換地使用這兩個術(shù)語。實時嵌入式系統(tǒng)很好的范例就是那些“關(guān)鍵任務(wù)”應(yīng)用,例如飛機控制,防抱死制動系統(tǒng),起搏器和可編程邏輯控制器等。
實時系統(tǒng)分類
可以針對錯過其時序約束的可接受性這個特點來對實時系統(tǒng)進行分類。
如果錯過時間限制是絕對不可接受的,例如,如果這可能導(dǎo)致人命,我們稱之為硬實時系統(tǒng),上面提到的起搏器就是這個類型。
如果錯過或者缺少時序約束是可以接受的,那我們稱之為軟實時系統(tǒng)。像電子郵件系統(tǒng),無線路由器和家里的一些有線電視盒也都具有設(shè)計要滿足的實時約束,但是,即便如此,錯過這些截止時間的后果往往很小或微不足道,例如,你可能會因為你最喜歡的電視節(jié)目需要緩沖一秒鐘而煩惱。當軟實時系統(tǒng)錯過給定操作的最后期限時,操作不會立即失去其所有值。相反,隨著時間的推移,該值會減小——即,隨著時間的推移越過截止日期,它會逐漸減小到零(參見下圖,左)。
許多系統(tǒng)存在于從硬到軟的頻譜上,其中錯過最后期限并不是不可接受的,所以沒必要去立即執(zhí)行操作,一旦執(zhí)行就失去了它的全部價值,位于此頻譜范圍內(nèi)的系統(tǒng)通常稱為固定實時系統(tǒng)(參見下圖,中間)。
在一個硬實時系統(tǒng)中,錯過的最后期限不僅會造成完全的價值損失,還會產(chǎn)生負值,即損害(見下圖,右圖)。
時間限制
每個實時系統(tǒng)都有一組設(shè)計滿足的時序約束,如果系統(tǒng)沒有時序約束,則不是實時的。這些時序約束可以分為兩類:事件響應(yīng)和任務(wù)調(diào)度。
事件響應(yīng)
事件是系統(tǒng)必須響應(yīng)的刺激因素。這些可以在硬件和軟件中啟動,它們表明發(fā)生了某些事情并且必須處理。當事件以內(nèi)部或外部中斷的形式出現(xiàn)時,它可能看起來最熟悉。例如,當按下按鈕時,系統(tǒng)可以感知到該按鈕并執(zhí)行必要的操作。系統(tǒng)檢測到更改時,可以生成事件。系統(tǒng)檢測到事件的時刻與響應(yīng)該事件的時刻之間的時間稱為延遲。延遲定義為響應(yīng)時間減去檢測時間。
任務(wù)調(diào)度
任務(wù)是一組需要由系統(tǒng)處理器運行的指令。一些實時系統(tǒng)設(shè)計人員更愿意安排任務(wù),特別是如果這些任務(wù)會定期運行。許多嵌入式系統(tǒng)需要重復(fù)檢測多個輸入,然后根據(jù)這些新信息修改輸出。這些類型的系統(tǒng)適合使用任務(wù)。通常使用稱為調(diào)度程序的軟件構(gòu)造來調(diào)度和運行這些任務(wù)。計劃任務(wù)運行與實際運行之間的時間稱為抖動。抖動定義為實際時間減去所需時間。
無論實時系統(tǒng)是使用事件響應(yīng),任務(wù)調(diào)度還是兩者,最終目標都是盡可能減少延遲和抖動,同時定義被認為可接受的最壞情況的上限。
設(shè)計方法
如何設(shè)計實時嵌入式系統(tǒng)?隨著系統(tǒng)要求的增長和時序約束的加劇,在滿足最后期限的同時管理嵌入式系統(tǒng)的所有需求變得越來越困難,以下是整個行業(yè)中使用的一些完善的原則。
輪詢
輪詢調(diào)度是用于管理實時系統(tǒng)約束的最熟知且廣泛使用的調(diào)度算法之一。它的工作方式與其名稱相同:它為每個系統(tǒng)組件提供了一個轉(zhuǎn)向,以使用共享資源并完成所需的任務(wù)。下圖顯示了CPU在切換到下一個任務(wù)之前為每個任務(wù)提供500毫秒的處理時間,任務(wù)可能會或可能不會在500毫秒內(nèi)完成,而接下去他們通常會在輪到他們的時候從他們離開的地方繼續(xù)。
隊列
實時系統(tǒng)中另一個有用的構(gòu)造是隊列。隊列可以被視為生產(chǎn)線,其中物品進入并等待處理。準備就緒后,系統(tǒng)將從隊列中刪除下一個項目并對其進行處理。通過這種方式,可以將需要執(zhí)行的新任務(wù)放入隊列中,并在系統(tǒng)處理之前執(zhí)行的任何任務(wù)時等待。最終,即使更多任務(wù)進入后面,也會處理新任務(wù)。下圖顯示了先進先出(FIFO)隊列,其中任務(wù)C位于隊列中,直到任務(wù)A和任務(wù)B都已處理完畢。
當管理時序約束的開銷非常大以至于使用任何單一設(shè)計方法或原理不再可行時,實時系統(tǒng)的設(shè)計和實現(xiàn)就出現(xiàn)了問題。正是在這一點上,實時操作系統(tǒng)成為最合適的解決方案。實時操作系統(tǒng)(RTOS)利用調(diào)度和排隊的設(shè)計模式,但它增加了更多功能,包括任務(wù)優(yōu)先級,中斷處理,任務(wù)間通信,文件系統(tǒng),多線程等,所有這些都是實現(xiàn)和超越時間約束目標的最有效方法。
流行的實時操作系統(tǒng)包括VxWorks,QNX,eCos,MbedOS和FreeRTOS。
以上前兩個是專有的,也就是收費的,但后面三個可以免費使用。MbedOS與Arm的Mbed平臺配合使用,F(xiàn)reeRTOS已經(jīng)移植到許多不同的微控制器上,在以后的文章中會介紹如何啟動和運行其中一個。
結(jié)論
我們對實時嵌入式系統(tǒng)進行了高級解析,重點介紹了如何對這些類型的系統(tǒng)進行分類和定義,我們根據(jù)系統(tǒng)錯過截止日期的可接受程度以及錯過截止日期的后果來對實時系統(tǒng)進行分類并且還討論了時序約束以及組織和實現(xiàn)實時系統(tǒng)的三種常用方法。本文雖然更多地關(guān)注概念性理解而不是實踐知識,但即便如此,通過了解這些概念,微控制器和RTOS,你也可以大致分析出目前手上的項目是否需要用到RTOS,是否可以通過RTOS來解決以前無法實現(xiàn)的問題。
-
微控制器
+關(guān)注
關(guān)注
48文章
7952瀏覽量
155023 -
實時嵌入
+關(guān)注
關(guān)注
0文章
2瀏覽量
5491
原文標題:你所不了解的實時系統(tǒng),微控制器最好的伴侶
文章出處:【微信號:cirmall,微信公眾號:電路設(shè)計技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
TMS320F280015x實時微控制器技術(shù)參考手冊

TMS320F28003x實時微控制器技術(shù)參考手冊

TMS320F28P65x實時微控制器技術(shù)參考手冊

TMS320F2807x實時微控制器技術(shù)參考手冊

TMS320F2837xS實時微控制器技術(shù)參考手冊

C2000?實時控制微控制器(MCU)使用入門

TMS320F280013x實時微控制器技術(shù)參考手冊


使用C2000?實時微控制器的基本開發(fā)指南

微控制器內(nèi)部的存儲器有哪些
微控制器的結(jié)構(gòu)和應(yīng)用
TMS320F2805x實時微控制器數(shù)據(jù)表

TMS320F28P65x實時微控制器數(shù)據(jù)表

TMS320F28003x實時微控制器數(shù)據(jù)表

TMS320F280015x實時微控制器數(shù)據(jù)表

評論