MCU
微控制器單元(MCU)是所有嵌入式解決方案的核心所在,在成本和特性方面有許多不同的選擇。
在選擇圖形用MCU時,應考慮支援的顯示器介面、MCU封裝、尺寸和可獲得的圖形性能,最後一點取決於兩個主要因素:
圖像合成
- MCU中集成的圖形加速器的可用性。
- 系統中緩存記憶體的可用性。
記憶體存取和頻寬
- 時脈頻率和子系統匯流排頻率
- 對內部快閃記憶體和RAM記憶體的存取。
除了圖形外,還必須考慮應用上的其他方面(馬達控制和無線技術等)。 這些因素都可能影響MCU的選擇。
本頁將逐一介紹不同MCU選項,以及決定為GUI應用選擇哪種STM32 MCU時應考慮的參數。
Further reading
頻率
核心頻率會劇烈影響圖形應用在螢幕刷新以及螢幕和動畫的流暢性方面的性能。
它會影響從內部或外部記憶體傳輸到顯示器影像緩衝的大量資料,還可能影響計算和動畫。
頻率越高,在特定時間範圍內能夠傳輸的資料就越多,就能實現更複雜的動畫。
STM32產品的核心頻率最高為480MHz。
Note
圖形子系統頻率
必須將核心CPU頻率與圖形子系統頻率區別開來。 圖形子系統頻率包括內部匯流排頻率和圖形加速器頻率,以及內部和外部記憶體的存取速度。
圖形子系統頻率還會劇烈地影響整體圖形性能。
範例
下面是從STM32H7上的內部RAM運行時,從理論上評估核心和子系統性能的範例:
- CPU核心的運行頻率為480MHz。
- 64位元AXI匯流排頻率為240MHz。
- LCD-TFT顯示器控制器(LTDC)使用64位元AXI匯流排,在10個週期內執行8次傳輸。
- 內部RAM不會導致明顯延遲,即0等候狀態。
因此,LTDC當外設訪問時內部RAM的頻寬為:
- 頻寬= 240 MHz x 8/10 x 8 位元組 = 1.536MB/s。
有了這樣的頻寬,當解析度為800x480且色深為32bpp時,內部RAM可確保1000幀/秒(fps)的刷新率。 通常會將對顯示器的傳輸限制在每秒60幀(通過調整像素時脈、沿等),以免LTDC和內部RAM的頻寬成為瓶頸。
嵌入式硬體加速功能
不同的STM32 MCU具有不同的內置硬體加速功能,有助於獲得高性能的圖形應用。
Chrom-ART
Chrom-ART是一種先進的DMA,可以為執行圖形操作提供輔助。 它也被稱為DMA2D。
許多STM32平臺中集成了Chrom-ART加速器,它能夠控制和傳輸圖像,而不會增加CPU負載。 它能夠加快大多數圖形操作的速度,如顏色填充、圖像複製、混合和像素格式轉換。
Chrom-ART加速器能夠在一項操作中執行兩個圖層的混合,並將初始像素格式轉換為需要的輸出像素格式,並將結果傳輸到記憶體目標位置。
Chrom-ART加速器還支援有顏色查閱資料表(CLUT)的顏色模式。 這有助於節省存儲空間。
以在 STM32F496-EVAL 板上運行的應用為例,當啟用Chrom-ART時,CPU負載從 82%降至 4% :
此外,STM32H7產品為Chrom-ART外設增加了從YCbCr 模式轉換至RGB模式的能力。 此特性結合JPEG硬體轉碼器,可減輕JPEG圖像編碼和解碼時的CPU負載。
具有上述特性的Chrom-ART加速器為圖形應用提供了巨大優勢。 TouchGFX(若選擇的MCU中有提供)處理所有Chrom-ART特性,並將所有可能的繪圖操作重定向至Chrom-ART外設而非CPU。
為高性能STM32系列提供了Chrom-ART外設。
Further reading
JPEG硬體轉碼器
STM32H7 和STM32F7 系列提供硬體JPEG轉碼器,用於圖像和影片的編碼和解碼。
如果UI應用需要播放影片檔或顯示JPEG圖像,則此特性十分重要。
JPEG圖像佔用的存儲空間通常較小。 JPEG硬體轉碼器確保在執行時間解碼圖像,而不會發生CPU超載。
一些TouchGFX演示利用JPEG硬體轉碼器,減輕播放MJPEG影片時的CPU負載。
Further reading
Chrom-GRC
在一些STM32微控制器中,外設STM32 Chrom-GRC™(GFXMMU)旨在為向非矩形顯示器發展的新趨勢提供高效支援。
在定址非矩形顯示器時,Chrom-GRC™外設可減少存儲影像緩衝所需的RAM空間。
對於圓形顯示器,外設可將存儲空間要求降低20%。
在控制非方形螢幕時,建議但不強制使用Chrom-GRC™外設。
Further reading
內部快閃記憶體
使用點陣圖資源的圖形化使用者介面應用需要使用非揮發性記憶體來存儲資料。 在某些情況下,從內部快閃記憶體執行和訪問內部快閃記憶體會比外部快閃記憶體快最多兩倍。
由於內部快閃記憶體的大小有限,很多時候會用內部快閃記憶體來存儲TouchGFX框架、螢幕定義和UI邏輯,而點陣圖資料則存儲在外部快閃記憶體中。
對圖形應用使用的STM32產品組合的內部快閃記憶體大小介於幾KB和幾MB之間。
當點陣圖資料量與內部快閃記憶體不匹配時,可能需要用到外部記憶體。
Further reading
TouchGFX快閃記憶體要求:
- 框架: 60 KB 至 100 KB。
- 螢幕定義和GUI邏輯: 1至 100KB。
這些數位取決於使用的框架特性,以及應用的大小和複雜度。
內部RAM
內部RAM可用於存儲影像緩衝的前提是儲影緩衝的大小能夠放入可用記憶體。 或者,也可以為設置增加外部記憶體。
根據寬度、高度和色深計算影像緩衝的大小。 例如,對於具有HVGA解析度(480x320)和16位色的顯示器,一個影像緩衝所需的存儲空間為:
1個影像緩衝的大小= 480 x 320 x 2 = 307.200 位元組
對圖形應用使用的STM32產品的內部RAM大小介於幾KB和幾MB之間。
Further reading
TouchGFX RAM要求:
- 框架: 10 KB至30 KB
- 小部件: 1 KB 至 15 KB
不同應用的存儲空間要求可能不同。
LCD控制器
MCU的選擇還取決於要使用的顯示器介面和解析度。 以800x480的解析度為例,只能通過高效的資料傳輸足夠介面來實現。 RGB-TFT和MPI-DSI介面通常用於更高解析度,原因是在許多情況下,頻寬高於SPI或平行8080/6800。 低解析度顯示器通常內置控制器和GRAM,可通過簡單的SPI或8080/6800介面進行連接。
高解析度顯示器(WQVGA及以上)通常沒有內置控制器和GRAM,因此控制器需位於微控制器側。 內置RGB-TFT和MIPI DSI介面的STM32 MCU上有控制器。
Further reading
封裝和I/O
需要的I/O數量取決於選擇的顯示器和外部記憶體。 運行具有平行RAM和快閃記憶體的平行顯示器可能需要大量I/O,導致封裝尺寸變大。
記憶體介面
當微控制器中的內部快閃記憶體和RAM不夠用時,選擇具有最合適外部記憶體介面的合適MCU就變得十分重要。 STM32產品提供了不同的記憶體控制器外設,用於連接NOR、NAND、SRAM、SDRAM、LPSDR SDRAM和PSRAM記憶體。
可變存儲控制器 & 可變靜態存儲控制器(FMC/FSMC)
除了支援靜態RAM,FMC還為FSMC增加了動態RAM支援(SDRAM)。 可變存儲控制器(FMC)具有很高的外部存取速率和8、16特別是32位元資料匯流排,可實現與外部RAM之間的更高吞吐率,從而更好地支持更高解析度。 FMC的每個存儲區有獨立的晶片選擇。 FMC可以控制用於資料的外部快閃記憶體、用於幀緩衝的外部RAM記憶體和用於圖形棧的堆擴展。
串列記憶體介面
根據選擇的STM32產品,可能有內置串列記憶體介面,除了QSPI、PSRAM、OPI PSRAM和Hyper RAM記憶體,還可以連接單線、雙線、四線、八線和hyperBus快閃記憶體。 串列高速記憶體介面在處於記憶體映射模式時可控制最大 256 MB 的記憶體;當處於直接模式時為 4 GB。
相比於平行介面,串列記憶體介面可將成本較低的外部快閃記憶體連接到小型封裝,同時減少使用的引腳數。
Further reading
STM32超值系列產品
為了優化價格,STM32H7和STM32F7平臺提供了具有有限內部快閃記憶體的超值系列產品。 使用這些產品時,圖形資源將保存在外部快閃記憶體中。
Cortex®-M Cores
STM32 MCU採用不同的ARC Cortex®-M架構。 下面是STM32上運行圖形時最常用的內核。
Cortex®-M0+
Cortex®-M0+的特點在於它架構簡單且價格低廉。 建議將其應用於以較低解析度運行的較小的靜態圖形應用。
Cortex®-M4
與Cortex®-M4相比,M0+包含更多功能,並加快了計算速度。 它包含DSP指令集和單精確度FPU單元。 這些指令可減輕CPU負載並提高計算速度。
Cortex®-M7
Cortex®-M7包含更複雜的架構,也包含DSP指令集,並具有更高效的雙精度FPU單元,以及可容納最多16KB的資料和指令的一級緩衝記憶體。 緩衝記憶體提供了使資料和指令緊鄰計算單元以便優化提取時間的可能性。
特性概述
特徵 | Cortex-M0+ | Cortex-M4 | Cortex-M7 |
---|---|---|---|
DMIPS/MHz範圍 | 0.95-1.36 | 1.25-1.95 | 2.14-3.23 |
Core Mark®/MHz | 2.46 | 3.42 | 5.01 |
數位信號處理(DSP)擴展 | 無 | 有 | 有 |
浮點數硬體 | 無 | 有(SP) | 有(SP + DP) |
內置緩存 | 無 | 無 | 有(可選4-64KB),I-Cachen D-Cache |
匯流排協定 | AHB Lite,Fast I/O | AHB Lite, APB | AXI4,AHB Lite,APB,TCM |
雙核鎖步支持 | 無 | 無 | 有 |
一級緩存:
STM32H7和STM32F7系列包含最大16 KB的一級緩存,用於指令和資料緩存。 一級緩存在CPU附近保存了資料或指令集,因此CPU無需不斷地提取重複使用的同一資料。
Further reading
雙核
STM32H7系列包含雙核系列:
Arm® Cortex®-M7和Cortex®-M4內核的運行頻率分別可達到480 MHz和240 MHz,可以支援更多的處理和應用程式分區。 雙核STM32H7產品系列可與嵌入式SMPS一起使用,以提高動態電源效率。
第二個Cortex®-M4可以減輕計算量,以便開放M7內核用於繪圖/圖形操作。
Note
匯流排架構
大多數STM32微控制器提供 32位元多AHB 匯流排矩陣,用於互連所有主設備(CPU、DMA等)和從設備(快閃記憶體、RAM、FSMC、AHB和APB外設)。 這樣一來,即使多個高速外設同時工作,也能確保無縫、高效的操作。
除了多AHB互連,一些STM32(Cortex®-M7)產品還內置64位AXI,用於擴展頻寬。 因此,在性能和功耗之間實現了最佳平衡。
價格
內部快閃記憶體和內部RAM的大小以及封裝中的可用引腳數都會影響MCU的價格。 使用者可以根據介面、解析度和性能等方面的要求,最終找到合適的MCU和估價。