Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Виды вспомогательных устройств
В состав микропроцессорной системы кроме микропроцессора, запоминающего устройства и устройства ввода-вывода входят вспомогательные устройства. К ним относятся: · Программируемый контроллер прерываний; · Программируемый таймер; · Буферный регистр; · Шинный формирователь. Программируемый контроллер прерываний Принцип обмена по прерываниям показан на рис. 1: Рис. 1. Внешнее устройство по специальной линии посылает микропроцессору сигнал запроса на прерывание. Микропроцессор реагирует на него и переходит к подпрограмме обработки этого прерывания. Предположим, что в системе имеется несколько устройств, использующих обмен по прерываниям. Логично, что в этом случае каждое их них будет посылать запрос на прерывание по своей отдельной линии, чтобы микропроцессор мог определить, какое же устройство запрашивает обмен. Однако такое решение имеет два серьезных недостатка: 1. Количество выводов МП ограничено, следовательно, количество входов запросов на прерывание также будет ограничено, следовательно, у системы будет жесткое ограничение на количество устройств, могущих участвовать в обмене по прерываниям с МП. 2. Если два или более устройства одновременно запросят обмен по прерываниям, возникает конфликтная ситуация, так как одновременно может быть выполнен только один запрос. Для устранения указанных недостатков применяется программируемый контроллер прерываний, который включается в систему между МП и устройствами, запрашивающими прерывания так, как показано на рис. 2. Рис. 2. Внешние устройства подключаются к контроллеру прерываний, а он в свою очередь — к микропроцессору. Контроллер прерываний решает три основные задачи: 1. Передача в МП сигналов запросов на прерывание, поступивших от внешних устройств. 2. Информирование МП о том, какое именно устройство запросило прерывание (МП должен это знать для перехода на выполнение соответствующей подпрограммы обработки прерывания, а сам он это определить не может, так как все запросы приходят к нему по одной линии INT). 3. Разрешение конфликтных ситуаций, когда два или более устройства одновременно выдают запрос на прерывание. В этом случае контроллер должен выбрать из них какое-то одно в соответствии с теми приоритетами, которые назначены каждому устройству при настройке (программировании) контроллера. Первым будет обработан запрос от устройства, имеющего максимальный приоритет среди всех запросивших. Обобщенная архитектура программируемого контроллера прерываний представлена на рис. 3. Рис. 3. Буфер шины данных, обеспечивает подключение к контроллера прерываний к шине данных. Подключение к ШД необходимо для: · программирования (начальной настройки) контроллера перед началом работы; · передачи контроллером МП номера устройства, запросившего прерывание. Блок управления управляет работой контроллера, обеспечивая обмен данными между ним и МП (на этапе программирования контроллера), формирование сигнала INT и передачу в МП номера устройства, запросившего обмен. Регистр управления содержит информацию о режиме работы контроллера. Информация в него заносится микропроцессором на этапе программирования (настройки) контроллера. К программируемым (настраиваемым) параметрам относятся, в частности, номера устройств для каждой линии запроса, приоритеты, схемы изменения приоритетов, наличие контроллеров следующего уровня и т.п. Регистр запросов фиксирует запросы, приходящие от внешних устройств. К линиям IRQ подключаются ВУ, по ним передаются запросы на прерывание. Регистр маскирования предназначен для "маскирования" (запрещения обработки) запросов на прерывание для определенного входа (входов). Регистр маскирования содержит по одному биту на каждый вход запроса от внешнего устройства. Если значение бита равно "1", обработка прерывания по данному входу разрешена, если "0" — запрещена. Значение в регистр маскирования записывается МП на этапе программирования контроллера. Контроллер прерываний в общем случае может поддерживать разные схемы приоритетов. Схема жестких приоритетов. Каждому устройству (входу IRQ) назначается фиксированный приоритет, который не меняется во время работы контроллера. Недостаток такой схемы — если устройство с высоким приоритетом будет интенсивно выдавать запросы, запросы от устройств с более низким приоритетом подолгу не будут обрабатываться. Схема используется в том случае, если в системе явно присутствует устройство, которому необходимо обеспечить первоочередное обслуживание в обработке прерываний. Схема циклически изменяющихся приоритетов. Приоритеты изменяются по следующей схеме: устройство, запрос от которого был обработан последним, получает наименьший приоритет. Таким образом, устройство, которое дольше всех не обслуживалось, имеет максимальный приоритет. При этой схеме, в среднем, каждое устройство имеет равные шансы быть обслуженным. Такая схема используется в случае, если все устройства являются равноправными. Кроме передачи сигнала запроса, контроллер должен сообщить микропроцессору номер устройства. Номер выдается контроллером на шину данных после получения от МП сигнала подтверждения прерывания INTA (рис. 4). Рис. 4. На рис. 4 приведена временная диаграмма работы контроллера прерываний по обслуживанию запроса от устройства. Устройство выдает запрос на обмен по прерыванию на линию IRQ. Контроллер "передает" запрос в МП по линии INT (перед этим решается, если необходимо, задача приоритетов, проверяется, не запрещена ли обработка прерывания через регистр маскирования). Спустя некоторое время (разрыв на временной диаграмме) микропроцессор активизирует сигнал INTA, сообщая таким образом, что он готов начать процедуру обмена по прерываниям. В ответ на это контроллер выдает на шину данных номер устройства, запросившего прерывание. Микропроцессор загружает этот номер с шины данных и переходит к выполнению соответствующей подпрограммы обработки прерывания. Адрес подпрограммы МП определяет по номеру устройства с помощью специальной таблицы (таблицы векторов прерываний), в которой каждому номеру устройства соответствует определенный адрес подпрограммы. Некоторые контроллеры вместо номера устройства выдают в МП непосредственно адрес подпрограммы обработки прерывания. Разрыв на временной диаграмме вызван тем, что после получения сигнала запроса, МП может не сразу перейти к обработке прерывания. Как минимум, он должен завершить выполнение текущей команды. Кроме того, обработка прерываний в МП может быть временно запрещена — в этом случае сигнал INTA будет активизирован после того, как обработка прерываний снова будет разрешена. Количество входов для подключения внешних устройств в любом контроллере прерываний ограничено и может возникнуть ситуация, когда необходимо подключить большее количество устройств, чем имеется входов у контроллера. В этом случае используется каскадирование контроллеров прерываний. Второй контроллер подключается к первому как одно из внешних устройств — выход INT второго контроллера (контроллера второго уровня) подключается к одному из входов IRQ первого контроллера (контроллера первого уровня). При этом первому контроллеру на этапе программирования указывается, что к одному из его входов подключено не простое устройство, а другой КП.
Программируемый таймер Программируемый таймер представляет собой многофункциональный генератор, способный формировать импульсы переменой длительности или последовательность импульсов с заданным интервалом следования. Обобщенная архитектура программируемого таймера представлена на рис. 1. Рис. 1. Основным элементом архитектуры таймера является счетчик. Счетчик содержит счетный регистр, в который на этапе программирования (настройки) таймера заносится некоторое начальное значение. На вход CLK счетчика подаются счетные импульсы с тактового генератора. При поступлении каждого импульса значение счетчика уменьшается на 1. При достижении счетным регистром значения "0" наступает счетное событие, смысл которого зависит от режима работы счетчика. Режим 1. Генерация одиночного импульса через заданный промежуток времени. Временная диаграмма работы таймера в этом режиме представлена на рис. 2. Рис. 2. Представим себе, что в счетный регистр записано значение "4". Как только значение записано, начинается счет, то есть при поступлении каждого импульса на вход CLK значение счетного регистра уменьшается на 1. При достижении значением счетного регистра "0" происходит формирование одиночного импульса, длительность которого равна одному периоду сигнала CLK. В таймере может быть предусмотрен режим автоинициализации, когда после окончания счета в счетный регистр опять заносится первоначальное значение (в нашем примере — "4") и процесс повторяется. В этом случае мы будем иметь на выходе OUT последовательность импульсов, период следования которых определяется начальным значением, заносимым в счетный регистр: . Режим 2. Формирование импульса заданной длительности (рис. 3). Рис. 3. После записи начального значения в регистр, начинается счет. Одновременно выход OUT переводится в состояние логической "1" — начинается формирование импульса на нем. При поступлении каждого импульса на вход CLK значение счетного регистра уменьшается на 1. При достижении значением счетного регистра "0" выход OUT переводится в состояние логического "0", что соответствует окончанию импульса. Таким образом, длительность импульса на выходе OUT определяется начальным значением, заносимым в счетный регистр: .
Буферный регистр Буферные регистры используются для организации запоминающих буферов, адресных защелок, портов ввода-вывода, мультиплексоров и т.п. Условное графическое обозначение и архитектура восьмиразрядного буферного регистра представлены на рис. 1. Рис. 1. Буферный регистр состоит из собственно регистра, предназначенного для хранения информации и состоящего из триггеров, выходного усилителя, имеющего выходы с тремя состояниями и устройства управления. Назначение выводов: · DI7-DI0 — линии входных данных; · DO7-DO0 — линии выходных данных; · STB — стробирующий сигнал; · OE — разрешение передачи данных. При сигнале высокого уровня на входе STB состояние входных линий DI7-DI0 передается на выходные линии DO7-DO0, то есть буферный регистр работает как импульсный усилитель с единичным коэффициентом усиления. При переходе сигнала STB от высокого уровня к низкому происходит запоминание (защелкивание) информации в регистре. После этого, пока STB находится в состоянии логического нуля, буферный регистр не воспринимает информацию, поступающую на входные линии DI7-DI0, а на выходных линиях DO7-DO0 продолжают находиться данные, запомненные по заднему фронту сигнала STB. Сигнал OE управляет выходными буферами. При OE=1 выходы DO7-DO0 переводятся в Z-состояние, что эквивалентно "отключению" буферного регистра от следующей за ним электрической схемы.
Шинный формирователь Шинные формирователи применяют как буферные устройства шины данных в микропроцессорных системах. На рис. 1 представлено условное графическое обозначение восьмиразрядного шинного формирователя: Рис. 1. Шинный формирователь представляет собой импульсный многоканальный усилитель с единичным коэффициентом усиления. Он имеет две группы выводов A0-A7 и B0-B7. В зависимости от значения сигнала T, передача данных производится от выводов A0-A7 к выводам B0-B7 (при T=1) или от выводов B0-B7 к выводам A0-A7 (при T=0). Сигнал OE, как и в случае буферного регистра, переводит выходы микросхемы в Z–состояние. Таким образом, помимо усиления сигнала, шинный формирователь дает возможность "отключения" одной части электрической схемы передачи данных от другой.
|
Последнее изменение этой страницы: 2019-05-08; Просмотров: 268; Нарушение авторского права страницы