SBUS2-Telemetrie Protokoll
===========================
1. Allgemeiner Informationen
1.1 Generelle Abläufe
1.1.1 Init und Startup Sequenz
Zum Startup sendet die Telemetrie ein Byte (0xAA), der Empfänger muss darauf hin mit einem Byte(0x55) antworten.
Telemetrie/Sensor Empfänger
-----------------------------------------------------
0xAA
------------------->
0x55
<---------------------
1.1.2 Daten Transfer
SBUS2-Telemetriedaten werden nicht Asynchron gesendet, sonder nur nach einer Aufforderung durch den Empfänger.
Der Empfänger wir ein SBUS2-Datenpaket senden in dem Server Steuerungsinformationen enthalten sind und auch im letzen Byte
die Nummer des Frames, der im Anschluss zu senden ist.
Telemetrie/Sensor Empfänger
-----------------------------------------------------
SBUS2-Datenpaket + Request Frame
<-------------------------------
Requested Frame (1 Frame = 8 Slots = 24 Byte)
-------------------------------->
1.2 Protokoll Nachrichtenaufbau
1.2.1 Frames und Slots
Ein Frame besteht auf 24 Bytes.
1.2.1.1 vom Empfänger
Wenn der Frame vom Empfänger gesendet wurde, enthält der Frame Servo Steuerinformationen und zusätzlich im letzen Byte
die Information ob es ein Valider SBUS2-Frame ist oder ein normaler SBUS-Frame.
Bei einem SBUS2-Frame enthält das letzte Byte im High-Nibble die Information welcher Frame von der Telemetrie übertragen werden soll.
If (lastbyte & 0x0f) == 0x04 -> SBUS2 Frame
requestFrame = lastbyte & 0x30
If (lastbyte & 0x0f) == 0x00 -> nur Servo Daten
else -> irgendein anderer Frame
Startbyte = 0x0F gefolgt von Servo-Datenaten
Servo Daten
--------------
16 Analog Channel
2 Digital Channel (1 Byte)
11 Bits pro Analog Channel
16 (Analog Channel) X 11 Bit = 176 Bit = 22 Byte
22 Byte + 1 Byte (Digital) + 1 Byte (lastbyte) = 24 Byte
Timeout
-------------
Vermutung: Ein Frame muss innerhalb von 200 ms komplett empfangen worden sein, sonst entsteht ein Frame-Error
1.2.1.2 von der Telemetrie
Die Daten von der Telemetrie sind auch in Frames organisiert, wobei ein Frame aus 8 Slots besteht.
Insgesammt gibt es 32 Slots die in 4 Frames zu 8 Slots organisiert sind.
Es werden immer ganze Frames gesendet, die auf einer 8ter Grenze beginnen.
Frame 1 : Slot 0-7
Frame 2 : Slot 8-15
Frame 3 : Slot 16-23
Frame 4 : Slot 24-32
Jeder Slot besteht aus 3 Byte (SLOT-ID, DATA1, DATA2)
Somit haben wir für einen Frame 8 (Slots) X 3 Byte = 24 Byte Daten für einen Frame
Es wird immer nur der Frame gesendet, welcher vom Empfänger angefordert wurde.
Delays
----------
Zwischen dem Empfang eines Frames und dem senden der Telemetrie Daten ist ein minimum Dealy von 0,5 ms einzuhalten.
Jeder Slot wird mit einem Delay von 1 ms zwischen den Slots übertragen.
Das ganze ist nur aus dem Source Code per reverse Engineering ermittelt worden.
Ich vermute das die Delays jedoch nur minimal delays sind, die nicht unterschritten werden dürfen, aber überschritten werden können ohne negative einflüsse.