Rx Tx auf einer Ader mit R + D

OP #1094095
Hallo,

ich suche eine Möglichkeit mehrere Controller über eine Leitung 
miteinander zu verbinden. Alle Controller sollen als Master 
kommunizieren dürfen.

Hardware:

MC 1           MC 2           MC 3

Rx  Tx  GND    Rx  Tx  GND    Rx  Tx  GND
 |   |   |      |   |   |      |   |   |
 |  ---  -      |  ---  -      |  ---  -
 |  \ / | |     |  \ / | |     |  \ / | |
 |  --- | |     |  --- | |     |  --- | |
 |   |   -      |   |   -      |   |   -
 |   |   |      |   |   |      |   |   |
 o---o---o      o---o---o      o---o---o
     |              |              |
     |              |              |
 ----o--------------o--------------o----- Daten

Software:

Jeder MC hat eine ID
Wenn MC1 senden möchte an MC3 wird die ID 3 und ein Befehlscode 
gesendet.
  Aufbau:
  Byte 1   Byte 2      Byte 3       Byte 4
  Send ID  Receive ID  Befehlscode  Control / ACK

Der gesendete Befehl wird am eigenen Rx gelesen und verglichen mit dem 
gesendeten Code. Wenn keiner reingepfuscht hat, sollte Rx und Tx gleich 
sein. Ansonsten wird nach einer Zeit nochmal gesendet.
Der Empfänger schickt als Antwort den gleichen Befehlscode zurück, nur 
statt ein Control ein ACK im Byte 4.

Habe leider kein Oszi um die Kommunikation zu überwachen, zu testen. Was 
meint Ihr, kann das funktionieren?

Erfinde ich das Rad neu, oder gibt es das schon?
Nebenbei: Nein, ich kann keine zweite Ader legen! ;-)

Bernhard
Gast
tja, der Ruhezustand von Rx und Tx ist H-Pegel..., zumindest wenn du 
(sinnvollerweise) auf Hardware-Uarts setzt.
Also: Dioden umdrehen, pullup statt pulldown.
Erwarte nicht zuviel von einer solchen Konstruktion. Ohne Treiber wird 
das schon hardwaremässig störungsanfällig, u.U. sogar gefährlich für die 
Eingänge.
Datenrate und Entfernung werden nicht sehr hoch sein.
Software wird aufwändig, neben Störungen musst du mit Kollisionen 
rechnen und damit klar kommen.
Gast
Ich Trottel,

ich habe in jeder Unterverteilung einen MC, und die sind durch ein 
3-adriges Kabel mit einem Netzteil verbunden.

Also habe ich gemeinsamen GND.

MC 1                 MC 2                 MC 3

Rx  Tx  +5V  GND     Rx  Tx  +5V  GND     Rx  Tx  +5V  GND
 |   |   |    |       |   |   |    |       |   |   |    |
 |  ---  -    |       |  ---  -    |       |  ---  -    |
 |  / \ | |   |       |  / \ | |   |       |  / \ | |   |
 |  --- | |   |       |  --- | |   |       |  --- | |   |
 |   |   -    |       |   |   -    |       |   |   -    |
 |   |   |    |       |   |   |    |       |   |   |    |
 o---o---o    |       o---o---o    |       o---o---o    |
     |        |           |        |           |        |
     |        |           |        |           |        |
 ----o--------)-----------o--------)-----------o--------)----- Daten
              |                    |                    |
 -------------o--------------------o--------------------o----- GND

Was würdet Ihr für einen Treiber empfehlen um die Reichweite zu erhöhen?

Bernhard
Hallo,
wenn es eine langsame Übertragung sein darf, hilft vielleicht die gute 
alte Stromschleife weiter (auch als 20-mA-Schnittstelle oder 
TTY-Schnittstelle bezeichnet).
Einfach mal danach suchen, es gibt jede Menge Treffer (muss ja nicht 
gleich mit Potenzialtrennung und allem Komfort sein :-)

Gruß
 DF2DS
Gast
> Ist LIN-Bus nicht nur Single-Master?

Eigentlich ja, aber mir ging es beim Vorschlag nur um die Hardwareseite. 
Man muss bei Multimaster immer Kollisionen per Software vermeiden. Geht 
also mit LIN-Bustreibern genauso gut wie mit jeder anderen Hardware.

Wir setzen LIN-Bustreiber ein und nehmen unser eigenes proprietäres 
Protokoll, da es wesentlich einfacher ist. Wir brauchen den ganzen 
Funktionsumfang nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.