开放型RCP设计方案

Posted 姚家湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开放型RCP设计方案相关的知识,希望对你有一定的参考价值。

        快速控制原型(RCP - Rapid control prototyping)是一种开发环境,它以有效的方式设计,开发和验证控制器原型。市面上有若干种RCP系统。Matlab/Simulink在这些系统中广泛地被应用。

        在工程学院中,控制的课程为学生提供了控制器设计和体验的课程,然而,商用的RCP 系统都是基于昂贵的硬件和软件构建的。大多数硬件基于intel X86 志强处理器和windows 系统。通过PCIe 插入一块或者多块FPGA 扩展板实现。

        多核Arm+FPGA 混合SOC 的出现,为开发经济型RCP 系统提供了可能性。由于将FPGA芯片和多核ARM 结合在一起,CPU与FPGA 之间的数据中线的带宽更高。而FPGA 与独立的FPGA 芯片性能相当。因此,多核ARM+FPGA 的混合SOC的性能同样能够适用于大多数RCP的要求。这样的系统由于体积小,功耗低,便携式,成本低廉,促进了RCP 技术的普及,并且能够使更多企业和学校提供RCP 产品,甚至成为个人RCP 控制器。

本文是基于Xilinx ZYNQ 的RCP 系统的设计方案。

        目前市场上的商业化RCP 系统大多数是封闭式系统。除了使用Matlab/Simulink 之外。厂家开发了许多Matlab 插件,独立的编程环境和监控软件。不同厂商的软件无论是使用方法还是文件格式都是不兼容的。

        本方案的RCP 系统是一个开放性系统,我们称为OpenRCP。在OpenRCP 系统中,尽可能使用标准的软件平台和通信协议,应用程序的编排采用IEC61499 功能块实现。鼓励用户和第三方开发者基于OpenRCP开发面向特定应用的RCP 系统。

国外同类产品

  • 基于ZYNQ 的系统
  1. liquid instruments
  2. imperix
  3. plexim RT BOX
  • 基于X86 CPU 的系统
  1. Speedgoat
  2. DSPACE
  3. EICASLAB
  4. OPAL-RT

     国外产品大约1万美金起,不包括软件。OPAL-RT 公司的OP4500 实时电网数字模拟器,起价为20000美元。

OpenRCP-Pro 快速控制原型设备技术方案

本方案设计原型1

OpenRCP是一台用于快速控制原型设计的高性能控制器。它基于Xilinx   Zynq-7000 SoC 芯片构建。用户能够使用Matlab/simulink 设计FPGA 的IP或者C/C++库,并且能够将IP核与C/C++库封装成为IEC61499 功能块。通过IEC61499 能够以图形化方式实现应用程序的编排。促使RCP系统的走向开放与标准化。

特点

Zynq-7020 SoC 芯片

  • 2 路 GigE Ethernet
  • 1路USB 2.0 接口
  • 1路 USB UART
  • 在板USB JTAG
  • 2路CANBUS
  • 1路CAN FD
  • 120G高速SSD
  • 1 路RS485

4 个模拟输入

  • 8bit ADC 输入
  • -10V~+10V
  • 采样频率2Mbps

4 个模拟输出

  • 16 位DAC 输入
  • -10V~+10V
  • 频率2Mbps

16 位 数字输入

16 位数字输出

  • 同步PWM 输出,分辨率16bit
  • 脉冲输出,频率2M

2 路同步光纤

  • 同步时钟
  • 频率1G

主要技术指标

操作系统

  • Linux OS
  • RTOS

8 个动态局部重构分区。

  • 动态导入用户IP核
  • 支持Matlab /simulink IP 动态加载
  • 支持第三方IP

IP库

  • 电力电子IP库
  • 机械测量与控制IP库(例如振动分析)

IEC61499 运行时

  • 作为应用程序的编排工具
  • 支持动态功能块库加载
  • 支持FPGA 复合功能块动态加载

丰富的网络协议

  • TCP/IP 协议
  • UDP 协议
  • IEEE1588/PTP 实时网络协议
  • modbusTCP 协议

应用领域

  • 实验室测量与控制
  • matlab/simulink 硬件验证设备
  • 多功能仪器
    1. PID控制器
    2. 数字滤波器
    3. 频谱分析仪
    4. 波形发生器
    5. 频响特性分析仪
  • 教育平台
    1. 嵌入软件/FPGA
    2. matlab/simulink 实训
    3. 电机控制
    4. 电力电子
    5. 机械测量
    6. 汽车

OpenRCP-M 模块化快速原型设计设备

本方案设计原型2

        模块化OpenRCP 能够实现IO模块的更换和扩展。教育和实验室模块化RCP要更适合方便的插拔。上面的一种使用CNC 加工的铝外壳。并且采取了便捷的插拔和锁定机构。加工成本比钣金外壳高,但是更加坚固耐用。

                电气方面,采用了背板+IO模块结构。背板上包括了ZYNQ SOC 以及PS 外围接口。IO模块仅实现IO接口电路,与ZYNQ的PS 逻辑相连。

19英寸标准机架结构的OpenRCP

        19英寸机架结构的OpenRCP 也是不错的选择。外壳加工成本低;结构紧凑,便于实验室机架堆叠。可以研究imperix 的相关产品的结构。

支持的IP库

        OpenPCR 为用户提供了经过完整测试的IP库,用户可以通过软件直接将这些IP 的bitstream 下载到FPGA 中运行。

        IP库是产品市场上成功的关键,丰富的IP库是用户选择产品的重要因素。尽管OpenRCP 提供了第三方和最终用户开发IP库的可能,但是在该产品没有普及之前,没有人愿意为其开发IP库。在这个阶段,只有依靠原厂自行开发满足早期用户的需求。

IP 库的开发需要面向具体的领域。每家公司的产品面向的应用是不同的。

例如:

        imperix公司主要面向功率电子行业,例如逆变器,电机驱动。应用面向微电网,快速充电,电池驱动电机。提供了种类繁多的硅基MOSFET 管构建的全桥,半桥驱动电路。以及电机解码器。

软件架构

        ZYNQ 内部具有两个ARM 核,尽管可以配置成为多核LINUX OS架构,但是在RCP 系统中,更合适的方式是配置成为两个操作系统。其中一个操作系统配置成为普通的Linux,面向非实时应用,另一个核配置成为实时操作系统(RTOS)。

同步与级联

单台OpenRCP 可能无法满足复杂系统的原型设计,可以通过多台级联的方式完成。级联的目的有两部分。

   1 时钟同步

   2 实时交换数据

 

设备之间的时间同步通过SFP 光纤实现。如果距离比较短,可以使用差分接口完成。

SFP 上的RealSync 网络协议是imperix 公司专有技术。它是一种时分光纤网络。

IEC61499 作为应用程序的编排工具

尽管Matlab/simulink的HDL coder支持将Matlab 的算法转化成为FPGA 的IP核,也能够产生嵌入式C语言代码。仍然有一定的缺陷。

如何将硬件的IP核与其它软件相结合

比如与各种应用软件通信协议相结合,比如CANOpen,modbusTCP,MQTT,TCP、UDP 协议,访问数据库,

如何实现分布式测量?

        单台设备的能力是有限的,在实际应用中,有时需要多台设备构建多设备的分布式系统。

        就目前而言,笔者认为单独依靠matlab 产生完整的应用软件是不灵活的,麻烦的。难以达到“无代码“的境界。

        为了满足实际应用的种种需求。需要嵌入式软件的“编排”工具,灵活地应用和组合各种Matlab/Simulink 的硬件IP核和软件库函数。需要一些“粘结 “软件。将这些IP核与软件库。

        那么,这样的“粘结 “软件如何来编写呢?RCP 拟采取IEC61499 作为这样的编排工具。

 

        从上图可见,将Matlab/simulink 生成FPGA IP核或C/C++ 程序库,分装成为IEC61499 的功能块。使用者通过IEC61499 IDE 能够实现组态方式构建应用程序。IEC61499 是基于功能块的图形方式编排应用。与simulink 与labview 图形程序设计方法具有相似性。更适合 matlab和labview 的用户使用。

        使用IEC61499 作为RCP设备的编排工具的另一个原因是构建分布式测量,控制与监督系统。

        使用IEC61499 作为编排工具有利于构建开放型RCP系统。设备厂商和第三方开发者和用户能够开发针对特定领域的FPAG IP核和C/C++ 程序库。形成一个开放型RCP 生态系统。弥补专业领域算法专家,IT 工程师和OT 工程师之间的技术鸿沟。

总结

        ZYNQ SOC 芯片已经足够强大,以至于一些公司采用ZYNQ 开发RCP 设备及其软件。本文讨论了开发一台小型,低成本开放型RCP 系统(OpenRCP)。

        OpenRCP 的主要特点是其开放性。本方案拟采用IEC61499 功能块作为应用程序的编排工具。并且尽可能地与Matlab/simulink,Linux等软件兼容。成为学校教育和小型企业甚至个人快速原型开发的工具。

        我们也特别强调,开发和推广RCP 产品的关键在于面向特定的行业和专业,开发硬件IP和嵌入式软件库的重要性。

以上是关于开放型RCP设计方案的主要内容,如果未能解决你的问题,请参考以下文章

23种设计模式之观察者模式

java设计模式之观察者模式

基于OneNet平台设计的多节点温度采集系统-有人云4G模块+STM32

23种设计模式之观察者模式

开放平台设计方案与实践

开放平台设计方案与实践