用一个FPGA实现多个工业以太网协议

用一个FPGA实现多个工业以太网协议

标签: Altera FPGA

公司:Altera

分类:企业宣讲

立即播放
课程简介
视频翻译如下:
  大家好。我是Jeff Winett,Altera的一名应用工程师。今天,我将与您共同研讨一些基于FPGA的解决方案,帮助您开发需要工业以太网协议的系统。

  这是工厂以及过程自动化系统中常见的协议类型。现在,在您的工业以太网系统中通过使用FPGA,您获得了性能和通用性优势,以及灵活的平台,保护产品不会过时,这些都是您保持竞争力所必须的。

  Altera已经与多家工业以太网解决方案供应商进行了合作,因此,我们实际上能够为他们所有的开放标准工业以太网协议提供支持。

  这些协议都是基于相同的IEEE标准,因此,您可以使用一个基于FPGA的平台来开发或者链接您所选择的协议。

  某些协议需要高速实时性能。对于这些协议,实时功能在硬件中以专用协议MAC的形式实现,而其他功能由运行在处理器中的软件堆栈进行处理,这些处理器嵌入在FPGA中,例如,运行在Cyclone III FPGA中的Altera Nios II软核处理器。

  今天,我向您介绍的大部分演示都采用了这种方式进行开发。让我们看一下它们是怎样工作的。

  在我们的前两个演示中,介绍Softing的PROFINET和EtherCAT解决方案。

  这些演示实际上在一片Cyclone III FPGA中同时集成了电机控制和工业以太网。这非常简洁,而今天我们将重点介绍的是工业以太网功能。

  这里是设置。首先,我们有一个Softing的以太网模块。它连接至PC,可以通过PC来配置FPGA,设计中含有工业以太网专用MAC和运行专用协议软件堆栈的Nios II处理器。

  然后,是PROFINET PLC,即可编程逻辑控制器,它可以用作主机,发送PROFINET协议编码命令,控制电机怎样转动。

  FPGA中的专用协议MAC解释这些命令,将其发送给电机控制器电路板,就是这里的第三块电路板——我们的Unjo电机控制板,它连接至无刷直流电机。

  由Unjo电路板实际驱动电机。根据PLC产生的命令,以太网模块接收、解释并发送这些命令,如果PROFINET通信正常,那么,我们应该能看到电机开始转动。

  第一步是将控制电机的程序下载到PLC中,我们使用这里的7个步骤软件将电机控制程序下载到Siemens PLC中,它知道将哪些PROFINET编码命令发送到我们的以太网模块中。

  在下载菜单中,我们选择PLC,然后,删除掉PLC中当前的系统数据,代之以我们的电机控制程序,现在,PLC配置了我们的电机控制程序。

  下一步是采用PROFINET专用MAC配置我们的FPGA,以及运行软件堆栈的Nios-II处理器。对此,我们使用Quartus II编程器,得到需要的软件文件。

  我们按下Start,配置电路板上的Cyclone III器件。现在,PROFINET MAC以OpenCore Plus的方式运行。

  我们让它继续运行,切换到Nios II IDE。在这里,我们选择Run,准备运行Nios II多处理器,名为PROFINET的演示。

  我们选择Run,将软件程序下载到FPGA中。正在下载。我们已经成功地将软件程序下载到Nios II处理器中。

  最后一步是运行PLC,它开始发送PROFINET编码命令。按下Run,您可以看到,我们的电机开始旋转,表明我们成功地通过PROFINET协议实现了PLC和FPGA之间的通信。

  好的,然后我们看一下EtherCAT协议。我们打算把采用了PROFINET协议的PROFINET PLC或者Siemens PLC断开,连接Beckhoff PLC,采用EtherCAT协议进行通信。

  我们把它插到工业以太网模块中。现在,Beckhoff模块保持其配置不变,因此,它已经配置了我们的电机控制程序,这说明我们需要做的是采用EtherCAT专用MAC和Nios II设计来配置我们的FPGA。

  按下Quartus II编程器上的Start按钮,下载软件文件。再次以OpenCore Plus的方式运行EtherCAT MAC。

  现在,我们切换到Nios II IDE,运行EtherCAT演示。我们将软件程序下载到Nios II处理器,它运行在工业以太网模块上,我们成功完成了这一工作。

  现在,我们应该能看到电机在旋转,的确如此。您可以看到,我们成功实现了Beckhoff模块与工业以太网模块之间的EtherCAT通信。

  这非常简单。我们在这个工业以太网小模块上配置FPGA,使其能够与EtherCAT或者PROFINET PLC进行通信。

  这两个演示都得到了我们的合作伙伴Softing的许可,Softing可以单独销售这一工业以太网模块,因此,您可以把它集成到现有系统中,让它来处理与您所选择的任何协议之间的通信。

  或者,如果您希望将工业以太网解决方案集成到新设计中,Softing以IP内核的形式提供PROFINET和EtherCAT MAC,许可后,在相同的FPGA中实现更全面的解决方案。

  除了我们刚刚介绍的PROFINET和EtherCAT解决方案,Softing还为Modbus TCP和EtherNet/IP提供堆栈。

  现在,让我们看一下另一演示,来自合作伙伴IXXAT的演示。

  在这里,我们将介绍怎样使用IXXAT的工业以太网模块来支持POWERLINK协议。

  这一演示在其结构中含有一块基于PCI的卡,它实际用作我们的POWERLINK主机,通过以太网电缆连接至IXXAT的工业以太网模块。

  该电路板连接到这块较大的基本板,基本板模拟了工厂自动化设备,观察电路板上LED的点亮和熄灭,我们能够确定POWERLINK的通信,表明通过POWERLINK协议成功实现了通信。

  现在,FPGA的配置实际存储在工业以太网模块中,在这一闪存中,因此,当电路板上电时,配置被自动装入到Cyclone III器件中,我们已经得到了Nios II处理器以及装入的相应MAC。

  我们需要做的是在这台PC上启动这一测试应用程序。这样,我们能够与PCI卡进行通信。对固件进行初始化。

  我们应该能看到反馈回来的检查结果都正常。的确正常。我们的固件完成了初始化。现在,下载CDC文件。等待实际用作POWERLINK主机的PCI卡和工业以太网模块之间通信链路的建立。

  我们看到成功完成了初始化,开始工作。选择电极(?),看一下这里的LED,电路板上相应的LED点亮,模拟了工厂自动化设备,表征LED也点亮了。

  再看另一个,它在电路板上点亮了,在GUI中,表明我们已经通过POWERLINK协议成功建立了通信。

  我们的想法是帮助您在系统中增加这一工业以太网模块,将其连接至控制设备的主机处理器,在现有设备中轻松加入工业以太网通信链路。

  这意味着您不必重写控制软件,通过您所选择的工业以太网协议实现与设备的通信。

  IXXAT销售这一工业以太网模块。他们还以IP内核的形式提供解决方案,您可以对其进行许可,利用这些内核在FPGA中实现更完善的解决方案。

  通过这些演示,您了解了FPGA是怎样支持各种工业以太网协议的,您可以在相同的FPGA平台上轻松方便的修改协议。

  如果您打算在设计中实现工业以太网协议,请联系您的Altera销售代表或者访问altera.com/industrial。

  这样,您可以获得怎样购买这些IP内核以及软件堆栈等方面的信息。我是Jeff Winett。大家不断完善设计,而我们将帮助您更轻松的进行设计。感谢您的观看。