让我们来详细查看 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 协议栈解决方案。该解决方案提供了功能齐全的开箱即用型协议实施方案。