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?
im wiki unter hausbus werden deine fragen beantwortet. Einfach und schnell geht nicht;-)
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?
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
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.
für 8 simple schalter (kontakte) gleich nen hausbus, mit µc an jedem schalter ist das nicht ein wenig übertrieben ???
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.
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.
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
@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
@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
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.