私は Python を使用して UDP パケットを FPGA ボードに送信していますが、Python は初めてです。Wireshark を使用して送信されるパケットを監視していますが、FPGA がすべてのパケットを正しく受信していることはわかっています。問題は、どのパケットが送信されているかです。コンピュータは接続時に FPGA が何であるかを認識しないため、識別されていないネットワークとして残し、IP アドレス (169.254.233.200) を割り当てます。このコードを使用して、単に「テスト」と言うUDPパケットをFPGAに送信しようとしています(ひどいフォーマットで申し訳ありません)。
import sys
import socket
def main():
UDP_IP="169.254.233.201"
UDP_PORT=9
MESSAGE='Test'
print ("UDP target IP:", UDP_IP)
print ("UDP target port:", UDP_PORT)
print ("message:", MESSAGE)
sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM ) # UDP
sock.sendto( bytes(MESSAGE, 'UTF-8'), (bytes(UDP_IP, 'UTF-8'), UDP_PORT) )
ただし、このスクリプトの実行時に UDP パケットを送信する代わりに、コンピューターは「169.254.233.201 を持っているのは誰? 169.254.233.200 を教えてください」というメッセージをブロードキャストします。これは、識別されていないネットワークによって引き起こされた問題であると推測しています。または、パケットのアドレス指定が間違っているだけです。FPGA 上の HDL をできるだけシンプルにしようとしているので、接続を確認するためにパケットをコンピューターに送信する必要がないようにしたいと考えています。これが、UDP over TCP を使用したかった理由です。
任意のヘルプをいただければ幸いです。
グレアム
解決済み: 接続をセットアップしようとしたときに、コンピューターがポート 169.254.255.255 にメッセージを送信していることに気付きました。UDP_IP="169.254.233.201" を UDP_IP="169.254.255.255" に変更すると、UDP パケットが通過し始めました。
教訓: 私は IP アドレスが苦手です。