Всем привет нуждаюсь в дистанционном управлении 20 тью нагрузками хотел сначала через два пк сделать, и по вай-фай, через радмин, управлять...даже ветку создал соответствующую, но увы -знаний маловато... сейчас появилась задумка по радио передавать (радиомодули готовые продаются) на ATtiny2313 сделать кодер и декодер... собираюсь использовать динамический опрос клавиатуры и динамическую индикацию - то-есть динамическое подключение транзисторов а возможно и галваническую развязку тут-же сделаю на оптронах вот только кодеры-декодеры ни когда не делал ... радио-модули со 100% амплитудной модуляцией и с цифровым входом-( выходом) как синхронизировать? как должен выглядеть код передаваемый с ATtiny2313 на радио-модуль? так: 000000000000000000000000 000000000000000000000001 первая нагрузка 000000000000000000000010 вторая нагрузка ..... 000010000000000000000000 двадцатая нагрузка
или так
00000000 00000001 первая нагрузка 00000010 вторая нагрузка 00000011 третья нагрузка ....... 00010100 двадцатая нагрузка ???? или еще как то? рад буду всем ответам, советам и ссылкам! отдельная благодарность всем лицам которые покажут кусок кода(на ассамблере!!!) отвечающий за вывод информации в радио-модуль..
_________________ не зная броду не лезь к вольтмоду
Ой-ой, вы знаете сколько мусора в эфире? При таком подходе у вас постоянно будут ложные срабатывания. Лучше применять помехозащищенное кодирование. Или в крайнем случае пакет с синхронизацией для каждого бита как в 1-wire и считать команду успешной если она без ошибок принята к примеру 10 раз подряд. Вот пример команды с пульта(радиобрелок) типа такой, что используется в автосигнализациях. Обратите внимание, что начало каждого бита синхронизируется своим старт-битом.
Ой-ой, вы знаете сколько мусора в эфире? При таком подходе у вас постоянно будут ложные срабатывания. Лучше применять помехозащищенное кодирование. Или в крайнем случае пакет с синхронизацией для каждого бита как в 1-wire и считать команду успешной если она без ошибок принята к примеру 10 раз подряд. Вот пример команды с пульта(радиобрелок) типа такой, что используется в автосигнализациях. Обратите внимание, что начало каждого бита синхронизируется своим старт-битом.
Упование на одну только CRC в условиях сильных помех тоже не панацея - можем получить не работающий канал. Я бы делал дублированную ( или утроенную ) посылку с СRС в каждой посылке. Приняв, проверяем, в какой из посылок CRC не битая, и на нее реагируем.
CRC что это? максимальная частота прямоугольных импульсов на входе передатчика 6 кГц (из датащита на передатчик) это значит что в 1 секунду можно передать 12 000 000 бит! (если я правильно понимаю) сколько бит должна занимать одна команда? (или каждая команда весит по разному?)
_________________ не зная броду не лезь к вольтмоду
что такое "пакет"? сколько битов он содержит? я понимаю как сделать передатчик = по нажатию определенной кнопки, в эфир будет валится определенный код, а в остальное время - ни чего излучатся не будет - это не для экономии батарей, а для того что бы не засорять эфир (о других то же думать надо) но я не догоняю как производить запись в микро-контроллер этого (чтение с приемника), если этот код будет повторятся несколько раз а потом сравниваться то каким макаром синхронизировать? по этому, и прошу подсказать неопытному мне, как можно это все организовать? лучше даже кусочек кода на ассемблере для приемника.... мне на ум пришло только то что можно на каждую кнопку передатчика повесить генератор (софтварный) определенной частоты, а на приемнике определять какая частота генерируется передатчиком и в соответствии с этим включать определенную нагрузку....
_________________ не зная броду не лезь к вольтмоду
Ровно столько, сколько вы в него положете. Короче, от задачи зависит. В нашем(точнее вашем) случае может выглядеть так: [СТАРТ][ДАННЫЕ][Контрольная сумма] На 20 команд думаю CRC8 будет достаточно. 20 нагрузок - это хотя бы 5 бит. И на старт можно выделить хоть от 1 бита(но лучше скажем . Итого, длина посылки: 1(8)+5+8 бит.
uwrtey писал(а):
то каким макаром синхронизировать?
Между пакетами в простых системах обычно делают довольно большую(10-20мс) паузу. Вот по этой паузе и идет синхронизация.
uwrtey писал(а):
может, на подобии DTMF сделать?
Если вы сделаете аналоговый тракт, то есть простые в использовании телефонные ИМС кодеров-декодеров DTMF.
uwrtey писал(а):
не понимаю как приемник определит синхроимпульс от другого сигнала/помехи....
Никак. Если посылка приходит битая, то ее не надо обрабатывать. Есть конечно спец. алгоритмы кодирования, кот. позволяют восстанавливать битую инфу, но не думаю что это тот случай)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения