一、2440环境搭建
打补丁:
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 menuconfig12345
启动内核:
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 0x3000000012
驱动:
cp *.ko /work/nfs_root/fs_mini_mdev_new/work
cp test_camera /work/nfs_root/fs_mini_mdev_new/work12
二、硬件原理
数据的流向:
自然景观-》摄像头模块-》接口(排线)-》s3c2440的摄像头控制器-》lcd
1.ov7740(摄像头模块)
上面带着黄色排线的摄像头模组。
模组的组成:镜头、音圈马达、红外滤光片、sensor(传感器就是ov7740芯片,它的正面就是有效感光阵列)、排线pcb板子
输入信号: 自然景观等的模拟信号
输出信号: rgb、yuv格式的数字信号
1)常用参数
输入信号: 自然景观等的模拟信号
输出信号:
输出格式为:raw rgb、yuv
输出分辨率为:vga(640*480)、qvga(240*320)、cif(352*288)、更小的任意大小
有效感光阵列的大小:656*488 = 320128(30w像素)(感光阵列是由像素点颗粒组成)(这个大小表示的是感光颗粒的个数)
镜头的大小:1/5寸(感光颗粒组成的感光阵列,物理组成是1/5寸)
像素点颗粒的大小: 4.2um * 4.2um(它表示一个感光颗粒的大小像素点颗粒只能感受三种颜色)
总结:
以上三个参数,都是用来描述感光阵列,即使同为30w像素的摄像头,如果它的镜头尺寸大小越小,那么对应的像素点颗粒的大小就越小,从而感光性就越差,进而拍摄的效果就越差。
输入时钟频率: 6~27mhz(即0v7740摄像头模组的工作频率范围。)
扫描模式: 连续扫描(p):例如说电影是720p
隔行扫描(i):电影是1080i
2)内部数据的处理流程
a.isc部分:(图像传感器核心部分 )
翻转、增益大小调整、黑电平校准、饱和度的控制、otp存储器(存储厂家id设备id)
第一部分生成的是ramrgb数据
b.isp部分:(图像处理dsp)
提供测试功能、镜头补偿功能、自动白平衡、raw rgb-》rgb、rgb-》yuv、
窗口功能、缩小放大功能
里面有dsp数据处理单元,再将得到的数据传给下一部分
c.ioi部分:图像输出单元
raw rgb/yuv、vga/qvga(分辨率)、bt601/bt656(数据传输方式)
问:以上这些处理过程,不需要我们人为的做任何设置,它们都能自动完成吗?
答:以上这些处理过程,只有极少部分是自动完成的,而剩余部分是需要我们设置后,才能完成。
问:怎么对它们进行设置呢?
答:是通过iic总线,操作ov7740的寄存器来进行设置模组的。
问:raw rgb与rgb的区别是什么?
答:所谓的raw rgb就是只有红绿蓝三种颜色的数据。而rgb数据,它不仅只表示红绿蓝三种颜色,而且还能表示由红绿蓝组合成的任何一种颜色。
问:rgb、yuv又分别是什么?
答:rgb、yuv是两种完全不同的颜色空间,它们之间可以相互转换。
2.原理图(接口)
控制类:
iicsda – iic总线的数据线
iicscl – iic总线的时钟线
数据传输类:
camrst – 复位cmos摄像头模块
camclk – 摄像头模块工作的系统时钟(24mhz)
cam_href – 行同步信号
cam_vsync – 帧同步信号
cam_pclk – 像素时钟
camdata0~7– 数据线
3.摄像头接口控制器:(参考芯片手册)任何一个功能都有相应的寄存器
源:允许输入的最大分辨率是4096*4096,接受的方式是bt601/656,能接受的数据是8bit的yuv格式。
摄像头:输出的分辨率:640*480运输方式:bt601
那么我们的控制器怎么知道摄像头生成的是什么格式的数据呢?这就需要我们设置一些寄存器来告诉摄像头控制器我们使用的是什么。
窗口功能的模块:就是对数据源进行裁剪,我们需要裁剪多少,裁剪多大都是由寄存器进行相应的设置。
裁剪之后的数据有两种选择:
传到预览通道:产生较小分辨率的图片(画中画pip:最大640*480 )对于这个通道可以对得到的数据进行:缩放+颜色空间转换(yuv/rgb)+旋转。有自己特有的dma通道:只能输出rgb16/24的图片。直接将数据存储在指定的地方,我们叫他缓存
传到编码通道:产生用于编码的数据(最大:4096*4096)对于这个通道可以对得到的数据进行:缩放+编码(就是对采集到的数据进行压缩)+旋转。只能输出ycbcr420/ycbcr422.的图片。也是存储在缓存
4.中断信号
已经得到一帧数据了,然后开始读下一帧数据时,在前一帧的下降沿产生一次中断来读取前一帧的数据。每一帧数据开始采集前产生中断。
总结:
1.cmos摄像头模块的接口分为两类:
(1)控制类
– 初始化:对摄像头模块进行相应的初始化操作,让摄像头模块能够正常的输出摄像头数据
– 控制: 设置亮度、旋转、缩放等等的操作
(2)数据传输类: 与lcd的接口完全一样。
2.cmos摄像头模块,是一个iic设备,需要给它写符合iic设备那套架构的驱动,从而实现初始化和灵活的控制。
3.s3c2440摄像头控制器(camif)
允许输入的最大分辨率是4096*4096,接受的方式是bt601/656,能接受的数据是8bit的yuv格式。
问:bt601与bt656的传输方式有什么区别?
答:bt601有独立的行同步信号线、帧同步信号线,而bt656是将这两种信号内嵌到数据中的。
摄像头凸透镜成像原理 摄像的原理是小孔成像吗
力驰微LC6664非隔离高功率因数降压型LED驱动芯片
锡焊为什么要用松香_锡焊过程中松香有什么用_焊锡怎么使用松香
罗门哈斯北美电路板公司PCB材料涨价
短路保护的定义和实现方式
CMOS摄像头之硬件原理
中国首款高空高速无人机“云影”亮相,最大飞行速度为620公里每小时
LabNotebook数据库结构 LabNotebook 数据库重建
美国移动医疗产业发展领跑全球 正处在加速成长阶段
谷歌新版Flutter应用开发框架已至此在Windows平台上的应用程序
超高频RFID系统追踪超市人流
埃塞俄比亚人:水里有鱼,树上有果,我们为什么要工作
阿里云全面进入物联网领域,2009年就建立起了云服务中心
PCB项目在Cadence和Altium Designer之间的转换
SCADA系统懂多少?
大众正涉足太阳能-电动游艇领域
传苹果已经开始生产新款iPad 其处理器速度更快
亚硝酸盐快速检测仪的功能
基于MAAP 010169实现5.8GHz 10W射频功率放大器设计
高端新品发布!国产双束电镜+超高分辨电镜闪耀2023全国电镜年会