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