1.1 mipi-csi概念#
DSI (Display serial interface)定义了一个位于处理器和显示模组之间的高速串行接口,对应MIPI-TX.
CSI(Camera Serial Interface)定义了一个位于处理器和摄像模组之间的高速串行接口,也就是接下来要讲的MIPI-RX。
MIPI Rx (Mobile Industry Processor Interface Receiver) 模塊主要功能為接收由 CMOS sensor 所傳送的視頻數據, 支持 MIPI D-PHY、 sub-LVDS (Low-Voltage Differential Signal)、 HiSPi (High-Speed Serial Pixel Interface) 等不同的串行視頻信號輸入, 並將其處理轉化為內部視頻時序,傳遞給下一級的視頻處理模塊 (ISP)。MIPI Rx 模塊中可細分為 PHY 和 Controller 兩部分,其中 PHY 模塊集成了模擬和數字兩個部分,主要將串行信號轉換為並行信號,而 Controller 模塊則負責解碼不同的視頻數據格式,傳送給後端的視頻處理模塊 (ISP)。功能框圖及在系統中的位置如下图所示:
1.2 MIPI vs DVP#
DVP:
并口传输数据需要帧同步信号(Vsync)、行同步信号(Hsync)和八条数据线,共十根数据线, DVP 接口在信号完整性方面受限制,速率也受限制。
MIPI:
而 MIPI 传输只需要clk lane和data lane. 对比MIPI 接口比 DVP 的接口信号线少,由于是低压差分信号,产生的干扰小,抗干扰能力也强。
1.3 CSI规格#
可同時支持 2 路 sensor 輸入(2组D-PHY, 每组5对差分线(1C4D))
• sensor 0 最大支持 4K2K @60fps HDR or @30fps 線性輸入
• sensor 1 最大支持 3M(2304x1296) @60fps HDR or linear 輸入
• 單路最多支持 4-Lane MIPI D-PHY 接口,最大支持 2.5Gbps/Lane
• 單路最多支持 4-Lane sub-LVDS/ HiSPi 接口,最大支持 1.5Gbps/Lane
• 支持 RAW8/ RAW10/ RAW12 數據類型的解析
• 支持 YUV422 8-bit/ YUV422 10-bit 數據類型的解析
• 最多支持 2 幀 WDR,支持多種 WDR 時序
• 支持 sub-LVDS/ HiSPi 模式像素/同步碼大小端配置
• 支持 Lane 數和 Lane 順序可配置
MIPI Rx 的帶寬有兩部分限制: PHY 的接口數據率和內部處理速度。
輸入接口最大支持 2.5Gbps/Lane,內部處理速度最大為 600M*1pixels/s(MAC clk)
1.4 CSI接口類型#
Common modevoltage | Differential modevoltage | Maximum clockfrequency | Maximum datarate per lane |
---|---|---|---|
MIPI DPHY 200mV | 200mV | 1.25GHz | 2.5Gbps |
Sub-LVDS 900mV | 150mV | 750MHz | 1.5Gbps |
HiSPi(HiVCM) 900mV | 280mV | 750MHz | 1.5Gbps |
HiSPi(SLVDS) 200mV | 200mV | 750MHz | 1.5Gbps |
1.5 CSI 硬件引脚及接线#
常用的电脑摄像头是USB接口, 主流的智能手机摄像头是MIPI接口, 下面讲解常用的智能手机 camera MIPI接口。
MIPI CSI一般会有1对I2C通信引脚,1对MIPI差分时钟引脚和1~4对MIPI差分数据信号引脚, 也就是1CD4(1 clk lane & 4 data lane)。
1.5.1 mipi sensor引脚描述:#
信号名 | 引脚类型 | 描述 |
---|---|---|
DOVDD | 电源 | 1.8V IO 电源 |
DVDD | 电源 | 1.2V 数字电源 |
AVDD | 电源 | 2.8V 模拟电源 |
SCL | 输入 | I2C 时钟线 |
SDA | 输入/输出 | I2C 数据线(open drain) |
SID0 | 输入 | I2C Device ID 的选择 0 (内置下拉电阻,默认Device ID 是 7’h30) |
SID1 | 输入 | I2C Device ID 的选择 1 (内置下拉电阻,默认Device ID 是 7’h30) |
XSHUTDN (RST) | 输入 | 复位信号输入(内置上拉电阻,低电位有效) |
EXTCLK | 输入 | 时钟输入 |
PWDNB | 输入 | Power Down 信号输入(内置上拉电阻, 低电位有效) |
D<3>(MD3P) | 输出 | DVP 输出 bit[3]/MIPI 数据 3 正极信号 |
D<5>(MD1P) | 输出 | DVP 输出 bit[5]/MIPI 数据 1 正极信号 |
D<7>(MCP) | 输出 | DVP 输出 bit[7]/MIPI 时钟正极信号 |
D<8>(MD0P) | 输出 | DVP 输出 bit[8]/MIPI 数据 0 正极信号 |
D<10>(MD2P) | 输出 | DVP 输出 bit[10]/MIPI 数据 2 正极信号 |
D<4>(MD3N) | 输出 | DVP 输出 bit[4]/MIPI 数据 3 负极信号 |
D<6>(MD1N) | 输出 | DVP 输出 bit[6]/MIPI 数据 1 负极信号 |
PCLK(MCN) | 输出 | DVP 输出时钟/MIPI 时钟负极信号 |
D<9>(MD0N) | 输出 | DVP 输出 bit[9]/MIPI 数据 0 负极信号 |
D<11>(MD2N) | 输出 | DVP 输出 bit[11]/MIPI 数据 2 负极信号 |
1.5.2 电路图线路结构#
一般mipi接口的sensor支持4 lane,2 lane,1 lane等数据传输方式。上图硬件上的连接了1组clk lane, 4组data lane。这幅图只连接了i2c和lane总线,还有EXTCLK ,PWDN, RST, VDD等引脚的连线需要外部soc去提供。这里就需要驱动人员会看原理图,知道lane id和pn swap的接线。clk lane, data lane等。
1.6 差分信号介绍#
我们用一个方法对差分信号做一下比喻,差分信号就好比是跷跷板上的两个人,当一个人被跷上去的时候,另一个人被跷下来了 - 但是他们的平均位置是不变的。继续跷跷板的类推,正值可以表示左边的人比右边的人高,而负值表示右边的人比左边的人高。0 表示两个人都是同一水平。
下图,应用到电学上,这两个跷跷板用一对标识为V+和V-的导线来表示。当V+ > V-时,信号定义成正极信号,V+ < V-时,信号定义成负极信号。 差分对的平均电压设置成 2.5V。
1.7 MIPI sensor的 power on时序#
Sony imx334:
SC4210:
这里列举了sony imx334和格科微gc2093, sc4210的上电时序,现在市面上大部分的mipi接口sensor都可以让VDD,PWDN, RST,EXTCLK讯号同时发出,然后过一段时间后就可以进行I2c通信了。
在HW交接到SW后,要确保最基本的power on时序是ok的,最好是用示波器对VDD,PWDN, RST,EXTCLK,I2c等波形进行测量无误后再porting到SW手上。