7.4. Методы управления вводом-выводом

Существуют три основных метода управления операциями ввода-вывода. Наиболее простой и очевидный метод заключается в том, чтобы разрешить ЦП управлять всеми операциями ввода-вывода. Этот метод, называемый программным вводом-выводом (или вводом-выводом с опросом), обеспечивает ЦП полное управление ситуацией, но оказывается наименее гибким и довольно медленным. По существу, ЦП периодически опрашивает каждое периферийное устройство (через соответствующую схему ввода-вывода), не требует ли оно обслуживания. Если запрос имеется, ЦП выполняет необходимую процедуру обслуживания. Когда воспринят запрос на обслуживание, все запросы от других периферийных устройств игнорируются; эти устройства должны ожидать до тех пор, пока ЦП не освободится для обработки их запроса на обслуживание.

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

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

Согласно третьему, самому сложному методу управления вводом-выводом внешним устройствам обеспечивается полный доступ к пространству памяти системы без всякого участия ЦП в передачах данных. Такой метод называется прямым доступом к памяти (ПДП) и оказывается очень эффективным. Данные можно передавать с исключительно высокой скоростью (так как вмешательства ЦП не требуется), поэтому ПДП используется, например, для передач данных в накопитель на твердом диске или из него. В простых управляющих применениях ПДП не требуется, но о нем нужно знать. Упрощенные структурные схемы всех методов управления вводом-выводом показаны на рис. 7.5.

Справочное пособие по цифровой электронике - _83.jpg

Рис. 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):

Справочное пособие по цифровой электронике - _85.jpg

доступ к памяти

Справочное пособие по цифровой электронике - _86.jpg

Рис. 7.6. Внутренние регистры типичной программируемой микросхемы параллельного ввода-вывода.

РА0—РА7 — линии ввода-вывода порта А. Первая линия соответствует младшему биту, а вторая — старшему;

СА1—СА2 — линии квитирования для порта А; СА1 — это вход прерывания, а СА2 можно использовать и как вход прерывания, и как выход управления периферийным устройством;

РВ0—РВ7 — линии ввода-вывода порта В;

СВ1—СВ2 — линии квитирования для порта В; их функции аналогичны линиям СА1—СА2.

Электрические характеристики портов ввода-вывода разнообразны, но все сигналы обязательно ТТЛ-совместимы. Выходные линии портов (обычно группы В) нескольких программируемых микросхем параллельного ввода-вывода допускают непосредственное подключение к базе обычного или составного (схема Дарлингтона) транзистора. Следовательно, такую микросхему можно использовать в качестве драйвера реле или лампы. К выходным линиям порта иногда подключают высоковольтные драйверы с открытым коллектором.

На рис. 7.7 показана разводка контактов нескольких программируемых микросхем параллельного ввода-вывода.

Справочное пособие по цифровой электронике - _87.jpg

Рис. 7.7. Разводка контактов распространенных программируемых микросхем параллельного ввода-вывода.

7.6. Микросхемы последовательного ввода-вывода

Последовательные данные передаются в синхронном или асинхронном режимах. В синхронном режиме все передачи осуществляются под управлением общего сигнала синхронизации, который должен присутствовать на обоих концах линии связи. Асинхронная передача подразумевает — передачу данных пакетами; каждый пакет содержит необходимую информацию, требующуюся для декодирования содержащихся в нем данных. Конечно, второй режим сложнее, но у него есть серьезное преимущество: не нужен отдельный сигнал синхронизации.

Подробнее этот вопрос рассмотрен в гл. 8.

Программируемые микросхемы последовательного ввода-вывода выпускаются под разными названиями, например:

6850 — асинхронный связной интерфейсный адаптер (ACIA);

6852 — синхронный адаптер последовательных данных (SSDA);

8251 —универсальный синхронно-асинхронный приемник-передатчик (USART);

8256 — универсальный асинхронный приемник-передатчик (UART);

Z80-DART— сдвоенный асинхронный приемник-передатчик (DART).

Как и у микросхем параллельного ввода-вывода, у программируемых микросхем последовательного ввода-вывода наблюдается общность внутренней архитектуры. Вот список наиболее типичных сигналов:

D0—D7 — входные-выходные линии данных, подключаемые непосредственно к шине микропроцессора;

RXD — принимаемые данные (входные последовательные данные);

TXD — передаваемые данные (выходные последовательные данные);

CTS — сброс передачи. На этой линии периферийное устройство формирует сигнал низкого уровня, когда оно готово воспринимать данные от микропроцессорной системы;

RTS — запрос передачи. На эту линию микропроцессорная система выдает сигнал низкого уровня, когда она намерена передавать данные в периферийное устройство.