CN102761558A - 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法 - Google Patents
基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法 Download PDFInfo
- 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
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
技术领域
本发明涉及一种以太通信系统及其通信方法,属于通信领域。
背景技术
目前,适用于嵌入式系统的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
物理层: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
以太网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
表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-应用程序接受数据。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1933438A (zh) * | 2006-10-17 | 2007-03-21 | 杭州华为三康技术有限公司 | 实现第一部件与第二部件之间通信的系统及部件 |
CN101719873A (zh) * | 2009-12-11 | 2010-06-02 | 曙光信息产业(北京)有限公司 | 千兆虚拟网卡 |
-
2012
- 2012-07-31 CN CN201210271243XA patent/CN102761558A/zh active Pending
Patent Citations (2)
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)
Title |
---|
李健: "嵌入式系统在相关处理机中的应用", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (14)
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 |