Вектора прерываний - раздел Высокие технологии, АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА
Идентификация Источника Прерывания В Системе Может Выполнятьс...
Идентификация источника прерывания в системе может выполняться как программными, так и аппаратными средствами.
В первом случае, источник прерывания фиксируется установкой флажка в каком либо регистре. Поиск этого флажка осуществляет прерывающая программа, путем проверки всех возможных источников прерывания.
Во втором случае каждому источнику прерываний ставится в соответствие определенный адрес программы (вектор прерывания) и по этому адресу программист размещает команду перехода к соответствующей этому источнику подпрограмме обработки прерывания.
Например, контроллер АТmega163 имеет 17 различных источников прерывания: два внешних и 15 внутренних. Практически каждый функциональный узел микроконтроллера является источником прерываний. В процессе работы он имеет возможность прервать выполняемую процессорным ядром программу. Каждое прерывание имеет фиксированный приоритет и отдельный вектор прерывания.
Вектора прерываний занимают в пространстве памяти программы адреса с $0 до $22. Самый младший вектор прерываний (с адресом $0) определен как сигнал сброса. Адрес каждого последующего вектора больше предыдущего на 2. Адреса $2 и $4 присвоены внешним входам запросов на прерывания (Таблица 7.1).
Таблица 7.1. Вектора внешних прерываний контроллера ATmega 163
Вектор
Адрес
Обозначение
источника
Описание источника
$000
RESET
Сброс (External Pin, Power-on Reset, Brown-out Reset and Watchdog Reset)
$002
INT0
Внешнее прерывание 0 (External Interrupt 0)
$004
INT1
Внешнее прерывание 1 (External Interrupt 1)
Полный список векторов приведен в приложении 2. Приоритет прерываний уменьшается с возрастанием адресов их векторов. Сигнал сброса (Reset) имеет самый высокий приоритет. Далее следуют прерывания от внешних источников, поступающие на контакты INT 0 и INT1 микроконтроллера.
Любое прерывание может быть запрещено (замаскировано) специальными битами в регистрах ввода/вывода микроконтроллера.
Типовая программа обработки векторов внешних прерываний выглядит следующим образом:
.org$0
jmp RESET ; Переход к подпрограмме сброса
jmp EXT_INT0 ; Переход к подпрограмме обработки IRQ0
jmp EXTJNT1 ; Переход к подпрограмме обработки IRQ1
.org $24
main: ; Начало программы пользователя
Для выхода из любой подпрограммы обработки прерывания в системе команд микроконтроллера АТтеда163 предусмотрена специальная команда reti (Interrupt Return), восстанавливающая содержимое программного счетчика из стека. Для правильного функционирования системы прерывания в начале пользовательской программы обязательно должен быть загружен указатель стека.
Внешние прерывания вызываются с контактов INT1 и INT0. Для их обработки и программирования в контроллере задействованы отдельные биты трех регистров:
0 регистра статуса SREG (Status Register),
0регистра управления процессорным ядром MCUCR (MCU Control Register) и
Рис. 7.1. Регистры, задействованные в системе прерываний микроконтроллера
ATmega163
Прерывания разрешаются только при единичном значении бита глобального разрешения прерываний I (Interrupt) в регистре статуса SREG. Сброс бита I в регистре SREG запрещает все прерывания. Если прерывания разрешены, то при появлении любого запроса бит I в регистре статуса SREG сбрасывается, а все дальнейшие прерывания запрещаются. Программа пользователя может вновь установить этот бит, разрешив вложенные прерывания. Инструкция возвращения из подпрограммы обслуживания прерывания reti также устанавливает бит I в регистре статуса SREG, разрешая дальнейшие прерывания.
Биты ISCxx в регистре MCUCR описывают уровни и фронты прерывающих сигналов на контактах INT0 и INT1.
0 Биты 3, 2 - ISC11, ISC10 (Interrupt Sense Control 1 bit 1 and bit 0): биты активизации входа INT1. Уровень и фронты на ножке INT1, которые инициируют прерывание, определены в таблице 5.6. Импульсы короче одного такта не гарантируют генерирование прерывания.
Низкий уровень сигнала INT1 (INT0) генерирует запрос на прерывание.
Любое логическое изменение на INT1 (INT0) генерирует запрос на прерывание.
Задний фронт импульса на INT1 (INT0) генерирует запрос на прерывание.
Передний фронт сигнала на INT1 (INT0) генерирует запрос на прерывание.
0 Биты 1,0- ISC01, ISC00 (Interrupt Sense Control 1 bit 1 and bit 0): биты активизации входа INT0. Работают аналогично битам ISC11, ISC10. В регистре маскирования прерываний GIMSK содержатся флаги внешних прерываний. Когда счетчик команд микроконтроллера устанавливается на конкретный вектор прерывания, соответствующий флаг в регистре GIMSK аппаратно сбрасывается. Флаги прерываний можно очистить, записав в соответствующий бит регистра логическую единицу.
0 Бит 7 - INT1: внешнее прерывание INT1 разрешено. Если бит INT1 установлен и бит I в регистре статуса SREG также равен 1, то внешний вход запроса на прерывание INT1 становится активным.
0 Бит 6 - INT0: внешнее прерывание INT0 разрешено. Если бит INT0 установлен и бит I в регистре статуса SREG также равен 1, то внешний вход запроса на прерывание INT0 становится активным.
Создание фирмой Intel в году первой программируемой электронной схемы на... За лет своего бурного развития микропроцессорные системы прошли путь от специализированных комплектов интегральных...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
Вектора прерываний
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА
Контроллером в технике регулирования считается управляющее устройство, осуществляющее регулирующие или контролирующие функции в системе. Контроллер, реализованный на одном кристалле
Память программ
Программа микропроцессора представляет собой последовательность команд (инструкций). Каждая инструкция имеет свой оригинальный двоичный код. Коды инструкций и хранятся в памяти прог
Масочная память
Масочная память (maskROM) программируется с помощью фотошаблонов (масок) на стадии изготовления микроконтроллера. Т.е. контроллер с масочной памятью изготавливается с
Однократно программируемая память
Однократно программируемая память (OTPROM - One Time Programmable ROM) no принципу построения и функционирования аналогична масочной, но она поставляется изготовителем микрок
Репрограммируемая память
Репрограммируемая память (EPROM - Erasable PROM) аналогична OTPROM, но допускает стирание информации и повторное программирование. Стирание информации в памяти осуществляется
Память с электрическим стиранием
Память с электрическим стиранием (EEPROM - Electrically EPROM) программируется пользователем и может многократно стираться. Стирание и повторное программирование EEPROM осуще
Флэш - память
Флэш-память (Flash memory) относится к классу EEPROM, но использует особую технологию построения запоминающих ячеек. В отличие от EEPROM, она может стираться только целиком,
Статическая память
Статическая память (SRAM - Static Random Access Memory) энергозависима. Она обеспечивает хранение информации только при наличии напряжения питания не менее определенной велич
Специализированные ячейки флэш-памяти
В энергонезависимой flash-памяти микроконтроллеров могут присутствовать специализированные биты и байты, предназначенные для защиты программы пользователя и конфигурирования изделия
Основные элементы
Каждый производитель микроконтроллеров для серии выпускаемых им изделий разрабатывает и патентует своё оригинальное процессорное ядро (MCU - Microprocessor Core Unit). Однако
Регистр инструкций
Регистр инструкций (IR - Instruction register) - регистр, предназначенный для хранения считанной из памяти программ инструкции. Считанная из памяти программ инструкция декоди
Арифметико-логическое устройство
Арифметико-логическое устройство (ALU - Arithmetic Logic Unit) - логическая схема, непосредственно осуществляющая преобразование одной или двух переменных в соответствии с ин
Регистры общего назначения
Регистры общего назначения предназначены для временного хранения данных в процессе вычислений. Разрядность регистров определяет разрядность вычислений и, в конечном счете, разрядность самого микрок
Регистр состояния
Регистр состояния (Status register) предназначен для хранения отдельных признаков результата, полученного при выполнении различных арифметических и логических операций в ариф
Мнемонические обозначения
Каждая архитектура микроконтроллера имеет собственную систему команд. Система команд микроконтроллера описывается на специальном языке символического кодирования. При этом каждая ин
Адресация данных
Адреса операндов, задействованных в выполнении любой инструкции программы, в явном или в неявном виде должны быть указаны в коде этой инструкции. Операнды могут находиться в ячейках
Косвенная адресация
Косвенным образом могут адресоваться ячейки памяти данных или памяти программ.
· Операции с памятью данных
Операнд содержитс
ЯЗЫК АССЕМБЛЕРА
Язык ассемблера (assembler language) - язык программирования микропроцессорных систем, ориентированный на определенную архитектуру системы. Программа, написанная на языке асс
Выражения
Программа на языке ассемблера состоит из отдельных строк. Строка кода не должна быть длиннее 120 символов. Ассемблер Atmel AVR не различает строчные и заглавные буквы.
Люба
Операнды
Операндами языка ассемблера могут быть:
0 Определяемые пользователем метки.
Метка может располагаться перед командой/директивой и
Функции
Функции, определенные в языке ассемблера
0 low(expression) возвращает младший байт выражения;
0 high(expression) возвращает второй байт выраж
Директивы
Директивы ассемблера не транслируются в коды операций, они используются для размещения программы в памяти, определяют макрокоманды, инициализируют память данных и выполняют ещё целы
ТАКТОВЫЙ ГЕНЕРАТОР
Работа процессорного ядра синхронизируется тактовым генератором. Именно период работы генератора определяет время, необходимое для выполнения элементарных операций в ядре. Простейши
Источники сброса
Причинами (источниками) сброса могут являться различные воздействия: включение питания и кратковременные его изменения, сигналы формируемые аппаратно вне и внутри микроконтроллера,
Сторожевой таймер
Сторожевой таймер (Watchdog) синхронизирован от отдельного внутреннего генератора на кристалле, работающего с частотой 1 МГц (при напряжении питания Vcc=5 В).
Задерж
Алгоритм обработки прерываний
Сигнал запроса на прерывание вырабатывается периферийным устройством при его готовности к обмену информацией. Сигнал может появиться в произвольный момент времени.
Процессо
ЭНЕРГОНЕЗАВИСИМАЯ ПАМЯТЬ ДАННЫХ
Энергонезависимая память типа EEPROM отличается от памяти данных типа SRAM существенно большим временем чтения и записи информации. Время обращения при записи обычно составляет неск
ПОРТЫ ВВОДА-ВЫВОДА
9.1. Организация ввода/вывода
Порты ввода-вывода обеспечивают ввод и вывод данных в параллельном формате. Обычно порты ввода-вывода выполняются 8-разряд
Алгоритмы обмена данными
Порты ввода-вывода предназначены для связи микроконтроллера с различными объектами и могут реализовывать различные алгоритмы обмена данными: 0 асинхронный программный обм
Принципы аналого-цифрового преобразования
Параллельный преобразователь
В параллельном преобразователе (рис. 10.1) входной сигнал подается сразу на множество компараторов, осуществляющих сравнение сигн
Управление аналого-цифровым преобразователем
В состав микроконтроллеров обычно включают 8 - 16-битные многоканальные преобразователи с большим набором встроенных функций. При этом все функции преобразователя программируются и
АНАЛОГОВЫЕ КОМПАРАТОРЫ
Аналоговые компараторы осуществляют сравнение двух напряжений. Результатом сравнения является логический сигнал, фиксирующий момент равенства входных сигналов. Выход компаратора может быть использо
ТАЙМЕРЫ-СЧЕТЧИКИ
Большинство задач управления решаются в реальном времени. При этом микроконтроллер должен в определенные моменты времени выполнять определенные действия с объектом. Типовыми задачам
Простейший 8-битный счетчик
8-разрядный таймер/счетчик 0 (Timer/Counter0) тактируется сигналом синхронизации процессорного ядра (СК) или от встроенного предделителя (Preskaller), или от внешнего контакт
Захват, сравнение и широтно-импульсная модуляция
16-битный таймер/счетчик Timer/Counter1 микроконтроллера ATmega163 доступен процессорному ядру для чтения и записи, он может считать импульсы синхронизации CK, импульс
Часы реального времени
Часы реального времени RTC (Real Time Clock) являются разновидностью таймера/счетчика. Задачей RTC в схеме микроконтроллера обычно считается формирование интервалов времени р
Интерфейс UART
Асинхронный последовательный интерфейс UART (Universal Asynchronous Receiver Transmitter - универсальный асинхронный приемопередатчик) обеспечивает полудуплексный режим обмен
Интерфейс SPI
Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) предложен фирмой Motorola. Он обеспечивает полный дуплексный обмен данными между двумя контроллерами
РЕЖИМЫ ЭНЕРГОСБЕРЕЖЕНИЯ
Одним из основных показателей микроконтроллера является энергопотребление. Величина энергопотребления характеризуется напряжением питания микроконтроллера и потребляемым током.
Режим Idle
Если биты SM1/SM0 находятся в состоянии 00, то команда SLEEP переводит микроконтроллер в режим ожидания Idle. В этом режиме его ток потребления уменьшается примерно в 2,5 раз
Режим ADC Noise Reduction
Когда SM1/SM0 биты установлены в 01, команда SLEEP заставит микроконтроллер ввести режим шумоподавления ADC Noise Reduction. В этом режиме процессорное ядро останавливается,
Способы программирования энергонезависимой памяти
В процессе программирования микроконтроллеров разработанная пользователем программа заносится в энергонезависимую память. При этом выполняются операции по стиранию, чтению и записи
Новости и инфо для студентов