Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 52
Текст из файла (страница 52)
Эти биты аппаратно ие очищаются, это должна делать подпрограмма обслуживания. Прерывания от таймеров разрешаются битом ЕА и битами ЕТх регистра 1ЕО. Прерывание от блока РСА. Запрос прерывания от блока РСА формируется как функция ИЛИ от значения флагов событий ССРп и флага переполиеиия СР регистра ССОХ. Блок РСА использует одно прерывание для обработки всех событий. Биты событий аппаратно ие очищаются, это должна делать подпрограмма обслуживаиия. Прерывание от блока РСА разрешается битом ЕА и битом ЕС регистра 1ЕО, кроме того, каждому из флагов СР и ССРх соответствует бит разрешения ЕСР и ЕССРх (регистры СМОП и ССАРМх).
Прерывание ОРл последовательноео порта. Запрос прерывания от последовательиого порта формируется как функция ИЛИ от значения битов В1 и Т1 регистра УСОХ. Эти биты аппаратно ие очищаются, это должна делать подпрограмма обслуживания. Прерывание от последовательного порта разрешается битом ЕА и битом ЕЯ регистра 1ЕО. 3.4.2. Маскирование прерываний и приоритеты прерываний Каждый аппаратный источник прерывания индивидуально может быть замаскирован с использованием соответствующего бита.в регистре 1ЕО. Этот регистр содержит также бит общего запрета аппаратных прерываний ЕА.
266 1ЕО Имя Номер Функция бита бита ЕА 1Е.7 Запрещение запросов от всех источников, имеет место при ЕА-0 ЕС 1Е.6 Разрешение запроса от блока РСА, имеет место при ЕС - 1 ЕТ2 1Е.5 Разрешение запроса от Таймера 2, имеет место при ЕТ2 1 ЕБ 1ЕА Разрешение запроса от последовательного порта, имеет место при ЕБ ! ЕТ1 1Е.З Разрешение запроса от Таймера 1, имеет место при ЕТ1 - 1 ЕХ! 1Е.2 Разрешение запроса по входу 1ХТ1№, имеет место при ЕХ1- 1 ЕТО 1Е.1 Разрешение запроса от Таймера О, имеет место при ЕТО - 1 ЕХО 1Е.О Разрешение запроса по входу ПТ!ТО№, имеет место при ЕХО- 1 Каждому аппаратному источнику прерывания может быть присвоен один из четырех уровней приоритета. Приоритет источника устанавливается при помощи двух битов в регистрах 1РНО, 1РЬО. 1РНО 1РЬО Функция Зарезервирован Иыя битв 1РН0.6 !РН0.5 1РН0.4 1Р НО.З 1РН0.2 1РНО.! 1РНО.О микРОкОнтРОллеРы: АРкитаотРА ЛРОГРАммиРОЕАИН интеРФейс ЕА ЕС ЕТ2 ЕЯ ЕТ1 ЕХ! ЕТО ЕХО 1РН0.6 1РН0.5 1РН0.4 1РНО.З 1РН0.2 1РН0.1 1РНО.О 1Р1.0.6 1РЬ0.5 1Р1.0.4 1РЬО.З 1РЬ0.2 1Р1.0.1 1Р1.0.0 Бит приоритета блока РСА (старший) Бит приоритета Таймера 2 (старший) Бит приоритета последовательного порта (старший) Бит приоритета Таймера 1 (старший) Бит приоритета входа 1НТ!№ (старший) Бит приоритета Таймера 0 (старший) Бит приоритета входа ПТ(ТО№ (старший) ГЛАВА 3.
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-221 267 Функция Имя бита Зарезервирован 1Р10.6 Бит приоритета блока РСА (младшнй) 1Р1.0.5 Бит приоритета Таймера 2 (младший) 1РЕОА Бит приоритета последовательного порта (младший) 1Р1.0.3 Бит приоритета Таймера 1 (младший) 1Р1.0.2 Бит приоритета входа 1Р(Т1тт (младший) 1Р1.0.1 Бит приоритета Таймера 0 (младший) 1Р1.0.0 Бит приоритета входа ПИТОЙ (младший) Уровень приоритета конкретного источника определяется значением ком- бинации битов следующим образом: 1РНО.х <Р1.0/х Уровень приоритета 0 0 0 (низший) 0 1 1 1 0 2 1 1 3 (высший) Подпрограмма обслуживания прерывания более низкого уровня может быть прервана разрешенным запросом более высокого уровня, но никогда не прерывается запросом такого же или более низкого уровня.
При одновременном появлении запросов от нескольких источников обслуживается запрос с более высоким приоритетом. Если у нескольких запросов одинаковый уровень приоритета, то очередность обслуживания определяется при помощи последовательного опроса (поллинга) в соответствии с табл.
ЗА. Последовательность опроса у семейства МС5-251 отличается от поллинга у микроконтроллеров МСЯ-51. 3.4.3. Обработка прерываний Последовательность обработки прерываний микроконтроллером 8ХС251ЯВ является типовой. Все источники прерываний спрашиваются каждые четыре такта (рис. 3.10). Обнаруженный запрос фиксируется как событие установкой флага, его приоритет сравнивается с приоритетом других прерываний и с текущим обслуживаемым, если в этот момент выполняется подпрограмма прерывания. 268 МИКРОКОНТРОЛЛЕРЫ' АРКИТЕТПГРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС Рис.
3.10. Переход к процедуре обслуживания прерывания Разрешенное прерывание, которое является старшим по приоритету среди одновременно возникших запросов, может быть заблокировано в следующих случаях; е уже обрабатывается прерывание с равным или более высоким приоритетом (в интервал времени с установки флага до завершения команды 1ХТК); Е текущий цикл опроса не является завершающим циклом текущей ко- манды; + текущая команда — КЕТ1 или одна из команд записи в регистры 1ЕО, 1РНО, 1Р1.0. Если для внешнего потенциального сигнала флаг прерывания взведен, но прерывание заблокировано по одной из вышеприведенных причин, запрос сбрасывается при снятии условия блокировки и не вызывает прерывания. Иными словами, заблокированные запросы не буферизуются в целях сохранения. При благоприятных для поступившего запроса условиях осуществляется контекстное переключение. Центральный процессор завершает текущую команду, отменяет все соглашения по конвейеру и очереди команд, сохраняет значение счетчика команд РС в стеке и переходит на выполнениее подпрограммы обслуживания прерывания (1БŠ— 1псеггпрс зегт(се гопПпе).
Количества байтов, сохраняемых в стеке, зависит от значения бита 1ХТЕ регистра конфигурации СОХР101. Процесс переключения на подпрограмму обслуживания характеризуется двумя основными параметрами: временем реакции (с момента поступления внешнего запроса до конца текущей команды) и временем внутреннего переключения (с момента поступления внешнего запроса до начала выполнения первой команды подпрограммы). Подпрограмма обслуживания, заранее написанная пользователем, завершается командой ЕЕТ1, которая сбрасывает текущий уровень приоритета, ГЛАВА 3. МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-ЕЕ! Рис. 3.11 Временные параметры перехода к процедуре обслуживания прерывания загружает счетчик команд значением из стека (а также восстанавливает значение Р5'ттг1 при 1НТЕ = 1). После этого программа продолжается с того места, где произошло прерывание. Микроконтроллер 8ХС2515В позволяет использовать для завершения подпрограммы прерывания обе команды, КЕТ и ЕЕТ1, но для того, чтобы программа корректно выполнялась и на контроллерах семейства МС5-51, и на контроллерах семейства МС5-251, для завершения прерывания следует использовать команду КЕТ1.
Поскольку адреса, присвоенньее различным источникам прерываний, отлива!отея на восемь байт, их используТот для размещения команд перехода на другой фрагмент памяти, где и находится собственно подпрограмма обслуживания. Совокупность ячеек памяти, привязанных к векторам прерываний, называют таблицей переходов. 3.5.
Блок РСА РСА (ргойгапнпаЫе сошнег аггау) представляет собой внутренний блок микроконтроллера 8ХС2515В, предназначенный для выполнения различных операций счета и определения временных интервалов, в том числе при широтно-импульсной модуляции. Этот блок способен работать и в режиме сторожевого таймера 'т(Г()Т (ттГасс1тт(ой 11!пег).
Блок РСА включает 16-разрядный таймер-счетчик и пять 16-разрядных модулей захвата-сравнения. Таймер-счетчик является источником временной базы и счетчиком событий, значения его текущего отсчета передаются в модули захвата-сравнения. Значения таймера-счетчика хранятся в паре регистров спецфункций СНГГ С1., а значения для модулей хранятся в пяти парах регистров ССАРхН/ ССАРх1. (рис. 3.12). Управление работой и режимами таймера/счетчика осуществляется при помощи регистров спецфункций СМО1) (регистр режима) и С СОХ (регистр управления). 270 СР$! СРЗО Рок сш Мик Рек Рис.
3.12. Таймер-счетчик блока РСА СЮЬ %ЭТŠ— — — СРЗ1 СРЗО ЕСР СМОР ССО1т' СР СК вЂ” ССР4 ССРЗ ССР2 ССР! ССРО Функция Имя бита Номер бита СМ00.7 С1РЬ ЖеАТЕ СМО17.6 Бит разрешения функции сторожевого таймера модуля 4; ЮРТЕ - 1 функция разрешена %РТЕ - О функция запрещена СР31 СРЗО СМОЮ.1 СМОО.О ЕСР СМОЮ.5 СМОВА СМОО.З СМОР.2 МИКРОКОНТРОЛПЕРЫ: АРКИТЕКТУРА ПРОГРАММИРОВАНИ ИНТЕРФЕЙС Бит разрешения функционирования блока РСА в режиме 1с!!е: С10Ь - 1 функционирование запрещено С10Ь - О функционирование разрешено Зарезервирован Зарезервирован Зарезервирован Бит выбора источника синхросигнала Бит выбора источника синхросигнала Бит разрешения прерывания блока РСА: ЕСР - 1 разрешает прерывание по флагу СР ЕСР - О, прерывание запрещено ГЛАВА Е.
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-25! г7! Номер Функция бите Имя бита СР ССОХ.7 Флаг переполнения таймера-счетчика РСА, Вызывает прерывание, если установлен флаг ЕСР регистра СМОР СЕ ССОХ.6 Бит включения таймера-счетчика РСЛ: СВ - 1 счетчик включен СК - 0 счетчик выключен — ССОХ.5 Зарезервирован ССГ4 ССОХА Флаг прерывания модуля 4 ССРЗ ССОХ.З Флаг прерывания модуля 3 ССГ2 ССОХ.2 Флаг прерывания модуля 2 ССГ1 ССОХ.1 Флаг прерывания модуля 1 ССГО ССОХ.О Флаг прерывания модуля О Режимы работы модулей сравнения-захвата определяются пятью регистра- ми ССЛРМх.
Линии порта 1 обеспечивают ввод-вывод для блока РСА в качестве альтер- нативной функции: Имя бита номер Функция бита СЕХ4 Р1.7 Модуль 4. Вход при фиксации, выход при сравнении и ШИМ СЕХЗ Р1.6 Модуль 3. Вход при фиксации, выход при сравнении и ШИМ СЕХ2 Р1.5 Модуль 2. Вход при фиксации, выход при сравнении и ШИМ СЕХ! Р!А Модуль 1. Вход при фиксации, выход при сравнении и ШИМ СЕХО Р1.3 Модуль О. Вход при фиксации, выход при сравнении и ШИМ ЕС1 Р1.2 Вход таймера-счетчика Таймер-счетчик РСЛ и пять модулей сравнения имеют единственный вектор прерывания.