CN102761558A - 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法 - Google Patents

基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法 Download PDF

Info

Publication number
CN102761558A
CN102761558A CN201210271243XA CN201210271243A CN102761558A CN 102761558 A CN102761558 A CN 102761558A CN 201210271243X A CN201210271243X A CN 201210271243XA CN 201210271243 A CN201210271243 A CN 201210271243A CN 102761558 A CN102761558 A CN 102761558A
Authority
CN
China
Prior art keywords
fpga
treck
layer
communication system
protocol stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201210271243XA
Other languages
English (en)
Inventor
王少军
刘大同
彭宇
义日贵
庞业勇
马宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201210271243XA priority Critical patent/CN102761558A/zh
Publication of CN102761558A publication Critical patent/CN102761558A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法,涉及一种以太通信系统及其通信方法,属于通信领域。为了解决目前基于LwIP协议栈以太通信系统传输速率低且不稳定的问题。利用SOPC技术搭建基于Xilinx公司XC5VFX130T型号FPGA和Treck协议栈的以太通信系统,所述系统实现TCP/IP五层模型;Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接时,基于上述系统的通信方法包括当FPGA作为客户端,计算机作为服务器,和当FPGA作为服务器,计算机作为客户端的两种通信方法。它用于信息传输。

Description

基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法
技术领域
本发明涉及一种以太通信系统及其通信方法,属于通信领域。 
背景技术
目前,适用于嵌入式系统的TCP/IP协议栈有很多种。其中应用最广泛的是,瑞典计算机科学院的一个开源的TCP/IP协议栈,LwIP(Light weight Internet Protocol,轻型IP协议)协议栈。该协议栈既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。该协议栈实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般只需要几十KB的RAM和40KB左右的ROM就可以运行,从而适合在嵌入式系统中应用。 
使用LwIP协议栈时,测试PowerPC(Performance Optimization With Enhanced RISC–Performance Computing高性能精简指令集处理器)处理器构成的以太通信系统最高传输速率只能达到70Mbit/s-80Mbit/s,传输还常常因为速率不稳定而中断。提高TCP传输的速度和稳定度需要优化LwIP协议栈。如:直接发送源码,在接收的时候直接分析处理源码。但是,该方法工作量非常的大,需要很长的开发周期,而且还需要开发人员具有很高的专业水平。 
LwIP协议栈还有其它的存在问题。开源软件,可以轻易获得,但技术支持和稳定性及可靠性都较差,遇到问题解决困难。应用层软件包不够丰富,需要开发人员自行编写,耗费的人力较大。 
发明内容
本发明的目的是为了解决目前基于LwIP协议栈以太通信系统传输速率低且不稳定的问题,本发明提供一种基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法。 
本发明的基于Xilinx FPGA和Treck协议栈的以太通信系统,它包括DDR2S DRAM、FPGA、三重模式以太网PHY芯片和计算机; 
FPGA的多端口存储器控制器MPMC通过高速接口与DDR2S DRAM连接, 
FPGA的Hard Ethernet MAC通过介质无关接口MII与三重模式以太网PHY芯片相互通信, 
三重模式以太网PHY芯片通过RJ45端口与计算机连接, 
FPGA通过RS232通用异步串行口与计算机连接; 
应用程序嵌入在FPGA的处理器中; 
所述FPGA的型号为Xilinx公司的XC5VFX130T; 
所述系统还包括Treck协议栈; 
所述系统实现了TCP/IP五层模型, 
所述TCP/IP五层模型包括应用层、传输层、网络层和网络接口,网络接口包括数据链路层和物理层; 
数据链路层用Hard Ethernet MAC来实现, 
物理层用以太网PHY芯片三重模式来实现, 
物理层和数据链路层之间的接口为介质无关接口MII, 
应用程序调用Treck协议栈的Berkeley Sockets API函数实现TCP/IP协议网络层、传输层和应用层。 
基于Xilinx FPGA和Treck协议栈的以太通信系统, 
所述FPGA包括PPC440处理器、中断控制器、时钟控制器、串口控制器、Hard Ethernet MAC和多端口存储器控制器MPMC; 
Hard Ethernet MAC通过Local Link总线与多端口存储器控制器MPMC的SDMA端口连接, 
多端口存储器控制器MPMC的PLB端口与PPC440处理器连接, 
PPC440处理器通过PLB总线与多端口存储器控制器MPMC的SDMA端口、HardEthernet MAC、中断控制器、时钟控制器和串口控制器相互通讯。 
基于上述系统的通信方法, 
Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接: 
当FPGA作为客户端,计算机作为服务器时,基于所述以太通信系统的通信方法为: 
步骤一:FPGA设置目标主机IP地址、端口地址和传输协议TCP; 
步骤二:FPGA建立Socket; 
步骤三:Socket绑定到随机端口; 
步骤四:FPGA发出建立连接的请求; 
步骤五:连接成功后,FPGA开始发送数据; 
步骤六:FPGA关闭Socket并断开连接。 
基于上述系统的通信方法, 
Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接: 
当FPGA作为服务器,计算机作为客户端时,基于所述以太通信系统的通信方法为: 
步骤一:FPGA设置本地IP地址、端口地址和传输协议TCP; 
步骤二:FPGA建立Socket; 
步骤三:Socket绑定到随机端口; 
步骤四:FPGA收听建立连接的请求; 
步骤五:FPGA接受建立连接的请求; 
步骤六:连接成功后FPGA开始接受数据; 
步骤七:FPGA关闭Socket且断开连接。 
本发明的优点在于:采用Xilinx开发套件ISE重构FPGA和配置Treck协议栈后的本发明,在以太通信系统中的传输速率可以达到600Mbps-1000Mbps的高速,且传输更加稳定。 
附图说明
图1是具体实施方式一所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的结构示意图。 
图2是具体实施方式二所述的FPGA的结构示意图。 
具体实施方式
具体实施方式一:结合图1说明本实施方式,基于Xilinx FPGA和Treck协议栈的以太通信系统,它包括DDR2 SDRAM、FPGA、三重模式以太网PHY芯片和计算机; 
FPGA的多端口存储器控制器MPMC通过高速接口与DDR2 SDRAM连接, 
FPGA的Hard Ethernet MAC通过介质无关接口MII与三重模式以太网PHY芯片相互通信, 
三重模式以太网PHY芯片通过RJ45端口与计算机连接, 
FPGA通过RS232通用异步串行口与计算机连接; 
应用程序嵌入在FPGA的处理器中; 
所述FPGA的型号为Xilinx公司的XC5VFX130T; 
所述系统还包括Treck协议栈; 
所述系统实现了TCP/IP五层模型, 
所述TCP/IP五层模型包括应用层、传输层、网络层和网络接口,网络接口包括数据链路层和物理层; 
数据链路层用Hard Ethernet MAC来实现, 
物理层用以太网PHY芯片三重模式来实现, 
物理层和数据链路层之间的接口为介质无关接口MII, 
应用程序调用Treck协议栈的Berkeley Sockets API函数实现TCP/IP协议网络层、传输层和应用层。 
Hard Ethernet MAC为以太网硬IP核。API(Application Programming Interface)为应用程序编程接口; 
以太网PHY芯片为以太网物理层芯片; 
MAC(Media Access Controller)为以太网介质访问控制器; 
SDMA(Soft Direct Memory Access)为软核直接内存存取; 
DDR2 SDRAM(Double Data Rate2 Synchronous Dynamic Random Access Memory)为外部存储器。 
具体实施方式二:结合图2说明本实施方式,本实施方式是对具体实施方式一所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的进一步说明, 
所述FPGA包括PPC440处理器、中断控制器、时钟控制器、串口控制器、Hard Ethernet MAC和多端口存储器控制器MPMC; 
Hard Ethernet MAC通过Local Link总线与多端口存储器控制器MPMC的SDMA端口连 接, 
多端口存储器控制器MPMC的PLB端口与PPC440处理器连接, 
PPC440处理器通过PLB总线与多端口存储器控制器MPMC的SDMA端口、Hard Ethernet MAC、中断控制器、时钟控制器和串口控制器相互通讯。 
本实施方式采用Xilinx开发套件ISE重构XC5VFX130T型号FPGA配置。 
以PPC440处理器为核心,实现系统整体的控制和协调。中断控制器(XPS_INTC),时钟控制器(XPS_Timer),串口控制器(XPS_Uart),Hard_Ethernet_MAC,多端口存储器控制器MPMC等通过PLB总线连接到PPC440处理器。Hard Ethernet MAC通过Local Link总线连接到多端口存储器控制器MPMC的SDMA端口,实现收发数据的存取、缓冲等作用,通过吉比特介质独立接口(RGMII)与外部PHY芯片相连。MPMC通过专用高速接口与外部的DDR2 SDRAM相连。 
具体实施方式三:本实施方式是对具体实施方式二所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的进一步限定,所述DDR2 SDRAM的型号为WD2RE01GX809-667G-PE,所述外围三重模式以太网PHY芯片型号是88E1111-RCJ1G2M5321,PPC440处理器最高工作时钟400MHz,PLB总线时钟100MHz。 
现利用SOPC技术搭建基于Xilinx公司XC5VFX130T型号FPGA的以太通信系统:外部存储器是WINTEC公司的DDR2 SDRAM芯片WD2RE01GX809-667G-PE,外围三重模式以太网PHY芯片(Tri-mode Ethernet)型号是88E1111-RCJ1G2M5321。该系统采用Xilinx FPGA内提供的硬IP核Hard Ethernet MAC与外界的Tri-mode Ethernet PHY芯片通信,PHY芯片再通过RJ45接口和超六类双绞线与计算机以太通信,构成了FPGA和计算机的以太通信系统。下图为所建立的以太通信系统的整体架构。 
PPC440微处理器工作在最高工作时钟400MHz,此时PLB总线时钟为100Hz,每周期可执行多条指令,选取32KB64路组关联一级指令缓存和数据缓存。该配置相对于最高工作时钟125MHz的软核的Microblaze处理器和硬核的PPC405处理器在工作效率上有了很大的提高。Hard Ethernet MAC通过Local Link总线连接到多端口存储器控制器MPMC的SDMA端口进行控制与TCP/IP模型的上层的通信,也可以通过多种介质无关接口MII与外围的Tri-mode Ethernet PHY芯片相连进行与下层(物理层)的通信。 
所述以太通信系统通过链路结构实现了TCP/IP五层模型中不同抽象的分层。表1为TCP/IP协议模型对应以太通信系统: 
表1 
Figure BDA00001964656800051
物理层:Tri-mode Ethernet PHY芯片88E1111-RCJ1G2M5321 
物理层和数据链路层之间接口:RGMII(Reduced Gigabit Media Independent Interface缩减的千兆介质无关接口) 
数据链路层:IP核Hard Ethernet MAC 
网络层和传输层:Treck协议栈 
应用层:应用程序 
物理层是指在物理媒体之上为上一层,也就是数据链路层,提供一个传输原始比特流的物理连接。该层基于88E1111系列芯片实现,在该层定义了数据传送与接收所需要的电信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。88E1111-RCJ1G2M5321芯片支持三重模式的以太网传输速度。 
物理层和数据链路层之间接口MII(Media Independant Interface即媒体独立接口),也叫介质无关接口,是物理层和数据链路层间最基本的接口方式。它是IEEE-802.3定义的以太网行业标准。MII数据接口总共需要16个信号线,包括数据接口(4位)和管理接口。通过管理接口,数据链路层能监视和控制物理层。MII标准接口用于连接百兆以太网和十兆以太网的数据链路层与物理层。 
数据链路层在FPGA内部实现,XC5VFX130T配置该层方式有两种。 
软IP核方式:Ethernet MAC(又名xps_ethernetlite),该IP核为软IP,每次重构FPGA都要重新配置,适用于十兆以太网和百兆以太网,不支持千兆以太网。 
硬IP核方式:Hard Ethernet MAC(又名xps_ll_temac,XPS Local Link Tri-Mode Ethernet Media Access Controller),该IP核为硬IP,支持10/100/1000Mb/s的三种传输速度,适用于千兆以太网。 
硬IP核主要特性如下: 
支持多种物理层接口:MII,GMII,RGMII,SGMII; 
支持9000字节的巨帧(jumbo frames); 
提供了TCP/UDP校验和卸载(offload)手段; 
提供了2K到32K字节的接受和发送数据FIFO,提供高速数据一个缓冲队列; 
TCP校验和卸载(offload)手段,由硬件实现了校验和计算,提高了协议解码速度。选用了32K字节的接受和发送数据FIFO,给高速数据提供了一个缓冲队列。选用方式2,Hard Ethernet MAC来实现TCP/IP模型的数据链路层。 
数据链路层和数据链路层与物理层的接口方式用Xilinx开发套件ISE来设计,采用Verilog硬件描述语言。 
网络层的核心是IP(Iternet Protocol网络之间互连的协议)协议,它是TCP/IP协议族中最主要的协议之一。IP协议提供不可靠、无连接的传送服务。在以太网通信系统中,IP协议基于IP地址将数据从服务器端传送到客户端。 
传输层既是TCP/IP模型中负责数据通信的最高层,又是面向网络通信的低层和面向信息处理的高层之间的中间层。典型的传输层协议有TCP(Transmission Control Protocol,传输控制协议)协议和UDP(User Data Protocol,用户数据报协议)协议。表2为TCP协议和UDP协议主要特性作比较: 
表2 
  特性   TCP   UDP
[0100] 
  是否连接   面向连接   面向非连接
  传输可靠性   可靠   不可靠
  应用场合   大量数据   少量数据
  传输速度   慢   快
经比较,选用TCP协议作为计算机和FPGA间以太通信的传输协议。 
Treck协议栈提供了大量的API函数,在应用程序中调用来建立连接,实现网络层和传输层。Treck协议栈还负责驱动和控制底层物理网络,实现底层物理网络与网络层的连接。 
应用层为针对不同应用建立的数据终端。应用层通过应用程序来实现,Treck协议栈也提供了丰富的应用层包。应用层需要实现接受和发送连续、准确的数据任务。应用程序的设计与传输速率切切相关。 
应用程序用Xilinx开发套件ISE来编写,采用的编程语言为标准C。 
具体实施方式四:本实施方式与具体实施方式二所述的基于Xilinx FPGA和Treck协议栈的以太通信系统不同的是,所述FPGA的Hard Ethernet MAC通过RGMII2.0接口与三重模式以太网PHY芯片相互通信,所述物理层和数据链路层之间的接口为RGMII2.0接口。 
对于千兆以太网则采用升级接口模式GMII(Gigabit Media Independant Interface,千兆介质无关接口)。GMII采用8位数据接口,传输速率可达1000Mbps。其缺点是信号线太多,一个接口需要26根信号线。则RGMII(Reduced Gigabit Media Independent Interface,吉比特介质独立接口)接口相对于GMII接口,在发送和接受数据接口上减为一半(4位),总共减少了8根数据线。SGMII(Serial Gigabit Media Independent Interface,串行千兆介质无关接口则需要比RGMII更少的数据接口,为串行数据接口,使用差分结构,其数据接口所需信号线又变为RGMII的一半。SGMII需要提高其工作时钟来实现。 
XC5VFX130T型号FPGA内数据链路层IP核支持的标准接口方式有MII、RGMII1.0、RGMII2.0和SGMII。综合考虑信号线数量、传输速度和实验结果等因素,在该系统中选用RGMII2.0接口方式,。该接口方式在FPGA重构阶段以软IP方式配置FPGA实现,并且该方式兼容MII的接口标准,即支持百兆以太网和十兆以太网。 
具体实施方式五:本实施方式是对具体实施方式二所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的进一步说明, 
所述利用DMA方式实现数据的收发,所述DMA方式包括一个时钟中断、一个TEMAC中断、SDMA接受中断和SDMA发送中断,时钟中断、TEMAC中断、SDMA接受中断和SDMA发送中断分别与中断控制器连接,并按中断优先级向处理器发送中断请求。 
具体实施方式六:基于具体实施方式一所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法, 
Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接: 
当FPGA作为客户端,计算机作为服务器时,基于所述以太通信系统的通信方法为: 
步骤一:FPGA设置目标主机IP地址、端口地址和传输协议TCP; 
步骤二:FPGA建立Socket; 
步骤三:Socket绑定到随机端口; 
步骤四:FPGA发出建立连接的请求; 
步骤五:连接成功后,FPGA开始发送数据; 
步骤六:FPGA关闭Socket并断开连接。 
具体实施方式七:本实施方式是对具体实施方式六所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法的进一步说明, 
当FPGA作为客户端时,数据流线: 
应用程序接受数据-Berkeley Sockets API函数-FPGA端口地址-FPGAIP地址-FPGA数据链路层和物理层-电缆-主机的IP地址-主机数据链路层和物理层-主机的Socket-主机的端口地址。 
具体实施方式八:基于具体实施方式一所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法, 
Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接: 
当FPGA作为服务器,计算机作为客户端时,基于所述以太通信系统的通信方法为: 
步骤一:FPGA设置本地IP地址、端口地址和传输协议TCP; 
步骤二:FPGA建立Socket; 
步骤三:Socket绑定到随机端口; 
步骤四:FPGA收听建立连接的请求; 
步骤五:FPGA接受建立连接的请求; 
步骤六:连接成功后FPGA开始接受数据; 
步骤七:FPGA关闭Socket且断开连接。 
具体实施方式九:本实施方式是对具体实施方式八所述的基于Xilinx FPGA和Treck 协议栈的以太通信系统的通信方法的进一步说明, 
当FPGA作为服务器时,数据流线: 
主机的Socket-主机的端口地址-主机的IP地址-主机数据链路层和物理层-电缆-FPGA数据链路层和物理层-FPGA IP地址-FPGA端口地址-BSD Socket-应用程序接受数据。 
应用程序调用Treck协议栈的Berkeley Sockets API函数实现TCP/IP协议网络层、传输层和应用层。Socket通常也称作"套接字",应用程序通过"套接字"向网络发出请求或者应答网络请求。FPGA需要同时提供几种以太通信服务的时候,每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。 
表3为TCP/IP协议模型对应以太通信系统的不同地址: 
表3 
Figure BDA00001964656800091
以太网MTU:最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小,以字节为单位。通用的以太通信中MTU大小为1500。当两个终端相互通信时其MTU取决于较小者。该系统采用了最通用的MTU1500,其兼容性好。 
采用巨帧格式,最大传输单元大小9000字节~64000字节,可以很大程度的提高传输速度,但有其缺点。巨帧还未成为国际标准,其兼容性不好,需要两边终端都支持巨帧格式。在多个终端的网络中,巨帧可能还会造成数据延迟和阻碍。 
计算机配置:在惠普工作站, 
操作系统:Windows Server,内存:64G,千兆以太网卡; 
计算机与FPGA之间握手成功,在主机输入命令:ping FPGA的IP地址。 
用Treck协议栈官方推荐的测速软件Iperf(版本2.0.5)测试最高接受和发送速度。用Iperf测速原理为:Iperf向FPGA不间断的发送大量数据,FPGA不停地接受端口的数据并存储到内存单元中,为FPGA接收速度;或者同样原理反向发送,为FPGA发送速度。 
测试结果为:最高发送速度944Mbps,最高接收速度610Mbps。 
修改FPGA几种配置参数,其它参数不变的情况下,可以测得速度如下表4: 
表4 
Figure BDA00001964656800101
表4表明32K字节的指令缓存和32K字节的数据缓存提高了处理器的运行效率,对传输速率起到了很大的作用。还可以从表格对比出MicroBlaze和PPC440的工作性能。并从实验得出RGMII的实际传输速度高于SGMII,故在系统中选用了RGMII。MicroBlaze为Xilinx公司软核处理器。 
用LwIP协议栈替换Treck协议栈,修改相关配置参数,其它参数不变,测得速度如表5: 
表5 
比较上两个表格,显然可以看出,LwIP协议栈传输速度很慢,尤其在其较为灵活的Socket模式下传输速度最多只能达到20Mbps~30Mbps。然而Treck协议栈可以得到600Mbps~1000Mbps的高速。 
在工业应用中,庞大的数据量对传输速率有越来越高的需求,这对设备的数据处理能 力也提出了更高的要求。千兆以太网以高效、高速、高性能为特点,成为一种重要的通信技术。FPGA(Field-Programmable Gate Array,即现场可编程门阵列),运行速度快,容易实现大规模系统,内部程序并行运行,在通信领域的应用越来越广泛。基于FPGA的千兆以太网可以实现PC机和FPGA之间的高速以太通信,能可靠的传输高速数据,传输协议具有通用性、互换性。现如今,利用SOPC(System-on-a-Programmable-Chip,即可编程片上系统)技术实现基于FPGA的千兆以太网通信系统的研究意义非凡。 
千兆以太网是当前应用最普遍的通信技术,具有传输速度高、兼容性好、应用广泛等方面的优势。千兆以太网支持几乎所有流行的网络协议,其中使用最广泛的TCP/IP协议支持基于异种操作系统的异种网络间的互联,是真正的开放系统通信协议,已成为目前国际上进行异种网络互联的实际标准。 
TCP/IP协议并不完全符合OSI的七层参考模型。OSI是传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使不同的软硬件在相同的层次上相互通信。这7层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP参考模型是一个抽象的分层模型,这个模型中,所有的TCP/IP系列网络协议都被归类到4个抽象的"层"中。每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。完成一些特定的任务需要众多的协议协同工作,这些协议分布在参考模型的不同层中,因此经常称它们为一个协议栈。表6为TCP/IP协议模型对应OSI参考模型: 
表6 
SOPC技术是一种特殊的嵌入式系统设计技术,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能,被称为“半导体产业的未来”。它 将处理器、存储器、各种接口模块核等系统设计需要的功能模块集成到一个FPGA器件上,构建成一个可编程的片上系统。SOPC的设计以IP核为基础,以分层次的硬件描述语言为系统功能和结构的主要描述手段,借助于以计算机为平台的EDA工具进行。在FPGA中嵌入IP硬核和嵌入IP软核构成了目前两种主流的SOPC解决方案。 
基于FPGA嵌入IP硬核的SOPC系统是指在FPGA中预先植入处理器,使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现SOPC系统。基于FPGA嵌入IP软核的SOPC系统是指在FPGA中植入软核处理器,用户可以根据设计的要求,利用相应的开发工具,对处理器及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。 
目前,利用SOPC技术实现的千兆以太网通信系统,将FPGA内部经固化的硬IP核、新构建的软IP核和IP核处理器控制运行的软件代码充分结合起来,构成一个实时高速的TCP/IP通信系统。这种系统利用FPGA的可重构能力,在其内部嵌入微处理器和MAC层IP核,通过标准接口和外部PHY层芯片相连。适用于嵌入式系统的TCP/IP协议栈和应用层程序经开发套件编译和下载到微处理器的存储器。这样,构成一个分层实现、下层为上层提供服务的完整TCP/IP协议模型。 
在工程上应用较多的可嵌入微处理器FPGA芯片主要是Xilinx和Altera公司的产品,其他一些厂家如Actel也有部分的应用,这里主要介绍前者。Xilinx和Altera都有自己的高端和低端产品,Xilinx的高端产品是Virtex系列,低端产品是Spartan系列,而Altera对应的分别是Stratix系列和Cyclone系列。嵌入FPGA内部的微处理器分为2种,一种是软核,Xilinx的是MicroBlaze,Altera的是NIOSII。这种微处理器在上电的时候根据配置文件在FPGA内部生成,掉电后自动消失,运行频率一般不高,目前几乎都在200MHz以下。另一种嵌入式微处理器是硬核,固化在了FPGA内部,不占用FPGA的芯片资源,运行频率较高,目前实际使用的只有Xilinx公司的PowerPC系列,运行速率能到500MHz以上,相对于软核有了很大幅度的提高。而在FPGA内部实现的MAC层控制核,也分为软核和硬核,目前Altera只提供了千兆的MAC软核,而Xilinx的高端芯片则配备了千兆的MAC硬核,为SOPC系统高速以太通信的实现提供了很好的条件。 

Claims (9)

1.基于Xilinx FPGA和Treck协议栈的以太通信系统,它包括DDR2 SDRAM、FPGA、三重模式以太网PHY芯片和计算机;
FPGA的多端口存储器控制器MPMC通过高速接口与DDR2 SDRAM连接,
FPGA的Hard Ethernet MAC通过介质无关接口MII与三重模式以太网PHY芯片相互通信,
三重模式以太网PHY芯片通过RJ45端口与计算机连接,
FPGA通过RS232通用异步串行口与计算机连接;
应用程序嵌入在FPGA的处理器中;
所述FPGA的型号为Xilinx公司的XC5VFX130T;
所述系统还包括Treck协议栈;
所述系统实现了TCP/IP五层模型,
所述TCP/IP五层模型包括应用层、传输层、网络层和网络接口,网络接口包括数据链路层和物理层;
数据链路层用Hard Ethernet MAC来实现,
物理层用以太网PHY芯片三重模式来实现,
物理层和数据链路层之间的接口为介质无关接口MII,
应用程序调用Treck协议栈的Berkeley Sockets API函数实现TCP/IP协议网络层、传输层和应用层。
2.根据权利要求1所述的基于Xilinx FPGA和Treck协议栈的以太通信系统,其特征在于,
所述FPGA包括PPC440处理器、中断控制器、时钟控制器、串口控制器、Hard EthernetMAC和多端口存储器控制器MPMC;
Hard Ethernet MAC通过Local Link总线与多端口存储器控制器MPMC的SDMA端口连接,
多端口存储器控制器MPMC的PLB端口与PPC440处理器连接,
PPC440处理器通过PLB总线与多端口存储器控制器MPMC的SDMA端口、Hard EthernetMAC、中断控制器、时钟控制器和串口控制器相互通讯。
3.根据权利要求2所述的基于Xilinx FPGA和Treck协议栈的以太通信系统,其特征在于,所述DDR2 SDRAM的型号为WD2RE01GX809-667G-PE,所述外围三重模式以太网PHY芯片型号是88E1111-RCJ1G2M5321,PPC440处理器最高工作时钟400MHz,PLB总线时钟100MHz。
4.根据权利要求2所述的基于Xilinx FPGA和Treck协议栈的以太通信系统,其特征在于,所述FPGA的Hard Ethernet MAC通过RGMII2.0接口与三重模式以太网PHY芯片相互通信,所述物理层和数据链路层之间的接口为RGMII2.0接口。
5.根据权利要求2所述的基于Xilinx FPGA和Treck协议栈的以太通信系统,其特征在于,所述利用DMA方式实现数据的收发,所述DMA方式包括一个时钟中断、一个TEMAC中断、SDMA接受中断和SDMA发送中断,时钟中断、TEMAC中断、SDMA接受中断和SDMA发送中断分别与中断控制器连接,并按中断优先级向处理器发送中断请求。
6.基于权利要求1所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法,其特征在于,
Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接:
当FPGA作为客户端,计算机作为服务器时,基于所述以太通信系统的通信方法为:
步骤一:FPGA设置目标主机IP地址、端口地址和传输协议TCP;
步骤二:FPGA建立Socket;
步骤三:Socket绑定到随机端口;
步骤四:FPGA发出建立连接的请求;
步骤五:连接成功后,FPGA开始发送数据;
步骤六:FPGA关闭Socket并断开连接。
7.根据权利要求6所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法,其特征在于,
当FPGA作为客户端时,数据流线:
应用程序接受数据-Berkeley Sockets API函数-FPGA端口地址-FPGAIP地址-FPGA数据链路层和物理层-电缆-主机的IP地址-主机数据链路层和物理层-主机的Socket-主机的端口地址。
8.基于权利要求1所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法,其特征在于,
Berkeley Sockets API函数以服务器-客户端模式建立FPGA和计算机的TCP连接:
当FPGA作为服务器,计算机作为客户端时,基于所述以太通信系统的通信方法为:
步骤一:FPGA设置本地IP地址、端口地址和传输协议TCP;
步骤二:FPGA建立Socket;
步骤三:Socket绑定到随机端口;
步骤四:FPGA收听建立连接的请求;
步骤五:FPGA接受建立连接的请求;
步骤六:连接成功后FPGA开始接受数据;
步骤七:FPGA关闭Socket且断开连接。
9.根据权利要求8所述的基于Xilinx FPGA和Treck协议栈的以太通信系统的通信方法,其特征在于,
当FPGA作为服务器时,数据流线:
主机的Socket-主机的端口地址-主机的IP地址-主机数据链路层和物理层-电缆-FPGA数据链路层和物理层-FPGA IP地址-FPGA端口地址-BSD Socket-应用程序接受数据。
CN201210271243XA 2012-07-31 2012-07-31 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法 Pending CN102761558A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210271243XA CN102761558A (zh) 2012-07-31 2012-07-31 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210271243XA CN102761558A (zh) 2012-07-31 2012-07-31 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法

Publications (1)

Publication Number Publication Date
CN102761558A true CN102761558A (zh) 2012-10-31

Family

ID=47055879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210271243XA Pending CN102761558A (zh) 2012-07-31 2012-07-31 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法

Country Status (1)

Country Link
CN (1) CN102761558A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226902A (zh) * 2013-03-21 2013-07-31 国家电网公司 一种远程便携式培训考试系统
CN103455401A (zh) * 2013-08-25 2013-12-18 浙江大学 一种dsp和fpga紧耦合架构的协同验证方法
CN103916252A (zh) * 2014-04-18 2014-07-09 岳阳巅峰电子科技有限责任公司 一种基于fpga的高带宽以太网ip核
CN104580434A (zh) * 2014-12-26 2015-04-29 深圳市兰丁科技有限公司 一种固件下载的方法及系统
CN105262789A (zh) * 2015-09-08 2016-01-20 天津光电聚能专用通信设备有限公司 基于fpga的mac层到mac层通信系统及控制方法
CN109743410A (zh) * 2018-12-07 2019-05-10 天津津航计算技术研究所 无操作系统嵌入式设备与pc实现以太网通信的系统和方法
CN111198704A (zh) * 2019-12-13 2020-05-26 南京理工大学 基于tcp协议的fpga远程升级系统
CN112866184A (zh) * 2019-11-28 2021-05-28 科大国盾量子技术股份有限公司 量子密钥分发系统及其专用交互网络协议接口ip
CN115114202A (zh) * 2022-06-24 2022-09-27 哈尔滨诺信工大测控技术有限公司 基于光纤通信接口扩展的嵌入式web服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933438A (zh) * 2006-10-17 2007-03-21 杭州华为三康技术有限公司 实现第一部件与第二部件之间通信的系统及部件
CN101719873A (zh) * 2009-12-11 2010-06-02 曙光信息产业(北京)有限公司 千兆虚拟网卡

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1933438A (zh) * 2006-10-17 2007-03-21 杭州华为三康技术有限公司 实现第一部件与第二部件之间通信的系统及部件
CN101719873A (zh) * 2009-12-11 2010-06-02 曙光信息产业(北京)有限公司 千兆虚拟网卡

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李健: "嵌入式系统在相关处理机中的应用", 《中国优秀硕士学位论文全文数据库》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226902A (zh) * 2013-03-21 2013-07-31 国家电网公司 一种远程便携式培训考试系统
CN103455401A (zh) * 2013-08-25 2013-12-18 浙江大学 一种dsp和fpga紧耦合架构的协同验证方法
CN103455401B (zh) * 2013-08-25 2015-11-04 浙江大学 一种dsp和fpga紧耦合架构的协同验证方法
CN103916252B (zh) * 2014-04-18 2017-05-03 中国科学院西安光学精密机械研究所 一种基于fpga的高带宽以太网ip核
CN103916252A (zh) * 2014-04-18 2014-07-09 岳阳巅峰电子科技有限责任公司 一种基于fpga的高带宽以太网ip核
CN104580434A (zh) * 2014-12-26 2015-04-29 深圳市兰丁科技有限公司 一种固件下载的方法及系统
CN104580434B (zh) * 2014-12-26 2018-05-08 深圳市海蕴新能源有限公司 一种固件下载的方法及系统
CN105262789A (zh) * 2015-09-08 2016-01-20 天津光电聚能专用通信设备有限公司 基于fpga的mac层到mac层通信系统及控制方法
CN109743410A (zh) * 2018-12-07 2019-05-10 天津津航计算技术研究所 无操作系统嵌入式设备与pc实现以太网通信的系统和方法
CN112866184A (zh) * 2019-11-28 2021-05-28 科大国盾量子技术股份有限公司 量子密钥分发系统及其专用交互网络协议接口ip
CN112866184B (zh) * 2019-11-28 2022-09-09 科大国盾量子技术股份有限公司 量子密钥分发系统及其专用交互网络协议接口ip
CN111198704A (zh) * 2019-12-13 2020-05-26 南京理工大学 基于tcp协议的fpga远程升级系统
CN115114202A (zh) * 2022-06-24 2022-09-27 哈尔滨诺信工大测控技术有限公司 基于光纤通信接口扩展的嵌入式web服务器
CN115114202B (zh) * 2022-06-24 2023-08-29 哈尔滨诺信工大测控技术有限公司 基于光纤通信接口扩展的嵌入式web服务器

Similar Documents

Publication Publication Date Title
CN102761558A (zh) 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法
CN104079492B (zh) 一种OpenFlow网络中流表配置的方法、装置和系统
CN110417780B (zh) 定制化数据传输协议的多通道高速数据接口转化模块
CN108270813A (zh) 一种异构多协议栈方法、装置及系统
CN1305681A (zh) 传输控制协议/网际协议/点对点通信协议调制解调器
CN103916909B (zh) 基带池系统
CN105740178B (zh) 芯片网络系统以及其形成方法
CN106656838A (zh) 一种流量分析方法及系统
CN104683428B (zh) 网络业务处理方法与装置
CN108833267A (zh) 智能工业网关
CN104883335A (zh) 一种全硬件tcp协议栈实现方法
CN109739124A (zh) 多总线接口数据处理应用系统
CN103037032A (zh) 一种使用fpga实现sv数据32位寻址访问的方法
CN102025612A (zh) 基于Wi-Fi的无缝网络接入设备及其网络接入方法
Delorme et al. A FPGA partial reconfiguration design approach for cognitive radio based on NoC architecture
CN106850770A (zh) 基于云计算服务的高效传输方法和装置
CN109587028A (zh) 一种控制客户端流量的方法和装置
CN105207946B (zh) 一种网络数据包负载均衡和预解析方法
CN108551485A (zh) 一种流媒体内容缓存方法、装置及计算机存储介质
CN102845042B (zh) 一种应用层多个活动物理接口的带宽聚集系统及方法
CN207976991U (zh) 一种高速4g集中器通信模块和用电信息采集系统
CN101426027B (zh) 面向分布式虚拟机监控器的底层通信方法
CN102833155A (zh) 在二层单板上实现三层通信的方法及装置
CN102932406B (zh) 实现流量卸载时通过wap方式上网的方法、装置及系统
CN103297474A (zh) 一种批量处理分包方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20121031