Чип программируемого периферийного интерфейса (PPI) Intel 8255 (или i8255 ) был разработан и изготовлен компанией Intel в первой половине 1970-х годов для микропроцессора Intel 8080 . 8255 имеет 24 параллельные линии ввода/вывода с различными программируемыми режимами работы.
8255 является членом семейства микросхем MCS-85 , разработанных Intel для использования с микропроцессорами 8085 и 8086 и их потомками. [1] Сначала он был доступен в 40-контактном корпусе DIP , а затем в 44-контактном корпусе PLCC . [2] Он нашел широкое применение в системах цифровой обработки и позже был клонирован другими производителями. 82C55 — это версия CMOS , обеспечивающая более высокую скорость и меньшее потребление тока.
Функциональность 8255 теперь в основном встроена в более крупные микросхемы обработки СБИС в качестве подфункции. Версия CMOS 8255 все еще производится [3] компанией Renesas , но в основном используется для расширения возможностей ввода-вывода микроконтроллеров .
8255 имеет аналогичную функцию с Motorola 6820 PIA (адаптер периферийного интерфейса) из семейства Motorola 6800 , который также изначально был упакован как 40-контактный DIL. 8255 имеет 24 контакта ввода/вывода с четырьмя программируемыми битами направления: один для порта A(7:0) (т.е. все контакты порта), один для порта B(7:0), один для порта C(3:0): 0) и один для порта C(7:4). Напротив, чипы Motorola и MOS имеют только 16 контактов ввода-вывода плюс 4 контакта управления, но чипы Motorola/MOS позволяют индивидуально программировать направление (вход или выход) всех контактов ввода-вывода. Оба имеют конфигурации, которые выполняют определенное количество автоматического установления связи и генерации прерываний.
Другими сопоставимыми микропроцессорными микросхемами ввода-вывода являются программируемый периферийный интерфейс 2655 из семейства Signetics 2650 , Z80 PIO , WDC 65C21 Western Design Center (эквивалент Motorola 6820/6821) и MOS Technology 6522 VIA и 6526 CIA , которые имели значительные дополнительные функции, такие как таймеры и сдвиговые регистры.
Промышленная версия Intel ID8255A была доступна по цене 17,55 долларов США в количестве от 100 штук. [4] Доступная версия Intel 8255A-5 стоила 6,55 долларов США в количестве от 100 штук. [5] Доступная версия 82C55A CMOS была передана на аутсорсинг компании Oki Electronic Industry Co. , Ltd. [6] Доступный корпус от Intel под торговой маркой 82C55 в 44-контактном PLCC , выборка в четвертом квартале 1985 года. [7] В Восточной Европе эквивалентные схемы производились как KR580VV55A в Советском Союзе и как MHB8255A компанией Tesla в Чехословакии.
8255 широко использовался во многих микрокомпьютерных/микроконтроллерных системах и домашних компьютерах , таких как SV-328 и все модели MSX . 8255 использовался в оригинальном IBM-PC , [8] PC/XT, PC/jr и клонах, а также в многочисленных самодельных компьютерах , таких как N8VEM .
8255 предоставляет ЦП или цифровой системе доступ к программируемому параллельному вводу-выводу . [9] Модель 8255 имеет 24 контакта ввода/вывода. [10] Они разделены на три 8-битных порта (A, B, C). [11] Порт A и порт B можно использовать как 8-битные порты ввода/вывода. Порт C может использоваться как 8-битный порт ввода/вывода или как два 4-битных порта ввода/вывода или для формирования сигналов подтверждения связи для портов A и B.
Эти три порта далее сгруппированы следующим образом:
Доступны восемь линий данных (D0–D7) (с 8-битным буфером данных) для чтения/записи данных в порты или регистр управления в состоянии RD ( контакт 5) и WR (контакт 36), которые активны. -низкие сигналы для операций чтения и записи соответственно. Адресные строки A 1 и A 0 позволяют получить доступ к регистру данных для каждого порта или регистру управления, как указано ниже:
Сигнал выбора микросхемы управления CS (контакт 6) используется для включения микросхемы 8255. Это сигнал с активным низким уровнем, т. е., когда CS = 0, 8255 включен. Вход RESET (контакт 35) подключен к линии RESET системы, например 8085, 8086 и т. д., так что при сбросе системы все порты инициализируются как входные линии. Это сделано для предотвращения разрушения 8255 и/или любого подключенного к нему периферийного устройства из-за несоответствия настроек направления порта. В качестве примера рассмотрим устройство ввода, подключенное к 8255 через порт A. Если в результате предыдущей операции порт A инициализируется как порт вывода и если 8255 не сбрасывается перед использованием текущей конфигурации, то существует вероятность повреждения либо подключенное устройство ввода, или 8255, или оба, поскольку и 8255, и подключенное устройство будут отправлять данные.
Регистр управления (или логика управления, или регистр командного слова) представляет собой 8-битный регистр, используемый для выбора режимов работы и назначения входов/выходов портов. [12]
Существует два основных режима работы 8255:
Два режима выбираются на основе значения, присутствующего в бите D7 регистра управляющего слова. Когда D 7 = 1, 8255 работает в режиме ввода-вывода, а когда D 7 = 0, он работает в режиме BSR.
Режим установки/сброса битов (BSR) доступен только для порта C. Каждую линию порта C (PC 7 – PC 0 ) можно установить или сбросить путем записи подходящего значения в регистр управляющего слова. Режим BSR и режим ввода-вывода независимы, и выбор режима BSR не влияет на работу других портов в режиме ввода-вывода. [13]
Выбор контакта порта C определяется следующим образом:
Например, если необходимо установить ПК 5 , то в управляющем слове
Таким образом, согласно приведенным выше значениям, 0B (шестнадцатеричный) будет загружен в регистр управляющего слова (CWR).
Этот режим выбирается, когда бит D7 регистра управляющего слова равен 1. Существует три режима ввода/вывода: [14]
Например, если порт B и верхний порт C должны быть инициализированы как входные порты, а нижний порт C и порт A как выходные порты (все в режиме 0):
Следовательно, для желаемой операции в регистр управляющего слова необходимо будет загрузить «10001010» = 8A (шестнадцатеричный) .
В этом режиме порты можно использовать для простых операций ввода-вывода без сигналов квитирования. Порт A и порт B обеспечивают простую операцию ввода-вывода. Две половины порта C можно использовать либо вместе как дополнительный 8-битный порт, либо как отдельные 4-битные порты. Поскольку две половины порта C независимы, их можно использовать так, чтобы одна половина инициализировалась как входной порт, а другая половина — как выходной порт.
Функции ввода/вывода в режиме 0 следующие:
«Зафиксировано» означает, что биты помещаются в регистр хранения (массив триггеров), который сохраняет выходной сигнал постоянным, даже если входные данные изменяются после фиксации.
Выходы 8255 фиксируются для хранения последних записанных на них данных. Это необходимо, поскольку данные остаются на шине только в течение одного цикла. Таким образом, без фиксации выходные данные станут недействительными, как только цикл записи завершится.
Входы не фиксируются, поскольку ЦП нужно только прочитать их текущие значения, а затем сохранить данные в регистре ЦП или в памяти, если к ним потребуется обратиться в более позднее время. Если входные данные изменяются во время чтения порта, результат может быть неопределенным.
Когда мы хотим использовать порт A или порт B для операции ввода или вывода квитирования (стробирования), мы инициализируем этот порт в режиме 1 (порт A и порт B могут быть инициализированы для работы в разных режимах, т. е., например, порт A может быть инициализирован для работы в разных режимах). работать в режиме 0, а порт B в режиме 1). Некоторые контакты порта C функционируют как линии установления связи.
Для порта B в этом режиме (независимо от того, действует ли он как порт ввода или порт вывода) контакты PC0, PC1 и PC2 функционируют как линии подтверждения связи.
Если порт A инициализирован как входной порт режима 1, то PC3, PC4 и PC5 функционируют как сигналы подтверждения связи. Выводы PC6 и PC7 доступны для использования в качестве линий ввода/вывода.
Режим 1, поддерживающий квитирование, имеет следующие особенности:
Входные сигналы подтверждения связи
Выходные сигналы установления связи
В этом режиме можно инициализировать только порт A. Порт A может использоваться для двунаправленной передачи данных подтверждения . Это означает, что данные можно вводить или выводить по одним и тем же восьми линиям (PA0 – PA7). Выводы PC3–PC7 используются в качестве линий подтверждения связи для порта A. Остальные контакты порта C (PC0–PC2) могут использоваться в качестве линий ввода/вывода, если группа B инициализируется в режиме 0, или в качестве линий подтверждения связи для порта B, если группа B инициализируется в режиме 1. В этом режиме 8255 можно использовать для расширения системной шины до подчиненного микропроцессора или для передачи байтов данных на контроллер гибких дисков и обратно. Сигналы подтверждения и установления связи предоставляются для поддержания надлежащего потока данных и синхронизации между передатчиком и получателем данных.