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