Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kurs_lektsy_TS_AiU.doc
Скачиваний:
70
Добавлен:
31.03.2015
Размер:
2.39 Mб
Скачать

6.12 Схема каскадирования контроллеров прерывания.

Каскадирование позволяет объединить несколько контроллеров для расширения числа ЗП.

При этом один ПКП работает как ведущий, а до 8 ПКП могут работать ведомыми.

Сигнал INTведомого ПКП подается на один из входов ведущего (IRi). ЕслиIMRиISRне блокируют сигнал, то он поступает на вход ЦП по линииINTведущего.

Когда ЦП возвращает INTA, ведущий ПКП проверяет, возникло ли его собственное прерывание или от ведомого. Если прерывание от ведомого, то на шину ведущий на шину каскадирования выдает код, соответствующий входу, к которому подключен ведомый.

Рис. 6.9 Схема каскадирования контроллера прерывания.

CAS2

CAS1

CAS0

22(4)

21(2)

20(1)

0

1

0

За исключением реакции на сигнал INTAдействие всех контроллеров в системе одинаково.

IR0 имеет самый высокий приоритет, номер типа прерывания – 8.

IR0

IR1

IR8

IR9

IR10

IR11

IR12

IR13

IR14

IR15

IR3

IR4

IR5

IR6

IR7

8

9

70h

71h

72h

73h

74h

75h

76h

77h

Bh

Ch

Dh

Eh

Fh

Методика программирования контроллера прерываний.

После включения питания БИОС выполняет инициализацию ПКП.

При инициализации:

  • Устанавливается режим работы ПКП.

  • Номера типов прерываний.

  • Определяется ПКП1-ведущий, ПКП2-ведомый.

6.13 Программирование пкп в процессе обслуживания ву и работы системы.

По окончании инициализации IMRобнуляется, следовательно, разрешаются ЗП на всех входах.

Для программирования ПКП в работе системы используется 3 слова рабочих приказов:

- Operation Command Word (OCW).

  1. OCW1– разрешение или запрет отдельных входов ЗП.

OCW1использует нечетный адрес.

Регистр масок всегда доступен ЦП для чтения и для записи.

7

6

5

4

3

2

1

0

IM7

IM6

IM5

IM4

IM3

IM2

IM1

IM0

LPT1

HTMD

LPT2

COM1

COM2

Каскадир.

Клавиатура

Таймер

0

1

1

1

0

0

0

Слова рабочих приказов OCW2 иOCW3 используются для управления текущим режимом работы ПКП. Оба слова передаются по четному адресу.

Для отличия OCW2 отOCW3 иICW1(InitializationCommandWord) используются два бита с номерами 4 и 3:

D4

D3

1

X – ICW1

0

0 – OCW2

0

1 – OCW3

2. OCW2используется при завершении процедуры обработки прерывания или смены текущего режима работы ПКП.

Формат OCW2:

7

6

5

4

3

2

1

0

OCW2 подается по четному адресу, для первого контроллера = 20h.

MODE

0

0

L2

L1

L0

OCW2

Если MODE=00100000 =20h, устанавливается режим вложенных прерываний и сбрасывается бит вISR, в соответствии с последним обслуживаемым запросом.

Пример: поступил ЗП на вход IR5. ЦП начал обслуживание, битIS5=1, затем пришел ЗП на входIR4, устанавливаетсяIS4=1. Режим вложенных прерываний сохраняется. Пришел ЗП наIR3, устанавливаетсяIS3=1.

Если поступает команда Port[$20]:=$20;, битIS3сбросится в 0, если еще раз поступает эта же команда, то сбросится битIS4=0, следующая аналогичная команда сбросит битIS5=0.

Если установить режим MODE=10100000 = A0h, устанавливается режим циклических приоритетов, сбрасывается бит с максимальным приоритетом, входу присваивается самый низкий приоритет.

Если установить MODE = 11000L2L1L0режим адресуемых приоритетов, номеру входа, определяемого полемL2L1L0, присваивается низший приоритет.

  1. OCW3 используется для установки дополнительных режимов работы или опроса состояния ПКП.

Формат OCW3:

7

6

5

4

3

2

1

0

OCW2подается по четному адресу, для первого контроллера = 20h.

0

SMM

0

1

p

RRC

Признак OSW3

SMMможет принять только 2 значения (остальные не действуют).

SMM = 01101000 = 68h– незамаскированные запросы обслуживаются в порядке их поступления.

SMM = 01001000 = 48h– восстанавливается приоритет упорядоченных запросов.

RRC = 00001010 = Ah– разрешение чтения регистраIRR.

RRC = 00001011 = Bh– разрешение чтения регистраISR.

После выполнения команды разрешения чтения регистра, чтение указанных регистров можно выполнять произвольное число раз до момента изменения OCW3. Чтение выполняется из того же адреса.

P=1→00001100 = Ch– разрешение чтения незамаскированного запроса с максимальным приоритетом.

Следующая операция чтения из регистра с четным адресом приводит к установке бита ISkс максимальным приоритетом, как будто получен сигналINTAи передача ЦП в байта следующего форматаI0000W2W1W0, гдеIпоказывает наличие ЗП (I=1, есть ЗП), аW2W1W0показывают номер входа с наивысшим приоритетом.

Пример №1.

Port[$21]: = Port[$21] or 2;

OCW1, адрес нечетный.IMi=1– запрет клавиатуры.

Port[$21]: = Port[$21] and not 2;

IMi =0 – разрешение работы клавиатуры.

Пример №2.

Port[$20]: = Port[$20] ;

Сброс бита с самым высоким приоритетом ISi. Завершение обслуживания прерывания, соответствующего последнему запросу.

Пример №3.

Port[$20]:=$A;

Разрешение чтения регистра IRR.

Writeln( ‘содержимое регистра IRR=’), port[$20];

Чтение регистра IRR

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]