LSS-Protokoll
Mit den Diensten des LSS-Protokolls (Layer Settings Services) erfolgt die Vergabe der Node-ID und/oder Baudrate der Steuerung direkt über den CANopen-Bus. Dies ist besonders nützlich bei Geräten, die über keine Möglichkeit zur mechanischen Konfiguration (z.B. Drehschalter) der Parameter verfügen.
Allgemeines
Das LSS-Protokoll benötigt ein CANopen-Gerät im Netzwerk, das die Rolle des LSS-Masters einnimmt. Alle anderen Geräte haben die Rolle des LSS-Slaves.
Jeder LSS-Slave verfügt über eine eindeutige LSS-Adresse, die aus den vier 32-Bit-Einträgen des Objekts 1018h Identity Object besteht.
Ein LSS-Slave darf entweder im Konfigurationsmodus oder im Wartemodus sein. Der LSS-Master ist zuständig für das Umschalten zwischen den beiden Modi. Manche LSS-Dienste (Configuration, Inquiry) sind nur im Konfigurationsmodus verfügbar.
LSS-Nachricht
Alle Nachrichten des LSS-Protokolls bestehen aus 8 Bytes (DLC=8), wobei Byte 0 immer den Command Specifier (CS) des Dienstes enthält.
Zwei CAN-ID sind für das LSS-Protokoll reserviert:
- 7E5h: für die Nachrichten vom LSS-Master an die LSS-Slaves (Request)
- 7E4h: für die Nachrichten von den LSS-Slave an den LSS-Master (Response)
LSS-Dienste
Es werden vier Kategorien von Diensten unterstützt:
Switch state services
Mit diesen Diensten kann der LSS-Master die LSS-Slaves in den Konfigurationsmodus oder in den Wartemodus versetzen.
Das Ändern der Node-ID und Baudrate mittels Configuration services und die Inquiry services sind nur im Konfigurationsmodus zugelassen.
Switch state global service
Mit diesem Dienst versetzt der LSS-Master alle LSS-Slaves im Netzwerk in den Konfigurationsmodus oder in den Wartemodus.
- Byte 0 : CS (Command Specifier)
- Wert = "04h"
- Byte 1: mode
- Wert = "00h": schaltet in den Wartemodus
- Bytes 2-7 :
- reserviert (=0h)
Switch state selective service
Mit diesem Dienst versetzt der LSS-Master die LSS-Slaves mit der (oder Teilen der) entsprechenden LSS-Adresse in den Konfigurationsmodus.
Der LSS-Master sendet vier Nachrichten, welche die LSS-Adresse enthalten:
1. Nachricht: Der LSS-Master setzt die LSS-Slaves mit der entsprechenden Vendor-ID in den Konfigurationsmodus:
- Byte 0 : CS (Command Specifier)
- Wert = "40h"
- Bytes 1-4: Vendor-ID
- Vendor-ID: siehe 1018h:01h
- Bytes 5-7 :
- reserviert (=0h)
2. Nachricht: Der LSS-Master setzt die LSS-Slaves mit dem entsprechenden Product Code in den Konfigurationsmodus:
- Byte 0 : CS (Command Specifier)
- Wert = "41h"
- Bytes 1-4: Product Code
- Product Code: siehe 1018h:02h
- Bytes 5-7 :
- reserviert (=0h)
3. Nachricht: Der LSS-Master setzt die LSS-Slaves mit der entsprechenden Revision Number in den Konfigurationsmodus:
- Byte 0 : CS (Command Specifier)
- Wert = "42h"
- Bytes 1-4: Revision Number
- Revision Number: siehe 1018h:03h
- Bytes 5-7 :
- reserviert (=0h)
4. Nachricht: Der LSS-Master setzt die LSS-Slaves mit der entsprechenden Serial Number in den Konfigurationsmodus:
- Byte 0 : CS (Command Specifier)
- Wert = "43h"
- Bytes 1-4: mode
- Serial Number: siehe 1018h:04h
- Bytes 5-7 :
- reserviert (=0h)
Der LSS-Slave mit der entsprechenden LSS-Adresse wurde in den Konfigurationsmodus gesetzt und sendet eine Bestätigung:
- Byte 0 : CS (Command Specifier)
- Wert = "44h"
- Bytes 1-7 :
- reserviert (=0h)
Configuration services
Mit diesen Diensten kann der LSS-Master die Node-ID oder Baudrate der LSS-Slaves ändern und ggf. abspeichern.
Configure node-ID service
Der LSS-Master sendet eine Nachricht mit der neuen Node-ID an einen LSS-Slave:
- Byte 0 : CS (Command Specifier)
- Wert = "11h"
- Byte 1: N-ID (Node-ID)
- gültige Node-ID zwischen 01h und 7Fh
- Bytes 2-7 :
- reserviert (=0h)
Der LSS-Slave antwortet mit einer Bestätigung/einem Error-Code:
- Byte 0 : CS (Command Specifier)
- Wert = "11h"
- Byte 1: Error Code
- Wert = "00h": kein Fehler
- Bytes 2-7 :
- reserviert (=0h)
Configure bit timing parameters service
Der LSS-Master sendet eine Nachricht mit der neuen Baudrate an einen LSS-Slave:
- Byte 0 : CS (Command Specifier)
- Wert = "13h"
- Byte 1: Table Selector
- Wert = "00h": die Tabelle für die Baudrate aus dem CiA 301 Standard wird benutzt.
- Byte 2: Table Index
- Der Wert für den Index wird der nachfolgenden Tabelle entnommen.
- Bytes 3-7 :
- reserviert (=0h)
Folgende Werte werden für den Table Index unterstützt:
Table Index |
Baudrate in kBd |
---|---|
0 | 1000 |
2 | 500 |
3 | 250 |
4 | 125 |
6 | 50 |
7 | 20 |
8 | 10 |
Der LSS-Slave antwortet mit einer Bestätigung/einem Error-Code:
- Byte 0 : CS (Command Specifier)
- Wert = "13h"
- Byte 1: Error Code
- Wert = "00h": kein Fehler
- Bytes 2-7 :
- reserviert (=0h)
Activate bit timing parameters service
Der LSS-Master aktiviert mit diesem Kommando die eingestellte Baudrate aller LSS-Slaves im Netzwerk gleichzeitig:
- Byte 0 : CS (Command Specifier)
- Wert = "51h"
- Bytes 1-2: Switch Delay
-
Verzögerung in ms. Dadurch wird gewährleistet, dass alle LSS-Slaves im Netzwerk die gleiche Baudrate haben, bevor Nachrichten wieder gesendet werden dürfen.
Nach dem Empfang dieser Nachricht von jedem LSS-Slave wird die Zeit abgewartet, die hier hinterlegt wird. Erst danach wird die neue Baudrate übernommen.
Die gleiche Zeit wird ein zweites Mal abgewartet, erst danach darf ein LSS-Slave wieder Nachrichten senden.
- Bytes 3-7 :
- reserviert (=0h)
Store configuration service
Der LSS-Master speichert mit diesem Kommando die eingestellte Node-ID und Baudrate eines LSS-Slaves ab. Der LSS-Master muss gewährleisten, dass in dem Moment nur ein LSS-Slave im Netzwerk sich im Konfigurationsmodus befindet.
- Byte 0 : CS (Command Specifier)
- Wert = "17h"
- Bytes 1-7 :
- reserviert (=0h)
Der LSS-Slave antwortet mit einer Bestätigung/einem Error-Code:
- Byte 0 : CS (Command Specifier)
- Wert = "17h"
- Byte 1: Error Code
- Wert = "00h": kein Fehler
- Bytes 2-7 :
- reserviert (=0h)
Inquiry services
Mit diesen Diensten kann der LSS-Master die LSS-Adresse oder die Node-ID eines LSS-Slaves abfragen. Der LSS-Master muss gewährleisten, dass nur ein LSS-Slave im Netzwerk sich im Konfigurationsmodus befindet.
Inquire LSS address service
Mit diesem Dienst fragt der LSS-Master die LSS-Adresse eines Slaves ab.
- Der LSS-Master fragt die Vendor-ID ab:
- Byte 0 : CS (Command Specifier)
- Wert = "5Ah"
- Bytes 1-7 :
- reserviert (=0h)
Der LSS-Slave sendet seine Vendor-ID zurück:
- Byte 0 : CS (Command Specifier)
- Wert = "5Ah"
- Bytes 1-4: Vendor-ID
- Vendor-ID: siehe 1018h:01h
- Bytes 5-7 :
- reserviert (=0h)
- Der LSS-Master fragt den Product Code ab:
- Byte 0 : CS (Command Specifier)
- Wert = "5Bh"
- Bytes 1-7 :
- reserviert (=0h)
Der LSS-Slave sendet seinen Product Code zurück:
- Byte 0 : CS (Command Specifier)
- Wert = "5Bh"
- Bytes 1-4: Produt Code
- Product Code: siehe 1018h:02h
- Bytes 5-7 :
- reserviert (=0h)
- Der LSS-Master fragt die Revision Number ab:
- Byte 0 : CS (Command Specifier)
- Wert = "5Ch"
Der LSS-Slave sendet seine Revision Number zurück:
- Byte 0 : CS (Command Specifier)
- Wert = "5Ch"
- Bytes 1-4: Revision Number
- Revision Number: siehe 1018h:03h
- Bytes 5-7 :
- reserviert (=0h)
- Der LSS-Master fragt die Serial Number ab:
- Byte 0 : CS (Command Specifier)
- Wert = "5Dh"
- Bytes 1-7 :
- reserviert (=0h)
Der LSS-Slave sendet seine Serial Number zurück:
- Byte 0 : CS (Command Specifier)
- Wert = "5Dh"
- Bytes 1-4: Serial Number
- Serial Number: siehe 1018h:04h
- Bytes 5-7 :
- reserviert (=0h)
Inquire node-ID service
Mit diesem Dienst fragt der LSS-Master die Node-ID eines Slaves ab.
Der LSS-Master fragt die Node-ID ab:
- Byte 0 : CS (Command Specifier)
- Wert = "5Eh"
- Bytes 1-7 :
- reserviert (=0h)
Der LSS-Slave antwortet mit seiner Node-ID:
- Byte 0 : CS (Command Specifier)
- Wert = "5Eh"
- Byte 1: Node-ID
- Node-ID des LSS-Slaves
- Bytes 2-7 :
- reserviert (=0h)
Identification services
Mit diesen Diensten kann der LSS-Master die LSS-Slaves anhand ihrer LSS-Adresse sich identifizieren lassen.
LSS identify remote slave service
Mit diesem Dienst fordert der LSS-Master die LSS-Slaves mit der (oder Teilen der) entsprechenden LSS-Adresse an, sich mit dem Dienst LSS identify slave service zu identifizieren.
Dabei kann ein Bereich für die Revision Number und Serial Number definiert werden. Alle LSS-Slaves, deren Nummern sich im jeweiligen Bereich befinden, müssen sich identifizieren. Es ist die Aufgabe des LSS-Masters, den Bereich so zu verkleinern, dass schlussendlich nur ein LSS-Slave antwortet.
- Der LSS-Master definiert die Vendor-ID der LSS-Slaves, die sich identifizieren sollen:
- Byte 0 : CS (Command Specifier)
- Wert = "46h"
- Bytes 1-4: Vendor-ID
- Vendor-ID: siehe 1018h:01h
- Bytes 5-7 :
- reserviert (=0h)
- Der LSS-Master definiert den Product Code der LSS-Slaves, die sich identifizieren sollen:
- Byte 0 : CS (Command Specifier)
- Wert = "47h"
- Bytes 1-4: Product Code
- Product Code: siehe 1018h:02h
- Bytes 5-7 :
- reserviert (=0h)
- Der LSS-Master definiert die niedrigste und höchste Revision Number eines Bereichs. Alle LSS-Slaves, deren Revision Number innerhalb dieses Bereichs ist, sollen sich identifizieren:
- Byte 0 : CS (Command Specifier)
- Wert = "48h"
- Bytes 1-4: Revision Number low
- niedrigste Revision Number des Bereichs: siehe 1018h:03h
- Bytes 5-7 :
- reserviert (=0h)
- Byte 0 : CS (Command Specifier)
- Wert = "49h"
- Bytes 1-4: Revision Number high
- höchste Revision Number des Bereichs: siehe 1018h:03h
- Bytes 5-7 :
- reserviert (=0h)
- Der LSS-Master definiert die niedrigste und höchste Serial Number eines Bereichs. Alle LSS-Slaves, deren Serial Number innerhalb dieses Bereichs ist, sollen sich identifizieren:
- Byte 0 : CS (Command Specifier)
- Wert = "4Ah"
- Bytes 1-4: Serial Number low
- niedrigste Serial Number des Bereichs: siehe 1018h:04h
- Bytes 5-7 :
- reserviert (=0h)
- Byte 0 : CS (Command Specifier)
- Wert = "4Bh"
- Bytes 1-4: Serial Number high
- höchste Serial Number des Bereichs: siehe 1018h:04h
- Bytes 5-7 :
- reserviert (=0h)
LSS identify slave service
Der LSS-Slave, dessen LSS-Adresse mit dem Dienst LSS identify remote slave service vom LSS-Master definiert wurde, identifiziert sich:
- Byte 0 : CS (Command Specifier)
- Wert = "4Fh"
- Bytes 1-7 :
- reserviert (=0h)
Beispiel
Die Steuerung (LSS-Slave) wird mit folgenden Parametern ausgeliefert:
- Node-ID = 7Fh (=127d)
- Baudrate = 1000 kBd
Die Parameter sollen wie folgt eingestellt werden:
- Node-ID = 05h (=5d)
- Baudrate = 125 kBd
Es wird angenommen, dass momentan nur ein LSS-Slave im Netzwerk vorhanden ist.
- Der LSS-Master versetzt den LSS-Slave in den Konfigurationsmodus (siehe Switch state global service):
7E5 | 04 01 00 00 00 00 00 00
- Der LSS-Master fragt die Node-ID des LSS-Slaves ab (siehe Inquire node-ID service):
7E5 | 5E 00 00 00 00 00 00 00
Der LSS-Slave antwortet mit seiner Node-ID:
7E4 | 5E 7F 00 00 00 00 00 00
- Der LSS-Master setzt die Node-ID auf "05h" (siehe Configure node-ID service):
7E5 | 11 05 00 00 00 00 00 00
Der LSS-Slave bestätigt (Error-Code=00h):
7E4 | 11 00 00 00 00 00 00 00
- Der LSS-Master setzt die Baudrate auf 125 kBd (Table Index=4) (siehe Configure bit timing parameters service):
7E5 | 13 00 04 00 00 00 00 00
Der LSS-Slave bestätigt (Error-Code=00h):
7E4 | 13 00 00 00 00 00 00 00
- Der LSS-Master sendet den Befehl zum Abspeichern der Änderungen (siehe Store configuration service):
7E5 | 17 00 00 00 00 00 00 00
- Der LSS-Master versetzt den LSS-Slave in den Wartemodus (siehe Switch state global service):
7E5 | 04 00 00 00 00 00 00 00
Der LSS-Slave bestätigt (Error-Code=00h):
7E4 | 17 00 00 00 00 00 00 00
- Die neuen Parameter werden nach einem Neustart der Steuerung übernommen.
Die Steuerung meldet sich mit der Node-ID 5 und Baudrate 125KBd:
705 | 00