Forum: Mikrocontroller und Digitale Elektronik Keine Ethernetverbindung


von Dave (Gast)


Lesenswert?

Hey,

ich versuche mich grad Firmenintern an einem STM32F4.

Habe meinen Programmcode jetzt soweit, dass ich ein SYN Segment schicke.

Um zu sehen, ob etwas ankommt habe ich zugleich ein LabVIEW VI erstellt, 
welches einfach einen Listener erstellt. Falls am gegebenen Port eine 
Anfrage ankommt lässt dieses eine LED aufleuchten.

Mein Problem ist nun, dass sich nichts tut. Das VI erstellt einen 
Listener und wartet dann immer.

Der Programmcode gibt in den Funktionen die richtigen Rückgabewerte aus 
bei den entsprechenden Funktionen.

Wenn ich das SYN in eine unendliche WhileSchleife setze und pinge, so 
wird ein Ping gesendet und der Controller antwortet mit seinem reply.

Hab auch schon Patch- wie auch Crosskabel probiert.

Hat jemand noch eine Idee woran es liegen könnte bzw was ich noch 
versuchen könnte?

Ich hoffe ich habe jetzt nichts vergessen.

Danke für eure Hilfe

von Holger T. (holgert)


Lesenswert?

Hallo,

Du bist Dir schon bewußt, daß SYN und LISTENER Begriffe sind, die zu TCP 
gehören. Das hat mit Ethernet erstmal gar nichts zu tun. (Siehe auch 
OSI-Modell: 
https://de.wikipedia.org/wiki/Internetprotokollfamilie#TCP.2FIP-Referenzmodell).

Also wo drückt der Schuh? Was funktioniert? Was funktioniert nicht?

-Holger

von Dave (Gast)


Lesenswert?

Hey,

ja die Verbindung soll über TCP/IP stattfinden.
Sollte vll noch dazu sagen, dass ich kein DHCP nutzen kann.

Ich liste hier mal mein vorgehen auf.

- initialisieren TCP Stack
- Ethernet initialisieren
- Netzwerkparameter konfigurieren (da kein DHCP)
- TCP Connection ( = SYN Segment)

"Der Schuh drückt" jetzt in der Richtung, dass anscheinend nichts 
ankommt.

von Dave (Gast)


Lesenswert?

Dave schrieb:
> Hey,
>
> ja die Verbindung soll über TCP/IP stattfinden.
> Sollte vll noch dazu sagen, dass ich kein DHCP nutzen kann.
>
> Ich liste hier mal mein vorgehen auf.
>
> - initialisieren TCP Stack
> - Ethernet initialisieren
> - Netzwerkparameter konfigurieren (da kein DHCP)
> - TCP Connection ( = SYN Segment)
>
 Die Rückgabewerte der ganzen Funktionen passen.

 Die Frage ist jetzt wo der "Fehler" noch liegen könnte. Oder habe ich
 etwas nicht beachtet und merke es nicht?

 Der Schuh drückt jetzt in der Richtung, dass anscheinend nichts
 ankommt.

von (prx) A. K. (prx)


Lesenswert?

Per Wireshark reinschauen, was am Zielgerät ankommt.

von Dave (Gast)


Lesenswert?

Hey,

Wireshark sagt mir das Selbe.

SYN wird gesendet an die richtige IP.
Reply wird zurückgesendet

von Jan B. (berge)


Lesenswert?

Moin,

und wo drückt dir der Schuh? Viele Sachen handelt dein TCP/IP Stack von 
selbst, du musst dich nicht darum kümmern. Was passiert denn, wenn du 
Daten schickst?

LG Jan

von Dave (Gast)


Lesenswert?

naja ich habe ja ein LabVIEW VI erstellt, welches eine Sequenz abläuft

Anfangs wird eine LED auf false gestellt, im 2. Abschnitt wird TCP 
initialisiert und wartet auf eine Anfrage, wenn die anfrage kommt geht's 
in die 3. Sequenz und schaltet als Beleg, dass was kam das LED ein.

Aber im 2. Abschnitt wird nur ein Listener erstellt und dann wird so 
lange auf die anfrage gewartet bis der timeout stattfindet.

Also wird die Anfrage nicht erkannt oder?

von Jojo S. (Gast)


Lesenswert?

Ein SYN zu senden reicht nicht aus, nach dem Erhalt des SYN-ACK musst du 
wieder ein ACK zum Server senden. Siehe
http://de.wikipedia.org/wiki/Transmission_Control_Protocol, Abschnitt 
'Verbindungsaufbau'.
Aber TCP zu Fuss ist eine Aufgabe die ich mir nicht antun würde, dafür 
gibt es Minimalstacks wie µIP oder lwIP. Für 'richtiges' TCP muss die 
ganze State Machine richtig implementiert werden, sonst wird das nie 
stabil laufen und die Reset Taste wird der wichtigste Button an deiner 
Kiste.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.