Intel 8255 programuojama periferinė sąsaja (PPI) buvo pagrindinis komponentas sujungiant mikroprocesorius su išoriniais įrenginiais ankstyvosiomis skaitmeninių sistemų dienomis. Su universaliais I/O prievadais, keliais darbo režimais ir paprastu programavimu, 8255 užtikrino patikimą ryšį su ekranais, jutikliais ir valdikliais, todėl jis buvo naudingas tiek švietime, tiek pramonėje.

8255 programuojamos periferinės sąsajos (PPI) apžvalga
Intel 8255 PPI lustas yra plačiai naudojamas I/O lustas, skirtas mikroprocesoriams sujungti su išoriniais įrenginiais. Jis veikia kaip ryšio tiltas periferiniams įrenginiams, tokiems kaip ADC, DAC, klaviatūros ir ekranai. Palaikydamas tiek tiesioginį, tiek pertraukimu valdomą įvestį/išvestį, jis suteikia lankstumo projektuojant sistemą. Su trimis 8 bitų dvikryptiais prievadais (A, B, C), jis užtikrina 24 konfigūruojamas įvesties / išvesties linijas. Dėl ekonomiškumo ir suderinamumo su tokiais procesoriais kaip Intel 8085/8086 jis tapo pagrindiniu ankstyvųjų kompiuterių sistemų, mokymo rinkinių ir pramoninių valdiklių elementu.
8255 PPI lusto savybės
• Programuojama sąsaja – konfigūruojama naudojant programinės įrangos instrukcijas, kad būtų galima pritaikyti prie įrenginių, pvz., ekranų, jutiklių ir įvesties modulių.
• Trys 8 bitų prievadai – A, B ir C prievadai suteikia 24 linijas, kurios gali veikti kaip įvestis arba išvestis.
• Keli darbo režimai –
0 režimas: paprasta įvestis / išvestis be rankos paspaudimo.
1 režimas: Strobed I/O su rankos paspaudimo signalais sinchronizuotam ryšiui.
2 režimas: dvikryptis duomenų perdavimas su rankos paspaudimu (tik A prievade).
• Bitų nustatymas / atstatymas (BSR) – C prievado antgaliai gali būti atskirai nustatyti arba išvalyti valdymo / būsenos programoms.
• Lankstus grupavimas – prievadai gali būti suskirstyti į 8 bitų arba 4 bitų grupes.
• TTL suderinamumas – lengva integracija su standartiniais skaitmeniniais IC.
• Nepriklausomi valdymo registrai – kiekvienas prievadas gali veikti atskirai, skirtingais režimais ar kryptimis.
8255 PPI lusto kontaktas

| Smeigtuko Nr. | Grupė | Signalas | Aprašymas |
|---|---|---|---|
| 1–8 | A uostas | PA0–PA7 | 8 bitų bendrosios paskirties I/O prievadas |
| 9–16 d. | C prievadas | PC0–PC7 | Padalinta į PC0–PC3 (apatinė) ir PC4–PC7 (viršutinė); naudojamos kaip įvesties / išvesties arba rankos paspaudimo linijos |
| 17–24 d. | Prievadas B | PB0–PB7 | 8 bitų bendrosios paskirties I/O prievadas |
| 25 | Valdymas | CS" | Lusto pasirinkimas (aktyvus žemas) |
| 26 | Galia | VCC | +5 V maitinimas |
| 27 | Valdymas | RD" | Skaitymo įgalinimas |
| 28 | Valdymas | WR' | Rašymo įgalinimas |
| 29 | Valdymas | ATSTATYTI | Iš naujo nustato visų prievadų įvesties būseną |
| 30–37 | Duomenų magistralė | D0–D7 | Perduoda duomenis / komandas tarp procesoriaus ir 8255 |
| 38–39 | Adresas Pins | A0, A1 | Pasirinkite vidinius registrus/prievadus: 00=A prievadas, 01=B prievadas, 10=C prievadas, 11=Valdymas |
| 40 | Žemė | GND | Nuoroda į žemę |
8255 PPI lusto architektūra

| Funkcinis blokas | Aprašymas |
|---|---|
| Duomenų magistralės buferis | Veikia kaip sąsaja tarp procesoriaus dvikryptės duomenų magistralės (D7–D0) ir 8255 vidinės 8 bitų duomenų magistralės. Jis laikinai saugo ir perduoda duomenis tarp procesoriaus ir vidinių registrų ar prievadų. |
| Skaitymo/rašymo valdymo logika | Valdo visą ryšį tarp procesoriaus ir 8255. Jis interpretuoja valdymo signalus, tokius kaip RD, WR, A0, A1, CS ir RESET, kad nustatytų operacijos tipą (skaitymą, rašymą ar valdymą) ir parenka tinkamą prievadą arba valdymo registrą. |
| Valdymo logika (dekoderis) | Iššifruoja procesoriaus siunčiamą kontrolinį žodį, kad būtų galima sukonfigūruoti prievadus įvairiais režimais (0, 1 arba 2 režimas) arba bitų nustatymo / atstatymo (BSR) režimu. Tai lemia, kaip kiekvienas prievadas veiks - kaip įvestis, išvestis ar rankos paspaudimas. |
| A grupės valdiklis | Valdo A prievadą (8 bitai: PA7–PA0) ir viršutinį C prievadą (4 bitai: PC7–PC4). Jis palaiko 0, 1 ir 2 režimus, leidžiančius paprastą įvesties / išvesties, rankos paspaudimo įvesties / išvesties ir dvikryptį duomenų perdavimą |
| B grupės kontrolė | Valdo B prievadą (8 bitai: PB7–PB0) ir apatinį C prievadą (4 bitai: PC3–PC0). Jis palaiko 0 ir 1 režimus, leidžiančius pagrindines įvesties / išvesties arba rankos paspaudimu valdomas operacijas. |
| A uostas | 8 bitų įvesties / išvesties prievadas, kuris gali veikti kaip įvestis arba išvestis, priklausomai nuo režimo konfigūracijos. Palaiko 0–2 režimus pagal A grupės valdiklį. |
| Prievadas B | Kitas**8 bitų I/O prievadas** duomenims perduoti. Veikia pagal B grupės valdymą ir palaiko 0 ir 1 režimus. |
| C prievadas | Padalintas 8 bitų prievadas, padalintas į dvi 4 bitų grupes: viršutinis (PC7–PC4) ir apatinis (PC3–PC0). Jie gali veikti kaip nepriklausomi įvesties / išvesties prievadai, valdymo linijos arba rankos paspaudimo signalai. Atskirus antgalius taip pat galima valdyti naudojant bitų nustatymo / atstatymo (BSR) režimą. |
| Vidinė duomenų magistralė (8 bitų) | Sujungia visus vidinius 8255 blokus, perduoda duomenis ir valdymo informaciją tarp procesoriaus, valdymo logikos ir prievadų. |
| Maitinimo šaltinis | Lustas veikia su +5 V nuolatinės srovės maitinimu ir GND jungtimi, kad maitintų visą grandinę. |
8255 PPI lusto veikimo režimai ir veikimo principas
"Intel 8255" tarnauja kaip programuojama sąsaja tarp procesoriaus ir periferinių įrenginių, paverčianti magistralės operacijas lygiagrečiais duomenų perdavimais. Jo veikimą lemia inicijavimo žingsniai ir pasirenkami režimai:
Iš naujo nustatyti būseną
Įjungus arba iš naujo nustatant, visi prievadai (A, B ir C) pagal numatytuosius nustatymus veikia įvesties režimu, kad nebūtų pažeisti periferiniai įrenginiai su nenumatytais išėjimais.
Inicijavimas
Procesorius turi atsiųsti kontrolinį žodį, kuris sukonfigūruoja kiekvieną prievadą kaip įvestį/išvestį ir pasirenka vieną iš keturių darbo režimų. Kol tai nebus padaryta, prievadai lieka neaktyvūs.
Darbo režimai
bitų nustatymo / atstatymo (BSR) režimas
• Taikoma tik C prievadui.
• Leidžia nustatyti arba išvalyti atskirus bitus kontrolės / būsenos užduotims atlikti.
0 režimas – paprastas įėjimas / išvestis
• Pagrindinė įvestis / išvestis be rankos paspaudimo.
• Naudojamas paprastiems perdavimams, pvz., šviesos diodams, jungikliams ir ekranams.
1 režimas – strobed I/O
• Prideda rankos paspaudimo signalus (STB, ACK, IBF, OBF) per C prievadą.
• Užtikrina sinchronizuotą procesoriaus ↔ periferinių duomenų perdavimą.
2 režimas – dvikryptis įvestis / išvestis
• Galima tik A prievade.
• Palaiko dvipusį perdavimą su rankos paspaudimo valdymu, naudingas didelės spartos ar asinchroniniams įrenginiams.
Skaitymo/rašymo operacijos
• Rašyti: procesorius perkelia duomenis į sistemos magistralę, o 8255 iššifruoja adresų eilutes (A0, A1), kad nukreiptų juos į tinkamo prievado išvesties skląstį.
• Skaityti: Išoriniai įrenginiai perkelia duomenis į prievado linijas, kurias 8255 užfiksuoja ir pateikia procesoriui skaitymo komandos metu.
Sinchronizavimas
• 0 režimu duomenys perduodami tiesiogiai, be rankų paspaudimų.
• 1 ir 2 režimais rankos paspaudimo signalai iš C prievado koordinuoja pasirengimą ir priėmimą, užkertant kelią duomenų praradimui didelės spartos ar asinchroninio perdavimo metu.
8255 PPI lusto sąsajos aspektai
Projektuojant sistemas su 8255, kruopštus sujungimas užtikrina patikimumą ir apsaugo nuo lusto ir išorinių įrenginių pažeidimų:
• Numatytoji įvesties būsena – iš naujo nustatant visus prievadus pagal numatytuosius nustatymus. Taip išvengiama konfliktų, bet taip pat reiškia, kad išėjimai yra neaktyvūs, kol nesukonfigūruojami. Prieš bandydamas užmegzti ryšį, procesorius visada turi išsiųsti kontrolinį žodį, kad tinkamai apibrėžtų kryptį ir režimą.
• Išvesties pavaros ribos – 8255 prievadai gali šaltinį arba nuleisti tik ribotą srovę (kelis miliamperus). Tiesiogiai vairuoti sunkius krovinius, tokius kaip lempos, solenoidai ar relės, yra nesaugu. Vietoj to dažniausiai naudojami buferiniai arba tvarkyklės IC, tokie kaip ULN2803 (Darlington masyvas) arba atviro kolektoriaus vartai, tokie kaip 7406. Jie suteikia didesnę srovės galią ir apsaugo PPI.
• Variklio valdymas – nuolatinės srovės varikliams arba žingsniniams varikliams 8255 prievadai neturėtų būti tiesiogiai prijungti. Vietoj to, išėjimai turi būti nukreipti per tranzistoriaus pakopas arba H tilto tvarkyklės grandines. Šis išdėstymas leidžia tekėti dvikryptei srovei, izoliuojant PPI nuo indukcinių įtampos šuolių.
• Kintamosios srovės apkrovos perjungimas – sąveikai su kintamosios srovės prietaisais saugumo sumetimais reikia izoliuoti. Mechaninės relės arba kietojo kūno relės (SSR), varomos per buferines pakopas, užtikrina, kad 8255 apdorotų tik valdymo signalus, o faktinė aukštos įtampos apkrova būtų saugiai perjungiama į išorę.
• C prievado apribojimai – C prievado bitai ne visada gali būti laisvai naudojami kaip bendri įvesties / išvesties elementai. 1 ir 2 režimais keli kaiščiai (pvz., STB, ACK, IBF, OBF) automatiškai rezervuojami rankos paspaudimo valdymui. Turite atsižvelgti į šias rezervuotas eilutes, kad išvengtumėte konfliktų maišant bendrą I/O su rankos paspaudimu.
8255 PPI lusto privalumai
• Procesoriaus suderinamumas – 8255 sklandžiai veikia su tokiais procesoriais kaip Intel 8085, 8086 ir su jais suderinami. Jo konstrukcija atitinka standartinius magistralės protokolus, todėl integracija yra paprasta be papildomos klijų logikos.
• Lanksti prievado konfigūracija – naudodami tris 8 bitų prievadus (A, B, C), vartotojai gali juos konfigūruoti kaip įvestį, išvestį arba derinį, priklausomai nuo programos. Galimybė perjungti paprastą įvesties / išvesties (0 režimas) ir rankų paspaudimu pagrįstą ryšį (1 ir 2 režimai) leidžia tam pačiam lustui atlikti įvairias užduotis.
• Vieno maitinimo veikimas – 8255 veikia iš standartinio +5 V maitinimo šaltinio, todėl jį lengva maitinti TTL pagrindu veikiančiose sistemose. Nereikia jokių specialių reguliatorių ar kelių įtampos lygių, o tai supaprastina plokštės dizainą.
• Patikimas lygiagretus duomenų perdavimas – lustas užtikrina stabilų ir nuspėjamą 8 bitų lygiagretų ryšį, sumažindamas laiko neapibrėžtumą. Dėl šio patikimumo jis tinka valdyti ekranus, skaityti jutiklius ir valdyti valdymo signalus realiose sistemose.
• Edukacinė vertė – kadangi 8255 yra gerai dokumentuotas ir plačiai prieinamas, jis buvo pagrindinė mokymo priemonė mikroprocesorių laboratorijose ir mokymo rinkiniuose. Galite greitai suprasti įvesties / išvesties sąsajos sąvokas atlikdami praktinius eksperimentus su šiuo įrenginiu.
8255 PPI lusto taikymas
• Švietimo sistemos – Mokymo rinkiniai ir laboratorijos lentos dažnai apima 8255 demonstruoti periferinės sąsajos koncepcijas. Galite praktikuoti programuoti skirtingus režimus ir stebėti faktinę sąveiką su išoriniais įrenginiais.
• Ekrano valdymas – lustas valdo vaizdinius išvesties įrenginius, tokius kaip septynių segmentų šviesos diodai, LCD moduliai ir raidiniai skaitmeniniai skydeliai. Su keliomis I/O linijomis jis gali atnaujinti ekranus arba siųsti valdymo komandas vairuotojo IC.
• Klaviatūros sąsaja – ankstyvųjų terminalų ir asmeninių kompiuterių matricinės klaviatūros dažnai buvo nuskaitomos naudojant 8255. Kai kurias eilutes sukonfigūravęs kaip eilučių tvarkykles, o kitas kaip stulpelių jutiklius, jis efektyviai aptikdavo klavišų paspaudimus.
• Variklio valdymas – žingsninius variklius ir nuolatinės srovės variklius galima valdyti, kai 8255 yra suporuotas su tranzistorių pakopomis, Darlingtono masyvais arba H tiltais. Dėl to jis buvo naudingas robotikos, padėties nustatymo sistemų ir automatikos projektuose.
• Duomenų gavimas – prijungus prie ADC (analoginių-skaitmeninių keitiklių) ir DAC (skaitmeninių-analoginių keitiklių), 8255 suteikė pilną sąsają matavimo ir valdymo užduotims atlikti. Tai leido mikroprocesoriams apdoroti signalus mokslinėje ir pramoninėje įrangoje.
• Pramoninė automatika – 8255 buvo naudojamas valdant eismo signalus, lifto logiką ir procesų stebėjimo skydus. Dėl galimybės patikimai valdyti kelis įėjimus ir išėjimus jis tapo nebrangiu sprendimu įterptosioms valdymo sistemoms.
• Retro-Computing – Klasikinės mašinos, tokios kaip IBM PC / XT ir MSX kompiuteriai, naudojo 8255 periferiniam sąsajai. Jis taip pat buvo naudojamas spausdintuvuose ir išplėtimo kortelėse, įtvirtindamas savo vietą ankstyvoje asmeninių kompiuterių istorijoje.
8255 PPI lustų palyginimas su kitais PPI
8255 ir 8155

"Intel 8155" sujungia kelias funkcijas viename pakete: jame yra nedidelis statinės RAM blokas, programuojamas laikmatis ir bendrosios paskirties įvesties / išvesties prievadai. Dėl to jis tiko kompaktiškoms sistemoms, kuriose reikėjo atminties ir laiko valdymo. Priešingai, 8255 daugiausia dėmesio skiria programuojamam I/O, be įmontuotos atminties ar laiko. Dėl paprastesnio dizaino buvo pigiau ir lengviau programuoti, kai programai nereikėjo integruotos RAM ar laikmačių.
8255 ir 8259

8259 programuojamas pertraukimo valdiklis atlieka visai kitą tikslą: valdyti aparatūros pertraukimus, kad procesorius galėtų greitai reaguoti į išorinius įvykius. Nors 8255 tvarko lygiagrečią įvesties / išvesties duomenų perdavimą, 8259 koordinatės pertraukia signalus. Daugelyje mikroprocesorių sistemų abu lustai buvo naudojami kartu: 8255 sąveikai su tokiais įrenginiais kaip klaviatūros ir ekranai, o 8259 – tų įrenginių generuojamoms pertraukimo užklausoms valdyti.
8255 ir šiuolaikiniai GPIO plėtikliai

Šiandieninės sistemos dažnai naudoja I²C arba SPI pagrindu veikiančius GPIO plėtiklius (pvz., MCP23017 arba PCF8574). Šie įrenginiai suteikia papildomų įvesties / išvesties kaiščių su mažiau jungčių, taupo vietą plokštėje ir sumažina procesoriaus kontaktų skaičių. Tačiau jie veikia nuosekliai, o tai gali būti lėtesnė, palyginti su tiesiogine lygiagrečia 8255 prieiga. Nors 8255 reikia daugiau autobusų linijų, jo lygiagreti struktūra leidžia greičiau persėsti ir daro jį labai vertingą švietimo aplinkoje, kur tiesioginis atskirų kaiščių valdymas ir autobusų laiko supratimas yra svarbūs mokymuisi.
Trikčių šalinimas ir dažniausios problemos
Dirbant su 8255 kartais gali atsirasti sistemos gedimų, jei atidžiai nesilaikoma projektavimo taisyklių. Dažniausios problemos ir gynimo priemonės:
• Neinicijuoti prievadai – po nustatymo iš naujo visi prievadai pagal numatytuosius nustatymus įjungia įvesties režimą. Jei procesorius nesiunčia tinkamo kontrolinio žodžio, išėjimai lieka neaktyvūs arba elgiasi nenuspėjamai. Prieš bandydami skaityti ar rašyti duomenis, visada užprogramuokite valdymo registrą.
• Neteisingi kontroliniai žodžiai – neteisingai sukonfigūruoti kontroliniai žodžiai gali priskirti netinkamas kryptis ar režimus prievadams, užblokuodami laukiamus signalus. Patikrinkite kontrolinių žodžių reikšmes su duomenų lapų lentelėmis, kad įsitikintumėte, jog bitų parametrai yra tinkami.
• Rankų paspaudimo gedimai – 1 ir 2 režimais C prievadas teikia reikiamus rankos paspaudimo signalus (STB, ACK, IBF, OBF). Trūkstami, neteisingai prijungti arba neteisingai interpretuoti ryšiai užstringa arba prarandami pervedimai. Atidžiai patikrinkite prijungtų įrenginių laidus ir loginio lygio lūkesčius.
• Išėjimų perkrova – kiekvienas prievado kaištis gali apdoroti tik mažas sroves. Tiesiogiai valdyti šviesos diodus galima naudojant rezistorius, tačiau varikliams, relėms ir lempoms reikalingos išorinės buferinės pakopos, tokios kaip tranzistorių matricos arba tvarkyklės IC. Nepaisydami šios ribos, galite visam laikui sugadinti lustą.
• Magistralės konfliktai – jei keli įrenginiai bando valdyti sistemos magistralę vienu metu, gali būti sugadinti duomenys arba sugadinti aparatūrą. Tinkamas magistralės arbitražas ir įjungimo signalų (RD', WR', CS') naudojimas užkerta kelią šiai problemai.
• Derinimo įrankiai – kai problemos išlieka, bandymo įranga padeda izoliuoti gedimus. Loginiai analizatoriai gali patvirtinti laiko ir valdymo signalus, o osciloskopai gali patikrinti, ar problema kyla dėl triukšmingų aparatinės įrangos laidų ar netinkamo programinės įrangos inicijavimo.
Išvada
"Intel 8255 PPI" išlieka kertiniu mikroprocesorių sąsajos akmeniu. Nors jį iš esmės pakeitė šiuolaikiniai GPIO plėtikliai ir įmontuotas mikrovaldiklio I/O, jis ir toliau tarnauja kaip aktyvi mokymo priemonė. Jo aiškumas demonstruojant lygiagretų duomenų perdavimą, prievado konfigūraciją ir rankos paspaudimą daro jį neįkainojamu visiems.
Dažnai užduodami klausimai [DUK]
Koks yra kontrolinis žodis 8255 ir kodėl jis svarbus?
Kontrolinis žodis yra 8 bitų instrukcija, kurią siunčia procesorius, kad sukonfigūruotų 8255 prievadus ir režimus. Be jo visi prievadai išlieka numatytojoje įvesties būsenoje. Jis apibrėžia, ar kiekvienas prievadas veikia kaip įvestis, ar išvestis, ir pasirenka 0, 1, 2 arba bitų nustatymo / atstatymo režimus.
Ar 8255 gali tiesiogiai valdyti variklius ar reles?
Ne. 8255 išėjimai gali šaltinį arba nuskandinti tik kelis miliamperus, o to nepakanka varikliams ar relėms. Norint saugiai valdyti didesnę srovę, reikia naudoti išorines tvarkyklės grandines, tokias kaip tranzistorių matricos arba H tiltai.
Kodėl 8255 vis dar naudojamas švietime?
8255 suteikia aiškų, praktinį būdą sužinoti apie mikroprocesoriaus įvesties / išvesties, valdymo žodžius ir lygiagretų duomenų perdavimą. Jo paprasta architektūra padeda studentams suprasti pagrindines sąvokas prieš pereinant prie šiuolaikinių mikrovaldiklių.
Kas atsitiks, jei naudosite C prievadą rankos paspaudimo režimais?
1 ir 2 režimuose kai kurios C prievado linijos yra skirtos rankos paspaudimo signalams (pvz., STB, ACK, IBF, OBF). Šie kaiščiai negali būti naudojami kaip bendrosios paskirties įvesties / išvesties šiais režimais, į kuriuos turite atsižvelgti, kad išvengtumėte konfliktų.
Kuo 8255 skiriasi nuo šiuolaikinių GPIO plėtiklių?
Skirtingai nuo I²C/SPI plėtiklių, kurie naudoja nuoseklųjį ryšį, 8255 veikia su lygiagrečia magistrale, todėl galima greičiau perkelti, tačiau reikia daugiau kontaktų. Dėl to 8255 mažiau taupo erdvę, bet yra vertingas faktiniam valdymui ir mokymosi magistralės laikui.