[X]关闭
4

03uifdma_vbuf实现单通道摄像头采集(AXI4 FDMA数据缓存篇)

摘要: 通过前文中实验的学习,相信读者已经掌握了fdma读写bram或者ddr的基本使用,本文使用米联客编写的uivbuf ip 配合uifdma ip 实现摄像头图像的多缓存方法。 本文实验目的: 1:熟悉ov5640摄像头硬件资源 2:掌 ...

软件版本:vitis2019.2(vivado2019.2)

操作系统:WIN10 64bit

硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA

登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!

3.1概述    

    通过前文中实验的学习,相信读者已经掌握了fdma读写bram或者ddr的基本使用,本文使用米联客编写的uivbuf ip 配合uifdma ip 实现摄像头图像的多缓存方法。

本文实验目的:

1:熟悉ov5640摄像头硬件资源

2:掌握通过米联客iic控制器实现对ov5640寄存器的配置,实现分辨率的修改。

3:掌握uivbuf程序设计方法

4:掌握图像处理中最常用的三缓存设计,如何实现3帧图形缓存,确保图形不撕裂

3.2OV5640摄像头简介

说到OV5640 OV7725等入门级摄像头大部分读者应该并不陌生,这些摄像头基础成为教学实验开发板必配摄像头。如下图所示,为我们米联客提供的OV5640摄像头,采用的是DVP接口。通过普通的连接器接入到开发板的的FPGA IO实现数据采集。

OV5640是一款靶面大小为1/4英寸的图像光学传感器芯片。最高支持2592*1944@15fps QSXVGA格式图像采集,或者640*480@90fps VGA图像采集。芯片内部集成了图像处理的功能,包括自动曝光控制(AEC)、自动白平衡(AWB)等功能。

OV5640的数据输出格式支持MIPI(移动产业处理器接口)、DVP(数字视频并行)我们米联客暂时只有DVP接口的OV5640摄像头,受限于硬件接口速度,目前最高可以实现720p@30fps,对于部分转接卡只能实现720p@15fps的采集速度,能够满足大部分实验性质的图像数据采集要求。

3.2.1OV5640的框图

 

我们通过框图可以看到OV5640摄像头大概的功能结构包括:

1:PLL模块,输入的XCLK时钟经过PLL后提供给芯片的内部逻辑工作

2:时序产生以及系统控制逻辑模块(timing generator and system control logic)

3:图像传感器核心单元(image sensor core)包含:感光阵列(image array)、放大器(AMP)、放大器增益控制(gain contro)、ADC模块(10-bit ADC) 、50HZ/60HZ干扰自动检测单元

4:图像处理单元包含(image sensor processor):ISP图像处理单元、数据压缩单元、格式转换单元

5:图像输出接口(image out interface)包含:数据FIFO、DVP接口、MIPI接口

6:寄存器配置接口(SCCB interface)

7:微控制器(micro controller)

3.2.2摄像头参数概述

厂家

OmniVision

色彩

彩色

曝光模式

卷帘

靶面尺寸

1/4``

相机ID

0x78

支持的分辨率

最大分辨率支持2592*1944@15。受限于硬件设计我们的摄像头最大支持1280*@30或者1280*720@15,满足一般实验要求绰绰有余。

镜头

M12 4MM 500W

视场角

70°

感光特性

可见光(红外弱)

接口

DVP

ISP

内置ISP算法

尺寸

30mm*30mm*35mm

3.2.3摄像头接口定义

米联客CEP(Camera expansion interface)接口定义如下:

标准DVP OV5640摄像头定义如下:

读者可以发现,相比标准的DVP接口,米联客的CEP接口烧了RESET、CMOS_CTL0、CMOS_CTL1、CMOS_CTL2这几个信号脚。

另外细心的读者可以发现米联客的CEP扩展接口预先以差分形式走线,具体差分信号传输能力。

信号功能如下:

信号名称

功能描述

输入/输出

D3V3

3.3V输入接口给摄像头芯片供电

电源

GND

数据、模拟GND

电源

SCLK

I2C时钟/SCCB协议时钟

input

SDAT

I2C数据/SCCB协议数据

inout

VSYNC

帧同步信号

output

HREF

行同步信号

output

PCLK

像素时钟,对于RGB565一个像素需要2个时钟

output

XCLK

FPGA输入给摄像头的参考时钟一般是24MHZ

input

D2~D9

对应d0~d8,8bit有效数据

output

3.2.4分辨率

OV5640使用寄存器0x3800 ~ 0x3814进行图像窗口调整。上图中说明了那些寄存器如何定义窗口大小。对于物理像素大小是固定的,由传感器中所有像素阵列的大小决定。ISP输入大小是从像素阵列读取的像素数据总量。一般情况下,ISP的输入量越大,所能达到的最大帧速率越小。数据输出大小为OV5640的图像输出大小。这个大小从ISP输入大小中窗口化,由x_offset和y_offset定义。

下表我们给出以上寄存器的功能定义说明:

address

register name

default value

R/W

description

0x3800

TIMING HS

0x00

RW

Bit[3:0]有效,对应X_ADDR_ST[11:8]bits

0x3801

TIMING HS

0x00

RW

Bit[7:0]有效,对应X_ADDR_ST[7 :0]bits

0x3802

TIMING VS

0x00

RW

Bit[2:0]有效,对应Y_ADDR_ST [10:8]bits

0x3803

TIMING VS

0x00

RW

Bit[7:0]有效,对应X_ADDR_ST [7 :0]bits

0x3804

TIMING HW

0x0A

RW

Bit[3:0]有效,对应X_ADDR_END[11:8]bits

0x3805


路过

雷人

握手

鲜花

鸡蛋
发表评论

最新评论

引用 呱_hSzpM 2023-12-26 14:51
源码文件里没有sdk的代码呀
引用 七_G5WWT 2022-8-22 21:19
我测试的结果约为0.2s
Smilewithmm: 从camera输入到HDMI输出整个过程的图像延迟时间是多少?
引用 Smilewithmm 2022-4-2 15:38
从camera输入到HDMI输出整个过程的图像延迟时间是多少?
引用 uisrc 2021-8-12 20:29
本章节源码下载地址链接:https://pan.baidu.com/s/1NT-ArWeJuLTtPX-Fv1oGFA 提取码1111

查看全部评论(4)

本文作者
2021-8-12 09:43
  • 7
    粉丝
  • 3184
    阅读
  • 4
    回复
  • 1
  • 2
  • 3
热门评论
排行榜