LIN-Bus
Abstract
Der LIN-Bus basiert auf dem ISO 9141 Standard und wurde als kostengünstiges Datenübertragungssystem speziell für den Einsatz in Kraftfahrtzeugen konzipiert. Er wird hauptsächlich für einfache Bedienelemente und Sensoren genutzt. Die Datenrate ist mit bis zu 20 kBit/s relativ gering und er besitzt nur begrenzte Störfestigkeit.
Technische Daten
- „Ein-Draht“ Bus-System. Sowohl Sende- als auch Empfangsdaten werden abwechselnd über ein und dieselbe Datenleitung übertragen (= Halbduplex-Kommunikation).
- Single-Master, Multiple Slaves Bus-Konzept. Ein Master initiiert und koordiniert die Kommunikation der Slaves. Die Slaves senden nur nach Aufforderung vom Master.
- Günstige Implementation durch große Auswahl an fertigen Bausteinen.
- Selbst-Synchronisierend, ohne Quarz oder Keramikresonator in den Slaves. Das Taktsignal wird dabei aus dem Datensignal gewonnen.
- Das UART-Datenformat ist einheitlich: 1 Start-Bit, 8 Daten-Bits, 1 Stopp-Bit und kein Paritäts-Bit
- Mögliche Baudraten sind: 2400, 9600 und 19200
Das Protokoll
Der Master schaltet in den Sendemodus und erzeugt zunächst ein BREAK
. Dieses besteht aus eine Folge von 13 Low-Bits, 1 High Bit und 1 Low Bit. Nun folgt das 8-Bit lange SYNC-Field, welches dem Bitmuster 10101010
entspricht. Anschließend das ID Field, mit einem Start-Bit (Low), den 5 ID-Bits (ID0..ID4), der Datenlänge (ID5, ID6), der Parität (P0, P1) und dem Stopp-Bitt.
Nun schaltet der Master in den Empfangsmodus. Ab jetzt senden die Slaves ihre Daten.
Am Schluss werden die Daten noch mit der CHECKSUM geprüft.
Die Kommunikationstabelle:
Jeder Frame gehört zu einem Steuergerät. Eine solche Tabelle hat 2 Spalten und x Zeilen (x = Anzahl der Frames bzw. Steuergeräte/ Sensoren). In den Spalten stehen die Delay-Zeiten zwischen den Frames und der eigentliche Frame mit seiner ID.
In einer Routetine (State-Machine) wird eine „Tick“-Funktion jede Millisekunde aufgerufen. In ihr wird entschieden ob das Delay eines Frames erreicht ist. In diesem Fall wird der Frame gesendet, in die nächste Zeile der Tabelle gesprungen und das ganze so wiederholt.
Die "LDF"-Datenbank
Die LDF beschreibt die Signale und wie sie in einem LIN-Frame zusammengesetzt sind. Zusätzlich steht noch drin, welche Teilnehmer am Bus sind und in welchem zeitlichen Raster der Master die Slaves abfragt („Schedule Table“).
Sie wird für Analyse-Software benötigt, damit diese die Bussignale richtig deuten und Fehler aufzeigen kann.
LIN-Busse und Module im Mondeo
LIN-Bus Module
LIN-Hardware
- LIN-Bus Transceiver:
- MC33660
- L9637
- TJA1020 (Uralt) bzw. der Nachfolger TJA1021
Links
- Protokoll:
- Eine vollständige Beschreibung des LIN-Protokolls und seiner Implentation finden man hier: LIN_Specification_Package_2.2A.pdf
- Tools:
- Implementationen (Software):
- lin.c - Ein in C für Atmel AVR's geschriebene Emulation aus diesem Forumsbeitrag