Более удобный, но и более сложный метод заключается в том, чтобы разрешить периферийным устройствам прерывать обычную работу ЦП. При наличии сигнала прерывания и с учетом состояния своего флажка прерывания ЦП должен приостановить текущую программу (сохранив в стеке все важные параметры и адрес возврата), а затем выполнить необходимую процедуру обслуживания.
Прерывания можно схемно упорядочить по приоритетам так, чтобы самое важное периферийное устройство обслуживалось в первую очередь. В качестве примера рассмотрим тормозную систему автомобиля. ЦП должен отреагировать на отказ тормозов и выдать об этом предупреждение независимо от других одновременно происходящих событий.
Согласно третьему, самому сложному методу управления вводом-выводом внешним устройствам обеспечивается полный доступ к пространству памяти системы без всякого участия ЦП в передачах данных. Такой метод называется прямым доступом к памяти (ПДП) и оказывается очень эффективным. Данные можно передавать с исключительно высокой скоростью (так как вмешательства ЦП не требуется), поэтому ПДП используется, например, для передач данных в накопитель на твердом диске или из него. В простых управляющих применениях ПДП не требуется, но о нем нужно знать. Упрощенные структурные схемы всех методов управления вводом-выводом показаны на рис. 7.5.
Рис. 7.5.Основные методы управления вводом-выводом:
>а — программируемый (с опросом); б — по прерыванию; в — прямой
После обзора основных принципов ввода-вывода в микропроцессорных системах обратимся к распространенным программируемым микросхемам ввода-вывода.
Микросхемы параллельного ввода-вывода имеют множество фирменных названий, но их внутренняя архитектура и принципы действия удивительно похожи и различаются только в некоторых деталях. Наиболее известны следующие микросхемы:
6520 — периферийный интерфейсный адаптер (PIA);
6521 — периферийный интерфейсный адаптер (PIA), аналогичен 6520;
6522 — универсальный интерфейсный адаптер (VIA);
6820 — периферийный интерфейсный адаптер (PIA), эквивалент 6520;
6821 — периферийный интерфейсный адаптер (PIA), эквивалент 6521;
8255 — программируемый параллельный интерфейс (PPI);
Z80-PIO — программируемый ввод-вывод (РIO).
Как следует из приведенных названий, программируемые микросхемы параллельного ввода-вывода допускают программное задание одного из нескольких режимов:
1) все восемь линий являются входами;
2) все восемь линий являются выходами;
3) линии отдельно программируются как входные или выходные.
Кроме того, обычно предусматриваются дополнительные линии для квитирования. Этот термин характеризует процесс обмена управляющими сигналами между микрокомпьютером и периферийным устройством.
Обозначения линий портов и их функции в разных микросхемах также различны, но и здесь наблюдается определенное единообразие. Большинство указанных выше микросхем обладают следующими линиями (рис. 7.6):
доступ к памяти
Рис. 7.6.Внутренние регистры типичной программируемой микросхемы параллельного ввода-вывода.