基于FPGA的智能驱动控制系统设计
扫描二维码
随时随地手机看文章
智能驱动器以及许多汽车和 ISM 厂商正面临着满足新的市场需求和不断发展的标准要求所带来的重重挑战。在现代工业和汽车应用中,电机必须具有高效、低噪声、速度范围宽、可靠性高、成本合理等特性。在当今工厂里,电机驱动型设备占总耗电量的三分之二,因此开发能效更高的系统势在必行。由于在许多情况下驱动器只是大规模工艺的一个组件,因此互操作性也是一项关键的设计要求。而影响这种要求的关键因素是工业网络协议的宽度(即现场总线)和相关器件特性,因为它们用来标准化驱动器在网络中的表达。现场总线(比如 CAN 和 Profibus)自身千差万别,虽然都属于现场总线,但是实际上并不具有互换性。为了降低成本和改善工业控制器之间的通信,现场总线提供商已经开发出了基于以太网的工业网络解决方案和数种新的协议,比如 EtherCAT 和 Profinet 等。除此之外,EtherNET I/P 也在近年来开始大行其道。不过,这些都是自成体系的技术,迫使制造商不得不支持所有的提供商。
赛灵思设计服务部 (XDS) 已经为 ISM 领域的一家主要厂商开发出了一款基于 FPGA、支持CANopen 和 EtherCAT 接口的电机控制平台原型来解决这些问题。赛灵思设计服务部的工作是设计并实现一个功能齐备的模块化系统,以便在客户的新一代智能驱动器中重用。通过在模块化系统架构中集成赛灵思 Spartan-6 FPGA SP605 评估套件基础目标设计平台以及第三方 IP 核,提供先进的电机控制算法和工业网络支持,实现了一款高效、可扩展的设计方案。
1 选择 FPGA 的原因
客户现有的基于微控制器的解决方案不能提供客户最迫切需要的:一种可扩展平台。基于Spartan-6 FPGA 的智能驱动控制系统在单芯片上集成了所有必要的可扩展性、逻辑和计算功能,在降低成本的同时还能避免过时。该平台可以进行多年的升级,以满足最新工业网络标准的要求并使用最高效的电机控制算法。此外,由于 FPGA 的可重编程特性,因此可以根据客户的特定要求对单个基础电机控制系统进行定制,从而轻松地与现有工业网络集成。简言之,Spartan-6 FPGA 能够满足工业领域所有的严格要求。
赛灵思目标设计平台提供了一套开箱即用的高健硕性、高集成度、业经测试的元件,对就像我们的客户这样的 FPGA 系统设计新手来说,是一个理想的起点。您可以通过向基础平台添加领域专用和市场专用平台解决方案,让最终设计在更大程度上实现自动化。这些目标参考设计演示了真实世界 FPGA 实现的构想,让客户集成精力进行最终产品差异化特性的设计与开发,从而缩短学习时间。
我们的解决方案完美组合了 Spartan-6 SP605评估套件和第三方解决方案,其中包括 QdeSys 公司提供的 NetMot FMC 板,以及德国博世公司 (Bosch) 和倍福公司 (Beckhoff) 提供的工业网络 IP 核。这样不仅目标系统所有的基础构建块一开始就可以到位,而且我们无需定制FPGA 开发板就可以进行原型开发,从而让客户以最低的成本验证该新平台的可行性。为了进一步加快产品上市进程,减少初次 FPGA 系统设计的风险,客户要求我们不仅要交付原型,还要为在其新一代智能驱动器中使用 FPGA 提供支持。
最终,客户的工程师和管理人员都从该方案受益匪浅。工程师在赛灵思设计服务部精选的最佳实践方式的基础上,更快地掌握了基于 FPGA 的设计,而管理人员则缩短了产品交付时间,并降低了业务风险。
2 智能驱动控制系统原型
赛灵思设计服务部的产品组合覆盖了整个 FPGA 设计开发周期,从规范创建到编码、验证、时序收敛和系统集成。集多年嵌入式处理器系统和软件应用设计经验之大成,加上集成第三方 IP 核的能力、优秀的项目管理实践和全面认证的 ISO9001 开发流程,赛灵思设计服务部能够在客户的产品开发周期早期交付智能驱动控制系统原型。在此基础上开发出的定制目标设计平台能够让客户的工程师熟知 FPGA 设计流程,在新一代产品中优化该技术的功能。
该智能驱动控制系统原型的主要组件的详细情况,请参看图 1。
可编程逻辑控制器 (PLC) 负责运行智能驱动器,实时连接至工业网络。为实现该原型,我们使用两个基于 PC 的 PLC 来处理该系统支持的两个工业网络标准:用于控制器区域网络的 miCONtrol mPLC 和用于 EtherCAT 工业以太网现场总线系统的 TwinCAT。PLC 负责生成预定义的命令信息(例如启动和停止),通过分析收到的响应(当前速度、温度、电压等)验证电机的运行是否正常。
根据 PLC 的组合以及智能驱动器的类型(CAN 或 EtherCAT),工业网络或为串行总线,或为标准的100Mb 以太网接口。对这两种解决方案,该原型在 PLC 和电机之间均使用直接连接,或为用于 CAN 的双线串行接口,或为用于 EtherCAT 的标准 RJ45 100Base-TX 以太网连接。
电机控制 PCB 板一般是智能驱动器中众多 PCB 板之一,专门用于根据来自 PLC 的命令对电机进行控制。该电机控制 PCB 板可以让 FPGA 充分发挥其灵活性。与常规 ASIC/微处理器方案中采用的单接口、单电机控制算法解决方案不同,Spartan-6 FPGA 可以用专用网络和电机控制 IP 模块和控制软件重新编程,以满足客户的特定需要。采用这种方式,一块 FPGA PCB 板就可以实现多块 ASIC 板才能实现的功能。同时,它还提供了可以根据最新标准更新 IP核的机制,实现面向未来的智能驱动器。
该电机控制板的设计无需从头开始,赛灵思设计服务部采用目标设计平台概念,通过把赛灵思 Spartan-6 SP605 评估套件、NetMot FMC 板和工业网络和电机控制 IP 核结合在一起,集成了客户想要的所有元件,这样在客户完成新 PCB 板之前就交付了这款概念验证原型。图2 显示了如何把各个组件结合在一起,实现原型开发平台。最终,客户的集成工作大为简化,无需对最终设计进行重新工程设计,就能够探求最佳的设计选择。
图2:基于 Spartan-6 FPGA 的电机控制板原型
图2 中文字:
SP605 基础目标设计平台是一种通用 FPGA 平台,在业经验证的设计实现中集成了一个 Spartan-6 LX45T 和许多常用外设,比如 DDR3 RAM、程序/比特流存储用闪存、调试用 UART 以及 FPGA 编程用 JTAG。SP605 及所有最新赛灵思开发板的另一个关键元件是 FPGA 夹层卡 (FMC) 接插件,它可以让设计人员使用定制的功能和接口扩展基础开发板。
SP605 的这种特性使我们能够使用 QDeSys NetMot FMC(www.qdesys.com)的功能来扩展这个基本平台。QDeSys NetMot FMC 具有电机控制所需要的电力电子元件,比如电压逆变器,以及用于采集传感器数据的模数转换器 (ADC)。可以把电机直接与图 2 所示的输入/输出端相连。NetMot FMC 还通过添加两个 CAN 接口和两个以太网物理层接口,扩展了 SP605 的工业网络连接功能。它们通过 FMC 接插件和 PLC,通过标准接口访问FPGA。
测试用 PC 机一方面用作 PLC 软件的主机,另一方面通过 UART 和 JTAG 接口,用作 FPGA编程/调试平台。此外,我们还在这台测试用 PC 机上用赛灵思 ISE?12.1 设计套件为 SP605的 LX45T PFGA 开发 MicroBlazeTM 嵌入式处理器系统。该嵌入式系统负责处理来自 PLC 的命令并相应地对电机进行控制。
图 2 所示的 MicroBlaze 软件应用、网络和电机控制 IP 模块代表随接口(EtherCAT 或 CATopne)和选择的电机类型会发生变化的设计模块。赛灵思设计服务部面临的主要挑战之一是要确保这些选项之间的切换尽量简化,从而保证客户能够在将来把相同的方法重复用于诸如 Profinet 更先进的工业网络类型以及新型电机中。
3 实现细则
让我们来详细查看 Spartan-6 嵌入式系统的各个组成部分。如图 3 所示,我们使用的电机控制 IP 模块——赛灵思电机控制库 (XMCLIB) 在两个设计版本中是完全相同的。这个定制 IP 核可以直接插在赛灵思嵌入式开发套件 (SDK) 上,让 FPGA 控制 NetMot FMC 的电机电力电子系统。这样我们就可以把 IP 核添加到 Xilinx Platform STudio (XPS) 项目的嵌入式设计中,并对其进行配置,使之适用于通过 FMC 接插件连接到 FPGA 的电机。XMCLIB 软件驱动程序是一套底层功能,使电机控制应用能够访问 XMCLIB 寄存器接口。
图3:CAN/EtherCAT 嵌入式系统 另一方面,网络 IP 核也是两个系统版本的不同之处。对于 CAN 版设计,我们选择标准的 LogiCORETM IP XPS 控制器区域网络,该网络随同 ISE 12.1 设计套件提供,并由博世公司许可。对于 EtherCAT 版设计,我们使用倍福公司针对赛灵思 FPGA 开发的 EtherCAT 从控制器IP核 (www.beckhoff.com)。两种 IP 核在 XPS 工具的 IP 目录标签上都有提供,使设计的集成和配置工作异常简单明了。在本案例中,我们没有使用简单的驱动程序来提供对网络 IP 核的访问,我们使用了Port 公司 (www.port.de) 提供的 CANopen 和 EtherCAT 协议栈解决方案。该解决方案提供了功能齐全的开箱即用型协议实施方案。 最终,我们设计出了一种定制嵌入式软件应用,可以在运行于 MicroBlaze 处理器系统的 Micrium(www.micrium.com)μC/OS-II 上运行。μC/OS-II 是一种嵌入式操作系统,可增强原型系统的实时功能,并提供多任务、消息队列和信号量等功能。 我们还意识到,应该让应用的结构能够适用于多种不同的网络接口。为此,我们设计了一个接口抽象层,可以让我们封装通信和软件的电机控制组件。 在这个接口的一侧(图 4),我们实现了一个网络模块(Port 公司的 CANopen 或 EtherCAT),用以管理系统中可用网络 IP 核的通信。这些模块可以无缝地插入我们的接口抽象层上。在这些协议栈的顶层,我们把通信和控制数据(比如 PDO、SDO 和 NMT 状态交易)传输到抽象层中,然后抽象层将数据进行转译并以诸如启动/停止、以特定速率旋转或旋转到特定位置之类的命令提交给电机控制应用。
图4:接口抽象层
为了为接口抽象层确定一组通用信息和命令,我们研究了工业网络领域现有的专着,研读了 IEC 61800-7 标准。对现有的现场总线技术,有几种用于标准化与驱动设备通信的方案(比如 CANopen 使用的 CiA-402、Profinet 使用的 PROFIdrive)。IEC 68000-7 标准提出了驱动器的通用表达,并计划提供这种通用表达与现有驱动器特性之间的一组映射。 IEC 68000-7 标准提出的概念为我们开发接口抽象层奠定了基础,使我们能够对系统的网络组件进行封装。我们因此可以更改系统中的网络接口,而这只需要对软件稍加定制修改,就可以让其与现有的电机控制应用兼容。 4 展望未来 这款智能驱动控制系统原型的成功交付清晰地展现了 FPGA 在工业以太网网络、现场总线和电机控制领域的发展潜力。虽然要开发出功能齐全的产品还有一些工作要做,但赛灵思设计服务部已为客户量身定制了一款目标设计平台,并通过性能增强,打造出了一款能够显着降低最终工程产品的开发工作量与风险的定制解决方案。下一步赛灵思设计服务部将考虑扩展该目标设计平台,以支持 Profinet IP 核和协议栈,向客户展现赛灵思设计服务部采用的模块方案和设计实践的效果。