RISC-V MCU中文社区

【分享】 【分享】【队伍编号CICC2841】OV5640摄像头通路搭建分享

发表于 开源蜂鸟E203 2022-05-28 22:10:47
1
215
3

报名编号:CICC2841

这是我们队伍分享的第三篇文章,我们来分享如何进行OV5640摄像头通路的搭建。

目的

对于“智能识别”而言,图像采集模块是必不可的。因此我们在E203 SoC基础上搭载图像采集模块。图像采集模块包括了摄像头的配置和实时场景信息的采集。

OV5640摄像头介绍

在使用OV5640时,首先要对OV5640的控制寄存器进行配置。对OV5640控制寄存器的配置是通过SCCB总线传输的,SCCB协议和I2C协议十分类似,网上了解I2C协议的渠道很多,这里不再赘述。
对于OV5640传感器控制寄存器的配置主要参考《OV5640_datasheet》。根据我们的需要,去配置相应的寄存器,其它寄存器保持默认值即可。通过对控制寄存器的配置,可以控制OV5640输出图像的分辨率大小、图像格式及图像方向等。
对OV5640控制寄存器进行赋值时可以采用状态机,每一个状态都是对于特定地址的寄存器的赋值操作,状态切换时涉及到寄存器地址的变换。在实现整个状态机的时候利用case语法即可。

OV5640引脚功能如下表所示:

管脚名称 管脚类型 管脚描述
RESET 输入 系统复位管脚,低电平有效
PWDN 输入 掉电/省电模式,高电平有效
HREF 输出 行同步信号
VSYNC 输出 帧同步信号
PCLK 输出 像素同步时钟输出信号
D0…D7 输出 像素数据输出端口
SCL 输入 SCCB通信时钟信号
SDA 输入/输出 SCCB通信数据信号

通路搭建

我们是利用block design来完成的,整个block design工程如下图所示:
图片alt

整个视频通路的时钟信号如下表所示:

时钟信号 时钟功能
16MHz时钟 整个block design的输入时钟信号。Clk_wiz模块的输入时钟;VDMA初始化的控制时钟。
25MHz时钟 控制Video timing control、Axi-stream2video、rgb2dvi输出信息频率的时钟信号,OV5640初始化的控制时钟。
125MHz时钟 rgb2dvi模块参考时钟信号。
100MHz时钟 各模块自身工作时钟信号。除与DDR3连接的AXI总线,其余 AXI总线的工作频率均在100MHz。
200MHz时钟 DDR3参考时钟信号。
DDR3输出时钟 与DDR3连接的AXI总线工作频率。
摄像头输出时钟 控制OV_Sensor、Video2axi-stream模块输入信息频率的时钟信号。

整个视频通路的复位信号:队将外部输入的复位信号与25MHz的时钟,100MHz的时钟,DDR3输出时钟进行了同步。

OV5640摄像头一个周期只能生成8比特的图像信息,对于一个像素点RGB信息的输出是两个时钟周期完成的,并且输出的图像数据为rgb565格式。因此需要我们自行设计一个模块处理摄像头的数据(图中为OV_Sensor)。

对于摄像头的配置可以采用软件配置的方法或者硬件配置的方法,我们采用的硬件配置的方法,软件配置的方法可以借助E203的I2C输出端口。

其余各ip的配置如下:
图片alt
图片alt
图片alt
图片alt
图片alt

喜欢3
用户评论 (1)
lzy_verilog

lzy_verilog 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板