基于 OV5640 摄像头理论知识讲解-典型工作模式配置

基于OV2640/ OV5640 的图像采集显示系统系列文章目录:
(1)基于 OV5640 摄像头理论知识讲解-成像和采样原理
(2)基于 OV5640 摄像头理论知识讲解-数字接口和控制接口
(3)基于 OV5640 摄像头理论知识讲解-典型工作模式配置
(4)基于OV2640/ OV5640 的图像采集显示系统

文章目录

  • 前言
  • 一、修改信号极性
  • 二、修改帧率
  • 三、图像镜像翻转
  • 四、调整图像尺寸
  • 五、调整图像输出模式
  • 六、彩条测试模式


前言

基于 OV5640 摄像头理论知识讲解-典型工作模式配置。

提示:以下是本篇文章正文内容,下面案例可供参考

一、修改信号极性

为得到正确的图像,OV5640 传感器的视频信号极性与基带芯片或 ISP 必须设置成一致。
例如,默认状态下,OV5640 的 VSYNC 是低电平有效,即 VSYNC 信号在输出图像时为低电平。
而我们常见的图像捕获系统中,往往以 VSYNC 信号为高电平代表图像数据有效,此时就需要设置 VSYNC 信号的极性为高电平有效。OV5640 可以通过设置地址为 0x4740 号寄存器的
值来设置信号的极性,具体设置方法如下表所示:
基于 OV5640 摄像头理论知识讲解-典型工作模式配置_第1张图片

二、修改帧率

OV5640 的图像输出帧率可以通过修改地址为 0x3035、0x3036、0x3037 的寄存器的值来修改,该寄存器实际上是设置了 OV5640 片上 PLL 的各种分频和倍频系数,例如在典型配置模式下,当输入时钟 XCLK 的信号频率为 24MHz 时, 设置 0x3035 寄存器的值为 0x21 可设置输出帧率为30fps,设为0x41可设置输出帧率为15fps、设为0x81可设置输出帧率为7.5fps。

三、图像镜像翻转

因为 OV5640 是一款 BSI 图像传感器, 成像光线是从芯片背面射入的,所以原始生成的图像看起来是左右相反的,故此需要对图像做镜像处理使其显示正常。设置镜像和翻转功能是通过设置寄存器 0x3820 和 0x3821 的值实现的。上电时,0x3820 的值默认为 0x40,0x3821的值默认为 0x00。0x3820 寄存器的 bit2 和 bit1 分别设置 ISP 和传感器的翻转,0x3821 寄存器的 bit2 和 bit1 分别设置 ISP 和传感器的镜像。

四、调整图像尺寸

前面提到,设置输出图像尺寸可以通过设置 ISP 在传感器上的开窗,预缩放偏移和输出
图像大小窗口。最常用的是设置输出图像大小窗口设置,地址为 0x3808 和 0x3809 的寄存器
设置输出图像的高度,地址为 0x380a 和 0x380b 的寄存器设置输出图像的宽度。例如,需要
设置输出图像大小为 800*480 分辨率,则设置输出图像高度寄存器的值为 0x0320(800d),
设置输出图像宽度寄存器的值为 0x01e0(480d)。即设置:
0x3808 = 0x03; // DVPHO 800 0x3809 = 0x20; // DVPHO
0x380a = 0x01; // DVPVO 480 0x380b = 0xe0; // DVPVO

五、调整图像输出模式

B565、RGB555、RGB444 模式等,YUV 制式包括 YUV444、YUV422、YUV420 模式等,而每
个模式下,又根据输出像素的各个字节代表的不同意义,又分为多种模式,例如对于 RGB565模式,连续的两个字节代表一个像素的颜色值,在代表一个像素点的 2 个字节数据中,哪几位代表红色分量,哪几位代表绿色分量,哪几位代表蓝色分量,也是通过寄存器可以设置的。
具体模式设置是通过 0x4300 这个寄存器设置的。这里仅介绍两种常用的模式设置,RGB565
和 YUV422。其他模式,用户可以通过查看 OV5640_CSP3_DS_2.01_Ruisipusheng.pdf 中相关描述。
0x4300 寄存器共 8 位,其中 bit[7:4]设置图像输出模式,bit[3:0]设置每个模式下输出像
素内容的顺序。下表为 bit[7:4]的值和对应的输出模式的关系。
基于 OV5640 摄像头理论知识讲解-典型工作模式配置_第2张图片
***说明:***关于很多读者所关心的 JPEG 模式,并不是在这个寄存器中设置的,JPEG 输出是另外有单独的 JPEG 压缩引擎,对 YUV422 或 YUV420 格式的图像编码得到的。如果需要输出JPEG 格式,则本寄存器应该设置高 4 位的值为 0x3 或 0x4,即选择 YUV422 或 YUV420 格式,
然后再设置 JPEG 相关的寄存器。对于 JPEG 模式本手册不做讨论。
当设置了图像输出模式后,可以通过设置该寄存器的 bit[3:0]来设置输出图像的顺序。
例如,对于 RGB565 模式(bit[7:4]=0x6),设置 bit[3:0]为不同的值则可以实现不同的输出序列,
如下表所示:
基于 OV5640 摄像头理论知识讲解-典型工作模式配置_第3张图片
基于 OV5640 摄像头理论知识讲解-典型工作模式配置_第4张图片
对于我们常见的应用来说,一般是使用 RGB 或 BGR 序列,即设置寄存器的 bit[3:0]的值
为 0x0 或 0x1。
下表为 YUV422 模式(bit[7:4]=0x3)时 bit[3:0]的值与对应的输出序列的关系:
基于 OV5640 摄像头理论知识讲解-典型工作模式配置_第5张图片

六、彩条测试模式

通过设置地址为 0x503d 寄存器中相应位的值,可以设置 OV5640 输出的图像内容是传
感器采集到的图像还是测试信号发生器模块产生的测试信号。
0x503d 寄存器的最高位 bit7 为测试信号发生器的开关控制位,设置为 1 即可开启测试信号发生器。bit[1:0]为测试信号类型选择寄存器不同的值可以选择不同的测试模式,如彩条
(Color Bar)、棋盘格(Color square)。基于 OV5640 摄像头理论知识讲解-典型工作模式配置_第6张图片
例如要设置彩条测试模式,设置 0x503d 寄存器的值为 0x80 即可。

你可能感兴趣的:(fpga开发,fpga,缓存,网络,人工智能)