了解NI 产品和技术的工程师也许印象最深的是它基于图形设计工具Labview。其实NI技术的强大在于其内部强大的FPGA。某种意义上讲,labview 是一种图形化FPGA 编程工具。正是产品中强大的FPGA 实现了该产品实时性,确定性的性能。从而使labview 能够应用与无线通信,电力电子等实时性要求很高的场合应用。
NI 与Xilinx 长期深度的合作。PXI 总线的设备的每个插卡上都具有一颗xilinx 的FPGA,在compactRIO 中,采用了单处理器+单颗FPGA 实现,处理器通过PCIe 总线与FPGA 连接。由于FPGA 具有动态下载bitstream 的能力,NI的labview 能够将它的图形化程序转换成为VDHL,verilog语言,借助于xilinx 的编译工具以及PCAP和iCAP接口实现HDL 的自动编译和下载。
Zynq-7000 SoC 在单芯片上将双核 ARM Cortex-A9 CPU 与一组丰富的标准 I/O 外设和 SoC 处理系统域中的多端口内存控制器结合在一起,可编程逻辑域中的 FPGA 架构。超过 2,000 个互连将处理系统连接到可编程逻辑。这提供了处理和可编程逻辑之间的高性能、低延迟通信、扩展、灵活性和能力,这是其他通过印刷电路板和总线(PCIe,CAN,Ethernet)将基于分立处理器的设备连接到 FPGA 的系统无法实现的。这种集成是基于 Zynq-7000 的 NI 平台的关键价值,处理系统和可编程逻辑之间的高性能、低延迟互连支持 16 个并行 DMA 通道和超过 300 MB/s 的功能带宽。
目前NI 在多种产品中使用Zynq 芯片。
- CompactRIO 控制器 – 高端软件定义控制器
- myRIO – 用于教育的RIO产品
- 单板RIO
- sbRIO-9651 SOM 核心板,用户可以借助于SOM 开发自己的RIO控制器。
- roboRIO – 机器人控制
- MXI-express RIO 多机箱的RIO,通过PCIe连接。
各种NI 硬件的架构
NI 公司的CompactRIO系统提供了高处理性能、传感器专用I/O和紧密集成的软件工具,使其成为工业物联网、监测和控制应用的理想之选。
从下面的列表可见,cRIO 的各种型号采用了双核Intel Atom 处理器,或者Xilinx 公司的Zynq2020。
基于ZYNQ 的cRIO 的内部结构
基于ZYNQ 的cRIO 的内部结构如下,zynq 中的PL 作为背板FPGA,cRIO 的模块通过15 针D型插头连接。模块只含有ADC 转换,信号调理,隔离等电路。控制功能和算法都在FPGA 中实现的。
模块背板接口
cRIO的内部包含一颗FPGA 芯片。labview 的图形块可以在CPU 上以软件的形式运行,也可能转换成为HDL 语言,通过xilinx 的vivado 编译工具编译成为FPGA 的bitstream。下载到FPGA 中运行。这一颗FPGA 也称为背板FPGA(backbone FPGA)
拆解图片
模块
一些想法
基于模型的设计方法越来越多地受到人们的欢迎。matlab/simulink,labview 这种基于图形和算法的开发工具功能已经非常强大,逐步涵盖了各种高端应用领域。这些产品的设计理念和架构是值得学习和借鉴的。在工业控制领域的PLC,PAC和IoT 设备中可以吸取其中的设计思想。甚至医疗设备,实验室测量设备也可以采取这种方式来构建。
相比之下, 软件才是关键技术,好的软件将会影响用户习惯,甚至生活方式,不过也不比完全去模仿NI,可以采用多种已经普及的方式,比如使用Python 语言接口,这比较适合AI 等应用, 而IEC61499 功能块也能够替代NI 的vi 方式作为构建基于模型设计的控制器的图形设计方式,与labview 十分相似。