Forum: Mikrocontroller und Digitale Elektronik CAN Transceiver nötig?


von Student09 (Gast)


Lesenswert?

Hallo ich habe 2 Starterkits von TI und möchte mich im Rahmen einer 
Studienarbeit mit CAN beschäftigen.Meine Frage ist brauch ich umbedingt 
einen CAN Transceiver den ich zwischen beide schalte?Oder kann ich auch 
so eine Kommunikation aufbauen, da beide ja genau nebeneinander stehen?

von lalala (Gast)


Lesenswert?

Man kann beide auch direkt verbinden, hat jedenfalls bei meinen C167 
funktioniert

von H.Joachim S. (crazyhorse)


Lesenswert?

Glaub ich nicht..., der Sender erwartet u.a. sein eigenes Sendesignal an 
Rx.
Was funktioniert:
-Alle Rx zusammen, pullup nach Vcc
-alle Tx über eine je Diode an die Busleitung.

von Lukas D. (lukdi)


Lesenswert?

Hallo,
ich bin in einer ähnlichen Situation. Ich weiß das es auch ohne geht! So 
kann man ihn bei On-Board-Komunikation auf jeden Fall weg lassen! Was 
mir jedoch nicht bekannt ist, ist ab wann ein Transceiver verwendet 
werden sollte?! Also ab welcher Leitungslänge? Hast hierzu jemand Infos? 
Wäre stark!

Grüße,

Lukas

von H.Joachim S. (crazyhorse)


Lesenswert?

Würde mich mal interessieren, wie eine Direktverbindung funktionieren 
sollte.

von Soul E. (Gast)


Angehängte Dateien:

Lesenswert?

H.Joachim S. schrieb:

> Würde mich mal interessieren, wie eine Direktverbindung funktionieren
> sollte.

1) Alle RxD verbinden
2) von RxD einen 1k-Widerstand nach VDD schalten
3) an jedem Teilnehmer TxD über eine Diode mit RxD verbinden. Kathode zu 
TxD, Anode zu RxD (so dass TxD den Bus nach low ziehen kann).

Maximale Leitungslänge mit diesem Aufbau: ca 50 cm.

von H.Joachim S. (crazyhorse)


Lesenswert?

Das stand schon oben :-)
Direktverbindung heisst für mich: ohne weitere Bauteile.

von Ulf L. (ulf_l)


Lesenswert?

H.Joachim S. schrieb:
> Direktverbindung heisst für mich: ohne weitere Bauteile.

Und genau das geht nicht.

von Karls Q. (karlsquell)


Lesenswert?

Vielleicht steht ja hier in der appnote von Siemens was drin:

https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf

von Christopher J. (christopher_j23)


Lesenswert?

Ulf L. schrieb:
> H.Joachim S. schrieb:
>> Direktverbindung heisst für mich: ohne weitere Bauteile.
>
> Und genau das geht nicht.

Warum sollte es für zwei Geräte nicht gehen?

von Tobias K. (kurzschluss81)


Lesenswert?

Ganz sauber ist es generell ohne Transceiver nicht. Der CAN Hört beim 
Senden auch die Empfangsleitung ab um zu lauschen ob es eine Kollision 
gibt. Beim CAN Wird auf dem Bus das Differenz Signal aus der Summe von 
RX und TX Signal übertragen. Und  genau das bekommt ihr ohne Transceiver 
nicht hin. Egal ob nur zwei oder mehr Teilnehmer angeschlossen sind.
Schaut mal nach RS485 dort das ist die selbe Physikalische übertragung.

von Soul E. (Gast)


Lesenswert?

Christopher J. schrieb:

> Warum sollte es für zwei Geräte nicht gehen?

Bei TTL oder NMOS geht es, bei CMOS nicht. Erstere treiben ihre Ausgänge 
per Transistor nach Masse und per Widerstand (bzw Stromquelle nach 
Plus), letzere haben Gegentakt-Endstufen.

Mit NMOS-Ausgängen hängst Du alle vier Leitungen (2x RxD, 2x TxD) 
zusammen, und sobald einer einen Low-Pegel ausgibt, ist halt low. Diesen 
Betriebszustand wird Dir kein Hersteller freigeben, in der Praxis 
funktioniert es aber.

Bei CMOS-Ausgängen würde es einen Kurzschluß geben zwischen dem 
Controller, dessen TxD den oberen Transistor eingeschaltet hat (für 
High) und dem der Low ausgibt. Daher muss man sich hier die open 
collector (bzw open drain)-Konfiguration mit Dioden und Pullup basteln.



RxD und TxD kreuzweise verdrahten (wie bei UART) geht in der Tat nicht, 
da der Controller sich beim Senden zuhören muss.

von Gerd E. (robberknight)


Lesenswert?

Tobias K. schrieb:
> Schaut mal nach RS485 dort das ist die selbe Physikalische übertragung.

Nein. RS485 hat Push-Pull-Ausgangsstufen um das Differenzsignal zu 
übertragen. Wenn 2 Teilnehmer gleichzeitig senden, gibt es einen 
Kurzschluss.

Bei CAN wird nur in eine Richtung aktiv getrieben. Daher gibt es bei CAN 
keinen Kurzschluss wenn 2 Teilnehmer gleichzeitig senden. Der 
Teilnehmer, der das rezessive Signal senden möchte, erkennt, daß auf dem 
Bus das dominante anliegt und schaltet sich auf stumm bis die Nachricht 
mit der höheren Priorität durch ist.

von Christopher J. (christopher_j23)


Lesenswert?

soul e. schrieb:
> RxD und TxD kreuzweise verdrahten (wie bei UART) geht in der Tat nicht,
> da der Controller sich beim Senden zuhören muss.

Da hatte ich einen Denkfehler, weil ich erst dachte, das genau das ginge 
aber geht natürlich nicht.

soul e. schrieb:
> Mit NMOS-Ausgängen hängst Du alle vier Leitungen (2x RxD, 2x TxD)
> zusammen, und sobald einer einen Low-Pegel ausgibt, ist halt low. Diesen
> Betriebszustand wird Dir kein Hersteller freigeben, in der Praxis
> funktioniert es aber.

Das wiederum entspricht aber doch prinzipiell genau der Diodenveroderung 
aus der Appnote von Siemens, die Karls Quell gepostet hatte oder liege 
ich da falsch? Das sollte dann doch auch möglich sein, wenn der CAN-TX 
als Open-Drain Ausgang mit internem Pullup konfiguriert ist und der 
CAN-RX als Eingang und einfach alles an eine Strippe gehängt wird. Das 
wäre dann gewissermaßen die Siemens-Appnote mit "internen Bauteilen" und 
sollte dann ja sogar auch mit mehr als zwei Teilnehmern funktionieren.

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.