Главная -> Книги

(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) (62)

Щ-rlOR I/OW-INTA Ш

CASi SP

h-o RS \WR I/VTA Ш CAS-Q SP

... ..

-IRo 1 2 -3

Рис. 5-12. Интерфейс контроллера с системной шиной

Ао (адрес)-входной сигнал, адресующий внутренний регистр контроллера при загрузке приказов и считывании состояния; обычно подключается к младщей линии Ао щины адреса;

CAS2-0 (линии каскадирования)-при наличии в системе нескольких контроллеров образуют локальную шину и являются выходными линиями ведущего контроллера и входными - ведомых контроллеров;

SP (ведомый)-линия определения контроллера как ведущего (SP==1) или ведомого (SP=0).

Контроллер воспринимает две разновидности приказов: приказы инициализации ICW и рабочие приказы OCW.

Приказы инициализации. После включения питания каждый контроллер необходимо инициализировать двумя или тремя приказами ICW, которые определяют наличие в системе одного или нескольких контроллеров, начальный адрес подпрограмм обслуживания прерываний и размещение подпрограмм в памяти через 4 или 8 байт.

Последовательность инициализации определяется первым приказом ICWi, и для каждого контроллера ее необходимо закончить до поступления от периферийных устройств запросов прерываний. Во время инициализации, которая выполняется с запрещенными прерываниями процессора, сбрасываются схемы фиксации переходов сигналов Ш, регистры ISR и IMR, а также триггеры специальной маски и считывания состояния. Входу IR7 автоматически присваивается низший приоритет, а входу IRo - высший.

С каждым входом IR ассоциируется, адрес памяти, ко-торый выдается на шину данных в ответ на импульсы INTA



после выдачи кода операции CALL. Адреса для всех IR расположены равномерно через 4 или 8 байт и обычно содержат таблицу переходов (команды JMP) к соответствующим подпрограммам. Для каждого контроллера 32- или 64-байтные области памяти (иногда называемые страницами) могут находиться в любом месте памяти, начиная с четной границы. Биты Ais-e адреса передаются в ICW, а младщие биты Aj-o формируются в контроллере. Значение As зависит от заданного интервала и для 4-байтного интервала программируется в ICWi, а для 8-байтного интервала устанавливается контроллером. Формат младщего байта адреса для каждого входа IR приведен в табл. 5-1.

Таблица 5-1

Формат младшего байта адреса

Вход

Интервал 4 байта

D, D„ D5 D. I D, I I 1

Интервал 8 байт

D, I Р. D5 I Р. I Р. Р. I D, D,

IR, IRe IR5 IR4 IR3 IR,

IRi iRo

A, A, A, A, A, A, A, A,

л A,

A7 A,

Форматы всех приказов инициализации приведены на рис. 5-13. Отметим, что значение входа Ао указывается явно, оно должно быть определено при выполнении команды OUT, загружающей приказ в контроллер. В приказе ICWi бит F (формат) определяет интервал адресов, а бит S идентифицирует наличие в системе одного или нескольких контроллеров. Поле А7-5 содержит биты загружаемого начального адреса. Приказ ICW2 содержит старший байт начального адреса области памяти. В системе с несколькими контроллерами для ведущего и всех ведомых контроллеров необходим третий приказ ICW3, определяющий их взаимодействие и зависящий от физического подключения контроллеров.

Приведем пример программы инициализации единственного имеющегося в системе контроллера (S = l), если начальный адрес подпрограмм обслуживания прерываний равен 4000 Н и интервал соответствует 4 байтам (Ii=l).



Ао 7 8 S i 3 2 to

1 0 F S 0 ICWi

Адрес

Интервал 4 байта

Один контроллер

Интервал 8 байт

Несколько

Л»

А«

Старший байт

адреса

/<о 7 6 5 !< 3 2 1 о

Ao7S5t3 210

1 Г X 1 X1хX х

,8е$о»ого

Имеет ведомого

Не имеет

ICW3 (ведомый)

Рис. 5-13. Форматы приказов инициализации

Предполагается, что линия Ао шины адреса подключена ко входу Ад контроллера, символический адрес ADR1 имеет четное значение, а ADR2 - нечетное. Кроме того, в обоих адресах один бит имеет нулевое значение и соответствующая ему линия шины адреса подключена на вход CS контроллера.

Метка

Операнд

Комментарий

MVI OUT MVI OUT EI

A, I6H ADR I A, 40H ADR2

Запрещение прерываний процессора

Первый приказ инициализации

Второй приказ инициализации

Разрешение прерываний процессора

После инициализации контроллер готов воспринимать запросы на входах IR7-0 в режиме вложенных прерываний. Входы IR7-0 имеют фиксированные приоритеты; IRg - высший, IR7 -низший. При подтверждении прерывания идентифицируется запрос с наибольшим приоритетом и его вектор выдается на шину данных. Кроме того, устанавливает-



(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)