介绍一下使用FPGA实现低延迟的成像系统

时间:2025-04-28  作者:Diven  阅读:0

目前商用领域的成像系统还是以嵌入式ASIC为主(成品时间快,性价比高),对于一些军工、医学等特殊领域还是以FPGA为主,在特殊领域里延迟是最先考虑的问题(成本不是主要问题),所以今天介绍一下使用FPGA实现低延迟的成像系统,这里说明一下,整个系统调试比较麻烦(和sensor有关),很大可能调试不出图像,所以大家只需要知道有这个架构即可,有需求可以自己调试。

介绍一下使用FPGA实现低延迟的成像系统

低延迟架构

我们这次使用的是AMD-Xilinx FPGA,大部分的图像处理都有IP可以使用,在官方文档中有相关的架构,具体如下:

上面的架构是比较通用的架构,官方也有例程可以参考,但是上面架构多了一个VDMA,这就导致视频传输的时候有1到几帧的延迟,这对于低延迟、高分辨率的情形肯定是不能容忍的。所以官方对于特殊情况建议使用下面的架构:

去掉了VDMA,但是对于时钟系统要去更高,对于视频输入输出在不同时钟域情况下是使用不了的,所以整体要求比较高。但是砍掉了VDMA和DDR,所以整体成本会低很多。关于没有VDMA情况下的各个IP的设置及测试可以看下面的文章《不使用VDMA情况下使用AXI4总线实现视频输入输出(低延迟首选)》。

FPGA系统架构设计

我们还是参考上面的架构来设计我们的系统。

当我们与图像sensor对接时,我们通常会以不同的格式接收图像,例如 MIPI 、并行接口,在我们接收视频之前,我们需要先配置sensor按照我们的需求运行。通常,sensor需要通过 I2C 或 SPI 进行配置。

这次演示的平台:

7系列FPGA

MT9M114 sensor

sensor 的接口非常简单,可以分为视频接口和配置接口(IIC)。

视频接口由 10 位数据(分为 8 位和 2 位)、帧和行有效、像素时钟和参考时钟 (24 MHz) 组成。

配置接口由连接到sensor的 I2C 和 复位IO组成。

该解决方案的架构如下:软核处理器(MicroBlaze)通过 I2C 配置sensor。虽然图像处理路径将在 FPGA 中实现,但由于这是低成本应用,该解决方案不会使用 DDR 存储器中实现外部帧缓冲区,而是图像处理流水线将完全在 FPGA 中实现。

Sensor中由于我们配置的是RAW数据,所以还需要使用Sensor Demosaic和Gamma(基本成像IP)IP。

该设计还将使用软核处理器来控制视频时序和图像处理路径的其相关配置任务。

Vivado 工程构建

搭建MicroBlaze 系统

添加其IP

整个系统需要的IP主要如下:

CAM 接口 - 此接口与 sensor接口连接,简单处理数据(选择RAW数据的位数),此IP非必须

Video to AXIS - 这会将并行视频转换为 AXI 流格式

Sensor Demosaic - 将代表 R、G 或 B 的 RAW 像素值转换为 24 位 RGB 格式

Video Timing Generator - 生成输出格式的视频时序信号

AXI Stream to Video Out - 将 AXI Stream 转换为并行视频

AXI IIC - 连接到 MicroBlaze,用于配置sensor

AXI UART - 连接到 MicroBlaze,用于软件调试

添加完后就可以连线了,完整的框图应如下所示。完整的工程在文章最后给出。

在 AXI Stream 中,使用 TUser 指示帧的开始,使用 TLast 指示行的结束。

IP的关键设置

Video to AXIS

Sensor Demosaic

AXI IIC 设置

其IP可以查看文章最后的工程查看。

资源使用率

在Arty S7-50 的总利用率如下所示。

SDK 中编写软件

生成 Vivado 硬件后,下一步就是编写应用软件,用于配置sensor和视频处理IP核。

软件中将执行以下操作:

初始化 AXI IIC、VTC 和中断控制器

设置AXI 相关中断控制器 - 这包括三个中断服务例程。IIC 发送、接收和状态各一个。

在 VTC 配置输出时序

通过 I2C 复位sensor并点亮 sensor板子上 LED

通过I2C读取sensor-MT9M114的ID,来检测相机是否存在(外围设置是否正确)

通过 I2C 配置和初始化相机 - 这是最浪费时间的,好在有很多资料可以参考

初始化相机后,我们将能够在 ILA 上看到视频流。

调试过程中测量的FPGA和sensor之间的 I2C 通信信号。

使用 AXI UART 调试软件:

一旦相机初始化,我们可以使用 ILA 采集信号:

上图显示了 1280 像素的线宽。

AXI Stream 是单向总线,用于将数据从主机传输到从机,作为数据流,不包含地址通道。为了通过 AXI 流控制流和传递视频时序信息,我们使用了以下信号:

TReady - 当准备好接收数据时由下游外设断言

TValid - 当输出数据有效时通过发送外设断言

TUser - 为帧的开始发出

TLast - 为行尾标志

由于我们没有 使用VDMA,所以 AXIS 流上的视频输出是一个连续块,并且 TValid 在活动像素周期内不会断言和取消断言。

我们可以通过使用图像处理链的像素时钟来确保 Tvalid 是连续的。

软件部分还是参考最后的工程吧,除了sensor需要单独编写,其都是由SDK自带的例程修改而来。

虽然上面的架构和最后的设计比较简单,但是调试起来还是很难得,只不过我写的比较简单,一旦出不来视频,重点按照最开始官方架构检查PCLK。

该工程主要参考架构和架构中时钟域的处理,注意pCLK(像素时钟)和ACLK的走向。


审核编辑:刘清

猜您喜欢

R050贴片电阻是一种常用的电子元件,其封装尺寸为050,表示长度为0.5mm,宽度为0.25mm。了解其关键参数对于正确选择和使用至关重要。首先,阻值是电阻最...
2024-11-26 11:29:40

0201贴片电阻,以其0.6mm x 0.3mm的极致小巧尺寸,成为电子元器件小型化趋势下的理想选择。本规格书详细介绍了0201贴片电阻的各项参数和性能指标,为...
2024-11-26 11:29:47

现代电子产品中,肖特基二极管因其快速开关特性和低正向压降而应用。了解肖特基二极管的规格对于设计高效的电路非常重要。本文将详细介绍肖特基二极管的主要规格和性能指标...
2025-04-04 22:31:39

防爆锤类产品在工业和安全领域中是重要配件,设计和功能各有不同,适用于不同的场景。防爆锤按照材质可分为钢制和铝合金两种。钢制防爆锤更耐用,适合高强度的工作环境,而...
2020-05-29 00:00:00

发光二极管(LED)是能够将电能转化为光能的半导体器件。工作原理基于电流通过半导体材料时,电子与空穴复合,释放出能量,以光的形式发出。LED高效、长寿命和小体积...
2013-06-18 00:00:00

贴片电阻000(即0Ω电阻)本身不能直接替代保险丝。虽然外形与某些贴片保险丝相似,但功能和特性完全不同。0Ω电阻主要用于:跳线: 在电路设计中,有时需要根据不同...
2024-11-29 10:26:01

电子元件中,电容器是非常重要的。很多人对瓷片电容和电解电容的区别并不清楚。本文将介绍符号和特点。瓷片电容的符号瓷片电容常用字母“C”表示。符号通常是一个矩形框,...
2025-04-11 20:31:12

1.开口式电流互感器安装前必须将其二次与电表(或其他测量装置)接好,确保互感器二次没有开路;2.将所有接好二次线的开口电流互感器放置现场,等待安装;3.若现...
2023-07-23 10:52:00

现代电子产品的设计与制造中,元件的选择非常重要。其中,PSOP8_5.1X4MM_EP作为一种新型的集成电路封装,因其优异的性能和适用性,逐渐成为设计师和工程师...
2025-03-07 15:44:13

现代电源转换技术中,反激式开关电源以其简单性和成本效益而广受欢迎。近年来,随着对更高效率的追求,同步整流技术在反激式开关电源中的应用逐渐成为一项热门选择。这一技...
2024-04-30 00:00:00