Возникла тут у меня интересная задача - из центрального микроконтроллера посылать команды нескольким удаленными устройствам. Связь односторонняя (от центрального устройства ведомым). Количество устройств от 10 до 20, удаление сравнительно небольшое - до 20м до дальнего. Все устройства связаны одним сигнальным проводом (помимо питания).
Помогите, пожалуйста, выбрать средство коммуникации и схемотехнику.
I2C и SPI отпадают, потому как требуют 2 сигнальных провода. CAN'а в этих микроконтроллерах нет. UART вроде как годится - в одну сторону можно передавать по существующему проводу. Но тут я не уверен в трех моментах 1) не будут ли множество подключенных на линию устройств влиять друг на друга? 2) центральный контроллер работает на напряжении 3.3В, тогда как ведомые на 5В. Не будет ли это препятствием к коммуникации? (на коротких расстояниях нет, но как на будет длинных?) 3) не будет ли больших наводок на больших расстояниях при условии, что передатчик работает на 3.3В?
Может быть стОит поставить транзистор на передатчике и усилить сигнал, например, до 12В перед выдачей на линию, а на другом конце транзистором вернуть в 5В?
Заголовок сообщения: Re: Передача данных между удаленными микроконтроллерами
Добавлено: Вт дек 01, 2020 05:50:20
Нашел транзистор. Понюхал.
Зарегистрирован: Вс сен 06, 2020 16:06:10 Сообщений: 156
Рейтинг сообщения:0
1) Ну если вы на центральном подключите только TX, а на остальных только RX - тогда не будут особо. Но назад вы вообще тогда ничего передать не сможете. Чтобы все же в 2 стороны, придется сделать так или иначе "open drain". По минимуму делается диодом и резистором, но на 20 метров лучше вариант на транзисторах. Там же и более высокое напряжение можно сделать, если хочется. 2) 3.3TX -> 5V RX работать если и будет то на грани, на 20 метров надо преобразователь в честные 5 вольт.
И да, наводки возможны, особенно если это не экранированный провод и особенно если он брошен черти как. Это может испортить команды и с односторонней передачей - а вы уверены что это будет работать? Протокол с сильными чексумами потребуется как минимум.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Какие объёмы данных нужно передавать и с какой скоростью? Передаваемые данные одинаковые для всех приёмных устройств или избирательно? Вариант безпроводки рассматривался?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Частотное кодирование. )) 1) работает по одному проводу 2) работает в обе стороны (дуплекс) 3) множество подключенных устройств не влияют друг на друга 4) работает при любом напряжении 5) работает при высоком уровне шума
Какие объёмы данных нужно передавать и с какой скоростью? Передаваемые данные одинаковые для всех приёмных устройств или избирательно? Вариант безпроводки рассматривался?
Думаю 9600 будет достаточно, пакеты по 6-8 байт. Планирую дать каждому устройству уникальный ИДшник, а пакеты будут либо адресные, либо широковещательные для всех.
Вариант беспроводки рассматривался, но получается а) дорого (дороже чем UART) б) в эту тему еще погружаться нужно в) уже протянут провод 3x1.5 где можно пустить как питание, так и сигнал третьим проводом. Правда провод не экранирован и брошен черти как
У меня нет проблем с логической частью - я программист со стажем и мне не сложно реализовать хоть UART, хоть one wire, хоть другое кодирование.
Мой вопрос больше про схемотехнику, т.к. в этой части я не так силен.
UART вроде как годится - в одну сторону можно передавать по существующему проводу. Но тут я не уверен в трех моментах
В одном проекте видел такой подход к передаче данных по UART на ведомые МК от базового МК. Принцип такой: Все МК подключены последовательно. То есть вывод (Tx) ведущего соединяется с выводом (Rx) первого ведомого, а вывод (Tx) первого ведомого с выводом (Rx) второго ведомого и т.д. У каждого ведомого МК присвоен код. Ведущий передаёт код получателя и данные. Если данные предназначены для (допустим второму ведомому), то первый, приняв данные и видя, что они адресованы не ему, передаёт их дальше. Второй получив данные и видя что они как раз для него – выполняет команду не передовая дальше ничего. Правда в таком подходе есть жирный минус, если на линии выйдет из строя какой-то МК, то все последующие МК будут оторваны от ведущего.
Вариант беспроводки рассматривался, но получается а) дорого (дороже чем UART) б) в эту тему еще погружаться нужно в) уже протянут провод 3x1.5 где можно пустить как питание, так и сигнал третьим проводом. Правда провод не экранирован и брошен черти как
Ну может не сейчас, а когда-нибудь пригодится: https://www.aliexpress.com/item/32833977085.html По 31р за штучку приемник на 433 МГц. Такой же передатчик тоже за копейки находится - SYN115 модель. Понятное дело, что всё-равно дороже "бесплатного" UART Но вдруг интересно будет. Погружаться не надо - один провод тот же самый, только по радио условно. Модуляция-демодуляция прозрачна, никаких настроек, тупые простые модули. Но для каких-нибудь радио-датчиков или наоборот - вполне рабочие штучки.
Но линейная с разрывом тоже вполне нормальна и может даже быть полностью надежна. Например, если по ТЗ работа устройств, следующих за неисправным, в случае его неисправности бессмысленна и не требуется.
Да, UART делает оверсэмплинг... Так же как и RS-232 и RS-485 и CAN и т.д. Только работают они не далеко)) У них высокие требования по уровню сигнала и завалу фронтов. И они не имеют гальванической развязки.
Я говорю про старые модемы с частотным кодированием... Они работают на огромные расстояния (десятки километров по проводам и тысячи километров по радио). Работают при любом уровне сигнала. Имеют гальваническую развязку. Им не важны фронты... шумы... и т.д.
Заголовок сообщения: Re: Передача данных между удаленными микроконтроллерами
Добавлено: Пт дек 04, 2020 11:44:07
Нашел транзистор. Понюхал.
Зарегистрирован: Вс сен 06, 2020 16:06:10 Сообщений: 156
Рейтинг сообщения:0
А тут уже смотря кто и что хотел. Изначально хотели по 1 проводу, про развязку ни звука.
У того кто на фото... частотной модуляцией только низкие скорости, 9600 уже отнюдь не FM. QAM не хотели? И всякие эквалайзеры, прекодинг, удаление эха, процедура замера параметров секунд на 10 (link training). На это - 56, чтоли, МГц DSP и пару ядер по 28, чтоли, в помощь. И оно конечно работало на энные расстояния, однако там еще протокол с CRC и переотправкой был, на случай если все эти навороты все же не сработали. А если протокол коррекции запретить - такая штука очень интересный результат из порта выгружает.
Вариант беспроводки рассматривался, но получается а) дорого (дороже чем UART) б) в эту тему еще погружаться нужно ...
Всё-же я за безпроводку через Bluetooth LE, даже если выйдет несколько дороже. Некоторые фирмы предлагают Bluetooth решения в стиле безпроводный UART. Если-бы я делал такую систему, то использовал-бы силлабовские модули семейства BGX. К тому-же они заводятся практически с нулевым вниканием, если по этому поводу имеются опасения.
485 вам прописан или токовая петля осталное в топку...9600 это не 300бот..там уже 3м проблемные могут быть без спецчипок на концах так что приемопередатчики линии обязателны
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения