
Режимы и регистры еср-порта
Режимы работы ЕСР задаются полем Mode регистра ECR (Extended Control Register –главный регистр управления ) ( биты [7:5]) (табл.7).
Таблица 7. Режимы ЕСР-порта
Режим |
Название |
Описание |
000 |
SPP Mode |
Стандартный (традиционный ) режим |
001 |
Bi-directional Mode |
Двунаправленный порт (типа 1 для PS/2) |
010 |
Fast Centronics |
Однонаправленный с FIFO и DMA |
011 |
ECP Parallel Post mode |
ECP |
100 |
EPP Parallel Post mode |
Перевод в режим ЕРР |
101 |
(re serwed) |
------------------------------------- |
100 |
Test Mode |
Тестирование работы FIFO и прерываний |
111 |
Configuration mode |
Доступ к конфигурационным регистрам |
Регистровая модель адаптера ЕСР (табл8) использует свойства архитектуры стандартной шины и адаптеров ISA , согласно которой для дешифрации адреса портов ввода вывода использовались только 10 младших линий шины адреса . Старшие линии игнорируются , поэтому обращение по адресам , например, Port, Port+400h, Port+800h … ,будут восприниматься как обращение к адресу Port,лежащему в диапазоне 0-3FFh. Современные РС и адаптеры декодируют большие количества адресных бит, поэтому обращения по адресам например 0X378h и 0X778h ,будут адресованы двум различным регистрам. Помещение дополнительных регистров ECP « за спину» регистров стандартного порта не приведет к стеснению доступного адресного пространства ввод/вывода.
Таблица 8 . Регистры ЕСР
Смещение |
Имя |
R/W |
Режимы ЕСР |
Назначение |
000 |
DR |
R/W |
000-001 |
Data Registr |
000 |
ECPAFIO |
R/W |
011 |
ECP Adres FIFO |
001 |
SR |
R/W |
все |
Status Register |
002 |
CR |
R/W |
все |
Control Register |
400 |
SDFIFO |
R/W |
010 |
Parallel PortData FIFO |
400 |
ECPDFIFO |
R/W |
011 |
ECPD Data FIFO |
400 |
TFIFO |
R/W |
110 |
TEST FIFO |
400 |
CNFGA |
R |
111 |
Configuration Register А |
401 |
CNFGB |
R/W |
111 |
Configuration Register В |
402 |
ECR |
R/W |
все |
Extended Control Re-gister |
Каждому режиму ЕСР соответствуют и доступны свои функциональные регистры . Переключения режимов осуществляется записью в регистр ЕСР.
«Дежурными» режимами , включаемыми по умолчанию являются режимы 000 и 001 . Из этих режимов можно переключится в любой другой , но из старших режимов (010-111 ) переключение возможно только в 000 или 001
Режим 011 и является собственно режимом ЕСР, описаным выше . В этом режиме поток данных и команд , передаваемых в ПУ , помещается в FIFO – буфер через регистры ECPD FIFO и ECPAFIFO соответственны. Из FIFO они выводятся с соответсвующим признаком цикла ( состояние линии HostAck). Принимаемый поток данных от ПУ извлекается из FIFO –буфера через регистр ECPDFIFO . При этом получение адреса в командном цикле от ПУ не предусматривается . Обмен с регистром ECPDFIFO может производиться и по каналу DMA.
Компрессия по методу RLE при передачи выполняется программно. Для передачи подряд более двух одинаковых байт данных в регистр ECPAFIFO записывается байт , у которого младшие 7 бит содержат счетчик RLС (значение RLС =127 соответствует 128 повторам),а старший бит нулевой .После этого в THCDFIFO записываетяс сам байт . Принимая эту пару байт ( командный байт и байт данных), ПУ осуществляет декомпрессию .При приема потока от ПУ адаптер ЕСР декомпрессию осуществляет аппаратно и в FIFO –буфер помещает уже декомпрессированные данные . Из этого описания работы компрессии вполне очевидно , что вывод данных с одновременным использованием компрессии и DMA невозложен.
Режим 110 (Test Mode) предназначен для тестирования взаимодействий механизмов FIFOи прерываний . В этом режиме данные могут передаваться в/из регистра TFIFO c помощью DMA или программным способом . При этом адаптер следит за состоянием буфера и по мере необходимости вырабатывает сигналы запроса прерывания . Таким образом программа может определить максимальную пропускную способность канала .
Режим 111 предназначен для доступа к конфигурационным регистрам. Его выделение защищает адаптер и протокол от некорректных изменений конфигурации в процессе обмена.
Регистр EPC CNFA позволяет считать информацию об адаптере (идентификационный код в битах [7:4] .
Регистр EPC CNFB предназначен для хранения информации , необходимой драйверу.
Регистр ECR является главным управляющим регистром ECP. Его биты имеют следующие
назначения.
Задают режим ECP-ECPMode (табл 8)
7
6
5
ERRINTREN #- (Error Interupt Diseble) запрещает
прерывание
по сигналу ERROR# (при нулевом значении бита по трицатель-
4 перепаду на этой линии вырабатывается
запрос прерывания).
3 DMAEN- (DMA Enable) разрешает обмен по каналу DMA
2 SERVICEINTR –(Servise Interrupt) запрещает сервисные
пре-
рывания , которые вырабатываются по окончании цикла DMA
(если он разрешен), по порогу заполнения /опустошения FIFO-
1 буфера (если не используется
DMA) и по ошибке переполнения или
переопустошения буфера.
FIFOFS-(FIFO
Full Status)сигнализирует о заполнении
буфера
(
при FIFOFS=1 в буфере нет ни
одного свободного байта)
0
FIFOЕS-(FIFO Empty Status) указывает на полное опустошение
буфера.Комбинация
FIFOS =FIFOES=1 означает ошибку рабо-
ты с FIFO ( переполнение или опустошение ) .
Варианты индивидуальных заданий к лабораторной работе « Исследования пералльного интерфейса.
Таблица 9
№ варианта |
Функция BIOS |
Процедура ввода/вывода |
Временная диаграмма* |
Описать режим |
Номер контрольного вопроса |
1 |
00h |
по Centronics(SPP) 1 |
10 |
111 |
3 |
2 |
01h |
в полубайтном режи-ме 2 |
9 |
110 |
5 |
3 |
02h |
Прием в байтном реж.3 |
8 |
100 |
1 |
4 |
00h |
Цикл записи данных (EPP) 4 |
1 |
011 |
2 |
5 |
01h |
Цикл чтения данных (ЕРР) 5 |
2 |
010 |
10 |
6 |
02h |
Цикл записи адреса (ЕРР) 6 |
3 |
001 |
9 |
7 |
00h |
Цикл чтения адреса (ЕРР) 7 |
10 |
000 |
4 |
8 |
01h |
Передача в режим ЕСР 8 |
4 |
001 |
7 |
9 |
02h |
Прием в режим ЕСР 9 |
5 |
010 |
9 |
10 |
00h |
Передача в режим ЕСР 10 |
6 |
000 |
10 |
11 |
01h |
по Centronics(SPP) 1 |
9 |
011 |
|
12 |
02h |
прием в полубайтном режиме 2 |
10 |
100 |
5 |
13 |
00h |
прием в байтном режиме 3 |
3 |
110 |
6 |
14 |
01h |
цикл записи данных (ЕРР) 4 |
1 |
111 |
3 |
15 |
02h |
цикл чтения данных (ЕРР) 5 |
2 |
000 |
4 |
16 |
00h |
цикл записи адреса (ЕРР) 6 |
3 |
001 |
7 |
17 |
01h |
Цикл чтения адреса (ЕРР) 7 |
1 |
010 |
9 |
18 |
02h |
Передача в режиме ЕСР 8 |
4 |
100 |
10 |
19 |
00h |
Прием в режим ЕСР9 |
6 |
110 |
1 |
20 |
01h |
по Centronics(SPP) 1 |
8 |
011 |
5 |
21 |
02h |
Прием в полубайтном режиме 2 |
9 |
110 |
8 |
22 |
00h |
Цикл записи адреса (ЕРР)6 |
1 |
111 |
10 |
23 |
01h |
Цикл чтения адреса (ЕРР)7 |
3 |
001 |
9 |
24 |
02h |
Передача в режим ЕСР 8 |
1 |
100 |
1 |
25 |
00h |
Прием в байтном ре-жиме 3 |
6 |
011 |
3 |
26 |
01h |
Прием в режиме ЕСР 8 |
2 |
001 |
2 |
*цифра соответствует номеру процедуры ввода/вывода.
В соответствии с индивидуальным заданием необходимо :
по функции BIOS – составить программу и описать работу LPT – порта при выполнении заданной функции ;
по процедуре ввода/вывода – описать механизм реализации , составить алгоритм словесный или графический по фазам реализации заданной процедуры ,
по временной диаграмме – составить временную диаграмму цикла обмена заданного режима и описать ее работу ;
по заданному режиму –описать его особенности ;
по контрольному вопросу –ответить письменно на заданный вопрос.
Порядок выполнения работы
1.При домашней подготовке изучить устройство , условия совместимости , режимы и протоко-лы обмена через LPT-порт ; составить программу , реализующую заданную функцию BIOS через прерывание INT 17 h
2. Включить компьютерную систему , показать работу программы , реализующей заданные функции INT 174