
- •Организация эвм и систем
- •Глава 1 эвм общего назначения
- •Структура эвм общего назначения.
- •Арифметико-логические устройства.
- •Устройства управления.
- •Risc и cisc процессоры.
- •1.5 Форматы машинных команд.
- •Inc byte ptr [40h] – одноадресная
- •Способы адресации.
- •Стековая адресация. Виды стеков.
- •Глава 2
- •2.1 Микропроцессор к1810вм86.
- •2.2 Назначение входов/выходов вм86 в минимальном режиме.
- •2.3 Назначение входов/выходов вм86 в максимальном режиме.
- •Внутренняя архитектура мп вм86.
- •Сегментация памяти.
- •2.6 Программная модель мп вм86.
- •2.7 Организация оперативной памяти.
- •2.8 Организация адресного пространства портов ву.
- •2.9 Методы обмена информацией между мп и портами ву.
- •2.10 Параллельный программируемый адаптер к1810вв55 (i8255).
- •Пример использования и программирования адаптера
- •2.12 Программируемый таймер к1810ви54 (i8254).
- •2.13 Пример использования таймера.
- •2.14 Обработка прерываний.
- •2.15 Система прерываний вм86.
- •2.16 Контроллер прерываний к1810вн59 (i8259).
- •Дополнительная информация о настройке вн59.
- •Прямой доступ к памяти.
- •Программирование кпдп вт37
- •2.21 Организация процессорного модуля вм86.
- •2.20. Организация шинного интерфейса в максимальном режиме
- •2.23. Слабо связанные конфигурации.
- •2.24. Арбитр шин к1810вб89 (i8289).
- •2.25 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •2.26. Формат машинной команды вм86.
2.13 Пример использования таймера.
Пусть, например, при наличии в системе fопорной = 1 МГц нам надо получить fвыходную = 1 Гц. То есть нам надо разделить fопорную на 106. Поскольку один канал такой коэффициент пересчета обеспечить не может, придется использовать два канала, например, каналы 0 и 1. Схема их соединения приведена на рис. 17.
Рис. 17
Оба канала настраиваются на работу в режиме 3, на десятичный счет и в каждый из них загружается коэффициент пересчета, равный 103. Произведение этих двух коэффициентов и дает в результате 106. Далее приводится программа настройки и загрузки каналов. При этом считаем, что каналы и РУС имеют системные адреса, соответствующие IBM ПЭВМ.
mov al,37h out 43h,al |
; настраиваем канал 0
|
mov al,77h out 43h,al |
; настраиваем канал 1
|
mov al,0 out 40h,al mov al,10h out 40h,al |
; загружаем (за две передачи) ;коэффициент пересчета в канал 0
|
mov al,0 out 41h,al mov al,10h out 41h,al |
; загружаем (за две передачи) ;коэффициент пересчета в канал 1 |
2.14 Обработка прерываний.
Под прерыванием понимается некоторое событие, заставляющее МП прервать выполнение текущей программы и перейти к подпрограмме обработки (обработчику) этого события. После того, как обработчик завершает свою работу, МП возвращается к прерванной программе, в ту точку, где она была прервана.
Все прерывания в системе можно разделить на внутренние и внешние. Внешние прерывания вызываются событиями, внешними по отношению к МП, а внутренние – событиями, происходящими внутри МП.
Конечно, обработка прерываний в МП различных типов имеет свои особенности, однако общая схема действий для любых МП остается одной и той же.
При обработке внутреннего прерывания МП «известна» его причина, а следовательно известен источник запроса. Поэтому, укрупнено, при внутреннем прерывании МП выполняет следующие действия:
запоминает в стеке адрес возврата в прерываемую программу;
определяет начальный адрес обработчика для известного источника запроса и передает управление этому обработчику;
когда обработчик завершает свою работу, достает из стека адрес возврата, возвращая тем самым управление прерванной программе.
Внешние прерывания отличаются от внутренних тем, что МП неизвестен источник запроса. Следовательно, для внешнего прерывания в приведенную выше схему действий добавляется еще один этап: прежде чем определить начальный адрес обработчика, МП должен определить источник запроса.
Существуют два метода определения внешнего источника запроса:
метод опроса;
векторные прерывания.
Метод опроса. Этот метод можно реализовать, например, следующим образом. В систему вводится специальный порт (или несколько портов, при большом числе внешних источников прерываний). Все внешние запросы заводятся на входы этого порта, причем для каждого запроса отводится один бит порта. Одновременно, все запросы через схему ИЛИ заводятся на вход INTR МП. на рис. 18 приводится подобная схема для восьми внешних источников прерываний (IR7 – IR0).
Восприняв запрос на входе INTR, МП выполняет следующий фрагмент программы:
in al, port_int ; читаем port_int
shl al, 1 ; сдвигаем содержимое al на один разряд влево
jc obr7 ; если флаг cf установлен, то это запрос по ли
; нии IR7, и мы переходим к бработчику этого
; прерывания
shl al, 1 ; сдвигаем al еще на один разряд влево
jc obr6 ; если cf установлен, это запрос по IR6
и.
т. д.
Рис. 18.
Возможна ситуация, когда МП получает сразу несколько запросов на прерывание от разных внешних источников. Чтобы МП мог в такой ситуации функционировать, всем источникам запросов присваиваются приоритеты. При одновременном поступлении нескольких запросов, обслужен будет запрос с наивысшим приоритетом. Для нашего примера старший приоритет будет у IR7, а младший – у IR0. Для того чтобы изменить приоритеты в нашем примере на противоположные, достаточно использовать команду сдвига вправо.
Достоинством метода опроса являются небольшие аппаратурные затраты, а недостатком – медленная реакция МП на запросы с низким приоритетом.
Векторные прерывания. Под вектором прерывания обычно понимают начальный адрес обработчика данного прерывания. При данном методе в систему вводится специальная схема, называемая контроллером прерываний. Когда МП выставляет сигнал подтверждения прерывания, контроллер прерываний выдает МП вектор данного прерывания или информацию, позволяющую определить этот вектор. Более подробно векторные прерывания будут рассмотрены ниже при рассмотрении контроллера прерываний.