Универсальный параллельный порт


Главная / ЭКВМ / Техническая информация / Функции

10. Универсальный параллельный порт

 

10.1. Описание

Универсальный параллельный порт предназначен для организации двунаправленного обмена данными с внешними устройствами.

Уровни сигналов порта совместимы с уровнями ТТЛ микросхем. Параллельный порт может работать в нескольких режимах, которые устанавливаются пользователем.

ЭВМ могут иметь различные типы универсального параллельного порта, отличающиеся используемыми сигналами порта и доступными режимами работы.

Тип А - используются сигналы STROBE, D0 - D7, BUSY, AUTOFEED, SELECT IN, GND. Сигналы STROBE, AUTOFEED, SELECT IN используются для вывода данных; BUSY - для ввода, D0-D7 - двунаправленные.

Тип Б - используются сигналы DI0 - DI7, DO0 - DO7, DS0 - DS7 (включая DS3 - BUSY, DS0 - STROBE, DS1 - AUTOFEED и DS2 - SELECT IN), GND. Сигналы DS0-DS2, DS4-DS7 и DO0-DO7 используются для вывода данных; DS3 и DI0-DI7 - для ввода.

Тип В - используются сигналы BUSY, AUTOFEED, SELECT IN, GND. Сигналы AUTOFEED и SELECT IN используются для вывода данных; BUSY - для ввода.

Сигналы STROBE, AUTOFEED, SELECT IN и BUSY в определённых режимах работы порта используются для управления обменом.

 

10.2. Регистры универсального параллельного порта

 

10.2.1. Регистр режима (R9090)

Регистр памяти с адресом 9090 устанавливает режим работы универсального параллельного порта. Регистр доступен по записи и чтению. Содержимое регистра для порта типа А может принимать значения от 0 до 3, для типа Б и В - 0 или 1.

При записи числа 0 порт выключен, при записи числа 1 устанавливается статический режим работы, при записи числа 2 - режим совместимости (Centronics), при записи числа 3 - режим двунаправленного обмена.

 

10.2.2. Регистры сигналов параллельного порта (R9091, R9092)

Регистры с адресами 9091 и 9092 управляют работой параллельного порта. Выполняемые при чтении и записи содержимого регистров действия зависят от установленного режима работы.

В порте типа В для управления используется только регистр с адресом 9092. При чтении содержимого регистра с адресом 9091 считывается число 0.

 

10.2.3. Регистр типа операции (R9093)

Регистр памяти с адресом 9093 определяет выполняемую при обращении к порту операцию. Регистр доступен по записи и чтению и может принимать значения 0 или 1.

Для режима статической работы запись числа 0 настраивает порт на чтение данных из внешнего устройства, запись числа 1 - на передачу данных во внешнее устройство.

Для режима двунаправленного обмена запись числа 0 настраивает порт на чтение адреса из внешнего устройства и запись адреса во внешнее устройство, запись числа 1 настраивает порт на чтение данных из внешнего устройства и запись данных во внешнее устройство.

Для режима совместимости регистр типа операции не используется.

Для порта типа В регистр не используется, при чтении содержимого регистра считывается число 0.

 

10.2.4. Регистр состояния выполненной команды (R9094)

Регистр состояния выполненной команды универсального параллельного порта доступен только по чтению и может принимать значения 0, 1 или 2 в зависимости от результата выполнения операции обмена данными. Число 0 устанавливается, если операция была выполнена успешно, число 1 - если операция была принудительно закончена по окончанию временной задержки, число 2 - если порт был не готов к выполнению операции. В статическом режиме всегда устанавливается состояние 0.

Чтение состояния выполненной команды выполняется при обращении к регистру памяти с адресом 9094.

Для порта типа Б и В регистр не используется, при чтении содержимого регистра считывается число 0.

 

10.2.5. Время ожидания ответа (R9095)

Регистр памяти с адресом 9095 определяет время ожидания ответа внешнего устройства в режиме двунаправленного обмена. Содержимое регистра может принимать значения от 0 до 255. Каждая единица соответствует времени 1,25 мс.

В других режимах данный параметр не используется.

Для порта типа Б и В регистр не используется, при чтении содержимого регистра считывается число 0.

 

10.3. Работа универсального параллельного порта

 

10.3.1. Инициализация порта

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

Сначала программируется регистр режима (см. п. 10.2.1), при этом порт переходит в исходное состояние - сигналы D0 - D7 находятся в "третьем" (высокоомном) состоянии, сигналы STROBE, AUTOFEED, SELECT IN в состоянии логической "1".

Если для выбранного режима необходимо выбрать тип операции, то нужное значение обязательно записывается в соответствующий регистр (см. п. 10.2.3), даже если он уже находится в нужном состоянии.

Если во время работы необходимо изменить тип операции, не изменяя режима работы порта - программируется только регистр типа операции.

При изменении режима работы инициализацию порта необходимо провести полностью.

 

10.3.2. Работа в статическом режиме

При работе в статическом режиме пользователь имеет прямой доступ ко всем линиям универсального параллельного порта.

Состояние линий D0 - D7 или DI0 - DI7 считывается при выполнении команды чтения из регистра памяти с адресом 9091. При этом стек поднимается, состояние линий преобразуется в число и заносится в регистр X стека.

При выполнении команды записи в регистр с адресом 9091, число из регистра X стека преобразуется в байт и заносится в буферный регистр параллельного порта. Если в регистре типа операции содержится число 1, то состояние выводов буферного регистра передается на линии D0 - D7 или DO0 - DO7.

Состояние сигналов STROBE, AUTOFEED, SELECT IN, BUSY можно определить при выполнении команды чтения из регистра памяти с адресом 9092. В считанном числе состояние бита 0 соответствует состоянию сигнала STROBE, состояние бита 1 - состоянию сигнала AUTOFEED, состояние бита 2 - состоянию сигнала SELECT IN, состояние бита 3, - состоянию сигнала BUSY, при этом состояние бита 3 соответствует состоянию линии BUSY порта, остальные биты считывают состояние соответствующих триггеров в буферном регистре порта.

При выполнении команды записи в регистр с адресом 9092, число из регистра X стека преобразуется в байт и заносится в буферный регистр. Выходные сигналы битов 0, 1 и 2 подаются на линии STROBE, AUTOFEED, SELECT IN порта, которые являются выходными линиями. Сигналы битов с 4 по 7 подаются на линии DS4-DS7. Линия BUSY (DS3) порта является входной и сигнал на ней не вырабатывается.

 

10.3.3. Работа в режиме совместимости

Режим совместимости (режим Centronics) используется в порте типа А для организации однонаправленной передачи данных из ЭВМ в принтер. Диаграммы обмена в режиме совместимости соответствуют интерфейсу ИРПР-М и режиму SPP параллельного порта персонального компьютера IBM PC/AT. Цикл передачи данных выполняется следующим образом.

В исходном состоянии сигнал STROBE находится в высоком состоянии.

При выполнении команды записи в регистр памяти с адресом 9091 число из регистра X стека преобразуется в байт, заносится в буферный регистр параллельного порта и передается на линии D0 - D7.

Если принтер готов - сигнал BUSY имеет низкий уровень, а сигналы AUTOFEED и SELECT IN - высокий, ЭВМ вырабатывает по линии STROBE импульс (длительностью около 100 мкс, активный уровень - низкий), после чего устанавливает в регистре состояния (см. п. 10.2.4) число 0.

Если принтер не готов, то импульс по линии STROBE не вырабатывается, в регистр состояния заносится число 2.

Состояние сигналов STROBE, AUTOFEED, SELECT IN, BUSY можно считать перед циклом передачи данных, выполнив команду чтения из регистра памяти с адресом 9092. Состояние битов в полученном числе аналогично статическому режиму. Возможно также управление сигналами AUTOFEED и SELECT IN путем записи соответствующих чисел в регистр памяти с адресом 9092.

 

10.3.4. Работа в режиме двунаправленного обмена

В режиме двунаправленного обмена в порте типа А реализовано четыре типа циклов обмена между ЭВМ и внешним устройством - цикл передачи данных из ЭВМ во внешнее устройство, цикл чтения данных из внешнего устройства в ЭВМ, цикл записи адреса из ЭВМ во внешнее устройство, цикл чтения адреса из внешнего устройства в ЭВМ. Диаграммы обмена соответствуют аналогичным циклам режима EPP параллельного порта персонального компьютера IBM PC/AT.

Передача данных и адреса из ЭВМ во внешнее устройство производится при выполнении команды записи в регистр памяти с адресом 9091.

Если в регистре типа операции записано число 1, то выполняется цикл передачи данных.

ЭВМ проверяет сигнал BUSY и, если он имеет высокий уровень (устройство готово), выставляет линию STROBE в низкий уровень. Одновременно с этим на линии D0 - D7 выдается число из регистра X стека, преобразованное в байт.

Выдача данных стробируется низким уровнем сигнала AUTOFEED и запускается временная задержка. В течении запрограммированного времени ЭВМ ожидает подтверждение приема данных от внешнего устройства - низкий уровень по линии BUSY.

При успешно законченном цикле линии порта переводится в исходное состояние, в регистр состояния выполненной команды (см. п. 10.2.4) заносится число 0. Если подтверждение приема не приходит в течении времени ожидания, цикл принудительно заканчивается, линии порта переводится в исходное состояние, в регистр состояния выполненной команды заносится число 1.

Если внешнее устройство не готово - цикл не начинается, в регистр состояния выполненной команды заносится число 2.

Цикл передачи адреса выполняется в том случае, если в регистре типа операции записано число 0. Цикл передачи адреса аналогичен циклу передачи данных, только выдача данных стробируется низким уровнем сигнала SELECT IN, а число на линиях D0 - D7 принимается внешним устройством как адрес.

Чтение данных и адреса из внешнего устройства в ЭВМ производится при выполнении команды чтения из регистра памяти с адресом 9091.

ЭВМ проверяет сигнал BUSY и, если устройство готово, оставляет сигнал STROBE в исходном состоянии, выставляет в низкий уровень линию AUTOFEED, если запрашиваются данные или линию SELECT IN, если запрашивается адрес, и переходит в режим ожидания готовности. Устройство выставляет на линиях D0 - D7 число, соответствующее запрашиваемому параметру, и переводит сигнал BUSY в высокое состояние. ЭВМ считывает число и переводит порт в исходное состояние. Стек поднимается, считанное число заносится в регистр X стека, в регистр состояния выполненной команды (см. п. 10.2.4) заносится число 0.

Если внешнее устройство не выставляет готовность данных в течении времени ожидания, цикл принудительно заканчивается, линии порта переводится в исходное состояние, в регистр состояния выполненной команды заносится число 1. Если внешнее устройство не готово - цикл не начинается, в регистр состояния выполненной команды заносится число 2. В обоих случаях стек поднимается, в регистр X стека заносится число 0.

Состояние сигналов STROBE, AUTOFEED, SELECT IN, BUSY можно считать, выполнив команду чтения из регистра памяти с адресом 9092. Состояние битов в полученном числе аналогично статическому режиму. Управление сигналами STROBE, AUTOFEED, SELECT IN в режиме двунаправленного обмена вне циклов не предусмотрено.



НПП "СЕМИКО" (383) 271-01-25 (многоканальный)