Отличие Протоколов

Димман

У фута бы несколько протоколов не совместимых

Гена_Большой

все развивается от “хорошего” к “лучшему”, но это не значит, что продвигая “лучшее” производитель должен “забить” на “хорошее”.
ведь в свое время много народу купило приемники с “хорошим” протоколом.
производитель может не развивать “хороший” протокол, а может продолжить его развивать с сохранением совместимости снизу-вверх.
но такой производитель как Футаба продолжит в новых моделях аппаратур поддерживать “устаревшие” протоколы ).

как то так.

7 days later
r1000

Во первых, стоит уточнить, о каких протоколах речь - от аппы к модулю передатчика (не важно внешний он или внутренний), от контроллер модуля передатчика к радиотрансиверу, от радиотрансивера до другого радиотрансивера на приемнике, от радиотрансивера на приемнике до контроллера на приемнике, от приемника на внешние устройства (сервы, полетный контроллер, датчики). На физическом уровне тут все довольно стандартизировано: между аппой и передатчиком и контроллером приемника и полетником - UART в разных вариациях (двух и одно проводной, инвертированный и обычный).Между контроллерами передатчика и приемника протокол задает произодитель трансивера. В 99% случаев это шина SPI. Между трансиверами - способ модуляции радиосигнала опять таки задает производитель трансивера (иногда позволяет выбирать несколько), производителю передатчика и приемника остается выбрать подходящий под наши (по его мнению) задачи. Обычно это GFSK (в различных вариациях, для FrSky, Futaba, Corona) или Lora (для TBS Tracer, Crossfire, FrSkyR9, ExpressLRS, QczekLRS). Но это все физические уровни передачи данных, есть еще логические.
Итого по физическим:

  1. Лучше всего двухпроводной инвертированный UART, но такое нигде не применяется. Инвертация позволяет серьезно снизить число помех на линии. Два провода позволяют передавать каждому соединенному устройству данные тогда, когда ему необходимо (при соответствующих настройках UART). Однопроводность подразумевает главное устройство (например контроллер приемника), которое всегда шлет в полетный контроллер как минимум значения каналов. И иногда может кинуть запрос на получение телеметрии. И в этот момент перейти в режим ожидания, а полетник должен эту телеметрию отдать. Futaba выпустив SBus преследовала благую цель, управлять всем сервами по одному проводу. Идея классная, но дорогая, распространенность оказалась минимальная. FrSky выпустили SmartPort для телеметрии по однопроводному инвертированному UART. Телеметрия - это хорошо, но народ до сих пор испытывает “приключения”, пытаясь подключить его к полетникам на F4, которые не имеют аппаратного инвертера, да еще и занимает отдельный UART. FrSky F.Port - скрещивание данных о каналах и телеметрии в одном проводе. Идеальное решение, так как трансивер все равно не передает информацию, когда получает ее и наоборот. Соответственно нет и необходимости одновременно передавать и получать по UART. Еще и количество сенсоров не ограничено, и занимает всего один порт, в отличии от связки SBus + SmartPort. Но, опять таки, полетников на F4 - много, а инвертеров в них - нет. Вот и не получил распространение. CRSF - протокол от TBS, два провода, никакого инвертирования, прост как тапок. Но есть и минус - кадры телеметрии имеют жесткую структуру и добавить дополнительную информацию уже нельзя. К примеру там не передается баровысота. Только высота GPS (если он есть), а он не всегда есть. Это ограничение обошли с помощью костылей (поддержки передачи MSP), но осадочек остался.
  2. Лучше всего Lora, ибо помехозащищенность выше, а так же есть возможность настройки скорости модуляции, что под необходимые задачи (гонка на коптере или полет за 100500км на большом самолете-дальнолете ) позволяет организовать либо очень точное управление на небольших дистанциях, либо медленное, но на огромных. GFSK вообще сейчас не конкурент. Ну и вооще найти оптимальный баланс под задачи.
    В общем идеальных протоколов нет. Решая одни задачи, производители наталкиваются на новые проблемы. И создавая новое, остаешься либо с поддержкой старого, либо ты FrSky.
  3. Отдельно следует сказать о протоколах между аппой и модулем передатчика. Тут все ваяют что-кому не лень, но либо с возможностью задонатить OpenTX, либо ты FrSky и твой рабочий пилит OpenTX.

SBus + SmartPort - наиболее популярная, хотя и не оптимальная по количеству занимаемых портов, и не позволяет прошивать передатчик (хотя с помощью костылей это возможно)

FrSky PXX2(Access) - позволяет прошивать передатчики, использует всего один двухпроводной инвертированный UART и для каналов и для телеметрии, но имеет один лютый минус - в протоколе захардкожены идентификаторы модулей передатчиков FrSky и их параметры. Т.е. если бы FrSky выпустила бы новый передатчик, нужно было бы обновлять OpenTX. Но из того, чего сейчас нет у FrSky - это передатчики и приемники на Lora-модуляции на 2.4Ггц. Но вроде они и не собираются их выпускать, хотя сейчас все, кто не летает на кроссе/трейсере, переходят на ExpressLRS. Отдельное фи нужно сказать о том, как используется пространство для передачи каналов. Под каждый канал выделено 12 бит, и это 4096 значений - реально много. Только вот записывает туда аппа - значение ширины импулса PPM для канала в виде uint12_t. По этому реально для записи значения достаточнои 10-бит (на самом деле больше, но эти значения выходят за пределы 1000-2000 и игнорируются, а для передачи выходящих значений, достаточно использовать те 24 значения (по 12 справа и лева), которые остаются от 10 бит (1024 варианта). Т.е. значение в миллисекундах = 986 + переданное число от 0 до 1024.

CRSF от TBS - так же как и на уровне приемника - имеет ограниченный, хотя и достаточный функционал, занимает только один UART (данные идут по пину SmartPort), и, главное, позволяет конфигурировать передатчик с помощью пакетов данных, которые могут генерировать LUA-скрипты, а так же отправлять пакеты для получения нестандартной телеметрии по MSP, которые (пакеты) генерирует LUA-виджет телеметрии.

RW9UAO

ну вот появится на алиэкспрессе приёмник с FrSky и дсмХ в одном китайском чипе, и вы купите?
и сколько шуму поднимет фриска и хоризонхобби?
вот потому у всех свои протоколы =)

4 months later
Yuriy
r1000:

Под каждый канал выделено 12 бит, и это 4096 значений - реально много. Только вот записывает туда аппа - значение ширины импулса PPM для канала в виде uint12_t. По этому реально для записи значения достаточнои 10-бит (на самом деле больше, но эти значения выходят за пределы 1000-2000 и игнорируются, а для передачи выходящих значений, достаточно использовать те 24 значения (по 12 справа и лева), которые остаются от 10 бит (1024 варианта). Т.е. значение в миллисекундах = 986 + переданное число от 0 до 1024.

Я правильно понял, что любая аппаратура может передать только значения от 988 до 2012? Сейчас многие сервомашинки указывают угол поворота 180°, но это при сигнале от 500 до 2500 мс. Т.е. реально такое значение не передать?

r1000

Не совсем так. Указать такие значения - возможность есть. Более того, тумблеры передаются как 378 (низ), 1500 (середина, если 3-х позиционный), 2622 (верх). Но это относится только к аппаратурам работающим по access. А вот возможно ли расширить рабочий диапазон стиков и слайдеров - не задавался таким вопросом. В крайнем случае, можно во время калибровки, не доводить до крайних значений. Тогда во время эксплуатации - значения будут уходить за них. Но это так себе решение - сложно откалибровать и так работать будет на всез моделях. Возможно если с кривыми канала поработать, именно до такого диапазона и можно расширить. И еще момент - у ADC stm32, только 10.5 бит из 12-и имеют валидные значения. Так что только хорусы и тандемы обеспечат достаточную точность, так как используют отдельный АЦП.

Yuriy

Спасибо за подробные ответы. Еще вопрос. Сейчас в пультах стоят мультипротокольные трансиверы, которые поддерживают большое количество различных протоколов, как новых, так и старых. А вот в приемниках выбора нет. Нигде не видел сравнения различных протоколов по качеству/надежности связи. У меня большое количество приемников DSM2 (использую аппаратуру Spectrum DX7). На несложных моделях меня эти приемники устраивают, а вот на копийной модели возникает вопрос можно ли его использовать, или надо подобрать что-то более современное/надежное?

r1000

Я не специалист по мультипротоколу совершенно. У меня все что требует большого количества тумблеров - это тандем и р9 акцесс, все что не требует большого количества тумблеров - джампер т-про и елрс на 2.4. Причем когда наконец допилят поддержку протокола crsf в тандем, буду активнее ею пользоваться с внешним модулем елрс. Конкурентов для lora-модуляциии сейчас просто нет. Улетать на 30км на 100мв 2.4ггц и сосискоантенной, да еще и без потери телеметрии - мало кто сдюжит.

PigTail

Мультипротокольность в модуле просто для “удобства” пользователя, чтоб не иметь кучу модулей. Есть приемники в которых выбор в пределах протоколов работающих на одной микрухе ВЧ части, те же Спекрумовские DSMX/DSM2 или та же Delta8 от Фрская.

Если вспомнить график отказа электроники, то максимум приходится на начальный период эксплуатации. Так что на трудозатратных/дорогих моделях ИМХО лучше пользовать чего то обкатанное.

Кстати, Роман, а не подскажете, в ELRS ппм можно запихнуть?

kasatka60
PigTail:

в ELRS ппм можно запихнуть?

Вроде пока еще нельзя.

r1000

На вход или выход? На выход сейчас есть приемник с 5ю PWM, через переходник crsf-pwm - до 6(10 у матека 2-е модели) PWM, плюс поддержка телеметрии. PPM ни на приемниках, ни на передатчиках нет и вряд ли будет добавлена.

PigTail
r1000:

На вход или выход?

На вход вч-модуля естественно, печалька, ну значит не судьба, бум кроссом пользоваться.

6 months later
Sherkhan

Друзья, расскажите на пальцах ( новичок, пару месяцев как открыл для себя это хобби) почему мультипротольный модуль (Atmega328+24LF01, продается на Али) может спариться с детскими квадриками, а сам FlySky i6x, в который он засовывается в тренерский пазьем, этого не умеет? В моем сознание как-то не укладывается это 😃 Почему нельзя написать очередную альтернативную прошивку под саму аппаратуру, что бы он смог очередную пачку протоколов? Или там внутри пульта какой-то чип, который не прошивается? Простите, если “косоязычно” описал. Раздел для вопроса вроде как правильно выбрал.

PigTail

Для начала надо чтобы микрухи вч-модуля i6x соответствовали микрухам приемника Вашей детской игрушки. Прошивка отдельный вопрос, надо что бы у кого то понимающего и умеющего вдруг возникла потребность и наличие времени это сделать.

Гена_Большой
Sherkhan:

почему мультипротольный модуль (Atmega328+24LF01, продается на Али) может спариться с детскими квадриками

потому что приемники на большинстве “игрушке” построены на том же чипе NRF24L01, как самом популярном и дешевом приемо-передающем модуле.
разница только в используемых каналах и настройках.
а все более или менее серьезные производители передатчиков, в том числе и FlySky используют более серьезные решения.