www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Usart im Multimaster Bus-Betrieb


Autor: Axel Ro. (axelroro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forumsteilnehmer,
ich vermute schon, das wird ein paar aufgerollte Fussnägel verursachen 
:-)

Egal, ich stell die Frage mal. Direkt dazu gefunden habe ich jetzt 
nichts per Suche.

Im Vorfeld möchte ich bitten, einmal die bekannten Lösungen ala RS485 
und I2C ausser acht zu lassen. Betrachtet das einfach bitte einmal als 
Machbarkeitsüberlegung.

Folgendes Szenario:
- 8-10 uC's (Atmega 16, 32, 644p) möchten miteinander in einem 19 
Zoll-Gehäuse reden (kurze Wege)
- Kontext ist Hausautomatisierung, d.h. Geschwindigkeit ist kein Thema, 
auch die Häufigkeit hält sich damit sehr in Grenzen. Sagen wir mal 
9600Bd.
- TX und RX aller uC's hängen einfach parallel an EINER einzigen Leitung
- Zwischen TX Pin und der EINEN Leitung ein 1k (o.ä.) Ohm Widerstand für 
den Fall einer Kollision (welche sehr unwahrscheinlich sein soll).
- PIN TX wird auf hochohmig geschaltet, wenn die uC's nichts zu sagen 
haben. RX soll aber schon noch zuhören (hmm, geht das? Im Bitbang Falle 
sicher, aber auch bei Benutzung USART .. muss mal schauen).
- Kollision wird per Protokoll abgefangen.
- Multimaster Betrieb, d.h. jeder uC mag mal was von sich aus sagen 
wollen.

Müsste doch gehen in diesem Szenario, oder mache ich hier irgendwo den 
entscheidenden Denkfehler? Wie gesagt, klar gibts bessere Lösungen - 
aber usart ist eben so schön einfach.

Bitte um Euere Kommentare (bitte nett sein) !

Grüsse
Axel

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Multimaster schreit nach I2C oder CAN, die sind dafür gemacht.

Aber wenn Du Dir unbedingt am Protokoll die Zähne ausbeißen willst, 
bitte. Es sind ja dann Deine grauen Haare.


Für UART-TXD parallel schalten nimm besser wired AND (Dioden + Pullup).
Dann hast Du einen dominanten Pegel und kannst eine Arbitrierung 
vornehmen.

Ich hab sowas schonmal gesehen, da werden dann die Adreßbits als ganze 
Bytes übertragen (1 = 0xFF, 0 = 0x00) und der unterliegende Master 
bricht nach dem ersten falschen Adreßbit ab.


Peter

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

klar geht das, je nach Umgebung direkt angeschlossen oder auch mit 
Leitungstreiber für was auch immer, in dem Fall brauchst du halt noch 
einen Pin fürs Tristaten.

Die meisten seriellen Schnittstellen sind allerdings bloss UARTs, 
besonders die im PC. Ich würde mich daher mit synchronen Protokollen 
garnicht erst abgeben, die machen die Sache bloss kompliziert - 
angefangen damit, dass du zum Mithören einen entsprechenden Analysator 
brauchst, für asynchron reicht Hyperterminal.

Gruss Reinhard

Autor: Tauwetter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>... in dem Fall brauchst du halt noch einen Pin fürs Tristaten.

Nicht einmal das! AVRs können den TX-Ausgang intern abschalten.
Schöner sind allerdings CAN-Bus Treiberbausteine zur Entkopplung, die 
auch nicht deaktiviert werden müßten und kollisionsfest sind.

µC-Pins dirket zu verbinden, würde ich nur auf einer Leiterplatte ohne 
Steckkontakte machen: Stichwort ESD.

Autor: Axel Ro. (axelroro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter - hat sich erledigt, "wire-and" gefunden und verstanden.

Danke und Gruss an alle.

Axel

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.