introducere in microprocesoare_part25
DESCRIPTION
11TRANSCRIPT
-
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