www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage CAN


Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jeffrey Lebowski (the_dude)
Datum:

Bewertung
0 lesenswert
nicht 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! ;-)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank für euere antworten!
jetzt weiß ich bescheid...

Autor: Thomas O. (kosmos)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.