fk0, легенда (23.01.2016 14:07 - 14:09, просмотров: 763) ответил Make_Pic на А так спрошу: По RS485 кто нибудь передавал питание? - Какие результаты? Какие развязочные дроссели использовали?
Вспомнинается, тут давали интересную идею: использовать IRDA-трансивер/приёмник (только электрический, без оптики). Идея в том, что ноль не кодируется никак, а единица коротким импульсом. Если предположить, что в линии связи что-то вроде витой пары (это критично, т.к. иначе и излучать начнёт, и помех наловит) и в ней только DC, т.к. изолирована через дроссели, то может сработать. На передающем конце стоит трансивер RS485, его выход RX (от RS485) попадает на одновибратор дающий короткий (1/16 от битового интервала, например) импульс на каждый положительный фронт. Далее попадает на транзистор, и через конденсатор передаётся в линию связи.
На приёмном конце через конденсатор попадает на компаратор, который отбирает импульсы по длительности (не менее чем) и амплитуде, далее стоит одновибратор растягивающий импульсы обратно, до длительности битового интервала. Скорость, понятно, фиксированная, и скорей селекция по длительности и "одновибратор" -- это некая цифровая схема, на базе счётчика, или МК, тактируемая от кварцевого резонатора обязательно. И растянутый импульс единицы битового интервала попадает на вход TX трансивера RS485. Почему я упомянул IRDA. UART модули в некоторых современных МК умеют генерировать сигналы для IRDA на передачу, и умеют принимать IRDA сигналы, и функции селекции импульса по длительности и восстановления единицы на битовом интервале там встроенные (например, у PIC24).
Идея в том, что 1) канал связи достаточно широкополосен, чтоб пропускать короткие импульсы, 2) не имеет импульсных помех (или, если помеха портит пакет, это отрабатывается верхним уровнем). Почему не использовать RS485 (т.е. UART в чистом виде, фактически) как есть: потому, что используя короткие импульсы мы исключаем низкие частоты, постоянную составляющую, и вызванную этим межсимвольную интерференцию (линия связи достаточно длинная, полагаем, имеет порядочную индуктивность и ёмкость, а дистанция по частоте между соседними битами минимальная). Либо придётся как-то специально кодировать передаваемые байты (об этом здесь упоминали), но это не избавит от искажений на длинной линии (как принять решение, ноль это или единица), если она не согласованная со всех концов (см. ниже). Расплатой служит то, что нужен относительно широкополосный канал связи и чувствительность к импульсным помехам, кроме того начинает излучать на радиочастотах. Поэтому витая пара. Конечно, относительно ВЧ сигнал сильно ослабляется (на входе потребуется усилитель хотя бы в виде компаратора) -- google "twisted pair power loss" и прикинь верхнюю частоту сигнала). Кроме того, отражённый от узлов сети сигнал будет мешать нормальному приёму. Потребуется согласовать передающие и приёмные узлы с волновым сопротивлением линии связи (после разделительных конденсаторов), и отделить DC-часть дросселями. И либо использовать топологию типа "шина" с терминаторами на концах, либо, если звезда, сильно ограничить размеры сети, либо использовать низкую битову скорость (если отражение попадает в тот же битовый интервал, то оно ничему не мешает). Думается, на скорости 9600 скорей встанет вопрос затухания сигналов в длинной сети.
[ZX]