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