www.mikrocontroller.net

Forum: Haus & Smart Home Ethernet als Hausbus (ohne TCP/IP o.ä.)


Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich wollte mal Fragen, wie es mit dem Einsatz von Ethernet als Hausbus 
aussieht. Zuerst dachte ich immer, ich bräuchte einen TCP/IP-Stack, 
weshalb ich mich nie darüber schlau gemacht habe, da der mir einfach zu 
viel Performance "gefressen" hat. Doch nun habe ich erfahren, dass es 
auch ohne zu gehen scheint.

Könnt ihr mir evtl. bei folgenden Statements bestätigen bzw. korrigieren 
(Atmega8 mit ENC28J60):

- Wenn ich den ENC28J60 einsetzt und an meinen Switch klemme, so kann
  ich z.B. einfach einen noch nicht vorhandenen EtherType definieren und
  Daten an einen anderen Controller versenden, wobei das Ziel des
  Paketes anhand der MAC-Adresse erkannt wird.

- Besitzte ich trotzdem noch die Störsicherheit, die Ethernet "an meinem
  PC" bietet, also  dass z.B. verlorenen gegangene Pakete auto. neu
  gesendet werden bzw. fehlerhafte Pakete aussortiert werden?

- Kann ich solche Pakete ohne bestimmtes Protokoll auch von meinem PC
  aus senden, sodass sie die ENC28J60s erhalten?

- Würden Windows- oder Linux-PCs in einem solchen Netzwerk stören bzw.
  erheblich Last erzeugen, z.B. durch Broadcast-Pakete?

Wäre nett, wenn mir da einer Helfen könnte. Dies sind halt noch die für 
mich "kritischen" Punkte, ob sowas bei mir überhaupt Sinn machen würde.

Der Aufwand auf μC-Seite dürfte ja nicht sonderlich hoch sein, da ich ja 
nur die Roh-Daten vom ENC28J60 zu empfangen brauche, und diese ja schon 
die geforderten Informationen enthalten.
Und senden dürfte ja auch keine sonderliche Last erzeugen, die Daten 
können ja "einfach rausgeschossen" werden.

Viele Grüße
Julian

: Verschoben durch User
Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hausbus

Da schon unter Ethernet geschaut?

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jop, aber dummerweise finde ich eigentlich nur Informationen zu Ethernet 
auf Basis von TCP/IP bzw. UDP, aber gerade dass will ich ja nicht.

Ich bräuchte all diese Extras wie Ports, die die Protokolle mit sich 
bringen nicht. Mir würde es reichen, simple "Rohdaten" zu übertragen.

Autor: Jay (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Julian W. schrieb:
> - Besitzte ich trotzdem noch die Störsicherheit, die Ethernet "an meinem
>   PC" bietet, also  dass z.B. verlorenen gegangene Pakete auto. neu
>   gesendet werden bzw. fehlerhafte Pakete aussortiert werden?

Verlorene Pakete: das obliegt dann Dir, da das normalerweise Aufgabe von 
TCP ist
Fehlerhafte Pakete: das wird durch die FCS sichergestellt

> - Kann ich solche Pakete ohne bestimmtes Protokoll auch von meinem PC
>   aus senden, sodass sie die ENC28J60s erhalten?

Stichwort Rawpackets.

Greez Jay

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Julian W. schrieb:

> - Wenn ich den ENC28J60 einsetzt und an meinen Switch klemme, so kann
>   ich z.B. einfach einen noch nicht vorhandenen EtherType definieren und
>   Daten an einen anderen Controller versenden, wobei das Ziel des
>   Paketes anhand der MAC-Adresse erkannt wird.

ja, auch wenn du keinen ENC28J60 einsetzt.

> - Besitzte ich trotzdem noch die Störsicherheit, die Ethernet "an meinem
>   PC" bietet, also  dass z.B. verlorenen gegangene Pakete auto. neu
>   gesendet werden bzw. fehlerhafte Pakete aussortiert werden?

nein, das ist auch beim PC nicht so. Paketverluste können vorkommen, und 
es ist Sache des Übertragungsprotokolls, damit klarzukommen. Beim PC ist 
es das TCP, das das macht. UDP-Pakete hingegen sind nicht gesichert, 
hier ist es Sache der Anwendung, ebenso ICMP und ARP.

> - Kann ich solche Pakete ohne bestimmtes Protokoll auch von meinem PC
>   aus senden, sodass sie die ENC28J60s erhalten?

Ja. Viele Programme verwenden dazu die WinPCAP Bibliothek.

> - Würden Windows- oder Linux-PCs in einem solchen Netzwerk stören bzw.
>   erheblich Last erzeugen, z.B. durch Broadcast-Pakete?

nö.


Alternative: Verwende UDP-Pakete, d.h. implementiere einen UDP/IP-Stack 
ohne TCP. Das ist ziemlich einfach, denn die Komplexität liegt beim TCP. 
Der Vorteil ist dann, dass Du deine Geräte dann anpingen kannst und bei 
der PC-Programmierung weniger Aufwand hast.

Lies dazu ein gutes Buch über TCP/IP, dann weißt Du mehr.

fchk

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gehen tut das. Frage ist nur: Wozu? Die ganze schöne Funktionalität der 
Ethernetschnittstelle wie Schalten über Webinterface etc. benötigt eben 
einen TCP-Stack. Wenn du darauf verzichten willst ist CAN oder RS485 die 
bessere Lösung. Ich halte sowieso nichts davon, Etnernet als Hausbus 
einzusetzen. Ein Schaltung mit Etnernet wirst du kaum unter 2W bekommen. 
Das Ganze sagen wir, mal 10 Hausbusgeräte für den Anfang, mal 24 
Stunden, mal 365Tage... Da ist der Energiebedarf bei anderen Bussystemen 
deutlich geringer. Und die Sparst die die Switches, die auch noch einmal 
Geld kosten und Energie verbrauchen. Denn Etnernet ist kein Bus, sondern 
wird sternförmig verkabelt.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal Danke für die vielen Antworten. Also Ethernet scheint eine 
echte Alternative für mich zu sein.
Um etwas Klarheit zu schaffen: Ethernet will ich quasi zur 
"Langstreckenübertragung" einsetzten, also um die größere Distanzen in 
meinem Bus zu überbrücken, von daher werden es wohl zur Zeit um die 5 
Nodes werden. Die "letzten Meter" werde ich dann mittels CAN 
überbrücken.
Bisher war mir TCP/IP bzw. UDP einfach von vorne herein zu komplex, 
daher hab ich es gleich mal "aus Prinzip" sein lassen.

Das mit dem Webinterface könnte ich aber ja trotzdem machen, indem ich 
später einen Controller dazu klemme, der ein Webinterface zur Verfügung 
stellt und die Befehle in die Raw-Pakete umwandelt.

Autor: Metatron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im studium hab ich dazu folgendes gelernt:

> - Wenn ich den ENC28J60 einsetzt und an meinen Switch klemme, so kann
>   ich z.B. einfach einen noch nicht vorhandenen EtherType definieren und
>   Daten an einen anderen Controller versenden, wobei das Ziel des
>   Paketes anhand der MAC-Adresse erkannt wird.

Kommt drauf an. Bei einem "normalen" Layer-Switch ist das richtig. 
(Vorausgesetzt du setzt die richtige Empfänger MAC im Paket). Bei nem 
Layer 3 Switch, nein. Der benötigt IP, hast du aber wahrscheinlich nicht 
zuhause.

> - Besitzte ich trotzdem noch die Störsicherheit, die Ethernet "an meinem
>   PC" bietet, also  dass z.B. verlorenen gegangene Pakete auto. neu
>   gesendet werden bzw. fehlerhafte Pakete aussortiert werden?

Natürlich nicht. Die Sicherheit wird durch das Protokoll erreicht. 
TCP/IP hat garantierte Zustellung, UDP/IP (wie es bei P2P oder Streaming 
benutzt wird) hat auch keinerlei Zustellsicherheit.

> - Kann ich solche Pakete ohne bestimmtes Protokoll auch von meinem PC
>   aus senden, sodass sie die ENC28J60s erhalten?

Kannst du nicht, außer du schreibst dafür in Windows einen eigenen 
Protokolltreiber.
Vielleicht kannst du auch händisch die Pakete erzeugen und mit Wireshark 
rausschicken. Musst du dich selber schlau machen.

> - Würden Windows- oder Linux-PCs in einem solchen Netzwerk stören bzw.
>   erheblich Last erzeugen, z.B. durch Broadcast-Pakete?

Naja, das kommt drauf an. Last wird da fast keine Verursacht, deshalb 
gibt es ja Schwitches. Störungen, hängt ganz von deiner Implementierung 
ab. Wenn die uCs die Pakate sauber erkennen, welche zu Ihnen gehören und 
alles andere verwerfen, nee.

Beste Grüße,

Metatron

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt bei dir Langsteckenübertragung? Mehrere Hundert Meter sind 
schon drin bei CAN (Im Gegensatz zu Ethernet). Wie wärs damit: 
Hausbusknoten mit CAN. Dazu eine Etnernet-CAN Gateway mit Webinterface 
für die Bedienung der Komponenten von PC aus.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Julian W. schrieb:
> Um etwas Klarheit zu schaffen: Ethernet will ich quasi zur
> "Langstreckenübertragung" einsetzten, also um die größere Distanzen in
> meinem Bus zu überbrücken,

Bereits einfaches RS485 kann etliche hundert Meter überbrücken, wenn man 
sich bei der Datenrate zurückhält und ein anständiges Treiberdesign 
verwendet.

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
heinzhorst schrieb:
> Was heißt bei dir Langsteckenübertragung? Mehrere Hundert Meter sind
> schon drin bei CAN (Im Gegensatz zu Ethernet). Wie wärs damit:
> Hausbusknoten mit CAN. Dazu eine Etnernet-CAN Gateway mit Webinterface
> für die Bedienung der Komponenten von PC aus.

Nunja, das Problem bei CAN ist aber, dass ich ein Kabel brauche. Die 
Strecke wäre, wenn ich in der "Endphase" bis zum Gartenhaus ausbaue, 
doch fast 800m insgesamt BUS-Länge. Bei Ethernet wäre das längste Kabel 
zum Switch gerade 80m.
Ethernet würde mir noch die Möglichkeit bieten, auch W-LAN zu nutzen, 
was für mich sehr interessant wäre...

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Metatron schrieb:
> Bei einem "normalen" Layer-Switch ist das richtig.
> (Vorausgesetzt du setzt die richtige Empfänger MAC im Paket). Bei nem
> Layer 3 Switch, nein. Der benötigt IP, hast du aber wahrscheinlich nicht
> zuhause.

Eine Layer 3 Switch kann auch auf Layer 3 arbeiten, also routen. Sie 
kann aber auch als ganz "normale" Ethernet-Switch eingesetzt werden. Da 
diese viel teuerer als eine "normale" Switch ist, wird sie sicherlich 
kein Privatmensch für eine Hausvernetzung einsetzen (Kosten für 48 Port 
zum Beispiel [HP/3Com] > 3000€).

Hier: http://de.wikipedia.org/wiki/Layer-3-Switch

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Die Switch"? Ist das richtig? Falls man überhaupt von richtig oder 
falsch sprechen kann ;-)

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Ich" (und auch meine Kollegen) nennen sie "die" Switch.
Vielleicht wäre "ein" (also "der") Switch (Schalter; Sternverteiler) 
besser.

Autor: David .. (david1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens, du musst dein ganzes System nicht als ganzen BUS fahren.

Für DMX was ja RS485 gibts z.B. Splitter, mir fällt grad der richtige 
Name nich ein, das gibts für so ziemliche alle erdenklichen Busse, der 
Verteilt das Signal auf mehrere Ausgänge und umgekehrt.

Sowas gibts garantiert auch für CAN, so einen in jede Unterverteilung 
usw.

So muss man nicht alles als kompletten Ring anfahren ;)


Ethernet halte ich wie gesagt aus den oben genannten Gründen, Verbrauch, 
komplexität usw für einen Bus ungeignet, besser wäre wie gesagt ein 
einzelnes Modul, evtl gleich nen kleinen Server der auchnoch alle 
möglichen anderen Sachen übernimmt, Router, FTP, usw. über den man dann 
eine Verbindung zwischen Netzwerk und Bus bereitstellt (Webinterface und 
weiß ich noch alles)

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David .. schrieb:
> Sowas gibts garantiert auch für CAN, so einen in jede Unterverteilung
> usw.

Für CAN hab ich einen solchen IC auch gefunden, der kostet jedoch 13€ 
und verbindet "nur" 2 CAN-Netzwerke miteinander, von daher wird das 
ganze recht teuer dann...

Autor: David .. (david1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du einfach auf jedem Stockwerk so ein Teil setzt, und eben für die 
Leitung zum Gartenhaus wären das gradmal 52€ wenn Verteilerpunkten, UG, 
EG, OG, Außenanlagen ausgeht, da kosten ja 3 Säcke Beton mehr ...

Autor: Axel Laufenberg (axel_5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade dabei, dass auf Ethernet umzusetzen, wobei ich UDP als 
Broadcast nutze.

Leistungsaufnahme des Knotens liegt bei 120mA bei 3.3V, also weit weg 
von den hier genannten 2W.

Das Schöne ist, dass man einfach vorhandene Ethernet Installation 
mitnutzen kann, der VDR Server kann das einfach mittracen, Wireshark zum 
Debuggen einsetzen usw. usf. Und ich kann an alle Knoten mittels Telnet 
direkt drauf zur Konfiguration, Bootstraploader etc. Kann man fast alles 
mit Software, die es hier im Board gibt erschlagen (Uli Radigs Server 
abgespeckt).

Gruss
Axel

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jop, hab mich jetzt auch entschieden, Ethernet zu nutzen.
Ob ich UDP nun nutze oder nur Rohdaten verschicke, werde ich mir noch 
überlegen bzw. ausprobieren, wie es mit der Performance aussieht.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha. Die grosse Stromschleuder... Das EW hat gern gutzahlende, 
langjaehrige Kunden. Aber wenn man das Datenaufkommen hat, und die 
Bandbreite braucht...

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das macht kein sinn

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.