Аппаратная реализация ecp




НазваниеАппаратная реализация ecp
Дата публикации17.10.2016
Размер9,76 Kb.
ТипДокументы
Параллельный порт с расширенными возможностями

(Interfacing the Extended Capabilities Port)

(перевод файла ecp.htm от Creag Peacock с http://www.senet.com.au/~cpeacock/)
Переведено Д.С. Иоффе (dsioffe@yandex.ru, ICQ 313263348) с другом PROMTом (в девичестве Stylus) исключительно для расширения собственного понятия. Никакие претензии не принимаются. Советы принимаются с удовольствием.

Введение в порт с расширенными возможностями


Режим с расширенными возможностями, разработанный Hewlett Packard и Microsoft, реализован как протокол порта с расширенными возможностями и стандарт интерфейса ISA. Этот протокол использует дополнительные аппаратные средства для генерации сигналов подтверждения связи и т. д. точно так же, как в режиме EPP. Таким образом, он работает с той же самой скоростью, что и EPP. Этот способ, однако, может лучше работать под Windows, поскольку он может использовать для передачи данных каналы DMA. Он также использует буфер FIFO для посылки и/или получения данных.

Другая особенность ECP - сжатие данных в режиме реального времени. Он использует кодирование длин серий (RLE), чтобы достичь сжатия данных до 64:1. Это полезно для устройств типа сканеров и принтеров, где большая часть данных - длинные строки повторяющихся слов.

Порт с расширенными возможностями поддерживает метод адресации канала. Это предназначено не для последовательного подключения устройств, а, скорее, для адресации нескольких узлов в пределах одного устройства. Пример - большинство факсов на сегодняшнем рынке, которые могут иметь параллельный порт для связи с Вашим компьютером. Факсимильный аппарат может быть разделён на отдельные устройства типа сканера, факс-модема и принтера, где каждая часть может быть адресована отдельно, даже если другие устройства не могут принимать данные из-за переполнения буферов.
^

Аппаратная реализация ECP


Несмотря на то, что ECP использует тот же самый соединитель D25, что и SPP, в нём по-другому используется каждый из выводов, точно так же, как в EPP. Это означает, что в интерфейсе ECP используется также другой метод подтверждения связи.

ECP обратно совместим с SPP и EPP. При работе в режиме SPP отдельные линии используются точно так же, как Strobe, Auto Linefeed, Init, Busy etc. - в SPP. При работе в режиме EPP выводы функционируют согласно методу, описанному в протоколе EPP, и имеют другой метод подтверждения связи. Когда порт работает в режиме ECP, тогда каждому выводу присвоены следующие названия:

Вывод

Сигнал SPP

Сигнал ECP

IN / OUT

Функция

1

Strobe

HostCLK

Out

Низкий уровень на этой линии сообщает о готовности данных в ведущем устройстве. По положительному перепаду сигнала на этом выводе данные должны защёлкиваться в ведомом устройстве.

2-9

Data 0-7

Data 0-7

In/Out

Шина данных. Двунаправленная.

10

Ack

PeriphCLK

In

Низкий уровень на этой линии сообщает о готовности данных в ведомом устройстве. По положительному перепаду сигнала на этом выводе данные должны защёлкиваться в ведущем устройстве.

11

Busy

PeriphAck

In

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

При передаче в обратном направлении работает как PeriphAck.

12

Paper Out / End

nAckReverse

In

Низким уровнем ведомое устройство подтверждает обратный запрос.

13

Select

X-Flag

In

Флаг расширяемости

14

Auto Linefeed

Host Ack

Out

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

При передаче в обратном направлении работает как HostAck.

15

Error / Fault

PeriphRequest

In

Низкий уровень, установленный устройством, указывает, что обратные данные доступны

16

Initialize

nReverseRequest

Out

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

17

Select Printer

1284 Active

Out

Высокий уровень сообщает, что ведущее устройство находится в режиме передачи по стандарту 1284. Для окончания надо перейти к низкому уровню.

18-25

Ground

Ground

GND

Земля

HostAck и PeriphAck указывают, являются ли сигналы на шине данных данными или командой. Если на них высокий уровень, то на шине данных помещены данные (выводы 2-7). Если имеет место цикл команды, тогда на соответствующей линии будет низкий уровень. То есть если ведущее устройство посылает команду, то на HostAck будет низкий уровень, а если периферийное устройство посылает команду, то низкий уровень будет на PeriphAck.

В цикле команды может передаваться одно из двух: индекс RLE или адрес. Это определяется битом 7 (MSB) линий данных (вывода 9). Если бит 7 - 0, то остальная часть данных (биты 0-6) - длина серии, которая используется схемой сжатия данных. А если бит 7 - 1, то данные в битах от 0 до 6 - адрес канала. С одним пропущенным битом это может только быть величина от 0 до 127 (десятичное).
^

Подтверждение передачи в ECP


Подтверждение передачи в ECP отличается от такового в SPP. Наиболее очевидное различие состоит в том, что ECP может в любое время изменить направление передачи. Таким образом, требуется дополнительная передача сигналов. Ниже показано подтверждение передачи в ECP для обоих направлений.
^

Цикл прямой передачи данных в ECP


1. Ведущее устройство помещает данные на шину данных.

2. Ведущее устройство предупреждает о цикле данных высоким уровнем на HostAck.

^ 3. Ведущее устройство сообщает о готовности данных низким уровнем на HostClk.

4. Периферия подтверждает приём информации о готовности данных высоким уровнем на PeriphAck.

^ 5. Ведущее устройство устанавливает высокий уровень на HostClk. Положительный перепад используется для защёлкивания данных в периферии.

6. Периферия подтверждает приём байта низким уровнем на PeriphAck.
^

Цикл прямой передачи команды в ECP


1. Ведущее устройство помещает данные на шину данных.

2. Ведущее устройство предупреждает о цикле команды низким уровнем на HostAck.

^ 3. Ведущее устройство сообщает о готовности данных низким уровнем на HostClk.

4. Периферия подтверждает приём информации о готовности данных высоким уровнем на PeriphAck.

^ 5. Ведущее устройство устанавливает высокий уровень на HostClk. Положительный перепад используется для защёлкивания данных в периферии.

6. Периферия подтверждает приём байта низким уровнем на PeriphAck.


^

Цикл обратной передачи данных в ECP


1. Ведущий устанавливает низкий уровень на nReverseRequest, запрашивая обратную передачу.

2. Периферия подтверждает запрос обратной передачи низким уровнем на nAckReverse.

^ 3. Периферия помещает данные на шину данных.

4. Периферия выбирает цикл данных высоким уровнем на PeriphAck.

5. Периферия сообщает о готовности данных низким уровнем на PeriphClk.

6. Ведущий подтверждает получение информации о готовности данных высоким уровнем на HostAck.

^ 7. Периферия устанавливает высокий уровень на PeriphClk. Положительным перепадом данные защёлкиваются в ведущем устройстве.

8. Ведущий подтверждает приём байта низким уровнем на HostAck.
^

Цикл обратной передачи команды в ECP


1. Ведущий устанавливает низкий уровень на nReverseRequest, запрашивая обратную передачу.

2. Периферия подтверждает запрос обратной передачи низким уровнем на nAckReverse.

^ 3. Периферия помещает данные на шину данных.

4. Периферия выбирает командный цикл низким уровнем на PeriphAck.

5. Периферия сообщает о готовности данных низким уровнем на PeriphClk.

6. Ведущий подтверждает получение информации о готовности данных высоким уровнем на HostAck.

^ 7. Периферия устанавливает высокий уровень на PeriphClk. Положительным перепадом данные защёлкиваются в ведущем устройстве.

8. Ведущий подтверждает приём байта низким уровнем на HostAck.
^

Сравнение подтверждения передачи в ECP и SPP



Подтверждение передачи в SPP состоит из 5 шагов:

1. Запись байта в порт данных.

2. Проверка занятости принтера. Если принтер занят, он не будет принимать никаких данных. Таким образом, любые записанные данные будут потеряны.

3. Установить низкий уровень на Strobe (вывод 1). Это сообщает принтеру, что на линиях данных имеются правильные данные. (Выводы 2-9)

4. После приблизительно 5 микросекунд ожидания вернуть высокий уровень на Strobe. (Шаг 3)

5. Проверить ответ (Ack) от периферии.

Подтверждение передачи в ECP содержит намного больше шагов. Казалось бы, что ECP будет медленнее SPP. Однако дело обстоит не так: все эти шаги управляются аппаратно в вашем контроллере ввода - вывода. Если бы это подтверждение передачи управлялось программно, тогда оно было бы намного медленнее, чем в SPP.
^

RLE - кодирование длин серий


Как кратко обсуждено ранее, протокол ECP включает простую схему сжатия под названием кодирование длин серий. Оно может поддерживать максимальное сжатие 64:1 и работает, посылая отдельно байты с длинами серий и отдельно копии байтов. Длина серии определяет, сколько раз следующий байт должен быть повторен.

Например, если должна была быть послана строка из 25 'А', то сначала был бы послан байт длины серии, равный 24, а после него - байт 'A'. Периферия, получив байт с длиной серии, повторила бы следующий байт соответствующее количество раз.

Байт длины серии должен отличаться от других байтов в потоке данных. Он посылается как команда по адресу FIFO порта ECP. Байты, посланные в этот регистр, могут быть длиной серии или адресом. Они различаются по MSB, биту 7. Если бит 7 установлен (1), то другие 7 битов, от 0 до 6 - адрес канала. Если бит 7 сброшен (0), то младшие 7 битов - длина серии. Использование MSB ограничивает адрес канала и длину серии семью битами (0 - 127).
^

Программные регистры ECP


Приводимая ниже таблица показывает регистры порта с расширенными возможностями. Первые 3 регистра - точно такие же, как для стандартного параллельного порта. Должно быть, однако, сделано замечание для бита разрешения двунаправленного порта (бит 5 порта управления). Этот бит показывает направление, в котором в настоящее время работает ECP порт, и воздействует на биты "FIFO полон" и "FIFO пуст" регистра ECR, который будет рассмотрен позже.

Адрес

Имя порта

Чтение/запись

Base + 0


Порт данных (SPP)

Запись

ECP адрес FIFO (ECP режим)

Чтение/запись

Base + 1

Порт состояния (все режимы)

Чтение/запись

Base + 2

Порт управления (все режимы)

Чтение/запись

Base + 400h


FIFO данных (режим параллельного порта с FIFO)

Чтение/запись

FIFO данных (ECP режим)

Чтение/запись

Тест FIFO (тестовый режим)

Чтение/запись

Конфигурационный регистр A (режим конфигурации)

Чтение/запись

Base + 401h

Конфигурационный регистр B (режим конфигурации)

Чтение/запись

Base + 402h

Регистр расширенного управления (используется во всех режимах)

Чтение/запись
^

Регистр расширенного управления (ECR) ECP


Наиболее важный регистр для параллельного порта с расширенными возможностями - это регистр расширенного управления (ECR). Поэтому мы рассмотрим его сначала. Этот регистр определяет режим, в котором ECP будет работать. Кроме того, среди прочего он показывает состояние FIFO ECP. Ниже содержимое этого регистра описано более подробно.

Бит

Назначение


7:5


Выбор текущего режима

000

Стандартный режим

001

Байтовый режим

010

Режим параллельного порта c FIFO

011

Режим ECP FIFO

100

Режим EPP

101

Зарезервирован

110

Режим теста FIFO

111

Режим конфигурации

4

Бит прерывания ECP

3

Бит разрешения DMA

2

Бит обслуживания ECP

1

FIFO полон

0

FIFO пуст

Три старших бита регистра расширенного управления выбирают режим работы. Имеются 7 возможных режимов работы, но не все порты поддерживают все режимы. Режим EPP, являющийся недоступным на некоторых портах - один из таких примеров. Ниже приведена таблица режимов работы.
^

Режимы работы


Стандартный режим

Выбор этого режима приводит к тому, что порт ECP ведёт себя как стандартный параллельный порт, без функции двунаправленности.

Байтовый режим / режим PS/2

Ведёт себя как SPP в двунаправленном режиме

Режим параллельного порта с FIFO

В этом режиме любые данные, записанные в FIFO данных, будут посланы в периферию с использованием подтверждения передачи SPP, которое будет выполнено аппаратно. Полезно с не - ECP устройствами типа принтеров. Вы можете использовать некоторые из особенностей ECP, такие, как буфера FIFO и аппаратная генерация подтверждения связи, но с существующим подтверждением связи SPP вместо ECP.

Режим ECP FIFO

Стандартный режим для использования в ECP. Этот режим использует уже описанное подтверждение связи ECP.

Режим EPP / зарезервирован

В некоторых наборах микросхем этот режим разрешает использование EPP. В других этот режим всё ещё зарезервирован.

Зарезервирован

В настоящее время зарезервирован

Режим теста FIFO

В этом режиме любые данные, записанные в регистр теста FIFO, будут помещены в FIFO, и любые данные, считанные из регистра теста FIFO, будут читаться из буфера FIFO. Биты состояния FIFO "полон / пуст" отразят их истинную величину. Таким образом, в этом режиме среди прочего может быть определена глубина FIFO.

Конфигурационный режим

В этом режиме два регистра конфигурации, cnfgA и cnfgB, станут доступными по их адресам

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

Режим теста FIFO может использоваться для проверки вместимости буферов FIFO, а также чтобы удостовериться, что они функционируют правильно. В режиме теста FIFO любой байт, записанный в регистр теста FIFO (база + 400h), помещается в буфер FIFO, и любой байт, который читается из этого регистра, поступает из буфера FIFO. Вы можете использовать это наряду с битами "FIFO полон" и "FIFO пуст" регистра расширенного управления, чтобы определить вместимость буфера FIFO. Обычно она составляет около 16 байтов.

Другие биты ECR также играют важную роль в работе порта ECP. Бит прерывания ECP (бит 4) разрешает использование прерываний, в то время как бит разрешения DMA (бит 3) разрешает использование прямого доступа к памяти. Бит обслуживания ECP (бит 2) показывает, был ли инициирован запрос прерывания. Если да, то этот бит будет установлен. Сброс этого бита различен для различных чипов. Некоторые требуют, чтобы Вы сбросили бит, например, записав туда ноль. Другие сбрасывают бит, как только регистр считан.

Биты "FIFO полон" (бит 1) и "FIFO пуст" (бит 0) показывают состояние буфера FIFO. Эти биты зависят от направления, поэтому надо принять во внимание состояние бита 5 регистра управления. Если бит 0 (FIFO пуст) установлен, то буфер FIFO полностью пуст. Если Бит 1 установлен, тогда буфер FIFO полон. Таким образом, если ни один из этих битов не установлен, то в FIFO имеются данные, но он ещё не полон. Эти биты могут использоваться в режиме теста FIFO при определении вместимости буфера FIFO.
^

Регистр A конфигурации ECP (CnfgA)


Регистр конфигурации A - это один из двух регистров конфигурации порта ECP. Эти регистры доступны только тогда, когда порт ECP находится в режиме конфигурации (см. регистр расширенного управления). К CnfgA можно обращаться по адресу База + 400h.

Бит

Назначение

7

1

Прерывания по уровню

0

Прерывания по фронту (импульсные)

6:4

00h

Устанавливает максимальную ширину слова 16 битов

01h

Устанавливает максимальную ширину слова 8 битов

02h

Устанавливает максимальную ширину слова 32 битов

03h:07h

Зарезервировано для будущих расширений

3

Зарезервирован

2

Восстановление ведущего: байт потока передатчика включён в FIFO?

0

В прямом направлении 1 байт в потоке передатчика не включён в полный FIFO.

1

В прямом направлении 1 байт в потоке передатчика включён как часть в полный FIFO.

1:0

Восстановление ведущего: не переданные байты, оставшиеся в FIFO

00

Полное слово

01

1 байт

10

2 байта

11

3 байта

Регистр конфигурации может читаться, чтобы выяснить немного больше относительно порта ECP. MSB показывает, производит ли плата прерывания уровнем или фронтом. Это будет зависеть от типа шины, которую ваша плата использует. Биты от 4 до 6 показывают ширину шин на плате. Некоторые платы имеют ширину шину данных только 8 битов, в то время как другие могут иметь ширину 32 или 16 битов. Чтобы максимально эффективно использовать вашу плату, программное обеспечение может читать состояние этих битов для определения максимального размера слова для вывода в порт.

3 младших бита используются для восстановления ведущего устройства после сбоя. Чтобы исправить ошибку, программное обеспечение должно узнать, сколько байтов было послано, определяя, есть ли байты, оставшиеся в FIFO. Некоторые реализации могут включать байт, сидящий в регистре передатчика, который будет послан как часть полного статуса FIFO, в то время как другие могут не включать. Бит 2 определяет, есть такой байт или нет.

Другая проблема состоит в том, что выход параллельного порта имеет ширину только 8 битов, а Вы можете широко использовать 16- или 32-разрядные инструкции ввода - вывода. Если дело обстоит так, то может быть послана только часть вашего слова порта (слово, которое Вы послали в порт). Поэтому Биты 0 и 1 содержат число байтов, все ещё оставшихся в FIFO, так, чтобы Вы могли повторно передать их.
^

Регистр B конфигурации ECP (CnfgB)


Регистр конфигурации B, как и регистр конфигурации A, доступен только тогда, когда порт ECP находится в режиме конфигурации. В этом режиме CnfgB расположен по адресу База + 401h. Ниже описан этот регистр.

Биты

Назначение

7

1

Сжатие выходных данных с помощью RLE

0

Данные не сжимаются

6

Состояние прерывания - показывает текущее состояние вывода IRQ

5:3

Выбирает или показывает состояние линии запроса прерывания.

000

Прерывание задаётся джамперами

001

IRQ 7

010

IRQ 9

011

IRQ 10

100

IRQ 11

101

IRQ 14

110

IRQ 15

111

IRQ 5

2:0

Выбирает или показывает канал DMA, используемый контроллером параллельного порта




000

Управляемый джамперами 8-разрядный канал DMA

001

DMA канал 1

010

DMA канал 2




011

DMA канал 3

100

Управляемый джамперами 16-разрядный канал DMA

101

DMA канал 5

110

DMA канал 6

111

DMA канал 7

Регистр конфигурации B (cnfgB) может быть доступен как по чтению и записи, так и только по чтению. Некоторые порты могут быть программно конфигурируемы, там Вы можете устанавливать ресурсы IRQ и DMA через регистр. Другие могут управляться через BIOS или джамперами на плате, и, таким образом, только читаются.

Бит 7 Регистра cnfgB определяет, сжимать ли отправляемые данные с использованием RLE. Когда он установлен, ведущее устройство сжимает данные перед посылкой. Когда сброшен, данные будут посланы в периферию несжатыми.

Бит 6 возвращает статус вывода IRQ. Это можно использовать для диагностики конфликтов, поскольку он будет отражать состояние IRQ не только параллельного порта, но и другого устройства, использующего это IRQ.

Биты от 5 до 3 показывают назначение IRQ порта. Аналогично для битов от 2 до 0, которые показывают назначение канала DMA. Как упомянуто выше, эти поля можно читать или читать и писать. Исчезающая разновидность параллельных плат управляется джамперами. Они представляют эти ресурсы как "Jumpered", или показывают правильные номера линий. Однако они, конечно, будут только читаться.




Похожие:

Аппаратная реализация ecp iconВопросы на экзамен по курсу «Сети ЭВМ и телекоммуникации» (3 курс)
Принципы помехоустойчивого кодирования. Коды на четность, итеративный код, код Хэмминга. Циклический код. Формирование контрольных...
Аппаратная реализация ecp iconПрограммно-аппаратная защита информации

Аппаратная реализация ecp iconВопросы к экзамену по предмету «Программно-аппаратная защита информации»
Понятие несанкционированного доступа (нсд), классы и виды нсд. Несанкционированное копирование программ как особый вид нсд
Аппаратная реализация ecp iconВопросы к семинару №1 по курсу «Программно-аппаратная защита информации» раздел введение
Понятие злоумышленника; злоумышленник в криптографии и при решении проблем компьютерной безопасности (KБ)
Аппаратная реализация ecp icon1. Общие сведения о деятельности Учреждения
Реализация образовательных программ среднего и дополнительного профессионального образования. Реализация товаров, созданных или приобретенных...
Аппаратная реализация ecp iconРеализация регионального содержания на урок
Реализация регионального содержания на уроках истории: газета «устьянский край» как исторический источник
Аппаратная реализация ecp iconРеспублики Марий Эл гбоу дпо (ПК)С «Марийский институт образования» Реализация фгос
Тема: Реализация фгос на начальной ступени общего образования (аргументированный анализ умк для 1-го класса Образовательной системы...
Аппаратная реализация ecp iconПрактическое задание: Реализация товаров и услуг Реализация товаров...
На основании данных из таблицы 1 оформить операцию реализации товаров с предоплатой по безналичному расчету
Аппаратная реализация ecp iconАдминистративный регламент предоставления государственной услуги...
Федеральным законом «О защите прав потребителей», Федеральным законом «О порядке выдачи разрешения на право выпуска ветеринарных...
Аппаратная реализация ecp iconРеализация здоровьесберегающих технолог ий психолога в образовательном учреждении
Реализация здоровьесберегающих технологий психолога в образовательном учреждении
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
dopoln.ru
Главная страница