Ingenegr 0 10 сентября, 2009 Опубликовано 10 сентября, 2009 · Жалоба Есть система, работающая по протоколу Modbus. Платформа своя на базе MSP430F169. Адреса SLAVE устройств задаются в прошивке микроконтроллеров. В итоге, количество версий прошивок равно числу SLAVE устройств (макс 32), что неудобно при серийном производстве и делает блоки невзаимозаменяемыми без перепрошивки. Как можно реализовать начальную инициализацию системы с раздачей адресов? (Некое подобие работы шины 1-wire со многими датчиками.) Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 10 сентября, 2009 Опубликовано 10 сентября, 2009 · Жалоба http://electronix.ru/forum/index.php?showtopic=50930&hl= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 10 сентября, 2009 Опубликовано 10 сентября, 2009 · Жалоба Прошивать одним адресом, например, 0 А при регулировке выдавать команду смены адреса (при одном подключенном модуле), по которой новый адрес будет запоминаться в памяти. Если нужно динамически переопределять адреса, то это сложнее. Нужно детектировать коллизии и в каждом модуле должен быть уникальный идентификатор (наподобие мак-адреса) - на худой конец, забивать серийный номер. Кстати, тоже мысль. При прошивке забивает серийный номер, а адрес тогда будет равен SerialNumber % 32 (или другими словами, SerialNumber & 31) При перепрошивке опять выставляем серийный номер (который приклеен на бирочке - ведь так?), и получаем тот же адрес, который и был. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lermax 0 13 сентября, 2009 Опубликовано 13 сентября, 2009 · Жалоба Такая задача была решена следующим образом: Топология сети разная для раздачи адресов и для работы. Раздача адресов происходит в топологии точка- точка. Работа - традиционная шина Модбас. Физически сеть одна (в смысле пары проводов) При старте системы (например, подача питания на ВСЕ узлы одновременно) раздаем адреса. Для этого размыкаем шину в каждом узле ( НЗ реле ) Первый узел получает номер от Мастера сети. Если есть узел за ним, становиться временным мастером для следующего узла и следующий узел получает номер от него, иначе процесс раздачи считаем законченным. Переключаем все узлы в режим Шина и работаем как обычно. Вполне себе работает. Имеет смысл только в спецпроектах где без такого изврата никак. Из-за повышения сложности софта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться