Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Радиоэлектроника, компьютеры и периферийные устройства. /

Архитектураввода-вывода персональных ЭВМ IBM PC

←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 

L2 ¦ L1 ¦ L0 ¦ L----+-T--+-T--+-T--+----+----+-T--+-T--+-T---

       ¦    ¦    ¦             ¦    ¦    L--> Эти 3 бита опреде-

       ¦    ¦    ¦             ¦    L-------> ляют номер уровня

       ¦    ¦    ¦             L------------> прервания, если он

       ¦    ¦    ¦                            требуется в команде.

       ¦    ¦    ¦


       ¦    ¦    ¦

       ¦    ¦    L---------------------------> 1-команда завер-

       v    v                                   шения обработки

    -----T----¬                                 аппаратного

¦  0 ¦  0 ¦ Используется вместе с EOI=1      прерывания

    +----+----+

¦  0 ¦  1 ¦ Специфицированный EOI (сбрасывает бит, определя­+----+----+ емый полями L0 - L2 в ISR)

¦  1 ¦  0 ¦ Циклический сдвиг приоритетов влево на одну

    +----+----+ позицию

¦  1 ¦  1 ¦ Назначение низшего приоритета уровню, определяе­L----+----- мому полями L0 - L2

     Как   уже  говорилось,   процедура  обработки   аппаратного прерывания должна  перед своим завершением  очистить свой бит  в ISR  выводом  команды  завершения  обработки  прерывания (End Of Interrupt, EOI). Существует два  варианта команды EOI: обычный и специфицированный  EOI. Обычный  EOI  очищает  бит в  ISR, соот­ветствующий  прерыванию  с  максимальным  приоритетом.  Специфи­цированный EOI  (R=0, SL=1, EOI=1,  L0 - L2  равно номеру уровня прерывания)  очищает  в  ISR  бит,  соответствующий прерыванию с номером,  указанным  в  L0  -  L2  независимо от его приоритета. Команды  с  битом  R=1  позволяют  изменить  приоритеты уровней. Циклический  сдвиг  приоритетов  сдвигает  приоритеты  влево  на единицу,   при   этом,   если  после   обычного   распределения

приоритетов,  издать  команду  циклического  сдвига,  уровень  0 получит  низший приоритет,  уровень 1  - наивысший,  уровень 2 ­следующий  за  ним  и  т.д.  Команда  явного  назначения низшего приоритета  одному  из  уровней  изменяет  приоритеты  остальных уровней  циклически.  Таким  образом,  если  Вы  зададите низший приоритет уровню 5, то уровень 6 получит наивысший.

     Третье слово  рабочих приказов OCW3  позволяет установить и отменить режим  специальной маски, перевести  контроллер в режим опроса и  прочитать содержимое IRR и  ISR. Назначение битов OCW3 приведено на рисунке

  A0   7    6    5    4    3   2    1    0

-----T----T----T----T----T----T----T----T----¬

¦  0 ¦  0 ¦ESMM¦ SMM¦  0 ¦  1 ¦  P ¦ RR ¦ RIS¦ L----+----+-T--+-T--+----+----+-T--+--T-+-T---

  -----------   ¦             ¦     ¦   ¦

  ¦   ------------             L-T---+---+--> 1-режим опроса

  v   v                          v   v   v

----T---¬                      ----T---T---¬

¦ 1 ¦ 0 ¦-Отменить режим       ¦ 0 ¦ 1 ¦ 0 ¦ Чтение IRR

+---+---+ специальной маски    +---+---+---+

¦ 1 ¦ 1 ¦-Установить режим     ¦ 0 ¦ 1 ¦ 1 ¦ Чтение ISR

L---+---- специальной маски    L---+---+----

     Единичное  значение  бита  Р   (бит  опроса,  Polling  Bit) переводит контроллер  в режим опроса.  Если после этого  считать данные из порта  с четным адресом, в регистр  AL загрузится байт следующего содержания:

          7    6    5    4    3    2    1    0

        -----T----T----T----T----T----T----T----¬

¦  I ¦  0 ¦  0 ¦  0 ¦  0 ¦ L2 ¦ L1 ¦ L0 ¦ L----+----+----+----+----+----+----+-----

     Если I = 1, значит имеются запросы на прерывания и тогда L0 - L2  - это  номер уровня  с наивысшим  приоритетом, по которому имеется запрос на прерывание.

     Если P=0, Вы можете считать  информацию из ISR или IRR. Для этого необходимо издать команду чтения  ISR или IRR (см. рисунок выше) и затем считать значение из порта с нечетным адресом.

     Единичное  значение бита  ESMM позволяет  в зависимости  от значения  бита  SMM  установить  или  отменить режим специальной маски.

4. Таймер и генерация звука

4.1. Программируемый таймер 8253

     Для задания временных интервалов  и формирования сигналов с различными  временными  параметрами   в  IBM  PC/XT  применяется программируемый таймер 8253  (отечественный аналог КР580ВН53), в AT - 8254.  С точки зрения программиста они  идентичны. В состав таймера   входят:   буфер    шины   данных,   схема   управления вводом-выводом  и  три  независимых  канала,  каждый  из которых содержит  регистр  режима,  схему  управления  каналом,  буфер и 16-разрядный счетчик.

     Программирование   канала   осуществляется   путем   вывода управляющих слов в регистр  режима каналов и начального значения в его счетчики. Каждый канал имеет управляющий вход GATE и выход OUT и может работать в одном из следующих шести режимов.

      Режим  0  (прерывание  терминального  счета). После записи управляющего  слова  в  регистр  режима  канала  на  выходе  ОUT устанавливается напряжение низкого  уровня; загрузка счетчика не изменяет  это  состояние.  Затем  начинается  декремент счетчика (последовательное  вычитание из  него единицы).  В момент, когда счетчик  обнулится,  на  выходе  OUT  установливается напряжение высокого  уровня  и  сохраняется   до  загрузки  счетчика  новым значением.  Счет возможен  только при  наличие сигнала  высокого уровня  на   входе  GATE.  Низкий  уровень   этого  сигнала  или ниспадающий фронт запрещают счет.

     Перезагрузка  счетчика  во  время  приводит  к  следующему: загрузка  младшего  байта  останавливает  текущий счет, загрузка старшего байта запускает новый цикл счета. Минимально допустимое значение счетчика равно 2.

     Режим 1 (ждущий мультивибратор).  На выходе OUT формируется отрицательный  импульс  длительностью  t=n*T,  где  n  -  число, загруженное  в счетчик,  T -  период тактовых  импульсов. Низкий уровень на выходе OUT  устанавливается со следующего такта после подачи на вход GATE сигнала высокого уровня.

     Загрузка в  счетчик нового числа не  влияет на длительность текущего   импульса,  а   учитывается  при   следующем  запуске. Перезапуск счетчика производится  нарастающим фронтом входа GATE (без перезагрузки счетчика). Минимальное допустимое n=1.

     Режим  2 (генератор  частоты). Каждый  раз после достижения счетчиком нуля на выходе  OUT появляется отрицательный импульс с длительностью  один  такт.   Перезагрузка  счетчика  сказывается только  после  перезапуска  счетчика.  При  исчезновении сигнала

высокого уровня на  входе GATE прекращается счет и  на выход OUT подается   напряжение  высокого   уровня.  Перезапуск   счетчика происходит при наличии на входе GATE сигнала высокого уровня.

     Режим  3  (генератор  меандра).  Аналогичен  режиму  2,  но положительный   уровень   выходного   сигнала   занимает  первый полупериод, а отрицательный -  второй полупериод. Точнее, если n (начальное    значение   счетчика)    четно,   то   длительность положительного и  отрицательного полупериодов равна  n*T/2; если же  n нечетно  - то  (n+1)*T/2 и  (n-1)*Т/2 соотвественно. Низкй уровень  сигнала на  входе GATE  запрещает счет,  на выходе  OUT устанавливается  сигнал  высокого  уровня.  Высокий уровень GATE разрешает  счет, а  нарастание его  запускает счетчик начального состояния. Отметим, что n=3 в этом режиме недопустимо.

     Режим  4  (счетчик  событий).  По  окончании отсчета числа, загруженного в счетчик, на  выходе OUT формируется отрицательный импульс длительностью один такт. Запись в счетчик во время счета младшего  байта не  влияет на  текущий счет,  а запись  старшего байта перезапускает счетчик. Низкий уровень входа GATE запрещает счет, 

←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 


Copyright © 2005—2007 «RefStore.Ru»