Перейти к содержанию
    

Доброго времени суток, коллеги.

Нахожусь на перепутье с выбором протокола общения в сети. Сеть состоит из 25-30 датчиков на базе STM32F1хх и 1-го центрального устройства (будет что-то одноплатное типа Pi, Orange и т.п.). Линия связи - витая пара. Режим работы - периодический съем данных с датчиков (с периодом опроса от 1с до нескольких минут , каждый датчик генерит порядка 10 байт инфы). Расположение - жилое помещение. Максимальное расстояние между узлами - до 15 м. Также необходимо иметь возможность обновлять прошивку датчиков по сети (50-80 кБ).
Напрашивается сразу классика в виде RS485 + Modbus RTU, но есть особенность: если показания датчиков начинают превышать пороги, то центральное устройство должно об этом узнать не позднее, чем через 1с. И тут либо датчики должны иметь возможность асинхронно сгенерировать алерт, либо, если юзать Modbus, необходимо опрашивать постоянно всю сеть с частотой 1 Гц (хотя в "стандартном режиме" достаточно 1 в минуту и реже).

Есть ли альтернативы? С CAN никогда не сталкивался, вроде как можно ставить CAN-контроллер (или даже только трансивер) и радоваться жизни, или есть подводные камни?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, bornbash сказал:

Сеть состоит из 25-30 датчиков

 

1 час назад, bornbash сказал:

с периодом опроса от 1с до нескольких минут

 

1 час назад, bornbash сказал:

датчик генерит порядка 10 байт инфы

В данном случае можно использовать что угодно, еще с запасом будет. 485 - самое простое, кан сложнее но все это вполне реализуемо...

1 час назад, bornbash сказал:

Modbus RTU

А это будет лишний костыль, и не предназначено для обновления прошивки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

 

 

В данном случае можно использовать что угодно, еще с запасом будет. 485 - самое простое, кан сложнее но все это вполне реализуемо...

А это будет лишний костыль, и не предназначено для обновления прошивки...

А если замахиваться на возможность подключения всей этой сети через центральное устройство (RPi) к какой-либо SCADA? Внутреннюю сеть сделать на проприетарном протоколе, поддерживающем обновление прошивки, а уже в RPi думать о том, как в SCAD'у слать?

Изменено пользователем bornbash

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, bornbash сказал:

А если замахиваться на возможность подключения всей этой сети через центральное устройство (RPi) к какой-либо SCADA?

И как этой скаде будете объяснять про обновление прошивки? Придется писать свой протокол на мастер устройстве...Либо реализовывать 2 протокола - 1-стандартный, типа модбаса, второй для обновления.

1 час назад, bornbash сказал:

Внутреннюю сеть сделать на проприетарном протоколе, поддерживающем обновление прошивки,

Кто в таком случае будет обновлять? Еще один контроллер? 

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, mantech said:

И как этой скаде будете объяснять про обновление прошивки? Придется писать свой протокол на мастер устройстве...Либо реализовывать 2 протокола - 1-стандартный, типа модбаса, второй для обновления

Да никак, конечно. 

Просто для сенсорной сети хотелось взять что-нибудь готовое, но, судя по всему, модбас целесообразно использовать для унификации, т.е. либо для обеспечения возможности подключения сторонних датчиков в свою сеть, либо своих датчиков в другие системы. Ни того, ни другого не предвидится. А с учетом больших накладных расходов при обновлении прошивки, целесообразость его использования стремится к 0 в моем случае. ТАк что буду, вероятно, что-то свое простое городить.

29 minutes ago, mantech said:

Кто в таком случае будет обновлять? Еще один контроллер? 

RPi будет смотреть в интернет, через неё будет апдейт прошивки. Целесообразность применения SCADA у меня пока под боооольшим вопросом. Вероятно, что вполне достаточно будет стрима данных в облако безо всяких локальных интерфейсов.

Изменено пользователем bornbash

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, bornbash сказал:

Напрашивается сразу классика в виде RS485 + Modbus RTU, но есть особенность: если показания датчиков начинают превышать пороги, то центральное устройство должно об этом узнать не позднее, чем через 1с. И тут либо датчики должны иметь возможность асинхронно сгенерировать алерт, либо, если юзать Modbus, необходимо опрашивать постоянно всю сеть с частотой 1 Гц (хотя в "стандартном режиме" достаточно 1 в минуту и реже).

Зачем так медленно? Калькулятор говорит, что на скорости UART 115200 нужно всего несколько мсек чтобы опросить все 30 датчиков и узнать состояния алертов на них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, bornbash сказал:

модбас целесообразно использовать для унификации, т.е. либо для обеспечения возможности подключения сторонних датчиков в свою сеть, либо своих датчиков в другие системы. Ни того, ни другого не предвидится.

Да и нафига он нужен тогда?  Обычный протокол - заголовок+адрес, длина, к. сумма в сторону устройства, оно выдает аналогичный ответ, только без адреса и все, больше ничего не надо... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, mantech сказал:

Да и нафига он нужен тогда?  Обычный протокол - заголовок+адрес, длина, к. сумма в сторону устройства, оно выдает аналогичный ответ, только без адреса и все, больше ничего не надо... 

Ну и чем это кардинально отличается от того же модбаса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, SSerge сказал:

Ну и чем это кардинально отличается от того же модбаса?

Более простая в понимании организация, без всяких доп. специфичных команд, входных регистров и битовых coils...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Коллеги, а по конкретным микросхемам для RS-485 соориентируете?
Есть отличные по характеристиками трансиверы MAX3075 с кусачим ценником под $4 в мелкой серии. Есть ADM3072 (тоже полудуплекс, ESD, true fail-safe, только на 250кбод), но уже в 2 раза дешевле почти. Есть линейка от MaxLinear - про них вообще до сегодняшнего дня ничего не слышал. Подскажите из собственного опыта лучше на что ориентироваться, если нужно, чтобы без проблем сеть работала?

Изменено пользователем bornbash

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, bornbash said:

Есть линейка от MaxLinear - про них вообще до сегодняшнего дня ничего не слышал.

Это бывший Exar. Если остатки памяти мне не изменяют, всякие RS/V интерфейсы к ним от Sipex пришли...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.07.2019 в 21:38, bornbash сказал:

Коллеги, а по конкретным микросхемам для RS-485 соориентируете?

Используем вот такой ADM2483, не дешевый, но с изоляцией.

А выбирать нужно исходя из тех же характеристик. В первую очередь количество устройств в сети. Дальше всякие защиты от статики  и дурака. Уж или трансивер по дороже, или на рассыпухе защиту.

Если устройств много, как у Вас - отключаемые терминаторы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.07.2019 в 17:38, bornbash сказал:

Коллеги, а по конкретным микросхемам для RS-485 соориентируете?
Есть отличные по характеристиками трансиверы MAX3075 с кусачим ценником под $4 в мелкой серии. Есть ADM3072 (тоже полудуплекс, ESD, true fail-safe, только на 250кбод),

А чем "классика" не угодила, та же ADM3485 ? Стоит копейки и есть в наличии...  https://www.elitan.ru/price/item83408

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.07.2019 в 21:38, bornbash сказал:

Коллеги, а по конкретным микросхемам для RS-485 соориентируете?

У нас MAX485ESA для 5В и ST3485EBDR для 3.3В в серию идут. Но у них ограничение по скорости, насколько помню 250 кбит. По этому соотносите со своими требованиями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...