logo
Лекции препода / Конспект лекций ЭВМ

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

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

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

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

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

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

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

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

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

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

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

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

Логику квитирования нельзя спроектировать, не зная управляющих сигналов,необ-;ходимых основному интерфейсному устройству, а эти сигналы в различных интерфей-е сах варьируются. Обычно эта логика должна воспринимать сигналы считывания/записи,

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

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

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

О 10 А

О 1 1В

1 0 0 С

10 1D

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

Интерфейсы можно классифицировать в соответствии со способом взаимодействия их со своими устройствами ввода-вывода. В § 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показаны модификации, необходимые для системы с максимальным режимом работы.