Для дополнительных портов должны использоваться и отдельные прерывания, но, как видно из таблицы 1.3, СОМ-портам назначены всего два запроса – IRQ3 и IRQ4. Поэтому, все подключаемые
СОМ-порты должны быть разбиты на две группы так, чтобы с портами, использующими одно и то же IRQ, работали внешние устройства, которые не будут работатьодновременно, а одновременно работающие ПУ – использовали порты с разными прерываниями.
Режим работы порта по умолчанию: 2400 бит/сек, 7 бит данных, 1 стоп-бит. Режим работы и использование контроля четности, заданные при инициализации порта во время работы BIOS, может изменяться в любой момент времени (оперативное переключение) самой прикладной программой, или командой DOSMODECOMx: с указанием соответствующих параметров.
Неисправности и тестирование СОМ-портов.
Тестирование последовательных портов начинают с проверки их опознавания системой. Список адресов обнаруженных портов указывается в таблице, выводимой BIOS на экран перед загрузкой DОS. Если BIOS обнаруживает меньше портов, чем установлено физически, то, вероятно, каким-либо двум портам присвоен один и тот же адрес. Эту ошибку может обнаружить тест-программа только с использованием внешней заглушки (ExternalLoopBack), т. к. без заглушки, конфликтующие, но исправные порты, будут работать параллельно, обеспечивая совпадение считанной информации. Если физически установлен один порт и его не обнаруживает BIOS, то причины могут быть в том, что порт был отключен при конфигурировании, или вышел из строя (чаще всего, из-за нарушения правил подключения).
При работе СОМ-порта с мышью или модемом, последние могут не работать из-за некорректной настройки аппаратного прерывания.
В первом приближении, СОМ-порт можно протестировать диагностической программой, например, CheckIt или NDiagsбез использования заглушек. Этот режим проверяет функционирование контроллера UART (внутренний диагностический режим) и выработку прерываний, но не затрагивает входные и выходные формирователи. Если тест без заглушки не проходит, то причину следует искать или в конфликте адресов, прерываний, или в самом контроллере UART.
Для более достоверного тестирования, следует использовать тестирование с внешней заглушкой.
СОМ-порт использует большее количество входных сигналов чем количество выходных, так что возможно выполнить полную проверку всех цепей и сигналов.
Заглушка соединяет входы приемников с выходами некоторых передатчиков, замыкая информационную петлю, или петлю управления-квитирования. Обязательная для всех заглушек перемычка RTS – CTS позволяет работать передатчику, без нее информация не может передаваться. Выходной сигнал DTR используется программой CheckIt для проверки входных линий DSR, DCD и RI.
Если тест без заглушки проходит, а с заглушкой – нет, то дефект следует искать во внешних формирователях, или их питании +/– 12 В, с помощью осциллографа или вольтметра. Рекомендуется следующая последовательность проверки:
1. проверить наличие двуполярного питания выходных схем передатчиков;
2. проверить напряжение на выходах TхD, RTS и DTR. После аппаратного сброса, на выходе TхD должен быть отрицательный потенциал порядка –12 вольт, а на выходах RTS и DTR – такой же положительный;
3. соединив контакты линий RTS и CTS (или установив заглушку), попытаться вывести на СОМ-порт небольшой файл (например, командой COPYC:\autoexec.batCOM1). С исправным портом эта команда успешно выполнится за несколько секунд, с сообщением об успешном копировании. Во время этого вывода потенциалы на выходах RTS и DTR должны измениться на отрицательные, а на выходе TхD должна появиться пачка двуполярных импульсов с амплитудой более 5 вольт. Если потенциалы RTS и DTR не изменились, то ошибка заключена все-таки в буферных формирователях. Если на выходе RTS (и входе CTS) появился отрицательный потенциал, а команда COPY выполнилась с ошибкой, то, вероятно, вышел из строя приемник на линии CTS. Если команда COPY проходит успешно, а изменения потенциала на выходе TхD не обнаруживаются, то виноват буферный передатчик сигнала TхD.
Возможности ремонта СОМ-порта однозначно определяются его исполнением: интегрированы, или нет буферные формирователи прямо в состав интерфейсной БИС.
Неисправный СОМ-порт, установленный на системной плате, можно отключить опциями BIOSSetUp.
Сам формат асинхронной посылки уже позволяет выявить некоторые из возможных ошибок передачи:
1) если принят положительный перепад (передний фронт старт-бита), сигнализирующий о начале посылки, а по стробу старт-бита зафиксирован уровень логической единицы (нижний уровень), то старт-бит считается фантомным и приемник снова переходит в состояние ожидания;
2) если во время, отведенное под стоп-бит (стоп-биты), обнаружен уровень логической единицы, то фиксируется ошибка стоп-бита;
3) если передача оговорена с передачей бита паритета, а байт принят с нарушением паритета по четности, или нечетности, (что оговаривается перед началом передачи), то фиксируется ошибка передачи данных;
4) если произойдет обрыв линии данных, что принимается портом за логический нуль, то приемник примет его за стартовый бит, затем будут приняты 8 нулевых бит, но логический нуль на месте стоп-бита будет свидетельствовать об ошибке формата передачи.
Контрольные вопросы.
1. Что подлежит конфигурированию в параметрах СОМ-порта?
2. Как можно использовать СОМ3 и СОМ4 при их работе с шиной ISA?
3. Что требуется для полной проверки и диагностики СОМ-портов?
4. Сигналами каких уровней обменивается стандартный СОМ-порт с терминальными устройствами?
5.Как можно отключить неисправный СОМ-порт, еси он интегрирован на системную плату РС?
3.1.3.2) Контроль и диагностика LPT-портов
Конфигурирование LPT-портов зависит от их исполнения и размещения. Порт, расположенный на плате расширения, устанавливаемой в слот ISA или ISA+VLB, конфигурируется установкой соответствующих перемычек на самой плате, а порт, размещенный на системной плате, обычно конфигурируется программно, через утилиту BIOSSetUp.
Управление параллельным портом разделяется на два этапа – предварительное конфигурирование через Setup аппаратных средств порта и текущее (оперативное) переключение режимов прикладным или системным программным обеспечением.
Конфигурированию подлежат следующие параметры порта:
Базовый адрес. По умолчанию LPT1 конфигурируется на адрес 378h,LPT2 – на адрес 287h, но эти их адреса, при необходимости, впоследствии могут быть программно переключены так, чтобы каждый порт имел собственный уникальный адрес.
Линия запроса прерывания. Для LPT1 обычно используется IRQ7, а для LPT2 – IRQ5. Если же, как в большинстве “настольных” применений РС, прерывания от принтера не используются вообще, то эти прерывания могут быть назначены другим периферийным устройствам.
Каналы DMAиспользуются для режимов ECP и FastCentronics, что и устанавливается по необходимости. Канал DMA, для использования LPT-портом, может быть назначен любой из свободных. Если же свободного канала нет, то можно назначить тот канал, который уже назначен другому ПУ, но которое не будет работать одновременно с портом.
Тестирование параллельных портов следует начинать с проверки их наличия в АПС. Их список указывается в таблице, выводимой BIOS на экран перед загрузкой DOS, или его можно просмотреть с помощью тест-программы или отладчика.
Тестирование параллельных портов.
Наличие в компьютере параллельных и последовательных портов можно проверить с помощью отладчика Debugger. Для этого в командной строке отладчика DEBUG набирается
D 40:0 <ENTER>
При этом не дисплей выведется информация из системной области BIOS, например,
040: F8 03 00 00 00 00 00 00 BC 03 00 00 00 00 00 00
которая интерпретируется следующим образом:
03F8, – адрес зарегистрированного порта СОМ1;
три группы, из четырех нулей каждая, свидетельствуют о том, что порты СОМ2, СОМ-3, СОМ-4 в системе не зарегистрированы (отсутствуют);
03ВС – адрес зарегистрированного порта LPT1;
следующие группы, по четыре нуля в каждой, означают, что порты LPT2, LPT-3, LPT-4 в системе не зарегистрированы (отсутствуют).
Если выведенный список портов меньше реально установленных, то, вероятно, некоторые из портов имеют одинаковые базовые адреса (при этом работоспособность таких портов не гарантируется), либо какие-то порты отключены при конфигурировании, или неисправны.
Тестирование портов рекомендуется производить с помощью диагностических программ. Это позволяет протестировать их внутренние регистры, а при наличии специальных заглушек, устанавливаемых при тестировании на выходные разъемы, – и приемники-передатчики входных и выходных линий портов. В заглушке установлены перемычки между контактами, соответствующими тестируемым входным и выходным линиям порта, и образуют, таким образом, петли обратной связи для передаваемых и принимаемых портом сигналов интерфейса. Поскольку количество выходных линий LPT-порта (12) и входных (5) различно, то полнаяпроверка порта с помощью пассивной заглушки принципиально невозможна.
Кроме того, разные тест-программы написаны, чаще всего, для определенных комбинаций соединений в заглушке и требуют для проверки порта специально на них ориентированных заглушек. Например, для программы CheckIt требуется заглушка, в которой соединены следующие контакты: