做为一个鸡冻工程师,呸,打错了,是驱动工程师,最基本的硬件基础知识你必须得懂吧。html
举个栗子【敲黑板,重点来了啊】ide
1.你要点亮Camera,你得知道你用的是什么接口的,是MIPI的仍是Parallel的?性能
2.数据传输有哪些方式?3d
3.Camera 的成像原理是什么?调试
等等code
说点题外话orm
1.做为一个小白,我为啥要写一个专题吗?cdn
我想,htm
一来是记录本身的成长过程吧,记录看过的资料,作了什么思考。blog
二来是激励本身不断前行吧。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岁以后,我是否能立业,是否依旧迷茫!
总之,不管如何,咱们天天都要向前走,即便这个步子很小,但至少我一往无前了!
废话少说,本篇文章知识点
景物经过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,而后转为模拟的电信号,通过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再经过 IO 接口传输到 CPU 中处理,经过 LCD 就能够看到图像了
图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。
目前的 SENSOR 类型有两种:
1.CCD(Charge Couple Device),电荷耦合器件,它是目前高像素类 sensor 中比较成熟的成像器件,是以一行为单位的电流信号。
2.CMOS(Complementary Metal Oxide Semiconductor),互补金属氧化物半导体。CMOS的信号是以点为单位的电荷信号,更为敏感,速度也更快,更为省电
ISP 的性能是决定影像流畅的关键,JPEG encoder 的性能也是关键指标之一。而 JPEG encoder 又分为硬件 JPEG 压缩方式,和软件 RGB 压缩方式。
DSP 控制芯片的做用是:将感光芯片获取的数据及时快速地传到 baseband 中并刷新感光芯片,所以控制芯片的好坏,直接决定画面品质(好比色彩饱和度、清晰度)与流畅度。
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
简单说来,Camera的接口分为并行和串行两种方式,而目前MTK平台主要支持的串行方式为mipi接口,
Parallel接口和mipi接口的介绍能够参考下图
虽然硬件接口有Parallel接口和mipi接口,实际上MIPI是主流,基本已经看不到Parallel的身影了! 后面咱们会详细讲解MIPI接口的硬件原理图!
咱们这的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,须要配置正确,叫作接到高八位或者低八位,接错了可能产生以下现象
f) MCLK
BB提供给Sensor的外部clock
g) PCLK
Parallel接口的Sensor输出的clock,该clock变化一次,data更新一次
h) mipi 信号
mipi信号包括mipi clock和mipi data,该信号是高速信号,用来传输mipi数据包
(以最近作的TIMOVI_S9016为例子)
camera包含的三路电压为模拟电压(VCAMA),数字电压(VCAMD),IO口电压(VCAMIO)
a) VCAMD 就是 DVDD 数字供电,主要给 ISP 供电
b) VCAM_IO 就是 VDDIO 数字 IO 电源主要给 I2C 部分供电;
c) VCAMA 就是 AVDD 模拟供电,主要给感光区和 ADC 部分供电;
d) VCAM_AF 是对 Camera 自动对焦马达的供电
a) Rest脚:用于复位和初始化
b) PDN脚:Camera工做状态控制:1.normol work(工做) 2.standby(待机)
c)Mlck脚: 即MasterClock脚,由BB提供给Sensor的外部clock
BB与Sensor端经过I2C来通讯(读写寄存器),包括SCL(I2C Clock) SDA(I2C Data)信号
mipi信号包括mipi clock和mipi data,该信号是高速信号,用来传输mipi数据包。
1.MIPI_RDN0和MIPI_RDP0:用于数据传输
2.MIPI_RDN1和MIPI_RDP1:用于数据传输
所以是2lane的
另外
MIPI_RCN和MIPI_RCP:时钟信号
图中漏标
图中漏标了一个VIO18_PMU:用于拉高。
以上是我看资料过程当中,以为应该掌握的Camera硬件基础知识!
参考文档
1.MTK 资料