реклама на сайте
подробности

 
 
13 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Интерфейс для маленькой "сети", где несколько Master'ов
=AK=
сообщение Jun 30 2010, 00:44
Сообщение #31


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Есть несколько вариантов организации сети

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

2. Peer-to-peer.

Это усовершенствованный вариант мастер-слэйв. Мастер (теперь он называется координатор) опрашивает узлы, не хочет ли кто-нибудь "поболтать". Тому узлу, который изъявил желание пообщаться, мастер отдает сеть "во временное владение". Узел быстренько рассылает свое сообщение всем узлам, заинтересованным в его получении, по списку. По сравнению с п.1 надежность этого варианта можно резко повысить, если роль мастера (координатора) сможет брать на себя любой узел. Тогда, если текущий координатор помрет, остальные узлы, после короткого периода "неразберихи и разборок", решают, кто будет новым координатором. Тем не менее, этот вариант такой же медленный, как п.1.

3. Произвольный доступ - CSMA
Усовершенствование варианта п.2, координатора теперь вообще нет. Тот узел, которому надо что-то сказать, просто захватывает интерфейс и говорит. В случае, когда два узла хотят что-то сказать одновременно, между ними происходит "разборка" по одному из вариантов:
3а. CSMA/CD - произвольный доступ с обнаружением столкновений. Столкновение обнаруживается, например, на базе того факта, что на сообщение не приходит подтверждение о приеме.
3б. CSMA/CA - произвольный доступ с избеганием столкновений. Это изящно делается, например, на базе передатчиков с открытым коллектором. При передаче узел все время "слушает" шину. Если он сам передает '1', а на шине виден '0', значит, в это время кто-то еще передает, и узел, передававший '1' втихую отваливает, чтобы не мешать "более сильному" узлу, который передает '0'.
3в. Тупой повтор, несколько раз через псевдослучайные промежутки времени. Очень вероятно, что хоть одно сообщение "прорвется", ведь столкновения случаются редко.

4. Производитель-потребитель.
Вместо того, чтобы передавать одну и ту же инфу от источника всем приемникам, гораздо выгоднее настроить приемники так, чтобы они сами вылавливали интересующие их сообщения из общего трафика. Тогда источник может передать данные всего один раз. Однако - как убедиться, что сообщение дошло до всех? Для этого те, кто "не расслышал", посылают "негативное подтверждение", мол, "повторите, не слышу". Молчание - знак согласия.

Самые продвинутые используют 3б и 4. Это CAN, Clipsal C-Bus, и др.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 30 2010, 18:52
Сообщение #32


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(aaarrr @ Jun 28 2010, 04:02) *
ИМХО, это один из тех предметов, к которым очень подходит определение "забыли похоронить".

aaarrr, MODBUS вы, очевидно, не любитеsmile.gif. А что порекомендуете вместо него?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 30 2010, 20:02
Сообщение #33


кекс
******

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



Цитата(=AK= @ Jun 30 2010, 03:44) *
Есть несколько вариантов организации сети

1. Мастер-слэйв.
2. Peer-to-peer.
3. Произвольный доступ - CSMA
4. Производитель-потребитель.

Есть еще варианты комбинировать приведенные 4 варианта.
Для домашней сети очень неплохо выглядило бы такое решение:

Внизу "1" (мастер-слейв) - ЦППУ (Центральное Приемо-Передающее Устройство) и много простеньких устройств - исполнительные блоки, интерфейс здесь например 485-й.
Вверху "3" (произвольный доступ) ЦППУ и множество управляющих клиентов - ethernet.

итого будет:
- одно устройство (ЦППУ) с двумя интерфейсами - 485/ethernet.
- много простых исполнительных устройств - с только 485-м интерфесом.
- и комп(ы) с управляющей программой для всей системы.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 30 2010, 20:08
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AHTOXA @ Jun 30 2010, 22:52) *
aaarrr, MODBUS вы, очевидно, не любитеsmile.gif. А что порекомендуете вместо него?

Если топикстартер решит остановиться на RS-485 (хотя я бы выбрал CAN), то порекомендую сочинить собственный протокол.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 30 2010, 20:14
Сообщение #35


кекс
******

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



Цитата(aaarrr @ Jun 30 2010, 23:08) *
(хотя я бы выбрал CAN)

Чем ограничили бы выбор МК пригодных для примениня в 10 раз если не больше.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 30 2010, 20:22
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Jul 1 2010, 00:14) *
Чем ограничили бы выбор МК пригодных для примениня в 10 раз если не больше.

Ну так и замечательно! Меньше страдать муками выбора придется. И совсем не придется страдать изобретением мультимастерного обмена поверх RS-485.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 30 2010, 20:34
Сообщение #37


кекс
******

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



Цитата(aaarrr @ Jun 30 2010, 23:22) *
Ну так и замечательно! Меньше страдать муками выбора придется. И совсем не придется страдать изобретением мультимастерного обмена поверх RS-485.

Для контроллера светодиода (у исполнительных устройств будут как раз такие задачи) найти подходящий МК с CAN на борту, та еще задачка.
Меня бы жаба задавила ставить "100Mhz ARM" для управления одной релюшкой, даже для себя любимого.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 30 2010, 20:48
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Jul 1 2010, 00:34) *
Меня бы жаба задавила ставить "100Mhz ARM" для управления одной релюшкой, даже для себя любимого.

Ну а в настенный выключатель Ethernet прикручивать не задушит?
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 30 2010, 21:57
Сообщение #39


кекс
******

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



Цитата(aaarrr @ Jun 30 2010, 23:48) *
Ну а в настенный выключатель Ethernet прикручивать не задушит?

Тоже задушит, потому и предлагаю по-другому. Простые блоки по 485-му, в середине серверок он же единственный мастер (это не обязательно комп, можно и на МК такой сделать), и клиенты для управления всем этим хозяйством подключаются к серверку уже по эзернету ( а значит по IP, откуда угодно).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jun 30 2010, 22:03
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Вот я и спрашиваю, как выключатель обычный настенный в такой системе организуете? Только не говорите, что он не нужен - управлять светом в туалете с компа неудобно.
Go to the top of the page
 
+Quote Post
=AK=
сообщение Jun 30 2010, 22:07
Сообщение #41


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(defunct @ Jul 1 2010, 05:32) *
Внизу "1" (мастер-слейв) - ЦППУ (Центральное Приемо-Передающее Устройство) и много простеньких устройств - исполнительные блоки, интерфейс здесь например 485-й.
Вверху "3" (произвольный доступ) ЦППУ и множество управляющих клиентов - ethernet.


По-хорошему внизу должна быть надежная сеть, так что мастер-слэйв не очень подходит. А с другой стороны, CSMA/CA совсем не сложен.

C-bus он был реализован чуть ли не 20 лет назад на MC68HC05B5, т.е. в 4К ПЗУ и 170 байт ОЗУ. При этом C-bus не использовал ни стандартных драйверов, ни UART, весь физический уровень делался "врукопашную" при помощи bit-bang и таймера. Приемопередатчики были сделаны на рассыпухе, поскольку питание (36В) и сигнал передаются по одной витой паре.

Прокладку кабеля домашней сети имеет смысл вести дешевым кабелем Cat5 или Cat6, там 4 витых пары. В конце концов для С-bus тоже стали рекомендовать этот кабель. Это значит, что все усилия по созданию фантомной схемы питания в С-bus оказались по большому счету не нужны. Для питания в Cat5 можно использовать отдельные пары, а сигнал гонять по своей паре. В качестве приемопередатчиков можно использовать CAN-овские, их "доминантный" уровень при столкновениях является эквивалентом открытого коллектора и позволяет легко и просто обеспечить CSMA/CA.

PC может быть подключена к низовой сети, но не как мастер, а как рядовой узел. Ее функции - конфигурировать остальные узлы, служить "универсальным пультом управления" и быть шлюзом к верхнему уровню, т.е. эзернету, интернету.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 1 2010, 03:05
Сообщение #42


кекс
******

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



Цитата(aaarrr @ Jul 1 2010, 01:03) *
Вот я и спрашиваю, как выключатель обычный настенный в такой системе организуете? Только не говорите, что он не нужен - управлять светом в туалете с компа неудобно.

Ну я вроде как обрисовал все выше... на мой взгляд самое адекватное решение - двухступенчатая сеть, 485-й внизу, 1 мастер он же 485<-> ethernet bridge, управление с компа через ethernet.. Использование RS485 внизу, позволит вчастности для выключателей применить IRDA, чтобы проводов меньше было. Без особых ухищрений воткнуть простенький прозрачный мост 485<>IRDA и не меняя протокола дублировть все, что идет по 485-шине в IR и наоборот. А общее центральное устройство с ethernet интерфейсом - обеспечит доступ к домашней сети через интернет.

Цитата(=AK= @ Jul 1 2010, 01:07) *
По-хорошему внизу должна быть надежная сеть, так что мастер-слэйв не очень подходит.

Отчего же, если хорошо позаботиться о мастере - постоить на надежном железе и софте, предусмотреть watch dog, поставить UPS такой чтоб сутки-двое тянул при проблемах с питанием (для устройства на МК которое потребляет отсилы 100ma одной самой ширпотребной SLA батареи 12vx7A/ч хватит чтобы обеспечить ~140 часов, т.е. почти неделю, автономного питания). И не будет вопросов к надежности. В промышленности мастер-слейв сети прекрасно живут, надежность такая - что годами никто ничего не трогает, т.к. система просто работает и не нуждается во вмешательстве...
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 1 2010, 06:22
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



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

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

И уж совсем офф. Блин, ye не можем найти путных разработчиков! Такое впечатление, что ARMы кодят в Ярославле всего три человека (и я их всех знаю). Призываю Вас - решайте задачи адекватно. Не надо "пыхтеть" на PICе, или ставить промышленный комп в задачу, в которую явно напрашивается иное.

Главное искусство разработчика встраиваемых систем - нагрузить аппаратные блоки контроллера по максимуму для решения поставленных задач. Включает в себя и выбор оптимальной платформы.

По существу темы: интерфейсом для маленькой сети с несколькими мастерами может служить CAN - по-моему, оптимальное решение.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 1 2010, 06:25
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(adnega @ Jul 1 2010, 10:22) *
И уж совсем офф. Блин, ye не можем найти путных разработчиков! Такое впечатление, что ARMы кодят в Ярославле всего три человека (и я их всех знаю).

Эх! Уехать, что ли, в Ярославль? smile.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 1 2010, 06:47
Сообщение #45


Беспросветный оптимист
******

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



Цитата(aaarrr @ Jul 1 2010, 10:25) *
Эх! Уехать, что ли, в Ярославль? smile.gif

С повышением в должности и понижением оклада? biggrin.gif

По теме:
Можно организовать передачу "мастерства": например, текущий мастер, выполнив все нужные транзакции (например, выдав команду "лампочка, зажгись!") и находясь в IDLE, выдаёт по очереди всем временным слейвам запрос на передачу управления.
Широковещательный, наверно, не нужно, чтобы с коллизиями не бороться.
Тот, кому есть что сказать, отвечает и принимает управление на себя. И так по кругу. Наподобие токен ринг.
Никто не подскажет, как такой велосипед называется?

Цитата(aaarrr @ Jul 1 2010, 00:48) *
Ну а в настенный выключатель Ethernet прикручивать не задушит?

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


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

13 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01503 секунд с 7
ELECTRONIX ©2004-2016