Mp-Cap3

91
c) 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

:))

Transcript of Mp-Cap3

  • c) Liviu Kreindler / Aurelian Sarca 3 - 1

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Structura de baza a unui sistemmicrocalculator

    Structura de baza a unui sistemmicrocalculator

    MemorieMemorareprogram

    Memoraredate

    Interfete periferice externe

    Iesire Intrare

    De la / la periferice

    MICROPROCESOR

    (CPU)

    controlmagistrala date/adresemagistrala date

  • c) 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)

  • c) 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

  • c) 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

  • c) 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 aduna

    b

    1 0 0 0 0 010

    Cod operatie Operand

    0 1 01 0 0 0 0

  • c) 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 data

    Intrare Iesire

    Bit n-1 Bit 0

    dataIntrare

    Iesire

  • c) 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

  • c) 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

    Magistralade adresem.program

    Magistralade date

    m.program

    Magistrala de control

    U.C.P.Memorieprogram

    Memoriedate /

    porturi

    Magistralele unui sistem microprocesor Magistralele unui sistem microprocesor

    Magistralade adrese

    m.date

    Magistralade date m.date

  • c) 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

  • c) 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

  • c) 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

    T1T5

    P C

    Ceas

    sistemP

    Magistrala

    de date

    Magistralade adrese

  • c) 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 pemagistralade date

    PC = PC+1

    Se extrageprimul cuvantde instructiunedin memorie

    Operatiiinterne

    (decodificare,etc.)

    Se citeste al doilea cuvant al instructiunii(data) si se memoreazatemporar intr-un registru

    Se configureazaadresa celuleide memorie la care se memoreazadata

    Se transferadata in memorie

    ContinutulPC pemagistralade date

    PC = PC+1

    FETCH (extragere)

    Subciclul 1 Subciclul 2

    Urmatoareainstructiune

  • c) Liviu Kreindler / Aurelian Sarca 3 - 13

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Test READY

    Logica de READY / WAITLogica de READY / WAIT

    T1

    Microprocesor Memorie

    Magistrala Adrese

    Magistrala Date

    READY

    T2 Tw Tw T3Tw

    Clk

    READY

  • c) Liviu Kreindler / Aurelian Sarca 3 - 14

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Diagramele de timp asociate operatiilor de lucrucu memoria

    Diagramele de timp asociate operatiilor de lucrucu 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

  • c) 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 16

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Golire stiva(RET, POP)

    Umplere stiva(CALL, PUSH)

    Operatii cu stivaOperatii cu stiva

    CALL SUB1

    CALL SUB2

    SUB1 SUB2

    RET

    PC1

    PC2

    RET

    Memorie ProgramMemorie Program

    Memorie Date

    Memorie Program

    PC1PC2

    Stack Pointer

  • c) 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)

  • c) 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

  • c) 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

  • c) 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 memorieRAM

    DATADE

    INTRARE

    DATADE

    IESIRE

    ______

    "1" pt. CITIRE

    CITIRE / SCRIERE

    1 pt. CITIRE 0 pt.SCRIERE

    "0"pt.SCRIERE

    ______

    bit7bit1bit0

    bit7bit1bit0

    Intrare Iesire

    CITIRE / SCRIERE

  • c) 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

  • c) 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

  • c) 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

  • c) 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

  • c) 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 adresapentru paginarea memorieisistemului 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

  • c) 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

    .

    .

    ....

  • c) 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)

  • c) 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 Magistralade dateMatrice

    memorieCircuittampon

    10

    Decodifi-cator

    intern deadrese

  • c) 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 - EFFFHB15 1 1 1 1 0 0 0 X X X X X X X X X 0 CSR0 F000H - F1FFH

    1 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

  • c) 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

    P

    12BO

    R / W

  • c) 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 unuimicroprocesor

  • c) 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

    >

    >

    >

    >

    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

  • c) 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

  • c) 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 implementrii programelor utilizand adresarea imediata (a), sau directa (b)

    Instructiuni(mnemonici)

    Reprezentare in memorie

    MOV AX, 123H

    AXPCPC+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

  • c) 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

  • c) 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

  • c) 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

  • c) 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

  • c) 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

  • c) 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

  • c) 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 42

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Software-ul sistemului microprocesor - Execuia instruciunii ADD RSoftware-ul sistemului microprocesor - Execuia instruciunii 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 43

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Software-ul sistemului microprocesor - Execuia instruciunii ADD RSoftware-ul sistemului microprocesor - Execuia instruciunii 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 44

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Software-ul sistemului microprocesor - Execuia instruciunii ADD RSoftware-ul sistemului microprocesor - Execuia instruciunii 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 45

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Software-ul sistemului microprocesor - Execuia instruciunii ADD RSoftware-ul sistemului microprocesor - Execuia instruciunii 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

  • c) 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 maina (binar)

    Metodologia elaborarii programelor

    Analiza: algoritmOrganizare: scheme logice

    Codificare: programareTestare: verificare (revenire si modificare)

    Elaborarea documentatiei

    Decizie

    Operatieiesire

    Operatieintrare

    calculeoperatii

    Start sau Stop

    conector

  • c) 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

  • c) 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 49

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorA. Operatii de intrare/iesire efectuate sub controlul programuluiElemente 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 50

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorA. Operatii de intrare/iesire efectuate sub controlul programuluiElemente de intrare/iesire ale sistemelor microprocesor

    A. Operatii de intrare/iesire efectuate sub controlul programului

    (a1) Utilizarea unei singureadrese de port, si a patrusemnale de control I/E

    (a2) Utilizarea a doua adreseI/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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 51

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorA. Operatii de intrare/iesire efectuate sub controlul programuluiElemente 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 52

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorA. Operatii de intrare/iesire efectuate sub controlul programuluiElemente 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.

  • c) Liviu Kreindler / Aurelian Sarca 3 - 53

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorB. Operatii de intrare/iesire efectuate prin intreruperi

    Elemente de intrare/iesire ale sistemelor microprocesorB. 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)

  • c) Liviu Kreindler / Aurelian Sarca 3 - 54

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorB. Operatii de intrare/iesire efectuate prin intreruperi

    Elemente de intrare/iesire ale sistemelor microprocesorB. 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:

  • c) Liviu Kreindler / Aurelian Sarca 3 - 55

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorB. Operatii de intrare/iesire efectuate prin intreruperi

    Elemente de intrare/iesire ale sistemelor microprocesorB. Operatii de intrare/iesire efectuate prin intreruperi

    Rezolvarea intreruperilor multiple cu prioritati software mascabile

    Subrutinatratareintreruperenivel 1programprincipal

    cerere deintreruperenivel 3 cerere deintrerupere

    nivel 1cerere deintreruperenivel 2

    Subrutinatratareintreruperenivel 2

    Subrutinatratareintreruperenivel 3

    return return return

  • c) Liviu Kreindler / Aurelian Sarca 3 - 56

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Elemente de intrare/iesire ale sistemelor microprocesorC. Operatii de intrare/iesire efectuate prin acces direct la memorie - DMA

    Elemente de intrare/iesire ale sistemelor microprocesorC. 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

    LED corespunzatoraprins / 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

  • c) 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

  • c) 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

  • c) 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)

  • c) Liviu Kreindler / Aurelian Sarca 3 - 76

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Scheme porturi intrare optoizolateScheme porturi intrare optoizolate

    Schema de principiuIntrareDC

    IntrareAC

  • c) Liviu Kreindler / Aurelian Sarca 3 - 77

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Scheme porturi iesire optoizolateScheme porturi iesire optoizolate

    Iesire DC

    Iesire AC

  • c) 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.

  • c) 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

  • c) 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 seteaza0.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){ // pos0, F7 nu e apasat

    }else{ // pos = 0, F7 e apasat

    }

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

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

    F7

  • c) 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 82

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Tastaturi (4)

    De-bouncing eliminareefect citiri multiple

    Auto-repetare citire dacatasta ramane apasata maimult timp

    Porturi de I/E digitale - tastaturiPorturi de I/E digitale - tastaturi

  • c) 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

  • c) 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) pentrucomanda. - Cate un bit pentru fiecare LED segment.- Se configureaza bitii pentruaprindere. 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

  • c) 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

  • c) 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

  • c) 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 cipulmicroprocesor (microcontroler), permitand masurarea de marimianalogice (uzual tensiuni in gama 0-V alimentare).

    Structura: Circuit integrat sau bloc distinct in CPU. Contine blocurispecifice pentru lansare conversie, pentru citirea starii conversiei sia 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

  • c) 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 superioride adresa, IO

    Sel 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 dateleconversie (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

    Intrareanalogica

  • c) 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 tensiuniin gama 0-V alimentare).

    Structura: Bloc distinct in CPU. Contine registre specifice pentruprogramare 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

  • c) Liviu Kreindler / Aurelian Sarca 3 - 90

    Sisteme cu microprocesoare Microprocesoare - Concepte generale

    Schema de decodificare

    Bitii superioride adresa, IO

    Sel 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

    Iesireanalogica

    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

    // convertitOUTPORT(port_K, OUT_k); // scriere la

    // convertor D/A

  • c) 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.