Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Полубайтный режим ввода — Nibble Mode

Поиск

Режим полубайтного обмена является наиболее общим решением задачи двунаправленного обмена данными, поскольку может работать на всех стандартных (традиционных) портах. Все эти порты имеют 5 линий ввода состояния, используя которые периферийное устройство может посылать в PC байт тетрадами (nibble — полубайт, 4 бита) за два приема. Назначение сигналов порта приведено в табл 4.

Таблица 4.

Сигналы LPT-порта в полубайтном режиме ввода

Контакт Сигнал SPP I/O Использование сигнала при приеме данных в Nibble Mode
  AUTOFEED#   HostBusy — сигнал квитирования. Низкий уровень означает готовность к приему тетрады, высокий подтверждает прием тетрады
  SELECTIN”   Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий)
  АСК# ' PtrClk. Низкий уровень означает действительность тетрады, переход в высокий — ответ на сигнал HostBusy
  BUSY I Прием бита данных 3, затем бита 7
  РЕ I Прием бита данных 2, затем бита 6
  SELECT I Прием бита данных 1, затем бита 5
  ERRORS I Прием бита данных 0, затем бита 4
         

Прием байта данных в полубайтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.

2. ПУ в ответ помещает тетраду на входные линии состояния.

3. ПУ сигнализирует о действительности тетрады установкой низкого уровня на линии PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой тетрады.

5. ПУ отвечает установкой высокого уровня на линии PtrCLk.

6. Шаги 1-5 повторяются для второй тетрады.

Полубайтный режим работает на всех портах со скоростью обмена не выше 50 Кбайт/с. Его применяют в тех случаях, когда прием данных от устройства производится в небольших объемах (например, для связи с принтерами).

Двунаправленный байтный режим Byte Mode

Данный режим обеспечивает прием данных с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR.5=1. Как и в стандартном и в полубайтном режиме, данный режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются программным драйвером. Назначение сигналов порта приведено в табл. 5.

Таблица 5.

Сигналы LPT-порта в байтном режиме ввода/вывода

Контакт Сигнал SPP Имя в Byte Mode I/O Описание
  STROBES HostClk   Импульс (низкого уровня) подтверждает прием байта в конце каждого цикла
  AUTOFEED# HostBusy   Сигнал квитирования. Низкий уровень означает готовность хоста принять байт, высокий уровень устанавливается по приему байта
  SELECT-IN” 1284Active   Высокий уровень указывает на обмен в режиме IEEE 1284. (В режиме SPP уровень низкий)
  INIT# INIT#   Не используется, установлен высокий уровень
  АСКй Ptrtik   Устанавливается в низкий уровень для индикации действительности данных на линиях DATA[7:0]. В низкий уровень устанавливается в ответ на сигнал HostBusy
  BUSY PtrBusy I Состояние занятости прямого канала
  РЕ AckDataReq* I Устанавливается ПУ для указания на наличие обратного канала передачи*
  SELECT Xflag* I Флаг расширяемости*
  ERRORS DataAvau#* I Устанавливается ПУ для указания на наличие обратного канала передачи*
2-9 DATA[7:0] DATA[7:0] I/0 Двунаправленный (прямой и обратный) канал данных

Прием байта данных в байтном режиме состоит из следующих фаз:

1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.

2. ПУ в ответ помещает байт данных на линии DATA[7:0].

3. ПУ сигнализирует о действительности байта установкой низкого уровня на линии PtrClk.

4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой байта.

5. ПУ отвечает установкой высокого уровня на линии PtrClk.

6. Хост подтверждает прием байта импульсом HostClk.

7. Шаги 1-6 повторяются для каждого следующего байта.

Побайтный режим позволяет поднять скорость обратного канала до скорости прямого канала в стандартном режиме. Однако работать он может только на двунаправленных портах, которые применяются в основном лишь на малораспространенных машинах PS/2.

Режим ЕРР

Протокол ЕРР (Enhanced Parallel Port — улучшенный параллельный порт) предназначен для повышения производительности обмена по параллельному порту. ЕРР был реализован в чипсете Intel 386SL (микросхема 82360) и используется как дополнительный протокол параллельного порта.

Протокол ЕРР обеспечивает четыре типа циклов обмена:

Цикл записи данных.

Цикл чтения данных.

Цикл записи адреса.

Цикл чтения адреса.

Адресные циклы могут быть использованы для передачи адресной, канальной и управляющей информации. Циклы обмена данными явно отличаются от адресных циклов применяемыми стробирующими сигналами. Назначение сигналов порта ЕРР и их связь с сигналами SPP приведены в табл. 6.

Таблица 6.

Сигналы LPT-порта в режиме ввода/вывода ЕРР

Контакт Сигнал SPP Имя в ЕРР I/O Описание
  STROBE” WRITE”   Низкий уровень — признак цикла записи, высокий — чтения
  AUTOFEEDff DATASTB#   Строб данных. Низкий уровень устанавливается в циклах передачи данных
  SELECTING ADDRSTB#   Строб адреса. Низкий уровень устанавливается в адресных циклах
  INIT# RESETS   Сброс ПУ (низким уровнем)
Контакт Сигнал SPP Имя в ЕРР I/O Описание
  АСК# INTR# I Прерывание от ПУ
  BUSY WAIT” I Сигнал квитирования. Низкий уровень разрешает начало цикла (установку строба в низкий уровень), переход в высокий — разрешает завершение цикла (снятие строба)
2-9 D[8:0] AD[8:0] I/O Двунаправленная шина адреса/данных
  РЕ AckDataReq* I Используется по усмотрению разработчика периферии
  SELECT Xflag* I Используется по усмотрению разработчика периферии
  ERROR DataAvaiW* I Используется по усмотрению разработчика периферии

ЕРР-порт имеет расширенный набор регистров (табл. 7), который занимает в пространстве ввода/вывода 5-8 смежных байт.

Таблица 7.

Регистры ЕРР-порта

Имя регистра Смещение Режим R/W Описание
SPP Data Port +0 SPP/EPP W Регистр данных стандартного порта
SPP Status Port +1 SPP/EPP R Регистр состояния стандартного порта
SPP Control Port +2 SPP/EPP W Регистр управления стандартного порта
EPP Address Port +3 EPP R/W Регистр адреса ЕРР. Чтение или запись в него генерирует связанный цикл чтения или записи адреса ЕРР
EPP Data Port +4 EPP R/W Регистр данных ЕРР. Чтение (запись) генерирует связанный цикл чтения (записи) данных ЕРР
Not Defined +5...+7 EPP N/A В некоторых контроллерах могут использоваться для 16-32-битных операций ввода/вывода

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

Цикл записи данных состоит из следующих фаз:

1. Программа выполняет цикл записи (IOWR#) в порт 4 (ЕРР Data Port).

2. Адаптер устанавливает сигнал Writeff (низкий уровень), и данные помещаются на выходную шину LPT-порта.

3. При низком уровне WAIT# устанавливается строб данных.

4. Порт ждет подтверждения от ПУ (перевода WAIT# в высокий уровень).

5. Снимается строб данных — внешний ЕРР-цикл завершается.

6. Завершается процессорный цикл ввода/вывода.

7. ПУ устанавливает низкий уровень WAIT#, указывая на возможность начала следующего цикла.

Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла ввода/вывода. Это позволяет достигать высоких скоростей обмена (0,5-2 Мбайт/с). Периферийное устройство, подключенное к параллельному порту ЕРР, может работать на уровне производительности устройства, подключаемого через слот ISA. Периферийное устройство может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала WAIT#. Протокол автоматически подстраивается и под длину кабеля — вносимые задержки только приведут к удлинению цикла.

“ЗАВИСАНИЕ” процессора на шинном цикле обмена препятствует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс.

С программной точки зрения контроллер ЕРР-порта выглядит достаточно просто (см. табл.7). К трем регистрам стандартного порта, имеющим смещение 0, 1 и 2 относительно базового адреса порта, добавлены два регистра (ЕРР Address Port и ЕРР Data Port), чтение и запись в которые вызывает генерацию связанных внешних циклов.

Назначение регистров стандартного порта сохранено, что обеспечивает совместимость ЕРР-порта с периферийными устройствами и программным обеспечением, рассчитанными на применение программно-управляемого обмена. Поскольку сигналы квитирования адаптером вырабатываются аппаратно, при записи в регистр управления CR биты 0, 1 и 3, соответствующие сигналам STROBES, AUTOFEEDS и SELECTING, должны иметь нулевые значения. В противном случае программное вмешательство может нарушить последовательность квитирования. Некоторые адаптеры имеют специальные средства защиты (ЕРР Protect), при включении которых программная модификация этих бит блокируется.

Использование регистра данных ЕРР позволяет осуществлять передачу блока данных с помощью одной инструкции REP INSB или REP OUTSB вместо традиционных циклов с интенсивными операциями ввода/вывода. Некоторые адаптеры допускают и 16/32-битное обращение к регистру данных ЕРР. Тогда 16- или 32-битное обращение по адресу регистра данных ЕРР приведет к автоматической генерации двух или четырех шинных циклов по нарастающим адресам, начиная со смещения 4. Эти циклы будут выполняться быстрее, чем то же количество одиночных циклов. Таким образом при обмене данными и обеспечивается производительность, достигающая 2 Мбайт/с, вполне достаточная и для адаптеров локальных сетей, внешних дисков, стриммеров и CD-ROM. Адресные циклы БРР всегда выполняются только в однобайтном режиме обращения.

Важной чертой ЕРР является то, что обращение процессора к периферийному устройству осуществляется в реальном времени. Программный драйвер всегда способен наблюдать состояние и подавать команды в точно известные моменты времени. Циклы чтения и записи могут чередоваться в произвольном порядке или идти блоками. Такой тип обмена наиболее пригоден для регистро-ориентированной периферии или периферии, работающей в реальном времени — сетевых адаптеров, устройств сбора информации и управления, дисковых устройств и т. п.

Режим ЕСР

Протокол ЕСР (Extended Capability Port — порт с расширенными возможностями) был предложен фирмами Hewlett Packard и Microsoft как прогрессивный режим связи с периферией типа принтеров и сканеров. Как и ЕРР, данный протокол обеспечивает высокопроизводительный двунаправленный обмен данными хоста с периферийными устройствами.

Протокол ЕСР в обоих направлениях обеспечивает два типа циклов:

••• Циклы записи и чтения данных. Командные циклы записи и чтения.

Командные циклы подразделяются на два типа: передача канальных адресов и счетчика RLC (Run-Length Count).

В отличие от ЕРР вместе с протоколом ЕСР сразу появился и стандарт на программную (регистровую) модель реализации его адаптера, изложенный в документе “The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard” компании Microsoft. Этот документ определяет специфические свойства реализации протокола, не заданные стандартом IEEE 1284: компрессия данных хост-адаптером по методу RLE;

••• буферизация FIFO для прямого и обратного каналов: применение DMA и программного ввода/вывода.

Компрессия в реальном времени по методу RLE (Run-Length Encoding) позволяет достичь коэффициента сжатия до 64:1 при передаче растровых изображений.

Канальная адресация ЕСР применяется для адресации множества логических устройств, входящих в одно физическое. Например, в комбинированном устройстве факс/принтер/модем, подключаемом только к одному параллельному порту, возможен одновременный прием факса и печать на принтере.

Как и в других режимах 1284, протокол ЕСР переопределяет сигналы SPP (табл. 8).

Таблица 8.

Сигналы LPT-порта в режиме ввода/вывода ЕСР

Контакт Сигнал SPP Имя в ЕСР I/O Описание
  STROBE” HortClk   Используется в паре с PeriphAck для передачи в прямом направлении (вывод)
  AUTOFEED# HostAck   Индицирует тип команда/данные при передаче в прямом направлении. Используется в паре с PeriphClk для передачи в обратном направлении
  SELECTING 1284Active О Высокий уровень указывает на обмен в режиме IEEE 1284. (В режиме SPP уровень низкий)
  INIT# ReverseRequest# О Низкий уровень переключает канал на передачу в обратном направлении
  ACK# PeriphClk I Используется в паре с HostAck для передачи в обратном направлении
  BUSY PeriphAck 1 Используется в паре с HostClk для передачи в обратном направлении. Индицирует тип команда/ данные при передаче в обратном направлении
  PE AckReverse# I Переводится в низкий уровень как подтверждение сигналу ReverseRequestff
  SELECT Xflag* I Флаг расширяемости Extensibility flag
  ERROR” PeriphRequest#* I Устанавливается ПУ для указания на доступность (наличие) обратного канала передачи*
2-9 Data[0:7] Data[0:7] I/O Двунаправленный канал данных

* Сигналы действуют в последовательности согласования (см. ниже).

Адаптер ЕСР тоже генерирует внешние протокольные сигналы квитирования аппаратно.

Прямая передача данных на внешнем интерфейсе состоит из следующих шагов:

1. Хост помещает данные на шину канала и устанавливает признак цикла данных (высокий уровень) или команды (низкий уровень) на линии HostAck.

2. Хост устанавливает низкий уровень на линии HostClk, указывая на действительность данных.

3. ПУ отвечает установкой высокого уровня на линии PeriphAck.

4. Хост устанавливает высокий уровень линии HostClk, и этот перепад может использоваться для фиксации данных в ПУ.

5. ПУ устанавливает низкий уровень на линии PeriphAck для указания на готовность к приему следующего байта.

Поскольку передачи в ЕСР разделены FIFO-буферами, которые могут присутствовать на обеих сторонах интерфейса, важно понимать, на каком этапе данные можно будет считать переданными. Данные считается переданными на шаге 4, когда линия HostClk переходит в высокий уровень. В этот момент модифицируются счетчики переданных и принятых байт.

Обратная передача данных состоит из следующих шагов:

1. Хост запрашивает изменение направления канала, устанавливая низкий уровень на линии ReverseRequestff. 2 ПУ разрешает смену направления установкой низкого уровня на линии Ack-Reverse#.

3. ПУ помещает данные на шину канала и устанавливает признак цикла данных (высокий уровень) или команды (низкий уровень) на линии PeriphAck.

4. ПУ устанавливает низкий уровень на линии PeriphClk, указывая на действительность данных.

5. Хост отвечает установкой высокого уровня на линии HostAck.

6. ПУ устанавливает высокий уровень линии PeriphClk, и этот перепад может использоваться для фиксации данных хостом.

7. Хост устанавливает низкий уровень на линии HostAck для указания на готовность к приему следующего байта.

Согласование режимов IEEE 1284

Периферийные устройства в стандарте IEEE 1284 обычно не требуют от контроллера реализации всех режимов, предусмотренных стандартом. Для определения режимов и методов управления конкретным устройством стандарт предусматривает последовательность согласования (negotiation sequence) для установки требуемого режима интерфейса.

Во время фазы согласования контроллер выставляет на линии данных байт расширяемости (Extensibility byte), запрашивая подтверждение на перевод интерфейса в требуемый режим или прием идентификатора периферийного устройства (табл. 11). Идентификатор передается контроллеру в запрошенном режиме (любой режим обратного канала, кроме ЕРР). ПУ использует сигнал Xflag (Select в терминах SPP) для подтверждения запрошенного режима обратного канала, кроме полубайтного. Полубайтный режим поддерживается всеми устройствами IEEE 1284. Бит Extensibility Link request заложен для механизма определения дополнительных режимов в будущих расширениях стандарта.

Таблица. 11.



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 364; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.86.132 (0.013 с.)