Контроллеры коммуникационных каналов SCС, страница 4

Управление обработкой прерывания от SCC-каналов производится контрол­лером прерывания с помощью регистров запросов CIPR в СРМ и IPR в СР, регистра маски CIMR в СРМ и IMR в СР и регистра обслуживаемого пре­рывания CISR в СРМ и ISR в СР. В контроллерах МРС860 - контроллер пре­рывания входит в состав коммуникационного модуля СРМ.

Если некоторый SCC-канал желает прервать работу центрального процессора, то он должен установить i бит в регистре запросов на прерывание IPR (табл. 2.5), который соответствует прерыванию от этого канала. При жела­нии пользователь может замаскировать прерывание от выбранного SCC-канала, сбросив в 0 i бит в регистре маски IMR. Если же центральный про­цессор в текущий момент времени занят обработкой прерывания от вы­бранного SCC-канала, то в регистре обслуживаемых прерываний ISR будет установлен в 1 i бит, соответствующий этому SCC-каналу. Во всех регистрах обслуживания прерывания i бит соответствует одному и тому же SCC-контроллеру.

Таблица 2.5. Прерывание от каналов.

Канал ввода/вывода

Номера  битов, закрепленных за каналом в регистрах контроллера прерываний.

МРС860

SCC1

30

SCC2

29

SCC3

28

SCC4

27

Ошибки SDMA

22

Таблица RISC-таймеров

17

I2C

16

SCP(SPI)

5

SMC1

4

SMC2(PIP)

3

Взаимные приоритеты запросов на прерывание между 4 SCC-каналами в СРМ программируются в регистре конфигураций контроллера прерываний CICR (рис. 4). Имеется 4 позиции приоритетов (а, Ь, с, d), самая приоритетная -позиция а.

Биты SCCaP, SCbP, SCcP и SCdP определяют, какой SCC-канал занимает выбранную позицию в таблице приоритетов (табл. 2.6).

Таблица 2.6. Приоритеты каналов.

Биты SCxP

Канал

00

SCC1

01

SCC2

10

SCC3

11

SCC4

Бит SPS определяет абсолютные приоритеты запросов от SCC-каналов среди запросов от других модулей контроллера (табл. 2.7). Если бит SPS=0, то все запросы от SCC-каналов сгруппированы вместе и имеют высокий приоритет относительно других запросов. Если бит SPS=1, то запросы  от SCC-каналов распределены по таблице приоритетов среди других запросов.

Следует отметить, что регистр CICR производит настройку приоритетов только SCC-каналов и не влияет на приоритеты других каналов вво­да/вывода.

Таблица 2.7. Уровни приоритетов модулей коммуникационного процессора в МРС860.

Канал ввода/вывода

Вектор прерывания

Уровень приоритета

Бит SРS=0

Бит SРS=1

SCCa

11110(1E)

11110(1E)

Высокий

SCCb

11101 (ID)

10011(13)

SCCc

11100(1C)

01101 (OD)

SCCd

11011 (1В)

01000(08)

Ошибки SDMA

10110(16)

10110(16)

RISC-таймеров

10001(11)

10001(11)

I2C

10000(10)

10000(10)

SPI

00101 (05)

00101 (05)

SMC1

00100(04)

00100(04)

SMC2/PIP

00011(03)

00011(03)

Низкий

Остальные биты в регистре CICR определяют работу самого контроллера прерывания. Бит IEN при значении lEN=1разрешает работу контроллера прерывания, а при значении lEN=0 - запрещает.

Биты IPL определяют уровень приоритета запросов на прерывание от кон­троллера прерывания к центральному процессору. Уровень 0 соответствует самому высокому приоритету, а уровень 7 — самому низкому. Обычно для нормальной работы механизма прерывания устанавливают уровень приори­тетности запросов от контроллера прерывания равным IPL=4.