名称:OV5640摄像头显示设计Verilog代码Quartus? AX301开发板
软件:Quartus
语言:Verilog
代码功能:
本实验将采用?500?万像素的?OV5640?摄像头模组(模块型号:AN5640)为大家显示更高分辨率的视频画面。OV5640?摄像头模组最大支持?QSXGA?(2592x1944)的拍照功能,支持?1080P、720P、VGA、QVGA?视频图像输出。本实验将?OV5640?配置为?RGB565?输出,先将视频数据写入外部存储器,再从外部存储器读取送到?VGA、LCD?等显示模块。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在AX301开发板验证,AX301开发板如下,其他开发板可以修改管脚适配:
设计文档:
OV5640?摄像头显示例程
1?实验简介
本实验将采用?500?万像素的?OV5640?摄像头模组(模块型号:AN5640)为大家显示更高分辨率的视频画面。OV5640?摄像头模组最大支持?QSXGA (2592x1944)的拍照功能,支持?1080P、720P、VGA、QVGA?视频图像输出。本实验将?OV5640?配置为?RGB565?输出,先将视频数据写入外部存储器,再从外部存储器读取送到?VGA、LCD?等显示模块。
2?实验原理
2.1?OV5640?传感器简介
OV5640?摄像头模组采用美国?OmniVision(豪威)CMOS?芯片图像传感器?OV5640,支持自动对焦的功能。OV5640 芯片支持 DVP 和 MIPI 接口,本实验所用 OV5640 摄像头模组通过 DVP 接口和 FPGA?连接实现图像的传输。
2.1.1?OV5640?的参数说明
像素:硬件像素?500W;
感光芯片:OV5640;
感光尺寸:1/4;
功能支持:自动对焦,?自动曝光控制(AEC),自动白平衡(AWB);
图像格式?: RAW RGB, RGB565/555/444, YUV422/420?和?JPEG?压缩;
捕获画面:QSXGA(2592x1944),1080p,1280x960,VGA(640x480),QVGA(320x240)
工作温度:-30~70℃,?稳定工作温度为?0~50℃
2.1.2?OV5640?的寄存器配置
OV5640 的寄存器配置是通过 FPGA 的 I2C 接口来配置。用户需要配置正确的寄存器值让 OV5640 输出我们需要的图像格式,实验中我们把摄像头输出分辨率和显示设备分辨率配置成一样的,OV5640 的摄像头输出的数据格式在以下的 0x4300 的寄存器里配置,在我们的例程中 OV5640?配置成?RGB565?的输出格式。
关于?OV5640?的寄存器还有很多很多,但很多寄存器用户无需去了解,寄存器的配置用户可 以按照?OV5640?的应用指南来配置就可以了。如果您想了解更多的寄存器的信息,可以参考?OV5640?的?datasheet?中的寄存器说明。
2.1.3?OV5640?的?RGB565?输出格式
OV5640?在?href?信号为高时输出一行的图像数据,输出数据在?PCLK?的上升沿的时候有效。?因为?RGB565?显示每个像数为?16bit,?但?OV75640?每个?PCLK?输出的是?8bit,所以每个图像的像数分两?次输出,第一个?Byte?输出为?R4~R0?和?G5~G3,?第二个?Byte?输出为?G2~G0?和?B4~B0,将前后?2?个?字节拼接起来就是?16Bit?RGB565?数据。
3?程序设计
前面的实验已经为本实验做了大量的铺垫,包括?I2C?寄存器的配置、外部存储器的读写,本程序一个比较关键的地方在于视频同时读写,如果做到读写不冲突?在设计帧读写模块时就已经考虑到这点,所以有帧基地址选择,最大?4?帧选择,每次读视频帧地址和正在写的帧地址是不同的,而是上次写入的帧地址,这样就可以避免读写冲突,避免视频画面裂开错位。
cmos_8_16bit?模块完成输入?8bit?数据到?16bit?数据,数据位宽变成?2?倍,时钟频率不变,所以?16bit?数据是隔一个时钟周期有效,并不是一直有效。
| 信号名称 | 方向 | 说明 |
| rst | in | 异步复位输入,高复位 |
| pclk | in | 传感器像素时钟输入 |
| pdata_i | in | 传感器?8bit?数据输入 |
| de_i | in | 数据有效(href) |
| pdata_o | out | 16bit?数据输出 |
| hblank | out | de_i?延时一个时钟周期 |
| de_o | out | 数据输出有效 |
cmos_8_16bit?模块端口
部分代码展示:
////////////////////////////////////////////////////////////////////////////////// //??CMOS?sensor?8bit?data?is?converted?to?16bit?data????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// //??Author:?meisq???????????????????????????????????????????????????????????????// //??????????msq@qq.com??????????????????????????????????????????????????????????// //??????????ALINX(shanghai)?Technology?Co.,Ltd??????????????????????????????????// //??????????heijin??????????????????????????????????????????????????????????????// //?????WEB:?http://www.alinx.cn/????????????????????????????????????????????????// //?????BBS:?http://www.heijin.org/??????????????????????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// ////////////////////////////////////////////////////////////////////////////////// //??????????????????????????????????????????????????????????????????????????????// //?Copyright?(c)?2017,ALINX(shanghai)?Technology?Co.,Ltd????????????????????????// //????????????????????All?rights?reserved???????????????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// //?This?source?file?may?be?used?and?distributed?without?restriction?provided????// //?that?this?copyright?statement?is?not?removed?from?the?file?and?that?any??????// //?derivative?work?contains?the?original?copyright?notice?and?the?associated????// //?disclaimer.??????????????????????????????????????????????????????????????????// //??????????????????????????????????????????????????????????????????????????????// ////////////////////////////////////////////////////////////////////////////////// //================================================================================ //??Revision?History: //??Date??????????By????????????Revision????Change?Description //-------------------------------------------------------------------------------- //??2017/7/19?????meisq??????????1.0?????????Original //*******************************************************************************/
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1355
917