0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
|
|
1 | |
простой P2P протокол на базе кодировки манчестер14.10.2015, 18:12. Показов 21567. Ответов 45
Метки нет (Все метки)
глобальная идея - сделать простую проводную сеть с одним сигнальным и двумя силовыми проводами для освещения
провода уже монтируют, а я сижу изобретаю велосипед) в основе кодировка манчестер но стоит цель сделать универсальную библиотеку к которой можно сделать драйвер в виде нескольких простых функций теоретически для любого МК должны исключаться конфликты при передаче и отрабатываться ошибки связанные с возможными конфликтами а так же вся обработка должна делаться на прерываниях драйвер под конкретный МК подразумевает инициализация входа и выхода (требуются два пина), одного таймера и прерываний по пину входа реализовал передатчик и могу видеть что код генерируется правильно, могу видеть данные с декодированием в логическом анализаторе так же вижу, что два устройства могут посылать данные на одной шине без конфликта максимальная скорость передачи - один бит на два вызова таймера перед посылкой заполняется буфер и выставляется статус готовности к передаче после чего при каждом срабатывании таймера идет отправка данных сейчас занят декодированием и возникла дилемма, из за которой и создал тему стою на распутье вижу два варианта реализации декодирования: 1) в рамках того же самого обработчика прерываний таймера который уже использован для передачи настроить счетчик который будет считать такты таймера минус в этом варианте в том, что соотношение 2 вызова на один бит нужно увеличить как минимум до 4 вызовов на один бит у нас основная сложность в манчестере - определить середину бита, потому что именно направление изменения статуса входа в середине периода дает нам значение бита данных так вот при четырех вызовах на бит наш счетчик гарантированно досчитает до 3 к тому моменту когда возникнет следующая середина бита 2) задействовать значение железного счетчика таймера МК (OCR для AVR) сделать 16 битный счетчик 8 бит которого это железный счетчик таймера, а еще 8 бит - счетчик прерываний по переполнению таймера при получении стартового бита запоминаем значение этого 16 битного счетчика и используем его как мерило длины одного бита при последующем анализе берем отклонение 25% и если очередное изменение значения входа соответствует значению счетчика от 75-125% то считаем, что это очередная середина бита для точности после каждой середины можно сбрасывать железный счетчик плюс этого варианта - более точное определение длины такта. теоретически позволит читать данные с устройства на котором частота генератора сильно отличается от частоты устройства-приемника минус этого вариант - большая сложность кода и драйвера, нужно больше функций определять в драйвере менее гибкое решение - по сути таймер нужно будет эксклюзивно выделять под манчестер могут быть сложность с точной настройкой частоты передачи, в частности с применением режима CTC на AVR пока отлаживаю первый вариант и получил большие ошибки с определением середины бита пришлось увеличить соотношение - 8 прерываний таймера на один бит, ошибки пока пропали, но и скорость тестирования всего 500 бит/сек кто реализовывал манчестера, поделитесь опытом и идеями
0
|
14.10.2015, 18:12 | |
Ответы с готовыми решениями:
45
Приложение p2p и протокол PNRP Как правельно написать простой протокол ? P2P шара, или P2P облако Проблема с отображением кодировки в Базе Данных Декодирование Манчестер-2 |
2 / 2 / 0
Регистрация: 11.02.2011
Сообщений: 187
|
|
15.10.2015, 22:01 | 41 |
Сообщение от oxytt
А если очень хочется с одним проводом то есть т.н. "токовая петля" помехоустойчивость которой и дальнобойность при соотв. скоростях проверена реальными объектами и ГОДАМИ эксплуатации в АСУ ТП и не только.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
15.10.2015, 23:51 | 42 |
задам тупой вопрос. ведь настоящих однопроводных интерфейсов не бывает, должна быть какая-то земля. что тут будет в качестве нее? нулевой провод? т.е. на каждом девайте надо следить, где фаза, а где нуль?
0
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
|
|
16.10.2015, 00:54 | 43 |
Сообщение от Ymk
Один провод из трёх будет совмещать в себе ноль сигнальный и минус питания Все подключения стационарные, провода имеют цветную маркировку, так что особой проблемы понять какой провод за что отвечает нет
0
|
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
|
|
16.10.2015, 01:26 | 44 |
Сообщение от smort_pys
Но каждое устройство делать с IP интерфейсом это не целесообразно Будет много маленьких плат с интегрированным драйвером светодиодов. Места под rj45 даже без трансформатора там нет
0
|
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
|
|
16.10.2015, 09:56 | 45 |
Сообщение от oxytt
Сообщение от oxytt
0
|
0 / 0 / 0
Регистрация: 17.01.2011
Сообщений: 92
|
|
22.10.2015, 10:42 | 46 |
Сообщение от itysiy
Сообщение от oxytt
Можно также посмотреть на реализацию HDMI-CEC управление. На физическом уровне реализована проверка подтверждения приема данных, синхронизация начала посылки. аппаратная и логическая адресация, возможность посылки команд разной длины., арбитраж шины. Я когда разобрался со всем этим - то понял , что толково сделано. Кстати там широтная модуляция.
0
|
22.10.2015, 10:42 | |
22.10.2015, 10:42 | |
Помогаю со студенческими работами здесь
46
как найти все значения в базе при вводе поиска в разной кодировки? Алгоритм кодирования Манчестер 2 [Хэлп] Нужен манчестер на сях Простой запрос к базе На базе чего сделать простой контроллер Связи между таблицами в простой базе данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |