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