ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
478125
fk0, легенда (05.01.2014 22:48, просмотров: 21625)
Допустим, хочется сделать самодельную шину для связи N приборов. Со скоростями выше 250kbps. Расстояния десятки метров максимум. Между землями соединяемых приборов может быть разность напряжений в несколько (1-2-3...) вольт. Выходные сигналы не должны бояться КЗ с цепями +-12V. Но не хочется (нужно сделать из самых дешёвых компонентов) использовать готовые трансиверы RS485, CAN и т.п. Во многих МК сейчас есть компараторы и, понятно, что тот же RS485 можно принять на компаратор (потребуется некоторое число пассивных компонентов, резисторов -- привести входные напряжения +-12V в диапазон 0..VCC контроллера). Как быть с передачей. Что-то а-ля RS485 можно получить из двух буферов с Z-состоянием (для приёма) и инвертора (логическая ИМС серии tinylogic). Но тут вспоминается здравая идея из RS-423 -- мол не обязательно совсем уж дифференциальный сигнал, достаточно вместо второго провода взять "землю" передатчика (на входе компаратора). Тогда передача может работать прямо с ноги МК (вывод TX от модуля UART) через какой-либо буфер с Z-состоянием, попросту TTL уровнями (вместо +-сколько-то вольт). А постоянную составляющую (среднее между лог. 0 и лог. 1) вычтем перед компаратором (она ж на обоих концах одинаковая, не зависит от разности потенциала земель в разных приборах). В момент передачи, кроме того, транзистором со стороны передатчика второй провод соединяем с землёй, при приёме транзистор закрыт (и сигнал идёт только на компаратор). Кажется, должно работать? Возникают естесственные вопросы. Во-первых компаратор должен быть достаточно быстр. Во-вторых в земляной провод следует встроить резистор (чтоб при передаче с двух сторон, при коллизии, по земляному проводу не текли большие токи). В-третьих ток во втором проводе тоже должен быть ограничен и буфер используемый для передачи не должен позволять втекание тока на шину питания МК (вариант КЗ на +12V) -- на схемах трансиверов RS485 верхний транзистор включен последовательно с диодом для того. Не представляю как это сделать просто. Единственное, что приходит в голову: у пик-контроллеров проф. уровня вывод UART-TX можно вывести сразу на N ножек и запараллелить их (минимум две -- часть будет работать только как лог. 1, часть только как лог. 0, кроме того это увеличивает ток). Кроме того, включить работу в режиме открытого коллектора половину из них. Потом те, что в режиме открытого коллектора подключить к шине как есть, а те что в "цифровом" режиме -- через диод (анодом к выводу МК). Параллельно шине поставить диод для непревышения напряжения выше ~7в и резистор последовательно. Как-то так. Итого -- обошлись без специализированных микросхем. Из дорогостоящих компонентов -- только TVS диоды. Ещё резисторы. Остальное встроено в МК. Но нужен МК проф. уровня. В чём я мог допустить ошибки, что вам кажется сделать сложно или плохо, и как что-то подобное сделать с МК типа Cortex-M3 (например STM32Fxxx) ?
[ZX]