Программа инициализации устройств. 34 Задание. Спроектировать операционное устройство на базе микропроцессора кр580ВМ80. Организация озу

Вид материалаПрограмма

Содержание


Структура микропроцессорного ядра.
Проектирование памяти.
Организация подключения внешних устройств. Таблица адресации.
Организация параллельного ввода/вывода.
ВМД – внутренняя магистраль данных. DB
CUA – схема управления группой А (PORT A и старшие разряды PORT C) CUB
RESET – сброс – 1 на этом входе очищает регистр управляющего слова и устанавливает все порты в режим ввода. CS
Программирование и режимы работы ППИ
Порт А может работать в любом режиме (0,1,2). Порт В
Режимы работы ППИ
STB – строб приема – входной сигнал от ВУ, указывает на готовность ВУ передать информацию; INTR
IBF – подтверждение приема – выходной сигнал на ВУ, указывающий на окончание приема данных. вывод данных.
ОBF – выходной сигнал на ВУ, указывающий на готовность вывода информации от микропроцессора. INTR
ACK - входной сигнал от ВУ, подтверждающий прием данных. ввод /вывод данных.
Формирование управляющих слов ППИ
Организация последовательного ввода/вывода.
BD – буфер данных; RWCU –
MCU – блок формирования управления сигналов для ВУ; Основные сигналы: RESET
RxD - принимаемые данные от ВУ (вход приемника). SYNDET
TxRDY- сигнал готовности передатчика. RxRDY
...
Полное содержание
Подобный материал:

Министерство образования и науки РФ

Волгоградский Государственный Технический университет


СЕМЕСТРОВАЯ РАБОТА

на тему:

«Проектирование

операционного устройства»


Выполнил: студент группы ВМ-08

Жуков А. П.

Проверил: Егунов В. А.


Волгоград, 2010


Оглавление

Задание. 3

1.Структура микропроцессорного ядра. 4

2.Проектирование памяти. 5

3.Организация подключения внешних устройств. 9

3.1.Таблица адресации. 9

3.2.Организация параллельного ввода/вывода. 12

Структурная схема программируемого параллельного интерфейса КР580ВВ55 12

Программирование и режимы работы ППИ 13

Режимы работы ППИ 14

Формирование управляющих слов ППИ 16

3.3.Организация последовательного ввода/вывода. 17

Структурная схема УСАПП. 17

Программирование УСАПП КР580ВВ51. 18

Формирование управляющих слов УСАПП 19

3.4.Интервальный таймер 20

Организация временных интервалов в микро ЭВМ. 20

Структурная схема программируемого таймера КР580ВИ53 21

Программирование таймера. 22

Режимы работы таймера. 23

Формирование управляющих слов ПИТ. 26

3.5.Контроллер приоритетных прерываний. 27

Упрощенная структурная схема. 27

Режимы работы контроллера приоритетных прерываний. 28

Программирование контроллера. 29

Схема каскадного включения контроллеров приоритетных прерываний 33

4.Программа инициализации устройств. 34

Задание.


Спроектировать операционное устройство на базе микропроцессора КР580ВМ80.

Организация ОЗУ:

Объем памяти – 4Kb

Организация БИС ОЗУ – 1Kb4.

Организация ПЗУ:

Объем ПЗУ – 48Kb

Организация БИС ПЗУ – 8Kb8.

Количество цифровых входов – 16

Количество цифровых выходов – 32

Реализация цифровых входов/выходов:

ППИ (асинхронный режим)

УСАПП (асинхронный режим)

буферные регистры как альтернатива ППИ.

Реализация системы прерываний:

2 КПР в режиме опроса

Таймер/счетчик в режиме формирования одиночного строба с программным запуском.

  1. Структура микропроцессорного ядра.




Данное микропроцессорное устройство состоит из микропроцессора КР580ВМ80 (i8080), к которому посредством системной шины подключена оперативная память и ряд внешних устройств.

Инициирование и управление вводом-выводом периферийных устройств осуществляется микропроцессором, а периферийные устройства играют пассивную роль и сигнализируют только о своем состоянии, в частности о готовности к операциям ввода-вывода. Наиболее простыми эти действия оказывается для "всегда готовых" периферийных устройств. При необходимости ввода-вывода в соответствующем месте программы используются команды IN или OUT. Такая передача данных называется синхронным или безусловным вводом-выводом. Однако для большинства периферийных устройств до выполнения операций ввода-вывода необходимо убедится в их готовности к этим операциям, т.е. ввод-вывод оказывается асинхронным.
  1. Проектирование памяти.


Минимальной емкостью блока памяти является ёмкость БИС ОЗУ 1Kb, следовательно, для разделения памяти на 64 сегмента понадобится 6 (26=64) линий адреса А15-А10. Для адресации внутри микросхемы ОЗУ потребуется 10 линий адреса (210=1024) А9-А0.

Для обращения к микросхеме ПЗУ потребуется три линии адреса А15 А13. Максимальной емкостью блока памяти является ёмкость БИС ПЗУ 8Kb, следовательно, для адресации внутри блока понадобится 13 (213=8192) линий адреса А12-А0.



Используемая микросхема ПЗУ хранит байтовое слово, считываемое по шине данных D0-D7. Однако микросхема ОЗУ хранит тетраду битов. Следовательно, для унификации шины данных ОЗУ собирается в блоки из пар микросхем, первая из которых хранит младшую тетраду битов, а вторая - старшую.


Обращение к микросхемам ПЗУ:













Обращение к блокам ОЗУ:











Схема устройства блока ОЗУ





  1. Организация подключения внешних устройств.

    1. Таблица адресации.


По условию необходимо обеспечить 32 выходные линии и 16 входных линий. Ввод-вывод предлагается организовать с помощью параллельных программируемых интерфейсов (ППИ).

ППИ1, запрограммированный на работу в режиме 1 предоставляет два восьмибитных канала А и В, настроенных на асинхронный ввод.

ППИ2, запрограммированный на работу в режиме 1 предоставляет два восьмибитных канала А и В, настроенных на асинхронный вывод.

ППИ3, запрограммированный на работу в режиме 1 предоставляет два восьмибитных канала А и В, настроенных также на асинхронный вывод.

Таким образом, ППИ1 обеспечивает 16 входных линий, а ППИ2 и ППИ3 обеспечивают по 16 выходных линий.

Кроме того, по условию, к системе подключен универсальный синхронно-асинхронный приемо-передатчик (УСАПП), таймер и контроллер прерываний.

Для организации системы адресов внешних устройств используем дешифратор 38. Для МП ППИ и ПИТ представляют собой внешние устройства, занимающие по 4 адреса в адресном пространстве. Линии А0 и А1 не могут быть использованы при дешифрации для выбора микросхем, так как используются для адресации внутри микросхем.



Схема дешифрации адреса ВУ.



Устройство

Биты шины адреса

Адрес

Примечание

ППИ1

ХХХ00000

00h

к А




ХХХ00001

01h

к В




ХХХ00010

02h

к C




ХХХ00011

03h

РУС

ППИ2

ХХХ00100

04h

к А




ХХХ00101

05h

к В




ХХХ00110

06h

к C




XXX00111

07h

РУС

ППИ3

XXX01000

08h

к А




XXX01001

09h

к В




XXX01010

0Ah

к C




XXX01011

0Bh

РУС

УСАПП

XXX011Х1

0Dh

Control




XXX011Х0

0Ch

Data

ПИТ

XXX10000

10h

Счетчик 0




XXX10001

11h

Счетчик 1




XXX10010

12h

Счетчик 2




XXX10011

13h

РУС

КПр

XXX101X0

14h







XXX101X1

15h



    1. Организация параллельного ввода/вывода.

Структурная схема программируемого параллельного интерфейса КР580ВВ55


Блоки:

ВМД – внутренняя магистраль данных.

DB – 8-ми разрядный двунаправленный буфер данных.

RWCU – блок управления чтение-запись – обеспечивает управление внешними и внутренними передачами данных, управляющих слов и информации о состоянии ППИ.

CUA – схема управления группой А (PORT A и старшие разряды PORT C)

CUB – схема управления группой B (PORT B и младшие разряды PORT C)

PORT A, PORT B, PORT C – 8-ми разрядные порты ввода-вывода.

Входы:

RD – чтение – 0 на этом входе разрешает считать информацию с одного из регистров ППИ на шину данных, адрес регистров определяется состоянием входов А0 и А1.

WR – запись – 0 на этом входе разрешает запись информации с шины данных (D0 –D7) в один из регистров ППИ, адрес регистров определяется состоянием входов А0 и А1.


А0 и А1 – входы для адресации внутренних регистров ППИ.

Имя регистра

Адрес

регистра

А1

А0

PORT A

0

0

PORT B

0

1

PORT C

1

0

Регистр

управляющего

слова

1

1


RESET – сброс – 1 на этом входе очищает регистр управляющего слова и устанавливает все порты в режим ввода.

CS – выбор микросхемы. 0 на этом входе активизирует ППИ и подключает его к системным магистралям микропроцессора.

PORT A(7-0) – входы-выходы порта A.

PORT B(7-0) – входы-выходы порта B.

PORT C(7-0) – входы-выходы порта C.

Программирование и режимы работы ППИ


Программируемый параллельный интерфейс может работать в одном из нескольких режимах:
  • «0» - режим «0» - основной режим ввода-вывода.
  • «1» - режим «1» - стробируемый ввод–вывод.
  • «2» - режим двунаправленной передачи информации.

Режим работы ППИ устанавливается с помощью управляющего слова. Одним управляющим словом можно задать различные режимы работы для каждого канала ППИ.

Порт А может работать в любом режиме (0,1,2).

Порт В может работать в 2-х режимах (0,1).

Порт С может работать на передачу данных только в режиме «0» - в остальных режимах служит для передачи управляющих сигналов, которые сопровождают обмен данными по каналам А и В.

Формат управляющего слова для ППИ



При D7= 1 ППИ можно настроить на работу в одном из режимов (0,1,2).

При D7= 0 ППИ будет переведен в режим установки нуля или единицы в требуемом разряде канала С. В этом режиме управляющее слово будет выглядеть следующим образом:

D7

D6

D5

D4

D3

D2

D1

D0

0

x

x

x

1

1

0

1




№ требуемого разряда порта С что установить(0 или 1)

(задан в двоичной форме номер

шестого разряда канала С)

При подаче такого управляющего слова в шестом разряде канала С установится единица.

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


Режим 0 – в этом режиме каждый порт ППИ работает автономно и может быть настроен на ввод или вывод информации. Порт С дополнительно разделен на два порта по четыре разряда, при этом эти половины также могут быть настроены на ввод или вывод информации

Режим 1 – в этом режиме ППИ обеспечивает стробируемый однонаправленный обмен информацией с внешних устройств (ВУ). Передача данных осуществляется по портам А и В, а линии порта С являются служебными и управляют процессом передачи информации. В этом режиме предусмотрены три варианта настройки:

ввод данных.

Информация принимается по портам РА и РВ, а разряды порта РС управляют процессом передачи данных путем генерации следующих сигналов:

STB – строб приема – входной сигнал от ВУ, указывает на готовность ВУ передать информацию;

INTR (запрос прерывания) – выходной сигнал на микропроцессор, позволяющий вызвать подпрограмму (в режиме прерывания) для приема данных от внешнего устройства.

IBF – подтверждение приема – выходной сигнал на ВУ, указывающий на окончание приема данных.

вывод данных.

Информация выдается по портам РА и РВ, а разряды порта РС управляют процессом передачи данных путем генерации следующих сигналов:

ОBF – выходной сигнал на ВУ, указывающий на готовность вывода информации от микропроцессора.

INTR - выходной сигнал на микропроцессор, вызывающий подпрограмму в режиме прерывания для выдачи данных.

ACK - входной сигнал от ВУ, подтверждающий прием данных.

ввод /вывод данных.

Информация выдается по порта РА и принимается по порту РВ, а разряды порта РС управляют процессом передачи данных путем генерации сигналов, аналогичных предыдущим вариантам настройки.

Формирование управляющих слов ППИ


ППИ1:

Mode Selection (А и В в режиме 1, А и В настроены на ввод):

1011X11X=b6h

Bit Set/Reset (прерывания по каналам А и В разрешены)

0XXX1001=09h для канала А

0XXX0101=05h для канала В

ППИ2:

Mode Selection (А и В в режиме 1, А и В настроены на вывод):

1010X10X=а4h

Bit Set/Reset (прерывания по каналам А и В разрешены)

0XXX1001=09h для канала А

0XXX0101=05h для канала В

ППИ3:

Mode Selection(А и В в режиме 1, А и В настроены на вывод):

1010X10X=а4h

Bit Set/Reset (прерывания по каналам А и В разрешены)

0XXX1001=09h для канала А

0XXX0101=05h для канала В
    1. Организация последовательного ввода/вывода.

Структурная схема УСАПП.





Основные блоки:

BD – буфер данных;

RWCU – схема управления чтение/запись;

TBF – буфер передатчика;

RBF - буфер приемника;

TCU - схема управления передатчиком;

RCU - схема управления приемником;

MCU – блок формирования управления сигналов для ВУ;

Основные сигналы:

RESET- «сброс» установка в исходное состояние

CLK - сигналы синхронизации

С/D- 1 – чтение/запись данных, 0 – чтение/запись управления слов (эквивалент А0)

TxD - линия передачи данных от МП (выход передатчика), при отсутствии передачи – линия устанавливается в «1»

RxD - принимаемые данные от ВУ (вход приемника).

SYNDET- задает вид синхронизации: «1» - внутренняя синхронизация, «0» - внешняя синхронизация.

TxC - вход синхронизирующих сигналов передатчика.

RxC- вход синхронизирующих сигналов приемника.

TxE- сигнал «конец передачи» (выходной сигнал, подаётся на КПП).

TxRDY- сигнал готовности передатчика.

RxRDY - готовность приемника (TxRDY и RxRDY – обычно подаются на КПП).

DSR- сигналы готовности периферийного устройства. Посылается от периферийного устройства на МП. Уровень «0» сообщает о том, что периферийное устройство готово к обмену данными.

DTR- сигнал готовности МП. Посылается от МП к периферийному устройству. «0» на этом выходе говорит о том, что МП готов к обмену данными.

CTS- сигнал готовности к передаче. Посылается от периферийного устройства на МП, «0» на этой линии говорит, что устройство готово к приему и МП может передавать данные.

RTS- запрос передачи, посылается от МП на периферийное устройство, «0» на этом выходе сообщает периферийному устройству, что МП приготовился передавать данные (перешел в режим передачи данных).

Программирование УСАПП КР580ВВ51.


После начальной установки (сигнал RESET) необходимо задать режим работы УСАПП путем подачи на него управляющего слова (2 вида):

- инструкция режима;

- команда.

Инструкция режима задает синхронный или асинхронный режим работы, формат передаваемых данных, скорость приема или передачи, необходимость и вид

контроля. Инструкция режима вводится в УСАП сразу после установки УСАП в исходное состояние (программно или после сигнала RESET), инструкция режима меняется только при смене режима.

Формат инструкции режима при асинхронном обмене.



Команды подаются на УСАПП после инструкции режима и управляют выполнением конкретных операций.

Формат команды при асинхронном обмене.


Формирование управляющих слов УСАПП


X1XXXXXX=40h инструкция управления (начальный сброс)

01111110=7eh инструкция режима: 1 стоп-бит, четный паритет, 8-битный символ, коэффициент деления 1:16

00000111=07h инструкция управления
    1. Интервальный таймер

Организация временных интервалов в микро ЭВМ.


Для формирования временных интервалов при управлении реальными объектами существует 2 способа:
  • использование подпрограмм временных задержек. Этот метод имеет весьма существенный недостаток: во время задержек микропроцессор ничего делать не может, так как занят выполнением подпрограммы задержки.
  • аппаратный способ – формирование временных задержек с помощью специальных микросхем, которые, в зависимости от заданного режима, могут формировать различные «временные картины».

Для реализации аппаратного способа может применяется программируемый интервальный таймер КР580ВИ53. Этот таймер представляет собой программируемый 3-х канальный таймер – счетчик. Каждый канал это 16-и разрядный регистр, в который записывается заданное число. При прохождении каждого синхронизирующего импульса выполняется операция вычитания, уменьшая содержимое счетчика на 1, операция повторяется до тех пор, пока содержимое счетчика не станет равным 0. Длительность отсчитываемого промежуток времени определяется числом, которое было изначально записано в регистр и периодом повторения синхронизирующих импульсов. Все 3 канала таймера работают независимо друг от друга, длительность интервала может задаваться программно в двоичной или в двоично-десятичной форме.

Каждый канал может работать в одном из 6-и режимов:

0 – выдача сигналов прерывания по счету до конечного числа.

1 – программируемый ждущий одновибратор.

2 – генератор тактовых импульсов.

3 – генератор прямоугольных импульсов.

4 – генератор программно управляемого строба.

5 – генератор схемотехнически управляемого строба.

Процесс формирования временных интервалов в каждом канале управляется внешним сигналом, подаваемым на вход разрешения работы.

Работа таймера тактируется сигналами внешнего генератора с частотой до 2 мГц, длительность тактового импульса – 0,5 мкс.

Структурная схема программируемого таймера КР580ВИ53


BD – буфер данных.

RGR – регистр управляющего слова.

CT0 – CT2 – счетчики каналов.

CLK – входы синхронизации счетчиков.

GATE – входы управления счетчиками (1 на этом входе разрешает работу счетчика).

OUT – выходные сигналы счетчиков.

Программирование таймера.


Установка режима работы осуществляется программным путем:
  • загрузка трех (для каждого канала) управляющих слов в регистр управляющего слова;
  • загрузка (один или два байта) содержимого каждого канала счетчика (по адресам соответствующих каналов).

Если загрузка счетчика осуществляется 2-мя байтами, то необходимо использовать 2 команды OUT.

Формат регистра управляющего слова.



В разрядах D7, D6 задается номер программируемого канала.

Разряды D5, D4 задают формат загрузки канала (в счетчик канала можно загрузить один или два байта, задающих число, определяющее длительность требуемой задержки времени).

Разряды D3, D2, D1 режим работы программируемого канала.

Разряд D0 задает формат загрузки счетчика канала (длительность можно задать в двоичной или в двоично-десятичной форме).

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


Режим 0. Выдача сигнала прерывания по счету до конечного числа.

На вход CLK необходимо подавать последовательность прямоугольных тактовых импульсов. После установки режима на выходе OUT соответствующего канала устанавливается 0. Далее загружается счетчик канала (N=4). При подаче 1 на вход GATE счетчик начинает работать. Содержимое счетчика после прихода каждого тактового импульса уменьшается на 1. После того, как в счетчике число N станет равным 0, на выходе OUT формируется уровень логической 1. Эта 1 будет сохраняться на выходе OUT до тех пор, пока канал не будет перезагружен на новый режим работы или новым числом.

При перезагрузке новым числом N в процессе счета числа, при загрузке младшего байта счет останавливается, а при загрузке старшего байта начинается новый цикл счета.



Режим 1. Программируемый одновибратор.

В этом режиме после задания режима на выходе OUT устанавливается уровень логической 1. После записи числа N в счетчик канала и разрешения работы канала (GATE=1), на выходе канала формируется уровень логического 0 и начинается счет. При достижении конечного числа (N=0) на выходе OUT вновь устанавливается логическая 1. При перезагрузке N в режиме счета текущий режим сохраняется, а новый начинается только с новым сигналом GATE.



Режим 2. Генератор тактовых импульсов.

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



Режим3. Генератор прямоугольных импульсов.

В этом режиме на выходе OUT канала будет формироваться 1 в течение первой половины заданного интервала времени (N). В течение второй половины будет формироваться 0. Если число нечетное, то длительность 1 увеличивается на один период тактовой частоты. Число N должно быть не меньше 3.

При перезагрузке новым N меняется длительность периода следования.



Режим 4 . Программно – управляемый строб.

После установки режима и загрузки в соответствующий канал числа N, после появления сигнала GATE , равного 1, начинается счет. После окончания счета на выходе OUT генерируется 0 длительностью в 1 период тактовой частоты. При перезагрузке числа N в процессе счета начинается новый цикл счета.

Режим 5. Аппаратно-управляемый строб.

Аналогичен режиму 4, только при перезагрузки новым N в режиме счета, текущий цикл доводится до конца, после этого начинается новый цикл с новым N.

В процессе работы таймера, содержимое любого счетчика может быть прочитано двумя способами:

1 способ: чтение «налету», осуществляется следующим образом.

Записывается в таймер управляющее слово, в котором D4= 0 и D5 = 0 (режим защелкивания). Читается содержимое счетчика канала, начиная с младшего байта, с помощью двух команд IN.

После окончания чтения работа таймера автоматически возобновляется.

2 способ:

- остановить работу счетчика, убрав сигнал GATE или прекратив подачу тактовых импульсов на выход CLK;

- прочитать содержимое счетчика требуемого канала, начиная с младшего байта, с помощью двух команд I N;

- возобновить работу счетчика, восстановив сигнал GATE, или подачу тактовых импульсов на выход CLK.

Формирование управляющих слов ПИТ.


00111010=b4h счетчик 0, чтение/запись сначала младшего байта затем старшего, режим работы – 5, двоичный режим.
    1. Контроллер приоритетных прерываний.

Упрощенная структурная схема.





Основные блоки:

СМР – каскадный буфер компаратор. Используется при каскадном включении КПП.

СU – система управления, вырабатывает сигнал прерывания и формирует трех байтную команду САLL.

RGI – регистр запросов прерываний. Используется для хранения всех уровней прерываний на которые поступили запросы.

PRB – схема принятий решений по приоритетам. Идентифицирует приоритеты запросов и выбирает запрос с наивысшим приоритетом.

RGM – регистр маскирования прерываний. Обеспечивает запрещение одной или нескольких линий запросов прерываний.

ISR – регистр обслуживаемых прерываний. Сохраняются уровни запросов прерываний, которые находятся на обслуживании МП.

Сигналы:

CAS 0 - CAS 2 – входы , выходы каскадирования.

SP –признак подчинения (SP = 1 микросхема становится ведущей; SP = 0 микросхема становится ведомой)

IR 0 – IR 7 – входы запросов на прерывание.

INТ – запрос на обслуживание прерывания.

INTA - подтверждение прерывания.

При обслуживании прерываний по запросу от ВУ выполняется следующая последовательность операций:

-запросы на прерывание поступают на входы IR 0 – IR 7;

-оценивается приоритет поступившего запроса;

-формируется сигнал INТ на МП;

-МП принимает сигнал INТ и, если прерывания разрешены, формирует ответный сигнал INTA;

-после получения первого сигнала INTA КПП выдает на шину данных код команды САLL;

-в ответ МП формирует последовательно еще два сигнала INTA, по которым КПП формирует последовательно на шине данных шестнадцатиразрядный адрес (начиная с младшего байта) подпрограммы обслуживания данного прерывания.

-после этого микропроцессор начинает выполнять подпрограмму, соответствующую данному прерыванию.

Режимы работы контроллера приоритетных прерываний.


Контроллер может работать в одном из четырех режимах режима:

1. Режим полностью установленных приоритетных прерываний – устанавливается автоматически после выполнения команд начальной установки и не требует дополнительно управляемых слов.

2. Режим перемещаемых приоритетов прерывания, отличается от (1) тем, что после выполнения поступившего прерывания, запрос этого уровня прерывания определяется в дальнейшем как низший по уровню приоритета.

3. Режим специального маскирования. Этот режим дает возможность на некотором участке программы выборочно осуществлять работу с различными приоритетами и разрешает прерывание работы программы даже от входов с более низким приоритетом.

4. Режим считываемых прерываний. В этом режиме, прерывания осуществляется программно, определение наличия запроса и его номера производится путем чтения из контроллера его словосостояния (подпрограммы вызываются программно из основной программы).

Программирование контроллера.


Установка контроллера в исходное состояние и настройка его на требуемый режим обслуживания прерываний программируется двумя типами команд:
  1. команды инициализации ICW.
  2. команды управления OCW.

Команды инициализации ICW 1 и ICW 2 вводятся последовательно.

Команда инициализации ICW 1- устанавливает контроллер в исходное состояние и присваивает низший приоритет входу IR 7. Команда ICW 1 выдается при А0 = 0


Формат команды ICW 1

Разряд D1 задает количество КПП в системе управления.

Разряд D2 задает адресный интервал между адресами подпрограмм обслуживания прерываний.

Для определения младших байтов адресов подпрограмм обслуживания прерываний для контроллера разработаны специальные таблицы.

Адресный интервал 4 байта




Адресный интервал 8 байта

Запрос

D7

D6

D5

D4

D3

D2

D1

D0




Запрос

D7

D6

D5

D4

D3

D2

D1

D0

IR0

A7

A6

A5

0

0

0

0

0




IR0

A7

A6

0

0

0

0

0

0

IR1

A7

A6

A5

0

0

1

0

0




IR1

A7

A6

0

0

1

0

0

0

IR2

A7

A6

A5

0

1

0

0

0




IR2

A7

A6

0

1

0

0

0

0

IR3

A7

A6

A5

0

1

1

0

0




IR3

A7

A6

0

1

1

0

0

0

IR4

A7

A6

A5

1

0

0

0

0




IR4

A7

A6

1

0

0

0

0

0

IR5

A7

A6

A5

1

0

1

0

0




IR5

A7

A6

1

0

1

0

0

0

IR6

A7

A6

A5

1

1

0

0

0




IR6

A7

A6

1

1

0

0

0

0

IR7

A7

A6

A5

1

1

1

0

0




IR7

A7

A6

1

1

1

0

0

0

Команда ICW 2 – задает старший байт адреса подпрограмм обслуживания прерываний. Команда ICW 2 выдается при А0 = 1

Формат команды ICW 2

А0




D7

D6

D5

D4

D3

D2

D1

D0

1




А15

А14

А13

A12

А11

А10

А9

А8







Старший байт адреса подпрограмм

обслуживания прерывания

После подачи команд инициализации ICW 1и ICW 2, контроллер подготовлен к приему запросов и может работать в режиме с фиксированными приоритетами, в этом режиме приоритеты упорядочены (IR 0 - имеет высший приоритет, IR 7 – имеет низший приоритет).

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

Команда ОCW 1 – осуществляет установку /сброс разрядов регистра маскирование прерываний (RGM). Установка «1» в некоторых разрядах RGM приводит к запретам прерываний по соответствующему входу.

А0




D7

D6

D5

D4

D3

D2

D1

D0

1




М7

М6

М5

М4

М3

М2

М1

М0

К примеру: подача команды OCW1 такого содержания запретит прерывания по входам IR1 и IR5

1




0

0

1

0

0

0

1

0

Команда ОCW 2 – осуществляет сброс разрядов регистра обслуживания прерываний ICR и управляет циклическим сдвигом приоритетов запроса. Команда OCW2 выдается при A0=0.

D7

D6

D5

D4

D3

D2

D1

D0




0

0

1

0

0

0

0

0

установлен фиксированный приоритет

1

0

1

0

0

0

0

0

циклический сдвиг приоритета (присвоение обслуженному запросу низшего приоритета)

0

1

1

0

0

L2

L1

L0

устанавливает фиксированный приоритет и отменяет запрос по входу с адресом L2 L1 L0 .

1

1

1

0

0

L2

L1

L0

устанавливает циклический сдвиг приоритетов и отменяет запрос по входу с адресом L2 L1 L0 .

1

1

0

0

0

L2

L1

L0

устанавливает циклический сдвиг и входу с адресом L2 L1 L0 присваивают низший приоритет

Команда ОCW 3 – позволяет задать режим специального маскирования (D6;D5), режим опроса (D2) и произвести считывание состояния контроллера (D1; D0).



А0




D 7

D 6

D 5

D 4

D 3

D 2

D 1

D 0




0




х







0

1


































0

0

запрет чтения

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

0

0







1

0

чтение RGI

сброс режима

1

0







1

1

чтение ISR

установка режима

1

1





































1

режим опроса

























0

нет опроса




Режим специального маскирования дает возможность на некотором участке программы управлять запросами с различными приоритетами и разрешать прерывания даже от входов с меньшими приоритетами. Задается командой ОCW 3, при D6=1 и D5=1 и действует до сброса по команде ОCW 3 при D 6 = 1 и D 5 = 0.

Режим опроса устанавливается командой ОCW 3, при D2 = 1 контроллер принимает запросы на прерывания и формирует словосочетание, в котором содержится номер запроса с наивысшим приоритетом. Прием словосочетания осуществляется при помощи команды IN при А0 = 0.Дальнейший анализ и вызов соответствующей программы осуществляется программно. Можно также прочитать содержимое регистров RGI (регистр запросов прерываний) и ISR (регистр обслуживаемых прерываний) после подачи команды ОCW 3 с соответствующими D0 и D1. Чтение осуществляется командой IN при А0 = 1.

Можно прочитать содержимое регистра RGM (регистр маскирования прерывания) с помощью команды IN при А0 = 1 без предварительной подачи команды ОCW 3.

Схема каскадного включения контроллеров приоритетных прерываний




  1. Программа инициализации устройств.


;Инициализация ППИ

;Описание констант

PPI1_addr EQU 03h ;РУС ППИ1

PPI2_addr EQU 07h ;РУС ППИ2

PPI3_addr EQU 0bh ;РУС ППИ3

MS1 EQU 10110110b ;ModeSelection ППИ1

BSR_A_1 EQU 00001001b ;BSR для канала А

BSR_B_1 EQU 00000101b ;BSR для канала В

MS2 EQU 10100100b ;ModeSelection ППИ2

BSR_A_2 EQU 00001001b ;BSR для канала А

BSR_B_2 EQU 00000101b ;BSR для канала В

MS3 EQU 10100100b ;ModeSelection ППИ3

BSR_A_3 EQU 00001001b ;BSR для канала А

BSR_B_3 EQU 00000101b ;BSR для канала В

;Запись управляющих слов

MVI A, MS1

OUT PPI1_addr

MVI A, BSR_A_1

OUT PPI1_addr

MVI A, BSR_B_1

OUT PPI1_addr

MVI A, MS2

OUT PPI2_addr

MVI A, BSR_A_2

OUT PPI2_addr

MVI A, BSR_B_2

OUT PPI2_addr

MVI A, MS3

OUT PPI3_addr

MVI A, BSR_A_3

OUT PPI3_addr

MVI A, BSR_B_3

OUT PPI3_addr


;Инициализация УСАПП

;Описание констант

USAPP_addr EQU 0dh ;Control УСАПП

USAPP_Reset EQU 01000000b ;Инструкция сброса

USAPP_Mode EQU 01111110b ;Инструкция режима

USAPP_Control EQU 00000111b ;Инструкция управления

;Запись инструкций

MVI A, USAPP_Reset

OUT USAPP_addr

MVI A, USAPP_Mode

OUT USAPP_addr

MVI A, USAPP_Control

OUT USAPP_addr


;Инициализация ПИТ

;Описание констант

CLC_addr EQU 13h ;РУС ПИТ

CLC_Mode EQU 00111010b ;Инструкция управления

;Запись инструкций

MVI A, CLC_Mode

OUT CLC_addr


;Инициализация контроллера прерываний

;Описание констант

Master_addr EQU 14h

Slave_addr EQU 14h

Master_ICW1 EQU 00010100b ;ICW1 для ведущего

Master_ICW1 EQU 11100000b ;ICW2 для ведущего

Master_ICW3 EQU 11111111b ;ICW3 для ведущего

Master_OCW3 EQU 001101100b ;OCW3 режим опроса

Master_MSK EQU 11111111b ;Маска прерываний

Master_EOI EQU 01100100b ;EOI ведущего на IRQ4

Slave_ICW1 EQU 00110110b ;ICW1 для ведомого

Slave_ICW2 EQU 11100000b ;ICW2 для ведомого

Slave_ICW3 EQU 00000111b ;Ведомый, код 7

Slave_MSK EQU 11111111b ;Маска прерываний

Slave_EOI EQU 01100000b ;EOI ведомого на IRQ10

;Запись инструкций

MVI A, Master_ICW1

OUT Master_addr

MVI A, Master_ICW2

OUT Master_addr+1

MVI A, Master_ICW3

OUT Master_addr+1

MVI A, Master_OCW3

OUT Master_addr

MVI A, Master_MSK

OUT Master_addr+1

MVI A, Slave_ICW1

OUT Slave_addr

MVI A, Slave_ICW2

OUT Slave_addr+1

MVI A, Slave_ICW3

OUT Slave_addr+1

MVI A, Slave_OCW3

OUT Slave_addr

MVI A, Master_MSK

OUT Master_addr+1