第十八章 宝马1768——0V7670摄像头
开发环境:集成开发环境μVision4 IDE版本4.60.0.0
主机系统:Microsoft Windows XP
开发平台:旺宝NXP LPC1768开发板
18.1 OV 7670摄像头模块
18.2 硬件描述
18.3 程序说明
18.4 实验现象
1、OV7670: OV7670 CAMERA CHIPTM图像传感器,体积小、工作电压低,提供单片VGA涉嫌头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。该产品VFA图像最高达到30帧/秒。用户可以完全控制图像质量、数据格式和传输方式。错有图像处理功能过程包括伽马曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。OmmiVision图像传感器应用独有的传感技术,通过减少或消除光学电子缺陷如固定图案噪声、拖尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。
OV7670更加详细的技术资料,请查看技术手册,在这里就不过多的介绍,主要说明他的使用,让大家快速的应用该摄像头。OV7670使用的是SCCB总线控制,兼容IIC,所以还是我们比较熟悉的。另外我们为了降低OV7670对CPU的占用,在硬件上加了一个FIFO芯片AL422B,缓解CPU对数据的读取和存储。
2、硬件描述:如图是OV7670摄像头模块电路
如下图是宝马开发板与摄像头模块的接口图
3、程序说明: 本例程将摄像头采集到的数据显示到3.2寸彩屏模块上面,其主函数如下:
程序开始先对彩屏模块进行初始化然后配置OV7670后开始显示摄像信息,使用外部中断来使帧同步,在OV7670初始化的端口初始化里面,配置P2.12为下降沿中断,如下是OV7670初始化函数:
在OV7670初始化的配置函数中,首先对SCCB控制总线的引脚及帧同步中断进行初始化,这里使用的模拟方式进行控制,具体的控制时序请查看技术手册,然后给OV76760提供时钟,这里我们采用LPC1768的时钟输出,给OV7670来提供时钟的支持,节省了硬件支出。首先复位SCCB,然后读取OV7670产品序列号0x7673,若序列号正确则开始对OV7670进行初始化,这里将OV7670寄存器和参数放在一个二维数组change_reg里面,change_reg[0]为寄存器地址change_reg[1]为寄存器数据
程序中配置OV7670输出为240*320 QVGA格式输出,若想改变输出图像大小可以调用函数OV7660_Config_Window配置输出窗口大小,具体配置过程可以参考文档《ov7670输出窗口函数和分辨率设置.pdf》,当一帧数据转换结束时触发中断当VsyncCnt==2读取FIFO里面的数据,并显示到彩屏模块。
4、实验现象:拔掉JP11跳线帽,插上OV7670摄像头模块和3.2寸彩屏模块,将程序下载到开发板,复位后即可看到彩屏上面显示摄像画面。