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