Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ВМСС.doc
Скачиваний:
106
Добавлен:
02.05.2014
Размер:
4.08 Mб
Скачать

9 Интерфейсы ввода-вывода

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

Интерфейс ввода-вывода должен выполнять следующие функции:

1.Интерпретировать сигналы адреса и выбора между памятью и вводом-выводом, чтобы определить обращение к нему, и в случае такого обращения определить, к каким регистрам происходит обращение.

2.Определять, выполняется ввод или вывод; при выводе воспринять с шины выход­ные данные или управляющую информацию, а при вводе поместить на шину входные данные или информацию о состоянии.

3.Вводить или выводить данные в подключенное устройство ввода-вывода и преобра­зовывать параллельные данные в формат, воспринимаемый устройством, или наоборот.

4.Посылать сигнал готовности, когда данные восприняты или помещены на шину данных, информируя процессор о завершении передачи.

5.Формировать запросы прерываний и (при отсутствии в логике управления шиной управления приоритетными прерываниями) принимать подтверждения прерываний и-выдавать тип прерывания.

6.Принимать сигнал сброса и реинициализировать себя и, возможно, подключенное Устройство.

Рис. 9.1.Схема типичного интерфейса ввода-вывода

Схема типичного интерфейса ввода-вывода показана на рис. 9.1.Главные функции интерфейса сводятся к преобразованию сигналов между системной шиной и устрой­ством ввода-вывода и реализации буферов, необходимых для удовлетворения двух на­боров временных ограничений. Значительная часть функций интерфейса выполняется блоком, находящимся на рисунке справа. Часто он реализуется в виде микросхемы, но иногда функции этого блока могут быть разбросаны по нескольким приборам. Очевид­но, его функции полностью определяются устройством ввода-вывода, с которым дол­жен взаимодействовать интерфейс.

Интерфейс можно разделить на две части, взаимодействующие с устройством и с си­стемной шиной. Первая из них определяется'устройством, а вторые части всех интер­фейсов в данной системе довольно похожи, так как они связаны с одной и той же ши­ной. В них должны быть шинные драйверы и приемники, схемы преобразования интер­фейсных сигналов управления в соответствующие квитирующие сигналы и схемы для дешифрирования появляющихся на шине адресов. В системах с микропроцессорами 8086/8088подключение к шине данных можно осуществить приемопередатчиками 8286, которые применяются и в логике управления шиной. Однако основные интерфей­сные устройства имеют встроенные драйверы и приемники, которых достаточно в небольших, одноплатных системах.

Логику квитирования нельзя спроектировать, не зная управляющих сигналов, необ-ходимых основному интерфейсному устройству, а эти сигналы в различных интерфейсах варьируются. Обычно эта логика должна воспринимать сигналы считывания/записи, определяющие направление передачи, и выдавать для микросхем 8286сигналы ОЕ и Т. В максимальном режиме в нее подаются сигналыlOWC(илиAIOWC)и ХЖС от кон­троллера шины, а в минимальном режиме —сигналыRD,WRи М/Ю (илиIO/M) .Через эту логику должны также проходить линии запроса прерывания, готовности и сброса. Иногда управляющие линии шины проходят через логику квитирования неизменными (т. е. подключаются прямо к основному интерфейсному устройству) .

Дешифратор адреса должен принимать адрес и, возможно, бит, показывающий на­хождение адреса в адресном пространстве ввода-вывода или в адресном пространства ;памяти. В системе с минимальным режимом этот бит можно взять с линии М/Ю (или Ю/М),а в системе с максимальным режимом выбор памяти или ввода-вывода опреде­ляется линиямиIOWCиIORC .Когда дешифратор определяет обращение к интерфейсу, дешифратор должен выдать в основное интерфейсное устройство сигналы о том, что оно выбрано и к какому регистру производится обращение. Определяющие регистр биты могут быть младшими битами адреса, но часто они генерируются в интерфейсном уст­ройстве из сигналов считывания/записи и адреса. Пусть, например, имеется два регистра А и В, из которых можно считывать, и два регистра С иD, в которые можно записывать. Иногда для задания регистра можно использовать сигналы считывания и записи и бит шины адреса следующим образом:

Запись Считывание Бит 0адреса Выбираемый регистр

О 10 А

О 1 1В

1 0 0 С

10 1D

Если в системе вместо контроллера прерываний применяется приоритетная цепочка, в каждом интерфейсе потребуются логика цепочки (см. рис. 6.14,б)и логика формиро­вания типа прерывания. Кроме того, интерфейс может быть связан с контроллером ПДП. Многие интерфейсы рассчитаны на обнаружение минимум двух видов ошибок. Так как связывающие интерфейс с устройством линии почти всегда подвержены помехам, при передаче информационных байт к ним обычно добавляются биты паритета. При ис­пользовании четного паритета бит паритета устанавливается так, чтобы общее число единиц, включая и бит паритета, было четным. В случае нечетного паритета число единиц должно быть нечетным. По мере приема байт осуществляется контроль паритета и при наличии ошибки устанавливается определенный бит в регистре состояния. Некоторые интерфейсы контролируют избыточные байты, которые помещаются после блоков данных. Второй вид ошибок, которые могут обнаруживать большинство интерфейсов, этоошибка перегрузки.Когда компьютер вводит данные, он считывает их из буферного регистра входных данных. Если по какой-то причине содержимое этого регистра заменяется новыми данными до того, как они введены компьютером, возникает ошибка перегрузки. Такая же ошибка возникает, когда данные помещаются в буферный регистр выходных данных до того, как в устройство передано текущее содержимое регистра. Ошибка перегрузки, как и ошибка паритета, вызывает установку определенного бита состояния.

Интерфейсы можно классифицировать в соответствии со способом взаимодействия их со своими устройствами ввода-вывода. В § 9.1рассматриваются интерфейсы таких устройств, которые передают и принимают информацию последовательно; затрону также вопрос о связи на большие расстояния; § 9.2посвящен интерфейсам, которые взаимодействуют с устройствами в параллельном формате. В § 9.3обсуждаются интер­фейсы, обеспечивающие синхронизацию внешних или внутренних событий или подсчи­тывают внешние события. В § 9.4показано проектирование интерфейса устройства с клавиатурой и индикатором. Наконец, в § 9.5, 9.6речь идет о быстродействующей свя­зи с обсуждением контроллеров ПДП и накопителя на гибком диске.

В главу включены несколько примеров, в которых описываются интерфейсные ми­кросхемы фирмы Intel, имеющие только восемь линий данных. Поэтому проще считать, что в примерах используется микропроцессор 8088.Микросхемы можно подключать и к 16-битной шине микропроцессора 8086,но так как в нем байты с нечетными адресами передаются по 8старшим битам шины, в интерфейсе потребуются некоторые модифи­кации и(или) нововведения. Поэтому в § 9.4 - 9.6предполагается 8-битная шина микро­процессора 8088,а в § 9.7указаны те изменения, которые необходимо осуществить при подключении устройств к 16-битной шине микропроцессора 8086.Далее, везде, кроме§ 9.7,рассматривается система с минимальным режимом работы, а в § 9.7показаны модификации, необходимые для системы с максимальным режимом работы.