在fpga上重新获取UDP数据包



我正试图用以太网电缆将数据从PC发送到FPGA。

我用这个代码来接收从我的电脑发送到FPGA的数据包(通过以太网电缆(。我用ila(集成逻辑调试器(在FPGA上捕获接收到的数据包。

当我在linux电脑上使用ifconfig时,在编程FPGA后,我看到下面:(我隐藏了我的MAC地址(

enp7s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1490
ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
RX packets 0  bytes 0 (0.0 B)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 1427  bytes 199195 (199.1 KB)
TX errors 1071  dropped 0 overruns 0  carrier 0  collisions 0

正如我从这个类似的问题中所知道的,我的FPGA没有任何特定的ip地址,甚至没有端口号。它根据它的MAC地址监听在RXD(以太网mii(上发送的每个数据包。

当我没有任何特定的IP和端口时,我如何将数据包发送到FPGA?

我想我应该在我的电脑中为我的FPGA设置端口和IP(无需更改硬件(,但我不知道怎么做?

有几个选项。

  • 如果FPGA直接连接到您的接口,那么它将接收您发送的任何内容,因此无需担心网络配置
  • 如果你有一个开关,你可以发送一条广播消息,该消息将转发到网络中的所有设备(假设你的开关中没有像vlan或类似的复杂配置(

关于广播:https://en.wikipedia.org/wiki/Broadcasting_(网络(它只是一个带有FFs 的dest mac

至于实际发送,您可以使用python生成并发送数据包。scapy是一个非常简单的软件包,应该可以帮助你文件:https://scapy.readthedocs.io/en/latest/usage.html

看看这个特殊的例子:

sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")

最新更新