对于图像分辨率越来越高的的需求,正在推动现有主机中处理器到摄像头的传感器接口的带宽容量发展。然而常见的并行接口难以扩展,需要很多相互连接,并消耗相对较大的功率。这些并行接口互相不兼容,当使用不同厂商的设备在一起工作时就会产生问题,同时会提高系统成本,并降低系统可靠性。
CSI-2的出现为移动行业提供了一个标准的、可扩展的、低功耗的、高速的、经济的,同时支持各种移动设备成像解决方案的接口。
目录
一、简介
什么是MIPI?
什么是D-PHY?
二、CSI-2基本架构
为什么要用差分信号?
为什么CSI-2比DVP更适合Chip-to-Chip级的连接?
DVP概述
DVP Interface
为什么CSI-2比DVP更适合Chip-to-Chip级的连接?
三、CSI-2层定义
Application Layer
Protocol Layer
(1)Pixel/Byte Packing/Unpacking Layer
(2)Low Level Protocol(LLP)
(3)Lane Management
PHY Layer
人们对于图像分辨率越来越高的的需求,正在推动现有主机中处理器到摄像头的传感器接口的带宽容量发展。然而常见的并行接口难以扩展,需要很多相互连接,并消耗相对较大的功率。这些并行接口互相不兼容,当使用不同厂商的设备在一起工作时就会产生问题,同时会提高系统成本,并降低系统可靠性。在这种情况下,就诞生了MIPI。
MIPI (Mobile Industry Processor Interface) 联盟是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟组织,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。MIPI并不是一个单一的接口或协议,而是包含了一套协议和标准。
MIPI联盟下面有不同的工作组,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风 /喇叭接口SLIMbus等。统一接口标准的好处是手机厂商根据需要可以从市面上灵活选择不同的芯片和模组,更改设计和功能时更加快捷方便。
在这其中,比较重要的两个接口标准:
CSI:camera serial interface。相机端的高速串行接口。
DSI:display serial interface 。显示端的高速串行接口。
CSI-2的出现为移动行业提供了一个标准的、可扩展的、低功耗的、高速的、经济的,同时支持各种移动设备成像解决方案的接口。CSI和DSI这两个协议共用一种物理层协议D-PHY。
D-PHY是MIPI 协议中的一项,D-PHY提供了对DSI 和CSI在物理层面上的定义,其中PHY即表示物理层。至于D的意思则是因为D-PHY的最初版本的设计目标是达到500Mbits/s,而D在罗马数字中表示500。
D-PHY是一种高速、低功耗的源同步物理层,采用高功效设计,适合功耗大的电池供电设备使用。D-PHY中同时包含了有助于实现高功效的高速模块和低功耗模块。载荷数据(image data)使用高速模块,控制和状态信息的发送(在sensor / display端和应用处理器之间)使用的是低功耗模块(采用低频信号)。它具有在单个数据包脉冲中发送高速和低功耗数据的能力。低功耗模块有助于节省功耗,高速模块则有助于实现高清晰度照片质量数据信号要求的较高带宽。
下图显示了CSI-2发送端和接收端之间的连接,通常是一个相机模块和一个接收器模块:
其中,控制接口(control interface,CCI)是一种兼容I2C标准的双向控制接口。Data lane的数量可以是1到4。
值得注意的是,包括时钟信号在内的信号都采用了差分信号。
先看一下差分信号传输的定义:
差分信号传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差值来判断发送端发送的逻辑状态。在电路板上,差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。
差分信号的主要优点在于,和单端信号相比,差分信号可以大幅度提高信号传输过程中的抗干扰能力,并减少对外界的干扰。尤其是对于PCB上的信号拉的距离比较远的时候(例如到cm级别),以时钟信号为例,如果时钟达到一定速率或者电平不够高,可能会产生一些jitter或者screw,导致信号偏移和电平不稳定,进而导致接收方采集有问题。差分信号则是发送两个相反的电平,取数据是取差值,能够把不稳定值抵消,抗干扰性更强,能达到的时钟速率更高。
不过,差分信号也存在缺点,尤其是要多走一根线带来的面积增加,布线的时候对两根线的对称性要求很高,以及测试过程也更加繁琐。
首先了解一下DVP的定义:
DVP(Digital Video Port) 是传统的sensor输出接口,采用并行输出方式,数据端口的宽度为8 ~ 32,是CMOS电平信号,通常包含时钟、Vsync、Hsync、Valid和数据端口。
DVP连接示意图:
- PCLK:pixel clock ,像素时钟,每个时钟对应一个像素数据,最大速率为96MHz
- HSYNC:horizonal synchronization,行同步信号
- VSYNC:vertical synchronization,帧同步信号
- DATA:像素数据或者视频数据,具体位宽要看ISP是否支持
- XCLK:或者MCLK,ISP芯片输出给驱动sensor的时钟
- SCL,SDA:i2C用来读写sensor的寄存器,用来配置sensor
从图中可以看到,在Vsync信号拉高后进入Vblank_Back_Porch,这部分结束后Hsync信号拉高,之后进入Hblank_BP。当Hblank_BP结束后开始发送一行的数据,Valid拉起。当数据结束后Valid拉低,进入Hblank_FP。当最后一行结束之后,在Hblank_FP结束后FE(frame end)信号拉起,进入Vblank_Front_Porch,等待下一次的Vsync。
从架构上来说,原因一般有四点:
1. CSI-2更加的标准化,认可度更高
2. CSI-2可以支持更大的带宽
3. CSI-2支持传输更多样的数据,例如除了图像数据之外还可以传输一些配置信息或者其他信息(例如BLS等)
4. CSI-2布线更少
对于csi来说没有sync信号,也没有valid信号,传输数据通过内部的一些解包协议完成。从物理层面来说只包含clock和data。
下图显示了CSI-2中使用的概念层结构:
该层用来指定数据流中包含的数据的高级编码和解释。CSI-2规范描述了像素值到byte的映射。
协议层由多个部分组成,CSI-2协议使用主机处理器上的单个接口支持多个数据流。协议层指定如何标记和交错多个数据流,以便每个数据流可以适当地重建。协议层包括:
CSI-2支持不同像素格式的图像应用程序,从每像素6位到24位不等。
- 在发送端中,该层在将数据发送到低级协议层之前,会将来自应用层的像素打包成字节。(pixel to byte)
- 在接收层中,该层在将数据发送到应用层之前,会将来自低级协议层的字节解包为像素。(byte to pixel)
每像素8位的数据在这一层传输时保持不变。总结来说,这一层TX端会把pixel按照byte的格式进行拆分,RX端会将接收到的byte还原为pixel。所以对于MIPI来说最小单位是byte,一个MIPI包的大小一定是byte的整数倍。
Low Level Protocol建立了bit级和byte级的同步,这种同步给传输开始(SoT)和传输结束(EoT)之间的串行数据使用,以及传递到下一层的数据使用。LLP的最小数据粒度为一个字节。LLP还包括了对于byte内部每一位数据赋值的解释。
CSI-2的lane可扩展性,可以提高性能。lane的数量可以是1到4,取决于带宽的需要。在发送端,接口会将输出数据流会分给不同的lane,在接收端接口会收集各个lane中的byte并合并成推荐的数据流以恢复原始的数据流sequence。
PHY层指定传输介质(即电导体),指定输入/输出电路和从串行位流中捕获“1”和“0”的时钟机制。该部分规范记录了传输介质的特性、信令的电气参数以及时钟和数据通道之间的时序关系。同时指定了传输开始(SoT)和传输结束(EoT)的信号机制,以及可以在发送和接收物理设备之间传递的其他“带外”信息。位级和字节级同步机制是PHY的一部分。