随着通信技术的发展,千兆以太网因在传输中具备高带宽和高速率的特点,成为高速传输设备的首选。基于xilinx fpga的嵌入式系统设计整合了一系列的知识产权(ip)核使其功能强大,从而使得利用fpga进行嵌入式串行千兆以太网开发成为可能。
本设计使用xilinx公司65 nm工艺级别的virtex5 fxt系列芯片,满足嵌入式系统设计所应具备的高性能、高密度、低功耗和低成本的要求。v5 hard temac模块提供了专用的以太网功能,并通过fpga内部高速串行收发器gtx和marvell公司的88e1111物理层接口芯片相连,完成串行千兆以太网的接口功能。物理层接口芯片支持mii、gmii、rgmii 和sgmii四种以太网接口模式。相对gmii接口而言,sgmii接口的i/o端口数目少,便于pcb布线,并且数据信号以差分对的形式出现,有利于保证信号完整性[1]。
本文将fpga内嵌powerpc硬核处理器、xilinx精简嵌入式操作系统xilkernel,以及相应的外设ip core相结合,完成嵌入式串行千兆以太网的设计。
1 总体设计
系统硬件平台中选用xilinx公司的virtex5 fx70t作为主控芯片,它集成了powerpc440处理器模块和高速rocketio gtx收发器。
外部存储器采用micron公司的128m×16位ddr sdram芯片mt47h128m16hg 31t,为程序运行提供空间。
在网络芯片方面有两种方案可供选择,即单物理层芯片方案和物理层加mac层集成于同一芯片方案[2]。基于易于控制方面的考虑,采用marvell公司的88e1111单物理层接口芯片作为解决方案,该芯片支持10baset、100basetx和1000baset以太网协议。本系统硬件由virtex5 fx70t芯片、88e1111 phy芯片、ddrii芯片、8个拨码开关(8dips)、8个led灯和rj45接口构成,其连接框图如图1所示。
图1 系统硬件连接框图
串行千兆以太网设计中,需使用fpga内部rocketio gtx收发器完成sgmii链路的建立。rocketio gtx是集成在virtex5 fx70t芯片中灵活的、功能可配置的千兆位级串行收发器,支持750 mbps~6.5 gbps的数据传输速率,满足千兆以太网系统设计中数据传输速率的要求。本设计通过在fpga中例化emac硬核,并将相应的fpga端口和外部phy芯片88e1111相连完成sgmii链路的建立。sgmii接口使用全双工模式,有收发两个独立的通道,每个通道使用一对差分信号线,采用无时钟信号模式,rocketio gtx收发器从串行数据中恢复时钟用于差分数据的发送与接收。
sgmii接口实现框图如图2所示。
图2 sgmii接口实现框图
本系统基于xilinx公司嵌入式系统开发工具edk12.3完成软硬件协同设计。edk12.3由xps (xilinx platform studio)、sdk(software development kit)等组成。设计时需在xps环境下添加所需的ip核,生成硬件系统框架,并添加相应的引脚约束和时序约束,然后调用platgen生成嵌入式系统硬件部分的网表(.ngc)文件和比特(.bit)文件,并通过软件描述文件(.mss文件)来设置系统软件配置;接着将硬件设计导入到sdk中,并在sdk中生成各个外设的驱动层和库,设置相应软件的操作系统、库、外设驱动的属性,添加应用软件项目并编写应用软件;最后,调用处理器对应的编译器编译软件并和硬件可执行文件合成后,生成最终的二进制比特文件,下载到目标板进行系统调试[3]。
2 powerpc的硬件设计
设计中采用的fpga内嵌硬核处理器powerpc440属于32位精简指令集嵌入式处理器,它采用扩展型booke结构,其内部包括一个高性能、可双指令处理并有七级流水线的微内核。同时,具有灵活的存储器管理单元(mmu)、3个相互独立的128位plb总线接口、4个直接存储器存储(dma)控制单元,以及设备控制寄存器(dcr) 等[4]。它集成了32 kb指令和32 kb数据缓存,在550 mhz时钟频率下可提供高达1 100 dmips的性能。在本设计中,powerpc440通过plb总线与外设端口相连,其硬件架构如图3所示。
图3 嵌入式系统硬件架构
系统硬件平台的搭建(包括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总线相连,实现简单的控制与状态显示功能。
硬件结构如图4所示。
图4 powerpc硬件结构图
本系统使用时钟生成器ip核生成系统各模块工作时所需时钟。该ip核模块的输入时钟为fpga全局时钟引脚输入的100 mhz时钟,经过相应的倍频,生成400 mhz的powerpc440工作时钟,生成200 mhz的ddr ii工作时钟以及125 mhz的ethernet mac工作时钟。
在各模块添加及连接结束后,需添加ucf约束文件,包括fpga引脚约束和相应的时序约束等,并对xps自动生成的微处理器硬件规范mhs文件进行相应的修改,对系统进行适当的优化。生成的系统在综合、布局、布线无误后生成最终的.bit文件,准备下载到电路板上。
3 嵌入式系统软件设计
本系统软件部分需实现tcp/ip网络协议,tcp/ip协议模型包括应用层、传输层、网络层和网络接口层[5]。网络接口层分为phy层和mac层两部分。其中,phy层由外部phy芯片88e1111实现,mac层由xilinx公司的hard ethernet mac ip核实现,并作为整个powerpc系统硬件的一部分在fpga的内部实现。
网络层和传输层主要采用lwip协议模块编写相应的软件代码。lwip同时支持服务器模式和客户端模式,提供raw和socket两种api。它的特点是在保持tcp/ip协议主要功能的情况下,减少对raw的使用,使得lwip在各类高档嵌入式系统开发中得到广泛的应用。本设计选择xilinx公司的精简嵌入式操作系统xilkernel,用于更好地管理系统资源。
xilkernel能与edk形成的硬件系统紧密结合,是一种可定制的简单高效系统。xilkernel系统的配置可以在开发环境sdk中进行手动设置。本设计中运用lwip协议模块编写运行在xilkernel操作系统上的应用软件,实现了web server(网页服务)、ftp(file transfer 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应用请求,则发送或接收相应的数据完成对请求的响应。
图5 网页服务程序流程
网页服务程序运行前需在fpga外部的ddr中建立文件系统,将用于控制的相关网页文件保存在该文件系统中。系统在运行时,访问预设的ip地址,会将相关网页文件传输到远端控制电脑上,并通过网页中的超链接命令脚本将预设的控制信息传送给powerpc处理器,用以控制电路板上的led灯亮灭,或者读取电路板上拨码开关的状态值并在服务器首页上显示。
本设计中采用iperf网络测试软件对其性能进行测试。采用9 000字节巨帧可以实现高达490 mbps的传输速率。
结语
本文成功使用virtex5 fx70t芯片实现串行千兆以太网系统,并通过网页服务程序对其功能加以验证。本系统在硬件电路设计阶段具有i/o端口数目少、便于pcb布线,以及信号完整性容易保证等优点。通过iperf网络测试软件对其传输速率进行测试,其结果达到高速数据传输的要求。
参考文献
[1] xilinx.virtex5 fpga embedded trimode ethernet mac user guide. [eb/ol].[20120711]. ~cs150/sp10/project/checkpoint2/ ug194.pdf.
[2] 高一沅,黄春晖.基于microblaze的以太网通信系统平台设计的研究[j].现代电子技术,2007(17):2931.
[3] 王长清,陈栋.基于fpga的千兆以太网通信板的设计与实现[j].河南师范大学学报:自然科学版,2011,39(1):8689.
[4] 宋晓翠,张晋宁.基于powerpc440的嵌入式系统设计与研究[j].新特器件应用,2009,11(7):1921.
[5] 徐欣,于红旗,易凡,等. 基于fpga的嵌入式系统设计[m].北京:机械工业出版社,2005.
什么是Apple开放传输协议
基于RTEMS操作系统实现面向任务的调试方法分析
工业级无线路由助力搭建医疗救助信息传输桥梁
机器人产业拐点已至未来路在何方
芯和半导体邀您共聚厦门ICCAD2022大会
基于Xilinx FPGA的嵌入式串行千兆以太网设计
IDC带你解读2015年十大科技发展趋势
超声波多普勒流速流量仪
TCL实力展现硬核音画质,全球首款最薄MiniLED电视
基于VL813芯片的USB3.0 HUB方案
盘点:智能家居中用到的有线和无线通信技术
高通苹果相杀,结果只会是两败俱伤
使用400Hz中频电源的正确方法是什么?主要是应用在哪些方面的呢?
智能工业远程IO模块应用介绍
PCB印刷电路进行等离子清洗处理的作用与重要性
一加6将在印度首发 价格低于小米 MIX2S
太阳能MP3播放器(图)
基于区块链技术去中心化的场外交易平台商币平台介绍
不止渲染已久的魅族Pro7首款双面屏手机,还有p25一款神秘新机!
Nordic使能跟踪网关设备新产品的介绍和应用说明