基于ARM的處理器是無處不在的MCU世界,經常有一些可以從相同的MCU供應商。每個ARM CPU進行了優化一類特殊的加工要求,從低端功耗受限應用的高功率性能優化,雙核的應用。當今最流行的ARM CPU的MCU設備似乎是皮質的CPU。你如何決定哪些的ARM Cortex的CPU是正確的為您的應用?讓我們通過觀察示例實現,這將幫助你決定哪一種適合您的下一個設計探索出一些比較流行的Cortex-的MCU之間的主要區別。
許多選項
這不是尋常的發現一個MCU系列內的許多不同的ARM Cortex的CPU。皮質CPU和可選的擴展解決各種應用需求,但都具有向后兼容的指令集,如圖1和Cortex-M0 / M0 + / M1系列開始,指令集是針對通用數據處理和IO任務。在Cortex-M3 CPU增加了先進的數據處理和加速更復雜的控制和通用計算任務位域操作指令。在Cortex-M4的CPU增加數字信號處理(DSP)指令,并提供單指令多數據(SIMD)操作,其中相同的數據處理指令可以在同一時間上的多個數據源的操作。這些特殊能力可以大大加快復雜的數據處理任務,像那些在音頻和視頻應用中。在Cortex-M4 CPU還可以添加一個浮點單元(FPU)時的性能和精度是目標算法兩個重要因素。模擬檢測和電機控制,例如經常使用浮點其精度,但高性能需要快速控制回路閉合。
圖1:的ARM Cortex微控制器指令集兼容。
這regular-和向后兼容的指令集的一個關鍵優勢(ARM和意法半導體提供)是MCU制造商可以為特定的應用進行優化的設備,而“涵蓋了所有的賭注”由具有向上兼容性,如果在算法中的生長在復雜目標系統的壽命。例如,有多少次你需要的,以便在開發過程中,以滿足新的需求添加更復雜的功能呢?在Cortex指令集架構(ISA)的向上兼容性,使這個容易。在某些情況下,可以簡化目標體系結構也一樣,因為向下兼容性允許用戶以降低成本,如果較低的性能是可以接受的。意法半導體STM32其MCU系列中使用了多種的ARM Cortex處理器。圖2示出的各種皮質CPU和與每個微控制器系列相關的關鍵硬件功能。請注意,在Cortex-M0的CPU上使用入門級STM32F030 / 50/051設備,而皮質-M4與DSP和FPU上使用高性能STM32F4xx(如STM32F401RCT6)和STM32F3xx設備。中檔設備使用的Cortex-M3的CPU,其中所述更復雜的DSP和FPU指令不要求有盡可能高的性能。(這些指令可以有多個指令,如果需要得到執行,大多數編譯器的硬件實現和多周期的“軟”的實現之間進行切換提供了相當透明的方法。)
圖2:STM32F系列MCU的Cortex的CPU和主要硬件功能。
其他廠商也支持ARM的Cortex微控制器的多種口味,往往在廣泛的性能和成本范圍。 Silicon Labs公司,例如,有EFM32系列MCU(如EFM32ZG222F32-QFP48)使用了ARM的Cortex-M處理器。低端低功耗GZ系列采用了Cortex-M0 +的CPU,而中檔TG,G,LG和GG系列中采用的Cortex-M3 CPU。高端WG系列采用了Cortex-M4 CPU與DSP和FPU增強。有使得可以10個不同的封裝選項,用少許預先規劃,遷移從一個CPU類型到另一個,使其更容易適應變化的要求或提供使用相同的基本設計不同的產品。
皮質-A架構
在Cortex-M的架構是一個非常流行的一種具有MCU廠商,但在Cortex-A架構也顯示出在廠商的設備為好,經常在主控板,其中大型外部存儲器用于指令和數據。皮質-A的CPU是非常高性能的應用進行了優化,往往像視頻播放和先進的安全功能的要求。愛特梅爾的Cortex-A5型SAMA5D4微處理器,如(圖3),采用了Cortex-A5 CPU帶有2×32KB的一級緩存和128KB的二級緩存來加速處理性能。片上DDR2 / LPDDR / LPDDR2控制器訪問從外部存儲器所以非常大的程序和數據集可以使用的指令和數據。視頻處理算法,例如,可需要非常大的數據集和也非常大的程序。硬件子系統提供了安全性,連接性,控制和用戶界面,簡化創建復雜的人機界面和相應的控制系統顯著的能力。
圖3:愛特梅爾SAMA5D4 MPU框圖。
SAMA5D4還支持兩個重要的Cortex擴展功能 - Trust區段和NEON。 Trust區段支持安全的代碼執行。通常一個處理器需要執行某些與安全相關的功能(如安全PIN輸入,或密碼保護),以及某些正常程序功能(例如,圖形顯示或菜單選擇例程)。信任區的硬件擴展,允許程序員來保護安全相關的功能正常訪問和潛在的安全攻擊。即使是調試功能可以限制只是正常的程序,以進一步保護安全程序窺探和類似的攻擊。該NEON擴展提供顯著的處理性能改進SIMD的算法。為NEON擴展共同目標是多媒體信號處理的2D / 3D圖形,視頻編碼/解碼,和聲音合成。 NEON有自己獨立的管道和寄存器文件,并且可以支持無/有符號的8位,16位,32位,64位,和單精度浮點的32個寄存器,可視為64或業務128位寬根據指令。 NEON通常可以提供顯著的性能提升非SIMD實現;在復雜的視頻編解碼器60-150%的性能提升是一個典型的例子。
多核CPU的解決方案
ARM Cortex的CPU也呈現出了多核MCU實現。這些設備有時具有兩個不同性能的CPU,1非常高性能的“繁重”的目標應用程序的功能,以及用于管理通信端口,用戶接口的較慢的高性能CPU和類似的低層次的控制功能。其他多核設備具有相同類型的CPU,只是復制,可以很容易劃分和分配較少,專門的處理功能,實現處理和電源效率的平衡。例如,一個CPU可處于低功率等待狀態(或許在一個“慢”數據時段)放,如果它不需要滿足性能要求,然后轉向時,需要額外的處理上。德州儀器在其協奏曲系列MCU如圖4所示(作為一個例子見F28M35H52C1RFPT)增加了ARM Cortex-M3處理器廣受歡迎的C28x CPU提供控制和連接在一臺設備的簡單的解決方案。在C28x的CPU進行了優化實時控制,它可以利用其15年以上的DSP的應用體驗。在ARM Cortex-M3 CPU進行了優化,通信應用,它可以利用廣泛的ARM生態系統的通訊驅動程序(以太網,USB,CAN,SPI等)以及強大的調度和O / S的支持。
圖4:雙CPU內核協奏曲?MCU系列德州儀器。
匹配您的應用程序,以正確的ARM Cortex的CPU
你可以找到的ARM Cortex處理器在多種微控制器系列的幾乎所有MCU廠商。為了通過確定的指令集來匹配合適的Cortex的CPU與您的應用程序,你應該開始為你的應用程序最合適的。特別是,看看是否像浮點或DSP先進的數據處理能力是必需的。你需要更先進的功能,如NEON或Trust區段?也許你的應用程序更多的控制導向和低功耗是一個關鍵要求?如果是這樣,簡單M0架構可能是正確的配合。中檔的設計可以充分利用Cortex-M3的CPU,并選擇基于連接的需求和其他關鍵外設設備 - 你通常有最多的選擇中檔設備,從你的MCU制造商。如果您的需求,在設計階段改變你可能希望能夠遷移到一個功能更豐富的設備或功能更瘦設備。在這種情況下,選擇一個MCU系列支持設備之間輕松遷移可能是重要的。您還可以使用大的ARM Cortex生態系統,以充分利用成熟的驅動程序,實時操作系統,功能特定的庫和開發工具鏈。不管是什么的ARM Cortex的CPU,你選擇你可以肯定會有一個強大的生態系統以簡化設計。
責任編輯:gt
-
處理器
+關注
關注
68文章
19159瀏覽量
229112 -
mcu
+關注
關注
146文章
16984瀏覽量
350293 -
控制器
+關注
關注
112文章
16197瀏覽量
177394
發布評論請先 登錄
相關推薦
評論