實時嵌入式系統(tǒng)簡介
電氣和計算機工程令人興奮但挑戰(zhàn)性的領(lǐng)域之一是嵌入式系統(tǒng)設(shè)計。如果您不確定什么是嵌入式系統(tǒng)設(shè)計,請參閱文章末尾的鏈接。嵌入式系統(tǒng)設(shè)計如此具有挑戰(zhàn)性的部分原因在于任何嵌入式系統(tǒng)都需要眾多的設(shè)計約束。這些因素包括功耗、有限的內(nèi)存、I/O 可用性、溫度、空間限制,當然還有總體成本。對于某些嵌入式系統(tǒng),一個特別重要的約束是時間。
本文引用地址:http://2s4d.com/article/202307/448616.htm電氣和計算機工程令人興奮但挑戰(zhàn)性的領(lǐng)域之一是嵌入式系統(tǒng)設(shè)計。如果您不確定什么是嵌入式系統(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)。這個規(guī)定的時間被稱為期限。這些系統(tǒng)必須是可預(yù)測的,因此根據(jù)定義是確定性的。
如果實時系統(tǒng)是嵌入式的,我們稱其為實時嵌入式系統(tǒng)。我們在本文中互換使用這兩個術(shù)語。實時嵌入式系統(tǒng)的示例是“關(guān)鍵任務(wù)”應(yīng)用,例如飛機控制、防抱死制動系統(tǒng)、起搏器和可編程邏輯控制器。
實時系統(tǒng)可以根據(jù)錯過其時序約束的可接受性進行分類。如果錯過時間限制是不可接受的,例如,如果這可能導(dǎo)致人員傷亡,我們將其稱為硬實時系統(tǒng)。上面提到的起搏器就是一個例子。
如果缺少時序約束是可以接受但不受歡迎的,我們將其稱為軟實時系統(tǒng)。電子郵件系統(tǒng)、無線路由器和有線電視盒都有其設(shè)計要滿足的實時限制。即便如此,錯過這些期限的后果通常很小或微不足道,例如,您可能會因為您喜歡的電視節(jié)目必須緩沖一秒鐘而感到惱火。當軟實時系統(tǒng)錯過給定操作的期,該操作不會立即失去其所有價值。相反,該值會隨著時間的推移而減小,即,隨著時間超出截止日期,該值會逐漸減小到零(參見圖 1 左側(cè))。
許多系統(tǒng)存在從硬到軟的范圍,錯過期限并不是不可接受的,但這樣做會使正在執(zhí)行的操作立即失去其所有價值。屬于此范圍內(nèi)的系統(tǒng)通常稱為固定實時系統(tǒng)(參見圖 1 中間)。
在硬實時系統(tǒng)中,錯過期限不僅會造成價值完全損失,還會造成負價值,即損害(見圖 1,右)。
圖 1.實時系統(tǒng)分類(改編自:Rochange、Uhrig 和Sainrat 。“時間可預(yù)測架構(gòu)”。2014 年,1.1.2)
每個實時系統(tǒng)都有一組旨在滿足的時序約束。如果系統(tǒng)沒有時間限制,那么它就不是實時的。這些時序約束可以分為兩類:事件響應(yīng)和任務(wù)調(diào)度。
事件是系統(tǒng)必須響應(yīng)的刺激。這些可以在硬件和軟件中啟動,它們表明發(fā)生了某些事情并且必須進行處理。當事件以內(nèi)部或外部中斷的形式出現(xiàn)時,它可能看起來熟悉。例如,當按下按鈕時,系統(tǒng)可能會感知到這一情況并執(zhí)行必要的操作。系統(tǒng)檢測到變化時可以隨時生成事件。系統(tǒng)檢測到事件的時刻和響應(yīng)該事件的時刻之間的時間稱為延遲。延遲定義為響應(yīng)時間減去檢測時間。
L = T r – T d
任務(wù)調(diào)度
任務(wù)是需要由系統(tǒng)處理器運行的一組指令。一些實時系統(tǒng)設(shè)計人員更喜歡安排任務(wù),特別是如果這些任務(wù)定期運行的話。許多嵌入式系統(tǒng)需要重復(fù)感測大量輸入,然后根據(jù)這些新信息修改輸出。這些類型的系統(tǒng)適合使用任務(wù)。這些任務(wù)通常使用稱為調(diào)度程序的軟件結(jié)構(gòu)來調(diào)度和運行。計劃任務(wù)應(yīng)該運行和實際運行之間的時間稱為抖動。抖動定義為實際時間減去期望時間。
J = T a – T d
無論實時系統(tǒng)是否使用事件響應(yīng)、任務(wù)調(diào)度或兩者,終目標都是盡可能減少延遲和抖動,同時定義可接受的上限(壞情況)。
設(shè)計模式
如何著手設(shè)計實時嵌入式系統(tǒng)?隨著系統(tǒng)需求的增長和時序限制的收緊,在滿足期限的同時管理嵌入式系統(tǒng)的所有需求變得越來越困難。以下是整個行業(yè)使用的一些既定原則。
循環(huán)賽
循環(huán)調(diào)度是用于管理實時系統(tǒng)約束的和廣泛使用的調(diào)度算法之一。正如其名稱所示,它的工作原理是:它讓每個系統(tǒng)組件輪流使用共享資源并完成所需的任務(wù)。下面的圖 2 顯示了 CPU 在切換到下一個任務(wù)之前為每個任務(wù)提供 500 毫秒的處理時間。任務(wù)可能會也可能不會在 500 毫秒內(nèi)完成,并且通常會在輪到他們時從上次中斷的地方繼續(xù)。
圖 2.循環(huán)任務(wù)調(diào)度程序
排隊
實時系統(tǒng)中另一個有用的結(jié)構(gòu)是隊列。隊列可以被認為是一條生產(chǎn)線,其中的物品進入并等待處理。準備好后,系統(tǒng)從隊列中刪除下一個項目并處理它。這樣,需要執(zhí)行的新任務(wù)可以放入隊列中,并在系統(tǒng)處理之前的任務(wù)時等待。終,新任務(wù)得到處理,盡管后面還有更多任務(wù)。圖 3 顯示了先進先出 (FIFO) 隊列,其中任務(wù) C 位于隊列中,直到任務(wù) A 和任務(wù) B 都被處理為止。
評論