Datenaustausch mit LIN2

Was ist LIN?

LIN (Local Interconnect Network) ist ein serielles Bussystem, das zu den Feldbussen gehört. Es dient der Kommunikation zwischen Sensoren (Messfühler) und Aktoren in Automobilen und ist besonders kostengünstig.

Welche anderen seriellen Bussysteme gibt es?

Ein anderes wichtiges serielles Bussystem ist CAN (Controller Area Network). Es dient der Vernetzung von Steuergeräten in Kraftfahrzeugen und gehört wie LIN zu den Feldbussen. Im Gegensatz zu LIN (Eindrahtsystem) findet es jedoch meist als Zweidrahtsystem Anwendung. Zudem verfügt CAN über eine höhere Bandbreite und ist vielseitig und großflächig einsetzbar. LIN wird meist für lokale Kommunikation innerhalb eines eingeschränkten Bereiches z.B. innerhalb einer Fahrzeugtür zur Vernetzung verwendet.

Arbeitsprinzip eines Master-Slave-Systems

LIN basiert auf einem Master-Slave-System. Hierbei ist die Verwaltung eines Regelungssystems hierarchisch gesteuert. Es gibt einen Teilnehmer (Master) dessen Priorität höher ist als die der anderen Teilnehmer, die als Slaves bezeichnet werden. Der Master ist als Einziger dazu berechtigt, unaufgefordert auf eine gemeinsame Ressource zuzugreifen, während die anderen Teilnehmer vom Master gefragt werden müssen. Dies wird als Polling bezeichnet.

Ein Master-Slave-System besteht aus einem Master und mindestens einem Slave, meist jedoch aus mehreren. Master-Slave-Systeme haben den Vorteil, dass Planung und Aufbau einfach sind, da der Master den Zugriff beherrscht und um ihn herum alles aufgebaut werden kann. Ein Nachteil ist jedoch die Ineffizienz eines solchen Systems, in dem die Slaves nicht miteinander kommunizieren können, sondern immer ein Abfragen durch den Master erfolgen muss. Im LIN-Bussystem regelt der Master die Reihenfolge der Datenübermittlung und fordert die anderen Teilnehmer durch Aussenden eines Headers mit Nachrichtenadresse dazu auf, Daten auf den Bus zu übertragen.

LIN-Datenübertragung

Die Datenübertragung innerhalb eines LIN-Clusters erfolgt Byte-orientiert über die serielle Schnittstelle (SCI) eines Mikrocontrollers in Form von Nachrichten variabler Länge. Der Master überträgt einen Header bestehend aus einem Break-Signal, einem Synchronisationssignal und einem ID (Identifier). Die Antwort eines Slaves enthält bis zu 8 Daten-Bytes und 3 Bytes Kontrollinformation. Ein LIN-Frame besteht also aus zwei Teilen: Header und Response. Während der Header immer vom Master gesendet wird, kann die Antwort entweder von einem LIN-Slave oder auch vom Master selbst gesendet werden.

Das LIN-Frame enthält ein Start- und ein Stop-Bit und kein Parity-Frame. Die Übertragungsrate liegt zwischen 1 und 20 kbits/s. Da immer nur eine LIN-Botschaft zu einer Zeit übertragen wird, die jeder Slave in Abhängigkeit der Entscheidung der Steuergeräte empfangen kann, werden Buskollisionen verhindert und ein System zur Auflösung solcher Kollisionen ist überflüssig. Die Reihenfolge der Nachrichten basiert auf einer Schedule, die nach Bedarf ausgetauscht werden kann.

Um die Buslast zu reduzieren senden Slaves nur Frames wenn sie neue Daten zu übermitteln haben. Erkennt der Master, dass mehrere Slaves antworten, so verhindert er Kollisionen, indem er die Antwortreihenfolge durch Abfrageframes regelt.

LIN-Spezifikation

Das Bussystem kennt zwei Netzknotenzustände: Sleep-Mode und Normal-Mode. Solange Daten über den Bus übertragen werden, befinden sich alle Knoten im aktiven Zustand. Nach einer gewissen Zeitspanne fallen sie jedoch in den Sleep-Mode und können durch ein so genanntes Wakeup-Frame des Masters oder eines Slaves wieder in den aktiven Zustand versetzt werden. Ein Übergang in den Sleep-Mode kann auch durch ein explizites Kommando des Masters initiiert werden. Das Eindraht-System LIN verwendet eine Signalleitung, sowie ein Bezugspotential und kennt wie CAN die Signalzustände rezessiv und dominant. Anders als bei CAN ist eine Spannung von 0 V der dominante Zustand und die Bordnetzspannung rezessiver und Ruhezustand.

Fehlerbehandlung

Die beiden bei LIN angewandten Erkennungsmechanismen der Fehlerübertragung beruhen auf Parität und Prüfsumme. Die Parität bezeichnet die Anzahl der mit 1 belegten Bits in einem Informationswort. Sie ist entweder gerade (even) oder ungerade (odd). Jedem Informationswort wird ein Paritybit angehängt, das später bei der Paritätsprüfung Hinweise auf Übertragungsfehler geben kann. Bei der Paritätsprüfung eines Codewortes (Informationswort + Paritybit) kann nicht festgestellt werden wo der Fehler liegt und Fehler, die keine Änderung im Paritybit hervorrufen (also gerade Anzahlen an Fehlern), werden nicht erkannt.

Bei der Prüfsumme werden bestimmte Daten einer Nachricht mit einem Faktor multipliziert und aufsummiert. Die Summe wird gespeichert und mitgesendet. Ein Empfänger berechnet aus den empfangenen Daten nach gleichem Prinzip wie der Sender die Prüfsumme und vergleicht sie mit dem empfangenen Prüfsummenwert. Sind die Prüfsummen identisch, so wird davon ausgegangen, dass die Übertragung korrekt verlief. Sind sie hingegen unterschiedlich so wird der Übertragungsvorgang wiederholt. Fehlerhafte Botschaften im LIN-Bussystem werden verworfen oder als nicht gesendet betrachtet. Fehler, die erkannt wurden, werden direkt beim Steuergerät gespeichert und können dann vom Master ausgelesen werden. Prinzipiell signalisiert LIN aber keine Fehler über das Protokoll. Als einzige Ausnahme wird jedoch die LIN-Fehlerdetektion mittels Response-Error-Bits beschrieben. Die Erkennung bestimmter Fehler durch den Master wird hier ermöglicht. Jedoch ist die Behandlung von fehlerhafter Kommunikation systemspezifisch und muss je nach Anwendung definiert werden.