Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Микроконтроллеры могут реагировать на запросы прерывания от самых разных источников, находящихся вне микроконтроллера, либо от различных портов и периферийных устройств, имеющихся в составе конкретного представителя семейства. Например, микроконтроллеры PIC16F874/7 поддерживают до 13 различных прерываний от этих периферийных устройств, а также одно внешнее прерывание, подаваемое через вывод INT (вывод 6 на Рис. 4.1, стр. 89). Вход внешнего прерывания использует ту же ножку микроконтроллера, к которой подключена 0-я линия порта В, т. е. вывод RB0. Программист может в индивидуальном порядке запретить или разрешить прерывания от этих источников, а также полностью запретить работу всей системы прерываний. Поскольку процесс реакции на прерывание практически не зависит от его источника, в этой главе мы главным образом будем вести речь именно об этом внешнем прерывании.

С учетом случайного характера внешних событий отклик процессора на запрос прерывания будет выглядеть следующим образом:

1. Завершение исполнения текущей команды.

2. Автоматическое сохранение, по меньшей мере, состояния счетчика команд (PC) — это необходимо для возврата из обработчика прерывания. Некоторые процессоры (такие как микроконтроллеры PIC старшего семейства) могут также автоматически сохранять содержимое регистра STATUS и других внутренних регистров.

3. Переход к соответствующей процедуре обработки прерывания.

4. Выполнение требуемых действий.

5. Восстановление состояния процессора и возврат к тому месту основной программы, в котором произошло прерывание.

Короче говоря, возникновение сигнала прерывания приводит к тому, что микроконтроллер прекращает выполнение текущей задачи, сохраняет свое состояние в прерываемой фоновой программе в стеке и переходит к выполнению специальной подпрограммы, называемой процедурой обработки прерывания (Interrupt Service Routine — ISR). Эта высокоприоритетная процедура представляет собой обычную подпрограмму, которая выполняется при наступлении заданного события.

Конкретные детали отклика на запрос прерывания в некоторой степени отличаются от процессора к процессору. В микроконтроллерах семейства среднего уровня реакция на прерывание осуществляется следующим образом (см. Рис. 7.2)[99]:

Рис. 7.2.Отклик на запрос прерывания

1. При выполнении каждой команды процессор проверяет наличие запроса прерывания от разрешенного источника. Независимо от наличия такого запроса он дожидается завершения исполнения команды, т. е. выполнение команды не прерывается даже в случае команд, выполняющихся за 2 машинных цикла.

2. Если такой запрос отсутствует, микроконтроллер просто переходит к выполнению следующей команды, и описанный процесс повторяется.

3. При наличии запроса следующие три машинных цикла затрачиваются на передачу управления процедуре обработки прерывания. Из этих циклов первый является холостым[100], а во время двух оставшихся производится сброс конвейера. Эта задержка длительностью от 3 до 4 машинных циклов между подачей внешнего сигнала на вывод INT и моментом выполнения 1-й команды обработчика называется задержкой обработки прерывания (interrupt latency). Бóльшую точность получить нельзя в связи со случайной природой сигнала внешнего прерывания, который может появиться на любом этапе машинного цикла.

4. Во время этой задержки микроконтроллеры PIC выполняют следующие операции:

а) Запрещается вся система прерываний, что гарантирует блокирование всех прерываний на время обработки текущего. Это осуществляется сбросом 7-го бита регистра управления прерываниями INTCON, который на Рис. 7.3 помечен как флаг общего разрешения прерываний (GIE). Указанный бит является маской прерывания, поскольку он используется для маскирования активности прерываний. При сбросе микроконтроллера бит GIE всегда сбрасывается, так что по умолчанию прерывания запрещены.

б) Состояние 13-битного счетчика команд заносится в стек точно так же, как и при выполнении команды call (см. Рис. 6.3 на стр. 172). Как и в случае подпрограмм, эта операция позволяет процессору после выхода из процедуры обработки прерывания вернуться к выполнению прерванной фоновой программы. Поскольку в PIC-микроконтроллерах среднего уровня реализован 8-уровневый аппаратный стек, из обработчика прерывания можно вызывать до семи вложенных друг в друга подпрограмм.

в) Первая команда обработчика прерывания всегда размещается по адресу h’004’ памяти программ. Так что завершающий этап рассматриваемой последовательности состоит в занесении в PC указанного адреса, называемого вектором прерывания. Разумеется, если код обработчика прерывания находится в каком-либо другом месте памяти программ, то первой командой будет команда goto, как показано в Программе 7.1.

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

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

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника