Android驱动移植---Camera HW-硬件基础知识

1.Camera的成像原理

景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了

Android驱动移植---Camera HW-硬件基础知识

Android驱动移植---Camera HW-硬件基础知识


这个成像原理还是很重要的,对未来我们分析问题会有很大的帮助。

图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。

目前的 SENSOR 类型有两种:

1.CCD(Charge Couple Device),电荷耦合器件,它是目前高像素类 sensor 中比较成熟的成像器件,是以一行为单位的电流信号。

2.CMOS(Complementary Metal Oxide Semiconductor),互补金属氧化物半导体。CMOS的信号是以点为单位的电荷信号,更为敏感,速度也更快,更为省电

ISP 的性能是决定影像流畅的关键,JPEG  encoder 的性能也是关键指标之一。而 JPEG encoder 又分为硬件 JPEG 压缩方式,和软件 RGB 压缩方式。

DSP 控制芯片的作用是:将感光芯片获取的数据及时快速地传到 baseband 中并刷新感光芯片,因此控制芯片的好坏,直接决定画面品质(比如色彩饱和度、清晰度)与流畅度。

2.Image Sensor类型(Camera的数据格式)

a) YUV Sensor(低端货)

YUV Sensor输出的Data格式为YUV,图像的效果处理使用Sensor内部的ISP,BB端接收YUV格式的data后只进行格式的转换,效果方面不进行处理,由于Sensor内部的ISP处理能力有限,且YUV Sensor的数据量比较大(YUV422的格式1个pixel2个byte),一般Size都比较小,常见的YUV sensor都是5M以下

b) Raw Sensor(稍微好一点的货,优势明显)

Raw Sensor输出的Data格式为Raw,图像的效果处理使用BB端的ISP,BB端接收Raw data后进行一系列的图像处理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要针对不同的模组进行效果调试,Raw sensor是目前的主流,数据量比YUV Sensor小(RAW10 格式的sensor 1个pixel 10个bit)使用平台ISP处理,能支持较大的size

3.硬件接口

简单说来,Camera的接口分为并行和串行两种方式,而目前MTK平台主要支持的串行方式为mipi接口,

Parallel接口mipi接口的介绍可以参考下图

Android驱动移植---Camera HW-硬件基础知识


 

Android驱动移植---Camera HW-硬件基础知识

虽然硬件接口有Parallel接口mipi接口,实际上MIPI是主流,基本已经看不到Parallel的身影了!
后面我们会详细讲解MIPI接口的硬件原理图!

4.常见基本概念

我们这的BB端-原本是是baseband基带的意思,这里理解成CPU即可

a) 三路电压

camera包含的三路电压为模拟电压(VCAMA),数字电压(VCAMD),IO口电压(VCAMIO)

b) I2C信号

BB与Sensor端通过I2C来通信(读写寄存器),包括SCL(I2C Clock) SDA(I2C Data)信号

c) mipi几条lane

mipi data是成对的差分信号,MIPI_RDN和MIPI_RDP,有几对这样的pin脚,则说明是几条lane,同一颗sensor由于register setting不同,输出的信号有可能是2 lane或者4lane等

d) parallel高低八位

Parallel接口一般Data有10根pin,分别叫做Data0~Data9,Parallel sensor输出的data信号是8根pin时,这八根pin接到的是Data0Data7还是Data2Data9,需要配置正确,叫做接到高八位或者低八位,接错了可能产生如下现象

Android驱动移植---Camera HW-硬件基础知识


e) Data Format
Sensor输出的数据格式,对于YUV Sensor来说,Data Fomat一般有YUYV,YVYU,UYVY等,配置不对可能会导致颜色和亮度错掉,例如下图

Android驱动移植---Camera HW-硬件基础知识


对于Raw Sensor来说,Data Format就是First Pixel的颜色,分为R,Gr,Gb,B,配置不对会导致颜色错误

f) MCLK

BB提供给Sensor的外部clock

g) PCLK

Parallel接口的Sensor输出的clock,该clock变化一次,data更新一次

h) mipi 信号

mipi信号包括mipi clock和mipi data,该信号是高速信号,用来传输mipi数据包

5.硬件电路原理图

(以最近做的TIMOVI_S9016为例子)

Android驱动移植---Camera HW-硬件基础知识

原理图分析(引脚作用)

1.供电部分

camera包含的三路电压为模拟电压(VCAMA),数字电压(VCAMD),IO口电压(VCAMIO)

a) VCAMD 就是 DVDD 数字供电,主要给 ISP 供电

b) VCAM_IO 就是 VDDIO 数字 IO 电源主要给 I2C 部分供电;

c) VCAMA 就是 AVDD 模拟供电,主要给感光区和 ADC 部分供电;

d) VCAM_AF 是对 Camera 自动对焦马达的供电

2.Sensor Input部分

a) Rest脚:用于复位和初始化

b) PDN脚:Camera工作状态控制:1.normol work(工作) 2.standby(待机)

c)Mlck脚: 即MasterClock脚,由BB提供给Sensor的外部clock

3.I2C部分

BB与Sensor端通过I2C来通信(读写寄存器),包括SCL(I2C Clock) SDA(I2C Data)信号

4.MIPI部分

mipi信号包括mipi clock和mipi data,该信号是高速信号,用来传输mipi数据包。

mipi data是成对的差分信号,MIPI_RDN和MIPI_RDP,有几对这样的pin脚,则说明是几条lane,同一颗sensor由于register
setting不同,输出的信号有可能是2 lane或者4lane等。

1.MIPI_RDN0和MIPI_RDP0:用于数据传输

2.MIPI_RDN1和MIPI_RDP1:用于数据传输

因此是2lane的

另外

MIPI_RCN和MIPI_RCP:时钟信号

图中漏标

图中漏标了一个VIO18_PMU:用于拉高。