mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Multimaster Bus


Autor: Michael B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich entwickle gerade soetwas auf basis des i2c bus. Es ist 
kostengünstig, da nur ein transistor als externes bauteil gebraucht 
wird. Kolision detection müsste auch kein problem sein ( hatte noch 
keine Zeit es auszuprobieren).

Autor: Michael B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@daniel, i2c wäre ne möglichkeit... aber das mit dem transistor sagt mir 
nicht zu. da invenstiere ich lieber 1.80euro für einen vernüftigen, 
praxis erprobten transreceiver und brauch mir keine gedanken über 
kurzschluss und extere störsignale machen.

aber halte mich/uns mal auf dem laufenden.

gruss, Michael

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit I2C kannst Du solche Entfernungen auch gar nicht überbrücken. Da ist 
ein differentieller Transreceiver schon das richtige, wenn's 
Kabelgebunden sein soll.
Reiner

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.