- •10. Архитектура мк48
- •Арифметико-логическое устройство
- •Устройство управления микроконтроллера
- •Организация ввода/вывода информации
- •Память микроконтроллера
- •11. Однокристальные микроконтроллеры iMcs48 система команд
- •2. Команды логических операций
- •3. Команды передачи управления
- •12. Архитектура мк51
- •Арифметическо-логическое устройство
- •Устройство управления и синхронизации
- •13. Организация памяти в мк51
- •Сегменты памяти
- •Наращивание памяти
- •14. Организация подсистемы ввода/вывода в мк51
- •15. Организация таймеров и системы прерываний в мк51
- •Организация системы прерываний
- •16. Система команд мк51
- •Группа команд логических операций
- •Группа команд операций с битами
- •Группа команд передачи управления
- •17. Архитектура iMcs96
- •Почему iMcs96 быстрее, чем 8051?
- •20. Организация процессорного порта в iMcs96
- •21. Организация последовательного порта в iMcs96
- •Преобразование параллельного кода в последовательный
- •Протокол обмена
- •22. Система прерываний в iMcs96
- •24. Система команд iMcs96
- •25. Архитектура mc68hc05
- •Регистровая модель
- •Карта памяти для mc68hc705c8
- •Способы адресации
- •26. Архитектура mc68hc08
- •Регистровая модель
- •Способы адресации
- •Структура mc68hc11e9
- •Регистры
- •Способы адресации:
- •1. Подразумеваемая (inh):
- •2. Непосредственная (imm):
- •3. Прямая (dir):
- •5. Индексная с 8-битным смещением (IX, iy):
- •6. Относительная - в командах условного перехода (rel):
- •Система команд
22. Система прерываний в iMcs96
Запросы прерывания текущей программы могут поступать от внешних источников или формироваться внутри микроконтроллера в различных периферийных устройствах. Общее число источников запросов прерывания у микроконтроллеров разных типов может быть 21, 28 или 37.
Запросы прерывания могут маскироваться путем посылки кодов маски в соответствующие регистры специальных функций. В микроконтроллерах всех типов имеется программный контроллер прерываний (PIC). Обслуживание запроса прерывания с использованием PIC заключается в переходе от выполнения текущей программы к выполнению другой определенной программы, составленной разработчиком программного обеспечения.
Адрес первой команды каждой прерывающей программы (вектор прерывания) хранится в определенной паре ячеек ПЗУ в области памяти, отведенной для хранения специальных данных. После завершения выполнения прерывающей программы происходит возврат к прерванной программе.
Прерывающая программа в свою очередь может быть прервана при поступлении любого незамаскированного запроса прерывания вне зависимости от соотношения приоритетов запроса, вызвавшего переход к данной программе, и нового запроса прерывания.
В микроконтроллерах некоторых типов кроме программного контроллера прерываний имеется микропрограммный контроллер прерываний (PTS). Любой запрос прерывания, кроме нескольких особых запросов, может быть направлен для обслуживания или в PIC или в PTS. Прерывание обслуживается через PTS, если по соответствующему разряду регистра PTSSEL записана 1.
Обслуживание запроса прерывания с использованием PTS заключается в выполнении типовой микропрограммы, при этом выполнение операций по микропрограмме совмещается во времени с выполнением команд текущей программы или подпрограммы обработки обычного прерывания. Микропрограммы PTS охватывают, в основном, пересылки данных. Прерывания, обслуживаемые PTS, отрабатываются быстрее, чем те, которые обслуживаются обычным способом. Однако, программировать PTS непросто, а отлаживать еще сложнее.
Таблица источников прерывания (источники запросов на прерывание)
№ разряда |
RG |
Источники запросов |
Приоритет/адрес вектор: | |
IRS |
PTS (KC) | |||
0 |
INT_PEND, INT_MASK, PTSEL, 0-7, PTSSRV, 0-7 |
T1 переполнение таймера T2 переполнение таймера |
0/2000h |
15/2040h |
1 |
A/D - Аналого-цифровое преобразование завершено |
1/2002 |
16/2042 | |
2 |
FIFO полон ( 6 значений, 7ой в резерве) HIS_RG полон |
2/2004 |
17/2044 | |
3 |
Любая операция в HSO.0 |
3/2006 |
18/2046 | |
4 |
HSI.0 |
4/2008 |
19/2048 | |
5 |
Software T0,T1,T2,T3,RESET T2,начало A/D->все вызывают прерывание таймера HS0 |
5/200A |
20/204A | |
6 |
TI,RI -> Последовательный порт |
6/200C |
21/204C | |
7 |
EXTINT,ACH.7 – внешнее прерывание |
7/200E |
22/204E | |
0 |
INT_PEND, INT_MASK1, PTSEL, 8-14, PTSSRV, 8-14 |
TI |
8/2030h |
23/2050h |
1 |
RI |
9/2032h |
24/2052h | |
2 |
HSI.FIFO 4 |
10/2034 |
25/2054 | |
3 |
T2 CAPT |
11/2036 |
26/2056 | |
4 |
T2 переполнение |
12/2038 |
27/2058 | |
5
|
EXTINT1 внешнее прерывание |
13/203А |
28/205А | |
6 |
HSI.FIFO – полон |
14/203C |
29/205C | |
7 |
NMI не маскированное прерывание |
30/203E |
|
Возрастание приоритета в таблице от начала к концу!!!
Контроллер прерываний может обрабатывать прерывания без перехода к программе. Нужно просто настроить блок
Структура контроллера прерываний
Первый раз нужно сгенерировать прерывание искусственно для этого записать единицу в соответствующий разряд регистра. Естественные прерывания сверху ловит детектор восходящий фронт.
В регистре INT_MASK - разрешение прерываний
ПШ - приоритетный шифратор
В архитектуре регистры разделены на две части, поскольку в начальной серии BH было только 8 запросов на прерывания; 15 запросов являются маскируемыми, то есть любое прерывание, чтобы оно работало, должно быть разрешено. Старший запрос – немаскируемый.
Адрес вектор – есть 16 разрядный адрес перехода на подпрограмму обработки прерываний в данном такте, либо адрес управляющего блока, если обработка прерывания происходит через PTS.
С системой прерывания связаны следующие команды:
PUSHF, POPF – добавка и извлечение флага – заносит в стек регистр - PSW, INTMASK
PUSHA, POPA – заносит в стек регистр - PSW, INTMASK и еще INTMASK1 и WSR.
После выполнения этих команд обнуляются автоматически PSW, INTMASK, INTMASK1. Данная деталь означает, что:
1) все прерывания запрещены каждое в отдельности (так как INTMASK и INTMASK1 равны 0) и запрещены все вместе (так как PSW равно 0).
2) Также позволяется программировать вложенность прерываний. Вложенность прерываний 96 серии: при входе в программу прерываний можно разрешать определенные прерывания, если это необходимо.