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

 
 
> Начальная раздача адресов устройств в Modbus
Ingenegr
сообщение Sep 10 2009, 09:07
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 14-07-08
Из: Нижний Новгород
Пользователь №: 38 915



Есть система, работающая по протоколу Modbus. Платформа своя на базе MSP430F169. Адреса SLAVE устройств задаются в прошивке микроконтроллеров. В итоге, количество версий прошивок равно числу SLAVE устройств (макс 32), что неудобно при серийном производстве и делает блоки невзаимозаменяемыми без перепрошивки.

Как можно реализовать начальную инициализацию системы с раздачей адресов?

(Некое подобие работы шины 1-wire со многими датчиками.)

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Sep 10 2009, 09:33
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Прошивать одним адресом, например, 0
А при регулировке выдавать команду смены адреса (при одном подключенном модуле), по которой новый адрес будет запоминаться в памяти.

Если нужно динамически переопределять адреса, то это сложнее. Нужно детектировать коллизии и в каждом модуле должен быть уникальный идентификатор (наподобие мак-адреса) - на худой конец, забивать серийный номер.

Кстати, тоже мысль. При прошивке забивает серийный номер, а адрес тогда будет равен SerialNumber % 32 (или другими словами, SerialNumber & 31)

При перепрошивке опять выставляем серийный номер (который приклеен на бирочке - ведь так?), и получаем тот же адрес, который и был.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



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

 


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


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