
- •Ответы на 9-14 вопросы
- •Установка вп.
- •??? Техническая реализация обмена данными с прерыванием программы.
- •Механизм приоритетов. Вложенные прерывания.
- •Технические характеристики бис Intel 8259a.
- •Функциональный состав пкп и его программная модель
- •Алгоритм работы пкп.
- •Методика программирования контроллера прерываний.
- •13 Программирование пкп в процессе обслуживания ву и работы системы.
- •Методика программирования обмена данными с прерыванием программы.
Ответы на 9-14 вопросы
Основные функциональные элементы интерфейса внешнего устройства для обмена данными с прерыванием программы процессора.
Содержит все компоненты обмена данными по готовности. Дополнительные элементы:
Схема формирования сигнала ЗП:
Регистр управления содержит триггер разрешения прерывания (ТРП). Установить ТРП в 1 может только ЦП, т.е. основная или фоновая программа.
В регистре состояния интерфейса имеется триггер флага готовности, который может быть установлен в единицу только ВУ, когда оно готово к обмену. Запрос прерывания появится на выходе интерфейса, если оба триггера будут установлены в единицу.
|
Рис. 6.5 Схема формирования ЗП.
Схема учета приоритетов.
Указывает ЦП когда надо реагировать на прерывание.
Схема формирования адреса ВП.
Должна передавать в ЦП уникальный для каждого ВУ код (АВП).
Техническая реализация 2 и 3 элементов интерфейса различается для ЭВМ с разной архитектурой.
Пример технической реализации схемы формирования запроса прерывания от таймера на плате L154.
Установка вп.
Выполняется с помощью процедуры Borland Pascalиз модуляDOS.*(* - т.к. могут быть различные режимы памяти; дляWindows– WinDOS.*).Для установки ВП в модулях имеется следующая процедура:
Procedure SetIntVec(IntNo:byte; IntProcAddr: pointer);
Как только установили новый ВП, старый будет утерян, используем следующую процедуру, чтобы сохранить его: Procedure GetIntVec(IntNo:byte; var OldIntProcAddr: pointer);
Процедура обслуживания прерываний: Сохранение регистров ЦП, которые будут модифицированы оперативной программой.
Procedure IntDC; interrupt;
IRET.
IRET восстанавливает СК, Flags.
??? Техническая реализация обмена данными с прерыванием программы.
|
Рис. 6.10 Схема реализации обмена данными с прерыванием программы.
За время Tдолжна завершить работу оперативная программа. Программа, обслуживающая ЗП может закончиться раньше, но не позже. Сигнал ЗП устанавливается фронтом.
Пример. Обмен с прерыванием от таймера, ввод в ОЗУ 100 точек.
Канал 32, диапазон ±5 В; режим подключения сигналов с общей землей.
Program Demo_interrupt;
Uses Dos, timer154;
Const BA=$300; {базовый адрес}
Nmas=100; {длина массива}
count: word = 0;{программный счетчик}
var U: array [0..Nmas] of integer; T: word; OldIntVec: pointer; T: word; i: integer;
Procedure IntADC; interrupt;
Begin asm sti end; {IF=1}
Inc(count);
Port[BA+4]:=$FF; {запуск АЦП на измерение}
Asm nop end;
While (port[BA+2] and 8) <> 0 do;
U[count]:=PortW[BA];
Port[$20]:=$20; {OCW2, сброс битаIR3, разрешение прерываний от этого входа и входов с высшим приоритетом}
If count=Nmas then port [$21]:=port[$21] or 8;
End;
Begin
Port[BA+$F]:=0; {ФРП=0}
Port[$21]:=Port[$21] or 8; {запрет прерывания ПКП}
Port[BA+2]:=$FF; {режим}
Wait ({задержка ≈4мкс});
GetIntVec($B, OldIntVec);
SetIntVec($B, IntADC);
Writeln(‘Укажите интервал дискретизации сигнала’);readln(T);
Set_Time(T);
Port[BA+$F]:=1; {ФРП=1}
Port[$21]:=Port[$21] and NOT 8; {IM3=0}
{Фоновая программа}
Port[BA+$F]:=0; {}
SetIntVec ($B, OldIntVec);
{ Вывод данных и обработка данных }
End.
Основные варианты аппаратной реализации схем учета приоритетов и формирования адреса вектора прерывания, их отличия, достоинства и недостатки.
???
Организация вложенных векторных прерываний программы процессора при обмене данными с внешними устройствами.