Multimaster Bus

Gast #25472
Lesenswert?

Hallo!

Ich möchte zur Heimautomation gerne mehrer AVR's zusammen auf einen Bus 
hängen. Dabei soll jeder Busteilnehmer gleichberechtigt sein 
(multimaster bus). CAN kommt allerdings nicht in Frage, da die 
Controller einfach zu teuer und komplex sind (busteilnehmer sollen noch 
in eine unterputzdose passen). Ich dachte eher an RS485. Nun steh ich 
vor dem Problem wie ich ein Carrier Detect (erkennung ob schon traffic 
auf dem bus ist) realisieren könnte...
Hab Ihr ne Idee??

Gruss, Michael
Gast #25473
Lesenswert?

Ein Collision Detect meinst Du. Du checkst immer beim Senden eines 
Teilnehmer den Empfang mit. Sende und Empfangsprotokoll müssen dabei 
identisch sein! Hat jemand dazwischengesabbelt, gibt's 'ne Kollision. 
Dann stellst Du die Übertragung für eine durch Zufall(Pseudo) ermittelte 
Wartezeit ein, prüfst dann ob frei ist und beginnst nochmal mit dem 
Übertragen.
Reiner
#25474
Lesenswert?

Ein SO-28 Chip sollte spielend in eine unterputzdose passen.

Ja, daß Du bei RS-485 im Gegensatz zu CAN vor einem Haufen Probleme 
stehst kann ich voll bestätigen.

Siehe auch:

http://www.mikrocontroller.net/forum/read-1-22412.html#22426

http://www.mikrocontroller.net/forum/read-1-22412.html#22728

http://www.mikrocontroller.net/forum/read-1-19974.html#19986


Peter
Gast #25475
Lesenswert?

Hallo!

Erstmal danke für die Antworten. ok, platzmässig würde CAN funktionieren 
- wenn der Preis für die Controller nicht so hoch wäre. Bei 4-5 clients 
am bus wäre der Preis kein Problem, aber ich möchte duzende schalter, 
steckdosen, garagentore etc. kostengünstig vernetzen.

Was haltet Ihr von der Idee CAN bus transreceiver (also nur einen 
Treiberbaustein,z.B. PCA82c250) direkt an den UART eines AVR zu hängen. 
Vorm senden könnte man prüfen ob etwas im Eingangpuffer ist. Falls nicht 
wird gesendet. Nach dem senden sollte die gesendete message im 
Eingangspuffer liegen. Falls nicht wird nach ablauf einer zufälligen 
nochmal gesendet. Zusätzlich würde ich noch einen CRC check einbauen.

Könnte das funktionieren??

Gruss, Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren