Forum: Haus & Smart Home Bus für "wilde" Topologie, Multi-Master, Open Source, wenig Daten


von Michael W. (michael_w459)


Lesenswert?

Hallo zusammen,

aufgrund eines Wasserschadens bin ich in der "glücklichen" Situation, 
unser Wohnzimmer neu verkabeln zu können. Ich habe Kabel für 2 
zusätzliche Lampen verbaut, alle Lampen auf 5-phasig umgestellt (so dass 
ich 2x schalten + 1x Dauerstrom haben kann) und an alle Lampen und 
Schalter zusätzliche KNX-Kabel verlegt.

Mein Plan ist, bei jeder Gelegenheit KNX-Kabel zu verbauen und wenn 
irgendwann einmal eine kritische Masse erreicht ist, auf KNX 
umzusteigen.

Nun suche ich bis dahin einen geeigneten Bus, um auf den neuen Kabeln 
ein wenig zu "spielen". Gesucht ist ein Bussystem, welches mit erlaubt 
auf einer gemischten linearen + sternförmigen Topologie Daten zwischen 
µCs auszutauschen. Es sollte konzeptionell ähnlich wie KNX sein: ein 
Schalter sendet ein Signal auf den Bus, ein Aktor, der sich dafür 
"interessiert", reagiert darauf. Auf Management-Tools, Stromversorgung 
über das gleiche Adernpaar etc. wie bei KNX kann ich erstmal verzichten.

Unter https://www.mikrocontroller.net/articles/Hausbus habe ich schonmal 
geschaut, bin aber nicht so richtig fündig geworden. Wenn es nicht KNX 
ist, wird entweder ein Master benötig oder es gehen nur lineare 
Topologien oder man muss aufwändig terminieren...

Gibt es vielleicht irgend einen Bus, für den die Grundprinzipien von KNX 
gelten ("beliebige Topologie", multi-master, differenzielle 
Übertragung), der aber offener ist, so dass man ohne teure Spezialhart- 
und Software damit rumspielen kann?

CAN-Bus scheint schon recht dicht dran zu sein, erlaubt aber keine 
Abzweigungen und will terminiert werden.

Hier mal ein Beispiel, was am Ende gehen soll:
Ich verbaue 3 Doppel-Taster und dahinter einen Controller. Je nachdem, 
welchen Taster ich drücke (oder halte), sendet der Controller einen Code 
auf den Bus. Bus geht vom Controller zum Schaltschrank und von da aus 
sternförmig oder linear zu allen Lampen. In den Lampen ist je ein 
Controller, der den Code empfängt und (je nach Einstellung) darauf 
reagiert.

Vielen Dank,
Michael.

von Guest (Gast)


Lesenswert?

Michael W. schrieb:
> CAN-Bus scheint schon recht dicht dran zu sein, erlaubt aber keine
> Abzweigungen und will terminiert werden.

Wenn du da 125KBit/s oder weniger machst ist dem ziehmlich egal wie 
deine Topologie aussieht. Wobei an zwei stellen eine Terminierung nicht 
schadet.

von Michael W. (michael_w459)


Lesenswert?

In dem Artikel zu Bussystemen steht

    - Abzweigungen vom Bus sind problematisch (max. 1 m?)
    - Abschluss-R notwendig

Ich hatte das so verstanden, dass damit eine Sterntopologie nicht 
möglich ist (weil das ja streng genommen lange Abzweige sind) und dass 
ich an allen Enden terminieren müsste (wobei mich weniger die paar 
Widerstände stören, als die Fehlerquelle, wenn einer fehlt),

Ich habe aber inzwischen an mehreren Stellen schon gelesen, dass ein 
langsamer CAN-Bus da toleranter ist - allerdings nichts belastbares, 
worauf ich das planen könnte.

von Sven L. (sven_rvbg)


Lesenswert?

Keine AHnung was Du in dein WZ alles verbauen willst, aber nimm doch 
gleich KNX.

Die Komponenten von MDT erfreuen sich großer Beliebtheit und für wenige 
Komponenten reicht eine KNX Free Lizenz aus.

von mIstA (Gast)


Lesenswert?

Michael W. schrieb:
> Ich habe aber inzwischen an mehreren Stellen schon gelesen,
> dass ein langsamer CAN-Bus da toleranter ist - allerdings
> nichts belastbares, worauf ich das planen könnte.

Ich dachte Du willst experimentieren?
Langsamerer Betrieb macht jede Verkabelung deutlich gutmütiger, das ist 
simple Physik; aber Garantien wird Dir jenseits der Specs natürlich 
keiner geben. Aber Erfahrungsberichte über reale Installationen die 
funktionieren findest Du sicher ohne Ende im ganzen Netz verstreut.

von Michael W. (michael_w459)


Lesenswert?

mIstA schrieb:
> Ich dachte Du willst experimentieren?

Das ist korrekt. Unter anderem hängt schon eine Eigenbau-Lampe und eine 
zweite kommt hinzu - hier möchte ich flexibel in der Ansteuerung sein, 
weshalb ich mich mit KNX zum Start etwas schwer tue.

CAN klingt da wie gesagt schon sehr interessant. Das experimientieren 
bezieht sich aber in erster Linie auf die Steuerung an sich, nicht auf 
das Ausloten der physikalischen Parameter des Busses, wenn es da sowieso 
schon Erfahrungen gibt ;-)


Irgendwie habe ich noch ein grundsätzliches Verständnisproblem, warum 
ein KNX-Bus faktisch beliebige Topologien (außer Ring) erlaubt, das aber 
mit keinem anderen Bus geht. Die Physik sollte doch für alle gleich 
sein.

von 7075 (Gast)


Lesenswert?

Michael W. schrieb:
> Gibt es vielleicht irgend einen Bus, für den die Grundprinzipien von KNX
> gelten ("beliebige Topologie", multi-master, differenzielle
> Übertragung), der aber offener ist, so dass man ohne teure Spezialhart-
> und Software damit rumspielen kann?

Ja, nennt sich KNX, keine teure Software(ETS6 Demo ist kostenlos für 5 
Geräte,Lite für 20 Geräte kostet 60€)
keine Teure Spezialhardware(Netzteil+Gateway kosten gebraucht insgesamt 
unter 100€, gibt es von verschiedensten Herstellern)
Die komplette KNX-Spezifikation kann man sich (nach 
Registrierung)ebenfalls kostenlos herunterladen.
Open Source Projekte gibt es mehrere.

von Thomas F. (igel)


Lesenswert?

Michael W. schrieb:
> In dem Artikel zu Bussystemen steht
>
>     - Abzweigungen vom Bus sind problematisch (max. 1 m?)
>     - Abschluss-R notwendig
>
> Ich hatte das so verstanden, dass damit eine Sterntopologie nicht
> möglich ist

Die Angabe von 1m bezieht sich streng auf einen Bus mit 1Mbit und 
Signalreflexion am Ende.
Aber jedes Auto hat eine Sterntopologie mit 3m langen Strängen bei 
500kBit. Und all die Autos fahren trotzdem.

Da man für ein paar Lichtschalter ja mit z.B. 25 oder 33kBit locker 
auskommt kannst du problemlos einen Stern mit 50m Durchmesser aufbauen. 
Terminierung an den beiden äußeren Stellen. Fertig.
Der CAN-Bus verzeiht viele Fehler.

von Michael W. (michael_w459)


Lesenswert?

Thomas F. schrieb:
> Da man für ein paar Lichtschalter ja mit z.B. 25 oder 33kBit locker
> auskommt kannst du problemlos einen Stern mit 50m Durchmesser aufbauen.
> Terminierung an den beiden äußeren Stellen. Fertig.
> Der CAN-Bus verzeiht viele Fehler.

Vielen Dank, damit kann ich arbeiten ;-)

Wie ist "an beiden Enden" bei einem Stern definiert?

von Michael W. (michael_w459)


Lesenswert?

Ich habe noch eine Frage, die geichermaßen für KNX und CAN gilt.

Ist es korrekt, dass aus dem jeweiligen Transciever (z.B. SN65HVD230 für 
CAN oder dem NCN5120 basierten Breakout aus 
Beitrag "Mein KNX Breakout  Shield  Busankoppler") erst einmal rohe serielle 
Daten rauskommen? D.h. wenn ich ein "X" mit einem der Transciever auf 
den Bus schicke, kommt aus allen anderen Transcievern ein "X" hinten 
raus? Und das eigentliche Protokoll sitzt dann als Software-Stack (oder 
Hardware, z.B. MCP2515) oben drauf?

von Michael W. (michael_w459)


Lesenswert?

Edit: für CAN konnte ich das weitgehend rausfinden: 
Beitrag "RS485 vs. CAN - Verständnisprobleme"

Wie es aussieht, kann ich den Bustreiber einfach stat nem UART-Treiber 
nehmen und dann auf dem Bus rumsprechen.

von 123 (Gast)


Lesenswert?

Versuch doch mal LIN ist mit 19,2 zwar etwas langsam aber ansonsten sehr 
gutmütig was die Verkabelung betrifft.
Die Treiber senden genau das was man per UART an den Treiber gibt.

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Michael W. schrieb:
> Irgendwie habe ich noch ein grundsätzliches Verständnisproblem, warum
> ein KNX-Bus faktisch beliebige Topologien (außer Ring) erlaubt, das aber
> mit keinem anderen Bus geht. Die Physik sollte doch für alle gleich
> sein.

Die Physik ist überall gleich.
CAN erwartet ganz grob, dass nach höchstens der halben Bitzeit alle 
Teilnehmer das gleiche sehen. Eine Linie, an beiden Enden mit dem 
Wellenwiderstand terminiert, ist natürlich ideal. Aber auch ein Stern, 
oder eine Linie mit Stubs funktioniert, wenn die Bitzeiten lang genug 
sind. Reflektionen müssen halt schnell genug abklingen. Man kann zentral 
oder verteilt terminieren, Hauptsache zusammen 60 Ohm.
KNX hat 9,6 kBit, deswegen brauchen die sich keine Sorgen machen.

Michael W. schrieb:
> Ist es korrekt, dass aus dem jeweiligen Transciever (z.B. SN65HVD230 für
> CAN oder dem NCN5120 basierten Breakout aus
> Beitrag "Mein KNX Breakout  Shield  Busankoppler") erst einmal rohe
> serielle
> Daten rauskommen? D.h. wenn ich ein "X" mit einem der Transciever auf
> den Bus schicke, kommt aus allen anderen Transcievern ein "X" hinten
> raus? Und das eigentliche Protokoll sitzt dann als Software-Stack (oder
> Hardware, z.B. MCP2515) oben drauf?
Richtig. CAN spricht von einem dominanten und einem rezessiven Signal. 
Im Prinzip ein Wired-OR, aber halt differentiell. Receiver vertragen ein 
paar Volt Gleichtaktstörungen.

LIN ist ein Wired-OR, aber nicht-differentiell.

von Thomas F. (igel)


Lesenswert?

Michael W. schrieb:
>> Terminierung an den beiden äußeren Stellen. Fertig.

> Wie ist "an beiden Enden" bei einem Stern definiert?

Einfach die beiden längsten Strahlen des Sterns terminieren.
Aber bei Busgeschwindigkeiten von 33kBit ist das völlig egal. Nach 
meiner Erfahrung läuft der Bus sogar mit nur einem 130R Widerstand.

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.