Какую сенсорную шину лучше всего использовать?
Я работаю над проектом, который требует, чтобы дюжина датчиков VL53l0X I2C-TOF была опрошена одним главным MCU через несколько метров кабеля.
Таким образом, я решил сопровождать каждый TOF Atmega8, действующим как шлюз между TOF и Modbus (используя MAX485), который управляется ESP32 (мастером). Так как мне требуется довольно низкая задержка (~ 10 считываний / сенсор / секунда) Я немного разочарован производительностью Modbus RTU (в основном вызванной принудительной задержкой 1,75 мс между кадрами).
Мой вопрос: существует ли более быстрый, более подходящий, переносимый Atmega протокол шины для больших расстояний? Ethernet, к сожалению, не вариант из-за ограниченной вычислительной мощности и стоимости ведомых устройств ...
@Daniel D., 👍2
Обсуждение1 ответ
Может для Phy (физического) слоя было бы хорошо для нескольких тысяч футов. Вы можете использовать любой бод и протокол на уровне CAN, который вам нравится, в пределах разумного. Я предполагаю (возможно, по ошибке), что все они общаются на одной шине. Эта БАНКА Phy была разработана именно для этого. Вы могли бы написать свой собственный протокол и просто обратиться к каждому по уникальному номеру или чему-то еще. Существует также возможность использования контроллера CAN, но я думаю, что для разработки вашего решения не потребуется много времени. Размещение Atmega8 на каждом датчике открывает перед вами массу возможностей.
Итак, правильно ли я понимаю, что каждому ведомому устройству потребуется свой собственный идентификатор объекта?, @Daniel D.
Не уверен, о чем вы спрашиваете. Каждому из них просто нужен уникальный идентификатор, чтобы вы могли обращаться к ним по отдельности. Вы можете сделать "все звонки, если хотите". Адрес может быть таким же простым, как A, B, C и т.д., тогда вы сможете увидеть его на мониторе шины. Например, когда вы обращаетесь к "А", он отвечает своими данными. Возможно, вам придется добавить преамбулу, чтобы подчиненные устройства знали, что это команда, а не данные. Никаких предложений, так как я не знаю, как будет выглядеть поток данных. Будьте проще, устранение неполадок намного проще., @Gil
- Несколько датчиков I2C с одинаковым адресом
- Проблемы с подключением I2C на ESP8266 — 12F, какие контакты использовать?
- Лазерный датчик ToF (VL53L0X) не работает
- MAX30100 не работает
- Когда дело доходит до связи UART-RS485, в чем разница между модулем "MAX485" и модулем "HW-0519"?
- Как включать и выключать датчики I2C с помощью Arduino Mega 2560?
- Считывание значений с емкостного сенсорного датчика TTP229 на arduino
- Подключение двух Arduino через I2C, когда контакты I2C A4/A5 уже используются.
MODBUS - это просто протокол связи, который работает на существующем физическом уровне - RS485. Вам не нужно запускать MODBUS через RS485 - вы можете запускать все, что захотите, через RS485, это просто последовательный., @Majenko