Презентация на тему: Система прерываний DSP TMS320F2812

Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
32-битные таймеры ядра ЦСП TMS320F28x
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
Система прерываний DSP TMS320F2812
1/26
Средняя оценка: 4.5/5 (всего оценок: 37)
Код скопирован в буфер обмена
Скачать (437 Кб)
1

Первый слайд презентации: Система прерываний DSP TMS320F2812

Прерывания – это программно- или аппаратно-управляемые сигналы, которые заставляют CPU приостанавливать текущее выполнение программы и переходить к выполнению подпрограммы. Прерывания вырабатываются периферией или внешними устройствами (например, АЦП, ЦАП, или внешними процессорами), а также внутренними устройствами (например, таймерами после завершения счета). Для процессоров C28x прерывания могут быть инициированы программно ( инструкции INTR, OR IFR, TRAP ) или аппаратно (внешние выводы, внешняя периферия). Если несколько аппаратных прерываний были инициированы одновременно, обслуживание производится в соответствии с установленным приоритетом. DSP TMS320F2812 содержит аппаратный контроллер расширения прерываний (PIE), который мультиплексирует многочисленные прерывания от периферии в одно CPU -прерывание. С точки зрения CPU, все прерывания подразделяются на 2 категории: - маскируемые прерывания (могут быть программно разрешены либо запрещены); - немаскируемые прерывания (не могут быть программно запрещены) – C 28 x будет немедленно реагировать на данный тип прерываний и переходить к подпрограмме обработки прерывания; к этой категории относятся прерывание NMI, сигнал сброса RS и программно инициируемые прерывания INTR и TRAP - ??.

Изображение слайда
2

Слайд 2: Система прерываний DSP TMS320F2812

Прерывания выполняются в 4-х основных фазах: Прием запроса прерывания. Принятие прерывания к исполнению. Если прерывание – маскируемое, то условия, которые вызывают прерывания, дополнительно перепроверяются и подтверждаются процессором. Для немаскируемых и программных прерываний принятие к выполнению происходит сразу. Подготовка к подпрограмме обслуживания прерывания и сохранение значений регистров: - оканчивается выполнение текущей инструкции и снимаются с конвейера все инструкции, которые не достигли фазы D2 ; - автоматически сохраняется большая часть текущего состояния программы путем сохранения в стеке содержимого регистров ST0, T, AL, AH, PL, PH, AR0, AR1, DP, ST1, DBGSTAT, PC, IER; - извлекается вектор прерывания и загружается в программный счетчик (PC). 4. Выполнение подпрограммы обслуживания прерывания ( ОП ). DSP семейства C28x обрабатывает прерывания путем выполнения соответствующих подпрограмм обработки. Вектора прерываний (начальные адреса подпрограмм обработки) находятся в предопределенной области памяти программ BootROM – BROM vectors.

Изображение слайда
3

Слайд 3: Система прерываний DSP TMS320F2812

Изображение слайда
4

Слайд 4: Система прерываний DSP TMS320F2812

Процессорное ядро DSP F2812 принимает сигналы по 16 линиям прерываний :

Изображение слайда
5

Слайд 5: Система прерываний DSP TMS320F2812

Источники прерываний в DSP F2812:

Изображение слайда
6

Слайд 6: 32-битные таймеры ядра ЦСП TMS320F28x

Сигналы прерываний, формируемые CPU- таймерами, связаны с прерываниями ядра следующим образом:

Изображение слайда
7

Слайд 7: Система прерываний DSP TMS320F2812

DSP F 2812 поддерживает 32 вектора CPU- прерываний, в том числе вектор начального сброса. Каждый вектор – это 22-битный начальный адрес подпрограммы ОП, который сохраняется в двух последовательных ячейках памяти программ области BROM vectors (16 бит в ячейке с младшим адресом и 6 бит в ячейке со старшим адресом ).

Изображение слайда
8

Слайд 8: Система прерываний DSP TMS320F2812

Изображение слайда
9

Слайд 9: Система прерываний DSP TMS320F2812

Изображение слайда
10

Слайд 10: Система прерываний DSP TMS320F2812

Изображение слайда
11

Слайд 11: Система прерываний DSP TMS320F2812

Изображение слайда
12

Слайд 12: Система прерываний DSP TMS320F2812

Общая структура обработки маскируемых прерываний ядра: IFR IER INTM Ядро C28x INTM=1 : глобальное разрешение прерываний INTM= 0: глобальный запрет прерываний

Изображение слайда
13

Слайд 13: Система прерываний DSP TMS320F2812

INT1… INT14 – 14 основных прерываний. Прерывания DLOGINT и RTOSINT используются при эмуляции. C28x имеет три регистра, выделенных для управления прерываниями: − регистр флагов прерываний (IFR); − регистр разрешения прерываний (IER); − регистр разрешения отладки прерываний (DBGIER). 16-битный регистр IFR содержит биты флагов для маскируемых прерываний (которые можно разрешать и запрещать программно).

Изображение слайда
14

Слайд 14: Система прерываний DSP TMS320F2812

Когда определенный флаг регистра IFR устанавливается, это означает, что соответствующее прерывание будет перепроверяться и подтверждаться процессором. Входы CPU INT1…INT14 опрашиваются в каждом машинном цикле, при обнаружении прерывания соответствующий бит регистра IFR защелкивается в единичном состоянии, а после обслуживания прерывания – сбрасывается. В регистре IER индивидуально разрешается или запрещается соответствующим битом определенное прерывание. Установка в 1 – разрешение прерывания, сброс в 0 – запрет. Когда аппаратное прерывание обслужено, или когда выполнена инструкция INTR, соответствующий бит IER сбрасывается.

Изображение слайда
15

Слайд 15: Система прерываний DSP TMS320F2812

Регистр DBGIER устанавливает разрешение/запрет прерывания, в то время как CPU остановлен в режиме эмуляции реального времени. Прерывание, разрешенное в DBGIER, называется «критичное ко времени прерывание». Если CPU запущен в режиме эмуляции реального времени, используется стандартная процедура обслуживания прерывания и регистр DBGIER не используется. Так же, как и в случае с регистром IER, установка бита в DBGIER разрешает соответствующее прерывание, сброс – запрещает.

Изображение слайда
16

Слайд 16: Система прерываний DSP TMS320F2812

Стандартная процедура выполнения маскируемого прерывания:

Изображение слайда
17

Слайд 17: Система прерываний DSP TMS320F2812

В случае использования PIE- контроллера, таблица адресов векторов прерываний расширяется. PIE- контроллер может поддерживать 96 прерываний, которые сгруппированы в 12 групп по 8 прерываний.

Изображение слайда
18

Слайд 18: Система прерываний DSP TMS320F2812

Таблица источников прерываний в PIE- контроллере: INTx.8 INTx.7 INTx.6 INTx.5 INTx.4 INTx.3 INTx.2 INTx.1 INT1 WAKEINT TINT0 ADCINT XINT2 XINT1 PDPINTB PDPINTA INT2 T1OFINT T1UFINT T1CINT T1PINT CMP3INT CMP2INT CMP1INT INT3 CAPINT3 CAPINT2 CAPINT1 T2OFINT T2UFINT T2CINT T2PINT INT4 T3OFINT T3UFINT T3CINT T3PINT CMP6INT CMP5INT CMP4INT INT5 CAPINT6 CAPINT5 CAPINT4 T4OFINT T4UFINT T4CINT T4PINT INT6 MXINT MRINT SPITXINTA SPIRXINTA INT7 INT8 INT9 SCITXINTB SCIRXINTB SCITXINTA SCIRXINTA INT10 INT11 INT12 ECAN0INT ECAN1INT Приоритет

Изображение слайда
19

Слайд 19: Система прерываний DSP TMS320F2812

Каждая группа (строка из 8 элементов) мультиплексируется в одно из прерываний ядра INT1…INT12 :

Изображение слайда
20

Слайд 20: Система прерываний DSP TMS320F2812

Каждое из 96 прерываний поддерживается единственным вектором прерывания, размещенном в специально предназначенной области памяти данных – PIE Vectors.

Изображение слайда
21

Слайд 21: Система прерываний DSP TMS320F2812

CPU, обслуживая прерывание, автоматически извлекает из памяти соответствующий вектор. За 9 машинных циклов CPU происходит извлечение вектора и сохранение содержимого CPU- регистров. Приоритет прерываний контролируется аппаратно и программно, каждое прерывание может быть индивидуально и программно разрешено или запрещено PIE -контроллером. При обслуживании мультиплексированных прерываний PIE -контроллер для каждой группы прерываний содержит соответствующий флаг-бит ( регистры PIEIFR 1… PIEIFR 12, индицируют активное прерывание ) и бит разрешения ( регистр PIEIER 1… PIEIER12, устанавливают разрешение или запрет прерывания ). Формат этих регистров следующий:

Изображение слайда
22

Слайд 22: Система прерываний DSP TMS320F2812

Соответствующий бит в регистре подтверждения PIEACK ( активный уровень - 0 ) определяет номер активного прерывания для CPU внутри группы. Формат регистра PIEACK (бит 0 соответствует прерыванию INT1, и т.д., бит 11 соответствует прерыванию INT12 ): Формат регистра управления PIECTRL : PIEVECT – эти биты показывают адрес в пределах таблицы векторов PIE vectors, из которой был извлечен вектор. Младший значащий бит игнорируется и показываются биты адреса от 1 до 15, что позволяет при чтении из регистра определить, какое прерывание генерировалось. ENPIE – бит разрешения извлечения векторов из таблицы PIE- контроллера. Если ENPIE=1, все вектора извлекаются из таблицы векторов PIE (адреса 0 x000D00… 0 x000DFF ). Если ENPIE= 0, PIE -контролер запрещен, и вектора извлекаются из таблицы CPU -векторов (BootRom, адреса 0x3F FFC0 … 0x3F FFFF).

Изображение слайда
23

Слайд 23: Система прерываний DSP TMS320F2812

Изображение слайда
24

Слайд 24: Система прерываний DSP TMS320F2812

Полная процедура обработки прерываний при ENPIE =1: шаг 1 – генерация прерывания от периферии; шаг 2 – установка флага PIEIFRx. y = 1; шаг 3а – проверка одновременного наличия двух условий: PIEIERx. y = 1 и PIEACKx =0; шаг 3б – установка в «1» бита PIEACKx для подтверждения прерывания от группы x ; шаг 4 – формирование импульса прерывания по линии INTx на ядро ( PIEACKx продолжает оставаться в единичном состоянии и требует программного сброса для возможности приема прерывания ядром по линии INTx в дальнейшем); шаг 5 – установка флага IFRx = 1; шаг 6 – проверка условия IERx = 1; шаг 7 – проверка условия INTM = 1, подготовка адреса возврата и данных к сохранению в стеке; шаг 8 – процессор определяет адрес вектора прерывания в области PIE Vector Mapping (адреса с 0 x 00 0 D 02 по 0 x 00 0 D 1 C ); шаг 9 – процессор определяет адрес вектора прерывания в области PIE Vector Mapping с учетом текущего значения регистров PIEIER и PIEIFR (адреса с 0 x 00 0 D 40 по 0 x 00 0 DFE ). Номер шага равен номеру машинного цикла.

Изображение слайда
25

Слайд 25: Система прерываний DSP TMS320F2812

Таблица векторов PIE -контроллера используется для хранения начальных адресов подпрограмм ОП (векторов) для каждого прерывания, причем существует единственный вектор на прерывание, включая все мультиплексируемые и немультиплексируемые прерывания. Таблица векторов PIE -контроллера представляет собой блок размером 256 слов в области SARAM, которая имеет неопределенные значения после начального сброса DSP. 0x00 0D00 0x00 0DFF Memory 0 BROM Vectors 64 W 0x3F FFC0 0x3F FFFF PIE Vectors 256 W ENPIE=1 ENPIE=0

Изображение слайда
26

Последний слайд презентации: Система прерываний DSP TMS320F2812: Система прерываний DSP TMS320F2812

Таблица векторов PIE -контроллера при ENPIE=1 : INT13 0x00 0D1A Вектор прерывания XINT1 3 INT14 0x00 0D1C Вектор Timer2 / RTOS Datalog 0x00 0D1D Вектор Data logging …… …… …… USER1 2 0x00 0D3E Определяемое пользователем TRAP INT1.1 0x00 0D40 Вектор PIEINT1.1 ( PDPINTA ) …… …… …… …… …… …… INT12.1 0x00 0DF0 Вектор PIEINT12.1 (резерв) INT1.8 0x00 0D4E Вектор PIEINT1.8 ( WAKEINT ) INT12.8 0x00 0DFE Вектор PIEINT12.8 (резерв) …… …… …… Адрес Описание Not used 0x00 0D00 Вектор сброса (неактивен) Имя вектора INT1 0x00 0D02 INT1 (неактивен) …… …… …… (неактивен) INT12 0x00 0D18 INT12 (неактивен)

Изображение слайда