Forum: Mikrocontroller und Digitale Elektronik RS485 vs. CAN - Verständnisprobleme


von Henk (Gast)


Lesenswert?

Hallo,
ich möchte einen "einfachen" BUS aufbauen. Dafür möchte ich direkt aus 
dem UART eines Atmel in entsprechende Bustreiber meine Signale senden. 
Im Netz wird nun oft zur Nutzung von CAN- Transceiver statt RS485 
geraten, angeblich aufgrund der sicheren Pegel im Kollisionsfall und 
weil man das gesendetet Zurücklesen kann.

Nun habe ich mir entsprechende Datenblätter durchgelesen, doch für mich 
scheint der Unterschied hinfällig. Das Zurücklesen sollte mit RS485 auch 
beim einfachen MAX485 funktionieren und die Sache mit den rezessiven 
Pegeln und der Arbitrierung bei CAN- Transceivern scheint nur bei 
intelligenten Buscontrollern zu funktionieren durch Auslesen der 
Spannungsdifferenzen.



Was fehlt mir in meiner Überlegung?

Das Problem, mit dem ich wohl zu kämpfen haben werde, wird die vmtl 
nicht zu verhindernde gemischte Verkabelungsstruktur. Dies soll bei 
niedrigen Bitraten und RS485 angeblich kaum Probleme machen, bei CAN 
jedoch zum Weltuntergang führen.

von Winnie (Gast)


Lesenswert?

Der Unterschied ist, dass es bei CAN-Treibern prinzipiell nicht möglich 
ist, das verschiedene Transceiver sozusagen gegeneinander arbeiten. 
Rezessiv: keine nennenswerte Pegeldifferenz, dominant ca. 2V 
Pegeldifferenz.
Und wenn nun einer meint, er müsse einen dominanten Pegel auf die 
Leitung schmeissen, dann darf er das tun und alle Empfänger bekommen 
auch diesen dominanten Pegel.
Bei RS485 gibts die (aktiven) Zustände: A>B bzw B>A. Und dann kann es 
passieren, dass ein Sender A>B will, ein anderer aber B>A.  Jetzt ist 
der Buszustand undefiniert. Man muss also höllisch aufpassen, dass 
garantiert nur ein Sender aktiv ist. Und genau das macht ein 
Multimastersystem mit RS485 so kompliziert.
Es haben schon viele versucht...
Einige haben es hinbekommen, die meisten nicht. Prinzipiell geht es, 
einfacher ist es CAN-Treibern (da man dann immer den tatsächlichen 
Buszustand lesen kann), ganz einfach mit CAN-Controller.

von Weingut P. (weinbauer)


Lesenswert?

man muss trennen, den Schnittstellenbusstein und den Controller.
Im Prinzip sind beide Busse elektrisch differentiell, also recht 
störungssicher, die RS485 Schnittstellenbausteine senden und empfangen 
und müssen über nen Steuerpin in der Flussrichtung aktiv umgeschaltet 
werden (z.B. Max485) Beim CAN kann die Umschaltung unterbleiben (z.B. 
PCA82C250), aber, bei den muss man dann mit nem Echo leben wenn man sie 
einfach an nen µC per UART hängt.

Beim RS485 ist das Protokoll und die Kollisionserkennung die Sache des 
Programmierers, was nicht so ganz trivial ist, beim CAN haut man die 
Empfängeradresse und die Daten in ein Register, der Rest macht der 
Controller in Hardware.

Bei Singlemaster ist RS485 nochimmer aus meiner Sicht gut, bei 
Multimaster würd ich mir 485 nicht mehr antun ... hab die Kur schon 
hinter mir

von STK500-Besitzer (Gast)


Lesenswert?

RS485-Transceiver bekommen aufgrund ihrer Ausgangsschaltung teilweise 
gar nicht mit, dass eine Kollision auftritt - CAN-Transceiver schon...

Fhutdhb Ufzjjuz schrieb:
> Bei Singlemaster ist RS485 nochimmer aus meiner Sicht gut, bei
> Multimaster würd ich mir 485 nicht mehr antun ... hab die Kur schon
> hinter mir

Kommt ganz auf die Übertragungsgeschwindigkeit an.
Wenn eine Übertragung sehr kurz und die Pause dazwischen sehr lang ist, 
dann ist auch ein Multimaster kein Problem.

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.