Так вам никто не поможет в большей вероятности случаев... Осциллограмму не разглядеть, т.к. она ограничена одной картинкой. Время не измерить, первые в посылке не видны, хоть и видно, что они везде одинаковы.
Протокол может быть и собственно-выдуманным разработчиком домофона.
Один из вариантов - это подключить китайский логический анализатор (стоит не дорого на Али), он умеет определять известные протоколы. Не факт, что поможет правда.
З.Ы. Закономерность увидел одну. Домофон отправляет в начале свой идентификатор, т.к. все осциллограммы начинаются одинаково. Либо это просто частотная модуляция какая-то.
Спасибо и на этом. Значит придется писать прогу и для коммутатора-на мегу48, а как не хотелось.. Тогда что посоветуете для общения между двумя мк по одному проводу?, чтобы только цифры передавать, там больше ничего не нужно. Я так думаю, метакомщики сделали протокол не для секретности, а просто для помехозащищенности.
[uquote="dm211",url="/forum/viewtopic.php?p=3162747#p3162747"]для общения между двумя мк по одному проводу.[/uquote]
1-Wire?
Вы хотите домофон восстановить? И не известно расстояние, на которое надо связь организовывать.
Почему бы не узнать у того, кто делал эти домофоны? Ну или с ними больше работает.
да записать в МК все команды и всё))
судя по фото - длина пакета фиксирована, а представление 1 и 0 организовано изменением частоты... Ну так и записать в МК все кнопки да и всё)) Можно повнимательней проанализировать (вывести на укран все кнопки). Там походе передача как в простом пульте - прямое и инверсное.
короче.. протокол мало чем отличается от обычного пульта из под телевизора))
Ну не кнопки, а числа, 80 цифр, т.к. коммутатор на 80 абонентов, т.е. надо как то другим мк принимать все комбинации и записывать в массив, насчет памяти мк можно не беспокоиться-можно и STM32 применить. Глааный вопрос-как принимать этот чм пакет?
Добавлено after 6 hours 49 minutes 24 seconds:
Период импульсов единиц(предположительно)=400us, что соответствует частоте 2,5 кгц, период нулей в 2 раза больше. Как бы это точно считать другим мк и воспроизвести..
dm211 писал(а):Глааный вопрос-как принимать этот чм пакет?
Вариантов куча)) Можно например использовать стандартный алгоритм UART... Правда для UART требуется повышенная стабильность частоты... Можно придумать свой алгоритм, упростить...
dm211 писал(а):Период импульсов единиц(предположительно)=400us, что соответствует частоте 2,5 кгц, период нулей в 2 раза больше. Как бы это точно считать другим мк и воспроизвести..
Например аппаратный ШИМ опеспечит импульсы с высокой точностью.
roman.com писал(а):Вариантов куча)) Можно например использовать стандартный алгоритм UART... Правда для UART требуется повышенная стабильность частоты... Можно придумать свой алгоритм, упростить...
Я имел ввиду с этого устройства считать..чтобы потом повторить, ладно придется по экрану осцилла единицы и нули переписывать, благо-осцилл-китаец позволяет.
[uquote="dm211",url="/forum/viewtopic.php?p=3164755#p3164755"]придется по экрану осцилла единицы и нули переписывать, благо-осцилл-китаец позволяет.[/uquote]
80 кодов забивать вручную.. ну можно и так))
[uquote="dm211",url="/forum/viewtopic.php?p=3164755#p3164755"]Я имел ввиду с этого устройства считать..чтобы потом повторить[/uquote]
я это и имею ввиду.. Подобное уже делали с автосигнализацией... http://radiokot.ru/forum/viewtopic.php? ... 6&start=20
[uquote="dm211",url="/forum/viewtopic.php?p=3164755#p3164755"]... по экрану осцилла единицы и нули переписывать...[/uquote]
расшифровали Вы свой "код да винчи" ?
если предположить опечатку и "1, 2, 55 и 100" надо читать как "1, 2, 55 и 10" - тогда вобщем-то складывается.
дотошно не пересчитывал, но у меня получилось следующее:
64 бита длинна посылки,
вторые 32 бита дублируют первые в инверсии,
содержание первых 32бит: 17 "1", 7 "0", 8бит адреса (начиная с младшего),
сначала предварительный импульс, типа "внимание", потом от его спада отсчитываются интервалы,
"1" большой интервал, "0" короткий интервал.
и собственно адреса :
1кв. - 0000 0000,
2кв. - 0000 0001,
55кв. - 0011 0110,
10кв. - 0000 1001.
Это уже почти решение! Да, вы правы, 100- это 10, это я понял потом, т.к. там до 80 только, а когда 100 набираешь-он 10 передает. Осциллы,что я показывал-они в инверсии, там после мк транзистор на выход инвертирует. Закономерность нашли,осталось формулу придумать.
Добавлено after 17 minutes 19 seconds:
[uquote]17 "1", 7 "0",[/uquote]
Это получается адрес коммутатора в сети.
Добавлено after 2 hours 34 minutes 12 seconds:
Ну вот программно реализовал этот протокол, a797945 плюс 1 и спасибо!
[uquote="dm211",url="/forum/viewtopic.php?p=3165952#p3165952"]...17 "1", 7 "0"
Это получается адрес коммутатора в сети...[/uquote]
может: первые 16 - преамбула, 8бит адрес коммутатора (опять же с младшего бита)
т.е. в этих пакетах адрес 0х01
если адрес 0х00 зарезервирован, ну хоть на сам пульт (или как он там называется, я не в теме), то почему бы первому коммутатору не иметь адр. 0х01.