
- •Введение
- •1. Архитектура микропроцессорных систем.
- •1.1. Базовая структура мпс.
- •1.2. Типы межмодульных связей.
- •1.3. Функции средств сопряжения.
- •1.4. Методы адресации элементов.
- •1.5. Способы организации связи с внешними устройствами.
- •1.5.1. Программно-управляемый обмен.
- •1.5.2. Обмен по прерываниям.
- •1.5.3. Прямой доступ к памяти (пдп).
- •1.6. Типы магистралей.
- •1.7. Элементы памяти мпс.
- •1.8. Сопряжение микропроцессора с магистралью.
- •1.9. Аналого-цифровые и цифро-аналоговые компоненты.
- •1.9.1. Цифро-аналоговые преобразователи.
- •1.9.2. Аналого-цифровые преобразователи.
- •1.10. Мп в контуре управления.
- •1.11. Особенности многопроцессорных систем.
- •1.12. Программное обеспечение мпс.
- •2. Разработка микропроцессорных систем.
- •2.1. Формулировка проблемы.
- •2.2. Выбор коллектива разработчиков.
- •2.3. Разработка модели управления объектом.
- •2.4. Разработка алгоритма.
- •2.5. Выбор мп и построение структуры мпс.
- •2.6. Разработка аппаратных средств мпс.
- •2.7. Разработка программного обеспечения мпс.
- •3. Отладка мпс.
- •3.1. Особенности контроля и диагностики мпс.
- •3.2. Источники ошибок при проектировании и виды неисправностей.
- •3.3. Методы и инструментальные средства тестирования.
- •4. Лабораторный практикум.
- •4.1. Указание по технике безопасности.
- •4.2. Описание лабораторного комплекса.
- •4.2.1. Состав.
- •4.2.2. Работа с учебным микропроцессорным комплектом.
- •4.2.3. Работа с кросс-системой.
- •4.2.4. Описание модулей.
- •5. Проведение лабораторных работ.
- •5.1. Порядок выполнения работы.
- •5.2. Указания к отчету.
- •5.3. Варианты заданий.
- •5.4. Лабораторная работа № 1. Разработка математической модели мпс
- •5.5. Лабораторная работа № 2. Разработка концептуального алгоритма мпс
- •5.6. Лабораторная работа № 3. Разработка структурной электрической схемы мпс
- •5.7. Лабораторная работа № 4. Разработка программы мпс
- •5.8. Лабораторная работа № 5. Сборка макета структуры мпс
- •5.9. Лабораторная работа № 6. Отладка подпрограмм взаимодействия с ву
- •5.10. Лабораторная работа № 7. Комплексная отладка макета мпс
- •Список литературы
1.5.2. Обмен по прерываниям.
Простота программно-управляемого ввода-вывода оборачивается "бездельем" МП, который почти все время находится в ожидании ввода или вывода. Например, если на принтер выводится информация с быстродействием 1000 символов в секунду, то полезное время работы МП составит всего 0,1% и менее.
При недопустимости такой ситуации требуется обеспечить такой режим работы МП, когда он выполняет две независимые программы, одна из которых - программа управления обменом с ВУ (программно-управляемый обмен) - вызывается только тогда, когда ВУ необходимо выполнить какие-то действия (аварийные, допусковые ситуации и др.). Указанный режим реализуется с помощью механизма прерываний. Данный способ представляет собой расширение "демократии" взаимодействия между элементами в системе и, как следствие, требует дополнительных организационных затрат: аппаратных и программных.
Для организации обмена по прерываниям необходимо дополнительно ввести две шины управления: "Запрос прерывания" (ЗПР) – ВУ запрашивает обслуживания у МП, "Разрешение прерывания" (РПР) – МП подтверждает начало обслуживания (рис.21).
|
|
Рис.21 |
Рис.22 |
На МП возлагаются следующие функции:
принять сигнал ЗПР;
завершить выполнение текущей команды основной программы;
запомнить в стеке (ОЗУ) адрес следующей для исполнения команды;
передать управление подпрограмме обработки прерывания (обслуживания запроса ВУ);
выдать сигнал РПР.
Так как МП не "знает", где в запоминающем устройстве расположена подпрограмма обработки прерывания, он передает управление не ей, а команде ЗУ, расположенной чаще всего по адресу 0 (или любой другой, обусловленной схемотехникой МП). На программиста возлагается задача расположить по этому адресу команду передачи управления подпрограмме обработки запроса ВУ (см. рис.22).
Для корректного использования такого способа ввода-вывода между фоновой программой и программой обмена существуют некоторые соглашения. Так как основная программа будет продолжена, подпрограмма обработки прерывания ВУ должна:
1. Запомнить в стеке состояние всех используемых регистров основной программы.
2. Выполнить обмен информацией между МП и ВУ, устранив причину запроса.
3. Восстановить из стека состояние используемых регистров основной программы.
4. Передать управление в основную программу (адрес возврата находится в стеке).
МП может иметь несколько входов "Запрос прерывания", часть из которых обычно программно "маскируется" (запрещается или разрешается), а часть – нет (для случаев аварийной ситуации на технологическом объекте, требующей безотлагательного вмешательства).
Случай нескольких ВУ.
Если предполагается, что несколько ВУ может работать в режиме прерывания, то возникают дополнительные проблемы:
у МП не хватает входов "ЗПР";
требуется несколько подпрограмм обслуживания прерывания с организацией механизма передачи им управления;
необходимо определить, какое ВУ выдает сигнал "ЗПР";
при одновременном запросе прерывания от нескольких ВУ нужно выяснить, какое ВУ обслужить в первую очередь.
Обычно эти проблемы решаются двумя путями.
На аппаратном уровне выделяется отдельный блок сопряжения, называемый блоком приоритетных прерываний (БПП), на который возлагаются следующие функции (см. рис.23):
объединение всех выходов "Запрос прерывания" от ВУ в один для соединения с входом "Запрос прерывания" МП;
маскирование несущественных в текущий момент "Запросов прерывания" от ВУ;
ранжирование ВУ по приоритетам (при их одновременных запросах);
передача МП информации о том, какой подпрограмме обслуживания передать управление для обработки запроса прерывания.
На программном уровне в основной программе программист должен выполнить предварительную настройку БПП на текущие потребности; создать столько подпрограмм обработки прерываний, сколько имеется активных ВУ; организовать передачу им управления при получении соответствующей информации от БПП.
|
Рис.23 |
Совокупность всех выходов "Запрос прерывания", подсоединенных к МПС, называется вектором прерывания. В МП предусматривается несколько команд передачи управления на определенные адреса – ровно столько, какой размерности допустим вектор прерывания. Такие команды - однословные, длиной, соответствующей разрядности шин данных в МП. При обработке прерывания МП после выдачи сигнала "Разрешение прерывания" принимает с ШД код такой команды, выставленный БПП, и тем самым "узнает", на какой адрес передать управление для обработки данного прерывания. Так в персональных ЭВМ клона РС такие прерывания называются "Int" (interrupt, прерывание).
Протокол обмена между БПП и МП в момент поступления запроса на прерывания от ВУ выглядит следующим образом:
1. БПП выставляет сигнал "ЗПР" на МП.
2. МП завершает выполнение текущей команды, сохраняет в стеке адрес возврата и выдает на БПП сигнал "РПР", освобождая магистраль.
3. При получении "Разрешение прерывания" БПП выставляет на магистраль код команды безусловного перехода на фиксированную область памяти, соответствующую активированному входу "ЗПР" БПП.
4. МП принимает код этой команды с магистрали и исполняет ее.
Если количество ВУ больше, чем имеет входов "ЗПР" у БПП, применяется каскадное подключение нескольких БПП. В этом случае на программу возлагается либо опрос состояния БПП (аппаратный полинг), либо опрос состояния ВУ (программный полинг).