• 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧
  • 欢迎加博主微信:jiang_shaobo

CMOS摄像头之硬件原理

点滴 admin 6年前 (2014-03-14) 284次浏览 已收录 扫描二维码

CMOS摄像头

目的:
将摄像头采集到的数据实时的在LCD上进行显示

一,2440环境搭建

1. 打补丁:
tar xjvf linux-3.4.2.tar.bz2
cd linux-3.4.2
patch -p1 ../linux-3.4.2_100ask.patch
cp config_ok ./.config
make menuconfig

2. 启动内核:
set ipaddr 192.168.1.122 set serverip 192.168.1.101 tftp 0x30000000 uImage
set bootargs root=/dev/nfs nfsroot=192.168.1.200:/work/nfs_root/fs_mini_mdev_new ip=192.168.1.17 console=ttySAC0,115200 bootm 0x30000000

3. 驱动:
cp .ko /work/nfs_root/fs_mini_mdev_new/work
cp test_camera /work/nfs_root/fs_mini_mdev_new/work

二,硬件原理

自然景观-摄像头模块-接口-S3C2440的摄像头控制器-LCD

ov7740(摄像头模块)

输入信号: 自然景观等的模拟信号
输出信号: RGB、YUV格式的数字信号

1). 常用参数
输入信号: 自然景观等的模拟信号
输出信号:

输出格式为:RAW RGB、YUV
输出分辨率为:VGA(640
480)、QVGA(240320)、CIF(352288)、更小的任意大小

有效感光阵列的大小:656488 = 320128(30W)
镜头的大小:1/5寸
像素点颗粒的大小: 4.2um * 4.2um
总结:
以上三个参数,都是用来描述感光阵列,即使同为30W像素的摄像头,如果它的
镜头尺寸大小越小,那么对应的像素点颗粒的大小就越小,从而感光性就越差,进而
拍摄的效果就越差。

输入时钟频率: 6~27MHz
即0V7740摄像头模组的工作频率范围。

扫描模式: 连续扫描(P)

2). 内部数据的处理流程
a.isc部分:
翻转、增益大小调整、黑电平校准、饱和度的控制、OTP存储器

b.isp部分:
提供测试功能、镜头补偿功能、自动白平衡、RAW RGB-RGB、RGB-YUV、
窗口功能、缩小放大功能

c.ioi部分:
RAW RGB/YUV、VGA/QVGA、BT601/BT656

问:以上这些处理过程,不需要我们人为的做任何设置,它们都能自动完成吗?
答:以上这些处理过程,只有极少部分是自动完成的,而剩余部分是需要我们设
置后,才能完成。

问:怎么对它们进行设置呢?
答:是通过IIC总线,操作OV7740的寄存器来进行设置的。

问:RAW RGB与RGB的区别是什么?
答:所谓的RAW RGB就是只有红绿蓝三种颜色的数据。而RGB数据,它不仅只表示红绿蓝
三种颜色,而且还能表示由红绿蓝组合成的任何一种颜色。

问:RGB、YUV又分别是什么?
答:RGB、YUV是两种完全不同的颜色空间,它们之间可以相互转换。

原理图(接口)
控制类:
IICSDA — IIC总线的数据线
IICSCL — IIC总线的时钟线

数据传输类:
CAMRST — 复位CMOS摄像头模块
CAMCLK — 摄像头模块工作的系统时钟(24MHz)
CAM_HREF — 行同步信号
CAM_VSYNC — 帧同步信号
CAM_PCLK — 像素时钟
CAMDATA0~7– 数据线

总结:
1.CMOS摄像头模块的接口分为两类:
(1).控制类
— 初始化:对摄像头模块进行相应的初始化操作
,让摄像头模块能够正常的输出摄像头数据
— 控制: 设置亮度、旋转、缩放等等的操作

(2).数据传输类: 与LCD的接口完全一样。

2.CMOS摄像头模块,是一个IIC设备,需要给它写符合IIC设备那套架构的
驱动,从而实现初始化和灵活的控制。

640480、30fps、YUV、BT601

s3c2440摄像头控制器(CAMIF)

问:BT601与BT656的传输方式有什么区别?
答:BT601有独立的行同步信号线、帧同步信号线,而BT656是将这两种信号
内嵌到数据中的。

喜欢 (0)
[🍬谢谢你请我吃糖果🍬🍬~]
分享 (0)
关于作者:
少将,关注Web全栈开发、项目管理,持续不断的学习、努力成为一个更棒的开发,做最好的自己,让世界因你不同。