17. Работа с прерываниями в МК Atmega 163

Контроллер Atmega163 имеет 17 внешних и 15 внутренних прерываний. Каждый узел МК является источником прерываний и может прервать выполняемую программу. Каждое прерывание имеет фиксированный приоритет и вектор прерывания.

Вектора прерываний занимают в пространстве памяти программа адреса с $0 до $22. $0 – определен, как сигнал сброса. Адрес последующего больше предыдущего на 2. Адреса $2 и $4 соответствуют внешним прерываниям int0 и int1. Приоритет прерываний уменьшается с возрастанием адресов и векторов. Любое прерывание может быть запрещено специальными битами в регистрах I/O МК.

Для выхода из любой подпрограммы обработки прерываний в системе МК предусмотрена команда reti, восстанавливающая содержимое программного счетчика из стека. Для правильного функционирования системы прерываний в начале прграммы должен быть загружен указатель стека.

биты 7 6 5 4 3 2 1 0
SREG $3F I
MCUCR $35 ISC11 ISC10 ISC01 ISC00
GIMSK $3B INT1 INT0

Внешние прерывания вызываются с контактов int1 и int0. для их обработки в МК задействованы отдельные биты трех регистров:

Регистр статуса SREG

Регистр управления процессорным ядром MCUCR

Регистр маски прерываний.

 Прерывания разрешаются только при единичном значении бита I в регистре SREG. Сброс этого бита запрещает все прерывания. Если прерывания разрешены, то при появлении любого запроса бит I сбрасывается, а дальнейшие прерывания запрещаются. Прога usera может вновь установить этот бит, разрешив вложенные прерывания.

 Биты ISC в регистре MCUCR описывают уровни и фронты прерывающих сигналов на контактах int0/1

ISC11/01 ISC10/00
0 0 Низкий уровень сигнала INT1/0 генерирует запрос на прерывание
0 1 Любое логическое изменение INT1/0 генерирует запрос на прерывание
1 0 Задний фронт импульса на INT1/0 генерирует запрос на прерывание
1 1 Переднийфронт импульса на INT1/0 генерирует запрос на прерывание

 биты 3 и 2, биты активизации входа INT1

 биты 1 и 1, биты активизации входа INT0

В регистре маскирования прерываний GIMSK содержаться флаги внешних прерываний. Когда счетчик команд МК устанавливается на конкретный вектор прерывания, соотв. Флаг в GIMSK аппаратно сбрасывается. Флаги можно сбросить, записав туда лог. 1.

Бит 7 – int1 внешнее прерывание int 1 разрешено. Если бит int1 установлен и бит I в SREG =1, то внешний выход запроса на прерывание int1 становится активным

Бит 6 – int0 тоже самое.

18. Организация обмена прямым доступом к памяти (ПДП)

Одним из способов обмена данными с ВУ является обмен в режиме прямого доступа к памяти (ПДП). В этом режиме обмен данными между ВУ и основной памятью микроЭВМ происходит без участия процессора. Схема, управляющая обменом в режиме ПДП, размещаются в специальном контроллере, который называется КПДП. Обмен данными в режиме ПДП позволяет использовать в микроЭВМ быстродействующие внешние запоминающие устройства, такие, например, как накопители на жестких магнитных дисках, поскольку ПДП может обеспечить время обмена одним байтом данных между памятью и ВЗУ, равное циклу обращения к памяти.

Для реализации режима прямого доступа к памяти необходимо обеспечить непосредственную связь контроллера ПДП и памяти микроЭВМ. Контроллер ПДП подключается к памяти посредством шин адреса и данных системного интерфейса.

 Существуют две разновидности прямого доступа к памяти с "захватом цикла". Наиболее простой способ организации ПДП состоит в том, что для обмена используются те машинные циклы процессора, в которых он не обменивается данными с памятью. В такие циклы контроллер ПДП может обмениваться данными с памятью, не мешая работе процессора. Однако возникает необходимость выделения таких циклов, чтобы не произошло временного перекрытия обмена ПДП с операциями обмена, инициируемыми процессором. В некоторых процессорах формируется специальный управляющий сигнал, указывающий циклы, в которых процессор не обращается к системному интерфейсу. Такой обмен в режиме ПДП возможен только в случайные моменты времени одиночными байтами или словами.

Более распространенным является ПДП с "захватом цикла" и принудительным отключением процессора от шин системного интерфейса. Для реализации такого режима ПДП системный интерфейс микроЭВМ дополняется двумя линиями для передачи управляющих сигналов "Требование прямого доступа к памяти" (ТПДП) и "Предоставление прямого доступа к памяти" (ППДП).

Управляющий сигнал ТПДП формируется контроллером прямого доступа к памяти. Процессор, получив этот сигнал, приостанавливает выполнение очередной команды, не дожидаясь ее завершения, выдает на системный интерфейс управляющий сигнал ППДП и отключается от шин системного интерфейса. С этого момента все шины системного интерфейса управляются контроллером ПДП. Контроллер ПДП, используя шины системного интерфейса, осуществляет обмен одним байтом или словом данных с памятью микроЭВМ и затем, сняв сигнал ТПДП, возвращает управление системным интерфейсом процессору. Как только контроллер ПДП будет готов к обмену следующим байтом, он вновь "захватывает" цикл процессора и т.д. В промежутках между сигналами ТПДП процессор продолжает выполнять команды программы. Тем самым выполнение программы замедляется, но в меньшей степени, чем при обмене в режиме прерываний.

Применение в микроЭВМ обмена данными с ВУ в режиме ПДП всегда требует предварительной подготовки, а именно: для каждого ВУ необходимо выделить область памяти, используемую при обмене, и указать ее размер, т.е. количество записываемых в память или читаемых из памяти байт (слов) информации. Следовательно, контроллер ПДП должен обязательно иметь в своем составе регистр адреса и счетчик байт (слов). Перед началом обмена с ВУ в режиме ПДП процессор должен выполнить программу загрузки. Эта программа обеспечивает запись в указанные регистры контроллера ПДП начального адреса выделенной ВУ памяти и ее размера в байтах или словах в зависимости от того, какими порциями информации ведется обмен. Сказанное не относится к начальной загрузке программ в память в режиме ПДП. В этом случае содержимое регистра адреса и счетчика байт слов устанавливается переключателями или перемычками непосредственно на плате контроллера.





























Информация о работе «Ответы к Экзамену по Микропроцессорным Системам (микроконтроллеры микрокопроцессоры)»
Раздел: Информатика, программирование
Количество знаков с пробелами: 119324
Количество таблиц: 15
Количество изображений: 0

0 комментариев


Наверх