过去几年里,嵌入式视觉应用大量涌现,包括从相对简单的智能视觉门铃到执行随机拾取和放置操作的复杂的工业机器人,再到能够在无序、地形不断变化的环境中导航的自主移动机器人(AMR)。快速采用嵌入式视觉技术的行业包括汽车、消费电子、医疗、机器人、安防 / 监控以及大量工业应用。

 

如今,嵌入式视觉正逐渐应用于人工智能(AI)和机器学习(ML)系统中,用来分析图像和视频流、检测 / 识别人和物体以及从看到的景象中提取信息,便于采取下一步行动(关于 AI、ANN、ML、DL 和 DNN 的常见问题 1)。

 

本文首先介绍了当今嵌入式视觉设计一些趋势。然后探讨了现场可编程逻辑门阵列(FPGA)在嵌入式视觉系统中的应用。最后讨论了使用莱迪思半导体的 CrossLink™ FPGA 创建嵌入式视觉系统。


嵌入式视觉的发展趋势
推动嵌入式视觉设计的主要趋势有:高分辨率和高带宽的需求持续增长,系统中视觉传感器和显示器的数量与日俱增,以及小尺寸和低功耗的要求不断涌现。此外,将人工智能(AI)和机器学习(ML)功能加入嵌入式系统也是大势所趋,尤其是添加到靠近视觉传感器的本地端。

 

嵌入式视觉系统的另一个趋势是接口标准的数量和种类不断增长。表 1 列出了一些最常见的接口类型。其中用于“模块内部”(inside the box)的标准(如设备内部)通常要求驱动几厘米到几十厘米大小的设备,而“模块之间”(box-to-box)的接口可能需要在几米到几百米甚至更大的设备间驱动视觉数据。

 

表 1:常见视频接口

 


PHY 这个术语是“物理层”的缩写,通常是在芯片上或者作为芯片(集成电路)实现的一种电子电路。PHY 用于实现开放系统互连(OSI)模型的物理层功能,无论计算或电信系统底层内部结构和技术如何,该模型都能对其通信功能进行标准化。

 


MIPI 简介
嵌入式视觉应用中 MIPI 的使用日益增多,尤其是 CSI-2(摄像头 / 传感器)和 DSI(显示屏)协议,两者均采用被称之为 D-PHY 的 PHY。在带宽和接口长度方面,MIPI 在位于 OpenLDI 和 eDP/DP(eDisplay Port 和 Display Port)之间。

 

MIPI 联盟是一家在全球拥有 250 名企业会员的国际组织。ARM、英特尔(Intel)、诺基亚(Nokia)、三星(Samsung)、意法半导体(STMicroelectronics)和德州仪器(Texas Instruments)于 2003 年创建 MIPI 联盟,彼时 MIPI 是“移动产业处理器接口”的英文首字母缩略词。然而,如今该组织的各类规范不仅适用于处理器互连,更能满足一台设备上全部接口需求,所以 MIPI 不仅仅是首字母缩略词,而是已经作为单独的名称使用。


为了了解更多有关 MIPI 流行的背景信息,我们不妨回顾一下 1990 年代中期个人计算机(PC)刚开始流行的时期(图 1)。当时的 PC 使用的接口是外设部件互连标准(PCI)和通用串行总线(USB)。这些低成本的 PCI 和 USB 技术随后被各类不同的产品采用。

 

图 1:PC 和智能手机出货量(资料来源:莱迪思半导体和行业分析师)

 

MIPI CSI-2 和 DSI-2 协议也是如此,它们最初用于智能手机。自从 2007 年发布首款 iPhone 以来,智能手机急速增长,远远超过 PC。这推动了规模经济,低成本的摄像头、显示屏和处理器组件开始涌现,它们开始广泛用于各类非智能手机应用和市场。(本文中的“处理器”可能是指 SoC 芯片、ASSP 和应用处理器等器件)

 

MIPI 采用的 D-PHY 接口(如图 2 所示)使用一个差分时钟和一到四个差分数据通道,支持的速度为 80 Mbps 到 2.5 Gbps。

 

图 2:MIPI D-PHY 接口

 

MIPI 接口支持两种运行模式:高速(HS)和低速(LP)。该接口在发送器和接收器之间主要是单向传输,但是在某些低速通信情况下,能够从接收器向发送器传输。


在嵌入式视觉设计中使用 FPGA
嵌入式视觉设计的一个重要特征是其架构通常需要不断调整以适应各种规范的变化,这就让 FPGA 成为实现这类设计的理想选择。

一个主要的考虑因素就是 ASIC/ASSP 和 FPGA 设计开发周期的差别,使用 FPGA 来实现设计(图 3),可加快产品上市(从而快速盈利)。

 

图 3:使用 FPGA 加速产品上市和盈利


中型 ASIC/ASSP 从设计到量产其开发周期要将近一年。此外,由于设计规范不断发生变化,期间还存在诸多风险(在嵌入式视觉设计中非常常见),再加之 ASIC/ASSP 的设计流程大多错综复杂,这就意味着某个流程出现耽搁,会对其他流程产生连锁的负面反应。

 

若采用 FPGA 实现设计,设计人员可采用经过市场检验的硬件,在现场重新配置,应对任何设计规范的变更。

 

从设计人员的角度来看,开发周期的最初阶段(即在抽象的 RTL 阶段捕获设计)都是相同的,其余步骤要么相似,要么所需时间和资源更少,要么根本不需要。因此使用 FPGA 的总体优势是可以在大约三分之一的开发时间内实现设备的正常工作。

 

从历史角度看,一些嵌入式系统的设计人员认为 FPGA 是大尺寸、高功耗的器件,仅仅用于数据中心、通信中心、医学成像以及军事等大型应用。

 

这些传统的 FPGA 通常有几十万 LUT,功率高达 50-100 W,封装尺寸可达 55 x 55 mm,通常配置散热片。然而还有一些专门实现特定功能的 FPGA 产品,专注于要求小尺寸和低功耗的应用。例如莱迪思半导体提供这类小尺寸(从 10 x 10 mm,功耗 1 W 到 1.4 x 1.4 mm,功耗仅为 1 mW)的 FPGA 产品,满足那些要求小尺寸和高能效应用的需求。

 

与小型 ASIC/ASSP 相比,这些功能导向的 FPGA 更容易快速开发、使用更灵活。此外,由于大多数通用 FPGA 旨在应用于工业和汽车等多个市场,它们通常都支持商用和工业温度环境。而 ASIC/ASSP 大多被开发用于消费电子产品,对此类温度环境的支持不太普遍。


CrossLink FPGA 简介
莱迪思半导体主要提供四种 FPGA 产品系列:ECP™、MachXO™、iCE™和 CrossLink™。ECP 系列包括了设计人员所一般认为的“传统” FPGA——主要针对互连和加速应用的通用器件。MachXO FPGA 具有数百个可编程输入 / 输出(I/O),非常适合需要 GPIO 扩展、接口桥接和电源管理功能的各类应用。iCE 系列是尺寸最小的超低功耗 FPGA,最小型号封装尺寸仅为 1.4 mm x 1.4 mm,提供 18 个 I/O。

 

尤其值得一提的是针对高速视频和传感器应用进行了优化的 CrossLink FPGA。CrossLink FPGA 通过硬核 PHY 增强了其传统的可编程架构,提供业界最快的 MIPI D-PHY 桥接解决方案,支持高达 12 Gbps 和 4K UHD 分辨率(图 4)。此外,CrossLink 器件提供 2.46 x 2.46 mm 的 WLCSP 小型封装和 0.4 mm、0.5 mm 和 0.65 mm 球间距的 BGA 封装。

 

图 4:用于嵌入式视觉的 CrossLink FPGA 包括硬核 MIPI D-PHY,优化性能和设计


CrossLink FPGA 提供两个 4 通道 MIPI D-PHY 收发器,每个 PHY 速率达 6 Gbps,还提供 15 个可编程源同步 I/O 对,通过 LVDS、SLVS200、subLVDS、LVCMOS 和 OpenLDI(OLDI)等接口标准实现摄像头和显示屏互连。此外,这些可编程 I/O 可实现每通道速率最高 1.2 Gbps 的“软 MIPI”接口,而 LVCMOS 可用于在本地实现并行 /RGB 接口。


应用案例
CrossLink FPGA 的应用包括传感器桥接、传感器复制、传感器聚合、显示屏桥接和分屏。这里的“桥接”是指将视频信号从一种接口标准转换为另一种。

 

在现有控制器上使用 MIPI 传感器和显示屏:一个典型的案例就是现有系统的 SoC、ASSP 或 AP 不支持 MIPI,但是设计人员希望在保留原有处理器(及代码)的同时对系统进行升级,新增更为高效、低功耗、基于 MIPI 的传感器和 / 或显示屏(图 5)。

 

图 5:使用 CrossLink FPGA 让现有的 SoC、ASSP、AP 兼容 MIPI 传感

 

器和 / 或显示屏
在现有传感器和显示屏上使用 MIPI 控制器:当设计人员的 SoC、ASSP、AP 支持 MIPI,但是又希望使用原本的非 MIPI 传感器和显示屏系统时,也会面临同样的问题。工业领域的许多图像传感器和显示屏都采用 LVDS、SUBLVDS 或并行接口。此外,许多传统的传感器采用的是全局快门而非卷帘快门。这就推动了对更为复杂的桥接解决方案的需求。

 

图 6:使用 CrossLink FPGA 让 MIPI 接口的 SoC、ASSP、AP 兼容现有的非 MIPI 传

 

感器 / 或显示屏
传感器数据复制:该应用的一个典型案例是,对安全性要求高的应用需要进行数据备份(如智能汽车),因此来自传感器的视频输入可能需要分成两个数据流,馈送到两个单独的处理器中(和许多其他接口标准一样,MIPI 是点对点的,因此不能将单个传感器直接连接多个处理器)。

 

这类应用的思路是,如果其中一个处理器发生故障,必须要有数据备份。此外,如果有多个传感器,每个传感器的数据流都可以被拆分并馈送到多个处理器。当然,传感器复制可与桥接功能结合使用。图 7 展示了一种可能的配置场景。

 

图 7:使用 CrossLink FPGA 在对安全性要求高的系统中实现传感器数据复制

 

显示器分屏:当我们需要获取由系统处理器生成的视频信号,并将该信号拆分连接到多个显示屏时,就需要用到显示器分屏的功能。它可以与桥接功能结合使用。图 8 展示了一种可能的配置场景。

 

图 8:使用 CrossLink FPGA 实现显示器分屏

 

传感器聚合:最后,我们来谈谈传感器聚合应用。正如本文以上所述,这一应用得以发展是因为系统中添加了越来越多的图像传感器。问题在于某些处理器的传感器输入数量有限,因此我们需要某种方式来聚合来自多个传感器的数据。

 

图 9:使用 CrossLink FPGA 实现传感器聚合

 

当然,与传感器复制和显示屏分屏一样,传感器聚合也可以和桥接功能一起使用。


使用 CrossLink FPGA 进行设计
使用 CrossLink FPGA 进行设计时,要先问自己一些基本的问题,然后顺着答案设计基本架构。例如,你打算使用什么 PHY 和协议来输入输出视频信号(图 10)?

图 10:作出架构方面的决定


这些决定大多和你所选择的传感器和显示屏类型有关(或者因为没得选择不得不使用这些类型)。还有一些影响因素就是即将使用的 SoC/ASSP/AP 处理器类型。反过来,对于上述问题的答案也会引导你思考如何处理图像及其格式,包括是否要进行复制、聚合和拆分等操作。此外,一旦决定了输入和输出数据速率,就可以结合 PHY 和协议的选择来决定你的设计要求多少输入和输出通道。

 


做出架构决策后,就可以根据下表来计算数据速率。例如,假设你选择 60 Hz 帧率,色深为 10 位的全高清(FHD)信号(也称为“RAW10”),如表 2 所示。

 

*可编程 I/O 的最大带宽为 1.2 Gbps。

 

表 2:计算数据速率

 


我们通常认为 FHD 的分辨率为 1920 x 1080 像素,但实际分辨率为 2200 x 1125,因为需要在行和帧之间添加消隐周期。计算数据速率的公式为:总速率=水平时钟*垂直线*帧速率*每像素位数。在我们的示例中,这意味着总数据速率为 2200 x 1125 x 60 x 10 = 1485 Mbps(1.485 Gbps)。由于 CrossLink 可编程 I/O 的最大带宽为 1.2 Gbps,所以需要使用两条通道,每条通道的速率为 742.5 Mbps。

 

CrossLink FPGA 可使用众多视频模块化 IP,这些 IP 可免费使用,主要包括接收视频数据(Rx)、发送视频数据(Tx)和时钟域转换等(参见图 11)。

 

并行接口仅在本地支持

 

图 11:CrossLink 视频模块化 IP

 

 

大多数设计都使用多个 IP 模块作为构建模块,然后设计人员通过 RTL 对模块进行加强。

 

一些设计人员看到这张图可能会有这样的疑问:当 CSI-2 是用来接收摄像头传感器的数据时,为什么还要 MIPI CSI-2 发送器。同样,当 DSI 被用于将数据传输到显示屏时,为什么还要 MIPI DSI 接收器。答案当然是可能需要执行复制、拆分和 / 或桥接功能。

 

让我们来看一个简单的 SubLVDS 转 MIPI CSI-2 桥接案例。在此案例中,我们将使用 SubLVDS 接收器模块,像素到字节转换模块和 MIPI CSI-2 发送器模块(图 12)。

 

图 12:使用 CrossLink 实现 SubLVDS 到 MIPI CSI-2 的桥接


使用像素到字节转换的原因在于 LVDS 和 MIPI 格式的不同 。 假设 SubLVDS 输入的色深为 10 位(RAW10)。而 MIPI 格式是基于 8 位数据包。因此我们需要确定共同的位长,即两者的最小公倍数,这个案例中就是 40 位(图 13)。

 

图 13:使用 CrossLink 的像素转字节 IP 模块将 RAW10 转换为 MIPI CSI-2


接下来我们来看一下 MIPI 传感器复制的案例。该应用使用了 MIPI CSI-2 接收器和 MIPI CSI-2 发送器。当 MIPI 帧经过 CrossLink 器件时,我们需要在接收和发送器之间用 RTL 代码来复制 MIPI 帧。如果需要更多输出,则可以使用多个 CrossLink FPGA 级联来实现。

 

图 14:MIPI 传感器复制案例


另一个常见的设计要求就是聚合多个视频传感器数据流。图 15 展示了两种场景:左右合并和虚拟通道。

 

图 15:MIPI 传感器聚合案例

 

两个例子均为两个 MIPI 输入和一个 MIPI 输出。实际上,Crosslink FPGA 能够支持多个(最多 5 个)MIPI 输入。当有两个输入时,输出数据速率为输入数据速率的两倍。

 

在左右合并的案例中,输出为线对线合并的图像。

 

虚拟通道的概念在 MIPI 标准中已有定义。MIPI 是一种基于数据包的协议,也就是说每个数据包都包含了头文件和有效数据。在虚拟通道的案例中,我们为每个输出数据包打上标签,然后交给下游的 SoC/ASSP/AP 负责。现阶段大多数处理器还无法处理虚拟通道,但是这种方法有望在不久的将来大行其道。

 

传感器聚合应用的另一种形式就是上下合并。在此情形下,从设计的角度来看,简单地让数据传输过去肯定行不通。而是要在通过 MIPI 发送器输出之前存储至少一帧图像。因此选择要存储的帧数和外部缓存的大小就需要另作设计上的考量了。

 

图 16:MIPI 传感器聚合上下合并案例


这里需要注意的是,一旦我们加入外部缓存,除了执行上下合并操作外,还可以进行其他图像处理操作,如旋转和 / 或镜像。


设计流程
设计流程由以下几个要素构成(上标数字对应文末的参考来源):

 

  • RTL 设计 2

 

  • IP 库 3

 

  • 模拟 2

 

  • 综合 2

 

  • 硬件开发平台 4,5

 

  • 系统调试 2

 

  • 额外资源 6

 

你可以使用 Lattice Diamond 运行 RTL 代码、仿真和综合设计。选择适当的 CrossLink 器件后即可启动项目。你可以在莱迪思 Clarity 这个 IP 库中找到之前讨论过的所有 CrossLink 视频模块化 IP。只需要在 Clarity 界面选择要使用的 IP 模块,将其拖放到设计中即可。


Lattice Reveal 能助你调试设计。 Reveal 具有两个方面的功能: Reveal Inserter 和 Reveal Analyzer 。

 

Inserter 可以定义调试信号发生器,而 Analyzer 可以将微型逻辑分析器嵌入到设计中,你可以指定触发条件和要监视的信号。

 


这些信号发生器和分析器包含在配置位流中,位流已加载到 CrossLink 器件中。可以使用集成的信号分析器显示结果(图 17)。

 

图 17:莱迪思 Reveal 集成的调试信号分析器截图


莱迪思还提供多种硬件开发板,包括 LIF-MD6000 主控连接板,该板载有 CrossLink 芯片以及用于连接各类传感器、显示器和 SoC/ASSP/AP 器件的连接器。

 

还有视频接口平台(VIP),它由三块开发板组成:具有两个图像传感器的 Crosslink VIP 输入桥接板,用作图像信号处理器的 ECP5 VIP 板和可用于显示输出结果的 HDMI VIP 输出板(图 18)。

 

图 18:莱迪思视频接口平台(VIP)


你还可以选择其他的开发板,包括 HDMI VIP 输入板、DisplayPort VIP 输入板、DisplayPort VIP 输出板和 USB3-GbE VIP I/O 板。莱迪思提供各类开发板,助您探索和开发基于 CrossLink FPGA 的嵌入式视觉应用。

 

最后,莱迪思还提供三套参考设计,展示了下列应用的各个方面:

 

  • N:1MIPI CSI-2 虚拟通道聚合 7

 

  • MIPI DSI/CSI-2 转 OpenLDI LVDS 接口桥接 8

 

  • SubLVDS 转 MIPI CSI-2 图像传感器桥接 9

 

未来我们将推出更多参考设计,敬请留意莱迪思官网发布的信息。


小结
过去几年里嵌入式视觉应用极速发展。嵌入式视觉系统的设计人员面临的挑战包括:对高分辨率和高带宽的需求持续增长,系统中视觉传感器和显示器的数量与日俱增,以及小尺寸和低功耗的要求不断涌现。此外,将人工智能(AI)和机器学习(ML)功能加入嵌入式系统也是大势所趋,尤其是添加到靠近视觉传感器的本地端。

莱迪思低功耗 CrossLink FPGA 专为高速视频和传感器应用优化。该器件在强化其传统可编程架构的基础上,增加了硬核 PHY,可提供业界最快的 MIPI D-PHY 桥接解决方案。

莱迪思的产品组合包括了芯片、IP、参考设计、开发套件和软件工具,能为嵌入式视觉的设计人员提供灵活的解决方案,如更新接口的标准、高效的视频信号处理以及硬件加速等。