|
Интерфейс для маленькой "сети", где несколько 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
|
|
|
|
|
 |
Ответов
(15 - 29)
|
Jun 28 2010, 11:23
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(C.S. @ Jun 28 2010, 15:15)  Простите за настырность, а какое ещё? Ну LAN модули. Витуха и свитч? Свитчам нужны еще источники питания, получите в результате пионэрнет с ворохом проводов в отдельно взятой квартире - а оно надо? Цитата(C.S. @ Jun 28 2010, 15:15)  Есть, положим, UASRT у микроконтроллеров. И шо с ними делать? Читать про RS-485?.. И поверх вешать свой протокол? С чего начать-то? Начать хочется... Физический интерфейс? Почитать про RS-485 в любом случае полезно. Заодно рекомендую почитать про CAN - в вашем случае он вполне подойдет.
|
|
|
|
|
Jun 29 2010, 08:16
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Себе дома сделал на CAN. Контроллер сам по себе: управляет выходами, по информации со входов и другим признакам. Однако, есть возможность "кинуть в сеть" уникальный идентификатор события и принять событие из сети. Возможно передавать параметры в теле события.
По CAN прошивается логика, устанавливается время и т.п., а также гоняется аудио-трафик с нескольких переговорных блоков. Есть преобразователь CAN в Ethernet (UDP), для "общения по сеточке" с буком и внешним миром.
Скорость делал, вроде, 500 килобит, проверял на катушке CORE4, метров на 100 работает устойчиво (правда терминаторы подбирал щепетильно с осциллографом, но на мегабите).
Идентификаторы в контроллеры зашиваю железные. Раз в секунду все контроллеры грят "я жыф".
|
|
|
|
|
Jun 29 2010, 08:54
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(C.S. @ Jun 28 2010, 15:15)  С чего начать-то? Начать хочется... Физический интерфейс? Сегодня в моде AIR Проводки остались в прошлом веке. Радиомодуль простенький стоит от 25р Есть готовые интегрёные решения, типа CC430 у TI, нанонет (по-моему) у мелкочипа и у атмела тоже что-то завалялось. Цитата(adnega @ Jun 29 2010, 12:16)  Раз в секунду все контроллеры грят "я жыф". А оно надо? Пусть говорят, когда их спрашивают. Типа: - 12-й, ответь 3-му... -12-й на связи!
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Jun 29 2010, 10:09
|

Участник

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

|
Тшшш, ребят! Я только-только подбираюсь к теме, и вообще пока не ориентируюсь.
Почитал про RS-485 и DMX-512. Я правильно понимаю, что фактически 485й, это как бы паралельное включение всех приёмников и передатчиков? Ну то-есть, если я передаю - все принимают. Кто-то передаёт - все тоже принимают (в том числе и я). А уж чего с принятым делать - это задачи протокола?
И ещё вот какой вопрос: видел, что RS-485 можно гнать по двум витым парам: одна чисто для передачи, другая чисто для приёма. Для начинающих проще, или нет с двумя витыми связываться? По одной тупо отправлять команды, по другой - получать от них ответ?
|
|
|
|
|
Jun 29 2010, 10:40
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
А почему не CAN?! Если нужно гонять данные до 8 байт, то самое простое решение (или нет?). Мультимастер, неразрушающий арбитраж, приоритеты, аппаратный контроль целостности, настройка момента выборки, подстройка скорости, счетчики ошибок с автоотключением от шины... Что касается витой пары, то дифференциальная пара, высокая скорость, не дорого и понятно. Кодить тоже приятно и не сложно. По сути реализовать буфер приемника сообщений и буфер передатчика сообщений. Не сложно делать преобразователи CAN что в RS232, что в Ethernet.
Где минусы?! У меня восемь месяцев - полет нормальный; верните на грешную землю)
|
|
|
|
|
Jun 29 2010, 19:49
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(aaarrr @ Jun 28 2010, 02:02)  Никакой корявости, говорите? А пляшущий эндианизм в Modbus-RTU? Это вовсе не сложности. Задачка для одной команды современного МК. Кстати, почему эндианизм вместо чередования байт? Цитата(aaarrr @ Jun 28 2010, 02:02)  А избыточные заголовки, с указанием длины в регистрах (которые всегда 2 байта) и байтах? А в стандарте расписано для чего. Хуже всего - избыточная заумность большинства протоколов и жадность организаций их поддерживающих. Самое привлекательное в MODBUS - простота реализации и реальная открытость протокола. Кроме этого, в MODBUS все демократично, если что не так - заводите свои команды и пользуйтесь.
|
|
|
|
|
Jun 29 2010, 20:47
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Прохожий @ Jun 29 2010, 23:49)  Кстати, почему эндианизм вместо чередования байт? Тогда уж порядок, а не чередование. Цитата(Прохожий @ Jun 29 2010, 23:49)  А в стандарте расписано для чего. Для чего предназначены поля - расписано. А вот почему информация бездумно дублируется - нет. Цитата(Прохожий @ Jun 29 2010, 23:49)  Хуже всего - избыточная заумность большинства протоколов и жадность организаций их поддерживающих. Самое привлекательное в MODBUS - простота реализации и реальная открытость протокола. Кроме этого, в MODBUS все демократично, если что не так - заводите свои команды и пользуйтесь. И снова приходим к закономерному выводу: от протокола нам на самом деле нужна простота, открытость и "демократичность". То есть как таковой стандарт ценности не имеет, нужен "скелет", на базе которого будет построено что-то свое. Жадные организации, создающие заумные протоколы, вообще-то работают над их усовершенствованием. А если бы за Modbus надо было что-то платить, он бы скончался еще лет двадцать назад.
|
|
|
|
|
Jun 29 2010, 21:44
|
Cундук
    
Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269

|
Цитата(aaarrr @ Jun 30 2010, 00:47)  Для чего предназначены поля - расписано. А вот почему информация бездумно дублируется - нет. [attachment=45432:0_10.PNG] Цитата(aaarrr @ Jun 30 2010, 00:47)  И снова приходим к закономерному выводу: от протокола нам на самом деле нужна простота, открытость и "демократичность". То есть как таковой стандарт ценности не имеет, нужен "скелет", на базе которого будет построено что-то свое. Мне, как лицу, эксплуатирующему огромное количество электронных "покидух" в сфере промавтоматики хотелось бы, чтобы все придерживались стандартов как можно ближе. К примеру, ПЛК "ОВЕН" не прошел проверку, поскольку его разработчики имели свое, отличное от стандарта представление именно о MODBUS/RTU. Цитата(aaarrr @ Jun 30 2010, 00:47)  Жадные организации, создающие заумные протоколы, вообще-то работают над их усовершенствованием. А если бы за Modbus надо было что-то платить, он бы скончался еще лет двадцать назад. Ой, неправда Ваша. К примеру, частотные преобразователи CIMR-V7 от OMRON или VFD от DELTA вовсю используют именно MODBUS. Да и вообще, в области частотных инверторов MODBUS/RTU де-факто стандарт. Для PLC бюджетного ряда тоже. MODBUS/RTU включен в перечень поддержки удаленными модулями таких фирм, как Beckhoff и Wago Systems. Что-то не похоже на умирающего. А вот заумный PROFIBUS, похоже, скоро окончательно сдохнет. От него даже SIEMENS уходит, правда, в еще более заумные дебри в виде PROFINET. Устройства на CAN-оподобных шинах, типа DeviceNet применяются крайне редко в виду плохого сочетания цена/скорость. HART практически не применяется. Приборы КИПиА просто цепляются на токовую петлю. Каждый на свою.
|
|
|
|
|
Jun 29 2010, 22:13
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Прохожий @ Jun 30 2010, 01:44)  [attachment=45432:0_10.PNG] То есть дублируем длину для того чтобы в запросе мастера можно было бы сделать ошибку, а слейв мог бы о ней доложить. Гениально. Цитата(Прохожий @ Jun 30 2010, 01:44)  Мне, как лицу, эксплуатирующему огромное количество электронных "покидух" в сфере промавтоматики хотелось бы, чтобы все придерживались стандартов как можно ближе. Мне тоже, но для этого стандарты должны быть современными. В противном случае приходится или уродовать и усложнять интерфейсы нового оборудования, вписывая его в реалии тридцатилетней давности, или "расширять" стандарт, тем самым от него все дальше уклоняясь
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|