Структура данных телеметрии FrSky

Приемник FrSky с телеметриейПо сути эта статья является частичным (и весьма вольным) переводом файла Protocol_two way telemetry series (описание структуры данных в системах FrSky с двунаправленной передачей данных) с некоторыми моими комментариями. Нужна мне была Телеметрия FrSky - графическое отображения одного пакета данныхдля облегчения работы над прошивкой дисплея телеметрии FrSky. Может быть будет еще кому-то полезна (а возможно это описание давно уже где-то переведено и выложено, и я как всегда сделал ненужную работу :) ). В общем – по большому счету – статья не слишком интересная (скорее – вспомогательная для другой, более интересной). 

Структура протокола передачи данных телеметрии FrSky
(Two-way system – система двунаправленной передачи данных)

Для нормальной работы с UART сигналом в FrSky его нужно инвертировать. В файле приведена схема простейшего инвертора. Для полноценного использования системы телеметрии от FrSky в своих собственных разработках, таких инверторов нужно сделать три – один на вход RX приемника, и два на передатчик в пульте. Схему инверторов можно упростить до предела, как это сделал я (возможно не стоит так делать :) )Схема инверторов для телеметрии FrSky

Из всех пакетов данных, которые отсылаются с самолета на землю нас интересуют два.

Телеметрия FrSky - состав одного пакета данныхТелеметрия FrSky - состав одного пакета данныхПервый пакет (таблица 3.1.3 в оригинальной инструкции). Этот пакет передается всегда, когда включены передатчик и приемник FrSky. В нем содержится информация штатной телеметрии.

0x7E 0xFE AV1 AV2 RSSI 0×00 0×00 0×00 0×00 0×00 0x7E

Т.е. имеем 11 байт. 1 и 11 байты начала и конца пакета данных (0x7E). 2 байт — индентификатор пакета (0xFE). AV1 AV2 — напряжения на соотвествующих пинах приемника; RSSI – байт, в котором содержится информация о качестве связи (не разбирался досконально, но чем больше это число – тем лучше связь). Потом идет пять нулевых байт.

Как только на входе RX приемника FrSky появится какая-то информация (даже один байт) то приемник вместе с первым пакетом штатной телеметрии FrSky передаст еще и второй пакет (таблица 3.1.4 в оригинальном описании). Вот его структура:

0x7E 0xFD Length NC byte1 byte2 byte3 byte4 byte5 byte6 0x7E

Length — количество байт, за достоверность передачи которых ручается система FrSky, NC – заявлено, что этот байт не используется, но на самом деле – это счетчик переданных пакетов (от нуля до 31). Дальше – пользовательские байты, максимум шесть штук.

При декодировании сигналов телеметрии FrSky нужно помнить о том, что существуют два байта, которые нельзя использовать внутри пакетов данных телеметрии FrSky. Это 0x7E и 0x7D. Для описанных двух пакетов – запрещенным является только байт 0х7D. В оригинале файла с описанием протокола говориться, что если внутри пакета встречается байт 0x7D, его нужно проигнорировать, а следующий байт сложить по модулю 2 с байтом 0х20 (т.е. byte XOR 0×20).


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>