Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

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

Ср май 16, 2012 10:06:48

Здравствуйте!

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

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

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

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

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

Ср май 16, 2012 10:25:16

CAN
http://ru.wikipedia.org/wiki/Controller_Area_Network

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

Ср май 16, 2012 10:28:31

Расстояние какое ? и есть ли уже какая то готовая инфраструктура ? Тот же езернет, например

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

Ср май 16, 2012 10:31:49

CAN +1

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

Ср май 16, 2012 10:34:13

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

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

Ср май 16, 2012 10:39:26

Ну если Езернет уже развернут - можно все модули подключить просто к нему и все.
БЕЗ центрового управляющего - управляющий сразу компьютер.

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

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

Ср май 16, 2012 11:00:15

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

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

Ср май 16, 2012 12:29:50

RS-485. CAN - это развод на деньги.

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

Ср май 16, 2012 12:46:57

Леонид Иванович писал(а):RS-485. CAN - это развод на деньги.


Как говорит Вики: "RS-485 - стандарт физического уровня для асинхронного интерфейса". Над физическим уровнем должен быть еще протокол сетевого уровня. RS-485 не решает проблемы арбитража доступа. CAN как раз и есть сетевой протокол со всеми вытекающими из этого последствиями.

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

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

Ср май 16, 2012 13:40:00

Я тут подумал, а может тупо взять готовый модуль с CAN и прирезать его уже к устройству. Не существует ли таких модулей с CAN на I2C ?

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

Ср май 16, 2012 14:08:44

DeVOLT писал(а):Не существует ли таких модулей с CAN на I2C ?


В предыдущем моем посте я привел ссылку на уже готовый модуль, только не I2C а SPI-подключением. Разница не большая.

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

Ср май 16, 2012 14:34:36

servio писал(а):RS-485 не решает проблемы арбитража доступа


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

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

Ср май 16, 2012 15:25:02

Леонид Иванович писал(а):В одномастерной сети нет такой проблемы.


Не спорю. Но не известно является ли данная сеть таковой. Требования очень размыты.

DeVOL писал(а):Появилась задача разработать несколько однотипных модулей и получать/посылать на них команды


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

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

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

Ср май 16, 2012 15:48:31

servio писал(а):
Леонид Иванович писал(а):В одномастерной сети нет такой проблемы.

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


Каждый модуль - высоковольтный релейный коммутатор на 200 каналов. Данные на модули передаются/принимаются асинхронно. У меня там внешняя синхронизация присутствует.

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

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

Ср май 16, 2012 16:13:19

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

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

Чт май 17, 2012 11:32:35

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

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

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

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

Чт май 17, 2012 16:06:59

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

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

Чт май 17, 2012 20:52:57

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

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

Пт май 18, 2012 08:19:05

200 реле один модуль...берем для круглости 256
8 бит адрес + 8 бит комманда + 256 бит данных + 8 бит ЦРЦ ИТОГО

35 БАЙТ ДАННЫХ

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

any problem?
Тема закрыта