introducere in microprocesoare_part25

Download Introducere in Microprocesoare_Part25

If you can't read please download the document

Upload: mesuzana-1

Post on 06-Dec-2015

219 views

Category:

Documents


0 download

DESCRIPTION

11

TRANSCRIPT

  • I

    l.INITIALIZARETRAIJSfER 4

    t.-!SALVi

    llli_q

    deja primite, sau pregd.tidatele pentru transferul l.lr-m5.tor. Toate aceste proble-me i;i pot g5.si o solulionaredac5. se f.ixeaz| dou5. buffereA, B ca in figura 6.15. Cindun bu.ffer este pliri se co-mut5. pe cellla-lt, bufferulplin este semnalizat progra-mului principal prin inscrie-rea fanionului bufier olin.Procesorul testeazi u...i f"-nion, proceseazi. datcie dinbufferul plia si la termi-narea procesS"rii reseteazi-fanionul buffer plin indicinclbufferul got, aai.e dispo-nibii pentru o noui utiliza-re. Dac5" bufferul este soli-citat inainte de a fi fostprocesat, situatie posibilacind datele sosesc prea de-vreme, atunci prin segmen-tui terminare transfer se vaindica aceasta prin inscricreaf anio nului supr:apu nere. Celeexlluse ar corespunde uneisubrutine de citiie a datelor

    ADRESA DE SALI PENTRULI']S]RLiCiIUN;A RST /, ( OO?OH ]

    AUTORIZEAZA I|JTRERU F EFILEURMAIOARE I EI )

    c A L * 5 E q7

    R ETU R N

    b)

    ORG OO2OIIEi

    CALL S}TRVRE'F

    ORG 4EOOH

    128

    r-?_- _i*_

    I-A ADRE,SA DE SALT SE \TALI-DEAZA TNTRNRUPERILE.SE APELEAZA SUBRUTIhTA SERV.IIEINTOARCERE DIN SUBRUTI-NA.SUBRUTINA SERV SE PLASEAZALA ADRESA 4EOOH.

    TRA

    FER

    D

    TE

    NU

    Fig.6.15. orga'igrama de pri'ciFiu pentru intrarea de la un periferic,. iar pen-datelor prin intermediul intreruperilor tr" o ,"fiui"a A" inscrierestructura diferi foarte pulin.In exemolul urrnltor se prezintl o- subrutinl Jpni;,-"perati prinRS.T4, care torecteazd" de ta' un p"rife.i. -Jat"-$i l"';;o;ne intr-unbulfer din memorie, figura_ 6.t6,b.' perifericuita;;";;J;5;rea de in_trerupere'in

    -momentql cin{. are pregitit un bloc a. lt8-;;i"t"."rji"punct de- vedere al selectirii, pjrifericui se red.uce la doud. porturi deintrare de adrese 1FH;i.38? 9i un port de iegire a"?i"ra zEi.citirea datelor se face prin generarea 'unui pr"tbi"r, iifrira o. r 6, a..Q*p-r- intrarea in s]brutinS iceasta genereazL valoarea-zero pentrub.itul I din po-rtut zE,bit care este sem"narur d;;r";;;;i pxb, ce auto-rizeazS' transferul datelor spre. microprocesor. odatd. artorizat trans_I:^r^g_ lt"."iui, perifericul in;tiinleaze micropr;;;;;rii"",r" citirea,recarul cuvrnt p''n generarea valorii l pentru bitul zero din portul"gF, care este tocmai semnalur DR. Dupd. citirea fieci.rui cuvint dinportul 3E subrutina genereaz5 semnalul de protocol DA : 1 care in-294

    Fie. 6.16. Trans{er intrare cu protocor: a - semnare necesare pentruprotocol; b - organlgrama t"$l;j:i"#arrintreruperii; o - o.gu.rfo.u*.

    qtiinleazd. perifericui ci data a fost cititd. La aparilia semnalului DA :: 1 perifericutr anuleazd. semnalul DR;i pentru citirea cuvintului urmb.-tor pune din ncu DR: 1. Frotocolulse repetl de 128 ori. organigramaeste reprezentati in figura 6.i6, c. Aceasti subrutini. ar fi putut fi im-piernentati cu un segment inilializare date inciependent, ia in figura6.tr5, daci. inilializarea s-ar fi fdcut inainte ca perifericul s[ fi colectatintreg biocul rie 128 baifi.

    @TERMINARE

    TRAN SFERDATE

    TRANS FER

    .IXFAZA Arefl;I LUNGII"lILE]UFFFRFI

    'A{Fi,]ESJE PER|FE.I{C AUTORIZEAZANTRERUPERiLE

    RETURN

    SEI.II{AL GEt]ERAT ^-DE FERtFERtc g

    S!BRUIl]"1A SERV.

    ]NCARCA DA

    FACE PSU/, HL. BC

    RETURII

    ITESTE DATE

    REFACE REGiSTRELE

  • SERV: PUSHPUSHPUSHLDA

    ANI

    STA

    OUT

    LXI

    MVI

    CICLU: IN

    PS\trHBMASK

    OFDH

    MASK

    ZE,H

    H, DATIN

    C,8OH

    3FH

    CICLU:

    3EH

    I\[, A

    I{ASK

    I

    2EHOFEH2EH

    FINE

    H

    CICLU

    SE SALYEAZA PSW.SALVEAZA H.SALVEAZA B.Str INCARCA INi.dGINEA PORTU-I UT DE IE$IRE DE ADRESA 2EH.IN IMAGINEA PORTULUI SE$TERGE BITUL 1 PENTRI' AADUCE SE},{LIALUL END: OCARE VALIDEAZA TRRNISF'ERULBLOCULUI.SE MEMOREAZA IMAGINEAPORTULUI ZEH.SE 1NSCRIE lN PORTUL 2tr SEM-NALUL END _ O.SE 1NCARCA H-L CU ADRESADE INCEPUT A ZONEI DE STO.CARE A DATELOR.sE TNTTTALTZEAZL CCi\TORUI-CU VALOAREA 128.SE CITE$TE IMAGINEA PORTU-LUI 3FH.SE TR.ECE BITUL 1 IN CY.DACA CY:0, PERIF'ERICUL NUPERMITE TRANSF'ERUL, DR: O.SE CITE$TE DATA DIN REGIS-TRUL DE II{TRARE 3EH, DACADR: 1.SE STOCHEAZA OAT.q IN ME-MORIE LA ADRESA SFECIFICATADE FI-I-.SE 1NCARCA IMAGINEA PORTTJ-LUI zEH.SE GENERE,AZA SEMNALUI, DA:_1

    SE CONFIRMA CITIREA DATEI.SE $TERGE BITUL O.SE PUNE SEMNALUL DA:0.SE DECREN{ENTEAZA CONTO.RUL.DACA C: O TRANSFtrR COM.PLET.SE FORMtrAZA ADITESA URMA-TOARE DIN ME},{OTTIE.SE PROCEDEAZA LA TRAhIS-FEFTUL DATEI Utr.MATOARE.

    FINir:

    I)ATI\:

    ]IASK:

    LDI

    oRiSTA

    oLr'fPOPPOi)T)/\ r)

    RE'T'SET

    SEI'

    UASIi

    2MASK

    2EI1BHPSW

    1 l00H

    1182H

    SE INCARCA IMAGINEA PORTU-LUI ZEH.BITUL 1 LA VALOAREA 1.SE MEX{OREAZA IMAGINEAPORTULUI ZEH \SEFIXEAZA SEN,INALULENJD : trSE REFACE B-C.SE REFACE H-L.SE REFACE PSW.

    SE ATRIBUIF VARIABILEIDATIN VALOAREA l IOOH.SE ATRIBUIE VARIABILEIMASK VALOAREA 1182H.

    RARJNC

    IN

    MOV

    LDA

    OR.I

    OUTANIOUTDCR

    JZ

    II{X

    JMP

    6.3.2.1. Sisterne pentru ?ntreruperi multlple

    F'-oarte frecvent apare situalia prin care un microprocesor cu osinguri" intrare de intrerupere IliT tiebuie sd" realizeze t'i""rt"."t prlnintrerupcri pentru niai muite per-iferice. De exemplu, daci aieastb. situ_alic apare pcntr'structura

  • r--t

    ruperi si. fie,independent de durata existenlei semnarului de lntreruperigi sd depind[ numai de momentul apariliei acestuia este necesar sb. pre-zinte un circuit de intrare de memoiare'(latch) sensibil pe front. Inlro.ducerea acestui latch, pentru fiecare nivel, atrige dupi. sine gi existenlaunei,cii de ;tergere a lui in vederea pregd.tirii pentru o aclibnare ulte-rioarS.; mecanismul acesta se numQte aihitarei i,ntreruperii. Logica degtergere a latch-ului. d,e intrare ." uili sub controd piJgi;d"i, astfelcl un latch poate fi ;ters de rutina de serviciu, cind-tratarea aceluinivel a fost terminat6. Se nagte urmS.toarea intrebare normald.: dardac5" in timp ce un latch este inscris apare un alt front, adicd.^apare dnoui. cerere de intrerupere in timp ce solicitarea anterioarb. lnca n-afost rezolvatl? Rdspunsul este evident, sistemu.l nu are viteza necesarb.d,e rispuns in timp real pentru servirea acelui periferic, deci se reco-rnandS. un sistem mai rapid.

    Pentru rezolvarea celor dbud" probleme anterior enun{ate, de adetecta nivelurile de intrerupere activate gi prioritl"file repartizate aces-tora, existS. o mare varietate de sisteme de intreruperi utilizate in micro-sisteme. Dar toate aceste sisteme hcreaz6" folosind una din urmitoarele.doul metode: l-metoda interog5rii prin program (poliing); 2-metodaintreruperilor vectorizate (dirijate). -

    Utlolo interogdri,i. O structurd" de principiu pentru organigramaenetodei interogS.rii (scrutS"rii) este prezeitati in fi!'ura 6.1z."Aseiiina-rea acestei organigrame cu cea din figura 6.9 este evidentb.; deosebi-rea constS. in faptul c5. Ia transferul programat intrarea in bucla x