- •Vilniaus gedimino technikos universitetas
- •Mikroprocesoriniai
- •Valdymo įtaisai
- •I dalis mokomoji knyga
- •Vilnius 2008
- •Turinys
- •Žymenys
- •Pratarmė
- •1. Įvadas. Pagrindinės sąvokos ir apibrėžimai
- •2. Mikroprocesoriai. Pagrindinės techninės charakteristikos
- •3. Mikroprocesorinės sistemos organizacija
- •Ir architektūra
- •1 Pav. Mps apibendrinta funkcinė grandinė: cp- centrinis procesorius;
- •2 Pav. Skaitmeninių duomenų pateikimo būdai
- •4. Mps pagrindiniai atminties architektūrų tipai
- •3 Pav. Tipinės atminčių architektūros
- •5. Mps atminties organizavimas
- •4 Pav. Baitinė tiesinės organizacijos atmintis
- •6. Programa, komanda, komandos ciklas
- •5 Pav. Komandos ciklas
- •7. Mp sistemos magistralė (sm). Sm tipai
- •6 Pav. Trijų magistralių mps
- •7 Pav. Dvieju magistralių mps
- •8 Pav. Mps su vietiniais adresų registrais: arg – adreso registras.
- •9 Pav. Mps su bendruoju adresų registru
- •10 Pav. Laikinės funkcionavimo diagramos dviejų magistralių sistemoje
- •8. Sistemos magistralės darbo ciklai
- •9. Sistemos magistralės skaitymo darbo ciklas
- •11 Pav. Trijų magistralių mps skaitymo laikinės
- •12 Pav. Dviejų magistralių mps skaitymo laikinės funkcionavimo diagramos
- •10. Sistemos magistralės rašymo darbo ciklas
- •13 Pav. Trijų magistralių mps rašymo laikinės
- •14 Pav. Dviejų magistralių mps rašymo laikinės
- •11. Sistemos magistralės pertraukties darbo ciklas
- •12. Sistemos magistralės darbo režimai
- •15 Pav. Sm klasikinio asinchroninio darbo režimo laikinės
- •16 Pav. Mažos mps sm asinchroninio darbo režimo laikinės
- •13. Mps tipinės struktūros
- •17 Pav. Apibendrinta magistralinės struktūros funkcinė grandinė: cpm – centrinio procesoriaus modulis; aįm – atminties įrenginio modulis;
- •18 Pav. Magistralinės kaskadinės struktūros funkcinė grandinė: smv – sistemos magistralės valdiklis; vsm – vidinė sistemos magistralė; p0, p1... Pn – portai.
- •19 Pav. Magistralinės radialinės struktūros funkcinė grandinė
- •14. Duomenų įvesties ir išvesties organizavimas
- •14.1. Programiniai duomenų mainai
- •20 Pav. Programiniai besąlyginiai duomenų mainai
- •21 Pav. Įvesties ir išvesties portų funkcinė grandinė
- •22 Pav. Pseudo dvikrypčio porto funkcinė grandinė
- •23 Pav. Įvesties, išvesties ir kvitavimo laikinės diagramos
- •24 Pav. Sąlyginių ciklinių duomenų mainų algoritmas
- •25 Pav. Sąlyginių ciklinių laikinių duomenų mainų algoritmas
- •26 Pav. Sąlyginių neciklinių duomenų mainų algoritmas
- •14.2. Pertrauktiniai duomenų mainai
- •27 Pav. Pertrauktiniai duomenų mainai
- •14.2.1. Radialinė pertraukčių sistema
- •28 Pav. Dinaminė pertraukties signalų priėmimo grandinė
- •29 Pav. Statinė pertraukties signalų priėmimo grandinė
- •30 Pav. Kombinuota pertraukties signalų priėmimo grandinė
- •14.2.2. Išplėstinė radialinė pertraukčių sistema
- •14.2.3. Vektorinė pertraukčių sistema
- •31 Pav. Pertrauktčių valdiklio sujungimo su sm funkcinė grandinė: cp – centrinis procesorius; pv – pertraukčių valdiklis
- •14.3. Tiesioginiai duomenų mainai
- •32 Pav. Tiesioginių duomenų mainų valdiklio sujungimo su sm funkcinė grandinė: cp – centrinis procesorius; tdmv – tiesioginių duomenų mainų valdiklis; pį0 ... PĮn – periferiniai įrenginiai.
- •15. I8085 mikroprocesoriaus mps struktūra
- •33 Pav. I8085 mikroprocesoriaus mps funkcinė grandinė: cp – i8085 centrinis procesorius; arg – adreso registras.
- •16. I8085 mikroprocesoriaus registrų segmentas
- •34 Pav. I8085 mp registrų segmentas
- •17. Bendroji i8085 mp komandų sistemos charakteristika
- •35 Pav. Komandos struktūra
- •36 Pav. Tiesioginio adresavimo komandų formatai: port – porto adresas (1 baitas); adrl – adreso jaunesnysis baitas; adrh – adreso vyresnysis baitas.
- •37 Pav. Tiesioginio registrų adresavimo komandos formatas.
- •38 Pav. Betarpiško adresavimo komandos formatas: db – duomenų baitas; dbh – duomenų vyresnysis baitas; dbl – duomenų jaunesnysis baitas;
- •Aritmetinės ir loginės komandos.
- •Paprogramių komandos.
- •Įvesties ir išvesties bei specialiosios komandos.
- •18. Duomenų perkėlimo (perdavimo) ir dėklo (steko) atminties komandos
- •1 Lentelė. Duomenų perdavimo ir dėklo (steko) atminties komandos
- •19. Aritmetinės ir loginės komandos
- •2 Lentelė. Aritmetinės ir loginės komandos
- •39 Pav. Rlc, ral postūmio į kairę komandų veikimas
- •40 Pav. Rrc, rar postūmio į dešinę komandų veikimas
- •20. Valdymo nukreipimo (perdavimo) komandos
- •3 Lentelė. Valdymo perdavimo (nukreipimo) komandos
- •4 Lentelė.Valdymo perdavimo komandos, kai kontroliuojamas
- •5 Lentelė. Valdymo perdavimo komandų sekos, priklausančios
- •21. Paprogramių komandos
- •6 Lentelė. Kreipimosi į paprogrames ir grįžimo komandos
- •22. Įvesties ir išvesties bei specialiosios komandos
- •7 Lentelė. Įvesties ir išvesties bei specialiosios komandos
- •8 Lentelė. Pertraukčių prioritetinė eilė ir pradiniai (starto) adresai
- •9 Lentelė. Skaitymo rim komanda rezultatas
- •10 Lentelė. Valdymas sim rašymo komanda
- •41 Pav. Rst n komandos formatas:
- •11 Lentelė. Rst n komandos perėjimų (starto) adresai ir
- •23. I8085 mp vidinė struktūra, valdymo signalai
- •42 Pav. Mikroprocesoriaus i8085 sutartinis grafinis ženklas
- •44 Pav. Taktavimo grandinės, naudojant vidinį taktinio dažnio generatorių: a) su zq kvarciniu rezonatoriumi; b) su r – c grandine; c) su l – c grandine.
- •45 Pav. Taktavimo grandinės su išoriniu taktinio dažnio generatoriumi: fT – išorinio taktinio dažnio generatoriaus generuojamų impulsų dažnis.
- •46 Pav. I8085 mp vidinė sinchronizavimo grandinė: ss – sinchronizavimo grandinės stiprintuvas; t – skaitmeninis trigeris; bs1, bs2 – buferiniai stiprintuvai;
- •47 Pav. Išorinė tipinė pradinio nustatymo grandinė
- •24. I8085 mp funkcionavimo laiko ciklai
- •48 Pav. Mikrotaktinis ciklas (taktas)
- •49 Pav. Mikroprocesoriaus funkcionavimo laiko ciklai
- •25. Skaitymo darbo ciklo laikinės funkcionavimo diagramos
- •50 Pav. Skaitymo darbo ciklo laikinės funkcionavimo diagramos
- •26. Rašymo darbo ciklo laikinės funkcionavimo diagramos
- •51 Pav. Rašymo darbo ciklo laikinės funkcionavimo diagramos
- •27. Pertraukties darbo ciklo laikinės funkcionavimo diagramos
- •53 Pav. Laikinės funkcionavimo diagramos, kai pertrauties
- •Vektorius yra rst n komanda
- •28. Tiesioginių duomenų mainų darbo ciklo laikinės funkcionavimo diagramos
- •29. Sustojimo darbo ciklo laikinės funkcionavimo diagramos
- •56 Pav. Sustojimo darbo ciklo laikinės funkcionavimo diagramos
- •30. I8085 mikroprocesoriaus modulis
- •58 Pav. Sistemos valdiklio funkcinė grandinė
- •12 Lentelė. Sistemos valdiklio būsenos
- •59 Pav. I8282/83 tipo registrų sutartinis grafinis ženklas ir
- •Vidinė funkcinė grandinė
- •60 Pav. I8286/87 buferinių formuotuvų sutartinis grafinis ženklas ir
- •Vidinė funkcinė grandinė
- •31. Mps atminties įrenginys
- •61 Pav. Statinės oa kr537ru8a/ru8b sutartinis grafinis ženklas
- •13 Lentelė. Statinės operatyviosios atminties kr537 ru8a/b būsenos
- •14 Lentelė. Loginės grandinės būsenos
- •62 Pav. Signalų sujungimo loginės grandinės
- •63 Pav. Dinaminės oa kr565 ru5 sutartinis grafinis ženklas
- •15 Lentelė. Dinaminės operatyviosios atminties kr565 ru5b/V/g/d būsenos
- •64 Pav. Pastoviosios atminties dig k573 rf5 sutartinis grafinis ženklas
- •16 Lentelė. Pastoviosios atminties kr573 rf5 būsenos
- •32. Įvesties ir išvesties įrenginys
- •32.1. Programuojamasis lygiagretusis periferinis adapteris (pio), struktūra, valdymo signalai
- •65 Pav. I8255 periferinio adapterio sutartinis grafinis ženklas
- •66 Pav. I8255 periferinio adapterio vidinė funkcinė grandinė
- •67 Pav. A, b portų organizacijos grandinė: a) a porto; b) b porto.
- •17 Lentelė. Pio būsenos
- •32.1.1. Pio darbo režimai ir sujungimų funkcinė grandinė
- •18 Lentelė. Pio ms formatas
- •68 Pav. I8255 0 darbo režimas
- •69 Pav. I8255 1 darbo režimas
- •70 Pav. Duomenų mainų signalų kitimas
- •19 Lentelė. Pio bsr formatas
- •71 Pav. I8255 2 darbo režimas
- •72 Pav. Pio sujungimo su sistemos magistrale
- •32.2.Universalusis sinchroninis, asinchroninis imtuvas ir siųstuvas (usart), struktūra, valdymo signalai
- •73 Pav. I8251 adapterio sutartinis grafinis ženklas
- •74 Pav. I8251 adapterio vidinė funkcinė grandinė
- •20 Lentelė. Usart būsenos
- •32.2.1. Usart valdymo bei būsenos žodžiai ir sujungimų funkcinė grandinė
- •21 Lentelė. Usart asinchroninio darbo režimo mi formatas
- •22 Lentelė. Usart sinchroninio darbo režimo mi formatas
- •23 Lentelė. Usart ci žodžio formatas
- •24 Lentelė. Usart sw žodžio formatas
- •75 Pav. Usart sujungimo su sm funkcinė grandinė
- •33. Programuojamasis intervalinis laikmatis (pit), struktūra, valdymo signalai
- •76 Pav. Pit i8253 sutartinis grafinis ženklas
- •77 Pav. Pit i8253 vidinė funkcinė grandinė
- •25 Lentelė. Pit būsenos
- •33.1. Pit darbo režimai ir sujungimų funkcinė grandinė
- •26 Lentelė. Pit cw formatas
- •78 Pav. 0 režimo laikinė diagrama
- •79 Pav. 1 režimo laikinės diagramos
- •80 Pav. 2 režimo laikinė diagrama
- •81 Pav. 3 režimo laikinė diagrama
- •82 Pav. 4 režimo laikinė diagrama
- •83 Pav. 5 režimo laikinės diagramos
- •27 Lentelė. Gate signalo kitimas ir valdymo funkcijos
- •84 Pav. Pit sujungimo su sm funkcinė grandinė Literatūra
38 Pav. Betarpiško adresavimo komandos formatas: db – duomenų baitas; dbh – duomenų vyresnysis baitas; dbl – duomenų jaunesnysis baitas;
Po mnemo kodo rašomi komandos operandai, naudojant šiuos sutartinius žymenis:
R, R1, R2 – 8 skilčių registrai (A, B, C, D, E, H, L) ;
RP – 16 skilčių registrų pora (BC, DE, HL, kai kuriose komandose PSW, SP);
RPH, RPL – registrų poros vyresnysis registras (B, D, H) ir – jaunesnysis registras (C, E, L);
M – atminties ląstelė (pseudoregistras), kurios adresas nurodytas HL registrų poroje;
D8 – 8 skilčių duomenų baitas;
D16 – 16 skilčių (2 baitų) duomenys;
D16H, D16L – vyresnysis ir jaunesnysis duomenų baitai;
ADR – 16 skilčių (2 baitų adresas);
ADRH, ADRL – vyresnysis ir jaunesnysis adreso baitai;
PORT – 8 skilčių (1 baito) porto adresas;
M[ ] – atminties ląstelė, kurios adresas nurodytas laužtiniuose skliaustuose;
Duomenų perkėlimo kryptis žymima rodyklėmis:
“←” – vienpusė;
“↔” – dvipusė.
Pagal funkcinę paskirtį komandų sistemos komandas galima suskirstyti į grupes:
Duomenų perdavimo (perkėlimo) ir dėklo atminties komandos.
Aritmetinės ir loginės komandos.
Valdymo perdavimo (nukreipimo) komandos.
Paprogramių komandos.
Įvesties ir išvesties bei specialiosios komandos.
18. Duomenų perkėlimo (perdavimo) ir dėklo (steko) atminties komandos
Šios grupės komandos skirtos duomenims perduoti tarp registrų, tarp registrų ir atminties, duomenims įrašyti į registrus, programos skaitiklio PC turiniui pakeisti bei dėklo atminčiai valdyti. Grupėje yra 18 bazinių komandų. Komandų sąrašas pateiktas 1 lentelėje. Šios komandos yra dažniausiai naudojamos programose (sudaro apie 45 % visų komandų). Jos požymių nekeičia, išskyrus vieną komandą (POP PSW), kuri iš dėklo atminties perkelia 2 duomenų baitus į PSW.
MOV, MVI, LDA, STA, LDAX, STAX komandose naudojami baitiniai duomenys (DB), o kitose duomenų žodžiai (DW) – 2 baitai.
1 Lentelė. Duomenų perdavimo ir dėklo (steko) atminties komandos
Eil. Nr. |
Komandos mnemonika |
Baitai |
Komandos komentaras |
1. |
MOV R1, R2 |
1 |
R1 ← R2 |
2. |
MOV R, M |
1 |
R ← M[HL] |
3 |
MOV M, R |
1 |
M[HL] ← R |
4. |
MVI R, D8 |
2 |
R ← D8 |
5. |
MVI M, D8 |
2 |
M[HL] ← D8 |
6. |
LXI RP, D16 |
3 |
RPH ← D16H, RPL ← D16L |
7. |
LDA ADR |
3 |
A ← M[ADR] |
8. |
STA ADR |
3 |
M[ADR] ← A |
9. |
LDAX RP |
1 |
A ← M[RP] |
10. |
STAX RP |
1 |
M[RP] ← A |
11. |
LHLD ADR |
3 |
L ← M[ADR], H ← M[ADR+1] |
12. |
SHLD ADR |
3 |
M[ADR] ← L, M[ADR+1] ← H |
13. |
XCHG |
1 |
HL ↔ DE |
14. |
PCHL |
1 |
PC ← HL, PC=PC+1 |
|
|
|
|
15. |
PUSH RP |
1 |
M[SP-1] ← RPH, M[SP-2] ← RPL |
16. |
POP RP POP PSW |
1 1 |
RPL ← M[SP], RPH ← M[SP+1], SP ← SP+1 |
17. |
XTHL |
1 |
L ↔ M[SP], H ↔ M[SP+1] |
18. |
SPHL |
1 |
SP ← HL |
Duomenų baito perdavimą tarp registrų vykdo MOV R1, R2 komanda, naudodama tiesioginį registrų adresavimą, nurodant komandos baite šalia OK ir OP (registrų R1 ir R2 kodus).
MOV R, M ir MOV M, R komandos duomenų baitą perduoda tarp registro ir atminties ląstelės, kurios adresas nurodytas HL registrų poroje (rodo M raidė), naudodamos netiesioginį registrų adresavimą.
MVI R, D8 ir MVI M, D8 komandose betarpiškai įrašius duomenų baitą (D8), jį galima perduoti į registrą (R) arba į atminties ląstelę (M), naudojant atitinkamai tiesioginį ir netiesioginį registrų bei betarpišką adresavimus.
LXI RP, D16 komanda, betarpiškai joje įrašius 16 skilčių (2 baitų) duomenis, juos perkelia į BC, DE, HL registrų poras ir SP registrą. Kaip MVI komanda, taip ir LXI naudoja betarpišką adresavimą.
Duomenų mainams tarp atminties ląstelės ir akumuliatoriaus naudojamos 4 komandos: LDA ADR, STA ADR, LDAX RP, STAX RP. Akumuliatorius įkraunamas duomenų baitu iš atminties ląstelės LDA ADR, LDAX RP komandomis, o iškraunamas atvirkštinėmis STA ADR, STAX RP komandomis, perkeliant baitą į atminties ląstelę. LDA ADR, STA ADR komandose naudojamas tiesioginis adresavimo, o LDAX RP, STAX RP netiesioginis registrų adresavimo būdas. LDAX RP, STAX RP komandose naudojamos tik BC ir DE registrų poros.
Duomenims perduoti, naudojant HL registrų porą, skirtos LHLD ADR, SHLD ADR komandos. LHLD ADR komanda registrų pora HL įkraunama, duomenų žodį perduodant iš atminties, o atvirkštine SHLD ADR komanda ši registrų pora iškraunama, duomenų žodį perkeliant į atmintį. Abiejose komandose taikomas tiesioginis adresavimas.
PUSH RP, POP RP dėklo atminties valdymo komandos organizuoja registrų poros (BC, DE, HL, PSW) turinio rašymą į dėklo atmintį ir skaitymą iš šios atminties į nurodytą RP. Prieš pradedant šias komandas naudoti, būtina nustatyti dėklo atminties rodiklį (dėklo viršūnę) LXI SP, D16 arba SPHL komandomis. Rašant į dėklo atmintį, SP turinys 2 mažėja, o skaitant atvirščiai 2 – auga. Dėklo atminties komandos sukuria patogų mechanizmą MP kontekstui išsaugoti ir atstatyti, naudojant programoje paprogrames ir pertrauktis. PUSH RP, POP RP komandose naudojamas netiesioginis registrų adresavimo būdas.
XCHG ir XTHL komandų pora užtikrina dvipusius duomenų žodžio perdavimus tarp registrų porų DE ir HL bei HL ir dėklo atminties. Antroji komanda (XTHL) leidžia tiesiogiai keisti dėklo atminties viršūnės turinį. Ši komanda ypač patogi, kai paprogramės faktiniams parametrams perduoti naudojama programų atminties sritis, esanti po paprogramės iškvietimo komandos. XTHL komanda užtikrina paprastą parametrų srities pradžios adreso nustatymą paprogramėje, parametrų skaitymą (taikant komandas su M operandu) ir grįžimo adreso į pagrindinę programą modifikavimą. Taip pat komanda naudojama, nustatant bet kurioje programos vietoje programos skaitiklio turinį (žymės adresą), naudojant fiktyvią paprogramės iškvietimo komandą. Paprogramės vardas turi sutapti su žymės pavadinimu, o žymė įrašyta po paprogramės iškvietimo komandos. Žymės vietoje rašoma XTHL komanda, kurią atlikus HL registrų poroje bus įsimintas programos žymės adresas. Šis adresas gali būti naudojamas organizuojant realiatyvųjį adresavimą.
PCHL komanda vykdo perėjimą į programos vietą, kurios adresas nurodytas HL registrų poroje. Ši komanda naudojama, organizuojant perėjimus pagal suskaičiuotą adresą.
