|
Интерфейс для маленькой "сети", где несколько Master'ов |
|
|
|
Jun 27 2010, 16:30
|

Участник

Группа: Участник
Сообщений: 52
Регистрация: 6-05-09
Из: Москва
Пользователь №: 48 733

|
Всем здравствуйте! Лето началось, снова я со скуки берусь за хобби. С диммером справился, пора для него разработать интерфейс  Приношу свои извинения, но кроме соединений типа точка-точка (RS-232) я ничего не знаю; тема почти вольная и начнётся с тупых вопросов. Я хочу получить игрушку в виде "умного дома" в виде нескольких модулей. Вижу я себе это вот как: 1. Есть n-ое количество модулей, которые вешаются на какую-то общую шину. Модуль - это например диммер, реле или датчики (ну вполне напоминает промышленные контроллеры, да). 2. Есть "панель управления" - девайс с кнопочками и дисплейчиком. Через меню мы можем управлять/считывать состояние навешанных на шину модулей. 3. Есть комп, который тоже подключён к этой шине (двоякое управление: автономное через (2) и через комп). Фактически комп выступает в роли такой же панели управления. Наваял схематически примерный вид сети:
Ньюансы: а) Панелей управления (2) будет несколько: хочу сделать управление освещением, соответственно заменяю ими выключатели. б) Модули будут конечно адресоваться. Автодетект адресов модулей не нужен - могу и так вписать их в кофигурацию. в) НЕ понимаю, как сделать несколько Мастеров. Было два варианта: в.1.) Инфа о статусе хранится в Модулях. У Мастеров и Модулей есть уникальные адреса. Раз в nn времени каждый Мастер захватывает канал связи и поочерёдно опрашивает модули на тему, чего у них включено и чего выключено. в.2.) Есть какой-то служебный узел сети. Любой модуль читает из него то, что он должен выполнить, а любой Мастер пишет туда что надо выполнить. г) Всё это - полуигрушеченое и хобби для меня самого (типа кулибинство в квартире и поковыряться). На чём делать Мастера - не решил, для Модулей есть запас мелких ATMega8 в DIP'е. Есть ещё ATMega32. Фактически, работу всего этого я вижу так, что на одной панели включили свет. Потом дошли до компа - там его погасили (естественно состояние отображается). Или погасили с другого места управления. Модулю должны сыпаться почти низкоуровневые команды типа ВКЛВыход1 - ОК. ЯркостьВыход2=25% - ОК. А на всех панелях - правильное состояние системы. Господа Гуру - подскажите пожалуйста, чего подойдёт под мои задачи из интерфейсов (фактически натолкните на какие-то существующие ссылками, чтобы я мог выбрать и реализовать)? Связь всего этого будет ну по квартире - положим метров 30-50 максимум. В принципе, как самое топорное решение, я могу и LAN прикрутить, если это решит мои проблемы (устройства, адреса). НО проблемы, кажется, логические - как делают, когда управление может быть из нескольих мест? Как делают грамотно? Мне видится, что скорость у этого всего была бы мелкая, кроме команд установки яркости: их может сыпаться много из-за плавного гашения-зажигания... Ну и если правда это можно реализовать на LAN - то тогда я хочу LAN  P.S. Мои хотелки на ТЗ не тянут, описал совсем на пальцах. P.S.2. Тема - немного флудастая. Подниму ещё раз, когда реально сяду за дела. Пока хочу спроектировать саму "сеть". UPD: Глянул в раздел интерфейсы. Появились дополнительные комменты: 1. Я старой выучки и хочу проводной интерфейс. 2. Если это будет модуль или чип типа сконфигурировал / послал/принял данные по прерыванию - вообще замечательно!
Сообщение отредактировал C.S. - Jun 27 2010, 16:34
|
|
|
|
|
 |
Ответов
|
Jul 1 2010, 16:22
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
RS-485 без ухищрений - вещь, живущая до первого прецидента, на который разработчик, обычно разводит руками, мол "кто ж знал? помеха...". Не буду озвучивать имен, но не раз приходилось "солидным" конторам грозить пальчиком "ай-я-яй" - в погоне за простотой "обычного мастер-слейва" даже контрольную сумму не стремились использовать.
Не надо пытаться делать вещи проще, чем они того заслуживают. Табурет с 3 ногами устойчивее лишь в теории; 5 ног - явный перебор. "Битый жизнью" Мерфи утверждал, что если что-то негативное может случится, то оно случится обязательно с самым максимальным ущербом. Если под "защитой от дурака" понимать несложные программные или аппаратные проверки, уберегающие от явно деструктивного поведения системы при возможных (допустимых физически, реализуемых) входных условиях, то такая защита повышает надежность. Яркие примеры: проверка перед делением на ноль и плавкий предохранитель. Кстати, и прямовключенный диод во входной цепи питания много жизней спас.
Мастер, несмотря на всю свою активность, все же товарищ пассивный. Мониторят датчики и клацают релюхи слейвы. В контексте сети, для передачи сигнала о нажатии на кнопку на слейве_1 слейву_2 для управления реле, требуется, чтобы жили: слейв_1, слейв_2, мастер и не пакостничали все оставшиеся.
Яркий пример несовместимого по стандарту железа - топор - может запороть любую проводную шину. Пожалуй, поможет кольцевание и сегментация - и тут CANу легче. Разорвав сеть, в случае с CAN получите две маленькие работоспособные сеточки; у RS-485 одна сеть 100% мертвая, вторая - с простоями на шине из-за таймаутов на ответ "потеряных" узлов.
То, что есть защищенная от длительного удержания на линии доминантных бит физика - не секрет. Для надежности лучше использовать аппаратные CAN-модули, строго придерживающиеся стандарта.
А у меня есть опыт общения с Заказчиком, когда пытаешься объяснить почему не работают "100 выключателей" - а в глазах лишь скорбь... и оттенок зарождающегося сомнения: "может... 100 проводов было бы надежнее... чем 2, но увы - стены ужо стоять, а паркеты ужо лежать".
Многие разработчики - произошли от программистов, некоторые от радиофизиков. Статистическая радиофизика утверждает, что все работает с какой-то вероятностью (точнее, интересуется вероятностью "не работы") и учит методам снижения вероятности отказа. Программист всегда работает на исправном железе - "отказ? - перезагрузись!"
Не хотите наступать на грабли - используйте для умного дома распределенную сеть и ни когда, слышите, никогда не используйте ПК. CAN Вам в помощь )
... + купил когда-то ADM485 - так и лежат. Правда, уж второй год на московских АэроЭкспрессах бегает речевое оповещение с RS-485 - тьфу-тьфу... хотя и поезд)... хотя и не мультимастер)
Сообщение отредактировал adnega - Jul 1 2010, 16:32
|
|
|
|
|
Jul 1 2010, 16:50
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(adnega @ Jul 1 2010, 19:22)  Не надо пытаться делать вещи проще, чем они того заслуживают. Табурет с 3 ногами устойчивее лишь в теории; 5 ног - явный перебор. Попытка оправдать применение дорогой автомобильной шины для дома? Вот 3 ноги из вашего примера - это отдельный провод каждому выключателю, 5 ног - это предложенный Вами STM32, а тиня там это как раз обычная четырех-ногая табуретка. Причем не особо важно будет то тиня13 или тиня2313 или PIC или еще чего такого же класса. Цитата Мастер, несмотря на всю свою активность, все же товарищ пассивный. Мониторят датчики и клацают релюхи слейвы. В контексте сети, для передачи сигнала о нажатии на кнопку на слейве_1 слейву_2 для управления реле, требуется, чтобы жили: слейв_1, слейв_2, мастер и не пакостничали все оставшиеся. Не надо приплетать сюда мультимастер концепцию. Слейв слейву ничего передавать не может и не должен по определению системы Мастер-слейв. Все слейвы - пассивные устройства и ничего друг о друге не знают. Что-то куда-то передать - это задачи мастера, только он ведает о ресурсах сети и должен заботиться об этих ресурсах, читать с устройств ввода и выводить на устройства вывода. Цитата А у меня есть опыт общения с Заказчиком, когда пытаешься объяснить почему не работают "100 выключателей" - а в глазах лишь скорбь... и оттенок зарождающегося сомнения: "может... 100 проводов было бы надежнее... чем 2, но увы - стены ужо стоять, а паркеты ужо лежать". Наверное в этом и отличие, у меня опыт - у заказчика всегда все запускается с первого раза, и работает пока не заменят чем-то получше. Все проблемы решаются до монтажа системы заказчику, а не как это принято у многих современных подрядчиков - после установки системы на объект. Цитата Не хотите наступать на грабли - используйте для умного дома распределенную сеть и ни когда, слышите, никогда не используйте ПК. CAN Вам в помощь ) Что за чушь, а если я с ПК хочу отключить свет в туалете, или запрограммировать чтобы кондиционер включился ровно в 8.00, тоже прикажете не использовать? А CAN фтопку (вместе с Шао Каном, Лю Каном и Кано), не нужно оно для дома.
|
|
|
|
|
Jul 1 2010, 18:35
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Jul 1 2010, 20:34)  А что, дом чем-то хуже автомобиля? По требованиям к электронике - для разработчика как раз много лучше, это не industrial и даже не commercial, не то что automotive... Например можно поставить CAN, а можно - лапшу из проводов, можно поставить гальваноразвязку для каждого устройства, а можно и не ставить и т.д.. Тобиш выбор огромный, делай, что хочешь и как хочешь, принимай работу сам, и не бойся в тюрму не посадят из-за того что дом на кого-то упадет.. куда ж еще лучше требования то найти?  Цитата Я бы думал, что наоборот. Ну а такие же требования как и для автомобиля могут появиться только если "дом" это одно из трех: - избушка на курьих ножках; - трейлер / вагон поезда; - сарай у подножья действующего вулкана. Цитата У вашей системы есть один большой недостаток: нельзя в произвольном месте подключить к шине кнопочку, которая будет управлять "во-он той лампочкой". Заблуждаетесь, можно и это. Кнопочку надо будет всего лишь подготовить, - задать ей такой адрес которого в системе еще не было, а мастеру, сказать - "искать новые устройства" - что делается тупым однократным опросом всех возможных адресов. Цитата Или эти кнопочки должен будет постоянно опрашивать единственный мастер, что, по-моему, не является красивым решением. Да он будет опрашивать все устройства ввода, которые нашел, это факт, тем самым заодно и контроллируя статус устойства - живой/не живой.
|
|
|
|
Сообщений в этой теме
C.S. Интерфейс для маленькой "сети", где несколько Master'ов Jun 27 2010, 16:30 demiurg_spb Цитата(C.S. @ Jun 27 2010, 20:30) 1. Есть... Jun 27 2010, 18:39 C.S. Добавляю. Почитал про DMX-512. Там время обновлени... Jun 27 2010, 18:48 rezident C.S., определитесь сначала с "физикой" л... Jun 27 2010, 19:10 C.S. Цитата(rezident @ Jun 27 2010, 23:10) То ... Jun 27 2010, 20:22  rezident Цитата(C.S. @ Jun 28 2010, 02:22) А что м... Jun 27 2010, 20:40  Прохожий Цитата(C.S. @ Jun 28 2010, 00:22) Я думал... Jun 27 2010, 21:00 C.S. ЦитатаПамять чего именно?
Извиняюсь, что запутал. ... Jun 27 2010, 21:02 aaarrr Цитата(demiurg_spb @ Jun 27 2010, 22:39) ... Jun 27 2010, 21:24 Прохожий Цитата(aaarrr @ Jun 28 2010, 01:24) Ну за... Jun 27 2010, 21:37  aaarrr Цитата(Прохожий @ Jun 28 2010, 01:37) Не ... Jun 27 2010, 22:02   defunct Цитата(aaarrr @ Jun 28 2010, 01:02) Никак... Jun 27 2010, 23:34    galjoen Если хотите просто и мультимастерно, то я рекоменд... Jun 28 2010, 10:18    aaarrr Цитата(defunct @ Jun 28 2010, 03:34) Оста... Jun 28 2010, 10:27   Прохожий Цитата(aaarrr @ Jun 28 2010, 02:02) Никак... Jun 29 2010, 19:49    aaarrr Цитата(Прохожий @ Jun 29 2010, 23:49) Кст... Jun 29 2010, 20:47     Прохожий Цитата(aaarrr @ Jun 30 2010, 00:47) Для ч... Jun 29 2010, 21:44      aaarrr Цитата(Прохожий @ Jun 30 2010, 01:44)
То... Jun 29 2010, 22:13       Прохожий Цитата(aaarrr @ Jun 30 2010, 02:13) То ес... Jul 2 2010, 16:00        aaarrr Цитата(Прохожий @ Jul 2 2010, 20:00) Не х... Jul 2 2010, 16:12         Прохожий Цитата(aaarrr @ Jul 2 2010, 20:12) Если б... Jul 2 2010, 16:56          defunct Цитата(Прохожий @ Jul 2 2010, 19:56) Не с... Jul 2 2010, 23:32           galjoen Цитата(defunct @ Jul 3 2010, 03:32) 485-й... Jul 3 2010, 16:10            defunct Цитата(galjoen @ Jul 3 2010, 19:10) Не со... Jul 3 2010, 16:20             rezident Цитата(defunct @ Jul 3 2010, 22:20) Интер... Jul 3 2010, 16:55              defunct Цитата(rezident @ Jul 3 2010, 19:55) Имее... Jul 3 2010, 21:00               rezident Цитата(defunct @ Jul 4 2010, 03:00) Не пр... Jul 3 2010, 22:44                defunct Цитата(rezident @ Jul 4 2010, 01:44) Ну р... Jul 4 2010, 00:08                 =AK= Цитата(defunct @ Jul 4 2010, 09:38) Приве... Jul 4 2010, 02:24                  defunct Цитата(=AK= @ Jul 4 2010, 05:24) Бесспорн... Jul 4 2010, 03:14                   galjoen Что то мы залезли в теорию, причём выясняется как ... Jul 4 2010, 12:41                    MrYuran Цитата(galjoen @ Jul 4 2010, 16:41) Если ... Jul 4 2010, 14:34         MrYuran Цитата(aaarrr @ Jul 2 2010, 20:12) Лучше ... Jul 3 2010, 14:41          Прохожий Цитата(MrYuran @ Jul 3 2010, 18:41) Единс... Jul 4 2010, 18:15           Dog Pawlowa Цитата(Прохожий @ Jul 4 2010, 21:08) Точн... Jul 4 2010, 18:21           galjoen Цитата(Прохожий @ Jul 4 2010, 22:15) Сейч... Jul 4 2010, 18:43            Прохожий Цитата(galjoen @ Jul 4 2010, 22:43) Живет... Jul 4 2010, 18:49   AHTOXA Цитата(aaarrr @ Jun 28 2010, 04:02) ИМХО,... Jun 30 2010, 18:52    aaarrr Цитата(AHTOXA @ Jun 30 2010, 22:52) aaarr... Jun 30 2010, 20:08     defunct Цитата(aaarrr @ Jun 30 2010, 23:08) (хотя... Jun 30 2010, 20:14      aaarrr Цитата(defunct @ Jul 1 2010, 00:14) Чем о... Jun 30 2010, 20:22       defunct Цитата(aaarrr @ Jun 30 2010, 23:22) Ну та... Jun 30 2010, 20:34        aaarrr Цитата(defunct @ Jul 1 2010, 00:34) Меня ... Jun 30 2010, 20:48         defunct Цитата(aaarrr @ Jun 30 2010, 23:48) Ну а ... Jun 30 2010, 21:57     galjoen Цитата(aaarrr @ Jul 1 2010, 00:08) Если т... Jul 1 2010, 07:46      defunct Цитата(galjoen @ Jul 1 2010, 10:46) Кстат... Jul 1 2010, 11:57       demiurg_spb Цитата(defunct @ Jul 1 2010, 15:57) Непос... Jul 1 2010, 12:20        defunct Цитата(demiurg_spb @ Jul 1 2010, 15:20) Ч... Jul 1 2010, 13:46         demiurg_spb Цитата(defunct @ Jul 1 2010, 17:46) А чег... Jul 3 2010, 14:33       galjoen Цитата(defunct @ Jul 1 2010, 15:57) Это В... Jul 1 2010, 13:24 C.S. Эээ, ... я читаю всё, попутно просматриваю википед... Jun 28 2010, 10:34 aaarrr Цитата(C.S. @ Jun 28 2010, 14:34) Так как... Jun 28 2010, 10:40 C.S. Простите за настырность, а какое ещё? Ну LAN модул... Jun 28 2010, 11:15 aaarrr Цитата(C.S. @ Jun 28 2010, 15:15) Простит... Jun 28 2010, 11:23 MrYuran Цитата(C.S. @ Jun 28 2010, 15:15) С чего ... Jun 29 2010, 08:54 adnega Себе дома сделал на CAN. Контроллер сам по себе: у... Jun 29 2010, 08:16 adnega Радио не могу назвать надежным и безопасным.
Раз ... Jun 29 2010, 09:30 C.S. Тшшш, ребят! Я только-только подбираюсь к теме... Jun 29 2010, 10:09 ViKo А как насчет LIN? Jun 29 2010, 10:21 adnega А почему не CAN?! Если нужно гонять данные до ... Jun 29 2010, 10:40 C.S. Эээ... так я же всех тут вопросами потом достану %... Jun 29 2010, 11:08 adnega 5 mega8 по CAN связать, не то чтобы не получится..... Jun 29 2010, 16:24 =AK= Есть несколько вариантов организации сети
1. Маст... Jun 30 2010, 00:44 defunct Цитата(=AK= @ Jun 30 2010, 03:44) Есть не... Jun 30 2010, 20:02  =AK= Цитата(defunct @ Jul 1 2010, 05:32) Внизу... Jun 30 2010, 22:07 aaarrr Вот я и спрашиваю, как выключатель обычный настенн... Jun 30 2010, 22:03 defunct Цитата(aaarrr @ Jul 1 2010, 01:03) Вот я ... Jul 1 2010, 03:05  =AK= Цитата(defunct @ Jul 1 2010, 12:35) Oтчег... Jul 2 2010, 00:00 adnega Друзья, у схемы "мастер-слейв" есть один... Jul 1 2010, 06:22 aaarrr Цитата(adnega @ Jul 1 2010, 10:22) И уж с... Jul 1 2010, 06:25  MrYuran Цитата(aaarrr @ Jul 1 2010, 10:25) Эх... Jul 1 2010, 06:47 adnega Согласен что надежность и сложность находятся в оп... Jul 1 2010, 13:46 defunct Цитата(adnega @ Jul 1 2010, 16:46) 1. Исп... Jul 1 2010, 14:04  galjoen Цитата(defunct @ Jul 1 2010, 18:04) Приме... Jul 1 2010, 14:26      aaarrr Цитата(defunct @ Jul 2 2010, 01:05) А где... Jul 1 2010, 21:25       galjoen Цитата(aaarrr @ Jul 2 2010, 01:25) Напомн... Jul 2 2010, 10:19 adnega 1. CAN совсем не дорого.
2. Насчет того что нужно ... Jul 1 2010, 17:23 adnega Думаю будет интересно:
Имея неприятный опыт внедре... Jul 1 2010, 18:13 ILYAUL ЦитатаДрузья, у схемы "мастер-слейв" ест... Jul 1 2010, 18:54 adnega Уж если RS-485, то могу посоветовать две фишечки:
... Jul 1 2010, 19:46 defunct Цитата(adnega @ Jul 1 2010, 22:46) Уж есл... Jul 1 2010, 20:32  ILYAUL Цитата(defunct @ Jul 2 2010, 00:32) ...не... Jul 1 2010, 20:47 ILYAUL Цитатапризнаком скорости
Что Вы под этим понимает... Jul 2 2010, 09:54 defunct Цитата(ILYAUL @ Jul 2 2010, 12:54) Что Вы... Jul 2 2010, 11:03  galjoen Цитата(defunct @ Jul 2 2010, 15:03) Это р... Jul 2 2010, 11:37   defunct Цитата(galjoen @ Jul 2 2010, 14:37) И пер... Jul 2 2010, 16:22    galjoen Цитата(defunct @ Jul 2 2010, 20:22) Сравн... Jul 2 2010, 17:37 @Ark ЦитатаКовертеры RS232<>RS485 впринципе не мо... Jul 4 2010, 09:45 adnega Длина зависит от скорости. 10кБ/с. Jul 4 2010, 14:57 galjoen Цитата(adnega @ Jul 4 2010, 18:57) Длина ... Jul 4 2010, 15:20 rezident 2 defunct, насчет разницы терминов интерфейс и про... Jul 4 2010, 15:43 defunct Цитата(rezident @ Jul 4 2010, 18:43) Резю... Jul 4 2010, 17:45  rezident Цитата(defunct @ Jul 4 2010, 23:45) С при... Jul 4 2010, 18:20 adnega Вроде, CANу от среды нужно немного:
- наличие двух... Jul 4 2010, 18:58
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|