0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SWM341 DMA2D模塊介紹

0xQC_gh_ed4f95b ? 來源:華芯微特32位MCU ? 2023-06-02 09:19 ? 次閱讀

1DMA2D模塊基礎(chǔ)知識

DMA2D是專用于圖像處理的專業(yè)DMA。特別是刷單色屏,刷圖片,刷Alpha(透明)混合效果全靠它,而且可以大大降低CPU利用率。

DMA2D主要實現(xiàn)了兩個功能,一個是DMA數(shù)據(jù)傳輸功能,另一個是2D圖形加速功能。

DMA數(shù)據(jù)傳輸

主要是兩種方式,一個是寄存器到存儲器,另一個是存儲器到存儲器。通過DMA可以大大降低CPU的利用率。

2D圖形加速功能

支持硬件的顏色格式轉(zhuǎn)換和Alpha混合效果。DMA2D可在以下四種模式下工作:

·寄存器到存儲器

·存儲器到存儲器

·存儲器到存儲器并執(zhí)行像素格式轉(zhuǎn)換

·存儲器到存儲器并執(zhí)行像素格式轉(zhuǎn)換和混合

△DMA2D模塊結(jié)構(gòu)框示意圖

2DMA2D前景層FIFO和背景層FIFO

DMA2D前景層FIFO和背景層FIFO獲取要復(fù)制和/或處理的輸入數(shù)據(jù)。這些FIFO根據(jù)相應(yīng)像素格式轉(zhuǎn)換器PFC中定義的顏色格式獲取像素。

通過如下一組寄存器對它們進行編程

·DMA2D前景層存儲器地址寄存器(FGMAR)

·DMA2D前景層偏移寄存器(FGOR)

·DMA2D背景層存儲器地址寄存器 (BGMAR)

·DMA2D背景層偏移寄存器 (BGOR)

·DMA2D行數(shù)寄存器(行數(shù)和每行像素數(shù))(NLR)

DMA2D在寄存器到存儲器模式下工作時,不激活任何FIFO。

DMA2D在存儲器到存儲器模式下工作時(無像素格式轉(zhuǎn)換和混合操作),僅激活FG FIFO,并將其用作緩沖區(qū)。

DMA2D在存儲器到存儲器模式下工作時并支持像素格式轉(zhuǎn)換時(無混合操作),不會激活BG FIFO。

3DMA2D 前景層和背景層像素格式轉(zhuǎn)換器

DMA2D前景層和背景層像素格式轉(zhuǎn)換器 (PFC)執(zhí)行像素格式轉(zhuǎn)換,以生成每像素32位的值。PFC還能夠修改alpha通道。

轉(zhuǎn)換器在第一階段轉(zhuǎn)換顏色格式。前景層像素和背景層像素的原始顏色格式分別通過 FGPFCCR和BGPFCCR的CFMT [3:0] 位來配置。

顏色格式的編碼方式如下:

·Alpha 值字段:透明【0xFF 值對應(yīng)不透明像素,0x00 對應(yīng)透明像素】

·R 字段代表紅色

·G 字段代表綠色

·B 字段代表藍(lán)色

如果原始格式不包括alpha通道,則會自動將alpha值設(shè)為0xFF(不透明)。通過ARGB8888模式支持按32位對齊24位RGB888。

生成32位值后,即可根據(jù)FGPFCCR/ BGPFCCR寄存器的AMODE [1:0]字段修改alpha 通道。

Alpha通道可以:

·保持不變(不做修改)

·替換為FGPFCCR/BGPFCCR的ALPHA[7:0]值

·換為原始alpha值與FGPFCCR/BGPFCCR的ALPHA [7:0]值的乘積除以255所得商。

4DMA2D混合器

DMA2D混合器成對混合源像素以計算結(jié)果像素。

混合將按以下公式執(zhí)行:

3502f6a0-00e1-11ee-90ce-dac502259ad0.png

混合器不需要任何配置寄存器。是否使用混合器取決于CR寄存器的MODE[1:0]字段中定義的DMA2D工作模式。

5DMA2D輸出PFC

輸出PFC將像素格式從32位轉(zhuǎn)換為指定的輸出格式,輸出格式在DMA2D輸出像素格式轉(zhuǎn)換器配置寄存器 (OPFCCR)的CFMT [2:0]字段中定義。

6DMA2D輸出FIFO

輸出FIFO根據(jù)輸出PFC中定義的顏色格式對像素進行編程。

通過如下一組寄存器定義目標(biāo)區(qū)域:

·DMA2D輸出存儲器地址寄存器 (OMAR)

·DMA2D輸出偏移寄存器 (OOR)

·DMA2D行數(shù)寄存器(行數(shù)和每行像素數(shù))(NLR)

如果DMA2D在寄存器到存儲器模式下工作,則配置的輸出矩形將以DMA2D輸出顏色寄存器 (OCOLOR)中指定的顏色填充。

7DMA2D配置

DMA2D可在以下四種模式下工作,通過CR寄存器的MODE[1:0]位選擇工作模式:

·寄存器到存儲器

·存儲器到存儲器

·存儲器到存儲器并執(zhí)行PFC

·存儲器到存儲器并執(zhí)行PFC和混合

寄存器到存儲器

寄存器到存儲器模式用于以預(yù)定義顏色填充用戶自定義區(qū)域。顏色格式在OPFCCR中設(shè)置。

DMA2D不從任何源獲取數(shù)據(jù)。它只將OCOLOR寄存器中定義的顏色寫入通過OMAR 尋址以及NLR和OOR定義的區(qū)域。

存儲器到存儲器

在存儲器到存儲器模式下,DMA2D不執(zhí)行任何圖形數(shù)據(jù)轉(zhuǎn)換。前景層輸入FIFO充當(dāng)緩沖區(qū),數(shù)據(jù)從FGMAR中定義的源存儲單元傳輸?shù)絆MAR尋址的目標(biāo)存儲單元。

FGPFCCR寄存器的CFMT [3:0]位中編程的顏色模式?jīng)Q定輸入和輸出的每像素位數(shù)。

對于要傳輸?shù)膮^(qū)域大小,源區(qū)域大小由NLR和FGOR寄存器定義,目標(biāo)區(qū)域大小則由 NLR和OOR寄存器定義。

存儲器到存儲器并執(zhí)行PFC

此模式下,DMA2D對源數(shù)據(jù)執(zhí)行像素格式轉(zhuǎn)換并將結(jié)果存儲在目標(biāo)存儲單元。

對于要傳輸?shù)膮^(qū)域大小,源區(qū)域大小由NLR和FGOR寄存器定義,目標(biāo)區(qū)域大小則由 NLR和OOR寄存器定義。

從FGMAR寄存器定義的位置獲取數(shù)據(jù),并由前景層PFC進行處理。原始像素格式通過 FGPFCCR寄存器配置。

在顏色轉(zhuǎn)換執(zhí)行期間,可根據(jù)FGPFCCR寄存器中編程的值添加或更改alpha值。如果原始圖像沒有alpha通道,則會自動添加一個默認(rèn)的alpha值0xFF以獲得完全不透明的像素。

可根據(jù)FGPFCCR寄存器的AMODE [1:0]位修改alpha值:

·保持不變

·替換為FGPFCCR寄存器的ALPHA[7:0]值中定義的值

·替換為原始值與FGPFCCR寄存器的ALPHA[7:0]值的乘積除以255所得商

結(jié)果得到的32位數(shù)據(jù)由OUT PFC編碼成OPFCCR寄存器的CFMT [2:0]字段所指定的格式。數(shù)據(jù)經(jīng)處理后,將寫入OMAR尋址的目標(biāo)存儲單元。

DMA數(shù)據(jù)傳輸

此模式下,將在前景層FIFO和背景層FIFO(分別在FGMAR和BGMAR中定義)獲取兩個源圖像。

必須按存儲器到存儲器模式中所述配置兩個像素格式轉(zhuǎn)換器。由于這兩個像素格式轉(zhuǎn)換器各自獨立,因此其配置可以不同。在每個像素都通過相應(yīng)的PFC轉(zhuǎn)換為32位后,將根據(jù)上述公式進行混合:輸出PFC將根據(jù)指定的輸出格式對得到的32位像素值進行編碼,并且編碼數(shù)據(jù)將寫入OMAR尋址的目標(biāo)存儲單元。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2626

    瀏覽量

    47212
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5268

    瀏覽量

    119646
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7402

    瀏覽量

    163389
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10769

    瀏覽量

    210426
  • DMA2D
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    2095

原文標(biāo)題:SWM341 DMA2D模塊介紹

文章出處:【微信號:gh_ed4f95bde4df,微信公眾號:華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問解碼bmp圖片時是否可以使用dma2d功能 ?

    請教下,解碼bmp圖片時是否可以使用dma2d功能 ? 具體描述如下: 沒有使用 emWin 就是先讀取整副 bmp 的數(shù)據(jù),之后解碼暫存,之后使用 dma2d 功能顯示, 有沒有這個必要或者這個能否能否實現(xiàn)啊,如果確定使用 d
    發(fā)表于 04-30 06:39

    轉(zhuǎn):DMA2D圖形加速

    DMA2D(Chrom-Art Accelerator?)是專用于圖像處理的專業(yè) DMA,就是Chrom-Art加速器控制器DMA2D可以執(zhí)行如下的幾個工作:1、用特定顏色填充目標(biāo)圖像的一部分或全部
    發(fā)表于 08-11 09:52

    STM32F429的DMA2D應(yīng)用之刷色塊

    第46章 STM32F429的DMA2D應(yīng)用之刷色塊,位圖和Alpha混合本章節(jié)為大家講解DMA2D應(yīng)用中經(jīng)常用到的刷色塊,刷位圖,Alpha混合和圖片混合的實現(xiàn)。目錄第46章 STM32F429
    發(fā)表于 08-10 06:51

    怎樣使用寄存器DMA2D傳輸LVGL配置

    我看了很多DMA2D教程都是用阻塞方式來刷新屏, 這樣就消耗了性能 相當(dāng)于沒用DMA, 所以我使用DMA2D中斷來傳輸數(shù)據(jù)測試平臺stm32f429 + 正點原子7寸1024x600液晶屏
    發(fā)表于 01-26 06:22

    使用DMA2D外設(shè)加速ART-PI-LVGL的顯存數(shù)據(jù)搬運

    使用”GPU”來為LVGL加速—DMA2D加速顯存數(shù)據(jù)搬運二、DMA2D介紹在STM32高性能芯片中,可以使用DMA2D外設(shè)專門用來給LCD顯示加速,有LTDC外設(shè)的型號中,通常也會配
    發(fā)表于 06-30 10:24

    怎樣去解決STM32H735G-DK DMA2D起始地址漂移的問題呢

    我正在使用 CubeMX 生成起始文件而不是 BSP 示例。當(dāng)我嘗試設(shè)置 DMA2D 時,我發(fā)現(xiàn)起始地址將被移動 0xC。...// setup octospi2 for hyperram
    發(fā)表于 12-12 07:10

    STM32L4R9芯片的圖形加速器DMA2D實例使用

    摘要:本文首先介紹STM32L4R9芯片的圖形特性及相關(guān)的硬件模塊,以及圖形顯示時各個模塊的功能劃分。尤其是針對DMA2D模塊,詳細(xì)描述主要
    發(fā)表于 02-07 14:27

    SWM341系列MCU數(shù)據(jù)手冊

    SWM341 是一款基于 ARM○R Cortex?-M33 的 32 位微控制器。具有高性能、低功耗、代碼密度大等突出特點,適用于工業(yè)控制、白色家電、電機驅(qū)動等諸多應(yīng)用領(lǐng)域。SWM341 內(nèi)嵌
    發(fā)表于 09-14 07:59

    STM32469I_EVAL-DMA2D

    單片機開發(fā)板STM32469I_EVAL的開發(fā)例程DMA2D
    發(fā)表于 06-03 15:48 ?7次下載

    Chrom-Art Accelerator控制器 (DMA2D)

    Chrom-Art Accelerator 控制器 (DMA2D) 本章適用于 STM32F42xxx 和 STM32F43xxx 系列。 11.1 DMA2D 簡介 Chrom-Art
    發(fā)表于 12-05 15:39 ?12次下載

    "stm32 DMA2D使用中斷LVGL,提高LVGL幀率"

    我看了很多DMA2D教程都是用阻塞方式來刷新屏 這樣就消耗了性能 相當(dāng)于沒用DMA 所以我使用DMA2D中斷來傳輸數(shù)據(jù)測試平臺stm32f429 + 正點原子7寸1024x600液晶屏 45MHZ
    發(fā)表于 12-02 17:06 ?37次下載
    "stm32 <b class='flag-5'>DMA2D</b>使用中斷LVGL,提高LVGL幀率"

    華芯微特SWM341系列微控制器主要性能 SWM34SRT6-50顯示驅(qū)動應(yīng)用

    本文介紹了華芯微特SWM341系列主要性能,和其系列之一的SWM34SRET6-50驅(qū)動4.3寸800*480 TFTLCD顯示的例程應(yīng)用。
    的頭像 發(fā)表于 06-13 11:49 ?7162次閱讀

    SWM341 DMA2D模塊介紹

    SWM341 DMA2D模塊介紹
    的頭像 發(fā)表于 11-06 17:11 ?634次閱讀
    <b class='flag-5'>SWM341</b> <b class='flag-5'>DMA2D</b><b class='flag-5'>模塊</b><b class='flag-5'>介紹</b>

    SWM341系列之86盒智能開關(guān)應(yīng)用

    SWM341系列之 86盒智能開關(guān)應(yīng)用
    的頭像 發(fā)表于 11-10 18:25 ?994次閱讀
    <b class='flag-5'>SWM341</b>系列之86盒智能開關(guān)應(yīng)用

    SWM341系列之SWM34SRET6介紹

    SWM341系列之SWM34SRET6介紹
    的頭像 發(fā)表于 10-27 10:19 ?1980次閱讀
    <b class='flag-5'>SWM341</b>系列之<b class='flag-5'>SWM</b>34SRET6<b class='flag-5'>介紹</b>