Последний уровень раздела предыдущего изложения   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Первый уровень изложения следующего раздела   Уровень: Глоссарии:


Программируемый периферийный интерфейс



На рисунке внизу приведены условное обозначение ППИ и одна из возможных схем его включения в микропроцессорную систему. PPI имеет три двунаправленных 8-ми битных канала связи с внешними устройствами, называемых обычно портами - PA,PB,PC. Порт PC отличается от остальных тем, что его можно "расчленить" на два независимых 4-х битных порта - старшую половину D7..D4 и младшую D3..D0.ppi.gif(4245bytes) ППИ, называемый иногда параллельным интерфейсом (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), то порт будет настроен на вывод (  МП -----> ВУ).