要求MCU控制嵌入式系統中越來越多的功能。這些功能通常是實時的,需要定期維護,以滿足系統對響應性,性能或可靠性的要求。通常,實時操作系統(RTOS)用于管理多個實時事件,以確保響應能力足以滿足系統要求。然而,并非所有MCU都適合托管RTOS,因此,對允許或便于在特定MCU上托管RTOS的一些關鍵功能的審查對實時嵌入式系統的設計人員非常有用。
本文將快速回顧現代MCU上可用的一些關鍵功能,這些功能有助于運行需要RTOS的嵌入式系統。這將有助于設計人員更有效地選擇MCU作為RTOS主機,并使用該MCU設計嵌入式系統。
管理實時響應
隨著控制系統變得越來越復雜,使用簡單的控制程序管理各種MCU功能變得越來越困難。對于具有不同優先級的多個事件,持續檢查以查看哪些事件需要服務的單個控制循環變得難以處理。控制回路無法足夠快地到達每個功能。所需要的是一種實時控制方法,其中所有事件都可以在其所需的響應時間內得到服務。
通常,MCU可以通過使用中斷響應事件(由定時器觸發的內部MCU請求或由I/O信號觸發的外部事件)來實現對復雜系統的更好控制。中斷可以優先處理,以便首先處理最重要的請求,并且使用現代MCU中斷系統,響應時間可以非常快。不幸的是,證明所有事件都將以所需的周期性處理可能很困難。例如,如果我們需要進行一系列模數轉換,同時通過USB端口接收數據并在采集的模擬數據上計算低通濾波器,那么計算轉換的最大采樣率可能非常
改善實時響應的另一個選擇是使用實時操作系統或RTOS。在該方法中,可以為控制系統中的每個任務分配MCU處理周期的時間片或部分。如果該功能不需要當前分配的時間,它可以將時間“翻轉”到另一個功能,這樣就不會丟失寶貴的處理周期。如果沒有功能需要維修空閑過程(通常在低功率模式下),則可以啟動以節省電力。可以調整分配的時間片以確保可用的最小時間量滿足所需的響應時間。通過正確分配模數轉換器,USB端口和濾波器處理功能,系統將以可預測和有效的方式運行。
現代MCU已經過優化,可以輕松實現RTOS實施。也許最明顯的是包含專用定時器,通常是與確定處理分配相關聯的“定時器滴答”,這使得向時間片分配時間變得容易。可以與其他MCU活動并行執行任務的智能外圍設備也很有用,因為相關的過程只需要“觸發”事件,然后可以將控制權返回給另一個過程。例如,可以通過簡單地編程DMA控制器以將SRAM數據移動到USB端口來啟動USB傳輸。在清空緩沖區或發生錯誤之前,任務不需要執行任何其他活動。
讓我們仔細看看一些最重要的支持RTOS的硬件元素,以便更好地理解我們如何優化基于MCU的RTOS實現。
使用高級中斷控制器
由于基于RTOS的系統需要快速有效地響應實時事件,因此高級中斷系統可能是基于MCU的設計中最重要的硬件元素。例如,如果中斷需要太多周期來響應,可能是因為在調用中斷例程之前需要保存幾個CPU寄存器,實時響應可能會受到影響。此外,如果中斷控制器只有少量可能的向量位置,軟件可能需要幾個周期才能找出中斷源。例如,中斷信號傳輸完成應該很容易與傳輸錯誤區分開來。
Microchip PIC24F MCU具有一個高級中斷控制器,具有實現基于MCU的RTOS所需的一些功能。 PIC24F和dsPIC MCU系列的框圖如圖1所示。中斷控制器在圖中間以灰色顯示,連接所有外設,定時器和多個輸入信號,以提供全面的中斷支持。多達118種不同的中斷源,最多5種來自外部源。對于五個周期的固定中斷延遲,中斷響應時間對于任何應用都足夠快。
圖1:Microchip PIC24和dsPIC DSC系列模塊圖。
PIC24和dsPIC DSC MCU中斷控制器還支持七個優先級,可以輕松區分最重要的事件和最不重要的事件。當對某些事件立即響應以及某些事件可以等待服務至關重要時,這尤其有用。例如,采集數據通常比處理數據更重要,因此采集事件的優先級通常高于處理事件。
內存占用和低功耗
當從純粹的中斷或控制環路設計切換到基于RTOS的實現時,工程師最常遇到的兩個問題是內存占用和低功耗。由于每個RTOS過程都需要SRAM中的特殊控制塊來存儲過程中的各種聲明信息,因此工程師經常擔心它們將耗盡SRAM并因其應用而“缺乏”內存。幸運的是,隨著上下文切換時間和控制塊大小的優化,RTOS內存占用量不斷提高。此外,MCU在設備上包含越來越多的SRAM,因為這種資源變得越來越便宜,同時變得越來越有價值。
例如,Atmel SAM4L MCU在兩個塊中提供32 KB或64 KB的SRAM-HRAMC0和HRAMC1-如圖2中的系統內存分配圖所示。這些SRAM塊是在單個周期中訪問,這是一個確定性過程,可簡化基于RTOS的系統中的關鍵延遲和性能計算。將SRAM組織為兩個獨立的存儲區也可以提高基于DMA的功能的性能,因為可以將存儲器塊分配給每個存儲區以優化整體訪問帶寬。
圖2:Atmel SAM4L MCU全局內存分配。
每個RTOS進程只需要幾百個字節,即使是復雜的RTOS,完整的上下文也只需占MCU的幾個百分點。一些設計人員經常忽略的一點是,通過RTOS通信,緩沖區通常可以大大減少,因為響應時間更短,更可預測。對于某些功能,SRAM節省的成本將超過上下文切換存儲要求的大小。
大多數RTOS實現也完全支持低功耗模式。這意味著可以使用降低內部調節電壓,降低時鐘速度或禁用特定外設時鐘的模式。 Atmel SAM4L MCU具有一些專用控制器,可根據需要輕松調整電壓電平和時鐘速度,以滿足每個處理線程的要求。多個“空閑模式”也可用于在多個線程共享的幾個標準低功耗設置之間進行選擇。
簡化以太網連接
在具有高電平的實時系統中速度連接要求,例如以太網,以太網很重要的硬件,但不應忽視使其易于實施的支持“掛鉤”。例如,瑞薩RX63N具有先進的以太網控制器和專用的以太網DMA控制器,可直接管理控制以太網傳輸的描述符。這大大簡化了以太網流量的控制,因為可以在以太網子系統中控制許多低級細節。此外,通過使用連接開發套件可以簡化RTOS環境中以太網連接的實現,如圖3所示,該套件可與Micrium RTOS捆綁在一起。 MCU,開發板和Micrium uC/OS-II或uC/OS-II RTOS的這種組合提供了一個經過驗證的平臺,現有的示例代碼可用作實現定制設計的第一步。
圖3:具有Micrium RTOS支持的Renesas RX63N以太網套件。
Micrium RTOS還提供各種中間件模塊,進一步簡化了連接應用。例如,IPv6支持使得即使是最復雜的以太網子系統也能輕松實現。示例設計的可用性意味著可以在創紀錄的時間內完成演示系統的工作。
DSP應用的高效處理
在某些應用中,可以使用RTOS確保盡可能高效地完成處理。例如,DSP應用程序可以處理饑餓,如果多個通信通道競爭CPU周期,則效率會受到顯著影響。例如,德州儀器(TI)TMS320C66xx DSP具有顯著的處理能力。圖4中所示的處理核心中只有一個具有八個可以并行工作的獨立處理器(L/S/M/D 1和2)。使用RTOS(如TI-RTOS)時,可以更輕松地管理通信功能,以限制所需的CPU周期數。這樣可以節省處理時間,因為DSP可以解決大多數以DSP為中心的設計所需的大量數據。
圖4:德州儀器(TI)TMS320C66xx DSP提供顯著的處理性能。
結論
通常,嵌入式系統需要在指定時間內響應事件,在這些系統中,托管在MCU上的RTOS是可能的解。確保您了解在MCU上托管RTOS的要求,以便您可以選擇最佳的MCU,并簡化基于RTOS的設計的開發。
-
mcu
+關注
關注
146文章
17123瀏覽量
350994 -
嵌入式
+關注
關注
5082文章
19104瀏覽量
304825 -
定時器
+關注
關注
23文章
3246瀏覽量
114721
發布評論請先 登錄
相關推薦
評論