SWM341 DMA2D模块基础知识
eetrendMcu 2023-11-23

1、DMA2D模块基础知识

DMA2D是专用于图像处理的专业DMA。特别是刷单色屏,刷图片,刷Alpha(透明)混合效果全靠它,而且可以大大降低CPU利用率。

DMA2D主要实现了两个功能,一个是DMA数据传输功能,另一个是2D图形加速功能。

DMA数据传输

主要是两种方式,一个是寄存器到存储器,另一个是存储器到存储器。通过DMA可以大大降低CPU的利用率。

2D图形加速功能

支持硬件的颜色格式转换和Alpha混合效果。DMA2D可在以下四种模式下工作:

· 寄存器到存储器

· 存储器到存储器

· 存储器到存储器并执行像素格式转换

· 存储器到存储器并执行像素格式转换和混合

1.png

△ DMA2D模块结构框示意图

2、DMA2D前景层FIFO和背景层FIFO

DMA2D前景层FIFO和背景层FIFO获取要复制和/或处理的输入数据。这些FIFO根据相应像素格式转换器PFC中定义的颜色格式获取像素。

通过如下一组寄存器对它们进行编程:

· DMA2D前景层存储器地址寄存器(FGMAR)

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

· DMA2D背景层存储器地址寄存器 (BGMAR)

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

· DMA2D行数寄存器(行数和每行像素数)(NLR)

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

DMA2D在存储器到存储器模式下工作时(无像素格式转换和混合操作),仅激活FG FIFO,并将其用作缓冲区。

DMA2D在存储器到存储器模式下工作时并支持像素格式转换时(无混合操作),不会激活BG FIFO。

3、DMA2D 前景层和背景层像素格式转换器

DMA2D前景层和背景层像素格式转换器 (PFC)执行像素格式转换,以生成每像素32位的值。PFC还能够修改alpha通道。

转换器在第一阶段转换颜色格式。前景层像素和背景层像素的原始颜色格式分别通过 FGPFCCR和BGPFCCR的CFMT [3:0] 位来配置。

颜色格式的编码方式如下:

· Alpha 值字段:透明【0xFF 值对应不透明像素,0x00 对应透明像素】

· R 字段代表红色

· G 字段代表绿色

· B 字段代表蓝色

如果原始格式不包括alpha通道,则会自动将alpha值设为0xFF(不透明)。通过ARGB8888模式支持按32位对齐24位RGB888。

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

Alpha通道可以:

· 保持不变(不做修改)

· 替换为FGPFCCR/BGPFCCR的ALPHA[7:0]值

· 换为原始alpha值与FGPFCCR/BGPFCCR的ALPHA [7:0]值的乘积除以255所得商。

4、DMA2D混合器

DMA2D混合器成对混合源像素以计算结果像素。

混合将按以下公式执行:

2.png

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

5、DMA2D输出PFC

输出PFC将像素格式从32位转换为指定的输出格式,输出格式在DMA2D输出像素格式转换器配置寄存器 (OPFCCR)的CFMT [2:0]字段中定义。

6、DMA2D输出FIFO

输出FIFO根据输出PFC中定义的颜色格式对像素进行编程。

通过如下一组寄存器定义目标区域:

· DMA2D输出存储器地址寄存器 (OMAR)

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

· DMA2D行数寄存器(行数和每行像素数)(NLR)

如果DMA2D在寄存器到存储器模式下工作,则配置的输出矩形将以DMA2D输出颜色寄存器 (OCOLOR)中指定的颜色填充。

7、DMA2D配置

DMA2D可在以下四种模式下工作,通过CR寄存器的MODE[1:0]位选择工作模式:

· 寄存器到存储器

· 存储器到存储器

· 存储器到存储器并执行PFC

· 存储器到存储器并执行PFC和混合

寄存器到存储器

寄存器到存储器模式用于以预定义颜色填充用户自定义区域。颜色格式在OPFCCR中设置。

DMA2D不从任何源获取数据。它只将OCOLOR寄存器中定义的颜色写入通过OMAR 寻址以及NLR和OOR定义的区域。

存储器到存储器

在存储器到存储器模式下,DMA2D不执行任何图形数据转换。前景层输入FIFO充当缓冲区,数据从FGMAR中定义的源存储单元传输到OMAR寻址的目标存储单元。

FGPFCCR寄存器的CFMT [3:0]位中编程的颜色模式决定输入和输出的每像素位数。

对于要传输的区域大小,源区域大小由NLR和FGOR寄存器定义,目标区域大小则由 NLR和OOR寄存器定义。

存储器到存储器并执行PFC

此模式下,DMA2D对源数据执行像素格式转换并将结果存储在目标存储单元。

对于要传输的区域大小,源区域大小由NLR和FGOR寄存器定义,目标区域大小则由 NLR和OOR寄存器定义。

从FGMAR寄存器定义的位置获取数据,并由前景层PFC进行处理。原始像素格式通过 FGPFCCR寄存器配置。

在颜色转换执行期间,可根据FGPFCCR寄存器中编程的值添加或更改alpha值。如果原始图像没有alpha通道,则会自动添加一个默认的alpha值0xFF以获得完全不透明的像素。

可根据FGPFCCR寄存器的AMODE [1:0]位修改alpha值:

· 保持不变

· 替换为FGPFCCR寄存器的ALPHA[7:0]值中定义的值

· 替换为原始值与FGPFCCR寄存器的ALPHA[7:0]值的乘积除以255所得商

结果得到的32位数据由OUT PFC编码成OPFCCR寄存器的CFMT [2:0]字段所指定的格式。数据经处理后,将写入OMAR寻址的目标存储单元。

DMA数据传输

此模式下,将在前景层FIFO和背景层FIFO(分别在FGMAR和BGMAR中定义)获取两个源图像。

必须按存储器到存储器模式中所述配置两个像素格式转换器。由于这两个像素格式转换器各自独立,因此其配置可以不同。在每个像素都通过相应的PFC转换为32位后,将根据上述公式进行混合:输出PFC将根据指定的输出格式对得到的32位像素值进行编码,并且编码数据将写入OMAR寻址的目标存储单元。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 处理器
  • DSP
  • CPU
  • GPU
  • STM32实例教程,带你了解FSMC的功能和用法

    FSMC 简介,STM32F103 100 引脚以上系列芯片都带有 FSMC 接口

    前天
  • 解锁你的脑力之门:揭秘内存的秘密武器

    内存是电脑的重要组件之一,缺少内存,电脑将无法运行。凡是每天使用电脑的朋友,都在和内存打交道。但是,大家对于内存真的十分了解吗?为增进大家对内存的认识,本文将对内存的作用以及虚拟内存予以介绍。如果你...

    02-21
  • 单片机运算器了解吗

    单片机的使用,能够早就很多有意思的产品。通过单片机,我们能够造出一个独立的电子器件。为增进大家对单片机的认识,本文将对单片机的基本结构予以介绍。如果你对单片机具有浓厚兴趣,不妨和小编共同继续往下阅读...

    02-21
  • 什么是程控交换机?

    程控交换机,全称为存储程序控制交换机(与之对应的是布线逻辑控制交换机,简称布控交换机),也称为程控数字交换机或数字程控交换机。通常专指用于电话交换网的交换设备,它以计算机程序控制电话的接续。程控交换机...

    01-30
  • 什么是NAS与SAN?

    NAS是功能单一的精简型电脑,因此在架构上不像个人电脑那么复杂,像键盘、鼠标、荧幕、音效卡、喇叭、扩充漕、各式连接口等都不需要;在外观上就像家电产品,只需电源与简单的控制钮。NAS在架构上与个人电脑相似,但...

    01-30
  • 什么是DMA方式?

    DMA方式,Direct Memory Access,也称为成组数据传送方式,有时也称为直接内存操作。DMA方式在数据传送过程中,没有保存现场、恢复现场之类的工作。由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数...

    01-30
  • 汽车车灯和雨刷器

    车灯和雨刷器(电器初级)

    01-29
  • p90灯珠和p70灯珠有什么区别

    p50, p90, p99(或者写作pct 50,pct90,pct 99)都是数据聚合统计一种方式,跟百分比相关(经评论区提醒,p的含义是percentile)。p50:数据集按升序排列,第50分位置大的数据(即升序排列后排在50%位置的数据)。p...

    01-23
  • 揭秘控制器的神秘面纱:从零开始掌控你的生活

    控制器的基本功能如下: 数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据...

    01-22
  • 电路分析基础

    01-22
下载排行榜
更多
评测报告
更多
广告