Mp - Cap3 2013

91
c 2013 Liviu Kreindler / Aurelian Sarca 3 - 1 Sisteme cu microprocesoare Microprocesoare - Concepte generale Structura de baza a unui sistem microcalculator Memorie Memorare program Memorare date Interfete periferice externe Iesire Intrare De la / la periferice MICROPROCESOR (CPU) control magistrala date/adrese magistrala date

description

mp

Transcript of Mp - Cap3 2013

Page 1: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 1

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Structura

de baza

a unui

sistem

microcalculator

Structura

de baza

a unui

sistem

microcalculator

MemorieMemorareprogram

Memoraredate

Interfete

periferice

externe

Iesire Intrare

De la / la periferice

MICROPROCESOR

(CPU)

controlmagistrala

date/adresemagistrala

date

Page 2: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 2

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Reprezentarea

functiilor

unui

microprocesor, corelat

cu memoria

si

perifericele

sistemului

Reprezentarea

functiilor

unui

microprocesor, corelat

cu memoria

si

perifericele

sistemului

Programul,in memorie

Date de la memorie,

sau

periferice

ReceptioneazaTransmiteMemoreazaAnalizeaza

Informatie

Efectueaza

operatii logicearitmetice

Ia

decizii

Controleaza

Registrele

interneMemoriaComponentele

/ sistemeleexterne

(b)

Page 3: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 3

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Structura

functionala

si

fluxul

de informatii

intr-

un sistem

microprocesor

Structura

functionala

si

fluxul

de informatii

intr-

un sistem

microprocesor

Intrare

Microprocesor

Control

U.A.L.

Memorie Iesire

controlinformatie

Page 4: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 4

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Inlantuirea

temporala

a operatiilor

sistemului microprocesor

Inlantuirea

temporala

a operatiilor

sistemului microprocesor

activare

activare

activare

activare

Memorie

U.A.L.

Iesire

IntrareCitire informatii

Prelucrare Iesire rezultate

T1 T2 T3

Page 5: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 5

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Reprezentarea informatiei (instructiuni sau date)

Reprezentarea informatiei (instructiuni sau date)

LSB: bitul cel mai putin semnificativ (last significant bit);

MSB: bitul cel mai semnificativ (most significant bit)

cuvint

de instructiune

cuvint

de instructiune

cuvint

de dateDate , numere

, litere

aB7 B0

(MSB) (LSB)

cod operatieindica

operatiade adunare

operandindica

codul

unuiregistru

contininddata ce

se adunab

1 0 0 0 0 010

Cod operatie Operand

0 1 01 0 0 0 0

Page 6: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 6

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memorarea informatiei Memorarea informatiei Organizarea interna a unui circuit de memorie

de m cuvinte de cate n

biti

scrie

Bit nAdresa

1

Adresa

2

Adresa

i

Adresa

m

citeste/

(R/W)Intraredata Iesiredata

data data dataIntrare Iesire

Bit n-1 Bit 0

dataIntrare

Iesire

Page 7: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 7

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Magistralele unui sistem microprocesor Magistralele unui sistem microprocesor Structura unui sistem microprocesor cu punerea in evidenta a conexiunilor prin intermediul magistralelor

ADRESE

DATE

CONTROL

(unidirectionala) Magistrala

de adrese

Magistrala

de date

Magistrala

de control

(bidirectionala)

(bidirectionala)

U.C.P. Memorie Intrare Iesire

Arhitectura

von NeumanArhitectura

von Neuman

Page 8: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 8

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Arhitectura

HarvardArhitectura

Harvard

Structura unui sistem microprocesor cu punerea in evidenta a conexiunilor prin intermediul magistralelor

Magistrala

de adrese

m.program

Magistrala

de date

m.program

Magistrala

de control

U.C.P.Memorie

programMemorie

date / porturi

Magistralele unui sistem microprocesor Magistralele unui sistem microprocesor

Magistrala

de adrese

m.date

Magistrala

de date m.date

Page 9: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 9

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Magistralele unui sistem microprocesor Magistralele unui sistem microprocesor Utilizarea circuitelor tampon (buffere)

Utilizarea circuitelor latch

Magistrala

de control

Magistrala

de adrese

Magistrala

de date

Circuit tampon(buffer) unidir.

Circuit tampon(buffer) unidir.

Circuit tampon(buffer) bidirectional

Memorie

si

periferice

Unitate

centralade prelucrare

(CPU)

Magistrala

de control

Magistrala

de adrese

Magistrala

de date

Magistrala

de date

Unitate

centralade prelucrare

(CPU)

mag.adreseDecodificator

Circuit

memorare

(latch)

abcdefg

Amplif.

activare

selectie

abcdefg

a

b

c

d

e

fg

afisaj

cu 7segmente

Page 10: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 10

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Structura interna a unui microprocesor Structura interna a unui microprocesor Contine 5 sectiuni:

control

ALU

memorie

intrare

iesire

circuittampon

M A RPC

RI

Decodificaretiming sicontrol

U A L

RegistreleUAL

circuittampon

circuittampon

registre

de uz

general

R O M

R A M

mag. adrese

mag.date

mag.control

Page 11: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 11

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sectiunea de control a microprocesorului Sectiunea de control a microprocesorului Semnale specifice magistralei de control:

> RESET (initializare)

> READY (sincronizare)

M A R

Registrul

de instructiuni

Decodificatorul

de instructiune

Generatorul

de control

Ceas

Generator temporizare

T1÷T5

P C

Ceas

sistemµP

Magistrala

de date

Magistralade adrese

Page 12: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 12

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Ciclul instructiune al microprocesorului Ciclul instructiune al microprocesorului

T1 T2 T3 T4 T5

Subciclu

Subciclul 1 Subciclul n

Ciclul microprocesorului

Exemplu: memorarea unei constante (continuta in octetul al doilea al instructiunii)

ContinutulPC pemagist

rala

de da

te

PC = PC+1

Se

ex

trag

e

primul

cuva

nt

de in

stru

ctiu

ne

din me

morie

Op

er

a

t

iiinterne

(

d

ec

o

di

f

i

care,etc.

)

Se

ci

test

e

al

doilea

c

uv

ant

a

l

instru

ctiunii

(data) si s

e memoreazatempora

r

intr-

un re

gi

stru

Se configure

a

z

a

a

d

resa

celul

e

i

de me

morie

l

a care se memoreaza

data

Se tran

sfer

a

data in memorie

ContinutulPC pemagist

rala

de da

te

PC = PC+1

FETCH (extragere)

Subciclul 1 Subciclul 2

Urmatoareainstructiune

Page 13: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 13

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Te

st READY

Logica

de READY

/ WAITLogica

de READY

/ WAIT

T1

Microprocesor Memorie

M

a

gi

s

t

rala

Ad

rese

Magi

stral

a

Date

READY

T2 Tw Tw T3Tw

Cl

k

READY

Page 14: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 14

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Diagramele

de timp

asociate

operatiilor

de lucru

cu memoria

Diagramele

de timp

asociate

operatiilor

de lucru

cu memoria

_________________CITIRE_____________________ ________________SCRIERE____________________

Nr*Tp

> Tad+Tacc+Tds+Tab+Tdb; Nw*Tp

> Tas+Tw+Tdh+Tab+Tdb

+Tad;

semnalul

deCEAS de SISTEM

adresa

peMAGISTRALA de ADRESE

activare

semnalCITIRE (READ)datele

peMAGISTRALA de DATE

tp

tad

tacc

tds (a)1 ciclu

masina

adrese

valide

activarecitire

date valide

semnalul

deCEAS de SISTEM

MAGISTRALA de ADRESE

semnal

CITIRE (READ)

MAGISTRALA de DATE(b)

timp

accescitire

semnalul

deCEAS de SISTEM

adresa

peMAGISTRALA de ADRESE

datele

peMAGISTRALA de DATE

tp

tad

(a)1 ciclu

masina

adrese

valide

date valide

semnalul

deCEAS de SISTEM

MAGISTRALA de ADRESE

semnal

SCRIERE(WRITE)

MAGISTRALA de DATE

(b)

t dstas tw

tdhsemnalul

deSCRIERE (WRITE)

timp

selectieadrese

timp

accesdate

timp

retineredate

durata

pulsscriere

Page 15: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 15

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sectiunea

de memorie

a microprocesoruluiSectiunea

de memorie

a microprocesorului

Registre de uz general

Memorie ROM

Memorie RAM

Selectie

registre

R0R1

Registre

uz

general

Adresa

0

Adresa

1

ROM

Adresa

n

Adresa

n+1

RAM

Adresa

m

Magistralade date

Magistralade adrese

Magistralade control

Page 16: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 16

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Goli

re

stiva(RET, POP)

Umplere s

tiva

(CALL,

PUSH)

Operatii

cu stivaOperatii

cu stiva

CALL SUB1

CALL SUB2

SUB1 SUB2

RET

PC1

PC2

RET

Me

morie P

rogramMe

morie P

rogram

Me

morie D

ate

Me

morie P

rogram

PC1PC2

……

Stack Pointer

Page 17: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 17

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sectiunea

aritmetico-logica

a microprocesoruluiSectiunea

aritmetico-logica

a microprocesorului

Structura generala

(indicatori de conditie:carry, sign, zero, parity)

Exemplu ALU

Registru

de starecarry

Acumulator Registru

de date

A L U

Magistralade date

Rezultat

Stare ALU

UNITATEARITMETICO-LOGICA

(ALU)

Mag. date

Mag. date

intrareCARRYSelectie

FUNCTIE

Intrari

de date

(operatie)

(operand 1)

(operand 2)

Page 18: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 18

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sectiunile

de I/E ale microprocesoruluiSectiunile

de I/E ale microprocesorului

Circuite tri-state pentru conectarea la magistrale

en 2en 1

Bit al magistralei

i i1 2

en n

i n

Page 19: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 19

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesorMemoria interna a sistemului microprocesorRAM -

Random Access MemoryROM -

Read Only Memory

MEMORIA DE TIP RAM

Selectie celulamemorie

Intraredata

Iesiredata

Data

Selectiecelulamemorie

Data

Data Data

Selectiecelulamemorie

Vcc Vdd

a b

+ V

c

RAM dinamic RAM statica) -

tehnologie bipolarab) MOSc) CMOS

Reimprospatare informatie -

REFRESH

Page 20: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 20

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAMStructura

unei

celule

de memoriecu capacitate de un bit

Structura

unui

cuvant

de memorie

RAM

DATADE

INTRARE

DATADE

IESIRE

______

"1" pt. CITIRE

CITIRE / SCRIERE

1 pt. CITIRE 0 pt.SCRIERE

"0"pt.SCRIERE

______

bit7bit1bit0

bit7bit1bit0

Intrare Iesire

CITIRE / SCRIERE

Page 21: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 21

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAM

Configuratia

unui

circuit de memorie

cu o capacitate de 1024 celule

(biti)

992

celulamemoriede un bit

0 1 2 3 31Decodificator pentru adresa coloana

selectie

coloana

993 994 995

96 97 98 99 127

64 65 66 67 95

32 33 34 35 63

0 1 2 3 31

selectie rind

Decodi-ficatorpentru

adresarind

31

3

2

1

0

MAGISTRALA ADRESE MEMORIE

9 8 7 6 5 4 3 2 1 0

Page 22: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 22

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAM

Multiplexarea liniilor si coloanelor unui circuit de memorie RAM dinamic

LATCH ADRESA RIND

LATCH

ADRESA

COLOANA

SelectieAdresaColoana

SelectieAdresaRind ( RAS )

( CAS )

CONTROLRIND/COLOANA

COLOANARIND

MAGISTRALA ADRESE MEMORIE

Page 23: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 23

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAM

Utilizarea

tipica

a a semnalelor

de control (citire/scriere, selectie

de cip), la o memorie

RAM

Circuite scriere

Circuite

citire

4

CS WE OPERATIA

CS

WE

3

2

1

CITIRE

SCRIERE

0 0 SCRIERE INTRARE0 1 CITIRE IESIRE1 01 1

} }INACTIV INALTA IMPEDANTA

SENS TRANSFERDATE

Page 24: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 24

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAMStructura

unui

circuit RAM static de 64 octeti

A5 A4 A3 A2 A1 A0 CS Selectie

0 0 0 0 0 0 0 SEL00 0 0 0 0 1 0 SEL10 0 0 0 1 0 0 SEL2

...

1 1 1 1 1 1 0 SEL63X X X X X X 1 -

62 X 8

biti

Decodificatorintern

de adrese

Bloc decontrol

R/W

CS__

6

Matrice

memorie

Circuit

tampon 8

Magistrala

de adrese Magistrala

de date

Page 25: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 25

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAMRealizarea

unei

memorii

2k x 8 biti, cu doua

circuite

de 2k x 4 biti

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Bitii superiori de adresa utilizati laobtinerea selectiei de chip (CS)

Bitii inferiori de adresa,conectatidirect la pinii memoriei

Utilizarea

tipica

a bitilor

de adresa

pentru

paginarea

memoriei

sistemului microprocesor

Decodificareadrese

sup.2k x 4

Magistrala

de adrese

CS

R / W

----

---

A0 A10

CS

R / W---2k x 4

16 11

5---

Magistrala

de date

8 4 4

A11 A15 A0 A10

D0 D3 D4 D7

µ P

÷

÷÷

÷÷

Page 26: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 26

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria RAMMemoria interna a sistemului microprocesor

-

Memoria RAM

(a) Organizarea unei memorii de 64k x 8, pagini de cate 2k x 8 biti

(b) Configurarea adreselor

µP

Magistralade adrese

Magistralade date

Decodificare

A0

÷

A10 CS2k x 8

R/W

A0 ÷ A10 CS2k x 8

R/W

A0 ÷ A10 CS2k x 8

R/W

R/W

0 1 315 32

÷CS0 CS1 CS31

(a)

CS0

Configuratie

adresa

A15 A14 A13 A12 A11 A10 A9 ... A0

CS1CS2

CS31

0 0 0 0 0 x x ... x0 0 0 0 1 x x ... x0 0 0 1 0 x x ... x

1 1 1 1 1 x x ... x

CS

x-adresa

variabila0-0 logic1-1 logic

(b)

A11 A15÷

16 5

11 11 11

.

.

....

Page 27: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 27

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria ROMMemoria interna a sistemului microprocesor

-

Memoria ROM

Schema de principiu a unui circuit de memorie PROM (nx4 biti)

Bitii de adresa

Iesire de date

Circuit tamponC S__

DECODIFICATOR

+V

1111

1001

1011

1001

n

Memorii ROM (Read Only Memory)PROM (Programable ROM)EPROM (Erasable PROM)EEPROM (Electrically EPROM)

Page 28: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 28

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

Memoria ROMMemoria interna a sistemului microprocesor

-

Memoria ROM

Structura unui circuit de memorare PROM/EPROM

de 1kx8

biti

CS -

Chip Select : Doar daca READ activ

C S

Magistralade adrese Magistrala

de dateMatrice

memorieCircuittampon

10

Decodifi-cator

intern deadrese

Page 29: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 29

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului microprocesor

-

ExempluMemoria interna a sistemului microprocesor

-

Exemplu

Avand un microprocesor cu 8 linii de date si 16 linii de adresa , sa se proiecteze memoria sistemului asigurand 60 ko ROM cu circuite PROM 4kx8

si 4 ko RAM cu circuite RAM 512x8

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 R/W Select Spatiu adrese

B0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 CSP0 0H0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1H0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2H0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 3H

. . . 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 - 0FFFH

B1 0 0 0 1 X X X X X X X X X X X X 1 CSP1 1000H - 1FFFHB2 0 0 1 0 X X X X X X X X X X X X 1 CSP2 2000H - 2FFFHB3 0 0 1 1 X X X X X X X X X X X X 1 CSP3 3000H - 3FFFH...B14 1 1 1 0 X X X X X X X X X X X X 1 CSP14 E000H - EFFFH

B15 1 1 1 1 0 0 0 X X X X X X X X X 0 CSR0 F000H - F1FFH1 1 1 1 0 0 1 X X X X X X X X X 0 CSR1 F200H - F3FFH1 1 1 1 0 1 0 X X X X X X X X X 0 CSR2 F400H - F5FFH

. . .1 1 1 1 1 1 1 X X X X X X X X X 0 CSR7 FE00H - FFFFH

Page 30: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 30

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Memoria interna a sistemului

microprocesor

-

Exemplu

Memoria interna a sistemului

microprocesor

-

Exemplu

Decodificare4:16

Magistralade adrese

4K x 8 CSPROM

4K x 8 CSPROM

4K x 8 CSPROM

. . . . . .

164

A15 A12R / W

BO B15

CSP0

CSP1

CSP14

8

8

8

8

12

12

123

Decodificare

3:89

9

9

CSR0

CSR7

8

8512 x 8 CSRAM

512 x 8 CS

RAM

Magistralade date

12BO

R / W

Page 31: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 31

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor-aspecte generaleSoftware-ul sistemului microprocesor-aspecte generale

LSBMSB

cuvint de date

instructiunepe 1 cuvint

instructiune

instructiune

pe 2 cuvinte

pe 3 cuvinte

cod operatie

cod operatie

cod operatie

adresasau data

data sauadresa

B4 B3 B2 B1 B0B7 B6 B5

B4 B3 B2 B1 B0B7 B6 B5

B4 B3 B2 B1 B0B7 B6 B5

B4 B3 B2 B1 B0B7 B6 B5

B4 B3 B2 B1 B0B7 B6 B5

B4 B3 B2 B1 B0B7 B6 B5

B4 B3 B2 B1 B0B7 B6 B5

Structura

principiala

a instructiunilor

unui

microprocesor

Page 32: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 32

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

moduri de adresare

Software-ul sistemului microprocesor -

moduri de adresare

Reg. index selectat

in octetul

de instr.

>

>

Adr. (reg.) inclusa

in cadrul

instr.

Octet 1

Octet 2 Octet 3 Octet 1Low High

Octet 1 Octet 2 Octet 3 Low High

Octet 1 Octet 2 Octet 3 Low High

>

>

Octet 2 Octet 3Octet 1Low High

>

>

Adr. de baza> Adunare

>Adr.efectiva

Data ; nu

este

necesar

acces

la memImediata

Registru

Indexata

Directa

Indirecta

>

>

>

><

Valoare

index

Adr. 0 ÷255

Adr. 0 ÷65536

Prima adresa

>

Adr.efectiva

Data

Data

Data

Data

Data

Data

Octet 2 Octet 3 Octet 1Low High

Relativa

> Adunare

> >

Adr. efectivaP C

Valoareacontorului

deprogram, laurmatoareainstructiune

Observatie

: Octet 1 reprezinta

octetul

deinstructiune

in toate

cazurile

Registre

Page 33: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 33

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

moduri de adresareSoftware-ul sistemului microprocesor -

moduri de adresare

Adresarea imediata

Adresarea directa

Mnemonica Reprezentare

in memorie Executie

instructiune

MOV BX, 3 BXcod operatie

operandinitial: BX = xxxxfinal: BX = 0003

PC

PC+1PC+2

0003BB0300

memorie

programregistre

Mnemonica Reprezentare

in memorie Executie

instructiune

MOV ALFA,AX

AXcod operatie

operand

initial: AX =0523H

final: AX = 0532H

PC

PC+1PC+2

ALFA=07F8

ALFA=XXXX

ALFA = 0532H

0532

0532H

A3F807

0532

memorie

programregistre

memorie

de date

Page 34: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 34

Sisteme cu microprocesoare Microprocesoare - Concepte generale

A3

Software-ul sistemului microprocesor -

moduri de adresareSoftware-ul sistemului microprocesor -

moduri de adresare

Compararea implementării programelor utilizand adresarea imediata (a), sau directa

(b)

Instructiuni(mnemonici)

Reprezentare

in memorie

MOV AX, 123H

AXPC

PC+1

PC+2

ADD AX, 345HMOV REZ, AX

PC+8

12

3

REZ:100H

+

1

23

...

(a) utilizind

adresarea

imediata

Instructiuni(mnemonici)

Reprezentare

in memorie

MOV AX, OP1

PC

PC+1

PC+2

ADD AX, OP2MOV REZ, AX

PC+8

12

3

REZ:100H

+

1

2 3

...

(b) utilizind

adresarea

directa

0468H

123H

345H

123H468H

468HOP1:80H

OP2:90H

0123H

0345H

0468H

memorie

program

memorie

de date

memorie

de date

memorie

program

AX

AX

123H

345H 468H

468H

B32301054503A30001

B38000059000

0001

registre

registre

Page 35: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 35

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Adresarea registru

Software-ul sistemului microprocesor -

moduri de adresareSoftware-ul sistemului microprocesor -

moduri de adresare

Mnemonica Reprezentare

in memorie Executie

instructiune

MOV AX,CS AX

initial: AX =XXXX

final: AX = A3C2H

PC

PC+1

CS = A3C2H

CS = A3C2H

memorie

program CS A3C2

A3C2

A3C2

A3F8

registre

Page 36: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 36

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

moduri de adresareSoftware-ul sistemului microprocesor -

moduri de adresare

Implementarea unei bucle de program, ce utilizeaza adresarea indexata

(a) Schema logica a secventei de program; (b) secventa de program

Adresarea indexata

SI = 0AX = 0CX = 10

AX = AX + TAB[SI]

CX = CX - 1

CX = 0

MOV AX, 0MOV SI, AXMOV CX, 10

ADD AX, TAB[SI]ADD SI, 1LOOP BUCLA

...(a) (b)

BUCLA

; initializari

; calcul suma elemente

Mnemonica Reprezentare

in memorie Executie

instructiune

ADD AX, TAB[SI] AXPC

PC+1

memorie

program

SI 00050304

registre

00

01... memorie

de date

TAB=100H

TAB+5 0422

AX = 0123HSI = 0005HTAB[5]=0422H

dupa

executie:AX = 0545HSI = 5TAB[5] = 0422H

inainte

de executie:

100H

100H

5H

105H

422H

123H

545H123H / 545H

Page 37: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 37

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

moduri de adresareSoftware-ul sistemului microprocesor -

moduri de adresare

Adresarea indirecta

Mnemonica Reprezentare

in memorie Executie

instructiune

XCHG BX, [SI] BXPC

PC+1

memorie

program

SI 0100H871C

registre

... memorie

de date

BX = 1234SI = 100Hmem(100H) =6789

dupa

executie:BX =6789SI = 100Hmem(100H) = 1234

inainte

de executie:

100H

5678 1234

1234/6789

6789/1234

100H

Page 38: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 38

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

moduri de adresareSoftware-ul sistemului microprocesor -

moduri de adresare

Adresarea relativa

8BDB8320007E050F1000EBF68BC3

MOV BX, AX

CMP BX, 20H

JLE ERR

ADD BX, 10H

JMP TST

MOV AX, BX

Coduri instructiuni Memorie program Comentariiadresa

012345678910111213

salt pozitiv cu +5salt negativ cu -10=F6h

TST

ERR

; incarcare BX cu continut AX

; comparare BX cu 20H

; daca BX < 20H, sau BX=20H, salt la ERR

; BX = BX + 10H

; reluare program de la adresa TST

; memorare BX in AX

cod

Page 39: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 39

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

setul de instructiuniSoftware-ul sistemului microprocesor -

setul de instructiuniClasificarea instructiunilor:

Instructiuni de transfer si actualizare a informatieiGrupul 0 -operatii generale: INR R3Grupul 1 -

operatii de transfer al informatiei: MOV R6,R3

Instructiuni de modificare a informatieiGrupul 2 -

operatiile aritmetico-logice: ADD R4

Instructiuni de controlGrupul 3a -

operatii de control al programului: JUMP, CALL, RETURN (salt cond / necond; indicatori de conditie: Z,C,P,S..)

Grupul 3b -

operatii de control al procesorului: EI, DI

00011100 -

programare in cod masina

INR R3 -

mnemonica

limbaj de asamblare (1:1) -

asamblor

limbaj de nivel inalt -

FORTRAN, PASCAL, C, etc…

(1 : n) -

compilator

codGrupa

0 destinatie operatie

destinatiecod sursaGrupa

1

cod

cod

Grupa

2

Grupa

3

operatie sursa

operatiedetransfer

conditietransfer

(a)

(b)

(c)

(d)

0 0

0 1

1 0

1 1

D D D

D D D

N N N

X X X

Y Y Y

S S S

S S S

C C C

Page 40: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 40

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

stivaSoftware-ul sistemului microprocesor -

stiva

SP (stack pointer) -

varful stivei;LIFO -

last in, first out -

ultimul intrat, primul iesit)

adresa instructiunememorie program

0A50 CALL SUBA

011A CALL SUBB

0100...

...

...

0200...

RETURNRETURN...

...

1

2

3

4

- salvare continut PC in stiva-executie subrutina SUBA (100H)

- salvare continut PC in stiva- executie subrutina SUBB (200H)

- refacere continut PC din stiva-continuare executie subrutina SUBA

- salvare continut PC in stiva-continuare executie program principal

SPSP

SPSP

SP

inainte de 1 1 2 3 4

0A51 0A51 0A51011B

Stiva(memorie date)

0A51

011B

Page 41: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 41

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

stivaSoftware-ul sistemului microprocesor -

stiva

Salvarea continutului registrelor si

a

adreselor

de

revenire in stivaprogram principal

PUSH AXPUSH BXPUSH CX

CALL SUB1urmat. instr.PC1 CALL SUB2

urmat. instr.

subrutina 1

...

...

...

...

RETURN

SUB1

PC2

adresa

adresa

subrutina 2

RETURN

SUB2adresa

cresterea continutuluistivei

adresa de inceput a stivei

AXBXCXPC1PC2

Transmiterea parametrilor la apelarea unei subrutine:

a) fiecarei subrutine i se asociaza un set de locatii de memorie

b) se utilizeaza registrele de uz general

c) se utilizeaza stiva pentru memorarea temporara a datelor ce trebuiesc transferate subrutinei:PUSH -

introduce (scrie) in stiva POP -

restaureaza (citeste) din stiva

Page 42: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 42

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

Execuţia instrucţiunii ADD RSoftware-ul sistemului microprocesor -

Execuţia instrucţiunii ADD R

Registrul contor de program are valoarea 9F52H

Subciclul 1, T1

Se selecteaza celula de memorie program la adresa 9F52H(valoarea curenta a PC)

U A L R I

Registru deinstructiuniunitate decomanda

Registrude adrese

Acc

R TR

Registrutemporar

Registrul R

Magistrala internaMagistrala de date

9 F 52

Magistralade adrese

Memorie program

P C>

1

ceas

Page 43: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 43

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

Execuţia instrucţiunii ADD RSoftware-ul sistemului microprocesor -

Execuţia instrucţiunii ADD R

Subciclul 1, T2

Codul instructiunii (din celula de memorie selectata) pe magistrala de date; se incrementează PC

U A L

R IRegistru deinstructiuniunitate decomanda

Registrude adrese9 F 52

Acc

R TR

Registrutemporar

Registrul R

Magistralade adrese

+1>

ceas

1000 0010Magistrala de dateMagistrala interna

P C

Memorie program

1 2

Page 44: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 44

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

Execuţia instrucţiunii ADD RSoftware-ul sistemului microprocesor -

Execuţia instrucţiunii ADD R

Subciclul 1, T3

Codul instructiunii citit pe magistrala de date, in registrul de instructiuni

U A L

R IRegistru deinstructiuniunitate decomanda

Registrude adrese9 F 52

Acc

R TR

Registrutemporar

Registrul R

Magistralade adrese

9 F 53>ceas

Magistrala de dateMagistrala interna

P C

Memorie program

1 2 3

Page 45: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 45

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor -

Execuţia instrucţiunii ADD RSoftware-ul sistemului microprocesor -

Execuţia instrucţiunii ADD R

Subciclul 1, T4

Se decodifica si executa instructiunea; se aduna continutulregistrului R la acumulator; rezultatul în acumulator

ADD,R : 1000 0010

R IRegistru deinstructiuniunitate decomanda

9 F 52

Registrutemporar

Registrul R

Magistralade adrese

9 F 53>ceas

Magistrala de dateMagistrala interna

P C

Memorie program

1000 00101 2 3

Registru de adrese

cod operatie

4

Page 46: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 46

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Software-ul sistemului microprocesor –

programareaSoftware-ul sistemului microprocesor –

programarea

Limbajul de asamblare: avantaje / dezavantaje

Reguli de baza:

programatorul raspunde de completa gestionare a tuturor resurselor sistemului

in program trebuiesc specificate adresele pentru fiecare variabila, locatie de memorie sau port accesate la un moment dat

trebuiesc anticipate si evitate situatiile de aparitie a operatiilor cu rezultate imposibile (depasiri -

overflow sau underflow)

manipularea datelor la nivel intern se va face in cod binar, ceea ce va implica necesitatea unor conversii de la/la nivelul utilizator

(valori zecimale, hexazecimale, caractere), la

nivelul maşina (binar)

Metodologia elaborarii programelor

Analiza: algoritmOrganizare: scheme logice

Codificare: programareTestare: verificare (revenire si modificare)

Elaborarea documentatiei

Decizie

Operatieiesire

Operatieintrare

calculeoperatii

Start sau Stop

conector

Page 47: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 47

Sisteme cu microprocesoare Microprocesoare - Concepte generale

User Requirements Specification

Software Requirements Specification

Software Architectural Design

Software Detailed Design

Implementation

Unit Tests Specifications

Module Tests Specifications

Acceptance Tests Specifications

Page 48: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 48

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesorElemente de intrare/iesire ale sistemelor microprocesor

Moduri de interfatare:

(a) sub controlul microprocesorului

(b) prin acces direct la memorie

Moduri de lucru cu elementele de intrare/iesire:

A. Operatii de intrare/iesire efectuate sub controlul programului B. Operatii de intrare/iesire prin intreruperi C. Operatii de intrare/iesire prin acces direct la memorie -

DMA

Port de intrare/iesire

Fluxul de informatie intre microprocesor si o interfata de I/E

A. Operatii de intrare/iesire efectuate sub controlul programului

Memorie

Microprocesor

Interfata

I/E Periferic

Memorie

Microprocesor

Interfata

DMA Periferic

a

b

cuvinte

de datedate de intrare

date de iesire

cuvinte

de controlcuvinte

de comanda

cuvinte

de stare

Echipament

intrare

/ iesireMicroprocesor

Page 49: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 49

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

(a) Utilizarea

operatiilor

specifice

de I/E, distincte

de cele

cu memoria

Mag.adrese

Decodificare Memorie Interfata

I/E

Periferic

Mag. date

selectiememorie

selectie

port

operatie

cu porturioperatie

cu memoria

Micro-

procesor

Mag.control

Decodificare

Page 50: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 50

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

(a1) Utilizarea

unei

singure

adrese

de port, si

a patru

semnale

de control I/E

(a2) Utilizarea

a doua

adrese

I/E si

a doua

semnale

de control

adrese

Periferic

Mag. date

selectie

port

scriere

port

Micro-

procesor

Mag.control

Decodificare

Mag.

citire

port

control

selectie

port date

adrese

Periferic

Mag. date

selectie

port

scriere

comanda

port

Micro-

procesor

Mag.control

Decodificare

Mag.

citire

stare port

citire

date portscriere

date port

Page 51: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 51

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

(b) Nu se folosesc instructiuni separate de I/E: se va adresa portul ca o celula de memorie

Utilizarea operatiilor de I/E, de tipul "memory mapped I/O"

Mag.adrese

Decodificare

Memorie Interfata

I/E

Periferic

Mag. date

selectie

memorie

selectie

port

citire/scriere

Micro-

procesor

Mag.control

Page 52: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 52

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

Elemente de intrare/iesire ale sistemelor microprocesor

A. Operatii de intrare/iesire efectuate sub controlul programului

Operatii I/E controlate prin program:

a -

program simplu

b -

subrutina de I/E

c -

subrutina de I/E pentru mai multe porturi de I/E

(a)

programprincipal

transferposibil

da

transfer date

prin I/E

continuareprogramprincipal

nu

verificare

stare

transferposibil

da

transfer date

prin I/E

nu

verificare

stare

subrutinaI/E

return

programprincipal

(b)

programprincipal

existadatedisp.

nu

da

existadatedisp.

transferposibilechip.1

transferposibilechip.2

ânuetc.

transferdate

(echip.2)

transferdate(echip.1)

nu

da

return

subrutinaI/E

(c)

DAR, pot apare intarzieri considerabile intre disponibilitatea portului si preluarea/transmiterea datelor de la/la acesta. Totodata, programul principal trebuie să apeleze, in puncte stabilite de catre programator, si deci doar cand este disponibil (neavand alte sarcini mai importante), aceste subrutine.

Page 53: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 53

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

B. Operatii de intrare/iesire efectuate prin intreruperi

Elemente de intrare/iesire ale sistemelor microprocesor

B. Operatii de intrare/iesire efectuate prin intreruperi

Operarea prin intreruperi

este bazata pe utilizarea unor semnale de control specifice, lansate de la periferice, catre microprocesor, anuntand un eveniment semnificativ la nivelul acestora.Lucrul în intreruperi permite operarea aparent simultana a mai multor programe distincte ale microprocesorului. Aceasta tehnica este aplicata pentru controlul si lucrul cu echipamentele periferice si pentru implementarea sistemelor ce opereaza in timp real

(la intervale predeterminate de timp se efectueaza aceasi succesiune de operatii -

masuratori, calcule, comenzi).

Inhibarea intreruperilor.

vector deintrerupere

recunoasterecerere deintrerupere memorare

adresaintrerupereadresa de

revenire

transferposibil

nu

da

transferdate I/E

refacere staremicroprocesor

salt la adresade revenire

salt fortat laprogramprincipal

verificarestare

subrutinatratare

intrerupere

Recunoasterea sursei de intrerupere:-

mai multi pini de intrerupere ai microprocesorului-

un singur pin de intrerupere:--

recunoastere software (scanarea echipamentelor -

polling)--

recunoastere hardware (vectori de intrerupere)

Rezolvarea prioritatilor:-

nu exista prioritati (intreruperile sunt inhibate)-

prioritati software (ordinea de scanare)-

prioritati hardware (pozitia fizica in lantul de generare a intreruperilor)

Page 54: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 54

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

B. Operatii de intrare/iesire efectuate prin intreruperi

Elemente de intrare/iesire ale sistemelor microprocesor

B. Operatii de intrare/iesire efectuate prin intreruperi

prioritati software prioritati

hardware

intrare laintrerupere

verificare starebit intrerupereal echipam.I/E 1verificare starebit intrerupereal echipam.I/E 2verificare starebit intrerupereal echipam.I/E 3

iesire la eroare

param. pt.echipam.3

param. pt.echipam.2

param. pt.echipam.1

return

da

da

da

nu

nu

nu

Echipam.I/E3

logica controlintreruperi

Echipam.I/E2

logica controlintreruperi

Echipam.I/E1

logica controlintreruperi

logica controlintreruperi

Microprocesor

Rezolvarea prioritatilor:

Page 55: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 55

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

B. Operatii de intrare/iesire efectuate prin intreruperi

Elemente de intrare/iesire ale sistemelor microprocesor

B. Operatii de intrare/iesire efectuate prin intreruperi

Rezolvarea

intreruperilor

multiple cu prioritati

software mascabile

Subrutinatratareintreruperenivel

1programprincipal

cerere

deintreruperenivel

3 cerere

deintreruperenivel

1cerere

deintreruperenivel

2

Subrutinatratareintreruperenivel

2

Subrutinatratareintreruperenivel

3

return return return

Page 56: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 56

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

C. Operatii de intrare/iesire efectuate prin acces direct la memorie -

DMA

Elemente de intrare/iesire ale sistemelor microprocesor

C. Operatii de intrare/iesire efectuate prin acces direct la memorie -

DMA

(c1) Oprirea activitatii procesorului (HALT) la sfarsitul instructiunii curente(c2) Oprirea microprocesorului în cadrul instructiunii curente, la terminarea subciclului de instructiune curent(c3) Operatiile microprocesorului si ale DMA sunt multiplexate

(c1) Oprirea activitatii procesorului (HALT) la sfarsitul instructiunii curente

Microprocesor

Circuittampon

Circuittampon

Magistralade adrese

Magistralade date

< Memoriasi

I / E

<

>

<

R / W

transfer posibil

cerere

D M A

halt

Page 57: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 57

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Elemente de intrare/iesire ale sistemelor microprocesor

C. Operatii de intrare/iesire efectuate prin acces direct la memorie -

DMA

Elemente de intrare/iesire ale sistemelor microprocesor

C. Operatii de intrare/iesire efectuate prin acces direct la memorie -

DMA

(c2) Oprirea microprocesorului în cadrul instructiunii curente, la terminarea subciclului de instructiune curent

Microprocesor

Circuittampon

Circuittampon

Magistralade adrese

Magistralade date

<Memoriasi

I / E

<

<

R / W

cerere

D M A

Controlceas

acces

memorie

valid

CT

<

transfer posibilceas

D M A

Page 58: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 58

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sistem microprocesor -

ExempluSistem microprocesor -

Exemplu

Tema: Sa se proiecteze un sistem microprocesor care sa realizeze liniarizarea iesirii unui element neliniar (un traductor, de exemplu), generand, pe baza achizitionarii marimii analogice de la iesirea traductorului, un semnal analogic corespunzator, liniarizat. Altfel spus, sistemul va trebui sa genereze un semnal analogic la iesire avand o valoare ce depinde

de un semnal analogic de intrare. Dependenta, neliniara, este cunoscuta si memorata in memoria sistemului sub forma unui tabel de valori.

traductor real

corectie

traductor liniarizat

A/D Cautaretabela D/A

sistem microprocesor

Page 59: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 59

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sistem microprocesor -

ExempluSistem microprocesor -

Exemplu

Microprocesor:- 64 k x 8 memorie

adresabila: 16 biti

adresa, 8 biti

date- 256 x 8 porturi

I/O: 8 biti

adresa, 8 biti

date- semnale

de control: IO/M (1 –

I/O; 0 –

Memorie); RD (0 –

citire); WR (0 –

scriere)

Necesar

de memorie: -

Program (ROM) –

fie 256 x 8 pentru

program, 256 x 8 pentru

tabela

conversie. Total 512 x 8. Adresa

de start: 0- Date (RAM) –

fie 256 x 8. Adresa

de start: 200h

Memorie

disponibila:-

ROM: cipuri

de capacitate 256 x 8- RAM: cipuri

de capacitate

256 x 4

Necesar

porturi

I/O:- Convertor A/D:

- start conversie

Output –

1 semnal

OUT 0h- terminare

conversie

(EOC) –

intrerupere

1 semnal- date conversie

input x 8 biti

INPUT 0h- Convertor D/A –

output x 8 biti

Output 1h

Page 60: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 60

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sistem microprocesor -

ExempluSistem microprocesor -

Exemplu

Tabela de decodificare si selectie pentru obtinerea semnalelor de selectie de circuit

A15 A14 ... A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 RD IO/M Select Adrese

BANC0 0 0 ... 0 0 0 x x x x x x x x 0 0 CSP0 0 - 0FFH

BANC1 0 0 ... 0 0 1 x x x x x x x x 0 0 CSP1 100 - 1FFH

BANC2 0 0 ... 0 1 0 x x x x x x x x X 0 CSRAM 200 - 2FFH

x ... x 0 0 0 0 0 0 0 0 0 1 P0I 0 A/D read

x ... x 0 0 0 0 0 0 0 0 1 1 P0O 0 A/D start

x ... x 0 0 0 0 0 0 0 1 0 1 P1O 1 D/A write

Page 61: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 61

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Decodifi-care

pentruselectiamemoriei

BANC 0

BANC 1

BANC 2

CS256 x 4 biti

RAM

CS256 x 4 biti

RAM

CS256 x 8 biti

PROM

CS256 x 8 biti

PROM

RD

MICRO-PROCESOR

IO/MRDWRcuart

RESET

INT INTACLK

READY

RDPORT0

PORT1

WR

P0I

P0OQ

RD

T

"1"

intrareanalogica

iesireanalogica

CN/A

LatchTamponP1O

WR

STARTCONV

EOCCA/N

SF.CONV

PORT1

Magistralade date

Magistralade adrese

8

16

8

Bistabil

8

8

MEMREADY

8Ad0Ad7

¸ Ad0Ad7

¸ Ad0Ad7

¸ Ad0Ad7

¸8 8

CSP1

CSP0

(CSRAM)

4D0¸ D3

D4¸ D7 D0¸ D7D0¸ D74 8 8

Ad0 Ad7¸

IOREADY

Decodificarepentruselectia

convertoa-relor

(adresateca porturi)

8 8

Ad8-Ad15

Page 62: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 62

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sistem microprocesor -

ExempluSistem microprocesor -

Exemplu

Schema

de decodificare si selectie pentru obtinerea semnalelor de selectie de circuit:Se pot utiliza

decodificatoare, sau

direct scheme logice

cu porti

clasice

(combinationale).Exemplu:- Pentru

memorie

-

circuit decodificator

utilizare

biti

adresa

A8 –

A15 (vezi

tabela

de decodificare)- A8, A9 –

selectie

pagina

de memorie- A10 –

A15 –

activare

decodificator

(enable)- pe

cipurile

de memorie, bitii

inferiori

de adresa

(A0 –

A7)-

Pentru

I/O –

porti

logice

utilizare

biti

de adresa

A1 –

A7 pentru

selectie, A0 pentru

diferentiere

port 0 sau

port 1

EDecod

2 la 4

A9

A15

A14

A13

A12

A11

A10

BANC0

A8

BANC1

BANC2

n.c.

O0

O1

O2

O3AB

RD

CSP0

CSP1

CSRAM

A7

A6

A5

A4

A3

A2IO/MA1

IO/M

WR

PORT0

MEMREADY

A0

PORT1

RDP0I

P0O

P1O

IOREADY

Page 63: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 63

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Sistem microprocesor –

Exemplu

prg. limbaj

asamblare

8086Sistem microprocesor –

Exemplu

prg. limbaj

asamblare

8086

PORT0 EQU 0HPORT1 EQU 1H

ORG 0JMP PRINCORG 4JMP INTRER ORG 10H

PRINC: MOV SP, 280HMOV SS, 0HOUT (PORT0), AL ; start conversie A/DEI ; activare intreruperi

BUCLA: HLT ; procesorul în HALTJP BUCLAORG 80H

INTRER: PUSH AX ; salvare registru AX in stivaPUSH SI ; salvare registru SI in stivaIN AL, PORT0 ; citire in A valoare conv. A/DMOV AH, 0 ; AX=AH AL contine conv. A/D MOV SI, AX ; SI=indexul elem. din tabelMOV AL, TABEL[SI] ; AL=valoare corectata din tabelOUT PORT1, AL ; valoare transmisa conv. D/AOUT PORT0, AL ; start o noua conversie A/DPOP SI POP AX RETI ; RET cu activare intreruperi

TABEL: DB 8, 7, 11, 3,... ; in total 256 numere, cu valori intre 0 si 255)...

END

START

Salvare registrein stiva

Citire valoareC A / N

Calculul adreseielementului

corespunzator dintabelul de valori

Citire din tabel avalorii functiei

Output laC N / A

Output,start onoua conversie

Refacere registredin stiva

Activare intreruperi

STOP

Page 64: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 64

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Interfete

I/E –

caracteristici

generaleInterfete

I/E –

caracteristici

generale

Operatii

cu interfete

de Intrare-Iesire–

Adresate

ca porturi

de I/E

instructiuni

speciale: IN, OUT•

Separate de memoria

sistemului•

Mai usor

de evidentiat

operarea

cu un element I/E fata

de operarea

cu memoria

depanare

mai

usoara•

Nu pot fi

adresate

direct in limbaje

de nivel

inalt

(C/C++), ci

doar

in limbaj

de asamblare

Adresate

ca memorie

(memory Mapped I/O) –

instructiuni

de adresare

a memoriei

Ocupa

o zona

din spatiul

de adrese

al memoriei

sistemului•

Se pot adresa

direct ca elemente

de memorie

(ca variabile

ale programului), utilizand

orice

mod de adresare

posibil•

Depanararea

trebuie

facuta

atent

(posibilitate

de eroare)•

Variabilele

care sunt

localizate

la adrese

de port de I/E trebuie

declarate

in limbajul

C cu atributul

‘Volatile”, de ex:volatile short P1IO;

Page 65: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 65

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Operatii

cu interfetele

de I/E Operatii

cu interfetele

de I/E

Scriere

catre

porturile

de I/E (OUTPUT)–

Cuvinte

de comanda

setare

de parametri

de functionare

a interfetei

(viteza

de lucru, setare

/ resetare

stare unii

parametri, comanda

ON/OFF a unor

elemente

de iesire

digitale, etc.)–

Cuvinte

de date –

trimitere

de date catre

interfata

(de ex.: valori

conversie

D/A, setare

/ resetare

biti

port iesire

digital, etc.)

Citire

de la porturile

de I/E (INPUT)–

Cuvinte

de stare

citire

informatii

de functionare

a interfetei

(viteza

de lucru, stare unii

parametri, citirea

starii

ON/OFF a unor

elemente

de intrare

digitale, etc.)–

Cuvinte

de date –

citire

de date de la interfata

(de ex.: valori

conversie

A/D, stare biti

port intrare

digital, etc.)

Page 66: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 66

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Porturi

de I/E digitalePorturi

de I/E digitale

Fiecarui

bit al cuvantului

de date al portului

ii corespunde

un element exterior de tip inchis

/ deschis

(0/1 sau

ON/OFF)–

INPUT

citeste

starea

unui

element de tip contact -

cu doua

stari

-

contact / buton

/ tasta–

OUTPUT –

seteaza

starea

unui

element de executie

de tip binar

releu, contactor, bec, LED, etc.

Bitn Bitn-1 Bitk Bit1 Bit0Intrare

0

Iesire

1

Iesire

k

Intrare

n-1

Iesire

n

Registru

Port de

Intrare

/ Iesire

(tipic

pt. microcontrolere)

Page 67: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 67

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Porturi

de I/E digitalePorturi

de I/E digitaleBitn Bitn-1 Bitk Bit1 Bit0

Iesire

0Iesire

1

Iesire

k

Iesire

n-1

Iesire

n

Bitn Bitn-1 Bitk Bit1 Bit0Iesire

0Iesire

1

Iesire

k

Iesire

n-1

Iesire

n

Registru

Port de iesire

Registru

Port de intrare

Page 68: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 68

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Porturi

de Intrare

digitale

(INPUT)Porturi

de Intrare

digitale

(INPUT)

Bitn Bitn-1 Bitk Bit1 Bit0

Determinarea

starii

unui

echipament

[INPUT]: - se izoleaza

bitul

corespunzator

in cuvantul

de date citit

de la portul

de intrare- pentru

izolare

se utilizeaza

o masca: “1”

pe

pozitia

bitului

selectat, “0”

in rest- se efectueaza

operatia

“SI”

logic (AND) intre

cuvantul

de date citit

si

masca

0 0 1 0 0

0 0 Bitk 0 0Stare echipament

k

Cuvant

de date citit

de la port de INPUT

Masca

pentru

izolarea

bitului

k

Bitul

k izolat

AND

=

Testare: Data_k

= DataIN

& Mask_k;IF (Data_k) { // bitul

k este

= 1 …

}else{ // bitul

k este

= 0 …

}

DataIN

Maskk

Datak

Page 69: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 69

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Porturi

de Iesire

digitale

(OUTPUT)Porturi

de Iesire

digitale

(OUTPUT)

Bitn Bitn-1 Bitk Bit1 Bit0

Setarea

starii

unui

echipament

[OUTPUT]: - se seteaza

bitul

corespunzator

din cuvantul

de date scris

catre

port (bit = 1)- pentru

modificare

se utilizeaza

o masca: “1”

pe

pozitia

bitului

selectat, “0”

in rest-

se efectueaza

operatia

“SAU”

logic (OR) intre

cuvantul

de date anterior scris

la portul

respectiv

(pentru

a nu se modifica

starea

celorlale

echipamente

de pe

port) si

masca

0 0 1 0 0

Setare

echipament

k

Cuvant

de date anterior scris

la port de OUTPUT

Masca

pentru

setarea

bitului

k

Bitul

k setat, ceilalti

nemodificati

OR

Setare

bit k: Mask_k

= 0000100000b; // 1 pe

pozitia

kDataOUT

|= Mask_k;// Output la port DataOUT

DataOUTt-1

Maskk

DataOUTtBitn Bitn-1 1 Bit1 Bit0

Page 70: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 70

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Porturi

de Iesire

digitale

(OUTPUT)Porturi

de Iesire

digitale

(OUTPUT)

Bitn Bitn-1 Bitk Bit1 Bit0

Resetarea

starii

unui

echipament

[OUTPUT]: - se reseteaza

bitul

corespunzator

din cuvantul

de date scris

catre

port (bit = 0)- pentru

modificare

se utilizeaza

o masca: “0”

pe

pozitia

bitului

selectat, “1”

in rest-

se efectueaza

operatia

“SI”

logic (AND) intre

cuvantul

de date anterior scris

la portul

respectiv

(pentru

a nu se modifica

starea

celorlale

echipamente

de pe

port) si

masca

1 1 0 1 1

Setare

echipament

k

Cuvant

de date anterior scris

la port de OUTPUT

Masca

pentru

setarea

bitului

k

Bitul

k setat, ceilalti

nemodificati

AND

Resetare

bit k: Mask_k

= 11111011111b; // 0 pe

pozitia

kDataOUT

&= Mask_k;// Output la port DataOUT

DataOUTt-1

Maskk

DataOUTtBitn Bitn-1 0 Bit1 Bit0

Page 71: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 71

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

intrare-iesire

digitaleScheme porturi

intrare-iesire

digitaleSchema de baza

port INPUT

Schema de decodificare

Bitii

superiori

de adresa, IOSel

Port k

RDIOREADY

Sel

Port IN k

D0

D1

D2

D3

D4

D5

D6

D7

μp

Magistrala

date

D1

+Buton

0

+Buton

4

+Buton

5

+Buton

6

+Buton

7

+Buton

1

+Buton

2

+Buton

3

Utilizare

in program: citire

stare buton

3 (exemplu)

Daca

butonul

k e apasat, bitul

corespunzator

de date citit

de la portul

de intrare

este

0

Limbaj

de asamblareMOV DX, port_K

; DX=adresa

port kMOV AL, (DX) ; AL=data citita

de ; la port K

AND AL, 00001000b ; izolare

bit 3JZ Buton3; salt daca

buton

apasat

Limbaj

Cint

IN_k;…IN_k

= INPORT(port_K);if((IN_k

& 0x04) == 0){

// cod daca

buton

k apasat}

Page 72: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 72

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

intrare-iesire

digitaleScheme porturi

intrare-iesire

digitaleSchema de baza

port OUTPUT

Schema de decodificare

Bitii

superiori

de adresa, IOSel

Port k

WRIOREADY

Sel

Port OUT k

D0

D1

D2

D3

D4

D5

D6

D7

μp

Magistrala

date

D1

Utilizare

in program: (Exemplu: aprinde

LED 1, anclansare

Releu

6, restul

OFF)

Daca

bitul

de date scris

la portul

de iesire

este

0 => LED corespunzator

aprins

/ releu

anclansat; daca

se scrie

1 => OFF

Limbaj

de asamblareMOV DX, port_K

; DX=adresa

port kMOV AL, 10111101b; Releu

6, LED 1; ON, restul

OFFMOV (DX), AL ; AL=data scrisa

; la port K

Limbaj

Cint

OUT_k;…OUT_k

= 0xBD; // Releu

6, LED 1 ON// restul

OFFOUTPORT(port_K, OUT_k); // out la port

Registru

(latch)

8 biti

Selectie

+

LED 0

+

LED 1

+

LED 2

+

LED 3

+Releu

4

+Releu

7

+Releu

5

+Releu

6

Di0

Di1

Di2

Di3

Di4

Di5

Di6

Di7 Out7

Out6

Out5

Out4

Out3

Out2

Out0

Out1

Page 73: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 73

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

intrare-iesire

digitaleScheme porturi

intrare-iesire

digitale

Schema de baza

semnal

INPUT / OUTPUT Schema echivalenta

semnal

INPUT / OUTPUT

Page 74: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 74

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

intrare-iesire

digitaleScheme porturi

intrare-iesire

digitale

Schema de baza

semnal

OUTPUTSchema de baza

semnal

INPUT

Page 75: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 75

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

intrare-iesire

digitaleScheme porturi

intrare-iesire

digitale

Schema de semnal

OUTPUT (varianta) Schema de semnal

OUTPUT (varianta)

Page 76: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 76

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

intrare

optoizolateScheme porturi

intrare

optoizolate

Schema de principiuIntrare

DC

Intrare

AC

Page 77: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 77

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Scheme porturi

iesire

optoizolateScheme porturi

iesire

optoizolate

Iesire

DC

Iesire

AC

Page 78: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 78

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Utilizare

porturi

digitale

de I/EUtilizare

porturi

digitale

de I/E

Porturi

de intrare

(INPUT)•

Citire

informatie

stare port / interfata•

Citire

contacte:–

Butoane

de comanda–

Limitatoare

de cursa–

Termocuple–

Senzori

inchis/ deschis–

etc.

Porturi

de iesire

(OUTPUT)•

Scriere

comanda

catre

port / interfata•

Comanda

elemente

iesire:–

Bec–

Releu–

Motor (ON / OFF)–

Contactor–

etc.

Page 79: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 79

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Porturi

digitale

de I/E specializatePorturi

digitale

de I/E specializate

Porturi

de intrare

(INPUT) specializate•

Tastaturi

(citire

linii)

Comutatoare

decadice

Timere

-

capturi

Porturi

de iesire

(OUTPUT) specializate•

Tastaturi

(selectie)

Afisaje

(cu segmente)

Timere

-

PWM

Page 80: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 80

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Tastaturi-

port de iesire

pentru

selectie

linie

de taste –

se selecteza

cate

o linie

la un moment-dat- port de intrare

pentru

citire

stare taste de pe

linia

selectata

Porturi

de I/E digitale

-

tastaturiPorturi

de I/E digitale

-

tastaturi

Buton

neapasat: se citeste

1Buton

apasat: se citeste

0

Ex. Fie port selectie

linii: P1OUT (Output): bit 0 –

Row 1, bit 1 –

Row 2, bit 2 –

Row 3, bit 4 –

Row 4 . Pentru

selectie

linie, bitul

corespunzator

se seteaza

0.Port citire

coloane: Port P2IN, bit 0 -

3

...// testare

daca

e apasata

tasta

F7 (but.3 din linia

2)P1OUT &= 0xFD; // selectie

linia

2: 0 pe

bit P1.1int

pos = P2IN & 0x04; // izolez

bitul

2 (coresp. F7)if(pos){ // pos<>0, F7 nu e apasat

…}

else{ // pos = 0, F7 e apasat

…}

P1.0P1.1P1.2P1.3

P2.0P2.1P2.2P2.3

F7

Page 81: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 81

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Tastaturi

(3)Apasare

multipla

mai

multe

taste simultanDe-bouncing

eliminare

efect

citiri

multiple datorate

vibratiilor

contactului

Stabil

‘1’

Apasare

tasta

Oscilatii

0->1Oscilatii

1->0

Eliberare

tasta

Stabil

‘0’

// eliminare

citiri

false la apasarecitire

buton;if(apasat){

asteapta

dt;citire

buton;if(apasat) // actiune

apasareelse // a fost

perturbatie}

// eliminare

citiri

false la eliberarecitire

buton;if(eliberat){

asteapta

dt;citire

buton;if(eliberat) // actiune

eliberareelse // a fost

perturbatie}

Porturi

de I/E digitale

-

tastaturiPorturi

de I/E digitale

-

tastaturi

Page 82: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 82

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Tastaturi

(4)

De-bouncing

– eliminare

efect

citiri

multiple

Auto-repetare

citire

daca

tasta

ramane

apasata

mai

mult

timp

Porturi

de I/E digitale

-

tastaturiPorturi

de I/E digitale

-

tastaturi

Page 83: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 83

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Comutatoare

decadice

citire

pe

4 biti, cod ‘0000’

cifra

0, pana

la ‘1001’

cifra

9

Porturi

de I/E digitale

-

tastaturiPorturi

de I/E digitale

-

tastaturi

Grup

de 4 cifre, citite

pe

un port de 16 biti Mai multe

grupuri

de cate

4 cifre. Se selecteza

cate

un grup

(cu un port de iesire), si

se citeste

pe

un port de 16 biti

Page 84: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 84

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Afisaje

cu segmente Porturi

de I/E digitale

-

afisajePorturi

de I/E digitale

-

afisaje

-

Port de iesire

(OUTPUT) pentru

comanda. -

Cate

un bit pentru

fiecare

LED –

segment.-

Se configureaza

bitii

pentru

aprindere. De exemplu, pentru

aprindere

cifra

2

(sch. catod

comun):

P1OUT = 0 1

0 1 1

0 1 1

bdp

g

f e d

c b a - segment

Schema cu anod

comun

aprindere

pe

0

Schema cu catod

comun

aprindere

pe

1

Page 85: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 85

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Afisaje

cu segmente

multiplexare

cifre Porturi

de I/E digitale

-

afisajePorturi

de I/E digitale

-

afisaje

-

Pe

portul

‘Digits’

se selecteaza

pe

rand cate

o cifra

(‘1’

pe

bitul

respectiv) -

OUTPUT-

Pe

portul

‘Segments’

se selecteaza

segmentele

de aprins

pe

cifra

selectata

-

OUTPUT

Page 86: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 86

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Afisaje

cu segmente

codificare

cifre Porturi

de I/E digitale

-

afisajePorturi

de I/E digitale

-

afisaje

Pentru

fiecare

caracter

afisabil

trebuie

definita

combinatia

care

aprinde

segmentele

corespunzatoare

Similar, pentru

acele

caractere

si

litere

care se pot afisa

pe

8

segmente

Page 87: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 87

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Convertoare

A/D –

caracteristici

generaleConvertoare

A/D –

caracteristici

generale

Convertoare

A/D:

componente

externe

sau

incluse

pe

cipul

microprocesor

(microcontroler), permitand

masurarea

de marimi

analogice

(uzual

tensiuni

in gama

0-V alimentare).

Structura: Circuit integrat

sau

bloc distinct in CPU. Contine

blocuri

specifice

pentru

lansare

conversie, pentru

citirea

starii

conversiei

si

a datelor

convertite. Combinat

uneori

si

cu multiplexor si

circuit esantionare

si

retinere

(Sample & Hold)

Cifre

de merit:–

Rezolutia

-

numar

de biti–

Precizia

valoarea

analogica

corespunzatoare

unui

bit–

Viteza

de conversie

durata

conversiei

Utilizare:–

Lansare

conversie

prin

program, sau

automat (alt periferic

timer, etc.)–

Testare

stare conversie

prin

polling sau–

Generare

de intrerupere

la terminarea

conversiei–

Conversie

unica

sau

multiple–

Conversie

de pe

un singur

canal, sau

de pe

mai

multe

Page 88: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 88

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Schema de baza

utilizare

convertor A/D in sistem

microprocesorSchema de baza

utilizare

convertor A/D in sistem

microprocesor

Schema de decodificare

Bitii

superiori

de adresa, IOSel

Port k

RDIOREADY

Sel

Port IN k

D0

D1

D2

D3

D4

D5

D6

D7

μp

Magistrala

date

D1

Utilizare

in program: -

OUTPUT la port k –start conversie-

INPUT de la port k –

citeste

datele

conversie

(bitii

0 –

6), si

stare conversie

bit 7: daca

bit 7 = 0, conversia

gata, altfel, nu

Limbaj

de asamblareMOV DX, port_K

; DX=adresa

port kMOV (DX), AL; start conversieLP1: MOV AL, (DX) ; AL=data citita

; de la port KMOV BL, AL ; memorare

data cititaAND AL, 10000000b ; izolare

bit 7JNZ LP1; salt daca

nu e gata

(EOC=1); …

BL contine

data convertita

Limbaj

Cint

IN_k;…DO { IN_k

= INPORT(port_K);}While (IN_k

& 0x80) == 0) // astept

EOC… // IN_k

contine

data conversie

Convertor A/D de7 biti

EOC

Bit6

Bit5

Bit4

Bit3

Bit2

Bit0

Bit1

Start ConversieWR

Intrare

analogica

Page 89: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 89

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Convertoare

D/A –

caracteristici

generaleConvertoare

D/A –

caracteristici

generale

Convertoare

D/A: componente

uzual

incluse

pe

cipul

microprocesor

(microcontroler), permitand

generarea

de marimi

analogice

(uzual

tensiuni

in gama

0-V alimentare).

Structura: Bloc distinct in CPU. Contine

registre

specifice

pentru

programare

si

pentru

setarea

datelor

de convertit.

Cifre

de merit:–

Rezolutia

-

numar

de biti–

Precizia

valoarea

analogica

corespunzatoare

unui

bit–

Viteza

de conversie

durata

conversiei

Utilizare:–

Inscriere

data de convertit

in registrul

de date lanseaza

conversia–

Nu necesita

asteptare

terminare

conversie

Page 90: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 90

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Schema de decodificare

Bitii

superiori

de adresa, IOSel

Port k

WRIOREADY

Sel

Port OUT k

D0

D1

D2

D3

D4

D5

D6

D7

μp

Magistrala

date

D1

Registru

(latch)

8 biti

SelectieDi0

Di1

Di2

Di3

Di4

Di5

Di6

Di7 Out7

Out6

Out5

Out4

Out3

Out2

Out0

Out1

Schema de baza

utilizare

convertor D/A in sistem

microprocesorSchema de baza

utilizare

convertor D/A in sistem

microprocesor

Convertor

D/A de

8 biti

Iesire

analogica

Utilizare

in program: -

OUTPUT la port k –

data de convertit

Limbaj

de asamblareMOV DX, port_K

; DX=adresa

port kMOV AL, val_convMOV (DX), AL; val_conv

la D/A…

Limbaj

Cint

OUT_k;…OUT_k

= val_conv; // valoarea

de // convertit

OUTPORT(port_K, OUT_k); // scriere

la // convertor D/A

Page 91: Mp - Cap3 2013

c 2013 Liviu Kreindler / Aurelian Sarca 3 - 91

Sisteme cu microprocesoare Microprocesoare - Concepte generale

Utilizare

convertoare

A/D, D/AUtilizare

convertoare

A/D, D/A

Convertoare

A/D•

Citire

senzori–

curent–

tensiune–

temperatura–

pozitie–

viteza

(tahogenerator)–

presiune–

etc.

Convertoare

D/A•

Comanda

iesire–

Element executie–

Amplificator–

Aparat

indicator–

etc.