基于FPGA的工业以太网的实现

2017-06-05 16:00张孟新
电脑知识与技术 2017年7期

张孟新

摘要:目前,基于以太网的组网技术在工业市场的发展中处于举足轻重的位置。因此可以基于IEEE 802.3标准的以太网协议进行以太网的数据传输方式传输标准的网络业务和实时数据。而基于FPGA高性价比、可随时进行处理器配置的特点,本文通过FPGA的NIOSII核实现嵌入式TCP/IP协议以及以太网MAC协议,并提供标准GMII接口,通过外接PHY实现网络连接。

关键词:FPGANIOS П;TCP/IP协议;以太网MAC

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)07-0069-02

1概述

在Altera FPGA处理器上进行的解决方案和硬件配置的同时,软件设计工具也能够提供工程师设计并集成所需要的一切功能。NiosП软核处理器可以进行以太网堆栈驱动程序的编写与集成以及实现其他功能。还可以在需要的情况下继续配置第二个处理器进行搭配工作,这样就可以支持更多开发应用层上面的软件。这种方案可以提供了在单—硬件上面就能很容易满足需求的变化。不必花费大量开发时间与开发费用来实现当以太网协议导入软件堆栈后,在处理器上运行加载,而是利用现成的编程与编译工具和软件进行堆栈的处理,几乎可以支持所有的以太网标准协议。而且,仅在FPGA的硬件平台上改动设计时或者进行协议升级时,就不需要进行对每—新协议设计新的PCB板了。一块PCB板能够集成并支持多种工业以太网的协议,从而不但减轻了企业在开发时期投入的研发经费了,而且降低了持久拥有成本。NIOS II中实现的工业以太网协议能够在不同的协议标准的设计中与FPGA其他系列的器件之间进行移植,所以可以在下一代产品更新使用相同的IP。

2系统实现方案

在本文提到的设计中,NiosП软核处理器不仅可以支持工业以太网控制器的网络协议的配置和管理,还能运行应用层上面的数据报协议(UDP)栈、提供高效精确的时序同步功能,并支持传输层上的双路10/100 PHY收发器的PHY管理和线路诊断功能。Clycone IV的NIOSП软核处理器还可实现高层组网功能,终结TCP/IP链接。生成树协议(STP)和快速生成树协议(RSTP)是数据链路层上的管理协议,它们支持路径冗余检测和避免数据冲突,可防止网络内出现不需要的环路(要使工业以太网络正常工作,两个节点间只能有一条有效路径)。下图1为包括软件和硬件在内的工业以太网框图。

3硬件设计

在硬件层面MAC(以太网的接入控制层)上主要作用是完成数据帧的编码与解码、数据帧的传输以及介质的接入控制,以太网的介入控制层一般由收发模块、收发缓存、MAC寄存器等部分构成。CycloneⅣ器件是Altera公司推出具有功耗低,高密度,性能强的特点的高新处理器;是一款支持用户自定义功能,支持NIOSⅡ系列处理器的低成本的FPGA芯片,芯片提供了大量高密度可现场编程的逻辑单元,满足工业仪器的小型化、集成化需求。本设计使用Cyclone IV系列FPGA替代传统的ASIC芯片,实现千兆以太网M A C功能,设计中调用了Triple Speed Ethernet MegaCore实现MAC模块的NIOSⅡ设计。选择10/100/1000 Mb Ethernet MAC和M Ⅱ/GMII接口方式配置实现MAC模块电路。MAC模块必须通过介质独立接口(MII/GMII)与物理层芯片进行数据传输与通信。88E1111可工作在10Mb/s,100Mb/s,1000Mb/s下,在设计的时候采用了4位数据端口,因此只能采用MII模式(100Mb/s),或者RGMII模式(1000Mb/s),参考官方的DATASHEET后,进行对RGMII编程与开发,然后将88E1111的配置寄存器里面的数据用NIOS Ⅱ读出来,这样就获得了正确的配置数据,然后就将配置数据用于NIOSⅡ配置给芯片就可以实现工业以太网的通信。RGMⅡ原理图连接如下图2所示。

4软件部分

软件部分的主要任务是实现网络底层设备的驱动、Nichestack TCP/IP协议移植和应用程序的开发。Altera公司直接官方提供了HAL系统库,这是一个底层的运行环境,提供了访问Nios П CPU常用的设备驱动程序和组成以太网所需要的组成配置单元,并且NicheStaekt TCP/IP协议的移植也可在IDE工具上定制軟核时直接配置实现。因此,软件部分的开发的大部分工作是建于应用程序的编写上。应用程序的功能主要是在实现Niche Stackt TCP/IP网络协议移植的基础上,实现初始化系统程序的编译,传输控制数据的发送与接收模块的驱动与时序逻辑的实现。软件结构体系如图3所示。

5测试与小结

将工业接口系统接入到计算机网络的局域网进行调试,将各模块进行初始化设置,设置好网络参数,设置接口IP为192.168.132,在另一主机上通过PING命令检测网络的IP层联通性,测试结果为IP层连通,说明接口底层硬件驱动电路和植入到软核里面的TCP/IP协议的实现成功。本文基于Cyclone IV系列的FPGA设计实现了工业以太网接口,利用Qsys和NiosП IDE开发工具,在FPGA处理器嵌入了以太网接口系统的MAC模块,并且成功在软核中植入Nichestack TCP/IP网络传输协议,把MAC模块与物理层工业以太网收发芯片88E1111相连接构成千兆工业以太网传输接口,实现了工业以太网控制器的功能。利用较一般控制器少的硬件资源,实现了基于FPGA的NIOSⅡ的工业以太网接口的设计,满足在工业工厂生产中,实现网络化,仪器设备轻巧化,和器件电路集成化等应用需求,并且采用该技术设计的工业以太网接口具有很好的优越性能和可扩展性,可以直接对现有可利用的硬件资源进行升级实现集成更多功能。