2015-11-25 2 views
1

Я хочу отправить сообщения с моего устройства FPGA на свой компьютер. Я не знаю, как использовать SOC и записывать драйверы linux, поэтому я собираю пакеты UDP без использования ОС. Мой IP-адрес установлен на 192.168.0.1 с маской 255.255.255.0, а MAC-адрес - 10-C3-7B-44-FA-8A. Я обнаружил, что wirehark может распознавать мои UDP-пакеты и показывает, что IP-адрес и порт все в порядке, но мои приложения не могут.Не удается получить UDP-пакет от FPGA

Wireshark snapshot

Я попробовал два приложения, которые написаны на Python и MatLab следующим образом,

питон:

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) 
s.bind((192.168.0.1, 4096)) 
buf=s.recvfrom(65536) 

Matlab:

u = udp('192.168.0.2',4096,'LocalPort',4096,'LocalHost','192.168.0.1'); 
fopen(u) 
buf=fread(u,1000) 

Оба приложений проворная тайм-аут после выполните последнюю строку своего кода.

Что-то не так?

+0

Что такое IP вашей ПЛИС? – Paebbels

+0

Вы когда-нибудь получали эту работу? Если нет, вы должны опубликовать журнал _small_ Wireshark в формате .pcap или .pcapng, а не скриншоте. Из того, что вы можете видеть на скриншоте, он очень близок к работе - физический уровень и MAC кажутся хорошими, что очень сложно. – Anders

+0

IP-адрес FPGA - 192.168.0.2. Он никогда не работает. Платформа изменилась, поэтому я должен потратить некоторое время на ее восстановление и получить файл .pcap, как вы сказали. – WJNNB

ответ

0

Поскольку вы можете видеть пакеты с Wireshark, кажется, проблема с приложением. Scapy имеет отличные инструменты для пакетной обработки.

код Питон ниже должен печатать пакеты, назначение IP является 192.168.0.1 (на основе Scapy Doc)

#! /usr/bin/env python 
from scapy.all import * 

def monitor_cb(pkt): 
    if IP in pkt and pkt[IP].dst == '192.168.0.1': 
     return pkt.show() 

sniff(prn=monitor_cb, store=0) 

Обратите внимание, что должно быть запущен как корень.

+0

Спасибо. Наконец, я нашел свою проблему, и теперь мой совет может отправить udp-пакеты на мой MATLAB. Моя контрольная сумма в заголовке пакета IP была неправильной, и теперь я ее исправил. – WJNNB

Смежные вопросы