Android Camera硬件结构组成(二)

Android Camera硬件结构组成(二)

参考网址:https://blog.csdn.net/xubin341719/article/details/7723725

             https://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html

关键词:android  camera CMM 模组 camera参数
平台信息:
内核:linux
系统:android

平台:S5PV310(samsung exynos 4210) 

作者:xubin341719(欢迎转载,请注明作者)

下载:常用摄像头规格书(个别有android驱动程序)  :bf3703 30W、gc0308 30W、ov7670、gt2005 200W、gt2015 200W、NT99250 200W、s5k5ba 200W、s5k4ba

新项目开案,代码他们还没给得到,三星那边办事流程就是多,烦人(嘿嘿只是说说,流程从另一方面说明了人家标准化的程度高)。看看代码,把前一段时间工作的内容整理下,发出来。一方面有相同问题的“同学”可以看下,说不定问题就解决了; 再一方面自己工作方面记录吧,整个流程整理出来,加深自己的印象,技术还得提高呀。这样利人利己的事多做点好……“为人民服务!”(我不是**党,只是技术P民)

这篇比较基础,做为科普知识看一下。

android camera(一):camera模组CMM介绍

android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)

android camera(三):camera V4L2 FIMC

android camera(四):camera 驱动 GT2005

一、摄像头模组(CCM)介绍:

1、camera特写

    摄像头模组,全称CameraCompact Module,以下简写为CCM,是影像捕捉至关重要的电子器件。先来张特写,各种样子的都有,不过我前一段时间调试那个有点丑。

2、摄像头工作原理、camera的组成各组件的作用

想完全的去理解,还得去深入,如果是代码我们就逐步分析,模组的话我们就把它分解开来,看他到底是怎么工作的。看下它是有那些部分构成的,如下图所示:

(1)、工作原理:物体通过镜头(lens)聚集的光,通过CMOS或CCD集成电路,把光信号转换成电信号,再经过内部图像处理器(ISP)转换成数字图像信号输出到数字信号处理器(DSP)加工处理,转换成标准的GRB、YUV等格式图像信号。

(2)、CCM 包含四大件: 镜头(lens)、传感器(sensor)、软板(FPC)、图像处理芯片(DSP)。决定一个摄像头好坏的重要部件是:镜头(lens)、图像处理芯片 (DSP)、传感器(sensor)。CCM的关键技术为:光学设计技术、非球面镜制作技术、光学镀膜技术。

镜头(lens)是相机的灵魂,镜头(lens)对成像的效果有很重要的作用,是利用透镜的折射原理,景物光线通过镜头,在聚焦平面上形成清晰的影像,通过感光材料CMOS或CCD感光器记录景物的影像。镜头厂家主要集中在台湾、日本和韩国,镜头这种光学技术含量高的产业有比较高的门槛,业内比较知名的企业如富士精机、柯尼卡美能达、大立光、Enplas等

传感器(sensor)是CCM的核心模块,目前广泛使用的有两种:一种是广泛使用的CCD(电荷藕合)元件;另一种是CMOS(互补金属氧化物导体)器件。

电荷藕合器件图像传感器CCD(Charge Coupled Device),它使用一种高感光度的半导体材料制成,能把光线转变成电荷,通过模数转换器芯片转换成数字信号。CCD由许多感光单位组成,通常以百万像 素为单位。当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面。CCD传感器模块以日本厂商为主导,全球规模市场有90%以上被日本厂商垄断,以索尼、松下、夏普为龙头。

互补性氧化金属半导体CMOS(Complementary Metal-Oxide Semiconductor)主要是利用硅和锗这两种元素所做成的半导体,使其在CMOS上共存着带N(带–电)和 P(带+电)级的半导体,这两个互补效应所产生的电流即可被处理芯片纪录和解读成影像。CMOS 传感器主要美国、台湾和韩国为主导,主要生产厂家有美国 OmniVision、Agilent、Micron,台湾的锐像、原相、泰视等,韩国的三星、现代。

 图像处理芯片(DSP)是CCM的重要组成部分,它的作用是将感光芯片获得的数据及时快速地传递中央处理器并刷新感光芯片,因此DSP芯片的好坏,直接影响画面品质(比如色彩饱和度,清晰度等)。

FPC柔性电路板(柔性PCB): 简称"软板", 又称"柔性线路板",连接芯片和手机。起到电信号传输作用。

3、camera模组的装配方式

(1)、定焦模组装配图

CCM分为定焦模组和自动变焦模组,其中定焦模组主要由镜头、镜座、感光集成电路、软性线路板、补强和钢片装配而成,其装配图如下:

(2)、自动变焦模组装配图

以前我不知道手机上的光学变焦是怎么会事,以为那些都是忽悠人的,看这个图这下明白了,如果你也不知道,看下这个图,原来里面有个音圈马达,这个只有高像素的模组才有,这个我们不用管,知道怎么光学变焦就可以了。

自动变焦模组由镜头、音圈马达、底座支架、感光集成电路、驱动集成电路和连接器组成,其装配图如下:

(3)、3D模组

传说中的3D是怎么会事,多几台摄像机拍摄。手机上也有了??有点强大

看人家手机上用的,感觉看着不太好看,高科技的东西开始就是做得丑了一点,我们了解有这个东西就行了:

4、摄像头的一些技术指标

(1)、图像解析度/分辨率(Resolution)

QSIF/QQVGA

160 x 120

19200

 

QCIF 

176 x 144

25344

 

SIF/QVGA

320 x 240   

76800

 

CIF

352 x 288  

101376 

10万像素

VGA

  640 x 480

307200

30万像素(35万是指648X488)

SVGA

800 x 600

480000

50万像素

XGA

1024 x 768

786438

80万像素

SXGA 

1280 x 1024 

1310720   

130万像素

UXGA

1600 x 1200

1920000  

200万像素

QXGA 

2048 x 1536

3145728 

300万像素(320W)

QSXGA

2592 x 1944

5038848

500万像素

2816 x 2112

2947392

600万像素

3072 x 2304 

7077888

700万像素

3200 x 2400

7680000

770万像素

3264 x 2448 

7990272 

800万像素

3876 x 2584

10015584

1000万像素


(2)、图像格式(imageFormat/Colorspace)
RGB24
420是目前最常用的两种图像格式。

RGB24:表示R、G、B三种颜色各8bit,最多可表现256级浓淡,从而可以再现256*256*256种颜色。

I420:YUV格式之一。其它格式有:RGB565,RGB444,YUV4:2:2等。

(3)、自动白平衡调整(AWB)
定义:要求在不同色温环境下,照白色的物体,屏幕中的图像应也是白色的。色温表示光谱成份,光的颜色。色温低表示长波光成分多。当色温改变时,光源中三基色(红、绿、蓝)的比例会发生变化,需要调节三基色的比例来达到彩色的平衡,这就是白平衡调节的实际。
(4)、图像压缩方式
JPEG:(joint photo graphicexpert group)静态图像压缩方式。一种有损图像的压缩方式。压缩比越大,图像质量也就越差。当图像精度要求不高存储空间有限时,可以选择这种格式。目前大部分数码相机都使用JPEG格式。
(5)、彩色深度(色彩位数)
反映对色彩的识别能力和成像的色彩表现能力,实际就是A/D转换器的量化精度,是指将信号分成多少个等级。常用色彩位数(bit)表示。彩色深度越高,获得的影像色彩就越艳丽动人。现在市场上的摄像头均已达到24位,有的甚至是32位
(6)、图像噪音
指的是图像中的杂点干挠。表现为图像中有固定的彩色杂点。
(7)、视角
与人的眼睛成像是相成原理,简单说就是成像范围。
(8)、输出/输入接口
串行接口(RS232/422):传输速率慢,为115kbit/s
  并行接口(PP):速率可以达到1Mbit/s
  红外接口(IrDA):速率也是115kbit/s,一般笔记本电脑有此接口
  通用串行总线USB:即插即用的接口标准,支持热插拔。USB1.1速率可达12Mbit/s,USB2.0可达480Mbit/s
  IEEE1394(火线)接口(亦称ilink):其传输速率可达100M~400Mbit/s 

    (9)、CAMIF, Camera Interface

    下面这张图,没看懂,暂时放在这里:

    

     (10)、FIME,Fully Interactive Moblio Camera

    摄像头采集的数据CPU无法直接处理,所以,主动芯片里面集成了Camera控制器,即FIMC。摄像头需要先将图像数九传送给控制器,经过控制器处理(裁剪拉升后直接预览或者编码)之后交给CPU处理。MCLK就是由FIMC提供的。

    

    CAMMCLK给摄像头提供时钟,CAMRST是复位线,PWD在摄像头工作时应该始终为敌。HREF是行参考信号,PCLK是像素始终,VSYNC是场同步信号,一旦给摄像头提供了时钟,并且复位了摄像头,摄像头就开始工作了。

     FIMC信号定义如下所示(YCbCr模式)

Signal

I/O

Description

   Type

HREF

I

行同步信号

 

PCLK

I

像素时钟

DATA[7:0]

I

像素数据

FIELD

O

FIELD信号

MCLK

O

系统时钟信号

    (11)、camera时钟域

    每个摄像头都有三个时钟域,第一个是系统总线时钟域;第二个是摄像头像素时钟域PCLK;第三个是内部始终MCLK。

    系统总线时钟必须高于PCLK,CAM_MCLK必须固定频率发呢拼比,如:PLL时钟。

 

二、摄像头工作原理

    1、手册中内容扫盲:  

   首先,我们要明白,一旦给摄像头提供了时钟,并且复位了摄像头,摄像头就可以工作了,通过PCLK、HSYNC、VSYNC听不传输数字图像信号。

    摄像头的驱动需要完成三大步:

    >>摄像头的上电、时钟这些基本条件

    >>IIC保证摄像头的初始化

    >>摄像头工作后传回数据到主控

  原图有误,已经修改,红色圈圈部分。

  控制部分是摄像头上电、IIC控制接口;数据输出是摄像头拍摄的图像数据传到主控芯片,所以,需要有Data、行场同步时钟(告诉主控芯片哪些数据是一行,哪些是一帧)、以及时钟(PCLK,像素时钟,告诉主控芯片哪些数据是一个像素点)。

    (1)、MCLK

    摄像头要 工作,必须要有个时钟进行同步,这个时钟就是MCLK,必须要有,否则摄像头就是一个死物,这个时钟由主控芯片提供,确切的说是有主控芯片的控制器提供,下面会提到。

    (2)、RESET

    复位信号,上面有提

    (3)、SDA、SCL

    IIC总线,主要作用就是为主控芯片配置或者读取摄像头的寄存器提供通道。mini2440音频模块中的L3协议,也是这个作用。不要看见协议就怕,协议就是一条路,数据传输的路,有规定的数据传输的道路。

    

    (4)、Configuration Register

    配置寄存器,控制器(在主控芯片中)通过IIC来设置,相当于告诉摄像头如何工作等。

    (5)、Timing Control

    时序控制,主要是根据主控芯片提供的MCLK时钟来控制行场同步、自动曝光AEC等。因为这些都需要时钟的配合。

    (6)、Pixel Array

    gc0308物理上的阵列是648H*492V,实际采样阵列是648H*488V,也是有效阵列。实际取像的阵列是640H*480V。如下图所示:

    

    (7)、CDS

    Correlated Double Sampling,相关双联取样电路。CCD传感器的每个像素点输出波形只在一部分时间内是图像信号,其余时间是复位电平和干扰,为了提取图像信号并消除干扰,就要采用取样保持电路。

    (8)、Analog Processing、10bit ADC

    主要是将sensor得到的电信号转换为数字信号,方便ISP或者DSP处理。

    (9)、Image Signal Processing

    图像信号处理器,可以理解为DSP的一种,主要是对sensor经过ADC处理后的Raw Data进行处理,主要有自动白平衡AWB、插值计算(Bayer interpolation主要是对Raw Data进行格式转换,转为YUV /RGB等)、去噪、gamaa修正、色彩修正、边缘增强等。这些都是由寄存器决定,寄存器又是通过IIC总线来设置的。

    (10)、Output Mode & Sync Control

    输出接口,从光线进入镜头、过滤、光感应、ADC,然后到图像数据处理,最终数据到达外部接口。摄像头取一幅图像的整个工作完成,摄像头本质上还是一个终端节点,所以需要将采集好的图像数据传递给主控芯片,所以要有数据引脚,图形格式补在是Raw Data,而是YUV或者RGB数据。进行数据传输,肯定需要时钟进行同步,所以需要PCLK,告诉主控芯片,哪个数据代表了一个像素点;VSYNC负责告诉芯片哪些是一帧数据,HSYNC则同步行数据。

    (11)、设备地址

    

    百科上的定义,在数据通信中,可以发送或接受数据的任何设备标识。

    操作系统课程上面有讲到,系统为了管理外部设备而进行的编码。不知道这个地址是不是这个意思。

    反正写入的时候指定0x42,读取的时候指定0x43,

    (12)、IIC通信

 

    IIC通信是一个交互的过程,需要等待对方的确认信号,并不是一次性完成的。首先,主机需要做两个事情:

    

    一个是,提供启动、结束信号;一个是提供IIC时钟信号。图示很明白了,不在啰嗦。

    (13)、时序 Timing

    

 

 

     

    帧时间(Ft,Frame time)=帧时钟不活动时间(Bt,Blank time)+启动时间(St,Start time)+有效行时间(Vt,Valid line time)+结束时间(Et,End time)+8

    空白无效行时间(Vblank/Dummy line)=Bt+St+Et。

    首先要明白,物理上492行,但是实际感应光线的只有488行,4行是Dark Row,黑暗行;但是这488有数据的行中只有480行是有效行。然后推导公式,首先分析小公式——空白行时间,空白时间包括无效的帧同步时间,这里就是VSYNC处于高电平的无效时间;开始数据采集之前需要有几个时钟周期的缓冲,然后才开始采集行数据,所以这个时间,也就是启动时间也要算在空白行时间里面,同理,480行有效数据采集完成后,也需要几个时钟周期表示数据采集结束,结束时间也要包括在空白行时间里面。

    一帧图像所需要的时间,首先包括空白行时间Bt,还有有效行时间Vt,然后加上8。这个8应该是代表那8行无效数据(不确定),欢迎留言!

    exp_time应该是曝光时间,当曝光时间小于488行数据采集时间+空白行时间,这帧时间由所有行采集的时间+空白行时间控制,那么VSYNC无效电平的时间=行空白时间-启动时间-结束时间。

    如果曝光时间超过win_height+VB,也就是在曝光没有在正常的一帧时间内完成,那么肯定需要继续曝光,帧时间由曝光时间确定。帧同步无效时间=曝光时间-win_height-启动时间-结束时间。

猜你喜欢

转载自blog.csdn.net/a1809032425/article/details/90708797