Появилась задача разработать несколько (20 шт) однотипных модулей (на каждом 150-200 реле, их надо оперативно переключать) и получать/посылать на них команды. Для этого их надо объединить по некоторой сети. На каждом модуле МК.
Собственно вопрос, какую шину использовать для передачи данных, нужна шина побыстрее? Смотрел в сторону VXI и PCI, но там как то все сложновато. Как вариант рассматриваю Ethernet.
Или какой МК со встроенным Ethernet можно применить здесь?
Инфраструктуры пока нет как таковой, а задумка такая: В крейте установлены модули. К каждому модулю подключен контроллер для их взаимодействия (по ИСКОМОМУ интерфейсу) имеющий также на борту Ethernet. Таких крейтов может быть много и подключаются они уже к Ethernet маршрутизатору, а далее работает компьютерная программа с ними.
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Ну если Езернет уже развернут - можно все модули подключить просто к нему и все. БЕЗ центрового управляющего - управляющий сразу компьютер.
Если там езернета нету или расстояния сильно большие (или напротив, крошченые ) целесообразно использоваться чтото другие - те же CAN, RS485, RS232 и т.п.
Как говорит Вики: "RS-485 - стандарт физического уровня для асинхронного интерфейса". Над физическим уровнем должен быть еще протокол сетевого уровня. RS-485 не решает проблемы арбитража доступа. CAN как раз и есть сетевой протокол со всеми вытекающими из этого последствиями.
Есть масса контроллеров со встроенным CAN. Они конечно дороговаты, но можно пойти и другим путем. Microchip выпускает несколько недорогих чипов, которые позволят запустить CAN на дешевом контролере. MCP2551 - приёмопередатчик CAN-интерфейса и MCP2515 - контроллер CAN-интерфейса. Первый чип обеспечивает физический уровень, второй канальный уровень. В качестве типовой схемы включения этих чипов можно использовать эту http://www.mikroe.com/eng/downloads/get/1256/canspi_manual_v100.pdf.
Для выбора более подходящего решения надо больше информации о функционале модулей.
Каждый модуль - высоковольтный релейный коммутатор на 200 каналов. Данные на модули передаются/принимаются асинхронно. У меня там внешняя синхронизация присутствует.
Получается просто система из кучи реле, на них надо подать команды, считать информацию о состоянии. Команды на включение (выключение) конкретного реле накапливаются в буфере и по сигналу внешней синхронизации выставляются в необходимые значения.
Теперь понятно. Такая сеть действительно с одним мастером и можно ее построить на базе RS-485. Сетевой протокол в данном случае свой. Все модули слушают шину, но принимают пакеты только со своим адресом. Передачу данных о состоянии реле модуль должен выдавать только в ответ на запрос от мастера. Все достаточно тривиально.
А скорость реакции какую надо обеспечить? 100-200 реле на один модуль, 20 модулей... в общем случае 4000 конечных потребителей, за какое время необходимо иметь возможность сменить их состояние? Если протокол будет обеспечивать изменение состояния только одного потребителя за раз, то изменение состояния всех 4000 потребителей будет занимать существенное время!
При этом, мастер передает команду(занимает время) ждет ответа(тоже какое-то время) и принимает ответ(тоже время) - и это только для одной команды.
как вариант - оперировать группами нагрузок - по 16 например, передавая необходимое состояние 16 сразу и маску для которых необходимо изменить состояние, чтобы иметь возможность управлять индивидуальными нагрузками не сверяясь с состоянием других.
Дык вроде ж сказали - есть промежуточный буффер куда грузится битпаттерн релюшек и по внешней синхре МК все релюшки РАЗОМ клац и повыставлял в новое положение проще - пирожки с картошкой только кушать )
_________________ Что нас не убило сделало нас осторожней Не доверяйте русским лужам - это может быть вход в метро.
Это только синхронность изменения. Но ведь этот промежуточный бит-паттерн нужно как-то установить, обратится командами к каждому из 4000 бит, это тоже займет время.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения