из одного аналогового канала сделать несколько дискретных

Soling
Aleksey_Gorelikov:

Что мешает гнать по этому каналу цыфру и на приемной стороне дешифровать?

Формат мешает. Декодер читает длительность импулса. По его окончанию считает, что пошел другой канал. Набивать цифирь какой то другой модуляцией - головная боль. Так что матрица проще. Недостаток - возможность использовать одновременно только одну дискретную команду. Но, это тоже можно обойти, усложнив кодер.
Например, передавать в одной пачке только инфу по одному из, скажем 8 резисторов. В следующей посылке, другой. И т.д. То есть, разнести все по времени.
А в приемнике пытаться без ошибок причитать всю эту кашу. Или, уж пойти дальше и заставить формировать импульс по этому каналу процессор.

Aleksey_Gorelikov

Так я ж и предложил принять одну длительность за 0, другую за 1. А в доп-декодере (который втыкается в разъем серво) читать последовательность и рулить чем-то. Какой формат то мешает???

Soling

На каждый канал выделен один импульс. В простейшем случае управления одним дискретным каналом так и делают. Минимальный сигнал “0” - выключено, максимальный “1” - включено. Но, речь идет о нескольких дискретных механизмах управляемых по одному пропорциональному каналу. Это можно сделать разбив максимальную длительность импульса на несколько фиксированных по длительности. А как передать цифрой в одном импульсе, что надо включить 5ую серву?

Aleksey_Gorelikov

Обычно в тех каналах, где сервы дискретно двигаются - быстродействие не нужно… Ну и пусть декодер переместит 5-ю серву при получении последовательности следующих “канальных” импульсов: 11111111 1001 1 К примеру… ну первых 8 бит для синхронизации, потом номер машинки, потом - ее положение. Ну да, не в одном пакете ППМ передали инфу, но для дискретных каналов задержка в четверть секунды не критична.
З.Ы. пример не очень удачен, т.е. синхронизация может сбиваться. Ну еще 4 нуля в конце передать, к примеру. 😃 Или какие-нибудь известные протоколы повторить…

Soling

Можно график? Боюсь так не разберемся. 😃 Лучше один раз увидеть. 😃

Aleksey_Gorelikov

Что увидеть? что в девяти пакетах ППМ канальный импульс имеет длительность 2мс, потом в двух пакетаз он же 1мс, и еще в двух снова по 2мс? 😃

Soling

Понял. Это то, о чем я писал. Разнос по времени. Но, засада в том, что надо как то надежно обозначить начало пакета. В самом формате используют синхропаузу. А как тут? Можно, конечно, сделать самую короткую посылку синхронизирующей. Но, вдруг, помеха и она пропала? Практически в двое снижается стойкость к помехе.
Хорошо ли?

Aleksey_Gorelikov

Ну я привел пример элементарный. Синхронизироваться по 4 нулям+8 единицам. Последовательность не повторится. Можно посмотреть, что изобрел тот же граупнер\футабы\мульиплекс… ВРоде тут проект расширения каналов с исходниками www.toeging.lednet.de/flieger/profi/…/nautic.htm Думаю принцип тот-же. Сам не смотрел. Только что нагуглил. Удачи!

Soling

То есть, потерять время N полных пропорциональных пакетов только на синхронизацию? Жалко. 😃

msv

Цифовых протоколов можно напридумывать массу… Или в каждой посылке передавать адрес (номер дискретного канала)+ значение по этому каналу, или передавать признак цикловой синхронизации, затем в нескольких пакетах данные по каналам, ну и закончить цикл для приличия CRC. У всех способов кодирования будут свои очевидные достоинства и недостатки, но главная проблема, что требуется доработка кодера… Если для меня и Алексея это не проблема 😉, то для топикстартера (если он хочет использовать готовую аппу с мин. переделками) действительно проще хотя бы на резисторах ЦАП слепить. В этом случае следует помнить, что канальный интервал будет сокращаться с ростом кол-ва каналов в геометрической прогрессии, и надежное декодирование, во всяком случае с аналоговым каналом связи, будет нереально…

Soling

Согласен. Увлеклись. Реальнее, все же на резисторах остановится. Иначе нужны серьезные переделки.