赞
踩
在场有效信号的期间,就能写入一个完整的图像数据(一帧图像)。而href行同步信号跟hsync行同步信号不一样,href是指真实有效的行信号,而且是高电平有效(在href高电平期间完全对应着图像的行数据)。
ov5640的pic_flag为一帧图像结束标志(通过场有效信号打拍,从而得到一个时钟的高电平)。
系统上电后,摄像头刚采集的前几帧图像数据不太稳定,根据手册要求要先舍弃前 10 帧图像,之后的图像才能用于显示。为了前 10 帧图像,需要声明一个帧图像计数器 cnt_pic 来对输入图像帧数进行计数。当计数到10且帧图像结束标志pic_flag拉高,真正的帧有效标志信号pic_valid才拉高(代表之后的图像都能正常显示了)。
仿真文件
上面野火有个地方写错了cnt_pic图像帧计数器,下面做了修改。判断条件加了pic_flag帧结束标志信号
- //cnt_pic:图像帧计数器
- always@(posedge ov5640_pclk or negedge sys_rst_n)
- if(sys_rst_n == 1'b0)
- cnt_pic <= 4'd0;
- else if((cnt_pic < PIC_WAIT) && (pic_flag == 1'b1))
- cnt_pic <= cnt_pic + 1'b1;
- else
- cnt_pic <= cnt_pic;
ov5640输入的是8位的数据,需要通过分别将2个8位数据(低字节和高字节)打拍拼接成16位的数据输出。
所以每行图像数据H_VALID*2=640*2=1280,正好对应着6个仿真里的8位0~255的ov5640_data计数器(256*5=1280)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。