Протокол для Умного Дома
Re: Протокол для Умного Дома
Я себе проложил витух. Под комп, под телевизоры... нах не нужно ) Всё по WiFi. Недавно перешел на 802.1ax (AKA WiFi 6). Роутер TP-Link Archer AX50 AX3000.
- Реклама
Re: Протокол для Умного Дома
Я себе проложил витух. Под комп, под телевизоры... WiFi нах не нужно ) Всё по Ethernet стабильно.
Только всё по плинтусам... Надо переделать... Убрать в стены))
А ещё поставлю себе сервер в кладовке... и совсем всё будет хорошо)) Неее... не такой большой))
Думаю шкафчика будет достаточно.
WiFi хорошо, но слишком дофига он жрёт электричества))
Самодельный протокол работает нормально. Без ошибок. Уже передаю по витухе 10 метров. )) Потом проверю на большие расстояния.
Короче... надо придумать логику работы AVR (с ультранизким потреблением
) и пора уже всё тестить))
Думаем)) 
Только всё по плинтусам... Надо переделать... Убрать в стены))
А ещё поставлю себе сервер в кладовке... и совсем всё будет хорошо)) Неее... не такой большой))
Думаю шкафчика будет достаточно.
WiFi хорошо, но слишком дофига он жрёт электричества))
Самодельный протокол работает нормально. Без ошибок. Уже передаю по витухе 10 метров. )) Потом проверю на большие расстояния.
Короче... надо придумать логику работы AVR (с ультранизким потреблением
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
roman.com,
1. Подумайте в сторону "централизации".
Небольшой щит на несколько помещений. Там одна АВР, на нее приходят линии от 8 выключателей, уходят линии на 8 симисторов/реле.
Там же - один мелкий БП на 5 вольт для АВР. Плюс диодная или транзисторная развязка питания от этого БП или от альтернативной линии питания.
Базовая программа в МК управляет выходными линиями (реле) сама, по сигналам от входных линий (выключателей). Дополнительно - управление реле по командам от мастера.
В результате, при отсутствии мастера у вас не нарушается управление освещением. Ибо есть свое локальное питалово и четкая логика управления выходами по входам, если не вмешивается мастер.
2. Из опыта моего мелкого умного дома - предпочтительней мультимастер. Когда нет одного ведущего устройства, которое раздает всем команды. И без него весь умный дом тупеет.
Каждое устройство отправляет свое состояние при любых изменениях в общую сеть. Плюс каждую минуту повторяет свое состояние. Ну и слушает сеть на предмет интересных ему сообщений. Условно - ночью на выходе из спальни сработал датчик движения. Он квакнул об этом. Его услышали устройства , отвечающие за свет по дороге в сортир. Но при этом выключатель света из спальни всем сообщил, что он включен или выключен. И блоки управления светом по дороге в сортир приняли решение -полный свет включать или слабый.
При этом все устройства работают автономно, но "прислушиваются ко мнению соседа".
3. Ппредусмотрите протокол обновления прошивки и бутлоадер в своих АВР. Иначе задолбаетесь бегать обновлять косяки.
Я сначала плюнул на бут, через некоторое время понял, что я не идальный программист и сделал автономный прошивальщик, на который сливал прошивку с ПК и ходил прошивать устройства.
После N-ного раза балансирования на стремянке для обновления прошивки у изделия под потолком - прошил бут и не парюсь.
4. И да, по поводу размера пакета. При правильном подходе можно иметь переменную длину пакетв, вплоть до 64 байт. У меня от одного из устройств пакет состояния - 8 байт данных. Так что лучше или сразу забиться на большой пакет, или в какой то момент прийти к тому , что нужно 2 пакета данных, в один не вмещаетесь.
1. Подумайте в сторону "централизации".
Небольшой щит на несколько помещений. Там одна АВР, на нее приходят линии от 8 выключателей, уходят линии на 8 симисторов/реле.
Там же - один мелкий БП на 5 вольт для АВР. Плюс диодная или транзисторная развязка питания от этого БП или от альтернативной линии питания.
Базовая программа в МК управляет выходными линиями (реле) сама, по сигналам от входных линий (выключателей). Дополнительно - управление реле по командам от мастера.
В результате, при отсутствии мастера у вас не нарушается управление освещением. Ибо есть свое локальное питалово и четкая логика управления выходами по входам, если не вмешивается мастер.
2. Из опыта моего мелкого умного дома - предпочтительней мультимастер. Когда нет одного ведущего устройства, которое раздает всем команды. И без него весь умный дом тупеет.
Каждое устройство отправляет свое состояние при любых изменениях в общую сеть. Плюс каждую минуту повторяет свое состояние. Ну и слушает сеть на предмет интересных ему сообщений. Условно - ночью на выходе из спальни сработал датчик движения. Он квакнул об этом. Его услышали устройства , отвечающие за свет по дороге в сортир. Но при этом выключатель света из спальни всем сообщил, что он включен или выключен. И блоки управления светом по дороге в сортир приняли решение -полный свет включать или слабый.
При этом все устройства работают автономно, но "прислушиваются ко мнению соседа".
3. Ппредусмотрите протокол обновления прошивки и бутлоадер в своих АВР. Иначе задолбаетесь бегать обновлять косяки.
Я сначала плюнул на бут, через некоторое время понял, что я не идальный программист и сделал автономный прошивальщик, на который сливал прошивку с ПК и ходил прошивать устройства.
После N-ного раза балансирования на стремянке для обновления прошивки у изделия под потолком - прошил бут и не парюсь.
4. И да, по поводу размера пакета. При правильном подходе можно иметь переменную длину пакетв, вплоть до 64 байт. У меня от одного из устройств пакет состояния - 8 байт данных. Так что лучше или сразу забиться на большой пакет, или в какой то момент прийти к тому , что нужно 2 пакета данных, в один не вмещаетесь.
Re: Протокол для Умного Дома
GoldenAndy Подумайте...
Да вот сидим и думаем)) как это всё будет работать...
Да вот сидим и думаем)) как это всё будет работать...
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
roman.com, ну просто у меня уже сетка работает. И концепция пришла к децентрализованному управлению с повторяющимися пакетами, без подтверждений приема.
В особо критичных случаях необходимости подтверждения - поскольку каждое устройство после получения команды и выполнения каких-либо действий отчитывается в сеть пакетом состояния - можно отдельно обрабатывать пакет состояния на предмет "услышали нас?"
И я тоже раньше думал, что вот будет ремонт - протяну в каждый выключатель по витухе, поставлю там платы. Даже заказал 5 платок на jlcpcb.
Но вопрос питания этой хрени остается. Если городить свой БП - то нужна фаза и ноль в каждом подрозетнике. И иметь число мелких импульсников по числу выключателей - стрёмно.
Так что прихожу постепенно к концепции - от выключателя честные 0,75-1.5мм2 идут в щит, от щита провода к лампочкам. и так от группы выключателей и помещений. Плюс есть кабеля на 3-4-5-6 жил, оторые можно расключать на группы выключателей. А в щите уже - черновой вариант - коммутация выключателем 230 вольт, потом, когда будет блок управления - выключатели в блок, а блок коммутирует 230.
И там же - один небольшой БП 12 вольт + 12 вольт дежурки от аккума.
В особо критичных случаях необходимости подтверждения - поскольку каждое устройство после получения команды и выполнения каких-либо действий отчитывается в сеть пакетом состояния - можно отдельно обрабатывать пакет состояния на предмет "услышали нас?"
И я тоже раньше думал, что вот будет ремонт - протяну в каждый выключатель по витухе, поставлю там платы. Даже заказал 5 платок на jlcpcb.
Но вопрос питания этой хрени остается. Если городить свой БП - то нужна фаза и ноль в каждом подрозетнике. И иметь число мелких импульсников по числу выключателей - стрёмно.
Так что прихожу постепенно к концепции - от выключателя честные 0,75-1.5мм2 идут в щит, от щита провода к лампочкам. и так от группы выключателей и помещений. Плюс есть кабеля на 3-4-5-6 жил, оторые можно расключать на группы выключателей. А в щите уже - черновой вариант - коммутация выключателем 230 вольт, потом, когда будет блок управления - выключатели в блок, а блок коммутирует 230.
И там же - один небольшой БП 12 вольт + 12 вольт дежурки от аккума.
- Реклама
Re: Протокол для Умного Дома
Подожди... не так быстро)) завалил меня информацией))
Приложение отправляет пакет с командами и ждёт подтверждение выполнения команды (ACK).
Можно добавит в приложение повтор пакетов - если подтверждение (ACK) не пришло, то приложение отправляет повторно пакет с командами.
Это всё не проблема.
Но это уже будет капитальный ремонт в доме))
Я пока не готов делать капитальный ремонт))
Пока максимум могу протянуть витуху в каждый выключатель (когда буду переклеивать обои).
Давайте разберём всё спокойно не спеша и по порядку. Ремонт пока только в планах.. А пока займёмся протоколом.
1. допустим протянули витуху в каждый выключатель и розетку. Поставили МК в каждый выключатель и розетку.
Как будем подключать витуху ? У витухи 8 жил.
Думаю так:
-жёлтый и зелёный будет Ethernet с PoE
-синий для связи МК
-коричневый питание МК Хочу ещё в каждую розетку по Ethernet (для телевизора и компьютера). PoE ещё будет как дополнительное питание потребителей с большим током потребления (краны и задвижки всякие).
И так...
Количество выводов МК ограничено.
Количество жил витухи ограничено.
Поэтому для связи МК выделим два вывода. Думаю достаточно.
Собственно синий изначально предназначался для телефона. Потому такая схема у RJ-45. У нас "телефонный" протокол. Поэтому всё логично))
Если замечаний нет, то будем считать схему подключения утверждённой))
2. USART или самодельный протокол ? Для USART нужен мультиплексор... Нафиг надо)) Проще сделать переключение выводов МК программно. Тогда мультиплексор не нужен))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]roman.com,
1. Подумайте в сторону "централизации".
Небольшой щит на несколько помещений. Там одна АВР, на нее приходят линии от 8 выключателей, уходят линии на 8 симисторов/реле.
Там же - один мелкий БП на 5 вольт для АВР. Плюс диодная или транзисторная развязка питания от этого БП или от альтернативной линии питания.
Базовая программа в МК управляет выходными линиями (реле) сама, по сигналам от входных линий (выключателей). Дополнительно - управление реле по командам от мастера.
В результате, при отсутствии мастера у вас не нарушается управление освещением. Ибо есть свое локальное питалово и четкая логика управления выходами по входам, если не вмешивается мастер.[/uquote]
Буду делать ещё лучше. Выключатели можно будет переключать как вручную так и удалённо. Типа проходного выключателя.
-При переключении вручную выключатель просто будет передавать на сервер статус выключателя.
-При переключении удалённо выключатель будет включать/выключать лампочку и передавать подтверждение выполнения команды.
Базовая программа в МК не будет управляет выходными линиями (реле) сама, по сигналам от входных линий (выключателей).
Поэтому даже если вся сеть ляжет (и все МК сдохнут) выключатели будут работать дальше в ручном режиме.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]2. Из опыта моего мелкого умного дома - предпочтительней мультимастер. Когда нет одного ведущего устройства, которое раздает всем команды. И без него весь умный дом тупеет.
Каждое устройство отправляет свое состояние при любых изменениях в общую сеть. Плюс каждую минуту повторяет свое состояние. Ну и слушает сеть на предмет интересных ему сообщений. Условно - ночью на выходе из спальни сработал датчик движения. Он квакнул об этом. Его услышали устройства , отвечающие за свет по дороге в сортир. Но при этом выключатель света из спальни всем сообщил, что он включен или выключен. И блоки управления светом по дороге в сортир приняли решение -полный свет включать или слабый.[/uquote]
Когда нет одного ведущего устройства, которое раздает всем команды ? А как все устройства общаются между собой ? Видимо резе главное устройство ? У нас же топология "звезда".
Управление всем через главное устройство или все устройства общаются между собой напрямую - это уже мелкие подробности))
тут можно делать как угодно. Согласно программе и сценариям...
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]roman.com,
3. Ппредусмотрите протокол обновления прошивки и бутлоадер в своих АВР. Иначе задолбаетесь бегать обновлять косяки.
Я сначала плюнул на бут, через некоторое время понял, что я не идальный программист и сделал автономный прошивальщик, на который сливал прошивку с ПК и ходил прошивать устройства.
После N-ного раза балансирования на стремянке для обновления прошивки у изделия под потолком - прошил бут и не парюсь.[/uquote]
Это я вообще без понятия что это такое.)) Никогда не работал с бутлоадером...
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]roman.com,
4. И да, по поводу размера пакета. При правильном подходе можно иметь переменную длину пакетв, вплоть до 64 байт. У меня от одного из устройств пакет состояния - 8 байт данных. Так что лучше или сразу забиться на большой пакет, или в какой то момент прийти к тому , что нужно 2 пакета данных, в один не вмещаетесь.[/uquote]
Переменная длина пакетов - неудобно принимать, передавать, шифровать и т.д.
Сейчас фиксированный размер всех пакетов - 32 байт - этого достаточно для всего умного дома. ))
Откуда взялось число 32 ? Да просто изначально всё делалось под радиомодуль nrf24. А он максимум за один раз может передавать пакеты по 32 байт. без фрагментации пакетов. Отсюда все пакеты по 32 байта.
Почему крайне не рекомендуется передавать пакеты по 7 байт (как предлагали выше) ? Да потому что у нас симметричное блочное шифрование пакетов. А при таком шифровании нужно чтобы пакеты были кратны блокам шифрования 8/16/24/32...
Можно конечно при шифровании дополнять пакеты нулями (0000000000) для выравнивания блоков при шифровании... Но это будет не логично))
И так...
У нас есть один мастер и куча слейвов.
Если слейвов больше чем выводом МК мастер, то можно добавить в схему второй МК в качестве коммутатора пакетов.
Все МК общаются по двух проводной линии данных - TX и RX: Теперь надо думать про синхронизацию...

На чём у тебя всё работает ? Схемку кинь.GoldenAndy писал(а):ну просто у меня уже сетка работает.
Лучше (надёжней) с подтверждением пактов (ACK).GoldenAndy писал(а):концепция пришла к децентрализованному управлению с повторяющимися пакетами, без подтверждений приема.
Это уже есть в приложении.GoldenAndy писал(а):каждое устройство после получения команды и выполнения каких-либо действий отчитывается в сеть пакетом состояния
Приложение отправляет пакет с командами и ждёт подтверждение выполнения команды (ACK).
Можно добавит в приложение повтор пакетов - если подтверждение (ACK) не пришло, то приложение отправляет повторно пакет с командами.
Это всё не проблема.
Уже сделал ? Или передумал ?))GoldenAndy писал(а):раньше думал, что вот будет ремонт - протяну в каждый выключатель по витухе, поставлю там платы.
От каждой лампочки протянуть в щит полтора квадрата - это идеальный вариант.GoldenAndy писал(а):от выключателя честные 0,75-1.5мм2 идут в щит, от щита провода к лампочкам
Но это уже будет капитальный ремонт в доме))
Я пока не готов делать капитальный ремонт))
Пока максимум могу протянуть витуху в каждый выключатель (когда буду переклеивать обои).
Давайте разберём всё спокойно не спеша и по порядку. Ремонт пока только в планах.. А пока займёмся протоколом.
1. допустим протянули витуху в каждый выключатель и розетку. Поставили МК в каждый выключатель и розетку.
Как будем подключать витуху ? У витухи 8 жил.
Думаю так:
-жёлтый и зелёный будет Ethernet с PoE
-синий для связи МК
-коричневый питание МК Хочу ещё в каждую розетку по Ethernet (для телевизора и компьютера). PoE ещё будет как дополнительное питание потребителей с большим током потребления (краны и задвижки всякие).
И так...
Количество выводов МК ограничено.
Количество жил витухи ограничено.
Поэтому для связи МК выделим два вывода. Думаю достаточно.
Собственно синий изначально предназначался для телефона. Потому такая схема у RJ-45. У нас "телефонный" протокол. Поэтому всё логично))
Если замечаний нет, то будем считать схему подключения утверждённой))
2. USART или самодельный протокол ? Для USART нужен мультиплексор... Нафиг надо)) Проще сделать переключение выводов МК программно. Тогда мультиплексор не нужен))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]roman.com,
1. Подумайте в сторону "централизации".
Небольшой щит на несколько помещений. Там одна АВР, на нее приходят линии от 8 выключателей, уходят линии на 8 симисторов/реле.
Там же - один мелкий БП на 5 вольт для АВР. Плюс диодная или транзисторная развязка питания от этого БП или от альтернативной линии питания.
Базовая программа в МК управляет выходными линиями (реле) сама, по сигналам от входных линий (выключателей). Дополнительно - управление реле по командам от мастера.
В результате, при отсутствии мастера у вас не нарушается управление освещением. Ибо есть свое локальное питалово и четкая логика управления выходами по входам, если не вмешивается мастер.[/uquote]
Буду делать ещё лучше. Выключатели можно будет переключать как вручную так и удалённо. Типа проходного выключателя.
-При переключении вручную выключатель просто будет передавать на сервер статус выключателя.
-При переключении удалённо выключатель будет включать/выключать лампочку и передавать подтверждение выполнения команды.
Базовая программа в МК не будет управляет выходными линиями (реле) сама, по сигналам от входных линий (выключателей).
Поэтому даже если вся сеть ляжет (и все МК сдохнут) выключатели будут работать дальше в ручном режиме.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]2. Из опыта моего мелкого умного дома - предпочтительней мультимастер. Когда нет одного ведущего устройства, которое раздает всем команды. И без него весь умный дом тупеет.
Каждое устройство отправляет свое состояние при любых изменениях в общую сеть. Плюс каждую минуту повторяет свое состояние. Ну и слушает сеть на предмет интересных ему сообщений. Условно - ночью на выходе из спальни сработал датчик движения. Он квакнул об этом. Его услышали устройства , отвечающие за свет по дороге в сортир. Но при этом выключатель света из спальни всем сообщил, что он включен или выключен. И блоки управления светом по дороге в сортир приняли решение -полный свет включать или слабый.[/uquote]
Когда нет одного ведущего устройства, которое раздает всем команды ? А как все устройства общаются между собой ? Видимо резе главное устройство ? У нас же топология "звезда".
Управление всем через главное устройство или все устройства общаются между собой напрямую - это уже мелкие подробности))
тут можно делать как угодно. Согласно программе и сценариям...
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]roman.com,
3. Ппредусмотрите протокол обновления прошивки и бутлоадер в своих АВР. Иначе задолбаетесь бегать обновлять косяки.
Я сначала плюнул на бут, через некоторое время понял, что я не идальный программист и сделал автономный прошивальщик, на который сливал прошивку с ПК и ходил прошивать устройства.
После N-ного раза балансирования на стремянке для обновления прошивки у изделия под потолком - прошил бут и не парюсь.[/uquote]
Это я вообще без понятия что это такое.)) Никогда не работал с бутлоадером...
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4042785#p4042785"]roman.com,
4. И да, по поводу размера пакета. При правильном подходе можно иметь переменную длину пакетв, вплоть до 64 байт. У меня от одного из устройств пакет состояния - 8 байт данных. Так что лучше или сразу забиться на большой пакет, или в какой то момент прийти к тому , что нужно 2 пакета данных, в один не вмещаетесь.[/uquote]
Переменная длина пакетов - неудобно принимать, передавать, шифровать и т.д.
Сейчас фиксированный размер всех пакетов - 32 байт - этого достаточно для всего умного дома. ))
Откуда взялось число 32 ? Да просто изначально всё делалось под радиомодуль nrf24. А он максимум за один раз может передавать пакеты по 32 байт. без фрагментации пакетов. Отсюда все пакеты по 32 байта.
Почему крайне не рекомендуется передавать пакеты по 7 байт (как предлагали выше) ? Да потому что у нас симметричное блочное шифрование пакетов. А при таком шифровании нужно чтобы пакеты были кратны блокам шифрования 8/16/24/32...
Можно конечно при шифровании дополнять пакеты нулями (0000000000) для выравнивания блоков при шифровании... Но это будет не логично))
И так...
У нас есть один мастер и куча слейвов.
Если слейвов больше чем выводом МК мастер, то можно добавить в схему второй МК в качестве коммутатора пакетов.
Все МК общаются по двух проводной линии данных - TX и RX: Теперь надо думать про синхронизацию...
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
Вроде как брудершафта я с вами не пил...roman.com писал(а):На чём у тебя всё работает ? Схемку кинь.
Самопальный протокол по идеологии 1-Wire авторства Cluster'а с некоторыми изменениями.
Таймслот 128мкс, старт -10Т, лог.1 -3Т, лог.0 - 1Т.
Пакет - 1 байт адрес источника, 1 байт адрес приемника или FF-бродкаст, 1 байт команды, 1 байт - число байт данных, данные, 1 байт контрольной суммы.
Подключено сейчас всё телефонной витухой (2 пары). Плюс отдельно к мощным потребителям 12 вольт разведено полутора квадратами. У меня на случай отключения э/энергии везде есть аварийный свет в виде отрезков светодиодной ленты и старый аккум от авто.
Схемка приемопередатчика:
Спойлер
Ну если вы построите такую хилую сетку, у которой в пределах квартиры будут теряться пакеты - то делайте подтверждение. Меня устраивает и так, как есть - пакет состояния при изменениях, кому надо - те слушают. Из зависимых устройств у меня - отключение бойлера (2 кВ) при наличии других мощных потребителей в сети (чайник, духовка, стиралка, посудомойка), что бы не превысить выделенную мощность по входу. Отдельное устройство следит за трансформаторами тока, при появлении нагрузки рассказывает в сеть, что появилась или пропала нагрузка. Управлятор бойлера следит за данными о потребителях и командует мощным реле. Плюс по времени включает/отключает бойлер (ночью дешевле).roman.com писал(а):Лучше (надёжней) с подтверждением пактов (ACK).
Ну и сценарии управления дневным/ночным светом (захардкореные в прошивках).
См. выше. если вы сетку нормально сделаете - пропадания пакетов не должно быть. А то вдруг вы отключите одно из изделий, а кто то в него будет долбиться до посинения, не дожидаясь ответа, и сетку положит.roman.com писал(а):Можно добавит в приложение повтор пакетов - если подтверждение (ACK) не пришло, то приложение отправляет повторно пакет с командами.
Я пришел к концепции не командной сети, а событийной. Произошло событие - ответственный блок сообщил всем. Кому надо - прореагировал. Т.е. минимум директного управления, только там, где не обойтись.
Если кому то надо состояние конкретного устройства для принятия решения - тут можно запросить. Если за секунду ответ не пришел - то или еще пару раз спросить, ну или работать по дефолтному сценарию.
Кстати, о сценариях. Я хочу в новой сети хотя бы в управлении светом предусмотреть загружаемые удаленно в ЕЕПРОМ сценарии. Т.е. каждый блок управления светом, кроме типовых сценариев директного включения-выключения света, отключения света по уходу всех из дому (там еще и половина розеток у меня гасится), еще были и индивидуальные сценарии, завязанные на датчики движения и состояние соседних каналов света.
Я уже настолько привык, что когда я ночью топаю в сортир, у меня по дороге включается дежурный свет. а если зарулю на кухню - то еще и там будет дежурка на минутку.
Ремонт еще не делал. Дом старый деревянный и ремонт тут - вынести всю штукатурку и дранку со стен до досок, зашить гипсом с минватой. Причем это придется сразу во всей квартире делать. Это вагон денех, которые я еще не насобирал. Еще и жить где то надо будет. Вон у нас в соседней квартире ремонт третий месяц длится. Засрали всё. Но в каждом выключателе я ставить не буду блок. Будут два или три центральных.roman.com писал(а):Уже сделал ? Или передумал ?))
Децентрализованная схема - все устройства на одной шине. Коллизии решаются на программном уровне. Если вдруг линия занята - передача откладывается до окончания пакета данных + некий промежуток времени в мкс - численно равен адресу устройства.roman.com писал(а):Когда нет одного ведущего устройства, которое раздает всем команды ? А как все устройства общаются между собой ? Видимо резе главное устройство ? У нас же топология "звезда".
Управление всем через главное устройство или все устройства общаются между собой напрямую - это уже мелкие подробности))
Синхронизацию чего с чем?roman.com писал(а):Теперь надо думать про синхронизацию...
И да, будете делать сетку - сразу продумайте, какой физический протокол передачи данных у вас будет. ибо тот же UART +/-2% частоты - и гудбай. Т.е. каждое изделие придется кварцевать.
(Я тут как то раз криво проинициализировал СТМку, не 32 МГц тактовой включил, а 24. И обнаружил это по неправильной работе функционала устройства. При этом по сети устройство успешно отправляло и принимало данные, имея 25%-перекос в тактовой частоте)
Это на самом деле удобная вещь. Попробуйте с этим разобраться.roman.com писал(а):Никогда не работал с бутлоадером...
поверьте, реально очень неудобно обновлять прошивку в устройстве, которое хрен знает где находится. А обновлять прошивку придется, ибо идеальных программистов не существует. А хотелки приходят во время еды. Ну или если нужно поменять прибитый в прошивке гвоздями сценарий.
П.С. Если интересно - вот лог сетки за пару минут.
Спойлер
Код: Выделить всё
05_06_2021 19:28:12 : 23 FF 01 01 00
05_06_2021 19:28:17 : 22 FF 01 01 00
05_06_2021 19:28:20 : 21 FF 01 07 00 00 00 00 00 00 FF
05_06_2021 19:28:22 : 23 FF 01 01 00
05_06_2021 19:28:27 : 22 FF 01 01 00
05_06_2021 19:28:28 : 29 14 02 00
05_06_2021 19:28:28 : 14 29 01 01 0D
05_06_2021 19:28:29 : 15 FF 01 03 01 70 01
05_06_2021 19:28:32 : 23 FF 01 01 00
05_06_2021 19:28:37 : 22 FF 01 01 00
05_06_2021 19:28:38 : 0F FF 71 00
05_06_2021 19:28:38 : 10 FF 01 01 11
05_06_2021 19:28:40 : 17 21 81 03 00 29 00
05_06_2021 19:28:42 : 23 FF 01 01 00
05_06_2021 19:28:42 : 1A FF 01 01 01
05_06_2021 19:28:44 : 26 14 02 00
05_06_2021 19:28:44 : 14 26 01 01 0D
05_06_2021 19:28:44 : 21 FF 01 07 00 00 00 00 00 00 FF
05_06_2021 19:28:45 : 15 14 02 00
05_06_2021 19:28:45 : 14 15 01 01 0D
05_06_2021 19:28:47 : 22 FF 01 01 00
05_06_2021 19:28:47 : 28 14 02 00
05_06_2021 19:28:47 : 14 28 01 01 0D
05_06_2021 19:28:51 : 23 FF 01 01 00
05_06_2021 19:28:54 : 01 FF 10 07 00 29 19 06 05 06 21
05_06_2021 19:28:55 : 29 0F 02 00
05_06_2021 19:28:55 : 0F 29 01 07 42 02 00 05 05 BC 00
05_06_2021 19:28:56 : 17 14 02 00
05_06_2021 19:28:56 : 14 17 01 01 0D
05_06_2021 19:28:57 : 22 FF 01 01 00
05_06_2021 19:29:01 : 23 FF 01 01 00
05_06_2021 19:29:06 : 22 FF 01 01 00
05_06_2021 19:29:08 : 21 FF 01 07 00 00 00 00 00 00 FF
05_06_2021 19:29:11 : 23 FF 01 01 00
05_06_2021 19:29:16 : 22 FF 01 01 00
05_06_2021 19:29:16 : 29 14 02 00
05_06_2021 19:29:16 : 14 29 01 01 0D
05_06_2021 19:29:16 : 17 21 81 03 29 00 52
05_06_2021 19:29:21 : 23 FF 01 01 00
05_06_2021 19:29:26 : 22 FF 01 01 00
05_06_2021 19:29:28 : 15 FF 01 03 01 6E 01
05_06_2021 19:29:31 : 23 FF 01 01 00
05_06_2021 19:29:32 : 21 FF 01 07 00 00 00 00 00 00 FF
05_06_2021 19:29:36 : 22 FF 01 01 00
05_06_2021 19:29:37 : 28 14 02 00
05_06_2021 19:29:37 : 14 28 01 01 0D
05_06_2021 19:29:38 : 0F FF 71 00
05_06_2021 19:29:38 : 10 FF 01 01 11
05_06_2021 19:29:40 : 1A FF 01 01 01
05_06_2021 19:29:41 : 23 FF 01 01 00
05_06_2021 19:29:43 : 29 0F 02 00
05_06_2021 19:29:43 : 0F 29 01 07 40 02 00 05 05 C3 00
05_06_2021 19:29:46 : 22 FF 01 01 00
05_06_2021 19:29:47 : 26 14 02 00
05_06_2021 19:29:47 : 14 26 01 01 0D
05_06_2021 19:29:50 : 23 FF 01 01 00
05_06_2021 19:29:54 : 01 FF 10 07 00 30 19 06 05 06 21
05_06_2021 19:29:56 : 22 FF 01 01 00
05_06_2021 19:29:56 : 21 FF 01 07 00 00 00 00 00 00 FF
05_06_2021 19:29:56 : 15 14 02 00
05_06_2021 19:29:56 : 14 15 01 01 0D
05_06_2021 19:29:57 : 17 14 02 00
05_06_2021 19:29:57 : 14 17 01 01 0D
05_06_2021 19:30:00 : 23 FF 01 01 00
05_06_2021 19:30:00 : 17 21 81 03 F7 FF 00
05_06_2021 19:30:05 : 29 14 02 00
05_06_2021 19:30:05 : 14 29 01 01 0D
05_06_2021 19:30:06 : 22 FF 01 01 00
- Вложения
-
- net.jpg
- (46.44 КБ) 112 скачиваний
Re: Протокол для Умного Дома
А выход в Интернет есть ? По Wi-Fi или по Интернет с телефона/компа всем управлять можно ?
Неее... не нравится мне сама идеология 1-Wire.
https://www.radiokot.ru/forum/download/ ... ?id=366193
https://www.radiokot.ru/forum/download/ ... ?id=366218
https://www.radiokot.ru/forum/download/ ... ?id=366219
https://www.radiokot.ru/forum/download/ ... ?id=366220
...
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043140#p4043140"]тот же UART +/-2% частоты - и гудбай[/uquote]
т.к. таймер у нас перезапускается при каждом прерывании INT0 (Mode: Any change), то соответственно и требования к стабильности калиброванного RC генератора передатчика и приёмника у нас значительно ниже по сравнению с USART.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043140#p4043140"]и да, вообще не проблема посчитать КС по переменной длине пакета. Я не понимаю, что вызывает такие трудности в переменной длине пакета.[/uquote]
При чём тут КС... Речь про шифрование.
Никаких трудностей с переменной длинной нет. Просто не удобно и всё.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043140#p4043140"]Отдельное устройство следит за трансформаторами тока, при появлении нагрузки рассказывает в сеть, что появилась или пропала нагрузка.[/uquote]
Какое отдельное ? У меня AVR в каждой розетке будет это делать))
Синхронизация.
Т.к. мастер у нас работает в симплексе и не может принимать одновременно пакеты от всех слейвов, то нам нужна в схеме синхронизация работы передатчиков (TX) всех слейвов.
Выше предлагали чтобы мастер непрерывно опрашивал все слейвы. Но тогда будут большие задержки при передачи пакетов и самое главное - слейвы не смогут уйти в спячку, потому что они будут постоянно принимать пакеты от мастера.
Поэтому такой вариант нам не подходит.
Идеальный вариант - поставить ещё по одному AVR (назовём его "модем") на каждую линию данных и тогда никакая синхронизация нам вообще не нужна. )) Получим полный дуплекс с максимальной скоростью приёма/передачи и без коллизий и с минимальным потреблением тока (все AVR в глубокой спячке и просыпаются только во время приёма и передачи пакетов).
С точки зрения коммутации пакетов - это просто идеальная схема)) Только есть одна проблема - придётся добавить в схему ещё 40 штук AVR к уже существующим 22.
Итого получим 62 штук AVR ! ))
Есть ещё один вариант - более гуманный))
По одной линии можно передавать/принимать пакеты (назовём её TX-RX)
А вторую линию использовать для передачи событий (назовём её INT) INT будет работает точно так же как в любом заводской модуле (например в nrf24, w5100 и т.д).
На вывод INT назначим любое событие (включение кнопки, сработка датчика и т.д.).
В этом случае мастер будет только слушать слейвы по линии INT, а не опрашивать постоянно слейвы.
При этом задержки при передачи пакетов будут значительно меньше, чем если бы мастер опрашивал слейвы непрерывно.
При этом все слейвы будут в глубокой спячки до наступления события (включение кнопки, сработка датчика и т.д.).
Думаю это нормальный вариант.

GoldenAndy писал(а):все устройства на одной шине.
Ясно)) Тоже думал так сделать. Но потом передумал))GoldenAndy писал(а):Самопальный протокол по идеологии 1-Wire
Неее... не нравится мне сама идеология 1-Wire.
Выше уже придумал и подробно расписал.GoldenAndy писал(а):сразу продумайте, какой физический протокол передачи данных у вас будет. ибо тот же UART +/-2% частоты - и гудбай. Т.е. каждое изделие придется кварцевать.
https://www.radiokot.ru/forum/download/ ... ?id=366193
https://www.radiokot.ru/forum/download/ ... ?id=366218
https://www.radiokot.ru/forum/download/ ... ?id=366219
https://www.radiokot.ru/forum/download/ ... ?id=366220
...
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043140#p4043140"]тот же UART +/-2% частоты - и гудбай[/uquote]
т.к. таймер у нас перезапускается при каждом прерывании INT0 (Mode: Any change), то соответственно и требования к стабильности калиброванного RC генератора передатчика и приёмника у нас значительно ниже по сравнению с USART.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043140#p4043140"]и да, вообще не проблема посчитать КС по переменной длине пакета. Я не понимаю, что вызывает такие трудности в переменной длине пакета.[/uquote]
При чём тут КС... Речь про шифрование.
Никаких трудностей с переменной длинной нет. Просто не удобно и всё.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043140#p4043140"]Отдельное устройство следит за трансформаторами тока, при появлении нагрузки рассказывает в сеть, что появилась или пропала нагрузка.[/uquote]
Какое отдельное ? У меня AVR в каждой розетке будет это делать))
Мастера и слейвов (20 штук).GoldenAndy писал(а):Синхронизацию чего с чем?
Синхронизация.
Т.к. мастер у нас работает в симплексе и не может принимать одновременно пакеты от всех слейвов, то нам нужна в схеме синхронизация работы передатчиков (TX) всех слейвов.
Выше предлагали чтобы мастер непрерывно опрашивал все слейвы. Но тогда будут большие задержки при передачи пакетов и самое главное - слейвы не смогут уйти в спячку, потому что они будут постоянно принимать пакеты от мастера.
Поэтому такой вариант нам не подходит.
Идеальный вариант - поставить ещё по одному AVR (назовём его "модем") на каждую линию данных и тогда никакая синхронизация нам вообще не нужна. )) Получим полный дуплекс с максимальной скоростью приёма/передачи и без коллизий и с минимальным потреблением тока (все AVR в глубокой спячке и просыпаются только во время приёма и передачи пакетов).
С точки зрения коммутации пакетов - это просто идеальная схема)) Только есть одна проблема - придётся добавить в схему ещё 40 штук AVR к уже существующим 22.
Итого получим 62 штук AVR ! ))
Есть ещё один вариант - более гуманный))
По одной линии можно передавать/принимать пакеты (назовём её TX-RX)
А вторую линию использовать для передачи событий (назовём её INT) INT будет работает точно так же как в любом заводской модуле (например в nrf24, w5100 и т.д).
На вывод INT назначим любое событие (включение кнопки, сработка датчика и т.д.).
В этом случае мастер будет только слушать слейвы по линии INT, а не опрашивать постоянно слейвы.
При этом задержки при передачи пакетов будут значительно меньше, чем если бы мастер опрашивал слейвы непрерывно.
При этом все слейвы будут в глубокой спячки до наступления события (включение кнопки, сработка датчика и т.д.).
Думаю это нормальный вариант.
Последний раз редактировалось roman.com Сб июн 05, 2021 21:14:54, всего редактировалось 1 раз.
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
От вы блин как йуный пионэр - героически создаете себе трудности, дабы потом их преодолевать.
Почитайте идею Кластера, сделайте что то своё на диф.паре и будет вам счастье.
С компом - отдельный гейт блютузовый. Иначе как бы я прошивки с компа обновлял и управлял вручную?
Если мне вдруг будет надо - можно сделать что то на эзернете или вифи, там уже организовать парольный доступ, вебморду и прочее... Мне пока не надо.
От кого прятаться в проводной изолированной сети? Ищете себе трудности....
Но дело ваше.
я поделился, как оно у меня есть и работает.
Так у меня не 1-wire.roman.com писал(а):Неее... не нравится мне сама идеология 1-Wire.
Почитайте идею Кластера, сделайте что то своё на диф.паре и будет вам счастье.
Если будете делать на USART - то даже на одном байте упретесь в 2%. Разве что приемник USART делать софтовый и подстраивать период по каждому перепаду. У меня дельта частоты 25% прошла и не подавилась.roman.com писал(а):требования к стабильности калиброванного RC генератора передатчика и приёмника у нас значительно ниже по сравнению с USART
Выхода в инет нету. Зачем?roman.com писал(а):А выход в Интернет есть ? По Wi-Fi или по Интернет с телефона/компа всем управлять можно ?
С компом - отдельный гейт блютузовый. Иначе как бы я прошивки с компа обновлял и управлял вручную?
Если мне вдруг будет надо - можно сделать что то на эзернете или вифи, там уже организовать парольный доступ, вебморду и прочее... Мне пока не надо.
А ЗАЧЕМ?roman.com писал(а):Речь про шифрование.
Никаких трудностей с переменной длинной нет. Просто не удобно и всё.
От кого прятаться в проводной изолированной сети? Ищете себе трудности....
Но дело ваше.
я поделился, как оно у меня есть и работает.
Re: Протокол для Умного Дома
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043210#p4043210"]Почитайте идею Кластера.[/uquote]
Только для авторизированных пользователей...
Нафиг надо))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043210#p4043210"]От кого прятаться в проводной изолированной сети? Ищете себе трудности.....[/uquote]
В проводной изолированной сети шифрование отключено. Но можно включить (это по желанию). Достаточно на мастере нажать кнопочку "security". ))
А куда не дотянутся провода будет работать по радиоканалу.
Или вы хотите что бы какой-нибудь "Пионер-Ардуинщик" перехватил управлением вашим домом ?))
Нет уж... спасибо))
Всё что по Интернету и радио каналу - у меня обязательно шифруется.
Без удалённого управления по Интернету - мне такой "Умный Дом" не нужен))

Только для авторизированных пользователей...
На малые расстояния (в пределах дома) диф.пара не нужна.))GoldenAndy писал(а):сделайте что то своё на диф.паре и будет вам счастье.
Не буду я ничего делать на USART. В AVR один USART. А слейвов 20 штук. Значит нужен мультиплексор...GoldenAndy писал(а):Если будете делать на USART
Нафиг надо))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043210#p4043210"]От кого прятаться в проводной изолированной сети? Ищете себе трудности.....[/uquote]
В проводной изолированной сети шифрование отключено. Но можно включить (это по желанию). Достаточно на мастере нажать кнопочку "security". ))
А куда не дотянутся провода будет работать по радиоканалу.
Или вы хотите что бы какой-нибудь "Пионер-Ардуинщик" перехватил управлением вашим домом ?))
Нет уж... спасибо))
Всё что по Интернету и радио каналу - у меня обязательно шифруется.
Зачем? Для удалённого управления домом по Интернету - у меня это обязательное условие.GoldenAndy писал(а):Выхода в инет нету. Зачем?
Без удалённого управления по Интернету - мне такой "Умный Дом" не нужен))
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
Я не пойму одного, нафига вы уперлись в эту звезду с главным мастером. И да, при правильном подходе одноранговая сетка на юарте делается без всяких мультиплексоров.
Но дело ваше. Замечания и мысли я вам изложил свои. Как оно у меня работает - описал. Как сделаете - покажете народу, если захотите.
Но дело ваше. Замечания и мысли я вам изложил свои. Как оно у меня работает - описал. Как сделаете - покажете народу, если захотите.
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Протокол для Умного Дома
для одноранговой сети хорошо пойдёт и2с, но при увеличении расстояний максимальная скорость сильно падает...
ещё можно применить УАРТ/УСАРТ, у всех мк соединяются RX и клок (при наличии) все настраиваются на слейв. тот, кто хочет передать - передает программно, остальные ловят, по прерыванию приема просыпаются (из режима sleep). для защиты от колизий применить эту- же шину клок - пока она прижата - всем молчать, кроме того, кто прижал, а дальше по регистру пустого буфера приема (д.ш. под рукой нет, но вроде он существует).
а как реализована защита от коллизий на проводе (когда один передает 1, а другой 0) в самодельном протоколе? или там не допускается общая шина?
ещё можно применить УАРТ/УСАРТ, у всех мк соединяются RX и клок (при наличии) все настраиваются на слейв. тот, кто хочет передать - передает программно, остальные ловят, по прерыванию приема просыпаются (из режима sleep). для защиты от колизий применить эту- же шину клок - пока она прижата - всем молчать, кроме того, кто прижал, а дальше по регистру пустого буфера приема (д.ш. под рукой нет, но вроде он существует).
а как реализована защита от коллизий на проводе (когда один передает 1, а другой 0) в самодельном протоколе? или там не допускается общая шина?
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
Ivanoff-iv, я за основу взял проект Кластера и несколько его допилил (я выше давал ссыль на его ЖЖ, там можно войти, имея аккаунт ФБ или ВК). Где то оптимизировал, выкинул приоритеты, увеличил длительность единицы времени до 128 мкс. Портировал на STM32, включая бутлоадер. (Точнеее, бут пришлось полностью писать с нуля
)
Шина на всех одна.
Достаточно трех проводов. Но поскольку у меня был в свое время доступ к нашим телефонистам - я разжился бухтой телефонной витухи - там 2 пары. Я не знаю, насколько правильно пускать сигнал такого плана по витой паре, второй провод которой является нулем (там же емкость, наверное, должна быть высокая?) - но пока работает. В идеале надо взять бухту метров в 200 и проверить. Но столько витухи у меня нет...
Физически шина чем то похожа на 1-Wire - подтянута к питанию резисторами, передача выполняется прижатием линии на 0.
Если кто то начинает передавать - все слушают и принимают весь пакет.
По завершению приема смотрят КС. Если совпала - смотрят кому. Если всем или совпал целевой адрес - вызывается процедура приема. Если не адресату - пакет забывается.
По коллизиям все просто.
В процессе приема все устройства знают, что шина занята, ибо пакет принимают все.
В процессе передачи перед прижатием линии к 0 МК контролирует наличие 1 на линии. После передачи очередного бита и отпускания линии МК так же контролирует - а поднялась ли линия в 1.
И в случае, если вдруг 2 устройства одновременно проверили наличие 1 на линии и начинают передавать что то - то в какой то момент наступит ситуация, что кто то линию отпустил, а она осталась прижата к 0. Обычно это происходит на этапе передачи адреса - у кого он больше, тот и единичку (3Т) держит дольше.
Тогда тот, кто отпустил, понимает, что он уже не один и затыкается до окончания передачи пакета.
При этом, поскольку приемник независим от передатчика - он так же принимает и свою посылку, и знает, когда завершится передача пакета. И потом повторит свою попытку через случайный период задержки после завершения пакета.
Шина на всех одна.
Достаточно трех проводов. Но поскольку у меня был в свое время доступ к нашим телефонистам - я разжился бухтой телефонной витухи - там 2 пары. Я не знаю, насколько правильно пускать сигнал такого плана по витой паре, второй провод которой является нулем (там же емкость, наверное, должна быть высокая?) - но пока работает. В идеале надо взять бухту метров в 200 и проверить. Но столько витухи у меня нет...
Физически шина чем то похожа на 1-Wire - подтянута к питанию резисторами, передача выполняется прижатием линии на 0.
Код: Выделить всё
1T 1T 1T
________ _ _ _ ______________
|________| |___| |_| |___|......|
10T 3T 1T 3T
idle Start 1 0 1 idle
По завершению приема смотрят КС. Если совпала - смотрят кому. Если всем или совпал целевой адрес - вызывается процедура приема. Если не адресату - пакет забывается.
По коллизиям все просто.
В процессе приема все устройства знают, что шина занята, ибо пакет принимают все.
В процессе передачи перед прижатием линии к 0 МК контролирует наличие 1 на линии. После передачи очередного бита и отпускания линии МК так же контролирует - а поднялась ли линия в 1.
И в случае, если вдруг 2 устройства одновременно проверили наличие 1 на линии и начинают передавать что то - то в какой то момент наступит ситуация, что кто то линию отпустил, а она осталась прижата к 0. Обычно это происходит на этапе передачи адреса - у кого он больше, тот и единичку (3Т) держит дольше.
Тогда тот, кто отпустил, понимает, что он уже не один и затыкается до окончания передачи пакета.
При этом, поскольку приемник независим от передатчика - он так же принимает и свою посылку, и знает, когда завершится передача пакета. И потом повторит свою попытку через случайный период задержки после завершения пакета.
Re: Протокол для Умного Дома
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043262#p4043262"]Я не пойму одного, нафига вы уперлись в эту звезду с главным мастером.[/uquote]
Просто и главное надёжно. Легко в обслуживании.
Спрятал от посторонних глаз щит в кладовке и туда завёл все витухи.
Всё))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043262#p4043262"]при правильном подходе одноранговая сетка на юарте делается без всяких мультиплексоров.[/uquote]
Так и не нашли такое решение...))

Добавлено after 13 minutes 17 seconds:
P.S.
STM32 до 18 Мбит/c
))

Просто и главное надёжно. Легко в обслуживании.
Спрятал от посторонних глаз щит в кладовке и туда завёл все витухи.
Всё))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043262#p4043262"]при правильном подходе одноранговая сетка на юарте делается без всяких мультиплексоров.[/uquote]
Так и не нашли такое решение...))
Выше уже обсуждали... и с клоком... и с отдельной линией управления потоком (как в RS-232)...Ivanoff-iv писал(а):ещё можно применить УАРТ/УСАРТ, у всех мк соединяются RX и клок (при наличии) все настраиваются на слейв.
Да всё стандартно... Короче... пока что ничего нового))GoldenAndy писал(а):я за основу взял проект Кластера и несколько его допилил
Добавлено after 13 minutes 17 seconds:
P.S.
В таком случае проще собрать всё по SPI и гонять пакеты туда-сюда )) AVR до 5 Мбит/cIvanoff-iv писал(а):у всех мк соединяются RX и клок (при наличии) все настраиваются на слейв.
STM32 до 18 Мбит/c
))
Re: Протокол для Умного Дома
5МБит по одному проводу по всей квартире???
- GoldenAndy
- Поставщик валерьянки для Кота
- Сообщения: 1925
- Зарегистрирован: Чт июл 28, 2016 07:58:37
- Откуда: Kyiv, UA
- Контактная информация:
Re: Протокол для Умного Дома
roman.com, Со звездой вы упретесь в то, что в какой то момент у вашего хаба не хватит портов, если вдруг вы захотите что то добавить.
И без хаба нихрена не будет работать выше локального функционала без взаимодействия с соседями.
Оптимальным считаю подключение всех устройств на одну шину параллельно. Функционал локальный в каждом устройстве свой. И должен работать в пределах своей логики вообще без внешнего управления.
Интерфейс в инет, связь с ПК, мониторинг, логи, глобальное управление климатконтролем, зонами освещения, электропитания и т.д. - на большом устройстве - хабе.
Но хаб не должен быть мастером, без которого все упадет. Он должен быть равноправным членом сетки. И без него все должно работать.
Мало того, при условии извне загружаемых сценариев в локальные устройства (через тот же хаб), эти сценарии должны уметь работать без участия хаба. Только на основании статусных сообщений от датчиков и соседних устройств.
А что касается физической линии - чем меньше проводов - тем лучше. С учетом витухи - удобно пользовать четное число линий. И не забывайте про защиту от помех и наводок. У меня это - супрессоры на питании и сигнальной линии. А коллизии - мне кажется, идея подтяжки линии к питанию резисторами и притягивание её к земле каждым устройством - безопасный вариант, если несколько устройств захотят передавать данные одновременно. Коллизии - придется решать программно, на уровне программного драйвера приемо-передатчика.
Но дело ваше, вы вправе сделать как вам это кажется удобным. Вобщем, удачи!
parovoZZ, Да хоть 100 Мбит, это дело топикстартера, выбирать скорость физики и ее принцип работы. Может, ТС захочет расставить цифровую акустику по углам комнаты и по локалке гнать 5+1 канал звука 16 бит 44.1 кГц от ресивера
И без хаба нихрена не будет работать выше локального функционала без взаимодействия с соседями.
Оптимальным считаю подключение всех устройств на одну шину параллельно. Функционал локальный в каждом устройстве свой. И должен работать в пределах своей логики вообще без внешнего управления.
Интерфейс в инет, связь с ПК, мониторинг, логи, глобальное управление климатконтролем, зонами освещения, электропитания и т.д. - на большом устройстве - хабе.
Но хаб не должен быть мастером, без которого все упадет. Он должен быть равноправным членом сетки. И без него все должно работать.
Мало того, при условии извне загружаемых сценариев в локальные устройства (через тот же хаб), эти сценарии должны уметь работать без участия хаба. Только на основании статусных сообщений от датчиков и соседних устройств.
А что касается физической линии - чем меньше проводов - тем лучше. С учетом витухи - удобно пользовать четное число линий. И не забывайте про защиту от помех и наводок. У меня это - супрессоры на питании и сигнальной линии. А коллизии - мне кажется, идея подтяжки линии к питанию резисторами и притягивание её к земле каждым устройством - безопасный вариант, если несколько устройств захотят передавать данные одновременно. Коллизии - придется решать программно, на уровне программного драйвера приемо-передатчика.
Но дело ваше, вы вправе сделать как вам это кажется удобным. Вобщем, удачи!
parovoZZ, Да хоть 100 Мбит, это дело топикстартера, выбирать скорость физики и ее принцип работы. Может, ТС захочет расставить цифровую акустику по углам комнаты и по локалке гнать 5+1 канал звука 16 бит 44.1 кГц от ресивера
Re: Протокол для Умного Дома
Я к тому, что ему придётся вводить избыточные коды, ибо 5 МБит не по дифф. паре - это заявка на успех.
Re: Протокол для Умного Дома
У меня всё так и работает.GoldenAndy писал(а):Функционал локальный в каждом устройстве свой. И должен работать в пределах своей логики вообще без внешнего управления.
Допустим через приложение мы задаём температуру электрокамина. Температура записывается в EEPROM.
Дальше электрокамин поддерживает эту температуры автономно. Без внешнего управления)) И если пропадёт питание 220V то камин вспомнит какая была температура)).
И т.д.
У меня все так работает (автономно и через EEPROM).
Выше писал что делать - дополнительный МК - расширитель портов))GoldenAndy писал(а):в какой то момент у вашего хаба не хватит портов
Я не пойму... мои сообщения тут вообще никто не читает ? ))roman.com писал(а):Если слейвов больше чем выводом МК мастер, то можно добавить в схему второй МК в качестве коммутатора пакетов.
Добавлено after 3 minutes 18 seconds:
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043487#p4043487"]Оптимальным считаю подключение всех устройств на одну шину параллельно[/uquote]
Не самый лучший вариант. А если замкнет что... ляжет вся сеть.
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043487#p4043487"]идея подтяжки линии к питанию резисторами и притягивание её к земле каждым устройством - безопасный вариант[/uquote]
Безопасный но медленный... ))
[uquote="GoldenAndy",url="/forum/viewtopic.php?p=4043487#p4043487"]А что касается физической линии - чем меньше проводов - тем лучше.[/uquote]
Не факт. Когда все устройства синят на одной витухе тоже не супер.
Неудобно их коммутировать. Витуха под полом и в стенах. При перекоммутации вскрывать пол ? Или долбить стены ?
Удобней когда все витухи приходят в один щит. Для перекоммутации достаточно переключить порт в щитке.
Тут знаете ли вопрос не однозначный...
Добавлено after 6 minutes 10 seconds:
[uquote="parovoZZ",url="/forum/viewtopic.php?p=4043518#p4043518"]придётся вводить избыточные коды, ибо 5 МБит не по дифф. паре - это заявка на успех.[/uquote]
Какие ещё коды ? )) SPI или работает или нет. Если не работает - значит уменьшаем скорость и/или уменьшаем длину проводов.
Другого не дано))
А вот кстати интересно... А кто-нибудь проверял максимальную скорость и расстояние на которую будет стабильно работать SPI ?
Думаю надо будет как-нибудь проверить...
У SPI есть явные преимущества - он не боится прерывания и можно SPI сделать программно (в прошлой теме делали до 100 Кбит/c).
Но по витухе не проверяли.))
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Протокол для Умного Дома
ещё... может не совсем в тему... можно использовать трансы от сетевух для гальваноразвязки, а для передачи применить манчестерский код - чтобы трансформаторы не насыщались
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: Протокол для Умного Дома
Да всё мы уже пробовали (см. выше)...
Добавлено after 1 minute 44 seconds:
Добавлено after 1 minute 44 seconds:
Трансформатор - идеальное решение. Лучше только оптика))roman.com писал(а):в прошлой теме мы разгоняли AVR на Ассемблере до скорости 10 МБит/с и более... Когда делали самодельный Ethernet на AVR





