Hallo, ich habe mit dem Verständnis der folgenden Erklärungen in der CAN Technologie Probleme. Ist es möglich, dass jemand mir dazu eine ausführlichere Erklärungen wenn möglich mit Bildern liefern kann. Eine weitere Frage, wer liefert auf dem Markt CAN Controller,die Microcontroller ausser die von Motorola unterstützen?? Wie könnten optimal auf einer CAN Busleitung optimal CAN Controller und Microcontroller kommunizieren?? Danke für eure Meinungen und Anregungen. Gruss, Munzur -------------------------------------------------------------- Bitcodierung CAN nutzt eine Non-return-to-zero-Codierung (NRZ). Dabei wird einem Bit genau ein Zustand des Logikpegels zugeordnet, low = 0 und high = 1. Mehrere gleiche Bits hintereinander erscheinen auf dem Bus also als ein entsprechend langerer gleichbleibender Pegel. Dieses ermoglicht gegenuber einem RZ-Code, der in jedem Bit auf Null zuruckgeht, bei gleicher Baudrate die doppelte Datenrate. Da bei CAN kein Takt ubertragen wird, muss auf eine andere Art gewahrleistet werden, dass die Busteilnehmer die Bits korrekt synchronisieren, deshalb wird grundsatzlich nach funf gleichen Bits ein sogenanntes Stopfbit (Stubit) eingefugt. Ein Stopfbit beginnt mit einem Pegelwechsel und halt diesen neuen Pegel fur die Dauer eines Bits. Der CAN-Controller ubernimmt das Einfugen des Stopfbit beim Senden und entfernt es bei einer empfangenen Nachricht automatisch wieder aus dem Datentelegramm. Der Low-Pegel ist auf den CAN-Bus dominant. Wenn auf den Bus gleichzeitig rezessive High-Pegel und dominante Low-Pegel gesendet werden, erscheint auf dem Bus der Low- Pegel. Arbitrierung .. erwahnt geschieht die Arbitrierung verlustfrei anhand des Identiers auf der Grundlage der Dominanz des Low-Pegels. Die Teilnehmer senden den Identier ihrer Nachricht, bis diese sich in einem Bit unterscheiden. Der Teilnehmer, der in diesem Augenblick einen rezessiven High-Pegel sendet, bemerkt, dass das von ihm gesendete Signal nicht dem entspricht, was nun auf dem Bus anliegt. Er beendet den Sendevorgang, bis der andere Teilnehmer das Ubertragen seiner Nachricht abgeschlossen hat. Der Identier ist bei Standard-CAN 11 Bits lang, ermoglicht also 2048 verschiedene Nachrichten. Jeder Identier darf nur einfach verwendet, das heit von nur einem Teilnehmer gesendet, werden. Wenn ein Sender, der sich in der Arbitrierungsphase durchgesetzt hat, am Bus einen Pegel feststellt, den er nicht gesendet hat, erkennt er darin einen Fehler.
"Eine weitere Frage, wer liefert auf dem Markt CAN Controller,die Microcontroller ausser die von Motorola unterstützen??" Die 8051-er gibt es schon sehr sehr lange mit internem CAN (Infineon C505, Philips P89C592, Atmel T89C51CC01 usw.). Aber inzwischen sind auch fast alle anderen MC-Familien mit CAN verfügbar. Als externe CAN Controller werden gerne der SJA1000 (MMIO) und der MCP2515 (SPI) genommen. Peter
Nicht zu vergessen das DSP-Segment, die gibts z.T. auch schon mit CAN. Zum Thema Doku: Lad dir die komplette Spezifikation (von Bosch) runter, da hast du über hundert Seiten und es bleiben keine Fragen offen.
versuche ein Beispiel: Sender 1 Adresse 0000 Sender 2 Adresse 0001 .... Sender 14 Adresse 1101 Sender 10 Adresse 1001 Ruhezustand der Leitung: ein Widerstand legt eine 1 an den Bus Wenn ein Sender sich aufschaltet dann zieht er seine Nullen "durch" Sobald eine Null gesendet wird schaltet ein Transistor gegen Masse durch und die "1" verschwindet. Wenn nun zwei Sender zugleich "1" sen senden wird das gar nicht bemerkt (es ändert sich ja nichts). Wenn nun zwei Sender gleichzeitig senden geht dass solange gut bis Sender 14 Adresse 1101 Sender 10 Adresse 1001 ! Sender 10 eine "Dominante" Null sendet Diese Null zieht den Buss auf 0 Nun kann Sender 14 erkennen dass seine "Eins" nicht am Bus anliegt und beendet die Aktivität. Sender 10 kann ungestört weitermachen. Das heisst, Sender mit niedriger Adresse (Kennung) setzen sich durch, sie haben Vorrang. Kurt
Ich kann mich nur für die Superbeschreibung von euch bedanken!! Schönen Abend noch!! Gruss, Munzur
Hallo @Munzur, das Beispiel ist zum Verständniss mit "einer" Leitung beschrieben. In der Pracis wird ev. der RS485-Bus verwendet. Das Prinzip bleibt gleich, nur die tatsächlichen "Spannungen" sind halt auf die entsprechende "Bus-Norm" angepasst . Beim RS485 sind es Differenzsignale auf einem Adernpaar Kurt
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.