Forum: Mikrocontroller und Digitale Elektronik Kollisionserkennung bei RS485


von AndyW (Gast)


Lesenswert?

Hallo zusammen,

wie realisiere ich bei RS485 die Kollisionserkennung?

Habe das Datenblatt der MAX-Familie studiert und es scheint so, als wenn
es keinen dominanten/rezessiven Pegel wie beim CAN gibt.

Das Prinzip der Kollisionserkennung (Arbitrierung etc.) ist mir bekannt,
mir geht es nur um die Umsetzung speziell bei RS485.

Habe irgendwo im Netz gelesen, daß der Transmitter immer dann
disabled und damit der Ausgang hochohmig wird, wenn der Sender keinen 
dominaten Pegel auf den Bus gibt (ob die 1 oder 0 dominant ist, sei 
jetzt mal dahingestellt)

Für ein paar sachdienliche Bemerkungen wäre ich sehr dankbar!

MFG
Andy

von Sebastian Eckert (Gast)


Lesenswert?

Ganz einfach. Transmitter und Receiver gleichzeitig einschalten 
(deswegen haben die auch separate Enable-Eingänge), und beim Senden 
prüfen, ob die gerade gesendeten Daten genauso wieder im Empfangspuffer 
des UART ankommen. Früher hätte man das eine Hinterbandkontrolle 
genannt. Klappt nur bei Mikros, bei denen Sende- und Empfangsregister 
separate Adressen haben, vermute ich. Wenn zurückgelesenes Byte ungleich 
gesendetes Byte, dann Kollision.

von Rahul D. (rahul)


Lesenswert?

Leider ist der Transmitter des RS485-Bausteins derartig niederohmig, 
dass etwaige Kurzschlüsse, wie sie bei Kollisionen auftreten, nicht 
detektiert werden können, da der Leitungswiderstand grösser als der 
Widerstand des Transmitters ist.
Die Diskussion hatten wir schon vor ein paar (mehr) Tagen.

Andersherum wird ein Schuh draus: Man kann CAN-Transceiver für eine 
RS485-Kommunikation verwenden, da sie etwas anders arbeiten.

von AndyW (Gast)


Lesenswert?

Hallo zusammen,

Danke für die schnellen Antworten!

Bestätigt sich also meine Vermutung, d.h. es gibt bei RS485 keinen 
dominanten Pegel, wenn zwei Transmitter enabled sind und der eine "0" 
und der andere eine "1" sendet?

Was meint Ihr zu dem obigen Punkt Transmitter disablen bzw. gibt es da 
eine Möglichkeit der Kollisionserkennung auf diesem Weg ?


MFG
Andy

von A.K. (Gast)


Lesenswert?

Für RS485 Multimaster heisst das Stichwort Kollisionsvermeidung, nicht 
Kollisionserkennung. Ist aber eher was für Masochisten.

von Rahul D. (rahul)


Lesenswert?

Ich kann mich A.K. nur anschliessen: RS485 ist nur als Multimaster 
nutzbar, wenn meistens Ruhe auf dem Äther herrscht..

von Fritz (Gast)


Lesenswert?

Hallo AndyW,

vielleicht noch eine Ergänzung. Beim Senden ist der Buffer/Treiber zu 
aktivieren und es darf immer nur einer senden. Das Aktivieren kann bei 
einem Umsetzer RS232 auf RS485 mitunter auf drei Arten erfolgen.

1. Durch Ausgabe von Zeichen auf die RS232 wird der Buffer aktiviert. 
Das benötigt einen Mikrocontroller vor dem Treiber. Ein "Pegelumsetzer" 
genügt dabei nicht.

2.oder 3.
Durch setzten der RTS (oder DTR) Leitung vor der Datenübertragung wird 
der Umsetzer aktiviert. Leider ist es dann mit dem Hyperterminal nicht 
mehr möglich zu arbeiten.

   Gruß fritz

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
Noch kein Account? Hier anmelden.