Программируемый периферийный адаптер 8255A (КР580ВВ55А)


Программируемый периферийный адаптер (ППА) i8255A представляет собой три канала ввода/вывода A, B и C по 8 бит каждый. Имеет три режима работы. В режиме 0 три упомянутых канала могут быть независимо друг от друга запрограммированы на ввод или вывод информации. Режим 1 позволяет передавать информацию по каналам A и B, используя отдельные биты канала C для управления обменом данными. В режиме 2 канал A приобретает свойство двунаправленной шины, управляемой опять же отдельными битами канала C. Кроме того, возможны установка и сброс отдельных битов канала C. Микросхема имеет варианты исполнения в корпусе DIP40 и PLCC44.
8255A - NMOS версия, 82c55A - CMOS. Выпускался фирмами Intel, Harris, Intersil.

Основные особенности микросхемы:

  • 3 канала ввода/вывода, 8 бит каждый;
  • 3 режима работы (1 - статический ввод/вывод, 2 - тактируемый ввод/вывод, 3 - двунаправленный ввод/вывод);
  • раздельное программирование каждого канала на ввод или вывод.

Описание структуры и функционирование

Структурная схема программируемого периферийного адаптера представлена на рис. 1.

Структурная схема программируемого периферийного адаптера КР580ВВ55

Структурная схема программируемого периферийного адаптера КР580ВВ55

ППА структурно разбит на две группы (A и B). Группа A включает в себя канал A и старшую тетраду канала C. Группа B состоит из канала B и младшей тетрады канала C. Доступ к каналам ввода/вывода и регистру управления осуществляется с помощью логики чтения-записи в соответствии с табл. 1.

Расположение выводов в корпусе DIP40:

1 - PA3  PA4 - 40
2 - PA2  PA5 - 39
3 - PA1 PA6 - 38
4 - PA0 PA7 - 37
5 - RD WR - 36
6 - CS  RES - 35
7 - GND  D0 - 34
8 - A1 D1 - 33
9 - A0     D2 - 32
10 - PC7  D3 - 31
11 - PC6  D4 - 30
12 - PC5  D5 - 29
13 - PC4  D6 - 28
14 - PC0  D7 - 27
15 - PC1 Vcc - 26
16 - PC2  PB7 - 25
17 - PC3  PB6 - 24
18 - PB0  PB5 - 23
19 - PB1  PB4 - 22
20 - PB2  PB3 - 21

Таблица 1. Доступ к каналам ввода/вывода и регистру управляющего слова

A1 A0 /RD /WR /CS  
0 0 0 1 0 Шина данных <- канал A
0 1 0 1 0 Шина данных <- канал B
1 0 0 1 0 Шина данных <- канал C
1 1 0 1 0 Данные не определены
0 0 1 0 0 Шина данных -> канал A
0 1 1 0 0 Шина данных -> канал B
1 0 1 0 0 Шина данных -> канал C
1 1 1 0 0 Шина данных -> регистр управления
X Х Х Х 1 Шина данных в высокоомном состоянии

Таблица 2. Назначение выводов

D0:D7 Двунаправленная шина данных. Предназначена для передачи и приема данных процессором, а также передачи управляющих команд и слова состояния
/CS Chip Select. Выбор микросхемы. Низкий уровень инициирует обмен между процессором и ППА
/RD Read. Чтение. Низкий уровень на этом входе позволяет ППА передать данные или слово состояния процессору
/WR Write. Запись. Низкий уровень на этом входе позволяет ППА принять данные или управляющую команду
RESET Reset. Сброс. Высокий уровень на этом входе сбрасывает все внутренние регистры, включая регистры управления, переключает все каналы (A, B, C) в режим 0, одновременно переводя их в режим ввода
A0, A1 Адресные входы. Выбор канала. Позволяют выбрать один из каналов (A, B, C) или регистры управляющего слова и состояния (в зависимости от сигналов на входах /RD и /WR, см. табл. 2)
PA0:PA7 Канал A
PB0:PB7 Канал B
PC0:PC7 Канал C

Сигналы A0,A1,CS должны быть выставлены ранее или одновременно с передним фронтом RD или WR. Снятие допустимо одновременно с задним фронтом RD и не ранее, чем через 20 ns от заднего фронта WR. Состояние шины данных должно сохраняться не менее 30 ns после WR.

Первоначальное включение или подача сигнала высокого уровня на вход сброс RESET микросхемы переключает все каналы (A, B, C) в режим 0, одновременно переводя их в режим ввода. В регистр управления заносится 9Bh.

Режим работы и направление передачи для каждого канала задается с помощью записи управляющего слова в регистр управления в соответствии с табл. 3 или 4. В режиме вывода каналы инициализируются значением 00 при записи в регистр управления.

Таблица 3. Формат управляющего слова для выбора режима работы

D7 D6 D5 D4 D3 D2 D1 D0
Флаг управления
1 = выбор режима
Группа A Группа В
  Выбор режима:
00 = режим 0
01 = режим 1
1х = режим 2
Канал A:
1 = ввод
0 = вывод
Старшая тетрада канала C:
1 = ввод
0 = вывод
Выбор режима:
0 = режим 0
1 = режим 1
Канал B:
1 = ввод
0 = вывод
Младшая тетрада канала C:
1 = ввод
0 = вывод

Таблица 4. Формат управляющего слова для двунаправленного режима.

D7 D6 D5 D4 D3 D2 D1 D0
Флаг управления
1 = выбор режима
Выбор режима:
1 = режим 2
Произвольное состояние Выбор режима для канала B:
0 = режим 0
1 = режим 1
Канал B:
1 = ввод
0 = вывод
Биты 0..2 канала C:
1 = ввод
0 = вывод

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

Работа микросхемы в режиме 1 или 2 характеризуется наличием управляющих сигналов, которые могут генерировать прерывание микропроцессора.

Команда установки или сброса соответствующего бита канала C позволяет запретить или разрешить выдачу требуемого прерывания.

Таблица 5. Оперирование битами

D7 D6 D5 D4 D3 D2 D1 D0
Флаг управления
0 = оперирование битами
Произвольное состояние Выбор бита:
0 0 0 = 0 бит
0 0 1 = 1 бит
0 1 0 = 2 бит
0 1 1 = 3 бит
1 0 0 = 4 бит
1 0 1 = 5 бит
1 1 0 = 6 бит
1 1 1 = 7 бит
1 = установить бит
0 = снять бит

Описание режимов работы

Режим 0 (простой ввод/вывод)

Работа в этом режиме позволяет организовать простой ввод или вывод для каждого из трех каналов. Данные просто записываются или считываются из выбранного канала. Таким образом, основные особенности функционирования микросхемы в режиме 0 следующие:

  • два 8-битовых канала (каналы A и B) и два 4-битовых канала (старшая и младшая половинки канала C);
  • каждый канал может быть независимо от других запрограммирован на ввод или вывод; таким образом, всего может быть 16 различных комбинаций ввода/вывода;
  • выходы имеют память, входы работают без буферной памяти.

Режим 1 (тактируемый ввод/вывод)

Этот режим служит для однонаправленного обмена данными по выбранному каналу с периферийным устройством. Для управления передачей или приемом по каналу A используется младшая тетрада канала C, канал B управляется старшей тетрадой канала C.

  • два канала (каналы A и B);
  • каждый канал может быть запрограммирован на вход или выход;
  • одна тетрада канала C используется для управления одного канала передачи данных.

Режим 2 (двунаправленный тактируемый ввод/вывод)

В этом режиме возможен обмен данными по 8-битовой двунаправленной шине данных. Управление обменом данными, а также направление передачи задается с помощью управляющих сигналов аналогичным режиму 1 способом. Возможно также генерирование сигналов прерываний и запрета разрешения.

  • возможно использование только канала A;
  • управление обменом обеспечивается 5 битами канала C;
  • входы и выходы обладают буферной памятью.