Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

CAN-BUS

CAN ist ein 1983 von Robert Bosch GmbH entwickeltes Bussystem, das zunächst in der Automobilindustrie für die Onboardkommunikation eingesetzt wurde. In den folgenden Jahren fand es jedoch auch vielseitigen Einsatz in der Industrie. Aufgrund seiner Echtzeitfähigkeit, seiner ausgeprägten Fehlererkennungsmechanismen und Einfachheit kommt es Heutsotage in den unterschiedlichsten Bereichen zum Einsatz.

Man unterscheidet zwischen zwei Spezifikationen:

  1. Can Spezifizierung 2.0A Dies ist die "Basisspezifikation" 11Bit ID
  2. Can Spezifizierung 2.0B Erweiterung der ID auf 29Bit

Übertragung

Beim CAN-Bus handelt es sich um ein multimasterfähiges Bussystem, das bis 1MBit/s spezifiziert ist. Allerdings ist hierbei zu beachten, dass die maximale Segmentlänge mit der Erhöhung der Baudrate sinkt.

Ausdehnung / Baudrate / Kabel

Bei einer Oszillatorfrequenz von 16MHz und einer Einfachabtastung(siehe Bittiming) kann man nach folgender Tabelle gehen: (:table border=1 width=80%:) (:cell style='padding:5px;':) Datenrate (:cell style='padding:5px;':) Bitzeit (:cell style='padding:5px;':) Quanta/Bit (:cell style='padding:5px;':) Time Quantum (TQ) (:cell style='padding:5px;':) SP Location (:cell style='padding:5px;':) Länge (:cellnr style='padding:5px;':) 1Mbit/s (:cell style='padding:5px;':) 1µs (:cell style='padding:5px;':) 8 (:cell style='padding:5px;':) 125ns (:cell style='padding:5px;':) 6TQ (:cell style='padding:5px;':) 25m (:cellnr style='padding:5px;':) 800kbit/s (:cell style='padding:5px;':) 1,25µs (:cell style='padding:5px;':) 10 (:cell style='padding:5px;':) 125ns (:cell style='padding:5px;':) 8TQ (:cell style='padding:5px;':) 50m (:cellnr style='padding:5px;':) 500kbit/s (:cell style='padding:5px;':) 2µs (:cell style='padding:5px;':) 16 (:cell style='padding:5px;':) 125ns (:cell style='padding:5px;':) 14TQ (:cell style='padding:5px;':) 100m (:cellnr style='padding:5px;':) 250kbit/s (:cell style='padding:5px;':) 4µs (:cell style='padding:5px;':) 16 (:cell style='padding:5px;':) 250ns (:cell style='padding:5px;':) 14TQ (:cell style='padding:5px;':) 250m (:cellnr style='padding:5px;':) 125kbit/s (:cell style='padding:5px;':) 8µs (:cell style='padding:5px;':) 16 (:cell style='padding:5px;':) 500ns (:cell style='padding:5px;':) 14TQ (:cell style='padding:5px;':) 500m (:cellnr style='padding:5px;':) 50kbit/s (:cell style='padding:5px;':) 20µs (:cell style='padding:5px;':) 16 (:cell style='padding:5px;':) 1,25µs (:cell style='padding:5px;':) 14TQ (:cell style='padding:5px;':) 1000m (:cellnr style='padding:5px;':) 20kbit/s (:cell style='padding:5px;':) 50µs (:cell style='padding:5px;':) 16 (:cell style='padding:5px;':) 3,125µs (:cell style='padding:5px;':) 14TQ (:cell style='padding:5px;':) 2500m (:cellnr style='padding:5px;':) 10kbit/s (:cell style='padding:5px;':) 100µs (:cell style='padding:5px;':) 16 (:cell style='padding:5px;':) 6,25µs (:cell style='padding:5px;':) 14TQ (:cell style='padding:5px;':) 5000m (:tableend:)

Übertragen werden die Signale über 2 Kupferleitungen, die jeweils mit Abschlusswiderständen(124Ohm), um Reflexionen zu vermeiden, versehen sind.

Bittiming

Zur Berechnung des Samplepoints, dies ist der Zeitpunkt, zudem auf die Leitung "gesehen" werden soll, welchen Zustand diese hat, wird in der Regel nur die Busgeschwindigkeit benötigt. Aus dieser ermittelt der Controller vier Werte:

  • Synchronisationssegment:

->Segment, das zum Synchronisieren des Nodes benötigt wird

  • Propagationssegment:

->Segment, das die Zeit darstellt, die das Signal zur Ausbreitung im Medium benäötigt

  • Phasensegment 1
  • Phasensegment 2

Zwischen Phasensegment 1 und 2 liegt der Samplepoint.

Bit Stuffing

Da beim CAN auch während der Datenübertragung synchronisiert wird, wird nach fünf Bits gleicher Polarität in den Datenfluss ein Bit eingebaut, welches den Pegel ändert. Diese Bits nennt man Stuffbits. Der Empfänger destufft die Daten wieder, sodass die Daten für den Empfängercontroller genauso aussehen, wie für den Sender. Die maximale Anzahl der in ein Telegramm eingefügten Stuffbits errechnet sich nach folgender Formel:

 max'_stuff_'=(34 + 8 Dlc -1)/4 

Protokoll

Arbitrierungsprozess

Fehlererkennung

  • Bitfehler
  • CRC - Fehler
  • Ack - Fehler
  • Format - Fehler
  • Stuffbit - Fehler


CANopen

ToDo:

  • Protokoll
  • Arbitrierungsprozess
  • Fehlererkennung
  • CANopen


Kategorie:Grundlagen Kategorie:Microcontroller


LiFePO4 Speicher Test