您当前的位置:五五电子网电子知识单元电路接口电路基于FPGA的十端口千兆以太网接口的设计与实现 正文
基于FPGA的十端口千兆以太网接口的设计与实现

基于FPGA的十端口千兆以太网接口的设计与实现

点击数:7736 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   接口电路

摘要:当前的路由器或交换机产品都提供多端口千兆以太网接口。采用高性能FPGA设计十端口千兆以太网接口, 阐述了系统平台的硬件设计及主要单元模块的功能,并对FPGA内部程序设计的主要思想和数据流程作了较详细介绍。测试结果表明,该接口实现了十路千兆的线速处理的性能要求。
关键词:千兆以太网 接口 FPGA

    随着千兆以太网越来越广泛的应用于学校、公司、政府机构等单位中,国内外网络设备供应商纷纷推出了各种支持千兆的网络产品,能提供单端口、双端口或四端口的千兆以太网线路接口卡,少数几种产品能提供八端口的接口。端口数的增加提高了系统的时钟频率,加大了PCB设计、程序设计过程中的困难。本文介绍一种十端口千兆以太网接口的设计与实现方法,通过仔细设计和使用高性能现场可编程门阵列(FPGA)实现了系统功能。

1. 系统硬件设计及功能描述
    十端口千兆以太网接口主要是为路由器提供与千兆以太网的物理连接。根据千兆比以太网接口的功能特点和设计要求,本设计方案采用一片十端口千兆以太网介质访问控制器实现数据链路层和物理层间的数据交换,使用两片大容量高性能FPGA实现介质访问控制器和路由器上层模块之间数据传送的逻辑控制。该千兆以太网接口的结构示意图如图1所示。

图1 千兆以太网接口的结构示意图

    光电收发器选用十片日本住友电工(Sumitomo EleCTRIC)公司的SCM6444光器件,在接收方向上,光信号经SCM6444完成光电转换,把1.25Gbps(吉比特每秒)的电信号送入以太网介质访问控制器PM3388的串行数据输入端,该光器件同时给PM3388提供数据有效指示信号。在发送方向上,PM3388把1.250Gbps的电信号发送给SCM6444,完成电光转换后送到以太网上,同时给SCM6444提供有效数据指示信号。
    PM3388是加拿大PMC-Sierra公司的高密度千兆比以太网介质访问控制器产品,能提供高性能十端口千兆以太网上行链路、千兆比数据交换、缓冲中断功能,内含点到点应用服务和网络服务适配器的解决方案。它符合IEEE 802.3z千兆以太网和IEEE802.3x基于帧的流量控制规范。在接收方向上,光信号经过SCM6444芯片转换成为1.25Gbps电信号送到PM3388的差分数据线上,在PM3388内部经过数据恢复、串并转换、8B/10B解码、地址过滤判决、物理包封装拆除、以太网帧完整性校验及差错校验、缓存与调度输出等步骤,从芯片系统侧PL4IO端口以16位、640MHz的数据速率发送到输入FPGA。在发送方向上,输出FPGA把以太网帧以分片的形式调度输出到PM3388,在PM3388内部经过以太网帧的重组缓存、物理包封装、8B/10B编码和并串转换等步骤,最后从PM3388的串行数据端口输出到光收发器SCM6444,经电光转换,恢复为光信号发送到以太网上。除了数据通道,PM3388芯片还与输出FPGA之间有微处理器接口,输出FPGA把微处理器对PM3388的指令通过该接口送到PM3388,实现对PM3388的初始化配置和状态监测等功能。
    输入和输出FPGA选用ALTEra公司的Stratix GX系列的FPGA芯片。该系列FPGA融合了最快的FPGA体系和高性能3.125Gbps收发器技术,提供由硬IP实现的收发器功能,Stratix GX器件包括多达20个全双工收发器通道,可工作于3.125Gbps;采用通用技术和一些需要时钟数据恢复(CDR)技术的新兴接口接收和发送数据,每个收发器模块具有四个全双工通道串行、编码和同步数据,在外部环境和Stratix GX器件通道之间传送。收发器通道支持多种协议,包括10Gbit以太网、千兆以太网、InfiniBand和SONET/SDH。考虑到输入FPGA实现的功能相对较简单,所以选用容量较小的EP1SGX25F型号FPGA,以节省成本,输出FPGA选用容量较大的EP1SGX40G型号FPGA。输入输出FPGA都使用源同步数据接口实现与PM3388之间10Gbps的单工数据接口,通过两个收发器模块实现与上层设备20Gbps的冗余数据接口。输入FPGA的附属电路包括与FPGA相连的一片CAM(Content addressable memory)和一片协议FIFO(First In First Out),CAM中存储本路由器所有端口的IP地址,如果接口接收到的IP包的目的地址在CAM中命中,此IP包被写入FIFO中,送到微处理器处理,否则送到路由器上层模块处理。输出FPGA及其附属电路中包括一片CAM和一片SRAM(Static Random ACCess Memory),CAM中存储与接口上十个端口相连的主机的IP地址,SRAM中存储各IP地址对应的MAC地址,输出数据包的IP地址送到CAM中查表,查表结果送到SRAM的地址线上,SRAM再送出该地址对应的表项内容,IP数据包根据SRAM的查表结果封装成以太网帧输出到对应的端口。
    本接口电路中的微处理器选用Motorola公司的PowerPC860T,工作在50MHz频率上,与输入输出FPGA之间通过32位的数据总线、32位的地址总线和一些控制信号线相连,与PM3388芯片的接口通过输出FPGA实现。该微处理器主要有两方面的作用:一方面作为本接口电路的控制核心,在系统上电时初始化接口上的PM3388芯片、输入输出FPGA、两片CAM和协议FIFO,使接口进入正常工作状态。在系统正常工作时,通过读取PM3388内部各统计寄存器的数据和监测PM3388芯片中断引脚发出的中断信号,及时处理PM3388工作中的异常情况;另一方面该处理器受系统主处理器的控制,通过内部以太网与之通信,把接口接收到的协议数据包发送给主处理器,供主处理器处理,并从主处理器接收协议数据包,通过接口上对应的端口发送出去。在接口正常工作过程中,微处理器还读取输入输出FPGA片上程序的十端口接收包数、丢包数、各种协议包数、字节数、发送包数等统计数据,并将这些统计信息发送给主处理器,供主处理器处理。

2. FPGA逻辑控制功能实现
    输入FPGA片内程序实现千兆以太网介质访问控制器PM3388、路由器侧高层设备和大容量FIFO间数据传送的逻辑控制。输出FPGA片内程序实现路由器侧高层设备和千兆以太网介质访问控制器PM3388间数据传送的逻辑控制。
    输入FPGA从PM3388接收16位宽、640MHz高达十Gbps的数据,并且为了有效利用带宽防止阻塞,PM3388芯片把以太网帧分成较小的数据片(最大64字节)按照十端口轮询调度交叉发送给输入FPGA。因此输入FPGA片内程序首先要完成以太网帧的重组和时钟频率降低的功能,通过调用Altera公司FPGA程序开发平台QUARTus II 中集成的IP硬核完成数据到128位、80MHz的转换,可以降低时钟频率。再在FPGA内部设置十个FIFO缓存收到的数据片,完成以太网帧的重组。接下来,FPGA程序通过轮询调度把十路FIFO中的以太网帧合成一路输出到后续程序模块,同时完成去除错误以太网帧的功能。考虑到要在以太网帧头部加入内部格式控制字和查表目的IP地址,按照最短60字节以太网帧长计算,有效带宽只有2/3,因此后续模块需要将时钟频率提高到125MHz。此外,输入FPGA程序还要实现与CAM的查表接口,根据IP地址的命中结果对数据报文做分路处理:命中的协议报文送往协议FIFO,由微处理器处理;未命中的数据报文拆除以太网帧封装后送往路由器侧高层设备处理。送往上层设备的数据使用两个收发器模块交叉发送,通过收发器模块的四通道绑定实现20Gbps的冗余数据速率。图2是输入FPGA程序在Quartus II软件中重组以太网帧的功能仿真图,图中三到五行信号分别是PM3388送到输入FPGA的时钟、带内控制信号和数据;最下面三行信号是以太网帧重组后输出的以太网帧头指示、128位数据和以太网帧尾指示。

图2 以太网帧重组程序仿真图

    输出FPGA程序实现上层设备和PM3388之间的数据发送控制,数据处理流程与输入FPGA程序相反。输出FPGA通过两个收发器模块从路由器上层设备接收绑定的数据,合路成128位、125MHz的一路数据。输出FPGA也要实现与CAM的查表接口,IP报文的目的IP地址送往CAM查表,命中结果作为地址送往SRAM,SRAM送出地址对应的数据,该数据作为目的MAC地址封装进以太网帧,未命中数据报文通过处理机接口上交给主处理器处理。在程序的后续模块,以太网帧的内部格式控制字封装被拆除,同时以太网帧按照内部格式控制字中的端口标记发送到为对应端口设置的FIFO中,组播包则要发送到多个FIFO中,FPGA内部设置十个FIFO缓存这些以太网帧,通过轮询调度把以太网帧拆成数据片(64字节或到包尾)发送到PM3388。输出FPGA片内程序还实现接收微处理机的指令,完成对PM3388的初始化配置和工作状态的监测及异常处理等功能。

3. 结论
     由此设计方案得到十端口千兆以太网接口电路原理图,绘制PCB图并制作出印刷电路板,编写调试VHDL程序,完成系统功能验证。在由测试仪和路由器上层设备搭建的测试环境中,经过对此千兆以太网接口的反复测试证明,该接口实现了路由器和千兆以太网间20Gbps的数据吞吐量,实现了十路千兆端口完全线速处理的性能要求。由于采用FPGA开发此接口,大大缩短了开发时间,降低了成本,当出现新的功能需求时,不必重新设计硬件电路,只需修改FPGA程序,实现系统的升级。此接口在核心或边缘路由器中具有良好的应用前景。

参考文献:





本文关键字:以太网  接口  接口电路单元电路 - 接口电路