Curs 2 - Microprocesorul 8085A - Structura Interna Si Function Are

download Curs 2 - Microprocesorul 8085A - Structura Interna Si Function Are

of 19

Transcript of Curs 2 - Microprocesorul 8085A - Structura Interna Si Function Are

Cursul 2Microprocesorul 8085A structura intern i funcionarea2.1. Caracterizarea funcional a unui microprocesor (UCP) Sistem - secvenial - sincron complex. Modelul abstract de automat finit:

A = (I, S, O, f, g, s0)unde: I, S, O - mulimi finite de intrare, stare i ieire; f:I g:I

S S funcia de tranziie descrie evoluia intern S O - funcia de ieire caracterizeaz evoluia semnalelor de ieire

s0 - starea iniial. Automate deterministe: |f(i, s)| = 1, |g(i, s)| = 1, i I, s S - au o evoluie unic pentru o pereche (i, s) dat. Realizarea fizic - sinteza structurilor secveniale. Format din unul sau mai multe circuite VLSI sau LSI.

2.2. Structura intern i funcionarea unui microprocesor Microprocesor = UCP - unitate de comand i prelucrare: Unitate de prelucrare (UP) - unitate logic i aritmetic (ULA) - registre interne (R) Unitate de comand (UC).

XTAL fanioane R + ULA comenzi UC GT CMD. INIT. (RESET)

P

dMD

aMA MC

c

Fig.2.1. Structura intern simplificat a unui microprocesor

Registrele interne (R) Memoreaz temporar adrese sau date care urmeaz a fi prelucrate n ULA. Asigur un transfer eficient i o cretere apreciabil a vitezei de execuie a instruciunilor. Unitatea logic i aritmetic (ULA) Prelucrarea logic sau aritmetic a operanzilor sub form de cuvinte binare. Lungimea cuvntului cu care opereaz ULA - criteriu de clasificare a microprocesoarelor. Unitatea de comand (UC) - Coordoneaz evoluia microprocesorului: - Recunoate i decodific instruciunile - Genereaz comenzi n vederea execuiei acestora: o n interior - spre R+ALU o n exterior - prin magistralele de adresa (MA), de date (MD) i de comand (MC). Funcionare sincron sincronizare cu semnalele furnizate de un generator de tact (GT). Generatorul de tact: - oscilator pilotat de un cristal de cuar (XTAL)

CLK

M1 T1 T2 T3 t tCY = TFig.2.2. Semnal de tact pentru microprocesor

Durata unui ciclu de tact - tCY - unitatea elementar de timp Starea main (T) - durata de timp n care are loc cea mai simpl operaie intern; Ti = tCY (i = 1, 2, 3, ...). Mulimea strilor main posibile - fixat n structura intern a UC. Ciclul main (M) - succesiune finit de stri main (T1, T2, ...,Tk); Corespunde operaiilor fundamentale de schimb de informaii n interiorul microprocesorului sau ntre microprocesor i exterior (memorie sau porturi I/E): - Citire din memorie; - Scriere n memorie; - Citire dintr-un port de intrare; - Scriere ntr-un port de ieire. - Operaii interne - transfer de informaii ntre registrele interne n paralel cu alte cicluri Primul ciclu main al unei instruciuni - ciclul de aducere a codului instruciunii din memorie (Instruction Fetch Cycle). Durata unui ciclu main Tc=kT. Ciclul instruciune (CI) - succesiunea de cicluri main Mj realizate pe durata execuiei complete a unei instruciuni.

CI = Mj = Tijj=1 j=1i=1

l

l k

Durata de execuie a unei instruciuni

TI=lkT

Durata de execuie a unei secvene de program - n funcie de durata unei stri main i de durata fiecrei instruciuni componente.

2.3. Microprocesorul 8085A I8085A P Intel de uz general de 8 bii; NMOS; I8085AH (3MHz) I8085AH-2 (5MHz) I8085AH-1 (6MHz) HMOS (consum mai mic cu 20%) MSM80C85AH (0,55MHz) Oki Semiconductor

Vcc GND X1 X2 CLK HOLD HLDA TRAP INTR RST 7.5 RST 6.5 RST 5.5 INTA SID SODFig.2.3. Microprocesorul 8085 semnale la pini

A15A8

AD7AD0 IO/M S1 S0 RD WR ALE READY RESET IN RESET OUT

8085A

Tipuri de semnale la pini Alimentare: VCC = 5V; Semnale de tact: oscilator intern pilotat cu cristal de cuar conectat ntre X1 i X2; generator de tact extern conectat pe X1; fXTAL = 2 fCLK (6 MHz - AH, 10MHz AH-2, 12 MHz AH-1, 110MHz MSM80C85AH) CLK semnal de sincronizare furnizat n exterior, cu frecvena fXTAL/2; Iniializare: RESET IN - iniializare PC=0000h, CBB IE=0, CBB HLDA=0. RESET ieire de resetare a altor dispozitive externe. Magistral de adrese/date multiplexat n timp: 16 linii de adrese (A15A8, AD7AD0); 8 linii de date (AD7AD0) Controlul transferului de date: ALE (Address Latch Enable) - reine octetul inferior al adresei ntr-un registru extern. Liniile RD , WR i IO/ M - controlul transferului datelor ntre P i dispozitivele externe. S0, S1 codific starea MD (Data Bus Status) n principalele cicluri de magistral: S1 S0 Tip ciclu 00 HALT 01 WRITE 10 READ 11 FETCH

Controlul ntreruperilor INTR, RST 5.5, RST 6.5, RST 7.5 i TRAP linii de prezentare a cererilor de ntrerupere INTA - linie de confirmare a acceptrii solicitrii de ntrerupere prezentate pe linia INTR.

2.3.1. Structura intern a microprocesorului 8085A INTA RST6.5 TRAP INTR RST5.5 RST7.5 Comand ntreruperi Magistral intern de date (8 bii) SID SOD

Comand I/E serial

Acumulator A (8)

Registru temporar (8)

Bistabile condiii (5) Unitate logicoaritmetic

Registru instr. (8)

Decodif. instr. i codif. ciclu main

B (8) C (8) D (8) E (8) H (8) L (8) SP (16) PC (16) Latch i inc./dec. adr.

+5V GND X1 X2Tact extern CONTROL

Corecie zecimal Bloc de secveniere i comandSTATUS DMA RESET

Tampon adrese

Tampon adrese/date

CLK

RD WR S0 READY ALE

S1

RESET HOLD OUT HLDA IO/M RESET IN

A15A8

AD7AD0 Magistrale de adrese i adrese/date

Fig.2.4. Microprocesorul 8085A structura intern

Unitatea aritmetic i logic - un sumator paralel de 8 bii; - un acumulator (A) de 8 bii, accesibil utilizatorului; - un acumulator temporar de 8 bii, (ascuns) pentru memorarea primului operand; - un registru temporar de 8 bii, (ascuns) folosit pentru cel de-al doilea operand; Registrul accumulator (A) - conine iniial operandul sau unul dintre cei doi operanzi de prelucrat - reine rezultatul operaiilor logice i aritmetice - este cel mai utilizat pentru manipularea operanzilor - permite intrarea i ieirea datelor n format paralel (sau serie) - sau serie, prin deplasarea bit cu bit dreapta /stnga

CY

A7

.

.

.

.

.

.

A0

Fig.2.5. Structura i funcionarea registrului acumulator Operaiile de deplasare - un CBB (circuit basculant bistabil) auxiliar - se pot transfera i testa biii A7, ..., A0 ai cuvntului din acumulator

- Fanioane sau bistabile de condiii (F - Flags): o CY (CarrY) transport/mprumut o AC (Auxiliary Carry) - transport/mprumut interdigit o Z (Zero) rezultat zero al operaiilor o S (Sign) semn al rezultatului o P (Parity) paritate numr de bii 1 ai rezultatului

D7 PSW A7 A6 A5 A4 A3 A2 A1 A0 S

D6 Z

D5

D4 AC

D3

D2 P

D1

D0 CY

-

-

-

Fig.2.6. Structura cuvntului de stare a programului Cuvntul de stare al programului - PSW - Program Status Word, de 16 bii. Operarea logic - bit cu bit de acelai rang - algebra Boole. A = (an-1 an-2 ... a1 a0 ), B = (bn-1 bn-2 ... b1 b0) A A B = (cn-1 cn-2 ... c1 c0) unde: ci = ai bi ai, bi, ci {0, 1}, i= 0, n - 1

= , , sau Operarea aritmetic - n baza 2: operaiile: +, -

Registrele microprocesorului - PC - Program Counter numrtorul de program,; - SP - Stack Pointer - indicatorul vrfului stivei; - B, C, D, E, H i L - registre generale, utilizate individual sau n pereche (B-C, D-E, H-L) - un registru pereche W-Z (ascuns), registru temporar pentru operaii interne. PC - incrementat/decrementat nainte de a fi transferat n registrul tampon de adres. Registrele comunic cu magistrala intern printr-un multiplexor, adresat printr-un circuit de selecie, sub controlul blocului de secveniere i comand. Magistrala intern de date - izolat de magistrala extern, D7D0, prin intermediul unui registru tampon bidirecional, care amplific semnalele la nivelul unei sarcini TTL i asigur memorarea temporar a datelor transmise de microprocesor. Registrul tampon faciliteaz intrarea datelor i a codurilor instruciunilor. Registrul de instruciuni primete codul operaiei la nceputul execuiei unei instruciuni. Blocul de decodificare a instruciunilor - memorie ROM, programat astfel nct s permit recunoaterea codurilor instruciunilor i odificare a ciclurilor main care trebuie realizate n etapa de execuie. Blocul de secveniere i comand - desfurarea temporal a ciclurilor main aferente execuiei unei instruciuni, sincronizata cu semnalul de tact generat de un oscilator intern.

Stiva zon de memorie RAM, cu acces de tip LIFO (Last In, First Out)- Stocarea temporar a coninutului registrelor interne; - Salvarea/ncrcarea adresei de revenire la execuia instruciunilor de apel/revenire; - Transferul de parametri ntre programul apelant i subrutina apelat;

Adresarea informaiilor din stiv- registrul SP Stack Pointer indicatorul vrful stivei SP- conine n orice moment adresa vrfului stivei - adresa ultimei locaii ocupate din stiv Stiva crete prin decrementarea SP (n sens invers lui PC incrementare) Operaii admise depunere i extragere- Registre pereche sau cuvinte de 16 bii: o BC, DE, HL, PC, PSW - Execuie 2 cicluri succesive de scriere/citire - Adresa este furnizat de SP - Ordinea - convenia Intel - Adresa mai mic octetul mai puin semnificativ

Adresa MIN

RAM Memorie de date

: :

Accesul n stiv implicit sau explicit- Acces explicit instruciuni PUSH, POP - Acces implicit CALL, RET, XTHL

SP MAX

Stiv

2.3.2. Iniializarea microprocesorului Comportare determinist aducerea microprocesorului n starea iniial.

Vcc RESET D R

PRESET trigger Schmitt

C

Fig.2.8. Schema de iniializare hardware a microprocesorului 8085A Iniializare hardware RESET - foreaz unele registre interne ale microprocesorului ntr-o stare bine definit. Resetarea la alimentare i la cerere. Grupul RC - durata necesar pentru semnalul RESET. Triggerul Schmitt formeaz frontul semnalului de resetare.

2.3.3. Regimuri de funcionare Regimul de funcionare normal Execuie secvenial a instruciunilor programului Execuie secvenial a ciclurilor main (CM) Execuie secvenial a microoperaiilor specifice fiecrui ciclu main n parte Testarea strii liniei READY - sincronizare cu dispozitivele externe n fiecare ciclu main este testat starea liniei READY; Dac READY=1 - dispozitivul adresat este pregtit pentru transfer; Dac READY=0 se intr n regimul de ateptare. Testarea apariiei unei cereri de cedare de magistral Trecerea n 1 a liniei HOLD este reinut n bistabilul intern HLDA; La sfritul fiecrui CM este testat starea acestui bistabil; Dac CBB HLDA este setat, se intr n regimul de cedare magistrale. Testarea apariiei unei cereri de ntrerupere n ultimul CM al unei instruciuni Se testeaz dac exist o cerere de ntrerupere valid. Dac exist o cerere valid, se intr n regimul de ntrerupere. Execuia instruciunii HLT (Halt) Se intr n regimul de oprire (HALT)

Regimul de ateptare sincronizarea transferului dintre P i dispozitive externe mai lente Se introduc perioade de ateptare TW; Se testeaz starea liniei READY n fiecare perioad TW; Cnd READY este gsit activ, se revine n regimul de funcionare normal.

Regimul de cedare de magistrale - (regimul HOLD): Un alt dispozitiv solicit prin HOLD=1 accesul la magistrala sistemului; Cererea este memorat ntr-un bistabil intern (HLDA - HoLD Acknowledge flip-flop); P cedeaz MA, MD i MC (HZ) i confirm prin semnalul HLDA=1; La dispariia cererii (HOLD=0), bistabilul intern este resetat i P reia controlul MS.

Regimul de ntreruperi Se trece la execuia primei instruciuni a rutinei de tratare a ntreruperii: furnizat de dispozitivul solicitant la activarea de ctre P a liniei INTA (INTR) este predefinit, fixat n hardware, fiind cunoscut de P (TRAP, RST).

Regimul de oprire P i trece n starea HZ liniile de adrese, date i o parte dintre liniile de control; Se execut cicluri HALT succesive. La apariia unei cereri de cedare de magistrale, se intr n regimul HOLD. La revenirea din regimul HOLD, se continu cu cicluri HALT. La apariia unei cereri de ntrerupere, se intr n regimul de ntrerupere. La revenirea din ntrerupere se continu cu instruciunea care urmeaz lui HLT. La resetare, se intr n regimul de funcionare normal.

2.3.4. Secvenierea intern a operaiilor Execuia unei instruciuni: 15 cicluri main. Tipuri de cicluri main Stare S1 1 1 0 1 0 1 1 1 0 S0 1 0 1 0 1 1 0 1 0IO/ M

Tip ciclu OF (Opcode Fetch) MR (Memory Read) MW (Memory Write) IOR (I/O Read) IOW (I/O Write) INA (INterrupt Acknowledge) BI (Bus Idle):DAD Ack. TRAP, RST HALT

ComandRDWRINTA

0 0 0 1 1 1 0 1 HZ

0 0 1 0 1 1 1 1 HZ

1 1 0 1 0 1 1 1 HZ

1 1 1 1 1 0 1 1 1

OF primul ciclu main al unei instruciuni 4 sau 6 perioade de tact; BI - ciclu main care nu utilizeaz magistrala sistemului; INA extragere cod operaie depus de dispozitivul I/E care a cerut o ntrerupere pe INTR.

Diagrama de tranziie a strilor

TRESETRESET

RESET

T1

HALT READY TWAIT HOLD Da SET CBB HLDA CC=6 HOLD=1 Nu Da SET CBB HLDA SET CBB HLDA HOLD VALIDINT THALT VALIDINT RESET CBB HALT SET CBB INTA RESET CBB IE

HALT

T2

(READY+BI)

HOLD=1

?Nu OF

T3

T4

?

CC=4

T6CBB HLDA=1 Nu Nu Ultimul CM al instruciunii ? Da

T5

THOLD

HOLD

HOLD RESET CBB HLDA Da

DaNuVALIDINT=1

HALT=1

?

?

Da

Nu

SET CBB INTA RESET CBB IE

Fig.2.9. Diagrama de tranziie a strilor la microprocesorul 8085A

Secvenierea operaiilor n ciclurile main

CLK

T1

T2

T3

M1

T4

T5, 6

T1

T2

M2 . . . M5

A15A8AD7AD0 ALE IO/M S1 , S0 OUT PCL

PCH IN D7 D0

NEDEF. OUT (PC+1)L

(PC + 1)H IN D7 D0

S1 = S0 = 1

RD

READY Adrese Date Decodificare i execuie Adrese Date tFig.2.10. Diagrama de semnale pentru un ciclu Opcode Fetch

M1 T1 CLK IO/M, S1, S0 ALE T2 T3 T4 T1

M2 T2 T3 T1

M3 T2 T3 T1

M4 T2 T3

( 0,1,1)

( 0,1,0 )

( 0,1,0 )

( 0,0,1 )

A15A8 OUTPCL

PCH INOPCODE

(PC+1)H OUT(PC+1)L

(PC+2)H OUT(PC+2)L

ADH OUTADL

INADL

INADH

OUTACC.

AD7AD0 RD

Date de la memorie

Date de la memorie

WR OF MR MR MW t

Fig.2.11. Secvenierea operaiilor la execuia instruciunii STA addr

M1 T1 CLK IO/M, S1, S0 ALE T2 T3 T4 T1

M2 T2 T3 T1

M3 T2 T3

( 0,1,1)

( 0,1,0 )

( 1,1,0 )

A15A8 OUTPCL

PCH INOPCODE

(PC+1)H OUT(PC+1)L

PORT OUTPORT

INPORT

IN Date de la port

AD7AD0 RD

Adresa port

WR OF MR RP

Fig.2.12. Secvenierea operaiilor la execuia instruciunii IN port