Datenformat Schnittstelle Smartphone <-> Flight Controller

Schnittstelle

Die Daten zwischen Smartphone und Flightcontroller werden über eine serielle Schnittstelle übertragen. An den USB-OTG-Port des Handys wird dafür ein Kabel mit integriertem FTDI- oder CP2102 Chip angesteckt. Diese Chips wandeln das USB-Signal in ein serielles UART Signal um. Zu beachten ist, dass der Flightcontroller 3,3V Pegel benötigt. Dies muss bei der Wahl des Kabels beachtet werden.

UART mit 115200 Baud

1 Startbit, 8 Datenbits, 1 Stopbit

3,3V TTL-Pegel

Kein Handshake

Datenprotokoll

Aufbau des Datenframes

Startbyte Channel_0 Channel_1 …. Channel_n CRC_16Bit Stopbyte

n ist auf 15 eingestellt.

Ein Frame besteht also aus 52 Bytes (Start-, Stopbyte, 2 Byte CRC und 16 16Bit-Channels). Da ein Byte aus 10 Bits besteht (Startbit, 8 Datenbits, Stopbit), benötigt ein Frame

(52 Byte * 10 Bits/Byte) /  115200 Baud = 4,514ms

Damit können maximal ca. 200 Frames/s vom Handy an den Flightcontroller geschickt werden.

Startbyte

Als Startbyte wird 0xAA hex (170 dezimal) übertragen.

Channel_0 … Channel_n

Alle Channels werden als 16 Bit signed integer binär codiert übertragen (Low-Byte first, High-Byte second). Insgesamt werden 16 Channels übertragen (n = 15).

CRC_16Bit

Die Checksumme wird berechnet: todo

und als 16 Bit Wert übertragen (Low-Byte first, High-Byte second).

Stopbyte

Als Stopbyte wird 0x55 hex (85 dezimal) übertragen.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.