![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с COM портом [D7, WinXP]
ShyricK © (2007-07-28 00:27:00)Доброго времени суток всем!! Народ, пожалуйста подскажите можно ли программным путём управлять COM(LPT) портом: в частности подавать на клемы напряжение, т е объясняю есть в проге 4 кнопки и есть4 светодиода подкл к порту нужно чтобы нажимаешь на1 кнопку загорается1 светик и тд. возможно ли это сделать?
tesseract (2007-08-02 15:49:00) [61]
> При проектировке упор не делался на скорость передачи, а
> на расстояние по обычным проводам и помехозащищенность.
Да знаю :-) Сколько колупался с этой помехозащищённостью в магазинах с немеренными холодильниками :-).
> Это заблуждение, как вы думаете почему линии электропередач
> делаются высоковольтными, а не 200 вольт или ниже?
А не затухнет 200В на 1000 километрах? При увеличение напряжение затухание вроде уменьшаеться.
Что помню из института :
Коээфициент передачи мощности вообще вещь своебразная. И для уменьшения потерь частоту увеличивают,например в самолётах она 400 Гц, а в длинных линиях используют трёхфазный ток.
\/iKTOR (2007-08-02 15:41:00) [62]tesseract ©
При проектировке упор не делался на скорость передачи, а на расстояние по обычным проводам и помехозащищенность.
Что касательно оптронов да еще в купе с оптоволокном, так это уже дополнительное устройство, и от напряжения или тока его скорость передачи не зависит, только от внутренней схемы.
Скорость же на прием и передачу данных по СОМ поротам зависит только от реализации и соответствия стандартам, получить же больший ток или напряжение сечас проблем не составляет.
\/iKTOR (2007-08-02 15:34:00) [63]2 Инс
Позволю себе не согласиться.
>Для передачи сигналов на большие расстояния передают током, а не напряжением.
Это заблуждение, как вы думаете почему линии электропередач делаются высоковольтными, а не 200 вольт или ниже?
Для передачи по проводам с малым сечением, что бы передать большую мощность нужно увеличивать напряжение, тогда ток будет уменьшатся по закону ома. Тоесть чтобы избежать потерь напряжения из за малого сечения проводов(тоесть относительно болшего их сопротивления) целесообразно увеличивать напряжение а не увеличивать сечение этих проводов. Закон Ома I=U/R.
Но впрочем это не основная причина, главное в другом, на все провода наводятся помехи от других электрический устройств, и чем выше уровень полезного сигнала относительно уровня этих помех, тем выше помехоустойчивоть линии.
tesseract (2007-08-02 15:25:00) [64]
> Для передачи сигналов на большие расстояния передают током,
> а не напряжением.
Токовая петля, это да. Но на оптронах + усилитель можно разгонять Rs232 до 10 Мбит и выше :-)
tesseract (2007-08-02 15:24:00) [65]
> Весь мой опыт работы с СОМ портами сводится к программированию
> ПИК-контролеров и то на базе готовых программ, только с
> перефирией возится приходилось.
Я старшную тайну скажу, в современные микроконтроллеры встроен USART - там с внешним миром общаещься прямо через спецрегистры.
Инс (2007-08-02 15:22:00) [66]
> Так что расстояния у Rs232 большими быть не могут
Вот это верно. Хотя именно из-за более высокого уровня напряжения и меньших скоростей RS-232 все равно по дальности USB опережает. Для передачи сигналов на большие расстояния передают током, а не напряжением.
\/iKTOR (2007-08-02 15:18:00) [67]Вобщето я имел ввиду что относительно большие, чем скажем обычная перефирия типа мыши, клавы и ЮСБ устройства, LPT порт таких особенностей не имеет, только СОМ, а расстояния зависят еще и от качества самого кабеля, я полагаю 30 метров не предел, точных данных в конкретных случаях не знаю, но думаю эти расстояния измеряются сотней, другой метров, что относительно большое расстояние без специализированных устройств.
Это расстояние зависит от сопротивления самого провода, и от тока нагрузки, тоесть чем меньше входное сопротивление устройсва принимающего сигнал, тем меньше расстояние до него можно получить.
Что касательно стандартов протокола обмена, то тут я мало что знаю, о чем и оговаривался сразу возможно это как вы говорите только к UART относится.
Весь мой опыт работы с СОМ портами сводится к программированию ПИК-контролеров и то на базе готовых программ, только с перефирией возится приходилось.
tesseract (2007-08-02 15:02:00) [68]
> А вот что я слышал(точнее читал, но толком не разобрался)
> что сейчас вроде протокол обмена с СОМ портом не позволяет
> тупо устанавливать на нем уровни 0 и 1 а требует протоколов
> обмена наподобие работы с файлами, тоесть уже сформированные
> посылки сигналов опрашивающие (запрашивающие) данные по
> определенным алгоритмам ровно как и считывание потока данных
> а не единичных состояний.
UART имеешь в виду ? Возможно. Единицы только CTS/DTR получить и можно. И они вроде вот таких хитростей не имеют, на превый взгляд по схеме весов ничего экстаординарного не наблюдалась.
> Такой нестандартный стандарт придуман изначально для передачи
> сигналов на большие расстояния, где с увеличением длины
> провода увеличивается падение напряжения.
По стандарту 30 м на 9600 вроде, хотя добивался и 19200 стабильной работы на хорошем кабеле. Так что расстояния у Rs232 большими быть не могут, если только RS422 имееться в виду - он да мошшшный, или RS485, который помехи просто игнорирует.
\/iKTOR (2007-08-02 13:00:00) [69]Инс правду глаголит!
СОМ порт весьма специфичное устройство и его логические уровни отличаются от всех стандартов в логике TTL и CMOS. В COM порте уровню лог 0 соответствуют все напряжения вышенуля, а лог 1 наоборот все отрицательные напряжения ( ниже0). Эти напряжения формируются конденсаторным удвоителем напряжения и достигают значений гдето в 15 вольт.
Токи нагрузки при этом не могут быть больше приблизительно 10 милиампер.
Такой нестандартный стандарт придуман изначально для передачи сигналов на большие расстояния, где с увеличением длины провода увеличивается падение напряжения.
Но 10 миллиамперами засветить светодиод вполне реально, чтобы не перегружать выход СОМ порта можно поставить последовательно диод, который будет пропускать напряжение нужной полярности, и разумеется баластный резистор.
Но правильным всеже есть установка буферного каскада на CMOS инверторе, и не будет путаницы с лог 0 и 1. Но ему потребуется доп питание которое можно снять например с 5 вольтового USB порта, но потребуется схема преобразователя с 5 на 15-16 вольт.
А вот что я слышал(точнее читал, но толком не разобрался) что сейчас вроде протокол обмена с СОМ портом не позволяет тупо устанавливать на нем уровни 0 и 1 а требует протоколов обмена наподобие работы с файлами, тоесть уже сформированные посылки сигналов опрашивающие (запрашивающие) данные по определенным алгоритмам ровно как и считывание потока данных а не единичных состояний.
Инс (2007-08-02 11:16:00) [70]
> В сотоянии покоя там явно был не плюс.
Фуух, третья попытка. Уровень логической единицы- от минус трех до минус двенадцаци. На минусы внимание обрати! :)
tesseract (2007-08-02 11:10:00) [71]
> Не знаю я что вы там и куда ставили,
Смотрели логические единицы мультиметром с памятью. Там в схеме не так что там на нарисовали вот и искали линию. В сотоянии покоя там явно был не плюс. RxD в мышах в целом не используеться согласен, можно выставить если не лень, но PnP мышь в любом случае должна использовать CTS/RTS и RxD - смотри описание протокола PnP Windows для COM-портов, в принципе можно и без него, но тогда это уже не PnP-мышка получаеться.
Инс (2007-08-02 10:57:00) [72]
> Мышь ещё имеет выпрямитель от +3 до +12 В. ?
Какой выпрямитель? Там ведь не переменное напряжение, а постоянное. Стабилизатора будет достаточно.
> Разбирал я Com-мыши, там 7 проводов подходит к плате, а
> не 3.
Ну и ладно. А почему должно быть 3? Я разве это где-либо утверждал? Интерфейс RS-232С подразумевает 9 линий, допускаю, что 2 из них, типа какого нибудь RI не используются. А RxD используется не по назначению, т.к. данные на мышь передавать никакие не надо.
> Гм. Ставили мультиметр когда девайс проверяли, единицы
> как-то не ощущалось.
Не знаю я что вы там и куда ставили, но повторю еще раз: уровень лог. единицы для RS-232 от -3 до -12 В.
tesseract (2007-08-02 10:51:00) [73]
> Ну во-первых, логический 0 - это не 0,4 вольта, а от +3
> до +12.
Ну это я с ТТЛ перепутал :-) т.е. Мышь ещё имеет выпрямитель от +3 до +12 В. ? Разбирал я Com-мыши, там 7 проводов подходит к плате, а не 3.
> на них установлен уровень логического единицы.
Гм. Ставили мультиметр когда девайс проверяли, единицы как-то не ощущалось.
Инс (2007-08-02 10:41:00) [74]
> Transiever и REciever
Transmit и Recieve
Инс (2007-08-02 10:36:00) [75]
> Мыши проще от тругих питаться контактов, гасить сигнальную
> линию-то зачем, как мышь от логического ноля запитать можно,
> мне инетресно, или ей 0,4 вольта хватает ?.
Ууу, как все запущено... Ну во-первых, логический 0 - это не 0,4 вольта, а от +3 до +12. А во-вторых, когда по линиям TxD и RxD ничего не передается, на них установлен уровень логического единицы. Вот тебе картинка в общем случае:
_________ ____________________________________________
|__| |__| | |
хол. ход. старт биты данных бит стоп-биты хол. ход
бит паритета
А от -3..-12 В вполне можно запитаться.
tesseract (2007-08-02 10:00:00) [76]
> К чему этот вывод подключен на удаленном для мыши устройстве
> (к TxD или еще к чему-либо) она не знает и знать не обязана.
> Для нее это именно RxD.
Мыши проще от тругих питаться контактов, гасить сигнальную линию-то зачем, как мышь от логического ноля запитать можно, мне инетресно, или ей 0,4 вольта хватает ?.
ЗЫ: Transiever и REciever довольно легко трактуються :-)
tesseract (2007-08-02 09:58:00) [77]
> Обязаны все иметь, даже выпуска 1981 года,
Ты это скажи фирме Maxim-Dallas, у которой такие микрухи имеют приставку CPE - и стоят раза в три дороже, чем без CPE. Сам их перепаял вагончик и три телеги.
Инс (2007-08-01 20:33:00) [78]Вообще, по-хорошему, конечно же лучше не подключать диодики и прочую лабуду напрямую, а ставить какой-либо буферный элемент, выполняющий роль преобразователя импеданса: усилитель, повторитель, преобразователь уровня - что-нибудь в этом роде. Чтобы входное сопротивление было большим, а выходное - маленьким. Не нужно чтобы ток протекал линиям порта, даже если там защита от КЗ или большая нагрузочная способность.
Инс (2007-08-01 20:23:00) [79]
> Не путаешь, это входной контакт
Не путаю, само собой входной. К чему этот вывод подключен на удаленном для мыши устройстве (к TxD или еще к чему-либо) она не знает и знать не обязана. Для нее это именно RxD.
Anatoly Podgoretsky (2007-08-01 19:55:00) [80]
> Современный довольно сложно пожечь - все нормальные микросхемы
> включают защиту от статики/КЗ .
Обязаны все иметь, даже выпуска 1981 года, иначе они не имеют право так называться, поскольку это вытекает из стандарта на RS-232