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