基于fpga的网络数据卡及数据传输方法

文档序号:7779725阅读:230来源:国知局
基于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的网络数据卡数据传输方法,所述FPGA芯片与PCIE X8总线接口及TEMAC管理模块连接,FPGA芯片利用PCIE X8总线接口接收发送数据,对接收发送数据组包后通过TEMAC管理模块发送;
FPGA芯片用TEMAC管理模块接收输入数据,对接收输入数据解析后通过PCIE X8总线接口进行数据传输。
[0013]所述FPGA芯片利用PCIE X8总线接口接收发送数据,对接收的发送数据组包通过TEMAC管理模块发送过程包括如下步骤:
aUPCIE X8总线接口与Socket端口,并将待发送的数据写入Socket端口 ;a2、PCIE X8总线接口读取写入Socket端口的待发送数据,并传送到FPGA芯片内的第一发送缓存内且清空第二发送缓存;
a3、IPV4-1PV6协议解析模块根据第一发送缓存内的数据解析出发送的目标地址;当待发送数据完全存进第一发送缓存内,读取并统计第一发送缓存内的字节数;
a4、IPV4-1PV6协议解析模块将第一发送缓存内的数据组包为IPV4格式的数据包以及IPV6格式的数据包;FPGA芯片将IPV4-1PV6协议解析模块内IPV4格式的数据包存入第二发送缓存内,TEMAC管理模块将第二发送缓存内的IPV4格式的数据包向外发送;当TEMAC管理模块发送IPV4格式的数据包失败时,进入步骤a5 ;
a5、FPGA芯片清空第二发送缓存,并将IPV6格式的数据包存入第二发送缓存内,TEMAC管理模块将第二发送缓存内的IPV4格式的数据包向外发送;当TEMAC管理模块发送IPV4格式的数据包失败时,输出数据发送失败消息。
[0014]FPGA芯片利用TEMAC管理模块接收输入数据,对接收输入数据解析后通过PCIEX8总线接口进行数据传输的过程包括如下步骤:
s1、TRMAC管理模块通过RJ45接口接收输入数据,并将输入数据存入第一接收缓存内,且FPGA芯片清空第二接收缓存;
s2、IPV4-1PV6协议解析模块读取第一接收缓存内的输入数据,判断所述输入数据的数据类型,根据输入数据的数据类型进行解析后存入第二接收缓存内;s3、PCIE X8总线接口读取并传输第二接收缓存内的解析数据。
[0015]本发明的优点:在卡板上设置FPGA芯片、PCIE总线接口以及TEMAC管理模块,从而能将在上位机内进行的网络数据传输过程由FGPA芯片与PCIE X8总线接口、TEMAC管理模块实现网络数据的收发,结构紧凑,能减小对上位机的占用率,提高网络数据的传输效率,安全可靠。
【专利附图】

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