Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 3

       

АДАПТЕР ПАРАЛЛЕЛЬНОГО ИНТЕРФЕЙСА


Передача данных в параллельном формате в общем случае является более высокоскоростной, чем передача в последовательном формате, поскольку все биты символа информации передаются параллельно по времени, т.е. одновременно. Однако это обстоятельство требует наличия достаточно большого числа физических цепей промежуточного интерфейса. Ввиду этого обмен по параллельным промежуточным интерфейсам обычно используется при работе микроЭВМ с близко расположенными высокоскоростными ПУ. Уже отмечалось, что одними из наиболее распространенных промежуточных интерфейсов являются интерфейс CENTRONICS и его модификации. Отмечалось также, что серийно выпускаются программируемые БИС адаптеров, поддерживающих интерфейс CENTRONICS и другие типы параллельных интерфейсов. Примером такого адаптера является БИС КР580ВВ55.

БИС КР580ВВ55 представляет собой программируемый адаптер параллельного интерфейса, позволяющий организовать обмен в параллельном коде практически с любым периферийным оборудованием. Структурная схема БИС адаптера приведена на рис. 8.10. Из структурной схемы БИС следует, что для подключения к линиям связи адаптер имеет три восьмибитовых порта A, B, C. Порты A и B не разделены, а порт C по существу представляет собой два четырехбитовых порта.

Программная модель адаптера приведена на рис. 8.11. Регистр состояния на рисунке изображен пунктиром, поскольку физически он отсутствует и его функции выполняет порт С.

Прием и передача данных через порты осуществляются разными регистрами. Т.е. каждый порт содержит регистр-защелку, в которой фиксируются данные для передачи в линию связи, и регистр, отображающий состояние линии связи при приеме. Подключение того или другого регистра к линии связи определяется режимами работы данного порта и осуществляется соответствующими управляющими сигналами. (Подробнее этот вопрос будет рассмотрен ниже.) Отметим, что выводы портов и разряды регистров портов связаны через переключающие схемы, что особенно важно помнить при изучении функционирования порта C в различных режимах.




Для подключения к системной магистрали микроЭВМ используются 14 линий:

D7-0 – двунаправленная шина данных с трехстабильным буфером.

A1, A0 – линии адреса, которые выбирают внутренний регистр адаптера, подключаемый к ШД (00 – порт A, 01 – порт B, 10 – порт C и 11 – регистр управления).

 (выбор кристалла) – L-активный сигнал, разрешающий связь между адаптером и ШД.

 (считывание) – L-активный сигнал, инициирующий считывание информации из адресуемого по линиям А1, А0 регистра адаптера на ШД.

 (запись) – L-активный сигнал загрузки в адресуемый регистр адаптера информации с ШД (собственно данные либо управляющее слово).



RESET (сброс) – H-активный сигнал сброса для приведения адаптера в начальное состояние. При действии сигнала сброса в регистр управления записывается слово (приказ), переводящее все три порта в режим 0 и состояние ввода.

Следует иметь в виду, что есть запретные комбинации сигналов. Так, недопустимым является считывание информации из регистра управления, т.е. комбинация
 и A1,0 = 11, а одновременная запись и считывание приводит к непредсказуемым результатам (т.е.
 и
).

Программирование и обмен данными с адаптером осуществляется обычно командами IN и OUT, при выполнении которых на линиях A7-0 (A15-8) выставляется код адреса. Обмен информацией с адаптером в этом случае можно вести только через аккумулятор. Входы A1, А0 адаптера обычно подключаются к младшим линиям ША, а подключение входа CS зависит от принятого способа выбора адаптера, если адаптеров несколько. В частности, если адаптеров меньше или равно шести, вход
 без дополнительного дешифратора подключается к соответствующей линии ША

(A7-2). В этом случае кодами адресов будут комбинации 011111xx, 101111xx,..., 111110xx. Если адаптеров больше шести, то требуется дешифратор с L-активными выходами.

Адаптер может функционировать в трех основных режимах.

Режим 0 – простой ВВ. В режиме 0 обеспечивается возможность синхронного и асинхронного программно-управляемого обмена данными через два независимых восьмиразрядных порта A и B и два четырехразрядных порта C.



Режим 1 – стробируемый ВВ. В режиме 1 обеспечивается возможность обмена данными с ПУ через два независимых восьмиразрядных порта A и B по сигналам квитирования. При этом линии порта C используют для приема и выдачи сигналов управления обменом.

Режим 2 – двунаправленный канал. В режиме 2 обеспечивается возможность обмена данными через восьмиразрядный двунаправленный порт A по сигналам квитирования. Для приема и передачи сигналов управления обменом используют пять линий порта C.

Более подробно эти режимы будут рассмотрены ниже.

Режим работы каждого из портов A, B и C определяется содержимым регистра управления, в который загружается управляющее слово (или приказ). Формат управляющего слова определения режима приведен на рис. 8.12. Из рисунка следует, что управляющее слово определения режима идентифицируется состоянием

D7 = 1. Кроме того, режим работы половины порта C (PC7-4) определяется режимом работы порта A (группа A), а режим работы другой половины (PC3-0) определяется режимом работы порта B (группа B).



При подаче сигнала RESET регистр управления устанавливается в состояние, при котором все каналы настраиваются на работу в режиме 0 для ввода информации. Режим работы портов можно изменить как в начале, так и в процессе выполнения программы, что позволяет обслужить различные ПУ одной БИС в определенном порядке. При изменении режима работы любого порта все входные и выходные регистры портов и триггеры состояния сбрасываются.

В дополнение к основному режиму работы обеспечивается возможность программно-независимой установки 1 или 0 в любой из разрядов порта C. Управляющее слово установки и сброса разрядов порта С идентифицируется состоянием D7 = 0 и имеет формат, приведенный на рис. 8.13. Приказы данного формата используются, как правило, в режимах 1 и 2. Если микросхема запрограммирована для работы в режимах 1 или 2, то через выводы C0 и C3 порта C выдаются сигналы, которые могут использоваться как сигналы запросов прерывания для МП. Запретить или разрешить формирование этих сигналов в адаптере можно установкой или сбросом соответствующего разряда в регистре порта C.


Это позволяет программисту запрещать или разрешать обслуживание любого ПУ без анализа запросов в контроллере пре­рываний.



Теперь рассмотрим более подробно основные особенности

функционирования адаптера в различных режимах. При этом следует помнить, что выводы портов и разряды регистров портов связаны через переключающие схемы (это уже отмечалось). Кроме того, адаптер содержит схемы "И", позволяющие выполнять простейшие логические операции над содержимым определенных разрядов регистра порта C и сигналами на соответствующих выводах порта. Результаты этих операций появляются в виде соответствующих сигналов (H или L) на выводах C0 или C3. Порты A и B служат только для обмена данными и не содержат никаких логических элементов, при этом операции установки и сброса отдельных бит портов A и B можно реализовать только через аккумулятор с помощью операндов-масок, т.е. в три этапа.

Режим 0

Применяется в программно-управляемом ВВ с медленно действующими ПУ (например, посимвольный принтер или программатор). В этом случае не требуется сигналов управления обменом информации с ПУ, а необходимы только известительные сигналы, сообщающие о готовности ПУ к вводу и выводу информации. При работе в режиме 0 обеспечивается простой ввод и вывод информации через любой из трех портов. Как уже отмечалось, в этом режиме микросхема представляет собой совокупность двух восьми- и двух четырехразрядных каналов ВВ. В режиме 0 возможны 16 различных комбинаций схем ВВ портов A, B и C, которые определяются содержанием разрядов управляющего слова.

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

состояние цепей линии связи. Это справедливо только для режима 0.

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


Считаем, что состояние готовности всех устройств представляет H-активный сигнал READY, а собственно передача данных сопровождается L-активными сигналами
. Схема такого интерфейса приведена на рис. 8.14.

Из рисунка видно, что группа A (A7-0, C6-4) работает на вывод, а группа B (B7-0, C2-0) – на ввод. Данную конфигурацию определяет приказ вида 10000011 (или 83H).

Для организации ВВ необходима подпрограмма инициализации адаптера и три аналогичных подпрограммы ВВ для каждого ПУ. Каждая из них выполняет следующие действия: ввод слова состояния (порт С), проверку готовности, ввод или вывод данных и формирование сопровождающего строба. Если ПУ не готово к обмену, МП входит в цикл ожидания. В данном случае фактически реализован режим 1 программным способом, однако в общем случае для обмена в режиме 0 не требуется никаких сопровождающих сигналов. Например, при выводе информации на инди­каторы.



Режим 1

Это режим стробированного ВВ, предназначенный для однонаправленного обмена данными, инициируемого прерываниями. Собственно передача данных осуществляется через порты A и B, а шесть линий порта C используются для управления обменом. Каждая из этих линий в режиме 1 имеет строгое функциональное назначение, которое не может быть изменено пользователем. В то же время две оставшиеся линии порта C по усмотрению программиста могут работать либо на прием, либо на передачу.

Таким образом, в режиме 1 пользователю предоставляются следующие возможности:

  • Запрограммировать один или два параллельных порта с линиями квитирования и прерывания, каждый из которых может работать на ввод или вывод.


  • При использовании только одного порта остальные 13 линий адаптера запрограммировать в режим 0.


  • При определении двух портов в режим 1 оставшиеся две линии использовать для ввода или вывода.


  • В качестве иллюстрации рассмотрим форматы управляющих слов и функциональные схемы каналов A при вводе данных в режиме 1 и В при выводе

    данных в режиме 1.

    Канал A (режим 1, ввод данных). Формат управляющего слова приведен на



    рис. 8.15, причем знак X обозначает, что значение бита в слове безразлично.



    В соответствии с таким управляющим словом функциональная схема канала A имеет вид, приведенный на рис. 8.16.



    Канал B (режим 1, вывод данных). Формат управляющего слова приведен на рис. 8.17.



    В соответствии с таким управляющим словом функциональная схема канала B имеет вид, приведенный на рис. 8.18.



    Функциональные схемы, приведенные на рис. 8.16 и 8.18, требуют некоторых пояснений, а именно:

    РгC2, РгC4 – триггеры 2-го и 4-го разрядов регистра порта C;

    C5-0 – выходы порта C.

     (строб приема) – входной сигнал, низкий уровень которого инициирует запись данных с линии связи во входной регистр-защелку соответствующего канала.

    IBF (входной буфер загружен) – выходной сигнал, высокий уровень которого свидетельствует о том, что входные данные записаны во входной регистр-защелку соответствующего канала. Устанавливается спадом
     и сбрасывается фрон-

    том
    .

     (выходной буфер загружен) – выходной сигнал, низкий уровень которого свидетельствует о наличии данных в порту вывода (данные выставлены на линии интерфейса). Устанавливается фронтом
     и сбрасывается низким уровнем сигнала
    .

     (подтверждение) – входной сигнал, низкий уровень которого подтверждает считывание выставленных данных с линий интерфейса. Поскольку адаптер предназначен для организации параллельного интерфейса, выходные сигналы управления обменом, генерируемые передатчиком, полностью соответствуют входным сигналам приемника и наоборот, т.е.
     соответствует
    , а IBF –
    .

     (разрешение прерывания) – сигналы разрешения запросов прерывания по каналам А (
    ) и В (
    ) устанавливаются и сбрасываются только программным путем, для чего используются управляющие слова с
    . Сигналом
     можно управлять с помощью установки и сброса бита регистра порта С РгС4, а сигналом
     – бита РгС2. При этом следует помнить, что сигналы на входах С2 и С4

    никак не воздействуют на разряды РгС2 и РгС4 регистра порта С.

    IRQ (запрос прерывания) – выходной сигнал, который можно использовать как запрос прерывания МП.


    Остановимся на сигналах
    несколько подробнее.

    Для состояния ввода (порт А) сигнал
     устанавливается в состояние 1, если
    ,
    ,
    .
     сбрасывается спадом сигнала
    , когда МП считывает из адаптера поступившие данные. Для состояния вывода (порт В) сигнал
     устанавливается в состояние 1, если
    ,
    ,
    .
     сбрасывается спадом сигнала
    , когда МП записывает в адаптер новые данные.

    При необходимости использования обоих каналов (А и В) в рассмотренных состояниях управляющие слова, приведенные на рис. 8.15 и рис. 8.17, объединяются в одно общее управляющее слово. Аналогичным образом каналы А и В в режиме 1 могут быть запрограммированы и на другие комбинации операций ВВ. Форматы управляющих слов и функциональные схемы каналов для этих комбинаций операций ВВ в настоящем разделе не рассматриваются. Отметим только, что передача сигналов управления обменом осуществляется всегда по шести линиям порта С, но свободными могут оставаться не линии С7, С6, как было в рассмотренном случае, а линии С5, С4.

    Режим 2

    Это режим двунаправленного обмена, обеспечивающий ввод и вывод данных через один порт. В этом режиме может работать только группа A. Порт A используется для передачи собственно 8-битных данных, а для обеспечения протокола обмена используются пять линий порта C. Функции сигналов управления, используемых для передачи информации в режиме 2, и временные соотношения между ними такие же, как и в режиме 1.

    Формат управляющего слова в режиме 2 изображен на рис. 8.19. В соответствии с таким управляющим словом функциональная схема канала A имеет вид, приведенный на рис. 8.20. Следует отметить, что биты D2-D0 управляющего слова задают режим работы группы В. Если для группы А определен режим 2, то для группы В может быть определен режим 1 или режим 0.



    Вводимые и выводимые данные фиксируются в регистрах-защелках порта А. Общая дисциплина квитирования, как уже отмечалось, аналогична режиму 1. Однако имеются отдельные сигналы (триггеры) разрешения запросов прерывания для состояния вывода и ввода порта А:





    INTE WRA

    – сигнал разрешения запросов прерывания IRQA

    по каналу А для состояния вывода. Управляется установкой и сбросом бита регистра порта С РгС6.

    INTE RDA

    – сигнал разрешения запросов прерывания IRQA

    по каналу А для состояния ввода. Управляется установкой и сбросом бита регистра порта С РгС4.

    Назначение линий С2-0 порта С зависит от запрограммированного режима группы В (биты D2-D0

    управляющего слова).

    Если адаптер запрограммирован для работы в режиме 1 или 2, то состояние каждого сигнала управления об установлении связи с ПУ, принимаемого и выдаваемого через выводы порта C, фиксируется в регистре порта C. Это позволяет программисту проверять состояние каждого ПУ простым чтением содержимого регистра порта C и соответствующим образом изменять программу. Форматы слова состояния в настоящем разделе не рассматриваются.


    Содержание раздела