4

Что делает открытие стандартного последовательного порта ПК в электрическом плане (то есть, какое напряжение на каких контактах)?

Например, древняя программа VB6, которая управляет устройством, которое мне поручено поддерживать переключатели .PortOpen для управления некоторыми TTL. В соединении использовались только 2 контакта (плохие припои развалились), к каким контактам мне припаять?

Единственные ярлыки / документация относятся к контактам 7 и 9, в скобках указано 0V и 5V, но это так .PortOpen действительно просто поставил 5V между RI и RTS?.

Как сценарий поста, это не самая странная вещь в настройке. TTL, о котором я упоминал выше, также подключается к инструменту через BNC к DB9 (!), Используя только 1 контакт. Я предполагаю, что было предположение о соприкосновении с землей, поскольку экранирование BNC не подключено к выводу GND? Подключение к контакту ножной педали инструмента, это был способ удаленного запуска устройства.

Обновить

Согласно этой странице, выводы DTR и RTS могут быть высокими, когда порт открыт. Если они были настроены таким образом, они будут постепенно снижаться при закрытии порта.

Если DTR и RTS не включены, открытие порта должно установить оба значения на низкое (и держать их на низком уровне).

3 ответа3

8

Открытие порта ничего не делает в электрическом плане. Он просто сообщает ОС, что с этого момента порт назначен приложению. ОС будет запрещать другим приложениям доступ к порту, пока у вас он открыт, и разрешит вашему приложению доступ к нему.

6

Открытие последовательного порта приведет все пины к определенному состоянию (я не помню, какие линии рукопожатия по умолчанию имеют маркировку или интервалы, но это стандартно). Пока последовательный порт не открыт, состояние линий может быть неопределенным. Если Microsoft не изменила что-либо, закрытие последовательного порта оставило бы линии в любом состоянии, в котором они находились до закрытия, поэтому, если последняя использованная программа оставила их в странном состоянии, они оставались бы в этом состоянии до следующего открытия. Кроме того, я не знаю, является ли это по-прежнему проблемой в Windows, но в DOS были некоторые ПК, которые при включении питания переводили свои последовательные порты в тупое состояние. По крайней мере, одна марка ПК установит свой последовательный порт для непрерывной передачи данных, пока не будет указано иное; это было незабываемо, потому что это могло бы нанести ущерб определенному встроенному контроллеру, если он был подключен до запуска программного обеспечения вендора.

1

Я не согласен с ответом @Stevenvh. Для окон в частности. Вызовы API "открытие порта" и "закрытие порта", скажем, в .NET или MSCOMM OCX, заставят линии DTR и RTS изменять или не изменять свое состояние электрически.

При открытии порта DTR будет установлен в электрическое состояние, соответствующее булевому свойству DTREnable, если перед открытием порта было установлено значение "true". По умолчанию он останется "ложным", если пользователь никогда не установит DTREnable, то на линии "DTR открытого порта" будет оставаться "ложным", как и до открытия порта.

Та же логика и значения по умолчанию для имен строк "RTS" и свойства "RTSEnable". Вы выбираете "RTSEnable" перед открытием порта, в зависимости от стороны связи на другом конце кабеля и количества задействованных проводов (рукопожатие аппаратного обеспечения против программного рукопожатия против рукопожатия).

  • Обнаружение носителя информации - это ввод, никакого эффекта
  • Получать данные - это ввод, никакого эффекта
  • Передача данных - вывод, останется "ПРОБЕЛ" вместо "МАРК"
  • Терминал данных готов - изменится на "ИСТИНА", если свойство было установлено до "Порт открыт"
  • Сигнальная земля - без изменений
  • Набор данных готов - это ввод, никакого эффекта
  • Запрос на отправку - изменится на "ИСТИНА", если свойство RTSEnable было установлено до "Открытие порта"
  • Очистить для отправки - это ввод, без эффекта
  • Индикатор звонка - ввод, без эффекта

В обратном порядке, когда порт закрыт. Пины DTR и RTS перейдут в состояние "ЛОЖЬ" или останутся в состоянии "ЛОЖЬ", если они не были установлены через свойства во время открытия.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .