MSF #22
29 августа 2001

Железо - Контроллер прерываний.

Track: By me composed! Xe-xe.. :)        
Author: Macros, 14 July 2K1.             
-----------------------------------------

  +--------+                             
11+D0   IR0+18                           
10+D1   IR1+19   Контроллер прерываний   
 9+D2   IR2+20                           
 8+D3   IR3+21          i8259A           
 7+D4   IR4+22                           
 6+D5   IR5+23                           
 5+D6   IR6+24                           
 4+D7   IR7+25                           
27+A0      |                             
 1+CS#     |                             
 3+RD#     |                             
 2+WR#     |                             
17+INT     |                             
26+INTA    |                             
  +--------+                             

  Маскируемые   прерывания  обслуживаются
контроллером  8259A. Этот контроллер име-
ет  8  входов запросов прерываний IRQx от
внешних  источников и выход запроса INTR,
по  которому  запрос  поступает на однои-
менный  вход  процессора.  При  обработке
запроса  INTR  процессор формирует шинный
цикл  подтверждения  прерывания  INTA,  в
котором  контроллер передает по шине дан-
ных   8-битный  вектор  прерывания.  Этот
вектор   является  номером,  по  которому
ссылка  на процедуру обработки прерывания
хранится в таблице прерываний.           
  Команды    инициализации   обозначаются
ICW1-ICW4   и   посылаются   инструкциями
8-битного  вывода  в  порты  контроллера.
Первый  байт  ICW1  посылается  по адресу
020h,  байты  ICW2-ICW4 посылаются по ад-
ресу 021h (в PC).                        


 Байт ICW1 - конфигуратор контроллера.   

  - Биты 7-5=0 (в PC не используются)    
  - Бит 4=1 - признак команды инициализа-
+ции (в командах управления от нулевой)  
  - Бит 3 - чувствительность линий запро-

  са:                                    
  0=прерывание по перепаду               
  1=прерывание по уровню                 
  - Бит 2=0 (в PC не используется)       
  - Бит 1 - схема включения              
  1=одиночный контроллер (XT)            
  0=каскадное включение (AT)             
  - Бит 0 - признак использования ICW4   

  Байт ICW2 задает начальный номер векто-
ров,  генерируемых данным контроллером, в
таблице прерываний. Биты 2-0 должны иметь
нулевые значения.                        

  Байт  ICW3 используется только для кас-
кадного включения.                       

  Для  ведущего контроллера быты 0-7 ука-
зывают на наличие ведомых контроллеров на
линиях IRQ0-IRQ7 соответственно.         
  Для  ведомого  контроллера биты 0-2 со-
держат  номер IRQ ведущего контроллера, к
которому он подключен, биты 3-7=0        
  Байт  ICW4 задает режим работы контрол-
лера,  его применение обязательно при на-
чальной инициализации (в XT - третий байт
инициализации)                           

  - Биты 5-7 не используются             
  - Бит 4 - SFNM - включает режим вложен-
ности  приоритетов  запросов  ведущего  и
ведомого контроллеров                    
  - Бит 3 - BUF - признак буферизованнос-
5ти шины.                                
  - Бит 2 - M/S - положение в каскаде:   
  1=ведущий, 0=ведомый                   
  -  Бит  1 - AEOI - разрешение автомати-
ческого завершения прерывания (которое не
требует  сброса бита маски по оконча- нии
обслуживания запроса)                    
  - Бит 0 - тип используемого процессора:
N  1=8086/8088 и старше, 0=8080          

  В    операционном   режиме   контроллер
воспринимает      команды      управления
OCW1-OCW3.   OCW1  посылается  по  адресу
021h, OCW2, OCW3 - по адресу 020h (в PC).
  Байт  OCW1  - маски запросов, единичное
значение  бита означает маскирование зап-
роса.                                    

  -  Биты  0-7  8259#1  -  маски запросов
IRQ0-IRQ7                                
  -  Биты  0-7  8259#2  -  маски запросов
IRQ8-IRQ15                               

  Байт  OSW2  -  завершение  обслуживания
(EOI), управление приоритетом.           

  - Биты 7-5 задают код операци:         
  001  -  неспецифический  EOI  (AEOI=1 в
ICW4)                                    
  011*  -  специфический  EOI для запроса
LLL                                      
  101  -  неспецифический  EOI с ротацией
приоритета                               
  100  - установка режима ротации приори-
тета                                     
  000 - сброс режима ротации приоритета  
  111*  -  специфический  EOI  с ротацией
приоритета                               
  110* - установка низшего приоритета    
  010   -   нет   операции  В  операциях,
помеченых   звездочкой,  ис-  пользвуются
биты 2-0 (поле LLL)                      
  - Биты 4-3=00 - признак OCW2           
  - Биты 2-0 - поле LLL - номер уровня, к
пкоторому относится команда.             

  Байт   OCW3  -  оперативное  управление
контроллером                             

  - Бит 7=0                              
  -  Биты 6-5 режим специального маскиро-
вания (в PC не используется):            
  11 - установить                        
  10 - сбросить                          
  00,01 - не изменять                    
  - Биты 4-3=01 - признак OCW3           
  -  Бит 2=0 - запрещает режим полинга (в
котором запрос прерывания к процессору не
вырабатывается)                          
  -  Биты  1-0  -  управление чтением ре-
гистров:                                 
  10=чтение IR - регистра масок          
  11=чтение  IS  -  регистра  обслуживае-
мого прерывания                          
  00,01 - не изменять регистр            

  Для  чтения регистра маски или регистра
обслуживаемого  прерывания (в зависимости
от  бит  1-0 OCW3) используется порт 021h
(в PC).                                  




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Cool down - газета былa cлeплeнa зa oдну нeдeлю из "тoгo, чтo былo".
scene intro - сценовое вступление.
Конкурс - конкурс на лучшее Intro.

В этот день...   20 августа