Кодирование сигнала для передачи данных по радиоканалу
Есть два узла оснащённых приёмопередатчиками. Первый узел- пульт управления ( ведущий) - передает дискретные команды вкл\откл (по мере необходимости) и запросы состояния ведомого (каждые 0.5 секунд) Второй - принимает команды и запросы состояния( дискретные сигналы -да\нет.) по которым и передаёт своё состояние по радиоканалу. Колличество ведомых <8. Подскажите способ кодирования сигнала , примеры , алгоритмы для микроконтроллера на Си, может какие сайты с информацией по этому вопросу .
- Реклама
- Сообщения: 314
- Зарегистрирован: Сб июл 07, 2012 13:57:11
Те есть тебе нужна в каком то удобном для тебя физическом состоянии двунаправленная линия связи?
Всего то?
Закажи параметры обмена на какое расстояние и как ты хочешь обмениватся информацией
- через астрал, эфир, по оптоволокну, проводу, экзотическим излучением, силой воли...
Всего то?
Закажи параметры обмена на какое расстояние и как ты хочешь обмениватся информацией
- через астрал, эфир, по оптоволокну, проводу, экзотическим излучением, силой воли...
радиоканал для тебя эфир или оптоволокно, я же упомянул о нем...
параметры обмена - менее 2400 бод.
передаваемые параметры дискретные
параметры обмена - менее 2400 бод.
передаваемые параметры дискретные
- Сообщения: 314
- Зарегистрирован: Сб июл 07, 2012 13:57:11
Если у тебя уже есть два "приёмопередатчика" - два комплекта передатчиков и два комплекта приемников чем тебя не устраивает линия связи - эфир или оптоволоконный канал?
Есть требования или ограничения к линии связи?
Есть требования или ограничения к линии связи?
Вопрос не в организации радиоканала, а в способе кодирования сигнала, сигналы дискретные: команды-включить\выключить , запросы состояния -включено или отключено.
- Реклама
Если Вас интересует помехоустойчивость, достаточно применить CRC (контрольная сумма). Можно применить протокол MODBUS - для Вашего случая - то, что доктор прописал.
Если нужна устойчивая к взлому (криптоустойчивая) система, то смотрите в сторону систем challenge-response c хеш-функциями типа MD5. Можно модифицировать MODBUS фреймы, заменив CRC на криптостойкий HMAC http://ru.wikipedia.org/wiki/HMAC Сообщение при этом увеличится на 512 байт, но за криптостойкость нужно платить. Если делать будете на AVR - AVRCryptolib сильно поможет
Если нужна устойчивая к взлому (криптоустойчивая) система, то смотрите в сторону систем challenge-response c хеш-функциями типа MD5. Можно модифицировать MODBUS фреймы, заменив CRC на криптостойкий HMAC http://ru.wikipedia.org/wiki/HMAC Сообщение при этом увеличится на 512 байт, но за криптостойкость нужно платить. Если делать будете на AVR - AVRCryptolib сильно поможет
Все будет только лучше, в крайнем случае - хуже.
Что используется в качестве приемопередатчиков? От этого зависит все остальное.
Радиостанция моторолла GM340 на каждой стороне. Частота 430МГц. Есть возможность передачи данных. Где есть доступное описание протокола MODBUS? как нибудь попроще? Устойчивость к взлому не нужна, нужна помехоустойчивость.
GM340 с модемами? Или модем надо тож делать?) Ибо если модем есть то ничего делать не надо, CRC и помехоустойчивое кодирование там уже реализовано. Если же модема нет - то это отдельная долгая и большая история его изобретать.
С модемом. Меня интересует способы формирования и декодирования команд, как в радиоуправлении моделями, пультах ТВ и тд. примеры , образцы кода на Си.
В радиоуправлении моделями, пультах ТВ и прочем есть необходимость реализации канального уровня. У вас такой необходимости нет. Только прикладной. Какие примеры вы хотите получить? Как передавать/принимать байт в/из UART? Ибо задача сводится именно к этому. Ваша команда поместится в один байт, скажем такого формата:
Если ответы от ведомых длиннее 4 бит - тогда надо прикрутить еще какое то подобие транспортного уровня. Если вам это нужно напишите, скажу как
Опишите точнее задачу, формат команд, количество состояний, в общем что в итоге хотите получить
Код: Выделить всё
typedef struct
{
unsigned char SlaveID : 3; // номер вашего ведомого
unsigned char Type :1; // тип команды - запрос состояния или вкл/выкл
unsigned char Data : 4; // собственно 4 бита для данных
} Frame;
Если ответы от ведомых длиннее 4 бит - тогда надо прикрутить еще какое то подобие транспортного уровня. Если вам это нужно напишите, скажу как
Опишите точнее задачу, формат команд, количество состояний, в общем что в итоге хотите получить
Зависит конечно от задачи, но по моему будет неплохо работать аппаратные кодеки RC5 .
ученые долго думали,в чем измерять частоту.... С тех пор и пишут Hz
Да ему шифрование не нуна, зачем ему rc5?)
Опишу поподробней. Есть 3 выключателя 3фаз 380в .Есть пульт управления . Расстояние между ними ~500 метров. Необходимо передавать команды на каждый выключатель отдельно включить или выключить - это по мере необходимости и каждые 0.5 секунд посылать запрос на состояние всех выключателей -это постоянно , чтобы контролировать состояние выключателей .На стороне выключателей при получении запроса состояния, контроллер должен включить радиостанцию на передачу и отправить информацию о состоянии выключателей . На стороне пульта она должна быть принята и выведена на светодиоды вкл/откл.
Ну значит в один байт помещаетесь. Собираете этот байт, посылаете в модем по уарту, на приемнике получаете из уарта байт и делаете что нужно. Что конкретно вам непонятно? Или все непонятно?))
А где бы подсмотреть примеры , кусочки кода как это наилучшим образом делается?
Я применял для работы по радиоканалу (трансиверы YS-1100U на 433 МГц) протокол Wake. Описание здесь: http://digit-el.com/files/open/wake/wake.html
Я думаю слишком сложно, тут достаточно более простой реализации. Судя по вопросам ТС ему будет сложно это дело реализовать.
Автор, нету кусков кода, это самые базовые знания.
Автор, нету кусков кода, это самые базовые знания.
CRC будет не лишним. Потому как, чтоб модем что то передал, будет достаточно дать стартовый бит.3 выключателя 3фаз 380в
- Сообщения: 314
- Зарегистрирован: Сб июл 07, 2012 13:57:11
Можно поинтересоваться у уважаемых Гуру?
Если есть два передатчика передающих модулированный код и два приемника его принимающих и понимающих (декодирующих) код.
То зачем нужно дополнительное преобразование что бы обеспечить дуплексную связь в канале, при условии что автор отклонил какие либо ограничения по каналу связи?
Чисто шкурный интерес - мне нужно реализовать то же самое в дуплексе.
Если есть два передатчика передающих модулированный код и два приемника его принимающих и понимающих (декодирующих) код.
То зачем нужно дополнительное преобразование что бы обеспечить дуплексную связь в канале, при условии что автор отклонил какие либо ограничения по каналу связи?
Чисто шкурный интерес - мне нужно реализовать то же самое в дуплексе.


