
Лекция 10
5. Подсистема ввода-вывода микропроцессорной системы
Подсистема ввода-вывода (ПВВ) ответственна за связь с устройствами ввода-вывода (УВВ или периферийными устройствами -ПУ). Каждое УВВ в общем случае состоит из двух частей: одна из них называется контроллером, а другая представляет собой само УВВ.
С точки зрения программиста ПВВ можно представить или в виде отдельного пространства ВВ (изолированное пространство ВВ) со своими командами для доступа к нему или в виде определенной части адресного пространства памяти (совмещенное пространство ВВ). В любом случае пространство ВВ организовано в виде набора n-разрядных ячеек – портов (n=8,16,32) и линейно упорядочено.
5.1. Программно-управляемый обмен
Между ЦПУ и УВВ происходит обмен информацией двух типов: служебной и собственно данных. Служебная информация от ЦПУ инициирует действия, связанные с обменом данных, и представляется с помощью управляющих слов CW (Control Word). Служебные сообщения от УВВ, информирующие ЦПУ о его текущем состоянии, называются словами состояния SW (Status Word). В отличие от них данные передаются с помощью слов данных DW (Data Word).
Объем служебной информации, которой обмениваются УВВ и ЦПУ, а также ее интерпретация зависят от типа УВВ. Для наиболее простых устройств, служебная информация не нужна, а для других – управляющая информация и данные о состоянии УВВ могут иметь значительный объем.
Размер пространства доступа (совокупность портов) в общем случае не зависит от объема информации, которой обмениваются УВВ и ЦПУ. Распространена практика последовательной передачи массива информации через один и тот же порт. Это связано не только с экономией пространства ВВ, но и с минимизацией ширины физического интерфейса УВВ, а также с его стандартизацией. Существует соглашения об обмене информацией между УВВ и ЦПУ, называемые протоколами обмена. Эти протоколы являются основой для разработки драйверов (набор подпрограмм) УВВ, организующих обмен данными.
В тех случаях, когда процедуры обмена информацией с УВВ инициируются и выполняются непосредственно программой, реализуемой ЦПУ, говорят о программно-управляемом обмене. Программно-управляемый обмен не является единственным типом обмена. Но судя по аппаратным затратам, это наиболее эффективный тип обмена, поэтому он находит самое широкое применение в МПС.
5.2. Прямой параллельный ввод-вывод
В наиболее простом виде процедура ввода или вывода выполняется независимо от состояния УВВ. Такой вид обмена назван прямым или безусловным. Процедуры прямого ВВ в чистом виде возможны только при условии всегда готовыми к обмену простейшими УВВ. К тому же они являются составными элементами более сложных процедур программно-управляемого обмена, к числу которых относится условный ВВ.
На рис.5.1 приведена схема простого порта ввода. Входные
данные DI порта через буфер BF с тремя состояниями (шинный формирователь, драйвер) во время цикла чтения (сигнал /RD активен) подключаются к шине данных DB. Выборка или адресация порта выполняется дешифратором DC, называемым еще логикой выборки кристалла (CS). DC преобразует адрес, выставленный ЦПУ на шину адреса DA, в один из сигналов /CSi. Активные сигналы /CS и RD объединенные по или поступают на вход разрешения (/EN) буфера, заставляя его подключить вход А к выходу B.
На рис.5.2 приведена схема простого порта вывода. Данные, передаваемые по шине DB, запоминаются в регистре RG по сигналу /WR при условии выбора регистра схемой DC.
Для поддержки двустороннего ВВ широко применяется псевдодвунаправленный порт (рис.5.3). В схеме к выводам DO подключены буферы с открытым коллектором, допускающие объединение с линиями ввода внешних данных по схеме “монтажное ИЛИ”. При этом нагрузочные резисторы Rк могут быть встроены в порт (pull up резисторы). Установка на шине порта вывода напряжения высокого уровня обеспечивает ввод внешних данных без каких-либо искажений.