目录

  • 前言
  • DVP(并口)
  • LVDS
  • MIPI(MIPI-CSI2)
  • 总结


前言

摄像头是一个独立的芯片,和主控芯片是弧线独立的,两者通过接口进行交互,交互的信息有控制信号和数据信号

控制信号常用I2C、SPI,I2C用的最多
数据信号常用的有MIPI、LVDS、HISPI、并口

本文主要介绍数据交互接口

DVP(并口)

以AR0130为例

android HIDL IBase接口的使用 hispi接口_信号线


控制信号通过I2C两根总线进行传递

时钟信号通过SENSOR_CLK传递,对AR0130来说它是输入线,对HI3518E来说是输出线
通过时钟控制同步异步是非常常见的,通过时钟控制,可以让从设备工作在主设备的CLOCK之下。
如果没有CLC,那么双方就是异步通信的。比如串口没有CLC,就是异步通信的;SPI就是同步通信的。
注意,这个SENSOR_CLK和I2C的CLC无关

数据引脚在图片右侧。
由于引脚是复用的,于是在VIU功能以外还被用作其他功能。(可以看到左边写的是MIPIxxxxx)。
可以看到数据通信线有12根,可以看出AR0130是一个12位数据并行口。采集到的图像信息就是通过这12根线传过来的
下面还有三根信号线。是对于AR0130是输出引脚,对于hi3518E是输入引脚。
这15根就是AR0130输出给hi3518E的。

VIU_HS、VIU_VS,是AR0130给HI3518E的,用于行同步和场同步。

  • SENSOR_CLK是HI3518E给AR0130,让AR0130内部CPU运行的时钟信号。
  • VIU_CLK是跟图像有关的时钟信号

以上就是以AR0130为例,介绍的并口sensor

为什么叫bin口?

数据线有多根并行的就叫并口,所有采用并口的sensor都是类似的。

下面看一下OV9712,它的数据线是从2-11,一共10根,10位并行口,大体和AR0130一致

android HIDL IBase接口的使用 hispi接口_信号线_02


并口传输的是CMOS电平信号(重点是非差分)

并口的sensor属于比较低端老旧的,新型高像素的都是MIPI/LVDS/HISPI等差分信号的

差分信号与单端信号

LVDS

Low Voltage Differential Signal(低电压差分信号)
电压很低,1v左右,消耗资源少,差分信号保证抗干扰能力。


LVDS的接口和并口的不太一样,没有I2C、CLK
接口由1组差分clock和若干组差分信号线组成,既然有CLK,那么LVDS就是同步信号

LVDS的控制信号和数据信号复用接口,CLK是用于同步。既然是复用的,LVDS的协议中也一定有区分控制信号和数据信号的方法。


LVDS主要用于视频传输的两个领域:

  • camera和主控——视频采集
  • LCD和主控——视频显示

视频采集和视频显示是互相可逆的过程,技术、难点也是类似的。


LVDS利用差分抗干扰能力,提升clock频率从而提升贷款,传输举例也更远

LVDS的时钟频率可以非常高,但是并口的不行,HI3518E手册中如下

android HIDL IBase接口的使用 hispi接口_信号线_03


频率越高干扰就严重,排线就不能太长,长了视频变形严重

由于LVDS频率可以很高的特点,即使LVDS只有两组信号线,那也可以比12线并口的传输速率高


LVDS本身支持多种设置,数据线组数不固定

数据线组数越多带宽(同时间传输的数据量)越大
clock频率越高带宽越大(牺牲抗干扰和距离)


并口和LVDS之间可以互转,但是需要专门的电平转换芯片,类似232和485。一般不会这么干,这样会明显增加成本

MIPI(MIPI-CSI2)

LVDS的sensor存在但是不是非常常用,一般MIPI接口的sensor会用的比较多

Mobile Industry Processor Interface(移动工业处理器接口)

MIPI是由ARM和一系列手机公司成立的联盟,目的是为了将手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性,增加兼容性

MIPI中,比较成熟的接口有DSI(显示器接口)和CSI(摄像头接口)。对于我个人而言,要研究的就是摄像头接口,业内常用的是CSI2

  • MIPI-CSI2是手机主控和外部摄像机连接的方式
  • MIPI-DSI2是手机主控和LCD屏幕连接的方式

    如图右上角所示

    如上图,
  • 应用层只关心数据怎么传输
  • 协议层关心数据传输遵守什么样的协议
    如这一帧是I帧还是P帧,大端还是小端,就在这里定。
    MIPI接口的协议层就定了1组差分CLOCK和1-4组差分信号线组成,而LVDS没有非常明确的规定,MIPI一定再1-4组之内
  • Lane管理,关心具体数据如何在1-4条差分信号线中分配
  • PHY Layer关心具体布线

MIPI和LVDS虽然都是差分对信号,但是不兼容,不能直接对接


相较于LVDS,MIPI的架构层次更分明,广泛应用再手机平板等领域中,可以认为MIPI是LVDS的升级版


MIPI的数据线组数越多带宽(同时间传输的数据量)越大
clock频率越高带宽越大(牺牲抗干扰和距离)


DVP(并口)和LVDS和MIPI,两两之间可以互转,但是需要专门的电平转换芯片。一般不会这么干,这样会明显增加成本

总结

  • 老旧的、低端的、数据量小的就用单端信号(DVP(并口))
  • 新的、高端的、数据量大的都用差分信号(LVSD、MIPI)

稍微复杂的通信协议,物理层、协议层、应用层都得对接才行
比如MIPI的架构就非常复杂,LVDS的层次就没那么多,他们就不能直接对接。
再比如USB、ethernet结构就非常复杂,如果双方的层次不能对上就无法直接对接
于是有些公司就会专门去出这样的电平转换芯片专门对接