OV5640摄像头配置一些值得注意的关键点(三)
一、字节标志的注意点
由于摄像头的输出是RGB56格式,所以需要将两帧的数据进行拼接,之后送到上位机进行显示。
reg byte_flag; always@(posedge cmos_pclk_i)
begin
if(!rst_n_reg[])
byte_flag <= ;
else if(cmos_href_r)
byte_flag <= ~byte_flag;
else
byte_flag <= ;
end
上面always块是对拼接的两帧数据设置一个标志信号,在byte_flag==1时进行拼接,既然要进行拼接,就需要将数据进行同步寄存,故有
always@(posedge cmos_pclk_i)
begin
if(!rst_n_reg[])
cmos_data_d0 <= 'd0;
else if(cmos_href_r)
cmos_data_d0 <= cmos_data_r; //MSB -> LSB
else if(~cmos_href_r)
cmos_data_d0 <= 'd0;
end
将当前的摄像头输出数据cmos_data_r寄存到cmos_data_d0,相当于延迟了一个时钟。
那么,在什么时候进行拼接,就是在byte_flag==1时,可是需要注意第一个always块的byte_falg赋值是在cmos_pclk_i的下一个时钟的上升沿完成,在第一个always块结束时byte_flag还是0,需要等待byte_falg==1,所以第三个always块
reg [:] rgb565;
always@(posedge cmos_pclk_i)
begin
if(!rst_n_reg[])
rgb565 <= 'd0;
else if(cmos_href_r&byte_flag)
rgb565 <= {cmos_data_d0,cmos_data_r}; //MSB -> LSB
else if(~cmos_href_r)
rgb565 <= 'd0;
end
上述always块等待byte_flag变为高电平。当byte_flag==1时候进行两帧数据拼接。
由于数据需要拼接,拼接完毕后的数据才是有效数据,那么必然需要一个标志作为输出有效信号,也就是表明此时数据有效的信号,所以存在以下代码块:
reg byte_flag_r0;
always@(posedge cmos_pclk_i)
begin
if(!rst_n_reg[])
byte_flag_r0 <= ;
else
byte_flag_r0 <= byte_flag;
end assign clk_ce =out_en? byte_flag_r0:'b0;
为什么需要定义byte_flag_r0将byte_flag延时一个像素时钟呢?因为byte_flag_r0比byte_flga延时一个像素时钟,在这个延时的时钟过程中,完成数据的拼接,当完成数据拼接后,正好此时的数据有效且byte_flag_r0==1,故将byte_flag_r0作为输出有效标志。
将上面的第一个第二个always块写在一起更容易明白,可参考小梅哥例程中的配置方式,
//capture and sync RGB565 cmos_din
reg [:] cmos_din_r;
reg [:] cmos_frame_data_r;
reg byte_flag;
always@(posedge cmos_pclk or negedge rst_n)
if(!rst_n) begin
cmos_din_r <= ;
byte_flag <= ;
cmos_frame_data_r <= ;
end
else if(cmos_href) begin
byte_flag <= ~byte_flag;
cmos_din_r <= cmos_din;
if(byte_flag == 'b1)
cmos_frame_data_r <= {cmos_din_r, cmos_din}; //MSB -> LSB
else
cmos_frame_data_r <= cmos_frame_data_r;
end
else begin
cmos_din_r <= ;
byte_flag <= ;
cmos_frame_data_r <= cmos_frame_data_r;
end
(二)、此外,在代码案例中,存在前n个帧数据丢弃的情况,目前见过10帧、12帧、15帧,其作用个人理解为预留出5640摄像头的IIC配置初始化过程。
OV5640摄像头配置一些值得注意的关键点(三)的更多相关文章
- ov5640摄像头设备驱动
http://www.cnblogs.com/firege/p/5806121.html (驱动大神) http://blog.csdn.net/yanbixing123/article/detai ...
- FPGA配置OV5640摄像头及RGB图像数据采集
本文设计思想采用明德扬至简设计法.在做摄像头数据采集处理之前,需要配置OV5640传感器内部寄存器使其按要求正常工作,详细内容请参见<OV5640自动对焦照相模组应用指南>.首先要关注OV ...
- 第46章 DCMI—OV5640摄像头—零死角玩转STM32-F429系列
第46章 DCMI—OV5640摄像头 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com ...
- 利用AXI VDMA实现OV5640摄像头采集
利用AXI VDMA实现OV5640摄像头采集 导读:摄像头采样图像数据后经过VDMA进入DDR,通过PS部分控制,经过三级缓存,将DDR中保持的图形数据通过VDMA发送出去.在FPGA的接收端口产生 ...
- 转:浅谈CSS在前端优化中一些值得注意的关键点
前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...
- 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)
[项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...
- OV5640摄像头的数据处理配置流程(一)
module RGB_init( //系统信号输入(时钟+复位) input cmos_clk_i, //模块控制时钟 input rst_n_i, //系统复位信号 //OV5640输出信号(从56 ...
- 利用AXI VDMA实现OV5640摄像头采集笔记(二)
导读:摄像头采样图像数据后经过VDMA进入DDR,通过PS部分控制,经过三级缓存,将DDR中保持的图形数据通过VDMA发送出去.在FPGA的接收端口产生VID OUT时序驱动HDMI显示器显示图形. ...
- 海康摄像头配置固定IP
前言 首先要海康设备连接好网线,电脑客户端跟海康设备在同一个局域网络. 1.直接在海康网站下载SADP工具软件,安装SADP工具,如图所示: 2.安装成功后,桌面的出现设备网络搜索, 面板介绍:这里将 ...
随机推荐
- 两小无猜的爱恨情仇--java =+和+=揭秘
故事背景 当一个人问另一个人“敢不敢”的时候,另一个人必须说“敢”,这就是游戏的规则.小男孩朱利安和小女孩苏菲的相遇即开始于这样一场孩童的闹剧,一个精美的铁盒子就是他们游戏的见证.说脏话,扰乱课堂,在 ...
- 校园网 虚拟机VMware Linux桥接模式 无法上网 问题
只是解决常见虚拟机桥接模式 无法上网问题,基本的百度都有 基本知识 虚拟机有三种网络连接模式:桥接模式,net模式,仅主机 桥接模式:同一网段允许的话,相当于一个独立的物理主机,独立ip net模式: ...
- MongoDB 学习笔记之 分析器和explain
MongoDB分析器: 检测MongoDB分析器是否打开: db.getProfilingLevel() 0表示没有打开 1表示打开了,并且如果查询的执行时间超过了第二个参数毫秒(ms)为单位的最大查 ...
- vue 上传文件 和 下载文件 面试的时候被问到过
Vue上传文件,不必使用什么element 的uplaod, 也不用什么npm上找的个人写的包,就用原生的Vue加axios就行了, 废话不多说,直接上代码:html: <input type= ...
- 什么是STM32的ISP?
上一篇笔记分享了STM32的串口IAP实例:STM32串口IAP分享.其中,下载IAP程序时用ISP的方式进行下载.这里的ISP又是什么呢? ISP方式下载程序原理 ISP:In System Pro ...
- MySQL生僻函数
0X01 字符串函数 STRCMP STRCMP(expr1,expr2) 若所有的字符串均相同,则返回STRCMP(),若根据当前分类次序,第一个参数小于第二个,则返回 -1,其它情况返回 1 . ...
- [NOIp2014] luogu P1351 联合权值
哎我博 4 了. 题目描述 无向连通图 GGG 有 nnn 个点,n−1n−1n−1 条边.点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi,每条边的长度均为 111 ...
- opencv::自定义线性滤波
卷积概念 常见算子 自定义卷积模糊 卷积概念 1.卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作. 2.Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor po ...
- SSH框架项目配置和启动的加载顺序及请求的执行顺序
1:======配置和启动====== (1)配置web.xml 配置<context-param>,其中内容为Spring的配置文件applicationContext.xml.注意&l ...
- 深copy
更好的对一个对象进行复制 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...