Проблема с развязкой 5В на 12В в линию

Обсуждаем цифровые устройства...
Ответить
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Чт окт 18, 2012 15:07:51

Сообщение tven26 »

Необходима схема развязки сигналов 5В с микросхемы, принимающей и передающей данные с 8-ми концевиков в дверях удаленного объекта на пульт охранника (на 8 светодиодов). В схеме использованы сдвиговые регистры, всего задействовано три провода. Тактами управляет микроконтроллер Атмега8.
Есть схема с использованием реле, но она не подойдет по причине быстрого выхода из строя из-за постоянного размыкания-замыкания.
Признаюсь, не сильно силен в радиоэлектронике, но очень хочу разобраться. Как можно реализовать развязку линии, чтобы общее количество проводов в линии было не более 4 (кабель лежит 4-х проводный)?
Изображение

Изображение
Вложения
Развязка.jpg
(62.29 КБ) 916 скачиваний
Линия.jpg
(131.4 КБ) 1328 скачиваний
Реклама
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

tven26 писал(а):Необходима схема развязки сигналов 5В с микросхемы, принимающей и передающей данные с 8-ми концевиков в дверях удаленного объекта на пульт охранника (на 8 светодиодов).
Передавать цифу на 1 км? Мне даже страшно представить ЧТО будет с фронтами сигнала на той стороне :shock:
Имхо, тут нужна не "развязка 5в на 12", а "как сделать передачу на 1 км".

Скорее всего, тебе поможет RS-485. Ставишь к AVR на стороне кнопок драйвер... типа MAX485. Второй такой же драйвер и AVR ставишь на стороне охранника.
И у тебя всего 2 провода для передачи! :)
Останется самое простое. 8) Изобрести какой-нить протокол обмена, хорошо бы с подтверждением.
Ну там... заголовок, команда какая, состояние кнопок, контрольная сумма... :)))
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15763
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

токовая петля с побитовым квитированием... правда тихоходная и требует 6 проводков + схемка "с мозгами" на приемной стороне
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Ну токовую петлю можно значительно упростить. :idea: Восемь концевиков - это 256 комбинаций. Первому концевику будет соотвествовать ток Х, второму 2Х, третьему 4Х... восьмому 128Х.
Предположим сработали 1, 5 и 8 концевики, то тогда ток в петле будет Х*(128+16+1). На принимающей стороне стоит АЦП и зажигает соотвестующие светодиоды. Можно наверное будет взять 8битное АЦП с параллельным выходом, и тогда контроллер вобще не нужен будет. А чему будет равен Х, это нужно будет выбрать из реальных условий эксплуатации, например чем он больше тем более помехоустойчивый канал передачи.

Правда человек спрашивал не как канал передачи организовать, а как развязать его ... :)
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Чт окт 18, 2012 15:07:51

Сообщение tven26 »

Схема, требующая развязки, не претендует на догму. Просто это вариант решения задачи: передать данные от 8-ми разных концевиков (независимых) на пульт через расстояние 1 км (кабель П-270, 4 жилы). Пренебрегать длиной линии не получиться. Так как других вариантов не придумал, а эта схема работает (проверял в Proteus) то решил что надо ее апгрейдить на большие расстояния - "развязать".

Может и вправду, можно реализовать задачу другим способом, например по RS-485. Желательно с примерами.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Вам информацию только в одну сторону передавать?

На стороне концевиков, ставите контроллер который постоянно считывает их состояние. Считав, тут же по каналу UART (встроенному или программно организованному), через MAX485 передает на витую пару байт данных. А так как байт это 8 бит, то как раз удобно для 8 концевиков. И так молотит по циклу без остановки. На другой стороне стоит зеркальная схема которая все это дело принимает.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Сообщение mas123 »

tven26 писал(а):Пренебрегать длиной линии не получиться. Так как других вариантов не придумал, а эта схема работает (проверял в Proteus) то решил что надо ее апгрейдить на большие расстояния - "развязать".
А в Протеусе учтена длина линии со всеми её плюшками - затуханием, ёмкостью... и в итоге - завалом фронтов? Я очень сомневаюсь что "на том конце" вообще что-то примется.
tven26 писал(а):Может и вправду, можно реализовать задачу другим способом, например по RS-485. Желательно с примерами.
Я бы только такой вариант и стал рассматривать :)) Всё же расстояние не малое, а RS-485 как раз обещает до 1200 метров.

А какие примеры нужны?
Схема простая: AVR, UART-выводы Rx/Tx идет на драйвер RS-485. Ну, ещё сигнал "направление" для драйвера нужно.
Выводы А и В от драйвера RS-485 подключаем к терминатору (вот какой резистор для этого нужен - не подскажу) и пускаем А и В по твоему кабелю.
Да другой стороне всё тоже самое: терминатор, драйвер 485, AVR.
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Чт окт 18, 2012 15:07:51

Сообщение tven26 »

Самое сложное,наверное, будет заключаться в написании протокола обмена для uart на Си. С программированием не сильно сталкивался, но понятие что это такое есть ;)
Если кто знает, как написать протокол обмена uart для атмега8 для этой задачи, или где найти доступные понятные примеры команд в этом направлении.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Вам передавать данные в одну сторону?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Аватара пользователя
Сообщения: 15763
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Z_h_e писал(а):
Правда человек спрашивал не как канал передачи организовать, а как развязать его ... :)
так токовая петля вроде как на оптронах делается 8)
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

BOB51, говоря про развязку, я имел ввиду свой пост, а не Ваш. А так как я предложил, в том варианте, по сути аналоговый канал передачи данных, то развязать его будет несколько сложнее.
Да по всей видимости развязка то и не нужна.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Чт окт 18, 2012 15:07:51

Сообщение tven26 »

Нужна передача в одну сторону без обратной связи. Почитал про УАРТ - там вроде развязка не нужна, нужны гасящие резисторы (терминаторы) и резисторы-потдяжки разности потенциалов между двумя проводами линии на питание и "землю".
Может кто знает реализацию проекта на УАРТ.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Может кто знает реализацию проекта на УАРТ.
Ну я ж Вам уже это все расписюлил. Читайте шестой сверху пост.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Чт окт 18, 2012 15:07:51

Сообщение tven26 »

Везде заумно написано про УАРТ. Может кто знает как ПРОСТО реализовать эту задачу?
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Сейчас я накидаю функционал. Распишу как умею, если конечно заявка не поступит, я на работе.

IHMO: А если Вы хотите что то собрать, то разобраться самому все равно придется или не беритесь
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Про UART почитайте в книге М.Гук «Интерфейсы ПК», думаю проще уж не куда.

Накидал Вам функциональную схему (не принципиальную), как видите, она проста.
СпойлерИзображение
Алгоритм работы передающего контроллера:
1. При включении питания контроллер инициализирует себя, в том числе модуль UART (он сейчас есть в каждом контроллере). В модуле UART настраиваете скорость передачи данных, количество бит данных (в Вашем случае это явно 8 ), количество стоповых бит (если надо).
2. Считывает состояния Порта к которому подключены датчики. Очередной раз повторюсь, что это как раз один байт данных.
3. Кидаете этот байт в передающий регистр модуля UART, который «без спроса» сразу начинает его передавать на витую пару через драйвер 485.
4. Ожидаете когда закончится передача, возвращаетесь к п.2.
Как видно, что для этого никакого протокола придумывать не надо. Контроллер просто молотит на витую пару пока не сгорит или не вырубится источник питания.

Алгоритм работы принимающего контроллера:
1. При включении питания контроллер инициализирует себя. В модуле UART настройки точно такие же как и в передающем.
2. Ожидаете когда контроллер что-то примет.
3. Считываете принятый байт информации.
4. Кидаете этот байт на выходной порт контроллера тем самым зажигая светодиоды. И к п.2


Про C не спрашивайте, даже не пробовал программировать контроллеры на нем. Про Asm рассказывать не буду.

P.S. А программатор то есть?
Вложения
ФСхем485.gif
(9.97 КБ) 413 скачиваний
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Родился
Аватара пользователя
Сообщения: 11
Зарегистрирован: Чт окт 18, 2012 15:07:51

Сообщение tven26 »

Z_h_e писал(а):IHMO: А если Вы хотите что то собрать, то разобраться самому все равно придется или не беритесь
Задачу, собственно, поставил себе сам: переживаю за охрану своих же объектов :cry:

Программатор по LPT (разъем, проводки и резисторы), МК ATmega8.

Предложенный Вами принцип понял, спасибо! Читаю про УАРТ и АТМЕГУ как написать програмку для считывания состояний и закидывания в регистр передачи.
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Z_h_e писал(а):Ну токовую петлю можно значительно упростить. ...ток в петле будет Х*(128+16+1).
Почесал репу. Температура окружающей среды изменилась - и снова тарировать. Да и токовая петля всего два провода. Откуда шесть?
Docendo discimus
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Температура окружающей среды изменилась - и снова тарировать.
Да нет никаких сложностей сделать стабилизатор тока минимально зависящий от температуры окружающей среды. Но действительно нет необходимости передавать инфу таким способом, т.к. реализация будет сложнее чем передать цифровым методом. Никаких 6 проводов я не предлагал.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Сообщения: 7774
Зарегистрирован: Сб янв 29, 2011 00:28:48

Сообщение Enman »

перейти на низкую частоту (до единиц-десятка Гц, чтобы исчезли волновые процессы в длинной линии). На входе ПРИЁМНОЙ стороны поставить 2 оптрона 817, которые будут принимать сигнал с линии. Между проводами линии сапрессоры и фильтрующие конденсаторы тоже не помешают. Импульс синхронизации на приёмную часть передавать со сдвигом хоть на пол длины импульса. После оптрона принимать на триггер Шмитта...Свою идею прилагаю. На динной линии основное - помехи и ГРОЗА.....
Изображение
Ответить

Вернуться в «Цифровая техника»