Сравнительная характеристика основных методов ввода-вывода, страница 6


Как уже говорилось, имеется два состояния семафора. Высокий уровень (логическая 1) указывает получателю, что данные из буфера  доступны; низкий уровень (логический 0) указывает, что получатель принял данные из буфера и что буфер теперь пуст и может принять новые данные от источника.

Пунктирные линии, которые связывают  выход семафора с источником и получателем на блок-схеме, указывают, как источник и получатель влияют на последовательность событий в процессе обмена информацией. Например, когда семафор воспринимается источником как сигнал высокого уровня, новые данные не могут быть выданы в буфер, в то же время, когда семафор воспринимается получателем как сигнал низкого уровня, получатель не может овладеть данными из буфера. Таким образом, семафор синхронизирует передачу данных между микроЭВМ и ВУ.

Временные диаграммы

Рис. 34. Временные диаграммы условного ввода с использованием семафора


На рис. 34 представлены временные диаграммы режима стробируемого ввода, используемого в микросхеме параллельного программируемого интерфейса 8255.

Предположим, что источник представляет собой 8-разрядный АЦП, а получателем является микроЭВМ. -STB X -  синхронизирующий сигнал, который вводит данные в буфер из устройства ввода. X - код ВУ, который ассоциируется с данным устройством ввода, отличая его от других  внешних устройств, которые также присутствуют в системе. Обычно -STB X формируется самим ВУ. -RD X - импульс выбора устройства, формируемый микроЭВМ, чтобы ввести данные из буфера. Последовательность событий на рис. 34 можно резюмировать следующим образом:

   Устройство ввода обнаруживает, что семафор сброшен и поэтому в буфер могут быть введены новые данные.

   Формируется импульс -STB X, низкий уровень которого устанавливает семафор, указывая тем самым, что новые данные доступны.

   По положительному фронту импульса -STB X данные из устройства ввода пересылаются в буфер.

   МикроЭВМ обнаруживает, что семафор установлен и, следовательно, данные в буфере доступны.

   Спустя некоторое время микроЭВМ разрешает ШД, чтобы осуществить ввод данных.

   МикроЭВМ вырабатывает импульс выбора устройства -RD X и по положительному фронту этого импульса вводит данные в аккумулятор (или другой внутренний регистр) и одновременно сбрасывает семафор, чтобы указать ВУ, что данные введены и буфер пуст.

   Указанный ряд операций повторяется с шага 1.

Временные диаграммы стробируемого вывода, описывающие работу структурной схемы на рис. 32, представлены на рис. 35.

Рис. 35. Временные диаграммы условного вывода с использованием семафора

Здесь получателем может быть такое ВУ как дисплейный терминал, а источником - микроЭВМ. Последовательность событий соответствует режиму стробируемого вывода микросхем 8155/8156 и 8255 фирмы Intel.

Выходной сигнал семафора в микросхеме 8155/8156 обозначается как BF, а в микросхеме 8255 - как -OBF. Для состояния “Данные приняты” сигнал ВF имеет высокий уровень, а сигнал -OBF - низкий. Этим объясняется наличие добавочного выхода на рис. 35.

-ACK X - синхронизирующий сигнал от ВУ, который подтверждает приём данных. -WR X - формируемый микроЭВМ импульс выбора устройства, который выводит данные в буфер.

Последовательность событий на рис. 35 можно резюмировать следующим образом: