Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

Работа с 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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.03 c
2-1186662201
alex_tonk
2007-08-09 16:23
2007.09.02
Сохранить как DBF файл


15-1186317988
user_
2007-08-05 16:46
2007.09.02
WSH


4-1173891446
VirEx
2007-03-14 19:57
2007.09.02
передача данных/строк из Dll приложению


4-1173115326
Dmitry_177
2007-03-05 20:22
2007.09.02
Курсор над кнопкой


15-1186168733
Prohodil Mimo
2007-08-03 23:18
2007.09.02
Где можно найти что понимает FireFox в CSS?