如何選擇合適的基于Cortex的MCU應(yīng)用設(shè)計(jì)
基于ARM的CPU在MCU領(lǐng)域無處不在,通常有幾個(gè)可從同一個(gè)MCU供應(yīng)商處獲得。每個(gè)ARM CPU都針對(duì)一類特定的處理要求進(jìn)行了優(yōu)化,從低端功耗約束應(yīng)用到高功耗性能優(yōu)化的雙核應(yīng)用。目前,MCU設(shè)備中最流行的ARM CPU似乎是Cortex CPU。您如何確定哪種ARM Cortex CPU適合您的應(yīng)用?讓我們通過查看示例實(shí)現(xiàn)來探索一些更受歡迎的基于Cortex的MCU之間的主要區(qū)別,這些示例實(shí)現(xiàn)將幫助您確定哪一個(gè)適合您的下一個(gè)設(shè)計(jì)。
許多選項(xiàng)
找到許多不同的東西并不罕見單個(gè)MCU系列中的ARM Cortex CPU。 Cortex CPU及其可選擴(kuò)展可滿足各種應(yīng)用需求,但都具有向后兼容的指令集,如圖1所示。從Cortex-M0/M0 +/M1系列開始,指令集針對(duì)通用目的數(shù)據(jù)處理和IO任務(wù)。 Cortex-M3 CPU增加了高級(jí)數(shù)據(jù)處理和位域操作指令,可加速更復(fù)雜的控制和通用計(jì)算任務(wù)。 Cortex-M4 CPU增加了數(shù)字信號(hào)處理(DSP)指令,并提供單指令多數(shù)據(jù)(SIMD)操作,其中相同的數(shù)據(jù)處理指令可以同時(shí)對(duì)多個(gè)數(shù)據(jù)源進(jìn)行操作。這些專業(yè)功能可以極大地加速復(fù)雜的數(shù)據(jù)處理任務(wù),如音頻和視頻應(yīng)用程序中的任務(wù)。當(dāng)性能和精度都是目標(biāo)算法的重要元素時(shí),Cortex-M4 CPU還可以添加浮點(diǎn)單元(FPU)。例如,模擬傳感和電機(jī)控制通常使用浮點(diǎn)來實(shí)現(xiàn)精度,但快速控制環(huán)閉合需要高性能。
圖1:ARM Cortex MCU指令集兼容性。 (由ARM和STMicroelectronics提供)
這種常規(guī)和向后兼容指令集的一個(gè)關(guān)鍵優(yōu)勢是MCU制造商可以創(chuàng)建針對(duì)特定應(yīng)用進(jìn)行優(yōu)化的設(shè)備,同時(shí)如果算法增長,則通過向上兼容性“覆蓋所有賭注”目標(biāo)系統(tǒng)生命周期中的復(fù)雜性。例如,您需要多少次添加更復(fù)雜的功能才能滿足開發(fā)過程中的新要求? Cortex指令集架構(gòu)(ISA)的向上兼容性使這很容易。在某些情況下,也可以簡化目標(biāo)架構(gòu),因?yàn)橄蛳录嫒菪钥梢越档统杀荆绻山邮艿男阅茌^低。
STMicroelectronics在其STM32 MCU系列中使用了多個(gè)ARM Cortex CPU。圖2顯示了各種Cortex CPU以及與每個(gè)MCU系列相關(guān)的關(guān)鍵硬件功能。請(qǐng)注意,Cortex-M0 CPU用于入門級(jí)STM32F030/50/051器件,而帶有DSP和FPU的Cortex-M4用于高性能STM32F4xx(例如STM32F401RCT6)和STM32F3xx器件。中檔設(shè)備使用Cortex-M3 CPU,其中不需要更復(fù)雜的DSP和FPU指令以獲得最高性能。 (如果需要,這些指令可以用多個(gè)指令實(shí)現(xiàn),大多數(shù)編譯器提供了一種相當(dāng)透明的方法,用于在硬件實(shí)現(xiàn)和多周期“軟”實(shí)現(xiàn)之間切換。)
圖2:STM32F MCU系列Cortex CPU和關(guān)鍵硬件功能。 (由STMicroelectronics提供)
其他供應(yīng)商也支持多種ARM Cortex MCU,通常具有廣泛的性能和成本范圍。例如,Silicon Labs擁有使用ARM Cortex-M CPU的EFM32系列MCU(例如,EFM32ZG222F32-QFP48)。低端低功耗GZ系列使用Cortex-M0 + CPU,而中端TG,G,LG和GG系列使用Cortex-M3 CPU。高端WG系列使用Cortex-M4 CPU,具有DSP和FPU增強(qiáng)功能。有10種不同的軟件包選項(xiàng)可以通過一些前期規(guī)劃從一種CPU類型遷移到另一種CPU類型,從而更容易適應(yīng)不斷變化的需求或使用相同的基礎(chǔ)設(shè)計(jì)提供不同的產(chǎn)品。
Cortex-A架構(gòu)
Cortex-M架構(gòu)是一個(gè)非常受歡迎的MCU制造商,但Cortex-A架構(gòu)也出現(xiàn)在供應(yīng)商的設(shè)備中,通常在MPU中,其中大型外部存儲(chǔ)器用于指令和數(shù)據(jù)。 Cortex-A CPU針對(duì)超高性能應(yīng)用進(jìn)行了優(yōu)化,通常需要視頻播放和高級(jí)安全性等功能。例如,基于Atmel Cortex-A5的SAMA5D4 MPU(圖3)使用Cortex-A5 CPU,具有2 x 32 kb 1級(jí)高速緩存和128 kb 2級(jí)高速緩存,以加快處理性能。片上DDR2/LPDDR/LPDDR2控制器訪問外部存儲(chǔ)器中的指令和數(shù)據(jù),因此可以使用非常大的程序和數(shù)據(jù)集。例如,視頻處理算法可能需要非常大的數(shù)據(jù)集以及非常大的程序。硬件子系統(tǒng)為安全性,連接性,控制和用戶界面提供了重要功能,以簡化復(fù)雜人機(jī)界面和相關(guān)控制系統(tǒng)的創(chuàng)建。
圖3:Atmel SAMA5D4 MPU框圖。 (由Atmel提供)
SAMA5D4還支持兩個(gè)重要的Cortex擴(kuò)展功能 - Trust Zone和NEON。 Trust Zone支持安全的代碼執(zhí)行。通常,處理器需要執(zhí)行一些與安全相關(guān)的功能(例如安全PIN輸入或密碼保護(hù))以及一些正常的程序功能(例如圖形顯示或菜單選擇例程)。 Trust區(qū)域硬件擴(kuò)展允許程序員保護(hù)與安全相關(guān)的功能免受正常訪問和潛在的安全攻擊。甚至調(diào)試功能也可以僅限于正常程序,以進(jìn)一步保護(hù)安全例程免受窺探和類似攻擊。
NEON擴(kuò)展為基于SIMD的算法提供了顯著的處理性能改進(jìn)。 NEON擴(kuò)展的共同目標(biāo)是多媒體,信號(hào)處理2D/3D圖形,視頻編碼/解碼和聲音合成。 NEON有自己獨(dú)立的流水線和寄存器文件,可以支持32位寄存器上的有符號(hào)/無符號(hào)8位,16位,32位,64位和單精度浮點(diǎn)運(yùn)算,這些寄存器被視為64位或128位寬取決于指示。與非SIMD實(shí)現(xiàn)相比,NEON通??梢蕴峁╋@著的性能提升;復(fù)雜視頻編解碼器的性能提升60-150%是典型的例子。
多核CPU解決方案
ARM Cortex CPU也出現(xiàn)在多核MCU實(shí)現(xiàn)中。這些設(shè)備有時(shí)具有兩種不同的性能CPU,一種是針對(duì)目標(biāo)應(yīng)用功能“繁重”的高性能,另一種是用于管理通信端口,用戶界面和類似低級(jí)控制功能的性能較低的CPU。其他多核設(shè)備具有相同類型的CPU,只需復(fù)制,以便于分區(qū)和分配不太專業(yè)的處理功能,以實(shí)現(xiàn)處理和功率效率的正確平衡。例如,如果不需要滿足性能要求(可能在“慢”數(shù)據(jù)期間),則可以將一個(gè)CPU置于低功耗等待狀態(tài),然后在需要額外處理時(shí)打開。
Texas Instruments在圖4所示的Concerto MCU系列中(作為示例見F28M35H52C1RFPT)在其流行的C28x CPU中增加了一個(gè)ARM Cortex-M3處理器,為單個(gè)器件中的控制和連接提供了一個(gè)簡單的解決方案。 C28x CPU已針對(duì)實(shí)時(shí)控制進(jìn)行了優(yōu)化,可充分利用其15年以上的DSP應(yīng)用經(jīng)驗(yàn)。 ARM Cortex-M3 CPU針對(duì)通信應(yīng)用進(jìn)行了優(yōu)化,它可以利用廣泛的ARM生態(tài)系統(tǒng)來實(shí)現(xiàn)通信驅(qū)動(dòng)程序(以太網(wǎng),USB,CAN,SPI等)以及強(qiáng)大的調(diào)度和O/S支持。
圖4:德州儀器(TI)的雙CPU核心Concerto™MCU系列。 (由Texas Instruments提供)
將您的應(yīng)用程序與正確的ARM Cortex CPU相匹配
您可以在幾乎所有MCU制造商的各種MCU系列中找到ARM Cortex CPU。為了使正確的Cortex CPU與您的應(yīng)用程序相匹配,您應(yīng)該首先確定哪種指令集最適合您的應(yīng)用程序。特別是,要查看是否需要高級(jí)數(shù)據(jù)處理功能,如浮點(diǎn)或DSP。您是否需要更高級(jí)的功能,如NEON或Trust Zone?也許您的應(yīng)用程序更加面向控制,低功耗是關(guān)鍵要求?如果是這樣,更簡單的M0架構(gòu)可能是合適的。中檔設(shè)計(jì)可以利用Cortex-M3 CPU并根據(jù)連接要求和其他關(guān)鍵外設(shè)選擇設(shè)備 - 您通常在MCU制造商的中檔設(shè)備中擁有最多的選擇。
如果您的要求在在設(shè)計(jì)階段,您可能希望能夠遷移到功能更豐富的設(shè)備或功能更多的設(shè)備。在這種情況下,選擇支持在設(shè)備之間輕松遷移的MCU系列可能很重要。您還可以使用大型ARM Cortex生態(tài)系統(tǒng)來利用經(jīng)過驗(yàn)證的驅(qū)動(dòng)程序,RTOS,特定于功能的庫和開發(fā)工具鏈。無論您選擇哪種ARM Cortex CPU,您都可以確保有一個(gè)強(qiáng)大的生態(tài)系統(tǒng)可用于簡化您的設(shè)計(jì)。