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

 
 
> Перечисление устройств на общей шине
Огурцов
сообщение Jul 31 2008, 04:19
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



По какому принципу сделать сабж ?
Шина типа rs485, хочется получить нечто типа plug&play.
В моей гоолове крутится только один вариант - после какой-то общей команды устройства выдают на шину свой уникальный идентификатор (чтобы их можно было зарегистрировать) через случайные интервалы (чтобы исключить коллизии). Вот "случайность" при таком способе и не нравится - более подошло бы что-то более определенное.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
navy2000
сообщение Aug 1 2008, 10:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874



Цитата(Огурцов @ Jul 31 2008, 11:19) *
По какому принципу сделать сабж ?
Шина типа rs485, хочется получить нечто типа plug&play.
В моей гоолове крутится только один вариант - после какой-то общей команды устройства выдают на шину свой уникальный идентификатор (чтобы их можно было зарегистрировать) через случайные интервалы (чтобы исключить коллизии). Вот "случайность" при таком способе и не нравится - более подошло бы что-то более определенное.

С RS485 красиво сделать не получится. Даже если Мастер пошлет широковещательную команду на которую Слэйвы будут отвечать через случайные интервалы, при этом слушать линию что в нее не передает ктото друго, выдерживать паузу (чтобы отличить передачу бита соответствующего растяжкам линий A и B от тишины в линии), все равно не нулевая вероятность начать передачу одновременно, а это, в отличие от CAN аварийный режим. По этому, ИМХО, смотрите в сторону CAN.
У меня в качестве серийного номера прибора служит 48-бит его Ethernet MAC-адрес. Были конечно сложности с автоматизацией определения устройств в сети (В CAN идентификатор учавствующий в арбитраже только 29 бит), но они были решены. После определения всех MAC-адресов, по ним можно отправлять служебные команды (когда сетевых адресов еще нету), узнавать тип устройства и просить поморгать светодиодом попищать динамиком, после этого ему уже присваивается сетевой адрес.

Цитата(rezident @ Aug 1 2008, 17:24) *
По теме топика. У каждого устройства должен иметься свой уникальный серийный номер. Исходя из значения этого номера, и должна определяться пауза для выдачи устройством идентификационной информации по широковещательному хапросу.

Разница между соседними номерами должна быть более длительности одной посылки (ответа на запрос), а весь диапазон адресов определяется серийностью изделия. Завод может выпускать сотни тысяч приборов в месяц. На конкретном объекте модут собраться приборы из разных партий. Ждать ответов может быть придется очень долго.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 1 2008, 11:24
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(navy2000 @ Aug 1 2008, 10:31) *
С RS485 красиво сделать не получится.

RS485 вроде бы допускает одновременное включение на передачу нескольких узлов - ток ограничивается.
Драйверы CAN в этом смысле гораздо приятнее.
Кроме того, в CAN реализовать искомое по-моему вполне реально.
Но дорогой он, поэтому задача - RS485.

Цитата(navy2000 @ Aug 1 2008, 10:31) *
У меня в качестве серийного номера прибора служит 48-бит его Ethernet MAC-адрес. Были конечно сложности с автоматизацией определения устройств в сети (В CAN идентификатор учавствующий в арбитраже только 29 бит), но они были решены. После определения всех MAC-адресов, по ним можно отправлять служебные команды (когда сетевых адресов еще нету), узнавать тип устройства и просить поморгать светодиодом попищать динамиком, после этого ему уже присваивается сетевой адрес.

Типа того.

Еще вариант - таки регистрировать устройства на мастере, но в режиме plug&play, а чтобы не было конфликтов, подключать по одному.


Цитата(rezident @ Aug 1 2008, 11:17) *
Другое дело, что коллизии в RS485 довольно сложно идентифицировать, это да.

Придет битый пакет - делов-то.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Огурцов   Перечисление устройств на общей шине   Jul 31 2008, 04:19
- - MrYuran   Тогда только дополнительные линии. Для раздачи адр...   Jul 31 2008, 06:19
|- - Огурцов   А интересная, кстати, мысль (хоть и не подходит) -...   Jul 31 2008, 10:33
- - MrYuran   Да нет, всё не так. не кольцо, RS485 как обычно, ш...   Jul 31 2008, 10:48
|- - Огурцов   Цитата(MrYuran @ Jul 31 2008, 10:48) Да н...   Jul 31 2008, 18:33
- - Alex11   Тут есть еще один вопрос. Что на самом деле нужно ...   Jul 31 2008, 12:58
- - Прохожий   Цитата(Огурцов @ Jul 31 2008, 08:19) По к...   Jul 31 2008, 19:14
|- - Огурцов   Цитата(Прохожий @ Jul 31 2008, 19:14) На ...   Jul 31 2008, 21:29
|- - Огурцов   Цитата(Прохожий @ Jul 31 2008, 19:14) Все...   Aug 1 2008, 10:05
|- - rezident   Цитата(Огурцов @ Aug 1 2008, 16:05) Еще д...   Aug 1 2008, 10:24
|- - Огурцов   Цитата(rezident @ Aug 1 2008, 10:24) в ст...   Aug 1 2008, 11:07
|- - rezident   Цитата(navy2000 @ Aug 1 2008, 16:31) Посл...   Aug 1 2008, 10:53
||- - navy2000   Цитата(rezident @ Aug 1 2008, 17:53) Помо...   Aug 1 2008, 11:13
||- - rezident   Цитата(navy2000 @ Aug 1 2008, 17:13) Если...   Aug 1 2008, 11:17
|- - rezident   Цитата(Огурцов @ Aug 1 2008, 17:24) Еще в...   Aug 1 2008, 11:29
|- - Огурцов   Цитата(rezident @ Aug 1 2008, 11:29) прощ...   Aug 1 2008, 11:33
- - navy2000   Была одна идея, когда строил большие сети на RS485...   Aug 1 2008, 11:51
|- - Огурцов   Цитата(navy2000 @ Aug 1 2008, 11:51) Маст...   Aug 1 2008, 12:16
|- - Огурцов   Всем спасибо, сообразил - метод деления отрезка по...   Aug 5 2008, 17:05
- - Цыкетчик   Цитата(Огурцов @ Jul 31 2008, 08:19) По к...   Sep 23 2008, 18:26
- - lermax   Цитата(Цыкетчик @ Sep 23 2008, 22:26) Я т...   Sep 13 2009, 12:16


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 19:53
Рейтинг@Mail.ru


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