Befehlssatz¶
Befehls-IDs¶
Die folgende Tabelle listet die vom USBoard-USS5 unterstützten Befehle auf.
Kommando | Wert | Beschreibung |
---|---|---|
CMD_CONNECT |
0 | Verbindungstest ausführen |
CMD_SET_CHANNEL_ACTIVE |
1 | Kanal für Senden/ Empfangen aktivieren |
CMD_GET_DATA_1TO8 |
2 | Messdaten Sensoren 1 bis 8 anfordern |
CMD_GET_DATA_9TO16 |
3 | Messdaten Sensoren 9 bis 16 anfordern |
CMD_WRITE_PARASET |
4 | Parametersatz zum Board übertragen (flüchtig) |
CMD_WRITE_PARASET_TO_EEPROM |
5 | Parametersatz ins EEPROM schreiben (nicht-flüchtig) |
CMD_READ_PARASET |
6 | Parametersatz vom Board lesen |
CMD_GET_ANALOGIN |
7 | Werte der 4 Analogeingänge lesen |
– | 8-12 | Reserviert |
CMD_GET_DATA |
13 | Messdaten aller Sensoren anfordern |
CAN-Kommunikation¶
Die Werksvoreinstellung für die Basisadresse lautet 0x400
. Diese Basisadresse kann bei Bedarf innerhalb des Parametersatzes geändert werden.
Die vom USBoard-USS5 benutzten Adressen werden von der Basisadresse berechnet, indem jeweils die folgenden Offsets addiert werden.
Offset zur Basisadresse | Funktion |
---|---|
+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 |
+13 |
Erste Antwort auf CMD_GET_DATA (Gruppe 0: 1 - 4) |
+14 |
Zweite Antwort auf CMD_GET_DATA (Gruppe 1: 5 - 8) |
+15 |
Dritte Antwort auf CMD_GET_DATA (Gruppe 2: 9 - 12) |
+16 |
Vierte Antwort auf CMD_GET_DATA (Gruppe 3: 13 - 16) |
Serielle Schnittstelle¶
Die Kommunikation per USB erfolgt über einen USB-Seriell-Konverter auf dem USBoard-USS5 und kann vom Betriebssystem wie eine klassische serielle Schnittstelle verwendet werden. Auf Anfrage kann der USB-Konverter durch einen RS-232-Konverter ersetzt werden. Das Kommunikationsprotokoll ändert sich dabei nicht.
Bemerkung
Bitte beachten Sie, dass die RS-232-Schnittstelle eine gemeinsame Masseverbindung zwischen USBoard-USS5 und Rechner erfordert.
Die serielle Schnittstelle arbeitet mit 19.200 Baud. Das Protokoll besitzt das gleiche Format wie die CAN-Kommunikation, jedoch mit den folgenden Erweiterungen:
Nachrichten von dem USBoard-USS5 beginnen mit dem Startbyte 0xFF
. Am Ende jeder Nachricht, bestehend aus acht Datenbytes, wird eine 16 Bit lange Prüfsumme angehängt. Damit ist eine vollständige Nachricht 11 Bytes lang.
Byte 1 | Bytes 2-9 | Byte 10 | Byte 11 |
---|---|---|---|
0xFF |
Datenbytes | checksum high byte | checksum low byte |
Die Checksumme berechnet sich nach CRC-CCITT über alle 8 Datenbytes.
Die zum USBoard-USS5 verschickten Nachrichten enthalten lediglich die Datenbytes 1-8.
Implementierung der Checksummenberechnung (C-Code):
unsigned int getCheckSum(unsigned char *c, size_t iNumBytes){
unsigned int uCrc16;
unsigned char ucData[2];
size_t i;
uCrc16 = 0;
ucData[0] = 0;
for(i=0; i<iNumBytes; i++){
ucData[1] = ucData[0];
ucData[0] = c[i];
if(uCrc16 & 0x8000){
uCrc16 = (uCrc16 & 0x7fff) << 1;
uCrc16^= 0x1021;
}else{
uCrc16 <<= 1;
}
uCrc16^= (unsigned int)(ucData[0]) | ((unsigned int)(ucData[1]) << 8);
}
return uCrc16;
}