Перейти к содержанию
    

Интерфейс для маленькой "сети", где несколько Master'ов

Если топикстартер решит остановиться на RS-485 (хотя я бы выбрал CAN), то порекомендую сочинить собственный протокол.

А чем же J1708 не устраивает? Аналог CAN-а во всём кроме быстродействия (9600), а быстродействие там, как я понимаю, ни к чему.

Т.е. не во всём, конечно, сказывается ограничение UART-ов. Но эти ограничения в маленькой сети не проявятся. Ну не нужны там тысячи уровней приоритета и т.п. А вот быстродействие, кстати, поднять без проблем можно - просто CAN-овские драйвера поставить и будет мегабит.

А по реализации не сильно сложнее модбаса (которому давно на кладбище пора). Кстати, а не является ли модбас переложением J1708? Специфическим переложением, конечно, типа переложения фуги Баха для сольного исполнения на барабане.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, а не является ли модбас переложением J1708? Специфическим переложением, конечно, типа переложения фуги Баха для сольного исполнения на барабане.

Это Вам должно быть виднее, если курили оба ;)

 

 

Кстати, про "жабу". Если душит STM32F103T за 80 рублей, то может и автоматизировать не надо. Рулить по-старинке, с выключателей. К сэкономленным деньгам добавить еще 4 раза по столько же и сидеть в Инете (на форуме) целый месяц)

На одном камне все не заканчивается. Одно дело рисовать и изготавливать плату под STM32, совсем другое - совсем НЕ рисовать для Tiny13. А задачу выключателя с любым даже самым супер-пупер крутым диммером и будильником могут решить оба.

 

Надежность как известно растет с уменьшением сложности, а не с ее увеличением - и естессно будет выше на t13, т.к. чип в разы проще, да и просто лучше подходит под задачу. Например питать его можно через нехитрый БП - диод, резик и стабилитрон (или вообще простой делитель), непосредственно от 220, потому как чипу пофиг на Uпит, на практике живет от 1.3В до 6В. Непосредственно от GPIO t13 можно включать релюшку. А что Ваш STM? Для выключателя это просто быстый, ни на что не годный (даже реле напрямую дернуть не сможет) кусок г.вна калькулятор, который придется очень долго приспосабливать к конкретной задаче управления "ОДНИМ СВЕТОДИОДОМ" при помощи сторонних компонентов, потом еще думать как получившееся втиснуть в корпус от выключателя...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непосредственно от GPIO t13 можно включать релюшку.
Что правда так делали?

Я бы на транзисторе не стал экономить.

Стрёмно это как-то...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это Вам должно быть виднее, если курили оба ;)

Конечно курил оба, иначе бы не писал. От модбаса у меня впечатления какой то убогости осталось. Единственное его преимущество в простоте реализации - любой студент-двоечник осилит. Да ещё на 1816ве48 он запросто реализуется. Ну и если использовать его для соединения точка-точка, то недостатки не так заметны.

Но в наше время, делать на нём сеть, да ещё на АРМе - это из пушки по воробьям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что правда так делали?

А чего ж нет, выводы у t13 сильные - DC Current per I/O Pin - 40.0 mA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен что надежность и сложность находятся в определенной зависимости при определенных условиях...

 

1. Использовать сложный в аппаратном, но легкий в программном плане CAN _надежнее_ того же RS-485 с программными "ухищрениями" для получения соизмеримой вероятности необработанной ошибки. Ибо, программист грешен и допускает ошибки.

 

2. Защита от дурака усложняет, но надежность от этого увеличивается.

 

3. Распределенная система (CAN) по числу элементов может быть и меньше централизованной на RS-485... Если отказом считать невозможность нормально функционировать какому-то отдельно взятому узлу, то в случае CAN надежность равна надежности одного узла; в случае с RS-485 сумме всех узлов. Например, промышленный модуль I-7015 при "слете" прошивки на ногах проца имеет такой потенциал, что продолжает висеть на шине с _включенным_ передатчиком RS-485. Сеть при этом глючит - найти кто виноват в этом случае, на объекте, в условиях, за потолком или в теплоузле, мягко говоря... !

 

4. Если речь идет о "контроллере светодиода", то микросхемы тут не нужны - тупо включатель и провода (надежнее не придумаешь).

 

5. Контроллер для умного дома или _сети_ уже подразумевает под собой нечто сложное. Ресурса tn13 может не хватить (сейчас или в будущем). Прыгать по камушкам - затратно.

 

6. tn13 - шикарные микросхемы! ) Постоянно держу неснижаемый остаток штук 50. Пихаю везде, где только можно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Использовать сложный в аппаратном, но легкий в программном плане CAN _надежнее_ того же RS-485 с программными "ухищрениями" для получения соизмеримой вероятности необработанной ошибки. Ибо, программист грешен и допускает ошибки.

Не надо использовать RS-485 с ухищрениями, обычный мастер-слейв.

 

2. Защита от дурака усложняет, но надежность от этого увеличивается.

Недежность ПО падает, т.к. каждый "if" в программе это дополнительный риск возможного глюка.

 

3. Распределенная система (CAN) по числу элементов может быть и меньше централизованной на RS-485... Если отказом считать невозможность нормально функционировать какому-то отдельно взятому узлу, то в случае CAN надежность равна надежности одного узла; в случае с RS-485 сумме всех узлов.

Неправда, с RS-485 надежность определяется надежностью одного самого сложного устройства - Мастера.

 

Например, промышленный модуль I-7015 при "слете" прошивки на ногах проца имеет такой потенциал, что продолжает висеть на шине с _включенным_ передатчиком RS-485. Сеть при этом глючит - найти кто виноват в этом случае, на объекте, в условиях, за потолком или в теплоузле, мягко говоря... !

Пример мимо кассы, и CAN можно запороть неадекватным (несовместимым со стандартом) железом, шина общая ведь и там.

 

4. Если речь идет о "контроллере светодиода", то микросхемы тут не нужны - тупо включатель и провода (надежнее не придумаешь).

задача поставлена в контексте централизованного управления выключателями. В таком свете интеллектуальный выключатель позволит уменьшить число проводов. Почуствуйте разницу между 100 проводов для 100 выключателей и 2 провода на 100 выключателей. В контексте всей системы неизвестно где надежность будет выше, но определенно точно можно сказать что система из двух проводов будет проще при монтаже и безопаснее в эксплуатации.

 

5. Контроллер для умного дома или _сети_ уже подразумевает под собой нечто сложное. Ресурса tn13 может не хватить (сейчас или в будущем). Прыгать по камушкам - затратно.

Контроллер для умного дома - это несомненно сложная программа возможно на PC, или в центральном устройстве управления. А модуль на t13 это всего лишь исполнительный блок, выполняющий строго свою одну функцию - вкл./отлк свет и возможно менять яркость по команде от мастера. Даже если поменяется устройство управления в будущем, перекроить всю систему, то этот исполнительный блок на t13 все равно будет продолжать выполнять всё ту же функцию - вкл/откл свет и задать яркость. Ничего нового туда не добавится, ибо для управления освещением набор функций по определению ограничен только этими двумя действиями - вкл/откл и яркость.

 

 

6. tn13 - шикарные микросхемы! ) Постоянно держу неснижаемый остаток штук 50. Пихаю везде, где только можно
это да :) порой незаменимый кусочек железа ;>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример мимо кассы, и CAN можно запороть неадекватным (несовместимым со стандартом) железом, шина общая ведь и там.

При использовании в CAN девайсах современных защищённых приёмопередатчиков, с ограничение времени доминанты (0), вероятность подвешивания всей сети одним девайсом несоизмеримо меньше, чем при использовании сети с RS485 приёмопередатчиками, которые, к тому же, могут подвешивать сеть и 0 и 1.

Хотя, ради справедливости нужно сказать, что если в модбасе заменить все приёмопередатчики на CAN-овские, эффект будет то же. Но это возможно только при использовании достаточно высокой скорости.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RS-485 без ухищрений - вещь, живущая до первого прецидента, на который разработчик, обычно разводит руками, мол "кто ж знал? помеха...". Не буду озвучивать имен, но не раз приходилось "солидным" конторам грозить пальчиком "ай-я-яй" - в погоне за простотой "обычного мастер-слейва" даже контрольную сумму не стремились использовать.

 

Не надо пытаться делать вещи проще, чем они того заслуживают. Табурет с 3 ногами устойчивее лишь в теории; 5 ног - явный перебор. "Битый жизнью" Мерфи утверждал, что если что-то негативное может случится, то оно случится обязательно с самым максимальным ущербом. Если под "защитой от дурака" понимать несложные программные или аппаратные проверки, уберегающие от явно деструктивного поведения системы при возможных (допустимых физически, реализуемых) входных условиях, то такая защита повышает надежность. Яркие примеры: проверка перед делением на ноль и плавкий предохранитель. Кстати, и прямовключенный диод во входной цепи питания много жизней спас.

 

Мастер, несмотря на всю свою активность, все же товарищ пассивный. Мониторят датчики и клацают релюхи слейвы. В контексте сети, для передачи сигнала о нажатии на кнопку на слейве_1 слейву_2 для управления реле, требуется, чтобы жили: слейв_1, слейв_2, мастер и не пакостничали все оставшиеся.

 

Яркий пример несовместимого по стандарту железа - топор - может запороть любую проводную шину. Пожалуй, поможет кольцевание и сегментация - и тут CANу легче. Разорвав сеть, в случае с CAN получите две маленькие работоспособные сеточки; у RS-485 одна сеть 100% мертвая, вторая - с простоями на шине из-за таймаутов на ответ "потеряных" узлов.

 

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

 

А у меня есть опыт общения с Заказчиком, когда пытаешься объяснить почему не работают "100 выключателей" - а в глазах лишь скорбь... и оттенок зарождающегося сомнения: "может... 100 проводов было бы надежнее... чем 2, но увы - стены ужо стоять, а паркеты ужо лежать".

 

Многие разработчики - произошли от программистов, некоторые от радиофизиков. Статистическая радиофизика утверждает, что все работает с какой-то вероятностью (точнее, интересуется вероятностью "не работы") и учит методам снижения вероятности отказа. Программист всегда работает на исправном железе - "отказ? - перезагрузись!"

 

Не хотите наступать на грабли - используйте для умного дома распределенную сеть и ни когда, слышите, никогда не используйте ПК. CAN Вам в помощь )

 

...

+ купил когда-то ADM485 - так и лежат. Правда, уж второй год на московских АэроЭкспрессах бегает речевое оповещение с RS-485 - тьфу-тьфу... хотя и поезд)... хотя и не мультимастер)

Изменено пользователем adnega

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо пытаться делать вещи проще, чем они того заслуживают. Табурет с 3 ногами устойчивее лишь в теории; 5 ног - явный перебор.

Попытка оправдать применение дорогой автомобильной шины для дома? Вот 3 ноги из вашего примера - это отдельный провод каждому выключателю, 5 ног - это предложенный Вами STM32, а тиня там это как раз обычная четырех-ногая табуретка. Причем не особо важно будет то тиня13 или тиня2313 или PIC или еще чего такого же класса.

 

Мастер, несмотря на всю свою активность, все же товарищ пассивный. Мониторят датчики и клацают релюхи слейвы. В контексте сети, для передачи сигнала о нажатии на кнопку на слейве_1 слейву_2 для управления реле, требуется, чтобы жили: слейв_1, слейв_2, мастер и не пакостничали все оставшиеся.

Не надо приплетать сюда мультимастер концепцию. Слейв слейву ничего передавать не может и не должен по определению системы Мастер-слейв. Все слейвы - пассивные устройства и ничего друг о друге не знают. Что-то куда-то передать - это задачи мастера, только он ведает о ресурсах сети и должен заботиться об этих ресурсах, читать с устройств ввода и выводить на устройства вывода.

 

А у меня есть опыт общения с Заказчиком, когда пытаешься объяснить почему не работают "100 выключателей" - а в глазах лишь скорбь... и оттенок зарождающегося сомнения: "может... 100 проводов было бы надежнее... чем 2, но увы - стены ужо стоять, а паркеты ужо лежать".

Наверное в этом и отличие, у меня опыт - у заказчика всегда все запускается с первого раза, и работает пока не заменят чем-то получше.

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

 

Не хотите наступать на грабли - используйте для умного дома распределенную сеть и ни когда, слышите, никогда не используйте ПК. CAN Вам в помощь )

Что за чушь, а если я с ПК хочу отключить свет в туалете, или запрограммировать чтобы кондиционер включился ровно в 8.00, тоже прикажете не использовать?

А CAN фтопку (вместе с Шао Каном, Лю Каном и Кано), не нужно оно для дома.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. CAN совсем не дорого.

2. Насчет того что нужно мастеру, а что слейву - соглашусь, посмотреть можно и под Вашим ракурсом. Но типичный хомо-сапенс спроектирован для работы по принципу "причина-следствие". Заменив понятия, легко можно из Вашей концепции получить мою, где для актеров "выключатель" и "реле" система должна обеспечить некий сервис. В таком случае, "выключателю" и "реле" уже что-то надо - и с таким положением дел согласится 99% домохозяек. Применив, готовые микросхемы/интерфейсы с событийным характером работы, а не опросным, можно стать ближе к народу и Матушке-Природе, веками оттачивающей свое совершенство.

3. По поводу Заказчиков. Когда работаешь "на себя" - все запускается с первого раза, когда "работаешь на дядю" - как правило, Заказчика выбирает дядя. У них свои интересы, а делать из "г" конфетку за зарплату приходится разработчику. Эх... Заказчик с "100 выключателей" достался мне "по наследству". А с дядей я до сих пор работаю, и мысленно благодарю его за такой бесценный опыт.

4. ПК для конфигурирования и мониторинга очень удобен. Для управления в реальном времени... извиняйте.

5. Не изобретайте велосипед... возьмите готовый... интерфейс из транспорта )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попытка оправдать применение дорогой автомобильной шины для дома?

А что, дом чем-то хуже автомобиля? Я бы думал, что наоборот.

 

У вашей системы есть один большой недостаток: нельзя в произвольном месте подключить к шине кнопочку, которая будет управлять "во-он той лампочкой". Или эти кнопочки должен будет постоянно опрашивать единственный мастер, что, по-моему, не является красивым решением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю будет интересно:

Имея неприятный опыт внедрения "чужих" умных домов, однако же не побоялся сделать себе свой. В спальне под кроватью расположен контроллер с SD-картой, длинным проводочком, релюшкой, полным мостом на 245 логике, и динамиком.

Контроллер постоянно измеряет емкость провода, аккуратно прикрепленного к краю одной из спинок кровати. Стоит поднести руку к проводу - загорится свет под кроватью (релюха + светодиоды). Аналогично свет выключается. Искать тапки зимой удобно.

В 11.00 с SD-карты играет колыбельная (44100Гц, 10 бит @ 2-ШИМ + полный мост + динамик). В 7.00 играет будильник (довольно спокойная композиция), в 7.30 - более настойчивый трек).

 

Второй контроллер расположен у письменного стола. Имеет аналогичный емкостной датчик, управляет двумя релюхами, имеет вход с ИК-приеника. Со всех пультов что были в доме, можно управлять настольной лампой (одна из релюх). Ей же можно управлять с емкостного сенсора. Вторая релюха пользуется как ШИМ включалка средства от комаров - два часа работает, два отдыхает (ночью).

 

Все это локально работает и удобно для меня и супруги. Но если добавить немножечко CANа, то:

- можно управлять настольной лампой с емкостного сенсора кровати (если удерживать 3 секунды). Фича появилась, когда лентяйки забывались на столе, а разработчик с супругой уже были в постели.

- можно управлять громкостью звука под кроватью с пульта. особенно удобно выключать будильники. Можно запускать другие треки.

- появилась возможность работы с напоминалками. С пульта нажимаешь кнопочку и голосом тебе сообщают об истечении времени по истечении времени. Нажатием кнопки по кругу выбирается "5 мин - 15 мин - 30 мин - выкл". Чайник на кухне стал реже подгорать).

- кроме того, есть возможность гонять живую речь между контроллерами у стола и кабинетом. Интерком поверх CAN: "женушка, принеси чай")

 

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

 

По CANу конфигурирую, круглосуточно мониторю - трафик ничтожный, задержек нет.

 

Как говорится "а Вам слабо, уважаемый RS-485"? Или умный дом это что-то другое? Может, это привычные выключатели и лампочки в альтернативной реализации? - тогда RS-485 рулит, и я сдаюсь)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что, дом чем-то хуже автомобиля?

По требованиям к электронике - для разработчика как раз много лучше, это не industrial и даже не commercial, не то что automotive... Например можно поставить CAN, а можно - лапшу из проводов, можно поставить гальваноразвязку для каждого устройства, а можно и не ставить и т.д.. Тобиш выбор огромный, делай, что хочешь и как хочешь, принимай работу сам, и не бойся в тюрму не посадят из-за того что дом на кого-то упадет.. куда ж еще лучше требования то найти? :)

 

Я бы думал, что наоборот.

Ну а такие же требования как и для автомобиля могут появиться только если "дом" это одно из трех:

- избушка на курьих ножках;

- трейлер / вагон поезда;

- сарай у подножья действующего вулкана.

 

 

У вашей системы есть один большой недостаток: нельзя в произвольном месте подключить к шине кнопочку, которая будет управлять "во-он той лампочкой".

Заблуждаетесь, можно и это. Кнопочку надо будет всего лишь подготовить, - задать ей такой адрес которого в системе еще не было, а мастеру, сказать - "искать новые устройства" - что делается тупым однократным опросом всех возможных адресов.

 

Или эти кнопочки должен будет постоянно опрашивать единственный мастер, что, по-моему, не является красивым решением.

Да он будет опрашивать все устройства ввода, которые нашел, это факт, тем самым заодно и контроллируя статус устойства - живой/не живой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Друзья, у схемы "мастер-слейв" есть один существенный недостаток: если нужно поменять конфигурацию сети, скажем, добавить нового слейва, это повлечет за собой конфигурирование мастера

 

Повлечёт, но не очень сильное. Его адрес + кто он такой.

 

задать ей такой адрес которого в системе еще не было, а мастеру, сказать - "искать новые устройства" - что делается тупым однократным опросом всех возможных адресов.

 

Можно попробывать пойти по другому. На момент инит в систему он мастер, сообщает о себе , становится slave.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...