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

 
 
> 30 одинаковых устройств на CAN шине. Как сделать автоматическую идентификацию.
syoma
сообщение Aug 26 2007, 09:25
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет. Сразу вторая тема.
На шине есть до 30 полностью одинаковых устройств с одинаковым ПО. Естественно все они будут вначале генерить сообщения с одинаковыми идентификаторами и это приведет к коллизии на шине. Плюс если попытаться их конфигурировать то все устройства будут реагировать на один и тот же идентификатор, то есть пообщаться с каждым устройством индивидуально невозможно.
Как это разрешить без программирования каждого устройства вручную?

Пока я вижу только один выход - это забить в программаторе цикл, чтобы он в каждой следующей прошивке увеличивал какие-то байты, которые отвечали бы за идентификатор. Таким образом получится 2^10 вариантов ПО и вероятность того что 2 устройства с одинаковым идентификатором попадут в одну шину - низкая. Если перейти на 2.0B то вероятность будет еще меньше. Недостаток в том, что при запуске системы или замене такого устройства придется обучать контроллеры на шине, чтобы они понимали чему соответствует новый идентификатор или перепрошивали его. Но хорошо то что это можно сделать по CANу, потому что простым перебором идентификаторов обнаружить присутствие устройства и определить его идентификатор возможно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dog Pawlowa
сообщение Aug 27 2007, 20:51
Сообщение #2


Гуру
******

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



Цитата(syoma @ Aug 26 2007, 12:25) *
Привет. Сразу вторая тема.
На шине есть до 30 полностью одинаковых устройств с одинаковым ПО. Естественно все они будут вначале генерить сообщения с одинаковыми идентификаторами и это приведет к коллизии на шине. Плюс если попытаться их конфигурировать то все устройства будут реагировать на один и тот же идентификатор, то есть пообщаться с каждым устройством индивидуально невозможно.
Как это разрешить без программирования каждого устройства вручную?

Существует несколько банальных способов:
- ДИП-переключатель
- EEPROM, которая записывается по одному общему идентификатору (устройства подключаются по одному)
- уникальный физический адрес, который можно прочитать (но не идентификатор!). Количество используемых идентификаторов не должно быть 2 в степени 19, их может быть всего 30+ (1..2).


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post



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

 


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


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