Лекция №9. Программируемый параллельный интерфейс

Содержание лекции:схема включения программируемого параллельного интерфейса в микропроцессорную систему, его адресация, коды выбора одного из портов, порядок выполнения инструкций IN и OUT, режимы работы.

Цели лекции:изучить назначение входов и выходов программируемого параллельного интерфейса, способы его инициализации, режимы работы.

На рисунке 25 приведены условное обозначение программируемого параллельного интерфейса (ППИ или PPI-Programmable Peripheral Interface) и одна из возможных схем его включения в микропроцессорную систему. ППИ имеет три двунаправленных 8-ми битных канала связи с внешними устройствами, называемых обычно портами - PA,PB,PC.

Лекция №9. Программируемый параллельный интерфейс - student2.ru

Рисунок 25 – Схема включения ППИ в микропроцессорную систему

Порт PC отличается от остальных тем, что его можно "расчленить" на два независимых 4-х битных порта: старшую половину D7..D4 и младшую D3..D0. Как видно из рисунка 25, ППИ подключается к шине данных с помощью двунаправленных тристабильных выводов D7..D0. Входы A1,A0 осуществляют выбор одного из четырех каналов обмена данными: трех портов PA,PB,PC или внутреннего регистра управления/состояния (РУС или CSR - Control and Status Register).

Т а б л и ц а 6

Лекция №9. Программируемый параллельный интерфейс - student2.ru A1 A0 КАНАЛ
PA
PB
PC
CSR

ППИ переводится в рабочее состояние активным значением сигнала на инверсном входе "выбор микросхемы" (Chip Select, Crystall Select, CS) ~CS = 0, снимаемым с выхода дешифратора адреса (на рисунке 25 приведен неполный дешифратор - элемент И-НЕ). Логический ноль на выходе элемента И-НЕ появится, если все сигналы на его входах равны "1" (A7=A6=A5=A4=1). Так как выбор того или иного канала производится с помощью входов A1,A0, подключенных к аналогичным линиям шины адреса (ША), то с учетом входов дешифратора возможны следующие комбинации сигналов на ША, представленные в таблице 7.

Т а б л и ц а 7

ЛИНИИ ШИНЫ АДРЕСА КАНАЛ/ ПОРТ АДРЕС (HEX)
Лекция №9. Программируемый параллельный интерфейс - student2.ru A7 A6 A5 A4 A3 A2 A1 A0
x x PA F0
x x PB F1
x x PC F2
x x CSR F3

Линии A3,A2 шины адреса в схеме не задействованы, поэтому их значения в таблице обозначены (x - Don't Care Bits). При вычислении 16-ного адреса программист в качестве значения этих бит может подставлять любые значения, в том числе нули, как это и сделано в таблице. Например, для порта PB двоичный код 1111xx01 = 11110001(BIN) = F1(HEX).

Обмен байтами данных между МП (CPU) и внешними устройствами (ВУ), подключенными к портам ППИ, может производиться по командам ассемблера IN А, Адрес порта или OUT Адрес порта, А.

Выполнение команд IN и OUT производится в два этапа (без учета тактов и циклов, зависящих от конкретной архитектуры микропроцессора). Например, рассмотрим выполнение инструкций IN A,0F1h и OUT 0F1h,A, где A – аккумулятор, F1 – адрес порта PB.

1 этап. Микропроцессор помещает адрес (например F1) на ША, где он дешифрируется (в нашем примере элемент И-НЕ). С выхода дешифратора активный уровень (0) поступает на инверсный вход ~CS и переводит ППИ в рабочее состояние.

2 этап..

а) команда OUT. В следующий момент времени МП помещает байт, находящийся в аккумуляторе на шину данных и одновременно вырабатывает строб записи ~IOW поступающий на вход управления записью ~WR. Импульс ~IOW защелкивает байт данных в выходном регистре соответствующего порта ( в нашем примере в порте PB);

б) команда IN. Микропроцессор посылает на вход управления чтением ~RD строб чтения ~IOR , которым считывается в аккумулятор по ШД байт данных из порта PB.

ППИ имеет три основных режима работы:

0 – простой ввод-вывод (для передачи информации работают все порты РА,РВ и РС).;

1 – стробируемый ввод-вывод (для передачи информации работают два порта РА и РВ, а порт РС используют для управления передачей информации, то есть для ее квитирования);

2 - двунаправленная магистраль (в этом режиме работает только порт РА, а порт РВ можно использовать в режиме 0).

Тип операций выполняемых ППИ (режим работы) зависит от управляющего слова (УС), записанного в его регистр управляющего слова (РУС).

При программировании используют два формата УС:

1) первый - для задания режима работы и направления включения портов;

2) второй – для установки или сброса произвольного разряда порта С.

Управляющее слово первого формата определяют по таблице 8.

Т а б л и ц а 8

D7 D6 D5 D4 D3 D2 D1 D0
Лекция №9. Программируемый параллельный интерфейс - student2.ru х х PA PCh РВ или РС1 PB PCl

где D7 = 1 – установка формата 1;

Лекция №9. Программируемый параллельный интерфейс - student2.ru D6 = D5 = 0 – режим 0

D6 =0, D5 = 1 – режим 1 для портов РА и РСh (старшая тетрада);

D6 = 1, D5 = х – режим 2

D4 = 1 – ввод, D4 = 0 – вывод порта РА;

D3 = 1 – ввод, D3 = 0 – вывод порта РСh;

D2 = 0 – режим 0, D2 = 1 – режим 1 портов РВ и РСl;

D1 = 1 – ввод, D1 = 0 – вывод порта РВ;

D0 = 1 – ввод, D0 = 1 – вывод порта РСl (младшая тетрада).

Разряды УС во втором формате имеют следующие значения:

D7 = 0 – установка формата 2; D6,D5,D4 – не используются;

D3,D2,D1 – определяют двоичный код номера разряда;

D0 = 1 - установка разряда, D0 = 0 – сброс разряда порта С.

При каждом изменении режима работы (новое УС первого формата) все выходные регистры и триггеры состояния сбрасываются.

Как было сказано выше, в режиме 0 базового ввода-вывода могут работать все три порта, причем порт С разделяется на два независимых 4-битных порта (РСh и РCl). Всего, таким образом, получается два 8-битных и два 4-битных порта параллельного ввода или вывода, что обеспечивает 16 возможных конфигураций адаптера в режиме 0. Выводимые данные фиксируются в регистрах-защелках, входящих в состав всех портов, а вводимые данные не запоминаются.

Режим 0 применяется в программно-управляемом вводе-выводе с медленнодействующими периферийными устройствами.

Режим 1 предназначен для однонаправленных передач данных, инициируемых прерываниями. Собственно передача слов данных осуществляется через порты А и В, а шесть линий порта С используются для управления обменом.

Например, если порт РВ установлен на ввод, то параллельно с передачей данных из периферийного устройства (ПУ) в порт РВ подается через разряд 2 порта РС логический 0, сигнализируя о выдаче информации из ПУ, а через разряд 1 порта РС ПУ получает логический 0 подтверждения приема данных. Если порт РВ установлен на вывод информации, то параллельно с выдачей информации в ПУ через разряд 1 порта РС идет сигнал логического 0, а через разряд 2 порта РС осуществляется прием от ПУ логического 0 подтверждения записи данных в ПУ.

Наши рекомендации