Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Elektroniniai mikroprocesoriniai įtaisai ir valdikliai

Lituaniana


Turinys

Įvadas.



Bendros sąvokos ir apibrėzimai.

Skaičiavimo sistemos ir veiksmai su skaičiais

Dvejetainiai skaičiai ir veiksmai su jais

Aritmetiniai veiksmai su dvejetainiais skaičiais

Sesioliktainiai skaičiai ir veiksmai su jais

Dvejetainis desimtainis kodas

Skaitmeniniai signalai ir elementarūs loginiai elementai.

Baziniai loginiai elementai

Mikroprocesorinių sistemų operaciniai įtaisai.

MIKROPROCESORIAI

Truputi istorijos

Mikroprocesorių parametrai

Vidinė mikroprocesoriaus sandara

Aritmetinis - loginis įtaisas

Mikroprocesoriaus registrai

Valdymo schemos

Vidinės mikroprocesoriaus magistralės

Adresavimo būdai

Tiesioginis ir segmentinis adresavimas

Mikroprocesoriaus komandų sandara

Mikroprocesoriaus veikimo sparta

Vidutinė komandos vykdymo trukmė.

Mikroprocesoriaus veikimo spartinimo būdai

Apie mikroprocesorių konstrukcijas

Adresų ir duomenų magistralių sugretinimas.

Mikroprocesoriaus valdymo signalai.

MIKROPROCESORINIŲ ĮTAISŲ ATMINTINĖS

Atmintinių tipai ir parametrai

Atmintinių tipai

Pagrindiniai atmintinių parametrai

Statinių (SRAM) atmintinių mikroschemos

Dinaminės atmintinės

Programuojamosios atmintinės

Informacijos pasikeitimo tarp mP ir atmintinės spartinimo būdai

Spartinančioji atmintis (SA)

Tiesioginio kreipimosi į atmintinę rezimas

ISORINIŲ ĮRENGINIŲ SĄSAJOS

Sąsaja ir sąsajos valdiklis

Proceso informacijai įvesti ir isvesti organizavimo principai

Nuosekliojo rysio sąsaja

RS232 standartas

Nuosekliojo rysio programuojamos sąsajos mikroschema 82510

Lygiagrečiojo rysio sąsaja

Bendrosios zinios

Lygiagrečiosios programuojamos sąsajos mikroschema 8255A

ELEKTRONINIAI MIKROPROCESORINIAI ĮTAISAI IR VALDIKLIAI

Įvadas.

Bendros sąvokos ir apibrėzimai.

Mikroprocesoriumi (MP) vadiname programiniu būdu valdomą skaitmeninės informacijos apdorojimo įtaisą, sudarytą is vienos ar kelių didelės integracijos mikroschemų. Mikroprocesorių sudaro du įtaisai: operacinis įtaisas, atliekantis operacijas su operandais, ir valdantysis įtaisas, kuris suformuoja valdančiuosius signalus operaciniam įtaisui pagal is atminties nuskaitytą komandos kodą.

Mikroprocesoriniu įtaisu (MĮ) arba mikroprocesorine sistema (MPS) vadinamas elektroninis įtaisas, kuriame yra bent vienas mikroprocesorius. MĮ naudojami pramonėje, medicinoje, buityje ir daugelyje kitų sričių. Pavyzdziui, MĮ yra personalinis kompiuteris, staklių ir mikrobanginės krosnelės valdymo įranga, elektroninis laikrodis ir t.t. Bendru atveju mikroprocesorinį įtaisą (1 pav.) sudaro mikroprocesorius, atmintis (programų ir duomenų) bei periferiniai įvedimo - isvedimo įrenginiai (I/O). MĮ skirtas skaitmeninio informacijos apdorojimo algoritmų programinei realizacijai. Pagrindinis informacijos apdorojimo elementas čia yra mikroprocesorius. Mikroschemų skaičius, sudarantis mikroprocesorinį įtaisą, svyruoja nuo vieno iki keleto desimčių.

1. pav. Mikroprocesorinio įtaiso blokinė schema

Mikroprocesorius apdoroja informaciją. Sistemine magistrale (System Bus) cirkuliuoja duomenys, adresai ir valdymo signalai. Pastoviojoje atmintinėje (ROM - Read Only Memory) saugoma minimali informacija, būtina įtaiso sistemos veikimui valdyti. Joje gali būti programa valdanti viso įtaiso veikimą. Operatyviojoje atmintinėje (RAM - Random Access Memory) saugomi duomenys, tarpiniai skaičiavimų rezultatai ir įtaiso valdymo programos. Programa į atmintinę įrasoma nuosekliai. Per sąsajas (Interface) MĮ bendrauja su kitais įrenginiais, gauna is jų ir jiems siunčia informaciją. MĮ gali būti keli vienodi ar skirtingi mikroprocesoriai, jis gali turėti kelias sąsajas, įvairių tipų bei paskirties magi 18418x2320s strales ir atmintines.

Galimi tokie mikroprocesorinių sistemų funkcinių elementų realizavimo atvejai:

- vieno elemento funkcijas realizuoja keletas IS;

- kiekvieną funkcinį elementą atitinka atskira didelės integracijos schema (DIS), realizuojanti jo funkcijas;

- keli (ribiniu atveju visi) funkciniai elementai realizuoti vienoje DIS.

Jeigu visi MĮ-so funkciniai elementai yra vienoje didelės integracijos schemoje, jis vadinamas vienkristaliu mikrovaldikliu (Microcontroller). Jeigu mikrovaldiklio (MV) savųjų resursų nepakanka, jie isplečiami isorinių įrenginių (atminties ir isorinių sąsajų) sąskaita. Tokiu atveju mikrovaldiklis veikia mikroprocesoriaus rezimu. Mikrovaldiklio struktūros pavyzdys - Texas Instruments MSP430F449 (2 pav.), kuriame integruota dauguma mikroprocesorinėms sistemoms būdingų funkcinių blokų:

aritmetinis loginis įrenginys (CPU);

aparatinis daugiklis (Multiply);

sinchronizacijos blokas (Oscillator);

programų ir duomenų atmintys (ROM ir RAM);

įvedimo - isvedimo prievadai (I/O ports

keitiklis analogas kodas (ADC);

nuoseklaus rysio sąsajos (USART0 ir USART1);

budintis laikmatis (Watchdog

laikma iai (Timer A, Timer B, Basic Timer);

informacijos isvedimo į skystųjų kristalų displėjų kontroleris (LCD controller);

analoginių signalų palyginimo įtaisas (Comparator A

maitinimo įtampos būsenos sekimo įtaisas (Brownout).

2 pav. Mikrovaldiklio struktūros pavyzdys (Texas Instruments MSP430F449)

Procesorinis elementas gali būti sudarytas is kelių DIS, kurios atlieka procesoriaus valdančiojo bei operacinio įtaiso funkcijas. Tokio procesoriaus skilčių skaičius priklauso nuo sujungtų į bendrą modulį operacinio įtaiso funkcijas atliekančių mikroschemų kiekio, o toks įtaisas vadinamas daugelio kristalų mikroprocesoriumi.

Mikroprocesorinės sistemos architektūra sąvoka apjungia:

- vidinės architektūros tipą (Harvardo - kai mikroprocesorius naudoja atskiras magistrales duomenims ir komandoms įvesti / isvesti, ar Von Neumano - kai duomenų ir komandų skaitymui / rasymui naudojama ta pati magistralė);

rysio su mikroprocesorinės sistemos mazgais metodus ir priemones;

sąsajos skilčių skaičių ir organizavimo principus;

registrų kiekį ir darbo su jais būdus;

duomenų formatą;

komandų sąrasą ir adresavimo metodus;

- pertraukčių aptarnavimo būdus.

Kaip jau buvo minėta, mikroprocesoriniame įtaise vykdomas programiniu būdu valdomas skaitmeninės informacijos apdorojimas. Mikroprocesorius operuoja tik dvejetainiais duomenimis, todėl norint issiaiskinti mikroprocesoriaus veikimo principus svarbu perprasti pagrindines skaičiavimo sistemas.

Skaičiavimo sistemos ir veiksmai su skaičiais

Dvejetainė skaičiavimo sistema - tai skaičiavimo sistema, kurios skaičiai susideda is 1 ir 0, priklausomai nuo pozicijos turinčių skirtinga svorį - pagrindą 2 pakelto laipsniu, lygiu skilties numeriui (2 ir kt.). Jauniausios skilties numeris - nulis.

Bitas - vienos skilties dvejetainis skaičius (0 arba 1). Dvejetainis skaičius 11012 - keturių bitų skaičius.

Baitas - astuonių bitų dvejetainis skaičius, pvz. 110010012.

Zodis - dviejų baitų ilgio skaičius, pvz, sesioliktainis skaičius 7FB4h.

Desimtainė skaičiavimo sistema - skaičiavimo sistema turinti pagrindą 10. Ją sudaro 10 skaitmenų.

Sesioliktainė skaičiavimo sistema - skaičiavimo sistema turinti pagrindą 16. Ją sudaro 16 skaitmenų (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).

Maziausios (Least Significant Bit) ir didziausios (Most Significant Bit) vertės bitas - dvejetainio skaičiaus skiltys turinčios maziausią ir maziausią svorį, pvz. baite maziausią svorį (LSB) turi nulinė skiltis (20=1), o didziausią (MSB) - septinta skiltis (27=128).

Skaitmeninė sistema - sistema vykdanti operacijas tik su skaičiais ir diskretiniais dydziais. Skaitmeninė elektronika operuoja tik 1-niais ir 0-niais loginiais lygiais, t.y. sąvokomis įjungta (ON) ir isjungta (OFF). Mikroprocesoriuje visi duomenys yra isreiskiami "1" arba "0" ir veiksmai atliekami su skaičiais sudarytais tik is 1 ir 0 Desimtainė sistema naudojama rezultatams isvesti, nes prie jos yra pripratęs rezultatų vartotojas zmogus.

Informacija yra matuojama bitais, baitais (1 baitas = 8 bitams), kilobaitais (1 KB = 1024 B = 2 B), megabaitais (1 MB = 1024 KB = 2 B = 1.048.576B), gigabaitais (1 GB = 1024 MB = 2 B = 1.073.741.824B), ir t.t. Dvejetainėje sistemoje uzrasyti kodai yra labai ilgi ir dėl to nepatogūs. Mikroprocesoriuje duomenys gali būti 8, 16, 32 ir net 64 bitų ilgio, todėl skaičiams rasyti naudojamos patogesnės astuntainė ir sesioliktainė skaičių sistemos.

Dvejetainiai skaičiai ir veiksmai su jais

1 lentelė. Rysys tarp desimtainės ir dvejetainės skaičiavimo sistemų

Skaičius

Skaičius

Skaičius

Dvejetainis

Desimtainis

Dvejetainis

Desimtainis

Dvejetainis

Desimtainis

Dvejetainį skaičių, kaip ir bet kurį kitą, paversti desimtainiu galima sumuojant dėmenis, kuriuos sudaro skilties reiksmė padauginta is skaičiavimo sistemos pagrindo pakelto laipsniu, lygiu skilties numeriui.

Pavyzdziui:

Dvejetainis skaičius 110101112=

=1x2 +1x2 +0x2 +1x2 +0x2 +1x2 +1x2 +1x2

=1x128+1x64+0x32+1x16+0x8+1x4+1x2+1=21510

Pats didziausias skaičius, kurį galima sutalpinti į 8 dvejetaines skiltis į vieną baitą 11111111 . Skaičiai paprastai koduojami baitais, todėl, norint uzkoduoti didesnį skaičių, reikia naudoti daugiau baitų. Registrų ir atmintinių talpa matuojama baitais, kilobaitais, megabaitais, gigabaitais ir t.t.

Aritmetiniai veiksmai su dvejetainiais skaičiais

Aritmetinių veiksmų vykdymo taisyklės tokios pačios, kaip ir dirbant su desimtainiais skaičiais, tačiau laikoma, jog kiekviena dvejetainio skaičiaus skiltis yra mazesnė uz 2 ir gali turėti tik dvi reiksmes - 1 arba 0:

Sudėtis 0 + 0 = 0; 1 + 0 = 1; 0 + 1 = 1; 1 + 1 = (perpildimas 1)0; 1 + 1 + 1 = (1)1.

Atimtis 0 - 0 = 0; 1 - 0 = 1; 0 - 1 = -1; 1 - 1 = 0.

Daugyba: 0 x 0 = 0; 0 x 1 = 0; 1 x 1 = 1.

Pavyzdziui:

Suma: Atimtis: Sandauga:

59 0011 1011 85 0101 0101 15 1111

+ 42 0010 1010 - 57 0011 1001 x 9 x 1001

101 0110 0101 28 0001 1100 135 1111 1111

10000111

Mikroprocesoriuje atimtis keičiama sudėtimi, pries tai neigiamą skaičių atitinkamai transformuojant į papildomą kodą, t.y. dvejetainių skaičių atimtis mikroprocesoriuje keičiama į turinio sudėtį su atėminio papildomu kodu. Papildomas kodas gaunamas neigiamo dvejetainio skaičiaus visas skiltis invertuojant (t.y. vienetus pakeičiant nuliais ir atvirksčiai) ir prie gauto skaičiaus jauniausios skilties pridedant 1. Pavyzdziui, skaičius "-3" būtų transformuojamas taip:

3 Inversija +1

1111 1100 1111 1101.

Tokia būdu atimties operacija mikroprocesoriuje atrodytų taip:

7 0000 0111

+1111 1101

4 1 0000 0100

Operacijos metu atsiradęs perpildymo vienetas rodo, kad rezultatas teigiamas. Jeigu pernesimo nėra - tai reiskia, kad atimties rezultatas neigiamas. Kai atėminio absoliutinė reiksmė didesnė uz turinio, gauname neigiamą rezultatą (t.y. nėra persipildimo is vyriausios skilties). Norint suzinoti neigiamo rezultato absoliutinę vertę, reikia gautą atimties rezultatą invertuoti ir prie jauniausios skilties pridėti 1.

Pavyzdziui: atlikime operaciją "4 - 15"; Raskime atsakymo absoliutinę vertę. Desimtainių skaičių atimtį (4 - 15) atitinka dvejetainių skaičių atimtis (0000 01002 - 0000 11112):

4 4 0000 01002

- 15 + 15 pap. kodas + 1111 00012

= 11 = 11 pap. kodas = 1111 01012

Matome, kad pernesimo is vyriausios skilties nėra, tai reiskia, kad gautas atimties rezultatas neigiamas. Gauname neigiamo skaičiaus 1111 01012 absoliutinį dydį:

Randame skaičiaus 1111 01012 inversiją - 0000 10102 ir prie jauniausios skilties pridedame +1. Gauname neigiamo dvejetainio skaičiaus 1111 01012 absoliutinį dydį 0000 10112 (dvejetainis) = 1110 (desimtainis).

Sesioliktainiai skaičiai ir veiksmai su jais

2 lentelė. Rysys tarp dvejetainės, desimtainės ir sesioliktainės skaičiavimo sistemų

Dvejetainis

Sesioliktainis

Desimtainis

Dvejetainis

Sesioliktainis

Desimtainis

A

B

C

D

E

F

Rasant programas mikroprocesoriams dazniausiai vartojama sesioliktainė skaičiavimo sistema. Verčiant dvejetainį skaičių į sesioliktainį, kiekvienas baitas padalinamas pusiau į dvi lygias dalis (tetradas) po 4 bitus. Tada kiekvieną tetradą sudarantis dvejetainis skaičius keičiamas jį atitinkančiu sesioliktainiu skaičiumi. Į pusę baito galima įrasyti dvejetainius skaičius nuo 0000 (desimtainis 0) iki 1111 (desimtainis 15).

Sesioliktainis 10 = desimtainiam 16. Kad jų nesumaisytumėm, sesioliktainiai skaičiai zymimi raide H(h), pavyzdziui: 10h = 16, arba 0Ah = 10, arba 0FFh = 255. Viename baite telpa du sesioliktainiai skaitmenys. Sesioliktainė sistema patogi tuo, kad sesioliktainis skaičius labai paprastai paverčiamas dvejetainiu ir atvirksčiai.

Dvejetainį skaičių paversti sesioliktainiu skaičiumi galima suskirstant dvejetainį skaičių į tetradas (pradedant jaunesniosiomis skiltimis) ir po to kiekvieną tetradą pakeisti ją atitinkančiu sesioliktainiu skaičiumi. Jeigu vyriausioje tetradoje yra maziau nei 4 skiltys, ją papildome nuliais. Pavyzdziui: dvejetainį skaičių 0100000010101011B pakeisti sesioliktainiu.

- dvejetainis

- skilčių svoriai

4 0 A B - sesioliktainis

Analogiskai sesioliktainis skaičius verčiamas į dvejetainį. Pavyzdziui: sesioliktainį skaičių B3D9h paversti dvejetainiu.

B 3 D 9 - sesioliktainis

- skilčių svoriai

- dvejetainis

Veiksmai su sesioliktainiais skaičiais atliekami taip pat, kaip su desimtainiais, tik vienetas sumuojant pernesamas į vyresniąją skiltį tuomet, kai suma yra lygi arba didesnė uz 16.

Dvejetainis desimtainis kodas

Dvejetainis - desimtainis kodas (BCD - Binary Coded Decimal) dazniausiai naudojamas, kai reikia didelio tikslumo (reiksmių po kablelio), o taip pat informacijos atvaizdavimo įtaisuose, kadangi zmogus pripratęs prie desimtainės skaičiavimo sistemos (pvz.: priimtinesnė temperatūros indikacija 250 C, nei 000110010 C). Naudojant sį BCD kodą, kiekvienas desimtainis skaitmuo koduojamas atskirai 4 bitais, jam isreiksti naudojama tiek bitų, kiek jų reikia. Kadangi yra 16 keturių bitų kombinacijų, kai kurios jų nenaudojamos. Skaičius įrasytas viename baite atitinka dvi desimtainio skaičiaus skiltis. Pavyzdziui:

Susumuokime du BCD skaičius:

Dvej. skaičius BCD kodas

0000 0011 (=03h)

(=86h)

1000 1001 (=89h)

Kai kvarteto (tetrados) reiksmė virsija 9, rezultatą reikia koreguoti. Mikroprocesoriuose tai atlieka specialios komandos - DAA (Adjust After Addition), DAS (Adjust After Subtraction) ir kt. Pavyzdziui atliekant BCD kodų sudėtį:

Dvej. skaičius BCD kodas

0000 0111 (=07h)

+0000 1000 (=08h)

0000 1111 (=0Fh) Atliekama koregavimo po sudėties komanda DAA ir gauname:

0001 0101 (=15h)

Skaitmeniniai signalai ir elementarūs loginiai elementai.

Visos elektroninės skaitmeninės schemos (tame tarpe ir mikroprocesorinės sistemos) sudarytos is skaitmeninių funkcinių blokų, kurių vidinę struktūrą sudaro baziniai loginiai elementai. Kiekvienas bazinis loginis elementas turi vieną ar kelis įėjimo isvadus ir vieną isėjimo isvadą. Panaudojant įvairias sių loginių elementų sujungimų kombinacijas ir skirtingą jų skaičių yra gaminamos mazos integracijos (Small Scale Integration - SCI) loginiai elementai, kombinacinės loginės schemos (Medium Scale Integration - MSI) ir mikroprocesoriniai įtaisai (Large Scale Integration - LSI ir Very Large Scale Integration - VLSI). Is esmės yra dvi pagrindinės skaitmeninių integrinių schemų seimos: TTL ir CMOS. Jos skiriasi savo eksploataciniais parametrais - darbo greičiu, sunaudojama galia, skaitmeninių loginių lygių (1 ir 0) įtampomis, apkrovimo galimybėmis ir kt. Visos auksčiau paminėtos schemos funkcionuoja veikiamos skaitmeninių signalų - 0 ir 1.

a) b)

c)

3 pav. Skaitmeninių signalų savybės: a) skaitmeninio signalo pavyzdys; b) TTL signalo loginiai lygiai, c) CMOS signalo loginiai lygiai.

3 pav. iliustruoti TTL signalo ir CMOS signalo loginiai lygiai - t.y. įtampos, kurios atitinka loginį 1 ir 0. Matome TTL atveju (3,b pav.) įtampos nuo 0 V iki 0,8 V skaitmeninėje sistemoje traktuojamos kaip loginis 0, o įtampos diapazone nuo 2,4 V iki 5 V - kaip loginis 1. Tačiau kiekvienas is sių diapazonų suskyla į garantuotą (Guaranteed) ir triuksmingą (Noise Margin) zonas. Gamintojas garantuoja, kad skaitmeninės schemos į įtampas patenkančias į garantuotas zonas reaguos teisingai, t.y. kaip į atitinkamą loginį signalą. Jeigu skaitmeninio įtaiso įėjime veikia signalas, su amplitude is triuksmingos zonos - galimas klaidinga reakcija, kadangi bet kurioje skaitmeninėje schemoje veikia didesni ar mazesni triuksmai. Sie triuksmai sumuojasi su signalu ir bendra signalo įtampa gali patekti į neapibrėztą zoną ir skaitmeninio įtaiso reakcija tampa nevienareiksme. CMOS loginiai lygiai (3c pav.), kai maitinimo įtampa 5 V, siek tiek skiriasi - garantuotos zonos siauresnės - loginio 1 zona 4,95 - 5 V, o loginio 0 zona - 0 - 0,05 V. Tuo tarpu triuksmo zona gerokai platesnė uz TTL logikos.

Dauguma skaitmeninių schemų reikalauja periodinių signalų sekos (4 pav.). Daznai tokia seka vadinama sinchronizacijos signalu, kurį apibūdina sie parametrai:

loginio vieneto įtampos lygis (+5 V, 4 pav.);

loginio nulio įtampos lygis (0 V, 4 pav.);

impulsų sekos periodas (tP) ir daznis (1/tP);

reikalavimai kylančio (Rising Edge) ir krintančio (Falling Edge) frontų trukmėms;

4 pav. Mikroprocesorinio įtaiso sinchronizacijos signalo pavyzdys

Mikroprocesoriniai įtaisai sudaryti is paprasčiausių loginių elementų. Loginių elementų veikimas aprasomas funkcijomis, kurios, kaip ir jų argumentai, gali įgyti dvi reiksmes: 0 ir 1. Sios funkcijos vadinamos loginėmis funkcijomis. Kintamojo reiksmės A ir inv A vaizdziai gali būti interpretuojamos fiziskai: isjungtas ar įjungtas jungiklis, zemas ar aukstas įtampos lygis laide.

Dvejetainio kintamojo reiksmes loginėse schemose atitinka loginio nulio ir loginio vieneto signalai. Mikroprocesorinėje technikoje naudojami sitokie elektrinių signalų lygiai įėjimuose: loginio nulio (zemo lygio) signalas < 0,8 V; loginio vieneto (auksto lygio) signalas > 2,0 V.

Daznai jie vadinami standartiniais TTL (tranzistorinės - tranzistorinės logikos) signalų lygiais.

Nors yra 16 skirtingų dviejų argumentų loginių funkcijų, bet loginių schemų realizacijai naudojamos tik kelios. Panagrinėsime svarbiausias is jų ir jas atitinkančius loginius elementus.

Baziniai loginiai elementai

Elementas NE (invertorius) invertuoja argumento reiksmę (atlieka inversijos operaciją). Jei įėjimo signalo reiksmė lygi nuliui (nulio signalas), tai isėjimo signalo reiksmė lygi vienetui (vieneto signalas) ir atvirksčiai. Kintamojo A inversija uzrasoma invA. Inversija, skirtingai nuo kitų loginių funkcijų, yra vieno argumento funkcija. Loginis NE (NOT) elementas pavaizduotas 5 pav. Vienoje mikroschemoje jų gali būti nuo vieno iki sesiolikos (ir daugiau) elementų.

5 pav. Simbolinis loginio NE elemento zymėjimas ir jo darbo teisingumo lentelė

Elementas IR logiskai daugina argumentus (atlieka konjunkcijos operaciją): isėjimo signalo (funkcijos) reiksmė bus lygi vienetui (vieneto signalas) tik vieninteliu atveju, jei visų elemento įėjimų signalų (argumentų) reiksmės lygios vienetui. Įėjimo kintamųjų A ir B konjunkcija uzrasoma sitaip:

F=A B (dar vartojami zymenys AB, A B, A&B

Loginis IR (AND) elementas:

6 pav. Simbolinis loginio IR elemento zymėjimas ir jo darbo teisingumo lentelė

Elementas ARBA logiskai sudeda argumentus (atlieka disjunkcijos operaciją): isėjimo signalo reiksmė bus lygi vienetui, jei bent vieno is jo įėjimų signalo reiksmė lygi vienetui. Disfunkcija uzrasoma sitaip:

F= A B (arba A+B).

Loginis ARBA (OR) elementas:

7 pav. Simbolinis loginio ARBA elemento zymėjimas ir jo darbo teisingumo lentelė

Konjunkcijos, disjunkcijos ir inversijos loginės funkcijos sudaro pilną funkcijų sistemą, vadinamąją Būlio bazę, nes su siomis funkcijomis galima isreiksti bet kokio sudėtingumo loginę funkciją.

Loginis Suma moduliu 2 (XOR) elementas:

8 pav. Simbolinis loginio Suma M2 elemento zymėjimas ir jo darbo teisingumo lentelė

Loginių elementų darbo pavyzdziai

9 pav. Dviejų skaičių loginė sandauga panaudojant loginius IR elementus

.....

10 pav. Laikinės diagramos loginio elemento ARBA-NE įėjimuose ir isėjimuose

Tribūviai buferiniai elementai mikroprocesorinėse sistemose daznai naudojami duomenų magistralėse, prie kurių prijungti keli informacijos perdavimo įtaisai. Naudojant specialius duomenų perdavimo leidimo signalus Enable vienu metų prie magistralės prijungiamas tik vienas informacijos perdavimo įrenginys. Kiti įrenginiai, kurių leidimo signalas neaktyvus, elektriskai atjungti nuo magistralės. Is zemiau pateikiamo pavyzdzio matome, kad leidimo signalo (Enable) aktyvus lygis gali būti ir 0-nis, ir 1-nis. Buferiniai elementai gali būti invertuojantis ir neinvertuojantis įėjimo signalą.

11 pav. Simbolinis tribūvių buferinių elementų zymėjimas

Tribūvių buferinių elementų panaudojimo pavyzdys, iliustruojantis keturių duomenų įvedimo prietaisų prijungimą prie mikroprocesorinės sistemos duomenų magistralės. Pavyzdyje panaudoti tribūviai 8 skilčių magistralės buferiai, kurių aktyvus leidimo signalas - nulinio lygio. Pavyzdyje parodytas duomenų įvedimo is 2-ojo įtaiso - antrojo prietaiso isėjimo buferį is "trečios būsenos" į aktyvią perveda leidimo signalo 0-inis lygis. Naudojant tokį schemotechninį sprendimą, valdymo grandinės (parastai tai atlieka adresų desifratorius") turi uztikrinti, kad vienu metu būtų tik vienas isrinkimo signalas. Priesingu atveju bus aktyvus keli buferiniai elementai ir informacija bus nuskaitoma is magistralės su klaidomis.

12 pav. Tribūvių buferinių elementų panaudojimo pavyzdys mikroprocesorinėje sistemoje

Mikroprocesorinių sistemų operaciniai įtaisai.

Kompiuteriai yra sudaryti is tūkstančių paprasčiausių loginių elementų. Jų atliekamos funkcijos yra sudėtingesnių funkcijų sudedamoji dalis, o tas sudėtingesnes funkcijas realizuoja tipinės funkcinės schemos - operaciniai įtaisai, sudaryti is loginių elementų. Tuos įtaisus pramonė gamina kaip vidutinės integracijos schemas. Operacinis įtaisas, kurio isėjimo signalas priklauso tik nuo įėjimų signalų reiksmių nagrinėjamuoju momentu, vadinamas kombinaciniu. Mikroprocesorinėse sistemose plačiausiai naudojami sie kombinaciniai operaciniai įtaisai: desifratoriai, multiplekseriai, programuojamos loginės matricos, sumatoriai, magistraliniai buferiai, koderiai, dekoderiai ir kt. Operacinis įtaisas, kurio isėjimo signalai priklauso ne tik nuo įėjimų signalų reiksmių, bet ir nuo jo vidinės būsenos, vadinamas sekvenciniu. Tai - trigeriai, registrai, skaitikliai.

Operaciniai įtaisai operuoja ir su tiesioginiais, ir su inversiniais kintamaisiais. Tiesioginį kintamąjį atitinkantį signalą vadinsime aktyviu teigiamu, o inversinį kintamąjį - aktyviu neigiamu (aktyviu vadinamas loginis signalas, į kurį reaguoja loginė schema, t. y. keičiasi jos būsena, o pasyviu - kuris schemos būsenos nekeičia).

Trumpai susipazinsime su plačiausiai naudojamais operaciniais įtaisais.

Skaitmeniniai komparatoriai (kodų palyginimo schemos) mikroprocesorinėse sistemose panaudojami isorinio įtaiso isrinkimo signalo formavimui, kai adresų magistralėje esantis kodas sutampa su įtaisui suteiktu adresu mikroprocesorinės sistemos adresų erdvėje. Kai kodai sutampa, formuojamas aktyvaus loginio lygio signalas isėjime "A=B" (zr. 13 pav.). Taip pat komparatoriai panaudojami prioritetinėse schemose, siekiant nustatyti, kurio aptarnavimo prasančio įrenginio prioritetas yra aukstesnis (14 pav.).

13 pav. Skaitmeninis komparatorius

14 pav. Skaitmeninio komparatoriaus panaudojimo pavyzdys

Desifratorius (Decoder keičia įėjimų signalų rinkinį (dvejetainį kodą) į signalą tik viename is isėjimų. Desifratorius turi n įėjimų ir 2n isėjimų. Signalas atsiranda tik viename isėjime - tame, kurio numeris atitinka įėjimų skaičių rinkinį, pavyzdziui, dvejetainį kodą 010 įėjime atitinka isėjimo signalas 00000 00 (arba 11, priklausomai nuo to, koks aktyvus isėjimo signalo lygis) - antrame isėjime yra vieneto (nulio) signalas. Desifratoriai paprastai naudojami kartu su registrais ar skaitikliais ir transformuoja juose saugomus kodus.

Desifratoriai mikroprocesorinėse sistemose kartu su adresų desifratoriumi naudojami įtaisų prijungtų prie duomenų magistralės isrinkimo (leidimo) signalų formavimui (pvz., sistemoje kuri pavaizduota 12 pav.). Desifratoriai taip pat daznai panaudojami ir informacijos indikacijos schemose, kai naudojama dinaminė indikatorių valdymo sistema, t.y. vienu metu gali būti isrinktas tik vienas indikatorius ir indikatoriai atvaizduoja informaciją atliekant cikliską jų isrinkimą. Zmogaus akis yra inertiska ir jam atrodo, kad vienu metu sviečia visi indikatoriai. Taip taupomas energijos sunaudojimas ir sumazėja schemą sudarančių mikroschemų kiekis.

Desifratoriai gali būti dvejetainiai (15 pav.) ir dvejetainiai - desimtainiai (BCD, 16 pav.). Dvejetainiai desifratoriai reaguoja (desifruoja) visas galimas dvejetainio kodo kombinacijas. Dvejetainiai - desimtainiai desifratoriai reaguoja (suaktyvina vieną is isėjimų) tik reaguodami į įėjime esantį dvejetainį kodą, kuris yra nedidesnis uz 1001B. Įėjime esant didesniam kodui, nei viename desifratoriaus isėjime nėra aktyvaus signalo.

15 pav. Dvejetainis desifratorius, jo darbo laikinės diagramos bei darbo teisingumo lentelė

16 pav. Dvejetainis desimtainis (BCD) desifratorius ir jo darbo teisingumo lentelė

Sifratoriai (Coder isėjime suformuoja dvejetainį kodą to įėjimo, kuriame yra aktyvus signalo lygis. Kiekvienam įėjimui suteikiamas prioritetas, t.y. jeigu vienu metu aktyvūs loginiai lygiai atsiranda keliuose įėjimuose, tai sifratoriaus isėjime bus auksčiausią prioritetą turinčio įėjimo kodas. Mikroprocesorinėse sistemose naudojami dvejetainiai ir dvejetainiai desimtainiai - BCD sifratoriai. Prie sifratorių isėjimų gali būti jungiami specialūs skystųjų kristalų įtaisai (LCD), kurie atvaizduoja sifratoriaus isėjime esantį kodą.

17 pav. BCD (a) ir dvejetainis (b) sifratoriai

18 pav. BCD sifratorius ir jo darbo teisingumo lentelė

Multiplekseris perduoda signalą is įėjimo, kurio numeris nurodomas dvejetainiu kodu adreso įėjimuose į isėjimą. Jo veikimo principą geriausiai iliustruoja struktūra, parodyta 19 pav. Multiplekseriai, kurie kartais vadinami komutatoriais, ar selektoriais, naudojami kelių signalų saltiniams sujungti arba loginėms funkcijoms realizuoti.

19 pav. Keturių linijų skaitmeninio multiplekserio funkcinė schema ir teisingumo lentelė

Skaitmeninių signalų multiplekseriai mikroprocesorinėse sistemose dazniausiai naudojami įvedimo - isvedimo įtaisuose, įvedant (apjungiant) skaitmeninius signalus is kelių informacijos perdavimo saltinių (18 pav.).

20 pav. 16 linijų multiplekseris

Gana plačiai mikroprocesorinėse sistemose naudojami analoginių signalų multiplekseriai (21 pav.), kadangi realiame pasaulyje analizuojama informacija dazniausiai būna analoginė. Į analoginių signalų multiplekserio įėjimus patenka informacija is įvairių jutiklių ar kitų analoginių signalų saltinių.

21 pav. Analoginių signalų multiplekseris

Multiplekserio isėjimas paprastai prijungiamas prie analoginio skaitmeninio keitiklio (ASK), keičiančio analoginę informaciją į dvejetainį kodą, įėjimo. Analoginio signalo įėjimo isrinkimas valdomas skaitmeninių kodu, kurį formuoja valdymo įtaisas, pavyzdziui mikroprocesorius ar mikrovaldiklis. Svarbūs analoginio multiplekserio parametrai:

įėjimo signalų dinaminis diapazonas (nuo kelių mV iki desimčių V);

atviro kanalo varza (nuo kelių iki simtų omų);

maksimali įėjimo signalo įtampa;

įtampos keitimo į skaitmeninį laikas;

analoginių įėjimų skaičius;

analoginio kanalo isrinkimo signalų loginiai lygiai;

vidinio buferio kodams saugoti dydis;

skaitmeninio isėjimo tipas (nuoseklus arba lygiagretus) ir kt.

Siuolaikiniuose mikrovaldikliuose analoginių signalų multiplekseriai dazniausiai būna integruoti į patį mikrovaldiklį. Analoginių signalų multiplekseriai gali būti panaudojami ir įvairios formos skaitmeniniu būdu valdomų analoginių signalų formavimui (22 pav.). Siame pavyzdyje analoginių signalų multiplekseris panaudotas piūklinės įtampos formavimui.

22 pav. Analoginių signalų multiplekserio panaudojimo pavyzdys

Magistralės buferiai mikroprocesorinėse sistemose naudojami kaip buferiniai elementai tarp duomenų magistralės ir įvedimo-isvedimo įrenginio. Buferių isėjimai tribūviai ir jų valdymui naudojami leidimo signalai CE (Crystal Enable). Magistralės buferiai būna vienkrypčiai ir dvikrypčiai (pvz., 23 pav.). Dvikrypčiuose buferiuose be isrinkimo signalo CE dar naudojamas informacijos perdavimo kryptį valdantis signalas S/R (23 pav.).

23 pav. Astuonių skilčių dvikryptis magistralės buferis ir jo panaudojimas MPS

Dvikryptis magistralės buferis naudojamas, kada prie duomenų magistralės prijungtas universalus periferinis įrenginys, galintis ir perduoti, ir priimti informaciją is mikroprocesoriaus. Tuo atveju, kai prie duomenų magistralės prijungtas tik siunčiantis informaciją įtaisas, naudojamas vienkryptis magistralės buferis (24 pav.).

24 pav. Astuonių skilčių vienkryptis magistralės buferis ir jo panaudojimas MPS

24 paveikslėlyje pateiktas vienkryptis duomenų magistralės buferis turi du leidimo įėjimus OE1 ir OE2 (Output Enable). Jie gali būti valdomi atskirai arba sujungti į tarpusavyje, kaip 24 pav. Bet kuriuo atveju duomenys is periferinio įrenginio pateks į duomenų magistralę, tiktai tada, kai abu leidimo signalai bus zemo loginio lygio.

Buferiniai registrai Periferiniuose įrenginiuose, į kuriuos informacija tik isvedama naudojami buferiniai registrai. Duomenys is duomenų magistralės gali būti uzfiksuojami vidiniuose buferinių registrų trigeriuose teigiamu, arba neigiamu impulso C frontu (25 pav., b). 26 pav. pateikta tokio buferinio registro vidinė sandara. Kito tipo buferiniuose registruose duomenys perduodami is duomenų magistralės į periferinį įrenginį esant aktyviam leidimo signalo lygiui. Pavyzdyje (25 pav, a) aktyvus leidimo signalo lygis - aukstas. Abu registrai (25 pav.) turi isėjimo leidimo signalą OE (Output Enable) - zemas aktyvus lygis. Kai sis signalas auksto loginio lygio, registrų isėjimai Q0 - Q7 pervedami į trečią neaktyvią būseną.

a) b)

25 pav Astuonių skilčių buferiniai registrai

26 pav. pavaizduotas buferinis registras turintis dinaminį duomenų įrasymo įėjimą. Duomenys įėjime keičiasi tik po teigiamo signalo fronto siame įėjime. Auksto loginio lygio signalas įėjime EI perveda buferinio registro isėjimus į "trečią" neaktyvią būseną.

26 pav. Buferinis registras su dinaminiu duomenų įrasymo įėjimu

27 pav. pateikiamas buferinių registrų panaudojimo MPS pavyzdys. Siame pavyzdyje jie panaudoti duomenų perdavimui į du informacijos isvedimo prietaisus. Registrų isėjimai visada aktyvioje būsenoje - jų įėjimai OE įzeminti. Informaciją keičiasi registrų isėjimuose nuo signalų C1 ir C2 teigiamų frontų.

27 pav. Buferiniai registrai mikroprocesorinėje sistemoje

Siuolaikinėse elektroninėse schemose sutinkami ir mechaniniai ir skaitmeniniai potenciometrai. Jų dazniausiai atliekamos funkcijos yra įtampos dalinimas arba mazinimas, filtrų suderinimas ir kitos. Vystantis gamybos technologijoms atsirado ir skaitmeniniai potenciometrai. Abiejų tipų potenciometrai turi privalumų ir trūkumų. Aptarsime dviejų tipų potenciometrus: mechaninius ir skaitmeninius. Skaitmeniniai potenciometrai gaminami remiantis silicio technologijomis, kurios naudojamos analoginėms arba skaitmeninėms integrinėms schemoms. Skaitmeniniai potenciometrai atlieka tokias pačias fundamentalias operacijas kaip ir mechaniniai potenciometrai. Skaitmeniniai potenciometrai turi vieną akivaizdų pranasumą: slankiklio vietą galima nurodyti programiskai. Sią funkciją lengvai gali atlikti mikrovaldiklis. Panagrinėsime Analog Device mikroschemą AD5242, kurioje įmontuoti du skaitmeniniai potenciometrai. Kiekvieno potenciometro slankiklio vietą (256 pozicijos) galima programiskai nurodyti. Reguliuojamas potenciometras valdomas naudojant I2C sąsają. Taip nustatoma varza tarp isvadų A ir W ir tarp W ir B gnybtų.

37 pav. Mikroschemos AD5242 blokinė schema ir korpusas

Skaitmeninis potenciometro slankiklis turi 256 pozicijas. Nustatant varzą tarp isvadų W ir B, siunčiami astuoni bitai į registrą RDAC, kurie nurodo konkrečią slankiklio vietą. Minimalią varzą tarp isvadų W ir B sudaro slankiklio varza 60 Ω. Tokiu atveju į registrą RDAC turi būti nusiųstas skaičius 0h. Sekančioje slankiklio pozicijoje varza tarp W ir B lygi 99 Ω (RWB = RAB/256 + RW = 39 + 60). RDAC registras pavaizduotas 38 pav.

38 pav. RDAC registro schema

Varzos vertė tarp gnybtų W ir B isreiskiama formule.

čia: D - desimtainis skaičius nuo 0 iki 255, kuris siunčiamas į RDAC registrą, RAB - potenciometro varzos nominali vertė, RW - slankiklio varza (60 Ω), RWB - norimas varzos nominalas.

Varza tarp isvadų W ir A tai pat nustatomas skaitmeniniu būdu per I2C sąsają. Nustatomos varzos vertė RWA isreiskiama formule:

Kiekvienas mikroprocesorinės sistemos funkcinis blokas yra sudėtinga elektroninė schema, todėl jas nagrinėsime atskirai. Pradėsime nuo pagrindinio ir sudėtingiausio bloko - mikroprocesoriaus.

MIKROPROCESORIAI

Truputi istorijos

Vystantis mikroelektronikai viename kristale tilpo vis sudėtingesnes funkcijas atliekančios schemos. Įranga su jomis darėsi vis patikimesnė, bet mazėjo mikroschemų universalumas. Pagrindinės sąnaudos mikroschemų gamyboje yra technologijos paruosimas. Todėl mazomis serijomis gaminti specializuotas mikroschemas buvo brangu. Gamybos masiskumui padidinti ir atpiginti buvo sukonstruotos programuojamos universalios mikroschemos - mikroprocesoriai (mP). Pirmąjį 4 bitų mP 4004 (2226 tranzistoriai) 1971 m. sukonstravo firma "Intel". Jis sugebėjo valdyti 4096 keturių bitų ilgio adresus, vykdė 45 skirtingas instrukcijas. Tais pačiais metais "Intel" pagamino 8 bitų mP 8008, kuris galėjo valdyti 16 KB atmintinę ir vykdė jau 48 instrukcijas. 1973 m. "Intel" pagamino pirmąjį moderniską 8 bitų mP 8080 (4600 tranzistoriai), kuris buvo 10 kartų spartesnis, valdė 64 KB atmintinę ir vykdė daugiau instrukcijų. Tuo metu ir kitos firmos pradėjo gaminti savos konstrukcijos mP, pavyzdziui, 1974 m. MC6800 (Motorola), 1976 m. Z80 ("Zilog"). 1978 m. Firma "Intel" pagamino 16 bitų mP 8086, o 1979 m. kiek paprastesnį mP 8088 (30000 tranzistorių), o "Zilog" - mP Z8001. Jie valdė 64 KB atmintnę, turėjo daugiau vidinių registrų, buvo dar spartesni. 1980 m. "Motorola" pradėjo gaminti mP MC68000. 1983 m. buvo pradėti gaminti dar tobulesni 16 bitų mP: 80286 (134000 tranzistorių), MC68010, Z8003. mP taip pat gamino firmos "Hewlett-Packard", "Bell Laboratories", "National Semiconductor" ir kitos. 1987 m. "Intel" pagamino 32 bitų mP 80386 (276000 tranzistorių), 1989 m. - sudvejintą, turintį vidinę RAM mP 80486 (1200000 tranzistorių), 1993 m. - mP "P5" (3000000 tranzistorių), 1995 m. - mP "P6" (apie 5000000 tranzistorių). 1998 m. buvo pradėtas gaminti "Pentium II", kurio darbo daznis buvo 450 MHz, 2000 m. pavasarį - 800 MHz "Pentium III" (22000000 tranzistorių), o rudenį buvo pasiektas ir virsytas 1 GHz daznis. 2003 m. pavasarį - 3 GHz "Pentium 4" (42 x106 tranzistorių), o pabaigoje 3,2 GHz "Pentium 4 EE" (178 x106 tranzistorių). AMD pradėjo gaminti naujos kartos 32/64 bitų procesorių "Athlon 64" (106x106 tranzistorių).

Dabar daug firmų gamina įvairios paskirties mP. Be bendrosios pa­skirties mP gaminami signalų procesoriai (DSP - Digital Signal Processor) skirti signalų analizei bei jų apdorojimui. Jie yra mobilaus rysio telefono aparatuose, garso plokstėse. Gaminami specialūs grafiniai procesoriai greitai piesiantys monitoriuje sudėtingus 2D ir 3D vaizdus, taip pat muzikiniai procesoriai (PSG - Programmable Sound Generator). Neįtikėtinai sparčiai didėja mP veikimo sparta. Taktinis daznis, buvęs simtai kHz, jau artėja prie 4 GHz, o tranzistorių skaičius - simtų milijonų kristale. Tobulėja mP struktūra ir dabar jie jau sugeba per vieną taktą atlikti keletą operacijų, valdyti gigabaitines atmintines. Toje pačioje mikroschemoje gali būti keli procesoriai (pvz., keli pagrindiniai ir matematiniai), trys spartinančiosios (Cache) operatyviosios atmintinės ir jų valdymas. Jiems gaminti naudojamos 0,13 mm ir 0,09 mm technologijos. Rengiamasi įsisavinti 0,06 mm technologiją.

Visų mP veikimo principas panasus. mP naudojantys sudėtingas, nevienodo ilgio komandas vadinami CISC (Complex Instruction Set Computer), o mP naudojantys paprastesnes, vienodo ilgio komandas - RISC (Redused Instruction Set Computer). RISC mP geresni tuo, kad nereikia perduoti papildomų duomenų apie instrukcijos ilgį. Atmintinė gali būti valdoma segmentais (8086, 8088) arba tiesiogiai. Pirmasis būdas labai patogus, kol programa telpa į segmentą (pvz., 16 bitų mP segmentą sudaro 64 KB). Kai atmintinė valdoma tiesiogiai (MC680..) programuojant nereikia galvoti apie segmento dydį.

Modernieji mP yra labai sudėtingi, todėl apie juos pakalbėsime pabaigoje. mP veikimą ir programavimą aiskinsimės nagrinėdami paprastesnius klasikinius mP. Labai spartūs ir sudėtingi mP reikalingi tik labai sudėtingiems MĮ (pvz., zaidimų, asmeniniams kompiuteriams, serveriams bei superkompiuteriams).

Mikroprocesorių parametrai

Jie yra labai įvairūs ir priklauso nuo mP paskirties. Charakterizuojant daugumą mP yra nurodomi sie parametrai:

Mikroprocesoriaus tipas (universalus, specializuotas).

Duomenų zodzio ilgis (vidinis/isorinis) bitais (4, 8, 16/8, 32/16, 64/32). Pavyzdziui, mP 386SX turėjo 32 bitų vidinę ir 16 bitų isorinę duomenų magistrales.

Adresuojamos atmintinės dydis baitais (pvz., 8088 - 1 MB, 80286 - 16 MB, 80386 - Pentium - 4 GB).

Taktinis darbo daznis MHz (vidinis/isorinis). Pavyzdziui, 80486DX2 80/40 reiskia, kad mP dirba 80 MHz dazniu, o su aplinka bendrauja 40 MHz dazniu.

Veikimo sparta dazniausiai nusakoma operacijų per sekundę skaičiumi (MIPS - Millions Instructions per Second). Sis parametras priklauso ir nuo komandų sudėtingumo.

Gamybos technologija (p-MOP, n-MOP ,...).

Elektriniai parametrai: suvartojamoji galia (iki 100 W), maitinimo įtampos, srovės.

Konstrukciniai parametrai: dydis, kojelių skaičius, jų isdėstymas, tvirtinimas ir t.t.

Vidinė mikroprocesoriaus sandara

mP susideda is trijų pagrindinių dalių: aritmetinio loginio įtaiso (ALĮ), angliskai jis vadinamas ALU (Aritmetic Logic Unit), registrų ir valdymo bloko. Visi mP įtaisai tarpusavyje yra sujungti vidinėmis duoenų (VDM) ir adresų (VAM) bei valdymo signalų (VVM) magistralėmis. Duomenų magistrale abiem kryptimis cirkuliuoja duomenys ir adresai, o adresų magistrale - tik adresai is mP į jo isorę. Valdymo signalai is valdymo įtaiso siunčiami į visus mP įtaisus, į mP isorę bei priimami is isorės. mP yra ir daugiau įtaisų. VDM laidų skaičius nusako mP zodzio ilgį bitais. Kokias operacijas gali atlikti ALĮ, kiek, kokių ir kokios talpos registrų yra mP, taip pat valdymo įtaiso sudėtingumas priklauso nuo konkretaus mP konstrukcijos.

mP veikimą valdo ROM arba RAM esanti programa. Įjungus maitinimą, pradeda veikti taktinių impulsų generatorius, sinchronizuojantis viso MĮ darbą. Pirmoji komanda isvalo mP programos skaitiklį ir perjungia į pradinę būseną visus MĮ elementus. Kita komanda įraso į sį skaitiklį adresą, nurodantį ROM ląstelę, kurioje yra MĮ paleidimo programos pirmoji instrukcija. Sis adresas yra numatytas konstruojant MĮ. Toliau MĮ tikrina ir paruosia darbui ROM esanti programa. Paleidusi mikroprocesorinį įtaisą, ROM esanti programa, jo valdymą gali perduoti programai, kuri yra RAM.

Panagrinėsime savo metu labai populiaraus astuonių bitų mP Z80 sandarą (39 pav.). Astuonių bitų mP duomenų magistralę sudaro astuoni laidai. mP taip pat yra valdymo signalų ir 16 bitų adresų magistralės. Nuo adresų magistralės pločio priklauso tiesiogiai adresuojamos atmintinės talpa.

39 pav. 8 bitų mikroprocesoriaus standartinė struktūra

Aritmetinis - loginis įtaisas

ALĮ atlieka aritmetines ir logines operacijas. Viename jo įvesčių yra specialus registras akumuliatorius. Akumuliatorių gali būti ir daugiau. ALĮ duomenis gali paimti tiesiog is VDM ir is akumuliatoriaus (A). Jis, priklausomai nuo atliekamos operacijos, operuoja vienu arba dviem zodziais. Pavyzdziui, sudėčiai reikalingi du zodziai (A + B), o inversijai - vienas. Operacijos, kurias gali atlikti ALĮ, priklauso nuo mP tipo. Dazniausiai jis atlieka sudėties, atimties, loginės sandaugos, postūmio, padidinimo ir sumazinimo vienetu bei daugybos operacijas. Duomenys į ALĮ patenka per buferinius registrus - kaupykles (40 pav.). Operacijos rezultatas dazniausiai saugomas akumuliatoriuje.

40 pav. Mikroprocesoriaus Z80 struktūra

Mikroprocesoriaus registrai

mP yra bendrieji ir specialieji registrai. Bendrieji registrai palengvina programuotojo darbą ir pagreitina MĮ veikimą, nes, esant vidinei atmintinei, mP tenka rečiau kreiptis į isorę. Specialieji registrai yra būtini mP veikimui ir neprieinami programuotojui. Beveik visuose mP yra sie specialieji registrai: akumuliatorius, atmintinės adreso, komandų, pozymių, buferiniai registrai ir programos skaitiklis.

Specialieji registrai

Pagrindinis mP registras vadinamas akumuliatoriumi (A). Jis naudojamas atliekant daugumą aritmetinių ir loginių operacijų. Duomenys pirmiausia įrasomi į akumuliatorių ir tik po to perduodami į ALĮ. Kitas zodis į ALĮ perduodamas per buferinį registrą (kaupyklę) is VDM. Akumuliatoriuje zodį galima perstumti, invertuoti ir atlikti kitus veiksmus su duomenimis.

Programos skaitiklyje (PC - Program Counter) visada yra komandos adresas, kurią mP ruosiasi vykdyti. Pries pradedant vykdyti komandą, adresas adresų magistrale siunčiamas į MĮ atmintinės valdymo schemą. Atmintinės valdymo schema perskaito adrese nurodytos ląstelės turinį ir jį duomenų magistrale siunčia į mP valdymo bloko komandų registrą IR (40 pav.). Valdymo bloko desifratorius (DEK) dekoduoja komandą ir pradeda ją vykdyti. Pasiuntus komandos adresą, adresų skaitiklis prideda prie PC registro adreso vienetuką. Kai komandą sudaro keli baitai, registras laukia nurodymo pasiųsti kitos komandos arba kito baito adresą. 40 pav. parodyto mP adresą sudaro 16 bitų, todėl jis gali tiesiog kreiptis į 65536 (216) baitų (8 bitų ląstelių) = 65536/1024 = 64 KB talpos atmintinę.

Į steko rodiklio registrą (SP - Stack Pointer) yra įrasomas steku vadinamos atmintinės dalies pradzios adresas. Steke įrasomi adresai, kur ieskoti pertrauktos vykdyti programos duomenų, adresai į kuriuos reikia grįzti įvykdzius paprogramę ar pertraukimą. PC ir SP registrai yra 16 skilčių. Jie sujungti su vidine adresų magistrale.

Postūmio registras gali būti ALĮ įvestyje arba isvestyje. Jis perstumia bitą į kairę arba į desinę per vieną ar daugiau skilčių. Perstūmimu galima atlikti daugybos veiksmą.

Pozymių registre (F - Flag) indikuojami tam tikri rezultato pozymiai, pavyzdziui, jis lygus ar nelygus nuliui, jis teigiamas ar neigiamas ir pan. Jie naudojami valdymui. Pavyzdziui, mP Z80 pozymių registro skiltyje C (39 pav.) saugomas operacijos metu atsiradęs perpildymo bitas. Jis atsiranda, kai rezultatas nebetelpa į 8 bitus arba perstumiant zodį. Vienetas skiltyje P/V gali reiksti skilties perpildymą, kai atliekamos aritmetinės operacijos, arba, atliekant logines operacijas, rodyti, kad skiltyje yra lyginis vienetų skaičius. Skiltis N skirta nurodyti, kokia operacija sumavimas ar atimtis yra vykdoma. Skiltyje H nurodoma ar buvo pernesimas is zemesniosios skilties į aukstesniąją. Vienetukas skiltyje S rodo, kad baitas yra neigiamas, o nuliukas skiltyje Z, kad operacijos rezultatas yra 0.

ALĮ įvestims atskirti nuo isvesties naudojami buferiniai registrai - kaupyklės, kur laikinai saugomi is magistralės paimti duomenis. Dazniausiai jie yra ALĮ įvestyse (pvz., TMP ir A registrai, 40 pav.). Jie neleidzia VDM esantiems signalams susimaisyti.

Pertraukimams valdyti skirtas registras I. Registras R generuoja signalus MĮ opera­tyviojoje atmin­tinėje (RAM) įrasytai informacijai regeneruoti.

Bendrieji registrai

Visus juos galima naudoti kaip vidinę atmintį, kai kurie jų gali atlikti akumuliatoriaus funkcijas.

mP Z80 astuonių bitų registrai B, C, D, E, H, L (40 pav.) naudojami akumuliatoriui skirtiems duomenims įsiminti. Kadangi kreipimosi laikas į vidinius registrus yra daug trumpesnis uz kreipimosi laiką į MĮ atmintinę, juos protingai panaudojant galima paspartinti programos veikimą. Pavyzdziui, skaičiuojant ciklą, juose laikyti tarpinius rezultatus ir tik galutinį rezultatą perrasyti į MĮ atmintinę. B registras yra specifinis. Jį galima naudoti skai­čiuojant ciklą. Kai kuriuos sių registrų galima sujungti poromis ir naudoti, kaip 16 bitų registrus. Tai poros AF, BC, DE, HL. Registrų B ir HL kombinacija tampa dvigubu akumu­liatoriumi. mP Z80 yra minėtų registrų dubleriai B', C', D', E', H', L', taip pat A' - akumuliatoriaus dubleris.

IX ir IY yra indekso registrai. Juose dazniausiai saugomas skaičius, prie kurio V pavi­dalo blokelis su "+" norimu atstumu perstumia adresą pridėdamas baitą is VDM.

Mikroprocesorių registrų struktūros skiriasi (41 pav.)

41 pav. mP 8080 (a), MC 6800 (b), Z80 (c) registrų struktūros

 

Valdymo schemos

Valdymo schemos (40 pav.) sinchronizuoja visų mP mazgų darbą. Joms priklauso komandų registras (IR - Instruction Register), komandų desifratorius (DEK) ir valdiklis (V) valdantis mP. Į komandų registrą įrasoma is MĮ atmintinės paimta vykdyti komanda. Komandų dekoderis sią komandą issifruoja ir siunčia signalus valdikliui, kuris valdo komandos vykdymą mP ir jo isorėje.

Vidinės mikroprocesoriaus magistralės

Vidinė duomenų magistralė naudojama duomenims perduoti, ji sujungia ALĮ su visais mP registrais. Tik gavęs atitinkamą signalą, registras gali paimti arba perduoti duomenis į VDM. Pavyzdziui, sudedant akumuliatoriaus ir registro D turinius, pirmuoju taktu akumuliatoriaus turinys siunčiamas į akumuliatoriaus buferį (kaupyklę) ABUF, antruoju - duomenys is registro D siunčiami į VDM ir įrasomi į buferinį registrą (kaupyklę) TMP. ALĮ sudeda kaupyklių ABUF ir TMP turinius ir kitu taktu juos įraso į akumuliatorių. Įvykdzius sią operaciją, VDM lieka laisva ir ją galima panaudoti kitoms operacijoms vykdyti.

42 pav. Magistralės darbo laiko diagramos

Vidine adresų magistrale adresai perduodami į MĮ adresų magistralę. Nuo adresų magistralės pločio m priklauso tiesiogiai valdomos atminties dydis, kuris lygus 2m baitų. Jeigu atmintis yra didesnė negu 2m, ji yra suskaidoma ir valdoma sekcijomis.

Valdymo magistrale perduodami įvairūs valdymo signalai. Jie priklauso nuo mP tipo, tačiau tarp jų visuomet yra atmintinės skaitymo, rasymo, regeneravimo signalai, taip pat signalai informacijai per prievadus (Port) įvesti ir isvesti (42 pav.).

Magistralės darbą sinchronizuoja taktiniai impulsai. Paveiksle pavaizduotoje diagramoje vienas magistralės ciklas uztrunka keturis taktus. Adreso signalas yra ilgiausias, jame telpa kiti valdantieji signalai. Duomenys skaitomi ir įvedami fiksuotais laiko momentais. Pavyzdziui, pirmojo ciklo pradzioje mP perduoda adreso signalą, kuris isrenka atmintinės ląstelę. Impulso T2 pradzioje MEMRD lygis tampa zemas ir jis sujungia atmintinę su duomenų magistrale. Baigiantis impulsui T4, duomenys perduodami procesoriui. Kai mP magistralės naudoja tik tris valdančiuosius signalus MEM/IO, RD ir WR, MEM/IO signalo aukstas ir zemas lygiai nurodo su kuo, atmintine ar prievadu bendraus mP.

Adresavimo būdai

MĮ gali būti įvairių rūsių atmintinės: operatyvioji (RAM), pastovioji (ROM), pirminė ir antrinė spartinančioji (Cache) ir vidiniai mP registrai. RAM ir ROM yra numeruojamos, o mP registrai zymimi raidėmis. Pirminė spartinančioji atmintinė yra mP mikroschemoje, o antrinė - mP mikroschemoje arba isorėje.

Yra naudojami įvairūs duomenų paieskos (adresavimo) būdai. Kuo įvairesniais būdais mP galima ieskoti duomenų, tuo lanksčiau jį galima programuoti. Pavyzdziui, mP Z80 adresuoti galima net astuoniais būdais:

Naudoti komandą, kuri zino ką ji turi daryti. Tokią komandą sudaro tik operacijos kodas.

Pavyzdziui, komanda NOP nedaro nieko, bet trunka 4 ciklus, o EI tik leidzia pertraukimus.

Adresuoti mP registrą nurodant registrą, kuriame yra reikalingi duomenys. Kai registrų nedaug ji gali tilpti į vieną baitą.

Pavyzdziui: Add Ah, Bh - registro Bh turinį prideda prie registro Ah turinio.

Adresuoti betarpiskai komandoje nurodant duomenį. Sis būdas naudojamas, kai zinoma duomens reiksmė. Komandą sudaro keli baitai. Pirmasis baitas yra operacijos kodas, o kiti - duomenys.

Pavyzdziui: Add Ah, 12H - prie akumuliatoriaus Ah turinio prideda 12H.

Tiesiogiai adresuoti atmintinės ląstelę, kurioje yra reikalingi duomenys. Komanda susideda is operacijos kodo ir adreso. Sį būdą galima naudoti tik kai kurioms komandoms.

Pavyzdziui: JMP 5000H - besąlygiskas suolis į adresą 5000H.

Adresuoti netiesiogiai paimant adresą is specialaus registro. Taip elgiamasi, kai rasant programą duomenys nezinomi ir priklauso nuo operacijos rezultato.

Pavyzdziui: Lea Bx, 5400H - į registrą BX įveda duomenų adresą

Mov Ax, (SI) - į registrą Ax įveda duomenis is registre SI nurodyto adreso.

Prie registre esančio adreso pridedant tam tikrą skaičių - santykinis adresavimas.

Pavyzdziui:  JP 0FFCH - grązina per kelis baitus atgal, jei pozymių skiltis P=1. Pozymis P=1 rodo, kad skaičius yra neigiamas.

Prie bazinio adreso pridėti registre SI (DI) esantį indeksą (indeksinis adresavimas). Sis būdas palengvina adreso pakeitimą ir naudojamas dirbant su masyvais.

Tiesioginis ir segmentinis adresavimas

Kai RAM talpa virsija informaciniu zodziu (8 ar 16 bitų) valdomų adresų skaičių, tokiai atmintinei valdyti naudoja du adresavimo būdus: tiesioginį arba segmentinį adresavimą.

Adresuojant tiesioginiu būdu, adresų registras daromas dvigubai ilgesnis uz informacinį zodį, 16 bitų 8 bitų mP ir 32 bitų 16 bitų mP (43 pav., a). Tokiu būdu adresai buvo formuojami, pavyzdziui, firmos "Motorola" 68000 serijos mP.

Adresuojant segmentiniu būdu, visa atmintinė suskirstoma segmentais (43 pav., b), kurių dydį riboja zodzio ilgis. 16 bitų mP segmento dydis yra 64 KB. Segmentai is eilės sunumeruojami. Atmintinę segmentais galima suskirstyti įvairiai. Is segmentų sudarytoje atmintinėje adresas susideda is segmento numerio (segmento adreso) ir postūmio (Offset), kuris nurodo atmintinės ląstelės padėtį segmento pradzios atzvilgiu.

Firmos "Intel" 80x86. serijos mP adresą sudaro segmento (64 KB) adresas ir postūmis (43 pav., c). Abu registrai yra 16 skilčių. Is jų sudaromas 20 skilčių adresas, kuriuo galima valdyti 1 MB atmintinę. Segmento adresą sudaro auksčiausieji 16 (19-3) bitų. Todėl segmentų pradzių adresai turi būti kartotini 16 (nulinio segmento adresas bus 0x16 = 0, pirmojo - 1x16 = 16, antrojo 2x16 = 32 ir t.t iki 4096 segmento adreso). Postūmį sudaro 16 bitų ir jis gali adresuoti 64 KB segmentą. Fizinis adresas apskaičiuojamas segmento adresą padauginus is 16 (10h) ir pridėjus postūmį. Pavyzdziui, kai segmentas lygus 10 ir postūmis lygus 10, fizinis adresas bus 10x16 + 10 = 170.

43 pav. Adresavimas tiesioginiu ir segmentiniu būdu

Firmos "Zilog" mP Z8001 segmento numeriui skirti 7 auksčiausieji segmento registro bitai, todėl segmentų pradzių adresai yra kartotini segmento dydziui, t.y. 64 KB. Adreso registrą čia sudaro 32 bitai ir jis gali valdyti 232 bitų atmintinę.

Mikroprocesoriaus komandų sandara

Komanda vadinamas dvejetainis zodis, kuriuo mP-iui nurodo kokius atlikti veiksmus. Komandą dekoduoja dekoderis, o vykdo valdymo schema.

Kadangi mP yra sinchroninis įtaisas, jo būsenos gali kisti tik fiksuotais laiko momentais. Juos nustato trys laiko intervalai: taktinio daznio periodas (ciklas), mP (magistralės) ciklas ir komandos ciklas. Komandos ciklą gali sudaryti keli mP ciklai, o mP ciklą keli taktai.

44 pav. Komandos sandara

 
Komanda (44 pav.) susideda is operacijos kodo ir operando (adreso arba duomenų). Operacijos kodas mP nurodo ką daryti, o adresas - kur yra duomenys. Jie gali būti mP registre, MĮ vidinėje atmintyje arba isoriniame įrenginyje. Kelių baitų komandose pirmasis baitas visuomet yra operacijos kodas. Kai duomenys (pvz., adresas) uzima du baitus, vienas jų atitinka zemiausiąją (LSB - Least Significant Byte), o kitas auksčiausiąją (MSB - Most Significant Byte) dviejų baitų skaičiaus skiltį. Pavyzdziui, skaičiaus C8E5h auksčiausioji skiltis bus C8, o zemiausioji E5. Raidė h rodo, kad skaičius parasytas sesioliktainėje sistemoje. mP Z80 ir Intel 80x86 pirmas adreso baitas atitinka zemiausiąją skiltį, o antras - auksčiausiąją skiltį. Kituose mP gali būti atvirksčiai.

mP komandos pagal paskirtį yra suskirstytos į tokias 5 grupes:

Komandos duomenims tarp registrų arba tarp registro ir atmintinės persiųsti.

Aritmetinių operacijų (sudėties, atimties, kodo keitimo vienetu) komandos.

Loginių operacijų, perstūmimų, rotacijų komandos.

Kreipimosi į paprogrames, testų, operacijų su steku komandos.

Pertraukimų, informacijos įvedimo ir isvedimo operacijų bei kitos komandos.

Programuojant komanda (operacija) uzrasoma masininiu kodu arba asembleryje anglisko zodzio santrumpa. Pavyzdziui, mP Z80 ir 8080 persiuntimo komandos "registro B turinį perkelti į registrą A" sesioliktainis kodas yra 78, o santrumpos LD (Load) ir MOV (Move). Si komanda mP Z80 asembleryje būtų uzrasoma taip LD A,B, o mP 8080 - MOV A,B.

Tų pačių komandų kodai abiem mP gali būti tie patys, o santrumpos gali skirtis. Pavyzdziui, komandos "registro L turinį pridėti prie akumuliatoriaus (A) turinio" masininis kodas abiem mP yra 85, mP Z80 asembleryje ji uzrasoma ADD A,L, o mP 8080 - ADD L.

Asemblerį daug lengviau įsiminti, negu komandų kodus, todėl mP programos rasomos asembleriu. 3 lentelėje pateikta mP 8080 asembleriu parasyta programa su paaiskinimais, kuri duomenis is prievado, kurio adresas 01, perraso į atmintinę, pradedant adresu 0010h. Programos pradzia atmintinėje yra adresu 0000. Adresai ir duomenys dazniausiai rasomi sesioliktainiame kode.

3 lentelė Programos Intel 8080 mikroprocesoriui pavyzdys

Atmintinės adresas

Komanda

Paaiskinimai

LXI H 0010

Į registrų H,L porą įraso duomenų pradzios adresą 0010

Zemiausioji skiltis

Auksčiausioji skiltis

IN 01

Is prievado 01 į akumuliatorių įraso duomenų baitą

Prievadas

MOV M,A

Akumuliatoriaus turinį įraso į atmintinės ląstelę, kurios adresas, yra H,L registruose

INX H

Prie registrų poros H,L prideda 1 (padidina adresą)

JMP 0300

Programa persoka į adresą 0003 kitam baitui įvesti

Zemiausioji skiltis

Auksčiausioji skiltis

Programą sudaro penkios komandos ir ji uzima 10 atmintinės ląstelių (baitų). Pirmoji programos komanda atmintinėje uzima tris, antroji du, trečioji ir ketvirtoji po vieną, o penktoji tris baitus. Joje yra begalinis ciklas, nes nenurodyta sąlyga jam pabaigti.

Pirmoji komanda adresuoja betarpiskai nurodydama duomenis. Antroji - adresuoja tiesiogiai nurodydama prievadą, is kurio reikia paimti duomenis. Trečioji - netiesiogiai nurodo adresą per registrą. Ketvirtoji - tiesiog adresuoja mP registrą. Penktoji komanda - tiesiogiai nurodydama komandos adresą.

Pertraukimai yra specifinės komandos naudojamos specializuotoms paprogramėms vykdyti, pavyzdziui, MĮ apsikeisti informacija su isoriniu įrenginiu. mP atlikdamas bet kurią komandą tikrina ar nėra pertraukimo. Jį radęs, mP nutraukia duomenų apdorojimą, registro PC turinį persiunčia į steką, o į PC įraso paprogramės pradzios adresą. Steke issaugomi tarpiniai rezultatai ir programos nutraukimo vieta (adresas nuo kurio programa bus tęsiama). PC įrasytu adresu randamas ir paleidziama pertraukimo paprogramė, kuri, pavyzdziui, is prievado įveda duomenis arba per prievad juos isveda. Įvykdęs pertraukimo paprogramę, mP pasiima steke įrasytus duomenis ir tęsia programą.

Mikroprocesoriaus veikimo sparta

Vidutinė komandos vykdymo trukmė.

mP nuosekliai skaito atmintinėje esančias komandas. Pagrindiniai mP veiksmai yra :

komandos nuskaitymas,

komandos vykdymas.

45 pav. Veikimo spartinimas sugretinant komandos isrinkimą ir operacijos vykdymą mP

Vykdydamas komandą mP skaito, apdoroja ir įraso duomenis. Komandos skaitymas vadinamas komandos isrinkimu. Komandos ciklą sudaro komandos isrinkimas ir jos vykdymas. Taktų skaičius reikalingas komandai įvykdyti yra nurodomas mP techninėje dokumentacijoje. Komandos cikle (45 pav., a) pasitaiko laikotarpiai (Pauzė), kai magistralė nenaudojama. Priklausomai nuo informacijos apdorojimo mP trukmės pauzė gali trukti nuo vieno iki kelių desimčių taktų. Vidutinė komandos vykdymo trukmė apskaičiuojama taip:

,

čia TT - takto trukmė, n - mP komandų skaičius, fk - k-osios komandos vykdymo daznis, mk - k-osios komandos taktų skaičius.

Mikroprocesoriaus veikimo spartinimo būdai

mP darbo greičiui padidinti galima isnaudoti pakankamos trukmės pauzes vienos ar net kelių nuoseklių komandų isrinkimui ir įrasymui į vidinius registrus (45 pav., b). Tačiau, kai pasikeičia komandų vykdymo eiliskumas (pvz., iskviečiama paprogramė) įrasytųjų komandų nebegalima panaudoti.

2. Komandų isrinkimas uzima gana daug laiko. Sumazinti isrinkimų skaičių ir tuo pačiu paspartinti mP veikimą galima naudojant sudėtingesnes komandas (46 pav.).

46 pav. Veikimo spartinimas naudojant sudėtingą komandą:

a) - kiekvieną mP registrą valdo atskira komanda; b) - visus mP registrus valdo viena komanda

. Veikimo sparta didėja informaciją apdorojant konvejeriniu būdu (Pipelined), kai ilgai trunkanti operacija yra suskaidoma į trumpesnes ir jos atliekamos nuosekliai sujungtuose įtaisuose, viena paskui kitą. Kad operacija bus atlikta sparčiau, nesunku suvokti įsivaizduojant, pavyzdziui, automobilio surinkimą. Jeigu visą automobilį tektų surinkti vienoje darbo vietoje, tai uztruktų ne vieną valandą. Jį surenkant ant konvejerio, kuriame yra 10 darbo vietų jo surinkimas bus suskaidytas į 10 vienodos trukmės viena po kitos atliekamų operacijų, tai automobilis bus surinktas mazdaug desimt kartų greičiau.


47 pav. Instrukcijos apdorojimas konvejeriniu būdu mP 486 DX2

mP konvejeriniu būdu yra apdorojamos instrukcijos, pavyzdziui, mP 486 programos instrukcija yra apdorojama penkiais ciklais: ji yra skaitoma, per du ciklus dekoduojama, vykdoma ir įrasoma (47 pav.). Athlon procesoriaus konvejerį sudaro 12, o Pentiun 4 net 22 ciklai. Trumpinant ciklus (ilginant konvejerį), galima padidinti procesoriaus darbo daznį (Pentium 4), bet apsirikus ilgiau reikia daugiau laiko konvejeriui isvalyti (mazėja darbo sparta).

Apie mikroprocesorių konstrukcijas

mP konstrukcija, korpuso forma, kontaktų skaičius ir jų isdėstymas priklauso nuo jo sudėtingumo. 8 bitų mP buvo pailgo stačiakampio formos ir turėjo 40 kontaktų (48 pav., a). 16 bitų mP kontaktų skaičius nevienodas (48 pav. b). mP 8086 jų turi daug maziau uz MC38000 ir 80286, nes 8086 mikroprocesoriuje tie patys kontaktai naudojami perduoti zemiausiam adresų baitui ir duomenims. Be to mP 80286 korpusas yra kvadratinis ir kontaktai isdėstyti dviem eilėmis. Tokia forma ir kontaktų isdėstymas buvo pradėti naudoti, kai buvo įsisavinta daugiasluoksnių ploksčių gamyba ir yra būdingi siuolaikiniams sudėtingiems mP. Pavyzdziui, mP i386DX turėjo 132, o i486DX - 168 kontaktus isdėstytus trimis eilėmis. Kvadratinės formos yra ir mP Pentium ir kiti procesoriai. Pentium II buvo arytas is kelių mikroschemų sumontuotų plokstėje, kurios gnybtai (liezuvėliai) yra isdėstyti eilėmis abiejose plokstelės pusėse.

48 pav. Kai kurie 8 ir 16 bitų mP

Isvadų skaičiui sumazinti ir mikroschemai atpiginti, kai kada duomenis ir adresus perduoda tais pačiais kontaktais (pvz., mP 8086, 8088, Z8001) arba isorinę duomenų magistralę daro siauresnę uz vidinę (pvz., 8088, i386SX).

Adresų ir duomenų magistralių sugretinimas.

Nesugretintos magistralės pirmojo takto (49 pav.) metu duomenų magistralė nenaudojama. Sugretinus adresų ir duomenų magistrales, sio takto metu duomenų magistrale perduodamas adresas. 49 paveikslėlyje parodyta 8 bitų mP magistralės laiko diagrama, kai duomenų magistrale perduodamas adreso LSB baitas.

49 pav. Sugretintų adresų ir duomenų magistralių laiko diagrama

Pirmojo takto T1 metu bendra magistrale AD7 - AD0 perduodamas zemiausiasis adreso baitas. Jį įsimena specialus registras (50 pav.), kurį atidaro signalo ALE frontas. Registro isvestyse adresas laikomas tol, kol signalo ALE lygis aukstas. Taip perduodamas zemiausiasis (LSB) adreso baitas. 50 paveikslėlyje parodyta sugretintų adresų ir duomenų magistralių sandara.

 

50 pav.

Mikroprocesoriaus valdymo signalai.

mP valdymo signalai priklauso nuo mP tipo, tačiau pagrindiniai yra būdingi visiems mP. Pavyzdziui, mP Z80 valdymo signalai yra tokie: INT - sąlyginis pertraukimas (Interruption); NMI - besąlyginis pertraukimas; HALT - mP sustabdymas; MREQ - operacijos su atmintine iskvietimas; IORQ - įvesties (isvesties) iskvietimas; RD - atmintinės skaitymas; WR - rasymas į atmintinę; BUSAK - leidimas kreiptis tiesiog į atmintinę; WAIT - pauzė; BUSRQ - tiesioginio kreipimosi į atmintinę reikalavimas; RESET - mP grązinimas į pradinę būseną; MT - ciklo pradzios signalas; RFSH - dinaminės atmintinės regeneravimo signalas.

MIKROPROCESORINIŲ ĮTAISŲ ATMINTINĖS

Kiekvienas MĮ turi didesnės ar mazesnės talpos atmintinę (1 pav.). MĮ atmintinėje sau­gomos progra­mos, pradiniai ir tarpiniai duomenys, o taip pat informacijos apdorojimo rezul­tatai. MĮ vidinės atmintinės yra puslaidininkinės. Atmintinės tipas parenkamas priklausomai nuo jos paskirties.

Atmintinių tipai ir parametrai

Atmintinių tipai

Pagal funkciją atmintinės skirstomos į:

Operatyviąją atmintinę (RAM). Į ją informaciją galima įrasyti ir is jos skaityti realiu laiku.

Pastoviąją atmintinę (ROM). Joje esančią informaciją galima skaityti realiu laiku, o ją įrasyti galima tik vieną kartą arba jai perrasyti sugaistama daug laiko. Informacija atmintinėje islieka ir isjungus maitinimą.

Operatyvioji atmintinė skirstoma į:

- Statinę atmintinę (SRAM - Static RAM), kuri saugo informaciją tol, kol valdymo signalu ji bus pakeista.

- Dinaminę atmintinę (DRAM - Dinamic RAM), kurioje esančią informaciją visą laiką reikia regeneruoti.

Pastovioji atmintinė skirstoma į:

- Neprogramuojamą atmintinę, į kurią programa įrasoma gamybos metu sudarant tam tikrą mikroschemos struktūrą.

- Programuojamą atmintinę (PROM - Programmable ROM, EPROM - Electrical PROM, EEPROM - Electrical Erasable PROM), į kurią galima įrasyti programą ar duomenis. Informacija į PROM tipo atmintinę įrasoma stipria elektros srove nudeginant joje esančius sujungimus, todėl į ją informaciją įrasyti galima tik vieną kartą. Į EPROM tipo at­mintinę informacija įrasoma įkraunant krūvius, kurie islieka ilgą laiką (keletą metų). Informacija istrinama apsvietus mikroschemą ultarvioletiniais spinduliais per specialų langelį. Į tokią atmintinę informaciją galima įrasyti daug kartų. Į EEPROM atmintinę informacija įrasoma ir is jos trinama elektriniu signalu po baitą, t.y. informaciją galima keisti dalimis.

- "Flash" tipo atmintinę, į kurią informaciją normaliu signalu galima sparčiai is jos skaityti ir palyginti sparčiai įrasyti. Joje įrasyta informacija neisnyksta isjungus maitinimą. Todėl ji dazniausiai atlieka pastoviosios atmintinės funkcijas ir nesiojamose įtaisuose pradedama naudoti vietoje tradicinių informacijos kaupiklių. Jos yra kompaktiskos, bet palyginti brangios. Ateityje "Flash" tipo atmintinės gali pakeisti isorinius kaupiklius. "Flash" tipo atmintinė yra viena is EEPROM modifikacijų.

- Isorinius informacijos kaupiklius (pvz., diskinį, disketinį, CD-ROM).

Operatyvioji atmintinė yra skirta įkrautoms programoms, tarpiniams informacijos apdorojimo bei galutiniams rezultatams saugoti. Isjungus maitinimą, informacija is RAM isnyksta. Statinės atmintinės (SRAM) yra sudarytos is trigerių, todėl jos informaciją saugo tol, kol valdymo signalas pakeičia trigerio būseną. Tokios atmintinės yra spartesnės, paprasčiau valdomos, bet brangesnės ir ne tokios kompaktiskos kaip DRAM. Dinaminės atmintinės sudarytos is elementų, kurie tik trumpam įsimena informaciją (pvz., krūvį MOP tranzistoriaus uztūros parazitinėje talpoje). Tokios atmintinės yra pigesnės, kompaktiskesnės ir vartoja ma­ziau energijos. Todėl jos labai paplito, nepaisant sudėtingesnio valdymo ir lėtesnio veikimo. Pastovioji atmintinė naudojama MĮ funkcionavimo valdymo programai ir nekintantiems duomenims saugoti.

Pagrindiniai atmintinių parametrai

Bendrieji parametrai:

Veikimo sparta. Ji priklauso nuo dviejų kreipimosi laikų (Access Time) tRAC (kreipimosi trukmė pasirodzius signalui RAS), tCAC (kreipimosi trukmė pasirodzius signalui CAS) ir skaitymo ciklo trukmės tRC. (Read Cycle Time).

SRAM atmintinių minimalus kreipimosi laikas tRAC yra kelios ns, DRAM - 30 ns, PROM - 100 ns. SRAM ir PROM tipo atmintinių kreipimosi laikas gali būti lygus takto ilgiui, DRAM jis turi būti mazesnis.


51 pav. Firmos "Intel" RAM atmintinių mikroschemų pavyzdziai

Atmintinės talpa (Memory Size). Ji matuojama bitais (baitais), Kbitais (KB) ir Mbitais (MB). Pavyzdziui, mikroschemos 21256 ir 21464 (51 pav.) yra 256144 bitų talpos RAM, o mikroschemos 21010 talpa yra 1048576 bitai. Mikroschemų rinkinio iSM001DR09 sudaryto is 9 1048576 bito talpos mikroschemų talpa yra 1048576 baitų, nes 9-oji mikroschema yra skirta lygiskumo kontrolei.

Atmintinės organizacija. Nuo jos priklauso talpinamų zodzių skaičius ir zodzio ilgis. Ji koduojama zodzių skaičiaus ir zodzio ilgio sandauga. Pavyzdziui (51 pav.), mikroschema 21256 talpina 256144 vieno bito ilgio zodzius (256144 x 1). Ji turi po vieną kontaktą duomenims įvesti ir isvesti. Tos pačios talpos mikroschema 21464 talpina 65536 keturių bitų ilgio zodzius (65536 x 4). Ji turi keturis sugretintus kontaktus duomenims įvesti ir isvesti. Mikroschema 21010 talpinanti 1048576 bitus turi po vieną kontaktą duomenims įvesti ir isvesti, todėl ji talpina 1048576 vieno bito zodzius. ISM001DR09 yra 1M x 9 (1048576 x 9). Ji talpina 1048576 devynių bitų zodzius.

Suvartojamoji galia (Power Consumption). Dinaminės atmintinės yra gerokai ekonomiskesnės uz statines.

Maitinimo įtampos. 51 paveikslėlyje parodytų mikroschemų maitinimo įtampa VCC = +5V.

Konstrukcija. Mazos talpos atmintinės yra DIP (Dual-In-Line) korpusuose, didesnės SIMM (Single In-Line-Memory Module) mikroschemų rinkiniuose, kai vienoje plokstelėje yra sumontuotos kelios mikroschemos (51 pav.). Jos yra 8(9) bitų (256 KB, 1, 4, 16 MB talpos) ir 32(36) bitų (1, 4, 16, 32 MB talpos). Dar didesnės talpos atmintinėms naudojami DIMM (Dual In Line Memory Module) rinkiniai, kurie turi atskirtus 168 kontaktus abiejose plokstelės pusėse. DIMM modulių talpa yra 64, 128, 256 ir 512 MB.

Statinių (SRAM) atmintinių mikroschemos

Statinės 8 Kbitų x 8 atmintinės mikroschemos struktūra parodyta 52 paveiksle.

I/O

įvesties ir isves­­ties duomenys

WE

įrasymo leidi­mas

CS1

CS2

mikroschemos isrinkimas

OE

skaitymo leidi­mas

 

52 pav. 64 Kbitų statinės atmintinės mikroschemos kontaktų isdėstymas (a) ir struktūra (b)

Atmintinėje telpa 8192 astuonių bitų zodziai. Kiekvienas zodis įrasomas ir skaitomas lygiagrečiai per astuonis kontaktus (I/O0 - I/O7). Joje yra 13 kontaktų (213 = 8192) adresams (A0 - A12). Atmintinė valdoma 4 signalais (WE, OE, CS1, CS2). Atmintinės elementai (trigeriai) sudaro 256 x 256 matricą. Eilutė isrenkama dekoduojant 8 vyriausiuosius (MSB) adreso bitus (A5 - A12), o stulpelis - desifruojant jauniausiuosius (LSB) 5 adreso bitus (A0 - A4). Desifruojamos 256 eilutės ir 32 stulpeliai, kurių kiekviename yra 8 bitų zodis. Kai atmintinę sudaro kelios mikroschemos, į kurią jų informaciją rasyti ar is kurios ją skaityti, nurodo signalai CS2 ir CS1. Nagrinėjama mikroschema yra isrenkama, kai CS2 =1, C1 = 0. Informacija įrasoma, kai WE = 0, o skaitoma, kai OE = 0. Jeigu jie pasirodo vienu metu WE uzdraudzia OE. 53 pav. parodytos nagrinėjamos mikroschemos laiko diagramos.

Gw atviras

 

53 pav. Statinės RAM skaitymo ir rasymo ciklų diagramos

Skaitant duomenis pirmiausia randamas adresas, po to isrenkama mikroschema ir tik tada siunčiamas signalas, kuris leidzia skaityti duomenis. Į duomenų magistralę (I/O) duome­nys is atmintinės isvedami per ventilį GR.

Duomenų skaitymo ciklo diagramoje (53 pav., a) pazymėti tokie laikotarpiai:

tACC - duomenų isrinkimo laikas. Jį sudaro laikotarpis nuo adreso atsiradimo iki duomenų isvedimo pradzios;

tCS - laikotarpis nuo kristalo isrinkimo (Cristal Select) iki duomenų isvedimo pradzios;

tOE - laikotarpis nuo momento, kai signalas OE (Output Enable) tampa lygus 0, iki duomenų isvedimo pradzios;

tOEE - laikotarpis nuo momento, kai signalas OE (Output Enable) tampa lygus 0, iki atsidaro ventilis GR;

tOD - laikotarpis nuo momento, kai signalas OE (Output Enable) tampa lygus vienetui iki uzsidaro ventilis GR (Output Disabled);

tOH - laikotarpis, kurį adresui pasikeitus duomenys islaikomi nepakitę (Output Hold Back);

tRC - duomenų skaitymo ciklo trukmė (Read Cycle).

Duomenis įrasomi panasiai kaip ir skaitomi, tik, vietoje signalo leidziančio skaityti duo­menis, atsiunčiamas signalas leidziantis rasyti duomenis. Duomenys į atmintinę is duomenų magistralės (I/O) įvedami per ventilį GW .

Duomenų įrasymo ciklo diagramoje (53 pav., b) pazymėti tokie laikotarpiai:

tCSW - laikotarpis nuo mikroschemos isrinkimo iki duomenų įrasymo (Crystal Select Write);

tWP - laikotarpis, kada signalas WE yra lygus nuliui;

tOS - laikotarpis duomenimis įrasyti;

tAS - laikotarpis nuo adreso suradimo iki tol, kol WE pasidaro lygus nuliui;

tDH - laikotarpis kurį, po to kai WE pasidaro lygus vienetui, įrasomieji duomenys nekinta (Data Hold Back);

tWC - duomenų įrasymo ciklas (Write Cycle).

Statinių atmintinių valdymas nesudėtingas, jas galima valdyti mikroprocesoriaus signalais. 54 paveiksle parodyta 64K x 16 bitų atmintinės sudarytos is 8K x 8 bitų mikroschemų struktūra.

Atmintinę sudaro 8 mikroschemų poros. Virsutinėse mikroschemose talpinamas auksčiausiasis duomenų baitas, o apatinėse - zemiausiasis. Poras isrenka trys vyriausieji adreso bitai, nes kiekvienoje poroje telpa 8K sesiolikos bitų zodzių. Zodzius isrenka pirmieji trylika adreso bitai. Auksčiausiąjį ir zemiausiąjį baitus isrenka atskiri signalai.

Is daugelio mikroschemų sudaryta atmintinė gali būti suskirstoma moduliais, kurie isrenkami panasiai, kaip mikroschemų poros.

Reikalui esant tarp mP ir atmintinės jungiami magistralės signalų formuotuvai.

Dinaminės atmintinės

 

  55 paveiksle parodyta 256K x 1 bitų dinaminės atmintinės struktūra.

Duomenys įvedami (D) ir isvedami (Q) atskirai. Adresui įvesti yra 9 kontaktai (A0 - A8). Adresą sudaro 18 bitų (218 = 262144). Pirmiausia siunčiami auksčiausieji bitai. Registrai įsimena atmintinės eilutę ir stulpelį. Eilutės adresą skaito signalas RAS (Row Adress Strob), o stulpelio - CAS (Column Adress Strob). Signalas WE (Write Enable) valdo rasymą į atmintinę. Eilučių desifratorius isrenka eilutę, stulpelių desifratorius - stulpelį. Duomenys įsimenami įkraunant talpas. Naudojami du duomenų įrasymo būdai:

pav. 64 x 16 bitų statinės atmintinės struktūra

Atmintinės elementų matrica

 
- isankstinis duomenų įrasymas, kai is įvesties D paimti duomenys įrasomi per stulpelių desifratoriaus isrinktą skaitymo stiprintuvą. Duomenų isvestis Q yra atjungta;

- duomenų skaitymas ir įrasymas, kai ląstelėje esantys duomenys perskaitomi ir perduodami į isvestį Q, o po to įrasomi nauji duomenys is įvesties D.

Atmintinėje duomenys regeneruojami juos skaitant, rasant arba specialiai kas kelios ms, per eilučių skaitiklio (57 pav.) signalais valdomus stulpelių desifratorių ir skaitymo stiprintuvą. Kiekvieną mikroschemą galima regeneruoti nepriklausomai nuo kitų.

56 paveiksle parodytos dinaminės atmin­tinės skaitymo ir rasymo į ją laiko diagramos.

55 pav. Dinaminės 256 Kbitų atmintinės mikroschemos sandara

Pirmiausia paduodamas eilutės isrinkimo signalas RAS (Row Adress Selection). Po to - stulpelio isrinkimo signalas CAS (Column ...). Skaitymo ciklo metu signalas WE = 1. Intervalai tRAS ir tRF atitinka minimalų laiką, kurį signalo RAS reiksmė yra lygi 0 arba 1. tRAS + tRF = tRC yra minimali skaitymo ciklo trukmė. Rasymo ciklo trukmė yra tWC. Visų laiko diagramose nurodytų laikotarpių minimalios reiksmės yra duodamos mikroschemos dokumentacijoje. Is laiko diagramų matyti, kad dinaminių atmintinių valdymas yra sudėtingas. Joms valdyti naudojami specialūs valdikliai, kurie laike suderina valdymo ir regeneravimo signa­lus. Tokio valdiklio struktūrinė schemos pavyzdys parodytas 57 paveiksle.

56 pav. Dinaminės atmintinės skaitymo ir rasymo į ją ciklų laiko diagramos

Valdiklis is mP signalų suformuoja signalus atmintinei valdyti ir regeneruoti bei suderina mP ir regeneravimo signalus, kurie yra nepriklausomi vienas nuo kito. Tam skirtas arbitras. Pavyzdziui, jeigu atmintinės skaitymo - rasymo ciklo metu ateina regeneravimo signalas, jis yra sulaikomas iki operacijos pabaigos ir atvirksčiai. Regeneravimo laikrodis nustato regeneravimo periodą. Adreso komutatorius perduoda auksčiausiuosius arba zemiausiuosius adreso bitus is adresų magistralės, arba eilučių adresus atmintinės regeneravimui. Atmintinių darbo patikimumui padidinti kiekvienam atmintinės zodziui yra skirtas papildomas lygiskumo bitas į kurį, pavyzdziui, rasomas nulis, kai vienetų skaičius zodyje lyginis arba vienas, kai jis nelyginis. Skaitant atmintinę lygiskumas tikrinamas. Tai padeda pastebėti klaidą vienoje zodzio skiltyje. Kai kada naudojamos schemos istaisančios 1 ir randančios dvi klaidas.

2.7 pav. Dinaminés atminties valdiklio struktúriné schema

 


57 pav. Dinaminės atminties valdiklio struktūrinė schema

Greitoji puslapiuojama (Fast Page Mode - FPM) DRAM

Tokios DRAM veikimas skiriasi nuo paprastos DRAM veikimo tuo, kad kai signalo RAS lygis pasidaro zemas isrenkama eilutė ir po to keičiant tik signalą CAS yra kreipiamasi is eilės į kelis tos pačios eilutės stulpelius. Taip sutaupoma laiko, informacija paimama arba įrasoma per maziau ciklų.


58 pav. Greitosios puslapiuojamos DRAM supaprastintos veikimo diagramos

DRAM su kaupykle isvestyje (Extended Data Output DRAM - EDO DRAM)

EDO DRAM kiekvienoje isvestyje turi kaupyklę (Gate Latch), į kurią įrasyta informacija islieka iki tol kol CAS lygis pasidaro zemas, t.y. stulpelio isrinkimo metu. Dėl to CAS impulsų daznis gali būti didesnis. Tokios atmintinės tinka naudoti MĮ, su sisteminėmis magistralėmis, kurių darbo daznis siekia 66 MHz (skaitymo - rasymo ciklas, 59 pav.).


59 pav. DRAM su kaupykle isvestyje supaprastintos veikimo diagramos

DRAM su registru isvestyje (Burst EDO DRAM - BEDO DRAM)

Jos turi vidinį keturių adresų skaitiklį ir kaupyklę keturiems isvedamiems duomenims. Todėl keturių duo­menų sekai nuskaityti pakanka nurodyti tik pirmojo duomens adresą, o duomenis is registro galima pradėti isvesti vėliau ir greičiau. Jos tinka MĮ, kurių magistralė dirba 66 MHz.

Sinchroninės DRAM (SDRAM)

SDRAM atmintinės valdymo signalus sinchronizuoja su mP taktiniais impulsais. Joms signalą mP gali pasiųsti nepriklausomai nuo to ar atmintinė uzimta ar ne, ir uzsiimti kitu darbu, kol gaus is jos duomenis. SDRAM sparčiai siunčia ir priima tik tuos duomenis, kurie telpa į kaupykles. Jos tinka MĮ, kurių magistralė dirba 100 MHz ir didesniu dazniu.

DDR SDRAM (Duble Data Rate SDRAM)

Tai atmintinės dvigubai spartesnės uz SDRAM, nes duomenys skaitomi ir įrasomi taktinio impulso pradzioje ir pabaigoje. Naudojamos, kai sisteminės magistralės darbo daznis yra didesnis uz 100 MHz.

RD RAM (RamBus RAM)

RD RAM kol kas sparčiausios atmintinės, rysiui su procesoriumi naudojančios atskirą magistralę (ne sisteminę).

Programuojamosios atmintinės

Dabar plačiausiai naudojamos elektriniu signalu programuojamosios atmintinės (EPROM).

Kai kurių informaciją galima istrinti ultravioletiniais spinduliais ir įrasyti naują. Tokių amintinių talpa svyruoja nuo kelių KB iki desimčių KB, o zodį sudaro 8 arba 16 bitų. 60 paveiksle parodyta firmos "Intel" programuojamos atmintinės 27C256 (32KB x 8 CHMOS EPROM) konstrukcija ir struktūra.

8 stulpelius, kurių zodis yra 8 bitai isrenka pirmieji trys adresai (8x8 = 64 bitai), o eilu­tes - likę 12 adresų (4069 bitai). Mikroschema isrenkama signalu CE, o duomenys isvedami signalu OE.

Pries programuojant visi bitai atmintinėje yra "1". Kur įrasyti 8 bitus nurodo adreso kodas paduodamas per adresų kontaktus. Programuojant mikroschemą į įvestį VPP paduodama 12,5 V įtampa, CE lygis yra zemas, OE - aukstas, o duomenys paduodami į isvesties gnybtus. Įrasius duomenį, paduodamas zemas OE lygis ir įvesta informacija palyginama su esančia programoje. Jeigu įrasyta gerai, rasomas kitas baitas ir t.t. Programavimo paspartinimui vietoje absoliučiai patikimai įrasančio ilgo signalo naudojamas ciklinis įrasymas ir kontrolė, kai bandoma įrasyti trumpais signalais is karto patikrinant rezultatą. Toks būdas kelis kartus sumazina atmintinės programavimo trukmę. Siai atmintinei uzprogramuoti pakanka 4s. Informacija trinama 2537 mm bangos ilgio sviesa. Kadangi dienos sviesos lempos ir saulė skleidzia 3000 - 4000 mm bangos ilgio sviesą, is kambario sviesoje laikomos EPROM mikroschemos informacija gali issitrinti per 3 metus, o apsviečiant tiesioginiais saulės spinduliais - net per savaitę. Kad taip neįvyktų, mikroschemos langelį reikia uzklijuoti neskaidria medziaga. Norint pakeisti programą, tokią atmintinę reikia isimti is MĮ ir techniniame aprasyme nurodytą laiką svitinti duoto tipo ir galios sviesos saltiniu.

60 pav. EPROM 27C256 konstrukcija (a) ir sandara (b)

Į EEPROM tipo programuojamąsias atmintines informacija įrasoma ir is jų istrinama elektriniu signalu, jų neisimant is MĮ. Informaciją į jas galima įrasyti ir istrinti po zodį (pvz., po baitą). Tokių atmintinių skaitymo ciklo trukmė yra artima DRAM skaitymo trukmei, tačiau rasymo ir trynimo trukmė yra kelios ms. Pakeisti informaciją jose galima desimtis tūkstančių kartų. EEPROM mikroschema paprastai turi papildomą kontaktą per kurį paduodamas signalas RE leidziantis skaityti informaciją.

Populiariausios EEPROM tipo atmintinės yra "Flash". Jos perrasomos kompiuterio elektriniais signalais, jas galima trinti ne tik po baitą ir blokais. Jos naudojamos BIOS saugoti, taip pat vietoje disketinių ir diskinių kaupiklių, nesiojamuose MĮ (pvz., skaitmeniniuose fotoaparatuose ir vaizdo kamerose). Jos yra daug mazesnės, patikimesnės, spartesnės (ms ir ms) ir ekonomiskesnės (0,5 W ir 2 - 8 W) uz kaupiklius. Jų talpa siekia simtus MB ir net GB.

Informacijos pasikeitimo tarp mP ir atmintinės spartinimo būdai

Siuolaikinių MĮ duomenų magistralių informacijos perdavimo ir atmintinių darbo sparta yra gerokai mazesnė mP darbo spartą. mP taktiniai dazniai siekia GHz. Esant tokiems dazniams desimtys ns, reikalingos kreipimuisi į atmintinę, stabdo MĮ darbą. Pavyzdziui, DRAM, kreipimosi trukmė į kurią yra 10 ns, pasiruosia tuo pačiu adresu priimti kitą infor­macijos porciją mazdaug per 25 ns. Su tokia atmintine be pauzių galėtų dirbti mP, kurio darbo daznis yra apie 1/25 GHz, arba 40 MHz. Informacijos perdavimo spartą tarp mP ir atmin­tinės padidina "puslapiuodami" atmintinę, naudodami "Ping Pong" metodą, įterpdami tarp mP ir DRAM greitesnę SRAM buferinę atmintinę (61 pav.), vadinamą spartinančiąja (Cashe) atmintį.

Dabar gaminamos DRAM atmintinės konstruojamos taip, kad padavus ilgos trukmės signalą RAS, kuris isrenka adreso eilutę, signalais CAS is eilės yra isrenkami tik atmintinės stulpeliai. RAS signalo trukmė nustato puslapio ilgį. Aprasytai mikroschemai 21256 dirbant puslapiavimo rezimu (Faste Page Mode) tRASP gali būti keičiama nuo 80 iki 10000 ns. Dirbant siuo rezimu nebereikia pakartotinai isrinkinėti eilutės adreso.

"Ping Pong" metodu, vienas paskui kitą einantys adresai nukreipiami skirtingoms atmintinės sche­moms. Taip sumazinamas kreipimosi į atmintinės mikroschemą daznis ir visa atmintinė veikia sparčiau, nes kol kreipiamasi į kitas mikroschemas pirmoji gali "pailsėti". Todėl atmintinė sudaryta is kelių tokios pat veikimo spartos mikroschemų gali veikti greičiau uz vienos mikroschemos atmintinę.

61 pav.

Spartinančioji atmintis

Spartinančioji atmintis (SA)

SA saugomi procesoriui duotuoju momentu reikalingi duomenys. Procesorius reikalingų duomenų iesko pirmiausia spartesnėje SA ir, tik jų ten neradęs, kreipiasi į pagrindinę RAM. Jeigu kreipimosi trukmė į SA yra tSA, į RAM - tRAM, o tikimybė, kad reikalingų duomenų SA nėra p, ekvivalentinė kreipimosi į RAM trukmė tc bus:

tc= tSA + p tRAM

Pirminė SA visada yra pačiame mP, o antrinė procesoriuje arba jo isorėje.

Antrinės SA talpa paprastai būna lygi keliems RAM talpos procentams, pavyzdziui, 16 - 64 MB RAM dazniausiai naudoja 512 KB SA. Tokios SA efektyvumas siekia 95%. Tai reiskia, kad mP joje randa 95% reikalingų duomenų. Pirminės SA talpa būna nuo kelių iki kelių desimčių KB.

Jeigu mP jam reikalingų duomenų SA neranda, jis sustabdo programos vykdymą ir seniausiai vartoti duomenys yra iskeliami į RAM (antrinę SA), o reikalingi duomenys is RAM (antrinės SA) įrasomi į SA. Duomenų apsikeitimas vykdomas blokais. SA efektyvumas yra vertinamas nevaisingų ir vaisingų mP kreipimosi į SA skaičiaus santykiu. SA ne tik paspartina mP ir atmintinės apsikeitimą informacija, bet taip pat sumazindama MĮ magistralės apkrovimą, leidzia ja naudotis kitiems MĮ blokams, tuo dar paspartindama MĮ. SA efektyvumas labai priklauso nuo jos struktūros, valdymo algoritmo ir duomenų isdėstymo atmintinėje.

Pagal veikimo principą skiria dviejų tipų spartinančias atmintines:

Write-Back (V/B) SA. Į ją pagrindinis mikroprocesorius informaciją raso kiekvieno rasymo ciklo metu, tačiau į pagrindinę RAM ją perkelia tik prireikus.

Write-Through (V/T) SA, kai pagrindinis mikroprocesorius kiekvieno rasymo ciklo metu informaciją raso ir į spartinančiąją atmintinę ir mikroprocesorinio įtaiso RAM. Todėl ji yra lėtesnė uz V/B.

Tiesioginio kreipimosi į atmintinę rezimas

Normaliai informacija į RAM yra įvedama ir isvedama per magistralę bei mP. Informacijos perdavimas per mP reikalauja papildomo laiko. Kai į RAM reikia įvesti arba is jos isvesti informaciją greičiau negu tai gali atlikti mP, naudojamas tiesioginio kreipimosi į atmintinę rezimas (DMA - Direct Memory Accses). Sį darbo rezimą valdo specialus valdiklis, kuris, gavęs pertraukimo signalą, sustabdo mP ir atmintinę per magistralę sujungia su prievadu, per kurį informaciją reikia įvesti arba isvesti. Jis naudojamas ir perkeliant informaciją is vieno atmintinės bloko į kitą.

Siuolaikiniai PK naudoja pagrindinę PCI magistralę ir AGP magistralę duomenims tarp RAM ir grafinės plokstės perduoti. AGP magistralė ne tik paspartina duomenų perdavimą tarp RAM ir grafinės plokstės, bet ir nukrauna mP bei pagrindinę magistralę.

2004 metais vietoje PCI magistralės, kurios maksimali duomenų perdavimo sparta yra 133 Mb/s, pradedama naudoto PCI-X (PCI eXtended) magistralė, kurios maksimali sparta yra 1 Gb/s. Įdiegus sią magistralę, nebereikės vietinės AGP magistralės.

ISORINIŲ ĮRENGINIŲ SĄSAJOS

Isoriniai įrenginiai (pvz., analoginis skaitmeninis keitiklis, klaviatūra) su MĮ sujungiami per sąsajas. Labiausiai paplito nuoseklioji ir lygiagrečioji sąsaja.

Sąsaja ir sąsajos valdiklis

Sąsaja su MĮ magistrale yra sujungiama per įvesties/isvesties (I/O - Input/Output) prievadą (Port). Pati primityviausia sąsaja susideda is įvesties prievado, kurį sudaro trijų būsenų ventiliai ir isvesties prievado, kurį sudaro registras (62 pav.). Į MĮ visi duomenys įvedami per įvesties, o isvedami per isvesties prievadą. Duomenų įvedimą ir isvedimą per tokią sąsają turi valdyti programa, todėl ji papildomai apkrauna MĮ ir lėtina jo darbą. 62 paveiksle magistralę su isoriniu įrenginiu ir atvirksčiai sujungia impulsas C, valdantis tribūvius elementus ir registrą. Sąsaja taip pat turi suderinti MĮ ir isorinio įrenginio signalų parametrus. Sąsajas stengiamasi standartizuoti ir daryti galimai autonomiskesnes. Sąsajų universalumui padidinti jos daromos programuojamos. Su MĮ ir isoriniu įrenginiu jos suderinamos įrasant į specialius registrus tam tikras bitų kombinacijas. Kai kurios sąsajos gali savarankiskai atlikti labai sudėtingas funkcijas. Kokias funkcijas atlikti sąsajai nurodo mP arba isorinis įrenginys, įrasydamas komandą į specialų komandų registrą. Tokias sąsajas daznai vadina valdikliais (Controler).

Is desifra-toriaus

 

62 pav. Paprasčiausios sąsajos sandara

Kadangi sąsaja turi būti suderinama su mP magistrale, o įvairių mP magistralės skiriasi, kartu su mP gaminamos su juo suderinamų sąsajų ir valdiklių mikroschemos. Valdikliais vadina ir labai sudėtingus MĮ, turinčius savyje mP, atmintines ir sąsajas, skirtus įvairiai įrangai valdyti. Dabar jie daznai būna vienoje mikroschemoje.

MĮ keičiantis informacija su isoriniu įrenginiu yra atliekami tokie veiksmai:

Nurodomi adresai MĮ atmintinėje, kur bus rasomi ar is kur bus imami duomenys, ir isorinio įrenginio su kuriuo bus keičiamasi informacija, adresas.

Nustatoma ar isorinis įrenginys yra pasiruosęs keistis informacija.

Valdomas isorinis įrenginys (pvz., patraukiamas popierius spausdintuve).

Perduodami duomenys.

Baigiamas informacijos keitimosi procesas.

Pagal adresavimą skiria du sąsajų tipus:

1. Sąsajas su izoliuota magistrale, kai MĮ ir isorinių įrenginių adresai skiriasi. Tuomet mP turi atskiras komandas duomenimis su MĮ atmintine ir isoriniais įrenginiais apsikeisti. Pavyzdziui, mP 8080 duomenimis su isoriniais įrenginiais keistis naudojamos komandos IN (įvedimui) ir OUT (isvedimui), o keitimasis duomenimis valdomas signalais I/OR (įvedimo) ir I/OW (isvedimo). Duomenų apsikeitimui su MĮ atmintine naudojamos komandos, pvz., Mov r,M (is atmintinės į registrą) ir Mov M,r (is registro į atmintinę). Tokios sąsajos trūkumas, kad pasikeitimas vyksta tik per akumuliatorių ir, kai jis uzimtas, tenka jo turinį iskelti kitur, o po pasikeitimo jį grązinti atgal. Tai mazina MĮ spartą.

2. Sąsajas su bendra magistrale, kai dalis MĮ atmintinės adresų yra skiriama isoriniams įrenginiams. Tuomet mP į isorinius įrenginius ir atmintinę kreipiasi tomis pačiomis komandomis. Kai pagrindinis mP turi duomenų perdavimo tarp atmintinės ląstelių komandą, per to­kią sąsają, isoriniai įrenginiai aplenkdami mP, gali keistis informacija su daugiau mP bendrosios paskirties registrų ir tarpusavyje.

Proceso informacijai įvesti ir isvesti organizavimo principai

Informaciją įvesti ir isvesti galima trimis būdais:

Programiniu būdu, kai procesą valdo mP, o isorinis įrenginys tik pranesa apie savo bū­seną.

Naudojantis pertraukimais, kai isorinis įrenginys generuodamas pertraukimo signalus praso priimti arba atsiųsti informaciją.

Tiesioginio kreipimosi į atmintinę būdu, kai informacijos perdavimo procesą valdo tiesioginio kreipimosi į atmintinę (DMA) valdiklis ir ji perduodama aplenkiant mP.

Perduodamą informaciją sudaro duomenys ir valdymo (komandiniai) zodziai, kuriuos siunčia mP, bei valdymo (būsenos) zodziai, kuriuos siunčia isorinis įrenginys. Komandiniai zodziai valdo informacijos perdavimo procesą (pvz., "paleisk įrenginį", "uzdrausk pertraukimą"). Būsenos zodziai charakterizuoja isorinio įrenginio būseną (pvz., "informaciją priimti pasiruosęs", "pastebėjau klaidą"). Komandinį zodį daznai sudaro vienas baitas, naudojami ir ilgesni zodziai. Valdymo signalai įrasomi į registrus. Bendruoju atveju reikalingi keturi registrai: įvesties prievadas, isvesties prievadas, komandos ir būsenos registras. Kiekvienas jų turi savo adresą. Registro talpa priklauso nuo skirtingų signalų skaičiaus.

Programinis informacijos įvedimas ir isvedimas

Keičiantis informacija programiniu būdu, visus veiksmus valdo programuotojo sudaryta programa. Paprasčiausia valdyti įrenginius, kurių nereikia paruosti informacijai priimti ar perduoti (pvz., skystųjų kristalų ar spinduolių indikatorius). Informacija su tokiais įrenginiais keičiamasi besąlyginiu būdu komandomis OUT ir IN.

Kai reikia patikrinti ar isorinis įrenginys pasiruosęs vykdyti įvesties - isvesties operaciją, tikrinami pozymiai READY/BUSY (pasiruosęs/uzimtas). Pozymio READY reiks­mės skiriasi įrenginiuose isvedančiuose informaciją ir įrenginiuose ją įvedančiuose. Įrenginiuose informacijai įvesti READY = 0 (pozymio nėra) rodo, kad įvesties prievade duomenų dar nėra, o READY = 1 (pozymis yra), kad jie jau yra. Perskaitęs duomenis mP pozymį panaikina (READY = 0). Įrenginiuose informacijai isvesti READY = 0 rodo, kad isvesties prievadas negali priimti duomenų is mP, o READY = 1, kad jis jau gali priimti duomenis. READY nesikeičia iki mP įveda į įrenginį visus duomenis. Baigęs įvesti, jis pozymį panaikina (READY = 0).

Tikrindamas pozymį READY, mP kai kada turi palaukti, kol pozymis atsiras. Tikrinimo komandų ciklas vadinamas laukimo ciklu, pavyzdziui, mP 8080 jis gali būti toks:

WAIT:  IN CSR ; būsenos įvedimas. Į registrą A įveda komandinio ir būsenos registro turinį ORA A ; pozymių formavimas. Komanda keičia mP pozymių ; registro pozymius Z, S, P, C = 0, AC = 0

JP WAIT ; ciklas iki atsiras pozymis S = 1, nes kol S = 0 programa grįzta ties zyma

; WAIT

Veikimas. CSR - isorinio įrenginio 8 bitų komandinio ir pozymių registro adresas. Registro auksčiausioje skiltyje yra pozymis READY. Kai READY = 0 po komandos ORA A auksčiausioje (astuntoje) skiltyje yra 0, todėl pozymis S = 0 ir programėlė soka į WAIT. Kai READY = 1, po komandos ORA A auksčiausioje (astuntoje) skiltyje yra 1 ir ciklas baigiasi.

Po ciklo einanti komanda turi įvesti arba isvesti duomenis per akumuliatorių ir prievadą (komanda OUT).

Toks keitimosi informacija būdas mazina MĮ spartą, nes mP praranda daug laiko laukimo ciklams, tačiau jis nereikalauja papildomos aparatūros (62 pav.).

Informacijos įvedimas ir isvedimas naudojant pertraukimus

Keičiantis informacija siuo būdu, isorinis įrenginys pasiruosia informacijos pasikeitimo operacijai ir tik po to siunčia pertraukimo prasantį signalą INT. Gavęs sį signalą, mP laikinai nustoja vykdyti programą, nustato, kuris įrenginys siuntė signalą, ir pradeda vykdyti pertraukimo paprogramę. Keičiantis informacija atliekami tokie veiksmai:

Isorinis įrenginys į mP įvestį INT paduoda pertraukimo signalą.

mP įvykdo pradėtą komandą ir, jeigu pertraukimai nedraudziami, isoriniam įrenginiui siunčia signalą INTA, kuris patvirtina pertraukimą. Jį gavęs įrenginys panaikina signalą INT.

Steke įsimenami akumuliatoriaus, komandų skaitiklio, kai kurių bendrosios paskirties registrų turiniai.

mP nustato, kuris įrenginys paprasė pertraukimo, ir pasirenka atitinkamą pertraukimo vykdymo paprogramę.

mP įvykdo pertraukimo paprogramę.

mP pasiima steke esančius duomenis ir toliau vykdo programą.

Ar nepasirodė signalas INT, mP tikrina pries pradėdamas vykdyti kiekvieną naują komandą. Pertraukimus iskviečiamus signalu INT uzdraudzia komanda D, o jas leidzia komanda EI. Pertraukimus iskviečiamus signalu NMI mP vykdo besąlygiskai, is karto baigęs eilinę komandą. Jie dazniausiai naudojami pranesimams apie gedimus.

Kuris isorinis įrenginys praso pertraukimo, galima nustatyti keliais būdais:

1. Programiniu būdu tikrinant įrenginių pozymių registrus (pasiruosimo pozymius). Pozymių registrai tikrinami pagal sąrasą (įrenginio prioritetą). Sis būdas nereikalauja aparatūros, tačiau papildomai apkraudamas mP lėtina MĮ.

2. Aparatūriniu būdu, kai isoriniai įrenginiai prie mP prijungiami nuosekliai per prioritetines grandinėles. Tuomet signalas INTA sklinda nuosekliai iki suranda pertraukimo prasantį įrenginį. Jį suradus yra blokuojamas signalo INTA perdavimas tolimesniems įrenginiams. Surastasis įrenginys į duomenų magistralę pasiunčia savo adresą, pagal kurį mP atranda isrinktojo įrenginio pertraukimo paprogramę ir ją vykdo.

Kai isorinių įrenginių veikimo sparta skiriasi, gali prisieiti pristabdyti dar nebaigtą lėto įrenginio pertraukimo vykdymą ir vykdyti aukstesnį prioritetą turinčio greitaeigio įrenginio pertraukimą. Pertraukimas, kuriam vykdyti pristabdomas kitas pertraukimas vadinamas vidiniu pertraukimu. Jį įvykdzius, tęsiamas anksčiau pradėtas pertraukimas. Vidinis pertraukimas signalu INT įmanomas tik tada, kai pertraukimo paprogramės pradzioje yra komanda EI. Kai skirtingos veikimo spartos įrenginių yra daug, juos patogu grupuoti pagal veikimo spartą ir nustatyti kiekvienos grupės prioritetą. Tokia pertraukimų organizacija vadinama daugiapakope. Aukstesnio prioriteto grupei priklausantis įrenginys gali pristabdyti zemesniojo prioriteto grupės įrenginio pertraukimą.

Keitimasis informacija naudojant pertraukimus pastebimai sumazina mP laiko nuostolius, bet reikalauja papildomos aparatūros. Yra specialios mikroschemos - valdikliai pertraukimams valdyti.

Keitimasis informacija tiesioginio kreipimosi į atmintinę būdu

Tiesioginio kreipimosi į atmintinę procesą valdo specialus valdiklis. Naudojami du tiesioginio kreipimosi į atmintinę būdai:

1. Į atmintinę kreipiamasi, kai į ją nesikreipia mP.

2. Į atmintinę kreipiamasi mP keletui taktų atjungus nuo atmintinės signalu HOLD.

Keičiantis informacija pirmuoju būdu, į atmintinę yra kreipiamasi tais mP taktais, kurių jis nenaudoja bendrauti su atmintine. Pavyzdziui, mP 8080 tai ketvirtasis ir penktasis taktai. Sis būdas netrukdo mP, bet duomenys perduodami nereguliariai ir todėl ne maksimalia sparta.

Naudojant antrąjį būdą, DMA valdiklis signalu HOLD keletui taktų atjungia mP nuo sisteminės magistralės ir pats valdo duomenų perdavimą tarp įrenginio ir atmintinės. Kadangi mP vidinių registrų tu­rinys nekinta, duomenų nereikia įsiminti, kaip dirbant su pertraukimais. Isnykus signalui HOLD programa vykdoma toliau. Informacija keičiamasi taip:

Isoriniam įrenginiui pareikalavus pasikeisti duomenimis, DMA valdiklis siunčia signalą HOLD.

Gavęs signalą HOLD, mP siunčia signalą HOLDA, sustabdo programą ir atsijungia nuo sisteminės magistralės.

Gavęs signalą HOLDA, valdiklis į adresų magistralę siunčia atmintinės ląstelės adresą, į kurią bus rasomi arba is kurios bus skaitomi duomenys.

DMA valdiklis generuoja valdymo impulsus duomenims magistrale perduoti.

Perdavus duomenis ir isoriniam įrenginiui nustojus reikalauti keistis duomenimis, valdiklis panaikina signalą HOLD, mP vėl prisijungia prie sisteminės magistralės.

Kokį duomenų bloką įvesti ir kur jį patalpinti atmintinėje, nurodo MĮ valdanti programa. Naudojant sį būdą, duomenis į atmintinę galima perduoti sparčiausiai.

Nuosekliojo rysio sąsaja

Rysys vadinamas nuosekliu, kai informacija perduodama nuosekliai po vieną bitą. Toks rysys plačiai naudojamas toje pačioje patalpoje esantiems MĮ sujungti, o taip pat perduodant informaciją telefono linijomis. Yra du nuoseklaus rysio rezimai: dupleksinis (Duplex) ir pu­siau dupleksinis (Half-Duplex). Dupleksiniu rezimu informacija tuo pačiu metu perduoda­ma abiem kryptimis (63 pav., a), o pusiau dupleksiniu - pakaitomis (63 pav., b), jungikliu sujungiant A įtaiso siųstuvą su B įtaiso imtuvu ir atvirksčiai. Dupleksiniam rysiui reikia trijų signalinių laidų (siuntimui, priėmimui ir masei), o pusiau dupleksiniam - dviejų.

63 pav. Dupleksinio (a) ir pusiau dupleksinio (b) rysio tarp A ir B įtaisų funkcinė schema

Nuoseklusis rysys naudojamas, pavyzdziui, MĮ ir terminalui sujungti. Terminalą dazniausiai sudaro monitorius, klaviatūra ir nuoseklioji sąsaja. Tam, kad su terminalu dirbantis operatorius zinotų, kad jo pasiųsta informacija yra priimta teisingai, naudojamas "aido" (Exoplex) rezimas, kai terminalu valdomas įrenginys priimtą informaciją (simbolį) pasiunčia atgal į terminalo monitoriaus ekraną.

Duomenis perduoti galima asinchroninio ir sinchroninio nuosekliojo rysio sistemomis. Paprastesnės, lankstesnės ir pigesnės yra asinchroninio nuosekliojo rysio sistemos.

Asinchroninio rysio sistema

Tokios rysio sistemos pavyzdziu gali būti sistema perduodanti simbolius is klaviatūros, kai paspaudziamas klavisas. Kadangi klavisai yra spaudomi nevienodu dazniu, tai ir perduoti jų signalus patogiau asinchroniskai. Klaviatūros simboliams perduoti naudojamas 7 bitų AS­CII kodas, perduodantis 127 skirtingus kodus. Todėl is klaviatūros tiesiogiai galima įvesti ne daugiau 127 simbolių. ASCII kodais galima perduoti ne tik tekstinius failus, bet ir programas. Dirbant asinchroniniu rezimu, būtina nurodyti kiekvieno simbolio, perduodamo po vieną bitą, pradzią ir pabaigą. Tai daroma kiekvieno simbolio (baito) pradzioje perduodant START, o pabaigoje STOP bitus. Toks informacijos perdavimas vadinamas start-stopiniu. Kai informacija neperduodama, linijoje laikomas loginio "1" lygis. START bitas jį pakeičia į loginį "0". Perdavus baitą STOP, bitas linijoje nustato loginį lygį "1". Kai kada naudojami keli STOP bitai. Tai priklauso nuo rysio sistemoje naudojamo duomenų perdavimo proto­kolo. 64 pav. parodyta laiko diagrama linijoje, kai perduodamas baitas "10110010". Informacinis baitas su pagalbiniais signalais vadinamas kadru.

64 pav. Asinchroninis baito perdavimas "start-stopiniu" būdu

Siųstuvo ir imtuvo taktinių impulsų daznis nustatomas is anksto. Tada ir esant nesinchronizuotiems imtuvo ir siųstuvo taktiniams impulsams įmanoma juos suderinti laike. Pavyzdziui, perduodant informaciją 600 bitų/s greičiu, intervalas tarp bitų bus 1,66 ms. Imtuvas truputį trumpesniais intervalais tikrina įvesties signalo reiksmę. Momentas, kai po vienetinio lygio atsiranda nulinis lygis, laikomas kadro pradzia. Po 0,83 ms (pirmojo bito viduryje) dar kartą tikrinamas signalo lygis. Nulinis lygis reiskia signalo pradzią ir imtuvas, astuonis kartus kas 1,66 ms perskaito signalus. Po to patikrina ar pasirodė STOP signalas ir nustato viene­tinio lygio pasirodymo linijoje momentą. Imtuvas, kadro pradzios tikrinimo momentu, atradęs vienetinį lygį, buvusį nulinį lygį nepri­pazįsta kadro pradzia. Start-stopinėje sistemoje siųstuvo ir imtuvo taktiniai dazniai gali skirtis keliais procentais.

Sinchroninio rysio sistemos

Naudojamos "binarinė" ir "blokinė" rysio sistemos.

Perduodant informaciją binariniu būdu, imtuvas ir siųstuvas yra sinchronizuoti visą rysio laiką, tam reikia kartu su informacija perduoti ir sinchroimpulsus.

Perduodant informaciją blokiniu būdu, yra perduodami 256 baitų ilgio duomenų blokai. Apie bloko pradzią pranesa signalas STX, o apie pabaigą - signalas ETX. Pries ir po bloko yra perduodamas sinchronizacijos simbolis SYN.

RS232 standartas

Tai siuo metu labiausiai paplitęs MĮ nuoseklaus rysio stan­dartas. Juo per sekundę galima perduoti iki 115,2 Kbitų. Valdymo signalų ir duomenų amplitudės turi būti tarp +12V ir - 12V. Naudojamos apvalios 9 (DIN) ir pailgos dvieilės 25 kojelių jungtys. Maksimalus laidų skai­čius yra devyni. 65 paveiksle parodyta 25 kojelių jungties konstrukcija ir į kojeles paduodami signalai.

Per antrąją kojelę perduodami duomenys is terminalo. Kai duomenys neperduodami terminalo isvestyje yra loginis viene­tas. Duomenys taip pat neperduodami, kol visi valdymo signalai įgyja reikalingas reiksmes.

Per trečiąją kojelę duomenys perduodami is įrenginio į terminalą.

65 pav. RS232 sąsajos jungtis ir valdymo signalai

Per sestąją kojelę terminalas siunčia paklausimo signalą ar įrenginys jau pasiruosęs priimti informaciją.

Per dvidesimtąją kojelę terminalas perduoda signalą, kad pasiruosęs darbui.

Per ketvirtąją kojelę paduodamas duomenų perdavimo pradzios signalas. Pasirodzius siam signalui, įrenginys pradeda perduoti informaciją.

Per penktąją kojelę paduodamas signalas leidziantis pradėti informacijos perdavimą. Jis atsiranda tuomet, kai įrenginys įjungia priemones informacijai į terminalą perduoti.

Per astuntąją kojelę paduodamas signalas, kai signalo nesančioji (pvz., is telefoninio kanalo) yra atpazinta.

Septintoji kojelė yra rysio sistemos masė. Per RS232 sąsają yra prijungiamas modemas.

Modemai

Signalo, perduodamo is vieno MĮ (pvz., PK) kitam, kelias parodytas 66 paveiksle. Informacija apie simbolį perduodama jo ASCII kodu. Kodas paverčiamas impulsų seka, kuri veikia sinusinę nesančiąją bangą moduliuodama jos amplitudę, daznį ar fazę. Moduliuotas sinusinis signalas rysio kanalu perduodamas abonento modemo demoduliatoriui, kuris jį vėl paverčia impulsų seka, MĮ ją desifruoja ir atvaizduoja perduotą simbolį ekrane. Telefono kanalo daznių juosta yra tarp 300 ir 3000 Hz, t.y. 2700 Hz. Tokia juosta, koduojant dvejetainį signalą dviem būsenomis, galima perduoti ne daugiau kaip 2700 bi­tų/s arba 2700/8 = 330 simbolių/s.

66 pav. Signalo transformacijos perduodant simbolį A is vieno MĮ kitam

Modemai dazniausiai dirba duplekso rezimu, todėl daznių juosta kiekvienam signalui perduoti susiaurėja daugiau negu dvigubai, nes reikia dviejų kanalų ir dar "saugumo" juostos (300 Hz) tarp jų. Kiekvienam kanalui lieka po 1200 Hz. Asimetriniai "Duplex" modemai turi du skirtingo pločio kanalus, platesnį - perduodamai informacijai ir siauresnį pranesimams apie informacijos perdavimo teisingumą.

Kad siųstuvas ir imtuvas vienas kitą suprastų, reikia laikytis tam tikro duomenų perdavimo protokolo, kuris nustato rysio palaikymo taisykles. Modemui suderinti su informacijos imtuvu dazniausiai (pvz., visuose IBM tipo PK) naudojama nuoseklioji asinchroninė sąsaja RS232.

Modemą sudaro nuosekliosios sąsajos valdiklis, koderis - dekoderis (K/D), moduliatorius - demoduliatorius (M/D), ROM ir įvesties bei isvesties filtrai (67 pav.). Per nuosekliosios sąsajos valdiklį modemas sujungiamas su MĮ. Koderis signalus, pries siunčiant juos į telefono liniją, suderina su ROM sau­gomu duomenų perdavimo protokolu, dekoderis padaro juos suprantamais MĮ. Filtras slopina parazitinius signalus.

Informacija yra siunčiama nesančiąja banga. "1" ir "0" arba skirtingos kodinės kombinacijos yra perduodamos pakeičiant kuriuos nors nesančiosios bangos parametrus, t.y. ją moduliuojant. Modemuose naudojama amplitudinė, dazninė, fazinė ir misri moduliacija. Amplitudinė moduliacija "1" ir "0" arba skirtingas kodines kombinacijas perduoda skirtin­gos amplitudės, dazninė kito - daznio, fazinė moduliacija - skirtingos fazės signalais. Misri moduliacija signalus koduoja keisdama kelis nesančiosios parametrus.

67 pav. Modemo sandara

Seniausias 300 bitų/s modemas buvo labai lėtas. Dabar naudojami greitesni 33000 ir 56000 bitų/s modemai. Informacijos perdavimo greitis didinamas programiskai arba aparatūriskai suglaudinant informaciją (MNP5 ir V42bis protokolai). Perduodama informacija dėl trikdzių rysio linijoje gali būti iskraipoma. Rysio metu atsirandančias klaidas taiso MNP4 ir V42 protokolai.

Modemas dirba valdymo ir rysio rezimais.

Valdymo rezime nustatomi jo parametrai ir valdymo komandos. Daugumai modemų valdyti naudojamas HAYES komandų rinkinys, kuris visuomet prasideda didziosiomis raidėmis AT, po kurio seka kitos raidės ir skaičiai, pvz., ATDT230375. Čia D įjungia dialogo rezimą, T nustato signalo, perduodamo į telefono liniją, tipą, o skaičiai yra kviečiamo rysiui modemo telefono numeris. Pilnas rinkinys susideda is desimčių komandų. Pradinę modemo būseną galima įrasyti į programuojamą pastoviąją atmintinę, esančią modemo plokstėje.

Rysio rezime perduodama informacija.

Nuosekliojo rysio programuojamos sąsajos mikroschema 82510

Mikroschema naudojama su "Intel" firmos MCS-48, 80, 85, iAPX-86 ir 88 mP. Ji, mP valdoma, lygiagrečius MĮ duomenis paverčia nuosekliais ir suderina MĮ su RS232 sąsaja. Sutrumpintai tokio tipo mikroschemos vadinamos USART (Universal Synchronous/ Asynchronous Receiver/Transmitter).

Struktūra ir funkcijos

Mikroschema gaminama 28 kojelių DIP korpuse. 68 paveiksle, a parodyta jos blokinė schema, o MĮ sujungimas su telefono linija per asinchroninę sąsają 68 paveiksle, b. 8251A sąsaja naudojama įvairiose nuoseklaus rysio sistemose.

Mikroschemoje 8251A yra penki 8 skilčių registrai. Jie skirti perduodamam ir priimamam baitui įsiminti, taip pat po vieną registrą rezimo, valdymo ir būsenos baitams. Perduodamas duomenų baitas lygiagrečiai įrasomas į registrą per prievadą D7-0. Is registro per isvestį TxD duomenys isvedami nuosekliai. Priimami duomenys per įvestį RxD nuosekliai įrasomi į priimamų duomenų registrą, o po to lygiagrečiai paimami per prievadą D7-0. Duo­menys siunčiami ir priimami automatiskai start-stopiniu būdu. Perduodant, kadro gale įterpiamas papildomas lygiskumo bitas, o priimant, - tikrinamas duomenų lygiskumas. Duomenų perdavimo sinchroimpulsai yra paduodami į įvestį TxC, o priimant duomenis į - RxC. Sinchroimpulsų daznis lemia duomenų perdavimo spartą, kuri gali būti lygi 1/16 arba 1/64 jų daznio. Duomenų perdavimo sinchroimpulsai dar naudojami per prievadą RxD gaunamiems duomenims isrinkti. Mikroschema gali dirbti įvairiais rezimais ir duomenis perduoti 300, 600, 1200, 2400, 4800, 9600 ir 19200 bitų/s sparta.

Telefono linijos sąsaja

 

68 pav. Mikroschemos 8251A struktūra (a) ir MĮ sujungimo su telefono linija schema (b)

Baigus perduoti (priimti) duomenų kadrą signalo TxRDY (RxRDY) lygis pasidaro aukstas. Kai abiejų sių signalų lygiai yra auksti, mP gali įrasyti į prievadą arba is jo skaityti naują duomenų kadrą. Sie signalai gali būti panaudojami, kaip pertraukimo signalai.

Įvesties signalas DSR rodo, pavyzdziui, kad modemas jau pasirengęs priimti duomenis, o CTS yra leidimo duomenims perduoti signalas. Isvesties signalas DTR pranesa, kad termina­las jau pasirengęs, o RTS yra prasymas perduoti duomenis. CS yra mikroschemos isrinkimo signalas.

Perduodant duomenis is MĮ į modemą, pirmiausia turi ateiti signalas DTR = 1 (terminalas pasirengęs), po to DSR = 1 (modemas pasirengęs) ir RTS = 1 (prasau duomenų). Tada is modemo siunčiamas signalas CTS = 1 (perdavimą leidziu) ir patvirtinamas nesančiosios atpazinimas CD. Dabar pradedamas duomenų perdavimas (TxE = 1). Duomenų priėmimas pa­tvirtinamas arba pertraukimo signalu RxRDY arba perskaitant būsenos registrą.

Duomenų rasymas ir skaitymas

Signalo lygis C/D įvestyje rodo ar paduodami signalai yra duomenys (C/D = 0), ar valdantieji signalai (C/D = 1). Valdantieji signalai yra įrasomi į rezimo, valdymo ir būsenos registrus. 2 lentelėje parodytos rasymą ir skaitymą valdančių komandų kombinacijos.

4 lentelė

CS

C/D

RD

WR

Funkcija

Priimtų duomenų skaitymas

Siunčiamų duomenų įrasymas

Būsenos registro skaitymas

Rasymas į rezimo ir valdymo registrus

x

D7-0 isvestys neapibrėztos

x

x

x

D7-0 isvestys neapibrėztos

Rezimo, valdymo ir būsenos registrų turiniai parodyti 69 paveiksle.

MSB Rezimo registras LSB MSB Valdymo registras LSB

S2

S1

EP

PEN

L2

L1

B2

B1

IR

RTS

ER

SBRK

RxE

DTR

TxE

MSB Būsenos registras LSB

DSR

BRKDET

FE

OE

PE

TxEMP

RxRDY

TxRDY

69 pav. Rezimo, valdymo ir būsenos registrų turiniai

Rezimo registro kodų reiksmės:

B2B1 - sinchroimpulsų ir taktinio daznio santykis: 00 - asinchroninis darbo rezimas; 01 - 1; 10 - 1/16; 11 - 1/64.

L2L1 - duomenų skilčių skaičius kadre: 00 - 5; 01 - 6; 10 - 7; 11 - 8.

PEN - lygiskumo kontrolė: 0 - nekontroliuoja; 1 - kontroliuoja.

EP - lygiskumo rūsis: 0 - nelyginis; 1 - lyginis.

S2S1 - STOP bitų skaičius: 00 - nėra; 01 - 1; 10 - 1.5; 11 - 2

Kodų rinkinys rezimo registre sudaro rezimo instrukciją. Ji įrasoma is karto mikro­sche­mą programiskai nustačius į pradinę būseną arba po signalo RESET.

Valdymo registro kodų reiksmės, kai visose registro skiltyse yra 1:

0 - sinchrosimbolių paieska.

IR - registro turinio grązinimo indeksas.

RTS - signalo RTS lygis zemas.

ER - panaikinami visų pastebėtų klaidų pozymiai.

SBRK - perduodamas signalas BREAK (pertrauka)

RxE - įjungiamas imtuvas

DTR - signalo DTR lygis zemas.

TxE - įjungiamas siųstuvas.

Kodų rinkinys valdymo registre sudaro - valdančią komandą, kuri nustato įrenginio darbo rezimą. Komandą galima keisti įrenginiui dirbant. Dirbant asinchroniniu rezimu, komanda įrasoma is karto po rezimo instrukcijos. Dirbant sinchroniniu rezimu pries ją dar įrasomi sinchrosimboliai. mP komandą įraso signalu Out.

Būsenos registro kodų reiksmės:

DSR - signalo DSR lygis zemas.

BRKDET - buvo signalas BREAK.

FE - buvo kadro klaida (nebuvo STOP signalo).

OE - klaida dėl per didelio darbo greičio (per anksti pasirodė nauji duomenys).

PE - duomenų perdavimo klaida, pastebėta tikrinant lygiskumą.

TxEMP - informacija perduota.

RxRDY - duomenys priimti, tačiau dar neperduoti mP.

TxRDY - duomenų perdavimo registras tusčias.

Kodų rinkinys būsenos registre sudaro valdiklio būsenos zodį.

mP komanda IN gali bet kuriuo metu nuskaityti registrų turinį.

Valdiklis gali dirbti vienu is penkių rezimų:

- Sinchroninio perdavimo metu per isvestį TxD siunčiama signalų seka prasidedanti rezimo instrukcijoje nurodytais sinchrosimboliais. Jeigu rysio metu mP duomenų neperduoda, siunčiami sinchrosimboliai, o isvestyje TxE yra loginis 1 rodantis, kad siuo metu informacija neperduodama.

- Sinchroninio priėmimo su vidine sinchronizacija metu valdiklis iesko sinchrosimbolių, priimamus simbolius lygindamas su programavimo metu į jo atmintinę įrasytais simboliais. Suradus sinchrosimbolį, signalas SYNDET tampa loginiu vienetu ir valdiklis pradeda priimti duomenis. Nulinė reiksmė SYNDET grązinama skaitant būsenos registrą. Registras skaitomas pries ieskant naujos duomenų porcijos.

- Sinchroninio priėmimo su isorine sinchronizacija metu, isorinis įrenginys siunčia signalą SYNDET, o duomenys priimami per RxD įvestį.

- Asinchroninio duomenų siuntimo metu, kai būsenos zodzio registro skiltis TxRDY = 1 (duomenų registras tusčias), signalu OUT baitas įrasomas į valdiklį arba mP pertraukiamas signalu TxRDY.

- Asinchroninio duomenų priėmimo metu, valdiklis pirmiausia iesko START bito (RxD = 0). Jį suradęs, pagal rezimo registre esančią programą, priima duomenų kontrolinius ir STOP bitus. Priėmus STOP bitą, signalas RxRDY = 1. Duomenis į mP magistralę perduo­dami signalu IN, kai būsenos zodzio registro skiltis RxRDY = 1, arba mP pertraukiamas signalu RxRDY.

Per aprasytą valdiklį asinchroniniu rezimu duomenis gali perduoti toks programos fragmentas, parasytas mikroprocesoriaus Intel 8080 (arba 8085):

MVI B, N ;Nustato ciklo skaitiklį. N perduodamų baitų skaičius

LXI H, ADDR ;Masyvo pradinis adresas

MVI A, 40h ;Programinio grązinimo instrukcijos (40h reiskia is B į B)

OUT INSTR ;Įraso į valdiklį. INSTR - simbolinis prievado adresas

MVI A, 7Dh ;Į A įraso rezimo instrukcijas

OUT INSTR ;Valdikliui perduoda rezimo instrukcijas

MVI A, 31h ;Komandą 31H įraso į akumuliatorių (31h - is steko registro SP į A)

OUT INSTR ;Akumuliatoriaus turinį perkelia į valdiklį ;INSTR - simbolinis prievado adresas

VESK: MOV A, M ;HL nurodytu adresu esantis masyvo elementas perkeliamas į

;akumuliatorių

OUT DATA ;Masyvo elementą is akumuliatoriaus perkelia į valdiklį

LAUK: IN INSTR ;Valdiklio būsenos zodį perkelia is prievado INSTR į akumuliatorių

MOV C, A ;Valdiklio būsenos zodį saugojimui perkelia į C

ANI 08h ;Ar yra lygiskumo klaida A IR 08H

JNZ ERR ;Iskviečia klaidos aptarnavimo paprogramę, kuri yra adresu ERR,

;jeigu Z = 0

MOV A, C ;Į A grązina būsenos zodį

RAR ;Tikrina siųstuvo pasiruosimą. Rotacija - pozymis C į MSB, o LSB į C

JNC LAUK ;Jeigu siųstuvas nepasiruosęs grązina programą į ciklo LAUK pradzią

;(Jeigu C = 0 programa tęsiama nuo salia esančio adreso. Kai siųstuvas

;pasiruosęs būsenos registro vyriausioje skiltyje yra 0, nes DSR = 0)

DCR B ;Vienetu sumazina skaitiklio turinį. (Įvesti numatytų baitų skaičių N

;sumazina 1)

JZ BAIK ;Perdavimo pabaiga, jeigu Z = 1, tada programa persoka į adresą

;BAIK. Z = 1, kai operacijos rezultatas "0".

INX H ;Pakeičia masyvo adresą. HL turinį padidina 1

JMP VESK ;Perkelia programą į elemento įvedimo ciklo VESK

;pradzią

BAIK: MVI A, 38h ;Į A įraso siuntimo proceso pabaigos kodą

OUT INSTR ;Valdiklui pranesa, kad procesas baigėsi

Kodas 7D nustato asinchroninį darbo rezimą, kurio daznis lygus sinchronizacijos dazniui, kai kontroliuojamas lygiskumas, naudojamas vienas STOP bitas ir perduodamas duomenų baitas (8 bitai).

Adresai INSTR, ADDR, DATA ir ERR yra simboliniai. N - perduodamų simbolių (baitų) skaičius.

Lygiagrečiojo rysio sąsaja

Bendrosios zinios

Lygiagrečiąja rysio sąsaja vienu metu perduodama daugiau negu vienas bitas informacijos. Perduodamų bitų skaičius priklauso nuo siųstuvo imtuvo ir sąsajos. Plačiai naudojamos sąsajos lygiagrečiai perduodančios 8 ir 16 bitų. Perduodant informaciją į isorinį įrenginį yra vykdomos sios operacijos:

Perduoti skirti duomenys įrasomi į isvesties registrą.

Isorinis įrenginys atsiunčia signalą, kuriuo pranesa, kad jis jau pasiruosęs priimti duomenis.

MĮ siunčia isoriniam įrenginiui duomenų skaitymo signalą.

Įvedant informaciją is isorinio įrenginio, yra vykdomos sios operacijos:

Isvalomas įvesties registras.

Isorinis įrenginys siunčia signalą, kuriuo pranesa, kad duomenys jau paruosti.

MĮ įsiveda duomenis ir apie tai pranesa isoriniam įrenginiui.

Duomenų mainų blokinės schemos ir laiko diagramos pavaizduotos 3.9 pav.

70 pav., a pavaizduotose blokinėse schemose parodyti signalai naudojami perduodant duomenis is sąsajos į isorinį įrenginį (virsutinė schema) ir atvirksčiai (apatinė schema), kai pasiruosimą rysiui tikrina sąsaja.

Jeigu isorinis įrenginys jau pasiruosęs priimti duomenis (READY = 1), sąsaja paruosia isvedimui skirtus duomenis (signalas "Duomenų paruosimas" = 1) ir signalui pasiekus vienetinį lygį suformuoja STROBE impulsą (rodyklė rodo, kad STROBE paleidziamas duomenų signalo priekiniu frontu). Duomenys perduodami, kai STROBE = 0. Jeigu MĮ duomenis paruosia anksčiau negu isorinis įrenginys pasiruosia juos priimti, STROBE signalą formuoja signalo READY priekinis frontas. Analogiskai duomenys perduodami ir priesinga kryptimi, tik vietoje STROBE signalo naudojamas ACK (Acknowledge Input) signalas. Signalų STROBE ir ACK minimali trukmė tg turi būti tokia, kad isorinis įrenginys suspėtų perduoti arba priimti duomenis.


70 pav. Duomenų perdavimas, kai pasiruosimą tikrina sąsaja (a) ir isorinis įrenginys (b). Paveikslėlio virsuje yra duomenų perdavimo is sąsajos į isorinį įrenginį, o apatinėje atvirksčiai - is isorinio įrenginio į sąsają rysio blokinės schemos

ACK

 
70 paveiksle, b pavaizduotose blokinėse schemose parodyti signalai naudojami perduodant duomenis is sąsajos į PĮ (virsutinė schema) ir atvirksčiai (apatinė schema), kai rysį kontroliuoja PĮ.

Perduodant duomenis į isorinį įrenginį ACK signalas formuoja READY arba duomenų signalo priekinis frontas, o perduodant priesinga kryptimi READY signalą formuoja STROBE arba duomenų signalo priekinis frontas.

Lygiagrečiosios programuojamos sąsajos mikroschema 8255A

Mikroschema (Programmable Peripheral Interface - PPI) naudojama su "Intel" firmos mikroprocesoriais. Ji turi 24 I/O kojeles, suskirstytas į dvi individualiai programuojamas grupes po 12 kojelių ir gali dirbti trimis skirtingais rezimais (Modes).

D7 - D0

Duomenys

RESET

Grązinimas

CS

Mikroschemos isrinkimas

RD

Duomenų skaitymas

WR

Duomenų rasymas

A0, A1

Prievado adresas

PA7 - PA0

Prievadas A

PB7 - PB0

Prievadas B

PC7 - PC0

Prievadas C

VCC

  +5V


71 pav. Mikroschemos 8255A sandara

Mikroschema gaminama 40 kojelių DIP korpuse. 71 paveiksle parodyta jos blokinė schema, o lentelėje - į jos kojeles paduodami signalai.

Informacijos perdavimo krypties ir pobūdzio (duomenys ar valdymo zodziai) priklausomybė valdiklyje nuo valdymo signalų A1, A0, RD, WR, CS parodyta 3 lentelėje.

Skirtingi valdiklio darbo rezimai parodyti 3.10 paveiksle.

3 lentelė

A1

A2

RD

WR

CS

Įvedimas (READ

Prievadas A DM

Prievadas B DM

Prievadas C DM

A1

A2

RD

WR

CS

Isvedimas (WRITE)

DM Prievadas A

DM Prievadas B

DM Prievadas C

A1

A2

RD

WR

CS

Isvedimas (WRITE)

DM Valdymas

A1

A2

RD

WR

CS

Neperduodama

X

X

X

X

DM izoliuota

Draudziama sąlyga

X

X

DM izoliuota

72 pav. 8255A darbo rezimai

A

 

a)  b)

73 pav. 8255A valdančioji komanda: prievadams A,B ir C programuoti (a) ir prijungti bet kurį prievado C bitą, kai jis programuojamas dirbti rezimu MODES 1 arba 2 (b)

Darbo rezimus nustato valdiklio valdymo zodis (valdančioji komanda). Kaip valdymo zodis valdo valdiklį parodyta 74 paveiksle.

BitasD7 nustato valdiklio darbo rezimą.

Kai D7 = 1 kiti komandos bitai nustato: ar per prievadus A, B ir C informacija bus įvedama ar isvedama (D0 ir D3); kuriuo is trijų galimų rezimų dirbs valdiklis (D2, D4, D5 ir D6).

Kai D7 = 0, valdikliui dirbant MODE 1 arba MODE 2 rezimais, bitu D0 galima prijungti arba atjungti prievadą C. Kiekvieną prievado C bitą galima valdyti atskirai, t.y. jį įjungti ar atjungti. Tai labai patogu generuojant valdančiuosius "Strob" signalus.

Pagrindinis I/O darbo rezimas yra MODE 0. Dirbant siuo rezimu, duomenis įvesti ir isvesti galima bet kuriuo prievadu (A, B, C/2 ir C/2). Kadangi kiekvienas prievadas valdomas atskirai, galimi 16 I/O valdymo variantai. mP komanda OUT duomenys isvedami, o komanda IN įvedami. Duomenys is MĮ magistralės yra įrasomi į atitinkamo prievado buferinį registrą (kaupyklę) ir is karto persiunčiami į valdiklio isvestis. Duomenys is prievado įėjimo įrasomi į jo buferinį registrą (kaupyklę), ir, atėjus signalui RD, siunčiami į magistralę. Sis rezimas naudojamas, kai duomenys kinta lėtai.

a) b)

 

MODE 1 yra vienkrypčio strobuojamo I/O rezimas. Duomenis galima įvesti ir isvesti tik per prievadus A ir B. Kiekvienas sių prievadų val­dymo signalus gauna per savąją C prievado pusę. Duomenų įvedimas yra strobuojamas signalu STB, o isvedimas - signalu ACK. 73, a paveiksle parodytas valdiklio dirbančio MODE 1 rezimu valdymas, kai per prievadą A infor­macija isvedama, o per B - įvedama. Signalai su indeksu A yra skirti prievadui A, o su B - prievadui B. Komandos zodzio skiltyje D3 įrasius 1(0) laisvas prievado C linijas PC4,5 galima uzprogra­muoti duomenims įvesti (isvesti).

74 pav. Valdiklio kontaktai ir komandinis zodis, kai jis

dirba rezimu MODE 1 (a) ir MODE 2 (b)

Perduodamas informaciją isorinis įrenginys perduoda pasiruosimo signalą STB. Signalu IBF valdiklis pranesa isoriniam įrenginiui, kad duomenys jau priimti. Pertraukimo prasymo signalu INTR valdiklis pranesa mP, kad jis jau priėmė duomenis ir norėtų juos jam perduoti.

Isvesdamas duomenis į isorinį įrenginį valdiklis signalu OBF jam pranesa, kad duomenys jau paruosti. Priėmęs duomenis, isorinis įrenginys apie tai pranesa signalu ACK. Pertraukimo prasymo signalu INTR valdiklis pranesa mP, kad duomenys jau perduoti ir jis norėtų paimti naujus.

Dirbdamas rezimu MODE 2 (74 pav., b) valdiklis strobuojamus duomenis per prievadą A gali perduoti abiem kryptimis. Laisvas nuo valdymo signalų linijas (PB7-0, PC2-0) galima uzprogramuoti dirbti rezimais MODE 0 ir MODE 1.

Operacijos, kurias valdikis gali vykdyti dirbdamas minėtais rezimais parodytos 5 lentelėje. Kiekvienas isorinis įrenginys turi jį aptarnaujantį paprogramį, kuris yra programinė sąsaja tarp įrenginio ir mP. Segmentinio indikatoriaus valdymo schema rezime MODE 0 parodyta 75 pav. Per prievadą A paduodami signalai segmentams, o per B - anodams valdyti. Segementų signalai paduodami visoms indikatoriaus skiltims kartu, o anodai komutuojami nuosekliai laike.

75 pav. Segmentinio indikatoriaus valdymo schema

5 lentelė Valdiklio i8255 operacijos

 

Isvadas

MODE 0

MODE 1

MODE 2

IN

OUT

IN

OUT

Tik A prievadas

PA0

IN

OUT

IN

OUT

PA1

IN

OUT

IN

OUT

PA2

IN

OUT

IN

OUT

PA3

IN

OUT

IN

OUT

PA4

IN

OUT

IN

OUT

PA5

IN

OUT

IN

OUT

PA6

IN

OUT

IN

OUT

PA7

IN

OUT

IN

OUT

PB0

IN

OUT

IN

OUT

PB1

IN

OUT

IN

OUT

PB2

IN

OUT

IN

OUT

Tiktai

PB3

IN

OUT

IN

OUT

Mode 0

PB4

IN

OUT

IN

OUT

arba

PB5

IN

OUT

IN

OUT

Mode 1

PB6

IN

OUT

IN

OUT

PB7

IN

OUT

IN

OUT

PC0

IN

OUT

INTRB

INTRB

I/O

PC1

IN

OUT

IBFB

OBFB

I/O

PC2

IN

OUT

STBB

ACKB

I/O

PC3

IN

OUT

INTRA

INTRA

INTRA

PC4

IN

OUT

STBA

I/O

STBA

PC5

IN

OUT

IBFA

I/O

IBFA

PC6

IN

OUT

I/O

OBFA

ACKA

PC7

IN

OUT

I/O

ACKA

OBFA

Paprogramės, parasytos mikroprocesoriaus Intel 8080 Assembler kalboje, pavyzdys:

; Paprogramė į valdiklį turi perduoti is N analoginių skaitmeninių keitiklių gautus 10 skilčių duomenis.

DI ;Uzdraudzia pertraukimą

MVI A, 0BBh ; Į A įveda darbo rezimo kodą

OUT 0FFh ;Nustato valdiklio darbo rezimą

LXI H, ADDR ;Į HL įraso adresą, kur įvesti duomenis

MVI D, N ;Nustato skaitiklį

LAUK: IN OFEh ;Is prievado C įveda informaciją ASK pasiruosimui tikrinti

ANI 80h ;Tikrina ASK pasiruosimą

JZ LAUK ;Grįzta, jeigu ASK nepasiruosęs

IN 0FDh ;Is prievado B įveda 8 ASK (LSB) duomenų skiltis

MOV M, A ;Įraso į atmintinę

INX H ;Pakeičia adresą

IN 0FEh ;Įveda is prievado C

ANI 03h ;Isskiria dvi ASK (MSB) skiltis. Tai duomenų skiltys

MOV M,A ;Įraso į atmintinę

INX H ;Pakeičia adresą

DCR D ;Pakeičia skaitiklio turinį

JZ BAIK ;Baigia apdorojimą. Generuoja ASK perjungimo signalą

MVI A,00001100b ;Įveda PC6 skilties gesinimo kodą

OUT 0FFh ;Gesina PC6 skiltį

MVI A,00001101b ;Įveda "1" rasymo į PC6 kodą

OUT 0FFh ;Nustato PC6 skiltį

;Generuoja ASK perjungimo signalo pabaigą

JMP LAUK ;Pasiruosia įvesti kito jutiklio signalą

BAIK: EI ;Leidzia pertraukimą

Raidė "h" zymi sesioliktainį, o "b" - dvejetainį skaičių. Programa nuosekliai įveda į atmintinę duomenis is N desimties skilčių ASK. Astuonios zemiausios (LSB) skaitiklio skiltys į atmintinę įvedamos per prievadą B, o auksčiausiosios (MSB) prievado C linijomis PC1 ir PC0 įvedamos į gretimą atmintinės ląstelę. Linija PC7 perduodamas ASK pasiruosimo signalas, o linija PC6 - keitiklio perjungimo signalas sią skiltį isvalant ir įrasant į ja "1".

Valdymo zodis nustato tokią valdiklio konfigūraciją: prievadas B dirba rezimu MODE 0 ir įveda informaciją, prievadas C irgi dirba rezimu MODE 0, bet informaciją įveda tik per dvi linijas PC1 ir PC0. Prievadas A dirba rezimu 1, per jo liniją PC7 įvedamas keitiklio pasiruosimo signalas ir valdoma PC6 skiltis.

Paprogramėje prievado B adresas yra FD, prievado C - FE, valdymo registro - FF. ADDR yra atmintinės bloko, kur įvedami matavimų rezultatų simbolinis adresas.


Document Info


Accesari: 13907
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )