一种基于FPGA的千兆网组播发送大包数据的方法与流程

文档序号:37222495发布日期:2024-03-05 15:21阅读:25来源:国知局
一种基于FPGA的千兆网组播发送大包数据的方法与流程

本发明属于雷达系统千兆网数据传输领域,主要涉及基于fpga的网络组播发送大包数据的方法。


背景技术:

1、在雷达系统中,经常使用网络传输数据,对于雷达信号处理系统,往往需要通过网络接收终端或者中心控制机的控制指令,再通过网络将信号处理点迹信息、原始视频信息、状态信息等传给其他多个分系统,对于多个分系统之间的网络数据传输,常用的网络传输方式为组播方式,而信号处理分系统的点迹信息、原始视频信息,单次数据往往都超过1472字节,甚至达到64k字节,所以需要按照网络大包数据的格式发送,提升网络传输效率。

2、目前的雷达信号处理系统主要采用的是dsp、fpga、cpu等处理器,并且对国产化芯片以及国产化操作系统提出了应用要求,而dsp、cpu处理器在使用网络传输数据时,几乎都需要运行操作系统,在适配国产化操作系统过程中,部分项目调试时发现存在一定的不稳定因素,主要体现在网络组播发送大包数据时,存在丢包现象,dsp、cpu网络发包都在底层,用户看不到其中的控制机制,而采用fpga组播发送网络大包数据,无需操作系统,用户可以清楚的知道网络各层的传输信息,便于掌握设计思想,同时对于各包数据的发送时刻做到灵活可控。所以对于信号处理系统来说,如果存在dsp网络发送大包数据,可以考虑采用fpga作为数据转发的中转站,fpga通过srio接收dsp数据,再通过网络将大包数据组播发送出去,避免了dsp直接进行网络数据的传输,提升系统网络数据传输的可靠性。另外,通过网络组播发送大包数据,相比较多个独立小包发送,可以提升发送的效率。


技术实现思路

1、本发明所要解决的技术问题是:

2、为了避免dsp、cpu通过组播发送网络大包数据偶尔丢包的问题,本发明提供一种基于fpga的千兆网组播发送大包数据的方法,采用fpga作为中转站,网络组播发送大包数据,提升网络发包的稳定性和效率。

3、为了解决上述技术问题,本发明采用的技术方案为:

4、一种基于fpga的千兆网组播发送大包数据的方法,其特征在于步骤如下:

5、步骤1:确定fpga网络组播发送数据时目的mac和ip,iana规定,ipv4组播mac地址的高24位为0x01005e,第25位为0,低23位为ipv4组播ip地址的低23位;同时确定目的端口;源mac地址、源ip地址、源端口可以在fpga中自行设定;

6、步骤2:根据应用层待发送大包数据的字节数,将大包数据拆分成多个小包,第1包1472字节,第2至m-1包,1480字节,最后1包n-1472-(m-2)*1480字节;其中n为大包数据的字节数,m为小包的个数;

7、步骤3:对于拆分后的数据包,只在第1包数据前添加udp首部,组建传输层数据;所述udp首部包含8个字节,分别是:源端口2字节、目的端口2字节、数据包长度2字节,校验和2字节;udp校验和的计算由三部分组成,udp伪首部、udp首部、数据部分;

8、步骤4:添加ip首部,每包数据前都需要添加ip首部,组建网络层数据;所述ip首部包含20字节;

9、步骤5:添加以太网首部,每包数据前都需要添加以太网首部,组建数据链路层数据,以太网首部包含14字节;

10、步骤6:通过fpga硬核temac,将各包数据通过物理层发送出去。

11、本发明进一步的技术方案:所述步骤2中对大包数据的拆包方法,拆包后的小包总数,以及每小包的字节数,都严格按照网络最大传输字节数进行确定。

12、本发明进一步的技术方案:所述步骤4中各小包数据前添加ip首部时,需要特别注意第7、8字节的设定,正确的设定标志以及片偏移,使得各小包数据在网络接收端能够还原为大包数据。

13、本发明进一步的技术方案:添加ip首部20字节信息,具体为:

14、第1、2字节固定为16'h4500;

15、第3、4字节为ip首部与数据部分长度之和,首部固定为20字节,数据部分第1至44包都为1480字节,第45包为395字节,所以第1至第44包该2字节为16'h05dc,第45包该2字节为16'h019f;

16、第5、6字节计数器值,系统上电后赋初值0,每发送1个大包数据,计数器值加1,大包内各小包计数器值相同;

17、第7、8字节为标志bit[15:13]和片偏移bit[12:0],bit[13]为mf,mf=1表示后面“还有分片”,mf=0表示最后一个分片,bit[14]为df,只有当df=0时才允许分片,bit[15]不用;bit[12:0]为片偏移,指较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位;每包的片偏移为1480/8*(n-1),n为1到45。

18、第9字节为生成时间,这里固定为8'h80;

19、第10字节为协议类型,这里为udp协议,类型为17;

20、第11、12为ip首部校验和,这里以第45包为例计算ip首部校验和。

21、一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。

22、一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现上述的方法。

23、本发明的有益效果在于:

24、本发明提供的一种基于fpga的千兆网组播发送大包数据的方法,可以替代部分项目采用dsp、cpu等处理器进行网络组播发送大包数据的方案,fpga网络发包,从应用层、传输层、网络层、数据链路层都可以做到由用户层层可控,并且对发送数据包的时刻做到灵活控制,由其是在国产化芯片以及国产化操作系统适配初期,dsp、cpu等发送网络大包数据存在一定的不稳定性,而fpga没有这些风险,并且发送大包数据对网络的传输效率也进行提升。



技术特征:

1.一种基于fpga的千兆网组播发送大包数据的方法,其特征在于步骤如下:

2.根据权利要求1所述的一种基于fpga的千兆网组播发送大包数据的方法,其特征在于:所述步骤2中对大包数据的拆包方法,拆包后的小包总数,以及每小包的字节数,都严格按照网络最大传输字节数进行确定。

3.根据权利要求1所述的一种基于fpga的千兆网组播发送大包数据的方法,其特征在于:所述步骤4中各小包数据前添加ip首部时,需要特别注意第7、8字节的设定,正确的设定标志以及片偏移,使得各小包数据在网络接收端能够还原为大包数据。

4.根据权利要求3所述的一种基于fpga的千兆网组播发送大包数据的方法,其特征在于:添加ip首部20字节信息,具体为:

5.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。

6.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。


技术总结
本发明涉及一种基于FPGA的千兆网组播发送大包数据的方法,属于雷达系统千兆网数据传输领域。用于解决部分项目采用DSP、CPU等国产化芯片适配国产化操作系统进行网络发送大包数据时存在偶尔丢包的问题。FPGA网络组播发送大包数据,无需运行操作系统,用户首先对大包数据进行拆分成多个小包,并对每个小包应用层数据逐层添加UDP首部、IP首部、以太网首部组建网络的传输层、网络层、数据链路层数据,做到层层可控,同时对每包数据的发送时刻可以做到灵活控制,最后借助FPGA内部硬核TEMAC,将最终的网络数据发送到物理层。采用FPGA组播发送大包数据,对于网络传输的可靠性和有效性都有保证。

技术研发人员:张远安,袁子乔,杨刚,陈颖哲,王岩,赵博,魏鹏伟
受保护的技术使用者:西安电子工程研究所
技术研发日:
技术公布日:2024/3/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1