Intel 8255 Programmable Peripheral Interface (PPI) var en nøglekomponent i at bygge bro mellem mikroprocessorer og eksterne enheder i de tidlige dage af digitale systemer. Med alsidige I/O-porte, flere driftstilstande og nem programmering muliggjorde 8255 pålidelig kommunikation med skærme, sensorer og controllere, hvilket gør den nyttig i både uddannelse og industri.

Oversigt over 8255 Programmerbar perifer grænseflade (PPI)
Intel 8255 PPI-chippen er en meget brugt I/O-chip designet til at forbinde mikroprocessorer med eksterne enheder. Det fungerer som en kommunikationsbro for perifere enheder som ADC'er, DAC'er, tastaturer og skærme. Den understøtter både direkte og afbrydelsesdrevet I/O og giver fleksibilitet i systemdesignet. Med tre 8-bit tovejsporte (A, B, C) leverer den 24 konfigurerbare I/O-linjer. Dens omkostningseffektivitet og kompatibilitet med processorer som Intel 8085/8086 gjorde den til en fast bestanddel i tidlige computersystemer, træningssæt og industrielle controllere.
Funktioner af 8255 PPI-chip
• Programmerbar grænseflade – Konfigurerbar via softwareinstruktioner for at tilpasse sig enheder som skærme, sensorer og inputmoduler.
• Tre 8-bit porte – Port A, B og C giver 24 linjer, der kan fungere som input eller output.
• Flere driftstilstande –
Mode 0: Enkel input/output uden håndtryk.
Tilstand 1: Stryg I/O med håndtrykssignaler til synkroniseret kommunikation.
Tilstand 2: Tovejs dataoverførsel med håndtryk (kun på port A).
• Bitindstilling/nulstilling (BSR) – Port C-bits kan indstilles individuelt eller ryddes til kontrol-/statusapplikationer.
• Fleksibel gruppering – Porte kan opdeles i 8-bit eller 4-bit grupper.
• TTL-kompatibilitet – Nem integration med standard digitale IC'er.
• Uafhængige kontrolregistre – Hver port kan fungere separat, i forskellige tilstande eller retninger.
Pinout af 8255 PPI-chip

| Pin nr. | Gruppe | Signal | Beskrivelse |
|---|---|---|---|
| 1-8 | Havn A | PA0-PA7 | 8-bit I/O-port til generelle formål |
| 9–16 | Havn C | PC0-PC7 | Opdelt i PC0-PC3 (nederst) og PC4-PC7 (øvre); bruges som I/O- eller håndtrykslinjer |
| 17–24 | Havn B | PB0–PB7 | 8-bit I/O-port til generelle formål |
| 25 | Kontrol | CS' | Valg af chip (aktiv lav) |
| 26 | Strøm | Vcc | +5 V forsyning |
| 27 | Kontrol | RD' | Læs aktiver |
| 28 | Kontrol | WR' | Aktiver skrivning |
| 29 | Kontrol | NULSTIL | Nulstiller alle porte til inputtilstand |
| 30–37 | Databus | D0-D7 | Overfører data/kommandoer mellem CPU og 8255 |
| 38–39 | Adress pins | A0, A1 | Vælg interne registre/porte: 00=Port A, 01=Port B, 10=Port C, 11=Kontrol |
| 40 | Jord | GND | Reference til grunde |
Arkitektur af 8255 PPI-chip

| Funktionel blok | Beskrivelse |
|---|---|
| Data Bus Buffer | Fungerer som en grænseflade mellem CPU'ens tovejsdatabus (D7–D0) og den interne 8-bit databus i 8255. Den gemmer og overfører midlertidigt data mellem CPU'en og interne registre eller porte. |
| Læse-/skrivekontrollogik | Styrer al kommunikation mellem CPU'en og 8255. Den fortolker styresignaler såsom RD, WR, A0, A1, CS og RESET for at bestemme operationstypen (læse, skrive eller styre) og vælger den korrekte port eller kontrolregister. |
| Kontrollogik (dekoder) | Afkoder kontrolordet sendt af CPU'en for at konfigurere portene i forskellige tilstande (Mode 0, 1 eller 2) eller i Bit Set/Reset (BSR) tilstand. Det bestemmer, hvordan hver port skal fungere - som input, output eller håndtryk. |
| Gruppe A-kontrol | Styrer port A (8 bit: PA7–PA0) og øvre port C (4 bit: PC7–PC4). Den understøtter tilstande 0, 1 og 2, hvilket giver mulighed for simpel I/O, håndtryk I/O og tovejs dataoverførsel |
| Gruppe B-kontrol | Styrer port B (8 bit: PB7–PB0) og nedre port C (4 bit: PC3–PC0). Den understøtter tilstand 0 og 1, hvilket tillader grundlæggende input/output eller håndtryksstyrede operationer. |
| Havn A | En 8-bit I/O-port, der kan fungere som input eller output afhængigt af tilstandskonfigurationen. Understøtter tilstande 0-2 under gruppe A-kontrol. |
| Havn B | En anden**8-bit I/O-port** til dataoverførsel. Fungerer under gruppe B-kontrol og understøtter tilstande 0 og 1. |
| Havn C | En opdelt 8-bit port opdelt i to 4-bit grupper: Øvre (PC7-PC4) og Nedre (PC3-PC0). Disse kan fungere som uafhængige I/O-porte, kontrollinjer eller håndtrykssignaler. Individuelle bits kan også styres ved hjælp af Bit Set/Reset (BSR)-tilstand. |
| Intern databus (8-bit) | Forbinder alle interne blokke i 8255 og overfører data og kontroloplysninger mellem CPU, kontrollogik og porte. |
| Strømforsyning | Chippen fungerer med en +5V DC-forsyning og GND-forbindelse til at forsyne hele kredsløbet. |
Driftstilstande og arbejdsprincip for 8255 PPI-chip
Intel 8255 fungerer som en programmerbar grænseflade mellem CPU'en og eksterne enheder, der oversætter busoperationer til parallelle dataoverførsler. Dens drift styres af initialiseringstrin og valgbare tilstande:
Nulstil tilstand
Ved opstart eller nulstilling er alle porte (A, B og C) som standard i indgangstilstand for at undgå at beskadige eksterne enheder med utilsigtede udgange.
Initialisering
CPU'en skal sende et kontrolord, der konfigurerer hver port som input/output og vælger en af de fire driftstilstande. Indtil dette er gjort, forbliver porte inaktive.
Driftstilstande
bit sæt/nulstilling (BSR) tilstand
• Gælder kun for port C.
• Gør det muligt at indstille eller rydde individuelle bits til kontrol-/statusopgaver.
Mode 0 – Simpel I/O
• Grundlæggende input/output uden håndtryk.
• Bruges til enkle overførsler såsom LED'er, kontakter og displays.
Mode 1 – Strøget I/O
• Tilføjer håndtrykssignaler (STB, ACK, IBF, OBF) via port C.
• Sikrer synkroniseret CPU-perifer ↔ dataoverførsel.
Mode 2 – Tovejs I/O
• Kun tilgængelig på port A.
• Understøtter tovejsoverførsel med håndtrykskontrol, hvilket er nyttigt til højhastigheds- eller asynkrone enheder.
Læse-/skriveoperationer
• Skrivning: CPU'en placerer data på systembussen, og 8255'eren afkoder adresselinjerne (A0, A1) for at dirigere den til den korrekte ports udgangslås.
• Læs: Eksterne enheder lægger data på portlinjer, som 8255 låser og gør tilgængelige for CPU'en under en læsekommando.
Synkronisering
• I tilstand 0 sker dataoverførsler direkte uden håndtryk.
• I tilstand 1 og 2 koordinerer håndtrykssignaler fra port C parathed og accept, hvilket forhindrer tab af data under højhastigheds- eller asynkrone overførsler.
Grænsefladeovervejelser om 8255 PPI-chip
Ved design af systemer med 8255 sikrer omhyggelig grænseflade pålidelighed og forhindrer beskadigelse af både chippen og eksterne enheder:
• Standard inputtilstand – Ved nulstilling er alle porte som standard input. Dette undgår konflikter, men betyder også, at output er inaktive, indtil de er konfigureret. CPU'en skal altid sende et kontrolord for korrekt at definere retning og tilstand, før den forsøger at kommunikere.
• Udgangsdrevgrænser – 8255's porte kan kun hente eller synke begrænset strøm (et par milliampere). Direkte kørsel med tunge belastninger som lamper, solenoider eller relæer er usikkert. I stedet bruges buffer- eller driver-IC'er såsom ULN2803 (Darlington-array) eller åbne kollektorporte som 7406 almindeligvis. Disse giver højere strømkapacitet og beskytter PPI.
• Motorstyring – For DC-motorer eller stepmotorer bør 8255-portene ikke tilsluttes direkte. I stedet skal udgange føres gennem transistortrin eller H-bro-driverkredsløb. Dette arrangement tillader tovejs strømflow, samtidig med at PPI isoleres fra induktive spændingsspidser.
• AC-belastningsskift – Grænseflade med AC-apparater kræver isolering af sikkerhedsmæssige årsager. Mekaniske relæer eller solid-state-relæer (SSR'er), der drives gennem buffertrin, sikrer, at 8255 kun håndterer styresignaler, mens den faktiske højspændingsbelastning skiftes sikkert eksternt.
• Port C-begrænsninger – Port C's bits er ikke altid frit anvendelige som generel I/O. I tilstand 1 og 2 er flere ben (f.eks. STB, ACK, IBF, OBF) automatisk reserveret til håndtrykskontrol. Du skal tage højde for disse reserverede linjer for at undgå konflikter, når du blander generel I/O med håndtryk.
Fordele ved 8255 PPI Chip
• CPU-kompatibilitet – 8255 fungerer problemfrit med processorer som Intel 8085, 8086 og deres kompatible. Dens design matcher standard busprotokoller, hvilket gør integrationen ligetil uden ekstra limlogik.
• Fleksibel portkonfiguration – Med tre 8-bit porte (A, B, C) kan brugere konfigurere dem som input, output eller en blanding afhængigt af applikationen. Muligheden for at skifte mellem simpel I/O (tilstand 0) og håndtryksdrevet kommunikation (tilstand 1 og 2) gør det muligt for den samme chip at håndtere en lang række opgaver.
• Enkeltforsyningsdrift – 8255 fungerer fra en standard +5 V-forsyning og er nem at forsyne i TTL-baserede systemer. Der kræves ingen specielle regulatorer eller flere spændingsniveauer, hvilket forenkler kortdesignet.
• Pålidelig parallel dataoverførsel – Chippen giver stabil og forudsigelig 8-bit parallel kommunikation, hvilket reducerer timing-usikkerheder. Denne pålidelighed gør den velegnet til at køre displays, aflæse sensorer og styre styresignaler i faktiske systemer.
• Uddannelsesmæssig værdi – Fordi 8255 er veldokumenteret og bredt tilgængelig, har den været et vigtigt undervisningsværktøj i mikroprocessorlaboratorier og træningssæt. Du kan hurtigt forstå I/O-grænsefladekoncepter gennem praktiske eksperimenter med denne enhed.
Anvendelser af 8255 PPI-chip
• Uddannelsessystemer – Træningssæt og laboratorietavler inkluderer ofte 8255 for at demonstrere perifere grænsefladekoncepter. Du kan øve dig i at programmere forskellige tilstande og observere faktisk interaktion med eksterne enheder.
• Skærmkontrol – Chippen driver visuelle outputenheder såsom syv-segment LED'er, LCD-moduler og alfanumeriske paneler. Med sine mange I/O-linjer kan den opdatere skærme eller sende kontrolkommandoer til fører-IC'er.
• Tastaturgrænseflade – Matrix-tastaturer i tidlige terminaler og personlige computere blev ofte scannet ved hjælp af 8255. Ved at konfigurere nogle linjer som rækkedrivere og andre som kolonnesensorer, registrerede den effektivt tastetryk.
• Motorstyring – Stepmotorer og DC-motorer kan styres, når 8255 er parret med transistortrin, Darlington-arrays eller H-broer. Dette gjorde det nyttigt i robotteknologi, positioneringssystemer og automatiseringsprojekter.
• Dataindsamling – Når den var tilsluttet ADC'er (analog-til-digital-konvertere) og DAC'er (digital-til-analog-konvertere), gav 8255 en komplet grænseflade til måle- og kontrolopgaver. Dette gjorde det muligt for mikroprocessorer at håndtere signaler i videnskabeligt og industrielt udstyr.
• Industriel automatisering – 8255 blev brugt til styring af trafiksignaler, elevatorlogik og procesovervågningspaneler. Dens evne til pålideligt at administrere flere ind- og udgange gjorde den til en billig løsning til indlejrede kontrolsystemer.
• Retro-Computing – Klassiske maskiner som IBM PC/XT- og MSX-computere anvendte 8255 til perifere grænseflader. Det blev også brugt i printere og udvidelseskort, hvilket cementerede sin plads i den tidlige personlige computerhistorie.
8255 PPI-chipsammenligning med andre PPI'er
8255 vs. 8155

Intel 8155 kombinerer flere funktioner i én pakke: den tilbyder en lille blok statisk RAM, en programmerbar timer og generelle I/O-porte. Dette gjorde den velegnet til kompakte systemer, hvor der var behov for hukommelse og tidsstyring. I modsætning hertil fokuserer 8255 udelukkende på programmerbar I/O uden indbygget hukommelse eller timing. Dens enklere design gjorde det billigere og nemmere at programmere, når applikationen ikke krævede integreret RAM eller timere.
8255 vs. 8259

8259 Programmable Interrupt Controller tjener et helt andet formål: at håndtere hardwareafbrydelser for at hjælpe CPU'en med at reagere hurtigt på eksterne hændelser. Mens 8255 håndterer parallel I/O-dataoverførsel, koordinerer 8259 afbrydningssignaler. I mange mikroprocessorbaserede systemer blev de to chips brugt sammen, 8255 til grænseflade med enheder som tastaturer og skærme og 8259 til styring af afbrydelsesanmodninger genereret af disse enheder.
8255 vs. moderne GPIO-ekspandere

Nutidens systemer bruger ofte I²C- eller SPI-baserede GPIO-ekspandere (såsom MCP23017 eller PCF8574). Disse enheder giver yderligere I/O-ben med færre forbindelser, hvilket sparer plads på kortet og reducerer antallet af ben på CPU'en. De fungerer dog serielt, hvilket kan være langsommere sammenlignet med den direkte parallelle adgang til 8255. Mens 8255 kræver flere buslinjer, giver dens parallelle struktur hurtigere overførsler og gør den meget værdifuld i uddannelsesmiljøer, hvor direkte kontrol af individuelle stifter og forståelse af bustiming er vigtige for læring.
Fejlfinding og almindelige problemer
Arbejde med 8255 kan nogle gange føre til systemfejl, hvis designreglerne ikke følges nøje. Almindelige problemer og løsninger omfatter:
• Ikke-initialiserede porte – Efter nulstilling er alle porte som standard i inputtilstand. Hvis CPU'en ikke sender et korrekt kontrolord, forbliver output inaktive eller opfører sig uforudsigeligt. Programmer altid kontrolregistret, før du forsøger at læse eller skrive data.
• Forkerte kontrolord – Forkert konfigurerede kontrolord kan tildele de forkerte retninger eller tilstande til porte, hvilket låser forventede signaler ude. Krydstjek kontrolordværdier i forhold til dataarktabeller for at sikre korrekte bitindstillinger.
• Håndtryksfejl – I tilstand 1 og 2 giver port C de nødvendige håndtrykssignaler (STB, ACK, IBF, OBF). Manglende, forkert forbundne eller fejlfortolkede forbindelser fører til standsede eller mistede overførsler. Kontroller omhyggeligt både ledningerne og forventningerne til det logiske niveau for tilsluttede enheder.
• Overbelastningsudgange – Hver portstift kan kun håndtere små strømme. Det er muligt at køre LED'er direkte med modstande, men motorer, relæer og lamper kræver eksterne buffertrin såsom transistorarrays eller driver-IC'er. Hvis du ignorerer denne grænse, risikerer du permanent skade på chippen.
• Buskonflikter – Hvis flere enheder forsøger at drive systembussen på samme tid, kan der opstå datakorruption eller hardwareskade. Korrekt busvoldgift og brug af aktiveringssignaler (RD', WR', CS') forhindrer dette problem.
• Fejlfindingsværktøjer – Når problemerne fortsætter, hjælper testudstyr med at isolere fejl. Logiske analysatorer kan bekræfte timing og styresignaler, mens oscilloskoper kan kontrollere, om problemet opstår på grund af støjende hardwareledninger eller forkert softwareinitialisering.
Konklusion
Intel 8255 PPI er fortsat en hjørnesten i mikroprocessorgrænsefladen. Selvom det stort set er erstattet af moderne GPIO-ekspandere og indbygget mikrocontroller I/O, fungerer det fortsat som et aktivt undervisningsværktøj. Dens klarhed i at demonstrere parallel dataoverførsel, portkonfiguration og håndtryk gør den uvurderlig for alle.
Ofte stillede spørgsmål [FAQ]
Hvad er kontrolordet i 8255, og hvorfor er det vigtigt?
Kontrolordet er en 8-bit instruktion sendt af CPU'en for at konfigurere 8255's porte og tilstande. Uden det forbliver alle porte i deres standardinputtilstand. Den definerer, om hver port fungerer som input eller output og vælger mellem tilstande 0, 1, 2 eller Bit Set/Reset.
Kan 8255 direkte drive motorer eller relæer?
Nej. 8255-udgangene kan kun hente eller sænke et par milliampere, hvilket er utilstrækkeligt til motorer eller relæer. Eksterne driverkredsløb, såsom transistorarrays eller H-broer, skal bruges til at håndtere højere strøm sikkert.
Hvorfor bruges 8255 stadig i undervisningen i dag?
8255 giver en klar, praktisk måde at lære om mikroprocessor-I/O, kontrolord og parallel dataoverførsel. Dens enkle arkitektur hjælper eleverne med at forstå kernebegreber, før de går videre til moderne mikrocontrollere.
Hvad sker der, hvis du bruger port C i håndtrykstilstande?
I tilstand 1 og 2 er nogle Port C-linjer reserveret til håndtrykssignaler (som STB, ACK, IBF, OBF). Disse stifter kan ikke bruges som generelle I/O i disse tilstande, som du skal tage højde for for at undgå konflikter.
Hvordan adskiller 8255 sig fra moderne GPIO-ekspandere?
I modsætning til I²C/SPI-udvidelser, der bruger seriel kommunikation, fungerer 8255 med en parallel bus, hvilket muliggør hurtigere overførsler, men kræver flere ben. Dette gør 8255 mindre pladsbesparende, men værdifuld til faktisk styring og indlæring af bustiming.