Разъемы X1 и X2 — DB25-P (вилки).
Высокоскоростная связь двух компьютеров может выполняться и в режиме ЕСР (режим ЕРР неудобен, поскольку требует синхронизации шинных циклов ввода- вывода двух компьютеров).
В табл. 1.12 приведена распайка кабеля, в аналогичной таблице предыдущих книг автора (см. [2] и [5]) была ошибка (перепутаны контакты 13 и 15). Из всех сигналов в кабеле не используется лишь PeriphRequest# (контакт 15). В цепи линий данных рекомендуется вставить последовательные резисторы (0,5–1 кОм), препятствующие протеканию слишком больших токов, когда порты данных обоих компьютеров находятся в режиме вывода. Эта ситуация возникает, когда коммуникационное ПО компьютеров еще не запущено. Связь в режиме ЕСР поддерживается Windows 9х, в комплект поставки этих ОС входит драйвер PARALINK.VxD, но из-за внутренней ошибки он неработоспособен. «Заплатку» на этот драйвер, а также тестовую утилиту и необходимые описания можно найти в сети (www.lpt.com, www.lvr.com/parport.htm).
Таблица 1.12. Кабель связи PC-PC в режиме ЕСР и байтном режиме
| Разъем X1 | Разъем X2 | ||
|---|---|---|---|
| Контакт | Имя в ЕСР | Имя в ЕСР | Контакт |
| 1 | HostClk | PeriphClk | 10 |
| 14 | HostAck | PeriphAck | 11 |
| 17 | 1284Active | Xflag | 13 |
| 16 | ReverseRequest# | AskReverse# | 12 |
| 10 | PeriphClk | HostClk | 1 |
| 11 | PeriphAck | HostAck | 14 |
| 12 | AckReverse# | ReverseRequest# | 16 |
| 13 | Xflag | 1284Active | 17 |
| 2, 3…9 | Data [0:7] | Data [0:7] | 2, 3…9 |
Подключение
Подключение
В табл. 1.13 описано назначение выводов разъема LPT-порта в различных режимах и их соответствие битам регистров стандартного порта.
Таблица 1.13. Назначение выводов разъема LPT-порта и бит регистров в режимах SPP, ЕСР и ЕРР
| Контакт | I/O | Бит¹ | SPP | ECP | EPP |
|---|---|---|---|---|---|
| 1 | O/I | CR.0\ | Strobe# | HostClk | Write# |
| 2 | O/I | DR.0 | Data 0 | Data 0 | Data 0 |
| 3 | O/I | DR.1 | Data 1 | Data 1 | Data 1 |
| 4 | O/I | DR.2 | Data 2 | Data 2 | Data 2 |
| 5 | O/I | DR.3 | Data 3 | Data 3 | Data 3 |
| 6 | O/I | DR.4 | Data 4 | Data 4 | Data 4 |
| 7 | O/I | DR.5 | Data 5 | Data 5 | Data 5 |
| 8 | O/I | DR.6 | Data 6 | Data 6 | Data 6 |
| 9 | O/I | DR.7 | Data 7 | Data 7 | Data 7 |
| 10 | I | SR.6 | Ack# | PeriphClk | INTR# |
| 11 | I | SR.7\ | Busy | PeriphAck | Wait# |
| 12 | I | SR.5 | PaperEnd | AckReverse# | —² |
| 13 | I | SR.4 | Select | Xflag | —² |
| 14 | O/I | CR.1\ | Auto LF# | HostAck | DataStb# |
| 15 | I | SR.3 | Error# | PeriphRequest# | —² |
| 16 | O/I | CR.2 | Init# | ReverseRequest# | Reset# |
| 17 | O/I | CR.3\ | Select In# | 1284Active | AddrStb# |
¹ Символом «\» отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).
² Определяется пользователем.
1.7. Конфигурирование LPT-портов
Управление параллельным портом разделяется на два этапа —
Конфигурирование LPT-порта зависит от его исполнения. Порт, расположенный на плате расширения (мультикарте), устанавливаемой в слот ISA или ISA+VLB, конфигурируется джамперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.
Ниже перечислены параметры, подлежащие конфигурированию.
♦ LPT1, LPT2, LPT3. Адрес 3BCh имеет адаптер порта, расположенный на плате MDA или HGC. Большинство портов по умолчанию конфигурируется на адрес 378h и может переключаться на 278h.
♦ Используемая LPT — IRQ7, для LPT2 — IRQ5. Традиционно прерывания от принтера не задействуются, и этот дефицитный ресурс можно сэкономить. Однако при использовании скоростных режимов ЕСР (или Fast Centronics) работа через прерывания может заметно повысить производительность и снизить загрузку процессора.
♦ Использование
♦ Режимы работы порта:
•
• CR.5=1);
•
•
•
•
Выбор режима EPP, ЕСР или Fast Centronics сам по себе не приводит к повышению быстродействия обмена с подключенными ПУ, а только дает возможность драйверу и ПУ установить оптимальный режим в пределах их «разумения». Большинство современных драйверов и приложений пытаются использовать эффективные режимы, поэтому «подрезать им крылья» установкой простых режимов без веских на то оснований не стоит.
1.8. Неисправности и тестирование параллельных портов
Тестирование параллельных портов разумно начинать с BIOS Data Area с помощью отладчика.
Если BIOS обнаруживает меньше портов, чем установлено физически, скорее всего, двум портам присвоен один и тот же адрес. При этом работоспособность ни одного из конфликтующих портов не гарантируется: они будут одновременно выводить сигналы, но при чтении регистра состояния конфликт на шине, скорее всего, приведет к искажению данных. Программное тестирование порта без диагностической заглушки (Loop Back) не покажет ошибок, поскольку при этом читаются данные выходных регистров, а они у всех конфликтующих (по отдельности исправных портов) совпадут. Именно такое тестирование производит BIOS при проверке на наличие портов. Разбираться с такой ситуацией следует, последовательно устанавливая порты и наблюдая за адресами, появляющимися в списке.
Если физически установлен только один порт, a BIOS его не обнаруживает, то либо порт отключен при конфигурировании, либо он вышел из строя (скорее всего из-за нарушений правил подключения). Если вам везет, неисправность устраняется «передергиванием» платы в слоте — там иногда возникают проблемы с контактами.
Наблюдаются и такие «чудеса» — при «теплой» перезагрузке DOS после Windows 95 порт не виден (и приложения не могут печатать из MS-DOS). Однако после повторной перезагрузки DOS порт оказывается на месте. С этим явлением легче смириться, чем бороться.
Тестирование портов с помощью диагностических программ позволяет проверить выходные регистры, а при использовании специальных заглушек — и входные линии. Поскольку количество выходных линий порта (12) и входных (5) различно, то полная проверка порта с помощью пассивной заглушки принципиально невозможна. Разные программы тестирования требуют применения разных заглушек (рис. 1.8).
Рис. 1.8. Схема заглушки для тестирования LPT-порта:
Большинство неприятностей при работе с LPT-портами доставляют
♦ Если вывод файла с точки зрения DOS проходит (копирование файла на устройство с именем LPTn или PRN совершается быстро и успешно), а принтер (исправный) не напечатал ни одного символа — скорее всего, это обрыв (не контакт в разъеме) цепи Strobe#.
♦ Если принтер находится в состоянии Busy.
♦ Если принтер, подключенный к порту, в стандартном режиме (SPP) печатает нормально, а при переходе в режим ЕСР начинаются сбои, следует проверить кабель — соответствует ли он требованиям IEEE 1284 (см. выше). Дешевые кабели с неперевитыми проводами нормально работают на скоростях 50-100 Кбайт/с, но при скорости 1–2 Мбайт/с, обеспечиваемой ЕСР, имеют полное право не работать, особенно при длине более 2 м.
♦ Если при установке драйвера PnP-принтера появилось сообщение о необходимости применения «двунаправленного кабеля», проверьте наличие связи контакта 17 разъема DB-25 с контактом 36 разъема Centronics. Хотя эта связь изначально предусматривалась, в ряде кабелей она отсутствует.
♦ Если принтер искажает информацию при печати, возможен обрыв (или замыкание) линий данных. В этом случае удобно воспользоваться файлом, содержащим последовательность кодов всех печатных символов. Если файл печатается с повтором некоторых символов или их групп, по периодичности повтора можно легко вычислить оборванный провод данных интерфейса. Этот же файл удобно использовать для проверки аппаратной русификации принтера.
PRINT работает с портом по опросу состояния, а ее обслуживающий процесс запускается по прерыванию от таймера. Поэтому неисправности, связанные с цепью прерывания от порта, проявляются не часто. Однако по-настоящему многозадачные ОС (например, NetWare) стараются работать с портом по прерываниям. Протестировать линию прерывания можно, только подключив к порту ПУ или заглушку. Если к порту с неисправным каналом прерывания подключить адаптер локальной сети, то он, возможно, будет работать, но с очень низкой скоростью: на любой запрос ответ будет приходить с задержкой в десятки секунд — принятый из адаптера пакет будет приниматься не по прерыванию (сразу по приходу), а по внешнему тайм-ауту.
Глава 2
Последовательный интерфейс — СОМ-порт
Универсальный внешний последовательный интерфейс — IRQ4 (обычно используются для COM1 и COM3) и IRQ3 (для COM2 и COM4). С внешней стороны порты имеют линии последовательных данных передачи и приема, а также набор сигналов управления и состояния, соответствующий стандарту RS-232C. СОМ-порты имеют внешние разъемы-
Компьютер может иметь до четырех последовательных портов COM1-COM4 (для машин класса AT типично наличие двух портов) с поддержкой на уровне BIOS. Сервис BIOS Int 14h обеспечивает инициализацию порта, ввод и вывод символа (не используя прерываний) и опрос состояния. Через Int 14h скорость передачи программируется в диапазоне 110-9600 бит/с (меньше, чем реальные возможности порта). Для повышения производительности широко используется взаимодействие программ с портом на уровне регистров, для чего требуется совместимость аппаратных средств СОМ-порта с программной моделью i8250/16450/16550.
Название порта указывает на его основное назначение — подключение коммуникационного оборудования (например, модема) для связи с другими компьютерами, сетями и периферийными устройствами. К порту могут непосредственно подключаться и периферийные устройств с последовательным интерфейсом: принтеры, плоттеры, терминалы и другие. СОМ-порт широко используется для подключения мыши, а также организации непосредственной связи двух компьютеров. К СОМ-порту подключают и электронные ключи.
Практически все современные системные платы (еще начиная с PCI-плат для процессоров 486) имеют встроенные адаптеры двух СОМ-портов. Один из портов может использоваться и для беспроводной инфракрасной связи с периферийными устройствами (IrDA). Существуют карты ISA с парой СОМ-портов, где они чаще всего соседствуют с LPT-портом, а также с контроллерами дисковых интерфейсов (FDC+IDE). Если возникает потребность в большом количестве последовательных интерфейсов, то в ПК можно установить специальные адаптеры-мультиплексоры. Это весьма дорогие карты, они выпускаются обычно на 4, 8, 12 и даже 16 портов. Такое большое число разъемов на заднюю стенку ПК вывести проблематично, и у мультиплексоров обычно имеется внешний блок с разъемами (и электроникой), соединяемый с адаптером кабелем с многоконтактными разъемами. BIOS мультиплексоры не поддерживает.
«Классический» СОМ-порт позволял осуществлять обмен данными только программно-управляемым способом, при этом для пересылки каждого байта процессору приходится выполнять несколько инструкций. Современные порты имеют FIFO-буферы данных и позволяют выполнять обмен по каналу DMA, существенно разгружая центральный процессор, что особенно важно на больших скоростях обмена.
2.1. Интерфейс RS-232C
Интерфейс RS-232C предназначен для подключения аппаратуры, передающей или принимающей данные (
Рис. 2.1. Полная схема соединения по RS-232C
Рис. 2.2. Соединение по RS-232C нуль-модемным кабелем
Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только
Стандарт
Интерфейс предполагает наличие
Стандарт RS-232C регламентирует
На аппаратуре АПД (в том числе на СОМ-портах) принято устанавливать
На аппаратуре АКД (модемах) устанавливают розетки
Рис. 2.3. Прием сигналов RS-232C
Это правило предполагает, что разъемы АКД могут подключаться к разъемам АПД непосредственно или через переходные «прямые» кабели с розеткой и вилкой, у которых контакты соединены «один в один». Переходные кабели могут являться и переходниками с 9 на 25-штырьковые разъемы (рис. 2.4).
Рис. 2.4. Кабели подключения модемов
Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки) соединяются между собой
Рис. 2.5. Нуль-модемный кабель:
Если на каком-либо устройстве АПД установлена розетка — это почти 100 % того, что к другому устройству оно должно подключаться прямым кабелем, аналогичным кабелю подключения модема. Розетка устанавливается обычно на тех устройствах, у которых удаленное подключение через модем не предусмотрено.
В табл. 2.1 приведено назначение контактов разъемов СОМ-портов (и любой другой аппаратуры передачи данных АПД). Контакты разъема DB-25S определены стандартом EIA/TIA-232-E, разъем DB-9S описан стандартом EIA/TIA-574. У модемов (АКД) название цепей и контактов такое же, но роли сигналов (вход-выход) меняются на противоположные.
Таблица 2.1. Разъемы и сигналы интерфейса RS-232C
| Обозначение цепи | Контакт разъема | № провода кабеля выносного разъёма PC | Направление | ||||||
|---|---|---|---|---|---|---|---|---|---|
| СОМ-порт | RS-232 | V.24 Стык 2 | DB-25Р | DB-9Р | 11 | 22 | 33 | 44 | I/O |
| PG | AA | 101 | 1 | 5 | (10) | (10) | (10) | 1 | - |
| SG | AB | 102 | 7 | 5 | 5 | 9 | 1 | 13 | - |
| TD | BA | 103 | 2 | 3 | 3 | 5 | 3 | 3 | O |
| RD | BB | 104 | 3 | 2 | 2 | 3 | 4 | 5 | I |
| RTS | CA | 105 | 4 | 7 | 7 | 4 | 8 | 7 | O |
| CTS | CB | 106 | 5 | 8 | 8 | 6 | 7 | 9 | I |
| DSR | CC | 107 | 6 | 6 | 6 | 2 | 9 | 11 | I |
| DTR | CD | 108/2 | 20 | 4 | 4 | 7 | 2 | 14 | O |
| DCD | CF | 109 | 8 | 1 | 1 | 1 | 5 | 15 | I |
| RI | СЕ | 125 | 22 | 9 | 9 | 8 | 6 | 18 | I |
1 Ленточный кабель 8-битных мультикарт.
2 Ленточный кабель 16-битных мультикарт и портов на системных платах.
3 Вариант ленточного кабеля портов на системных платах.
4 Широкий ленточный кабель к 25-контактному разъему.
Подмножество сигналов
Таблица 2.2. Назначение сигналов интерфейса RS-232C
| Сигнал | Назначение |
|---|---|
| PG | |
| SG | |
| TD | |
| RD | |
| RTS | |
| CIS | |
| DSR | |
| DTR | |
| DCD | |
| RI |
Рис. 2.6. Последовательность управляющий сигналов интерфейса
1. Установкой DTR компьютер указывает на желание использовать модем.
2. Установкой DSR модем сигнализирует о своей готовности и установлении соединения.
3. Сигналом RTS компьютер запрашивает разрешение на передачу и заявляет о своей готовности принимать данные от модема.
4. Сигналом CTS модем уведомляет о своей готовности к приему данных от компьютера и передаче их в линию.
5. Снятием CTS модем сигнализирует о невозможности дальнейшего приема (например, буфер заполнен) — компьютер должен приостановить передачу данных.
6. Сигналом CTS модем разрешает компьютеру продолжить передачу (в буфере появилось место).
7. Снятие RTS может означать как заполнение буфера компьютера (модем должен приостановить передачу данных в компьютер), так и отсутствие данных для передачи в модем. Обычно в этом случае модем прекращает пересылку данных в компьютер.
8. Модем подтверждает снятие RTS сбросом CTS.
9. Компьютер повторно устанавливает RTS для возобновления передачи.
10. Модем подтверждает готовность к этим действиям.