基于FPGA的OV5640摄像头图像采集

1.OV5640简介

OV5640是OV(OmniVision)公司推出的一款CMOS图像传感器,实际感光阵列为:2592 x 1944(即500w像素),该传感器内部集成了图像出炉的电路,包括自动曝光控制(AEC)、自动白平衡( AWB) 等。同时该传感器支持LED补光、 MIPI(移动产业处理器接口,多用于手机等)输出接口和DVP(数字视频并行,在设计HDMI显示时,就用的这个)输出接口选择、 ISP(图像信号处理)以及自动聚焦控制(AFC)等功能。

2.OV5640工作原理

OV5640的功能框图如上,可以看到,时序发生器和系统控制逻辑(timing generator and system control logic)控制着感光阵列(image array)、放大器(AMP)、AD转换(10bit)以及输出外部时序信号(PCLK和行场同步信号等)。

感光阵列输出模拟信号,经过AMP增强信号强度,进入到AD转换器,转换成数字信号并经过ISP,进行相关图像处理,最终输出10位DVP数据流或者MIPI数据流。

AMP和ISP等都是由控制寄存器进行控制,而配置寄存器的接口时序就是使用的SCCB,由于OV5640寄存器较多,OV5640寄存器的地址为16位,所以SCCB协议中的寄存器地址为16位。

OV5640摄像头引脚功能描述如下表所示:

注意XCLK引脚,它跟 PCLK是完全不同的,XCLK是用于驱动个传感器芯片的时钟信号,是外部输入到OV5640的信号;而 PCLKOV5640输出数据时的同步信号,它是由OV5640输出的信号。XCLK可以外接晶振或由外部控制器提供。

OV5640的输出模式如下图所示,我们可以通过对其寄存器的配置来控制不同的工作模式。

  • 3.OV5640寄存器功能介绍

OV5640的寄存器较多,对于其它寄存器的描述可以参OV5640的数据手册。但是,OV5640的数据手册并没有提供全部的寄存器描述, 而大多数必要的寄存器配置在OV5640的软件应用手册(《OV5640 Camera Module Software Application Notes》)中可以找到,其中还有相关初始化例程。这里我们只介绍几个关键的寄存器配置。

输出模式设置如下图所示,可以通过配置0x4300这个寄存器控制输出的像素模式包括REG565YUV422等常用模式。设置输出模式为RGB565时还可以控制输出。

输出像素设置则通过0x3808~0x380b进行控制,方法也非常简单,只需要将期望得到的分辨率转换为16进制数据,再分别写入四个寄存器即可。举个例子,我想要的分辨率为960x540960转换为16进制数据为3c0540转换为16进制数据为21c,因此我需要向0x3808中写入03,向0x3809中写入c0,向0x380a中写入02,向0x380b中写入1c

OV5640的像素时钟计算如图所示

通过图可以看出PCLK是经过图中8个步骤之后得到的频率,以下逐步计算得到PCLK。

OV5640要求输入的时钟频率为6-27MHz,一般情况下输入24MHz,在本次计算中也以24MHz为输入频率;

输入时钟首先经过pre-divider进行分频,分频系数由3037[3:0]确定,在本次计算中3037[3:0]3,故经过分频之后的输出为24/3=8MHz

经过pre-divider分频后需要给分频后的时钟做一次倍频,乘法因子为3036[6:0]=0x69=105,经过倍频后的时钟频率为8MHz*105=840MHz;

Sys divider0分频,分频系数为0x3035[7:4],在demo中的值为1,故没有进行分频;840MHz/1=840MHz;

PLL R divider分频,如果0x3037[4]为高电平,则进行2分频,否则不分频;在demo3037[4]1,故二分频;840MHz/2=420MHz;

BIT divider分频,分频系数为0x3034[3:0],如果是8,则是2分频,如果是A则是2.5分频,如果是其他则为1<

FPGA读写OV5640摄像头显示例程 Verilog逻辑源码Quartus工程文件+文档说明,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 本实验将采用 500 万像素的 OV5640 摄像头模组(模块型号:AN5640)为大家显示更高分辨率 的视频画面。OV5640 摄像头模组最大支持 QSXGA (2592x1944)的拍照功能,支持 1080P、720P、 VGA、QVGA 视频图像输出。本实验将 OV5640 配置为 RGB565 输出,先将视频数据写入外部存储 器,再从外部存储器读取送到 VGA、LCD 等显示模块。 module top( input clk, input rst_n, output cmos_scl, //cmos i2c clock inout cmos_sda, //cmos i2c data input cmos_vsync, //cmos vsync input cmos_href, //cmos hsync refrence,data valid input cmos_pclk, //cmos pxiel clock output cmos_xclk, //cmos externl clock input [7:0] cmos_db, //cmos data output cmos_rst_n, //cmos reset output cmos_pwdn, //cmos power down output vga_out_hs, //vga horizontal synchronization output vga_out_vs, //vga vertical synchronization output[4:0] vga_out_r, //vga red output[5:0] vga_out_g, //vga green output[4:0] vga_out_b, //vga blue output sdram_clk, //sdram clock output sdram_cke, //sdram clock enable output sdram_cs_n, //sdram chip select output sdram_we_n, //sdram write enable output sdram_cas_n, //sdram column address strobe output sdram_ras_n, //sdram row address strobe output[1:0] sdram_dqm, //sdram data enable output[1:0] sdram_ba, //sdram bank address output[12:0] sdram_addr, //sdram address inout[15:0] sdram_dq //sdram data ); parameter
在Linux系统中,可以使用以下命令来显示Kinect的彩图像: 1. 首先,确保已经安装了OpenNI和SensorKinect驱动程序。可以通过以下命令来安装它们: ``` sudo apt-get install libopenni-dev sudo apt-get install libsensor-kinect-dev ``` 2. 然后,使用以下命令来启动Kinect设备: ``` sudo modprobe -r gspca_kinect sudo modprobe -r gspca_main sudo modprobe -r gspca_sonixj sudo modprobe -r gspca_pac7302 sudo modprobe -r gspca_vc032x sudo modprobe -r gspca_ov534 sudo modprobe -r gspca_ov519 sudo modprobe -r gspca_ov511 sudo modprobe -r gspca_sn9c20x sudo modprobe -r gspca_m5602 sudo modprobe -r gspca_stv06xx sudo modprobe -r gspca_spca561 sudo modprobe -r gspca_spca1528 sudo modprobe -r gspca_spca500 sudo modprobe -r gspca_spca501 sudo modprobe -r gspca_spca505 sudo modprobe -r gspca_spca506 sudo modprobe -r gspca_spca508 sudo modprobe -r gspca_spca561 sudo modprobe -r gspca_sunplus sudo modprobe -r gspca_t613 sudo modprobe -r gspca_topro sudo modprobe -r gspca_tv8532 sudo modprobe -r gspca_vc0321 sudo modprobe -r gspca_zc3xx sudo modprobe -r gspca_zc3xx-2 sudo modprobe -r gspca_zc3xx-3 sudo modprobe -r gspca_zc3xx-4 sudo modprobe -r gspca_zc3xx-5 sudo modprobe -r gspca_zc3xx-6 sudo modprobe -r gspca_zc3xx-7 sudo modprobe -r gspca_zc3xx-8 sudo modprobe -r gspca_zc3xx-9 sudo modprobe -r gspca_zc3xx-10 sudo modprobe -r gspca_zc3xx-11 sudo modprobe -r gspca_zc3xx-12 sudo modprobe -r gspca_zc3xx-13 sudo modprobe -r gspca_zc3xx-14 sudo modprobe -r gspca_zc3xx-15 sudo modprobe -r gspca_zc3xx-16 sudo modprobe -r gspca_zc3xx-17 sudo modprobe -r gspca_zc3xx-18 sudo modprobe -r gspca_zc3xx-19 sudo modprobe -r gspca_zc3xx-20 sudo modprobe -r gspca_zc3xx-21 sudo modprobe -r gspca_zc3xx-22 sudo modprobe -r gspca_zc3xx-23 sudo modprobe -r gspca_zc3xx-24 sudo modprobe -r gspca_zc3xx-25 sudo modprobe -r gspca_zc3xx-26 sudo modprobe -r gspca_zc3xx-27 sudo modprobe -r gspca_zc3xx-28 sudo modprobe -r gspca_zc3xx-29 sudo modprobe -r gspca_zc3xx-30 sudo modprobe -r gspca_zc3xx-31 sudo modprobe -r gspca_zc3xx-32 sudo modprobe -r gspca_zc3xx-33 sudo modprobe -r gspca_zc3xx-34 sudo modprobe -r gspca_zc3xx-35 sudo modprobe -r gspca_zc3xx-36 sudo modprobe -r gspca_zc3xx-37 sudo modprobe -r gspca_zc3xx-38 sudo modprobe -r gspca_zc3xx-39 sudo modprobe -r gspca_zc3xx-40 sudo modprobe -r gspca_zc3xx-41 sudo modprobe -r gspca_zc3xx-42 sudo modprobe -r gspca_zc3xx-43 sudo modprobe -r gspca_zc3xx-44 sudo modprobe -r gspca_zc3xx-45 sudo modprobe -r gspca_zc3xx-46 sudo modprobe -r gspca_zc3xx-47 sudo modprobe -r gspca_zc3xx-48 sudo modprobe -r gspca_zc3xx-49 sudo modprobe -r gspca_zc3xx-50 sudo modprobe -r gspca_zc3xx-51 sudo modprobe -r gspca_zc3xx-52 sudo modprobe -r gspca_zc3xx-53 sudo modprobe -r gspca_zc3xx-54 sudo modprobe -r gspca_zc3xx-55 sudo modprobe -r gspca_zc3xx-56 sudo modprobe -r gspca_zc3xx-57 sudo modprobe -r gspca_zc3xx-58 sudo modprobe -r gspca_zc3xx-59 sudo modprobe -r gspca_zc3xx-60 sudo modprobe -r gspca_zc3xx-61 sudo modprobe -r gspca_zc3xx-62 sudo modprobe -r gspca_zc3xx-63 sudo modprobe -r gspca_zc3xx-64 sudo modprobe -r gspca_zc3xx-65 sudo modprobe -r gspca_zc3xx-66 sudo modprobe -r gspca_zc3xx-67 sudo modprobe -r gspca_zc3xx-68 sudo modprobe -r gspca_zc3xx-69 sudo modprobe -r gspca_zc3xx-70 sudo modprobe -r gspca_zc3xx-71 sudo modprobe -r gspca_zc3xx-72 sudo modprobe -r gspca_zc3xx-73 sudo modprobe -r gspca_zc3xx-74 sudo modprobe -r gspca_zc3xx-75 sudo modprobe -r gspca_zc3xx-76 sudo modprobe -r gspca_zc3xx-77 sudo modprobe -r gspca_zc3xx-78 sudo modprobe -r gspca_zc3xx-79 sudo modprobe -r gspca_zc3xx-80 sudo modprobe -r gspca_zc3xx-81 sudo modprobe -r gspca_zc3xx-82 sudo modprobe -r gspca_zc3xx-83 sudo modprobe -r gspca_zc3xx-84 sudo modprobe -r gspca_zc3xx-85 sudo modprobe -r gspca_zc3xx-86 sudo modprobe -r gspca_zc3xx-87 sudo modprobe -r gspca_zc3xx-88 sudo modprobe -r gspca_zc3xx-89 sudo modprobe -r gspca_zc3xx-90 sudo modprobe -r gspca_zc3xx-91 sudo modprobe -r gspca_zc3xx-92 sudo modprobe -r gspca_zc3xx-93 sudo modprobe -r gspca_zc3xx-94 sudo modprobe -r gspca_zc3xx-95 sudo modprobe -r gspca_zc3xx-96 sudo modprobe -r gspca_zc3xx-97 sudo modprobe -r gspca_zc3xx-98 sudo modprobe -r gspca_zc3xx-99 sudo modprobe -r gspca_zc3xx-100 sudo modprobe -r gspca_zc3xx-101 sudo modprobe -r gspca_zc3xx-102 sudo modprobe -r gspca_zc3xx-103 sudo modprobe -r gspca_zc3xx-104 sudo modprobe -r gspca_zc3xx-105 sudo modprobe -r gspca_zc3xx-106 sudo modprobe -r gspca_zc3xx-107 sudo modprobe -r gspca_zc3xx-108 sudo modprobe -r gspca_zc3xx-109 sudo modprobe -r gspca_zc3xx-110 sudo modprobe -r gspca_zc3xx-111 sudo modprobe -r gspca_zc3xx-112 sudo modprobe -r gspca_zc3xx-113 sudo modprobe -r gspca_zc3xx-114 sudo modprobe -r gspca_zc3xx-115 sudo modprobe -r gspca_zc3xx-116 sudo modprobe -r gspca_zc3xx-117 sudo modprobe -r gspca_zc3xx-118 sudo modprobe -r gspca_zc3xx-119 sudo modprobe -r gspca_zc3xx-120 sudo modprobe -r gspca_zc3xx-121 sudo modprobe -r gspca_zc3xx-122 sudo modprobe -r gspca_zc3xx-123 sudo modprobe -r gspca_zc3xx-124 sudo modprobe -r gspca_zc3xx-125 sudo modprobe -r gspca_zc3xx-126 sudo modprobe -r gspca_zc3xx-127 sudo modprobe -r gspca_zc3xx-128 sudo modprobe -r gspca_zc3xx-129 sudo modprobe -r gspca_zc3xx-130 sudo modprobe -r gspca_zc3xx-131 sudo modprobe -r gspca_zc3xx-132 sudo modprobe -r gspca_zc3xx-133 sudo modprobe -r gspca_zc3xx-134 sudo modprobe -r gspca_zc3xx-135 sudo modprobe -r gspca_zc3xx-136 sudo modprobe -r gspca_zc3xx-137 sudo modprobe -r gspca_zc3xx-138 sudo modprobe -r gspca_zc3xx-139 sudo modprobe -r gspca_zc3xx-140 sudo modprobe -r gspca_zc3xx-141 sudo modprobe -r gspca_zc3xx-142 sudo modprobe -r gspca_zc3xx-143 sudo modprobe -r gspca_zc3xx-144 sudo modprobe -r gspca_zc3xx-145 sudo modprobe -r gspca_zc3xx-146 sudo modprobe -r gspca_zc3xx-147 sudo modprobe -r gspca_zc3xx-148 sudo modprobe -r gspca_zc3xx-149 sudo modprobe -r gspca_zc3xx-150 sudo modprobe -r gspca_zc3xx-151 sudo modprobe -r gspca_zc3xx-152 sudo modprobe -r gspca_zc3xx-153 sudo modprobe -r gspca_zc3xx-154 sudo modprobe -r gspca_zc3xx-155 sudo modprobe -r gspca_zc3xx-156 sudo modprobe -r gspca_zc3xx-157 sudo modprobe -r gspca_zc3xx-158 sudo modprobe -r gspca_zc3xx-159 sudo modprobe -r gspca_zc3xx-160 sudo modprobe -r gspca_zc3xx-161 sudo modprobe -r gspca_zc3xx-162 sudo modprobe -r gspca_zc3xx-163 sudo modprobe -r gspca_zc3xx-164 sudo modprobe -r gspca_zc3xx-165 sudo modprobe -r gspca_zc3xx-166 sudo modprobe -r gspca_zc3xx-167 sudo modprobe -r gspca_zc3xx-168 sudo modprobe -r gspca_zc3xx-169 sudo modprobe -r gspca_zc3xx-170 sudo modprobe -r gspca_zc3xx-171 sudo modprobe -r gspca_zc3xx-172 sudo modprobe -r gspca_zc3xx-173 sudo modprobe -r gspca_zc3xx-174 sudo modprobe -r gspca_zc3xx-175 sudo modprobe -r gspca_zc3xx-176 sudo modprobe -r gspca_zc3xx-177 sudo modprobe -r gspca_zc3xx-178 sudo modprobe -r gspca_zc3xx-179 sudo modprobe -r gspca_zc3xx-180 sudo modprobe -r gspca_zc3xx-181 sudo modprobe -r gspca_zc3xx-182 sudo modprobe -r gspca_zc3xx-183 sudo modprobe -r gspca_zc3xx-184 sudo modprobe -r gspca_zc3xx-185 sudo modprobe -r gspca_zc3xx-186 sudo modprobe -r gspca_zc3xx-187 sudo modprobe -r gspca_zc3xx-188 sudo modprobe -r gspca_zc3xx-189 sudo modprobe -r gspca_zc3xx-190 sudo modprobe -r gspca_zc3xx-191 sudo modprobe -r gspca_zc3xx-192 sudo modprobe -r gspca_zc3xx-193 sudo modprobe -r gspca_zc3xx-194 sudo modprobe -r gspca_zc3xx-195 sudo modprobe -r gspca_zc3xx-196 sudo modprobe -r gspca_zc3xx-197 sudo modprobe -r gspca_zc3xx-198 sudo modprobe -r gspca_zc3xx-199 sudo modprobe -r gspca_zc3xx-200 sudo modprobe -r gspca_zc3xx-201 sudo modprobe -r gspca_zc3xx-202 sudo modprobe -r gspca_zc3xx-203 sudo modprobe -r gsp
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值