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

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

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

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

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

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

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

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

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

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

嵌入式微控制器的自動代碼生成

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

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

評論