CAN BUS Projektseminar Grundlagen zum CAN BUS Hinweise zum Projektseminar
Grundlagen CAN Bus
Hardwareaufbau 2-Draht Bus CAN_LOW, CAN_HIGH, CAN_GND CAN_LOW Komplementärsignal zu CAN_HIGH Lowspeed / Highspeed Bus max. Länge des Bus abhängig von der Übertragungsrate (1MBit 40m, 256kBit 500m) max. Anzahl der Teilnehmer je nach Transceiver 32, 64 oder 110 Multi-Master Betrieb
Übertragungsverfahren CSMA/CA Carrier Sense Multiple Access / Collision Avoidance Kollisionsvermeidung durch Bit-Arbitrierung CRC Integritätsprüfung bit stuffing
Frame - Typen Daten Frame Übertragung von Daten, bis zu 64 bit/frame Remote Frame Anforderung von Daten Error Frame Wird gesendet, wenn von einem Teilnehmer ein Fehler erkannt wird, alle anderen Teilnehmer verwerfen dann diesen Frame Overload Frame
Telegrammaufbau Daten Frame
Telegrammaufbau Identifier kennzeichnet die Nachricht 2 verschiedene Typen möglich standard Identifier (11 bit) extended Identifier (29 bit) ein Teilnehmer kann Nachrichten mit verschiedenen Identifiern senden und empfangen Für jeden Identifer sollte es nur einen Sender geben
Telegrammaufbau Remote Transmission Request (RTR): Unterscheidung zwischen Daten (0) und Remote (1) Frame Datenlängenfeld Anzahl der zu übertragenden Bytes (0-8) (Datenframe) bzw. angeforderten Bytes (Remoteframe) Datenfeld CRC Prüfsumme Prüfung auf Übertragungsfehler Bestätigungs-Slot Setzt ein Empfänger auf 0 bei Empfang der Nachricht
Bus-Arbitrierung 0 Bits auf dem Bus sind dominant sendet ein Teilnehmer eine 0 und ein anderer gleichzeitig eine 1, so wird eine 0 empfangen Jeder Teilnehmer empfängt gleichzeitig, während er sendet Empfängt ein Teilnehmer eine andere Bitfolge, als er gesendet hat, wird das Senden abgebrochen und es später neu versucht => niedrigster Identifier hat höchste Priorität
Bus Arbitrierung Teilnehmer 1: Identifier 345h Teilnehmer 2: Identifier 34Eh T1 : 0 1 1 0 1 0 0 0 1 0 1 T2 : 0 1 1 0 1 0 0 1 1 1 0 Bus: 0 1 1 0 1 0 0 0 1 0 1 Teilnehmer 1 erhält den Bus Teilnehmer 2 bricht das Senden beim 8. Bit ab, da er eine 0 empfängt, aber eine 1 gesendet hat
Controllertypen Basic CAN 2.0A 11bit Identifier, Sende- / Empfangspuffer Basic CAN 2.0B 11bit und 29 bit Identifier, Sende- / Empfangspuffer Full CAN 2.0A 11bit Identifier, separate Sende- / Empfangspuffer für eine begrenzte Anzahl von Objekten Full CAN 2.0B 11bit und 29 bit Identifier, separate Sende- / Empfangspuffer für eine begrenzte Anzahl von Objekten
Projektseminar
Anmeldung, Anleitungen Übersicht und Anleitungen http://www.tu-ilmenau.de/ra/i/r-stu/r-pra/r-p-rnp/ Einschreibung https://praktikum.informatik.tu-ilmenau.de/login Login mit Uni-Account Ergänzende Informationen (auch aus den Vorjahren) https://learn.theoinf.tu-ilmenau.de
Anleitung / Dokumente Praktikumsanleitung Kurzbeschreibung der Hardware Beschreibung der Entwicklungsumgebung Aufgabenstellungen Beschreibung des CAN-Interfaces Englische Originaldokumentation zum CAN-Interface des C164 Wichtig: Initialisierung (PDF S. 30), Diagramme (PDF S. 22-25), bitweise Registerbelegungen Unwichtig im Projektseminar: Berechnung Bit Timing (vorgegeben), Interrupts, Extended Identifier (nicht verwendet) Praktikumsanleitung und CAN-Interface Beschreibung bitte zur Vorbereitung des Projektseminars lesen
Berichte Bachelor-Studiengänge Informatik / Ingenieurinformatik: obligatorisch Bitte nach dem Termin handschriftlich oder bis 14.07.2017 per E-Mail senden. Studiengang FZT: Klausurbonus Bitte Rückseite des (ausgefüllten) Vorbereitungsblattes (letzte Seite der Anleitung) benutzen und nach dem Termin abgeben.
CAN Experimentalsystem Infineon C164CI Prozessor integrierter Full CAN 2.0B Controller Peripherie Eingabe 4x8 Bit DIP-Schalter 2x8 Bit Schalter 8bit Tasten Ausgabe 8 7-Segment Anzeigen
Versuchsanordnung
Prozessormodul nanomodul - 164 Infineon C164-CI Prozessor 256 kbyte Flash 256 kbyte SRAM RS232 Schnittstelle CAN Schnittstelle Echtzeituhr
CAN Controller Viele Funktionen unabhängig vom Hauptprozessor Kommunikation über spezielle Register Full CAN 2.0B 15 Message-Objekte 11 oder 29 bit Identifier
CAN Controller - Register Global Steuer- und Statusregister Baudrate Maske Interrupts Pro Message-Objekt Steuer- und Statusregister Identifier Typ (Senden/ Empfangen; 11 / 29 bit Identifier) Datenlänge Daten
Filterfunktionen des CAN-Controllers Der CAN-Controller enthält pro Nachrichtenobjekt Filter für Nachrichten, welcher bestimmen, welche Nachrichten verarbeitet werden sollen Dieser bestehen jeweils aus eine einer Maske (global) und einem Identifier (pro Objekt) An den Bitpositionen, in welchen in der Maske eine 1 steht, muss eine eingegangene Nachricht mit dem gespeicherten Identifier übereinstimmen, damit diese verarbeitet wird Maske: 1 1 1 1 1 1 1 1 0 0 0 Identifier: 1 1 0 0 1 1 0 1 0 1 1 Nachricht 1: 1 1 0 0 1 1 0 1 1 1 0 Nachricht wird verarbeitet Nachricht 2: 1 1 0 0 1 1 0 1 1 0 0 Nachricht wird verarbeitet Nachricht 3: 1 1 0 0 1 1 0 0 1 0 0 Nachricht wird nicht verarbeitet
Message-Objekte Senden Gespeicherte Daten werden auf Anforderung (Remote Frame mit passendem Identifier) automatisch gesendet Programmgesteuertes Senden möglich Empfangen Eingehende Datenframes mit passendem Identifier werden gespeichert Speicher für 1 Datenframe pro Message-Objekt, ältere werden überschrieben Programmgesteuertes Senden von Remote-Frames möglich, um Daten anzufordern Ablauf siehe Diagramme in der Beschreibung des CAN-Interface
Programmierumgebung TASKING EDE C Compiler Assembler Linker / Locator Cross View Pro Debugger
Ablauf Programm auf dem PC eingeben und übersetzen Debugger überträgt das Programm auf den Zielrechner und führt es dort aus Im Debugger ist das Auslesen von Speicherinhalten und Registern des Zielrechners möglich, ebenso das Unterbrechen und schrittweise Abarbeiten des Programms zur Fehlersuche
Vorgegebener Quelltext Enthält alle notwendigen Definitionen für den Zugriff auf Peripherie und CAN Enthält leere Funktionsrümpfe für die einzelnen Teilaufgaben Im Kommentar ist mit @use angegeben, welche bereits in den vorhergehenden Aufgaben definierten Funktionen benutzt werden sollen Enthält in der main.c für jede Teilaufgabe von Aufgabe 1 ein Testprogramm
Berechnung der Registerwerte Länge der Daten (DLC): 6 = 0110 Richtung (DIR): Senden: 1 Extended Identifier (XTD): Standard: 0 = 68h
Fragen?