Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];
ВнизРабота с COM портом Найти похожие ветки
← →
ShyricK © (2007-07-28 00:27) [0]Доброго времени суток всем!! Народ, пожалуйста подскажите можно ли программным путём управлять COM(LPT) портом: в частности подавать на клемы напряжение, т е объясняю есть в проге 4 кнопки и есть4 светодиода подкл к порту нужно чтобы нажимаешь на1 кнопку загорается1 светик и тд. возможно ли это сделать?
← →
tesseract © (2007-07-28 12:06) [1]
> Народ, пожалуйста подскажите можно ли программным путём
> управлять COM(LPT) портом:
Можно.
> е объясняю есть в проге 4 кнопки и есть4 светодиода
К Com можно только 2 подключить, остальное только через LPT. ищи WinIo - с ним будет проще.
← →
ShyricK © (2007-07-28 15:06) [2]Можно поточнее что за WinIo?
← →
ShyricK © (2007-07-28 15:08) [3]И где искать то?
← →
Инс © (2007-07-28 17:09) [4]
> ищи WinIo - с ним будет проще.
А зачем? Работать с COM-портом и так несложно. Вот только действительно на 4 IN и 4 OUT ножек не хватит :)
Вот статья по COM:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1126
Вот по LPT:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1099
← →
ShyricK © (2007-07-28 18:16) [5]Так ведь у меня не работа с устройством, а обычная подача напряжения или я там чего-то не понял.
← →
Инс © (2007-07-28 18:56) [6]
> Так ведь у меня не работа с устройством, а обычная подача
> напряжения или я там чего-то не понял.
Так и работа с устройством - это по сути тоже обычная подача и считывание напряжения с выводов :))
Посмотрите GetCommModemStatus и EscapeCommFunction
← →
tesseract © (2007-07-30 10:41) [7]
> Посмотрите GetCommModemStatus и EscapeCommFunction
LPT модемы давно не видел.
← →
Anatoly Podgoretsky © (2007-07-30 19:25) [8]Для СОМ порта отсутствие напряжения как факт не существует. Принцип работы у него такой.
← →
ShyricK © (2007-07-30 22:33) [9]Ну а для LPT WinIo поможет? Если да то дайте ссылку где чё почитать посотреть а то с этим не разу не работал.
← →
tesseract © (2007-07-30 22:38) [10]
> Для СОМ порта отсутствие напряжения как факт не существует.
Это для RS485 - там дифференциал нарпряжения. В Rs232 есть земля и две сигнальные линии в самой минимальной конфигурации. Напряжение - +12 вольт на сигнал.
по WinIo тут, версию для Delphi точно видел : http://www.google.com/search?client=opera&rls=ru&q=winio+library&sourceid=opera&ie=utf-8&oe=utf-8
← →
Anatoly Podgoretsky © (2007-07-30 22:43) [11]> tesseract (30.07.2007 22:38:10) [10]
Не так, на сигнальных и управляющих линиях всегда есть напряжение, или минус, или плюс о 5 до 15 вольт
← →
ShyricK © (2007-07-30 22:48) [12]
> по WinIo тут, версию для Delphi точно видел : http://www.
> google.com/search?client=opera&rls=ru&q=winio+library&sourceid=opera&ie=utf-
> 8&oe=utf-8
А где именно то?
← →
tesseract © (2007-07-31 12:54) [13]
> Не так, на сигнальных и управляющих линиях всегда есть напряжение,
> или минус, или плюс о 5 до 15 вольт
На управляющих не всегда. По умолчанию не стоят.
> А где именно то?
тут без заголовка, но его переписать 3 мин:
http://internals.com/
← →
Инс © (2007-07-31 13:26) [14]
> Не так, на сигнальных и управляющих линиях всегда есть напряжение,
> или минус, или плюс о 5 до 15 вольт
выходные от 5, входные - от 3
← →
Anatoly Podgoretsky © (2007-07-31 19:27) [15]На входные линии напряжение с микросхемы подать нельзя.
← →
Инс © (2007-07-31 19:45) [16]
> На входные линии напряжение с микросхемы подать нельзя.
Брр, не понял. С какой микросхемы? Есть специализированные микроконтроллеры, которые стыкуются к RS-232. Правда как правило уровень сигналов микросхем ТТЛ. Необходимо использовать преобразователи уровней RS-232 в TTЛ и наоборот.
← →
Anatoly Podgoretsky © (2007-07-31 21:13) [17]> Инс (31.07.2007 19:45:16) [16]
Речь про СОМ порт
← →
YurikGL © (2007-07-31 22:20) [18]
> Брр, не понял. С какой микросхемы?
Есть подозрение, что уарт... :)
Вообще, насколько я знаю, com-порт не предназначен для того, что бы к нему напрямую подключали лампочки, светодиоды и прочие единичные индикаторы сколько бы ни было у него на выходе. Пожгете порт и все.
← →
YurikGL © (2007-07-31 22:25) [19]Схема для LPT
http://www.technograd.com/print_atic/1414
← →
Anatoly Podgoretsky © (2007-07-31 22:27) [20]> YurikGL (31.07.2007 22:20:18) [18]
Не пожгет, но и светиться не будет, у него ограничитель тока, расчитан на короткое замыкание.
← →
YurikGL © (2007-07-31 22:29) [21]Вот и про COM
http://schemz.narod.ru/COMdevice.htm
Обращаю внимание на фразусигнал этот придется усилить по току и без внешнего питания вы вряд ли обойдётесь, так как макс. ток, который может выдать СОМ порт- что-то около 25мА. Можете это питание взять с блока питания компьютера. Возможно, придётся ещё и усреднить этот ШИМ сигнал RC-цепочкой или интегрирующим усилителем, это зависит от вашего устройства.
← →
Инс © (2007-07-31 23:38) [22]
> Не пожгет, но и светиться не будет, у него ограничитель
> тока, расчитан на короткое замыкание.
Будет. Сам светил. Ограничительный резистор просто ставить нужно. Чтбы ток ограничить.
← →
tesseract © (2007-08-01 10:16) [23]
> прочие единичные индикаторы сколько бы ни было у него на
> выходе. Пожгете порт и все.
Современный довольно сложно пожечь - все нормальные микросхемы включают защиту от статики/КЗ .
> Будет. Сам светил.
Я знаю такие весы, у которых буфер порта питался от CTS :-)
← →
Инс © (2007-08-01 10:37) [24]
> Я знаю такие весы, у которых буфер порта питался от CTS
> :-)
Ничего удивительного. Комовские мыши питаются от RxD
← →
Anatoly Podgoretsky © (2007-08-01 19:55) [25]
> Современный довольно сложно пожечь - все нормальные микросхемы
> включают защиту от статики/КЗ .
Обязаны все иметь, даже выпуска 1981 года, иначе они не имеют право так называться, поскольку это вытекает из стандарта на RS-232
← →
Anatoly Podgoretsky © (2007-08-01 19:55) [26]
> Ничего удивительного. Комовские мыши питаются от RxD
Не путаешь, это входной контакт, а не выходной.
← →
Инс © (2007-08-01 20:23) [27]
> Не путаешь, это входной контакт
Не путаю, само собой входной. К чему этот вывод подключен на удаленном для мыши устройстве (к TxD или еще к чему-либо) она не знает и знать не обязана. Для нее это именно RxD.
← →
Инс © (2007-08-01 20:33) [28]Вообще, по-хорошему, конечно же лучше не подключать диодики и прочую лабуду напрямую, а ставить какой-либо буферный элемент, выполняющий роль преобразователя импеданса: усилитель, повторитель, преобразователь уровня - что-нибудь в этом роде. Чтобы входное сопротивление было большим, а выходное - маленьким. Не нужно чтобы ток протекал линиям порта, даже если там защита от КЗ или большая нагрузочная способность.
← →
tesseract © (2007-08-02 09:58) [29]
> Обязаны все иметь, даже выпуска 1981 года,
Ты это скажи фирме Maxim-Dallas, у которой такие микрухи имеют приставку CPE - и стоят раза в три дороже, чем без CPE. Сам их перепаял вагончик и три телеги.
← →
tesseract © (2007-08-02 10:00) [30]
> К чему этот вывод подключен на удаленном для мыши устройстве
> (к TxD или еще к чему-либо) она не знает и знать не обязана.
> Для нее это именно RxD.
Мыши проще от тругих питаться контактов, гасить сигнальную линию-то зачем, как мышь от логического ноля запитать можно, мне инетресно, или ей 0,4 вольта хватает ?.
ЗЫ: Transiever и REciever довольно легко трактуються :-)
← →
Инс © (2007-08-02 10:36) [31]
> Мыши проще от тругих питаться контактов, гасить сигнальную
> линию-то зачем, как мышь от логического ноля запитать можно,
> мне инетресно, или ей 0,4 вольта хватает ?.
Ууу, как все запущено... Ну во-первых, логический 0 - это не 0,4 вольта, а от +3 до +12. А во-вторых, когда по линиям TxD и RxD ничего не передается, на них установлен уровень логического единицы. Вот тебе картинка в общем случае:
_________ ____________________________________________
|__| |__| | |
хол. ход. старт биты данных бит стоп-биты хол. ход
бит паритета
А от -3..-12 В вполне можно запитаться.
← →
Инс © (2007-08-02 10:41) [32]
> Transiever и REciever
Transmit и Recieve
← →
tesseract © (2007-08-02 10:51) [33]
> Ну во-первых, логический 0 - это не 0,4 вольта, а от +3
> до +12.
Ну это я с ТТЛ перепутал :-) т.е. Мышь ещё имеет выпрямитель от +3 до +12 В. ? Разбирал я Com-мыши, там 7 проводов подходит к плате, а не 3.
> на них установлен уровень логического единицы.
Гм. Ставили мультиметр когда девайс проверяли, единицы как-то не ощущалось.
← →
Инс © (2007-08-02 10:57) [34]
> Мышь ещё имеет выпрямитель от +3 до +12 В. ?
Какой выпрямитель? Там ведь не переменное напряжение, а постоянное. Стабилизатора будет достаточно.
> Разбирал я Com-мыши, там 7 проводов подходит к плате, а
> не 3.
Ну и ладно. А почему должно быть 3? Я разве это где-либо утверждал? Интерфейс RS-232С подразумевает 9 линий, допускаю, что 2 из них, типа какого нибудь RI не используются. А RxD используется не по назначению, т.к. данные на мышь передавать никакие не надо.
> Гм. Ставили мультиметр когда девайс проверяли, единицы
> как-то не ощущалось.
Не знаю я что вы там и куда ставили, но повторю еще раз: уровень лог. единицы для RS-232 от -3 до -12 В.
← →
tesseract © (2007-08-02 11:10) [35]
> Не знаю я что вы там и куда ставили,
Смотрели логические единицы мультиметром с памятью. Там в схеме не так что там на нарисовали вот и искали линию. В сотоянии покоя там явно был не плюс. RxD в мышах в целом не используеться согласен, можно выставить если не лень, но PnP мышь в любом случае должна использовать CTS/RTS и RxD - смотри описание протокола PnP Windows для COM-портов, в принципе можно и без него, но тогда это уже не PnP-мышка получаеться.
← →
Инс © (2007-08-02 11:16) [36]
> В сотоянии покоя там явно был не плюс.
Фуух, третья попытка. Уровень логической единицы - от минус трех до минус двенадцаци. На минусы внимание обрати! :)
← →
\/iKTOR (2007-08-02 13:00) [37]Инс правду глаголит!
СОМ порт весьма специфичное устройство и его логические уровни отличаются от всех стандартов в логике TTL и CMOS. В COM порте уровню лог 0 соответствуют все напряжения выше нуля, а лог 1 наоборот все отрицательные напряжения (ниже 0). Эти напряжения формируются конденсаторным удвоителем напряжения и достигают значений гдето в 15 вольт.
Токи нагрузки при этом не могут быть больше приблизительно 10 милиампер.
Такой нестандартный стандарт придуман изначально для передачи сигналов на большие расстояния, где с увеличением длины провода увеличивается падение напряжения.
Но 10 миллиамперами засветить светодиод вполне реально, чтобы не перегружать выход СОМ порта можно поставить последовательно диод, который будет пропускать напряжение нужной полярности, и разумеется баластный резистор.
Но правильным всеже есть установка буферного каскада на CMOS инверторе, и не будет путаницы с лог 0 и 1. Но ему потребуется доп питание которое можно снять например с 5 вольтового USB порта, но потребуется схема преобразователя с 5 на 15-16 вольт.
А вот что я слышал(точнее читал, но толком не разобрался) что сейчас вроде протокол обмена с СОМ портом не позволяет тупо устанавливать на нем уровни 0 и 1 а требует протоколов обмена наподобие работы с файлами, тоесть уже сформированные посылки сигналов опрашивающие (запрашивающие) данные по определенным алгоритмам ровно как и считывание потока данных а не единичных состояний.
← →
tesseract © (2007-08-02 15:02) [38]
> А вот что я слышал(точнее читал, но толком не разобрался)
> что сейчас вроде протокол обмена с СОМ портом не позволяет
> тупо устанавливать на нем уровни 0 и 1 а требует протоколов
> обмена наподобие работы с файлами, тоесть уже сформированные
> посылки сигналов опрашивающие (запрашивающие) данные по
> определенным алгоритмам ровно как и считывание потока данных
> а не единичных состояний.
UART имеешь в виду ? Возможно. Единицы только CTS/DTR получить и можно. И они вроде вот таких хитростей не имеют, на превый взгляд по схеме весов ничего экстаординарного не наблюдалась.
> Такой нестандартный стандарт придуман изначально для передачи
> сигналов на большие расстояния, где с увеличением длины
> провода увеличивается падение напряжения.
По стандарту 30 м на 9600 вроде, хотя добивался и 19200 стабильной работы на хорошем кабеле. Так что расстояния у Rs232 большими быть не могут, если только RS422 имееться в виду - он да мошшшный, или RS485, который помехи просто игнорирует.
← →
\/iKTOR (2007-08-02 15:18) [39]Вобщето я имел ввиду что относительно большие, чем скажем обычная перефирия типа мыши, клавы и ЮСБ устройства, LPT порт таких особенностей не имеет, только СОМ, а расстояния зависят еще и от качества самого кабеля, я полагаю 30 метров не предел, точных данных в конкретных случаях не знаю, но думаю эти расстояния измеряются сотней, другой метров, что относительно большое расстояние без специализированных устройств.
Это расстояние зависит от сопротивления самого провода, и от тока нагрузки, тоесть чем меньше входное сопротивление устройсва принимающего сигнал, тем меньше расстояние до него можно получить.
Что касательно стандартов протокола обмена, то тут я мало что знаю, о чем и оговаривался сразу возможно это как вы говорите только к UART относится.
Весь мой опыт работы с СОМ портами сводится к программированию ПИК-контролеров и то на базе готовых программ, только с перефирией возится приходилось.
← →
Инс © (2007-08-02 15:22) [40]
> Так что расстояния у Rs232 большими быть не могут
Вот это верно. Хотя именно из-за более высокого уровня напряжения и меньших скоростей RS-232 все равно по дальности USB опережает. Для передачи сигналов на большие расстояния передают током, а не напряжением.
Страницы: 1 2 3 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.057 c