De Intel 8255 Programmable Peripheral Interface (PPI) was een belangrijk onderdeel bij het overbruggen van microprocessors met externe apparaten tijdens de begindagen van digitale systemen. Met veelzijdige I/O-poorten, meerdere bedrijfsmodi en programmeergemak maakte de 8255 betrouwbare communicatie met displays, sensoren en controllers mogelijk, waardoor hij zowel in het onderwijs als in de industrie nuttig is.

8255 Overzicht van programmeerbare perifere interface (PPI)
De Intel 8255 PPI-chip is een veelgebruikte I/O-chip die is ontworpen om microprocessors te verbinden met externe apparaten. Het fungeert als een communicatiebrug voor randapparatuur zoals ADC's, DAC's, toetsenborden en beeldschermen. Het ondersteunt zowel directe als interrupt-gestuurde I/O en biedt flexibiliteit in het systeemontwerp. Met drie 8-bits bidirectionele poorten (A, B, C) levert het 24 configureerbare I/O-lijnen. De kosteneffectiviteit en compatibiliteit met processors zoals de Intel 8085/8086 maakten het een hoofdbestanddeel van vroege computersystemen, trainingskits en industriële controllers.
Eigenschappen van 8255 PPI-Spaander
• Programmeerbare interface – Configureerbaar via software-instructies om aan te passen aan apparaten zoals displays, sensoren en invoermodules.
• Drie 8-bits poorten – poorten A, B en C bieden 24 lijnen die kunnen fungeren als invoer of uitvoer.
• Meerdere bedrijfsmodi –
Modus 0: Eenvoudige invoer/uitvoer zonder handshaking.
Modus 1: Strobobed I/O met handshake-signalen voor gesynchroniseerde communicatie.
Modus 2: Bidirectionele gegevensoverdracht met handshaking (alleen op poort A).
• Bit Set/Reset (BSR) – Poort C-bits kunnen afzonderlijk worden ingesteld of gewist voor besturings-/statustoepassingen.
• Flexibele groepering – Poorten kunnen worden opgesplitst in 8-bits of 4-bits groepen.
• TTL-compatibiliteit – Eenvoudige integratie met standaard digitale IC's.
• Onafhankelijke controleregisters – Elke poort kan afzonderlijk, in verschillende modi of richtingen werken.
Pinout van 8255 PPI-chip

| Speld nr. | Groep | Signaal | Beschrijving |
|---|---|---|---|
| 1-8 | Haven A | PA0-PA7 | 8-bits I/O-poort voor algemeen gebruik |
| 9-16 | Poort C | PC0-PC7 | Opgesplitst in PC0-PC3 (onder) en PC4-PC7 (boven); gebruikt als I/O- of handshake-lijnen |
| 17-24 | Haven B | PB0-PB7 | 8-bits I/O-poort voor algemeen gebruik |
| 25 | Besturing | CS' | Chip selecteren (actief laag) |
| 26 | Vermogen | VCC | +5 V voeding |
| 27 | Besturing | RD' | Lezen inschakelen |
| 28 | Besturing | WR' | Schrijven inschakelen |
| 29 | Besturing | RESETTEN | Zet alle poorten terug naar de invoerstatus |
| 30-37 | Databus | D0-D7 | Overdracht van gegevens/opdrachten tussen CPU en 8255 |
| 38-39 | Adres Pins | A0, A1 | Selecteer interne registers/poorten: 00=Poort A, 01=Poort B, 10=Poort C, 11=Besturing |
| 40 | Grond | GND | Referentie van de grond |
Architectuur van 8255 PPI-chip

| Functioneel blok | Beschrijving |
|---|---|
| De Buffer van de gegevensbus | Fungeert als een interface tussen de bidirectionele databus van de CPU (D7-D0) en de interne 8-bits databus van de 8255. Het slaat tijdelijk gegevens op en verzendt deze tussen de CPU en interne registers of poorten. |
| Besturingslogica voor lezen/schrijven | Beheert alle communicatie tussen de CPU en de 8255. Het interpreteert besturingssignalen zoals RD, WR, A0, A1, CS en RESET om het bewerkingstype (lezen, schrijven of besturingselement) te bepalen en selecteert de juiste poort of het juiste besturingsregister. |
| Besturingslogica (decoder) | Decodeert het controlewoord dat door de CPU wordt verzonden om de poorten in verschillende modi (modus 0, 1 of 2) of in Bit Set/Reset (BSR)-modus te configureren. Het bepaalt hoe elke poort zal werken - als invoer, uitvoer of handshake. |
| Groep A Controle | Bedient poort A (8 bits: PA7-PA0) en bovenste poort C (4 bits: PC7-PC4). Het ondersteunt modi 0, 1 en 2, waardoor eenvoudige I/O, handshake I/O en bidirectionele gegevensoverdracht mogelijk zijn |
| Groep B Controle | Bedient poort B (8 bits: PB7-PB0) en onderste poort C (4 bits: PC3-PC0). Het ondersteunt modi 0 en 1, waardoor basisinvoer/uitvoer of handshake-gestuurde bewerkingen mogelijk zijn. |
| Haven A | Een 8-bits I/O-poort die kan functioneren als invoer of uitvoer, afhankelijk van de modusconfiguratie. Ondersteunt modi 0-2 onder Groep A-controle. |
| Haven B | Nog een**8-bits I/O-poort** voor gegevensoverdracht. Werkt onder Groep B-besturing en ondersteunt modi 0 en 1. |
| Poort C | Een gesplitste 8-bits poort verdeeld in twee 4-bits groepen: Boven (PC7-PC4) en Lager (PC3-PC0). Deze kunnen fungeren als onafhankelijke I/O-poorten, besturingslijnen of handshake-signalen. Individuele bits kunnen ook worden aangestuurd met behulp van de Bit Set/Reset (BSR)-modus. |
| Interne databus (8-bits) | Verbindt alle interne blokken van de 8255 en draagt gegevens en besturingsinformatie over tussen de CPU, besturingslogica en poorten. |
| Stroomvoorziening | De chip werkt met een +5V DC-voeding en GND-aansluiting om het hele circuit van stroom te voorzien. |
Bedrijfsmodi en werkingsprincipe van 8255 PPI-chip
De Intel 8255 dient als een programmeerbare interface tussen de CPU en randapparatuur, waarbij busbewerkingen worden vertaald in parallelle gegevensoverdrachten. De werking wordt bepaald door initialisatiestappen en selecteerbare modi:
Status resetten
Bij het opstarten of resetten staan alle poorten (A, B en C) standaard in de invoermodus om beschadiging van randapparatuur met onbedoelde uitgangen te voorkomen.
Initialisatie
De CPU moet een besturingswoord verzenden dat elke poort configureert als invoer/uitvoer en een van de vier bedrijfsmodi selecteert. Totdat dit is gebeurd, blijven poorten inactief.
Bedrijfsmodi
Bit instellen/resetten (BSR) modus
• Geldt alleen voor poort C.
• Maakt het mogelijk om individuele bits in te stellen of vrij te geven voor besturings-/statustaken.
Modus 0 – Eenvoudige I/O
• Basis input/output zonder handshaking.
• Gebruikt voor eenvoudige overdrachten zoals LED's, schakelaars en displays.
Modus 1 – Strobobed I/O
• Voegt handshake-signalen toe (STB, ACK, IBF, OBF) via poort C.
• Zorgt voor gesynchroniseerde gegevensoverdracht van CPU-randapparatuur ↔.
Modus 2 – Bidirectionele I/O
• Alleen beschikbaar op poort A.
• Ondersteunt tweerichtingsoverdracht met handshake-bediening, handig voor snelle of asynchrone apparaten.
Lees-/schrijfbewerkingen
• Schrijven: De CPU plaatst gegevens op de systeembus en de 8255 decodeert de adresregels (A0, A1) om deze naar de uitgang van de juiste poort te leiden.
• Lezen: Externe apparaten zetten gegevens op poortlijnen, die de 8255 vergrendelt en beschikbaar stelt aan de CPU tijdens een leesopdracht.
Synchronisatie
• In modus 0 vindt de gegevensoverdracht direct plaats zonder handdrukken.
• In modi 1 en 2 coördineren handshake-signalen van poort C de gereedheid en acceptatie, waardoor gegevensverlies tijdens snelle of asynchrone overdrachten wordt voorkomen.
Interface-overwegingen van 8255 PPI-chip
Bij het ontwerpen van systemen met de 8255 zorgt een zorgvuldige interface voor betrouwbaarheid en voorkomt schade aan zowel de chip als externe apparaten:
• Standaard invoerstatus – Bij het resetten staan alle poorten standaard op ingangen. Dit voorkomt conflicten, maar betekent ook dat uitvoer inactief is totdat deze is geconfigureerd. De CPU moet altijd een controlewoord verzenden om de richting en modus correct te definiëren voordat hij probeert te communiceren.
• Limieten voor uitgangsaandrijving – De poorten van de 8255 kunnen slechts een beperkte stroom leveren of afnemen (enkele milliampère). Het rechtstreeks aandrijven van zware lasten zoals lampen, solenoïdes of relais is onveilig. In plaats daarvan worden vaak buffer- of driver-IC's gebruikt, zoals de ULN2803 (Darlington-array) of open-collector-poorten zoals 7406. Deze zorgen voor een hogere stroomcapaciteit en beschermen de PPI.
• Motorbesturing – Voor DC-motoren of stappenmotoren mogen de 8255-poorten niet rechtstreeks worden aangesloten. In plaats daarvan moeten de uitgangen via transistortrappen of H-brugdrivercircuits worden geleid. Deze opstelling maakt bidirectionele stroom mogelijk terwijl de PPI wordt geïsoleerd van inductieve spanningspieken.
• AC-belastingsschakeling – Interface met AC-apparaten vereist isolatie voor de veiligheid. Mechanische relais of solid-state relais (SSR's) die door buffertrappen worden aangedreven, zorgen ervoor dat de 8255 alleen stuursignalen verwerkt, terwijl de werkelijke hoogspanningsbelasting veilig extern wordt geschakeld.
• Poort C-beperkingen – De bits van poort C zijn niet altijd vrij bruikbaar als algemene I/O. In de modi 1 en 2 worden automatisch meerdere pinnen (bijv. STB, ACK, IBF, OBF) gereserveerd voor handshake-bediening. U moet rekening houden met deze gereserveerde regels om conflicten te voorkomen bij het mengen van algemene I/O met handschudden.
Voordelen van 8255 PPI-chip
• CPU-compatibiliteit – De 8255 werkt naadloos samen met processors zoals de Intel 8085, 8086 en hun compatibelen. Het ontwerp komt overeen met standaard busprotocollen, waardoor integratie eenvoudig is zonder extra lijmlogica.
• Flexibele poortconfiguratie – Met drie 8-bits poorten (A, B, C) kunnen gebruikers ze configureren als invoer, uitvoer of een mix, afhankelijk van de toepassing. De mogelijkheid om te schakelen tussen eenvoudige I/O (modus 0) en handshake-gestuurde communicatie (modi 1 en 2) zorgt ervoor dat dezelfde chip een breed scala aan taken kan uitvoeren.
• Werking met één voeding – De 8255 werkt op een standaard +5 V-voeding en is eenvoudig aan te sluiten in TTL-gebaseerde systemen. Er zijn geen speciale regelaars of meerdere spanningsniveaus nodig, wat het ontwerp van het bord vereenvoudigt.
• Betrouwbare parallelle gegevensoverdracht – De chip zorgt voor stabiele en voorspelbare 8-bits parallelle communicatie, waardoor timingonzekerheden worden verminderd. Deze betrouwbaarheid maakt het geschikt voor het aansturen van displays, het lezen van sensoren en het beheren van besturingssignalen in bestaande systemen.
• Educatieve waarde – Omdat het goed gedocumenteerd en algemeen beschikbaar is, is de 8255 een belangrijk leermiddel geweest in microprocessorlaboratoria en trainingskits. U kunt snel I/O-interfaceconcepten begrijpen door middel van praktische experimenten met dit apparaat.
Toepassingen van 8255 PPI-chip
• Educatieve systemen – Trainingskits en labboards bevatten vaak de 8255 om concepten voor perifere interface te demonstreren. U kunt oefenen met het programmeren van verschillende modi en de daadwerkelijke interactie met externe apparaten observeren.
• Displaycontrole – De chip stuurt visuele uitvoerapparaten aan, zoals zevensegments LED's, LCD-modules en alfanumerieke panelen. Met zijn meerdere I/O-lijnen kan het displays vernieuwen of besturingscommando's naar driver-IC's sturen.
• Toetsenbordinterface – Matrixtoetsenborden in vroege terminals en pc's werden vaak gescand met de 8255. Door sommige lijnen te configureren als rijdrivers en andere als kolomsensoren, werden toetsaanslagen efficiënt gedetecteerd.
• Motorbesturing – Stappenmotoren en DC-motoren kunnen worden aangestuurd wanneer de 8255 is gekoppeld aan transistortrappen, Darlington-arrays of H-bruggen. Dit maakte het nuttig in robotica, positioneringssystemen en automatiseringsprojecten.
• Gegevensacquisitie – Bij aansluiting op ADC's (analoog-naar-digitaal-converters) en DAC's (digitaal-naar-analoog-converters) bood de 8255 een complete interface voor meet- en regeltaken. Dit stelde microprocessors in staat om signalen in wetenschappelijke en industriële apparatuur te verwerken.
• Industriële automatisering – De 8255 werd gebruikt bij het regelen van verkeerslichten, liftlogica en procesbewakingspanelen. Het vermogen om meerdere in- en uitgangen betrouwbaar te beheren, maakte het een goedkope oplossing voor embedded besturingssystemen.
• Retro-computing – Klassieke machines zoals de IBM PC/XT en MSX-computers gebruikten de 8255 voor perifere interfaces. Het werd ook gebruikt in printers en uitbreidingskaarten, waardoor het zijn plaats in de vroege geschiedenis van de personal computer verstevigde.
8255 PPI-chip vergelijking met andere PPI's
8255 tegen 8155

De Intel 8155 combineert meerdere functies in één pakket: het biedt een klein blok statisch RAM, een programmeerbare timer en I/O-poorten voor algemeen gebruik. Dit maakte het geschikt voor compacte systemen waar geheugen- en timingcontrole nodig waren. De 8255 daarentegen richt zich volledig op programmeerbare I/O, zonder ingebouwd geheugen of timing. Het eenvoudigere ontwerp maakte het goedkoper en gemakkelijker om te programmeren wanneer de applicatie geen geïntegreerd RAM-geheugen of timers vereiste.
8255 tegen 8259

De 8259 Programmable Interrupt Controller heeft een heel ander doel: het beheren van hardware-interrupts om de CPU te helpen snel te reageren op externe gebeurtenissen. Terwijl de 8255 zorgt voor parallelle I/O-gegevensoverdracht, onderbreken de 8259-coördinaten signalen. In veel op microprocessors gebaseerde systemen werden de twee chips samen gebruikt, 8255 voor interface met apparaten zoals toetsenborden en beeldschermen, en 8259 voor het beheren van de interrupt-verzoeken die door die apparaten werden gegenereerd.
8255 versus moderne GPIO-expanders

De huidige systemen maken vaak gebruik van I²C- of SPI-gebaseerde GPIO-expanders (zoals MCP23017 of PCF8574). Deze apparaten bieden extra I/O-pinnen met minder aansluitingen, waardoor bordruimte wordt bespaard en het aantal pinnen op de CPU wordt verminderd. Ze werken echter serieel, wat langzamer kan zijn in vergelijking met de directe parallelle toegang van de 8255. Hoewel de 8255 meer buslijnen nodig heeft, maakt de parallelle structuur snellere overstappen mogelijk en is het zeer waardevol in educatieve omgevingen, waar directe controle van individuele pinnen en het begrijpen van bustiming belangrijk zijn om te leren.
Problemen oplossen en veelvoorkomende problemen
Werken met de 8255 kan soms leiden tot systeemfouten als de ontwerpregels niet zorgvuldig worden opgevolgd. Veelvoorkomende problemen en oplossingen zijn onder meer:
• Niet-geïnitialiseerde poorten – Na het resetten gaan alle poorten standaard naar de invoermodus. Als de CPU geen correct controlewoord verzendt, blijven de outputs inactief of gedragen ze zich onvoorspelbaar. Programmeer altijd het besturingsregister voordat u probeert gegevens te lezen of te schrijven.
• Onjuiste besturingswoorden – Verkeerd geconfigureerde controlewoorden kunnen de verkeerde richtingen of modi aan poorten toewijzen, waardoor verwachte signalen worden geblokkeerd. Vergelijk de waarden van controlewoorden met gegevensbladtabellen om de juiste bitinstellingen te garanderen.
• Handshake-fouten – In modi 1 en 2 levert poort C de benodigde handshake-signalen (STB, ACK, IBF, OBF). Ontbrekende, verkeerd bedrade of verkeerd geïnterpreteerde verbindingen leiden tot vastgelopen of verloren overdrachten. Controleer zorgvuldig zowel de bedrading als de verwachtingen op logisch niveau van aangesloten apparaten.
• Overbelastingsuitgangen – Elke poortpin kan alleen kleine stroompjes aan. Het rechtstreeks aansturen van LED's is mogelijk met weerstanden, maar motoren, relais en lampen vereisen externe buffertrappen zoals transistorarrays of driver-IC's. Als u deze limiet negeert, bestaat het risico dat de chip permanent beschadigd raakt.
• Busconflicten – Als meerdere apparaten tegelijkertijd proberen de systeembus aan te sturen, kan gegevensbeschadiging of hardwareschade optreden. Een goede busarbitrage en het gebruik van vrijgavesignalen (RD', WR', CS') voorkomen dit probleem.
• Hulpmiddelen voor foutopsporing – Wanneer de problemen aanhouden, helpt testapparatuur bij het isoleren van fouten. Logische analysatoren kunnen timing- en besturingssignalen bevestigen, terwijl oscilloscopen kunnen controleren of het probleem wordt veroorzaakt door luidruchtige hardwarebedrading of onjuiste software-initialisatie.
Conclusie
De Intel 8255 PPI blijft een hoeksteen van microprocessorinterfaces. Hoewel het grotendeels is vervangen door moderne GPIO-expanders en ingebouwde microcontroller-I/O, blijft het dienen als een actief leermiddel. De duidelijkheid bij het demonstreren van parallelle gegevensoverdracht, poortconfiguratie en handshaking maakt het voor iedereen van onschatbare waarde.
Veelgestelde vragen [FAQ]
Wat is het controlewoord in 8255 en waarom is het belangrijk?
Het controlewoord is een 8-bits instructie die door de CPU wordt verzonden om de poorten en modi van de 8255 te configureren. Zonder dit blijven alle poorten in hun standaard invoerstatus. Het definieert of elke poort fungeert als invoer of uitvoer en selecteert tussen modi 0, 1, 2 of Bit Set/Reset.
Kan de 8255 motoren of relais rechtstreeks aandrijven?
Nee. De 8255-uitgangen kunnen slechts een paar milliampère leveren of zinken, wat onvoldoende is voor motoren of relais. Externe drivercircuits, zoals transistorarrays of H-bruggen, moeten worden gebruikt om veilig met hogere stromen om te gaan.
Waarom wordt de 8255 vandaag de dag nog steeds gebruikt in het onderwijs?
De 8255 biedt een duidelijke, praktische manier om meer te weten te komen over microprocessor-I/O, controlewoorden en parallelle gegevensoverdracht. De eenvoudige architectuur helpt studenten de kernconcepten te begrijpen voordat ze overstappen op moderne microcontrollers.
Wat gebeurt er als u poort C gebruikt in handshake-modi?
In modi 1 en 2 zijn sommige Port C-lijnen gereserveerd voor handshake-signalen (zoals STB, ACK, IBF, OBF). Deze pinnen kunnen tijdens die modi niet worden gebruikt als I/O voor algemeen gebruik, waarmee u rekening moet houden om conflicten te voorkomen.
Waarin verschilt de 8255 van moderne GPIO-expanders?
In tegenstelling tot I²C/SPI-expanders die seriële communicatie gebruiken, werkt de 8255 met een parallelle bus, waardoor snellere overdrachten mogelijk zijn, maar er meer pinnen nodig zijn. Dit maakt de 8255 minder ruimtebesparend, maar waardevol voor de daadwerkelijke besturing en het leren van bustiming.