CrazyBingo

Chapter 01: 开启摄像头开发之路

0
阅读(4814)

Chapter 01: 开启摄像头开发之路

wps_clip_image-18391

wps_clip_image-13671

1. 写在前面的话

时间是2012年7月12号,21:51,又是一天过去了,时间来去如此匆匆,没时间抱怨……

这个文档创建大概是2个月以前的事情了,但一直拖,拖,拖到了现在。一个项目结束了,没有写完总结的档案,总觉是没有做完,心里一直忐忑着,逼着自己,今天,把这件事收个尾。、

关于OV7670,或者说关于摄像头吧,进入一个全新的领域,是从OV7670开始的。甚至用多个是FPGA驱动,没有太多的资料;再者由于FPGA设计的要求,感觉这个过程还是蛮艰辛的。不敢跟那些所谓的神比,总之,对于自己还是走过了一段崩溃而又充实的路。最近会抽时间把有关摄像头的心得体会全部总结出来,也算是对自己的一个交代。

2. 关于各种摄像头

首先,关于摄像头的概要,这些都是我个人研究中的心得体会,我不会刻意去照搬照抄某些文档,也不会去网络上复制粘贴,仅仅听过浅陋的水文,总结前些日子研究的总结。

既然是“开启摄像头之路”,那本篇主要讲讲摄像头。摄像头主要可分为数字摄像头,和模拟摄像头,即CMOS摄像头,与CCD摄像头。模拟摄像头也就三根线,RGB,通过AD转换为数字信号,终端接收信号,解码,便能得到视频图像。CCD摄像头我将会在研究生截断全面研究,包括编解码,图像算法处理,因此这件事情以后再说,此处不再说起。

CMOS摄像头,其实也是通过模拟采样,AD转换,然后在经过DSP等信号处理,最终得到D[0..8]这几个摄像头数据接口。相对于CCD而言,CMOS在电路上要简单得多,因为很大一部分电路都在内部帮用户转换完成了。

一般在电子开发中,尤其是我们DIY中,用的比较多的是OvmniVision的摄像头,因为其驱动简单,图像效果还可以,被广泛应用于各种监控领域中。同时Micron的摄像头,以其优质的图像处理功能,兼容的摄像头接口,不过寄存器量大,驱动稍微难度大了一点,以至于资料不多,亲睐的人没有OV多。这两款芯片我都用过,OV的便宜点,但Micron的图像效果更OK一点,各有所长吧。初学入门,介意用OvmniVision,更好上手,而且,资料问题啥的更好找些。

3. 摄像头通用接口

wps_clip_image-16686

wps_clip_image-26151

如上,OV传感器内部结构(上),以及Micron传感器的内部结构(下),在接口方面,大致雷同,主要由以下这些:

① 都有I2C总线(也成SCCB):SCLK,SDAT,用来配置传感器内部寄存器

② 都有XCLK,PCLK,FRAME_VALID,LINE_VALID,DOUT[7..0]信号,主要是Sensor驱动时钟的输入以及采样时钟,帧有效信号,行有效信号,图像数据的输出。也许业界为了兼容吧,摄像头输出都设置为了8位DOUT[7..0],所以PCLK是像素时钟的2倍,这在以后慢慢讲吧。

③ STROBE,STANDBY,或者PWDN,闪光灯,以及Sensor的开关,也不尽相同,其他就没啥的了。。

摄像头的驱动也差不多,无非就是寄存器配置,然后按照设定的模式配置数据。不管是YUV模式,还是RGB,Raw等数据格式,主要按照协议采样,转换就可以了,这在处理上并没有那么难,就看你Verilog的功底了。关于通信协议,关于时序,以后再讲。。。

在此两项我用过的两款摄像头,OV7670 and MT9M111:

wps_clip_image-3392

wps_clip_image-18716

官方小组:视频图像显示系统开发 http://group.chinaaet.com/116


官方支持的QQ群:VIP_Board视频开发:248619895 (相关视频、照片、手册等资料请自行下载)

VIP_Board测试视频下载地址:http://www.chinaaet.com/lib/detail.aspx?id=89940