Intel 8255 - Intel 8255

Intel D8255
Pinout z i8255

Intel 8255 (nebo i8255 ) Programovatelná Peripheral Interface (PPI) čip byl vyvinut a vyroben firmou Intel v první polovině roku 1970 na 8080 Intel mikroprocesoru. 8255 poskytuje 24 paralelních vstupních/výstupních linek s řadou programovatelných provozních režimů.

8255 je členem rodiny čipů MCS-85 navržených společností Intel pro použití s ​​jejich mikroprocesory 8085 a 8086 a jejich potomky. Poprvé byl k dispozici ve 40pólovém DIP a později 44pólovém PLCC balíčku. Našla širokou použitelnost v systémech digitálního zpracování a později byla klonována jinými výrobci. 82C55 je verze CMOS pro vyšší rychlost a nižší spotřebu proudu.

Funkce 8255 je nyní většinou začleněna do větších zpracovatelských čipů VLSI jako dílčí funkce. CMOS verze 8255 je stále provádí Renesas , ale většinou používá pro rozšíření I / O s mikroprocesory .

Podobné chipsy

8255 má podobnou funkci jako Motorola 6820 PIA (adaptér periferního rozhraní) z rodiny Motorola 6800 , také původně zabalený jako 40pinový DIL. 8255 poskytuje 24 I/O pinů se čtyřmi programovatelnými směrovými bity: jeden pro port A (7: 0) (tj. Všechny piny v portu), jeden pro port B (7: 0), jeden pro port C (3: 0) a jeden pro port C (7: 4). Naproti tomu čipy Motorola a MOS poskytují pouze 16 I/O pinů plus 4 ovládací piny, ale čipy Motorola/MOS umožňují jednotlivě programovat směr (vstup nebo výstup) všech I/O pinů. Oba mají konfigurace, které budou provádět určité automatické podávání rukou a generování přerušení.

Dalšími srovnatelnými mikroprocesorovými I/O čipy jsou programovatelná periferní rozhraní 2655 z rodiny Signetics 2650 , Z80 PIO , Western Design Center WDC 65C21 (ekvivalent Motorola 6820/6821) a MOS Technology 6522 VIA a 6526 CIA, které měly značné další funkce, jako jsou časovače a posuvné registry.

Varianty

Průmyslová verze Intel ID8255A byla k dispozici za 17,55 USD v množství 100 a více. Dostupná verze Intel 8255A-5 byla za 6,55 USD v množství 100 a více. Dostupná 82C55A CMOS verze byla externě Oki Electronic Industry Co., Ltd .

Aplikace

8255 byl široce používán v mnoha mikropočítačových/mikrokontrolérových systémech a domácích počítačích , jako je SV-328 a všechny modely MSX . 8255 byl použit v původních IBM-PC , PC/XT, PC/jr a klonech, spolu s řadou domácích počítačů , jako je N8VEM .

Funkce

8255 poskytuje CPU nebo digitálnímu systému přístup k programovatelným paralelním I/O . 8255 má 24 vstupních/výstupních pinů. Ty jsou rozděleny do tří 8bitových portů (A, B, C). Porty A a B lze použít jako 8bitové vstupní/výstupní porty. Port C lze použít jako 8bitový vstupní/výstupní port nebo dva 4bitové vstupní/výstupní porty nebo k vytváření signálů handshake pro porty A a B.

Tyto tři porty jsou dále seskupeny následovně:

  1. Skupina A sestávající z přístavu A a horní části přístavu C.
  2. Skupina B sestávající z přístavu B a spodní části přístavu C.

K dispozici je osm datových linek (D0 – D7) (s 8bitovou vyrovnávací pamětí) pro čtení/zápis dat do portů nebo řídicího registru ve stavu RD (pin 5) a WR (pin 36), které jsou aktivní -nízké signály pro operace čtení a zápisu. Adresní řádky A 1 a A 0 umožňují přístup k datovému registru pro každý port nebo řídicí registr, jak je uvedeno níže:

A 1 A 0 Port vybrán
0 0 přístav A.
0 1 port B
1 0 přístav C.
1 1 kontrolní registr

Výběr čipu řídicího signálu CS (pin 6) se používá k povolení čipu 8255. Jedná se o aktivní nízký signál, tj. Když je CS = 0, je 8255 povolen. Vstup RESET (kolík 35) je připojen k řádku RESET systému jako 8085, 8086 atd., Takže když je systém resetován, všechny porty jsou inicializovány jako vstupní řádky. To se provádí, aby se zabránilo zničení 8255 a/nebo jakéhokoli připojeného periferního zařízení v důsledku nesouladu nastavení směru portu. Jako příklad zvažte vstupní zařízení připojené k 8255 na portu A. Pokud z předchozí operace je port A inicializován jako výstupní port a pokud 8255 není resetován před použitím aktuální konfigurace, pak existuje možnost poškození buď připojené vstupní zařízení nebo 8255 nebo obojí, protože 8255 i připojené zařízení budou odesílat data.

Řídicí registr (nebo řídicí logika nebo registr příkazových slov) je 8bitový registr používaný k výběru provozních režimů a označení vstupů/výstupů portů.

Provozní režimy 8255

K dispozici jsou dva základní provozní režimy 8255:

  • Bit Set/Reset mode (režim BSR).
  • Vstupní/výstupní režim (režim I/O).

Tyto dva režimy jsou vybrány na základě hodnoty přítomné na D 7 bitu registru řídicích slov. Když D 7 = 1, 8255 pracuje v režimu I/O a když D 7 = 0, pracuje v režimu BSR.

Bit Set/Reset (BSR) režim

Režim Bit Set/Reset (BSR) je k dispozici pouze na portu C. Každý řádek portu C (PC 7 - PC 0 ) lze nastavit nebo resetovat zapsáním vhodné hodnoty do registru řídicích slov. Režim BSR a režim I/O jsou nezávislé a výběr režimu BSR neovlivňuje provoz ostatních portů v režimu I/O.

Režim 8255 BSR
  • D 7 bitů je vždy 0 pro režim BSR.
  • Bity D 6 , D 5 a D 4 nejsou bity péče.
  • Bity D 3 , D 2 a D 1 se používají k výběru kolíku portu C.
  • Bit D 0 slouží k nastavení/resetování vybraného pinu portu C.

Výběr kolíku portu C je určen následujícím způsobem:

D3 D2 D1 Byl vybrán bit/pin portu C.
0 0 0 PC 0
0 0 1 PC 1
0 1 0 PC 2
0 1 1 PC 3
1 0 0 PC 4
1 0 1 PC 5
1 1 0 PC 6
1 1 1 PC 7

Pokud je třeba nastavit PC 5 , pak v řídicím slově

  1. Protože je to režim BSR, D 7 = '0' .
  2. Protože D 4 , D 5 , D 6 nejsou použity, předpokládejme, že jsou ' 0' .
  3. Musí být vybrán PC 5 , tedy D 3 = '1', D 2 = '0', D 1 = '1' .
  4. Je třeba nastavit PC 5 , tedy D0 = '1' .

Takže podle výše uvedených hodnot bude 0B (Hex) načteno do řídicího slovního registru (CWR).

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 1 0 1 1

Vstupní/výstupní režim

Tento režim je vybrán, když je D 7 bitů registru řídicího slova 1. Existují tři režimy I/O:

  1. Režim 0 - Jednoduché I/O
  2. Režim 1 - Strobed I/O
  3. Režim 2 - Strobed Obousměrné I/O

Ovládací formát Word

I/O Control Word Format
  • D 0 , D 1 , D 3 , D 4 jsou přiřazeny pro port C nižší, port B, port C horní a port A. Když jsou tyto bity 1 , odpovídající port funguje jako vstupní port. Například pokud D 0 = D 4 = 1, pak nižší port C a port A fungují jako vstupní porty. Pokud jsou tyto bity 0 , pak odpovídající port funguje jako výstupní port. Například pokud D 1 = D 3 = 0, pak port B a horní port C fungují jako výstupní porty.
  • D 2 se používá pro výběr režimu skupiny B (port B a spodní port C). Když D 2 = 0, je vybrán režim 0 a když D 2 = 1, je vybrán režim 1.
  • D 5 a D 6 se používají pro výběr režimu skupiny A (port A a horní port C). Výběr se provádí následovně:
D 6 D 5 Režim
0 0 0
0 1 1
1 X 2
  • Protože se jedná o I/O režim, D 7 = 1.

Pokud například port B a horní port C musí být inicializovány jako vstupní porty a dolní port C a port A jako výstupní porty (vše v režimu 0):

  1. Protože se jedná o I/O režim, D 7 = 1.
  2. Bity výběru režimu, D2, D5, D6, jsou všechny 0 pro provoz v režimu 0.
  3. Port B a horní port C by měly fungovat jako vstupní porty, tedy D 1 = D 3 = 1.
  4. Port A a spodní port C by měly fungovat jako výstupní porty, tedy D 4 = D 0 = 0.

Proto pro požadovanou operaci bude muset být registr řídicího slova načten "10001010" = 8A (hex) .

Režim 0 - jednoduché I/O

V tomto režimu mohou být porty použity pro jednoduché I/O operace bez handshaking signálů. Port A, port B zajišťují jednoduchou I/O operaci. Obě poloviny portu C lze použít buď společně jako další 8bitový port, nebo je lze použít jako samostatné 4bitové porty. Protože dvě poloviny portu C jsou nezávislé, mohou být použity tak, že jedna polovina je inicializována jako vstupní port, zatímco druhá polovina je inicializována jako výstupní port.

Funkce vstupu/výstupu v režimu 0 jsou následující:

  1. Výstupní porty jsou zajištěny.
  2. Vstupní porty jsou ukládány do vyrovnávací paměti, nikoli západky.
  3. Porty nemají funkci handshake ani přerušení.
  4. Se 4 porty je možné 16 různých kombinací I/O.

„Západka“ znamená, že bity jsou vloženy do paměťového registru (pole klopných obvodů), který udržuje svou výstupní konstantu, i když se vstupy po zablokování změní.

Výstupy 8255 jsou blokovány tak, aby obsahovaly poslední zapsaná data. Je to nutné, protože data zůstávají na sběrnici pouze jeden cyklus. Takže bez blokování by se výstupy staly neplatnými, jakmile skončí cyklus zápisu.

Vstupy nejsou zablokovány, protože CPU musí pouze přečíst jejich aktuální hodnoty a poté uložit data do registru nebo paměti CPU, pokud je třeba na ně později odkazovat. Pokud se při čtení portu změní vstup, pak může být výsledek neurčitý.

Režim 0 - vstupní režim

  • Ve vstupním režimu získává 8255 data z externích periferních portů a CPU čte přijatá data prostřednictvím své datové sběrnice.
  • CPU nejprve vybere čip 8255 snížením CS. Poté pomocí řádků A 0 a A 1 vybere požadovaný port .
  • CPU poté vydá signál RD ke čtení dat z externího periferního zařízení prostřednictvím systémové datové sběrnice.

Režim 0 - výstupní režim

  • Ve výstupním režimu CPU odesílá data na 8255 prostřednictvím systémové datové sběrnice a poté externí periferní porty přijímají tato data přes port 8255.
  • CPU nejprve vybere čip 8255 snížením CS. Poté vybere požadovaný port pomocí řádků A 0 a A 1 .
  • CPU poté vydá signál WR pro zápis dat na vybraný port prostřednictvím systémové datové sběrnice. Tato data pak přijímá externí periferní zařízení připojené k vybranému portu.

Režim 1 - Strobovaný režim vstupu/výstupu

Pokud chceme použít port A nebo port B pro handshake (strobovaný) vstup nebo výstup, inicializujeme tento port v režimu 1 (port A a port B lze inicializovat tak, aby fungovaly v různých režimech, tj. Např. Port A může pracovat v režimu 0 a port B v režimu 1). Některé z pinů portu C fungují jako linky handshake.

Pro port B v tomto režimu (bez ohledu na to, zda funguje jako vstupní port nebo výstupní port), piny PC0, PC1 a PC2 fungují jako linky handshake.

Pokud je port A inicializován jako vstupní port režimu 1, pak PC3, PC4 a PC5 fungují jako signály handshake. Piny PC6 a PC7 jsou k dispozici pro použití jako vstupní/výstupní linky.

Režim 1, který podporuje handshaking, má následující funkce:

  1. Dva porty, tj. Port A a B, lze použít jako 8bitové I/O porty.
  2. Každý port používá tři řádky portu c jako signál handshake a zbývající dva signály lze použít jako I/O porty.
  3. Logika přerušení je podporována.
  4. Vstupní a výstupní data jsou blokována.

Vstupní signály handshaking

1. IBF (Input Buffer Full) - Je to výstup indikující, že vstupní západka obsahuje informace.
2. STB (strobovaný vstup) - vstup stroboskopu načte data do západky portu, která uchovává informace, dokud nejsou vloženy do mikroprocesoru pomocí instrukce IN.
3. INTR (požadavek na přerušení) - Je to výstup, který požaduje přerušení. Pin INTR se stane logikou 1, když se vstup STB vrátí na logiku 1, a vymaže se, když jsou data vstupována z portu mikroprocesorem.
4. INTE (povolení přerušení) - není to ani vstup, ani výstup; je to interní bit naprogramovaný přes bitovou pozici portu PC4 (port A) nebo PC2 (port B).

Výstup signálů handshaking

1. OBF (Output Buffer Full) - Je to výstup, který klesá vždy, když jsou data výstupu (OUT) do západky portu A nebo B. Tento signál je nastaven na logickou hodnotu 1, kdykoli se impuls ACK vrátí z externího zařízení.
2. ACK (Acknowledge)-Způsobí, že se pin OBF vrátí na logickou úroveň 1. Signál ACK je odpovědí z externího zařízení, což znamená, že přijal data z portu 82C55A.
3. INTR (požadavek na přerušení) - Je to signál, který často přeruší mikroprocesor, když externí zařízení přijme data prostřednictvím signálu. tento pin je kvalifikován interním bitem INTE (povolení přerušení).
4. INTE (povolení přerušení) - není to ani vstup, ani výstup; je to interní bit naprogramovaný tak, aby povoloval nebo zakazoval pin INTR. Bit INTE A je naprogramován pomocí bitu PC6 a INTE B je naprogramován pomocí bitu PC2.

Režim 2 - Strobovaný režim obousměrného vstupu/výstupu

V tomto režimu lze inicializovat pouze port A. Port A lze použít pro obousměrný přenos dat handshake . To znamená, že data lze zadávat nebo vydávat na stejných osmi řádcích (PA0 - PA7). Piny PC3 - PC7 se používají jako linky handshake pro port A. Zbývající piny portu C (PC0 - PC2) lze použít jako vstupní/výstupní linky, pokud je skupina B inicializována v režimu 0 nebo jako handshaking pro port B, pokud je skupina B inicializováno v režimu 1. V tomto režimu lze 8255 použít k rozšíření systémové sběrnice na podřízený mikroprocesor nebo k přenosu datových bytů do az řadiče disketové jednotky . Pro udržení správného toku dat a synchronizace mezi vysílačem dat a přijímačem jsou k dispozici potvrzovací a podávací signály.

Reference

externí odkazy