基于FPGA的嵌入式串行千兆以太网设计

发布者:bullfish最新更新时间:2014-12-03 来源: 21ic关键字:千兆以太网  FPGA  SGMII  PowerPC 手机看文章 扫描二维码
随时随地手机看文章

引言
随着通信技术的发展,千兆以太网因在传输中具备高带宽和高速率的特点,成为高速传输设备的首选。基于Xilinx FPGA的嵌入式系统设计整合了一系列的知识产权(IP)核使其功能强大,从而使得利用FPGA进行嵌入式串行千兆以太网开发成为可能。
本设计使用Xilinx公司65 tim工艺级别的Virtex-5FXT系列芯片,满足嵌入式系统设计所应具备的高性能、高密度、低功耗和低成本的要求。V5 Hard TEMAC模块提供了专用的以太网功能,并通过FPGA内部高速串行收发器GTX和Marvell公司的88E1111物理层接口芯片相连,完成串行千兆以太网的接口功能。物理层接口芯片支持MII、GMII、RGMII和SGMII四种以太网接口模式。相对GMII接口而言,SGMII接口的I/O端口数目少,便于PCB布线,并且数据信号以差分对的形式出现,有利于保证信号完整性。
本文将FPGA内嵌PowerPC硬核处理器、Xilinx精简嵌入式操作系统Xilkernel,以及相应的外设IP Core相结合,完成嵌入式串行千兆以太网的设计。

1 总体设计
系统硬件平台中选用Xilinx公司的Virtex-5 FX70t作为主控芯片,它集成了PowerPCA40处理器模块和高速RocketIO GTX收发器。
外部存储器采用Mcron公司的128M×16位DDRSDRAM芯片MT47H128M16HG-31T,为程序运行提供空间。
在网络芯片方面有两种方案可供选择,即单物理层芯片方案和物理层加MAC层集成于同一芯片方案。基于易于控制方面的考虑,采用Marv ell公司的88E1111单物理层接口芯片作为解决方案,该芯片支持10BASE-T、100BASE-TX和1000BASE-T以太网协议。本系统硬件由Virtex-5 FX 70t芯片、88E1111 PHY芯片、DDRII芯片、8个拨码开关(8DIPS)、8个LED灯和RJ45接口构成,其连接框图如图1所示。

d.JPG


串行千兆以太网设计中,需使用FPGA内部RoeketIO GTX收发器完成SGMII链路的建立。RoeketIOGTX是集成在Virtex-5 FX70t芯片中灵活的、功能可配置的千兆位级串行收发器,支持750 Mbps~6.5 Gbps的数据传输速率,满足千兆以太网系统设计中数据传输速率的要求。本设计通过在FPGA中例化EMAC硬核,并将相应的FPGA端口和外部PHY芯片88E1111相连完成SGMII链路的建立。SGMII接口使用全双工模式,有收发两个独立的通道,每个通道使用一对差分信号线,采用无时钟信号模式,RoeketIO GTX收发器从串行数据中恢复时钟用于差分数据的发送与接收。
SGMII接口实现框图如图2所示。

a.JPG

本系统基于Xilinx公司嵌入式系统开发工具EDK12.3完成软硬件协同设计。EDK12.3由XPS(Xilinx Platform Studio)、SDK(Software Development Kit)等组成。设计时需在XPS环境下添加所需的IP核,生成硬件系统框架,并添加相应的引脚约束和时序约束,然后调用Plat gen生成嵌入式系统硬件部分的网表(.NGC)文件和比特(.bit)文件,并通过软件描述文件(.MSS文件)来设置系统软件配置;接着将硬件设计导入到SDK中,并在SDK中生成各个外设的驱动层和库,设置相应软件的操作系统、库、外设驱动的属性,添加应用软件项目并编写应用软件;最后,调用处理器对应的编译器编译软件并和硬件可执行文件合成后,生成最终的二进制比特文件,下载到目标板进行系统调试。

2 PowerPC的硬件设计
设计中采用的FPGA内嵌硬核处理器PowerPC440属于32位精简指令集嵌入式处理器,它采用扩展型Book-E结构,其内部包括一个高性能、可双指令处理并有七级流水线的微内核。同时,具有灵活的存储器管理单元(MMU)、3个相互独立的128位PLB总线接口、4个直接存储器存储(DMA)控制单元,以及设备控制寄存器(DCR)等。它集成了32 KB指令和32 KB数据缓存,在550 MHz时钟频率下可提供高达1100 DMIPS的性能。在本设计中,PowerPCA40通过PLB总线与外设端口相连,其硬件架构如图3所示。

b.JPG


系统硬件平台的搭建(包括PowerPC处理器功能配置、系统总线结构以及相应的地址映射)均在EDK集成开发环境XPS中完成。
设计中采用片内高速数据总线PLB连接各种控制IP核,PowerPC440通过PLB总线完成对内部IP核以及外设的访问和控制功能。其中,外部PHY芯片通过与在FPGA内部例化EMAC核(Ethernet MAC)相连,挂载在PLB总线上,完成SGMII链路的建立;DDR II芯片通过IP核多端口存储控制器(Multiport Memory Controller,MPMC)挂载在PLB总线上,实现外部存储功能;串口通过串口控制器IP核(Xps_uartlite)与PLB总线相连,用于打印输出调试状态信息;8个拨码开关DIP和LED灯分别通过GPIO口与PLB总线相连,实现简单的控制与状态显示功能。[page]
硬件结构如图4所示。

c.JPG


本系统使用时钟生成器IP核生成系统各模块工作时所需时钟。该IP核模块的输入时钟为FPGA全局时钟引脚输入的100 MHz时钟,经过相应的倍频,生成400 MHz的PowerPC440工作时钟,生成200 MHz的DDR Il工作时钟以及125 MHz的Ethernet MAC工作时钟。
在各模块添加及连接结束后,需添加UCF约束文件,包括FPGA引脚约束和相应的时序约束等,并对XPS自动生成的微处理器硬件规范MHS文件进行相应的修改,对系统进行适当的优化。生成的系统在综合、布局、布线无误后生成最终的.bit文件,准备下载到电路板上。

3 嵌入式系统软件设计
本系统软件部分需实现TCP/IP网络协议,TCP/IP协议模型包括应用层、传输层、网络层和网络接口层。网络接口层分为PHY层和MAC层两部分。其中,PHY层由外部PHY芯片88E1111实现,MAC层由Xilinx公司的Hard Ethernet MAC IP核实现,并作为整个Power-PC系统硬件的一部分在FPGA的内部实现。
网络层和传输层主要采用LwIP协议模块编写相应的软件代码。LwIP同时支持服务器模式和客户端模式,提供RAW和Socket两种API。它的特点是在保持TCP/IP协议主要功能的情况下,减少对RAW的使用,使得LwIP在各类高档嵌入式系统开发中得到广泛的应用。本设计选择Xili nx公司的精简嵌入式操作系统Xilkernel,用于更好地管理系统资源。Xilkernel能与EDK形成的硬件系统紧密结合,是一种可定制的简单高效系统。Xilkernel系统的配置可以在开发环境SDK中进行手动设置。本设计中运用LwIP协议模块编写运行在Xilkernel操作系统上的应用软件,实现了Web Server(网页服务)、FTP(FileTransfer Protocl)、Telnet远程登录服务、iperf应用等功能。下面以网页服务程序、iperf服务器和客户端程序为例对软件设计流程进行说明。
具体流程描述如下:
①在Xilkernel系统的静态启动线程main_thread()中,初始化网络协议和文件系统。
②调用线程生成函数sys_thread_new()生成并启动线程1。
③在线程1中设置电路板硬件的MAC地址、网关、IP地址和子网掩码等参数,并初始化网络接口。具体设置方式如下:MAC地址为00;0a:35;00;01;02;IP4地址为192.168.1.10;IP4地址掩码为255.255.255.0;IP4地址网关为192.168.1.1。
④初始化一个Socket,将它与IP地址和端口号绑定,然后开始监听网络,一旦监听到网络请求,再由函数sys_thread_new()生成一个线程2去响应,用于缓存接收到的数据包。然后,通过函数launch_app_threads()判断监听到的网络请求属于哪种类型,并由函数sys_thread_ new()生成相应的线程3去处理。
如果是网络服务请求,则将网页文件输出到PC机上,并接收PC机传输的控制数据信息,其程序流程如图5所示。如果是iperf应用请求,则发送或接收相应的数据完成对请求的响应。

g.JPG


网页服务程序运行前需在FPGA外部的DDR中建立文件系统,将用于控制的相关网页文件保存在该文件系统中。系统在运行时,访问预设的IP地址,会将相关网页文件传输到远端控制电脑上,并通过网页中的超链接命令脚本将预设的控制信息传送给PowerPC处理器,用以控制电路板上的LED灯亮灭,或者读取电路板上拨码开关的状态值并在服务器首页上显示。
本设计中采用iperf网络测试软件对其性能进行测试。采用9 000字节巨帧可以实现高达490 Mbps的传输速率。

结语
本文成功使用Virtex-5 FX70t芯片实现串行千兆以太网系统,并通过网页服务程序对其功能加以验证。本系统在硬件电路设计阶段具有I/O端口数目少、便于PCB布线,以及信号完整性容易保证等优点。通过iperf网络测试软件对其传输速率进行测试,其结果达到高速数据传输的要求。

关键字:千兆以太网  FPGA  SGMII  PowerPC 引用地址:基于FPGA的嵌入式串行千兆以太网设计

上一篇:瑞萨电子推出RZ/T1实时处理器解决方案
下一篇:高性能嵌入式工业以太网监控系统设计

推荐阅读最新更新时间:2024-03-16 13:47

Lattice sensAI 3.0将功耗减半,使CrossLink-NX FPGA的性能加倍
Lattice日前发布了其sensAI edge推论解决方案堆栈的3.0版本,为公司28纳米FD-SOI CrossLink NX系列低功耗FPGAs提供了一些更新功能和支持。根据Lattice的说法,与此前的版本相比,运行sensAI软件的CrossLink NX设备的性能提高了一倍,功耗降低了一半。 sensAI 3.0版的主要增强功能包括: 新的CNN加速器IP利用了并行性、2.5 Mb的分布式内存和块RAM,以及CrossLink NX FPGA架构中额外的DSP资源。 对NN编译器工具的更新,简化了编译和下载训练模型,以交联NX FPGAs。 增加了对Lattice ECP5 FPGAs上MobileNe
[嵌入式]
HDLC控制协议的FPGA设计与实现
摘要:设计了一种基于FPGA的HDLC协议控制系统该系统可有效利用FPGA片内硬件资源,无需外围电路,高度集成且操作简单。重点对协议的CRC校验及“0”比特插入模块进行了介绍,给出了相应的VHDL代码及功能仿真波形图。 关键词:高级数据链路控制; 现场可编程门阵列; 循环冗余码校验 1 引言 HDLC(High Level Data Link Control)协议是通信领域中应用最广泛的协议之一,它是面向比特的高级数据链路控制规程,具有差错检测功能强大、高效和同步传输的特点。目前市场上有很多专用的HDLC芯片,但这些芯片大多因追求功能的完备,而使芯片的控制变得复杂。实际上,对于某些特殊场合的特殊用途(如手持式设备),我们
[半导体设计/制造]
IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器
IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器 摘 要:本文介绍了一种采用级联结构在FPGA上实现任意阶IIR数字滤波器的方法。此设计扩展性好,便于调节滤波器的性能,可以根据不同的要求在不同规模的FPGA上加以实现。 IIR数字滤波器在很多领域中有着广阔的应用。与FIR数字滤波器相比,它可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高,在相同门级规模和相同时钟速度下可以提供更好的带外衰减特性。下面介绍一种在FPGA上实现IIR数字滤波器的方法。 IIR数字滤波器的结构 任意阶的IIR滤波器可通过数学分解,表示为: 其中为如下的二阶形式: 这样就可以将任意阶的IIR滤波器通过若干二阶网
[嵌入式]
IIR数字滤波器设计-在<font color='red'>FPGA</font>上实现任意阶IIR数字滤波器
带你了解一下片上高速网络FPGA的八大好处
引言 自从几十年前首次推出FPGA以来,每种新架构都继续在采用按位(bit-wise)的布线结构。虽然这种方法一直是成功的,但是随着高速通信标准的兴起,总是要求不断增加片上总线位宽,以支持这些新的数据速率。这种限制的一个后果是,设计人员经常花费大量的开发时间来尝试实现时序收敛,牺牲性能来为他们的设计布局布线。 传统的FPGA布线基于整个FPGA中水平和垂直方向上运行的多个独立分段互连线(segment),在水平和垂直布线的交叉点处带有开关盒(switch box)以实现通路的连接。通过这些独立段和开关盒可以在FPGA上构建从任何源到任何目的地的通路。FPGA布线的这种统一结构为实现任何逻辑功能提供了极大的灵活性,可用于FP
[嵌入式]
带你了解一下片上高速网络<font color='red'>FPGA</font>的八大好处
结合FPGA与结构化ASIC进行设计
由于结构化ASIC具有单位成本低、功耗低、性能高和转换快(fast turnaound)等特点,越来越多的先进系统设计工程师正在考虑予以采用。在结构化ASIC中,像通用逻辑门、存储器、锁相环和I/O缓存这些功能性资源都嵌在芯片内部经过预设计和预验证的基层中。然后,该层和顶部少数金属互联层一起完成定制。比起从头开始创建ASIC来说,这种方法可大幅缩短设计时间。 仅在芯片少数金属层上配置电路,不仅可以降低开发成本和缩短开发时间,而且降低了设计错误发生的风险。这是因为与ASIC需要设计许多掩膜层来构成芯片相比,结构化ASIC供应商只需要生成相对简单的金属层。 然而,利用结构化ASIC进行开发也不是没有风险。逻辑设计错误仍然可能存在。
[嵌入式]
可编程逻辑在数字信号处理系统中的应用
1 引言 随着半导体技术的发展,可编程逻辑器件在结构、工艺、集成度、功能、速度和灵活性等方面有了很大的改进和提高,从而为高效率、高质量、灵活地设计数字系统提供了可靠性。CPLD或FPGA技术的出现,为DSP系统的设计又提供了一种崭新的方法。利用CPLD或FPGA设计的DSP系统具有良好的灵活性和极强的实时性。同时,其价格又可以被大众接受。由于乘法器在数字信号处理系统中具有广泛的应用,所以本文以乘法器的处理系统中具有广泛的应用,所以本文以乘法器的设计为例,来说明采用可编程逻辑器件设计数字系统的方法。如果想使系统具有较快的工作速度,可以采用组合逻辑电路构成的乘法器,但是,这样的乘法器需占用大量的硬件资源,因而很难实现宽位乘法器功能。本
[嵌入式]
可编程逻辑在数字信号处理系统中的应用
瑞苏盈科出席欧洲FPGA大会并发表演讲
FPGA Conference Europe 是欧洲领先的可编程逻辑器件专家会议 。在越来越受人工智能驱动的云数据中心、电信和许多其他高性能应用中,现场可编程门阵列(简称 FPGA)早已证明自己是适用于各种任务的灵活且强大的加速器解决方案。 2022年欧洲 FPGA 大会,于 7 月 5 日至 7 日在德国慕尼黑东会议中心举办,3天100%专业知识!75个来自全球顶级专家演讲。讨论嵌入式系统的开发人员必须处理新的解决方案和方法,但同时也要澄清基本问题:FPGA 是否适合他们自己的项目?使用 FPGA 的最佳方式是什么?瑞苏盈科作为参展商出席了此次会议并发表演讲! 欧洲FPGA大会现场 来自Enclustra的演讲者
[嵌入式]
瑞苏盈科出席欧洲<font color='red'>FPGA</font>大会并发表演讲
基于FPGA的PROFIBUS-DP总线光电收发器设计
      PROFIlBUS-DP现场总线以其高速、低成本等优点而广泛应用于制造业自动化、流程工业自动化和楼宇自动化等行业,它的物理层数据传输依赖RS-485接口。RS-485接口是一种工业领域内广泛使用的串行通信接口,可采用“差分”方式在屏蔽双绞线中传输信号,因而具有较好的抗共模干扰能力,通信距离可达千米。PROFIBUSDP总线信号也可使用屏蔽双绞线传输,数据速率为9.6 kbps时的理论传输距离为1200米,波特率为12:Mbps时的理论传输距离为100米。但是,由于工业现场情况错综复杂,各种干扰相互叠加,且RS-485标准规定单段网络最多可支持32个节点(标准负载),因此,有必要使用一种中继设备来将信号更准确、更完整地传
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved