Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage CAN


von markus (Gast)


Lesenswert?

Hallo zusammen,

fange gerade damit an mich mit CAN zu beschäftigen.
Habe den Atmel AT90CAN128 als Controller. Nun steht hier in der 
Artikelsammlung, man soll auch gleich einen CAN Treiber mit bestellen.
Braucht man immer einen CAN Treiber um mit einem µC einen CAN Bus 
aufzubauen?
Wieso hat der µC dann ein CAN Interface?
Gibt es Controller die ohne CAN Treiber auskommen?

Verstehe gerade die Zusammenhänge nicht.
Kann mir das jemand erklären?
Vielen Dank!

Gruß
markus

von Jeffrey L. (the_dude)


Lesenswert?

der µC hat den CAN-Controller der das Frame bildet, ausserhalb des µC 
benötigst Du noch einen Treiber weil der µC kein zig mA treiben kann!

...aus dem µC kommen im idealfall 5..10mA


Und ja, du benötigst IMMER einen ext. CAN-Treiber (z.B. den NXP 82C251)


Ausserdem macht der Treiber noch die Busarbitration, auch das kann der 
µC nicht!

Geschweige denn dass ein µC Kurzschlußfest oder verpolsicher wäre.
Ich gehe davon aus dass der Atmel an den Pins Rx und Tx liefert, CAN 
benützt aber differenzpegel, auch das muss vom CAN-Treiber umgesetzt 
werden!

Du siehst also, der CAN-Treiber hat mehr als genug zu tun! ;-)

von (prx) A. K. (prx)


Lesenswert?

Jeffrey Lebowski schrieb:

> Und ja, du benötigst IMMER einen ext. CAN-Treiber (z.B. den NXP 82C251)

Für sehr kurze Strecken bei moderater Geschwindigkeit tut es auch eine 
Diode an Stelle des Treibers. Wenn alle Nodes das so halten.

> Ausserdem macht der Treiber noch die Busarbitration, auch das kann der
> µC nicht!

Der Treiber treibt. Er tut es so, dass der CAN-Controller arbitrieren 
kann, aber man kann nicht sagen, dass der Treiber arbitriert.

von Jens D. (jens) Benutzerseite


Lesenswert?

Jeffrey Lebowski schrieb:
> Und ja, du benötigst IMMER einen ext. CAN-Treiber (z.B. den NXP 82C251)

Das würde ich nicht Unterschreiben.
Es gibt schon Controller, die einen CAN Treiber beinhalten.

Meist zwar für recht Spezielle Anwendungen, aber schon selbst gesehen.

An sonsten denke ich, dass der Grund ehr die Flexibilität ist und nicht 
dass es nicht machbar ist.

Jens

von (prx) A. K. (prx)


Lesenswert?

Jens D. schrieb:

> An sonsten denke ich, dass der Grund ehr die Flexibilität ist und nicht
> dass es nicht machbar ist.

Es sind hässlich hohe Ströme und Spannungen, die auf dem CAN Bus 
auftreten können. Da wird u.U. erwartet, Spannungen von +/-42V verdauen 
und bei +/-12V noch Differenzen erkennen zu können. Kann durchaus sein, 
dass sich dies mit der in Controllern verwendeten Herstellungstechnik 
nicht allzu gut verträgt.

Ausserden ganz praktisch: Ein 8-Pin SO8- oder gar DIL-Transceiver ist 
leichter ausgewechselt als ein 100-Pin LQFP-Controller. Denn wenn's den 
Bus mal erwischt, dann ist zuerst der Transceiver dran.

von Mathi (Gast)


Lesenswert?

Jens D. schrieb:
> An sonsten denke ich, dass der Grund ehr die Flexibilität ist und nicht
> dass es nicht machbar ist.

Wichtig ist dort vor allem die Kostenfrage. Der CAN-Phy muss ja in einem 
Hochvolt-Prozess gefertigt werden, damit er die elektrischen 
Spezifikationen nach ISO 11898 einhalten kann. Es macht jedoch 
gewöhnlich keinen Sinn den kompletten Mikrocontroller in einer 
Hochvolt-Technnologie herzustellen. (-> Kosten)

von Volker Z. (vza)


Lesenswert?

Klare Abgrenzung:

- Der AT90CAN128 ist ein Micro-Controller.

- Er enhält einen CAN-Controller. Diese baut die CAN-Frames zusammen, 
kümmert sich um die Erzeugung der CRC, und dem BitStuffing, etc. Er 
besitzt (meist) ein digitalse Interface (Port-Pins).

- Der CAN-Treiber setzt die digitalen Signale vom CAN-Controller in 
analoge Signale des Busses um. Er sorgt für dir richtigen elektrischen 
Pegel beim Senden und erkennt die beiden Zustäne (dominant und rezesiv) 
beim Empfang. Des weiteren bietet er Schutz gegen Überspannung und 
unterdrückt Störungen.

Es giebt auch nicht den CAN-Bus. hier eine (unvollständige) 
Aufzählung:
High-Speed-Bus (meist verwendet), Fault-tolerant , Single Wire, LWL-Bus.

Ich hoffe diese Klassifizierung bringt etwas Licht ins Dunkle.

von Rolf Magnus (Gast)


Lesenswert?

markus schrieb:
> Wieso hat der µC dann ein CAN Interface?

Vergleichbare Frage: Wieso hat der µC einen UART, wenn man doch einen 
Treiber wie den max232 braucht, um RS232-Pegel zu bekommen?

von markus (Gast)


Lesenswert?

vielen dank für euere antworten!
jetzt weiß ich bescheid...

von Thomas (kosmos)


Lesenswert?

ich würde jetzt nicht sagen das der Treiber das ganze ins analoge 
wandelt.

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.