DMA2D 圖形加速器簡介


在實際使用 LTDC 控制器控制液晶屏時,使 LTDC 正常工作后,往配置好的顯存地址
寫入要顯示的像素數據, LTDC 就會把這些數據從顯存搬運到液晶面板進行顯示,而顯示
數據的容量非常大,所以我們希望能用 DMA 來操作,針對這個需求, STM32 專門定制了
DMA2D 外設,它可用於快速繪制矩形、直線、分層數據混合、數據復制以及進行圖像數
據格式轉換,可以把它理解為圖形專用的 DMA
DMA2D 結構框圖剖析
27-13 DMA2D 的結構框圖,它與前面 LTDC 結構里的圖像處理單元很類似,主
要為分層 FIFOPFC 及彩色混合器。

1. FG FIFO BG FIFO
FG FIFO(Foreground FIFO)BG FIFO(Backgroun FIFO)是兩個 64x32 位大小的緩沖區,
它們用於緩存從 AHB 總線獲取的像素數據,分別專用於緩沖前景層和背景層的數據源。
AHB 總線的數據源一般是 SDRAM,也就是說在 LTDC 外設中配置的前景層及背景層
數據源地址一般指向 SDRAM 的存儲空間,使用 SDRAM 的部分空間作為顯存。
2. FG PFC BG PFC
FG PFC(FG Pixel Format Convertor)BG PFC(BG Pixel Format Convertor)是兩個像素格
式轉換器,分別用於前景層和背景層的像素格式轉換,不管從 FIFO 的數據源格式如何,
都把它轉化成字的格式(32 )ARGB8888
圖中的“ɑ”表示 Alpha,即透明度,經過 PFC,透明度會被擴展成 8 位的格式。
圖中的“CLUT”表示顏色查找表(Color Lookup Table),顏色查找表是一種間接的顏色
表示方式,它使用一個 256x32 位的空間緩存 256 種顏色,顏色的格式是 ARGB8888
RGB888。見圖 27-14,利用顏色查找表,實際的圖像只使用這 256 種顏色,而圖像的每個
像素使用 8 位的數據來表示,該數據並不是直接的 RGB 顏色數據,而是指向顏色查找表的
地址偏移,即表示這個像素點應該顯示顏色查找表中的哪一種顏色。在圖像大小不變的情
況下,利用顏色查找表可以擴展顏色顯示的能力,其特點是用 8 位的數據表示了一個 24
32 位的顏色,但整個圖像顏色的種類局限於顏色表中的 256 種。 DMA2D 的顏色查找表可
以由 CPU 自動加載或編程手動加載。

3. 混合器
FIFO 中的數據源經過 PFC 像素格式轉換器后,前景層和背景層的圖像都輸入到混合
器中運算,運算公式見圖 27-15

4. OUT PFC
OUT PFC 是輸出像素格式轉換器,它把混合器轉換得到的圖像轉換成目標格式,如
ARGB8888RGB888RGB565ARGB1555 ARGB4444,具體的格式可根據需要在輸
PFC 控制寄存器 DMA2D_OPFCCR 中選擇。


  STM32F429 芯片使用 LTDCDMA2D RAM 存儲器,構成了一個完整的液晶控制
器。 LTDC 負責不斷刷新液晶屏, DMA2D 用於圖像數據搬運、混合及格式轉換, RAM
儲器作為顯存。其中顯存可以使用 STM32 芯片內部的 SRAM 或外擴 SDRAM/SRAM,只
要容量足夠大即可(至少要能存儲一幀圖像數據)

DMA2D結構體
配置完這些結構體成員,調用庫函數DMA2D_Init即可把這些參數寫入
DMA2D的控制寄存器中,然后再調用DMA2D_StartTransfer函數開啟數據傳輸及轉換。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM