|
Перечисление устройств на общей шине |
|
|
|
 |
Ответов
|
Aug 1 2008, 10:31
|
Местный
  
Группа: Свой
Сообщений: 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)  По теме топика. У каждого устройства должен иметься свой уникальный серийный номер. Исходя из значения этого номера, и должна определяться пауза для выдачи устройством идентификационной информации по широковещательному хапросу. Разница между соседними номерами должна быть более длительности одной посылки (ответа на запрос), а весь диапазон адресов определяется серийностью изделия. Завод может выпускать сотни тысяч приборов в месяц. На конкретном объекте модут собраться приборы из разных партий. Ждать ответов может быть придется очень долго.
|
|
|
|
|
Aug 1 2008, 10:53
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(navy2000 @ Aug 1 2008, 16:31)  После определения всех MAC-адресов, по ним можно отправлять служебные команды (когда сетевых адресов еще нету), узнавать тип устройства и просить поморгать светодиодом попищать динамиком, после этого ему уже присваивается сетевой адрес. Поморгать и побибикать возможно только в том, случае, если есть физический доступ к прибору. А зачастую бывает, что некоторые устройства находятся в таких местах, что к ним нет доступа или доступ весьма затруднен (на большой высоте или в подземных коммуникациях). Цитата(navy2000 @ Aug 1 2008, 16:31)  Разница между соседними номерами должна быть более длительности одной посылки (ответа на запрос), а весь диапазон адресов определяется серийностью изделия. Завод может выпускать сотни тысяч приборов в месяц. На конкретном объекте модут собраться приборы из разных партий. Ждать ответов может быть придется очень долго. А я разве где-то говорил, что пауза должна быть прямо пропорциональна величине серийного номера?  Кроме того, можно в несколько этапов/итераций проводить нумерацию, уменьшая количество возможных коллизий по мере назначения адресов уже зарегистрированным устройствам.
|
|
|
|
|
Aug 1 2008, 11:13
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Цитата(rezident @ Aug 1 2008, 17:53)  Поморгать и побибикать возможно только в том, случае, если есть физический доступ к прибору. А зачастую бывает, что некоторые устройства находятся в таких местах, что к ним нет доступа или доступ весьма затруднен (на большой высоте или в подземных коммуникациях). В таком случае при монтаже в документацию (кабельный журнал и еще чего) заносятся МАС-адреса смонтированных устройств, соответствие требуемых сетевых номеров и МАС-адресов доносятся до мастера (человека или программы) который занимается развертыванием сети. Просто, если бибикать не нужно, не используем. это сервис не более того. Цитата А я разве где-то говорил, что пауза должна быть прямо пропорциональна величине серийного номера?  Кроме того, можно в несколько этапов/итераций проводить нумерацию, уменьшая количество возможных коллизий по мере назначения адресов уже зарегистрированным устройствам. Если вы говорите про CAN, соглашусь, вариант вполне жизнеспособный. Но, если ваш ответ относится к исходно заданному вопросу (RS-485), то коллизии там не допустимы, нештатная ситуация. А без коллизий, ИМХО, возможно только с теми оговорками что я изложил ранее.
|
|
|
|
|
Aug 1 2008, 11:17
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(navy2000 @ Aug 1 2008, 17:13)  Если вы говорите про CAN, соглашусь, вариант вполне жизнеспособный. Но, если ваш ответ относится к исходно заданному вопросу (RS-485), то коллизии там не допустимы, нештатная ситуация. А без коллизий, ИМХО, возможно только с теми оговорками что я изложил ранее. В RS-485 коллизии допускаются, в том смысле, что это конечно не штатная, но и не совсем криминальная ситуация. Другое дело, что коллизии в RS485 довольно сложно идентифицировать, это да.
|
|
|
|
Сообщений в этой теме
Огурцов Перечисление устройств на общей шине 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 Огурцов Цитата(navy2000 @ Aug 1 2008, 10:31) С RS... Aug 1 2008, 11:24  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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|