CAN-Kommunikation

Den Befehlssatz finden Sie unter Befehlssatz.

Adressen

Die Werksvoreinstellung für die Basisadresse lautet 0x400. Diese Basisadresse kann bei Bedarf innerhalb des Parametersatzes geändert werden.

Die vom USBoard-USS4 benutzten Adressen werden von der Basisadresse berechnet, indem jeweils die folgenden Offsets addiert werden.

Offset zur Basisadresse Nachricht
+0 Empfangen von Befehlen
+1 Antwort auf CMD_CONNECT
+2 Erste Antwort auf CMD_GET_DATA_1TO8
+3 Zweite Antwort auf CMD_GET_DATA_1TO8
+4 Erste Antwort auf CMD_GET_DATA_9TO16
+5 Zweite Antwort auf CMD_GET_DATA_9TO16
+6 Antwort auf CMD_READ_PARASET
+7 Antwort auf CMD_GET_ANALOGIN
+8 Antwort auf CMD_WRITE_PARASET
+9 Antwort auf CMD_WRITE_PARASET_TO_EEPROM

Befehle

Im Folgenden werden die CAN IDs als Offset zur Basisadresse angegeben, d.h. +3 bedeutet Basisadresse plus 3.

CMD_CONNECT

Mit diesem Kommando kann die Kommunikationsverbindung zum Board hergestellt und getestet werden.

Kommando

ID: +0

CMD_CONNECT 0 0 0 0 0 0 0
Antwort

ID: +1

CMD_CONNECT 1 2 3 4 5 6 7

CMD_SET_CHANNEL_ACTIVE

Mit diesem Kommando werden aus den 16 verfügbaren Kanälen die Kanäle ausgewählt, auf denen gesendet und empfangen werden soll. Zwei Bytes D1 und D2 für die Kanäle 1 bis 8 und 9 bis 16 enthalten die Information, ob der Kanal entsprechend der Bitnummer aktiv sein soll. Die Bytes sind Bit-codiert, wobei eine 1 einen aktiven Kanal markiert. Der Befehl kann verwendet werden, wenn Sensoren aktiv oder passiv geschaltet werden sollen, ohne den vollständigen Parametersatz zu übertragen.

Beispiel: 0x1F als erstes Byte bedeutet Sensoren 1 bis 5 sind aktiv, Sensoren 6 bis 8 sind deaktiviert.

Kommando

ID: +0

CMD_SET_CHANNEL_ACTIVE (Sensoren 1 bis 8) (Sensoren 9 bis 16) 0 0 0 0 0
Antwort
Keine Antwort.

CMD_GET_DATA_1TO8

Mit diesem Kommando werden die Messwerte der Sensoren 1 bis 8 abgefragt.

Kommando

ID: +0

CMD_GET_DATA_1TO8 0 0 0 0 0 0 0
Antwort (zwei Teile)

IDs: +2, +3

CMD_GET_DATA_1TO8 0 Werte für Sensoren 1-4 (jeweils ein Byte) 0 (reserviert)
CMD_GET_DATA_1TO8 1 Werte für Sensoren 5-8 (jeweils ein Byte) 0 (reserviert)

Die Messwerte sind in cm.

CMD_GET_DATA_9TO16

Mit diesem Kommando werden die Messwerte der Sensoren 9 bis 16 abgefragt.

Kommando

ID: +0

CMD_GET_DATA_9TO16 0 0 0 0 0 0 0
Antwort (zwei Teile)

IDs: +4, +5

CMD_GET_DATA_9TO16 0 Werte für Sensoren 9-12 (jeweils ein Byte) 0 (reserviert)
CMD_GET_DATA_9TO16 1 Werte für Sensoren 13-16 (jeweils ein Byte) 0 (reserviert)

Die Messwerte sind in cm.

CMD_WRITE_PARASET

Mit diesem Kommando wird ein vollständiger Parametersatz an das USBoard-USS4 übermittelt (flüchtig, nach dem Ausschalten verloren). Der Parametersatz kann komfortabel mit dem mitgelieferten Parameter-Editor erstellt und übertragen werden.

Die neuen Parameter werden nach dem Schreiben sofort aktiviert.

Kommando

ID: +0

Der Befehl besteht aus neun Nachrichten, die nacheinander gesendet werden, wobei jede Nachricht ein paar Bytes des Parametersatzes enthält.

CMD_WRITE_PARASET 0 Bytes 1 bis 6
CMD_WRITE_PARASET 1 Bytes 7 bis 12
CMD_WRITE_PARASET 2 Bytes 13 bis 18
CMD_WRITE_PARASET 3 Bytes 19 bis 24
CMD_WRITE_PARASET 4 Bytes 25 bis 30
CMD_WRITE_PARASET 5 Bytes 31 bis 36
CMD_WRITE_PARASET 6 Bytes 37 bis 42
CMD_WRITE_PARASET 7 Bytes 43 bis 48
CMD_WRITE_PARASET 8 Bytes 49 bis 54
Antwort

ID: +8

Jede Nachricht wird einzeln beantwortet, wobei die ersten 8 Antworten identisch sind

CMD_WRITE_PARASET 0 0 0 0 0 0 0

und die letzte Antwort die Summe aller Bytes des Parametersatzes enthält.

CMD_WRITE_PARASET low byte high byte 0 0 0 0 0

CMD_WRITE_PARASET_TO_EEPROM

Mit diesem Kommando wird ein vollständiger Parametersatz in das EEPROM des USBoard-USS4 geschrieben (nicht flüchtig). Ansonsten ist der Befehl mit CMD_WRITE_PARASET identisch.

Der Parametersatz wird nach dem Schreiben sofort übernommen.

Kommando

ID: +0

Dieser Befehl verhält sich identisch zu CMD_WRITE_PARASET, nur dass er das Befehls-Byte CMD_WRITE_PARASET_TO_EEPROM benutzt.

Antwort

ID: +9

Die Antwort ist identisch zu den Antworten auf CMD_WRITE_PARASET, nur dass sie das Befehls-Byte CMD_WRITE_PARASETE_TO_EEPROM benutzt.

CMD_READ_PARASET

Mit diesem Kommando wird der aktuelle, vollständige Parametersatz vom USBoard-USS4 gelesen. Die Antwort besteht aus neun Nachrichten, die hintereinander gesendet werden.

Kommando

ID: +0

CMD_READ_PARASET 0 0 0 0 0 0 0
Antwort

ID: +6

Die Antwort besteht aus neun Nachrichten, die nacheinander gesendet werden, wobei jede Nachricht ein paar Bytes des Parametersatzes enthält.

CMD_READ_PARASET 0 Bytes 1 bis 6
CMD_READ_PARASET 1 Bytes 7 bis 12
CMD_READ_PARASET 2 Bytes 13 bis 18
CMD_READ_PARASET 3 Bytes 19 bis 24
CMD_READ_PARASET 4 Bytes 25 bis 30
CMD_READ_PARASET 5 Bytes 31 bis 36
CMD_READ_PARASET 6 Bytes 37 bis 42
CMD_READ_PARASET 7 Bytes 43 bis 48
CMD_READ_PARASET 8 Bytes 49 bis 54

CMD_GET_ANALOGIN

Mit diesem Kommando werden die Messwerte der vier Analogeingänge abgefragt.

Kommando

ID: +0

CMD_GET_ANALOGIN 0 0 0 0 0 0 0
Antwort

ID: +7

Die Auflösung beträgt 12 Bit, so dass innerhalb der CAN-Antwort zunächst das untere Byte des entsprechenden Kanals übertragen wird. In den Bytes 5 und 6 der CAN-Nachricht sind die oberen vier Bits der Kanäle 1 – 4 enthalten.

CMD_GET_ANALOGIN low byte channel 1 low byte channel 2 low byte channel 3 low byte channel 4 high bits of channel 2 and 1 high bits of channel 4 and 3 0