LIN Master Feature EL6001
Beschreibung der „LIN-Master‑Unterstützung“ (ab FW10)
Die EL6001 realisiert eine Busanschaltung für RS232-Pegel. Ab Softwarestand 10 verfügt die EL6001 über eine Zusatzfunktion, um LIN-Telegramme senden und empfangen zu können. Diese Funktion umfasst nicht die formale Abhandlung der Protokollschichten für LIN („Protokollstack“) und auch keine physikalische LIN-Anschaltung, sondern die EL6001 kann in Schreib- und Leserichtung die zeitlich verlängerte Start/Ende-Markierung eines LIN-Telegramms behandeln.
„Oberhalb“ der Klemme ist ein z. B. in PLC realisierter LIN-Stack erforderlich, „unterhalb“ der Klemme ein Pegel-Konverter RS232 <-> 5/12V z. B. „RS232-LIN“.
Bitte prüfen Sie vor Einsatz dieser Funktion die Eignung in Ihrem System, da eine vollständige umfassende LIN-Implementierung in der EL6001 nicht gegeben ist!
Ein kompletter LIN-Frame ergibt sich aus eine Master-Anfrage mit direkt nachfolgender Slave-Antwort. Der Master sendet den Masterframe und empfängt die Daten des Slaves.
Bei aktivierter LIN-Funktionalität der EL6001 wird ein „sync‑Break“ und ein „sync‑Byte“ vor dem „Protected Identifier“ (PID) ausgegeben.
Darum kann die Klemme EL6001 unter LIN wie folgt eingesetzt werden
- EL6001 als LIN-Master, sendet Daten zum Slave und empfängt die Antwort.
- EL6001 als LIN-Slave: die EL6001 kann nicht rechtzeitig auf das Master-Telegramm antworten! Deshalb
- Daten vom Master empfangen: ja
- Daten zum Master senden: nein
Aktivierung
Die für LIN erforderliche Zuschaltung eines „sync break“ und „sync-field“ beim Senden kann über das „Command“ Objekt aktiviert werden. Hierzu ist in dem CoE Objekt 0xB000:01 der Wert 0x3000 einzutragen. Die Antwort ist in dem CoE Objekt 0xB000:03 auslesbar mit den Werten 0x01 0x00 0x00 0x4C 0x49 0x4E. (4C 49 4E = ASCII „LIN“) als Bestätigung der Aktivierung dieser Funktion. Danach ist die Klemme bereit, Frames auf dem LIN-Bus, die das 13-Bit „sync break“ und das „sync-field“ (0x55) enthalten zu empfangen und lediglich die nachfolgenden Informationen in den Empfangsdaten bereit zu stellen sowie beim Senden diese Kennungen ebenfalls auch auszugeben.
Diese Einstellung wird nicht dauerhaft in der Klemme gespeichert und muss nach jedem neuen Hochfahren erneut geschrieben werden. Um diesen Umstand zu umgehen, bietet sich die Verwendung der Startup-Liste an.
Anwenderspezifische Baudrate
In das Objekt „Explicit baudrate“ (0x8000:1B) kann jede bereits verfügbare Baudrate und auch die Baudrate 10417 Baud eingetragen werden.
Weitere Parameter
Für die korrekte Funktion im LIN-Modus sind die folgenden Einstellungen im CoE Objekt 0x8000 erforderlich:
Index:Subindex | Name | Wert |
---|---|---|
0x8000:01 | Enable RTS/CTS | FALSE |
0x8000:02 | Enable XON/XOFF supported tx data | FALSE |
0x8000:03 | Enable XON/XOFF supported rx data | FALSE |
0x8000:04 | Enable send FIFO data continuous | FALSE |
0x8000:05 | Enable transfer rate optimization | TRUE |
0x8000:15 | Dataframe | 3 (8N1) |
0x8000:1A | Rx buffer full notification |
Betrieb
Die Verwendung des Control- und Statuswortes bleibt im LIN-Modus unverändert.
Die EL6001 stellt den Nutzdaten im LIN-Modus automatisch das „Break filed“ und das „Sync byte field“ voran. Beim Empfangen werden diese beiden Felder ebenfalls automatisch entfernt.
Das Prozessabbild ist wie folgt zu verwenden:
Prozessdatum | Inhalt |
---|---|
Ctrl.Output length | Anzahl der Nutzdatenbytes (n) + 2 |
Data Out 0 | Geschütztes ID Feld (PID = Protected identifier field) |
Data Out 1 | Daten Byte 1 |
|
|
Data Out n | Daten Byte n |
Data Out n+1 | Checksumme |
EL6001 LIN Beispiel
Das folgende Beispiel zur LIN-Kommunikation soll verdeutlichen, dass mittels der Zuschaltung der ergänzenden LIN-Funktionalität über das 0xB000 CoE „Command“ Objekt in Kombination mit einer physikalischen Konvertierung von RS-232 auf den LIN-BUS eine Anteilnahme einer PLC Steuerung mittels der EL6001 Klemme in einem LIN-Cluster möglich ist.
HW-Seitige Schaltung mit Verwendung eines UART-LIN Konverters
Die Umsetzung der physikalischen Schicht als Grundvoraussetzung für eine LIN – Kommunikation umfasst die Bereitstellung eines ein-Draht Busses mit entsprechenden Pegeln 0V / 12V. Hierfür bietet sich ein RS232-LIN Konverter an, der auf einem Sub-D Stecker gebracht wird und auf der anderen Seite drei Pole für Masse, Spannungsversorgung und die elektrische Verbindung zum ein-Draht LIN-Bus bereitstellt.
Die Verwendung des RS232-LIN Konverter erfordert eine Verdrahtung eines Sub-D 9 pol. Steckers an die EL6001 Klemme wie in der Abbildung gezeigt:
Die elektrischen Verbindungen von der Klemme EL6001 zum Sub-D 9 pol. Stecker sind:
- RxD →pin 2
- TxD →pin 3
- GND → pin 5
Programmierung in ST
Eine LIN-Kommunikation ist bereits durch eine PLC- „Mastertask“ darstellbar, indem, wie in der üblichen Verwendung des LIN-Bus ein Master ein „Unconditional Frame“ sendet und lediglich die PID (Protocol Identifier) eines bekannten Slave-Knotens auf den LIN-Bus ausgibt und damit i.d.R. Daten von dem jeweiligen Slave anfordert. Im Kapitel Inbetriebnahme ist dazu ein Programmbeispiel angegeben.
In diesem Beispiel hat der Slave die ID 0x07; der Master sendet also auf dem Bus die ID 0x07 inklusive der berechneten Parität woraus sich das PID-Feld 0x47 ergibt. Die Nachricht auf dem LIN Bus sieht dann wie folgt aus:
Oszilloskop-Aufnahmen LIN Frame mit ID 0x07: