FPGA更适用于视觉处理
扫描二维码
随时随地手机看文章
美国国家仪器公司将工程的视觉处理移植到FPGA上实现,可获得更高的处理性能
Jeff Bier 是嵌入式视觉联盟的创始人,本月在德克萨斯州奥斯汀举办的NI WEEK大会上,Jeff关注了国家仪器公司的一个演示系统,这个系统是国家仪器公司2014年度关于视觉辅助方面的新产品。这个视觉辅助组件的国家仪器公司视觉开发模块的一个部分,能够实现快速设计和一些机器视觉应用的开发。2014年期间,国家仪器公司已经将很多已经实现的视觉处理算法移植到了他自己的硬件平台上,以前这些视觉处理算法是利用FPGA硬件平台实现的。国家仪器公司主要的平台是CompactRIO-9068软件设计控制系统,这个系统是基于赛灵思Zynq Z-7000 ALL Programmable SoC而设计的。将视觉处理算法用Zynq SoC的可编程逻辑(FPGA)部分来实现不仅提升了视觉处理的性能,而且可以让Zynq SoC上的两个ARM Cortex-A9处理器有更多的资源去处理其他任务。
国家仪器公司在NI Week大会上演示的系统模块在Zynq SoC的FPGA部分实现了一个PID控制器 ,用于实时控制整个演示模块的步进电机。这样允许视觉处理过程符合控制算法,最大化的提升系统性能。
国家仪器公司的视觉辅助组件能够生成标准的LabView代码,并且借助了LabView FPGA 模块,是对Labview设计环境的扩展。LabVIEW软件的FPGA 模块利用Vivado设计软件作为基础,生成对FPGA芯片配置的文件。LabVIEW FPGA实现对图形化的LabVIEW代码,并将综合结合下载到CompactRIO-9068控制系统的FPGA硬件部分,对FPGA进行配置。
开发人员借助NI公司的视觉辅助组件可以快速完成基于FPGA的视觉应用的原型设计,这个辅助组件包含了视觉开发模块。视觉开发辅助组件是一个基于可配置的原型开发工具,允许开发这迭代优化他们的图像处理算法,可以让他们看到设置参数的改变会对图像有什么样的影响。当算法工程完成后,视觉辅助组件会自动生成一个完整的LabVIEW工程,包括虚拟的处理器内核,虚拟的FPGA部分和其他一些功能,例如在处理器和FPGA之间通过编解码实现图像的传输。通过视觉辅助组件生成的FPGA代码同样进行了优化,支持并行执行。开发人员可以使用LabVIEW FPGA 的IP Builder修改图像处理算法,这个功能是国家仪器公司(NI)的LabVIEW软件的FPGA 模块所支持功能的一部分。
除了可以加速开发流程和代码生成效率,视觉辅助组件也可以估计FPGA资源的使用情况,使用信息包括FPGA芯片资源(例如slice(分片),LUTs(查找表),DSPs和Block RAM)的使用百分比,它可以反映出整个图像处理应用的资源使用信息,也可以反映出每个独立的图像处理算法的芯片资源使用情况,可以让开发人员在整个应用的开发过程中了解每个任务模块的资源使用情况,实现资源的合理安排。