Предполагая, что я не могу использовать беспроводные технологии, такие как LoRa , LTE-M или SigFox, в среде для установки, я должен использовать протокол проводного датчика для связи со шлюзом, установленным удаленно в здании.
Протяженность кабеля может быть до 20 м от шлюза, и в идеале я буду покупать надежное решение, которое не слишком дорого. Было бы замечательно, если бы датчик был совместим с CE, но, кажется, нет дешевого варианта (менее £ 20), например солнечного .
Итак, требования:
- Можно подключить до 10 или более устройств
- Максимальное расстояние не менее 20 м
- Цена менее 20 фунтов стерлингов для датчиков температуры / влажности / люкс (светимости)
Есть много вариантов, таких как SPI, I2C, RS485, Onewire и CAN. Выбранный нами протокол будет определять выбранный нами датчик.
Протокол Onewire от Maxim (Даллас) выглядит идеальным, но диапазон датчиков пока ограничен (при этом можно использовать мост maxim )
Какой протокол лучше всего подходит для перечисленных выше требований?
Ответы:
Я бы выбрал RS485 или CAN, потому что на длинных автобусах много шума. Они являются наиболее устойчивыми к шуму, так как они используют дифференциальные витые линии данных.
RS485 поддерживает расстояния до ~ 1200 метров с гарантированной скоростью 100 Кбит / с. Макс 10 Мбит / с с меньшими расстояниями. Это многоточечная шина с 32 водителями и 32 приемниками. (Один активный водитель за раз.)
CAN можно использовать более 20 метров. Из этого документа .
Повторяю мой комментарий, I2C исключен из-за больших расстояний. Емкость шины была бы слишком высокой. Он рассчитан на короткие расстояния на борту.
Что касается SPI, вот еще один документ о расширении шины SPI для дальней связи, но это может быть сложно. Так что я бы остался с CAN или RS485.
Оба они довольно распространены, поэтому поиск датчиков не будет проблемой IMO.
Есть также датчики с интерфейсом CAN, но RS485 более распространен, так что, возможно, это будет самым дешевым и простым.
источник