為什么ST也要做MPU?為什么入場(chǎng)這么晚但我們?nèi)越^對(duì)看好?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
STM32系列MCU在通用型微控制器領(lǐng)域處于領(lǐng)先的地位,為何還要推出MPU系列的產(chǎn)品STM32MP1呢?一方面,是由不同應(yīng)用場(chǎng)景決定的。即使存在譬如Linux RT拓展和uCLinux這種系統(tǒng)存在,但很多應(yīng)用中仍必要一個(gè)完整的MPU。另一方面,如果可以提供高度兼容的MCU和MPU產(chǎn)品,那么用戶(hù)可以輕松地將其產(chǎn)品設(shè)計(jì)進(jìn)行上下遷移,最大限度利用軟件和代碼,在長(zhǎng)時(shí)間內(nèi)獲取最佳的投資回報(bào)。
上述的第一點(diǎn)是所有的MPU廠(chǎng)商都明確的,并且很多產(chǎn)品在功耗性能價(jià)格方面也都做的非常優(yōu)秀了。第二點(diǎn)則不是那么容易實(shí)現(xiàn)的,因?yàn)檫@涉及到整個(gè)廠(chǎng)商的產(chǎn)品戰(zhàn)略,很多市場(chǎng)上已有的MPU產(chǎn)品最初就是單獨(dú)作為一個(gè)產(chǎn)品家族/品牌來(lái)進(jìn)行規(guī)劃的,所以很難做到高度的MPU與MPU產(chǎn)品的兼容性。但ST似乎是唯一在這方面可以做到更好的廠(chǎng)商,而且ST也深諳這一道理,所以你可以看到MP1仍然是屬于STM32家族中的,從軟件環(huán)境到硬件內(nèi)核,都提供了高度的兼容性。這也就是為何即使較晚進(jìn)入一個(gè)成熟的MPU市場(chǎng),但ST仍然信心十足的原因。
MCU與MPU區(qū)別是什么?
MCU與MPU的區(qū)別非常明顯,MCU使用片上嵌入式閃存來(lái)存儲(chǔ)和執(zhí)行程序,以這種方式存儲(chǔ)程序意味著MCU的啟動(dòng)時(shí)間非常短,并且可以非??焖俚貓?zhí)行代碼,但這種可用內(nèi)存空間是有限的。 MPU沒(méi)有相同的內(nèi)存約束,使用外部存儲(chǔ)器來(lái)提供程序和數(shù)據(jù)存儲(chǔ)。程序通常存儲(chǔ)在諸如NAND或串行閃存之類(lèi)的非易失性存儲(chǔ)器中,并且在啟動(dòng)時(shí)被加載到外部DRAM中,然后開(kāi)始執(zhí)行。這意味著MPU的啟動(dòng)和運(yùn)行速度不會(huì)像MCU那樣快,但是可以連接到處理器的DRAM可以高達(dá)幾千M。另一個(gè)區(qū)別是功耗。通過(guò)嵌入自己的電源,MCU只需要一個(gè)單電壓電源軌。相比之下,MPU的內(nèi)核,DDR等需要幾個(gè)不同的電壓軌。開(kāi)發(fā)人員需要通過(guò)板上附加的PMIC來(lái)滿(mǎn)足這一要求。
圖片來(lái)源:Cliff Brake
選擇的決定因素是什么?
在給自己的嵌入式應(yīng)用進(jìn)行計(jì)算平臺(tái)選擇時(shí),有多種需要考慮的因素來(lái)決定到底要選擇MCU還是MPU。第一點(diǎn)可以考慮是否需要一些圖形界面的交互,UI的復(fù)雜程度是怎么樣的。MPU通常會(huì)配置TFT LCD控制器,所以更適合進(jìn)行顯示的交互的處理。雖然近年來(lái)的趨勢(shì)是很多TFT LCD控制器也會(huì)在MCU中進(jìn)行配置,但受限于內(nèi)存大小,所以這些顯示的應(yīng)用一般都是確定好的,所以不能夠給終端用戶(hù)預(yù)留出一些拓展的可操作的空間,這些配置TFT LCD控制器的MCU并不是想要取代MPU的市場(chǎng),而是為了提升傳統(tǒng)段式和點(diǎn)陣式LCD顯示的體驗(yàn),主流的彩TFT顯示應(yīng)用上還需要MPU來(lái)做。
第二個(gè)因素是考慮到一些高速的連接需求,MPU上很容易找到千兆網(wǎng)口、高速USB口等高速通信外圍,可以提供足夠的信道和帶寬來(lái)處理數(shù)據(jù)流量。雖然現(xiàn)在MCU也可以進(jìn)行很多高速通信的工作,但仍需要注意檢查使用第三方堆棧時(shí)候?qū)τ诖a空間的影響,某些需要基于OS的堆棧的高速應(yīng)用需要基于MPU的系統(tǒng)來(lái)做。
第三個(gè)因素是要考慮應(yīng)用的確定性/實(shí)時(shí)性。因?yàn)镸CU采用內(nèi)部嵌入式閃存,所以在實(shí)時(shí)性方面可以提供保證。而MPU需要從外部進(jìn)行加載需要一定的時(shí)間,另外Linux基礎(chǔ)的系統(tǒng)在重啟的時(shí)候耗時(shí)也比較多,不適合應(yīng)用在一些有確定性需求的場(chǎng)景中??偟膩?lái)講,雖然現(xiàn)在MCU和MPU都在相互靠近,但兩者仍有著各自明確的應(yīng)用場(chǎng)景。
雙核A7+M4實(shí)現(xiàn)高效靈活架構(gòu)
在近日北京召開(kāi)的發(fā)布會(huì)中,意法半導(dǎo)體微控制器事業(yè)部STM32微處理器產(chǎn)品市場(chǎng)經(jīng)理Sylvain RAYNAUD表示,STM32MP1為用戶(hù)提供了靈活高效的架構(gòu)。在目前推出的三個(gè)型號(hào)中,主流的兩個(gè)型號(hào)提供了雙核A7+M4的架構(gòu),而最低成本的型號(hào)則提供單核A7+M4的架構(gòu)。據(jù)稱(chēng),三個(gè)核心采用了安全的互相通信的方式,大部分外設(shè)都掛載在同一條主線(xiàn)上,因此三個(gè)核心可以根據(jù)各自的需求來(lái)調(diào)用外設(shè)。
STM32MP1內(nèi)部的Cortex-A核心可以支持3D圖形處理,最高系統(tǒng)時(shí)鐘可以達(dá)到533MHz,同時(shí)支持OpenGL ES 2.0。Cortex-M4有一個(gè)獨(dú)立的448kB的專(zhuān)用RAM,就像普通的MCU一樣Cortex-M4程序在RAM里執(zhí)行可以確保代碼執(zhí)行的實(shí)時(shí)性和可靠性。STM32MP1可以同時(shí)做兩部分應(yīng)用,一部分是高速處理接口,可以用A7+Linux完成,顯示屏支持兩種:一個(gè)是24位RGB,最高達(dá)到 60fps;一種是MIPI DSI 2Lane串口屏, 在Linux中可以達(dá)到720P高清顯示。 DDR 存儲(chǔ)上支持DDR3/DDR3L、LPDDR2/LPDDR3,系統(tǒng)主頻 可達(dá)到533MHz。外部高速接口一般配到A7上,支持GMAC高速以太網(wǎng)。三個(gè)USB2.0,其中兩個(gè)內(nèi)置HS PHY。實(shí)時(shí)處理由Cortex-M4完成,可以做實(shí)時(shí)處理、馬達(dá)驅(qū)動(dòng)、sense感測(cè)和低功耗數(shù)據(jù)采集,整個(gè)系統(tǒng)非常靈活,這是因?yàn)槿齻€(gè)內(nèi)核可以根據(jù)應(yīng)用靈活切換各種模式,實(shí)現(xiàn)系統(tǒng)最佳優(yōu)化。
功耗與性能并重
STM32MP1全速運(yùn)行模式時(shí)Cortex-A7跑分可以達(dá)到2470DMIPS,同時(shí)雙核Cortex-A7 +3D GPU是打開(kāi)的。Cortex-M4最高跑到209,MIPS部分可以達(dá)到260個(gè)MIPS;在這種情況下是整體能效最大的情況。而在Cortex-A7核待機(jī),只有Cortex-M4在跑的時(shí)候,功耗是正常模式的四分之一。而當(dāng)STM32MP1進(jìn)入待機(jī)模式時(shí),功耗僅僅是前一個(gè)模式的1/2500。ST為STM32MP1提供了全功率模式、分批功耗優(yōu)化模式、待機(jī)模式這三種不同的模式來(lái)幫助用戶(hù)優(yōu)化整體的設(shè)計(jì)功耗,平衡其設(shè)計(jì)的性能和功耗。另外從待機(jī)模式回到全速運(yùn)行有一個(gè)很重要的關(guān)鍵因素,就是喚醒時(shí)間。 STM32MP1只需1秒回到Linux界面,只需要3秒回到3D圖形應(yīng)用界面。從1秒回到Linux界面屬于業(yè)界領(lǐng)先的水平,幾乎難以找到比這個(gè)更短的;而根據(jù)圖形的大小,3秒回到3D圖形界面的時(shí)間還可以變得更短。
完備的開(kāi)發(fā)生態(tài)
依托于STM32成熟的生態(tài)系統(tǒng),在STM32MP1上,ST也提供了完備的軟件、硬件和客戶(hù)支持。
STM32提供了OpenSTLinux開(kāi)發(fā)包用于A7部分的開(kāi)發(fā),保證系統(tǒng)軟件的穩(wěn)定性。目前STM32MP1 SoC驅(qū)動(dòng)程序已被Linux社區(qū)采用和認(rèn)可,ST的STM32MP1支持Linux4.19LTS。此外,ST全面兼容包括Linux的Foundation和Yocto Project在內(nèi)的開(kāi)源軟件的標(biāo)準(zhǔn)。ST在Yocto建立了一個(gè)Project,確保用戶(hù)可以穩(wěn)定簡(jiǎn)易使用這個(gè)開(kāi)發(fā)包。同時(shí)ST也支持Linaro社區(qū),提供了參考軟件和培訓(xùn)資料。指的一提的是,ST還提供了預(yù)集成安全操作系統(tǒng)OP-TEE,免除了用戶(hù)去自己尋找安全軟件的煩惱,并且完全免費(fèi)也降低了用戶(hù)的成本。在M4部分,不用多說(shuō)了,用戶(hù)可以重復(fù)使用其之前的STM32Cube應(yīng)用。
軟件開(kāi)發(fā)工具方面, 目前可以使用CubeMX、ac6、KEIL和IAR等工具進(jìn)行調(diào)試和開(kāi)發(fā)。未來(lái)可能會(huì)通過(guò)CubeIDE來(lái)取代ac6實(shí)現(xiàn)A7部分的編程調(diào)試工作。最后在硬件方面,同樣MP1也會(huì)有eval板和discovery板,此外還有不少第三方的開(kāi)發(fā)版和SoM??赡躆P1并不會(huì)再提供nucleo版本的板子出來(lái)。
為什么晚入場(chǎng)的MP1仍然被我們看好?
正如文章開(kāi)頭所提及到的,ST因?yàn)樵赟TM32MCU方面有著深厚的根基,然后在此基礎(chǔ)上推出的MP1可以很好地幫助用戶(hù)在整個(gè)平臺(tái)上進(jìn)行設(shè)計(jì)的上下遷移,節(jié)省很多的再開(kāi)發(fā)的時(shí)間。同時(shí)長(zhǎng)遠(yuǎn)來(lái)看可以為大客戶(hù)提供更優(yōu)異的投入回報(bào)比。以風(fēng)頭最勁的專(zhuān)門(mén)做MPU的i.MX系列來(lái)看,近年來(lái)正在做一些下探的工作,將成本降低到MCU的水平,提供MPU一般的高性能的跨界處理器。不可否認(rèn)的是其性能價(jià)格極具優(yōu)勢(shì),以iMXRT系列舉例,其老用戶(hù)都是MPU用戶(hù),在遷移到RT的M7+M4的平臺(tái)上時(shí)必然會(huì)有很多的重開(kāi)發(fā)的工作。
ST將其用戶(hù)劃分為三個(gè)來(lái)源:純MPU用戶(hù),對(duì)于他們而言,吸引力在于其可以在實(shí)時(shí)控制的M4核這邊獲得很多成熟的資源的支持。對(duì)于MPU和MCU的混合用戶(hù),可以在ST提供的整體的開(kāi)發(fā)環(huán)境內(nèi)提高工作效率,在做交互設(shè)計(jì)時(shí)更為得心應(yīng)手。對(duì)于純MCU用戶(hù),想要向上提升設(shè)計(jì)到MPU平臺(tái)的這部分人來(lái)說(shuō),選擇MP1應(yīng)該是非常好的選擇。
一直堅(jiān)持內(nèi)升的ST在STM32家族的更新方面一直穩(wěn)扎穩(wěn)打,第三季度的營(yíng)收也取得了高預(yù)期的增長(zhǎng),反觀很多半導(dǎo)體廠(chǎng)商則受到了大環(huán)境的影響,營(yíng)收大幅下跌。所以選擇一個(gè)持續(xù)穩(wěn)定的平臺(tái)對(duì)于客戶(hù)而言也是非常重要的一點(diǎn)。
ST還為MP1提供了配套的MPIC——STPMIC1,得益于此目前已經(jīng)有很多的第三方的SoM和開(kāi)發(fā)板快速面世。
圖:OCTAVO推出的MP15X