Программируемый параллельный периферийный адаптер

Программирование Архитектура ЭВМ и систем Программируемый параллельный периферийный адаптер

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 6 мес. назад.

  • Автор
    Сообщения
  • #4850
    @admin

    ПРОГРАММИРУЕМЫЙ ПАРАЛЛЕЛЬНЫЙ ИНТЕРФЕЙС КР580ВВ55 предназначен для ввода-вывода параллельной информации в 8-битном формате. Он позволяет реализовать большинство известных протоколов обмена по параллельным каналам. БИС программируемого параллельного интерфейса может использоваться для соединения МП со стандартным периферийным оборудованием (дисплеем, телетайпом, накопителем и т.п.)
    В состав БИС входят:

    • Двунаправленный 8-разрядный буфер данных, соединяющий линии данных БИС с системной шиной данных;
    • Блок управления чтением/ записью, обеспечивающий управление внешней и внутренней передачей данных и управляющих слов;
    • Три 8-разрядных порта ввода/ вывода (A, B, C) для обмена информацией, причем порт С разделен на 2 четырехразрядных: С’ (PC7 – PC4) и C” (PC3 – PC0). Порты А С’ объединены в группу А, порты В и С” — в группу В.

    Адресные разряды А1, А0 позволяют выбрать один из портов A, B, C или регистр управляющего слова RCW. В таблице приведены адреса портов и регистра RCW:

    портa7a6a5a4a3a2a1a0адрес
    a0000100008
    b000010100a
    c000011000c
    rcw000011100e

    Программирование БИС заключается в загрузке управляющего слова режима при А1=1, А0=1. Формат управляющего слова режима приведен на рисунке 1. управляющее слово определяет один из трех режимов портов параллельного интерфейса: режим «0» — основной режим ввода/ вывода; режим «1» — режим стробированного ввода/ вывода; режим «2» — режим двунаправленной передачи данных. На рис. 1 приведен формат управляющего слова режима:

    В этом формате:

    • Биты М1, М0 задают режим группы А. При М1М0 = 00 задается режим 0, при 01 – режим 1, при 10 и 11 – режим 2.
    • Бит IOA задает режим ввода или вывода порта А. При IOA =1 осуществляется ввод информации, при значении ноль – вывод.
    • Бит IOC задает режим ввода или вывода порта С’ ( 1 – ввод, 0 – вывод)
    • Бит М задает режим группы В. При М=0 – режим 0, при М=1 – режим 1
    • Бит IOB задает режим ввода или вывода порта В ( 1 – ввод информации, 0 – вывод)
    • бит IOC” задает режим ввода или вывода порта С” ( 1 – ввод, 0 – вывод)

    Управляющее слово может устанавливать разные режимы работы для каждого из портов. Порт А может работать в любом из 3 режимов, порт В – в режимах 0 и 1. Порт С можно использовать для передачи данных только в режиме 0, в других режимах его применяют для передачи управляющих сигналов, которые сопровождают процесс обмена по портам А и В.

    Отдельные разряды порта С можно устанавливать или сбрасывать программно с помощью управляющего слова установки/ сброса, формат которого показан на рисунке:

    Биты N2, N1, N0 задают номер разряда, который надо установить или сбросить. Значения этих битов =000 – выбирает разряд РС0, 001 – РС1, 010 – РС2, 011 – РС3, 100 – РС4, 101 – РС5, 110 – РС6, 111 – РС7.

    Бит S/ R задает режим установки или сброса разряда порта С, который выбран значениями N2, N1, N0. При S/ R = 1 происходит установка разряда, при 0 – сброс.

    Рассмотрим режимы работы портов программируемого параллельного интерфейса.

    Режим 0
    применяется при синхронном обмене или при программной организации асинхронного обмена. В этом режиме БИС представляет собой устройство, которое состоит из четырех портов (два 8-разрядных А, В и два 4-разрядных C’, C”), которые могут независимо настраиваться на ввод или вывод информации. Вывод информации осуществляется по команде OUT с фиксацией выведенной информации в регистрах портов, а ввод – по команде IN без запоминания информации.

    Режим 1
    обеспечивает однонаправленный обмен информацией МП с УВВ по стробу готовности. Информация передается по портам А и В, а линии порта С управляют передачей. Работу порта в режиме 1 сопровождают три управляющих сигнала. Если один из портов запрограммирован на режим 1, то оставшиеся 13 линий портов можно использовать в режиме 0. если оба порта запрограммированы на режим 1, то оставшиеся 2 линии порта С могут быть запрограммированы на ввод или вывод.

    Режим 2 обеспечивает двунаправленную передачу информации из порта А во внешнее устройство и наоборот. Процесс обмена сопровождают 5 управляющих сигналов, которые передаются по линиям РС7 – РС3. 11 интерфейсных линий, которые остались, могут быть запрограммированы на режим 0 или режим 1.

    Назначение разрядов порта С при вводе данных из портов А и В в режиме 1:

    Назначение разрядов порта С при выводе данных на порты А и В в режиме 1:

    OBF ( Output Buffer Full) – выходной сигнал, который сообщает про заполненность выходного буфера порта данными.

    Назначение разрядов порта С в режиме 2:

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

    Пример. Написать программу установки порта А в режим ввода 2, а потом осуществить ввод (вывод) информации через порт А в этом режиме.
    Управляющее слово режима в этом случае будет равняться С0:

    Программа двунаправленного ввода/вывода по стробу готовности должна сначала обнаружить готовность порта к вводу или выводу информации по единичному состоянию сигнала INTR A (линия ЗС3), а потом установить, какие именно данные готовы – для ввода (единичное состояние линии РС4) или вывода (единичное состояние линии РС6). После этого можно осуществлять обмен данными.

    Программа имеет вид:

    MOV A, C0H                       ; формирование управляющего слова режима в A
    OUT OEH, A                       ; запись в регистр RCW 
    M1: IN A, 0CH                    ; содержимое порта С переместить в A
    MOV B, A                         ; сохранение содержимого A в регистре B
    AND A, 00001000B                 ; маскирование всех разрядов, кроме PC3 (INTR A)
    JZ M1                            ; если данные не готовы, то на М1
    MOV A, B                         ; переместить в A  содержимое регистра B 
    AND A, 00010000B                 ; маскирование всех разрядов, кроме РС4 (INTR A)
    JZ M2                            ; если данные готовы не для ввода, то переход на М2
    IN A, 08H                        ; иначе – ввод информации из порта А
    JMP M3
    M2: OUT 08H, A                   ; вывод информации на порт А
    M3:                              ; продолжение программы

Для ответа в этой теме необходимо авторизоваться.