千兆以太网设计

2024-10-13

千兆以太网设计(精选7篇)

千兆以太网设计 篇1

0 引言

随着电子技术的发展,系统设备正向小型化、集成化、网络化发展。FPGA具有逻辑丰富、管脚充沛等特点,广泛应用于高速数据处理和通信的嵌入式系统。在其内部加入处理器系统,不仅能够实现一般的逻辑功能设计,同时能够实现一般单片机功能,通过FPGA内部逻辑功能连接可以使整体获得优异的性能,并大大减少PCB设计工作。

当今,互联网技术的迅速发展,采用以太网实现数据采集和控制方面的应用,成为了电子系统设计的热点。以太网具有价格低廉、稳定可靠、传输速度快、传输距离远等特点,以太网技术发展成熟,具有很高的性价比。采用以太网技术的设备,可以通过TCP/IP协议进行数据的传输,不需要进行传输协议转换,使用和维护设备简单。

结合FPGA和以太网的优点,本文设计一个以FP-GA为核心的嵌入式千兆以太网设备。在本设计使用Altera公司的高端FPGA:EP3SL150F780C3,在其内部构建实现NiosⅡ32位的嵌入式软核处理器,工作频率能够达到185 MHz,其内部丰富的RAM资源,能够为处理器系统提供高速的数据和代码存储。围绕NiosⅡ处理器,加入MAC功能的IP核,可以很快实现以太网的开发。

1 PHY芯片

物理层(PHY层)是属于网络OSI参考模型的最底层,直接面向实际承担数据传输的物理媒介,并且为数据链路层提供一个传输原始比特数据流的物理连接[1]。虽然,物理层处于最底层,但却是整个网络系统的基础。物理层的核心就是PHY芯片,它的性能直接决定着网络的传输性能。

本设计的PHY芯片为Alaska Ultra 88E1111千兆网络物理层设备[2]。该芯片具有的功能:能够支持10 Mb/s/100 Mb/s/1 000 Mb/s的以太网传输,支持GMII/MII,RGMII/MII等多种接口;支持1000BASE-T,100BASE-TX,和10BASE-T的应用,拥有发送和接收标准5类非屏蔽双绞线的功能;能够探测和报告潜在电缆故障,同时能够探测到电缆的脱落、短路和其他阻抗不匹配的情况;提供IEEE 802.3u标准下的自动协商机制(Auto-Negotiation),也就是能够实现两个网络接口间对通信速度的自动协商;提供标准的TWSI和MDC/MDIO接口,控制和查看网络芯片的状态。

2 硬件设计

在本设计中FPGA与PHY芯片的连接方式为GMII/MII,使用PHY的控制接口方式为MDC/MDIO,使用RJ45接口实现电缆与PHY芯片之间的数据传递。系统的硬件的连接如图1所示。

管脚功能描述如下:

MDIO:MAC控制PHY芯片的接口;

MDC:控制MDIO方向;

TXD[7:0]:MAC发送到网络上的数据接口,接口格式为MII时,使用其中的低4位,接口格式为GMII时,使用全部的8位;

TX_EN:使能发送数据的信号,当信号有效时,PHY芯片从TXD接口读入数据;

TX_ER:发送的数据出错。当该信号有效时,PHY芯片将丢弃未发送完的帧数据;

RXD[7:0]:MAC接收网络上的数据接口,接口格式为MII时,使用其中的低4位,接口格式为GMII时,使用全部的8位;

RX_EN:使能接收数据信号,当该信号有效时,MAC从RXD接口读入数据;

RXD_ER:接收的数据出错。当该信号有效时,MAC将丢弃未接收玩的网络帧数据;

TX_CLK:MAC数据发送的时钟;

RX_CLK:MAC数据接收的时钟;

GTX_CLK:在GMII模式下时,PHY芯片需要的外部提供125 MHz输入时钟,在这里通过FPGA内部的PLL来实现;

MDI[3:0]:PHY芯片与RJ45连接的接口。在GMII模式时,需要全部MDI[3:0];在MII模式时,仅需要低位MDI[1:0]工作。

3 NiosⅡ系统的设计

在FPGA上实现NiosⅡ系统,对以太网数据的传送与接收。NiosⅡ系统由NiosⅡ处理器、DMA控制器、三速以太网MAC和RAM构成。NiosⅡ系统的结构如图2所示。

NiosⅡ处理器是Altera公司针对Altera FPGA和HardCopy SIC而开发的32位嵌入式软核处理器[3]。本设计使用快速型的NiosⅡ处理器内核,工作频率最快能够达到185 MHz。在其基础上,植入TCP/IP协议,实现对以太网的数据传输和控制。

MAC(介质访问控制层)主要负责控制与链接物理层的物理介质。本设计中的MAC通过调用三速以太网控制器IP核在FPGA中来实现[4]。三速以太网IP核的MAC,提供了一个标准的Avalon-ST接口,用户可以通过此接口对MAC内的接收FIFO和发送FIFO读写操作;MAC提供MII/GMII接口与PHY芯片实现无缝的连接,同时能够提供MDIO/MDC接口,管理PHY芯片;MAC根据发送的数据自动生成CRC校验码和对接收的数据进行CRC校验;MAC根据内部FIFO的状态或者由处理器的控制来产生停止帧。

RAM包括数据存储器和描述符存储器。数据存储器主要对MAC的数据暂存,包括DMA从MAC接收FIFO中读取的数据和DMA发送给MAC的发送FIFO的数据。描述符存储器,存储NiosⅡ处理器设置的对SGDMA的控制描述符命令。NiosⅡ处理器控制SGDMA读取描述符命令,做相应的数据传输操作,并将SGDMA对应的状态反馈回描述符。

DMA控制器使用Altera公司的Scatter-Gather DMA IP核,能够根据描述符命令,从FIFO中读取指定长度的零散的数据写入到指定地址的存储器中,或者从指定地址的存储器读取指定长度的数据并写入到FIFO中。TX_SGDMA是从数据存储器中读取数据,将数据写入到MAC的发送FIFO中;RX_SGDMA是从MAC的接收FIFO中读取出数据,并将数据写入到数据存储器中。在硬件逻辑设计上,NiosⅡ系统对MAC的数据操作分成接收和发送两个过程:

接收的过程,MAC从MII/GMII接口读入数据,TSE MAC将数据写到模块内的接收FIFO上,处理器根据MAC的状态向描述符存储器内写入描述符命令,RX_SGDMA根据读入的描述符,从MAC的RX FIFO中读入数据,并将数据写入到数据存储器中相应的位置。发送的过程,处理器向描述符存储器写入描述符命令,TX_SGDMA根据读入的描述符,从数据存储器中读入相应的数据,再将数据写入到MAC的TX_FIFO中,MAC将数据装入数据帧内发送到MII/GMII接口。

4 软件设计

4.1 软件架构

对于NiosⅡ系统的软件开发,使用的是NiosⅡEDS开发工具。NiosⅡEDS根据NiosⅡ系统的架构信息,生成BSP文件,包含对应的HAL应用程序接口和硬件驱动,并能够根据工程的应用选择添加Micro C/OS-Ⅱ系统和移植NicheStack TCP/IP协议栈。

Micro C/OS-Ⅱ,是一个开放式的可剥夺的实时操作系统,是一种专门为嵌入式系统设计的内核[4]。MicroC/OS-Ⅱ是一个轻便的,可固化的,可升级的,有优先级的,实时的,多任务内核。

NicheStack,是Interniche公司开发的针对嵌入式系统的通信协议。NicheStack使用较少的内存资源,实现TCP/IP协议。在NiosⅡ系统的软件设计中,NicheStack协议运行在MicroC/OS-Ⅱ系统的基础上,由Micro C/OS-Ⅱ对其提供多任务、消息传递、时间管理等服务。在本设计中,根据NiosⅡ系统的架构,在其基础上实现TCP/IP协议栈,实现对以太网的控制和数据传输,在BSP文件生成的时候,加入Micro C/OS-Ⅱ系统和NicheStack。Nios系统的软件框架结构如图3所示。

4.2 程序设计

在软件架构的基础上,需要实现以太网数据的程序设计。系统与远程设备通信时,以太网数据在程序中的流向为PHY监测任务、套接字任务、用户应用程序,如图4所示。

在创建任务前,在程序中需要向NicheStack堆栈描述MAC设备,也就是将MAC设备注册。在MAC设备的数组tse_mac_device中,定义一个描述符存储器和数据存储器不是一个地址的MAC设备,需要将MAC设备的MAC设备名、收发的DMA设备名和描述符地址加入到该数组中。MAC设备向NicheStack堆栈注册的代码如下:

套接字,是以太网通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。套接字任务,主要分为有套接字服务器任务和套接字客户端任务。

创建一个流套接字服务器程序代码:

创建流套接字客户端程序的代码:

在套接字服务中的发送数据函数代码:

send(SOCKET fd,char*buf,int length,int flag);

从套接字fd发送长度为length,指针为buf的字符串数据。flag为发送数据的格式。与硬件结构对应,字符串buf所在的存储器需要与TX_SGDMA的读数据端口相连,也就是在数据存储器中。

在套接字的服务中接收数据函数代码:

int rev(SOCKET fd,char*buf,int length,int flags);

从套接字fd读入长度为length字符串,并将其写入到buf指向的字符串地址中。flag为接收数据的格式。与硬件结构对应,字符串buf所在的存储器需要与RX_SGDMA的写数据端口相连,也就是在数据存储器中。

用户应用程序与套接字任务的数据交互,可以使用MicroC/OS-Ⅱ系统提供的信号量、队列、邮箱等来实现,并能够方便任务间的协调控制。

5 结语

在FPGA上实现千兆以太网设计,不仅能够实现系统间的高速数据传输,而且MAC在FPGA上实现,有效减少PCB设计工作和成本投入,充分利用FPGA的资源,在整体上,增加了系统的可靠性和集成性,有利于FPGA的功能扩展。

摘要:千兆以太网拥有传输速度快、传输距离远、稳定可靠等优点,是当前嵌入式系统的应用热点。FPGA拥有丰富的逻辑和管脚资源,常用于高速数据处理和通信的嵌入式系统。本文描述一个基于FPGA的千兆以太网系统的设计,本设计在硬件上主要使用千兆以太网PHY芯片88E1111和Altera公司的StratixⅢ系列的FPGA,在FPGA的逻辑上实现NiosⅡ嵌入式系统和以太网的MAC控制器,在NiosⅡ系统的软件上移植入MicroC/OS-Ⅱ实时多任务操作系统和NicheStackTCP/IP协议堆栈。在FPGA上实现千兆以太网设计,有效提高了系统的可靠性和集成性,充分扩展FPGA的功能。

关键词:千兆以太网,FPGA,PHY,TCP/IP

参考文献

[1]任泰明.TCP/IP协议与网络编程[M].西安:西安电子科技大学出版社,2004.

[2]Marvell Corporation.88E1111datasheet integrated 10/100/1000ultra gigabit Ethernet transceiver[R].US:MarvellCorporation,2004.

[3]蔡伟纲.Nios2软件架构解析[M].西安:西安电子科技大学出版社,2007.

[4]Altera Corporation.Triple-speed Ethernet MegaCore func-tion user guide[R].US:Altera Corporation,2010.

[5]LABROSSE Jean.μC/OS-Ⅱ:the real-time kernel[M].[S.l.]:[s.n.],2002.

[6]李桦林,宋同晶,赵成伟.基于MPSoC的以太网接口设计与实现[J].电子科技,2011(12):106-108.

千兆以太网设计 篇2

千兆以太网兼容目前所有以太网,遵循以太网原有的标准和规则,其中包括CSMA/CD协议、以太网帧、全双工、流量控制以及IEEE802. 3 标准中所定义的管理对象。

TCP / IP协议是一种网络通信协议,其规范了网络上的所有通信设备,尤其是两台主机之间的数据传输格式及方式。

在电子设备网络化的各类实现方案中,共同之处在于如何通过网络技术将设备接入到网络中从而实现远程控制与管理。FPGA作为专用集成电路( ASIC) 领域中一种半定制电路的出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,在嵌入式系统开发中得到越来越多的应用。因此,如何在FPGA中实现TCP/IP协议与千兆以太网的高速接入具有较大的现实意义。

1 OSI参考模型

开放式系统互联( Open System Interconnection,OSI) 是国际标准化组织( ISO) 制定的网络通信7 层参考模型。这些层本质上是相互独立的。上面3 层与应用相关,而下面4 层则与网络层通过物理媒质进行数据通信。数据链路层控制物理媒质的接入,而物理层建立链路所需的机械、电气、功能和规模特性。千兆以太网接口则在这两层中实现。

并不是所有网络配置均具有OSI 7 层模型,这是因为众多网络不提供为其上层所定义的服务。例如,单独的以太网仅实现最低的数据链路层和物理层。从一个以太网LAN访问因特网需要增加网络层和传输层,以实现因特网协议集的TCP/IP协议。

2 数据传输方案

2. 1 硬件设计

千兆以太网传输电路中最关键的是数据链路层( MAC) 和物理层( PHY) 芯片以及这两者的连接接口。本文使用Altera公司提供的三速以太网IP核作为MAC层控制器,从而减少系统成本和芯片的数量,而PHY芯片使用88E1111 以太网芯片。图2 给出了千兆以太网的基本设计框图。

本文将三速以太网接口配置成1 000 Mbit·s- 1模式,通过GMII或RGMII接口与PHY芯片88E1111 连接,使用MDIO/MDC配置接口对88E1111 进行配置。三速以太网IP核内有32 个寄存器,而PHY芯片内部同样拥有32 个寄存器,两者相互匹配,只需通过配置IP核内部的寄存器便可完成对PHY的配置工作,减少了工作流程,简化了工作方式。PHY芯片连接以太网接头RJ45,完成了底层硬件环境的搭建。

如图2 所示,三速以太网IP核通过Avalon总线与Nios II软核处理器相连接,实现了对传输数据的收发控制。本文使用SOPC Builder构建一个基于Nios II的可编程片上系统,具有灵活的设计方式,可裁剪、扩充、升级。Nios软核处理器主要工作分为3 个部分: 应用程序、TCP/IP协议和驱动程序。应用程序由用户调用协议栈接口程序来实现以太网数据传输,而以太网驱动程序为上层协议与三速以太网IP核架起了桥梁。

2. 2 软件设计

千兆以太网传输系统的软件部分由C /C ++ 语言编程实现。在Nios II软件开发环境下,实现Nios II软核处理器的相关操作。

2. 2. 1 软件设计流程

如图3 所示具体工作如下: ( 1) 启动Nios II软核处理器; ( 2) 服务器建立等待连接; ( 3) 若连接失败继续等待; 若成功连接,则发送指令; ( 4) 若未接收到发送指令,则继续等待; 若接收到发送指令,则开始发送数据; ( 5) 在发送数据过程中,若未收到停止发送指令,继续发送数据; 若收到停止发送指令,则暂停发送数据; ( 6) 暂停后,若收到断开连接指令,则Nios II停止工作,网络断开; 若未收到断开指令,则返回步骤( 4) 。

2. 2. 2 UDP协议

UDP协议数据报的封装在运输层进行,打包好的UDP数据将送往网络层进行IP协议的打包。UDP要完成进程到进程的通信,将报文交付给正确的进程。当进程有报文要通过UDP发送时,其就将这一报文连同一对套接字地址以及数据的长度传递给UDP。UDP收到数据后加上UDP首部,然后UDP就将这用户数据报传递给IP。图4 给出了UDP封装格式[2]。

本文主要使用UDP通信,实现ARP协议和IP协议。UDP与TCP一样均属于传输层协议,位于应用层与网络层之间。UDP相对于TCP来说较为简单,编写代码量较少,正因如此其所占程序和内存空间更少,运行速度更快。ARP为IP地址与对应的硬件地址之间提供动态映射,发送以太网数据到主机上时,根据48 bit以太网硬件地址来确定目的接口。 IP协议是TCP / IP协议族中最为核心的协议,所有TCP、UDP、ICMP及IGMP数据均以IP数据报格式传输。

3 千兆以太网传输测试

测试所需的实验条件和开发工具: 高性能PC机一台,Quartus软件开发环境,Cyclone IV FPGA系列开发套件和cat - 5 网线一根。

FPGA与PC进行以太网数据传输,采用UDP协议,用cat - 5 网线将开发版与PC相连接。FPGA内部产生递增数据,足够一个数据包后,通过网络将数据传输到PC,PC也可通过网络给FPGA发送数据,而FPGA则通过中断接收数据在Nios II IDE中显示。

3. 1 发送数据检测

使用Wireshark抓包工具采集包内数据进行分析。如图5 所示,该以太网帧结构中物理目的地址为( 00: 0f: ea: fd: 9f: 96) ,物理源地址为( 01: 60: 6e: 11:02: 0f) ,类型( 0x0080) 为IP。

如图6 所示,该以太网帧结构中总长度为1 480 Byte( 图中05c8) ,生存时间( 128) 即0x80,协议类型UDP( 17)即0x11。

如图7 所示,有效载荷长度为1 438 Byte,从0x00开始递增,达到一个数据包长度后发出。

3. 2 接收数据检测

一次完整的网络连接和断开,可从Nios II IDE窗口中得到接收信息,如图8 所示。

接收包的长度为1 480 Byte,由目的地址、源地址、数据类型和有效载荷等组成。

将Nios II IDE窗口接收到的数据与抓包采集的数据进行对比发现,收发数据一致,实现了千兆以太网数据的正确传输。

4 结束语

使用FPGA开发平台实现千兆以太网数据传输设计,满足了系统间的数据高速传输,提高系统集成度和网络处理能力,有效减少成本投入。对所设计千兆以太网传输方案进行测试,结果表明所传输数据能正确收发,但由于采用了Nios II软核处理器实现TCP/IP协议,其传输速度相对于硬件较慢,因此如何使用硬件实现TCP/IP协议来提高传输速率需要进一步研究。

摘要:为解决现代化设备如何使用千兆以太网高速接入的问题,使用Altera公司cyclone Ⅳ系列FPGA作为嵌入式开发平台,采用Nios Ⅱ软核处理器实现TCP/IP协议。对所设计传输方案进行测试,结果表明所传输数据能正确收发,并具有较高的传输效率。

关键词:千兆以太网,现场可编程门阵列,传输控制协议/网际协议,嵌入式开发

参考文献

[1]李航.基于FPGA和千兆以太网(Gig E)的图像处理系统设计[D].南京:南京理工大学,2014.

[2]郭晓宇.基于IEEE802.3标准的以太网数据帧格式的封装实现[D].北京:北京交通大学,2008.

[3]韦宏,付友涛,孔凡鹏,等.基于FPGA的千兆以太网设计[J].现代电子技术,2012,35(18):56-59.

[4]杨威.基于FPGA的以太网和串口数据传输系统设计与实现[D].哈尔滨:哈尔滨工程大学,2013.

[5]詹俊鹏,李鹏.基于Altera FPGA的千兆以太网实现方案[J].电子设计工程,2009,17(2):50-52.

[6]李文芝,刘天华.基于FPGA的10/100/1 000 Mbit·s-1三态以太网卡设计[J].沈阳师范大学学报:自然科学版,2010,28(1):52-55.

[7]赵国峰,邱作雨,张毅.基于单片机的嵌入式TCP/IP协议栈的设计与实现[J].计算机技术与发展,2009,19(3):137-140.

[8]马俊,尉广军.基于SOPC的以太网远程数据采集系统设计[J].电子设计工程,2012,20(4):69-72.

[9]张博,张棍基于FPGA的以太网MAC控制器的设计[J].科技情报开发与经济,2009,19(27):97-99.

千兆以太网设计 篇3

关键词:千兆光纤以太网,FPGA,88E1111芯片

1 引言

随着近几年互联网+ 的提出与推广, 网络技术应用范围越广泛, 而在计算机网络的发展技术当中, 在不同应用领域存在着激烈的竞争, 在以太网技术以稳定性、通用性、开放性、高速性和廉价性, 很多领域得到广泛应用。同样100Mb Ps带宽下工作的FDDI与快速以太网相比具有许多的优点, 最主要表现在快速以太网技术支持3、4、5 类双绞线以及光纤的连接, 能充分的利用现有的设备而获得更高的带宽和速度。但快速以太网的技术没有改变,当网络数据量大时, 会造成数据吞吐量降低。

千兆光纤以太网技术不但继承了传统以太网技术价格便宜的优点, 而且还填补了802.3 以太网/ 快速以太网标准的不足。千兆光纤以太网利与原来以太网标准所有规定全部相同, 完全兼容以太网和快速以太网, 因此可以实现在原有低速以太网基础上平滑、连续性的网络升级。

以太网发展至今也具有一定的优势, 从办公、生活网络应用, 走向了工业控制领域, 发展到国防军工、航空航天等可靠性、高速性的领域。现在通过通信技术的提高, 通信速率得到了提高, 从以前的10M、100M发展到现在的1000M、1G, 网络速度的加快使得整个网络中的负担降低, 同时传输延时时间也大大减小; 也采用了全双工的模式, 网络上数据的收发同时进行, 全双工的模式也避免了因碰撞引起的通信响应不确定, 将以太网用于军工、航空航天等领域, 使得具有应用广泛、成本低廉、通信速率高、软硬件资源丰富、可持续发展能力强、易于实现管控一体化几个优势[1]。

基于FPGA的千兆光纤以太网的数据传输, 使得有效传输数据的吞吐量最大化。千兆光纤网作为新一代的以太网技术, 不仅保持原来的10M、100M以太网已有的CSMA/CD协议, 而且还保持帧格式和长度不变,同样支持全双工与半双工模式, 也最大的继承了传统以太网的技术优点。利用原有的以太网标准基础之上制定了千兆以太网,完全兼容了已经普遍应用的快速以太网,根据原有网络基础上更新设备就可方便的将普通的网络升级到千兆以太网。千兆以太网向下兼容, 并支持多种模式, 可以利用现今市场上广泛存在的非屏蔽双绞线进行数据的传输。千兆以太网与普通网络一致具有良好的可扩展性。千兆以太网可以做到低廉的价格及优异的性能, 用户在已搭建的网络基础上就可以升级。

2 FPGA实现以太网控制

2.1 以太网数据层

目前最为广泛的参考模型为OSI(Open System Interconnection, 开放系统互连), 应用FPGA实现的以太网也遵循这个模型, 该模型由ISO( 国际标准化组织) 提出了一种在现有网络的基础上不基于设备和系统的体系结构。该模型成为OSI 7 层协议, 从底层开始,依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层[2]。如图1 IEEE 802.3z中千兆光纤技术OSI 7 层模型。介于物理层和网络层之间为数据链路层(Data Link Layer), 其主要功能包括: 将数据拼接成数据帧结构, 控制数据帧在物理信道上的传输, 为实体网络间提供建立连接、维持和释放的服务, 由接收方的数据流的大小要求调节数据发送速率以使其相匹配。同时完成帧结构框架的构建、错误的查找及纠正以及信道上数据流量的控制, 有效实现点对点或多点间数据的可靠传输[3]。

2.2 以太网帧结构

以太网帧是网络通信信号的基本单元, 以太网多组数据进行封装, 封装成帧的形式进行发送。以太网的帧分为数据帧和管理帧, 其中数据帧分为标准帧和VLAN扩展帧。图2 和图3 分别显示了以太网标准帧和VLAN采用的扩展帧的机构, 传输是数据从左面开始传输[4]。在两种帧结构下的区别在源地址与数据长度间是否有4 个字节的标志位来区别, 两种形式下的以太网帧都包含帧前导(Preamble)、帧起始符(SFD)、MAC地址、数据类型/ 长度(Length/Type)、数据字段、帧检验字段(FCS),其中帧前导由7 个字节0x55 构成, 帧起始由7 个字节0xd5 构成, 帧检验字段是为从MAC地址开始通过CRC校验生成4 个字节的校验和[5]; 对于选择无论什么样的帧格式, 都必须要由7 个字节帧前导、1 个字节帧起始、4 个字节帧校验字段FCS, 这三个字段在本文中选择的芯片上必须要满足, 否则是数据不能穿透PHY进行传输。

3 实现以太网传输PHY芯片的硬件设计

3.1 PHY芯片接口

通过FPGA实现千兆光纤以太网数据传输选择了88E1111 物理接口芯片, 如图4,88E1111 芯片功能结构图, 对于此款芯片包含两种网络接口, 一种就是以太网线接口, 另一种就是本文中要实现的光纤接口, 其中对于光口的连接通过串行总线接口与PHY连接, 然后PHY芯片连接MAC通过GMII或RGMII接口连接;串行总线接口包含S_IN+/-,S_OUT+/- 和SD+/- 几个引脚。

通过光纤接口数据信号传输是典型的直街连接到MAC, 并且对PHY芯片是没有输入信号检测, 在默认模式下信号检测总是连接状态;如果想要应用光口传输数据检测信号作为88E1111芯片的输入,那么将要通过信号检测输入状态,可以通过寄存器配置来设定完成。

对于MAC段接口, 如表1 PHY芯片MAC引脚, 可以通过配置引脚来配置成不同的MAC接口模式,GMII/MII、RGMII/Modified MII,SGMII, 串行接口等连接模式, 而这些接口都可配置成10M、100M、1000M的网络接口。

3.2 光纤接口模式的连接

图5 MAC接口到光口的连接可以通过模式配置寄存器HWCFG_MODE[3:0] 配置, 共有两种模式, 一种是GMII到光纤传输, 配置值为0111; 另外一种是RGMII到光纤传输配, 设置值为0011。通过HWCFG_MODE[3:0] 配置的GMII模式时, 只有一种1000M数据传输; 数据发送与接受时, 通过串行接口完成数据的接受与发送, 同时此种模式也支持1000BASE-X自动协商, 同样对于RGMII模式时, 使用的也是1000Mbps自动协商功能。

3.3 88E1111 光纤接口硬件电路设计

本文中实现千兆光纤通讯是应用FPGA与MAC口相接完成数据传输,PHY芯片与光纤接口如图6 所示,应用上述的串口接口模式, 配置方式通过HWCFG_MODE[3:0] 值0111 为GMII模式, 通过图示的PCB接线就可通过FPGA实现千兆光纤数据的传输。

4 千兆光纤以太网的软件设计

4.1 88E1111 的程序设计

本文中只介绍利用Verilog HDL语言实现无协议数据的收发, 根据以上的硬件介绍及参考手册, 做好PCB电路板, 完成电源、时钟、复位灯各路信号的测试, 接着可按以下的步骤操作;

1) 了解传输: 在不需要懂以上所说的任何网络协议模型, 先通过硬件做个实验, 通过PC机利用以太网测试软件或测试程序向88E1111 实验板发送一组数据, 例如01 02 03……, 主要是发送一组已知数据, 最好能发无任何协议的数据, 例如要是带UDP协议的需要区分出是后面哪一段才是自己定义的数据;

2) 读信号: 通过Quartus II软件中Signal Tap抓波形, 那么需要抓那些信号呢, 下面就来看硬件了, 翻开手册查找根读数据有相关的信号有RX_CLK、RX_ER、RX_DV、RXD[7:0], 看下这些信号的特点, 都是作为输出不需要控制, 即只读就可以了, 看下说明4 个标志依次代表读时钟、读数据错误、读数据有效、读数据,直到现在应该知道通过Signal Tap抓那些信号了;

3) 抓取数据:PC向板子发送的数据都为预先设定好的, 即为已知数据, 如果数据要是少系统后面会自动补数据8’h00, 多发送几次变化的数据, 看看抓到什么时序, 查找一下共同特点, 此时将会都会出现前面8’h558’h55 8’h55 8’h55 8’h55 8’h55 8’h55 8’hd5+数据+4 字节变化的数, 对这种结构就是88E1111 的格式; 如果通过PC用抓包软件只能看到‘数据+4 字节变化的数’做下对比吧!在此把88E1111 发送的数据流比喻成针线,8’h55 8’h55 8’h55 8’h55 8’h55 8’h558’h55 8’hd5 这就是针, 数据就是线,4 字节变化的数这个是啥呢, 如果针带着线一直穿是不行的, 因为停不下来需要打个结, 这样就会停下来了, 那么这‘4 字节变化的数’就是代表着数据的结束;

4) 数据结构: 上面说了那么多就是为了理解, 简单从网络传输理解就是发送的数据前面要有帧前导与帧起始符, 后面要有校验和, 帧前导与帧起始符都是固定的数据了, 只要是这组数据就行, 那么校验是怎么做的呢,也是比较简单的, 就是通过CRC校验和完成的, 至于用查表还是16 位数相加求反码根据自己的习惯选择一下, 注意帧前导不计算在校验和内;

5) 写信号: 知道数据读取咋回事了吧, 至于说不加协议怎么用, 那接下来就是应用的事了, 下面接着了解发送数据, 有了读数据, 写数据就是一个反过程, 从硬件角度讲, 所有有关读引脚变写引脚, 那也就意味着都是输入脚了, 需要应用FPGA控制输出时序状态, 其实也是很容易的, 看看有那些引脚GTX_CLK、TX_ER、TX_EN、TXD[7:0], 不用多说手册明确说明依次为写时钟、写数据错误、写使能、写数据, 为了能发出数据一定保证数据的正确性, 所以只要用到GTX_CLK、TX_EN、TXD[7:0] 这三个就可以了, 时钟为125MHz,TX_EN信号置1 后TXD[7:0] 就为有效数据了, 一个时钟一个字节数据;

6) 发送数据: 在TX_EN有效后, 对应读数据结构应该知道发送什么数据吧, 那个‘针’, 有帧前导与帧起始符才可以畅通无阻的, 连续的一个时钟一个时钟的发8’h55 8’h55 8’h55 8’h55 8’h55 8’h55 8’h558’hd5 这一串数吧, 发完了接着来发送自己的数据, 注意需要要做校验和, 数据发送完毕, 接着快把校验和发出去, 校验和发送完毕, 一个数据包就发出去了, 通过PC机用抓包软件看看数据能不能抓到、数据对不对;

7) 提示: 帧前导、帧起始符根校验和有一个错误,数据都是发送不出去的, 就是没有‘针’‘结’网络传输是不识别的, 这个其实还根硬件电路板布局布线有关系的, 但要简单几十个数一般可以忽略这个问题。

4.2 顶层控制模块实现实现

根据Verilog HDL语法规则[6], 实现千兆网光纤数据通讯顶层文件的代码, 主要分成几个部分: 主机端,即供数据发送接受的主时钟、配置寄存器的时钟及复位;MAC接口端, 即直街与FPGA通讯读取数据的接口, 分别为PHY芯片的复位接口, 读写的时钟、使能、数据端口, 模式寄存器配置接口; 内部数据通讯接口端,即通过FPGA内部完成与其它设备数据的通信端, 本文中试验是采集的摄像头的数据分别做了, 数据读写请求、同步、数据端等, 同样根与MAC接口端一样也要具有时钟、读写使能、数据等。下面是通过Verilog HDL语言完成千兆以太网光纤接口传输的顶层代码:

5 结束语

本文中选取了多种接口模式的一款网络芯片实现千兆光纤以太网数据传输,通过与PC机网络助手软件的配合,完成数据发送接收的测试, 选择的网络芯片是MARVELL公司的88E1111 PHY芯片, 支持的多种MAC接口模式,可以灵活的操作; 由于FPGA的自身特点, 利用FPGA控制这款芯片十分方便, 即不需要复杂的电路设计, 也不需要特殊的代码编写, 只需要按照手册上的设置、时序完成指定的功能代码就可实现千兆光纤以太网的数据传输;同时此文介绍千兆光纤以太网不包含任何协议, 针对网络协议只需在此基础上增加即可完成。

参考文献

[1]王平,谢昊飞,肖琼,向敏,陈敏那.工业以太网技术[M].重庆:科学出版社,2005.

[2]史旭明.面向企业网的微机电火花加工数控系统的研究[D].哈尔滨:哈尔滨工业大学,2010.

[3]区益善.计算机网络工程手册[M].北京:电子工业出版社,1994.

[4]Xilinx Inc.Virtex-5 FPGA Embedded Tri-mode Ethernet MAC User Guide Version 1.10[2011-02][EB/OL].http://www.xilinx.com.

[5]王景忠.基于MPC8280的以太网接口板设计与实现[D].西安电子科技大学,2011.

千兆以太网设计 篇4

文中将目前已经比较成熟的千兆以太网技术, 简化地应用于大型实时传输系统内部数据传输, 使其在不增加硬件成本、没有大量增加系统复杂度的条件下, 满足了系统对传输距离、数据带宽、抗干扰能力的要求。

1 千兆以太网技术

1.1 千兆以太网总体介绍

千兆以太网是建立在以太网标准基础之上的, 与目前大量使用的快速以太网 (百兆网) 完全兼容, 并利用了原以太网标准所规定的全部技术规范。同时, 千兆以太网技术使数据传输带宽达到了1 GB/s, 比快速以太网升高了10倍, 满足了网络快速发展对带宽提出的要求。

千兆以太网的标准包含在IEEE 802.3中, 目前有802.3z 和802.3ab两个标准。

其中802.3ab是基于双绞线的布线标准, 使用4对5类双绞线, 最大传输距离为100 m, 这个标准就是1000BASE-T。

而802.3z是基于光纤通道的标准, 使用的媒介有3种[1]:1000Base-LX规范为长距离使用的多模和单模光纤参数。其中多模光纤传输距离为300~550 m, 单模光纤的传输距离为3 000 m。该规范要求使用价格相对昂贵的长波激光收发器;1000Base-SX规范为短距离使用的多模光纤参数, 使用多模光纤和低成本的短波CD (Compact Disc) 或VCSEL激光器, 其传输距离为300~550 m;1000BASE-CX规范使用短距离的屏蔽双绞线STP, 其传输距离为25 m, 主要用于在配线间使用短跳线电缆把高性能的服务器和高速外设相连。

1.2 千兆以太网物理层介绍

在OSI (开放式系统互联参考模型) 中, 物理层处于最底层, 是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备, 为数据传输提供可靠的环境。

千兆以太网的物理层针对不同的传输介质也有不同的标准, 同时其实现方式及内部编码方式都有所不同。但是物理层与其上层 (链路层) 的接口不依赖于传输介质, 而有独立的标准。

在针对光纤通信的标准802.3z中, 各层示意图, 如图1所示。物理层 (Physical) 处于OSI参考模型的最底层, 它通过GMII标准接口与链路层 (Data Link) 相连接, 通过MDI接口与各种实际光纤相连。

在针对双绞线通信的标准802.3ab中, 各层示意图, 如图2所示。同样, 物理层 (Physical) 处于OSI参考模型的最底层, 它通过GMII标准接口与链路层 (Data Link) 相连接, 通过MDI接口与实际传输介质相连。在物理层内部, 又分为物理编码子层 (PCS) 和物理介质接入子层 (PMA) 。PCS完成各种数据编码, 以实现数据传输的稳定。PMA进行实际的数据传输并检测传输状态[2]。

2 系统设计

2.1 具体千兆以太网物理层选择

要利用千兆技术进行数据传输, 可以从链路层接入, 也可以从物理层接入。但是如果从链路层接入, 则要增加一片链路层芯片, 同时还要做少许标准协议。要实现这些标准协议, 系统上就要添加智能器件, 系统复杂度提高。而针对一些实时传输系统, 由于数据发送和接收的两端都是该系统内的子模块, 完全没有必要增加标准协议, 所以, 文中采用直接从物理层接入的方式使用千兆以太网技术。

考虑到工程实践中对成本及安装复杂度的要求, 采用价格较为便宜、布线较为简单的双绞线, 也就是采用支持1000BASE-T的物理层芯片。

根据IEEE 802.3ab, 物理层芯片对上支持GMII接口, 对下为MDI接口。数据发送通路中, PCS层将输入的数据进行8B1Q4和PAM5编码, 然后送到PMA层, 再输出到传输介质;数据接收时, PCS层从PMA层获得数据, 然后进行解码, 输出到GMII接口。物理层芯片对数据的编码和解码, 大大提高了数据传输距离和传输的稳定性;而且由于该类物理层芯片在市场上普遍存在, 所以成本也比较低。

2.2 具体系统设计

采用RealTek公司的千兆以太网物理层芯片和Altera公司的Cyclone系列FPGA, 实现了一个高带宽、高稳定性的实时传输系统。系统框图, 如图3所示。

每个子系统都包含2对千兆以太网接口、1个FPGA和其余功能模块。2对千兆以太网接口用于和系统内其它子系统通信, 进行实时数据传输;FPGA是数据调度和处理核心;其余功能模块是指本系统要完成的一些功能, 这些模块根据不同的系统会有所不同。

物理层芯片、变压器、以及网口和网线, 都是标准且通用的设备或器材。FPGA一方面要实现GMII接口来获得和发送数据, 另一方面也要将数据与其它功能模块关联起来实现一定的功能。数据传输过程中的编码和解码工作由物理层芯片来完成, 大大减轻了FPGA的工作量, 使FPGA的程序设计能够更专注与数据调度和处理, 而并非对数据的解析。

3 程序设计

如图3所示, 除去“其余功能模块”, 每个子系统中只有FPGA为可编程器件。那么程序设计的重点也就是对FPGA程序设计, FPGA程序框图, 如图4所示。

功能模块是指要完成特定功能的系统所需的那部分FPGA程序, 文中不做探讨。数据调度及处理模块主要完成对各个模块之间的数据管理的同步;GMII接口模块是用于实现对物理层芯片的操作, 以获得和发送数据;测试模块是为了检测通过GMII接口模块传输数据的正确率而添加的额外模块。下面主要讨论GMII接口模块和测试相关部分。

3.1 GMII接口模块

GMII是一种标准接口, 但具体到物理层芯片时, 不同厂家芯片的时序会有所差异。选用RealTek公司物理层芯片, 其接收和发送时序图, 如图5所示[3]。

图5中, MRXC和PTXC分别为接收时钟和发送时钟;MRXD和PTXD分别为接收数据和发送数据;MRXDV为数据有效标志, 一般表示一帧数据的有效部分;PTXEN为发送数据使能, 在PTXEN有效时, PTXD上的数据才能被发送出去。根据图5, 在FPGA中可以方便地实现GMII接口。

3.2 测试相关模块

为了能够将测试结果显示并保存到计算机中, 测试功能除了要有FPGA程序支持外, 还要有上位机软件支持, 测试相关模块框图, 如图6所示。

数据按包发送, 每包进行和校验。接收模块接收一包数据后, 也进行和校验。如果计算的校验值和接收到的校验值不一样, 则认为出错。PC上的检测软件, 每隔3 s通过测试模块读取错误统计数, 并保存到文件, 检测软件还可以读取最近一包的数据。

通过测试相关这些模块, 就可以很方便地测试并记录数据传输的正确率。

4 实验结果

测试结果如表1所示。

注: (1) 网线为5类双绞线; (2) 每包数据为1 500 bit (包括包间隔) ; (3) 总包数中的M表示106。

实验表明, 该数据传输稳定性很高, 传输距离足够远, 对于1 GB/s的带宽, 利用率也在99%以上, 充分满足了对高带宽的需求。

5 结束语

文中采用千兆以太网物理层芯片与FPGA结合的方案, 实现了大型实时传输系统内部高速数据传输, 在不增加硬件成本、没有大量增加系统复杂度的条件下, 满足了该类系统对传输距离、数据带宽、抗干扰能力的苛刻要求。

摘要:分析了千兆以太网技术的特点及其物理层优势, 结合实时传输系统对数据传输的要求, 提出并实现了一种基于千兆以太网物理层芯片和FPGA的实时数据传输系统方案。实验证明, 该方案成本低、传输带宽高、稳定性好、传输距离远, 能够适应大多数实时传输系统的要求, 是一种成本低廉、性能优越、切实可行的高速传输方法。

关键词:千兆以太网,实时传输,FPGA

参考文献

[1]Rich Seifert.千兆以太网技术与应用[M].郎波, 译.北京:机械工业出版社, 2000.

[2]IEEE.IEEE Std802.3-2000[S].USA:IEEE, 2000.

千兆以太网设计 篇5

某高速图像记录器用于记录红外探测器传送的图像数据,单块采集卡容量为320 Gbyte。根据要求,数据回传速率不小于30 Mbit/s。本文针对该高速图像记录器设计出了一种基于FPGA内部MAC和外部独立PHY的千兆以太网数据传输系统[2],很好地保证了高速图像数据的稳定传输,并实现了上位机通过以太网对记录器进行控制。其优化的UDP传输模式有效地减少了嵌入式设备的硬件资源开销,并且可以与不同配置、不同工况的上位机稳定、可靠、高效率地传输。

1 嵌入式千兆以太网接口设计方案

设计采用FPGA和网络控制芯片( 88E1111) 组成硬件平台。网络控制芯片为FPGA提供待处理的MAC数据源和输出待上传的MAC数据。通过编程在FPGA中实现TCP/IP网络协议族和网络控制芯片的驱动。这种方法虽然编程工作量大,但设计成本低,而且可以根据实际需要进行功能扩展与协议优化,简单灵活[3]。88E1111 为典型的千兆网络芯片,有硬件配置与软件配置两种方式。可以尽可能使用内部寄存器默认值,并通过合理的外部电路设计使上电后芯片直接使用所需的工作模式与MAC接口进入数据包传输工作状态。这样可以省略上电后大量寄存器设置过程,简化了内部逻辑控制,并提高了工作性能。

高速图像传输接口硬件原理框图如图1 所示。上位机通过千兆以太网向FPGA传送包含高速图像记录器控制命令的数据帧,MAC接收并解析命令,进而对整个系统进行控制。高速图像记录器在收到回传图像数据的请求后由用户逻辑控制发送数据缓存FIFO进行数据缓冲,同时实现时钟域变换。然后由MAC进行以太网帧封装并通过GMII接口传输到物理层芯片PHY,再经由RJ-45 网口通过6 类非屏蔽双绞线( UTP) 传至上位机。SDRAM用于对发送数据进行存储以实现出错重传机制[4]。

2 基于以太网的高速传输方案选择

网络传输协议使用的主要是TCP/IP协议簇。本设计主要涉及OSI模型7 层网络结构中的1 ~ 4 层,分别是物理层、数据链路层、网络层和传输层。物理层PHY由芯片88E1111实现,数据链路层采用DIX主导的以太网EV2 标准封包,网络层采用IP协议。

在传输层TCP或UDP是使用较为广泛的两种模式,区别如表1 所示。通常情况下以太网传输都稳定可靠,需要重传的几率较小。因此在大量数据高速传输过程中采用TCP协议性价比不高。UDP传输的不稳定可以通过对协议的优化克服。所以本设计中在传输层选择使用UDP协议。并通过增加重传机制与优化数据传输模式的手段减小资源消耗、增加传输可靠性。

3 绕过TCP / IP协议的接收模式

通常以太网传输过程应该在发送端将待发送的用户数据根据标准的以太网帧结构,做必要的校验码计算,逐层打包,形成一个标准的以太网帧,发送给物理层芯片。在接收端将接收到以太网帧逐层解包,并且校验,得到需要的用户数据[5]。这样的传输模式可以适应所有的以太网传输过程。但是,以太网接口模块程序在接收到以太网帧之后逐层解包,并且校验得到用户数据的过程不仅需要编写繁琐的程序,而且消耗大量的FPGA资源[6]。针对数据记录器的实际需求,高速数据回读接口只需要通过以太网接收命令,并不需要精确地获得上位机下传的所有用户数据。所以,采用一种以以太网为介质、UDP传输协议为基础在FPGA接收端绕过TCP/IP协议降低了协议解析的复杂度与硬件开销的命令接收及识别模式,如图2 所示。

上位机通过软件将待发送的固定格式的命令字段打包发送。FPGA从88E1111 处接收含有命令字段的整包数据,但不进行校验与解包。而是判断接收到的数据中是否含有预先设定好的命令字段,并对相应的命令做出响应。为了保证命令识别的可靠性、提高命令识别率和减少资源消耗,命令字段需要尽量简洁,且独一无二。

例如将命令字段的格式设定为[55 AA + 命令长度( 1 byte) + 命令1 + 命令2 + 校验和( 命令1 与命令2 累加和) ]的形式( 见表2) 。通过这种格式的设定,可以有效避免命令的误响应。而且通过赋予命令1,命令2 不同的设定值,可以实现65 536 种不同命令的下发,完全可以满足上位机控制数据记录器的需求。

4 有重传机制的流量可控上传模式

以太网发送数据是MAC将用户数据按照以太网数据帧格式将用户数据逐层打包,然后通过GMII接口发送的过程[7]。

4. 1 增加重传依据的以太网帧结构

数据在以太网中传输是以以太网帧为单位进行的。在以太网帧中,数据报( IP首部+ UDP首部+ 用户数据) 部分的长度一般应在46 ~ 1 500 byte之间( 支持巨帧的模式除外)[8]。UDP传输协议决定了每一包数据都必须附加以太网首部、IP首部、UDP首部、CRC校验和共54 byte的数据,所以增加的用户数据的数据量可以有效提高用户数据在整包数据中的比例,从而提高传输效率。为了方便上位机对收到的数据进行统计、排序、重组,在用户数据起始增加2 byte的包计数,结合FLASH的存取操作以块( 512 byte) 为单位,综合考虑,采用用户数据部分为2 byte包计数+ 1 024 byte数据的以太网帧,如图3 所示。这样的帧结构虽然使以太网传输效率由之前的95. 0% 降低到94. 8% ,但为数据的重组以及出错重传机制提供了依据,大大提高了传输可靠性。

4. 2 可靠的UDP传输模式

理想的传输条件有两个: 传输信道不产生差错; 不管发送方以多快的速度发送数据,接收方都来得及处理。排除信息可靠传递机制的UDP协议虽然提高了数据传输效率降低开发难度,但受上位机配置、通信环境等的影响,上述两个理想传输条件均不具备,因而数据传输的稳定性和准确性无法得到保障[9]。为此,本文在UDP传输协议的基础上以增加重传依据的以太网帧结构为依据,实现了一种流量可控并带有重传机制的数据传输模式,如图4 所示。

1) 上位机发送数据请求; 2) 图像采集卡通过以太网发送含有包计数的512 个以太网包给上位机,同时将发送的该512 包数据存入SDRAM; 3) 上位机在接收以太网包的过程中根据包计数对收到的数据进行排序。若收到512 包数据,则剔除包计数字段,对数据进行重组,写入硬盘并发送下一次数据请求; 若经过0. 5 s仍然未收全512 包数据,则将收到的数据丢弃并发送重传指令。

通常情况下以太网传输链路稳定,但无法排除通信过程中信道差错的可能[10]。若传输过程信道产生差错,则接收端通过循环冗余校验、IP首部校验将错误帧滤除。增加重传机制的UDP传输模式保证了在信道偶尔发生差错的情况下数据的可靠传输[11]。在大容量数据上传过程中,上位机在对接收到的数据排序重组并存储后便会发送下一次数据请求。这种数据传输模式下上位机会以自身处理速度为基础,自适应于一种当前状况下最快的传输速率。由上位机在处理数据完成的前提下控制数据流量的模式保证了发送方发送的数据接收方都来得及处理[12]。综上所述,流量可控并带有重传机制的数据上传模式可以保证数据传输的稳定性和准确性。

5试验验证及分析

5. 1 功能测试

为了验证本设计是否满足任务书要求,测量其性能指标,对其进行了不同工作环境的功能测试。测试的数据为用FPGA内部用户逻辑产生一定帧结构的递增数。在数据传输过程中实时统计数据传输速率并绘制速率曲线,随即抽取某一次测试结果如图5 所示。测试平台A为安装固态硬盘的个人工作站; 测试平台B为安装7 200 r/min机械硬盘的市场主流配置台式机; 测试平台C为安装5 400 r/min机械硬盘的便携式计算机。

上位机在接收完320 Gbyte数据后对数据进行递增数校验并将递增数绘制为1 024 × 1 280 的图像,其中00H表示最暗、FFH表示最亮,其中1 幅图像如图6 所示。

通过1 000 次/320 Gbyte的数据传输测试,并经由上位机软件对递增数校验,该设计命令响应准确、数据传输稳定可靠,可以在不同配置、不同工况的上位机测试平台上自适应较快的传输速率并稳定传输。在市场主流配置的上位机平台上平均传输速率33 Mbit/s符合设计目标。

5. 2 性能比较

为了对这种优化的UDP传输模式进行性能评估。在( 测试平台B) 同一硬件平台上传输320 Gbyte递增数,对优化的UDP传输模式、UDP传输模式、TCP传输模式三者进行了横向比较。其中传统的UDP传输模式与TCP传输模式的实现均使用市面上成熟的IP核。典型试验结果如表3 所示。

试验结果表明,要通过传统的UDP传输模式无法在该硬件平台上实现数据的高速、可靠传输。而TCP/IP协议虽然性能稳定但耗费大量的FPGA资源( Slice,LUT,SRAM) ,且用户数据在总传输数据量中所占的比例较低,无形中浪费了较多的带宽资源。经过优化的UDP传输模式不仅在传输传输数据可靠性上可以与TCP/IP协议相媲美,而且只占用了TCP/IP协议40% 的硬件资源和70% 传输带宽。

6 结语

千兆以太网设计 篇6

计算机技术的不断发展引入了新兴的应用,例如大型的分布式数据库和高速的视频图像传输。这类应用对带宽的需求已经不能为传统的快速以太网(100M)所满足,速度为1000M的以太网,即所谓千兆以太网(Gigabit Ethernet)应运而生。千兆以太网不止应用于计算机互联,高速网络设备互联以及城域网用户接入也越来越广泛的采用千兆以太网技术,也就是说,从骨干网到接入网、从计算机网到工业应用,都无处不见千兆以太网技术的应用。然而随着千兆以太网应用规模的不断扩大,其网络互联设备的核心地位愈加明显。网络互联设备性能的好坏直接影响网络规模、网络稳定性以及可靠性。

本文所依据项目设计实现了手持式千兆以太网测试仪,主要描述基于WinCE平台的测试仪软件开发。

1测试指标

测试仪采用的测试指标是在RFC 2544中描述的。作为评测网络互联设备性能的国际标准,RFC 2544是由IETF(Internet Engineering Task Force,Internet工程任务组)制定的,它对RFC 1242中定义的性能测试指标提出了具体的测试方法,并对测试报告的格式作了详细的规定。主要性能指标包括Throughput(吞吐量)、Latency(时延)、Frame Loss Rate(帧丢失率)、Back-to-Back Frame(背靠背帧)。

测试配置方式包括两种,如图1所示。图1中左图采用的是两台测试仪在这种配置下,要么必须采用某台计算机远程控制两台测试仪,要么必须由其中一台测试来进行同步控制,而这两种方法都过于复杂而不推荐采用。最理想的测试配置为图1中右图所示的配置,即由一台同时具备收发功能的测试仪对DUT(待测设备)进行测试。本项目设计的测试仪就是基于这种单测试仪的配置。

2设计软件

2.1应用开发环境、流程

测试仪的软件开发是在Windows CE环境下进行的。

Windows CE是一个具有强占式多进程功能,并具有强大通信能力的嵌入式操作系统。Windows CE是微软专门为通信设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而全新设计的策略性操作系统产品。Windows CE的设计目标及特点:模块化操作系统、多硬件平台支持、有线和无线的网络支持、稳健的实时性支持、多媒体和多语言支持和强大的开发工具链,主要包括平台定制工具Platform Builder(PB)和应用程序开发工具Embedded Visual C++(EVC)。

微软针对Windows CE的模块化特点,推出了Platform Builder集成开发环境,开发人员利用Platform Builder对Windows CE操作系统进行定制、构建、下载、调试及发布。

测试仪的软件开发是在EVC中进行的。它是类似于Visual C++的应用开发环境。

图2描述了利用上述工具开发Windows CE应用的流程。

2.2测试仪模块、功能描述

图3描述了软件的功能模块结构。

2.3设计要素

2.3.1 软件架构

测试仪软件采用模块化设计,如图3所示,即功能模块化。在设计过程中要求对功能实现方法进行封装,并为主控程序提供调用说明和接口。通过对功能实现采用模块化封装设计,软件可以方便的添加和删除模块,并且各模块内部的实现细节的改动不影响其他模块的正常运作,只要模块之间有一定的明确的接口。

2.3.2 软硬件交互

测试仪驱动采用标准的流式(Steam)驱动结构。应用程序通过文件API对设备进行访问。文件API被操作系统转发到系统的文件管理进程中(系统启动的时候加载的),然后由文件管理进程将执行交给设备管理器,设备管理器调用不同的流式接口驱动程序的接口,与硬件交互。标准的接口包括CreatFile,ReadFile,WriteFile和DeviceIoControl等。

2.3.3 多线程

响应用户的操作的主控制部分与测试实现部分采用多线程技术设计。例如测试仪启动后即开始对测试仪的端口利用率进行实时测试,并在用户操作界面中实时更新显示利用率测试结果。此时需要响应用户的其他操作,因此基于这样的特点,软件设计过程中必须采用多线程技术。

2.3.4 数据管理

数据内容包括用户的测试配置信息和测试结果数据。因为大量的数据包分析和统计过程由FPGA完成,并将相对而言小数据量的分析统计结果交给软件。对于这种小数据量的数据可以采用XML文件格式进行保存。XML文件解析处理的库包括目前比较流行的CMarkup类以及微软的MSXML。

下面是利用XML文件形式保存用户基准测试配置的示例,

192.168.3.105

0

1024

9

64

2

64

2

2.3.5 数据图表

桌面PC上Visual C++环境下的软件开发拥有大量的第三方软件支持,其中包括第三方提供的强大的图表生成和处理库,例如Teechart。但是Windows CE上eVC环境下的的软件开发缺乏这样的第三方软件支持,因此需要自己开发图形化处理模块。本项目自行修改和设计了一个简单的图形处理库,主要完成折线和柱状图的绘制。图形化处理过程往往需要占用大量的资源(数据占用内存资源,绘图操作占用其他的描述设备环境的资源,等),所以在设计图形化处理模块时,应尽量优化实现方法,减少资源占用。

图4示意了Latency测试结果的图表效果。

3结束语

在所描述的整体架构背景下,本文介绍了测试仪的软件开发。在模拟数据输入的条件下对软件进行测试,结果显示测试仪软件能够稳定运行,并能正确准确且实时的显示测试数据结果。

摘要:千兆以太网技术应用规模在不断扩大,其网络互联设备的核心地位愈加明显,因为网络互联设备性能的好坏直接影响网络规模、网络稳定性以及可靠性。首先简单介绍了网络互联设备性能测试规范。接着详细讲述了Windows CE中软件开发的流程、工具和本测试仪的软件设计。

关键词:RFC2544测试规范,微处理器,模块化,多线程

参考文献

[1]Bradner S,McQuaid J.RFC2544,BenchmarkingMethodology for Network Interconnect Devices,1999.

[2]章淼,吴建平,盛立杰,等.网络互联设备的性能测试[J].原理和实践.

千兆以太网设计 篇7

关键词:以太网,SDH,GFP,EOS

0 引 言

随着人们对数据业务需求的不断增长,以太网作为全世界应用最为广泛的网络通信技术之一,在全世界得到了大规模的普及。SDH是电信部门常用的通信传输设备,具有高可靠性和高安全性的特点。EOS(Ethernet over SDH)技术即借现有的SDH传输设备实现以太网业务的传输,具有非常重要的现实意义。

基于以太网的七层架构,在第二层数据链路层传输的是以太网的MAC帧。由于以太网和SDH系统的传输速率不匹配,需要通过封装进行速率调整后才能映射到SDH的虚容器中。目前来讲,常用的是GFP(Generic Framing Procedure)封装。GE(千兆以太网)信号在SDH系统中的映射可以分为相邻级联和虚级联两种模式。相邻级联是在整个传输过程中保持连续带宽,各个级联的VC是相邻的,在SDH网络系统中需要有能够进行相邻级联处理的中间设备,而虚级联的应用方式比较灵活,将连续带宽分解到多个VCs上传输,不一定相邻,在传输的终端再将多个VCs重新组合成连续带宽。因此,虚级联方式有效地节省了带宽,在系统中只需能够进行处理的终端设备即可。在实际使用中,这种方式的应用比较广泛。

1 FPGA收发模块设计

本文实现的传输方式是在STM-16中传输1路GE信号,需要对以太网MAC帧进行GFP封装。GFP帧分为GFP-F和GFP-T两种模式,本设计采用的是GFP-F封装模式。STM-16的传输速率是2.488 32 Gb/s。STM-16一共包括16路STM-1信号,STM-1的传输速率是155.52 Mb/s。STM-1信号采用虚级联方式,利用VC-4-XV(X=1~7)最多采用7路STM-1信号即可传输1路GE信号。剩余STM-1通道的信号用来传输其他数据业务。

以太网数据在SDH设备中传输过程如下:在SDH发送部分中,以太网通过接口处理芯片产生MAC数据帧,通过GMII接口传送给FPGA。FPGA将MAC帧进行GFP协议的封装,然后映射到SDH的虚容器VC当中,再通过添加复用段和再生段开销,生成STM-16数据帧,发送给光模块再上到光网络;在SDH接收部分中,光接收模块从光网络将STM-16数据帧接收下来发送给FPGA,FPGA在内部处理相关的开销,再将GFP数据帧从VC虚容器中提取出来,通过解帧处理,将以太网的MAC帧还原出来,经过处理后发送给以太网。

FPGA的内部设计可以分成发送模块和接收模块两部分。其中,发送模块可以分为以太网数据接收预处理模块、GFP成帧模块、SDH成帧模块;接收模块可以分为 SDH解帧模块、GFP解帧模块、以太网数据发送处理模块。发送和接收模块示意图分别如图1和图2所示。

发送部分的三个模块的功能分别如下:以太网数据接收处理模块利用FIFO缓存模块存储每一个有效MAC数据帧的数据和长度。同时实现数据从以太网时钟域到SDH时钟域的转换;GFP成帧模块对以太网MAC帧进行GFP封装,通过调整GFP数据帧和GFP空闲帧的插入,将以太网MAC帧映射到SDH的高阶VC-4虚容器中;SDH成帧模块对虚容器进一步处理,添加开销字段,生成STM-16数据帧,再利用FPGA内部的GTP接口将16位155.52 MHz的并行数据转化为一路2 488.32 MHz高速LVDS差分信号发送出去。

接收部分实现的过程是发送部分的逆过程。

GFP成帧模块分为GFP数据帧产生模块、空闲帧产生模块、插入帧选择模块、GFP扰码模块;GFP解帧模块分为GFP帧同步模块、GFP解扰模块、GFP接收帧处理模块。

GFP数据帧产生模块在去掉MAC帧8 B前导码后,将剩余部分的数据封装为GFP数据帧。按照GFP协议添加4 B的核心头部和4 B的净负荷域头部,将非定长的以太网MAC帧添加到净负荷信息字段,在帧尾添加4 B的净负荷帧校验序列(FCS)。

空闲帧实际上属于GFP用户管理帧的一种,没有净负荷域,只包含一个GFP核心帧头,是4 B的全0比特与序列“B6AB31E0”异或所得。

插入帧选择模块根据流量情况调整数据帧和空闲帧的插入,在没有数据帧要发送时,插入空闲帧,以保证GFP数据流的连续性。

在整个FPGA设计中,接收端的帧同步模块是比较重要的,它主要进行GFP帧的帧头搜索和同步保持处理。同步状态转移图如图3所示。

用一个状态机表示三种状态,即搜索态、预同步态和同步态。在预同步状态和同步状态时都只取1帧进行状态跳转判断。状态机在FPGA初始化时默认处于搜索状态,然后在连续的GFP数据流中进行帧头的搜索判断,将连续的数据流在每个时钟周期按字节存入缓存器中,在每个时钟周期进行4 B的扰码判断,即连续的4个字节与扰码序列“B6AB31E0”进行异或,得到的4 B数据中前2个字节根据扰码多项式G(x)= X16+X12+X5+1生成2个字节的校验值,然后与后2个字节进行比较,如果一致则表示找到了帧头,进入到预同步态。在预同步态继续在一帧帧头的相应时刻进行帧头的判断,如果正确则跳转到同步态,否则重新跳转到搜索态,继续寻找帧头。如果进入到同步态,和预同步态一样,也在一帧帧头的相应时刻进行判断,如果正确则继续保持在同步态,否则跳转到搜索态,重新在数据流中进行帧头的搜索。只有在处于同步状态时才能继续对数据进行后续处理。

在SDH和GFP协议的成帧解帧里都要进行扰码和解扰处理。SDH的扰码多项式为G(x)=X7+X6+1,GFP对核心头部PLI的扰码多项式为G(x)= X16+X12+X5+1,GFP净负荷域的扰码多项式为G(x)=X43+1。这些扰码器都为串行扰码器,对于GE这种速率的数据如果也采用串行处理方式的话,FPGA内部是无法实现的。经过转换处理,可以将串行扰码器变为并行扰码器再进行扰码,即可降低处理速度,满足时序要求。

2 仿真综合及实现

本设计采用VHDL硬件描述语言,使用的是XILINX公司带有高速SERDES接口的SPARTAN-6芯片,利用ISE 12.1和仿真软件进行了综合和仿真。由于FPGA的内部资源较为丰富,本身自带的IP核具有可靠性、方便性和灵活性的特点。时钟部分使用了XILINX芯片内部的DCM时钟管理模块,双端口RAM以及FIFO缓存器都使用了FPGA的内部IP核资源。高速数据接口部分使用的是芯片内部的GTP模块,去掉了外部高速接口转换芯片,简化了电路板的设计,不但提高了设计效率,也提高了系统设计的稳定性。

图4和图5表示的是对EOS数据进行VC-4-7V虚级联后的部分时序仿真图。

图4中,data_frm_state信号表示的是帧同步状态机。在数据流中,状态机一开始处于hunt状态,一旦找到帧头,则进入到presync状态;如果帧头检测没有错误,则继续跳转到sync状态;如果帧头判断正确,那么状态机就一直保持在sync状态。

图5中,s_datain信号表示的是解码前的数据,s_dataout信号表示的是根据扰码多项式G(x)=X43+1解扰后的数据。

3 结 语

综上所述,利用FPGA可以实现千兆以太网MAC帧在SDH数据帧中的封装和映射,配合外围接口电路的使用,可以实现GE在STM-16中的传输。EOS技术既增强了以太网传输的覆盖范围,也丰富了SDH设备的传输接口,极大地方便了用户的使用。同时,利用FPGA进行设计,大大缩短了开发的周期,也便于以后的升级和维护。

参考文献

[1]肖萍萍,吴健学.SDH原理与应用[M].北京:人民邮电出版社,2008.

[2]杨庚,章韵,成卫青,等.计算机通信与网络[M].北京:清华大学出版社,2009.

[3]田耕,徐文波,胡彬.XILINX ISE Design Suite10.x FPGA开发指南[M].北京:人民邮电出版社,2008.

[4]Xilinx.Spartan-6family overview[M].[S.l.]:Xilinx,2010.

[5]杜凯.基于FPGA的GFP成帧协议实现[J].世界电子元器件,2004(11):46-49.

[6]刘方楠,孙力军,白瑶晨.EOS的原理及其关键技术[J].通信技术,2007(7):19-21.

[7]李玲,李惠君,史晓飞,等.EOS中高阶虚级联的设计与实现[J].光通信技术,2008(10):42-45.

上一篇:区域性市场下一篇:人工干预

本站热搜