|
|
|
|
На рисунке внизу приведены условное обозначение ППИ и одна из возможных схем его включения в микропроцессорную систему. PPI имеет три двунаправленных 8-ми битных канала связи с внешними устройствами, называемых обычно портами - PA,PB,PC. Порт PC отличается от остальных тем, что его можно "расчленить" на два независимых 4-х битных порта - старшую половину D7..D4 и младшую D3..D0. ППИ, называемый иногда параллельным интерфейсом (IOP), подключается к шине данных с помощью двунаправленных тристабильных выводов D7..D0. Входы A1,A0 осуществляют выбор одного из четырех каналов обмена данными: трех портов PA,PB,PC или внутреннего регистра управления/состояния (РУС или CSR - Control and Status Register).
A1 | A0 | КАНАЛ |
0 | 0 | PA |
0 | 1 | PB |
1 | 0 | PC |
1 | 1 | CSR |
PPI переводится в рабочее состояние активным значением сигнала на инверсном входе "выбор микросхемы" (Chip Select, Crystall Select, CS) ~CS = 0, снимаемым с выхода дешифратора адреса ( на рисунке приведен неполный дешифратор - элемент И-НЕ ). Логический ноль на выходе элемента И-НЕ появится, если ВСЕ сигналы на его входах равны "1" (A7=A6=A5=A4=1). Так как выбор того или иного канала производится с помощью входов A1,A0 подключенных к аналогичным линиям шины адреса (ША), то с учетом входов дешифратора возможны следующие комбинации сигналов на ША.
ЛИНИИ ШИНЫ АДРЕСА | КАНАЛ/ПОРТ | АДРЕС (HEX) | |||||||
A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | ||
1 | 1 | 1 | 1 | x | x | 0 | 0 | PA | F0 |
1 | 1 | 1 | 1 | x | x | 0 | 1 | PB | F1 |
1 | 1 | 1 | 1 | x | x | 1 | 0 | PC | F2 |
1 | 1 | 1 | 1 | x | x | 1 | 1 | CSR | F3 |
Линии A3,A2 шины адреса в схеме не задействованы, поэтому их значения в таблице обозначены (x - Don't Care Bits). При вычислении 16-ного адреса программист в качестве значения этих бит может подставлять любые значения, в том числе нули, как это и сделано в таблице. Например, для порта PB двоичный код 1111xx01 = 11110001(BIN) = F1( HEX ).
Обмен байтами данных между МП (CPU) и внешними устройствами (ВУ), подключенными к портам PPI может производиться по командам ассемблера IN..... и OUT.... например : in al,XX и out XX,al.
Выполнение команд IN и OUT производится в два этапа (без учета тактов и циклов, зависящих от конкретной архитектуры микропроцессора). Пример : выполнение инструкций IN AL,0F1h и OUT 0F1h,AL.
Тип операций выполняемых PPI (режим работы) зависит от информации записанной в его регистр управления. Эта информация называется управляющим байтом или иногда приказом. Подробная информация по режимам приведена, например в справочнике : Микропроцессоры и микроЭВМ, под редакцией Хвощ С.Т. Ниже приведен формат байта управления в одном из наиболее популярных режимов - режиме "0", о чем свидетельствуют нули в битах D6,D5,D2:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 0 | 0 | PA | PCh | 0 | PB | PCl |
Биты PA,PB,PCh,PCl определяют направление передачи данных через порты ( если порт настроен, например, на вывод, то ввести данные через него в МП командой IN не удастся ).
Если один из перечисленных четырех битов установлен (в него записана 1), то соответствующий порт будет настроен на ввод (МП <----- ВУ), если бит сброшен (в него записан 0), то порт будет настроен на вывод ( МП -----> ВУ).