[color=rgb(51, 51, 51) !important]1.1 设计思想 [color=rgb(51, 51, 51) !important]本文研究的是基于FPGA的以太网的MAC层数据处理,目的是能广泛应用于多种嵌入式网络设备的前端设计,如网络视频监控设备、IP数字电视设备、家庭智能设备等。根据FPGA的可重复擦写编程的特点,采用FPGA可以方便对设备的升级和维护。本文为了设计能满足于各种不同的以太网网络环境,和增强系统的可移植性,采取了一系列的措施。 [color=rgb(51, 51, 51) !important]首先,考虑到以太网高速而又庞大的数据量,尤其是载有音视频流的1000M网络,以及开发的成本问题,我们引入了一种针对普通产品开发的Xilinx芯片——Spartan系列。FPGA具有并行执行的特点,相对于其他器件在数据处理上具有明显的速度上的优势,同时Spartan系列FPGA拥有几百Kb甚至几千Kb的块RAM资源,可用于数据的缓存,完全可以满足于1000M以太网数据量的要求。在FPGA的系统设计开发中,常常会采用某些具有特定功能的IP核以提高系统开发的效率,减少成本。考虑到开发周期和设计要求,本系统设计方案采用Xilinx公司的Tri Mode Ethernet MAC IP核实现对MAC数据的主要处理工作,该IP核支持多种工作模式,同时用户可以根据要求实现自定义配置。其次,为了实现网络的IP地址和MAC地址的自动映射,本系统还增加了对ARP数据包的解析和ARP应答功能的设计。除此之外,为了提高系统的通用性,物理芯片需能够支持1000/100/10M以太网、双工/半双工工作模式以及1000M光纤的接入。 [color=rgb(51, 51, 51) !important]1.2 系统功能 [color=rgb(51, 51, 51) !important]根据以述的设计思想,为了满足大部分设备对以太网的MAC数据处理的需求,确定了本系统设计的功能如下: [color=rgb(51, 51, 51) !important](1)支持10M/100M/1000M以太网; [color=rgb(51, 51, 51) !important](2)支持双工/半双工; [color=rgb(51, 51, 51) !important](3)CRC校验和帧长度校验; [color=rgb(51, 51, 51) !important](4)MAC地址滤波; [color=rgb(51, 51, 51) !important](5)支持ARP解析; [color=rgb(51, 51, 51) !important](6)支持RJ45标准网口和SFP插口的输入; [color=rgb(51, 51, 51) !important](7)支持I2C接口用户配置。 [color=rgb(51, 51, 51) !important]1.3 系统总体结构设计 [color=rgb(51, 51, 51) !important]根据上述技术指标及设计思想,图3-1给出了本系统的总体结构框图。本系统可分为五大模块:以太网数据转换电路、PHY接口模块、MAC核心处理模块、用户配置模块和用户数据接口模块。 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-1系统总体结构框图 [color=rgb(51, 51, 51) !important](1)以太网数据交换电路 [color=rgb(51, 51, 51) !important]以太网数据交换电路,主要功能是实现双绞线或光纤电缆的以太网物理层数据与MAC层数据的转换,为FPGA提供处理的MAC数据源和送出FPGA的上传MAC数据,是传输介质和FPGA数据交流的桥梁。 [color=rgb(51, 51, 51) !important](2)PHY接口模块 [color=rgb(51, 51, 51) !important]PHY接口模块,可分为接收PHY和发送PHY接口两个子模块,实现接收数据和发送数据的同步。 [color=rgb(51, 51, 51) !important](3)MAC核心处理模块 [color=rgb(51, 51, 51) !important]根据以上设计思想,MAC数据的核心处理模块直接采用Xilinx的Tri Mode Ethernet MAC IP核,可以完成MAC地址滤波、数据CRC和长度校验、封装MAC数据帧格式等基本功能,对接受的数据进行相应的好坏标记和对上传的数据进行封装标记。 [color=rgb(51, 51, 51) !important](4)用户配置模块 [color=rgb(51, 51, 51) !important]用户配置模块主要是实现主控系统正确地完成对IP核寄存器和系统地址信息(IP地址和MAC地址)的配置,同时实时地监控IP核的工作状态。该模块可分为I2C接口和IP核配置两个子模块,I2C接口子模块采用400Kb/s的I2C总线协议,模拟从设备I2C时序;IP核配置子模块模拟IP核HOST配置时序,以实现对IP核寄存器的配置。 [color=rgb(51, 51, 51) !important](5)用户数据接口模块 [color=rgb(51, 51, 51) !important]用户数据接口模块涉及对通过IP核处理后的接收数据帧和待上传的数据包两部分数据的处理以及ARP功能的实现,可分为接收数据用户接口、上传数据用户接口、ARP解析与应答三个子模块。 [color=rgb(51, 51, 51) !important]芯片的选取 [color=rgb(51, 51, 51) !important]2.1 物理层芯片选择 [color=rgb(51, 51, 51) !important]以太网物理层的处理工作大多数直接采用专业的物理层芯片来完成,完成数据的物理层编解码和收发功能。目前,物理层芯片的生产商以国外为主,如Marvell、NS、Broadcom公司等,其主流产品为100/10M和1000M物理层芯片,随着以太网的速率的提高,万兆物理层芯片也被广泛应用于光纤以太网。国内对芯片的研发起步比较晚,华为、中兴、天津中晶微电子等企业近些年也推出了不少的产品,但是技术还有待发展。 [color=rgb(51, 51, 51) !important]88E1111芯片是Marvell公司Alaska系列的一款千兆以太网收发器,主要应用于10Base-T、100Base-TX、1000Base-T的以太网,采用CMOS工艺,能实现基于CAT5非屏蔽双绞线标准的以太网物理层数据的收发。88E1111支持多种MAC接口模式,有GMII/MII、RGMII、SGMII、TBI和RTBI,是一款应用广泛的以太网物理层芯片。 [color=rgb(51, 51, 51) !important]88E1111芯片采用了Marvell公司的VCT(Virtual Cable Tester,虚拟电缆测试仪)功能,可以使用时域反射技术远程测试电缆故障,减少了设备应答和服务请求的次数,同时还能通过VCT检测线缆潜在的问题和线缆的开路、短路或阻抗不匹配问题,准确度能达到一米。另外,88E1111芯片具有先进的混合信号处理能力,可以以1Gbps的速率完成自适应均衡、消除反射或串扰、数据恢复、误码纠正等功能,是一款抗噪声能力强的低功耗以太网物理层芯片。 [color=rgb(51, 51, 51) !important]88E1111芯片中嵌入了一个可选的1.25GHzSERDES(并串转换/串并转换器),可以直接与光纤收发器连接,实现1000Base-X光纤标准与1000Base-T双绞线标准传输媒体的转换。通过选择,88E1111可以通过RJ45接口接入1000Base-T双绞线网络或SFP(小型可插拔)模块接入光纤网络,分别如图3-2和3-3所示。 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-2 88E1111接入双绞线网络 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-3 88E1111接入光纤网络 [color=rgb(51, 51, 51) !important]除了以上所述,88E1111芯片还支持光纤与铜线自动检测、网络连接的自动协商、可编程的LED驱动等功能,方便了用户对以太网接入的开发。 [color=rgb(51, 51, 51) !important]根据本文系统设计的功能的要求,以太网物理层芯片需满足同时支持RJ45和SFP两种接口,10Base-T、100Base-TX、1000Base-T标准双绞线和千兆光纤介质的传输,半双工和双工切换的工作模式。Marvell公司的以太网物理层芯片88E1111,采用0.13μm的CMOS工艺,是一款低成本、低功耗的千兆以太网物理层芯片,足以满足系统设计的要求 [color=rgb(51, 51, 51) !important]2.2 FPGA主芯片选择 [color=rgb(51, 51, 51) !important]在FPGA的开发设计中,FPGA芯片的选取非常重要,不合理的选取会导致一系列的后续设计问题,甚至会失败;合理的选取不仅避免设计问题,而且可以提高系统的性价比,延长产品的生命周期。通常,FPGA芯片选取需从芯片的供货商和开发工具的支持、电气接口标准、硬件资源、速度等级、温度等级、封装形式、价格七个方面入手。 [color=rgb(51, 51, 51) !important](1)供货商和开发工具的支持 [color=rgb(51, 51, 51) !important]目前,主要的FPGA供应商有Xilinx公司、Altera公司、Lattice公司和Actel公司等,FPGA的发展迅速,器件的淘汰率随之提高,为了延长产品的生命周期,最好选择货源比较足的主流器件。 [color=rgb(51, 51, 51) !important]从开发工具来看,Xilinx公司的ISE和Altera公司的QuartusⅡ,更新及时、功能强大、界面友好,支持本公司所有器件的设计开发和很多第三方软件的应用,如Synplify Pro、ModleSim等,能将器件的性能发挥到最佳。因此,一般在没有特殊要求情况下,器件从这两家公司中选取。 [color=rgb(51, 51, 51) !important]虽然Altera公司的开发智能程度相对Xilinx公司要高一些,但Xilinx公司具有更强的硬件功能,通过IP核的使用可以达到更高的效率。目前,Xllinx公司的主流器件有Spartan-3、Spartan-3A/3ADSP/3AN、Virtex-4LX、Virtex-4SX、Virtex-4FX、Virtex-5LX、Virtex-5SX、Virtex-5FX、Spartan-6和Virtex-6等系列,其中Spartan-3系列主要应用于逻辑设计;Spartan-3A/3ADSP/3AN主要应用于简单数字信号处理,Virtex-4LX和Virtex-5LX系列主要应用于高速逻辑设计,Virtex-4SX和Virtex-5SX系列主要应用于高速复杂数字信号处理,Virtex-4FX和Virtex-5FX系列主要应用于嵌入式系统。本设计只需要对MAC数据帧做简单的逻辑处理和缓存等等,Spartan-3系列器件足以满足这一需求。 [color=rgb(51, 51, 51) !important](2)芯片的电气接口标准 [color=rgb(51, 51, 51) !important]目前,数字电路的电气接口标准非常多,在某些大型的系统设计中常常需要同时支持多种电气接口标准。本设计中的FPGA的接口电气标准只采用了LVCMOS2.5V和LVCMOS3.3V,Xilinx公司的绝大部分器件均能够满足。 [color=rgb(51, 51, 51) !important](3)硬件资源
[color=rgb(51, 51, 51) !important](4)速度等级 [color=rgb(51, 51, 51) !important]对于芯片速度等级的选取,有一个基本原则:在满足应用需求的情况下,尽量选择速度等级低的芯片。因为速度等级高的芯片更容易产生信号反射,增加价格成本,延长开发周期。本设计的主时钟最高位125M,XC3S400芯片具有-4和-5两个速度等级,-4等级的最高可以达到250M,为节约成本,选取的芯片采用-4等级。 [color=rgb(51, 51, 51) !important]硬件电路设计 [color=rgb(51, 51, 51) !important]3.1 以太网变换电路设计 [color=rgb(51, 51, 51) !important]以太网数据变换电路,实现的是以太网传输媒介上的物理层数据与MAC层数据的转换,为FPGA提供待处理的MAC数据源和输出待上传的MAC数据,本设计主要是选择物理层专业芯片88E1111完成这一功能,其电路设计包括以下几个方面: [color=rgb(51, 51, 51) !important](1)电源与时钟电路设计 [color=rgb(51, 51, 51) !important]88E1111芯片支持两种电平:2.5V和1.0V,有时也可用1.2V代替1.0V。如图3-4所示为芯片的电源电路图,PHY_VDDIO采用2.5V,为芯片I/O引脚供电,与芯片引脚VDDO、VDDOH、VDDOX相连;PHY1_AVDD提供内部模拟逻辑电平,为2.5V,与AVDD引脚相连;PHY1_DVDD提供内部数字逻辑电平 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-488E1111芯片电源电路 [color=rgb(51, 51, 51) !important]为1.0V,与DVDD引脚相连。为了提高电源的稳定性,电源PHY_VDDIO、 [color=rgb(51, 51, 51) !important]PHY1_AVDD、PHY1_DVDD需接入一些滤波电容,以减少电源噪声。 [color=rgb(51, 51, 51) !important]88E1111芯片对数据的处理需要有一个参考时钟,一般通过XAT1引脚输入25M或125M的参考时钟,或通过XAT1和XAT2直接接一个晶振。本设计采用XAT1引脚输入25M的时钟,以减少晶振的使用数量,如图3-5所示,CLK_25M_PHY1与XAT1引脚相连,提供25M的时钟;为了保证电路的可调性,同时在XAT1和XAT2的两端添加一个晶振,作为参考时钟的备用方案。 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-588E1111芯片时钟电路 [color=rgb(51, 51, 51) !important](2)配置电路设计 [color=rgb(51, 51, 51) !important]在88E1111的芯片设计中,器件物理地址、PHY操作模式、自动协商模式、MDI(Media Dependent Interface,媒介相关接口)交叉功能、PHY接口模式等的配置需通过芯片CONFIG0~CONFIG6引脚硬件配置来实现,CONFIG0~CONFIG6引脚配置位映射关系表和各配置寄存器的定义描述分别如表3-3和表3-4所示。 [color=rgb(51, 51, 51) !important]在硬件电路设计中,CONFIG0~CONFIG6配置位的选择通常是通过与LED输出引脚、VDDO或者VSS引脚的连接来完成的,其各引脚与配置位的映射关系如表3-5所示。 [color=rgb(51, 51, 51) !important]为了方便开发设计,本设计将芯片地址设置为00000,屏蔽PAUSE帧,同时使能MDI交叉连接、光纤与铜线接入自动识别、能量检测功能,其自动协商支持所有网路模式;125MHz的数据发送的参考时钟由FPGA提供,125MHz时 [color=rgb(51, 51, 51) !important]表3-3CONFIG0~CONFIG6引脚配置位映射关系表
[color=rgb(51, 51, 51) !important]钟输出设置为无效;IPQAM项目的CPU对从设备的寄存器配置采用的是I2C总线方式,因此88E1111需配置成I2C从模式;PHY接口采用GMII/MII模式,减少FPGA对时钟的时序要求。因此,如图3-6配置电路图所示,默认情况下将CONFIG0~CONFIG6引脚分别配置为000、000、111、111、111、001、110。但是为了系统的升级维护,对CONFIG1、CONFIG4、CONFIG5、CONFIG6引脚设置了配置保留值,根据不同的需求本系统可以支持PAUSE帧的传输、RGMII的PHY 接口、MDC/MDIO寄存器配置等工作模式。 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-6 88E1111配置电路 [color=rgb(51, 51, 51) !important](3)RJ45接口和SFP接口电路设计 [color=rgb(51, 51, 51) !important]本系统支持普通双绞线和光纤两种媒介接入方式,双绞线的接入采用通用的RJ45接口,其电路图如图3-7所示,88E1111芯片的四对MDI引脚直接与HX5008NL芯片的四对TD引脚相连,实现与RJ45接口的连接,完成双绞线与88E1111芯片的数据交换;光纤的接入采用SFP接口,其电路图如图3-8所示,88E1111芯片的S_IN±引脚与SFP接口芯片的RD±引脚相连,接收光纤电缆上的数据;S_OUT±引脚与TD±引脚相连,完成本地的数据的输出;同时SFP接口芯片采用I2C配置模式,与系统设计一致。 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-7 RJ45接口电路 [color=rgb(51, 51, 51) !important]
[color=rgb(51, 51, 51) !important]图3-8 SFP接口电路
|