Организация вычислительных систем

       

Стандартный интерфейс параллельного порта получил


Стандартный интерфейс параллельного порта получил свое первоначальное название по имени американской фирмы Centronics - производителя принтеров. Первые версии этого стандарта были ориентированы исключительно на принтеры, подразумевали передачу данных лишь в одну сторону (от компьютера к принтеру) и имели невысокую скорость передачи (150-300 Кбайт/с). Такие скорости неприемлемы для современных печатающих устройств. Кроме того, для работы с некоторыми устройствами необходима двусторонняя передача данных. Поэтому некоторые фирмы (Xircom, Intel, Hewlett Packard, Microsoft) предложили несколько модификаций скоростных параллельных интерфейсов: EPP (Enhanced Parallel Port) - до 2 Мбайт/с, ECP (Extended Capabilities Port) - до 4 Мбайт/с и др. На основе этих разработок в 1994 году Институтом инженеров по электронике и электротехнике был принят стандарт IEEE 1284-1994, ныне повсеместно используемый в персональных компьютерах в качестве стандартного параллельного интерфейса.

Таблица 15.3. Сигналы интерфейса IEEE 1284Разъем DB25НапряжениеSPPNibble ModeEPPECP
1OSTROBE#WRITE#HostClk
2O (I)DATA0AD0D0
3O (I)DATA1AD1D1
4O (I)DATA2AD2D2
5O (I)DATA3AD3D3
6O (I)DATA4AD4D4
7O (I)DATA5AD5D5
8O (I)DATA6AD6D6
9O (I)DATA7AD7D7
10IACK#PtrClkIntr#PeriphClk
11IBUSYD3/D7Wait#PeriphAck
12IPED2/D6AckDataReqAckReverse#
13ISELECTD1/D5XFlagXFlag
14OAUTOFD#HostBusyDataStb#HostAck
15IERROR#D0/D4DataAvail#PeriphReq#
16OINIT#Reset#ReverseReq#
17OSLCTIN#NibbleModeAddrStb#1284Active
18-25-GNDGNDGNDGND
Стандарт IEEE 1284 определяет работу параллельного интерфейса в трех режимах: Standard Parallel Port (SPP), Enhanced Parallel Port (EPP) и Extended Capabilities Port (ECP). Каждый из этих режимов предусматривает двустороннюю передачу данных между компьютером и периферийным устройством.

Режим SPP (Стандартный параллельный порт) используется для совместимости со старыми принтерами, не поддерживающими IEEE 1284. Режиму SPP соответствуют три программно доступных регистра:



  • порт BASE+0 - SPP Data - регистр данных,
  • порт BASE+1 - SPP Status - регистр состояния,
  • порт BASE+2 - SPP Control - регистр управления.


Для устройства LPT1 базовым адресом (BASE) в пространстве портов ввода-вывода обычно является 378h.

В этом режиме линии DATA[0:7] используются для прямой передачи данных (от компьютера к периферийному устройству). Сигналы STROBE#, ACK# и BUSY используются для квитирования. Сигналом STROBE# компьютер информирует о готовности данных на линиях DATA[0:7]. Если устройство приняло выставленные компьютером данные, то оно выставляет сигнал ACK#. Во время приема данных, во время инициализации, а также при наличии ошибки устройство выставляет сигнал BUSY. О возникновении ошибочной ситуации сигнализирует линия ERROR#, а также PE (кончилась бумага). О том, что принтер включен и готов к работе, сообщается при помощи сигнала SELECT. Для подтверждения выбора принтера компьютер выставляет сигнал SLCTIN#. При необходимости очистить буфер принтера и перевести его в исходное состояние выставляется INIT#. Сигнал AUTOFD# используется при работе с матричными принтерами в текстовом режиме для продвижения бумаги на одну строку.

Для организации обратного канала (передача данных от принтера в компьютер) в режиме SPP возможны два механизма: механизм двунаправленного порта (впервые представленный в IBM PS/2 в 1987 г.) и механизм передачи полубайтами (Nibble Mode). При использовании механизма двунаправленного порта способ квитирования не декларируется.

Особенностью обратного канала в Nibble Mode является то, что за один цикл передается только 4 бита данных. Таким образом, скорость в обратном канале в два раза меньше, чем в прямом канале. Преимуществом использования Nibble Mode является возможность программной реализации этого механизма на любом старом параллельном порту, не поддерживающем IEEE 1284. Сигналом активности этого механизма является высокий уровень на линии NibbleMode (при прямой передаче на этой линии выставляется низкий уровень). Для квитирования используются линии HostBusy (сигнал устанавливается компьютером в низкий уровень, когда он готов к приему) и PtrClk (низкий уровень сигнала подтверждает действительность данных D[0:4]/D[5:7]).



В режиме EPP ( Улучшенный параллельный порт) используется аппаратная реализация сигналов квитирования, благодаря чему возможно увеличение скорости передачи до 2 Мбайт/с. Этот режим поддерживает адресацию устройств, благодаря чему возможно подключение нескольких (до 64) устройств к одному порту. Генерация цикла чтения или записи на шине IEEE 1284 со всеми необходимыми сигналами квитирования происходит при обращении к регистру EPP Address (BASE+3) или EPP Data (BASE+4). При этом адаптер IEEE 1284 устанавливает сигнал Write# в зависимости от направления передачи (низкий уровень - прямая передача, высокий уровень - обратная передача). Для периферийного устройства информацией о том, являются ли биты на линиях AD[0:7] данными или адресом, является сигналы DataStb# (строб данных) или AddrStb# (строб адреса). Периферийное устройство информирует компьютер о своей готовности принять очередной байт при помощи сигнала Wait#. Сигнал Reset#, так же как и в режиме SPP используется для инициализации устройства. Установка периферийным устройством сигнала Intr# вызывает генерацию прерывания. Сигналы AckDataReq и DataAvail# используются по усмотрению разработчика, например, для квитирования в обратном канале.

Режим ECP (Порт расширенных возможностей) также использует аппаратное квитирование и адресацию устройств (до 128). Дополнительно ECP поддерживает распознавание ошибок, согласование скорости и режима передачи, буферизацию данных в очереди FIFO (с использованием DMA) и их компрессию по алгоритму RLE (Run Length Encoding), что позволяет достигать скорость до 4 Мбайт/с.

Признаком активности режима ECP является высокий уровень сигнала 1284Active. При прямой передаче для квитирования используются сигналы HostClk и PeriphAck, а сигнал HostAck указывает на тип передаваемых данных: высокий уровень - обычные данные, низкий уровень - команда или адрес. Для запроса обратного канала компьютер выставляет сигнал ReverseReq#, который устройство подтверждает сигналом AckReverse#. В обратном канале для квитирования применяются сигналы PeriphClk и HostAck, а сигнал PeriphAck используется устройством для указания типа передаваемых данных.


Устройство может запросить обслуживание при помощи сигнала PeriphReq#.

В режиме ECP параллельный порт может эмулировать работу любого другого режима IEEE 1284, что определяется в соответствующих битах расширенного регистра управления (ECR) по адресу BASE+400h:

Таблица 15.4. Режимы работы порта ECPНомерОбозначениеОписание
0002SPPРежим стандартного параллельного порта с программным квитированием
0012Bi-directional modeПоддержка обратного канала для режима SPP, как в IBM PS/2
0102Fast CentronicsРежим стандартного параллельного порта с аппаратным квитированием
0112ECPРежим ECP с поддержкой FIFO и RLE
1002EPPРежим EPP
1012Reserved
1102Test modeРежим самотестирования FIFO и прерываний
1112Configuration modeРежим конфигурирования

Содержание раздела