CPB CANopen Technisches Handbuch

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
Wert = "01h": schaltet in den Konfigurationsmodus
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. 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. 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. 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. 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.

Anmerkung: Die LSS-Slaves müssen sich im Konfigurationsmodus befinden. Siehe Kapitel Switch state services.

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
Wert = "01h": ungültige Node-ID
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
Wert = "01h": ungültiger Table Index/ Baudrate wird nicht unterstützt
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
Wert = "02h": Zugriff auf den nichtflüchtigen Speicher fehlgeschlagen
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.

  1. 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)
  2. 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)
  3. 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)
  4. 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.

  1. 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)
  2. 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)
  3. 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)
  4. 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.

  1. Der LSS-Master versetzt den LSS-Slave in den Konfigurationsmodus (siehe Switch state global service):

    7E5 | 04 01 00 00 00 00 00 00

  2. 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

  3. 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

  4. 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

  5. Der LSS-Master sendet den Befehl zum Abspeichern der Änderungen (siehe Store configuration service):

    7E5 | 17 00 00 00 00 00 00 00

  6. 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

  7. Die neuen Parameter werden nach einem Neustart der Steuerung übernommen.

Die Steuerung meldet sich mit der Node-ID 5 und Baudrate 125KBd:

705 | 00

▶   weiter

Inhalt