www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wake On Lan - Magic Packet empfangen mit ATMEGA


Autor: Cossy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde gerne mit meinem ATMEGA ein Magic Packet (=Wake On Lan) im 
lokalen Netzwerk empfangen. Die MAC Adressen will ich dann in meinem 
Programm auswerten. Gesendet werden die Magic Packet's (mit beliebigen 
MAC Adressen) von einem weiteren Rechner im Netzwerk. Ich habe vor - 
wenn möglich - einfach nur den RX-Kanal auszuwerten.

Auf der Suche nach ähnlichen Projekten bin ich nur auf Webserver 
gestossen. Die Webserverlösung wäre zwar sehr elegant und ausbaufähig, 
ist mir jedoch viel zu aufwändig und zu groß. Ich will das Magic Packet 
schliesslich nicht vom Internet aus senden, sondern nur aus dem lokalen 
Netz.


Da ich mich mit Netzwerken nicht so gut auskenne hier meine Fragen an 
diejenigen, die sich damit besser auskennen:

Kann man dieses Projekt ohne einen separaten Ethernetcontroller 
realisieren?
Ich will ja nichts versenden, sondern nur etwas empfangen. Oder muss ich 
mich im Netz anmelden?

Werden Magic Packet's verschickt, deren MAC Adressen im Netzwerk 
unbekannt sind?
Ich könnte mir vorstellen, dass der Router das Magic Packet nicht 
weiterschickt, weil ihm die MAC Adresse nicht bekannt ist.


Ich hoffe, Ihr könnt mir ein wenig bei der Aufwandsabschätzung helfen.

Viele Grüße

Cossy

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1) Ich interpretiere das so: Du willst ALLE Wol Packete sehen, nicht nur 
die für eine bestimmte Station.

A) Ohne einen Ethernetcontroller im Promisc... ääää..., einen der alle 
Pakete empfängt ;-)  wirst du nicht herumkommen. Es gibt zwar irgendwo 
im Netz ein Projekt in dem ein AVR direkt am Netz hängt, aber das nur 
bei 10MBit, mehr schafft ein AVR nicht.
B) Da in so ein Magic Packet ja nur mehrmals hintereinander die MAC 
Adresse des Empfängers stehen muss (wie oft weiss ich jetzt nicht mehr) 
wird auch ein Router ein gültiges IP Paket (mit dem "Magic" im 
Datenteil) in das entsprechende Segment weiterleiten. Das funktioniert 
(selbst ausprobiert).
C) Um Magic Packets zu erkennen, muss der AVR JEDES Paket untersuchen. 
Das schafft ein AVR nur, wenn im Netz so gut wie nichts los ist.

Fazit 1: Vergiss es.

2) Magic paket nur für eine EINZIGE MAC Adresse.
A) s.o.
B) s.o.
C) Da du nur Multicast/Broadcast Pakete und Pakete and die an diese 
spezielle MAC adressiert sind auswerten musst, KANN das evtl. 
funktionieren. Wenn nicht zuviel Broadcast/Musticast Traffic im Netz 
herrscht. Aber wenn Windows im Netz ist... "Windows is very chatty".

Fazit 2: Kann gehen.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey!

Ich habe ähnliches vor. Ich habe eine XBOX mit XBMC und würde sie gerne 
über WOL (Wake on Lan) starten lassen. Leider unterstützt die XBOX kein 
WOL. Dh eine kleine Box vor der XBox müsste dauerhaft am Netzwerk 
lauschen und wenn ein Magic Packet mit der MAC-Adresse der XBOX ankommt 
die Powertaste über ein Relais oder Transistor schalten. Jedoch wie? 
Muss da ein kompletter Webserver her? Gibt es Ethernet-Chips die eine 
Art Filterfunktion eingebaut haben? Dh dass nur solche Pakete 
durchkommen und man dann via spi / rs232 o.Ä. die MAC-Adresse geschickt 
bekommt?

Ich habe gerade viel gegoogled aber habe nur Lösungen gefunden die über 
ein Webinterface Geräte an und ausschalten. Ich möchte jedoch dass die 
kleine Box im Netzwerk quasi garnicht auffällt. Von außen sollte es dann 
so wirken, dass die XBOX das WOL unterstützt. Hat da jemand Erfahrung 
mit den Ethernetchips?

Gruß
Dominik

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann man dieses Projekt ohne einen separaten Ethernetcontroller
>realisieren?

Nein, Empfangen ist cycle-intensiver wie Senden, die im Netz
kursierenden "AVR-SW-Ethernets" erlauben "nur" Senden und das
geht gerade soooo.

>Muss da ein kompletter Webserver her? Gibt es Ethernet-Chips die eine
>Art Filterfunktion eingebaut haben? Dh dass nur solche Pakete
>durchkommen und man dann via spi / rs232 o.Ä. die MAC-Adresse geschickt
>bekommt?

Wenn man einen Ethernetchip verwendet, geht natuerlich alles
was man gewoehnlicherweise mit einem Ethernetchip anfangen kann.
Also ein UDP-Server oder ein TCP basierter Server (HTTP setzt auf
TCP auf). Mit den vorhandenen (freien) embedded (AVR-)Webservern
waeren die Aenderungen zum EIn/Ausschalten von Geräten wohl
minimal, alles andere waere "Arbeit" ohne einen (offensichtlichen!?)
Mehrwert zu erhalten!

Jepp, die "Art Filterfunktion" ist quasi die eigene MAC Adresse, ein
Ethernetcontroller nimmt Pakete an, welche an seine MAC und auf
die Broadcast Adresse geschickt werden... (fuer die Multicasts muss
man spezielle Dinge tun :-)

VG,
Hans

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hatte mir schon mal folgendes überlegt, aber bisher nicht 
ausprobiert: eine billige PCI-Netzwerkkarte für 5 Euro müsste eigentlich 
an ihrem WOL-Kabel ein Signal abgeben, wenn sie angesprochen wird, und 
dazu dürfte sie nicht mehr brauchen als die Versorgung mit der 
Standby-Spannung - im abgeschalteten PC ist der Bus ja auch nicht in 
Betrieb.

Gilt natürlich nur für die eigentliche Weckfunktion, nicht für eine 
Überwachung des Netzes. Aber z.B. ein ferngesteuertes Starten eines
Netzwerkdruckers sollte realisierbar sein.

Gruss Reinhard

Autor: tonni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geht leider nicht Karte muss vom OS initialisiert sein.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tonni schrieb:
> geht leider nicht Karte muss vom OS initialisiert sein.

Sicher? Das würde ja im Normalbetrieb heissen, nach einem Stromausfall 
funktioniert WOL nicht.

Gruss Reinhard

Autor: Michael Frangenberg (startrekmichi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werden die Konfigurationsdaten in einem EEPROM gespeichert? Dann könnte 
man ja die Karte einmal in einen PC einbauen, konfigurieren und wieder 
ausbauen. Wenn das in einem SRAM o.ä. gespeichert wird, geht das 
natürlich nicht.

Autor: osby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Frangenberg schrieb:
> Werden die Konfigurationsdaten in einem EEPROM gespeichert? Dann könnte
> man ja die Karte einmal in einen PC einbauen, konfigurieren und wieder
> ausbauen. Wenn das in einem SRAM o.ä. gespeichert wird, geht das
> natürlich nicht.

dann würde ja auch die IP nach einem aus/einbau gespeichert sein?

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
osby schrieb:
> dann würde ja auch die IP nach einem aus/einbau gespeichert sein?

eine Netzwerkkarte hat selbst keine IP-Adresse!
Demzufolge sollte WOL auch bei einer nicht initialisierten Karte 
funktionieren. Es geht ja nur um die MAC-Adresse, und die filtert die 
Karte ja selbstständig heraus und gibt dann den WOL Schaltbefehl durch.

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade mal ein wenig gegoogelt, diese Lösung hier sieht interessant 
aus für das Problem:
http://www.silabs.com/products/mcu/Pages/Wake-on-LAN.aspx

Weiß jemand mehr darüber?

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reinhard Kern schrieb:
>> geht leider nicht Karte muss vom OS initialisiert sein.
> Sicher? Das würde ja im Normalbetrieb heissen, nach einem Stromausfall
> funktioniert WOL nicht.

Kommt auf die Karte an, bei einigen muss in der Tat WOL explizit vom OS 
oder BIOS aktiviert werden, und bleibt dann nur solange aktiv, wie die 
(Standby-)Stromversorgung der Karte nicht komplett unterbrochen wird.

Hans schrieb:
> Nein, Empfangen ist cycle-intensiver wie Senden, die im Netz
> kursierenden "AVR-SW-Ethernets" erlauben "nur" Senden und das
> geht gerade soooo.

Für WOL ist allerdings kein vollwertiger Empfang mit Dekodierung von 
Ethernet-Frames etc. nötig. Es müssen Link-Pulse gesendet werden, damit 
der Switch den Port nicht deaktiviert, und es muss die magische 
Bitsequenz (48 1-Bits gefolgt von 16 Wiederholungen der MAC-Adresse) 
erkannt werden.

Dürfte aber dennoch grenzwertig werden, das auf einem AVR in Software zu 
implementieren.

Andreas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.