一种基于FPGA的高带宽以太网IP核制造技术

技术编号:15397723 阅读:199 留言:0更新日期:2017-05-20 22:12
本发明专利技术开发设计出了一种基于FPGA的以太网IP核,解决了嵌入式应用领域中千兆以太网实时数据传输过程中通信速率均值不高的问题,使其能够更加方便地应用在大数据量高带宽的以太网传输通信领域。该基于FPGA的高带宽以太网IP核,包括:接收模块,用于接收网络数据,实时检测以太网帧头起始字节,在确认接收到以太网帧头后,开始接收整个以太网帧,并对接收到的以太网帧的协议类型进行判别,将接收到的以太网帧分为ARP数据帧和以太网数据帧,分别放在两个不同的缓存区;ARP帧处理模块;以太网数据帧处理模块;发送模块,设置有多个双端口的FIFO,其中至少一个接口对应于所述ARP帧处理模块回复的响应帧。

A IP core of high bandwidth Ethernet based on FPGA

The present invention has developed a FPGA Ethernet based on IP core to solve the process of real-time data transmission in the field of embedded applications in Gigabit Ethernet communication mean rate is not high, so that it can be more easily applied in a large amount of data transmission of high bandwidth Ethernet communication field. The high bandwidth Ethernet IP core based on FPGA, which comprises a receiving module for receiving network data, real-time detection of the Ethernet frame head start byte received confirmation in Ethernet frame header, began to receive the entire Ethernet frame, and Ethernet frames received protocol type for identification, the Ethernet frames received points for the ARP data frame and Ethernet data frames were placed in two different buffer; ARP frame processing module; Ethernet data frame processing module; transmitting module is provided with a plurality of dual port FIFO, wherein at least one interface corresponding to the ARP frame processing module reply response frame.

【技术实现步骤摘要】
一种基于FPGA的高带宽以太网IP核
本专利技术属于网络通信
,涉及一种基于FPGA的高带宽以太网IP核的设计与开发。技术背景目前,基于以太网的数据传输通信已经广泛应用,但是这些应用大多依靠计算机与网卡组合来实现。对于一些嵌入式系统领域的数据传输要求来说,这样的实现方法不合适。在嵌入式系统开发中,普遍采用ARM或者DSP这些微处理器来实现网络传输通信的方法,但是由于微处理器是运行其内部程序来进行数据处理,具有分时多任务处理的特点,不能在同一时刻同时并行处理多个任务,这就导致了其网络传输速率峰值不高的缺陷。在商业嵌入式应用领域中,采用ARM或者DSP进行千兆以太网数据通信时,其通信均值速率一般在400Mbps以下,只能适用于较一般情况下的以太网实时通信,无法满足大批量数据高带宽实时通信的需求。现阶段,商业上主流的FPGA生产厂家Altera和Xilinx都开发出了千兆以太网IP核,但是其使用都需要支付相当昂贵的授权费用,且其提供的以太网IP核后端一般都与其内部软核相连,从而导致其整体架构上通信均值速率不高,通信均值低于600Mbps。综上所述,在一些高清无损图像传输领域,或者大数据量高带宽的传输、实时性的要求高、成本研发有限的情况下,上述嵌入式系统开发的千兆以太网实时处理性能无法满足要求,所以有必要研制一套能够胜任低成本、高实时性、高带宽的千兆以太网嵌入式逻辑接口。
技术实现思路
本专利技术针对现有技术的不足,开发设计出了一种基于FPGA的以太网IP核,解决了嵌入式应用领域中千兆以太网实时数据传输过程中通信速率均值不高的问题,使其能够更加方便地应用在大数据量高带宽的以太网传输通信领域。本专利技术的基本解决方案如下:基于FPGA的高带宽以太网IP核,其中FPGA采用RGMII接口与一物理层PHY芯片通信连接,物理层以上的协议全部在FPGA内部实现;其特殊之处在于,该以太网IP核包括:接收模块,用于接收网络数据,实时检测以太网帧头起始字节,在确认接收到以太网帧头后,开始接收整个以太网帧,并对接收到的以太网帧的协议类型进行判别,将接收到的以太网帧分为ARP数据帧和以太网数据帧,分别放在两个不同的缓存区,记为ARP_RX_RAM和ETHENT_RX_RAM;ARP帧处理模块,用于对所述ARP数据帧进行处理;(具体处理方式可以参照现有技术,即:按照ARP数据帧的格式,判别接收到的ARP数据帧为请求帧或应答帧,若为应答帧则丢弃该帧,若为请求帧,则判别请求帧内的目的IP地址与IP核自身的IP地址是否一致,如果一致则进行ARP请求帧的响应回复,如果不一致则丢弃该帧)以太网数据帧处理模块,用于对所述以太网数据帧进行处理,即判别其协议具体类型和整帧长度,进行以太网数据帧头校验位和帧尾部CRC校验位的计算,若计算得出帧头校验位或者CRC校验位错误,则丢弃该数据帧,否则将该帧存入缓存区ETHENT_REC_RAM;发送模块,设置有多个双端口的FIFO,用以分别缓存不同接口发来的数据,其中至少一个接口对应于所述ARP帧处理模块回复的响应帧;然后判别各个双端口的FIFO的状态以及是否写入完毕,按照写入完毕的顺序依次发送各个双端口的FIFO中的数据;通过以太网接口(RJ45)向外发送以太网帧时,采用流水线作业的编程机制,分别进行待发送以太网帧的帧头的校验计算、UDP帧校验的计算,以及CRC校验码的计算,在CRC校验的计算中,采用CRC32的循环校验码计算模块生成每个待发送以太网帧的CRC校验码在每个待发送以太网帧的帧尾部输出。基于上述基本解决方案,本专利技术还作如下优化限定或改进:所述发送模块还设置有一缓存区,该缓存区采用CAM查询表方式存入以太网络上已知的IP及其对应MAC地址并实时更新;若待发送以太网帧的目的IP及其对应的MAC地址能够在CAM查询表中查找到,则直接按照CAM查询表记录的地址发送。(若在CAM查询表没有对应的记录,则可以参照现有技术发送一包ARP请求帧,然后将返回的ARP应答帧中的IP及其对应MAC地址提取出来存入CAM查询表,同时按照该地址发送以太网帧)所述接收模块还通过实时检测每秒以太网接入时钟上升沿的个数以确定接入的以太网速率,从而动态调整RGMII接口时钟频率(即可实现100Mbps或者1000Mbps以太网连接的自动切换)。以太网IP核内部主时钟为100MHZ,16位数据并行运算。IP核内部设置有多个寄存器,通过将FPGA与外部的微处理器连接,微处理器将指令写入相应的寄存器中从而修改寄存器的值,能够添加或者去除IP核中的某些功能,以便用户在不同的网络环境中使用。例如:IP核内部的IP地址和MAC地址可以通过内部寄存器实时更改,满足不同用户不同条件下的需求。本专利技术具有以下优点:本专利技术设计的基于FPGA的一种千兆以太网IP核,可以替代Altera或者Xilinx开发的千兆以太网IP核,采用RGMII接口与PHY芯片进行通信,架构功能齐全,可以完成IPV4版本中各种网络协议的通信。FPGA外部只需使用一片物理层PHY芯片,物理层以上的协议全部在FPGA内部实现。采用流水线和双FIFO缓存等架构,区分ARP数据帧和以太网数据帧并行运算,实现了千兆以太网数据高速处理。本专利技术中的以太网IP核,采用内部主频为100MHZ的时钟计数的方法,来判别接入的网络速率,从而动态调整内部与外部PHY芯片的接口时钟频率,从而实现100Mbps或者1000Mbps以太网连接的自动判别。本专利技术的以太网IP核内部主时钟为100MHZ,16位数据并行运算,采用流水线和双FIFO缓存等架构,使得其内部数据处理速度可以达到1.6Gbps,完全满足千兆以太网高速数据处理的需求。为了实现在不同场合,不同试验环境下的要求,本专利技术中IP核的设计还充分考虑了通用性、可配置性,IP核内部设定了40个寄存器,用户可以通过修改寄存器的值,从而添加或者去除IP核中的某些功能,以便用户在不同的网络环境中使用。例如,IP核内部的IP地址和MAC地址可以通过内部寄存器实时更改,满足不同用户不同条件下的需求。附图说明图1为基于FPGA的以太网IP核内部逻辑架构框图。图2为基于FPGA的以太网IP核外部接口示意图。图3为基于FPGA的以太网IP核数据接收模块流程图。图4为基于FPGA的以太网IP核数据发送模块流程图。图5为以太网帧在IP核中的缓存格式。图6为CAM查询表的缓存空间格式。具体实施方案本专利技术中的以太网IP核是在基于CycloneIII系列的FPGA架构系统上的,电路板采用的以太网PHY芯片为88E1111,采用HALO公司的RJ45接口;Altera公司的CycloneIII系列的开发板或者满足以下要求的电路板都可以实现该系统:1)具备千兆以太网接口和PHY芯片;2)具备自定义的IO接口;3)板载的CycloneIII系列的FPGA芯片。供电之后,FPGA采用MDC/MDIO接口对物理层芯片PHY进行配置,PHY芯片完成传输速度和相关的信息协商之后,进而建立有效可靠的连接。本专利技术中的以太网IP核接收模块,实时检测端口的以太网帧头的8个起始字节,在接收到以太网帧帧头之后,开始接收整个以太网帧,并对接收到帧的协议类型和帧长度进行判别。根据帧协议类型的不同,将本文档来自技高网...
一种基于FPGA的高带宽以太网IP核

【技术保护点】
一种基于FPGA的高带宽以太网IP核,其中FPGA采用RGMII接口与一物理层PHY芯片通信连接,物理层以上的协议全部在FPGA内部实现;其特征在于,该以太网IP核包括:接收模块,用于接收网络数据,实时检测以太网帧头起始字节,在确认接收到以太网帧头后,开始接收整个以太网帧,并对接收到的以太网帧的协议类型进行判别,将接收到的以太网帧分为ARP数据帧和以太网数据帧,分别放在两个不同的缓存区,记为ARP_RX_RAM和ETHENT_RX_RAM;ARP帧处理模块,用于对所述ARP数据帧进行处理;以太网数据帧处理模块,用于对所述以太网数据帧进行处理,即判别其协议具体类型和整帧长度,进行以太网数据帧头校验位和帧尾部CRC校验位的计算,若计算得出帧头校验位或者CRC校验位错误,则丢弃该数据帧,否则将该帧存入缓存区ETHENT_REC_RAM;发送模块,设置有多个双端口的FIFO,用以分别缓存不同接口发来的数据,其中至少一个接口对应于所述ARP帧处理模块回复的响应帧;然后判别各个双端口的FIFO的状态以及是否写入完毕,按照写入完毕的顺序依次发送各个双端口的FIFO中的数据;通过以太网接口向外发送以太网帧时,采用流水线作业的编程机制,分别进行待发送以太网帧的帧头的校验计算、UDP帧校验的计算,以及CRC校验码的计算;在CRC校验的计算中,采用CRC32的循环校验码计算模块生成每个待发送以太网帧的CRC校验码在每个待发送以太网帧的帧尾部输出。...

【技术特征摘要】
1.一种基于FPGA的高带宽以太网IP核,其中FPGA采用RGMII接口与一物理层PHY芯片通信连接,物理层以上的协议全部在FPGA内部实现;其特征在于,该以太网IP核包括:接收模块,用于接收网络数据,实时检测以太网帧头起始字节,在确认接收到以太网帧头后,开始接收整个以太网帧,并对接收到的以太网帧的协议类型进行判别,将接收到的以太网帧分为ARP数据帧和以太网数据帧,分别放在两个不同的缓存区,记为ARP_RX_RAM和ETHENT_RX_RAM;ARP帧处理模块,用于对所述ARP数据帧进行处理;以太网数据帧处理模块,用于对所述以太网数据帧进行处理,即判别其协议具体类型和整帧长度,进行以太网数据帧头校验位和帧尾部CRC校验位的计算,若计算得出帧头校验位或者CRC校验位错误,则丢弃该数据帧,否则将该帧存入缓存区ETHENT_REC_RAM;发送模块,设置有多个双端口的FIFO,用以分别缓存不同接口发来的数据,其中至少一个接口对应于所述ARP帧处理模块回复的响应帧;然后判别各个双端口的FIFO的状态以及是否写入完毕,按照写入完毕的顺序依次发送各个双端口的FIFO中的数据;通过以太网接口向外发送以太网帧时,采用流水线作业的编程机制,分别进行待发送以...

【专利技术属性】
技术研发人员:刘广森赵晓冬周祚峰刘庆边河郭惠楠张辉郭云曾常三三
申请(专利权)人:中国科学院西安光学精密机械研究所
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1