Рекомендации по двухпроводной шине средней дальности?

Есть ли у вас какие-либо рекомендации для двухпроводной шины средней дальности (~ 10 метров)? Мое напряжение питания составляет 24 В, и у меня будет один мастер с подключенными к нему ~ 50 ведомыми устройствами. Я изучил:

  • I2C — отлично, но не так долго (ограничение емкости, буферы шины могут быть опцией)
  • SPI - не двухпроводной, но вроде как I2C
  • CAN — вариант, но это скорее шина с несколькими ведущими и, вероятно, нуждается в оконечном резисторе.
  • RS485 — на данный момент кажется лучшим выбором, можно использовать приемопередатчик UART-RS485, но все же нужен согласующий резистор, как в CAN.

Топология

Какие типы внешних помех вы должны терпеть? Если источники помех вызывают битовые ошибки, обнаружит ли ваша система их и запросит вторую передачу? И имеют ли ваши заземления одинаковый потенциал (все, что использует несколько розеток внутри дома, должно ожидать НЕКОТОРЫЕ различия в напряжении заземления)? Какие скорости передачи данных? Шина 100 Ом (многие витые пары имеют сопротивление около 100 Ом, с 10 000 пФ (10 нФ, 0,01 мкФ) на каждый метр для уменьшения амплитуды всплесков, инжектируемых электрическим полем, будет иметь постоянную времени 10 микросекунд, что легко позволяет передавать 1000 бит в секунду. И используйте приемники Schmidtt Trigger.
Я пока не знаю, как я буду справляться с помехами, но это некритические данные, и они обновляются достаточно часто, чтобы не иметь значения на данном этапе. Все мои земли имеют одинаковый потенциал, так как все они будут питаться от одного и того же источника питания. Я отредактировал свой вопрос, чтобы показать свою топологию и дополнительно проиллюстрировать запланированную схему. Каждый ведомый в основном одиночный pcb. Они, вероятно, будут подключены к краевым разъемам печатной платы, но меня немного беспокоит контактное сопротивление в них.
Для меня это не похоже на двухпроводную шину. Вы задавали аналогичный вопрос неделю или около того назад?
Интересно, это был не я, но я ищу нечто подобное. Я не нашел этот вопрос, когда я искал, хотя. Моя цель — спроектировать полностью модульную систему светодиодных панелей, а не куб festo. Возможно, это можно сделать с помощью мультиплексирования I2C, но я не знаю, насколько хорошо это будет работать, учитывая, что я разрабатываю его полностью модульным.
То, как вы нарисовали проводку, не будет работать для CAN или RS485. Вам нужно гирляндное соединение, а не многократное разветвление.
Это именно то, где я застрял прямо сейчас. гирляндное соединение также не вариант, поскольку каждое ведомое устройство должно иметь возможность переставляться в любое положение.

Ответы (2)

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

Таким образом, Ethernet довольно популярен и развит. Помимо IP и TCP, есть даже проверенные программные стеки, которые можно найти почти для всех микроконтроллеров, поставляемых с интерфейсами Ethernet.

Они, конечно, вездесущи и не слишком дороги. Например, семейство SAME53 поставляется с MAC-адресом Ethernet 10/100 Мбит/с. Просто добавьте RMII PHY ( пример 86 ​​ct ) и готово: вы получаете полную сеть с обнаружением коллизий, разгрузкой контрольной суммы и еще много чего. Поскольку это популярный ARM, вы, вероятно, можете выбирать, когда (если нет необходимости в IP во всех случаях) выбирать сетевой стек.

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

Соединение RS485 от ведущего устройства ко всем ведомым устройствам, подключенным параллельно, вероятно, было бы наилучшим. Два провода для полудуплекса, четыре провода для полного дуплекса.

Это приложение подробно описывает их проводку. Нужен согласующий резистор на каждом конце цепи (ведущий и конечный ведомый).

https://www.maximintegrated.com/en/app-notes/index.mvp/id/723

Поскольку я разрабатываю его полностью модульным, и я не хочу сжигать ватты на резисторах, где мне это абсолютно не нужно, я не вижу в этом жизнеспособного варианта.
Сделайте один из модулей согласующим резистором, который идет в конце цепочки.
Но любой из этих модулей должен иметь возможность перемещаться в любую заданную позицию в 2D-поле, пока он все еще соединен горизонтально или вертикально с любым другим ведомым или ведущим.
Если вы не устроите шину в виде длинного параллельного набора проводов с ведомыми устройствами, прикрепленными здесь и там с короткими шлейфами, и оконечным проводом в конце параллельного набора проводов, то я подозреваю, что у вас возникнут проблемы с ухудшением сигнала. с.