adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 1 і 0 і 0 і 0 і 0 і 0 і 0 і 0 і 1 і
АДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДЩ
Если ведомый контроллер работает на уровне 4, то его ICW3 будет
таким:
- 28 -
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 1 і 0 і 0 і 0 і 0 і 0 і 1 і 0 і 0 і
АДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДЩ
Последнее слово инициализации (ICW4) имеет следующий
формат:
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 1 і 0 і 0 і 0 іSFNMі BUFі M/SіAEOIі mPMі
АДДДДБДДДДБДДДДБДДДДБДВДДБДВДДБДВДДБДВДДБДВДДЩ
і і і і і
і і і і АДДД> 1=8088/8086
і і і і 0=8080/8085
і і і АДДДДДДДД> 1=AEOI
і і і 0=EOI
і і АДДДДДДДДДДДДД> 1=ведущий
і і 0=ведомый
і і (только при BUF=1)
і АДДДДДДДДДДДДДДДДДД> 1=режим
і буферизации
АДДДДДДДДДДДДДДДДДДДДДДД> 1=специальный
вложенный режим
Бит 0 (mPM) определяет, с каким микропроцессором работает
ПКП (0 - 8080/8085, 1 - 8086/8088).
Бит 1 (AEOI), равный 1, задает режим автоматического
завершения обработки прерывания, описанный выше. Если этот бит
равен 0, действует обычное соглашение: процедура обработки
аппаратного прерывания должна сама сбрасывать свой бит в ISR.
Бит 2 (M/S) игнорируется, если бит 3 (BUF) = 0. При наличии
одного контроллера и BUF = 1 устанавливается в 1. При наличии
каскада должен быть равен 1 только для ведущего контроллера.
Бит 4 (SFNM) устанавливает специальный вложенный режим,
применяемый при каскадировании для определения приоритетов
запросов от разных контроллеров (Special Fully Nested Mode).
После инициализации ПКП готов к работе в заданном режиме.
Для изменения режимов работы, задаваемых при инициализации
требуется переинициализировать его заново.
В процессе работы с ПКП Вы можете без переинициализации:
- маскировать и размаскировать аппаратные прерывания;
- изменять приоритеты уровней;
- издавать команду завершения обработки аппаратного пре-
рывания;
- устанавливать/сбрасывать режим специальной маски;
- переводить контроллер в режим опроса и считывать
состояние регистров ISR и IRR; для этого Вам потребуется вывести
в порты ПКП одно из трех слов рабочих приказов OCW1 - OCW3.
- 29 -
Формат первого слова рабочих приказов OCW1:
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 1 і M7 і M6 і M5 і M4 і M3 і M2 і M1 і M0 і
АДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДЩ
Единичное значение одного из битов М0 - М7 означает, что
прерывания соответствующего уровня (IR0 - IR7) маскируются и не
будут обрабатываться контроллером.
Второе слово рабочих приказов (OCW2) предназначено для
вывода команды завершения обработки аппаратного прерывания
(EOI), циклического сдвига и явного изменения приоритетов
уровней. Назначение битов OCW2 следующее:
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 0 і R і SL і EOIі 0 і 0 і L2 і L1 і L0 і
АДДДДБДВДДБДВДДБДВДДБДДДДБДДДДБДВДДБДВДДБДВДДЩ
і і і і і АДД> Эти 3 бита опреде-
і і і і АДДДДДДД> ляют номер уровня
і і і АДДДДДДДДДДДД> прервания, если он
і і і требуется в команде.
і і і
і і і
і і АДДДДДДДДДДДДДДДДДДДДДДДДДДД> 1-команда завер-
v v шения обработки
ЪДДДДВДДДДї аппаратного
і 0 і 0 і Используется вместе с EOI=1 прерывания
ГДДДДЕДДДДґ
і 0 і 1 і Специфицированный EOI (сбрасывает бит, определя-
ГДДДДЕДДДДґ емый полями L0 - L2 в ISR)
і 1 і 0 і Циклический сдвиг приоритетов влево на одну
ГДДДДЕДДДДґ позицию
і 1 і 1 і Назначение низшего приоритета уровню, определяе-
АДДДДБДДДДЩ мому полями L0 - L2
Как уже говорилось, процедура обработки аппаратного
прерывания должна перед своим завершением очистить свой бит в
ISR выводом команды завершения обработки прерывания (End Of
Interrupt, EOI). Существует два варианта команды EOI: обычный и
специфицированный EOI. Обычный EOI очищает бит в ISR, соот-
ветствующий прерыванию с максимальным приоритетом. Специфи-
цированный EOI (R=0, SL=1, EOI=1, L0 - L2 равно номеру уровня
прерывания) очищает в ISR бит, соответствующий прерыванию с
номером, указанным в L0 - L2 независимо от его приоритета.
Команды с битом R=1 позволяют изменить приоритеты уровней.
Циклический сдвиг приоритетов сдвигает приоритеты влево на
единицу, при этом, если после обычного распределения
приоритетов, издать команду циклического сдвига, уровень 0
получит низший приоритет, уровень 1 - наивысший, уровень 2 -
следующий за ним и т.д. Команда явного назначения низшего
приоритета одному из уровней изменяет приоритеты остальных
уровней циклически. Таким образом, если Вы зададите низший
- 30 -
приоритет уровню 5, то уровень 6 получит наивысший.
Третье слово рабочих приказов OCW3 позволяет установить и
отменить режим специальной маски, перевести контроллер в режим
опроса и прочитать содержимое IRR и ISR. Назначение битов OCW3
приведено на рисунке
A0 7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і 0 і 0 іESMMі SMMі 0 і 1 і P і RR і RISі
АДДДДБДДДДБДВДДБДВДДБДДДДБДДДДБДВДДБДДВДБДВДДЩ
ЪДДДДДДДДДЩ і і і і
і ЪДДДДДДДДДДЩ АДВДДДЕДДДЕДД> 1-режим опроса
v v v v v
ЪДДДВДДДї ЪДДДВДДДВДДДї
і 1 і 0 і-Отменить режим і 0 і 1 і 0 і Чтение IRR
ГДДДЕДДДґ специальной маски ГДДДЕДДДЕДДДґ
і 1 і 1 і-Установить режим і 0 і 1 і 1 і Чтение ISR
АДДДБДДДЩ специальной маски АДДДБДДДБДДДЩ
Единичное значение бита Р (бит опроса, Polling Bit)
переводит контроллер в режим опроса. Если после этого считать
данные из порта с четным адресом, в регистр AL загрузится байт
следующего содержания:
7 6 5 4 3 2 1 0
ЪДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДВДДДДї
і I і 0 і 0 і 0 і 0 і L2 і L1 і L0 і
АДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДБДДДДЩ
Если I = 1, значит имеются запросы на прерывания и тогда L0
- L2 - это номер уровня с наивысшим приоритетом, по которому
имеется запрос на прерывание.
Если P=0, Вы можете считать информацию из ISR или IRR. Для
этого необходимо издать команду чтения ISR или IRR (см. рисунок
выше) и затем считать значение из порта с нечетным адресом.
Единичное значение бита ESMM позволяет в зависимости от
значения бита SMM установить или отменить режим специальной
маски.
- 31 -
E4. Таймер и генерация звукаF
E4.1. Программируемый таймер 8253F
Для задания временных интервалов и формирования сигналов с
различными временными параметрами в IBM PC/XT применяется
программируемый таймер 8253 (отечественный аналог КР580ВН53), в
AT - 8254. С точки зрения программиста они идентичны. В состав
таймера входят: буфер шины данных, схема управления
вводом-выводом и три независимых канала, каждый из которых
содержит регистр режима, схему управления каналом, буфер и
16-разрядный счетчик.
Программирование канала осуществляется путем вывода
управляющих слов в регистр режима каналов и начального значения
в его счетчики. Каждый канал имеет управляющий вход GATE и выход
OUT и может работать в одном из следующих шести режимов.
-Режим 0- (прерывание терминального счета). После записи
управляющего слова в регистр режима канала на выходе ОUT
устанавливается напряжение низкого уровня; загрузка счетчика не
|
adfun.ru
|
|
|
|