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