現代MCU增加了一系列新功能,如果使用得當,可以顯著提高應用效率。特別地,使用可獨立于CPU操作的智能外圍設備,外圍設備允許CPU并行地執行其他任務或者使其進入低功率睡眠模式。使用這些技術中的任何一種都可以提高整體處理效率和節省功耗。
基于MCU的設計中遇到的首批智能外設之一是直接存儲器訪問(DMA)控制器。這種專用硬件模塊可以在存儲器和/或外設之間傳輸數據,而不需要CPU參與每次傳輸。高級DMA控制器(例如STMicroelectronics STM32F4系列中包含的控制器)可以通過使用靈活的數據流分配和傳輸管理功能進一步卸載CPU。讓我們更詳細地看一下這些功能,看看它們如何用于提高處理效率。圖1顯示了一個框圖,表示STM32F4器件上兩個DMA控制器之一可用的各種數據路徑。如圖左側所示,DMA請求來自8個不同的通道(分配給各種啟用DMA的外設),并被路由到仲裁器上的8個不同的請求輸入,建立優先級(編號較低的輸入具有更高的優先級) )。然后激活最高優先級的傳輸,圖右側的AHB Masters執行所需的數據傳輸。內存和外設接口的獨立主機進一步提高了外設到內存傳輸的效率,這可能是基于MCU的設計中最常用的DMA。
為每個流分配單獨的FIFO,如圖所示在圖1的中間,允許針對每個外設接口的特性調整FIFO特性。例如,FIFO的閾值電平(請求傳輸的深度)可以單獨設置為FIFO大小的1/4,?或3/4。這允許低速通道在傳輸之前等待FIFO幾乎滿,以最小化開銷。更快的通道可以更快地啟動傳輸,可能是?大小以避免FIFO溢出。
圖1:STM32F4系列DMA控制器(由STMicroelectronics提供)。
其他高級DMA尋找的能力與數據傳輸的管理有關。某些外設提供傳輸結束指示器,高級DMA控制器可以檢測并使用它來獨立于CPU終止傳輸。 DMA控制器完成雙緩沖和循環緩沖管理,通過在傳輸過程中自動重新配置源和目標來消除CPU開銷。如果CPU需要管理這些類型的低級任務,您可以看到處理效率會受到影響映射,優先級排序和管理數據傳輸活動的這種靈活性大大降低了CPU開銷,一旦初始化了智能DMA控制器,就可以管理傳輸并有效地分配帶寬而無需進一步的CPU干預。這種獨立操作是任何智能外設的關鍵特性,設計人員在選擇目標器件時應該尋找,我們將在其他智能外設中找到我們將在下面討論的內容。
在串行外設中尋找智能《 br》一旦理解了DMA的使用,就可以自然地尋找為串行外圍設備提供額外智能的方法,以充分利用DMA功能并進一步從低級功能中卸載CPU。集成到高速外設(如以太網和USB)中的專用FIFO緩沖器的使用提供了額外的CPU自治水平,因為可以通過單個突發中的傳輸來分階段和處理傳輸,以提高效率。智能外設可以根據帶寬要求設置CPU可以中斷的各種級別。請注意,這些獨立的FIFO可以與專用于DMA控制器的任何FIFO配合使用,如圖1所示的STM32F4器件。外設FIFO可以提供第一級緩沖,DMA可以根據哪些外設同時處于活動狀態來提供第二級。當FIFO僅在外設上可用時,這允許額外級別的管理和控制(即智能)。
如前所述,許多外設包括可用于請求CPU干預的靈活中斷,如果中斷具體到足以告訴CPU究竟需要什么服務,響應時間可以大大減少。如果中斷不是智能的,則CPU需要搜索各種標志或狀態位以確定要采取的操作。在時序預算和延遲要求最具侵略性的情況下,使用具有智能中斷的外設可以產生很大的不同。
有些MCU采用這種方法更進一步,完全消除了某些操作的中斷。 Energy Micro(現為Silicon Labs的一部分)EFM32GZ系列包括一個特殊的外設反射系統(PRS),可通過允許外設之間的快速和自主通信來實現許多常見的中斷功能。由于來自一個外圍設備的事件可以用作輸入信號或由其他外圍設備觸發,因此可以消除對CPU的中斷以實現簡單的內務處理功能的需要。通過四個可配置互連通道之一選擇和路由這些信號。生成外設(產生事件的外設)的輸出被路由到消費者(由事件觸發的外設)并針對電平或上升/下降沿靈敏度進行調整。
PRS的示例使用如圖2所示。定時器可以用于觸發ADC轉換的開始,ADC轉換完成信號可用于觸發DMA傳輸。反過來,DMA完成信號可用于重置定時器以重新開始序列。無需CPU干預,無需生成中斷。請注意,在進行了一些測量(可能是1,000次)之后,可以將額外的計數器添加到用于喚醒CPU的PRS中。然后,CPU可以同時處理所有1,000個樣本,以進一步提高處理能力和功效。
圖2:Silicon Labs EFM32GZ系列外設反射系統示例(由Silicon Labs提供)。 》多核MCU創建智能外設
高性能MCU的終極卸載引擎是一個協處理器,可以完全獨立地管理外設I/O功能。最近采用NXP LPC4370FET100E的多核MCU,允許設計人員創建一個專用于外設控制的完全獨立的通道控制器。實際上,恩智浦LPC4370有三個CPU內核:主ARM Cortex-M4 CPU,面向協處理器的ARM Cortex-M0 CPU,以及面向外設控制的ARM?Cortex?-M0 CPU。圖3顯示了面向外設的CPU(位于框圖左上方)是外設子系統的一部分,該子系統包括AHB子系統總線矩陣,SPI端口,子系統GPIO和本地SRAM存儲器。核心到核心的橋通過主AHB總線矩陣將子系統連接到設備的其余部分。外設子系統具有獨立管理外設所需的所有硬件,在某些情況下可以是唯一的CPU活動,其他CPU處于低功耗狀態以提高電源效率。
圖3:恩智浦LPC4370系列框圖(由恩智浦提供)。但是,智能外設控制無需停在那里。實際上,第二個ARM Cortex-M0 CPU也可用于外設控制,可能用于模擬DAC和ADC子系統,也可用作智能電機控制外設。智能外設控制的這種分層使得僅啟用所需的子系統成為可能;高性能數據處理功能中的主CPU,通過SPI端口進行命令處理時的低速智能外設接口(設備的其余部分處于掉電模式),或高速智能外設控制器期間電機控制或模擬操作。當多個內核可用于創建獨立的智能子系統時,獨立操作的可能性很大,并且可以更輕松地針對應用的特定需求進行定制。
不要忽視智能模擬
可能很容易專注于數字外設,忽略了模擬外設中可用的新功能,這些功能也為他們提供了更高的智能水平。瑞薩RL78系列等高級MCU中包含的模數轉換器(ADC)能夠獨立運行,類似于串行端口等數字外設所描述的操作。例如,智能ADC可以配置為在由硬件定時器觸發時進行定期測量,完全獨立于CPU。捕獲的值可以使用DMA功能按順序存儲到存儲器中,并且在需要進行足夠的測量以進行處理之前,CPU不需要參與。在數字信號處理(DSP)應用中,在需要處理之前可能需要進行一千次測量。在此期間,CPU可以執行其他功能,或者可以進入低功耗睡眠模式和定時器中斷,用于在獲取足夠的樣本時喚醒CPU。很容易看出,在需要使用CPU捕獲和存儲每個ADC測量值的實現中,處理和功率效率都得到了很大改善。
您可能認為這種級別的智能自主操作就足夠了,但是正如他們在低預算的深夜電視廣告中所說的那樣,“等等,還有更多!”瑞薩RL78 ADC還具有窗口功能,可用于進一步改善自主操作。該功能允許編程人員為捕獲的ADC值定義低電平和高電平閾值(窗口),如圖3所示。如果捕獲的值超出定義的閾值,則可以生成中斷(如果ADRCK控制位設置為“1”。請注意,如果需要反向窗口,如果值落在窗口內,則可以生成中斷。如果模擬值開始在可接受范圍之外漂移,則此功能允許快速響應。如果沒有這種智能水平,則需要捕獲完整數據集(可能是一千次測量)的結束,然后大量的CPU周期掃描整個數據集以確定該值是否已開始超出可接受的范圍。如果每10μs進行一次測量并且每次進行1,000次測量,則對閾值違規的最壞情況響應將超過10 ms(不包括CPU掃描整個數據集的時間,整個時間刻錄功率) 。顯然,像瑞薩RL78那樣使用窗口函數可以節省大量的處理周期時間和功耗。
圖4:瑞薩RL78 ADC窗口函數的范圍設置(由瑞薩提供。)智能使用低功耗模式
重要的是要注意,將非活動CPU置于低功耗模式的能力是進一步提高功效的關鍵技術。 TechZone最近的一篇文章“使用MCU電源管理選項來優化系統效率”提供了一個很好的資源,可以更好地理解各種可用的低功耗模式,因此我們可以在此處放棄詳細討論。我們關于低功耗模式的關鍵點是,智能外設由于其自主運行能力,提供了許多機會將CPU置于低功耗狀態,“節省”它們用于最擅長的復雜數據處理任務。當低功耗模式與智能外設結合使用時,功耗和處理效率的提高可能會非常顯著??偠灾?,MCU已開發出多種自主功能,可用于卸載低級處理任務以進行管理外圍設備及其相關的數據傳輸功能。新的多核MCU提供了更多創建和使用智能外設的機會,可以滿足應用的特定需求。當正確集成到基于MCU的應用程序中時,智能外設子系統的使用可以顯著提高處理和功效。不要忽視設計中的這些機會。
-
mcu
+關注
關注
146文章
17135瀏覽量
351031 -
控制器
+關注
關注
112文章
16339瀏覽量
177859 -
存儲器
+關注
關注
38文章
7484瀏覽量
163776 -
cpu
+關注
關注
68文章
10855瀏覽量
211610
發布評論請先 登錄
相關推薦
評論