Страница 1 из 1

Какую шину выбрать

Добавлено: Ср май 16, 2012 10:06:48
DeVOLT
Здравствуйте!

Появилась задача разработать несколько (20 шт) однотипных модулей (на каждом 150-200 реле, их надо оперативно переключать) и получать/посылать на них команды. Для этого их надо объединить по некоторой сети. На каждом модуле МК.

Собственно вопрос, какую шину использовать для передачи данных, нужна шина побыстрее? Смотрел в сторону VXI и PCI, но там как то все сложновато. Как вариант рассматриваю Ethernet.

Или какой МК со встроенным Ethernet можно применить здесь?

Всем заранее спасибо!

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 10:25:16
servio

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 10:28:31
Satyr
Расстояние какое ? и есть ли уже какая то готовая инфраструктура ? Тот же езернет, например

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 10:31:49
Psych
CAN +1

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 10:34:13
DeVOLT
Инфраструктуры пока нет как таковой, а задумка такая:
В крейте установлены модули. К каждому модулю подключен контроллер для их взаимодействия (по ИСКОМОМУ интерфейсу) имеющий также на борту Ethernet. Таких крейтов может быть много и подключаются они уже к Ethernet маршрутизатору, а далее работает компьютерная программа с ними.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 10:39:26
Satyr
Ну если Езернет уже развернут - можно все модули подключить просто к нему и все.
БЕЗ центрового управляющего - управляющий сразу компьютер.

Если там езернета нету или расстояния сильно большие (или напротив, крошченые ) целесообразно использоваться чтото другие - те же CAN, RS485, RS232 и т.п.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 11:00:15
DeVOLT
А есть где-нибудь разобранные примеры по применению CAN. С ним я раньше не работал, в поиске чет ничего не найду, в смысле схем и т.д.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 12:29:50
Леонид Иванович
RS-485. CAN - это развод на деньги.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 12:46:57
servio
Леонид Иванович писал(а):RS-485. CAN - это развод на деньги.
Как говорит Вики: "RS-485 - стандарт физического уровня для асинхронного интерфейса". Над физическим уровнем должен быть еще протокол сетевого уровня. RS-485 не решает проблемы арбитража доступа. CAN как раз и есть сетевой протокол со всеми вытекающими из этого последствиями.

Есть масса контроллеров со встроенным CAN. Они конечно дороговаты, но можно пойти и другим путем. Microchip выпускает несколько недорогих чипов, которые позволят запустить CAN на дешевом контролере. MCP2551 - приёмопередатчик CAN-интерфейса и MCP2515 - контроллер CAN-интерфейса. Первый чип обеспечивает физический уровень, второй канальный уровень. В качестве типовой схемы включения этих чипов можно использовать эту http://www.mikroe.com/eng/downloads/get ... l_v100.pdf.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 13:40:00
DeVOLT
Я тут подумал, а может тупо взять готовый модуль с CAN и прирезать его уже к устройству. Не существует ли таких модулей с CAN на I2C ?

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 14:08:44
servio
DeVOLT писал(а):Не существует ли таких модулей с CAN на I2C ?
В предыдущем моем посте я привел ссылку на уже готовый модуль, только не I2C а SPI-подключением. Разница не большая.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 14:34:36
Леонид Иванович
servio писал(а):RS-485 не решает проблемы арбитража доступа
В одномастерной сети нет такой проблемы.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 15:25:02
servio
Леонид Иванович писал(а):В одномастерной сети нет такой проблемы.
Не спорю. Но не известно является ли данная сеть таковой. Требования очень размыты.
DeVOL писал(а):Появилась задача разработать несколько однотипных модулей и получать/посылать на них команды
Если каждый из модулей будет асинхронно генерировать команды, то мастеров будет много и без решения проблемы арбитража не обойтись.

Для выбора более подходящего решения надо больше информации о функционале модулей.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 15:48:31
DeVOLT
servio писал(а):
Леонид Иванович писал(а):В одномастерной сети нет такой проблемы.
Для выбора более подходящего решения надо больше информации о функционале модулей.
Каждый модуль - высоковольтный релейный коммутатор на 200 каналов. Данные на модули передаются/принимаются асинхронно. У меня там внешняя синхронизация присутствует.

Получается просто система из кучи реле, на них надо подать команды, считать информацию о состоянии. Команды на включение (выключение) конкретного реле накапливаются в буфере и по сигналу внешней синхронизации выставляются в необходимые значения.

Re: Какую шину выбрать

Добавлено: Ср май 16, 2012 16:13:19
servio
Теперь понятно. Такая сеть действительно с одним мастером и можно ее построить на базе RS-485. Сетевой протокол в данном случае свой. Все модули слушают шину, но принимают пакеты только со своим адресом. Передачу данных о состоянии реле модуль должен выдавать только в ответ на запрос от мастера. Все достаточно тривиально.

Re: Какую шину выбрать

Добавлено: Чт май 17, 2012 11:32:35
Alexeyslav
А скорость реакции какую надо обеспечить? 100-200 реле на один модуль, 20 модулей... в общем случае 4000 конечных потребителей, за какое время необходимо иметь возможность сменить их состояние? Если протокол будет обеспечивать изменение состояния только одного потребителя за раз, то изменение состояния всех 4000 потребителей будет занимать существенное время!

При этом, мастер передает команду(занимает время) ждет ответа(тоже какое-то время) и принимает ответ(тоже время) - и это только для одной команды.

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

Re: Какую шину выбрать

Добавлено: Чт май 17, 2012 16:06:59
clawham
Дык вроде ж сказали - есть промежуточный буффер куда грузится битпаттерн релюшек и по внешней синхре МК все релюшки РАЗОМ клац и повыставлял в новое положение
проще - пирожки с картошкой только кушать :))))

Re: Какую шину выбрать

Добавлено: Чт май 17, 2012 20:52:57
Alexeyslav
Это только синхронность изменения. Но ведь этот промежуточный бит-паттерн нужно как-то установить, обратится командами к каждому из 4000 бит, это тоже займет время.

Re: Какую шину выбрать

Добавлено: Пт май 18, 2012 08:19:05
clawham
200 реле один модуль...берем для круглости 256
8 бит адрес + 8 бит комманда + 256 бит данных + 8 бит ЦРЦ ИТОГО

35 БАЙТ ДАННЫХ

на скорости уарта 115200 35 байт по 20 раз послать и 35 байт по 20 раз принять пролетит за... 11200 / 115200 = 100 миллисекунд!

any problem?