Перейти к содержимому

Как проверить сом порт

  • автор:

2.5.4. Неисправности и тестирование сом-портов

Неполадки с СОМ-портами случаются (выявляются) при установке новых портов или неудачном подключении внеш­них устройств.

Проверка конфигурирования

Тестирование последовательных портов (как и параллельных) начинают с проверки их опознавания системой. Список ад­ресов установленных портов обычно появляется в таблице, выводимой BIOS перед загрузкой ОС. Список можно по­смотреть с помощью тестовых программ или прямо в BIOS Data AREA с помощью отладчика.

Если BIOS обнаруживает меньше портов, чем установлено физически, вероятно, двум портам присвоен один адрес или установлен нестандартный адрес какого-либо порта. Пробле­мы могут возникать с адресами портов COM3 и COM4: не все версии BIOS будут искать порты по альтернативным адресам 3EOh, 338h, 2EOh и 238h; иногда не производится поиск по адресам 3E8h и 2E8h. Нумерация найденных пор­тов, отображаемая в заставке, может вводить в заблуждение:

если установлены два порта с адресами 3F8h и 3E8h, в за­ставке они могут называться СОМ1 и COM2, и по этим име­нам на них можно ссылаться. Однако те же порты в застав­ке могут называться и СОМ1 и COM3 (поскольку 3E8h является штатным адресом для COM3), но попытка сослать­ся на порт COM3 будет неудачной, поскольку в данном слу­чае адрес 3E8h будет находиться в ячейке 0:402h B/OS Data Area, соответствующей порту COM2, а в ячейке порта COM3 (0:404h) будет нуль — признак отсутствия такового порта.

«Объяснить» системе, где какой порт, можно вручную лю­бым отладчиком, занеся правильные значения базовых ад­ресов в ячейки B/OS Data Area(это придется делать каждый раз после перезагрузки ОС перед использованием «потерян­ного» порта). Существуют тестовые утилиты, позволяющие находить порты (например, Port Finder).

Если двум портам назначен один и тот же адрес, тестовая программа обнаружит ошибки порта только с использова­нием внешней заглушки (External LoopBack).Программное тестирование порта без заглушки не покажет ошибок, поскольку при этом включается диагностический режим (см. описание UART)и конфликтующие (по отдельности ис­правные) порты будут работать параллельно, обеспечивая со­впадение считываемой информации. В реальной жизни нор­мальная работа конфликтующих портов невозможна. Разбираться с конфликтом адресов удобно, последователь­но устанавливая порты и наблюдая за адресами, появляю­щимися в списке.

Если физически установлен только один порт и его не обна­руживает BIOS,причины те же, что с LPT-портом: либо он отключен при конфигурировании, либо вышел из строя. Неисправность может устраниться при вынимании/вставке платы адаптера в слот системной шины.

При работе с СОМ-портом задействуются соответствующие аппаратные прерывания —их используют при подключении модема, мыши и других устройств ввода. Неработоспособ­ность этих устройств может быть вызвана некорректной на­стройкой запроса прерывания. Здесь возможны как конф­ликты с другими устройствами, так и несоответствие номера прерывания адресу порта.

В первом приближении СОМ-порт можно проверить диаг­ностической программой (Checkit)без использования за­глушек. Этот режим тестирования проверяет микросхему UART (внутренний диагностический режим) и вырабатыва­ние прерываний, но не входные и выходные буферные мик­росхемы, которые являются более частыми источниками не­приятностей. Если тест не проходит, причину следует искать

или в конфликте адресов/прерываний, или в самой микро­схеме UART.

Для более достоверного тестирования рекомендуется исполь­зовать внешнюю заглушку,подключаемую к разъему СОМ-порта (рис. 2.17). В отличие от LPT-порта у СОМ-порта количество входных сигналов превышает количество выход­ных, что позволяет выполнить полную проверку всех цепей. Заглушка соединяет выход приемника со входом передат­чика. Обязательная для всех схем заглушек перемычка RTS-CTSпозволяет работать передатчику — без нее символы не смогут передаваться. Выходной сигнал DTRобычно исполь­зуют для проверки входных линий DSR, DCDи RI.

Если тест с внешней заглушкой не проходит, причину сле­дует искать во внешних буферах, их питании или в шлей­фах подключения внешних разъемов. Здесь может помочь осциллограф или вольтметр. Последовательность проверки может быть следующей:

1. Проверить наличие двуполярного питания выходных схем передатчиков (этот шаг логически первый, но поскольку он технически самый сложный, его можно отложить на крайний случай, когда появится желание заменить бу­ферные микросхемы).

2. Проверить напряжение на выходах TD, RTSи DTR: после аппаратного сброса на выходе TD должен быть отри­цательный потенциал около -12 В (по крайней мере ниже -5 В), а на выходах RTS и DTR —такой же положи­тельный. Если этих потенциалов нет, возможна ошибка

подключения разъема к плате через шлейф. Распростра­ненные варианты:

в шлейф не подключен;

« шлейф подключен неправильно (разъем перевернут или вставлен со смещением);

^ раскладка шлейфа не соответствует разъему платы.

Первые два варианта проверяются при внимательном осмотре, третий же может потребовать некоторых усилий. В табл. 2.1 приведены три варианта раскладки 10-проводного шлейфа разъема СОМ-порта, известных автору; для СОМ-портов на системных платах возможно существование и других. Теоретически шлейф должен поставляться в соот­ветствии с разъемом платы, на которой расположен порт.

Если дело в ошибочной раскладке, то эти три выходных сигнала удастся обнаружить на других контактах разъе­мов (на входных контактах потенциал совсем небольшой). Если эти сигналы обнаружить не удалось, очевидно, вы­шли из строя буферные формирователи.

3. Соединив контакты линий RTSи CTS(или установив за­глушку), следует попытаться вывести небольшой файл на СОМ-порт (например, командой COPYC:\AUTOEXEC. ВАТ СОМ1:). Сисправным портом эта команда успешно вы­полнится за несколько секунд с сообщением об успеш­ном копировании. При этом потенциалы на выходах RTS и DTRдолжны измениться на отрицательные, а на выхо­де TDдолжна появиться пачка двуполярных импульсов с амплитудой более 5 В. Если потенциалы RTS и DTR не изменились, ошибка в буферных формирователях. Если на выходе RTS (и входе CTS) появился отрицательный потенциал, а команда COPYзавершается с ошибкой, ско­рее всего, вышел из строя приемник линии CTS (или опять-таки ошибка в шлейфе). Если команда COPYус­пешно проходит, а изменения на выходе TD не обнару­живаются (их можно увидеть стрелочным вольтметром, но оценить амплитуду импульсов не удастся), виноват буферный передатчик сигналаTD.

Замена микросхем приемников и передатчиков существен­но облегчается, если они установлены в «кроватки». Перед заменой следует с помощью осциллографа или вольтметра удостовериться в неисправности конкретной микросхемы. Расположение выводов микросхем приведено на рис. 2.6.

Если буферные элементы включены в состав интерфейсной БИС (что теперь весьма распространено), то такой порт ре­монту не подлежит (по крайней мере в обычных условиях). Неисправный СОМ-порт, установленный на системной плате, можно попытаться отключить в BIOS SETUP,но порт мог сгореть и вместе со схемой своего отключения — тогда он останется «живым мертвецом» в карте портов ввода/вывода и прерываний. Иногда он полностью выводит из строя сис­темную плату.

Источниками ошибок могут являться разъемыикабели. В разъемах встречаются плохие контакты, а кабели кроме воз­можных обрывов могут иметь плохие частотные характери­стики. Частотные свойства кабелей обычно сказываются при большой длине (десятки метров) на высоких скоростях об­мена (56 или 115 Кбит/с). При необходимости использова­ния длинных кабелей на высоких скоростях сигнальные про­вода данных должны быть перевиты с отдельными проводами «схемной земли».

Питание от интерфейса, или Почему может не работать мышь

При подключении к СОМ-порту устройств с небольшим энер­гопотреблением возникает соблазн использования питания от выходных линий интерфейса. Если линии управления DTRиRTSне используются по прямому назначению, их можно за­действовать как питающие с напряжением около 12 В. Ток короткого замыкания на «схемную землю» ограничен буфер­ной микросхемой передатчика на уровне 20 мА. При иници­ализации порта эти линии переходят в состояние «выключе­но», то есть вырабатываютположительноенапряжение. ЛинияTDв покое находится в состоянии логической единицы, так что на выходе вырабатываетсяотрицательноенапряжение. Потенциалами линий можно управлять через регистры СОМ-порта (выход TD вырабатывает положительное напряжение, если установить бит BRCON).

Двуполярным питанием от линий интерфейса (+Vот DTRиRTS,-V от TD)пользуются все манипуляторы, подключае­мые к СОМ-портам. Зная это, в случае неработоспособнос­ти мыши с данным портом следует проверить напряжения на соответствующих контактах разъема. Бывает, что с конк­ретным портом не работает только конкретная мышь (мо­дель или экземпляр), хотя другие мыши с этим портом и эти же мыши с другими портами работают нормально. Здесь дело может быть в уровнях напряжений. Стандарт требует от порта выходного напряжения не менее 5 В (абсолютного значения), и, если данный порт обеспечивает только этот минимум, некоторым мышам не хватит мощности для пита­ния светодиодов (главных потребителей энергии).

Порт получает двуполярное питание через системную плату от блока питания компьютера. Отсутствие на выходе блока питания напряжения +12 В обычно обнаружится по нера­ботоспособности дисков. Отсутствие напряжения -12 В «за­метят» только устройства, подключенные к СОМ-портам. Блок питания теоретически контролирует наличие этих на­пряжений на своем выходе (сообщая о неполадках сигна­лом Power Good,вызывающим аппаратный сброс). Встреча­ются упрощенные схемы блоков питания, у которых контролируются не все напряжения. Кроме того, возможны плохие контакты в разъеме подключения питания к систем­ной плате.

Как проверить com-порт?

Встречаем — вот он, старый разъем — com порт, он же стандарт RS-232 (англ. Recommended Standard 232).

Был введен в 1962. Стандарт развивался и в 1969 представлена третья редакция (RS-232C). Четвертая редакция была в 1987 (RS-232D, известная также под EIA-232D).
Визуального похож на разъем VGA, только со штырьками.

Как проверить com-порт?

В настоящее время все еще сохраняет актуальность. Зачем все еще кто-то покупает компьютеры на 478 сокете? А на материнских платах PGA 478 есть как минимум 2 com порта. Он нужен для управления работой самого разнообразного оборудования. И эмулятор на PCI тут не спасает.
А вариант на сокет 478 — достаточно дешевый и оборудованию хватает результативности старых процессов. Наличие нескольких com портов является сильным конкурентным преимуществом для старых компьютеров.

RS-232 — стандарт физического уровня для асинхронного интерфейса. Широко известен как последовательный порт персональных компьютеров. Исторически имел широкое распространение в телекоммуникационном оборудовании.

Изначально создавался для подключения телефонных модемов к компьютерам. В связи с такой специализацией имеет рудименты в виде, например, отдельной линии RING («звонок»). Постепенно телефонные модемы перешли на другие интерфейсы (USB), но разъем RS-232 имелся на всех персональных компьютерах и многие изготовители оборудования использовали его для подключения своего оборудования. Например, компьютерные мышки.

В настоящее время чаще всего используется в промышленном и узкоспециальном оборудовании, встраиваемых устройствах. RS-232 — проводной дуплексный интерфейс. Информация передаётся по проводам двоичным сигналом с двумя уровнями напряжения. Логическому «0» соответствует положительное напряжение (от +5 до +15 В для передатчика), а логической «1» — отрицательное (от −5 до −15 В для передатчика).

Первоначально в RS-232 использовались DB-25 (25 штырьков), но, поскольку многие приложения использовали лишь часть предусмотренных стандартом контактов, стало возможно применять для этих целей 9-штырьковые разъёмы DE-9, которые рекомендованы стандартом RS-574.

Номера основного контакта, передающего и принимающего данные, для разъемов DE-9 и DB-25 разные: для DE-9 контакт 2 — вход приёмника, контакт 3 — выход передатчика. Для DB-25, наоборот, контакт 2 — выход передатчика, контакт 3 — вход приёмника.

Как проверить COM — порт (DB9) компьютера.

1. проверка с помощью com – оской мышки. Такая проверка является не полной (проверяется лишь 4 сигнальные линии из 8). Подсоединяете мышь, если она работает, то частично можно скачать что com – порт рабочий.

2. проверка с помощью com – оской заглушки и программы CheckIt.

Для начала нужна тестовая заглушка. Её можно купить в магазине или сделать самому. Если будите делать сами, то Вам потребуется com – оский провод со всеми сигнальными линиями:

com порт db9

Запаяйте сигнальные линии, как показано на рисунке:

расположение проводов по номерам

заглушка

Т.е. находите провода под номерами 2 и 3 и запаиваете их вместе. Затем находите провода под номерами 7 и 8 и запаиваете их . Наконец находите 4 провода под номерами 1, 4, 6 и 9 и запаиваете их вместе.

Суть этой заглушки в том, что передающие сигналы соединены с соответствующими принимающими. Затем с помощью программы CheckIt подаются входные сигналы, а потом проверяются выходные. Если выходные сигналы отсутствуют, то это говорит о неисправности com – порта.

Проверку нужно проводить в dos режиме. Для этого нужно создать загрузочную дискетку с программой CheckIt:

1. Вставляете пустую дискету в дисковод.

2. Заходите в "Мой компьютер" (Windows XP), щелкаете правой кнопкой "мыши" на ярлыке Диск 3,5 (А) выбираете "форматировать". Ставите галочку на "Создание загрузочного диска MS-DOS".

создание загрузочного диска

3. Затем копируете в эту дискету программу CheckIt:

копирование программы checkit на дискету

4. Подключите тестовую заглушку к com – порту, который хотите проверить:

подключение заглушки к компьютеру

5. Ставите в BIOSe загрузку с floppy дисковода. Вставляете в дисковод дискету с CheckIt.

6. Пойдет процесс загрузки. После вводите: a:\checkit.exe.

7. Появиться окошко:

программа checkit

8. ажимаете 2 раза enter. Выбираете вкладочку Tests -> Serial Ports и номер com – порта, куда подсоединена заглушка.

выбор com - порта

9. Подтверждаете, что у Вас подключена тестовая заглушка. После этого начнется процесс проверки.

выпрос о подсоединненой заглушке

10. Если в конце появятся ошибки, то значит com – порт неисправен:

ошибки com порта

11. Если все тесты завершены успешно, то com – порт исправен:

Проверка наличия COM порта

Как проверить подключён COM-порт или нет? Например, пользователь выбрал COM 3, но во время работы этот порт был отключён. Как грамотно выполнить проверку присутствует ли COM-порт и возможно ли его открыть?

На данный момент делаю вот так(пример):

Но уверен, что данною операцию можно реализовать грамотней.

Denis Bubnov's user avatar

UporotayaPanda's user avatar

Насколько я понимаю, порт может быть отключён в любой момент. Поэтому я бы делал так: работал с портом как обычно, а при приходе IOException говорил бы пользователю о проблемах при коммуникации с портом.

Проверять можно через

(как делаете это вы).

Но отлова исключений всё равно не избежать, т. к. порт может появиться или исчезнуть сразу после проверки.

Саша Черных's user avatar

VladD's user avatar

Ваш код можно немного изменить используя метод Any(. ) . Можно создать вот такой метод, который принимает имя порта, проверяет, содержится ли это имя в списке имен последовательных портов текущего компьютера, а затем уже попытаемся открыть порт:

А затем просто вызывать этот метод, передавая туда имя интересующего вас порта.

Метод SerialPort.GetPortNames() — возвращает массив имен последовательных портов для текущего компьютера.

Denis Bubnov's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.3.43277

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://alkogolizm.vyvod-iz-zapoya-v-stacionare-samara11.ru/