这篇算是对FPGA做千兆以太网的电路搭建这一块儿的最全的扫盲篇了吧,废话不多说,直接上干货。
一、千兆以太网的系统搭建
1.硬件系统搭建

以太网MAC模块负责实现以太网MAC子层的功能,完成802.3ab的数据封装与解封。其同时负责适配硬件PHY的物理接口,组成物理层的通讯接口; 硬件系统的功能可以通过 Verilog HDL硬件描述语言在FPGA控制器内部来实现。当然也可以在FPGA控制器内,使用FPGA提供的MAC IP核来实现MAC协议功能,从而可以替代MAC接口协议芯片,这样可以大大简化系统的硬件电路设计。FPGA控制器通过GMII总线和PHY芯片进行数据通信,通过MDI/MDIO 管理接口,来配置并读取PHY芯片内部的各寄存器。
PHY是物理接口收发器,它实现物理层.IEEE-802.3标准定义了以太网PHY。PHY在发送数据的时候,收到MAC过来的数据,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。PHY还有个重要的功能就是实现CSMA/CD的部分功能。它可以检测到网络上是否有数据在传送。PHY还提供了和对端设备连接的重要功能并通过LED灯显示出自己目前的连接的状态和工作状态让我们知道。
隔离变压器:把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端。这样不但使网线和PHY之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还可以在不同0V电平的设备中传送数据。
RJ45是布线系统中信息插座(即通信引出端)连接器的一种,上端连接PHY层物理层芯片,下端连接网线。有些厂家会将网络变压器融合至RJ45接头中,在接口选型中要注意,如果厂家不自带隔离变压器,需在设计中考虑相关功能及器件。连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点,是标准8位模块化接口的俗称。为支持千兆以太网,制作直通线时一般采用T568B标准,即需要8个数据接口均需连接。
在这里插入图片描述
2.通信协议
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层。从tcp/ip五层协议的角度来阐述可分为以下几层:
1)物理层:计算机之间完成组网,即光缆、电缆、双绞线、网线、无线电波等。
2)数据链路层:将单纯的电信号0、1进行整合,形成统一标准,即“以太网协议ethernet”。包括定义数据帧、MAC地址等。
3)网络层:局域网内进行通信。包括IP协议(配置IP地址、设置子网掩码、解析IP数据包)和ARP协议(获取主机MAC地址)等。
4)传输层:tcp协议、udp协议等。
5)应用层:www、FTP、HTTP、email等。
在基于FPGA的千兆以太网传输中,需将数据通过FPGA进行数据协议的打包和MAC协议处理,通过RGMII总线协议传输将数据传送至PHY芯片,PHY芯片将数据进行处理后发送至RJ45接口进行数据发送。其中,PHY到FPGA的传输接口一般包括有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等, PHY到网络变压器之前传输接口一般为MDI。
按照OSI模型,基于开发板至上位机之间的通信需使用到的模型层有物理层(RJ45网接口)、数据链路层(PHY芯片和MAC协议)、网络层(在FPGA中处理的MAC协议)、传输层(在FPGA中处理的数据协议打包)。
在这里插入图片描述
涉及到的传输协议有:以太网MAC协议与GMII协议。
以太网MAC协议主要负责控制与连接物理层的物理介质。MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层。该协议由硬件语言在FPGA控制器内部来实现。(数据分析)
GMII协议((Gigabit Media Independant Interface)千兆MII接口。GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。为FPGA(MAC控制器)与PHY芯片之间的数据传输协议。本项目中,结合芯片选型,可选取RGMII协议(Reduced Gigabit Media Independant Interface),精简GMII接口。信号定义如下:(数据传输)
信号名称 描述 方向
TXC 发送时钟 MAC→PHY
TX_CTL 发送数据控制 MAC → PHY
TXD[3:0] 发送数据4bit MAC → PHY
RXC 接收时钟 PHY → MAC
RX_CTL 接收数据控制 PHY → MAC
RXD[3:0] 接收数据4bit PHY → MAC
MDIO 管理数据 双向
MDC 管理数据时钟 MAC → PHY

二、芯片选型
1.千兆以太网PHY芯片选型

以太网芯片市场规模庞大,而且比较稳固,但该市场每隔几年就会出现一次重大技术转变。该产业目前处于从快速以太网(FE)向千兆以太网(GbE)转变过程的末期。其中大多数设计采用的是博通(Broadcom)、英特尔、Marvell和瑞昱(Realtek)的单芯片(MAC+PHY)控制器芯片。
Marvell(美满),美国品牌。常见的10/100/1000M自适应网卡芯片有Marvell的88E8001/88E8053/88E806*系列。属于芯片第一梯队。芯片质量最好,种类最齐全,产品成熟,达到工业级标准,但因目前国际关系,供货不稳定。
Broadcom,美国品牌。包括FE PHY,千兆PHY,2.5G/5GBASE-T PHY,10GBASE-T PHY,汽车PHY等。常见的10/100/1000M自适应网卡芯片有BCM5721/5751系列芯片。芯片质量好,产品成熟,但因目前国际关系,供货不稳定。
Realtek台湾瑞昱,是典型的台产网络PHY芯片厂家。用户可根据自己的需求自由选取10M/100M/1000Mbps三种不同通信速度的芯片。其产品支持单口多口,单口包括RTL8211系和RTL8251系,双口为RTL8212系,四口为RTL8214系,八口则为RTL8208系。性价比也相对较高。市场份额最大,芯片质量虽不如美满,但质量相对稳定。因使用范围广,参考资料较多。相比于其他品牌,供货相对稳定。
ATHEROS(高通),美国品牌,全球最大的无线半导体供应商。近几年研发生产PHY芯片系列,常见的10/100/1000M自适应网卡芯片有AR8031与AR8035系列。
其他品牌包括:IC PLUS,台湾九阳电子推出的IP101系列芯片有10M/100 Mbps两种可选。SMSC,被美国Microchip公司收购, 在通信速度上有也有10M/ 100M/1000Mbps三种不同的选择。目前在网络PHY芯片主打型号为LAN87系列。
国产芯片中,生产PHY芯片的厂商有苏州裕泰车通,但产品只有10/100M,并不支持千兆以太网。
本次设计中,选取Realtek公司的RTL8211E单口芯片,主要考虑因素有:满足千兆以太网需求、产品稳定、技术文档成熟、参考资料相对较多、货源稳定、性价比高。可替代的产品有高通的AR8035、美满的88E1111等。
引脚功能在下一节中有详细介绍。具体引脚和封装设计如下图所示:
在这里插入图片描述
在这里插入图片描述
2.RJ45接口选型
为减少外部分立器件的数量,有助于布局布线,改善系统的EMC/EMI性能,尽量选择连接器自带隔离变压器以及终端电阻的RJ45接口。在接口期间的厂商中,国产接口即可满足设计需求。本次设计中,RJ45网络接口采用中山市汉仁公司(HanRun)的 HR91130A,连接器自带隔离变压器以及终端电阻。该接口的引脚特性及外围电路设计在下一节中有介绍。可替代器件有安费诺amphenol公司的MRJ548101、泰科电子TE connectivity的2301995-1等。下图为该接口的封装设计。
在这里插入图片描述
三、PHY芯片的外围电路设计
RTL8211E应用主要包括电源部分设计、MDI接口设计、RGMII接口设计以及接口管理设计等四部分组成。
1.RTL8211E电源部分设计
RTL8211E的电源主要由3.3V及1.05V两个电源组成,接入外部电源为3.3V,并通过自身的switching regulator形成1.05V电源或者从外部电源引入。这两组电源主要为芯片运行以及GMII、MDI等IO接口驱动提供电源。如下则为RTL8211E、RTL8211EG的电源引脚说明。
在这里插入图片描述
RTL8211E的3.3V电源由外部电源VDD33引入,并通过去耦电容C3的过滤,形成芯片的数字3.3V电源DVDD33及模拟3.3V电源AVDD33。如图,其中C3对电源质量影响比较大。
在这里插入图片描述
对于接口管理应用1.05V的IO驱动电源,则是通过芯片自身的switching regulator转换或通过一个外接LDO进行转换,如果采用自身的regulator转换,则是3.3V模拟电源通过去耦电容接入芯片,另外通过外接0电阻与去耦电容形成模拟或数字1.05V电源。switching regulator只能给芯片自身的AVDD10和DVDD10供电,不能给其它外部电路供电。
在这里插入图片描述
在这里插入图片描述
2.RTL2811E至MDI接口设计
MDI( Medium Dependent Interface )介质相关接口与互联网连接一般通过信号传输端(TD+&TD-)和信号接收端(RD+ &RD-),然后再通过网络滤波器以及RJ-45与终端网络相连。
MDI连接属于高速信号连接,对MDI线路设计时时需特别注意,RTL8211E/RTL8211EG到10/100/1000M网络变压器,以及到RJ-45接口的路径需要尽可能短,RTL8211E/RTL8211EG到10/100/1000M网络变压器的距离不能超过12cm,而且两对接受或传输差分信号线需尽可能的接近,可使噪声影响互相抵消。一般两者之前距离等于一线宽,例如,信号线宽8mil,则D1的宽度为8mil。两组信号线之间的跟离D2一般推荐为30mil。
在这里插入图片描述
3. RTL8211E之RGMII接口设计
MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于MAC层和PHY层之间的以太网数据传输,也可叫数据接口,MII即Reduced MII、是MII的简化。与MII接口相比,GMII的数据宽度由4位变为8位,GMII接口中的控制信号如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同MII接口中的一样,发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。
RGMII连接属于高速信号连接,对RGMII线路设计时时需特别注意,RTL8211E/RTL8211EG到MAC之间的不能超过2.5inch。RGMII时钟信号与数据信号之间需要留20mils的间距,GMII 接收与发送布线长度之差还要超过100mils。RGMII的布线都有一块没破坏的完整地平面。
根据RGMII协议,TXC与RXC分别为数据传输中发送与接收的频率,在千兆以太网中,分别为125MHz。接收数据的端口为RX[0…3],控制使能为TX_CTL;发送数据的端口为TX[0…3],控制使能为RX_CTL。
在这里插入图片描述

为了EMI考虑,需要在PHY芯片RXC端放置一个RC滤波,并在MAC芯片TXC端放置一个RC滤波。
在这里插入图片描述
在这里插入图片描述
根据芯片手册,MDC/MDIO管理接口用于控制芯片的工作模式,由于其采用开漏输出,需要通过上拉电阻维持其工作状态。
在这里插入图片描述
4. RJ45接口的外围电路设计
千兆PHY通过网络变压器连接到RJ45接口,一共有4对差分线MDI[0…3]+/-。一般的接法是:
MDI[0]+ : RJ45[1]
MDI[0]- : RJ45[2]
MDI[1]+ : RJ45[3]
MDI[1]- : RJ45[6]
MDI[2]+ : RJ45[4]
MDI[2]- : RJ45[5]
MDI[3]+ : RJ45[7]
MDI[3]- : RJ45[8]
RJ45[1…8]连接器的线序与水晶头的压接顺序一致。
在这里插入图片描述
四、电路板设计
PCB板层设计可根据FPGA资源利用的情况及BGA芯片的扇出情况进行设定,可使用常规的六层电路板设计布线,即SIG-GND-SIG-PWR-GND-SIG。信号层与接地层相邻,电源层与接地层配对,这样具有较好的信号完整性。建议对Rx±、Tx±差分对进行阻抗控制,阻抗控制在100欧姆±10%。
布线规则如下:

  1. 以太网接口速率较高,会产生较大的干扰,会在铜皮产生感应电流,在RJ45接口处需将除差分引脚外的信号全部挖空,挖空区避免走线。
  2. 机壳地走线加粗,一般为1mm,机壳地与板内板的边缘间距要大于或等于1mm。
    3.电源地走线加粗。
  3. 等长要求,TX+与TX-信号做等长,RX+与RX-做等长,尽量保持差分对平行、等长、短距,避免过孔、交叉。由于管脚分布、过孔、以及走线空间等因素存在使得差分线长易不匹配,时序会发生偏移,还会引入共模干扰,降低信号质量。长度差通常控制在5mil以内。
  4. TX与RX应分开不同层走线,如果同层,间距应拉开4W(4倍线宽)。
    6.PHY芯片发热量较大,可适当考虑增加散热孔或背面开窗。
    根据芯片手册,布线时还应注意以下事项:
    1.输入3.3V电压与芯片VDDREG引脚连接时,线宽需超过40mils。
    2.去耦电容需放置在距离VDDREG引脚200mils(0.5cm)范围内,以防止输入电压过冲。
    3.输出电压REGOUT的线宽必须大于60mils。
    3.输出电压REGOUT的电感必须放置在引脚200mils(0.5cm)范围内;电容需放置在距离电感200mils(0.5cm)范围内。
  5. 为了保证开关稳压器的稳定性,Cout1与Cout2必须为陶瓷电容器(X5R),Cin1和Cin2需为陶瓷电容器。
    5.电感和Cin1需要和芯片在同一层布线;VDDREG和REGOUT之间的连线不能使用过孔。
    在这里插入图片描述
    因为老板正好要我写个汇报材料出来,所以我也就有时间总结出了这一份儿出来。前一篇是从网上扒的,汇总在一起,感觉收获比较大。这一片是我自己一个字一个字的码的,也有从别的文章摘抄的,原理图是我自己用cadence画的,PCB板还没有画,等画出来我再写一篇出来。因为是纯手敲的,如有转载,记得艾特我啊。
    里面有不对的地方还希望大神们提早指正出来,以免我踩雷啊,感谢!
Logo

欢迎加入龙蜥社区,参与开源活动即刻有好礼相送!

更多推荐