Intel 8255

Z Wikipedie, otevřené encyklopedie
Intel D8255
Rozložení pinů obvodu Intel 8255

Intel 8255 je integrovaný obvod z rodiny procesoru Intel, navržený pro procesor Intel 8085, používán byl ale i u procesorů Intel 8086 a jeho nástupců a u procesorů Zilog Z80. Jedná se obvod poskytující tři paralelní osmibitové brány (obvykle označované jako brána A, brána B a brána C). Podobným obvodem v rodině procesoru Z80 je obvod Z80 PIO.

Obvod je použit i v počítačích Amstrad CPC. Je také základem několika interfaců používaných u počítačů Sinclair ZX Spectrum a kompatibilních.

Režimy paralelních bran

Brány mohou pracovat v následujících režimech:

  • základní režim vstupní,
  • základní režim výstupní,
  • strobovaný režim vstupní,
  • strobovaný režim výstupní,
  • obousměrný strobovaný režim.

V základním režimu může pracovat kterákoli ze tří bran, brány mohou být nezávisle na sobě nastaveny jako výstupní nebo jako vstupní. U brány C je možné nezávisle na sobě nastavovat čtveřice bitů. Jsou-li brány nastaveny jako výstupní, data která se jsou poslána na jednotlivé brány se zde objeví, jsou-li brány nastaveny jako vstupní, je čten aktuální stav příslušné brány.

V strobovaném režimu mohou pracovat pouze brány A a B, protože v tomto režimu používají i některé bity brány C jako signály STROBE a ACK. Pokud je v tomto režimu brána nastavena jako výstupní, po odeslání dat na bránu je automaticky generován signál STROBE, který periférii signalizuje, že jsou pro ni připravena data. Periférie potvrdí příjem dat aktivací signálu ACK. Po potvrzení příjmu obvod může vygenerovat signál INTR. Pokud je brána nastavena jako vstupní, obvod čeká na aktivaci signálu STROBE. Po jeho aktivaci přečte přítomná data a nastaví signál ACK. Podle nastavení obvodu se může opět vygenerovat signál INTR.

Obousměrný strobovaný režim je kombinací vstupního a výstupního strobovaného režimu. V tomto režimu může pracovat pouze brána A.

Využití bitů brány C ve strobovaných režimech brán A a B je uvedeno v následující tabulce:

režim brány A/B brána A brána B
bit brány C vstupní výstupní obousměrný vstupní výstupní
0 INTR INTR
1 ACK STROBE
2 STROBE ACK
3 INTR INTR INTR
4 STROBE STROBE (z periférie)
5 ACK ACK (z 8255)
6 ACK ACK (z periférie)
7 STROBE STROBE (z 8255)

Ve strobovaném režimu bran A a B určuje nastavení některých bitů brány C, zda se bude generovat signál INTR či nikoliv. Pro bránu A je toto nastavováno bitem 6 pro vstupní režim a bitem 4 pro výstupní režim. V obousměrném režimu je tak možné nastavit nezávisle generování signálu pro vstupní data a výstupní data. Pro bránu B je povolování generování signálu INTR nastavováno bitem 2 brány C.

Konfigurace obvodu

Konfigurace obvodu probíhá pomocí konfigurační brány, která je společná pro všechny tři brány.

Nastavení režimu bran
bit 7 6 5 4 3 2 1 0
1 režim brány A
00 - základní režim
01 - jednosměrný strobovaný režim
1x - obousměrný strobovaný režim
brána A vstup/výstup
0 - výstup
1 - vstup
(v obousměrném režimu na hodnotě nezáleží)
brána C (bity 4 - 7) vstup/výstup
0 - výstup
1 - vstup
režim brány B
0 - základní režim
1 - jednosměrný strobovaný režim
brána B vstup/výstup
0 - výstup
1 - vstup
brána C (bity 0 - 3) vstup/výstup
0 - výstup
1 - vstup

Obvod umožňuje nezávislé nastavení jednotlivých bitů brány C. To je užitečné v případě, kdy se povoluje či zakazuje generování signálu INTR ve strobovaných režimech bran A a B.

Nezávislé nastavení jednotlivých bitů brány C
bit 7 6 5 4 3 2 1 0
0       číslo nastavovaného bitu hodnota bitu

Analogické obvody

  • Tesla MHB8255A (Tesla Piešťany originál)
    Tesla MHB8255A (Tesla Piešťany originál)
    MHB 8255
  • MCY 7855
  • NEC D8255AC-2
  • NEC D8255AC-5
  • Toshiba TMP8255AP-5
  • Tesla MHB8255A (OEM výroba Tungsram)
    Tesla MHB8255A (OEM výroba Tungsram)
    КР580ВВ55А

Využití obvodu

Amstrad CPC

Obvod je použit v počítačích Amstrad CPC pro ovládání zvukového generátoru AY-3-8912, ukládání dat na magnetofon a ovládání magnetofonu a tiskárny a pro čtení klávesnice a čtení dat z magnetofonu.[1] Obvod 8255 je v počítačích Amstrad CPC připojen k portům:

šestnáctkově dekódování význam
F4xx xxxx0x00 xxxxxxxx brána A
F5xx xxxx0x01 xxxxxxxx brána B
F6xx xxxx0x10 xxxxxxxx brána C
F7xx xxxx0x11 xxxxxxxx řídicí registr

Obvod je využit i v IDE interface k těmto počítačům, kdy je obvod 8255 připojen k portům:[2][3]

šestnáctkově význam
F8E6, FAE6, FCE6, FEE6 brána A
F9E6, FBE6, FDE6, FFE6 brána B
F8E7, FAE7, FCE7, FEE7 brána C
F9E7, FBE7, FDE7, FFE7 řídicí registr

Brány A a B slouží pro zápis a čtení dat.

IQ 151

Vestavěný obvod 8255A v počítačích IQ 151 je využit k ovládání klávesnice, zvukového výstupu a rozhranní pro komunikaci s magnetofonem.[4] Klávesnice počítače je, co se týká elektrického zapojení, organizována do matice 8×8 kláves, řádkové vodiče klávesnice jsou připojeny k bráně A, sloupcové vodiče jsou připojeny k bráně B.[4] Klávesy SHIFT, CONTROL, FA a FB jsou připojeny na vstupy 4 - 7 brány C.[4]

MAŤO

Počítač MAŤO využívá zabudovaný obvod 8255 ke čtení klávesnice a pro ukládání a načítání dat z magnetofonu. K zápisu a čtení dat z magnetofonu se používají dva bity brány C.[5] Pro čtení stavu klávesnice se používají brány A a B. Klávesnice počítače je, co se týklá elektrického zapojení, organizována do matice 7×7. Brána A slouží k nastavení bitové masky čteného sloupce klávesnice, na 7 bitech brány B pak lze přečíst, které klávesy byly stisknuty.[5] Osmý bit brány B slouží ke čtení stavu klávesy EOL.[5] Ke čtení stavu přeřaďovačů a klávesy STOP se používají bity brány C.[5]

Sharp MZ-700

Počítač Sharp MZ-700 má zabudovaný obvod 8255 společně s obvodem 8253. Oba obvody jsou připojeny do paměťového prostoru procesoru.[6] Obvod 8255 je připojen na adresy E000 - E003 (šestnáctkově).

Sinclair ZX Spectrum

Obvod 8255 je obsažen v různých interfacech k těmto počítačům. Je základem interface UR-4 a Interface M/P, vestavěný jej mají počítače Didaktik Gama a Didaktik Kompakt, disketové jednotky Didaktik 40 a Didaktik 80 a disketové řadiče MB02 a ZX Diskface Quick.[7][8]

Obvykle je obvod 8255 k těmto počítačům připojován na porty:[8]

desítkově šestnáctkově dekódování význam
31 1F 000xxxxx brána A
63 3F 001xxxxx brána B
95 5F 010xxxxx brána C
127 7F 011xxxxx řídicí registr

Existují čtyři běžně používané způsoby, jak k počítači připojit prostřednictvím obvodu 8255 tiskárnu s rozhraním Centronics.[9] Brána A může být při takovémto připojení použita pro připojení Kempston joysticku.[10]

Existuje zapojení obvodu 8255, které používá porty 33, 35, 37 a 39 (šestnáctkově 21, 23, 25, 27).[11]

Společně s obvodem 8251 je obvod 8255 použit v interface Skywave Forth, což je interface s vlastní pamětí ROM pro podporu programování v jazyce Forth.[12] Dva obvody 8255 jsou použity v některých verzích hudebního interface Soundrive.

Reference

  1. 8255 na CPCWiki
  2. IDE8255 na CPCWiki
  3. YABUS.IDE8255 na 8bit.yarek.pl
  4. a b c TIŠNOVSKÝ, Pavel. Legendární školní mikropočítač IQ-151. Root.cz [online]. 2010-03-30 [cit. 2018-01-08]. Dostupné online. ISSN 1212-8309. ((česky)) 
  5. a b c d TIŠNOVSKÝ, Pavel. Československé osmibitové počítače: aplikace a emulátory PMD 85. Root.cz [online]. 2010-03-23 [cit. 2018-01-08]. Dostupné online. ISSN 1212-8309. ((česky)) 
  6. Memory mapped I/O na sharpmz.org
  7. UR-4 (paralelní port s 8255A) na cygnus.speccy.cz
  8. a b Jan Smrž (MSP) a Jaromír Krejčí. Tipy na čipy. ZX Magazín. 1995, čís. 1/95, s. 20-21. ISSN 1210-4833. 
  9. Připojení tiskárny (Centronics) na cygnus.speccy.cz
  10. Интерфейсы принтера - параллельный интерфейс принтера. In: Периферия своими руками. [s.l.]: Инфорком, 1993. Dostupné online. (rusky)
  11. ZX Spectrum 24-lines Input/Output Interface na bneven.com
  12. FORTH - David Husband. ZX Computing. December 1983/January 1984 1984, roč. 1, čís. 10, s. 101. Dostupné online. 

Externí odkazy