Forum: Mikrocontroller und Digitale Elektronik Haussteuerung RS485, IIC oder CAN


von Marco Schramm (Gast)


Lesenswert?

Folgende Ausgangslage:

1 Stk. C-Control I Station 2.0

8 im Einfamilienhaus verteilte Schalter (Standart-Serienschalter der
230V-Technik)

Anbindung teilweise über neu verlegtes Cat 7-Kabel möglich. Einige
Schalter sind jedoch nur über das bereits vorhandene 8adrige
"Postkabel" Es ist auch nur Sterntopologie realisierbar. Maximale
Entfernung zwischen Schalter und C-Control-Station: 50m

Als Busankoppler an den Schaltern kann ich AVR´s in Bascom
programmieren.


Folgende Frage:

Für welchen Bustyp soll ich mich entscheiden? Dabei möchte ich
möglichst EINFACH und SCHNELL zum Ziel kommen.

RS 485, IIC oder CAN?


Zusatzfrage: Ich habe mal gelesen, der IIC-Bus wäre nur für
Entfernungen bis 3m spezifiziert. Ist das richtig?

von 123 (Gast)


Lesenswert?

im wiki unter hausbus werden deine fragen beantwortet. Einfach und
schnell geht nicht;-)

von Marco Schramm (Gast)


Lesenswert?

Im ?? wiki ??    Ich habe eben die Suche bemüht und unter Hausbus stehen
immer wieder die freudige Nachricht, das ein eigenes Unterforum
aufgemacht wurde. Aber wo isses denn nun? Bin ich zu blind?

von David W. (Gast)


Lesenswert?


von Joachim B. (Gast)


Lesenswert?

Hallo Marco,

nähere Informationen zum Hausbus gibt es hier:
http://www.mikrocontroller.net/articles/Hausbus

Der IIC-Bus wurde als "Inter-IC-Bus" zur Verbindung von IC's
innerhalb von Geräten entwickelt. Er ist nicht als störsichere
Verbindung über lange Strecken gedacht.
RS 485 kann man degegen bis auf 1200m verlängern.

Mit einer Sternverdrahtung kann man übrigens auch einen Bus
realisieren, wenn man in jeden Zweig mit zwei Adern hineingeht, diese
am Ende anschließt und mit zwei weiteren Adern wieder zurückehrt. Der
Bus wird dadurch länger, das sollte aber kein Problem sein.

Gruß
Joachim

von Marco Schramm (Gast)


Lesenswert?

Deshalb hatte ich auch das CAT7 Kabel gewählt, da bei diesem auch die
einzelnen Doppeladern gegeneinander geschirmt sind. Wie du es schon
sagst. Damit kann man dann aus Stern einen Ring bauen.

IIC ist wohl gestorben (wie schon vermutet).

Bliebe dann noch RS 485. CAN erscheint mir augenblicklich als zu Hard-
und Softwareaufwändig.

von mmerten (Gast)


Lesenswert?

für 8 simple schalter (kontakte) gleich nen hausbus, mit µc an jedem
schalter ist das nicht ein wenig übertrieben ???

von Marco Schramm (Gast)


Lesenswert?

Du Hast recht, 8 normale Schalter könnte man ja so ansteuern. Ziel ist
es aber, jeden der 8 Schalter mittelfristig gegen einen wie auch immer
gearteten Mehrfachschalter 4 bis 8 Kanäle) mit optischer Rückmeldung zu
ersetzen. Zur Debatte steht auch ein LCD-Display mit Hardkeys unten
drunter oder sogar die immer mehtr erschwinglich werenden Touchpanels.

Zusammengefaßt: Von jedem Schalterstandort sollen im Endausbau bis zu 8
Kanäle (Licht, Rolladensteuerung) mit optischer Rückmeldung erfolgen.
Und dann müsste ja eh ein uc her. RS 485 hätte ich halt gerne wegen der
Störsicherheit. Und ich möchte gleichzeitig was "Basteln" was man auch
später nutzt
und dabei den AVR besser kennnenlernen. was man auch später nutzt.

von Max (Gast)


Lesenswert?

Kleiner Tipp: Wenn man anstelle eines RS485-Treibers einen CAN-Treiber
nimmt (z.B. den 82C250), ist die Übertragung auch "Kurzschlussfest".
Bei den originalen RS-485 Treibern ist das nicht so. Auch Multi-Master
ist dann mit dem RS-485 möglich, da sich bei den CAN-Treibern der
"0"-Pegel durchsetzt. Der Tipp ist nicht von mir, habe ich irgendwo
hier im Forum mal gelesen, aber k.A. wo das genau war. Ich habs
ausprobiert und das funktioniert prächtig.
RS-485 ist mir eher sympathisch als CAN, weil ich einfach mal so einen
PC mit einklinke und mir dann die Datentelegramme direkt anschauen
kann.

von Michael Wilhelm (Gast)


Lesenswert?

Korrigiert mich bitte, wenn ich falsch liege, aber RS485 ist ein
physikalischer Layer, unter dem auch CAN läuft. CAN ist reine Software,
die diesen Layer (Differenzsignal mit Schirm, verdrillte Leitungen usw.)
nutzt.
Unter RS485 läuft z. B. auch DMX. Aber auch das ist wieder die
Software.

MW

von Detlef Wilken (Gast)


Lesenswert?

@MAX:

Multi-Master Betrieb ist auch mit herkömmlichen Treibern (MAX485)
möglich. Das einzige Problem sind eben die häufig genannten
Buskollisionen (die vermutlich durch CAN-Treiber bereits HW-mässig
ausgeschlossen werden). Es spricht absolut nichts dagegen, solche
Bus-Kollisionen via SW zu erkennen und zu umgehen !
Eine Buskollision zu erkennen, ist kaum aufwändiger als einen Port auf
HIGH zu schalten !
Mein RS-485 ist Multi-Master -fähig mit normalen Treibern (Für so ein
bischen SW kaufe ich mir doch keine CAN-Treiber !

Gruß
Detlef

von Peter Dannegger (Gast)


Lesenswert?

@Detlef

"Mein RS-485 ist Multi-Master -fähig mit normalen Treibern (Für so
ein
bischen SW kaufe ich mir doch keine CAN-Treiber !"


Darum geht es doch überhaupt nicht !

RS-485 Treiber haben keinen dominanten Pegel und sind sehr stromstark.
Wenn da also einige Ohm an Leitung zwischen 2 kollidierenden Mastern
sind, liest jeder seinen Pegel zurück und denkt, daß gar keine
Kollision stattgefunden hat. Und alle dazwischen lesen Datensalat.

Bei CAN gibt es einen dominaten Pegel, d.h. jeder kriegt eine Kollision
mit, auch der Sender. Und es kommt auch bei einer Kollision zu keiner
erhöhten Stromaufnahme.

Außerdem sparst Du bei CAN-Treibern das Umschaltsignal für den Sender.

Außerdem sind CAN-Treiber wesentlich billiger als RS-485 Treiber.

Der einzige Vorteil von RS-485 Treibern ist, daß eine geringfügig
höhere Datenrate möglich ist.


Peter

von Detlef Wilken (Gast)


Lesenswert?

Hallo

> Wenn da also einige Ohm an Leitung zwischen 2 kollidierenden Mastern
> sind, liest jeder seinen Pegel zurück und denkt, daß gar keine
> Kollision stattgefunden hat

Ich habe zwar bisher nur Tests mit Aufbauten auf meinem Schreibtisch
gemacht, aber ich glaube kaum, dass durch die Strecken, die die Daten
in einem Hausnetzwerk zurückzulegen haben, eine Kollision übersehen
werden kann.
Ich bitte um Korrektur, wenn jemand von Euch diesbezüglich andere
Erfahrungen gemacht hat.


Um Mißverständnisse auszuschließen, hier mein Prinzip der
Kollisionserkennung:
Jedes gesendete Byte löst im gleichen Steuergerät ein Interrupt aus.
Das empfangene Byte wird mit dem gerade gesendeten verglichen. Schlägt
dieser Vergleich bei einem der Bytes fehl, wird die Sendung mit einer
geringen Zeitverzögerung erneut gesendet. Dadurch, dass die Sendung
unterbrochen ist, ist auch die ENDE-Kennung des Protokolls beim
Empfanger nicht angekommen und die Botschaft wird beim Empfänger
verworfen.


Gruß
Detlef

von Peter Dannegger (Gast)


Lesenswert?

@Detlef,

der LTC490 braucht +/-0,2V Differenzspannung zum Erkennen 0/1 und kann
typisch 100mA Strom liefern, d.h. für 0,2V reicht ein
Leitungswiderstand von 2 Ohm aus.

Also 2 LTC490 mit 2 Adern a 2 Ohm verbunden, einer sendet 1 und liest
1, der andere sendet 0 und liest 0.

Und keiner kriegt die Kollision mit.



Peter

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.