| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
- 24 -
(прерывания разрешены), процессор отвечает сигналом по линии
INTA (подтверждение прерывания), после чего сбрасывается в 0
разряд IRR и устанавливается в 1 разряд ISR, соответствующие
уровню обрабатываемого прерывания. После получения второго
сигнала подтверждения от процессора по линии INTA, ПКП передает
на шину данных 8-битовый номер прерывания. Данная
последовательность работы схемы управления выполняется при
подключении ПКП к системе с микропроцессорами 8088/8086. При
работе с микропроцессорами 8080/8085 последовательность работы
схемы управления несколько отличается от описанной выше.
Основное отличие состоит в том, что процессору передается не
только номер прерывания, но и код команды процессора INT
(прерывание) - байт 0CDh.
Схема каскадирования отвечает за работу каскада из
нескольких контроллеров. При подключении к ведущему контроллеру
выход INT каждого ведомого подключается к одному из входов IR0 -
IR7 ведущего. Далее этот сигнал передается ведущим на вход INT
процессора. Когда процессор возвращает сигнал INTA, ведущий
контроллер не только устанавливает бит в ISR и сбрасывает бит в
IRR, но и выдает на свои выходы CAS0 - CAS2 номер уровня
прерывания, к которому подключен ведомый, пославший запрос на
прерывание. Сигналы по линии CAS0 - CAS2 принимаются всеми
ведомыми, однако обрабатываются только тем, который подключен к
линии IR с соответствующим номером.
- 25 -
E3.2.Режимы работы ПКПF
1. Режим фиксированных приоритетов (Fixed Priority, Fully
Nested Mode). В этом режиме контроллер находится сразу после
инициализации. Запросы прерываний имеют жесткие приоритеты от 0
до 7 (0 - высший) и обрабатываются в соответствии с
приоритетами. Прерывание с меньшим приоритетом никогда не будет
обработано, если в процессе обработки прерываний с более
высокими приоритетами постоянно возникают запросы на эти
прерывания.
2. Автоматический сдвиг приоритетов (Automatic Rotation). В
этом режиме дается возможность обработать прерывания всех
уровней без их дискриминации. Например, после обработки
прерывания уровня 4 ему автоматически присваивается низший
приоритет, при этом приоритеты для всех остальных уровней
циклически сдвигаются и прерывания уровня 5 будут иметь в данной
ситуации высший приоритет и, следовательно, возможность быть
обработанными.
3. Программно-управляемый сдвиг приоритетов(Specific
Rotation). Программист может сам передать команду циклического
сдвига приоритетов ПКП, задав соответствующее управляющее слово.
В команде задается номер уровня, которому требуется присвоить
максимальный приоритет. После выполнения такой команды
устройство работает так же, как и в режиме фиксированных
приоритетов, с учетом их сдвига. Приоритеты сдвигаются
циклически, таким образом если максимальный приоритет был
назначен уровню 3, то уровень 2 получит минимальный и будет
обрабатываться последним.
4. Автоматическое завершение обработки прерывания
(Automatic End Of Interrupt, AEOI). В обычном режиме работы
процедура обработки аппаратного прерывания должна перед своим
завершением очистить свой бит в ISR специальной командой, иначе
новые прерывания не будут обрабатываться ПКП. В режиме AEOI
нужный бит в ISR автоматически сбрасывается в тот момент, когда
начинается обработка прерывания нужной процедурой обработки и от
нее не требуется издавать команду завершения обработки
прерывания (EOI). Сложность работы в данном режиме
обуславливается тем, что все процедуры обработки аппаратных
прерываний должны быть повторно входимыми, т. к. за время их
работы могут повторно возникнуть прерывания того же уровня.
5. Режим специальной маски (Special Mask Mode). Данный
режим позволяет отменить приоритетное упорядочение обработки
запросов и обрабатывать их по мере поступления. После отмены
режима специальной маски предшествующий порядок приоритетов
уровней сохранается.
6. Режим опроса (Polling Mode). В этом режиме аппаратные
прерывания не происходят автоматически. Появление запросов на
прерывание должно определяться считыванием IRR. Данный режим
позволяет так же получить от ПКП информацию о наличии запросов
на прерывания и, если запросы имеются, номер уровня с
- 26 -
максимальным приоритетом, по которому есть запрос.
E3.3.Программирование ПКПF
Ниже описывается управление ПКП в ПЭВМ на базе
микропроцессоров Intel 8086/8088/80286. Возможности, позволяющие
включить ПКП в ПЭВМ, использующие другие процессоры, опущены.
Для вывода информации в ПКП используются 2 порта
ввода-вывода. Порт с четным адресом (обычно это порт 20h) и порт
с нечетным адресом (обычно 21h). Через эти порты могут быть
переданы 4 слова инициализации (Initialization Control Word,
ICW1 - ICW4), задающие режим работы ПКП, и 3 операционных
управляющих слова (слова рабочих приказов, Operation Control
Words, OCW1 - OCW3). В порт с четным адресом выводятся ICW1,
OCW2 и OCW3. OCW2 отличается от OCW3 тем, что бит 3 в ocw2 равен
0, а в OCW3 равен 1. В то же время бит 4 в OCW2 и OCW3 равен 0,
а в ICW1 равен 1. Таким образом по значению, выводимому в порт с
четным адресом, однозначно определяется, в какой регистр (ICW1,
OCW2 или OCW3) заносятся данные.
Порт с нечетным адресом используется для вывода ICW2, ICW3,
ICW4 и OCW1. Неоднозначности интерпретации данных в этом случае
так же не возникает, т. к. слова инициализации ICW2 - ICW4
должны непосредственно следовать за ICW1, выведенным в порт с
четным адресом и выводить в промежутке между ними OCW1 не
следует, онo не будет опознанo контроллером.
Выводом в порт с четным адресом управляющего слова
инициализации ICW1 начинается инициализация ПКП. В процессе
инициализации контроллер последовательно принимает управляющие
слова ICW1 - ICW4. При наличии в системе одного контроллера ICW3
не выводится. Наличие ICW4 определяется содержанием ICW1. При
наличии каскада из нескольких ПКП каждый из них инициализируется
отдельно.
Формат ICW1 следующий:
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 0 і -- і -- і -- і 1 іLTIMі ADIіSNGLі IC4і
АДДДДБДДДДБДДДДБДДДДБДДДДБДВДДБДВДДБДВДДБДВДДЩ
і і і і
і і і АД> 1=будет вывод ICW4
і і і 0=не будет
і і АДДДДДД> 1=один контроллер
і і 0=каскад
і АДДДДДДДДДДД> игнорируется
АДДДДДДДДДДДДДДДД> 0=запуск запросов
фронтом
1=запуск запросов
уровнем
Бит 4, равный 1, определяет, что выводится ICW1, а не OCW2
или OCW3.
- 27 -
Бит 3 (LTIM), равный 0, задает запуск запросов фронтом, при
этом действует описанная выше схема: бит в IRR сбрасывается при
установке соответствующего бита в ISR.
Бит 2 (ADI) используется только в ПЭВМ на базе микро-
процессоров Intel 8080/8085.
Бит 1 (SNGL) указывает на наличие в системе одного
контроллера (если равен 1) или каскада из нескольких
контроллеров (если равен 0). Если этот бит равен 1, то ICW3 не
выводится в процессе инициализации и следом за ICW2 сразу должно
следовать ICW4.
Бит 0 (IC4) определяет, будет ли выводиться ICW4. Если ICW4
не выводится (бит 0 = 0), то оно автоматически заполняется
нулями. В описываемых ПЭВМ наличие ICW4 обязательно, т. к. тип
микропроцессора 8086/8088 задается в нем значением 1 в одном из
битов.
Управляющее слово ICW2 задает номер вектора прерывания для
прерываний уровня 0 (например 8 для IBM PC, у которых по уровню
0 происходят прерывания от таймера). Так как вектора аппаратных
прерываний располагаются подряд друг за другом, вывод в ICW2
значения 8 не только задает восьмой вектор для таймера, но и
девятый для прерываний уровня 1, десятый (0Ah) для прерываний
уровня 2 и т. д.
Управляющее слово ICW3 выводится только при наличии каскада
и имеет разный формат для ведущего и ведомых контроллеров. ICW3
ведущего указывает, к каким входам IR0 - IR7 подключены ведомые
контроллеры, при этом соответствующие биты устанавливаются в 1.
Остальные биты при этом равны 0. ICW3 следующего вида:
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 1 і 0 і 0 і 0 і 1 і 0 і 0 і 1 і 0 і
АДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДЩ
задает, что в каскаде имеется 2 ведомых контроллера,
подключенных к входам IR1 и IR4.
ICW3 ведомого (подчиненного, slave) ПКП в трех младших
битах задает номер уровня, на котором работает ведомый
контроллер. Для ведомого контроллера, работающего на уровне 1
ICW3 будет выглядеть следующим образом:
A0 7 6 5 4 3 2 1 0
|
adfun.ru
|
|
|
|