STM32 DCMI 的带宽与性能介绍

1. 引言

随着市场对更高图像质量的需求不断增加,成像技术持续发展,各种新兴技术(例如3D、计算、运动和红外线)的不断涌现。如今的成像应用对高质量、易用性、能耗效率、高集成度、快速上市和成本效益提出了全面要求。为了满足这些要求,STM32 MCU 内置的数字照相机接口(DCMI),能够高效连接并行照相机模块。

对于使用 STM32 DCMI 开发相机应用的客户,经常有以下问题:STM32 DCMI 最大支持的像素时钟是多少?STM32F4/F7/H7/U5 能支持 1280×720 的相机分辨率吗?最大的帧率是多少?如何判断所设计的应用产生的带宽是否能充足?相机输出是选择 8 位、10位、12 位、还是 14 位?

针对这些问题,本文档从 DCMI 使用的几个方面,介绍了 STM32 DCMI 在连续抓取模式下带宽的估算,以及提升性能需要注意的事项。客户在设计相机应用时可以参考。

2. STM32 DCMI

STM32 数字照相机接口(DCMI)采用同步并行数据总线。它可以轻松集成并适应相机的特殊应用要求。DCMI 可连接 8、10、12 和 14 位 CMOS 照相机模块,并支持多种数据格式:8/10/12/14 位逐行视频、YCbCr4:2:2 逐行视频、RGB565 逐行视频、JPEG 等。
像素最大支持 16 位色深。

2.1. STM32 智能架构中的 DCMI

DCMI 应用需要用帧缓冲区来存储采集的图像。必须根据图像大小和传输速度使用合适的目标存储区。在某些应用中,必须连接外部存储器(SDRAM),以便提供较大的数据存储空间。对于支持 DMA2D(Chrom-ART Accelerator™控制器)的 STM32 系列,也可以用它做色彩空间转换(例如 RGB565 至 ARGB8888),或使用 DMA 从一个存储区到另一个存储区的数据转移。

下面图 1 是 STM32F2x7 系列智能架构中 DCMI 的例子。这里 DCMI 通过 AHB2 外设总线连接到 AHB 总线矩阵。DMA2 主控访问 DCMI,将 DCMI 接收到的图像数据传输到内部 RAM 或外部 SDRAM 中,具体目标位置取决于应用。

图1.STM32F2x7 系列智能架构中的 DCMI 从设备 AHB2 外设
图1.STM32F2x7 系列智能架构中的 DCMI 从设备 AHB2 外设

2.2. DCMI 最大像素时钟频率

STM32 DCMI 支持的像素时钟频率,与 AHB 时钟频率比值必须小于 0.4。具体的像素时钟频率最大值要查询所用 STM32 的数据手册。下面表 1 中列出了部分 STM32 系列DCMI 最大像素时钟频率及相关可用资源的信息。如需更详细信息,请参考相应的参考手册/数据手册。

表1. DCMI 及相关可用资源
表1. DCMI 及相关可用资源

2.3. DCMI 支持的图像分辨率

STM32 DCMI 仅对输入像素时钟频率有硬件限制(DCMI_PCLK / fHCLK 最大 0.4),对图像的分辨率没有限制。DCMI 连续抓取模式下,图像分辨率会影响帧率(帧率的大小会影响视频的流畅度)。在固定的像素时钟频率下,高分辨率图像的带宽需求较高,对应的帧率则会下降。或者说,在相同的图像分辨率下,提高帧率需要相应地提高像素时钟频率。

例如下表 2(摘自三星 S5K5CAGA CMOS Image Sensor 的数据手册)所示,大家可以从中了解 S5K5CAGA 的像素频率、图像分辨率、帧率的关系(非 RGB888,16 位色深)。另外,图像分辨率主要通过设置相机的输出格式进行修改。

表2. S5K5CAGA YUV/RGB565 像素时钟频率与帧率
表2. S5K5CAGA YUV/RGB565 像素时钟频率与帧率
对于中高分辨率的图像,一般采用双缓冲区或多缓冲区模式。这个主要原因是因为DCMI 使用的 DMA 计数寄存器 SxNDTR 使用了 16 位用于计数。最大 0xFFFF,即65535 ,单位为 32 位 Word,当图像分辨率超过 65535 Words(262140 字节)时,则要使用双缓冲区或多缓冲区模式。双缓冲区地址由 DMA_SxM0AR/DMA_SxM1AR 设定。多缓冲区时,则需要动态交替 DMA_SxM0AR/DMA_SxM1AR,使之指向图像缓冲区的不同存储位置,相当于分块存储。

2.4. DCMI 带宽与性能

使用 DCMI 的相机应用,使用连续抓取模式,功能往往是由相机连续输出所摄图像数据流到 STM32,STM32 DCMI 捕获视频流后,再输出到屏幕显示(如监控)或做图像数据处理、传输等。如果相机输出的是高像素高色深高帧率的视频流,DCMI 在接收过程中,如不能及时处理,DCMI FIFO 即会产生溢出错误(Overrun),进而导致图像数据丢失,帧率下降等问题。

2.4.1. DCMI 带宽与性能

DCMI 带宽计算公式为:带宽 = 分辨率 * 色深 * 帧率。

以三星 S5K5CAGA 为例,如表 2 中第 1 行数据(这里相机采用 RGB565,16 位/像素,8 位输出格式),则 QXGA 输出的带宽需求 =(2048 * 1536)* 2 * 6 ≈ 38MBps。像素时钟为 40MHz,8 位输出,每 2 个 CLK 传输 1 个像素数据,对应的最大输出能力为 40MBps。则 QXGA 在 40MHz 的像素时钟频率下是可以以 6 帧/秒的帧率输入到 DCMI 的。

DCMI 捕获图像数据流,再由 DMA 传输到图像缓冲区,该例中,图像缓冲区(帧缓冲区)的大小为:2048 * 1546 * 2 ≈ 6.3 MByte。

高像素高色深的图像,对应的图像缓冲区较大。当 MCU 内置的 SRAM 不能满足DCMI 图像缓冲区需求时,则需要用外部 SDRAM 来存储。例如 STM32F469 MCU(见表1,第 6 行数据),其 FSMC 支持的最大频率为 90MHz,宽度 32 位,则 SDRAM 的带宽= 90 * 4 = 360 MBps,能够满足 DCMI 带宽的需求。

一般,DCMI 图像缓冲区中的数据是需要再次传输或由 CPU 进行计算处理的,理论上 DCMI 输入的带宽需求最大不应超过SDRAM 的带宽的 50%。这里需要注意 SDRAM 可能存在多个主控(如 CPU、DMA、LTDC 等)的访问,如遇到 SDRAM 性能瓶颈问题,可考虑下列方面进行优化:

  1. (1)将各主控设备访问的存储器尽量分开,以减少竞争访问;
  2. (2)将 CPU 访问的 SDRAM Bank 与 DCMI 图像缓冲区的 Bank 分开;
  3. (3)将 DCMI 图像缓冲区区域设为不可缓冲,CPU 访问的区域则可以设为可缓冲。

对于性能,另外一个重要因素是总线竞争问题。DCMI DMA 申请的 AHB 总线访问(即使在使用 FIFO 的情况下)并非长 Burst 的访问。如果 AHB 总线上存在其它长 Burst 访问(最大 1KByte),会造成 DMA 延迟访问 DCMI,令其不能及时将 DCMI FIFO 中的数据传输出去。可以认定:DCMI 需要传输数据时的总线繁忙是造成 其 FIFO 溢出错误的根源。

解决办法除了直接为设备分配不同 SDRAM 之外(将长 Burst 访问放在其他SDRAM),还可以考虑在内部 SRAM 增设 DCMI LineBuffer,化零为整,巧妙避开 AHB 长 Burst 访问造成的 DCMI 延迟问题。数据流如下:

  1. (1)DCMI(经 DMA)=> 内部 SRAM(LineBuffer) ;
  2. (2)内部 SRAM(LineBuffer)=> 外部 SDRAM(图像 Buffer)。

由 LineBuffer 到 SDRAM 的数据中转传输请求,可使用 DCMI IT_LINE 中断(行结束)触发。这里 MCU 如果是 STM32F7/H7 系列,还可使用 MDMA 充分发挥 AXI 总线的优势,但要注意 LineBuffer 最好是 8 字节的倍数(64 位总线)。

2.4.2. DCMI 图像大小调整功能

当考虑了上面的措施,仍无法满足应用对高分辨率需求时,用户可以通过设置相机,修改相机输出分辨率,配合 DCMI 调整图像大小功能,找到合适的折中方案。DCMI 提供的相关功能如下:

(1)窗口裁剪:

  • 使用寄存器 DCMI_CWSTRT 指定起始坐标;
  • 使用寄存器 DCMI_CWSIZE 指定窗口大小。

(2)图像数据调整(详见寄存器 DCMI_CS 中 LSM/BSM 等位域):

  • 行选择:可选择 2 选 1,行数减半;
  • 数据选择:字节流上可进行 2 选 1、4 选 1 已经 4 选 2 (注意:对于 RGB565格式, 只能 4 选 2 可选,2 选 1 及 4 选 1 会造成色彩数据错乱)。

2.5. DCMI 10/12/14 数据线输入

DCMI 支持最多 14 条数据线(D13 - D0),如果将 DCMI 配置为接收 10、12 或 14 位数据,DCMI 将用 2 个像素时钟周期捕获一个 32 位数据。以 12 位数据宽度为例,DCMI在第 1 个像素时钟捕获 12 位 LSB(忽略 D[13 :12]),存于 DCMI_DR 寄存器低 16 位字中低 12 位,高 4 位(D[15 :12)清零;第 2 像素时钟捕获的 12 位 LSB 则存于 DCMI_DR高 16 位字的低 12 位,高 4 位(DCMI_DR 的[31 : 28])清零。另外相机也必须配置为10/12/14 位输出。具体情况则由应用决定。

3. 小结

本文通过介绍 STM32 DCMI 支持的最大像素时钟频率,支持的图像分辨率及与帧率的关系,进而引出 DCMI 带宽与性能提升的注意事项。另外附带了 DCMI 图像大小的调整及10~14 数据线的简介,为用户遇到相关问题时提供思路参考。

参考文献

在这里插入图片描述


本文档参考ST官方的《【应用笔记】LAT1184+STM32+DCMI的带宽与性能介绍》文档。
参考下载地址:https://download.csdn.net/download/u014319604/88971338

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/538971.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10BASE-T1S架构助力车载E/E领域,引领汽车产业迈向智能化新纪元!

汽车架构的发展 如今,汽车已不仅仅满足消费者的代步需求,而是向所谓的ACES(Autonomous, Connected, Electrification, Shared Source)方向发展,全自动驾驶和网联化将成为最终目标。由此带来的高算力和高数据吞吐量问题…

处理json文件,并将数据汇总至Excel表格

从scores.jason文件中读取学生信息,输出学生的学号,姓名,各科成绩,平均分, 各科标准差 效果: # # 从scores.jason文件中读取学生信息,输出学生的学号,姓名,各科成绩,平均分, 各科标准差 impor…

Qotom Q720G5英特尔赛扬处理器N4000高性价比无风扇迷你电脑5网口软路由防火墙

在数字时代,迷你电脑已经成为高效、灵活的解决方案,无论是个人用户还是企业用户,都能从中受益。Qotom Q720G5 无风扇迷你电脑就是这样一款强大的选择,它不仅可以作为软路由、防火墙和路由器,还有着更多的潜力等待发掘。…

uniapp uview里面的u-navbar结合u-sticky组件的使用

导航栏自定义加需要吸顶产生的问题 如上图直接使用并不能出现tab栏吸顶效果&#xff0c;那是由于u-sticky组件吸顶时与顶部的距离默认为0 那么做如下处理 <u-sticky :offset-top"navbarHeight()"><u-tabs :list"helpTabList" active-color"…

智算时代的基础设施如何实现可继承可演进?浪潮云海发布 InCloud OS V8 新一代架构平台

从 2023 年开始持续火爆的 AIGC 正在加速落地应用&#xff0c;为全行业带来生产生活效率的变革与升级。面对数字化转型与智能化转型&#xff0c;对于技术团队来说&#xff0c;既要根据业务与 AI 应用去部署以云为基础的 AI 算力&#xff0c;又要与已有数据和系统&#xff08;甚…

FMC160-两路14位400Msps AD,两路16位400Msps DA FMC子卡模块

FMC160-两路14位400Msps AD&#xff0c;两路16位400Msps DA FMC子卡模块 一、概述   该板卡可实现2路14bit 400Msps AD 和2路16bit 400Msps DA功能&#xff0c;遵循 VITA 57 标准&#xff0c;板卡可以直接与VME/VXS/AMC/VPX/PCI-E FPGA 载板连接使用&#xff0c;用于模拟信…

23种设计模式-Python,优缺点场景与示例代码

今天我将与大家探讨软件开发中至关重要的一些概念——设计模式。无论你是初学者还是经验丰富的开发者&#xff0c;理解这些模式都将对你的编程技能有巨大的提升。 首先什么是设计模式&#xff1f; 设计模式是解决软件设计问题中常见问题的典型解决方案。它们是被多次实践验证…

Unity笔记之Android打包、减小包体之类的问题

打包问题 问题1&#xff1a; 一般大部分问题就是JDK、SDK、NDK之类的问题。现在是其他的问题&#xff0c;之前遇到过&#xff0c;好久没玩android了都忘了。 这试了半天&#xff0c;结果是需要有密钥库。那就给他创建一个填一下就行了 &#xff08;在网上看了半天&#xff…

在vue3中实现pptx、word、excel预览

插件推荐 PPTXjs vue-office 代码 <script setup lang"ts" name"home"> import { computed, nextTick, ref, onMounted } from vue; //引入VueOfficeDocx组件 import VueOfficeDocx from vue-office/docx; //引入VueOfficeExcel组件 import VueOf…

goproxy 简单介绍 及一键安装脚本

goproxy 官网 https://goproxy.cn/ GoProxy 是一项用于 Go 模块的高性能代理服务&#xff0c;旨在为 Go 开发人员提供更快速、更可靠的模块下载体验。它提供以下主要功能&#xff1a; 全球分布式代理服务器: GoProxy 在全球多个地区部署了代理服务器&#xff0c;例如拉斯维加…

ERA拓展之旅:2024香港Web3峰会聚焦全球Web3发展

2024年香港Web3大型峰会是一次令人难忘的体验。这次峰会吸引了来自世界各地的Web3爱好者和从业者齐聚一堂&#xff0c;共同探讨着Web3的未来发展方向与机遇。在这个热情洋溢的氛围中&#xff0c;展现了对Web3的热情&#xff0c;分享彼此的见解和理念&#xff0c;探讨了未来的行…

从吉客云到MySQL通过接口配置打通数据

从吉客云到MySQL通过接口配置打通数据 数据源系统:吉客云 吉客云是基于“网店管家”十五年电商ERP行业和技术积累基础上顺应产业发展需求&#xff0c;重新定位、全新设计推出的换代产品&#xff0c;从业务数字化和组织数字化两个方向出发&#xff0c;以构建流程的闭环为依归&am…

C++设计模式:门面模式(十二)

1、概念与定义 “接口隔离”模式&#xff1a;在组建构建过程中&#xff0c;某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接&#xff08;稳定&#xff09;接口&#xff0c;来隔离本来相互紧密关联的接口是一种常见的解决方案。 门面设计模式定…

MATLAB 浮点数 转化为 定点数

a fi(v,s,w,f) 一个 fi 对象&#xff0c;其值为 v&#xff0c;符号性为 s&#xff0c;字长为 w&#xff0c;小数长度为 f。 AD9361 a fi(0.707,1,12,11)

Spring Boot 学习(4)——开发环境升级与项目 jdk 升级

各种版本都比较老&#xff0c;用起来也是常出各样的问题&#xff0c;终于找到一个看来不错的新教程&#xff0c;是原先那个教程的升级。遂决定升级一下开发环境&#xff0c;在升级遇到一些问题&#xff0c;摸索将其解决&#xff0c;得些体会记录备查。 最终确定开发环境约束如下…

使用geneHapR进行基因单倍型分析(以vcf文件为例)

前记 在群体基因组学研究中&#xff0c;我们常常需要知道一些位点的变异情况&#xff0c;以便于根据对应的表型信息估算这些位点的效应&#xff0c;同时了解这些位点在不同亚群之间的变化情况。这个时候我们就需要进行单倍型分析(Haplotype Analysis)&#xff0c;单倍型分析是研…

java Web 中小企业门户网站用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 中小企业门户网站是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使…

【读点论文】Segment Anything,视觉界的GPT,可以通过Prompt完成图像实体理解的视觉基础大模型,处理零样本任务

Segment Anything Abstract 我们介绍了Segment Anything&#xff08;SA&#xff09;项目&#xff1a;一种用于图像分割的新任务、模型和数据集。在数据收集循环中使用我们的高效模型&#xff0c;我们构建了迄今为止&#xff08;迄今为止&#xff09;最大的分割数据集&#xf…

HubSpot如何通过自动化和优化客户服务流程?

在当今竞争激烈的市场环境中&#xff0c;提供卓越的客户服务体验已经成为企业赢得客户忠诚、推动业务增长的关键所在。HubSpot&#xff0c;作为一款领先的客户关系管理软件&#xff0c;通过自动化和优化客户服务流程&#xff0c;为企业带来了革命性的服务体验提升。 HubSpot通…

请核对您的姓名、证件号码、有效期和年限是否选择正确,请勿使用挂失过的身份证

问题 请核对您的姓名、证件号码、有效期和年限是否选择正确&#xff0c;请勿使用挂失过的身份证 详细问题 笔者在专利业务办理系统进行新用户注册&#xff0c;注册时间为晚上大概22&#xff1a;00以后。注册时已核对姓名、证件号码、有效期和年限&#xff0c;已确保正确&…