Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 137

Идеологическая организация сети

06.08.2016, 12:19. Показов 3446. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Делаю простой умный дом, с элементами охранной системы (или наоборот, не суть важно). Чтобы не тянуть кучу охранных шлейфов, решил организовать кучу умных датчиков (ATtiny13A) на базе RS-485, поэтому связь полудуплексная, формат обмена: запрос мастера - ответ слейва. Протокол обмена придумываю свой (хочеться лучше понять это дело). Но сейчас ломаю голову над более высоким уровнем абстракции, а именно как идеологически организовать сеть. Варианты:
1. Центральный блок должен иметь битовое поле, по выставленным битам которого поставленные под охрану датчики опрашиваются. Не поставленные датчики (биты в битовом поле не выставлены) не опрашиваются, либо опрашиваются, просто, чтобы знать что они в сети (исправны), но их показания не принимаются к сведению. То есть контроль состояния сети на стороне мастера.
2. Центральный блок просто раздает команды нужным датчикам перейти в охранный режим, и в дальнейшем опрашивает все датчики. Те датчики, которые по команде мастера включили охранный режим передают свое состояние (норма/тревога), те что не включили просто сообщают о своем наличии. То есть контроль состояния сети передан на откуп каждому датчику (каждый отвечает сам за себя).

Второй момент. В каком виде лучше организовать передачу инфы мастеру. Датчики передают просто сырые данные (показания АЦП), а мастер уже решает, норма это, или нет. Или датчик внутри себя решает, норма или тревога, и формирует сообщение для мастера согласно протокола.

Третий момент. Датчик самостоятельно себя мониторит (при нахождении в режиме охраны запоминает факт тревоги) и при обращении мастера выдает этот факт, или мастер просто достаточно часто (раз в полсекунды-секунду) опрашивает всех, и делает вывод о состоянии сети.

И четвертый момент. В протоколе модбас на широковещательные сообщения не отвечают. А у меня возникла такая идея. Мастер дает широковещательный запрос и начинает ждать. У каждого слейва (датчика) есть адрес. Он берет этот адрес, принимает его за задержку в мс, и отвечает через это время. То есть, каждому датчику выделено окно для ответа согласно его адреса. Коллизии вроде исключаются. Мастер знает, что в сети есть N датчиков (в еепром есть карта приписанных датчиков), поэтому он лишнего не ждет, как только последний ответил, ожидание прекращается. Стоящая идея или фуфло ?

Перед этим читал много тем по организации сети на этом форуме, но именно эти вопросы все равно остались после прочтения.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2016, 12:19
Ответы с готовыми решениями:

Организация Mesh (ячеистой) сети
Добрый День! Хочу сделать несколько беспилотников от простого самолетика до квадракоптера с видео. Управлять хочу на 433 или 915. Для...

Организация локальной сети (разрешить\открыть доступ по сети)
Имеется стационарный ПК, ноутбук, вай-фай роутер Zyxel Keenetic Lite. Как организовать локальную сеть для обмена файлами? Компьютеры уже...

Организация сети
Здравствуйте. Подскажите как лучше организовать следующую схему: 1. обмен напрямую между клиентами? например игра крестики нолики - как...

11
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
06.08.2016, 13:54
Придумывая свое вы учИтесь, за это плюс. Но сразу делаете свое оборудование несовместимым, это минус.
Лучше бы использовать чужие наработки, как в смысле железа, так и библиотек...
Например:

<Изображение удалено>
Это только пример, и он явно не для самодельщика, но как пример того на что ориентироваться...
P.S. Есть три вида протокола ModBus, это RTU, ASCII, и TCP. Они очень разные, просто все называются ModBus. Вы какой имели в виду?
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 892
06.08.2016, 14:18
Если кто-то делает свое, даже несовместимое, то пройдя весь путь он будет готов понять и освоить любой стандарт получше, чем тот, кто незадумываясь скопировал чужое.
Кроме этого в "своем" можно обрезать кучу ненужного балласта, содержащегося в любом стандарте или добавить нечто нужное, чего там нет. Часто привязывание стандартного решения к своим специфическим требованиям занимает больше времени, чем создание с чистого листа.
А вообще разговор про сеть нужно начинать с количества точек, расстояния и скорости обмена.
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 137
06.08.2016, 14:56
Про модель OSI уже читал, но свою сеть могу представить в ней не до конца. Я четко вижу физический уровень (RS-485) и протокольную часть (буду писать сам). А вот по поводу более высоких уровней и возникли эти вопросы.
Про модбас я упомянул просто для примера. Там нет ответа на широковещательные сообщения, и я вот думаю, а надо ли мне такое.
По поводу количества точек, расстояния и скорости обмена:
1. На данный момент в моей простейшей реализации протокола количество слейвов - до 15, в будущем планирую расширить. До скольки - пока сказать не готов, будет видно по обстоятельствам.
2. Расстояние - планирую обкатывать на частном доме с отдельным гаражом, всего до 100 м.
3. Скорость обмена - стандартный UART на 9600 б/с.
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
06.08.2016, 15:06
Для "умного дома" ModBus RTU поверх RS-485, по мне очень здравая мысль.
Можно самому подумать, подучиться, можно воспользоваться промышленными/любительскими схемными решениями/библиотеками...
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
06.08.2016, 15:16
Цитата Сообщение от Kmusmos
Про модель OSI уже читал, но свою сеть могу представить в ней не до конца.
Неудивительно. Раз уж даже вездесущий TCP/IP в эту модель не вписывается (см. модель DOD).
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 892
06.08.2016, 15:37
Как интересно это совпадает с охранной системой, про которую тут уже писал в подобных темах )). Кроме физического уровня - ну ничего хорошего не давал (RS-485) по сравнению с однопроводной линией и самопальным протоколом.
Не ясно сколько вы собираетесь байт в пакете передавать, но если взять два байта запроса и два на ответ, то получится более 15-ти сеансов в секунду с каждой точкой, что явно достаточно для простого циклического опроса.
Вот и весь верхний уровень.
(У меня пульт отсылал запрос в виде байта с адресом в младшей тетраде и нулями в старшей, соответствующий объект присылал назад тот же байт с четырьмя битами состояния датчика охраны - звук, движение, дверь, концевик вскрытия самого датчика. Н незарегистрированные адреса запрос не посылался, отсутствие ответа в течении миллисекунды вызывало трехкратный повторный запрос, после чего индицировалось отсутствие связи.)
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 137
06.08.2016, 18:18
Цитата Сообщение от инкер
... Кроме физического уровня - ну ничего хорошего не давал (RS-485) по сравнению с однопроводной линией и самопальным протоколом.
Не ясно сколько вы собираетесь байт в пакете передавать, но если взять два байта запроса и два на ответ, то получится более 15-ти сеансов в секунду с каждой точкой, что явно достаточно для простого циклического опроса.
Вот и весь верхний уровень.
(У меня пульт отсылал запрос в виде байта с адресом в младшей тетраде и нулями в старшей, соответствующий объект присылал назад тот же байт с четырьмя битами состояния датчика охраны - звук, движение, дверь, концевик вскрытия самого датчика. Н незарегистрированные адреса запрос не посылался, отсутствие ответа в течении миллисекунды вызывало трехкратный повторный запрос, после чего индицировалось отсутствие связи.)
Я за использование RS-485 по одной причине, протокольную часть легко отлаживать через обычный USB-UART. Вот я датчики уже практически наполовину написал, они прекрасно откликаются и работают.

Вы не поверите, но у меня сейчас почти так же организовано, пакет состоит из 1 байта: младшая тетрада - адрес, старшая - команда. Отсутствие контрольной суммы компенсируется квитированием - ответ должен придти с того же адреса, на который отправлен запрос, код возвращаемой команды должен быть идентичен отсылаемому коду команды. Я просто думаю, что это очень по-дилетантски)) Потому что например пересылка сырых данных (у меня это старшая тетрада показаний АЦП, младшую я упраздняю) подвергаются потенциальной порче. Думаю перейти на фиксированный 4-х байтный пакет: адрес, команда, данные, и 1 байт контрольной суммы 3 предыдущих байт. Но тут на горизонте уже начинает маячить Модбас))
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 892
06.08.2016, 19:12
Нет, не по дилетантски, а нормально, от простого - к сложному. На каком-то этапе понимаешь, что достигнута необходиния достаточность и ничего лишнего.
Кстати, в другом использовании, с пакетом побольше, у меня похожая на вашу планируемую организация обмена. В этом нет ничего удивительного, все велосипеды тоже похожи.
Удобство УАРТ для отладки существенно, мне пришлось сделать простейший переходник со своего интерфейса на СОМ, но не для отладки сети, а наблюдения и настройки самих устройств. Связь отлаживалась тестовыми программками.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 322
07.08.2016, 05:52
Я как то разбирался с древней импортной охранной системой, там в ответ на широковещательный запрос (в той или иной форме), каждое устройство, у которого произошло событие, выставляло на шину бит, соответствующий своему адресу. Далее мастер опрашивал в первую очередь устройства с событиями, а потом все остальные.
Мне этот вариант очень понравился тогда.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 322
07.08.2016, 05:55
Цитата Сообщение от Kmusmos
Думаю перейти на фиксированный 4-х байтный пакет: адрес, команда, данные, и 1 байт контрольной суммы 3 предыдущих байт. Но тут на горизонте уже начинает маячить Модбас))
Для большей гибкости можно добавить еще один байт - длину пакета. Тогда вообще протокол получится очень универсальным.
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 137
07.08.2016, 09:23
Цитата Сообщение от bw429
...каждое устройство, у которого произошло событие, выставляло на шину бит, соответствующий своему адресу...
Действительно интересный вариант, спасибо, подумаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2016, 09:23
Помогаю со студенческими работами здесь

Организация сети
Добрый день. Подскажите пожалуйста, будет ли работоспособной домашняя сеть, которую набросал на рисунке? Цель - дать нескольким проводным...

Организация сети
Добрый день, можно ли организовать сеть как на картинке ? просто что то не получается. + ко есть еще TrendNet TEG-160WS Switch. Что лучше...

Организация сети на 30 ПК
Допустим, дано: 2 здания, между которыми 15 метров, в каждом здании по 15 компов, по одному сетевому принтеру, и несколько ноутов, к...

Организация Wi-Fi сети
Здравствуйте. Существует вот такая сеть (представлена на рисунке во вложении). Есть ростелекомовская PON-розетка, к которой через лан...

Организация сети
Возникла такая проблема, вроде бы представляю как решать задачу, но что-то видимо не догоняю, разъясните пожалуйста принципе, и если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru