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á 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
- MHB 8255
- MCY 7855
- NEC D8255AC-2
- NEC D8255AC-5
- Toshiba TMP8255AP-5
- КР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
- 8255 na CPCWiki
- IDE8255 na CPCWiki
- YABUS.IDE8255 na 8bit.yarek.pl
- 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))
- 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))
- Memory mapped I/O Archivováno 20. 2. 2012 na Wayback Machine na sharpmz.org
- UR-4 (paralelní port s 8255A) na cygnus.speccy.cz
- Jan Smrž (MSP) a Jaromír Krejčí. Tipy na čipy. ZX Magazín. 1995, čís. 1/95, s. 20–21. ISSN 1210-4833.
- Připojení tiskárny (Centronics) na cygnus.speccy.cz
- Интерфейсы принтера - параллельный интерфейс принтера. In: Периферия своими руками. [s.l.]: Инфорком, 1993. Dostupné online. (rusky)
- ZX Spectrum 24-lines Input/Output Interface Archivováno 5. 3. 2014 na Wayback Machine na bneven.com
- FORTH - David Husband. ZX Computing. December 1983/January 1984 1984, roč. 1, čís. 10, s. 101. Dostupné online.
Externí odkazy
- Intel 8255A/8255A-5 Programmable Peripheral Interface - datasheet obvodu
- 8255 parallel interface - Přehled způsobů, kterými je obvod 8255 připojován k ZX Spectru a kompatibilním počítačům na 8bit.yarek.pl