在实际使用 LTDC 控制器控制液晶屏时,使 LTDC 正常工作后,往配置好的显存地址
写入要显示的像素数据, LTDC 就会把这些数据从显存搬运到液晶面板进行显示,而显示
数据的容量非常大,所以我们希望能用 DMA 来操作,针对这个需求, STM32 专门定制了
DMA2D 外设,它可用于快速绘制矩形、直线、分层数据混合、数据复制以及进行图像数
据格式转换,可以把它理解为图形专用的 DMA。

DMA2D 结构框图剖析
图 27-13 是 DMA2D 的结构框图,它与前面 LTDC 结构里的图像处理单元很类似,主
要为分层 FIFO、 PFC 及彩色混合器。

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 是输出像素格式转换器,它把混合器转换得到的图像转换成目标格式,如
ARGB8888、 RGB888、 RGB565、 ARGB1555 或 ARGB4444,具体的格式可根据需要在输
出 PFC 控制寄存器 DMA2D_OPFCCR 中选择。

  STM32F429 芯片使用 LTDC、 DMA2D 及 RAM 存储器,构成了一个完整的液晶控制
器。 LTDC 负责不断刷新液晶屏, DMA2D 用于图像数据搬运、混合及格式转换, RAM 存
储器作为显存。其中显存可以使用 STM32 芯片内部的 SRAM 或外扩 SDRAM/SRAM,只
要容量足够大即可(至少要能存储一帧图像数据)。

DMA2D结构体
配置完这些结构体成员,调用库函数DMA2D_Init即可把这些参数写入
到DMA2D的控制寄存器中,然后再调用DMA2D_StartTransfer函数开启数据传输及转换。

DMA2D 图形加速器简介的更多相关文章

  1. 【STM32H7教程】第55章 STM32H7的图形加速器DMA2D的基础知识和HAL库API

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第55章       STM32H7的图形加速器DMA2D的基 ...

  2. matlab学习笔记8 基本绘图命令-图形窗口简介

    一起来学matlab-matlab学习笔记8 基本绘图命令_1 图形窗口简介 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等 ...

  3. 第15.47节、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...

  4. 27-4-DMA2D图形加速器

    在实际使用 LTDC 控制器控制液晶屏时,使 LTDC 正常工作后,往配置好的显存地址写入要显示的像素数据, LTDC 就会把这些数据从显存搬运到液晶面板进行显示,而显示数据的容量非常大,所以我们希望 ...

  5. 第四十章、PyQt显示部件:QGraphicsView图形视图和QGraphicsScene图形场景简介及应用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer中的Graphics V ...

  6. 第27章 LTDC/DMA2D—液晶显示

    本章参考资料:<STM32F76xxx参考手册2>.<STM32F7xx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>. 关于开发板 ...

  7. 第27章 LTDC/DMA2D—液晶显示—零死角玩转STM32-F429系列

    第27章     LTDC/DMA2D—液晶显示 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...

  8. SIMD数据并行(三)——图形处理单元(GPU)

    在计算机体系中,数据并行有两种实现路径:MIMD(Multiple Instruction Multiple Data,多指令流多数据流)和SIMD(Single Instruction Multip ...

  9. Quartz2D 编程指南(一)概览、图形上下文、路径、颜色与颜色空间

    概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 0.说明 本篇博客主要是对官方文档 ...

随机推荐

  1. Linux磁盘分区及链接文件的特点

    系统分区 传统的分区fdisk 最大支持2T的硬盘分区 对存储,多分区使用的parted 主分区:最多只能有4个 扩展分区 最多只能有1个 主分区加扩展分区最多有4个 不能写入数据,只能包含逻辑分区 ...

  2. 微信小程序:input输入框和form表单几种传值和取值方式

    1.传值:index下标传值.页面navigator传值 1.index下标 实现方式是:data-index="{{index}}"挖坑及e.currentTarget.data ...

  3. NVIDIA PureVideo Decoder解码器注册码

    http://www.amznz.com/nvidia-purevideo-decoder/ 重装系统后当然得装终极解码来看高清电影,这次为了给喜欢看HD影片的朋友,特意奉上NVIDIA7以上显卡的N ...

  4. 通向码农的道路(enet开源翻译计划 二)

    QQ 324186207群 enet交流技术,主要是为了研究tcp内部执行机制.欢迎大家增加探讨.小弟水平有限,翻译难免有误. . http://enet.bespin.org 解析enet 双向链表 ...

  5. Gitbook 生成 pdf 中文字体错乱问题解决办法

    Gitbook 生成 pdf 中文字体错乱问题解决办法   用过 Gitbook 的都知道, Gitbook 会自动生成 pdf 以提供下载, 但十分遗憾的是自动生成的 pdf 对中文的支持并不好, ...

  6. keras在win7下环境搭建

    无gpu安装过程:一.卸载之前版本.  把之前单独安装的Python等统统卸载掉.学python的时候直接安装了python2.7,先把他卸载掉,因为Anaconda里边包含了python.二.安装A ...

  7. 有关VS中单元测试的一些问题

    需要config的测试 测试中如果调用的类库需要使用config文件读取配置,可以通过在测试项目中建立App.config,并添加相应字段即可.

  8. Xilinx中的xapp1052理解

    xapp1052是xilinx官方给出的一个有关DMA数据传输的样例,用于PC端和FPGA端之间的DMA数据传输.首先需要说的是,xapp1052并不是一个完整的DMA数据传输的终端硬件设计,这在下面 ...

  9. 《ZedBoard各种资料网址备份记录》

    转载来自于:http://http//www.eefocus.com/crazybingo/blog/2013-02/289101_ab4c8.html 1. Xilinx FPGA相关连接 1) X ...

  10. TensorFlow人脸识别

    TensorFlow框架做实时人脸识别小项目(一)https://blog.csdn.net/Goerge_L/article/details/80208297 TensorFlow框架做实时人脸识别 ...