微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于FPGA的电机智能驱动控制系统设计

基于FPGA的电机智能驱动控制系统设计

时间:07-29 来源:互联网 点击:

EtherCAT的标准RJ45100Base-TX以太网连接。

电机控制PCB板一般是智能驱动器中众多PCB板之一,专门用于根据来自PLC的命令对电机进行控制。该电机控制PCB板可以让FPGA充分发挥其灵活性。与常规ASIC/微处理器方案中采用的单接口、单电机控制算法解决方案不同,Spartan-6FPGA可以用专用网络和电机控制IP模块和控制软件重新编程,以满足客户的特定需要。采用这种方式,一块FPGAPCB板就可以实现多块ASIC板才能实现的功能。同时,它还提供了可以根据最新标准更新IP核的机制,实现面向未来的智能驱动器。

该电机控制板的设计无需从头开始,赛灵思设计服务部采用目标设计平台概念,通过把赛灵思Spartan-6SP605评估套件、NetMotFMC板和工业网络和电机控制IP核结合在一起,集成了客户想要的所有元件,这样在客户完成新PCB板之前就交付了这款概念验证原型。图2显示了如何把各个组件结合在一起,实现原型开发平台。最终,客户的集成工作大为简化,无需对最终设计进行重新工程设计,就能够探求最佳的设计选择。

图2:基于Spartan-6FPGA的电机控制板原型

图2中文字: 


SP605基础目标设计平台是一种通用FPGA平台,在业经验证的设计实现中集成了一个Spartan-6LX45T和许多常用外设,比如DDR3RAM、程序/比特流存储用闪存、调试用UART以及FPGA编程用JTAG。SP605及所有最新赛灵思开发板的另一个关键元件是FPGA夹层卡(FMC)接插件,它可以让设计人员使用定制的功能和接口扩展基础开发板。

SP605的这种特性使我们能够使用QDeSysNetMotFMC(www.qdesys.com)的功能来扩展这个基本平台。QDeSysNetMotFMC具有电机控制所需要的电力电子元件,比如电压逆变器,以及用于采集传感器数据的模数转换器(ADC)。可以把电机直接与图2所示的输入/输出端相连。NetMotFMC还通过添加两个CAN接口和两个以太网物理层接口,扩展了SP605的工业网络连接功能。它们通过FMC接插件和PLC,通过标准接口访问FPGA。

测试用PC机一方面用作PLC软件的主机,另一方面通过UART和JTAG接口,用作FPGA编程/调试平台。此外,我们还在这台测试用PC机上用赛灵思ISE?12.1设计套件为SP605的LX45TPFGA开发MicroBlazeTM嵌入式处理器系统。该嵌入式系统负责处理来自PLC的命令并相应地对电机进行控制。

图2所示的MicroBlaze软件应用、网络和电机控制IP模块代表随接口(EtherCAT或CATopne)和选择的电机类型会发生变化的设计模块。赛灵思设计服务部面临的主要挑战之一是要确保这些选项之间的切换尽量简化,从而保证客户能够在将来把相同的方法重复用于诸如Profinet更先进的工业网络类型以及新型电机中。

3实现细则

让我们来详细查看Spartan-6嵌入式系统的各个组成部分。如图3所示,我们使用的电机控制IP模块——赛灵思电机控制库(XMCLIB)在两个设计版本中是完全相同的。这个定制IP核可以直接插在赛灵思嵌入式开发套件(SDK)上,让FPGA控制NetMotFMC的电机电力电子系统。这样我们就可以把IP核添加到XilinxPlatformStudio(XPS)项目的嵌入式设计中,并对其进行配置,使之适用于通过FMC接插件连接到FPGA的电机。XMCLIB软件驱动程序是一套底层功能,使电机控制应用能够访问XMCLIB寄存器接口。

图3:CAN/EtherCAT嵌入式系统

另一方面,网络IP核也是两个系统版本的不同之处。对于CAN版设计,我们选择标准的LogiCORETMIPXPS控制器区域网络,该网络随同ISE12.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核的通信。这些模块可以无缝地插入我们的接口抽象层上。在这些协议

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top