Автор |
Сообщение |
|
Дата: 29 Ноя 2007 17:41:06 · Поправил: Пеленгатор (29 Ноя 2007 17:43:10)
#
ТЗ: необходимо: управление 4-мя устройствами...
схема без МК
исходное состояние выходов - ноль.
установка "1" на определенном выходе осуществляется путем подачи n-ой комбинации на вход (всего на LPT 8 пинов, причем состояние колбасится при загрузке системы и BIOS, это тоже надо учитывать)
софт для управление каждым из 8 выходов LPT есть.
независимость состояния каждого из 4-х выходов, тоесть включаем один - на работу остальных сказываться не должно.
вроде бы всё просто а как реализовать это на железе - не могу придумать
|
|
Дата: 29 Ноя 2007 21:30:58
#
Доброе время, коллеги!
2Пеленгатор: а можно чуть подробнее - в чем заключается управление? Просто включить-выключить? Или между устройством и компьютером есть обратная связь? Под какой ОС это нужно реализовать? (попробую сам догадаться :) - WinXP?)
"Расколбас" при загрузке (тестирование и начальная инициализация порта) можно обойти "тупой" буферизацией управляющих входов устройств...
И что за устройства? Если не секрет, разумеется...
Управление через LPT, аппаратно, проще чем по COM портам - там наворачивать придется много...
Хотя... я могу и ошибаться :)
73!
|
Реклама Google
|
|
|
Дата: 29 Ноя 2007 21:59:00
#
С добрым утром. Пожалуй, вставлю свои 5 копеек.
Для управления прстенькими девайсами лучше всего LPT, ибо легче. В моем случае, правда, не требовалось избегать "расколбашивания" при включении, но так как это длится не более пары секунд, можно попробовать позатягивать фронты конденсаторами. Если, конечно, не требуется высокая частота работы.
Чтобы Вам было к чему стремиться, в качестве примера своего творчества могу подкинуть свою реализацию устройств включения/выключения и измерения на ЛаПТях.
http://f1cd.ru/news/pc_novelty/61/ - как я самовар к ЭВМ прицепил
http://f1cd.ru/news/pc_novelty/62/ - измерения работают! |
|
Дата: 29 Ноя 2007 22:05:55 · Поправил: Falcon68 (29 Ноя 2007 22:08:36)
#
Офигенное ТЗ. ;)
схема без МК - що це за зверь?
управление 4-мя устройствами...
Через можно и 8-ми ;)
установка "1" на определенном выходе осуществляется путем подачи n-ой комбинации на вход
Есть напряжение на контакте ЛПТ или нет.
(всего на LPT 8 пинов, причем состояние колбасится при загрузке системы и BIOS, это тоже надо учитывать)
При загрузке компа опрос ЛПТ - это неизбежно.
независимость состояния каждого из 4-х выходов, тоесть включаем один - на работу остальных сказываться не должно.
Не будет.
вроде бы всё просто а как реализовать это на железе - не могу придумать
Элементарно.
Все восемь каналов блока реле выполнены по идентичным схемам. Каждый канал состоит транзисторного ключа VT1…VT8, электромагнитного реле K1…K8, светодиода VD9…VD16. Светодиод VD9…VD16 индицирует срабатывание реле K1…K8. Резисторный делитель в цепи базы транзистора VT1…VT8 обеспечивает привязку напряжения срабатывания устройства к стандартным ТТЛ уровням. В цепь коллектора VT1…VT8, через параллельно соединённые резистор R17…R24 и конденсатор C1…C8, включена обмотка электромагнитного реле K1…K8, контактная группа K1.1…K8.1 которого замыкает/размыкает (в зависимости от точек подключения нагрузки, а именно точки X13…X20-X21…X28 на замыкание, X13…X20-X29…X36 на размыкание реле соответственно) цепь питания нагрузки. При замыкании электронного ключа VT1…VT8, конденсатор C1…C8, заряжаясь через обмотку реле K1…K8, создаёт импульс тока, достаточный для притяжения якоря этого реле. После заряда конденсатора якорь реле удерживается меньшим током, протекающим через резистор R17…R24, что делает устройство экономичнее с точки зрения потребления тока. Диод VD1…VD8 защищает транзистор VT1…VT8 от импульсного пробоя в момент его закрытия.
Источник управляющих сигналов подключается к точкам X2 (1-ый канал)…X9 (8-ой канал), X10 (земля).
Нагрузки подключаются к точкам X13…X20-X21…X28 на замыкание, X13…X20-X29…X36 на размыкание реле соответственно.
Напряжение питание подается на точки X1, X37, либо X11, X38. |
|
Дата: 29 Ноя 2007 22:15:09
#
deer
Хорошие штучки, а у меня более прозаично : аквариумы (2шт) через ЛПТ управлялись, потом отдельный контроллер сделал.
|
|
Дата: 29 Ноя 2007 22:29:04 · Поправил: RadioKoteg (29 Ноя 2007 22:30:43)
#
на компе оператором OR
10000000 1-й девайс
OR
01000000 2-й девайс
OR
00100000 3-й девайс
OR
00010000 4-й девайс
OR
00001011 Адрес
получится на выходе
11111011 (включены все 4 устройства)
брать с битов напрямую , забираете состояние первых 4 бит
если хотите исключить ложное срабатывание то остальные четыре бита использовать на дешифратор
например так хххх1011 ,(хххх четыре канала управления) (1011 адрес устройства)
и сделать на логике дешифратор этого состояния 1011 и при этом адресе разрешать включение битов 1 2 3 4 .
Чесн слово не полностью понятно что вы хотите,и что такое расколбашивалось?
|
|
Дата: 29 Ноя 2007 22:34:19
#
без МК = без МроКонтроллера
|
|
Дата: 29 Ноя 2007 22:36:07
#
Falcon68
Реле у меня, например, имеет Uсраб 12V, поэтому включено через транзисторную оптопару (АОТ101Г и Б, их там больше одной). Но, в принципе, тоже реле коммутирует 220, к обмотке также точно подключен конденсатор и резистор, только из-за того, что и на обмотке цепи отдельные, светодиод подключен параллельно обмотке K1.
Вот только не знаю, как под XP (или чем?, надеюсь, автор пояснит) софтину реализовать? У меня под ДОСом - это без проблем, даже резидентно все, компьютер не становится "контроллером саомвара", а окошки будут возмущаться, насчет *никсов не скажу, не имел особо с ними дела.
|
|
Дата: 29 Ноя 2007 22:38:29
#
RadioKoteg
что такое расколбашивалось
Это такое явление, при котором в момпент включения ЭВМ (или сброса) вывод принимает не то стабильное состояние, которое ему свойственно обычно, а другое. Так все ноги LPT со 2 по 9 принимают лог.1 на пару секунд, а потом - лог.0 до смены из программы. А тот же pin 1, наоборот, из "0" перейдет в "1".
|
|
Дата: 29 Ноя 2007 22:42:09
#
под НТ 2000 ХП делалось и делается драйвером и библиотекой NTPort ,например под делфями просто и быстро или визуал бейсиком .
|
|
Дата: 29 Ноя 2007 22:44:30
#
deer
У в схеме тоже, кстати забыл, 12В питания.
Я в окошках работаю, под сторонним драйвом - FTDI Direct Driver.
|
|
Дата: 29 Ноя 2007 22:44:36
#
Про "расколбашивание".
Правда давно это было и требовался мне только один канал из восьми для PTT.
От "расколбашивания" избавился пропустив сигнал через 2 реле, одно с Н.З. другое с Н.Р. контактами, соответственно для управления нужно подать сигнал только на одно.
|
|
Дата: 29 Ноя 2007 22:46:32
#
deer на расколбас таймер сделайте ,ни или незнаю, я предлжил адрес один из 16 будет вероятность
,а вообще чтобы избежать такое то ставятся устройства на последовательные порты ,там таких вероятностей почти нет,или исключены к нолю.
|
|
Дата: 29 Ноя 2007 22:47:29
#
RadioKoteg
под НТ 2000 ХП делалось и делается драйвером и библиотекой NTPort
Тогда ладно, пробему эту считаем решенной.
Кстати, а ведь можно сделать аппаратно И между первой ножкой и ножками сигнальными, и только если и там, и там лог.1 присутствуют, подавать сигнал на открытие реле. Тогда не будет эффекта "колбасы" при включении и сбросе, хотя схемотехника посложнее меного станет. Но это уже на совести гражданина Пеленгатор оставим.
|
|
Дата: 29 Ноя 2007 22:49:24
#
ладно ,как хотите,у меня реально работает такое устройство 4 бита шина адреса и 4 бита шина данных ,за 4 такта врубает любой из 32 и читает любой из 32,сбоев не заметил.
|
|
Дата: 29 Ноя 2007 22:49:49 · Поправил: Sashman (29 Ноя 2007 22:50:55)
#
RadioKoteg, расколбашиваемость это то, для чего ты ввёл понятие адрес. Но! При начальном расколбашивании системы на младшие 4 бита выпадет нужный адрес с вероятностью 1/16.
Пеленгатор, вывод с дешифратора подавайте на входы C четырёх D-триггеров, а информационные линиии (оставшиеся 4 ноги лпт-порта) - каждую на свой D-вход. С выводов триггеров запитываете нагрузочные реле.
При этом когда в младших 4 разрядах будет правильная комбинация бит - на входы C прийдёт логическая единица и каждый из триггеров приймёт то значение, которое установлено на информационной линии.
|
|
Дата: 29 Ноя 2007 22:53:21
#
Если навесить на LPT сначала схемку на триггерах и простой логике, то под всякими консольными операционками можно простым перенаправлением в LPT этим командовать.
|
|
Дата: 29 Ноя 2007 22:54:53
#
Sashman Вам не надо блок сигнализации с прогой который таким образом контролирует 32 канала ?
Меняю на пиво ,с прогой и с исходниками ..
|
|
Дата: 29 Ноя 2007 22:55:19
#
как хотите,у меня реально работает такое устройство 4 бита шина адреса и 4 бита шина данных ,за 4 такта врубает любой из 32 и читает любой из 32,сбоев не заметил
Сбоев и не должно быть! У меня из-за измерений ног свободных меньше оставалось, да и городить огород микросхем не сильно хотелось, к тому же, авиационная надежность не требовалась. А Вашу схему одобряем!
Теперь осталось, чтобы автор пояснил, что делает, или воспользовался одним из советов, которые мы ему дружно надавали и рассказал, что получилось...
|
|
Дата: 29 Ноя 2007 22:55:28
#
А вот ещё к "Мастер КИТ" есть набор (8ми канальный ... чегото там LPT). Т.Е. готовый набор под задачу, но я не знаю как там с расколбашиваемостью и реле там с Н.Р. контактами.
|
|
Дата: 29 Ноя 2007 22:57:42
#
При начальном расколбашивании системы на младшие 4 бита выпадет нужный адрес с вероятностью 1/16.
Крайне высока вероятность того, что на всех ногах 6-9 выпадет "1111", так что просто этот адрес никому не раздаем или вешаем нечто такое, что не боится кратковременных включений или выключений
|
|
Дата: 29 Ноя 2007 23:07:36
#
а можно чуть подробнее - в чем заключается управление? Просто включить-выключить?
да. именно включить, подав лог. 1, причем в момент включения компьютера (и данного устройства) на выходе должен быть 0, во время загрузки компа тоже.
"Расколбас" при загрузке (тестирование и начальная инициализация порта) можно обойти "тупой" буферизацией управляющих входов устройств...
на старой мат. плате напряжение на порту пропадало секунд на 15, а затем появлялось вновь. тут фронт не затянешь)
що це за зверь?
микроконтроллер
Есть напряжение на контакте ЛПТ или нет.
абсолютно не катит, читайте внимательнее "ТЗ"
При загрузке компа опрос ЛПТ - это неизбежно.
если придумать какое-нить хитрое устройство на м/сх, но не прибегая к микроконтроллерам, то устройство будет игнорировать запросы инициализации порта, момент включения машины и тп
Чесн слово не полностью понятно что вы хотите,и что такое расколбашивалось
схема такая, включается компьютер по WOL, затем загружается windows и передает управление программе, которая по нажатию определенной кнопки на клаве меняет состояние 1/0 на лпт порту. при включении компа на всех выходах ЛПТ - единица, в процессе загрузки ОС единица может несколько раз пропадать, на неопределенное время, по окончании загрузки на всех выходах единица (проверено). затем за дело берется программа xstarter, посылает нажатие нужной клавиши той программе что работает с лпт-портом (в программировании не силен поэтому сделал таким способом). нагрузка #1 включается, через n минут, заданные с компа, включается следующая. поэтому управление нагрузками должно происходить с некоторой задержкой, пока на всех выходах лпт установится ноль (тем или иным способом).
Sashman
не очень разбираюсь в электронной логике, может схемку набросаете?
|
|
Дата: 29 Ноя 2007 23:13:55
#
Пеленгатор
Тоесть, у Вас уровни на выходе LPT "гуляют" в широких пределах? Мне Вас жаль!
Тогда только лог.И или искл.ИЛИ применять. Или подобрать реле и резистор, чтобы срабатывало только на все 8 "поднятых" ног (и их запараллелить, при желании - через диоды). Или сделать управление нагрузками по LPT и сигнал "разр." от COM (только там уровни не TTL, будьте внимательны! напряжения побольше будут).
Может, мы Вам про контроллеры расскажем? Легче будет жить! Чесслово!
|
|
Дата: 29 Ноя 2007 23:15:35
#
по идее, самое тупое решение - реле времени, которое будет отключать пины лпт порта на несколько минут, пока комп загрузится и программно установит нули на порту.... есть ли варианты такого реле на микросхеме, желательно без релюшек (многовато их уже получается) и с более-менее постоянным временем задержки
|
|
Дата: 29 Ноя 2007 23:17:07
#
Пеленгатор
Можно, но согласен на 100%, что самое тупое решение
Подумайте про микроконтроллеры, легче будет!
|
|
Дата: 29 Ноя 2007 23:17:59
#
deer
незнаю, в широких или нет, но на время загрузки ОС гуляют то 0 то 1. раза 2
от COM - неплохой вариант, но ведь этот порт тоже опрашивается при загрузке
|
|
Дата: 29 Ноя 2007 23:53:18
#
У меня - стабильно 11111111, потом 00000000, бороться легко. А у Вас?
Кстати, спокойной ночи!
|
|
Дата: 29 Ноя 2007 23:59:02
#
Решал подобные задачи без МК. Но мелкий PIC или AVRка проще и надежней. Предлагаю такой вариант:
- 8и разрядный сдвиговый регистр с последовательной загрузкой и 8 выходами, например 4094. Такт и вход на биты LPT или СОМ (через согласование уровней) а разрешение выхода на схему с детектором наличия достаточно длинной последовательности импульсов (детектор на 2 диодах, RC цепочка и триггер Шмита) RC подобрано так, чтобы 1 на выходе появлялась, только если на входе пару секунд идет серия импульсов.
Малое количество входов позволяет использовать COM порт - RTS DTR на входы регистра, а TXD на детектор серии импульсов, после загрузки регистра туда посылается куча 55H, для включения нагрузки. Можно сделать неограниченное число выходов, если регистры соединить “паровозиком”.
|
|
Дата: 30 Ноя 2007 00:24:36 · Поправил: Falcon68 (30 Ноя 2007 00:26:11)
#
Пеленгатор
если придумать какое-нить хитрое устройство на м/сх, но не прибегая к микроконтроллерам, то устройство будет игнорировать запросы инициализации порта, момент включения машины и тп
Это уже МК или просто включать питание устройства после включения и прохождения тестов компа.
Насколько я поням: задача минимум электроники. Все остальное уже с контроллером.
Пеленгатор
от COM - неплохой вариант, но ведь этот порт тоже опрашивается при загрузке
Да, но опрос не влияет на состояние контроллера.
ЗЫ
А, если не секрет, что Вы хотите сделать, чем управлять?
|
|
Дата: 30 Ноя 2007 05:51:04
#
Доброе время, коллеги!
Поправьте, если ошибаюсь...
2Пеленгатор: аппаратная реализация предложенного RadioKoteg "алгоритма" - ответ на все (или почти все) Ваши вопросы.
Если вариант подачи напряжения питания на устройства после загрузки ОС - неприемлем (а это,согласитесь, самый "тупой" обход "расколбаса"), то:
- подключаем устройства к LPT через буфер- шинный формирователь_регистр (любое устройство с 3-мя состояниями)
- организуем дешифратор, который будет формировать сигнал CS для буфера (без этого сигнала буфер ничего не пропустит)
Собственно и все... В справочнике Гука (Интерфейсы ПК) очень подробно расписан процесс инициализации LPT. Что куда записывается можно там посмотреть...
Хотя... я могу и ошибаться :)
73!
|
Реклама Google |
|