Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Пользователю -> Евстифеев А.В. -> "Микроконтроллеры семейства" -> 29

Микроконтроллеры семейства - Евстифеев А.В.

Евстифеев А.В. Микроконтроллеры семейства — Infineon, 2007. — 318 c.
Скачать (прямая ссылка): microkontrolleri2007.pdf
Предыдущая << 1 .. 23 24 25 26 27 28 < 29 > 30 31 32 33 34 35 .. 100 >> Следующая


Описание регистра системы прерывания

В регистре PSW выполнение прерываний управляется с помощью бита общего разрешения прерываний (IEN) и поля битов уровня приоритета ЦПУ (ILVL). Дополнительно к этому, различные источники прерываний управляются отдельно при помощи специальных регистров управления прерываниями (...IC). Таким образом, разрешение ответа ЦПУ на запрос определяется как индивидуальным регистром управления прерыванием, так и PSW-регистром. PEC-обслуживание управляется при помощи отдельного для каждого канала PECCx-регистра и указателей точки источника и точки назначения.

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

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

Макет регистров управления прерываниями показан ниже для каждого xxIC-регистра, где xx обозначает номер источника.

6-8 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

Infineon

iecKnologios

<Область SFR>

MDL (yyyyH/zzH) Значение после RESET: --OOh

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

- xxIR ххІЕ ILVL GLVL

rw rw rw rw

Бит Функция
GLVL Уровень группы Определяет внутренний порядок для запросов с одним уровнем приоритета
ILVL Уровень приоритета прерывания Определяет уровень приоритета для определения запроса с максимальным приоритетом
XxIE Управляющий бит разрешения прерывания (индивидуальное разрешение/запрещение данного источника) 0 - Запрос на прерывание запрещен 1 - Запрос на прерывание разрешен
XxIR Флаг запроса на прерывание 0 - нет висящих запросов 1 - послан запрос на прерывание источником

Флаг запроса на прерывание устанавливается в «1», в тот момент когда будет послан запрос от источника. Этот флаг очищается аппаратно при входе в подпрограмму обслуживания прерывания или при входе в PEC-обслуживание. В случае PEC-обслуживания, этот флаг остается в «1» после передачи данных, если значение поля COUNT регистра PECCx, выбранного PEC-канала, равно нулю. Это позволяет нормальному прерыванию ЦПУ отреагировать на полную передачу данных в PEC-блоке.

Примечание: Программное изменение флага запроса на прерывание приведет к тому же эффекту, как если бы флаг устанавливался или очищался аппаратно.

Уровни приоритета прерываний и групповые уровни

Четыре бита поля ILVL определяют уровень приоритета обслуживания одновременно поданных запросов. Приоритет растет с увеличением числового значения ILVL, и поэтому 0000в - самый низкий уровень, а 1111% - самый высокий уровень приоритета.

В том случае, если в один и тот же момент поступает более одного запроса на прерывание с одинаковым уровнем, то для определения более

6-9 МЭИ, Центр Промышленной Электроники Фирмы Infineon

Система прерываний и ловушек/С167

приоритетного запроса используется значение поля GLVL, задающего приоритет 2-ого уровня . Уровень внутри группы тоже растет с ростом числового значения GLVL, и поэтому 00в - самый низкий, а 11В - самый высокий уровень.

Примечание: Все источники запросов на прерывание, которые разрешены и запрограммированы на одинаковый уровень приоритета, должны быть всегда запрограммированы на различные групповые приоритеты. Иначе может быть сгенерирован некорректный вектор прерывания.

При входе в подпрограмму обслуживания прерывания, уровень приоритета победившего источника, в том случае если его уровень выше чем текущий уровень приоритета ЦПУ, копируется в поле ILVL регистра PSW после сохранения старого значения PSW в стеке.

Система прерываний С167 позволяет вставлять друг в друга до 15 подпрограмм, обслуживающих прерывания, с различными уровнями приоритетов (уровень 0 не может выявляться).

Запросы на прерывание, которые запрограммированы на 14 или 15 уровень (т.е. ILVL = 111Хв), будут обслуживаться при помощи PEC, до тех пор пока в поле COUNT регистра PECC не окажется нулевое значение. В этом случае вместо того, чтобы совершить PEC-обслуживание, запрос вызовет нормальное обслуживание прерывания. Запрос на прерывание, запрограммированный на 13 - 1 уровень приоритета, всегда будет обслуживаться с помощью нормального выполнения прерываний.

Примечание: Уровень 0000в является установленным по умолчанию. Однако запросы по уровню 0 некогда не будут обрабатываться, так как в этом случае невозможно прервать текущую деятельность ЦПУ. Однако разрешенный запрос на прерывание на уровне 0000В завершит режим покоя и заново активирует процессор.
Предыдущая << 1 .. 23 24 25 26 27 28 < 29 > 30 31 32 33 34 35 .. 100 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100