利用Spartan-6设计智能驱动控制系统
实现细则
让我们来详细查看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状态交易)传输到抽象层中,然后抽象层将数据进行转译并以诸如启动/停止、以特定速率旋转或旋转到特定位置之类的命令提交给电机控制应用。
为了为接口抽象层确定一组通用信息和命令,我们研究了工业网络领域现有的专著,研读了IEC 61800-7标准。对现有的现场总线技术,有几种用于标准化与驱动设备通信的方案(比如 CANopen 使用的 CiA-402、Profinet 使用的 PROFIdrive)。IEC 68000-7标准提出了驱动器的通用表达,并计划提供这种通用表达与现有驱动器特性之间的一组映射。
IEC 68000-7标准提出的概念为我们开发接口抽象层奠定了基础,使我们能够对系统的网络组件进行封装。我们因此可以更改系统中的网络接口,而这只需要对软件稍加定制修改,就可以让其与现有的电机控制应用兼容。
展望未来
这款智能驱动控制系统原型的成功交付清晰地展现了FPGA在工业以太网网络、现场总线和电机控制领域的发展潜力。虽然要开发出功能齐全的产品还有一些工作要做,但赛灵思设计服务部已为客户量身定制了一款目标设计平台,并通过性能增强,打造出了一款能够显著降低最终工程产品的开发工作量与风险的定制解决方案。下一步赛灵思设计服务部将考虑扩展该目标设计平台,以支持Profinet IP核和协议栈,向客户展现赛灵思设计服务部采用的模块方案和设计实践的效果。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)