“换药不换汤”:基于不同的Xilinx FPGA实现同款工业摄像头设计
清风流云 FPGA开发圈
背景
德国XIMA公司是一家有着二十多年经验的国际知名机器视觉厂商,一直致力于为运动控制、装配、机器人学、工业检测和过程控制等领域的机器视觉应用设计最智能、最紧凑的工业相机,同时也为生命科学、安全和国防应用领域设计科学相机。尤其,所推出的MQ 系列USB 3.0 超高速工业机器视觉相机,为高速工业相机领域树立了全新的基准,同时也是目前世界上最小的USB3.0相机。
此外,XIMEA公司的SDK/AP可支持不同操作系统,如Windows或Linux,并且提供包括MVTec Halcon,National Instruments Labview,OpenCV or Norpix Streampix在内的30个机器视觉数据库,这也就意味着用户可以选择一个最适合的选项来满足其在分辨率和高速度高性能方面的需求。
Ximea 5Mpixel MU9 超小型USB摄像头
在近期的美国西部光电大会上,Xilinx工程师Aaron Behman(亚伦)与Ximea的CEO MaxLarin就Ximea开发的工业摄像头进行了简单的交谈,Max Larin表示,Ximea研发的大量的系统级工业摄影机中中有很多都是基于Xilinx FPGA实现的。 另外Max还展示了一个大小为 13X13mm的pcb图,并指出到“这是目前世界上最小的工业摄像头”,属于Ximea研发的基于MT9P031图像传感器的5M像数点的Ximea‘sMU9超小型USB摄像头系列,不过Ximea’s MU9超小型摄像头只可以在一种颜色或单色的设备中使用。
下图为Ximea官网中公布的MU9超小型USB摄像头前后版图:
Ximea 5Mpixel MU9 超小型USB摄像头
正如上图所示,板卡的大小完全由10X10mm的图像传感器、旁路电容以及前面板上的其他电子元器件来决定,而其余辅助芯片以及摄像头的所有I/O接口均放置在背面板中。此外由一个Cypress CY7C68013 EZ-USB为控制器来操作摄像头的USB接口,有一款Xilinx Spartan-3 XC3550 FPGA芯片控制着传感器。而FPGA逻辑部分的可编程I/O接口可以完全足够连接到图像传感器也足以处理由此传感器产生的视频图像。
Ximea xiC MC023CG-SY Industrial Video Camera with USB 3.0 SuperSpeed Type C interface
由此想到,现在,我们可以使用什么来更好的实现此板卡?,首先,如果可以用单或双核的Xilinx Zynq SoC来替换Spartan-3 FPGA与USB微控制器,因为此款SoC芯片可以很简单的实现此摄像头包括USB接口的所有功能,并可以通过一个大芯片减少芯片数目,但是Zynq SoC系列的最小封装为13X13mm,恰好是此摄像头板卡的pcb大小,也就意味着如果使用Zynq来实现的话在屋里尺寸上会比现有的板卡稍微大一点。
不过,在Ximea的这款超小型摄像头中使用的XC3S50是Spartan-3系列中最小的板卡,包含有1728逻辑单元和72Kb的BRAM,虽然早在2003年Xilinx就推出了Spartan-3 FPG 89cv0A系列,但是这仅有8X8mm大小的芯片却有很多的可编程能力。
不过,在完成以上设计的时候,现在有两款Spartan FPGA系列可供选择,Spartan-6和Spartan-7,且这两款FPGA均有多种8X8mm封装的器件。所以可以考虑到在保持pcb设计中引脚不变的情况下到底有几款近年的FPGA适用。
从数据手册中的简单引脚说明得知,一个Spartan-3 XC3S50共有1728个逻辑单元,72Mbit的BRAM,以及89个I/O引脚。Spartan-6 XCSLX4,XC6SLX9,以及XCSLX16均有14579个逻辑单元,216-576Kbit大小的BRAM和106个I/O引脚。Spartan-7 和XC7S6和XC7S15有6000到12800个逻辑单元,180-360Kbit BRAM和100个I/O引脚,所以Spartan-6和Spartan-7对于新的设计方案都可以提供足够的资源。但是,要想得到更多可优化的地方,还需要相依对照两个系列。
首先,Spartan-7 FPGA相对于Spartan-6系列性能提高2.5倍但是功耗也相应降低将近2.5倍,对于此设计来说这是非常有意义的优势,同样Spartan-7 FPGA相对于Spartan-6系列运行速度要快很多,当速度处于-1级时,Spartan-6工作频率为250Mhz,但是Spartan-7可以达到464Mhz,而且即使Spartan-6速度处于-3级时最高频率也才400Mhz(尚不及Spartan-7的最低频率),而Spartan-7最大速度在-2级,可达到628MHz,所以如果为了追求运行速度的话,Spartan-7才是上选。
此外,考虑到两个不同系列的开发工具,Spartan-7系列的FPGA均可以在Vivado开发环境中来实现,这就意味着可以直接使用Vivado的IP包和IP打包工具来自动打包所需IP,这两点尤为重要。
最后,对于Spartan-7 FPGA内部布局结构上还有一些更为复杂的提升,这也就意味着在使用Vivado进行布局布线的时候有更多的逻辑单元可以使用,从而使性能有更高的提升(因为降低了布线的拥挤),所以通过数据手册直接比较Spartan-6和Spartan-7系列的逻辑单元的时可能会忽略此优势,而最欣慰的莫过于可以有大量的选择余地。
总结
现如今,不仅可以基于Xilinx的FPGA板卡开发各种小型的高性能智能硬件设备,比如智能摄像头,工业摄像头等,而且可以就不同的应用场景选择更为合适的FPGA板卡,这主要归功于Xilinx发布的FPGA板卡不仅在性能上高,类别五花八门,最关键的是还尽可能的保证不同板卡除内部变化为外部封装引脚变化较小,从而为广大用户提供给更多的选择空间。