Главная -> Книги (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) ( 63 ) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (63) ся соответствующий бит в ISR, что блокирует восприятие прерываний от этого входа и всех входов с меньщими приоритетами. Запросы от входов с большими приоритетами генерируют сигналы INT, которые подтверждаются, если прерывания процессора разрешены командой EI в текущей подпрограмме. (Напомним, что процессор автоматически запрещает прерывания при восприятии сигнала INT, а после команды EI выполняет следующую команду, даже если на входе INT действует высокий уровень). Каждая подпрограмма обслуживания в режиме вложенных прерываний должна информировать контроллер о своем завершении посредством загрузки в него приказа неадресуемого конца прерывания EOI. Этот приказ выдается с Ао=0 и Dr-o= = 20 Н и сбрасывает установленный бит регистра ISR с максимальным приоритетом. При наличии в системе нескольких контроллеров каждый из них инициализируется автономно. Последовательность инициализации определяет адреса подпрограмм для всех входов IR и взаимодействия ведущего и ведомых контроллеров. Эту функцию выполняет приказ ICW3; он сообщает ведущему контроллеру, какие его входы IR подключены к ведомым контроллерам, а каждому ведомому - к какому входу IR ведущего контроллера подключен его выход INT. Данный вход представлен полем идентификации ГОг-о в приказе ICW3 ведомого контроллера. Отметим, что каждый ведомый контроллер может быть запрограммирован на работу в любом режиме. Рабочие приказы. Приказами инициализации без всякой дополнительной информации любой из контроллеров программируется для работы в режиме вложенных прерываний. Для задания других режимов работы в контроллер необходимо загрузить дополннтельные рабочие приказы OCW, форматы которых приведены на рис. 5-14. С помощью приказа OCWi, который загружается после инициализации со значением Ао=1, в любой момент времени программно можно установить и сбросить отдельные биты регистра масок прерываний IMR. Состояния триггеров этого регистра действуют на выходы регистра IRR, поэтому даже при маскировании входа IR,сигнал запроса может установить соответствующий бит IRR, но прерывание процессора не генерируется. После снятия маски запомненный запрос может привести к формированию сигнала ШТ. С помощью приказа OCW2 можно задать пять операций, приведенных в табл. 5-2. Приказ неадресуемого конца прерывания EOI дает возможность сбросить установлен- Ар 7 5 5 Д 5 2 / О OCW,
R ]ftm\EOI Циклический приоритет l2\Li\Lo OCWz Адрес входа 1\Сбросить бит ISR с максимальным приоритетом Поле Lz-o используется Не используется До 1 6 5 It 3 2 1 О X ЩЗ/Ц 0\1 I Р t«5«ISJ OCW3
Опросите 1
Рис. 5-14. Форматы рабочих приказов Таблица 5-2 Варианты приказа OCWj
ный бит регистра ISR с наибольшим приоритетом, а код адресуемого EOI позволяет сбросить бит ISR, определяемый полем L2-0. Первый из них рекомендуется для режима вложенных прерываний, а второй -для всех остальных режимов, что упрощает отладку системы. Приказ установки приоритета позволяет программно задать устройство (вход IR) с низшим приоритетом независимо от EOI, т. е. без изменения регистра ISR. Поле L2-0 определяет вход IR, которому назначается низший приоритет, а приоритеты остальных входов назначаются в круговом порядке. Приказ автоцикла сбрасывает бит ISR с наибольшим приоритетом и входу IR, соответствующему только что сброшенному биту, назначает низший приоритет. Приоритеты остальных входов IR модифицируются также в круговом порядке. Наконец, приказ адресуемого цикла обеспечивает сброс в конце подпрограммы обслуживания бита ISR, адресуемого полем L2 o. Дополнительно соответствующему входу IR назначается низший приоритет, а приоритеты остальных входов упорядочиваются также в круговом порядке. В табл. 5-3 приведена сводка приказов OCW3. Первый дополнительный режим называется режимом специальной маски SMM. Пусть в некоторой подпрограмме обслуживания имеется фрагмент, когда необходимо разрешить все прерывания, даже от входов с меньшими приоритетами. Этого можно достичь приказом EOI сброса соответствующего бита ISR. Однако сброс бита ISR необратим и прерывания от устройств с меньшими приоритетами остаются Таблица 5-3 Варианты приказа OCW3
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) ( 63 ) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) |
|