Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Схемы реализации условного программного ввода/вывода⇐ ПредыдущаяСтр 18 из 18
Внешние устройства чаще всего не имеют постоянной готовности к обмену и скоростному вводу/выводу в темпе процессора. Поэтому необходимо удостовериться в готовности ВУ, прежде чем начать обмен, т. е. операции ввода/вывода сопровождаются специальными сигналами готовности, генерируемыми ВУ и вводимыми в МП. После операции ввода/вывода сигнал готовности должен быть снят и выставлен снова при новой готовности к обмену. Такой протокол называют обменом с квитированием. Обмен происходит со скоростью, определяемой внешним устройством. Вариант построения порта ввода с квитированием и " четверкой" управляющих сигналов в интерфейсе (рис. 5.23, с) предусматривает наличие регистра-защелки RG. Под блоком DC понимается схема декодирования адреса (не обязательно состоящая из одного дешифратора). ВУ готовит данные на линиях D7-o и оповещает об их наличии сигналом STB, загружающим регистр, и своим задним фронтом, устанавливающим триггер, создавая этим IBF = 1 (IBF, Input Buffer Full). Этим фиксируется готовность ко вводу со стороны порта. Микропроцессор начинает обращение к порту чтением IBF по адресу, присвоенному буферному каскаду IBF (для определенности принято, что этот адрес соответствует возбуждению нижней выходной линии DC). По стробу IOR на выходе элемента ИЛИ2 возникает единичный сигнал на линии, открывающий буферный каскад, через который сигнал IBF поступает на линию AD0. Этот сигнал есть бит слова состояния, которое считывается процессором. Если значение этого бита 1, то далее осуществляется ввод по адресу порта (здесь этот адрес принят нулевым, и ему соответствует возбуждение верхней выходной линии схемы DC). Строб устанавливает логическую 1 на выходе элемента ИЛИ1, т. е. открывает линейку буферных каскадов, через которые байт A7-0 поступает на линии AD7-0 и далее вводится в процессор. По окончании строба сигнал IBF становится нулевым. Это снимает готовность к обмену до новой загрузки входного буферного регистра RG от ВУ с установкой после этого триггера и приведения IBF в состояние логической 1, т. е. в состояние новой готовности к обмену. В программе описанный процесс ввода отображается следующей процедурой: IA; IN OFFH; Ввод слова состояния ANI 01H; Выделение бита JZ IA; Если IBF = 0, то ждать IN ООН; Иначе ввод данных Рис. 5.23. Схемы реализации команд ввода (а) и вывода (б) при условном программном обмене
Условный вывод данных иллюстрируется схемой (рис. 5.23, б). Сначала вводится слово состояния с линий AD7-0, на одной из которых действует сигнал готовности (Output Buffer Full). Данные будут выводиться процессором в RG, готовность к выводу выражается в том, что данные регистра уже приняты ВУ. Об этом сигнализирует подтверждение АСК, сбрасывающее триггер и дающее после своего окончания = 1 (буфер пуст). Кстати, подача на входы вентиля 3 самого сигнала сброса и выхода сбрасываемого триггера не дает признаку измениться до окончания импульса АСК. То же применено в схеме (рис. 5.23, а) для сигнала IBF. Появление готовности именно после завершения указанных действий требуется для надежной работы схем, проведенных на рис. 5.23. Из введенного слова состояния выделяется бит OBF (как и ранее командой ANI, т. е. выполнением поразрядной конъюнкции со словом, содержащим единицу только в разряде, принадлежащем ). При = 1 идет обмен, иначе — переход к циклам ожидания. Появление готовности вызывает запись в RG данных и установку триггера, дающего = 0, как сигнал для ВУ к использованию выводимых данных, после чего ВУ дает сигнал АСК, сбрасывающий триггер и выставляющий сигнал готовности порта к выводу.
|