开放型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 的系统
- liquid instruments
- imperix
- plexim RT BOX
- 基于X86 CPU 的系统
- Speedgoat
- DSPACE
- EICASLAB
- 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 硬件验证设备
- 多功能仪器
- PID控制器
- 数字滤波器
- 频谱分析仪
- 波形发生器
- 频响特性分析仪
- 教育平台
- 嵌入软件/FPGA
- matlab/simulink 实训
- 电机控制
- 电力电子
- 机械测量
- 汽车
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设计方案的主要内容,如果未能解决你的问题,请参考以下文章