VBOX 3i Serielles Schnittstellenprotokoll (RS232)
VB3i Serielles Ausgabeformat
115.200 Baud, keine Parität, 8 Datenbits, 1 Stoppbit
Format der Nachricht:
$VBOX3i,nnnn0000,stttaaaaoooovvhheeezzyyxxffffjjjj1111222233334444lpddddddqqrrii77778888kkmmmgggg559966cc
$VBOX3i und die Kommas sind in ASCII, der Rest ist binär.
Auch wenn nicht alle unten aufgeführten Kanäle standardmäßig im seriellen Datenstrom vorhanden sind, es sei denn, sie wurden über die VBOX Setup software ausgewählt, zeigt die Tabelle die Reihenfolge, in der sie im Datenstrom erscheinen.
Geben Sie die ersten 4 Bytes (nnnn) als Hexadezimalcode in 8 Zeichen ein:
Format | Bytes | Beschreibung | nnnn, Bitmaske | |
---|---|---|---|---|
nnnn |
4 |
Reserved (Reserviert, um anzuzeigen, dass der Kanal vorhanden ist) |
||
0000 | 4 | Reserved (reserviert) | ||
s | Integer | 1 |
Satellites (Satelliten) Anzahl der Satelliten |
0x00000001 |
ttt | Integer | 3 |
Time (Zeit) Anzahl der 10 ms Zeittakte seit Mitternacht UTC |
0x00000002 |
aaaa | Signed (vorzeichenbehaftet) | 4 |
Breitengrad: (MMMM,MMMMM * 100.000) Vorzeichenbehaftetes Integer der dezimalen Minuten *100.000. Positiv = Norden, Negativ = Süden |
0x00000004 |
oooo | Vorzeichenbehaftet | 4 |
Longitude (Längengrad) (MMMMM.MMMMM * 100.000) Vorzeichenbehaftetes Integer der dezimalen Minuten *100.000. Positiv = Westen, Negativ = Osten |
0x00000008 |
vv | Integer | 2 |
Velocity (Geschwindigkeit) Geschwindigkeit in Knoten * 100 |
0x00000010 |
hh | Integer | 2 |
Heading (Fahrtrichtung) Fahrtrichtung in Grad gegenüber Norden * 100 |
0x00000020 |
eee | Integer | 3 |
Height (Höhe) Aufstellhöhe. In Metern WGS84 * 100 Wahre vorzeichenbehaftete 24 Bit-Zahl |
0x00000040 |
zz | Vorzeichenbehaftet | 2 |
Vertikal Velocity Vertikalgeschwindigkeit in m/s * 100 |
0x00000080 |
yy | Vorzeichenbehaftet | 2 |
Lat acc (GPS) Querbeschleunigung in g * 100 |
0x00000100 |
xx | Vorzeichenbehaftet | 2 |
Long acc (GPS) Längsbeschleunigung in g * 100 |
0x00000200 |
ffff | Integer | 4 |
Brake Distance (Bremsweg) (M * 12800) |
0x00000400 |
jjjj | Integer | 4 |
Distance (Abstand) (M * 12800) |
0x00000800 |
1111 | Float | 4 | Internal analogue ch1 (interner Analogkanal ch1) | 0x00001000 |
2222 | Float | 4 | Internal analogue ch2 (interner Analogkanal ch2) | 0x00002000 |
3333 | Float | 4 | Internal analogue ch3 (interner Analogkanal ch3) | 0x00004000 |
4444 | Float | 4 | Internal analogue ch4 (interner Analogkanal ch4) | 0x00008000 |
l | Integer | 1 |
GLONASS satellites Anzahl der GLONASS Satelliten |
0x00010000 |
p | Integer | 1 |
GPS satellites Anzahl der GPS Satelliten |
0x00020000 |
dd | 2 | Reserved (reserviert) | 0x00040000 | |
dd | 2 | Reserved (reserviert) | 0x00080000 | |
dd | 2 | Reserved (reserviert) | 0x00100000 | |
Integer | 2 | VBOX Seriennummer | 0x00200000 | |
rr | Integer | 2 | Kalman Filter-Status | 0x00400000 |
ii | Integer | 2 | Solution Type | 0x00800000 |
7777 | Integer | 4 |
Velocity Quality (Qualität der Geschwindigkeit) Km/h * 100 |
0x01000000 |
8888 | Vorzeichenbehaftet | 4 | Internal Temperature (Innentemperatur) | 0x02000000 |
kk | Integer | 2 | CF Buffer size (Speicherkartenpuffer) | 0x04000000 |
mmm | Integer | 3 |
RAM Address (RAM-Adresse) Freier Speicherplatz auf der CF-Karte * 980991 = voll, 0 = leer |
0x08000000 |
gggg | Integer | 4 | Event time 1 (Ereigniszeitpunkt 1) | 0x10000000 |
55 | Integer | 2 | Event time 2 (Ereigniszeitpunkt 2) | 0x20000000 |
99 | Integer | 2 | Battery 1 Voltage (Spannung Akku 1) | 0x40000000 |
66 | Integer | 2 | Battery 2 Voltage (Spannung Akku 1) | 0x80000000 |
cc | 2 | Checksum (Prüfsumme) CRC der Nachricht, siehe Hinweis 1* |
NEWCAN Serielles Ausgabeformat
Wenn auch CAN-Kanäle für den seriellen Datenstrom ausgewählt wurden, sieht der serielle Datenstrom wie folgt aus:
$VBOX3i,nnnn0000,stttaaaaoooovvhheeezzmmmggggcc$NEWCAN,####,1111.....WWWWXX
$NEWCAN,####,1111.....WWWWXX entspricht den zusätzlichen CAN-Kanaldaten zu dem seriellen Datenstrom.
XX entspricht einer Prüfsumme aus zwei Byte. - Dieses Format entspricht dem vorherigen, siehe HINWEIS 1 unten
Das serielle Ausgabeformat ist $NEWCAN,####,1111.....WWWWXX
#### ist ein 32 Bit-Wert, der die Anzahl der folgenden Bytes darstellt.
Die Reihenfolge, in der die Daten übermittelt werden, hängt von der Reihenfolge ab, in der Sie die Kanäle auf dem Setup-Bildschirm auswählen. Wenn zum Beispiel der erste Kanal, den Sie zum Aufzeichnen gewählt haben, der Kanal 1 des FIMs ist, dann enthalten die ersten 4 Byte die Daten des FIM-Kanals. Wenn der zweite Kanal ADC02 Kanal4 war, dann enthalten die nächsten 4 Byte die Daten für ADC02. Wenn Sie anschließend den Kanal FIM 1 entfernen (d. h. sich entscheiden, ihn nicht aufzuzeichnen) und dafür ADC02 Kanal 1 wählen, dann enthalten die ersten 4 Byte nun die Daten für ADC02 Kanal 1.
Die Daten für jeden Kanal werden in einem Standard-IEEE-32 Bit-Gleitkommaformat übermittelt.
Bytes | Beschreibung | Bitmaske | |
---|---|---|---|
$NEWCAN | 7 | String header (Kopfzeile der Zeichenfolge) | |
, | 1 | Komma als Trennzeichen | |
#### | 4 | Reserviert zum Anzeigen, dass der Kanal vorhanden ist | |
, | 1 | Komma als Trennzeichen | |
1111 | 4 | CAN-Kanal 1 | 0x1 |
2222 | 4 | CAN-Kanal 2 | 0x3 |
3333 | 4 | CAN-Kanal 3 | 0x7 |
4444 | 4 | CAN-Kanal 4 | 0xF |
5555 | 4 | CAN-Kanal 5 | 0x1F |
6666 | 4 | CAN-Kanal 6 | 0x3F |
7777 | 4 | CAN-Kanal 7 | 0x7F |
8888 | 4 | CAN-Kanal 8 | 0xFF |
9999 | 4 | CAN-Kanal 9 | 0x1FF |
aaaa | 4 | CAN-Kanal 10 | 0x3FF |
bbbb | 4 | CAN-Kanal 11 | 0x7FF |
cccc | 4 | CAN-Kanal 12 | 0xFFF |
dddd | 4 | CAN-Kanal 13 | 0x1FFF |
eeee | 4 | CAN-Kanal 14 | 0x3FFF |
ffff | 4 | CAN-Kanal 15 | 0x7FFF |
gggg | 4 | CAN-Kanal 16 | 0xFFFF |
hhhh | 4 | CAN-Kanal 17 | 0x1FFFF |
iiii | 4 | CAN-Kanal 18 | 0x3FFFF |
jjjj | 4 | CAN-Kanal 19 | 0x7FFFF |
kkkk | 4 | CAN-Kanal 20 | 0xFFFFF |
llll | 4 | CAN-Kanal 21 | 0x1FFFFF |
mmmm | 4 | CAN-Kanal 22 | 0x3FFFFF |
nnnn | 4 | CAN-Kanal 23 | 0x7FFFFF |
oooo | 4 | CAN-Kanal 24 | 0xFFFFFF |
pppp | 4 | CAN-Kanal 25 | 0x1FFFFFF |
qqqq | 4 | CAN-Kanal 26 | 0x3FFFFFF |
rrrr | 4 | CAN-Kanal 27 | 0x7FFFFFF |
ssss | 4 | CAN-Kanal 28 | 0xFFFFFFF |
tttt | 4 | CAN-Kanal 29 | 0x1FFFFFFF |
uuuu | 4 | CAN-Kanal 30 | 0x3FFFFFFF |
vvvv | 4 | CAN-Kanal 31 | 0x7FFFFFFF |
wwww | 4 | CAN-Kanal 32 | 0xFFFFFFFF |
ZZ | 2 | Checksum (Prüfsumme) |
32 Bit-Gleitkommazahlen
Das Bitmuster b1b2b3...b9b10b11...b32 eines Worts in einem 32-Bit-Rechner stellt die tatsächliche Zahl dar
(-1)s x 2e-127 x (1.f)2
wobei s = b1, e = (b2...b9)2und f = b10b11...b32.
Beachten Sie, dass nur der Bruch der genormten Mantisse gespeichert wird, sodass ein verdecktes Bit vorhanden ist und die Mantisse tatsächlich von 24 binären Bits dargestellt wird.
Beispiel des Bruchabschnitts der Berechnung der 23 Bits 01110111100110110011110 würde 1 werden. 01110111100110110011110
Die 23 Bits nach dem 1. stehen für das Vorhandensein von binären gewichteten Brüchen ½, ¼, 1/8, 1/16, 1/32,1/64 usw.
* Hinweis 1:
CRC-Berechnungsbeispiel:
s[n] ist eine Zeichenfolge mit der Nachricht
Polynomial:= 4129
CRC:=0;
for Loop:=1 to Length(s) do
begin
Temp:=s[Loop];
CRC:= CRC xor (integer(Temp) * 256);
CRC:= CRC mod 65536;
for i:=7 downto 0 do
begin
if ( (CRC and 32768)=32768) then
begin
CRC:= CRC *2 ;
CRC:= CRC xor Polynomial;
end
else
begin
CRC:= CRC *2 ;
end;
CRC:=CRC mod 65536;
end;
end;
result:=CRC;