在嵌入式视觉应用中,MIPI CSI-2接口是理想之选吗?

近年来,市面上已涌现出越来越多的嵌入式视觉应用,它们是由嵌入式计算板和相机模块组成的系统。与其他系统相比,这类系统能以更经济、更有效的方式管理视觉任务。

相机接口在上述嵌入式视觉系统的设置中扮演着关键作用,因为它承担着将相机模块与主机连接在一起的重任。

即插即用的USB 3.0、LVDS(Low Voltage Differential Signaling,低电压差分信号)等接口就适用于嵌入式视觉系统。但在很多情况中,选用MIPI CSI-2接口才是最合适的选择。

本文将介绍在嵌入式视觉领域中,使用此重要接口将带来何种优势,并阐述了它所具备的功能。

1. MIPI是什么?

MIPI联盟的全称为Mobile Industry Processor Interface Alliance(移动产业处理器接口联盟),它是由移动通讯和娱乐电子产品行业中的应用或硬件制造商组建而成的行业联盟。

其成立的目的是对移动处理器及外设零部件(如位置芯片、相机、输入接口、显示等零部件)之间的所有重要接口进行标准化。

此举能够让移动外设零部件的制造商轻松调整其硬件产品,以兼容不同类型的处理器,为处理器制造商创造更大批潜在的兼容外设零部件,让双方均可从中获益,并带来更具经济效益的开发及生产流程。

MIPI标准包含DSI(Display Serial Interface,显示器串行接口)规范和CSI(Camera Serial Interface,相机串行接口),下面将对两者进行详尽的描述。

2. 如何界定MIPI CSI-2?
CSI规范在市面上投入使用已有数年之久,目前已经研发出第三代技术,即CSI-3。与历代标准相比,虽然CSI-3具备毋庸置疑的优势(如其最大带宽远高于历代技术),但因缺乏硬件支持,CSI-3在业内的发展大为受限。

目前获得广泛应用的CSI-2标准可以完全满足当前的硬件要求,因此这可能也是限制CSI-3发展的另一因素。

MIPI CSI-2标准中描述了信号传输(D-PHY或C-PHY)的物理层以及用于图像数据传输的协议,该协议是以CSI-2为基础拟定的。该标准还指定了一种基于I2C总线的相机配置接口,即CCI(Camera Control Interface,相机控制接口)。

2.1. 物理层:C-PHY与D-PHY
借助MIPI CSI-2标准,图像数据可以按照顺序通过单个通道,这将采用两个或四个通道来连接成像芯片或相机模块。其中,最大可用带宽与通道的数量成线性比例关系,也就是说,使用四个通道时的可用带宽是使用两个通道时的2倍。

这个标准起源于智能手机领域,手机后置的高分辨率相机是与四个通道相连接的,而前置的低分辨率相机只采用两个通道。因此,几乎所有相应的片上处理器都会配备一个双通道CSI-2接口以及一个四通道CSI-2接口。

通过C-PHY进行传输的物理图像数据:

在C-PHY中,一个通道由三个导体组成,可实现带有嵌入式时钟的3相编码编号。根据最新规范的说明,在此情况下每个通道的理论传输速率可达5.7 GBit/s。

通过D-PHY进行传输的物理图像数据:

与C-PHY相比,D-PHY的结构更为简单,其数据流是通过两个导体进行差分传输的,这点与LVDS相似,并且所有通道可以共享一个外部时钟线。

由于其结构较为简单,因此该设置中的每个通道的数据传输速率较低,最高仅支持2.5 GBit/s。尽管D-PHY的带宽较低(但依旧能完全满足绝大部分应用的要求),依然颇受市场欢迎。

D-PHY和C-PHY也可以在对应的硬件中共存,例如单个芯片可利用其中任一技术进行运作。

相机控制接口(CCI):

CSI-2还提供一项标准协议,它能以CCI(相机控制接口)的方式对芯片/相机模块进行配置。

就物理层面而言,CCI以I2C总线为基础,用户一般可通过任意I2C接口来对相机模块进行配置,目前几乎所有SoC上均会提供多个I2C接口。

但是,芯片/相机模块领域以及SoC本身都缺乏一致的标准(部分SoC有用于配置操作的专用I2C/CCI接口),并且,许多芯片/相机模块并非通过标准化的CCI进行配置,而需采用各个制造商自己的专利技术来实现。

图1:此处的C-PHY和D-PHY各自配备两个通道与D-PHY相比,C-PHY可让每个通道的带宽提升至2倍以上

图1:此处的C-PHY和D-PHY各自配备两个通道与D-PHY相比,C-PHY可让每个通道的带宽提升至2倍以上

2.2. CSI-2协议层
CSI-2是一种数据包(packet)导向型协议,因此,规范中特别描述了数据包格式。

 图2:CSI-2数据包格式

图2:CSI-2数据包格式

另外,规范中也指定了一般应用能正常使用的像素格式(如RGB、YUV、RAW和JPEG等)。然而,移动处理器的MIPI CSI-2驱动程序一般仅支持少数几种像素格式(有时相关格式往往都是工业图像处理领域中不常见的像素格式)。

2.3. MIPI CSI-2与工业标准的比较(以GenICam等标准为例)
MIPI CSI-2更大程度上是对“导线上标准”的一种描述,因此能够与通过千兆网GigE进行图像数据传输的GigEVision规范相比较。

与图像处理市场常用的GenICam系列标准不同的是,MIPI CSI-2缺乏标准化的软件堆栈和标准化的编程界面(应用程序编程界面,即API,如GenAPI所呈现的那样),以及标准化的图像数据接口(如GenTL)。

使用MIPI CSI-2时,图像数据通常是通过Video4Linux (V4L)进行传输,但是此方式既没有进行标准化,也尚未普遍适用。

3. MIPI CSI-2具备的优点
由于移动市场庞大,移动处理器产量极高,再加上市场规模和竞争压力,因此在短期内催生了性能效率不断优化的处理器。

如今,即便是价格亲民的低端处理器,也会在芯片上配备两个MIPI CSI-2接口,可分别提供双通道或四个通道。

许多过去只生产移动处理器的制造商(如高通、瑞芯微、三星)都在图像处理领域探索出了一片新天地,现在已能小规模地为工业应用长期供应相关产品(有时是通过模块合作伙伴来进行布局)。

与此同时,目前越来越多的常见工业嵌入式处理器(如NXP的i.MX系列、TI的部分Sitara SoC、NVIDIA TK1、TX1、TX2、Intel Atom SoC等)均开始配备MIPI CSI-2接口,因此在图像处理领域中,这个新相机接口标准的应用可谓是大势所趋。

CSI-2可实现外观纤薄、价格亲民的机器视觉设计,因而有望采用带宽更高的芯片或相机模块。但是价格实惠的处理器(并且其价格还在进一步下调)并不是导致单位成本下降的唯一因素。

由于处理器种类繁多,开发者可以根据应用来自由选择理想的系统设计,比如:降低嵌入式系统的能源消耗。

从技术层面而言,利用MIPI CSI-2可以实现精巧的设计尺寸,因而可以通过扁平柔性线材进行板对板连接。如果不采用这种方式,就只能使用基于LVDS的连接(USB 3.0插头占据的空间过大,因此不会考虑采用USB 3.0接口)。

图3:MIPI CSI-2接口

图3:MIPI CSI-2接口

借助MIPI CSI-2接口,图像数据可以直接从相机模块或芯片传输至处理器,也无需安装相应的硬件(如微处理器等)。将这些利好因素综合起来,即可开发出更加精巧的嵌入式系统。

4. MIPI CSI-2的潜在难题
与高效的MIPI CSI-2相机接口同样吸引人的是这项标准几乎不会产生额外的成本,不过在开发过程中还需要充分考虑以下难题:

■ 线材长度

物理图像数据传输技术(即D-PHY)仅限使用长度较短的线材,通常不能超过20 cm。对于移动应用而言(如智能手机),这一限制不会带来任何问题。但在工业应用中,这种限制可能导致此技术最终无法适用。

■ 插头

另一个不足之处是MIPI联盟并未对MIPI CSI-2的插头进行标准化。这意味着芯片/相机模块必须单独进行连接,且需采用专利技术。

■ 驱动程序支持

由于缺乏标准化的驱动程序和软件堆栈,因而需要根据特定SoC的CSI-2驱动程序以及通过I2C专利驱动程序来单独对芯片或相机模块进行调整,以作为Video4Linux的子设备来使用。

换言之,在选择一款设计用于SoC的芯片/相机模块时,须确保相关模块也具备相应的I2C驱动程序。不过,这也会大大局限了芯片/相机模块和SoC的选择。

■ 像素格式

如上所述,大部分CSI-2驱动程序支持的像素格式非常有限,并且不一定符合图像处理领域要求的像素格式。

■ 相机API

在图像处理领域中,GenICam系列标准备受市场欢迎。GenICam让相机API得以实现标准化,确保用户可以使用全部的相机功能。

规范中也对相机功能的命名进行了标准化,无需区分不同的制造商,这让用户能在更改相机型号甚至接口技术(如用USB 3.0 Vision替代GigEVision)时,不必对程序代码进行重大变更。

相反,当一个相机模块或SoC迁移至另一相机模块或SoC时,如果缺乏标准化的相机功能命名和标准化的API,在重复利用现有代码时就会困难重重。

其实只要有充足的经费,所有这些难题都能被攻克,但这也会增加研发和制造的成本(如运用更长的线材)。

各家工业相机制造商也正在努力为基于MIPI CSI-2的相机解决方案研发GenICam接口,这一技术不但可以提供所有的相机功能和像素格式,同时还能支持更长的线材(一米以上)。

5. 总结
MIPI CSI-2接口可适用于嵌入式视觉系统,其具有成本效益的精益架构正是嵌入式视觉系统的理想之选。但是在相关相机模块的集成方面,尤其是软件层面,还需投入更多的努力。

用户可能需要根据应用来调整驱动程序和图像数据接口,另外还需要考虑到其他方面的限制,例如硬件导致的问题。

为确保能可靠地估算开发的工作量,系统开发商必须充分考虑驱动程序、潜在的现有相机软件及其软件接口的适用范围和兼容性。

如果能在该方面找到可用的合适技术,那就能有望开发出高效的视觉系统,进而获得性能卓越的最终产品。

本文转载自:德国BASLER

推荐阅读