Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Двунаправленный байтный режим Byte Mode
Данный режим обеспечивает прием данных с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR.5=1. Как и в стандартном и в полубайтном режиме, данный режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются программным драйвером. Назначение сигналов порта приведено в табл. 2.13, временные диаграммы — на рис. 2.37.
Таблица 2.13. Сигналы LPT-порта в байтном режиме ввода/вывода
*Сигналы действуют в последовательности согласования (см. ниже).
Рис. 2.37. Прием данных в Byte Mode Прием байта данных в байтном режиме состоит из следующих фаз: 1. Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy. 2. ПУ в ответ помещает байт данных на линии DATA[7: 0]. 3. ПУ сигнализирует о действительности байта установкой низкого уровня на линии PtrCLk. 4. Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой байта. 5. ПУ отвечает установкой высокого уровня на линии PtrCLk. 6. Хост подтверждает прием байта импульсом HostClk. 7. Шаги 1-6 повторяются для каждого следующего байта. Побайтный режим позволяет поднять скорость обратного канала до скорости прямого канала в стандартном режиме. Однако работать он может только на двунаправленных портах, которые применяются в основном лишь на малораспространенных машинах PS/2. Режим ЕРР Протокол ЕРР (Enhanced Parallel Port — улучшенный параллельный порт) был разработан задолго до принятия IEEE 1284 компаниями Intel, Xircom и Zenith Data Systems. Он предназначен для повышения производительности обмена по параллельному порту. ЕРР был реализован в чипсете Intel 386SL (микросхема 82360) и впоследствии принят множеством компаний как дополнительный протокол параллельного порта. Версии протокола, реализованные до принятия IEEE 1284, немного отличались от нынешнего стандарта. Протокол ЕРР обеспечивает четыре типа циклов обмена: · Цикл записи данных. · Цикл чтения данных. 4- · Цикл записи адреса. 4 · Цикл чтения адреса. Назначение циклов записи и чтения данных ясно из их названия. Адресные циклы могут быть использованы для передачи адресной, канальной и управляющей информации. Циклы обмена данными явно отличаются от адресных циклов применяемыми стробирующими сигналами. Назначение сигналов порта ЕРР и их связь с сигналами SPP приведены в табл. 2.14.
Таблица 2.14. Сигналы LPT-порта в режиме ввода/вывода ЕРР
* Сигналы действуют в последовательности согласования (см. ниже).
ЕРР-порт имеет расширенный набор регистров (табл. 2.15), который занимает в пространстве ввода/вывода 5-8 смежных байт.
Таблица 2.15. Регистры ЕРР- порта
В отличие от программно-управляемых режимов, описанных выше, внешние сигналы ЕРР-порта (как информационные, так и сигналы квитирования) для каждого цикла обмена формируются аппаратно по одной операции записи или чтения в регистр порта. На рис. 2.38 приведена диаграмма цикла записи данных, иллюстрирующая внешний цикл обмена, вложенный в цикл записи системной шины процессора (иногда эти циклы называют связанными). Адресный цикл записи отличается от цикла данных только используемым стробом внешнего интерфейса. Цикл записи данных состоит из следующих фаз: 1. Программа выполняет цикл записи (lOWR#) в порт 4 (ЕРР Data Port). 2. Адаптер устанавливает сигнал Write# (низкий уровень), и данные помещаются на выходную шину LPT-порта. 3. При низком уровне WAIT# устанавливается строб данных. 4. Порт ждет подтверждения от ПУ (перевода WAIT# в высокий уровень). 5. Снимается строб данных - внешний ЕРР-цикл завершается. 6. Завершается процессорный цикл ввода/вывода. 7. ПУ устанавливает низкий уровень WAIT#, указывая на возможность начала следующего цикла.
Рис. 2.38. Никл записи данных ЕРР
Пример адресного цикла чтения приведен на рис. 2.39, цикл чтения данных отличается только применением другого стробирующего сигнала. После объяснения цикла записи эти типы циклов особых пояснений не требуют.
Рис. 2.39. Адресный цикл чтения ЕРР
Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла ввода/вывода. Это позволяет достигать высоких скоростей обмена (0, 5-2 Мбайт/с).. Периферийное устройство может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала WAIT#.
Режим ЕСР Протокол ЕСР (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 при передаче растровых изображений, которые обычно имеют длинные строки повторяющихся байт. Естественно, компрессию можно использовать, только если ее поддерживает и хост, и периферийное устройство. Канальная адресация ЕСР применяется для адресации множества логических устройств, входящих в одно физическое. Например, в комбинированном устройстве факс/принтер/модем, подключаемом только к одному параллельному порту, возможен одновременный прием факса и печать на принтере. В режиме SPP, если принтер установит сигнал занятости, канал будет занят ожидающими данными, пока принтер их не примет. В режиме ЕСР программный драйвер просто адресуется к другому логическому каналу того же порта. Как и в других режимах 1284, протокол ЕСР переопределяет сигналы SPP (табл. 2.16).
Таблица 2.16. Сигналы LPT-порта в режиме ввода/вывода ЕСР
* Сигналы действуют в последовательности согласования (см. ниже).
Адаптер ЕСР тоже генерирует внешние протокольные сигналы квитирования аппаратно, но его работа существенно отличается от режима ЕРР. На рис. 2.40, а приведена диаграмма двух циклов прямой передачи: за циклом данных следует командный цикл. Тип цикла задается уровнем на линии HostAck: в цикле данных — высокий, в командном цикле — низкий. В командном цикле байт может содержать канальный адрес или счетчик RLE. Отличительным признаком является бит 8 (старший): если он нулевой, то биты 1-7 содержат счетчик RLE (0-127), если единичный — то канальный адрес. На рис. 2.40, б приведена пара циклов обратной передачи. Прямая передача данных на внешнем интерфейсе состоит из следующих шагов: 1. Хост помещает данные на шину канала и устанавливает признак цикла данных (высокий уровень) или команды (низкий уровень) на линии HostAck. 2. Хост устанавливает низкий уровень на линии HostClk, указывая на действительность данных. 3. ПУ отвечает установкой высокого уровня на линии PeriphAck. 4. Хост устанавливает высокий уровень линии HostClk, и этот перепад может использоваться для фиксации данных в ПУ. 5. ПУ устанавливает низкий уровень на линии PeriphAck для указания на готовность к приему следующего байта.
Рис. 2.40. Передача в режиме ЕСР: а — прямая, б — обратная
Поскольку передачи в ЕСР разделены FIFO-буферами, которые могут присутствовать на обеих сторонах интерфейса, важно понимать, на каком этапе данные можно будет считать переданными. Данные считается переданными на шаге 4, когда линия HostClk переходит в высокий уровень. В этот момент модифицируются счетчики переданных и принятых байт. В протоколе ЕСР есть условия, вызывающие прекращение обмена между шагами 3 и 4, и тогда эти данные не должны рассматриваться как переданные. Из рис. 2.40 видно и другое отличие ЕСР от ЕРР. Протокол ЕРР позволяет драйверу чередовать циклы прямой и обратной передачи, не запрашивая подтверждения на смену направления. В ЕСР смена направления должна быть согласована: хост запрашивает реверс установкой ReverseRequest#, после чего он должен дождаться его подтверждения сигналом AckReverse#. Только после этого возможна передача данных в другом направлении. Поскольку предыдущий цикл мог выполняться по прямому доступу, драйвер должен дождаться завершения прямого доступа или прервать его, выгрузить обратно буфер FIFO, определив точное значение счетчика переданных байт, и только после этого запрашивать реверс. Обратная передача данных состоит из следующих шагов: 1. Хост запрашивает изменение направления канала, устанавливая низкий уровень на линии ReverseRequest#. 2. ПУ разрешает смену направления установкой низкого уровня на линии Ack-Reverse#. 3. ПУ помещает данные на шину канала и устанавливает признак цикла данных (высокий уровень) или команды (низкий уровень) на линии PeriphAck. 4. ПУ устанавливает низкий уровень на линии PeriphClk, указывая на действительность данных. 5. Хост отвечает установкой высокого уровня на линии HostAck. 6. ПУ устанавливает высокий уровень линии PeriphClk, и этот перепад может использоваться для фиксации данных хостом. 7. Хост устанавливает низкий уровень на линии HostAck для указания на готовность к приему следующего байта. Режимы и регистры ЕСР-порта Программный интерфейс и регистры ЕСР для адаптеров IEEE 1284 определяет спецификация Microsoft. Согласно этой спецификации определены режимы (табл. 2.17), в которых может функционировать адаптер. Эти режимы задаются полем Mode регистра ECR (биты [7: 5]). Регистровая модель адаптера ЕСР (табл. 2.18) использует свойства архитектуры стандартной шины и адаптеров ISA, согласно которой для дешифрации адреса портов ввода/вывода использовались только 10 младших линий шины адреса. Старшие линии игнорируются, поэтому обращения по адресам, например, Port, Port+400h, Port+800h... будут восприниматься как обращения к адресу Port, лежащему в диапазоне 0-3FFh. Современные PC и адаптеры декодируют большее количество адресных бит, поэтому обращения по адресам, например, 0x378h и 0x778h будет адресованы двум различным регистрам. Помещение дополнительных регистров ЕСР «за спину» регистров стандартного порта (смещение 400-402h) преследует две цели: во-первых, эти адреса никогда не использовались традиционными адаптерами и их драйверами, и их использование для ЕСР не приведет к стеснению доступного адресного пространства ввода/вывода. Во-вторых, этим обеспечивается совместимость со старыми адаптерами на уровне режимов 000-001 и возможность определения присутствия ЕСР-адаптера попыткой обращения к его расширенным регистрам.
Таблица 2.17. Режимы ЕСР-порта
* Этот режим не входит в спецификацию Microsoft, но трактуется как EPP контроллером SMC FDC37C665/666 и многими другими контроллерами 1284.
Каждому режиму ЕСР соответствуют (и доступны) свои функциональные регистры. Переключение режимов осуществляется записью в регистр ECR. «Дежурными» режимами, включаемыми по умолчанию, являются режимы 000 или 001. В любом из них работает полубайтный режим ввода (Nibble Mode). Из этих режимов всегда можно переключиться в любой другой, но из старших режимов (010-111) переключение возможно только в 000 или 001. Для корректной работы интерфейса перед выходом из старших режимов необходимо дождаться завершения обмена по прямому доступу и опустошения FIFO-буфера.
Таблица 2.18. Регистры ЕСР
* Регистры доступны только в указанных режимах (режим задается битами 7-5 регистра ECR).
Когда порт находится в стандартном или двунаправленном режимах (режимы 000 и 001), первые три регистра полностью совпадают с регистрами стандартного порта. Таким образом обеспечивается совместимость драйвера со старыми адаптерами и старых драйверов с новыми адаптерами. По интерфейсу с программой ЕСР-порт напоминает ЕРР: после установки режима (записью кода в регистр ECR) обмен данными с устройством сводится к операциям чтения или записи в соответствующие регистры. За состоянием (заполнением) FIFO-буфера наблюдают либо по опросу (чтением регистра ECR), либо по обслуживанию сервисных прерываний от порта. Весь протокол квитирования генерируется адаптером аппаратно. Обмен данными с ЕСР-портом кроме явного программного возможен и по прямому доступу к памяти (каналу DMA), что эффективно при передаче больших блоков данных.
Популярное:
|
Последнее изменение этой страницы: 2016-03-22; Просмотров: 1087; Нарушение авторского права страницы