記憶體 MCU MPU GUI DMA

整合借力高效記憶體 MCU打造優異圖形介面體驗

2019-10-15
嵌入式圖形設計中的一項重大難題是用作框架緩衝區的記憶體。這類記憶體應選用高速運行、價格低廉的大容量產品。遺憾的是,為了將記憶體整合到嵌入式圖形設計中,通常不得已得有所妥協。最好的情況下,妥協的代價就是導致成本增加,嚴重壓縮獲利空間。更糟的是,可能得將設計工作外包或增加培訓及新進員工才能成功完成設計。本文聚焦在使用微控制器(MCU)的嵌入式圖形應用中整合高密度、高效能記憶體的考量,討論盡可能降低甚至消除其潛在影響的方法。

在嵌入式圖形設計中,與使用微處理器(MPU)架構相比,MCU具備諸多優勢。儘管特定級別的GUI必須採用MPU架構,但許多應用仍然可以採用外觀新穎獨特的高效圖形化使用者介面(GUI),無需額外花費成本或開設訓練課程來實現。最大的優勢莫過於標準MCU提供的高整合度,其中包括選擇揮發性(SRAM)和非揮發性(快閃記憶體)記憶體的大小、特定的核心和時脈速度、通訊介面和IO連接埠以及類比周邊。此外,市場中的元件種類繁多,能夠滿足大多數嵌入式需求。然而,當嵌入式應用需要使用GUI時,MCU用戶在簡便性、空間和成本節省等方面將面臨更加複雜的問題。如果存在這種需求,許多嵌入式設計人員仍在質疑MCU如何滿足其需求,或者是否選擇升級MPU方案,但可能面臨提高成本和複雜性的風險。

圖形設計考量四重點

圖形驅動方法

圖形設計首先需要考慮如何驅動圖形。嵌入式圖形設計通常具備三大功能:渲染、驅動和儲存。渲染是指如何創建和操作圖像。入門級設計將使用微控制器的中央處理單元(CPU)執行此功能。高階的專用圖形MCU將配備專屬圖形處理單元(GPU),這可以承擔一部分渲染任務,如線條和矩形繪製/填充、形狀移動以及稱為位塊傳輸(Blits)的覆蓋操作。驅動功能控制如何將圖像轉移到螢幕上,可通過微控制器的直接記憶體訪問(DMA)單元,直接記憶體訪問外部平行埠或專用的圖形控制器加以實現。圖形控制器將添加覆蓋和旋轉等功能,進一步優化最終設計。最後,儲存指的是所顯示資訊的儲存位置,這是後文重點介紹的內容。

在何處儲存GUI設計

如今,多數主流的高階MCU提供最高容量高達512KB的整合SRAM。這可能足以驅動僅需要一個框架緩衝區的簡單靜態GUI,或者僅使用顏色選擇為每像素8位元且螢幕較小的GUI。然而,目前的市場趨勢是,最終使用者希望嵌入式設備的介面操作得到優化,獲得在智慧手機上操作常用應用程式時的相似體驗。此外,公司希望所有GUI均可準確彰顯品牌特性,提高品牌辨識度和用戶忠誠度。驅動運行流暢、內容豐富的圖形化使用者介面可能涉及多個框架緩衝區、多個疊加層以及提升色彩深度。如果要求應用中的圖形如照片般逼真或與特定品牌顏色完全吻合,提升色彩深度尤其重要。

圖1展示了涉及上述多種增強功能的一些GUI應用範例。此範例是一種如照片般逼真的圖像失真展示,它在運行時占用了約12MB的非揮發性記憶體空間。另一應用是一款咖啡機GUI,其中使用了部分小型圖示,但也包含多層疊加和運動,其在運行時占用的空間約為3MB。

圖1 GUI應用範例

是否使用外部記憶體儲存GUI

請記住,典型高階MCU中整合SRAM的容量最高為512KB。顯然,這兩種應用的儲存空間需求超出了市場上幾乎所有MCU中整合高速記憶體的容量水準。因此,MCU需要在外部額外添加記憶體。此類記憶體需要具備較高的密度、效能和可用性。在MCU圖形應用中,外部記憶體可以選用非同步SRAM。外部SRAM提供增強型記憶體,密度最高可達8MB,其設計也相對簡單,非多工的位址線和接腳排列也與許多微控制器上的外部平行埠相容。使用外部SRAM需要在密度(8MB的密度很大,但仍無法滿足很多圖形密集型應用的需求)、成本(經銷商對單個單元的定價通常高於MCU本身)和電路板空間方面做出妥協。

目前,市面上的許多MCU都在其微控制器中安裝了可用於圖形儲存的SDRAM介面。此類外部記憶體支援的最佳密度為8MB和16MB。SDRAMS相對容易獲取,其成本效益遠超過外部SRAM。如上所述,應將8MB視為密度下限,某些GUI應用(如照片失真展示)會超出此限制。使用SDRAM時還需要考慮電路板設計的考量。當匯流排速度達到120MHz時,必須遵循特殊設計要求。例如,建議採用端到端SDRAM設計的所有應用均使用六層PCB板。這意味著高效能外部記憶體最多可以在嵌入式PCB設計上增加四層,整體系統物料清單(BOM)的成本隨之提升數美元。

SDRAM需要考慮的另一個問題是效能。對於典型的100MHz 16位元匯流排,理論上的最大資料傳輸速率為200MB/s。具有60MHz刷新率和每像素16位元色彩深度的800×480 WVGA顯示幕需要46MB/s的資料輸送量。然而,由於需要在CPU或可選圖形處理單元中進行影像處理,同時針對分層覆蓋(已成為嵌入式圖形MCU中的標準)提供支援,因此該設計將用盡或超出基於SDRAM系統的實際效能。換句話說,SDRAM效能可能對某些高階圖形應用造成限制。還記得前面提到的趨勢嗎?最終使用者希望他們與電子設備的所有互動都能與使用智慧手機和常用應用程式時獲得的體驗類似。因此,未來的效能壓力只會與日俱增,效能和密度更高的新技術必然應運而生。

GUI應用是否具備內部記憶體

最後將考慮的技術是DDR2 SDRAM。與SDRAM相比,它能夠為開發人員提供更大的密度優勢(最高可達128MB)。使用DDR2 SDRAM的另一個優點在於效能。DDR2記憶體介面的時脈速率至少是SDRAM的兩倍。此外,DDR代表「雙倍數據速率」,這意味著在每個週期,資料都會傳入/傳出記憶體兩次。結果就是,這種記憶體技術的資料速率至少是市面上所使用的SDRAM的四倍。

如何駕馭DDR2記憶體的效能是這種技術的主要挑戰之一。由於匯流排界面的起始頻率為200MHz,並且每半個週期會發生資料傳輸,因此需要特別考慮SDRAM的需求,以確保適當的訊號完整性,同時在電路板的其餘部分實現隔離。DDR設計還需要考慮其他規範,例如參考電壓、源電壓和端電壓的嚴格容差、適當的去耦以及走線寬度、內部間距和走線方式等布線考量。

隨著嵌入式圖形應用向大型化、深入化和複雜化方向發展,DDR2對於大量存放區和快速資料輸送量的需求將與日俱增。幾年前,嵌入式系統設計人員在不超過150MHz的條件下即可實現MCU的設計,而現在,MCU速度需要提高為原來的兩倍,記憶體介面也要與MCU的內部時脈速度相匹配。大多數MCU製造商有能力並且正在切實地透過多種途徑為其產品提供設計支援。

不過,如果PCB無需額外增加昂貴的層面,便可在支援圖形功能的高速MCU中訪問高密度、高效能記憶體,豈不是更完美的解決方案?這有助於節省幾美元的整體BOM成本,可以告別首次進行200MHz+DDR2匯流排設計時的附加工作。目前已有廠商,如微芯(Microchip)的PIC32MZ DA是市場上少數能夠與DDR2記憶體連接的MCU之一。PIC32MZ DA系列微控制器將圖形記憶體整合到晶片內,有效緩解了設計外部記憶體的壓力。PIC32MZ DA採用堆疊式記憶體設計技術,向元件內部添加了32MB的DDR2 DRAM,因此無需使用外部記憶體(圖2)。該元件還在晶片中整合了三層圖形控制器和高效能圖形處理單元,可為圖形驅動MCU提供整合度和效能。

圖2 PIC32MZ DA框圖

為了積極迎合圖形化使用者介面在美觀性和複雜度方面的需求,用戶針對嵌入式設計的需求必然與日俱增。借助多種記憶體技術,雖然能夠突破MCU架構在記憶體儲存方面受到的重大限制,但每種記憶體技術並不完美,有著獨特的優勢和劣勢。本文探討了每種架構的優缺點。GUI設計不會退出市場,雖然記憶體限制是設計人員面臨的棘手難題,但它們不應成為瓶頸,阻礙功能實用、高效運行的應用。

(本文作者為Microchip MCU32事業部門的產品行銷經理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!