【问题标题】:Ethernet data transfer between FPGA-PCFPGA-PC之间的以太网数据传输
【发布时间】:2015-12-25 18:40:58
【问题描述】:

我正在开发一个逻辑内核,使用我的 FPGA 板上的 LAN8710 PHY 通过以太网在 FPGA 和 PC 之间执行数据传输。

我已经实现了将一些 UDP 数据包从 FPGA 传输到 PC。这是一个符合 PHY 传输要求的简单内核。它构建UDP包并将其传输到PC。

为了检查 PC 上的接收情况,我使用的是 Wireshark,如上所述,我正确接收了数据包。我用自己写的一个简单的 UDP 接收器检查了接收。

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

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

如果我关闭 Wireshark,PC 会停止接收数据包,并且接收数据包的计数器也会停止。我的申请也停止接收。

  1. 虽然是网络话题的新手,但我怀疑这个问题与PC端有关。似乎 Wireshark 正在“打开/关闭”以太网通信通道,或类似的东西。有人知道这个问题吗?

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

非常感谢您,

米格。

【问题讨论】:

    标签: networking udp ethernet


    【解决方案1】:

    检查您是否能够在 PC 端的以太网驱动程序级别为 FPGA 传输的单个数据包获得适当的接收中断。如果您没有收到接收中断,请在发送端(FPGA)检查正在发送的数据包的适当发送中断。这应该主要帮助您解决问题。

    据我所知,wireshark 只是一个数据包分析器/嗅探器。但是,如果怀疑是wireshark,一种选择是尝试使用备用数据包嗅探器来排除是否发生任何此类情况。

    确定网络问题和确定网络统计数据的便捷工具是 netstat。 netstat -sp udp 应仅列出 UDP 的统计信息。还有许多其他参数可以与 netstat 一起用于诊断。

    【讨论】:

    • 感谢您对 Karthik 的回复。如何查看PC端的接收中断?
    • 这取决于您的处理器和设计。因此,您可能需要检查相应的中断计数器或拥有自己的计数器或调试日志。
    【解决方案2】:

    几个月后我解决了这个问题,我发帖来帮助陷入同一点的人。

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

    问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 2018-10-26
      • 2015-10-13
      • 2019-04-16
      • 1970-01-01
      相关资源
      最近更新 更多