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

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

Рис. 23. Блок-схема условного ввода с использование флага.

Высокий уровень флага указывает микроЭВМ, что новые дан­ные доступны, в то время как низкий уровень указывает, что данные недоступны. Состояние флага проверяет только микро­ЭВМ. Это видно из на­правления пунктирной ли­нии и блока принятия решения “Флаг установлен?”, ко­торый появляется только на блок-схеме по­лучателя. Внешнее устройство не знает, когда были приняты данные. Следова­тельно, ответственность за синхронизацию передачи данных несет только мик­роЭВМ.

Следует иметь в виду три вопроса, связанных с вводом данных в микроЭВМ:

1.   Какова скорость повторения данных, отсчёт/сек?

2.   На каком временном интервале стабилен каждый отсчет?

3.   Есть ли необходимость вводить каждый новый отсчет данных?

Когда входные данные стабильны только в течение очень короткого промежутка времени, в дополнение к флагу должен быть использован буфер. Эта ситуация иллюстрируется временными диаграммами на рис. 24.

Флаг устанавливается по положительному фронту импульса ‑STB X, который формируется  внешним устройством, и сбрасывается импульсом ‑RD X, который генерируется микроЭВМ. Вводимые данные должны быть стабильны в течение интервала времени, который обычно имеет порядок от 150 до 200 нс. Это время есть сумма времени установки - времени, предшествующему положительному фронту импульса ‑STB X, и времени задержки - времени после положительного фронта импульса ‑STBX. Оценка максимальной скорости повторения входных данных может быть получена из полного периода повторения установки флага - от положительного фронта до следующего за ним другого положительного фронта.

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

В зависимости от метода, с помощью которого проверяется флаг (циклический опрос, прерывание с опросом, векторное прерывание и т.д.), и важности внешнего устройства Х относительно других задач, выполняемых микроЭВМ, вычисленная скорость повторения может быть низкой или высокой. Чтобы не потерять входные данные, может потребоваться внимательное программирование. С другой стороны, может быть необязательным ввод каждого нового отсчета данных. Может потребоваться только периодический ввод данных, при котором период определяется программным путем или тактовым генератором реального времени.

Временные диаграммы на рис. 25 описывают ситуацию, когда имеется флаг, но нет входного буфера.

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

Вводимые данные должны быть стабильны в течение значительно большего времени, чем на рис. 24. Последовательность событий на рис. 25 можно резюмировать следующим образом:

внешнее устройство выдает новые данные, импульс ‑STB X устанавливает флаг, а микроЭВМ после некоторого интервала времени обнаруживает наличие новых данных, разрешает ШД и, наконец, генерирует импульс ‑RD X, который сбрасывает флаг и вводит новые данные в микроЭВМ.

Этот метод широко используется с “медленными“ внешними устройствами (до 500 бит/с), которые фиксируют данные (предполагается. что они имеют внутренний буфер) и для которых момент ввода данных не является критичным. Примерами таких устройств являются счетчики/таймеры. Использование флага позволяет микроЭВМ игнорировать внешнее устройство (источник) пока флаг находится в состоянии логического нуля. Подобное свойство высвобождает микроЭВМ для выполнения других задач обработки во время ожидания ввода новых данных.