本文介绍了FPGA-PC之间的以太网数据传输的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我正在开发逻辑内核,以使用我的FPGA板上的LAN8710 PHY在FPGA和PC之间执行数据传输.

I am developing a logic core to perform data transfer between a FPGA and a PC over ethernet, using a LAN8710 PHY on my FPGA board.

我已经实现了将一些UDP数据包从FPGA传输到PC的功能.它是一个简单的核心,符合PHY传输要求.它会构建UDP程序包并将其传输到PC.

I've achieved to transfer some UDP data packets from the FPGA to the PC. It's a simple core that complies with the PHY transfer requirements. It builds the UDP package and transfer it to the PC.

要检查PC上的接收,我使用的是Wireshark,如上所述,我可以正确接收数据包.我已经用自己编写的简单UDP接收器检查了接收情况.

To check the reception on the PC, I am using Wireshark and as said above, I receive the packets correctly. I've checked the reception with a simple UDP receiver written by myself.

但是,我注意到,只有在PC上运行Wireshark时,我才会收到这些数据包.我的意思是,如果Wireshark打开,我的应用程序也会接收到数据包,并且下图接收到的数据包的计数器会增加. (这张照片不是我的,只是互联网上的一张)

But, I've noticed that I only receive these packets when Wireshark is running on the PC. I mean, if Wireshark is ON, my application receives the packets too, and the counter of received packets of the following picture increases. (This picture is not mine, just one from the internet)

http://i.stack.imgur.com/wsChT.gif

如果我关闭Wireshark,PC将停止接收数据包,并且接收到的数据包的计数器也将停止.我的应用程序也停止接收.

If I close Wireshark, the PC stops receiving packets and the counter of received packets stops. My application stops receiving too.

  1. 尽管是网络主题的新手,但我怀疑此问题与PC端有关.好像Wireshark正在打开/关闭"以太网通信通道之类.有人知道这个问题吗?

  1. Although novice on networking topics, I suspect that this issue is related to PC-side. Seems like Wireshark is "opening/closing" the ethernet communication channel, or something like that. Does anyone knows about this issue?

要构建功能内核以在PC和FPGA之间传输数据,我已经开发了一个内核来传输和接收UDP数据包.下一步将是ARP实施(据我所知,让PC识别我的FPGA板).在这两个设备之间执行全双工数据传输需要什么协议?

To build a functional core to transfer data between a PC and the FPGA, I've developed a core to transfer and receive UDP packets. Next step will be ARP implementation (to let the PC identify my FPGA board, as I understand). What protocols are necessary to perform full-duplex data transfer between this 2 devices?

非常感谢您

米格.

推荐答案

几个月后,我解决了这个问题,我发表了一篇文章,以帮助陷入困境的人.

After many months I solved it, I post to help someone stucked in the same point.

最后,我发现Wireshark使用一种工具来访问计算机的网络链路层.该工具允许Wireshark嗅探指定网络设备上的所有传入和传出数据包.为此,第一步是打开网络设备,这就是为什么我的程序仅在Wireshark打开的情况下才能工作.

Finally I figured out that Wireshark uses a tool to access the network link layer of the computer. This tool allows Wireshark to sniff all incoming and outgoing packets at a specified network device. To do this, the first step is to OPEN the network device, and that's why my program only worked if Wireshark was open.

致谢.

这篇关于FPGA-PC之间的以太网数据传输的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 14:56