×

嵌入式视觉系统中的接口

96
白板哥
2018.03.06 14:27 字数 1016

现在我们要构建一个自动割草机,割草机的空间定位需要通过相机扫描环境来获得。上篇文章我们介绍过什么是嵌入式视觉系统,这个场景下传统的机器视觉系统满足不了,但嵌入式系统可以满足。

为什么?

因为割草机是用电池供电的,需要功耗低,体积小,价格低。

那么,我们如何实现自动割草机呢?

  • 体积小
    我们可以用嵌入式处理平台,比如SoC,SoC是电脑的核心电子元件,它集成GPU来完成视觉任务,同时集成CPU,内部总线,接口等,都在一个芯片上。尽管SoC性能不如PC的处理器,不过它已经可以满足很多应用场景了。

  • 低成本
    为了保证低成本设计,SoC直接焊接在PCB上。

如何集成嵌入式系统呢?

一个标准工业相机显然太大,太贵,功耗太高。一个板级相机是个好的选择,这种模块能保留了应用需要的部分。比如这种模块去掉了包装盒子,因为它可以直接集成到割草机里面,它节省空间,成本,低功耗。

相机模块又如何连接主处理板?

相机模块有不同的接口,一般会使用USB 2.0,USB 3.0,串行还是并行接口,MIPI CSI-2,它们都有各自的优劣势,下面详细介绍各自的优缺点。

USB 2.0

一般在SoC中都能支持,也就是说只有少量的硬件需要USB转接器,缺点是带宽低只有40MB/s,在高速高分辨率的场景下就不支持。

USB 3.0

带宽支持360MB/s,如果相机模块支持,那么集成性很好,驱动和SDK等都是基于LINUX/ARM嵌入式系统标准化的,在这样的系统中畅快运行。

即插即用的特性让USB接口很容易集成到应用系统中。如果开发预算费用比较紧张,USB是比较好的选择。

USB 2.0和USB 3.0有个共同点,都需要一个大的连接器和不太灵活的线缆,有可能会限制应用场景。并且,只有少量的SoC支持USB 3.0。

并行接口

相机模块通过基带线来和主板通信。这种模块需要有并行视频输入的SoC(很少见),它的最大线长支持是50cm。

串行接口

用于和FPGA 连接,如果嵌入式系统的核心已经是FPGA,那么就应该选择串行接口,这种相机模块也是通过基带线来和FPGA通信,有些模块支持1m。

并行和串行接口有个共同点,需要相机的驱动已经在SoC中安装好了。

MIPI CSI-2

是由Mobile Industry Processor Interface Alliance这个组织标准化的接口,CSI-2代表Camera Serial Interface 2nd Generation,是移动应用的通用接口,用于智能手机摄像模块和SoC的通信,几乎所有的SoC都提供了6个串行通道用于连接1到多个相机,每个通道的传输速度达到300MB/s,能够支持和高清相机,但传输线缆只支持30cm以内,同样需要相机的驱动已经在SoC中安装好了,否则需要自己开发驱动,成本不低。

接口对比如下

在我们的割草机中,不需要额外的硬件,因此线缆长度不是重点,CSI-2可以实现低功耗高性能的应用,它就是我们自动化割草机的最佳选择。

机器视觉系统
Web note ad 1