Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60305.doc
Скачиваний:
13
Добавлен:
01.05.2022
Размер:
12.19 Mб
Скачать

9.8. Схема управления прерываниями

Особенности использования прерываний

Управление в реальном времени, характерное для РТК, предпола­гает использование прерываний при обмене с процессором. Как уже отмечалось, все прерывания в IBM PC AT – радиальные, то есть для перевода процессора в режим обработки прерывания достаточно послать запрос, в качестве которого выступает положительный фронт сигнала на одной из линий IRQ. Однако из этого совсем не следует, что на эту линию можно подать сколь угодно короткий импульс положительной полярности, так как при этом не существует никакой гарантии, что этот импульс дойдет до контроллера прерываний, будет им обработан и вызовет нужную реакцию. Поэтому обычно при возникновении необходимости обмена выполняют аппаратный перевод сигнала IRQ в логическую единицу, а сброс в исходное состояние логического нуля делают по команде процессора, которую он исполняет в ходе программы обработки прерывания (то есть программно). При этом мы можем быть полностью уверены, что наш запрос действительно принят и обработан.

Пусть, например, наше БВВ принимает данные от внешнего устройства и после их приема нам надо сформировать прерывание, обработка которого сводится только к чтению данных из БВВ. Схема для этого случая показана на рис. 56. Здесь READY – сигнал поступления данных и готовности к выдаче их процессору. По этому сигналу триггер устанавливается в единицу, и его выход используется как сигнал запроса прерывания. Номер используемой линии IRQ выбирается одним из четырех переключателей или перемычек (такой выбор в том или ином виде необходим, так как свободных линий IRQ в стандартной конфигурации весьма немного). В исходное состояние триггер сбрасывается стробом чтения данных RA1#, вырабатываемым при выполнении программы обработки прерывания. Инверсный выход триггера используется как флаг готовности, который программно опрашивается процессором (обычно как бит слова состояния) с помощью сигнала RA2#. Можно для этого флага использовать и свободные разряды слова данных, причем рекомендуется для упрощения программы опроса размещать флаг в старшем разряде слова, например в данном случае в SD15 по адресу A1.

Если источников запросов на прерывание несколько, то нужно иметь несколько триггеров, формирующих разные разряды слова запросов, и сбрасывать их по отдельности. Иногда имеет смысл предусмотреть в схеме БВВ возможность запрещения прерывания от него (обычно в его слове состояния), хотя то же можно сделать и путем маскирования данного прерывания в контроллере прерываний (программным путем). В частности, при реализации схемы, приведенной на рис. 56, следует дополнить ее регистром состояния (см. выше), в частности триггером, в который по адресу А2 можно было бы записывать разрешение прерывания, и элементом И, на котором перемножались бы сигналы с прямого выхода DD2 и с триггера разрешения. В свою очередь, этот триггер должен быть доступен для чтения процессором в том же разряде слова состояния, как и при записи (прочтите раздел 9.5, вернитесь и изобразите доработанную схему).

При орга­низации работы объекта с прерываниями следует учитывать тот факт, что большая часть из доступных для ISA 12 линий прерывания задействована ус­тройствами ЭВМ, поэтому для объекта-пользователя возможно использование лишь одной-двух линий IRQ. При необходимости расширения ко­личества линий прерывания в адаптер шины необходимо вводить до­полнительные устройства определения источников прерывания при их работе на одну линию IRQ (см., например, лабораторную работу по изучению шины ISA).

В заключение еще раз отметим, что тип выходного каскада линии IRQ – это обычный ТТЛ, поэтому необходимо тщательно контролировать, чтобы на каждую из линий IRQ поступал сигнал только от одной платы расширения, иначе может выйти из строя выходной каскад одной из конфликтующих плат.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]