4 CMOS Sensor接口

一个CMOS sensor 至少会有两个接口,一个控制接口用于与MCU通信接受配置参数,一个数据接口用于输出像素数据。下图是一个实际sensor的框图。


v2-8c73b5f6173e3af792cb5621f3b081f1_1440w.jpg
The block diagram of the KODAK KAC-0310 image sensor illustrates the features available on chip. These include a correlated double sampler (CDS), and frame rate clamp (FRC), and A/D converter (ADC), and post A/D conversion digital logic (Post ADC).



下面时一款OVsensor的框图,它的特点是自带AWB和AEC算法,可以省去后端ISP的成本。


v2-0b794077853528d12c0f7054780d992a_1440w.jpg



下面时一款19MP CMOS sensor的框图,使用SPI控制接口和16-lane LVDS数据端口。


v2-0209fbd1d2071cb2f3d2a1086e6c24b4_1440w.jpg


4.1 控制接口

目前主流的CMOS sensor多使用I2C串行总线接收主控MCU发来的的寄存器读写命令,I2C总线的最大时钟频率是400kHz。

I2C总线是在SCLK为高电平的中间点对数据信号SDAT进行采样,因此数据信号需要在SCLK为低电平期间完成变化。


v2-e763fe29ea30a16bda36267322ce85ec_1440w.jpg


I2C Read


v2-6e3b5823d9b823d18681e865abec5189_1440w.jpg


I2C Write


v2-bd87dc9f673b2ec9442be71b6724c938_1440w.jpg


4.2 数据接口

早期的sensor常采用DVP等并口方式传输图像数据。随着sensor分辨率不断增加,体积不断缩小,并口的局限性越来越明显,难以满足带宽、体积、功耗等指标要求,所以目前主流的CMOS sensor已转为使用基于高速串行总线的MIPI接口,尤其是500万像素以上的sensor几乎全部采用MIPI接口。


v2-59eb959f6b42c28d2406366f871c5745_1440w.jpg


在camera领域人们所说的MIPI接口一般是指MIPI CSI-2规范,该规范使用长、短两种封包格式,其中长包用来传输图像数据,短包用来传输HSYNC,VSYNC等控制信号。

MIPI 的物理层协议主要采用DPHY,目前有1.0,1.2,2.1等几个版本。DPHY v1.2版本支持1.5Gbps传输速率,在采取deskew校准的条件下最大支持2.5Gbps传输速率。

MIPI采用DDR (Double Data Rate) 的采样方法,即一个始终周期内对数据信号进行两次采样,上升沿和下降沿各一次,如下图所示。这样的好处是相同时钟频率下数据带宽翻倍,或者说数据带宽相同的条件下时钟频率降至一半,有利于减少电磁辐射。


v2-e16f9b748097c795eee528cd03a1d438_1440w.jpg


MIPI DPHY的数据带宽需要略大于sensor的数据带宽才能保证正常工作,而 DPHY 的数据带宽取决与DPHY的时钟频率,所以需要根据sensor数据带宽计算DPHY的时钟频率。

以1080P@25fps的应用场景为例,sensor 实际输出16bit的RAW数据,则数据带宽的最低需求是

1920x1080*25*16=829.44Mbps

当DPHY数据带宽大于850Mbps时可以满足sensor接入要求。

DPHY v1.2 版本支持1.5Gbps/lane,所以至少有两种接入方法可以满足要求

  1. 接入1个lane,时钟频率425MHz,数据速率850Mbps;

  2. 接入2个lane,共享同一时钟,时钟频率225MHz,数据速率900Mbps。

关于MIPI的更多细节请参考本专栏的主题文章

4.3 帧结构

Sensor的实际像点数量通常比标准的图像分辨率(如2048x1536,1920x1080等)要大一些,多出来的像点主要有两种作用,

  1. 黑像素,即dark pixel,像点上方覆盖的是不透光的金属,相当于零输入的情况,用于检测像素的暗电流水平

  2. 滤波像素,即filter pixel,很多ISP算法会使用3x3或5x5大小的滤波窗口,因此需要在输出分辨率的基础上增加若干行、列使滤波窗口内全是有效像素。


v2-d20a3e5d2b1abcee89e039d75ee78d67_1440w.jpg


Sensor 的输出信号中除了像素数据之外,还需要一些控制信号用于时间同步。每一帧开始时会有一个FrameStart 同步信号,在一帧内会用HSYNC信号指示哪些时钟周期携带了有效像素,以及会用VSYNC信号指示哪些行中携带了有效像素。未携带有效像素的时钟周期称为消隐周期,又分为水平消隐(horizontal blanking)和垂直消隐(vertical blanking),如下图所示。


v2-c5ca56fb68721bb8943aaeb087201f1c_1440w.jpg
v2-fa6dd1f222f5c6fe9ee2f7e5ac14dc75_1440w.jpg


以上图为例,sensor输出的每一行由以下单元组成


v2-281468d1e015d1efe2e81a7880fd54d2_1440w.png