0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过PM3388芯片与FPG器件实现千兆以太网线路接口卡的设计

电子设计 来源:郭婷 作者:电子设计 2019-05-03 08:29 次阅读

本文根据十接口千兆以太网线路接口卡设计的功能需求和性能需求,按照数据处理流程划分功能模块,以PM3388作为链路层处理芯片和两片高性能FPGA作为链路层处理芯片完成了系统设计,并给出了具体实现方案。对两片FPGA控制功能的实现做了重点阐述,对实现难点做了深入的分析。

1 前言

随着网络规模的持续膨胀和新型网络应用需求的不断增长,目前基于IPv4技术的因特网在可扩展性、IP地址空间、安全、服务质量控制、移动性、运营管理和盈利模式等诸多方面面临着挑战,尤其是地址空间匮乏、可扩展性差等缺陷严重制约了因特网的发展,需要探索新的技术来解决这些问题。IPv6通过采用128位的地址空间替代IPv4的32位地址空间来扩充因特网的地址容量,使得IP地址在可以预见的时期内不再成为限制网络规模的一个因素,同时在安全性、服务质量及移动性等方面有了较大的改进,使其成为构建下一代互联网络的最佳选择。

以太网是当前最基本、最流行的局域网组网技术,为了适应各种新开展的业务如流视频等,其速率也在不断提高。千兆以太网是建立在以太网标准基础之上的技术,具有高效、高速、高性能的特点,目前

的企业局域网甚至城域网建设都会把千兆以太网技术作为首选的高速网络技术。为了使支持多协议的高性能路由器既能连接到骨干、核心路由器,又能连接到本地主机,需要为路由器设计能够与千兆以太网连接的接口。当前国内各公司推出的路由器和交换机产品都提供千兆以太网线路接口卡,但端口密度都不高,大多数是单端口或双端口,少数能够提供四端口或八端口。为了适应T比特路上数据传输的需求,本文设计完成高密度的十接口千兆以太网线路接口卡。

2 网络接口功能分析

千兆以太网原先是作为一种交换技术设计的,采用光纤作为上行链路,用于楼宇之间的连接,之后在服务器的连接和骨干网中,千兆以太网获得了广泛应用。目前,千兆以太网已经发展成为主流网络技术,大型企业和中小型企业在建设企业局域网时都把千兆以太网技术作为首选的高速网络技术。千兆以太网技术甚至正在取代ATM技术,逐渐应用到了城域网建设中。

基于千兆以太网的发展现状和良好的应用前景,当前国内外研制各种核心路由器和高性能交换机的公司不再满足于能够提供低密度(单接口、双接口等)千兆以太网线路接口卡模块,纷纷推出或开始研制高密度(四接口、八接口等)的线路接口卡模块,高密度千兆以太网线路接口卡的研究正在成为一个热点。但各公司出于技术保密的考虑,公开的高密度千兆线路接口卡的文献资料很少。经分析,十接口千兆以太网线路接口卡的设计主要存在以下三个难点:

1)。多种数据包的分类处理:本文研究的十接口千兆线路接口卡兼容IPv4、IPv6双协议栈,需要实现三种二层协议封装格式的拆封与封装处理、两种三层协议的查表处理和一种MPLS协议的处理,在高速环境下实现多种协议的正确处理是一个难点;

2)。帧重组合路加速功能的实现:需要实现以太网帧的重组、十接口数据合路调度与加速三种功能,这是千兆线路接口卡满足线速处理功能的关键;

3)。 十接口数据合路调度功能的实现:需要研究一种具有良好扩展性和时延性能的调度算法,实现高速环境下十接口数据合路调度的功能。

从功能角度来看, 以太网线路接口主要完成输入处理、输出处理和系统维护管理等三种功能。如图1所示。输入处理:从千兆以太网上接收编码数据流,解码恢复成为以太网帧,再经过地址过滤、完整性校验、差错控制、IP地址查表、MAC帧拆封、内部数据格式封装等处理后送给转发处理子系统或板级处理机处理(协议包)。输出处理:从端口调度模块或板级处理机模块接收数据包或协议包,经过MAC帧封装,经过数据编码等处理后从正确的接口发送到千兆以太网上。系统维护管理:主要是接受板级处理机的控制命令,对输入分类表项、ARP表项和邻居发现表项进行维护,定时或按照板级处理机的命令将线路接口卡的性能统计信息向板级处理机报告。

通过PM3388芯片与FPG器件实现千兆以太网线路接口卡的设计

图1 千兆以太网线路接口卡功能示意图

3 硬件设计与实现

经过对十接口千兆以太网线路接口卡功能和性能需求进行认真分析,按照功能清晰、接口简单、实现容易的原则,设计了其实现方案,并按照设计方案对千兆以太网线路接口卡进行了子模块划分,共分为光电转换子模块、MAC层处理子模块、输入处理子模块、输出处理子模块、输入IP地址表子模块、输出IP地址表子模块和协议报文缓存子模块等七个子模块。千兆线路接口卡各子模块和外部接口关系如图2所示。

通过PM3388芯片与FPG器件实现千兆以太网线路接口卡的设计

图 2 十接口千兆以太网线路接口卡模块结构图

其中MAC层处理子模块是千兆线路接口卡设计的核心,选用PMC-Sierra公司的PM3388芯片为MAC层处理芯片, PM3388芯片是目前市场上唯一支持十接口的千兆以太网控制器,其功能特性如下:

十路千兆以太网控制器(同时完成PHY层和MAC层功能);

通过内部十个SERDES接口直接与光电转换模块相连。每个SERDES接口兼容IEEE 802.3-2000 PMA(Physical Medium Attachment)物理层规范;

从网络上接收8B/10B格式码流,完成数据及时钟恢复;

每个接口提供多播地址过滤及8个单播地址过滤;

提供标准的IEEE 802.3 以太网帧格式完整性检验,并具有过滤功能;

内部提供224K字节接收FIFO和64K发送FIFO,可在十路接口上灵活配置;

提供SATURN标准的PL4(POS-PHY Level 4)标准16位LVDS总线接口,速率可达700Mbps;

提供标准IEEE 1149.1 JTAG测试端口;

提供微处理器接口;

提供线路侧环回和系统侧环回的系统级调试功能;

提供丰富的配置及统计寄存器

PM3388工作流程包括接收处理和发送处理两部分。1.接收通路:PM3388从光电转换子模块接收串行差分电信号,经过串/并转换、8B/10B解码后,进行以太网帧完整性检验和地址过滤,如果该以太网帧无误,则写入为该接口分配的PL4模块中的FIFO,否则丢弃。为了充分利用带宽,PL4接口把MAC帧划分为数据片(以64字节或MAC帧尾之前数据为一片)调度输出,并采用带内控制字的形式指示帧头、数据、帧尾、线路接口号、填充字节数、空闲控制字等信息。接收通道还通过两位的信号指示接收设备的缓存状态(空、满、半满)。2.发送通路:发送通道的PL4接口与接收通道的工作模式相同,数据从PL4接口进入PM3388后,经过8B/10B编码,并/串变换等处理步骤,以串行差分信号的形式输出到光电转换子模块。

为了保证PL4接口达到十路1Gbps的速率,PM3388的参考时钟引脚接160MHz时钟晶振,输入输出接口的采样时钟通过将该时钟倍频获得320MHz时钟,输入输出数据分别在时钟双沿采样,可以获得640Mbps的数据数率,总带宽达10.24Gbps,可以满足0丢包率性能对带宽的要求。

此外,输入处理FPGA是千兆以太网线路接口卡模块设计的重点之一,主要的功能是将各种标准的MAC帧数据格式转换为网络层统一的数据格式,为网络层处理屏蔽掉底层物理接口。

输入处理FPGA采用Altera公司Stratix GX系列的EP1SGX25F芯片,该芯片具有25660个逻辑单元,16个高速收发器通道,39个源同步IO和总数为1944576比特的RAM,可以满足实现输出处理功能对资源的要求。

输入处理子模块主要完成输入处理和配置统计两大功能:第一、接收MAC层处理子模块发送过来的数据片,完成MAC帧重组和十路数据合路处理,再根据MAC帧封装的三层协议类型实现数据包的分类处理,按照不同的处理要求把数据包分别送B接口、F接口或者同时送两个接口。送往B口的数据包经过MAC帧格式拆封和B口格式封装后输出到转发模块,送往F口的数据经过数据宽度和时钟频率的变换后输出到协议FIFO。第二、线路接口卡上电初始化时,输入FPGA通过板级处理机获取本线路接口卡所在的机架号和端口号等信息,并把这些信息插入到送往转发处理模块的数据包的B口格式字中。输入处理FPGA还要实现大量的统计功能,统计项包括每个接口接收到的总帧数、错误帧数、丢弃帧数、IPv4单组播包数、IPv6单组播包数、MPLS单播包数、送往B口包数和送往协议FIFO包数等,并根据命令把统计信息送往板级处理机。

4 系统调试

FPGA的调试包括输入FPGA和输出FPGA两部分,主要检查FPGA的焊接、时钟和程序下载等是否正确,调试方法是用VHDL编写一个计数器的程序,用JTAG下载到FPGA中,利用SignalTap软件和指示灯测试FPGA是否工作正常。实现系统输入输出处理功能的大规模VHDL程序的调试放在整个线路接口卡的调试中进行。

PM3388芯片是千兆线路接口卡完成MAC层控制功能的芯片,其调试是整个千兆线路接口卡调试的重点。PM3388芯片的调试需要板级处理机软件、板级处理机、输入输出FPGA和网络测试仪配合,调试内容依次为寄存器配置、PL4系统侧环回、SERDES系统侧环回、SERDES线路侧环回、PL4线路侧环回。

PM3388芯片寄存器配置的调试过程为:首先往一个可读写寄存器(选择地址为0x6的寄存器)中写入一个数,再读出来比较是否正确,如果不正确,通过SignalTap软件分别抓输出FPGA与PM3388芯片的微处理机接口的读写控制信号,确定错误是发生在写操作还是读操作上,排除错误。单个寄存器的配置调试通过后,再进行多个寄存器的连续配置,调试方法是配置PM3388进入不同工作模式,通过检查状态寄存器的值判断是否配置成功,如果不成功,检查相邻寄存器的配置是否发生了干扰,通过SIGNALTAP软件查看逻辑和时序问题,再加以解决。

而PL4系统侧环回主要是为了验证输出FPGA与PM3388的输入PL4接口、输入FPGA与PM3388的输出PL4接口是否正常,调试方法是使用板级处理机向输出处理FPGA发送协议包,输出处理FPGA再把该数据包发送到PM3388的PL4接口的接收侧,接收侧把该数据包环回到PL4接口的发送侧,从发送侧发送到输入处理FPGA,最后该数据包被板级处理机读回来进行比较。调试中发生的错误可以通过PM3388内部的统计寄存器和SIGNALTAP软件进行定位,再采取相应的措施排除错误;

5 总结

本文的创新点在于采用合理的设计方案和调试方案,完成了十接口千兆线路接口卡的设计与实现,研制的千兆线路接口卡完全满足了T比特路由器项目对十接口千兆线路接口卡设计的功能与性能要求。采用FPGA设计并实现了十接口千兆以太网线路接口卡设计与实现中的帧重组与加速功能,能够提供更高的带宽,具有更好的加速性能。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593302
  • 芯片
    +关注

    关注

    447

    文章

    47838

    浏览量

    409214
  • 以太网
    +关注

    关注

    40

    文章

    5080

    浏览量

    166253
收藏 人收藏

    评论

    相关推荐

    工业相机千兆网线和USB优劣对比

    以太网基础架构可用、较长的传输距离、易于集成、高度标准化(采用GigE Vision标准)、PoE 功能:通过数据线对相机供电。 千兆网线工业相机(GigE)可以使用
    发表于 08-25 17:31

    采用PM3388和FPGA实现网络接口设计

    处理功能的大规模VHDL程序的调试放在整个线路接口卡的调试中进行。PM3388芯片千兆线路
    发表于 04-29 07:00

    如何使用斯巴达FPGA实现千兆以太网接口

    嗨,我正在尝试使用spartan 3E FPGA(成本因素)实现千兆以太网接口。由于斯巴达系列中没有RocketIO收发器,因此我们必须使用LVDS TBI
    发表于 08-07 09:38

    如何利用PM3388和FPGA设计一个网络接口

    本文根据十接口千兆以太网线路接口卡设计的功能需求和性能需求,按照数据处理流程划分功能模块,以PM3388作为链路层处理
    发表于 04-28 06:28

    监控系统以太网线路保护设计

    一、 接口概述RJ45以太网接口是目前应用最广泛的通讯设备接口以太网口的电磁兼容性能关系到通讯设备的稳定运行。二、
    发表于 11-16 10:14

    简谈基于FPGA的千兆以太网设计

    介绍百兆网和千兆网的接口形式。 这是网口与FPGA连接的常用方案,RJ45就是咱们平常说的水晶头,Ethernet PHY是以太网的PHY芯片,之后就是Ethernet PHY与F
    发表于 06-01 18:39

    核心路由器千兆以太网线卡输入数据的分路设计与实现

    千兆以太网线路接口卡是高速路由器中实现与外部链路连接的重要模块,本文介绍了其主要功能,给出一种基于FPGA 和CAM 实现的输入报文数据流分
    发表于 08-05 15:33 23次下载

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

    当前的路由器或交换机产品都提供多端口千兆以太网接口。采用高性能FPGA 设计十端口千兆以太网接口
    发表于 08-29 09:30 51次下载

    嵌入式系统以太网网络接口卡实现

    介绍了以10M/100M 自适应以太网控制器和DSP 为基础的嵌入式系统以太网网络接口卡(NIC) 的接口电路及软硬件实现方法。 当今社会己
    发表于 08-29 16:38 95次下载
    嵌入式系统<b class='flag-5'>以太网</b>网络<b class='flag-5'>接口卡</b>的<b class='flag-5'>实现</b>

    如何使用Windows系统设计千兆以太网工业相机网络接口程序

    针对千兆网工业相机网络接口技术进行研究,提出了基于Windows7系统的千兆以太网工业相机网络接口程序的设计思想。
    发表于 11-09 08:00 3次下载
    如何使用Windows系统设计<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>工业相机网络<b class='flag-5'>接口</b>程序

    如何快速分辨以太网千兆以太网

    本文解释并比较了两种类型的以太网:快速以太网千兆以太网。快速以太网千兆
    的头像 发表于 05-06 16:35 3788次阅读
    如何快速分辨<b class='flag-5'>以太网</b>与<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>

    千兆网络能选择6类网线

    千兆网络能选择6类网线吗?6类网线能跑满千兆的, 但是需要配备千兆以太网铜缆模块, 配置
    发表于 10-21 10:37 7209次阅读

    以太网就是宽带连接吗?以太网口是网线接口吗?

    一种基于冲突检测的CSMA/CD(Carrier Sense Multiple Access/Collision Detection)协议,用来规范计算机之间数据通信的方式。然而,以太网并不是宽带连接,也不是所有以太网口都是网线
    的头像 发表于 08-31 16:58 6816次阅读

    六类网线千兆网线

    (ISDN)、ATM155Mbps和622Mbps,100MbpsTPDDI,快速以太网千兆以太网;比五类和超五类具有传输距离长,传输损耗小,耐磨、抗压强等特性。 网线是双绞线,不同
    的头像 发表于 09-25 10:53 3619次阅读

    为什么千兆网需要八芯网线

    千兆网需要八芯网线是因为千兆以太网标准使用了四对(八根)线缆来传输数据,其中每个数据流需要两对线缆(四根),即发送数据和接收数据各用两根线。这种技术称为全双工通信。 传统的百兆
    的头像 发表于 03-14 10:35 484次阅读