Реклама:

Так что перед тем, как заложить в схему проектируемого УС использование прерываний, стоит хорошенько подумать. Часто имеет смысл продублировать прерывание флагом готовности, что позволит при написании программы, обслуживающей УС, более гибко учитывать особенности обмена с данным УС.

Как уже отмечалось, все прерывания в IBM PC AT — радиальные, то есть для перевода процессора в режим обработки прерывания достаточно послать запрос, в качестве которого выступает положительный фронт сигнала на одной из линий IRQ. Однако из этого совсем не следует, что на эту линию можно подать сколь угодно короткий импульс положительной полярности, так как никакой гарантии, что этот импульс дойдет до контроллера прерываний, будет им обработан и вызовет нужную реакцию, при этом не существует.

Самым оптимальным решением, на наш взгляд, здесь будет перевод сигнала IRQ в логическую единицу при возникновении необходимости обмена (то есть аппаратно), а сброс в исходное состояние логического нуля — по команде процессора, которую он исполняет в ходе программы обработки прерывания (то есть программно). При этом мы можем быть полностью уверены, что наш запрос действительно принят и обработан.

Пусть, например, наше УС принимает данные от внешнего устройства и после их приема нам надо сформировать прерывание, обработка которого сводится только к чтению данных из УС. Схема для этого случая показана на рис. 2.25. Здесь READY — сигнал поступления данных и готовности к выдаче их процессору. По этому сигналу триггер устанавливается в единицу, и его выход используется как сигнал запроса прерывания. Номер используемой линии IRQ выбирается одним из четырех переключателей (такой выбор в том или ином виде необходим, так как свободных линий IRQ в стандартной конфигурации не так уж много). В исходное состояние триггер сбрасывается стробом чтения данных, вырабатываемым при выполнении программы обработки прерывания. Инверсный выход триггера используется как флаг готовности, который

Разработка устройств сопряжения для персонального компьютера типа IBM PC. Под общей редакцией Ю. В. Новикова

программно опрашивается процессором с помощью сигнала -STR2.

Иногда имеет смысл предусмотреть в схеме УС возможность запрещения прерывания от него, хотя это можно сделать и путем маскирования данного прерывания в контроллере прерываний (программным путем).

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

2.1.6. Применение прямого доступа

С использованием прямого доступа также связано несколько недоразумений. Многие считают, что прямой доступ обеспечивает максимальный темп выдачи или приема информации. Однако это не совсем так. Прямой доступ осуществляется по системной магистрали ISA, и, следовательно, его скорость ограничена, в первую очередь, принятым для ISA протоколом обмена, а также невысоким быстродействием используемого в компьютере динамического ОЗУ. Даже в режиме блочной передачи пересылка одного" байта (слова) требует нескольких тактов SYSCLK и занимает около 1 мкс. Что же касается режима одиночной передачи, другого возможного режима ПДП, то он вообще не дает никакого выигрыша в скорости.


⇐ Предыдущая страница| |Следующая страница ⇒