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

 
 
> Полный Ликбез: RS485 - двухпроводная шина., Как искать устройства.
nameless
сообщение Mar 2 2007, 08:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305



Что-то не может RS485 как CAN давать коллизии при одновременной передаче двумя устройствами. А как тогда инициализацию делать? Неожиданно, конечно, но при 6-байтном идентификаторе кроме как отлавливать коллизии - других способов не придумаю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
nameless
сообщение Mar 2 2007, 11:44
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305



Я наверное не правильно объяснил. До пола мне все устройства найти надо. По уникальным идентификаторам (грубо говоря MAC-адресам). Уже потом использовать приведенные выше режимы общения. Так вот именно поиск надо придумать. С учетом очень малых ресурсов ведомых устройств.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 2 2007, 15:54
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(nameless @ Mar 2 2007, 11:44) *
Я наверное не правильно объяснил. До пола мне все устройства найти надо. По уникальным идентификаторам (грубо говоря MAC-адресам). Уже потом использовать приведенные выше режимы общения. Так вот именно поиск надо придумать. С учетом очень малых ресурсов ведомых устройств.

Выделить специальный адрес для первоначального опроса. Ответ разбиваем на некоторое количество окон-таймслотов. Абонент отвечает в окне, выбранном по псевдослучайному принципу (затравкой ГСЧ будет его уникальный номер). Моделирование этого метода дает неплохой результат - для нахождения 250 абонентов при 256 тайм-слотах достаточно типично пяти циклов.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 2 2007, 18:50
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(rx3apf @ Mar 2 2007, 14:54) *
Выделить специальный адрес для первоначального опроса. Ответ разбиваем на некоторое количество окон-таймслотов. Абонент отвечает в окне, выбранном по псевдослучайному принципу (затравкой ГСЧ будет его уникальный номер). Моделирование этого метода дает неплохой результат - для нахождения 250 абонентов при 256 тайм-слотах достаточно типично пяти циклов.
Не понял - а как быть с коллизиями?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
rezident
сообщение Mar 2 2007, 18:58
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Сергей Борщ @ Mar 2 2007, 20:50) *
Цитата(rx3apf @ Mar 2 2007, 14:54) *

Выделить специальный адрес для первоначального опроса. Ответ разбиваем на некоторое количество окон-таймслотов. Абонент отвечает в окне, выбранном по псевдослучайному принципу (затравкой ГСЧ будет его уникальный номер). Моделирование этого метода дает неплохой результат - для нахождения 250 абонентов при 256 тайм-слотах достаточно типично пяти циклов.
Не понял - а как быть с коллизиями?

Видимо они "усредняются" повторными запросами.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 2 2007, 19:06
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(rezident @ Mar 2 2007, 18:58) *
Цитата(Сергей Борщ @ Mar 2 2007, 20:50) *

Цитата(rx3apf @ Mar 2 2007, 14:54) *

Выделить специальный адрес для первоначального опроса. Ответ разбиваем на некоторое количество окон-таймслотов. Абонент отвечает в окне, выбранном по псевдослучайному принципу (затравкой ГСЧ будет его уникальный номер). Моделирование этого метода дает неплохой результат - для нахождения 250 абонентов при 256 тайм-слотах достаточно типично пяти циклов.
Не понял - а как быть с коллизиями?

Видимо они "усредняются" повторными запросами.

Виноват, я "недосказал". Обнаруженные ответы обрабатываются - абонентам отсылается уведомление, что они обнаружены (как вариант, при ограниченном общем количестве - отсылкой им адреса, по которому они будут в дальнейшем выбираться), и тем самым они исключаются из последующих циклов опроса. Если абонентов мало, то, может быть, это и не требуется. В моем случае я исключал абонентов до тех пор, пока при двух опросах подряд отклики вообще не исчезнут - значит, "расправились" со всеми. Но у меня специфика - радиоканал с непредсказуемым взаиморасположением объектов. Примерно так же работают RFID с UHF-накачкой, однако детального описания реализации мне найти не удалось, поэтому начал творить отсебятину...

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

Да, если отказаться от байт-ориентированного протокола на этапе "разруливания" - можно изобразить что-нибудь типа механизма детектирования устройств на шине 1-wire или механизма антиколлизий в ISO14443.

Сообщение отредактировал rx3apf - Mar 2 2007, 19:17
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Mar 2 2007, 20:05
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(rx3apf @ Mar 2 2007, 18:06) *
Да, если отказаться от байт-ориентированного протокола на этапе "разруливания" - можно изобразить что-нибудь типа механизма детектирования устройств на шине 1-wire или механизма антиколлизий в ISO14443.


Пожалуй алгоритм 1wire будет оптимальным, только слушать вход придется в режиме pio.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nameless   Полный Ликбез: RS485 - двухпроводная шина.   Mar 2 2007, 08:48
- - PrSt   Цитата(nameless @ Mar 2 2007, 07:48) Что-...   Mar 2 2007, 10:05
|- - alogvinov   Цитата(PrSt @ Mar 2 2007, 10:05) Цитата(n...   Mar 2 2007, 10:20
- - nameless   А разве в сетях с передачей маркера нет алгоритма ...   Mar 2 2007, 11:06
- - beer_warrior   ЦитатаCSMA/CD без обнаружения коллизий не работает...   Mar 2 2007, 11:27
|- - AlexandrY   Тут получается противоречивый сценарий взаимодейст...   Mar 2 2007, 15:12
|- - Сергей Борщ   Цитата(rx3apf @ Mar 2 2007, 18:06) Винова...   Mar 2 2007, 19:42
- - beer_warrior   ЦитатаТак вот именно поиск надо придумать. Т.е. ад...   Mar 2 2007, 11:54
- - _Sam_   Я делал такую штуку. Алгоритм там не особо сложный...   Mar 2 2007, 15:04
- - Alex03   А такой вариант: Мастер посылает запрос "Кто...   Mar 2 2007, 19:39
- - arttab   Думали мы о варианте с колизиями: Мастер - Озовись...   Mar 2 2007, 20:04
|- - AlexandrY   Такую отсебятину в CANOpen пресекают на корню. По ...   Mar 2 2007, 22:57
- - nameless   Спасибо всем откликнувшимся. Имено до исключения к...   Mar 3 2007, 14:23
|- - Сергей Борщ   Цитата(nameless @ Mar 3 2007, 13:23) Крит...   Mar 3 2007, 14:44
||- - rx3apf   Цитата(Сергей Борщ @ Mar 3 2007, 14:44) P...   Mar 3 2007, 15:23
|- - rx3apf   Цитата(nameless @ Mar 3 2007, 14:23) Спас...   Mar 3 2007, 15:11
- - Andrew2000   Вот здесь upload/DOCs/Standarts&Specifications...   Mar 3 2007, 15:47
- - Alex03   ИМХО 1. Нормальные драйверы 485 имеют защиту по то...   Mar 4 2007, 09:39
- - _Sam_   Только 1. для вышеописанного обязательно долж...   Mar 4 2007, 10:05
- - nameless   2 Сергей Борщ: С двумя резисторами, как мне кажетс...   Mar 4 2007, 13:34
|- - Alex03   Цитата(nameless @ Mar 4 2007, 15:34) 2 Се...   Mar 5 2007, 07:55
- - nameless   Теперь думаю так: 1. При включении слейв имеет вт...   Mar 5 2007, 10:48
- - Alex03   Цитата(nameless @ Mar 5 2007, 12:48) Тепе...   Mar 5 2007, 11:55


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

 


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


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