Übersicht zu CAN und LIN

NI MAX

Übersicht zu CAN und LIN

In diesem Abschnitt werden der CAN- und der LIN-Bus erläutert.

CAN-Übersicht

In den letzten Jahrzehnten hat das Bedürfnis nach Verbesserungen in der Automobiltechnologie zu einer erhöhten Verwendung von elektronischen Steuersystemen geführt, beispielsweise für Funktionen wie Motorsteuerung, Antiblockiersysteme und verteilerlose Zündsysteme. Bei herkömmlichen Verkabelungen werden die Daten auf fest zugeordneten Signalleitungen ausgetauscht. Da die Komplexität und die Anzahl der Geräte zugenommen haben, ist die Verwendung fest zugeordneter Signalleitungen zunehmend schwieriger und teurer geworden. Um die Begrenzung der konventionellen Fahrzeugverkabelung zu überwinden, hat die Firma Bosch Mitte der Achtziger Jahre das Controller Area Network (CAN) entwickelt. Bei CAN sind die Geräte (Controller, Sensoren und Stellglieder) über einen gemeinsamen seriellen Bus verbunden.

Aufgrund der steigenden Verwendung von CAN in der Automobilindustrie wurde CAN international als ISO 11898 standardisiert.

CAN-Daten-Frame

Das wesentliche Element des Datentransfers in einem CAN-Netzwerk ist der Daten-Frame. Das folgende Bild zeigt eine vereinfachte Darstellung des CAN-Daten-Frames.

Wenn mehrere CAN-Geräte gleichzeitig Frames übertragen, wird der Datenverkehr anhand der Frame-Kennungen (ID) reguliert. Der Frame mit der ID höchster Priorität wird sofort übertragen und die Frames mit IDs niedrigerer Priorität versuchen es danach sofort erneut. Nach dem CAN-Standard ISO 11898 gibt es zwei ID-Formate: das Standardformat, bestehend aus 11 Bit, und das erweiterte Format, bestehend aus 29 Bit.

Nach der ID folgt ein Code zur Angabe der Datenbyte-Anzahl im Frame. Die Daten können 0 bis 8 Byte groß sein. Die Bedeutung der Datenbytes richtet sich nach der ID.

CAN-Remote-Frame

Dem CAN-Standard zufolge gibt es Daten- und Remote-Frames. Ein Remote-Frame hat nur eine ID, aber keine Datenbytes. Durch Übertragen eines Remote-Frames fordert ein CAN-Gerät ein anderes Gerät auf, den zur ID gehörigen Daten-Frame zu übermitteln. Durch Senden von Remote-Frames können Sie also nach Daten pollen.

Die vorhergehenden Informationen stellen nur eine vereinfachte Beschreibung von CAN-Frames dar. Das CAN-Frame-Format enthält noch eine Vielzahl anderer Elemente, beispielsweise zur Fehlerkontrolle oder Empfangsbestätigung. Detailliertere Informationen zum ISO-Standard 11898 finden Sie in der NI-CAN-Hilfe unter Zusammenfassung des CAN-Standards.

LIN-Übersicht

Ein LIN (Local Interconnect Network) funktioniert nach dem Master/Slave-Prinzip. Das heißt, es gibt ein Master- und ein oder mehrere Slave-Geräte. Nachfolgend ist ein LIN-Nachrichten-Frame abgebildet.

LIN-Nachrichten-Frame

Der Nachrichten-Header besteht aus einem Break, während dessen der Beginn des Frames ermittelt wird, einem Sync-Feld zur Taktsynchronisierung des Slave-Knotens und einer Kennung. Die Kennung (ID) besteht aus einer 6 Bit großen Nachrichtenkennung und einem 2 Bit großen Paritätsfeld. Mit der Kennung wird eine bestimmte Nachrichtenadresse angezeigt, jedoch nicht das Ziel der Nachricht. Nachdem ein Slave-Gerät die Nachricht empfangen und ausgewertet hat, antwortet es darauf. Die Rückantwort besteht aus 1 bis 8 Datenbytes und einer 8-Bit-Prüfsumme.

Die Abfolge der Nachrichten-Frames wird durch das Master-Gerät gesteuert und unterliegt einem Zeitplan. Der Zeitplan kann bei Bedarf geändert werden.

Die vorhergehenden Informationen stellen nur eine vereinfachte Beschreibung von CAN-Frames dar. Detailliertere Informationen zum LIN-Nachrichten-Frame und den LIN-Spezifikationen finden Sie in der NI-CAN-Hilfe unter Zusammenfassung des LIN-Standards.

Übersicht zur NI-CAN-Software

Die NI-CAN-Software umfasst ein vollständiges Application Programming Interface (API) sowie die Konfigurations- und Analyse-Tools im National Instruments Measurement & Automation Explorer (MAX). Mit den NI-CAN APIs können Sie Anwendungen entwickeln, die auf die Anforderungen Ihrer Tests und Simulationen von CAN- und LIN-Hardware abgestimmt sind.

Frame-API von CAN und LIN

Ein Frame ist das wichtigste Element bei der Datenübertragung über einen CAN- oder LIN-Bus. Die Frame-API von NI-CAN bietet verschiedene Funktionen zum Senden und Empfangen von CAN- und LIN-Frames. Bei der Frame-API werden die Datenbytes jedes Frames in ihrem Rohformat übertragen, also nicht umgerechnet. Beispielsweise können Sie einen CAN-Daten-Frame übermitteln, indem Sie eine Schreibfunktion mit der ID, der Länge und einem Bereich von Datenbytes aufrufen. Weitere Informationen erhalten Sie in der NI-CAN-Hilfe unter Hilfe»Hilfethemen»NI-CAN»Hardware- und Software-Handbuch.

CAN-Channel-API

Ein typischer CAN-Daten-Frame enthält mehrere als Bitfelder verschlüsselte Werte. Nachfolgend sind die Felder eines 6 Byte großen Daten-Frames abgebildet.

Die Bytes 1 bis 2 enthalten das Feld CruiseCtrlSetSpeed (eingestellte Tempomatengeschwindigkeit), das für eine Fahrzeuggeschwindigkeit in Kilometern pro Stunde (km/h) steht. Die meisten CAN-Geräte übertragen Werte nicht als Fließkomma-Einheit, wie beispielsweise 115,6 km/h. Deshalb besteht dieser Bereich aus einem vorzeichenlosen 16-Bit-Integer, in dem jede Erhöhung 0,0039 km/h darstellt. Wenn das Feld also beispielsweise den Wert 25.000 enthält, bedeutet dies 25.000 * 0,0039 km/h = 97,5 km/h.

Die Bytes 3 bis 4 enthalten eine andere vorzeichenlose, ganzzahlige Fahrzeuggeschwindigkeit in km/h. Die Bytes 0 und 5 enthalten verschiedene boolesche Felder, bei denen die 1 "Ein" und 0 "Aus" bedeutet.

Wenn Sie Daten-Frames mit der NI-CAN-Frame-API empfangen, muss Ihre Anwendung in der Lage sein, jedes Bitfeld in physikalische Einheiten zu konvertieren, beispielsweise km/h. Bei der NI-CAN-Channel-API können Sie die Umrechnungseinstellungen bei der Konfiguration vornehmen anstatt in der Anwendung selbst. Die Konfigurationseinstellungen können entweder aus Vector-CANdb-Dateien importiert oder direkt im MAX bestimmt werden.

Für jede ID eines Frames, der in einem CAN-Netzwerk übertragen wird, sind verschiedene Felder anzugeben. Sie bestimmen außerdem zu jedem Feld seine Position im Frame, die Größe in Bit und eine Formel zur Umrechnung in die bzw. aus der Fließkommaschreibweise. Sie legen also bei jedem CAN-Daten-Frame die Bedeutung mehrerer Felder fest. Ein Daten-Frame, für den die einzelnen Felder festgelegt sind, wird bei NI-CAN als Nachricht bezeichnet.

Bei anderen National-Instruments-Programmen wie NI-DAQ oder FieldPoint wird ein Fließkommawert über einen Kanal übertragen, der normalerweise bereits in der Hardware aus dem gemessenen Wert bzw. in den auszugebenden Wert berechnet wurde. In der NI-CAN-Channel-API wird als Kanal jedoch auch ein Fließkommawert bezeichnet, der in Nachrichten aus Bitfeldern oder in Bitfelder konvertiert wurde. Bei CAN-Produkten anderer Anbieter werden diese Fließkommawerte meist als Signal bezeichnet. Beim Empfang einer CAN-Nachricht konvertiert NI-CAN die Bitfelder in physikalische Einheiten, die Sie dann mithilfe der Lesefunktion der Channel-API abfragen können. Wenn Sie die Schreibfunktion der Channel-API aufrufen, geben Sie Fließkommawerte in physikalischen Einheiten an, die NI-CAN dann in Bitfelder konvertiert und als CAN-Nachricht überträgt.

Weitere Informationen erhalten Sie in der NI-CAN-Hilfe unter Hilfe»Hilfethemen»NI-CAN»Hardware- und Software-Handbuch.