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