【Camera专题】你应该了解的Camera HW-硬件知识

4,785 阅读6分钟

一.吐槽

作为一个鸡冻工程师,呸,打错了,是驱动工程师,最基本的硬件基础知识你必须得懂吧。

举个栗子【敲黑板,重点来了啊】

1.你要点亮Camera,你得知道你用的是什么接口的,是MIPI的还是Parallel的?

2.数据传输有哪些方式?

3.Camera 的成像原理是什么?

等等

说点题外话

1.作为一个小白,我为啥要写一个专题吗?

我想,

一来是记录自己的成长过程吧,记录看过的资料,做了什么思考。

二来是激励自己不断前行吧。Just keep moving!

如果有天我不幸真的成为了Camera【砖家】,那么这些就是我自学的成长历程,也许对后人有一定的帮助;

如果我还一直是个咸鱼,那么这个专题就是我努力而不得的见证。

我很喜欢的一句话: If you can’t fly, then run; if you can’t run, then walk; if you can’t walk, then crawl, but whatever you do, you have to keep moving forward.

我不知道30岁之后,我是否能立业,是否依旧迷茫!

总之,无论如何,我们每天都要向前走,即使这个步子很小,但至少我勇往直前了!

废话少说,本篇文章知识点

二.知识点

1.Camera的成像原理

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

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

图像传感器(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接口的介绍可以参考下图

图2
图3

虽然硬件接口有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接到的是Data0~Data7还是Data2~Data9,需要配置正确,叫做接到高八位或者低八位,接错了可能产生如下现象

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

TIMOVI硬件原理图
我第一次接触原理图的时候,也是一脸懵逼,心里就在想,这他妈什么鬼,密密麻麻那么多线,后来看多了,也就得心应手了。

原理图分析(引脚作用)

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:用于拉高。

路漫漫其修远兮,吾将上下而求索。

以上是我看资料过程中,觉得应该掌握的Camera硬件基础知识!

参考文档

1.MTK 资料

2.MTK平台camera(摄像头)调试教程要点