基于fpga的网络数据卡的制作方法

文档序号:7789043阅读:218来源:国知局
基于fpga的网络数据卡的制作方法
【专利摘要】本实用新型涉及一种数据卡,尤其是一种基于FPGA的网络数据卡,具体地说是利用FPGA传输基于IPV4/IPV6协议的网络数据卡。按照本实用新型提供的技术方案,所述基于FPGA的网络数据卡,包括卡板,所述卡板上设有FPGA芯片,所述FPGA芯片内设有IPV4-IPV6协议解析模块;所述IPV4-IPV6协议解析模块通过FPGA芯片内的发送缓存、接收缓存分别与卡板上的PCIEX8总线接口、TEMAC管理模块连接,所述TEMAC管理模块与RJ45接口连接。本实用新型结构紧凑,能实现对IPV4/IPV6网络数据的传输,提高传输效率,适应范围广,安全可靠。
【专利说明】基于FPGA的网络数据卡
【技术领域】
[0001]本实用新型涉及一种数据卡,尤其是一种基于FPGA的网络数据卡,具体地说是利用FPGA传输基于IPV4/IPV6协议的网络数据卡。
【背景技术】
[0002]IPV4 (Internet Protocol version 4)是目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。IPV6(Internet Protocol Version 6)是 IETF(互联网工程任务组,Internet Engineering TaskForce)设计的用于替代现行版本IP协议(IPV4)的下一代IP协议。
[0003]双栈是指一个基站语音和上网使用两个不同的协议栈,双协议栈技术(DualStack)是在设备上(如一个主机或一个路由器)同时启用IPV4协议和IPV6协议的协议栈。
[0004]现有的网络数据传输均是在上位机内完成,在发送数据时,采用同时组建IPV4和IPV6数据包,再依次发送,若发送成功,则立即返回发送初始状态。若两种数据包均发送不通,则可判断为网络故障。现有的网络数据传输方法在实际验证中可行,在目标服务器支持IPV4协议的情况下能立即发送出数据,在IPV4协议不能通信的情况下,则一般需要延迟50ms发送出基于IPV6协议的数据包。
[0005]在IPV4协议情况下,若数据包为64位,则4个时钟周期(每个时钟周期4纳秒)可完成发送。若数据包较大,则每增加8个字节,需要多两个时钟周期来完成数据发送。
[0006]数据接收时,先判断数据头的协议号,再根据协议号进入不同的状态机解析接收到的数据。然后接收算法能对接收到的数据立即做出处理,提高了接收速度。一般一个64位的数据包在2个时钟周期(每个周期4纳秒)即可接收完成,若数据包较大,则每4个字节,需要多一个时钟周期来接收。
[0007]因此,现有的数据传输方法需要占据上位机的处理工作量及处理速度,不能适应现在网络数据传输的要求。

【发明内容】

[0008]本实用新型的目的是克服现有技术中存在的不足,提供一种基于FPGA的网络数据卡,其结构紧凑,能实现对IPV4/IPV6网络数据的传输,提高传输效率,适应范围广,安全可靠。
[0009]按照本实用新型提供的技术方案,所述基于FPGA的网络数据卡,包括卡板,所述卡板上设有FPGA芯片,所述FPGA芯片内设有IPV4-1PV6协议解析模块;所述IPV4-1PV6协议解析模块通过FPGA芯片内的发送缓存、接收缓存分别与卡板上的PCIE X8总线接口、TEMAC管理模块连接,所述TEMAC管理模块与RJ45接口连接。
[0010]所述发送缓存包括第一发送缓存及第二发送缓存,所述接收缓存包括第一接收缓存及第二接收缓存,IPV4-1PV6协议解析模块通过第一发送缓存、第二接收缓存与PCIE X8总线接口连接,且IPV4-1PV6协议解析模块通过第二发送缓存、第一接收缓存与TEMAC管理模块连接。
[0011]所述PCIE X8总线接口与Socket端口连接。
[0012]本实用新型的优点:在卡板上设置FPGA芯片、PCIE总线接口以及TEMAC管理模块,从而能将在上位机内进行的网络数据传输过程由FGPA芯片与PCIE X8总线接口、TEMAC管理模块实现网络数据的收发,结构紧凑,能减小对上位机的占用率,提高网络数据的传输效率,安全可靠。
【专利附图】

【附图说明】
[0013]图1为本实用新型的结构框图。
[0014]图2为本实用新型进行数据发送的流程图。
[0015]图3为本实用新型进行数据接收的流程图。
[0016]附图标记说明:1-Socket端口、2-PCIE X8 总线接口、3-FPGA 芯片、4-1PV4-1PV6协议解析模块、5-第一发送缓存、6-第二发送缓存、7-第一接收缓存、8-第二接收缓存、
9-TEMAC管理模块及10-RJ45接口。
【具体实施方式】
[0017]下面结合具体附图和实施例对本实用新型作进一步说明。
[0018]如图1所示:为了能够提高网络数据的传输效率,减小对上位机工作效率的影响,本实用新型包括卡板,所述卡板上设有FPGA芯片3,所述FPGA芯片3内设有IPV4-1PV6协议解析模块4 ;所述IPV4-1PV6协议解析模块4通过FPGA芯片3内的发送缓存、接收缓存分别与卡板上的PCIE X8总线接口 2、TEMAC管理模块9连接,所述TEMAC管理模块9与RJ45接口 10连接。
[0019]所述发送缓存包括第一发送缓存5及第二发送缓存6,所述接收缓存包括第一接收缓存7及第二接收缓存8,IPV4-1PV6协议解析模块4通过第一发送缓存5、第二接收缓存8与PCIE X8总线接口 2连接,且IPV4-1PV6协议解析模块4通过第二发送缓存6、第一接收缓存8与TEMAC管理模块9连接。所述PCIE X8总线接口 2与Socket端口 I连接。
[0020]具体地,整个板卡可以插在上位机的主板上,其中,Socket端口 I为网络数据发送接收的端口。上位机将发送指令及数据传递给Socket端口 I。若上位机接收数据,接收的数据通过Socket端口 I传递到上位机内。
[0021]PCIE X8总线接口 2为高速数据传输总线,PCIE X8总线接口 2连接Socket端口I,并连接FPGA芯片3内的第一发送缓存5及第二接收缓存7,即是将Socket端口 I输出的数据通过PCIE X8总线接口 2传递给第一发送缓存5,也能将FPGA芯片3上的第二接收缓存7的数据通过PCIE X8总线接口 2传递到Socket端口 1,以便于上位机进行读取。
[0022]IPV4/IPV6协议解析模块4为数据卡上设计的硬件逻辑,对数据进行按照IPV4或IPV6协议进行组包及拆包。
[0023]TEMAC管理模块9为卡板同网络数据传输的模块,是卡板上的数据同网络端口RJ45端口 10进行数据交互的管理模块。
[0024]RJ45端口 10为卡板上接收数据及发送数据的网口。[0025]如图2和图3所示:一种基于FPGA的网络数据卡数据传输方法,所述FPGA芯片3与PCIE X8总线接口 2及TEMAC管理模块9连接,FPGA芯片3利用PCIE X8总线接口 2接收发送数据,对接收发送数据组包后通过TEMAC管理模块9发送;
[0026]FPGA芯片3利用TEMAC管理模块9接收输入数据,对接收输入数据解析后通过PCIE X8总线接口 2进行数据传输。
[0027]其中,所述FPGA芯片3利用PCIE X8总线接口 4接收发送数据,对接收的发送数据组包通过TEMAC管理模块9发送过程包括如下步骤:
[0028]aUPCIE X8总线接口 2与Socket端口 I,并将待发送的数据写入Socket端口 I ;所述写入Socket端口 I的待发送数据由上位机写入;
[0029]a2、PCIE X8总线接口 2读取写入Socket端口 I的待发送数据,并传送到FPGA芯片3内的第一发送缓存5内且清空第二发送缓存6 ;FPGA芯片3会重复检测第一发送缓存5内是否为空的状态,当第一发送缓存5不为空时,情况第二发送缓存6,并进行下面的步骤流程。
[0030]a3、IPV4-1PV6协议解析模块4根据第一发送缓存5内的数据解析出发送的目标地址;当待发送数据完全存进第一发送缓存5内,读取并统计第一发送缓存5内的字节数;[0031 ] a4、IPV4-1PV6协议解析模块4将第一发送缓存5内的数据组包为IPV4格式的数据包以及IPV6格式的数据包;FPGA芯片3将IPV4-1PV6协议解析模块4内IPV4格式的数据包存入第二发送缓存6内,TEMAC管理模块9将第二发送缓存6内的IPV4格式的数据包向外发送;当TEMAC管理模块9发送IPV4格式的数据包失败时,进入步骤a5 ;当TEMAC管理模块9通过RJ45接口 10向外发送成功时,则进入下一次发送数据的流程,不再进行IPV6格式的数据包的发送。IPV4格式的数据包以及IPV6格式的数据包均是根据IPV4协议、IPV6协议得到,为本【技术领域】所熟知。
[0032]a5、FPGA芯片3清空第二发送缓存6,并将IPV6格式的数据包存入第二发送缓存6内,TEMAC管理模块9将第二发送缓存6内的IPV4格式的数据包向外发送;当TEMAC管理模块9发送IPV4格式的数据包失败时,输出数据发送失败消息。
[0033]本实用新型实施例中,FPGA芯片2在IPV4-1PV6协议解析模块4内同时组成为IPV4数据包和IPV6数据包。先发送IPV4格式的数据包,若IPV4格式的数据包发送不出去,则表示网络通道不支持IPV4协议。再使用IPV6格式的数据包发送,若还是发送不出去,则表示网络不通,给出信号,并返回初始状态重新发送。
[0034]FPGA芯片3利用TEMAC管理模块9接收输入数据,对接收输入数据解析后通过PCIE X8总线接口 2进行数据传输的过程包括如下步骤:
[0035]sUTRMAC管理模块9通过RJ45接口 10接收输入数据,并将输入数据存入第一接收缓存8内,且FPGA芯片3清空第二接收缓存7 ;
[0036]s2、IPV4-1PV6协议解析模块4读取第一接收缓存8内的输入数据,判断所述输入数据的数据类型,根据输入数据的数据类型进行解析后存入第二接收缓存7内;IPV4-1PV6协议解析模块4根据数据的前四位判断数据类型,当为IPV4数据时,解析出数据的字节数、源地址,由第159位后解析出数据;当为IPV6数据时,解析出数据的字节数、源地址,由第127位后解析出数据。
[0037]s3,PCIE X8总线接口 2读取并传输第二接收缓存7内的解析数据。PCIE X8总线接口 2通过Socket端口 I传送到上位机内。
[0038]本实用新型在卡板上设置FPGA芯片3、PCIE总线接口 2以及TEMAC管理模块9,从而能将在上位机内进行的网络数据传输过程由FGPA芯片3与PCIE X8总线接口 2、TEMAC管理模块9实现网络数据的收发,结构紧凑,能减小对上位机的占用率,提高网络数据的传输效率,安全可靠。
【权利要求】
1.一种基于FPGA的网络数据卡,其特征是:包括卡板,所述卡板上设有FPGA芯片(3),所述FPGA芯片(3)内设有IPV4-1PV6协议解析模块(4);所述IPV4-1PV6协议解析模块(4)通过FPGA芯片(3)内的发送缓存、接收缓存分别与卡板上的PCIE X8总线接口(2)、TEMAC管理模块(9 )连接,所述TEMAC管理模块(9 )与RJ45接口( 10 )连接。
2.根据权利要求1所述的基于FPGA的网络数据卡,其特征是:所述发送缓存包括第一发送缓存(5 )及第二发送缓存(6 ),所述接收缓存包括第一接收缓存(7 )及第二接收缓存(8),IPV4-1PV6协议解析模块(4)通过第一发送缓存(5)、第二接收缓存(8)与PCIE X8总线接口( 2 )连接,且IPV4-1PV6协议解析模块(4)通过第二发送缓存(6 )、第一接收缓存(8 )与TEMAC管理模块(9 )连接。
3.根据权利要求1所述的基于FPGA的网络数据卡,其特征是:所述PCIEX8总线接口(2)与 Socket 端口(I)连接。
【文档编号】H04L29/06GK203708283SQ201320807587
【公开日】2014年7月9日 申请日期:2013年12月9日 优先权日:2013年12月9日
【发明者】袁宝弟, 王永忠, 陆翰, 金睿 申请人:无锡市同威科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1