Beruflich Dokumente
Kultur Dokumente
Y
MICROORDENADORES
CATEDRA:DIGITALII
DEPARTAMENTODESISTEMAS
INGENIERIAELECTRONICA
AUTOR:ING.ENRIQUEGIANDOMENICO
AO:1998
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESY ............................................................................1
MICROORDENADORES.................................................................................1
1.DESCRIPCIONGENERAL.............................................................................................................5
2.CASOSPARTICULARES................................................................................................................5
2.1.INTEL80186 ................................................................................................................................................................5
2.2.M OTOROLAMC68HC11 .........................................................................................................................................6
2.3.INTEL8051 ..................................................................................................................................................................6
3.INTEL80186PROCESADORDEINSTRUCCIONES. .............................................................7
3.1.UNIDADDEEJ ECUCINDEINSTRUCCIONES(EU).....................................................................................7
3.1.1.RE GISTROSDEUSOSGENERALES: .........................................................................................................................................................7
3.4.ACCESOALESPACIODEENTRADA/SALIDA............................................................................................. 11
5.4.CONTROLDEITERACC IONES......................................................................................................................... 32
5.5.INTERRUPCIONES ................................................................................................................................................ 33
5.6.INSTRUCC IONESDEMANIPULACIONDEBITS ........................................................................................ 34
5.7.INSTRUCC IONESDECONTROLDELPROCESADO R .............................................................................. 38
5.7.1.OP ERACIONE SCONFLAGS......................................................................................................................................................................38
5.7.2.OP ERACIONE SDE SINCRONIZ ACIONEXTERNA .............................................................................................................................39
5.7.3.NOOPERACION..............................................................................................................................................................................................39
6.DIRECCIONAMIENTODEMEMORIA ...................................................................................40
7.UNIDADDEINTERFACESDELBUS(BUSINTERFACEUNIT BIU).............................42
7.1.C ICLODEBUS(BUSCYCLE)............................................................................................................................. 43
7.2.TIEMPOSDELC ICLODEBUSPARAUNALECTURA .............................................................................. 47
7.2.1.AISLANDOELDATABUSCONUNBUFF ER. BUFF ERINGTHEDATABUS ..............................................................................48
7.3.TIEMPOSDELC ICLODEBUSPARAUNAGRABACION......................................................................... 50
DEFINIC IONDELOSVALORESDELAHOJ ADEESPECIFICACIONES................................................... 52
7.5.EJ EMPLODEANALISISDELOSTIEMPOS.................................................................................................. 54
8.BLOCKDECONTROLDEPERIFERICOS(PCB). ................................................................57
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
10.UNIDADDECONTROLDEINTERRUPCIONES(ICU).....................................................63
10.1.DESCRIPCIONFUNC IONAL ............................................................................................................................ 63
10.2.PRIORIDADESYENMASCARAMIENTOS................................................................................................... 63
10.3.ARQUITECTURADEL8259A ........................................................................................................................... 64
10.3.1.SECUENCIATIP ICAENE LPROCESODEINTERRUPCIONES....................................................................................................65
10.5.BLANQUEODELBITENELINTERRUPSERVIC EREGISTER............................................................ 67
10.6.CONECCIONENCASCADADEL8259A........................................................................................................ 68
10.7.ESQUEMADELAUNIDADDECONTROLDEINTERRUPCIONESENEL8259A........................... 70
10.8.PROGRAMANDOEL MODULO 8259A .......................................................................................................... 71
10.8.1.REGISTROSDECONTROLYCOMANDOS DEL8259A ...................................................................................................................71
10.8.2.SECUENCIADEINIC IALIZAC ION.........................................................................................................................................................71
10.8.2.1.
ICW1 ..............................................................................................................................................................................................72
10.8.2.2.
ICW2 ..............................................................................................................................................................................................72
10.8.2.3.
ICW3 ..............................................................................................................................................................................................72
10.8.2.4.
ICW4 ..............................................................................................................................................................................................73
10.8.3.COMANDOSDEOPERAC IN ..................................................................................................................................................................73
10.8.3.1.
OCW1.............................................................................................................................................................................................73
10.8.3.2.
OCW2.............................................................................................................................................................................................73
10.8.3.3.
OCW3.............................................................................................................................................................................................73
10.8.4.F UENTE SDE INTERRUPCIONINT ERNAS ..........................................................................................................................................74
11.UNIDADTEMPORIZADORAYDECONTADORES. .........................................................79
11.1.DESCRIPCIONFUNCIONAL. ........................................................................................................................... 79
11.2.DIAGRAMAOPERAC IONAL............................................................................................................................ 80
11.3.REGISTROSASOCIADOSACADACONTADOROTIMER.................................................................... 82
11.4.PROGRAMACIONDELAUNIDADTEMPORIZADORAYDECONTADORES. ............................... 83
11.5.COMENTARIOSADICIONALES ..................................................................................................................... 83
11.5.1.F UENTE SP ARALAOBTENCIONDELCLOCKDELOSCONTADORES. .................................................................................83
11.5.2.M ODOSDEOPERAC I NDELOSCONTADORES............................................................................................................................83
11.5.3.REINICIAL IZACION. ..............................................................................................................................................................................84
11.5.4.ONDASRECTANGULARESYUNDISP ARO.....................................................................................................................................84
11.5.5.HABIL IT ANDOYDESHABILITANDOLOSCONTARORE S. ..........................................................................................................85
11.5.6.INTERRUPCIONE S ......................................................................................................................................................................................85
11.5.7.T IEMPOSDE SETUPYRET ENCIONDE LASSEALESDEENTRADA.....................................................................................85
12.PREGUNTAS,PROBLEMASYALGUNASSOLUCIONES ...............................................92
2.5.PROGRAMACIONDELAUNIDADSERIEDEL80186.............................................................................. 120
2.5.1.EJ EMP LOSDEVALORE SPARABXCMP .............................................................................................................................................121
2.5.2.PROGRAMANDOELMODO0..................................................................................................................................................................122
2.5.3.PROGRAMANDOLOSMODOS1A4......................................................................................................................................................123
3.4.TERMINACIONYSUSPENCIONESDETRANSFERENCIASDMA....................................................... 130
3.5.INTERRUPCIONESGENERADASPORLAUNIDADDMA ..................................................................... 130
3.6.ORGANIZACINDELOSCANALESDMA.................................................................................................. 130
3.7.PROGRAMANDOLAUNIDADDMA .............................................................................................................. 132
3.7.1.SECUE NC IACORREC TAPARALAPROGRAMACIONDELDMA..............................................................................................134
3.7.2.UT IL IZACIONDELAUNIDADDMACONLOSP UERTOSDECOMUNICAC INSERIE.....................................................134
3.7.2.1.
EJEMPLO1. PUERTOSERIE0ENRECEPCIN .................................................................................................................134
APENDICEA.PRECIOSAPROXIMADOS ................................................136
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
1.DESCRIPCIONGENERAL
Luegodehaberestudiadounaestructuraposibledeunaunidadprocesadordeinstruccionesterica
sepresentarahoraunprocesadorreal.
Primeroserealizarlasiguienteclasificacin.
Microprocesador:Unidadconcapacidaddeejecutarinstrucciones.Generalmentenoincluyeme
moriasnidispositivosadicionales.
Microcontrolador:microprocesadormsmemoriasdedistintostipos(RAM,ROM,EPROM,EE
PROM, FLASH, etc.) y dispositivos varios (Unidad controladora de interrup
ciones,unidadesdeentradaysalidaseriey/oparalelo,unidadesconvertidores
analgicas/digitalesyviceversa,etc.)
Otroenfoquepermiteclasificarlosen:
Dispositivosparaaplicacionesindustriales:generalmentesonmicrocontroladorescongranvarie
daddedispositivosintegradosperoconlongituddepalabrarelativamentecorta(8bits).
Dispositivosorientadosaaplicacionesdeprocesamientodedatosengeneral,menorvariedadde
dispositivosintegrados,mayorlongituddepalabra(16,32,64bits).
SeestudiarenesteapunteelmicroprocesadordeINTEL80186elcualseubicaenunaposicin
intermedia.PorunladosuarquitecturaeslabaseparatodoslosprocesadoresdelalneaINTEL
(80286,80386,80486,80586,PENTIUM,PENTIUMII,etc.)yporotroladodadoqueeselms
simpledelalneapermiteconocermuchosdelosprincipiosbsicosutilizadosenlosmicrocontro
ladoresdedicadosaaplicacionesdetipoindustrial.
2.CASOSPARTICULARES
2.1.INTEL80186
Procesador
De
Instrucciones
Generador
DeClock
Unidad de Control
DeInterrupciones
Unidad Con
troladora de
Relojes
UnidadSelecto
ra de Perifri
cos
Unidad de Accesos
DirectosaMemoria
Unidad de En
trada/Salida
Serial
v BusdeDatos16Bits
v Todaslasmemoriassonexternas
Unidad de En
trada/Salida
Paralelo
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
2.2.MOTOROLAMC68HC11
CaractersticasGenerales:
Procesador
De
Instrucciones
RAM 256 By
v BusdeDirecciones:16Bits
EPROM512Bytes
v BusdeDatos8Bits
Generador
DeClock
Unidad de Control
DeInterrupciones
Unidad Con
troladora de
Relojes
Unidad convertidor
DigitalAnalgica
ROM
8Kbytes
Unidad de En
trada/Salida
Asincrnica
Serial
Unidad de En
trada/Salida
Asincrnica
Serial
Unidad de En
trada/Salida
Paralelo
2.3.INTEL8051
Procesador
De
Instrucciones
Generador
DeClock
Unidad de Control
DeInterrupciones
YRelojes
RAM 128 By
ROM 4 KBy
Unidad de En
trada/Salida
Asincrnica
Serial
CaractersticasGenerales:
v BusdeDirecciones:16Bits
v BusdeDatos8Bits
v 5Nivelesdeinterrupciones
Unidad de En
trada/Salida Pa
ralelo32Bits
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
3.INTEL80186PROCESADORDEINSTRUCCIONES.
Estcompuestopordosunidades:
Ejecucin:ejecutalasinstruccionesquevasolicitandoalacoladeprecarga.
BusInterfacesUnit(BUI)cargalasinstruccionesalacoladeprecarga,leelosoperandos,graba
losresultados.
Estasunidadespuedenoperarindependientementeyenciertascircunstanciaspuedensuperponerse
lacargadeinstruccionesconlaejecucindeotras.
Lafigurasiguientemuestraelesquemageneraldeambasunidades:
3.1.UNIDADDEEJECUCINDEINSTRUCCIONES(EU)
3.1.1.REGISTROSDEUSOSGENERALES:
A,B,C,D,SP,BP,SI,DItodosde16Bits.
LosregistrosA,B,C,Dadmitenseraccedidostotalmente(16Bits)oparcialmente(8Bits).Eneste
ultimocasolasletrasHyL,siguiendoalnombredelregistro,identificanlos8bitsmasomenos
representativosrespectivamente.Enelcasodeaccederalregistrocompletoseagregaalnombrela
letrax.
AX 16Bits.
BL ltimos8bits.
CH primeros8bits.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
LaUnidadAritmticaYLgica(ALU)realizalasoperaciones.Puedeutilizaroperandosde8ode
16Bits.
FLAGS:esunregistrode16bits,cadaunodeloscualesrepresentaunadeterminadacondicin.
LafigurasiguientemuestraelsignificadodecadaunodelosbitsdelregistroFLAGS,quetambin
recibeelnombredePSW(ProgramStatusWord)
Launidaddeejecucin(EU)noseconectadirectamenteconelbusexterno,solopuedehacerlova
laBIU.
Lasinstruccionesquedebeircargandoparasuejecucinnuncaprovienendirectamentedelame
moriasinoquesoncargadasdesdelacoladeprecarga.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
3.2.UNIDADDEINTERFACESCONELBUS(BIU)
Estaunidadconsistede:
4registrosdesegmentosCS,DS,SS,ES.
1registrodecontadordeprograma(instruccinpointer).
1unidaddesumaparaelclculodedirecciones.
1coladeprecargadeinstrucciones.
registrosauxiliares.
3.3.ACCESOALESPACIODEMEMORIA
Todadireccinfsica(20Bits)escalculadaporlaBIUconsiderandodosvalores:SEGMENTOy
OFFSEToDESPLAZAMIENTO.
Cadaunodeellosesde16bitspudiendoporlotantoasumirvaloresentre0y65535.
Larelacines:
DireccinFsica=(16*SEGMENTO)+DESPLAZAMIEBTO
desprecindoseelacarreosilohubiese.
Al conjunto SEGMENTO, DESPLAZAMIENTO se lo denomina Direccin Lgica y se lo
representaporlosdosvaloresseparadospordospuntos.Ej.AF4C:28B9.
Elespaciototaldedirecciones dememoria(20bits1Mbytes)esdivididoentoncesensegmentos
de 64KBytes cada uno. ElBIUpuede accederenun determinadomomento simultneamente a
cuatrosegmentosdistintosvalosregistrosCS,DS,SS,ES.
Elusostandard,peronoobligatorio,eselsiguiente:
CSsegmentodecdigo(eselquealmacenaelprograma).
DSsegmentodedatos.
SSsegmentodelSTACK.
ESsegmentoextraoparausosadicionales(extendedsegment).
Lafiguramuestrauncasoparticular:
DireccionesEspaciodedirecciones
Fsicas
deMemoria
Contenidodelos
registrosde
segmentos
Rangodedirecciones
cubierto
F000CS
F000:FFFF=FFFFF=1.048.575
F000:0000=F0000=983.040
8420DS
8420:0000=84200=541.184
8420:FFFF=941FF=606.719
3000SS
3000:0000=30000=196.608
3000:FFFF=3FFFF=262.143
FFFFF
F0000
941FF
84200
3FFFF
30000
101BF
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
001C0
00000
001CES
001C:0000=001C0=448
001C:FFFF=101BF=65.983
Sisedesearaaccederaunadireccinfsicafueradelosentornoshabilitadosesnecesariomodificar
elcontenidodealgunodelosregistrosdesegmentodeformatalqueladireccinrequeridaseubi
quedentrodelas65.535nuevasdireccionesquesehabiliten.
Dadalaformuladeclculodeladireccinfsicasepuedeconcluir:
Todosegmentocomienzaenunadireccinfsicamltiplode16.Enhexadecimalsudgitomenos
significativodebeser cer o.
ParaunadireccinfsicadeterminadaexistenmuchosconjuntosSEGMETO:DESPLAZAMIENTO
quelasatisfacen.
Ejemplo:
DireccinFsica
Segmento
DESPLAZAMIENTO
B5408
B540
B53F
B530
.....
B440
....
A640
A541
0008
0018
0028
....
0108
....
F008
FFF8
Son1000h=
4.096d
valores
distintos
SEGMENTOBASEDEFAULT
CS
SS
DS
DS
ES
SS
Estaformadedireccionarpermitelareubicacindinmicadesegmentosdentrodelespaciodedi
reccionesmuyfcilmente.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Sienundeterminadomomentolasituacineslamostradaenlafiguradelaizquierda,cambiando
elcontenidodecadaunodelosregistrosdesegmentoyreubicandolossegmentoselesquemaque
daracomoelmostradoenlafiguradeladerecha.
CS
CS
DS
DS
SS
SS
ElSTACKresideenelespaciodememoria.Alcomienzo,yasevercomo,elregistroSSapuntaal
segmentodonderesideelSTACKyelregistroSPcontieneelDESPLAZAMIENTOdelaultima
posicincorrespondientealSTACK.EsdecirqueelSTACKocuparelespaciodememoriacom
prendido entre las direcciones SS:0000 y SS:SP. Existen dos instrucciones que administran el
STACK:POPyPUSH.
PUSH,reg. colocaelcontenidodelregistroindicadoenelSTACK.
POP,reg.recuperadelSTACKelltimodatoingresadoylocolocaenelregistroindicado.
Eldatoaguardaryrecuperaressiemprede16bits.
LainstruccinPUSHdecrementaelSPen2unidadesyalmacenaelcontenidodelregistroenladi
reccinSS:SP.
LainstruccinPOPalmacenaenelregistroloqueserecuperadeladireccinSS:SPyluegoincre
mentaendosunidadeselcontenidodeSP.
EsimportantedestacarquelainstruccinPOPnoborraoblanqueaelcontenidodeladireccinde
memorialeda.EllasoloactualizaladireccinapuntadaporSP.Porotroladoelsistemanocontro
laquesucesivosPUSHdecrementenSPmasalldelvalorcer o,comoseignoraelbitdepresta
do0000menos2sersimplementeFFFE.TampocosecontrolaquealgnPOPlleveelvalorde
SP porencimadesu valororiginal, sobrepasando elreade memoriaasignadaoriginalmenteal
STACK.
3.4.ACCESOALESPACIODEENTRADA/SALIDA.
Enelmicro80186existetambinunespaciodedireccionesvalidos,adicionalesaldememoria,
cuyorangovade0000aFFFF(64Kbytes).Puessoloseusan16bitsparadireccionarlo).
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
UnbitdecontrolindependienteespecificasiunadireccincorrespondealespaciodeE/Soalespa
ciodememoria.
ExisteninstruccionesespecificasparaaccederalespaciodeE/S:
INreg,DIRECCION
Lee el contenido del espacio de direcciones de E/S direccionado por
DIRECCIONycolocaeldatoenelreg.Especificado.
INreg,DX
LeeelcontenidodelespaciodedireccionesdeE/Sdireccionadoporel
contenidodelregistroDXycolocaeldatoenelreg.especificado
OUTDIRECCION,reg Graba el contenido del reg. Especificado en la direccin indicada por
DIRECCIONdelespaciodeE/S
OUTDXreg.
Grabaelcontenidodelregespecificadoenladireccinapuntadaporel
contenidodeDXdelespaciodeE/S.
DIRECCION:constantebinariade8bits
4.CONJUNTODEINSTRUCCIONES
Elconjuntodeinstruccionespuedepensarseendosnivelesdiferentes.
Enelniveldelassemblerelmnemotcnicodelainstruccindefinelaoperacinyluegoelolos
operandosseespecificanusandoalgunasdelasnotacionesaceptadas.
Porejemplo
MOVAX,01234h
5.INSTRUCCIONESANIVELASSEMBLER.
Paraunamejororganizacinselashaagrupadofuncionalmenteencincogrupos:
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.1.INSTRUCCIONESDEMOVIMIENTODEDATOS
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.2.INSTRUCCIONESMATEMATICAS
5.2.1.ADICION
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.2.2.SUBTRACC ION
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.2.3.M ULTIPLICACION
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.2.4.DIVISION
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.3.INSTRUCCIONESDETRANSFERENCIAS
5.3.1.TRANSFERENCIASCO NDIC IONALES
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.3.2.TRANSFERENCIASINCONDICIONALES
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.4.CONTROLDEITERACCIONES
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.5.INTERRUPCIONES
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.6.INSTRUCCIONESDEMANIPULACIONDEBITS
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.7.INSTRUCCIONESDECONTROLDELPROCESADOR
5.7.1.OPERACIONESCO NFLAGS
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
5.7.2.OPERACIONESDESINCRONIZACIONEXTERNA
5.7.3.NOOPERACION
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
6.DIRECCIONAMIENTODEMEMORIA
Cadavezqueenelformatodeunainstruccinseespecificamemseestahaciendoreferenciaaun
operando localizado en memoria. Para ubicarlo es necesario indicar su direccin en la forma
SEGMENTO:DESPLAZAMIENTO.
Existenmuchasformasdeespecificarladireccindeunoperando:
1) indicandoelnombredeunavariablequelorepresenta
MOVCX,Var1 SinoseespecificasegmentoseusaDS
2) indicandoelvalordelDESPLAZAMIENTO(enestecasoesobligatorioespecificartambinel
segmento)
MOVCXDS:[0843h]
3) indicandounregistrobaseyunDESPLAZAMIENTO
MOVDX,Seg:[BX]
mueve el operando cuya direccin es Seg: contenido de BX, al
registroDX
MOVCX,Seg:045h[BX]
mueve el operando cuya direccines Seg: contenido deBX
ms045h,alregCX
LosregistrosquepuedenusarsesonBX,BP,DI,SI.
SepuedenoespecificarSeg.yentoncesseasumeunsegmentopordefaultsegnelregistroquese
hallaespecificado:
BXDSBPSSSI DSDIES.
4) indicandounregistrobasey unregistrondice
MOVAX,Seg:023h[BX][SI] mueve el operando cuya direccines Seg: contenido deBX
mscontenidodeSIms023h,alregistroAX
MOVBX,Seg:[BX][DI] enestecasoelDESPLAZAMIENTOescer o.
Elsegmentopordefaultqueseeligedependedecualseaelregistrobaseespecificado.ParaBXse
eligeDS,paraBPseeligeSS.
LosregistrosbaseposiblessonBXyBPylosdendicesposiblessonSI,DI.
ElDESPLAZAMIENTOfinalqueseobtieneenlasdistintasformasdeespecificareloperandose
denominaDireccinEfectiva.
Latablasiguienteesunabuenareferenciaparareconocertodaslasformasposiblesdeespecificarla
direccindeunoperando
COLUMNA1
COLUMNA2
BX
COLUMNA3
SI
DESPLAZAMIENTO*
BP
DI
DESPLAZAMIENTOpuedeserunvalorpositivoonegativo.
Soloen elcasode direccionamientodirecto(soloDESPLAZAMIENTO)
nopuedesernegativo.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Lasdireccionesvalidassonaquellasqueseconformaneligiendounooningunodeloselementosde
cadaunadelascolumnasmostradas.Porsupuestoalmenosunelementodebeserelegidodeal
menosunacolumna.
Existenporlotanto17formasdistintasdeconformarunadireccinefectivavalida:
DSP
[DI]
DSP[DI]
[BP][DI]
DSP[BP][SI]
[BX]
DSP[BX]
[BX][SI]
DSP[BX][SI]
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
[BP]
DSP[BP]
[BX][DI]
DSP[BX][DI]
[SI]
DSP[SI]
[BP][SI]
DSP[BP][SI]
7.UNIDADDEINTERFACESDELBUS(BUSINTERFACEUNITBIU)
Estaunidadeslaencargadadecargarinstruccionesenlacoladeprecargaypasardatosaydesde
launidaddecontrolyaydesdelasunidadesperifricasincluidaslasmemorias.
ParacadatransferencialaBIUgenerarunBUSCYCLE(BC).
AlcomienzodeunBCsepresentaladireccin,elespaciodedireccionesdequesetrate(memoriao
E/S)yelestadoqueindicaeltipodeBC.Acontinuacinsedefineladireccindelatransferencia
(readowrite)yluegoseregistralainformacinledaoserenuevalainformacingrabada.
Losmicros80x86multiplexaneneltiempoelcomportamientodeunnicobusde20bitsdeforma
talqueenunmomentosecomportancomobusdedireccionesyenotro(usandosololos8o16bits
menosrepresentativos)comobusdedatos.
Porrazonesdecompatibilidadconequiposquemanejan8bitselespaciodedireccionesdememo
riaseconsideracompuestopordosbancosde512Kbytescadauno,loscualesrespondenadirec
ciones pareseimpares respectivamente.ElbitdedireccinmenossignificativoA0determinasi
unadireccinesparoimpar.UnbitdecontrolllamadoBHE(ByteHighEnable)determinasise
desealeeronolos8bitsmsrepresentativosdeldatode16.Lafiguramuestraelcircuitoutilizado:
ENABLE
FFFFF
FFFFE
5
3
1
4
2
0
A19:1D15:8BHE
A0
0
0
1
1
BH E
0
1
0
1
D7:0A0
TRANSFERENCIADE:
UNAPALABRA
UNBYTEPAR
UNBYTEIMPAR
USADOSOLAMENTE.ENMEMORIASDINAMICAS
SisesolicitaunByteenunadireccinparestesetransfiereenlosbitsD7:0
SisesolicitaunByteenunadireccinimparestesetransfiereenlosbitsD15:8.ElBIUseencarga
rderealizarlosajustesqueseannecesarios.
SisesolicitaunapalabraenunadireccinparestasetransfiereenunnicoBCenlosbitsD15:0.
SisesolicitaunapalabraenunadireccinimparlaBIUnecesitardosBC.Enelprimerciclose
obtieneunbyteenD15:8yluegoseincrementaladireccinen1yseleeelsegundabyteenD7:0.
LaBIUdesencadenaautomticamentelosdosBC.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
7.1.CICLODEBUS(BUSCYCLE)
La BIU ejecuta un bus cycle para transferir datos entre cualquiera de las unidades integradas y
cualquiermemoriaexternaodispositivodeE/S.UnBCconsistedeunmnimode4CPUclocks
conocidoscomoTSTATES.
UnTSTATEStranscurredesdeunflanconegativodelclockhastaelprximoflanconegativoy
siempretienedosfases.
LafiguramuestrauntpicoBC
ALEAddressLatchEnableSutransicinde1a0indicaelmomentocorrectoparatomarunadi
reccinvalidadelbusdedirecciones.Esunasealqueentregaelmicroygeneralmenteseusaco
moSTROBEenellatchdedirecciones.
S2:0 SontresbitsqueentregaelmicroqueindicaneltipodeBCqueseestaejecutando
S2
0
0
0
0
1
1
1
1
S1
0
0
1
1
0
0
1
1
S0
0
1
0
1
0
1
0
1
TipodeBC
Interrupt
LecturadeE/S
EscrituradeE/S
ProcesadorDetenido(HALT)
Cargadeunainstruccinenlacoladeprecarga
Lecturadememoria
Escrituradememoria
BusNoActivo
AD15:0
A19:16Busdedireccionesydatosmultiplexadoeneltiempo.DuranteT1presentaladireccin,
duranteT2,T3ypartedeT4presentalosdatos.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
RD/WRDefineladireccindelatransferencia.RDREAD,WRWRITE.
Unciclocompletopuededividirseendosfases:ladedireccinyestadoyladedatos.Laprimera
deellascomienzaantesdeT1ydurahastaelfinaldeT1.Lafasedelosdatosseiniciaenlafase1
deT2ycontinuahastalafase2deT4oTI(tisignificaBusDisponibleoIDLE)
Lasiguientefiguramuestraladefinicindelostiemposclavesdelafasededireccionesyestadode
unBC.
1)
2)
3)
4)
5)
6)
CHOV:ClockhightoALEhigh,S2:0valid.
CLOV:Clocklowtoaddressvalid,BHEvalid.
AVLL:AddressvalidtoALElow(addresssetuptoALE).
CHOV:ClockhightoALElow.
CLOF:Clocklowtoaddressinvalid(addressholdfromclocklow).
LLAX:ALElowtoaddressinvalid(addressholdfromALE).
DichadirecciontambienactivarlasealdeChipSelectquecorresponda.
Losvalorestipicosparalafasededatossemuestranacontinuacion
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
RAMAD7:0
PROCESADOR
LATCH
ALESTROBEA19:0A19:1
D0:18CS
A19:16
WEOE
AD15:0
DIRECCIONES
RAMAD
15:8
A0
WR
BHE
CSRD
WEOE
CS
Estecircuitoprotegeel2banco
cuandosegrabaunbyteenuna
direccionpar
SieldispositivoperifericonoessuficientementerapidocomopararealizarlaoperacindeREAD
o WRITE en los cuatro TSTATESprovistos normarmentela BIUdebeserinformadaparaque
inserte TWAITs. TWAIT son TSTATE que se agregan entre T2 y T4 para darle tiempo al
perifericoarealizarlaoperacin.
ExistendosformasdeinsertarTWAIT.
OseespecificaunacantidadfijadeTWAITparacadaperifericoyentonceslaBIUsiempreinserta
dicha cantidad cuando realiza operaciones sobre ese dispositivo o mediante un bit de control
adicional propio para cada dispositivo se puede especificar que la BIU inserte los TWAIT
requeridossegnlaprimeraalternativaperoademassiunavezinsertadosdichosTWAITlaseal
BUSREADYnoesactivadaporeldispositivoconfirmandoqueterminolaoperacinsecontinuan
insertandoTWAIThastaqueelloocurra.
Eldiagramamuestraelcomportamientodescripto:
Cant.De
TWAITinsertados
<
Cantindicadapara
Estedispositivo
SI
TERMINARBC
BUSREADY
Activo
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
SI
INSERTAR
TWAIT
INSERTAR
TWAIT
7.2.TIEMPOSDELCICLODEBUSPARAUNALECTURA
LafigurasiguientemuestraelciclocompletoparaunREADylostiemposclavesquedebenrespe
tarseparaunaoperacincompletadesdeelpuntadevistadeldispositivo.
Lasecuenciaqueimplementaelmicroparaunciclodeestetipoes
A) presentaunadireccinvalidaenelbus
B) seleccionaelchip
C) activalasealRD
Lahojadeespecificacionestcnicasdeldispositivoautilizarseindicaelvalormximodelassi
guientesvariables:
Tglqv=Toe
Telqv=Tac
Tavqv=Taa
MximotiempoentreelpuntoCy DatosDisponibles
MximotiempoentreelpuntoByDatosDisponibles
MximotiempoentreelpuntoAyDatosDisponibles
Porotroladodesdeelpuntodevistadelmicrolasecuenciaes:
T1
T2
T3
T4
Conestepulsosetomaranlosdatos
ConestepulsosedacumplimientoalpuntoC
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
ConestepulsosedancumplimientoalpuntoAyalB(peroenelcasodelpuntoAdebeconside
rarsequeladireccinselatcheaconlacaidadeALEysolodespusqueelLATCHconmutesta
disponibleenlosbornesdeentradadelperifrico)
Porlotantodebecumplirsecon:
Toe<2TTclovTclis
Tac<3TTclovTclis
Taa<3TTclovTclisTadlt
Con:
Tclov Tiempoquelassealesdelmicrodemoranentreelpulsoquelasactivanyelmomentoen
elquealcanzanelestadodeactivacin.
Tclis Tiempoqueelmicrorequiereentreelmomentoquesepresentandatosvalidosenelbusy
elmomentoenelquesetomandichosdatos.
Tadlt Tiempoadicionalquetranscurreentreelmomentodelapresenciadedireccionesvalidas
enelbusyelmomentoenquedichasdireccionesestndisponiblesalasalidadellatch.
EstetiempodebeincluirTavll(tiempoentredireccionesvalidasycaidadeALEyeltiem
podecommutaciondellatch)
Silasinecuacionesanterioresnosoncumplidasporlascaractersticasdelperifricoydelmicrose
deben adicionar tantos TWAIT como sean requeridos para darle cumplimiento. Cada TWAIT
adicionadoincrementalosvaloresaladerechadelsigno<enT.
Otrovalorqueesnecesariocompatibilizareseltiempoqueeldispositivomantieneenelbuselda
toledoluegodedesactivarlasealRDpuessiesteesmuylargopodrasuperponerseconlanueva
direccinpresentadaporlaBIUaliniciar elprximocicloygeneraruncortocircuito.
Setiene:
Tghqz=Tohz Tiempomximoqueeldispositivomantienelosdatosenelbusluegodequela
sealRDesdesactivada
Trhax
TiempomnimoqueelmicrodejatranscurrirentrequedesactivalasealRDyla
presentacinenelbusdeunanuevadireccin.Generalmenteesdadoporlahojade
especificacionesdelmicro.PuedecalcularsecomoTTclov MAX +TclovMIN pues
RDsedesactivaalfinaldeT3ylanuevadireccionestardisponiblealfinaldeT4
SiTohzresultamayorqueTrhavpodraproducirseuncortocircuitoenelbus.Trhavpuedeexten
derseeligiendoparaelmicrounafrecuenciadetrabajomenor,Tohzpuedeachicarseeligiendouna
memoriamsrpida,oelproblemapuederesolverseusandountransceiversobreelbus.
7.2.1.AISLANDOELDATABUSCONUNBUFFER .BUFFER INGTHEDATABUS
LaBIUgeneradosseales(DENyDT/R)paraelcontroldeunbufferbidireccionalo'transceiver'
aserconectadoentreelbusdedatosyelperifrico.
Larelacindetiemposentreestassealessemuestraenlasiguientefigura
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
DENDataEnableinformaal'transceiver'quelosdatosestndisponiblesenelbus
DT/RDataTransmit/Receive.Informaal'transceiver'ladireccindelosdatos.
'Transceiver'sonrequeridoscuando:
A) Lacargacapacitivasobreelbusdedatosydireccionesesexcesiva
B) Lacorrientedecargasobreelbusesexcesiva
C) Unperifriconoescapazderetirarsusdatosatiempoparaprevenirunacontencinconlanue
vadireccinpresentadaporlaBIU.
Elbusdedatosexistenteenelmicroyel'transceiver'sedenominalocalbus.
Elbusdedatosexistenteentreel'transceiver'yelperifricosedenominabuffer edbus
UnsistemadondeTODOSsusperifricosestnconectadosalbufferedbusse denominatotalmente
buffered.Silosdispositivosperifricossemezclanentreconectadosallocalbusyconectadosal
bufferedbussedenominaparcialmentebuffered.
En un sistemaparcialmente buffered la sealDENdebe controlarseconlasealChipSelectde
aquellosdispositivosconectadosallocalbus.Denohacerloasunadireccincorrespondienteaun
perifrico conectado al local busharque los datos ledos sean presentados al localbusperosi
DENseactivaratambineltransceiveralimentarallocalbus
Lafiguramuestraunejemplodeconexionado
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
7.3.TIEMPOSDELCICLODEBUSPARAUNAGRABACION
LasiguientefiguramuestraelcicloparaunWRITEconlostiemposclavesquedebenrespetarse
paraunaoperacincorrecta
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Lasecuenciaqueimplementaelmicroes:
A) Presentacindeunadireccinvalidaenelbus
B) SeleccindeldispositivocorrespondienteactivandolasealCS.
C) ActivacindelasealWR.
D) Presentacindelosdatosenelbus.
E) LasealWResdesactivada.
Delahojadeespecificacionestcnicasdelperifricopuedenobtenerselosvalorescorrespondientes
alassiguientesdefiniciones
Twc=Telwh tiempomnimoentreunciclodegrabadoyelsiguiente.
Taw=Tavwh tiempomnimoentrelapresentacindeunadireccinvalidaylagrabacindel
datoqueserealizacuandosedesactivaWR
Tcw=Telwh tiempomnimoqueserequiereentrelaactivacindeCSyladesactivacindeWR
Tah=Twhax tiempomnimoquedebepermanecerladireccinvalidaluegodedesactivarWR
Tdw=TdvwhtiempomnimoquedebepresentarseeldatoantesdegrabardesactivandoWR
Tdh=TwhdxtiempomnimoquedebepermanecereldatovalidoluegodedesactivarWR
Twp=Twlwh tiempomnimoquedebepermanecerWRactivado.
Porelladodelmicrolasecuenciaes:
Conestepulsodedesactivaelperifrico
T1
T2
T3
T4
ConestepulsosedacumplimientoalpuntoE
ConestepulsosedacumplimientoalpuntoCyalD
ConestepulsosedancumplimientoalpuntoAyalB
Porlo tanto debecumplirseconlasinecuacionesmostradasenlaprimercolumnadelatablasi
guiente.Enlasegundacolumnaseindicacualeslasolucinsilainecuacinnopuedecumplirse.
INECUACION
Twc<4T
Taw=Tavwh<3TTadltch
Tcw=Telwh<3T
Tah=Twhaxdelperifrico<Twhlhdelmicro
Tdw=Tdvwh<2T
Tdh=Twhdxdelperifrico<Twhdxdelmicro
Twp=Twlwhdelperifrico<Twlwhdelmicro
SOLUCION
InsertarWS
InsertarWS
InsertarWS
Usarunclockmaslento
InsertarWS
Usarclockmaslento
InsertarWS
EnelcasodelWritenoseconsideranlosvaloresTclovyTclispuesnoinfluyen.Porejemplo:la
memoriaexigeuntiempomnimoentrelapresenciadeunCSvalidoylasealdewrite,elmi
cro activaCSenel comienzodeT1(laactivacinrealseproducirTclovdespus)eindica
grabardesactivandoWRalcomienzodeT4(ladesactivaronseproducirTclovdespus)
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
LosvaloresTwhlh,Twhdx,Twlwhvienengeneralmenteespecificadosenlahoja delmicr o en
cuestin.Encasocontrariopuedencalcularsedelasiguienteforma:
Twhlh:tiempoentreladesactivacindelWriteyladesactivacindeALEquegeneraunanueva
direccindisponible.Eseltiempoquepermanecerndisponibleslosdatosagrabarluegodelaor
dendegrabar.Seriguala: TTclovMAX +TchovMIN
Twhdx:TiempotranscurridoentreladesactivacindeWRyladesaparicindelosdatosasergra
badosenelbus.Tiempoquepermanecernlosdatoshasergrabadosdisponiblesenel busluegode
laordendegrabarmedianteWR.Seriguala: TTclovMAX +TclofMIN
Twlwh:duracindelWR.Seriguala: 2T TclovMAX +TclovMIN
Losvaloresobtenidosporcalculosuelendiferirdelosindicadosenlashojastcnicasdelmicro.
Utilizarloscalculadosnicamentesinosedisponendelosindicadosporelfabricante
7.4.DEFINICIONDELOSVALORESDELAHOJADEESPECIFICACIONES
Tchis:imputsetpreviusclockhigh
Tchov:clockhightooutputvalid
Tchihimputholdafterclockhigh
Tclov:clocklowtooutputvalid
Tclis: imputsetpreviusclocklow
Tchof:clockhightooutputfloat
Tclih:imputholdafterclocklow
Tclof:clocklowtooutputfloat
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
7.5.EJEMPLODEANALISISDELOSTIEMPOS
A ttulo de ejemplo se analizar el 80186 modelo 80C186EC25 a 25 MHz con dos memorias
SRAM:MOTOROLAMCM6226A 128Kx8BitsAccessTime25nanosegundos.yPERFOR
MANCEP4C1024L128Kx8BitsAccessTime70nanosegundos.
Valorescaractersticosdelprocesador:
T=1/25MHz=40nseg
Tclov=20nseg
Tclis=10nseg
Twhlh=T10=10nseg
Twhdx=T15=25nseg
Twlwh=2T5=75nseg
Trhax=T15=25nseg
SeasumeTadltch=20nseg
Valorescaractersticosdelosperifricos:
VALOR
Toe
Tac
Taa
Tohz
Trc=Twc
Taw
Tcw
Tah
Tdw
Tdh
Twp
MOTOROLA
12
25
25
10
25
20
20
0
12
0
20
PERFORMANCE
35
70
70
25
70
60
60
0
25
0
50
Ecuacionesacumplir:
ECUACION
MOTOROLA
PERMORMANCE
Toe<2TTclovTclis
Tac<3TTclovTclis
Taa<3TTclovTclisTadlt
Tohz<Trhax
Taelwh<4T
Tavwh<3T
Telwh<3T
Twhax<Twhlh
Tdvwh<2T
Twhdx<Twhdx
Twlwh<Twlwh
12<50
25<90
25<70
10<25
25<160
20<120
20<120
0<10
12<80
0<25
20<75
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
35<50
70<90
70<70
25<25
70<160
60<120
60<120
0<10
25<80
0<25
50<75
SOLUCION
OK
OK
AGREGAR1WS
BUFFER
OK
OK
OK
OK
OK
OK
OK
Hojadeespecificacionesdel80186a25Mz
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
8.BLOCKDECONTROLDEPERIFERICOS(PCB).
Todoslosperifricosqueseencuentranintegradosenelchipdel80186soncontroladosporun
conjuntoderegistrosde16bits.
Estosregistrosseencuentranubicadosfsicamentecadaunoensupropioperifricointegradopero
ellossondireccionadoscomounconjuntode128direccionesdepalabras16bitsquesedenominan
PCB.LaPCBpuedeubicarseencualquierlugardelespaciodememoriaodelespaciodeE/Ssiem
prequeseamltiplode256.
EnformastandardseencuentraenelespaciodeE/SycubrelasdireccionesFF00hhastaFFFFh.
La tabla siguiente muestra que registro representa cada una de las 128 entradas que tiene la
PCB(cadaentradaalmacenaunapalabrade16bits,poresoocupaentotal256bytes)Entrminos
dedesplazamientocontadodesdeelcomienzodelaPCBsolotienensignificadolosdesplazamien
tospares.
EldesplazamientoA8hapuntaaunregistromuyespecial:RELREG.Esteregistroeselquecontie
nelainformacindedondeestaubicadalaPCB.Suformatoes:
ET
debeser0Relacionadoconelcoprocesadormatemtico
MEN indicasilaPCBseubicarenelespaciodememoria(MEM=1)oeldeE/S(MEM=0).
R19:8 esladireccindecomienzodelaPCB.Siempresecompletacon8bitsnuloscomobits
menosrepresentativos.SiMEM=0porsupuestoR19:16debenserceros.
TodacomunicacinentrelosperifricosintegradosylaEUocurresobreunbusespecialllamado
FBus de16Bits y toda transferenciade informacin entrelosperifricosintegradosylaEUse
realizasiempredea16Bits.
CuandoserequiereunatransferenciadedatossobrealgnregistrodireccionadoenlaPCB,laBIU
genera,comosiempreunBCcuyainformacindedatosycontrolesdirigidaalospinsexternos,
peroenestecasoademsserealizalatransferenciasobreelFBusignorndoseeldatoquepueda
haberseobtenidodesdeeldispositivoexterno.ElhechoquetodatrasferenciasobreelFBusseade
16bits,independientementedecmoseacodificada(porejemploOUT28h,ALtransfiere16bits,
AHyALdesdelasdirecciones28hy29h)obligaatomarciertosresguardos.
Lecturadeunapalabra Usarsiempredireccionespares.
Ej.INAX,DXMOVReg16,direccinpar
Lecturadeunbyte
Puedenusarsedireccionesparesoimpares.
Ej.INALDXMOVReg8,direccin
Grabacindeunapalabra Usarsiempredireccionespares.
Ej.OUTDXAXOUTDX,Al(transfiereAXaDX)
MOVdireccinpar,Reg16
Grabacindeunbyte Siempresegrabarlapalabracompletaqueesteinvolucrada.
Usarsolodireccionespares.
Ej.OUTDX,ALgrabaAXenladireccincontenidaenDX
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
9.UNIDADSELECTORADECHIPS.CHIPSELECTUNIT(CSU)
9.1.DECRIPCIONFUNCIONAL
EstaunidadeslaencargadadeasignarelespaciodememoriayelespaciodeE/Sentrelosdistin
tosperifricosquepuedatenerelmicro.Deestaformacadaperifricoesmapeadosobreunin
tervalodefinidodelespaciodedireccionesdeformatalqueoperacionesdeentrada/salidaquese
realicensobredichoespaciosernenrealidadrealizadassobreelperifricoencuestin.
Elespaciodedireccionesdememoriaestaformadopor1Mbytesdedireccionesdiferentes.
ElespaciodedireccionesdeE/Sestaformadopor64Kbytesdedireccionesdiferentes.
Cuandoseapuntaaunadireccinpuedesolicitarselalecturaoescrituradeunbyteodeunapala
bra.
Comoejemplosupongamostenerlossiguientesperifricosdisponibles:
MemoriaRAMestticacompuestapordosbancosde8bitscadaunoquecubren4096direcciones
de8bits.
DIRECCIONESA11:0
CS
BHE
WR
OE
SRAM
2048x2x8Bits
D15:0
DATOS
MemoriaROMcompuestapordosbancosde8bitscadaunoquecubren1024direccionesde8
bits.
DIRECCIONESA9:0
CS
BHE
WR
OE
ROM
512x2x8Bits
D15:0
DATOS
MemoriaRAMdinmicacompuestapordosbancosde8bitscadaunoquecubren16Kdirecciones
de8bits.
DIRECCIONESA13:0
CS
BHE
WR
OE
DRAM
8Kx2x8Bits
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
D15:0
DATOS
Dispositivoperifricodeentradasalidaconunbufferde512direccionesde8bits
DIRECCIONESA8:0
UNIDADDEE/S
CS
BHE
WR
OE
512x8Bits
D15:0
DATOS
OBSERVACIONES:
CON12BITSSEPUEDEDIRECCIONARHASTA0FFFh=4095
CON10BITSSEPUEDEDIRECCIONARHASTA03FFh=1023
CON14BITSSEPUEDEDIRECCIONARHASTA3FFFh=16383
CON9BITSSEPUEDEDIRECCIONARHASTA01FFh=511
Seasignarelespaciodedireccionesdememoriadelasiguientemanera
FFFFF
ROMOCUPAENTREFFC00YFFFFF1024POSICIONES
FFC00
ESPACIODEDIRECCIONESLIBRE
ENTRE05400YFFC00
05000
053FF
04FFF
PERIFERICOOCUPAENTRE05000Y053FF1024POSIC.
RAMDINAMICAOCUPAENTRE01000Y05000
16385POSICIONES
01000
00000
00FFF
RAMESTATICAOCUPAENTRE0000Y00FFF4096POSIC.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Anteunadireccinfsicadeterminadasedebeactuardelasiguientemanera:
Direccin
Entre00000
Y00FFF
SI
Direccin
Entre00000
Y00FFF
SI
Direccin
Entre00000
Y00FFF
SI
Direccin
Entre00000
Y00FFF
SI
ACTIVARCSSRAM
ACTIVARCSDRAM
ACTIVARCSPERIF
ACTICARCSROM
LaCSUeslaunidadqueseencargadegenerarlassealesdeseleccindechips.
El80186tiene10seales:
UCS
seleccionaelperifricoquemapeaenlasposicionesmsaltasdelespaciodedirecciones.
Generalmentesereservaparaeldispositivodebooteo.
LCS
seleccionaelperifricoquemapealasposicionesmasbajasdelespaciodedirecciones.
Generalmentesereservaalamemoriaestticaquealmacenalatabladeinterrupciones,el
STACKylosdatos.
GCS7:0son8bitsparamapear8dispositivosadicionales.
9.2.RESGISTROSDECONTROLDELACSU
PararealizarsutrabajolaCSUcuentacondosregistrosparacadabitdecontrolquesedireccionan
enlaPCBysedenominanSTARTySTOP.
ElregistroSTARTdefineladireccindearranquedelespaciomapeadoylacantidaddewaitstate
queseinsertaranentodoBCquesegenereparaeldispositivoencuestin.
ElregistroSTOPdefineladireccindondeterminaelespaciomapeadoylasvariablesdecontrol:
CSEN Sicer oestasalidaestadisable.Siunoenable.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Paraelejemploplanteadolosvalorescorrectosparacadaunodelosmdulosaconectaresmostra
doenlatablasiguiente:
MDULO
REG
ROM
PERIFERICO
RAMDINAMICA
RAMESTATICA
UCS
GCS1
GCS0
LCS
DIRECC
START
FFCOOh
5000h
1000h
0h
DIRECC.
STOP
0h
5400h
5000h
1000h
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
CANT.
TWAIT
5
0
3
0
RDY
N
S
N
N
10.UNIDADDECONTROLDEINTERRUPCIONES(ICU)
10.1.DESCRIPCIONFUNCIONAL
ExistendoscaminosdistintosparaprocesarlosrequerimientosdelosperifricosdeE/S.:pollinge
interrupciones.
Polling requiere que la CPU pregunte peridicamente a cada uno de los dispositivos de E/S si
requiere atencin.Si eldispositivo encuestines lentola CPU preguntaraun montndeveces
antes de obteneruna respuestaafirmativa. Estoimplica quela CPU estarocupadaentareasno
productivasunaltoporcentajedesutiempo.
Bajo el esquema de interrupciones, en cambio, el dispositivo que requiere atencin tiene la
posibilidaddeinterrumpiralaCPUestaloatiendedejandoensuspensoloqueestuviesehaciendo
yluegoretomasutrabajo.
El80186tieneunanicasealdeentradadeinterrupcionesenmascarable.Expandirestacapacidad
requiereuncontroladordeinterrupciones.Elcontroladoractacomounfiltroentrevariasseales
deinterrupcinylanicaqueadmiteel80186presentndoleaestelamsprioritariadeentrelas
presentes.
Cuando la CPU recibe una interrupcin comienza un BC denominado INTERRUP
ACKNOWLEDGECYCLEoINTACYCLE(IC).
Un INTA CYCLE es un ciclo de lectura especial durante el cual la CPU carga el tipo de
interrupcindesdeelcontroladordeinterrupciones.
UnavezquelaCPU conoceeltipodeinterrupcinquedebeatenderrealizalasiguientesecuencia:
1) salvalaProcessorStatusWord(PSW)enelSTACK.
2) BlanquealosbitsTRAPFLAGeINTERRUPENABLEenlaPSW.(Estoanulalaposibilidad
desinglestepynuevasinterrupcionesmientrasseesteatendiendoalapresente)
3) SalvaelcontenidodelosregistrosCSeIPenelSTACK
4) Carga en los registros CS e IP las direcciones obtenidas desde la INTERRUP VECTOR
TABLEenfuncindetipodeinterrupcinaprocesar
10.2. PRIORIDADESYENMASCARAMIENTOS
Unesquemademanejodeinterrupcionesdebecontemplarlassiguientesfunciones:
a) Manejodeprioridades:
Define el criterio de seleccin entre los pedidos de interrupcin activos en un momento
determinado.Aquellaquetengalamayorprioridadseratendidaprimero.
b) Manejodelenmascaramiento:
Muyfrecuentementesepresentalanecesidaddeenmascararunainterrupcin.Enmascararimplica
ingnorarla totalmente.Mientras una sealdeinterrupcinpermanezcaenmascaradapormasque
ellaseaactivadanuncadebergenerarunainterrupcinalaCPU.
Existenalgunosesquemasdetrabajoquedebidoaquesonutilizadosmuyfrecuentementetienen
nombrepropio.
FULLYNESTED
En este esquema el atender una interrupcin determinada implica automticamente enmascarar
todasaquellasdeigualomenorprioridad.Dichoenotraspalabrasunarutinadeserviciopodrser
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
interrumpida,paraatenderotrainterrupcin,solosiestaesdemayorprioridad.Nuncaunarutinade
serviciopodrserinterrumpidaparaatenderunainterrupcindemenoroigualprioridad.
SPECIALFULLYNESTED.
Essimilaralanteriorperoeligualcambiadelugar.Unarutinadeserviciopuedeserinterrumpida
solo paraatender a otrainterrupcindeigualomayorprioridad.Esteesquemarequiereespecial
atencin paranocaerenuncrculoreiterativo.Producidaunainterrupcinseiniciasurutinade
servicioyestapodraserinterrumpidainmediatamenteporsumismasealdeinterrupcin.
Masadelanteseaclararacuandoesinteresanteutilizaresteesquema.
SPECIALMASKMODE
Este esquema responde aunmodelo libre. El sistemaproveela posibilidaddeenmascarar o no
librementecualquieradelasinterrupcionesvaprogramacin.
El80186basasuunidaddecontroldeinterrupcionesenelmdulo8259A
10.3.ARQUITECTURADEL8259A
Lafiguramuestraelesquemabsicodeun8259A.
El bloque DATA BUS BUFFERy R/DLOGIC constituye lainteface entreel 8259A y laCPU.
EstebloqueeselquecolocaeltipodeinterrupcinenelbusduranteelINTACYCLE.
Requerimientos de interrupcin pendientes son almacenados en el INTERRUP REQUEST
REGISTER.Esteregistrocontieneunbitporcadaunadelas8sealesdeinterrupcinIRx.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Elregistropuedeprogramarseparaquereconozcaunnivelaltoounatransicindecer oauno.
El PRIORITY SOLVER decide cual de todas las interrupciones presentes es la ms prioritaria
basadoen elmodo operativoque sehayaprogramadoyenelesquemadeprioridadesvigentey
manejaraenconsecuencialasalidaINT.
PordefaultIR0eslamsprioritariayIR7lamenos.
ElINTERRUPSERVICEREGISTERalmacenaparacadasealdeinterrupcinunbitqueindica
si la correspondiente interrupcin esta siendo atendida. Esto lepermite alPRIORITY SOLVER
conocersiunainterrupcinmsprioritariaestasiendoatendidacuandollegaunanueva.
LarutinadeserviciodebeexplcitamenteborrarelbitcorrespondienteenelINTERRUPSERVICE
REGISTERantesdedevolverelcontrolalprogramaprincipal.
ElINTERRUPMASK REGISTER contiene un bit paracadasealdeinterrupcinIR0aIR7el
cualpermitehabilitaroinhabilitarlasealcorrespondiente.
10.3.1. SECUENCIATIPICAENELPROCESODEINTERR UPCIONES.
Supnganselassiguientescondicionesiniciales:
a) el8259Ahasidorecininicializado
b) noexisteninterrupcionespendientes.
c) Ningunainterrupcinhasidoenmascarada
d) SeusaraelmododeoperacinFULLYNESTED
Unasecuenciatpicasera:
1) lapresenciadeunasealenIR4haceunoelbit4delINTERRUPREQUESTREGISTER.
2) ElPRIORITYSOLVERchequeasialgnbitcorrespondienteainterrupcionesmsprioritarias
estaactivadoenelINTERRUPREQUESTREGISTER.Nohayninguno.
3) PuestoqueelmododeoperacinesFULLYNESTEDelPRIORITYSOLVERchequearasi
alguna interrupcin conprioridad mayor o igual a IR4tiene subiten uno enelINTERRUP
SERVICEREGISTER.Estoevitaqueunainterrupcininterrumpalarutinadeserviciodeotra
demayoroigualprioridad.
4) En este punto el PRIORITY SOLVER ha determinado que IR4 tiene la suficiente prioridad
comoparainterrumpiralaCPUyporlotantolasealINTseractivada.
5) RespetandosuspropiasprioridadeslaCPUiniciaraencuantopuedaunINTACYCLE.
6) Con el primer frente de onda negativo de la seal INTA el 8259A har uno el bit 4 del
INTERRUPSERVICEREGISTERy cer oelbit4delINTERRUPREQUESTREGISTER.
7) Con el segundo frente negativo de la seal INTA el 8259A pone en el Bus de Datos la
informacindeltipodeinterrupcinsolicitado.
8) ConlosdatosobtenidoslaCPUejecutalasecuenciacorrespondientealainterrupcintipo4
inicindosedeesaformalarutinadeserviciocorrespondiente.
9) Supngase que durante la ejecucin de la rutina de servicio de IR4 se presenta la seal de
interrupcinIR9
10) Elbit9delINTERRUPREQUESTREGISTERseharigualauno
11) El PRIORITY SOLVER detecta que IR9 es de menor prioridad que IR4 y por lo tanto no
interrumpiralaCPU
12) CuandolarutinadeserviciodeIR4finalizaenvaal8259AuncomandoENDOFINTERRUP
elcualhacequeelbit4delINTERRUPSERVICEREGISTERseaigualadoacer o.Estoda
porterminadoelprocesodeIR4.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
13) ElPRIORITYSOLVERdetectaqueIR9estapendienteycomoahoranohayningunaotrams
prioritariaenservicioiniciaraotrasolicituddeunciclodeinterrupcinvaINT.
10.4. ACTIVACIONDELASEALINT
ElPRIORITYSOLVERdefinesisedebeactivarlasealINTenbasea:
1) elmododeoperacinyelesquemadeprioridades
2) el estado de los bits de los registros INTERRUP REQUEST REGISTER, INTERRUP
SERVICEREGISTER,INTERRUPMASKREGISTER
10.4.1. ESQ UEM ADEPRIORIDADES
Luego de la inicializacin del 8259A fija las prioridades de las interrupciones en el esquema
defaultquecorrespondeaIR0lamsprioritariaIR7lamenos.
Esposibleporprogramavariaresteesquemadefiniendocualinterrupcinsedeseasealamenos
prioritaria.LasrestantesSIEMPREseordenaranenunesquemacircular.
PorejemplosiIR5esprogramadacomolademenorprioridadlasotrasseordenanconprioridades
demayoramenor:IR6,IR7,IR0,IR1,IR2,IR3,IR4,IR5.
Lasfigurasquesiguenmuestranelesquemadefaultyelmodificado.
ESQUEMADEFAULT
ESQUEMAMODIFICADO
PorprogramapuedeactivarsetambinunprocedimientollamadoROTACIONAUTOMATICA.
Cuandoesteprocedimientoestaactivocadavezqueunarutinadeserviciofinalizaseleasignaala
interrupcinasociadalamenorprioridad.Estaasignacinporsupuestogeneralarotacindetodas
lasrestantes.
Supngase que IR0 era la ms prioritaria cuando entro a ejecutarse la rutina de servicio
correspondienteaIR4.CuandoestafinalicelamenorprioridadserasignadaaIR4yporlotanto
IR5serlamsprioritaria,continuandoconIR6,IR7,IR0,etc.
Lafiguramuestradichatransicin
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Este esquema es til cuando se tienen varios dispositivos a los cuales se les quiere asignar
prioridadesiguales.
10.4.2. M ODODEOPERACIN
El 8259A permite tres modos de operacin FULLY NESTED, SPECIAL FULLY NESTED y
SPECIALMASKMODE.
10.4.3. ESTADODELOSBITSDELIRR ,ISRYIM R
De entre todos los bits en uno del INTERRUP REQUEST REGISTER se procesara aquel que
tengamayorprioridad.SupngasequeaplicandoestecriterioseseleccionaIRx
ElPRIORITYSOLVERdeterminaractivarINTdeacuerdoalsiguienteesquema
Siel mododeoperacinesFULLYNESTEDsinohayningnbitenelINTERRUPSERVICE
REGISTERigualaunocorrespondientesainterrupcionesconigualomayorprioridadqueIRx.
Siel mododeoperacin es SPECIALFULLYNESTED sinohayningnbitenelINTERRUP
SERVICE REGISTER igual a uno correspondientes a interrupciones con mayor prioridad que
IRx.
Yadems
ElbitcorrespondienteaIRxenelINTERRUPMASKREGISTERestaencer o
UnavezactivadalasealINTlaCPUiniciaraelINTACYCLEcuyaejecucindesencadenarael
procesonecesarioparainiciarlarutinadeserviciocorrespondiente.
DuranteelINTACYCLEelbitIRxdelINTERRUPREQUESTREGISTERfueblanqueadoyel
delINTERRUPSERVICEREGISTERfueseteado.
ParacerrarelcicloesnecesarioblanquearelbitdeIRxenelINTERRUPSERVICEREGISTER
cuandolarutinadeserviciofinalice.
10.5.BLANQUEODELBITENELINTERRUPSERVICEREGISTER
SiunbitdeterminadoenelINTERRUPSERVICEREGISTERestaenunoindicaquelarutinade
servicio correspondiente a dicha interrupcin est en proceso (activa o suspendida pero no
finalizadoaun).ElcomandoENDOFINTERRUP,elcualpuedeserenviadoal8259AporlaCPU
ogeneradoautomticamenteporel8259Aeselencargadodeblanquearestosbits.
Existendistintostiposdecomandos
1)ComandoENDOFINTERRUPNOESPECIFICO
Cuandoesrecibidoporel8259Aesteblanqueaelbitmsprioritariodelosqueseencuentranen
unodentrodelINTERRUPSERVICEREGISTER.CuandoseoperaenFULLYNESTEDelbit
en uno ms prioritario corresponde a la rutina de servicio que esta activa y por lo tanto el
comandonoesnecesarioindicarenelcomandocualeselbitablanquear.
2)ComandoENDOFINTERRUPESPECIFICO
Enestecasoelcomandoinformaenformaexplcitacualeselbitablanquear.
3)comandoENDOFINTERRUPAUTOMATICO
Esgeneradoautomticamenteporel8259AalfinaldelINTACYCLE.Porlotantolosbitsde
INTERRUP SERVICE REGISTER permanecen en uno solamentedurante ciertotiempodel
INTA CYCLE. Ellos son blanqueados antes que la rutina de servicio correspondiente sea
iniciada.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Estecomandosolopuedeserusadoporelmdulo8259AMASTERenunsistemaconectado
encascada.
10.6.CONECCIONENCASCADADEL8259A
El 8259A permite que en cada una de sus entradas de interrupcin sea conectado otro mdulo
8259Aconformandoasunaconexinencascada.ElprimerorecibeelnombreMASTER,losotros
deSLAVEs
Sisetienen8SLAVEslacantidaddesealesdistintasdeinterrupcionesposiblesasciendea8x8
=64
Lafiguramuestralaconexinencascadautilizadaporel80186dondeun8259Aesconectadoala
entradaIR7de8259AMASTER
ElMASTERcontrolaelaccionardelSLAVEvaelCASCADEBUS(CAS2:0).
CadaSLAVEenunsistemadebetenerunIDqueloidentifiqueunvocamenteyquedebecoincidir
conelnmerodelalneaIRxalacualseencuentraconectado.
ElejemplosiguientemuestralainteraccinentreelMASTERyelSLAVE
Asmaseque:
1) el8259AMASTEResprogramadoparaoperacinencascada,conunSLAVEconectadoen
IR7yelesquemadeprioridadesdefault
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
10.8.PROGRAMANDOELMODULO8259A
El conjunto de registros de comandos que controlan al 8259A se divide en dos grupos:
INITIALIZATIONCOMMANDWORDS(ICW)yOPERATIONCOMMANDWORDS(OCW).
Losprimerossonprogramadosgeneralmenteunanicavezdurantelainicializacindelsistema
mientras que los segundos son programados en distintos momentos durante la ejecucin de un
programa.
TodoslosregistrossonvistosatravsdesolodosregistrosqueseubicanenlaPCB.
Enlaescrituraelregistroagrabarquedadeterminadopor:
a) elregistrodentrodelaPCBseleccionado
b) elvalordealgunosbitsagrabar
c) lasecuenciaatravsdelacualsegraba
d) Enelcasodelectura,primeroesnecesarioenviaruncomandodelecturayluegoleerelregistro
delaPCBquecorresponda.
10.8.1. R EGISTROSDECONTR OLYCOM ANDOSDEL8259A
Comoenelcasodel80186bajoestudioexistendosmdulos8259AenlaPCBexistirndos
juegosderegistrosdecontrol.
ParalemduloMASTER:
MPICP0y MPICP1
ParaelmduloSLAVE.
SPICP0ySPICP1
10.8.2. SECUENCIADEINICIALIZACION
Losmdulos8259Adebenserinicializados.Elcontenidodesusregistrosesindefinidoluegodel
reset.
El diagrama que sigue muestra la secuencia obligatoria que debe seguirse en el proceso de
inicializacin
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
10.8.2.1.IC W1
LagrabacindeICW1selogragrabandoelregistroxPICP0conelbit4iguala1.
AlgrabarICW1serealizanlassiguientesacciones
a)
b)
c)
d)
ElINTERRUPMASKREGISTEResblanqueado
ElIR7esasignadoalaprioridadmsbaja.
ElmododeoperacinSPECIALMASKMODEesinhibido
Elbitdelecturadeestadosesseteadodeformatalquelaslecturassucesivasdireccionarnal
INTERRUPREQUESTREGISTER.
Ademssegnelvalordeciertosbits:
e) Seseleccionasiladeteccindelasinterrupcionesservaniveloporfrente(bit3).
f) SedefinelapresenciadelmduloSLAVE(bit1).
g) SeidentificaqueexistirnICW4(bit0).
Elformatodelregistroagrabares:
Bit0 IC4 si=1existirICW4.Esobligatorioenunsistemacascada.
Bit1 SNGL si=1indicaquenohaySLAVEs.
Bit3 LTIM si=1ladeteccinserpornivel
Bit4
debeser uno
Losbits2,5,6y7debensercer o,losotrosnosonrepresentativosperoserecomiendaquesean
cer oporcuestionesdecompatibilidadfutura.
10.8.2.2.IC W2
SegrabaaccediendoalregistroxP1CP1.
Solosondesignificacinlosbits3a7dondedebeindicarseladireccinbaseparaelclculodel
tipodeinterrupcinqueinformarelmdulo.
DuranteelINTACYCLEelmdulodebeinformaralaCPUeltipodeinterrupcinquesolicitola
atencin.
Eltipodeinterrupcinsercalculadocomo:
Direccinbase*8+nmerodelalneaquegeneralainterrupcin
Ejemplo:
Bit7a3=00101=5
Direccinbase=5*8=40
Si la in la genera IR3 el 8259A informara como tipo de interrupcin el 43 por lo que la CPU
iniciaralarutinadeservicioubicadaenladireccinCS:IPconIPigualalcontenidodeloffset43*
4=172dentrodelaInterruptControlTableyCSigualalcontenidodeloffset173dentrodedicha
tabla.
Nota:lostipodeinterrupcinnmeros0a31sonreservadosporINTEL
10.8.2.3.IC W3
TambinsegrabaaccediendoalregistroxP1CP1.
SolotienesentidoenunsistemadondeexistanSLAVEs.
Lasecuenciafijaelregistrodedestino,lasegundagrabacinsobrexP1CP1indicaqueesICW3.
ElsignificadodelosbitsagrabarcambiasisetratadeunmduloMASTERodeSLAVE.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Para el MASTER solo tienen significado los bit 0 a 7 y aquellos iguales a uno indicaran la
presenciadeunSLAVEenelIRcorrespondiente.
ParaunSLAVEsolotienensignificadolosbits0a2yrepresentanelIDdelSLAVE.
10.8.2.4.IC W4
TambinsegrabaaccediendoalregistroxP1CP1.
ParaelSLAVEsiempredebeser0001h
ParaelMASTERsololosbits0,1y4tienensignificado:
Bit0debeser uno
Bit1 AEOI Si=1seseleccionaelmodoautomticodegeneracindeENDOFINTERRUP
Bit4 SFNM si=1seseleccionaelmododeoperacinSPECIALFULLYNESTED.
10.8.3. C OM ANDOSDEO PERAC IN
ExistentrescomandosdiferentesOCW1,OCW2yOCW3
10.8.3.1.OCW1
SegrabaaccediendoaxP1CP1yfijalosvaloresdelINTERRUPMASKREGISTER.
UnbitigualaUNOinhibetodainterrupcindesdeelIRcorrespondiente.
LosvaloresactualesdelINTERRUPMASKREGISTERpuedenserledosleyendodirectamenteel
registrocP1CP1.
10.8.3.2.OCW2
SegrabaaccediendoalregistroxP1CP0conlosbit3y4igualesacer o.
Losbits5,6y7(EOI,SL,R)definenlaoperacindeseadadeacuerdoalasiguientetabla.
Losbits0,1y2(L0,L1YL2)solotienensignificadoenaquellosoperacionesqueas loindicanen
latablaprecedenteconun*yrepresentanelnmerodelainterrupcion
10.8.3.3.OCW3
SegrabaaccediendoalregistroxP1CP0conelbit3igualaunoyelbit4igualacer o.
Permite seleccionar el modo de operacin SPECIAL MASK MODE y definir cual registro ser
ledocuandoseleaxP1CP0.
Losbitsqueproveenestainformacintienencadaunounbitdecontrolquehabilitaodeshabilita
laposibilidaddegrabacindelbitencuestinparaevitarposiblesgrabacionesporerror.
Bit6 ESMM debeser=1parapodermodificarSPECIALMASKMODE
Bit5 SMM
seleccionaSPECIALMASKMODE.
Bit1 ERR
debeser=1parapodermodificarRSEL.
Bit0 RSEL determinaqueregistroserledoalleerxP1CP0
Si=1seleerINTERRUPSERVICEREGISTERsi=0seleerINTERRUP
REQUESTREGISTER.
Bit3
debeserigualauno
Bit2,4y7debenser cer o.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
10.8.4. FUENTESDEINTERRUPCIONINTERNAS
ElformatodelostresregistrosINTERRUPREQUESTLATCHREGISTERes:
DMAIRL
Bits 0 a 3 representan los cuatro canales DMA. Un valor igual a uno significa que el canal
correspondienteestasolicitandounainterrupcin.
Bits 8 a 11 son bits de control que habilitan o deshabilitan la posibilidad de grabar loscuatros
menos significativos. Solo si son iguales a uno habilitan la modificacin del
correspondientebitdelotrogrupo.
SCUIRL
Bits 0 a 3 representan los cuatro canales SERIE. Un valor igual a uno significa que el canal
correspondienteestasolicitandounainterrupcin.
Bits 8 a 11 son bits de control que habilitan o deshabilitan la posibilidad de grabar loscuatros
menos significativos. Solo si son iguales a uno habilitan la modificacin del
correspondientebitdelotrogrupo.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
TIMIRL
Bits0a2 representanlostrestemporizadores.Unvalorigualaunosignificaqueeltemporizador
correspondienteestasolicitandounainterrupcin.
Bits8a10sonbitsdecontrolquehabilitanodeshabilitanlaposibilidaddegrabarlostresmenos
significativos.Solosisonigualesaunohabilitanlamodificacindelcorrespondiente
bitdelotrogrupo.
Losbitsmenossignificativospuedenleersey/ograbarse,losquerepresentanalasmascarasson
solodelectura.
Larutinadeservicioquemanejalaingeneradaporunperifricointegradodebeblanquearantesde
devolver elcontrol elbitque le correspondaen elINTERRUPREQUESTLATCHREGISTER
puessinolalneaIRpermaneceraltayserequerirotrainterrupcin.
PorejemploantesdefinalizarlarutinadeserviciodeunaingeneradaporeltemporizadorTIME1
debeblanquearseelbitcorrespondientegrabandoenelregistrodelaPCBTIMIRLelvalor0200h.
10.9.EJEMPLOSDEPROGRAMAS
Elprimerprogramamuestralasecuenciadeinstruccionesnecesariasparainicializarlaunidadde
controldeinterrupciones.
MOD186
NAME80C186EC_ICU_INITIALIZATION_TEMPLATE
Elsiguientecdigodeberaencontrarsetpicamenteenlaseccindebooteodeunsis tema.
seasumequelasins truccionesqueasignanvaloralosmnemotcnic oscorrespondientes alos
registrosdelaPCB s eenc uentranenelarchivo pcb_equates.inc
$INCLUDE(PCB_EQUATES.INC)
BOOT_ROM
SEGMENT
eselnombredelsegmento
ASSUMECS:BOOT_ROM,DS:NOTHING
seblanqueaelbitquehabilitalasinterrupcionesenlaCPU
CLI
SeajustarlaInterruptVectorTable.
SolamentesemostraraelcdigoparalainicializacindelainterrupcindelTIME0,paraelcualse
usareltipodeinterrupcinnmero28h
inicializacin.
XORAX,AX
Clear
MOVDS,AX
CSapuntaalVectorTable
MOVAX,OFFSETTIM0_HANDLER
MOVBX,28H*4
MOVDS:[BX],AX
Almacenaeloffsetdelhandler
MOVAX,SEGTIM0_HANDLER
MOVBX,28H*4+2
MOVDS:[BX],AX
Almacenaelsegmentodelhandler
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
ICW1vaMPICP0
seblanqueanlosbitsreserv ados
Detec cinporflancos,cascada,
requiereICW4
OUTDX,AL
SedefinecomodireccinbaseparaelMASTER20h
Estocrearaunblockcontiguodedireccionesparalaunidaddecontroldeinterrupcionesdesdeel
tipodeinterrupcin20hhastael2fh.
MOVDX,MPICP1
ICW2vaMPICP1
MOVAL,20H
Direcc inbase20H(Type32)
OUTDX,AL
SecontinuaconICW3
MOVDX,MPICP1
ICW3vaMPICP1
MOVAL,80H
elmduloSLAVEestaenIR7
OUTDX,AL
ICW4terminalainic ializacin
MOVDX,MPICP1
ICW4vaMPICP1
MOVAL,1B
Nospecialfullynestedmode,
noAEOImode
OUTDX,AL
Inicializacinescompleta
Sedesenmascaranlasinterrupciones.
BOOT_ROM
STI
ENDS
Elsegundomuestralacodificacindeunarutinadeservicio.
INT_HNDLERS
SEGMENT
ASSUMECS:INT_HNDLRS
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
TIM0_HANDLER
PROCFAR
STI
Necesariosisedeseaanidarinterrupciones
Aqudeberainsertarseelcdigoespecificoparaeltratamientodelainterrupcin
BlanquealainterrupcinenelregistroIRLR
TIMER0(MSK0=1,TIR0=0)
ComandoEOIvaOCW2
,NoespecificoalMASTER
ComandoEOIvaOCW2
Noespecifico
alSLAVE
Return
10.10.EXPANDIENDOLA CANTIDADDESEALESDEINTERRUPCION.
Si se deseara expandir la capacidad de manejo de interrupciones del 80186 ms all de las 8
aceptadasensuestructurainternapodranconectarsedispositivos8259Aexternamenteacadauna
delassealesIR0aIR6del80186.
SupngaseelcasodeconectarloaIR6.
Lafiguramuestraelconexionadorequerido:
Defineal
8259Acomo
SLAVE
GSCCSeslaconexinquehabilitalaprogramacindel8259A.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Comosehavistoanteriormentetodalaprogramacinserealizasoloatravsdedosdirecciones.
Cuando setrata de los dispositivos 8259A integrados dichasdireccioneseranxPICP0yxPICP1
que se encuentran en la PCB. Cuando el 8259A es externo tambin se le deben asignar dos
direcciones pares, de 16 bits cada una y consecutivas. Aquella que tenga A1 igual a cer o
corresponder aSPICP0 y laquetengaA1igualaunoaSPICP1.Cuandodichasdireccionesse
encuentrenpresentesenelbusdedireccioneslasealCSdeberactivarse.
Siguiendo los procedimientos descriptos anteriormente podr entonces generarse las ICW de
inicializacinylasOCWdeoperacinqueserequieranparalaprogramacindelmdulo8259A.
Sisedecideutilizarlaunidadselectoradechipsparaseleccionaral8259Aestadebeconfigurarse
enconsecuencia.ComoelmnimoespaciodedireccionesmapeadoporunadelassealesdeGCS
esde64 direcciones enestecaso sedesperdician62(soloseusandosregistrosde16bitscada
uno).
CuandounadelassealesIR0aIR7deeste8259Aseactiva,elmduloestablecesitieneentidad
como para activar INT.Encasoafirmativo esto generaunaactivacinen IR6del MASTERdel
80186elcualsolicitarunINTACYCLE.
Cuando la CPU genereel INTACYCLE el MASTER reconoceque paraIR6 tiene un SLAVE
conectado y entoncesgenerael ID correspondiente enCAS2:0el cualtambinse presentar en
AD15:13ypor lotantotransferidoalSLAVEexterno.EstereconocesupropioIDyresponder
entregandoenelbusdedatos(los8bitsmenosrepresentativos)eltipodeinterrupcinrequerido.
SideacuerdoconlascaractersticastcnicasdeldispositivoutilizadoesnecesariogenerarWAIT
STATESsepuedeusarlafacilidadqueenesesentidobrindalaunidaddeseleccindechips.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
11.UNIDADTEMPORIZADORAYDECONTADORES.
11.1.DESCRIPCIONFUNCIONAL.
La unidad temporizadora y de contadores permite tener un adecuado manejo del tiempo.
Aplicacionestpicasquerequierenestafuncionalidadson:
1)
2)
3)
4)
5)
Actualizacindeunavariablecadaxmilisegundos.
Generacindeondascuadradasorectangulares.
GeneracindeondastipoUNDisparo.
Medicindeltiempotranscurridoentredoseventos.
Generacindeuneventodeterminadotiempodespusdeproducidootrooconunafrecuencia
especifica.
Lafiguramuestraelesquemageneraldelaunidadcorrespondienteal80186
LostrescontadoresTIMER0,TIMER1,TIMER2sonmanejadosindistintamenteporlaCPUopor
elCounterElementperoenformasincronizada.Cadacontadoresservidoenunbittimediferente
deunciclode4bitstime.DurantelostresprimerosbitstimesonservidosloscontadoresTIMER0,
TIMER1yTIMER2respectivamente,reservndoseelcuartobittimecomoIDLE.
CuandounTIMEResservidosuvalorcorrienteesincrementadosicorrespondeycomparadocon
unoodosvaloresmximosqueelTIMERpuedetenerasociados.Porprogramasedefinequehacer
cuandolacomparacinresultaporigual.
Lasalternativasson:
BloquearelTIMERparaimpedirquesigatrabajando(unnicociclo)odejarlohabilitadoy
permitiruntrabajocclico.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
InterrumpironoalaCPU.
Porotroladoelvalorcorrientedelcontadorsiempreserreseteadoacer o
TIMER0 y TIMER1 son similares pero en cambio TIMER2 solo tiene un subconjunto de las
funciones deTIMER0oTIMER1.Encambioeselnicoquepuedefuncionarcomodisparador
paralosotrosdoscuandosupropiovalorcorrientealcanzasumximovalor.
CadaTIMERtieneasociadotresregistrosbsicos:
TxCON
registroquecontrolaelfuncionamientodelt.
TxCNT
registroquealmacenaelvalorcorrientedelt.
TxCMPA
registroquealmacenaelvalormximodelt.
Los TIMERS 0 y 1 tienen un segundo registro para almacenar un valor mximo llamado
TxCMPB. Segn el valor de uno de los bits de TxCON el valor corriente ser comparado con
TxCMPAoconTxCMPB.
11.2.DIAGRAMAOPERACIONAL
El diagrama de flujo quesigue muestrala actividaddesarrolladatantoparaTIMER0como para
TIMER1cadavezqueelTIMERcorrespondienteseaservido.
Enprimerlugarsedeterminasielvalorcorrientedebeseronoincrementado.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
ENbitdeTxCONqueindicasielTIMERestahabilitadoono.
EXTbitenTxCONqueindicasielTIMERseractivadoEXTERNAoINTERNAMENTE
SiEXTERNAMENTEcuandolasealTxIntransitedecer oauno.
RTGbitdeTxCONquesolotienesignificadosiEXT=1eindicaquesiTxInpasdecer o
aunoelcontadordebeserreseteado.
SiEXT=0lasealTxIndebepermanecerenunoparaqueelTIMERseaservido.Mientras
TxInseacer oelvalorcorrientedelTIMERpermanecerconstante.
5
6
PbitdelTxCONqueindicasielTIMERserpreescalado.
Siel TIMERes activado internamentesernormalmenteservidoaunafrecuenciaiguala
CLKOUT/4.SisedeseatrabajarafrecuenciasmenoressedebehacerP=1ycolocaren
valormximodeTIMER2eldivisordeseado.ConP=1elvalorcorrientedeTIMER0o
TIMER1 solo ser incrementado si adems de cumplirse el resto de los requisitos
establecidosresultaqueTIMER2alcanzosumximovalorduranteeltiempotranscurrido
desdelaultimavezqueelTIMERencuestinfueservidoyesteservicio.
Luegodetomadaladecisinacercadesidebeonoincrementarseelvalorcorrienteseanalizanlas
restantesaccionesaejecutardeacuerdoalsiguientediagrama:
7
No
9
Yes
SetMC=1
SetMC=1
10
SetMC=1
10
11
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
12
7
ALTbitdeTxCONqueindicasiseestusandounnicovalormximoodos.Trabajaen
asociacincon:
RIUbitdeTxCONqueindicaenelcasodetrabajarcondosvalores mximoscontracualde
ellosdebercompararseelvalorcorrienteactual.SiRIU=0secomparacontraTxCMPA
siRIU=1secomparacontraTxCMPB.
Sinosealcanzelvalormximocorrespondientenohaymasnadaquehacer.
EncasocontrariosefijaelvalordelasealdesalidaTxOUT,sefijaMC=1,sedetermina
sisedarporterminadoelciclooseiniciarautomticamenteunonuevoyporultimosi
debegenerarseonounainterrupcinalaCPU.
10 CONbitdeTxCONqueindicasisedeseatrabajarenmodocontinuoonicociclo.Eneste
ultimocaso,completadoelcicloelTIMERseinhabilita.
11
12 Cada vez que el TIMER alcanza su valor mximo es reseteado haciendo que su valor
corrienteseacer o.
TIMER2esuncasoparticulardentrodelosTIMERS.
Notienesealdeentradanidesalidaasociadasporloquenopuedegenerarningunasealdesalida
ysolopuedeseractivadopermanentementeenformainterna.Ademssoloadmiteunnico
valormximo.
LosbitsEXTRTGPALTyRIUnoexistenenelregistroT2CON.
11.3.REGISTROSASOCIADOSACADACONTADOROTIMER.
Lasfigurasquesiguenmuestranlosformatosdelosregistrosmencionadospreviamente.
T0CONyT1CON
T2CON
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MC:Estebitesseteadoaunocuandoelcontadoralcanzasumximovalor.Eldebeser r eseteado
gr abandoelr egistr oquelocontiene.Estonoeshechoenfor maautomtica
INH: Es el bit que habilita la posible grabacin del bit EN. Este ultimo solo podr grabarse si
simultneamentesefijaINH=1.
T0CNT,T1CNTyT2CNT
T0CMPA,T0CMPB,T1CMPA,T1CMPByT2CMPA
11.4.PROGRAMACIONDELAUNIDADTEMPORIZADORAYDECONTADORES.
Lasecuenciadeinicializacinrecomendadaeslasiguiente:
1) SiseusarinterrupcionesprogramarlaINTERRUPVECTORTABLEencorrespondencia.
2) BlanquearelcorrespondienteTxCNT.Luegodelreseteadoelsistemalosvaloresasumidospor
cadaunodeloscontadoresesindeterminado.
3) GrabarlosvaloresrequeridosenTxCMPAy TxCMPBsegncorresponda.
4) GrabarTxCONconlosbitsadecuados.EntreellosporsupuestodeberestarENparahabilitar
al contador. Si se usar TIMER2 para pre escalar es necesario habilitarlo a posteriori del
TIMERquelorequerir.
11.5.COMENTARIOSADICIONALES
11.5.1. FUENTESPARALAOBTENC IONDELCLOCK DELO SCONTADORES.
Loscontadoressonincrementadosunavezencadaevento.Uneventopuedeserlatransicinde
cer o a uno dela seal quealimentaal pinde entrada(casosde TIMER0yTIMER1),unpulso
generadocadacuatrociclosdelclockdelaCPUounpulsogeneradoporTIMER2alalcanzarsu
valormximo.
TIMER0 y TIMER1 pueden contar las transiciones de cer o a uno de laseal deentrada sison
programadosconEXT=1.Lastransicionesdelpinexternosonsincronizadasporelclockdela
CPUantesdeserpresentadasaloscircuitosdelaunidadtemporizadora.
11.5.2. M ODOSDEOPER ACI NDELOSCONTADORES
Cuandoelvalorcorrientedeuncontadorigualasumximovaloresreseteadoacer o.Elmximo
valornuncasergrabadoenelregistropueslacomparacinyelreseteoserealizanenelmismobit
time.
Esimportantedestacarquelacomparacinessoloporigualy nopor igualomayor . Sienelinicio
resultaraqueelvalorcorrienteessuperioralvalormximoelcontadorseguirincrementndose
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
La seal de entrada presente en el pin TxIn afecta al contador de tres formas diferentes
dependiendodelvalorqueasumanlosbitsEXTyRTGenelTxCONcorrespondiente.
EXT=RTG=0Enestecasoelcontadorreaccionaaeventosinternosyessensitivoalvalordela
sealTxInynoasustransiciones.TxInactacomounasealdeinhibicinexterna.Siesiguala
unoelcontadorestahabilitado,encasocontrarioelcontadorestainhibido.
EXT=0,RTG=1enestecasoelcontadorreaccionaaeventosinternosperolasealTxInacta
comoreinicializadora.Unatransicindecer oaunoenTxInharqueelcontadorseareseteadoa
cer o. Luego de que el contador sea habilitado con EN =1la cuenta comenzarcon la primera
transicindecer oaunodeTxIn.EnelmodocondosvaloresmximoelreseteodebidoaTxInno
modificalavariableRIU.
EXT=1lasealenTxInactadirectamentecomosifueraelclockdelcontador.
11.5.4. ONDASRECTANGULARESYUNDISPARO.
LasealdesalidaasociadaalosTIMER0yTIMER1puedeadoptardosformatosdistintos.Cuando
el contador tiene un nico valor mximo asociado la sealtienela formadeun nicopulso de
duracinigualaunbittimeelcualindicalafinalizacindeunciclo.Estasalidaocurreduranteel
bit time posterior a aquel en el que el contador alcanz su valor mximo. La siguiente figura
muestraestasituacin:
Cuandoexistendosvaloresmximoslasealtienelaformadeunaondarectangularquerepresenta
alavariableRIU.MientrasRIU=0seusaracomovalordecomparacinTxCMPAylasealde
salidaseruno,mientrasRIU=1seusarTxCMPBylasealdesalidasercer o.Porejemplosi
TxCMPA=10,TxCMPB=20yCLKOUTes12,5MHz,elcontadortrabajaraaunafrecuenciade
12,5/4=3.125MHzycomosenecesitaran30pulsosparacompletarunciclolaondadesalida
serdeuna frecuencia de104,166KHz.Permanecerel33,33%enunvaloryel66,66%enel
otro.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Cada contador tiene asociado en el registro TxCON el bit EN que habilita o deshabilita el
funcionamientodelcontador.ElbitINHcontrolaelaccesoalbitEN.
SiEN=0elcontadornoesincrementadocuandoesservido.
ElvalordeENpuedesermanejadoporprogramaoporelsistema.Launidaddecontadoreshace
EN=0alfinalizarunciclosielbitCONTescer o.
La finalizacin de un ciclo se produce cuando el valor corriente del contador iguala al valor
mximoespecificadoenTxCMPAsisetratadeunaoperacinconunsolovalormximo(ALT=
0)ocuandoelvalorcorrientealcanzaelvalormximoespecificadoenTxCMPBsiALT=1.
ParaelTIMER0yelTIMER1cuandotrabajanactivadosporelclockinternolasealTxIntambin
puedeactuarcomoinhibidora.
SiRTG=0unnivelcer oenTxIninhibeelfuncionamientodelcontador,mientrasquesiRTG=
1unfrentedeondadecer oaunoloresetea.
Sila sealactuarpor nivel su valor debe permaneceralmenoscuatrobitstimedelclockdela
CPU.
11.5.6. INTER RUPCIONES
TodosloscontadorespuedengenerarinterrupcionesalaCPU.Sibientodoscompartenunnico
interrupt request cada uno tiene su propia ubicacin en la INTERRUP VECTOR TABLE y su
prioridad.
TIMER0tienelamayorprioridadyTIMER2lamenor.
LainterrupcinsegenerarenfuncindelvalorqueasumaelbitINTenelregistroTxCON.
SiALT=0lainterrupcinsegenerarcuandoelvalorcorrientealcancealvalordeTxCMPA.
Si ALT = 1 la interrupcin se generar tanto cuando elvalor corriente alcanceTxCMPAcomo
cuandoalcanceTxCMPB.
11.5.7. TIEM POSDESETUPYRETENCIONDELASSEALESDEENTRADA
Paraasegurarelcorrectodesempeodeloscontadoreslasealdeentradadebesatisfacerciertos
requerimientosrespectodelfrentedeondadelclockdelsistema.
LasealdeentradadebeservalidaTchisantesdelflancopositivodeCLKOUTydebepermanecer
validaalmenosTchihluegodedichopulso.Siestosrequerimientosnosonsatisfechoslasealde
entradanoserreconocidahastaelprximofrentedeondadelclock.
11.6.EJEMPLOS
11.6.1. IM PLEM ENTACIONDEUNRELOJ
11.6.1.1.Descr ipcionGen er al
Supngasequesedeseatenerenmemoriatresvariablesquerepresentenlahora,losminutosylos
segundosquellevaunprogramaenejecucin.
CLKOUT=16Mhz
Frecuencia de servicio de contadores = 16 / 4 = 4 Mhz 1/f = 0,25 106 seg. = 250 106
milisegundos
Mnimointervaloexigidoparalaactualizacin=10milisegundos.
Seusarat2.
T2CMPA=10/250106=10.000.000/250=40.000
InicializacindelaUnidaddeControldeInterrupciones
a) BlanquearelINTERRUPREQUESTLATCHREGISTERdelaunidaddetemporizadores
(TIMIRL)y lasvariablesquealmacenaranhoras,minutosysegundos(HORMINSEG)
b) SLAVE
ICW1 seeligeflanco,presenciadeSLAVEeICW4
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
ICW2 direccinbaseparaelSLAVE=104
ICW3 iddelSLAVE=7
ICW4 valorfijo=0001h
c) MASTER
ICW1 seeligeflanco,presenciadeSLAVEeICW4
ICW2 direccinbaseparaelMASTER=96
ICW3 identificaalSLAVEenelIR7
ICW4 valoren0011hmodoSPECIALFULLYNESTED
ConlasdireccionesbaseespecificadaparaelSLAVE(104)yelMASTER(96)sehageneradoel
siguienteblockdetipodeinterrupciones:
8259A
MASTER
MASTER
MASTER
MASTER
MASTER
MASTER
MASTER
MASTER
SLAVE
SLAVE
SLAVE
SLAVE
SLAVE
SLAVE
SLAVE
SLAVE
IR
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
TIPODE
INTERR UPCION
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
FUNCIO N
INT0
INT1
INT2
INT3
INT4
INT5
INT6
SLAVE
TIMER0
TIMER1
DMA2
DMA3
TIMER2
RX0
TX0
INT7
DESPLAZAM
DENTRODE
LAIVT
96*4=384d=180h
184h
188h
18Ch
190h
194h
198h
19Ch
1A0h
1A4h
1A8h
1ACh
1B0h
1B4h
1B8h
1BCh
Inicializacindelatabladevectoresdeinterrupciones
c) colocar en el desplazamiento 1B0 de laIVTel desplazamientodela direccindonde se
alojarlaISRquetratarlainterrupciny
eneldesplazamiento1B2delaIVTelsegmentodeladireccindondesealojarlaISRque
tratarlainterrupcin.
e) InicializacindelTIMER2
T2CNT=0
T2CMPA=40.000d=9C40h
T2CON=1110000000000001
Habilitainterrupcin Modocontinuo
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Permitehabilitaralcontador
Habilitaalcontador
f) HabilitarinterrupcioneshaciendounoelbitcorrespondienteenlaPSW
EnladireccinSEG:DESPLAZespecificadasecodificarlarutinadeserviciodelainterrupcin.
g) ProcesoInterrupcionTimer2(cada10milisegundos)
Sumar1aMILISEG
SiMILISEG=100hacerMILISEG=0SEG=SEG+1
SiSEG=60hacerSEG=0MIN=MIN+1
SiMIN=60hacerMIN=0HOR=HOR+1
h) Blanquear en el INTERRUP REQUEST LATCH REGISTER el bit correspondiente a
TIMER2
i) EnviarunSPECIFICEOIdeTIMER2alSLAVE
Si todos los bits del ISR del SLAVE estn en cero enviar un SPECIFIC EOI de IR7 al
MASTER
EmitirIRETinstruccinquefinalizatodarutinadeserviciodeinterrupciones.
11.6.1.2.Progr ama
$TITLE(82C59Progr ammingExample)
$M OD186
NAM EICU_DEM O
$INCLUDE(C:\EV186EC\ECPCB.INC)CO NTIENETODASLASDEFINIC IONESDELAPC B
M ASTER_BASE_TYPE
EQ U96
TYPE*4=BASEADDROFM ASTER
SLAVE_BASE_TYPE
EQ U104
TYPE*4=BASEADDROFSLAVE
INT_TIM ER2_TYPE
EQ USLAVE_BASE_TYPE+4
DATA
HOR
M IN
SEGU
M SEG
DATAENDS
EC_CODE
M AIN:
SEGM ENTPUBLICDATA
PUBLICH OR,M IN,SEGU,M ILISEG
DB?
DB?
DB?
DB?
SEGM ENTAT0100H
ASSUM ECS:EC _CODE
CLI
CALLINIT_ICU
PUTCODEINSRAM
DISABLEINTERR UPTS
INITIALIZEINTERRUPTCONTR OL
UNIT
INITIALIZEINTERRUPTVECTORS
CALLSETVECT
CALLSETTIM ER 2
STI
ENABLEINTERRUPTS
J M P$
WAITFORINTER RUPTS
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
THISPRO CEDUR EINITIALIZESTHEINTERNALM ASTER ANDSLAVE82C59OFTH E
80C186ECPROC ESSO R
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INIT_ICU
PRO C
ALLOFTHEINTERNALPERIPHERALINTERRUPTR EQ UESTLATC HESSH OULD
BECLEAR EDFORSAFEM EASURE
M OVDX,SCUIRL
M OVAX,0F00H
OUTDX,AX
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
M OVDX,TIMIRL
OUTDX,AX
M OVDX,DM AIRL
OUTDX,AX
INITIALIZESLAVE82C 59M ODULE
M OVDX,SPICP0
XORAH,AH
M OVAL,11H
OUTDX,AL
SETBASEINTERRUPTTYPEAT104FO RSLAVE
M OVDX,SPICP1
M OVAL,SLAVE_BASE_TYPE
OUTDX,AL
SLAVEID
M OVDX,SPICP1
M OVAL,7
OUTDX,AL
M OVDX,SPICP1
M OVAL,1
ICW1>SPICP0
CLEARRESERVEDBITS
EDGETRIG,C ASCADE,IC4REQ RD
ICW2>SPICP1
BASEADDRESSAT01A0H
ICW3>SPICP1
ID=7ALLWAYSFORINTERNAL
SLAVE
ICW4>SPICP1
NO SFNM ,NOAEOI,FACTORYTEST
CO DESSET
OUTDX,AL
M OVDX,SPICP1
OC W1>SPICP1
M OVAL,07FH
UNM ASK INT7(IR7OFSLAVE)
OUTDX,AL
INITIALIZEM ASTERMO DULE
M OVDX,M PICP0
ICW1>M PICP0
XORAH,AH
M OVAL,11H
EDGETRIG,C ASCADE,IC4REQ RD
OUTDX,AL
M OVDX,M PICP1
ICW2>M PICP1
M OVAL,M ASTER_BASE_TYPEBASETYPEFORM ASTER
OUTDX,AL
BASEADDRESSAT0180H
M OVDX,M PICP1
ICW3>M PICP1
M OVAL,80H
SLAVEM ODULEISALWAYSONIR7
OUTDX,AL
M OVDX,M PICP1
ICW4>M PICP1
M OVAL,1
NO SFNM ,NOAEOI,FACTORYTEST
CO DES
OUTDX,AL
M OVDX,M PICP1
OC W1>MPIC P1
M OVAL,0H
UNM ASK ALLM ASTERIRLINES
OUTDX,AL
RET
INIT_ICU
ENDP
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SETINTERRUPTVECTORTABLE
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SETVECT
PRO C
PUSHAX
SAVEREG ISTERSUSED
PUSHDS
PUSHDI
XORAX,AX
CLEARACC UM ULATO R
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
M OVDS,AX
CLEARDATASEGM ENT
M OVDI,INT_TIM ER2_TYPE*4M OVEBASEADDRESSO F
TIM ER2VECTO RINTODI
M OVWORDPTRDS:[DI],OFFSETINT_TIMER2_ISR
M OVWORDPTRDS:[DI+2],SEG INT_TIMER2_ISR
POPDI
POPDS
POPDX
RET
ENDP
SETVECT
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SETTIM ER2RO UTINE
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SETTIM ER2
PRO CFAR
PUSHAX
SAVEREG ISTERSUSED
PUSHDX
M OVDX,T2C NT
CLEARCOUNTREGISTER
XORAX,AX
OUTDX,AL
M OVDX,T2C MPA
SETM AXIM UM C OUNTVALUE
M OVAX,40000
OUTDX,AL
M OVDX,T2C ON
SETUPTHEC ONTROLWOR D:
M OVAX,0E001H
ENABLEC OUNTING,
OUTDX,AL
GENERATEINTERRUPTONM C,
CO NTINUOUSCO UNTING
POPDX
POPAX
IRET
SETTIM ER2
ENDP
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INTERRUPTSERVICEROUTINE:INT_TIM ER2_ISR
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
INT_TIM ER2_ISR
PRO CFAR
PUSHAX
SAVEREG ISTERSUSED
PUSHDX
CM P_MSEC,99
HAS1SEC PASSED?
J AEBUM P_SECOND
IFABOVEOREQ UAL...
INCM ILISEG
J M PSHORTRESET_INT_CTL
BUM P_SEC OND:
M OV_M SEC,0
RESETM ILLISEC OND
CM PM IN,59
HAS1M INUTEPASSED?
J AEBUM P_MIN
INCSEGU
J M PSHORTRESET_INT_CTL
BUM P_M IN:
M OVSEGU,0
RESETSECOND
CM PM IN,59
HAS1HOURPASSED?
J AEBUM P_HOUR
INCM IN
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
J M PSHORTRESET_INT_CTL
BUM P_HOUR:
M OVM IN,0
INCHOR
J M PR ESET_INT_C TL
RESETM INUTE
M OVDX,SPICP0
CLEARINSERVICEBITOFSLAVE
BYISSUINGEOISPECIFIC FOR
TIM ER2
RESET_INT_CTL:
M OVAL,64H
OUTDX,AL
M OVDX,SPICP0
M OVAL,0BH
OUTDX,AL
M OVDX,SPICP0
INAL,DX
CM PAL,0
J NEEND_RDS
M OVDX,M PICP0
END_RDS
INT_TIM ER2_ISR
EC_CODE
SETISRFORREAD
:READISR
CLEARINSERVICEBITOFM ASTER
BYISSUINGEOI
M OVAL,20H
OUTDX,AL
POPDX
POPAX
IRET
ENDP
ENDS
ENDM AIN
Sedeseagenerarlasiguienteformadeonda:
30miliseg. 20miliseg
SeasumeCLKOUT=16MHz,porlotantolafrecuenciadeservicioaloscontadoresser
de4MHz.
En30milisegelcontadoralcanzarelvalorde30/250x106 =120.000d=1D4C0yporlo
tantoseexcedelacapacidaddelcontador.
LasolucinesusaraTIMER2comopreescala.
SisefijacomovalormximodeTIMER2elvalor9C40h=40.000dyselousacomopre
escala de TIMER1 resultar que TIMER1 alcanzar el valor 3 luego de 120.000
serviciosdecontadores.
Para que transcurran 20 miliseg, deben registrarse 80.000d pulsos. Como TIMER2
generaunocada40.000,TIMER1alcanzarelvalorde2enesetiempo.
Tomandocomobaseelesquemadelejemploanteriordeberncambiarselossiguientes
tems.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
12.PREGUNTAS,PROBLEMASYALGUNASSOLUCIONES
1) Cualeslaposicindememoriamasaltaenlaquepuedecomenzarunbloquesiseloquiere
seleccionarconlaChipSelectUnitdel80186.
Resp: FFC00puestodobloquedebecomenzar enunadir eccincuyosltimos10d
gitosseancer os.
2) Enel80186cualeselmximonumeroposibledeinterrupcionesexternasquepuedenmanejar
seA)enformastandard,usandosoloel80186B)entotal,usandodispositivosadicionales.
Resp: A)8B)78259Aconectadosalas7inter r upcionesexter nasdela0ala6dan
56maslaIR7son57entotal
3) Describalascaractersticasdecadaunadelastresformasposiblesdemanejarlasprioridades
enlasinterrupcionesdel80186.
Resp: Full nested pr ior ity una r utina de ser vicio solo puede ser inter r umpida por
otr ademayor pr ior idad
Specialfullnestedpr ior ityidemper odemayor oigualpr ior idad
SpecialMaskmodeelusuar iomanejaelesquemaquedesea.
4) Escribalasinstruccionesquepermitaninicializarelchipselectnmero4deformatalquema
peesobrelasdireccionesdesde2400hy2C00hdelespaciodedireccionesdememoria.Sepre
tendeintercalar5WAITSTATEScadavesqueserealicenoperacionesdeI/Osobreestedispo
sitivo.
Resp: Losr egistr osdebenquedar conlasiguienteconfigur acin
Star tr egister :0245
Stopr egister :02CE
Pr ogr ama:
STAR4
EQU FF00+90
STOP4
EQU FF00+92
MOVE DX,STAR4
MOVE AX,0245h
OUT DX,AX
MOVE DX,STOP4
MOVE AX,02CEh
OUT DX,AX
5) Comoseenteralaunidaddecontroldeinterrupcionesquehaterminadolarutinadeservicio
queprocesaunainterrupcindeterminada.
Resp: Esr esponsabilidaddelpr ogr amador emitir losENDOFINTERRUPquesean
necesar iospar ablanquear losbitscor r espondientesenelINSERVICERegister .Siesta
involucr adounslavesonnecesar iosdosEOI.
6) Porqueraznesconvenientequemientrasseprocesalarutinadeserviciodeunainterrupcin
determinadadichainterrupcinpermanezcaINHIBIDA.
Resp: Pues sino alejecutar la pr imer a instr uccin de lar utinade ser vicio lamisma
ser anuevamenteinter r umpidapuesaunper manecer aenONelbitcor r espondienteyse
entr ar aenunloop.Por pr ogr amacinpuedeevitar seestepr oblemaysisetr abajacon
cuidadopuedenoinhibir se.
7) Cuantosbittimestienecomomnimotodociclodebus.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Resp:
Cuatr o.
8) Comoseestablecelarelacinentreunainterrupcinexternadeterminadayladireccindonde
seentregarelcontrolcuandodichainterrupcinseproduzca.
Resp: El8259Atieneasignadaunadir eccinbase.Cuandoelintacicler equier edatos
la8259Aentr egaunvalor equivalentealadir eccinbasemaselnumer odelainter r up
cin activada. El micr o multiplica por 4 este valor y obtiene el desplazamientocor r es
pondiente dentr o de la IVT del SEGMENTO y dos mas ar r iba esta el OFFSET. SEG
MENTO:OFFSETconstituyenladir eccindelar utinadeser vicioquesellamar .
9) Supngaseun80186trabajandoa25MHz.Comodebenconfigurarse(mostrarelvalorbinario
decadaunodesusbits)losregistrosdelaunidaddecontroldetiemposparalograrenlasalida
T1OUTunaondacomolasiguiente:
50mseg
Resp:
Fr ecuenciadeser viciodeloscontador es=25.000.000/4=6.250.000Hz
Valor delbittime=1/6,25010**6=0,1610**6seg.=16010**6mseg
En50msegsegener ar an(50/160)*10**6actualizaciones,esdecir 312500actuali
zaciones
Como312500cor r espondea4B4C4enhexadecimal,noalcanzaconunsolocontador .
Sedebenencadenar T1conT2.
En10msegsegener ar an(10/160)*10**6actualizaciones,esdecir 62500,esdecir
F424h
Por lotantosefijar valor mximodeT2enF424yvalor mximodeT1en5.
InicializacindeT2.
T2CNT=0
T2CMPA=F424
T2CON=1100000000000001
Habilita
MODOCONTINUO
Per mitehabilitar
InicializacindeT1
T1CNT=0
T1CMPA=0005
T1CON=1100000000001000
Habilita
MODOUNICO
Per mitehabilitar
PREESCALA
10) SedisponedeunamemoriaestticaRAMconlassiguientescaractersticas:
a)Tiempomnimorequeridoparapresentarlosdatosdesalidaluegodequetodaslasseales
requeridasseencuentranpresentes(direccin,chipselect,read) 80nseg
b)Tiempomximoqueeldispositivosigueentregandodatosluegodedesactivadalasealde
OUTPUTENABLE 30nseg
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
c) Todas las seales requeridas previas al WRITE (direccin, datos, chip select) deben estar
presentesalmenos 80nsegantesdelmomentodeordenarlagrabacin(write)
d)Losdatosyladireccinpresentadasdebenpermanecervalidasalmenos5nsegluegodela
ordendegrabar.
e)LasealdeWriteactivodebepermaneceralmenos70nseg
Se la pretende conectar a un micro 80186 trabajando a 25 Mhz y cuya caractersticas de
tiemposemuestranenlatablasiguiente:
Smbolo
Tclov
Tclis
Twhlh
Tplll
Twhdx
Tafrl
Trlrh
Twlwh
Trhax
Tadic.latch
Descr ipcin
Clocklowoutputvalid
Clocklowinputsetup
WRrisingtonextALErising
ChipselectvalidafterALEfalls
OutputdataholdafterWRrising
AddressfloattoRDfalling
RDactivepulsewidth
WRactivepulsewidth
RDrisingtonexaddressactive
Outputenableafterlatch
Min
Max
3
17
10
T10
T 10
T15
0
2T6
2T5
T 15
10
20
Unidad
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
DeterminarcuantosWaitStatessonnecesariosinsertarencadaoperacindeentradasaliday
siesnecesarioonointercalaruntransceiverentrelasalidadelamemoriayelbusdedatosdel
micro.Justifique.
Resp:
T=1/25Mhz=40nseg
a) dir eccin
80<=3TTclovTclisTadllatc<=120171020=73
r equier eunWS
chipselect
80<=3TTclovTclis<=1201710<=93
sinpr oblema
outputenable80<=2TTclovTclis<=8017 10<=53
r equier eunWS
b) 30nseg<=Tr hax=4015=25nseg
r equier etr ansceiver
c) dir eccin
80ms<=3TTadllatch=12020=100 sinpr oblema
datos
80ms<=2T=80nseg
r equier eunWS
chipselect 80ms<=3T=120nseg
sin pr oblema
d) dir eccin
5nseg<=Twhlh=T10=10
sinpr oblema
datos
5nseg<=Twhdx=T15=25
sinpr oblema
e) sealwr ite 70nseg<=2T5=75nseg
sinpr oblema
Ser equier einser tar unWSyusar tr ansceiver .
11) Sehadiseadounaaplicacinindustrialconun80186querequiere12nivelesdeinterrupcio
nesdiferentesusandolasinterrupcionesIR1,IR2,IR3,eIR4estndaresenelmicroyconec
tandoun8259AenIR0paraqueprovealas8restantes.Lasinterrupcionesqueingresenporel
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
8259AmencionadosedenominarandesdeIR5hastaIR12yseconectarandesdeelIR0hastael
IR7del8259A.
a) Sienlainicializacinnosehaalteradoelregistrodeasignacindeprioridadescualseren
definitivadichoesquemaentrelas12interrupciones.
b) Prevalgninconvenienteenelesquemaplanteado??
Resp:
a)Demayor amenor
IR5IR6IR7IR8IR9IR10IR11IR12IR1IR2IR3IR4
b)alconectar el8259AalaIR0segener ar unconflictopuescuandosepr oceseunainte
r r upcinquenocor r espondaaningn8259Aslaveenelcasapar ecer n000yalser elid
delslavedelIR0iguala000sedar por identificado.
12) SedisponedeundispositivodeE/Squeparasercontroladodisponede4registresde16bits
cadaunoquecumplenlassiguientesfunciones
R0=RCE=Registrodecontroldelaentrada
R1=RDE=RegdedatosdelaEntrada
R2=RCS=RegdecontroldelaSalida
R3=RDS=RegdedatosdelaSalida
MapearlosobreelEspaciodedireccionesdeE/Scomenzandoenlaposicin1000h,usandoel
chipselect3.MostrarelcontenidodelosregistrosdecontroldelCS3ylasochoinstrucciones
queseusarancuandoserequieraleerygrabarsobreloscuatroregistrosdelperifrico.
13) CuandoseagreganTWAITsenunciclodebus,entrecualesdelosbittimes(T1,T2,T3,T4)
selosinserta.
14) Quecosashaceelmicroentreelmomentoquedecideatenderunainterrupcindeterminadayel
momentoenquelepaseelcontrolalaprimerainstruccindelarutinadeserviciocorrespon
diente.
15) SilacodificacindeunainstruccinnoespecificasegmentoalgunoComosedeterminacual
hadeusarse?
16) Cualessontodaslasformasenqueunainstruccinpuedeespecificarladireccindeunoperan
doqueresideenmemoria
17) MedianteuncircuitocombinacionesquerelacioneT1OUTyT0OUTsequiereobtenerlasi
guienteonda:
30mseg201040serepitecclicamente
A) mostrarelcircuitocombinacionalrequerido
B) mostrarlosvaloresconqueseinicializaranlosregistrosdecontroldelaunidadtempo
rizadora
C) describircomoseriaelprocesodeinicializacin.
18) Especificarelmximovalorpermitidoparacadaunodelosparmetrosespecificadosaconti
nuacinparaunamemoriaqueserconectadaalmicroespecificadosinTRANSCEIVERycon
tresWAITSTATEsintercaladosentodaoperacindeE/S.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Caractersticasdelmicro:
Reloj=100Mhz
Smbolo
Tclov
Tclis
Twhlh
Tplll
Twhdx
Tafrl
Trlrh
Twlwh
Trhax
Tadic.latch
Descr ipcin
Clocklowoutputvalid
Clocklowinputsetup
WRrisingtonextALErising
ChipselectvalidafterALEfalls
OutputdataholdafterWRrising
AddressfloattoRDfalling
RDactivepulsewidth
WRactivepulsewidth
RDrisingtonexaddressactive
Outputenableafterlatch
Min
3
10
T2
T 2
T3
0
2T2
2T2
T 3
4
Max
5
Unidad
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
Parmetrosdelamemoria
a) Tiempomnimoentrepresentacindeladireccinydisponibilidaddelosdatos
b) Tiempomnimoentrepresentacindelchipselectydisponibilidaddelosdatos
c) Tiempomnimoentrepresentacindelreadydisponibilidaddelosdatos
d) Tiempo mnimo de presencia dela direccinprevioala ordendegrabar ( activacin de
WR)
e) Tiempomnimodepresenciadelosdatosprevioalaordendegrabar(activacindeWR)
f) Tiempomnimodepresenciadelachipselectprevioalaordendegrabar(activacinde
WR)
g) Tiempo mnimo de permanenciadelosdatos luegode laorden de grabar(activacin de
WR)
h) Tiempo mnimo de permanenciadelosdatos luegode laorden de grabar(activacin de
WR)
i) TiempomnimodepermanenciaenlaactivacindelWR.
19) Esposiblemapeardosdispositivosdistintosenlamismadireccin,unoenelespaciodeE/Sy
otroenelespaciodedireccionesdememoria.???Comosesabesiseaccederaunouaotro
enunaoperacindeterminada??
20) UsandolosbloquesdeusogeneralquenecesitediseeundispositivoquegenerelasealCHIP
SELECTrequeridaparamapearundispositivode32X2X8Bitscomenzandoenladireccin
1000hdelespaciodeE/S.Indiqueclaramentecualeshandeserlassealesqueingresaranal
dispositivo
21) Usandolostimersdeunhipottico80186quetrabajaa100MHzyloscircuitoscombinaciona
lesqueserequieranindicar:
Programacindelosregistrosdeloscontadoresutilizados.
Diagramaenblockdeloscircuitoscombinacionalessifueronrequeridos
Descripcin de como se implementaran los procesos de inicializacin de los registros de
controldeloscontadores
Paralograrelsiguienteresultado:
ApartirdelmomentoqueseproduzcalainterrupcinIR3sequieregenerarlasiguienteonda
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
159.998,5ms1,5159.998,5ms1,5serepite
ms
ms
cclicamente
Resp:
Fr ecuenciadeser viciodeloscontador es=100MHz/4=25MHz
Bittime=1/2510**6=4010**6ms
Par aconseguir los160.000msser equier en410**9pulsos
Podr atr abajar secon62.500*64.000.SiseasignaaT2countmax=62.500sepuedeob
tener unpulsocada62.500*4010**6=2,5milisegundos
Estoimposibilitaobtener elanchode1,5ms.
Por otr oladosiseasignaaT2unanchode1,5par alogr ar los160000ser equier en106.666lo
cualexcedelacapacidaddelcontador .
Unasolucinfactibleescombinar loscontador es.
Sepr oponelasiguientesolucin:
ConT0segener ar unaondacclicadeper iodo160000,convalor highdur ante159997,5
yvalor lowdur ante2,5
ConT1segener ar unaondasimilar aT0per odesfasadaeneltiempo1ms.
T0
159.997,5ms2,5159.997,5ms2,5ser epite
T1
HIGH
HIGH
LOW
LOW
SALIDA
HIGH
HIGH
LOW
HIGH
DURACION
159.996,5
1
1,5
1
22)Especificarelmximovalorpermitidoparacadaunodelosparmetrosespecificados
a continuacin para una memoria que ser conectada al micro especificado con
TRANSCEIVERyconquinceWAITSTATEsintercaladosentodaoperacindeE/S.
Caractersticasdelmicro:
Reloj=300Mhz
Smbolo
Tclov
Tclis
Twhlh
Tplll
Twhdx
Tafrl
Trlrh
Twlwh
Trhax
Tadic.latch
Descr ipcin
Clocklowoutputvalid
Clocklowinputsetup
WRrisingtonextALErising
ChipselectvalidafterALEfalls
OutputdataholdafterWRrising
AddressfloattoRDfalling
RDactivepulsewidth
WRactivepulsewidth
RDrisingtonexaddressactive
Outputenableafterlatch
Min
0,3
10
T0,2
T0,2
T0,3
0
2T0,2
2T0,2
T0,3
0,4
Max
0,5
0,6
Unidad
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
Parmetrosdelamemoria
a) Tiempomnimoentrepresentacindeladireccinydisponibilidaddelosdatos
b) Tiempomnimoentrepresentacindelchipselectydisponibilidaddelosdatos
c) Tiempomnimoentrepresentacindelreadydisponibilidaddelosdatos
d) Tiempomximodepermanenciadeentregadedatosluegodedesactivadalasealderead
e) Tiempo mnimo de presencia dela direccinprevioala ordendegrabar ( activacin de
WR)
f) Tiempomnimodepresenciadelosdatosprevioalaordendegrabar(activacindeWR)
g) Tiempomnimodepresenciadelachipselectprevioalaordendegrabar(activacinde
WR)
h) Tiempo mnimo de permanenciadelosdatos luegode laorden de grabar(activacin de
WR)
i) Tiempo mnimo de permanenciadelosdatos luegode laorden de grabar(activacin de
WR)
j) TiempomnimodepermanenciaenlaactivacindelWR.
23)SS=1234HSP=0100HAX=F2A1HBX=27A1H.DetermineelvalordeSS,SP,
AX y BX y el contenido de lapila,luego de realizar en orden las siguientesdosins
trucciones:
PUSHAX
POPBX
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
24)BX=A215H,DS=0200hyenladireccinfsica0201Hseencuentraalmacenadala
variableLISTAconelvalor34H.MuestreelestadodeBXluegodeejecutarlainstruc
cinindicadaencadaunodelossiguientescasos:
a) MOVBX,OFFSETLISTA
b) LEABX,LISTA
c) MOVBL,LISTA
25) ExpliquebrevementeelsignificadoparaUd.delafrase:El80186usatcnicadesegmentos
paradireccionarlamemoriaprincipal.Asucriterioqueventajasaportaelusodedichatcnica.
26) Porquseutilizanlosbitsdeguardaenaritmticadepuntoflotante?
27) Resuelvaenbinarioutilizandocomplementoalabasemenos1:(36)7 (312)4 +(2B)16=.
Determineyjustifiquelamnimacantidaddebitsdelarepresentacinparaquenoocurraover
flow.
28) Durante la ejecucin de un programa se llama al procedimiento PROC1. Sabiendo que
TCLOUT=20Mhz,yTsal=T0OUT+T1OUT,grafiqueT0OUT,T1OUTyTsal,mostrando
losvaloresdelejedeltiempoenc/udelastransicionesdelassealesyjustifique.
Nota:Enelprogramayaestndefinidascomoconstanteslaspalabrasclavequeidentificana
losregistrosdelaPCB,comoporej.TOCNT,T1CON,etc.
PROC1
PROC
PUSH
PUSH
XOR
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
FAR
AX
DX
AX,AX
DX,T0CNT
DX,AX
DX,T0COMPA
AX,1F40H
DX,AX
DX,T0COMPB
AX,0002H
DX,AX
DX,T0CON
AX,C00BH
DX,AX
DX,T1CNT
AX,0001H
DX,AX
DX,T1CMPA
AX,1F40H
PROC1
OUT
MOV
MOV
OUT
MOV
MOV
OUT
XOR
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
POP
POP
IRET
ENDP
DX,AX
DX,T1COMPB
AX,0002H
DX,AX
DX,TICON
AX,1F40H
DX,AX
AX,AX
DX,T2CNT
DX,AX
DX,T2COMPA
AX,007DH
DX,AX
DX,T2CON
AX,C001H
DX,AX
DX
AX
Descr ipcin
Clocklowoutputvalid
Clocklowinputsetup
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Min
3
10
Max
17
Unidad
ns
ns
Pgina 99de 136
Twhlh
Tplll
Twhdx
Tafrl
Trlrh
Twlwh
Trhax
Tadic.latch
WRrisingtonextALErising
ChipselectvalidafterALEfalls
Outputdataholdafter WRrising
AddressfloattoRDfalling
RDactivepulsewidth
WRactivepulsewidth
RDrisingtonextaddressactive
Outputenableafterlatch
T4
T10
T8
0
2T6
2T5
T10
10
20
ns
ns
ns
ns
ns
ns
ns
ns
Parmetrosdelamemoria:
a) Tiempomximoentrepresentacindeladireccinydisponibilidaddelosdatos.
b)Tiempomximoentrepresentacindelchipselectydisponibilidaddelosdatos.
c) Tiempomximoentrepresentacindelreadydisponibilidaddelosdatos.
d)Tiempomximodepermanenciadeentregadedatosluegodedesactivadalasealderead.
e) Tiempo mnimo de presencia de la direccin previo a la orden de grabar (activacin de
WR).
f) Tiempomnimodepresenciadelosdatosprevioalaordendegrabar(activacindeWR).
g) Tiempomnimode presencia dela chipselectprevioalaordendegrabar(activacinde
WR).
h)Tiempo mnimo de permanencia delosdatos luego de laorden de grabar(activacin de
WR).
i) Tiempomnimodepermanenciadeladireccinluegodelaordendegrabar(activacinde
WR).
j) TiempomnimodepermanenciaenlaactivacindelWR.
30)Sedeseaampliarlacapacidadstandartdemanejodeinterrupcionesdeun80186,in
cluyendo10interrupcionesms.
a) Indique como modificara la estructura de la Unidad de Control de Interrupciones para
lograrlo.Grafiqueindicandotodaslasconexionesnecesarias.
b) Se desea mapear los nuevos perifricos sobre el espacio de E/S a partir de la direccin
200H, adems los primeros ocho necesitan parasu funcionamiento a lo sumo 3 Twaits
mientras quelosrestantes requieren5. Conesta informacinexpliqueen formaconcreta
cmocumpliraconestosrequerimientos.
c) Expliquecmosernlasprioridades,segnlaconexinelegida,siseconservaelesquema
pordefectoentodoslosdispositivos, seanstosanterioresoposterioresalamodificacin.
31)Sedeseaampliarlacapacidadstandartdemanejodeinterrupcionesdeun80186,pa
ramanejar8perifricosadicionales.
a) Indique como modificara la estructura de la Unidad de Control de Interrupciones para
lograrlo.Grafiqueindicandotodaslasconexionesnecesarias.
b) Expliquequeesquemadeprioridadessepodrautilizarsientrelasnuevas8nosequiere
prioritizarninguna.
c) Quprecaucionesdebetenerencuentaelprogramadoralfinalizarlarutinadeserviciode
algunodelosnuevosperifricos?
32)Escribir un programa que coloque en la pila 4 nmeros (NUM1=12536, NUM2=1,
NUM3=4567,NUM4=16)yllamealasubrutinaCALCULAR.Dichasubrutinatomade
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina100de 136
lapilaloscuatrodatosylesaplicalasfuncionesF1yF2.Losdosresultadosobteni
dossoncolocadosenlapila.Elprogramallamadordebeentoncescompararlosresul
tadosdevueltosporlasubrutinayactuardelasiguientemanera:
Siresult1<=Result2terminarelprograma
Encasocontrarioaumentaren1elvalordeNUM4,reduciren4elvalordeNUM1,yvolvera
llamaralasubrutina.
F1=Dato1*Dato2+Dato3*Dato4
F2=Dato2+Dato4+Dato2+Dato4
33)Usandolostimersdeunhipottico80186quetrabajaa100MHzyloscircuitoscom
binacionalesqueserequieranindicar:
Programacindelosregistrosdeloscontadoresutilizados.
Diagramaenblockdeloscircuitoscombinacionalessifueronrequeridos
Descripcin de como se implementaran los procesos de inicializacin de los registros de
controldeloscontadores
Paralograrelsiguienteresultado:
ApartirdelmomentoqueseproduzcalainterrupcinIR3sequieregenerarlasiguienteonda
129.999ms1129.999ms1
serepite
ms
ms
cclicamente
Resp:
Fr ecuenciadeser viciodeloscontador es=100MHz/4=25MHz
Bittime=1/2510**6=4010**6ms
Par aconseguir unpulsocada1msenT2sedebeinicializar TMAX=25.000
Luego, par a obtener los 129.999solicitados par a la onda mayor deber an inicializar se
TMAXA= 129.999y TMAXB = 1 Esto no es posible pues el
valor mximopar aTMAXinopuedesuper ar 65536.
Lasolucinselogr asuper poniendoondasdeT0yT1.
Unasolucinser ia:
T0
65.000ms65.000msser epite
T1
165.000ms
65.000ms
ser epite
cclicamente
65.000+64.999=129.9991
Lasalidafinalasumirlossiguientesvalores:
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina101de 136
T0
T1
HIGH HIG
H
LOW HIG
H
LOW LOW
HIGH LOW
SALIDA DURACION
HIGH
64.999
HIGH
HIGH
LOW
64.999
1
DIRECCIONES(4)
32registrosde
8bitscadaunoloscua
les se direccionan con
16direccionesposibles
B)
DATOS(16)
DIRECCIONES(8)
512registrosde
8bitscadaunoloscua
les se direccionan con
256 direcciones posi
bles
C)
DATOS(16)
DIRECCIONES(1)
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
2registrosde
16 bits cada uno los
cuales se direccionan
con2direccionesposi
bles
Pgina102de 136
Todoslosdispositivosmanejanlasentradassalidascomodosbancosde8bitscadauno.Sepreten
demapearlosutilizandolaChipSelectUnitdel80186.
MostrarcomodeberaninicializarselosregistrosdelaCSU,dibujarunesquemadecomoquedara
mapeadoelespaciodeE/Symostraresquemticamenteelconexionadoentreelbusdel80186y
cadaunodelosdispositivos.
Mostrar todas lasinstruccionesquepermitangrabarlos16bitsdecadaunodelosdosregistrosdel
dispositivoc.
Resp:
Dadoquesesolicitausar laCSUelmnimoespaciomapeablepar acadadispositivoesde
64 DIRECIONES pues al inicializar los r egistr os de contr ol de la CSU no pueden
especificar selos6ltimosdgitosdeladir eccinloscualessonasumidoscomocer os.
Por lotanto:
eldispositivoAocupar adesde00C0hasta00FF CS=1
eldispositivoBocupar adesde0100hasta02FF CS=2
eldispositivoCocupar adesde0300hasta033F CS=3
Elespaciodedir eccionesquedar mapeadoas:
0340h=832d
0300h=768d
033F=831d
02FF=767d
Tamao=831768+1=64
Tamao=767256+1=512
0100h=256d
00C0h=192d
0000h=000d
00FF=255d
Tamao=255192+1=64
CS1
CS2
CS3
Registr oSTART
0000000011XX0000
0000000100XX0000
0000030000XX0000
Registr oSTOP
0000000100XX1100
0000001100XX1100
0000001101XX1100
IndicaespacioI/O
IndicaNoReady
IndicaCer oWaitStates
Pgina103de 136
Pgina104de 136
0040hy005EgrabarelR0ytodadireccionentre0060hy007Ehgrabaren
elregistroR1.
Queda para el lector analizar que pasa si la direccion en la que se intenta
grabares005Fh.
36)
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina105de 136
TRANSFERENCIASDEINFORMACIONENTREEL
MICROYELMEDIOAMBIENTE
Existendosmetodolgicasbsicasparalatransmisindelosdatos:Transmisinserieytransmi
sinparalelo.
Enelesquemaserialundispositivoenvaaotrounbitporvezutilizandounnicocableomediode
comunicacin.
Enelesquemaparaleloundispositivoenvaaotrovariosbitssimultneamenteutilizandoparaello
varioscables.Porejemploesmuycomnenviar8bitssimultneamenteutilizandounconectorde8
cables.
Porsupuestounesquemadetransmisinenparalelobrindamayorvelocidadqueelesquemaserial
aunqueesdeesperarunmayorcostodadolamayorcantidaddecablesquerequiere.Enlapractica
nilacomunicacinenparaleloes8vecesmsrpidaquelaserialnielcableserresulta8veces
mseconmicoqueelparalelo.Engenerallosfabricantesdecablesserieusanmejoresmaterialesy
distintostiposdeaislacinaumentandosucostorelativoperopermitiendovelocidadesmsaltas.
Ademslamejorcalidadpermitetambinmayoresdistancias.Loscablesparaconexionesparalelo
sonmseconmicosygeneralmentediseadosparadistanciascortas(<de6metros).Losproble
masderuidoeinterferenciasafectanenformaimportantelatransmisinparalelolimitandolavelo
cidaddetransferencia.
Sibienexisteninterfacesparalelaquetransmiten16,24,32omsbitssimultneamente(SCSI)las
mascomnmenteutilizadastransmiten8bits(unbyte)porvez.
1.INTERFACESPARALELA
Puedenserunidireccionalesobidireccionales.
Enlaunidireccionalexistendossitios:eltransmisoryelreceptor.
Eltransmisorcolocadatosenlalneaeinformaalreceptordeestehechoelreceptortomalosdatos
desdelalneaeinformaaltransmisorqueloshatomado.Deestaformasesincronizanambosdis
positivos,elreceptornoleelosdatoshastaqueeltransmisorleavisequeestndisponiblesyel
transmisornocolocanuevosdatoshastaqueelreceptorhayatomadoslosprevios.Elterminoque
describecomoambossitioscoordinansufuncionamientoes:HANDSHAKING.
LalneaqueeltransmisorusaparaindicarladisponibilidaddelosdatossedenominaSTROBE.
LalneaqueelreceptorusaparacomunicarqueyahatomadolosdatossedenominaACKNOW
LEDGE.
Enalgunosesquemasexisteunaterceralneaquecontrolaelreceptorysirveparaindicarsiesta
disponiblepararecibirdatos.SedenominaBUSYysiestaactivadaeltransmisordebeinhibirsede
enviardatos.
Losdiagramasquesiguenmuestranelcomportamientodescripto
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina106de 136
TRANSMISOR
RECEPTOR
START
START
BUSY
Line
Activo
BUSYline=Inactivo
N
ColocarDatos
Enlalnea
STROBE
Activo
STROBE=Activo
ACK
Activo
TomaDatosde
lalnea
ACK=Activo
S
STROBE=Inactivo
STROBE
Inactivo
S
ACK
Inactivo
N
ACK=Inactivo
S
S
Continuala
Transmisin
N
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Seespera
otrodato
N
Pgina107de 136
SiseusalalneaBUSYlasconexionesrequeridasson:
DATOS(8BITS)
TRANSMISOR
STROBE
ACKNOWLEDGE
BUSY
RECEPTOR
PORT2
Bidireccional
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina108de 136
PORT3
4pinsexclusivosdesalida
2bidireccionalesopendrain
CadaporttieneasociadoenlaPCBunconjuntode4registros:
PortControlRegister PxCON
bits0a7
Si=1elpin,elportdirectionyelportdatalatchsoncontroladosporelperifrico
integradocorrespondiente.Si=0elpinfuncionarcomodeE/S
PortDirectionRegister
Bits0a7
PxDIR
SielpinesprogramadocomodeE/Syesbidireccionalindicaladireccin.
1esentrada0essalida.
PortDatalatchRegister
PxLTCH
Bits0a7
Sonlosbitsqueaparecernenlosbornesdelospinscorrespondientescuandoestos
seanprogramadoscomodeE/Sydesalida
PortPinStateRegister
Bits0a7
PxPIN
Representan,alserledoselestadolgicopresenteenelpinasociado.
Lanicarestriccinenlainicializacindelosregistrosasociadosalosportdeentrada/salidaesque
elDatalatchdebeserprogramadoantesdeseleccionaralpincorrespondientecomodesalidapara
evitarlapresenciadevaloresdesconocidosenelpin.
Cuandoel80186esreseteadolosportsasumenlasiguienteconfiguracin:
Port1 esconfiguradoparasercontroladoporelperifricointegradoasociado(ChipSelect)
Port2 esconfiguradoparasercontroladoporelperifricointegradoasociado
(CanalesSerie0y1)
Port3 bits 0 a 3 son configurados para ser controlados por el perifrico integrado
asociado(Interrups)
Bits4y5sonconfiguradoscomodeE/Sentrada
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina109de 136
1.2.NOTAESPECIAL
LadefinicinestndardelportparaleloenunequipoIBMPCCompatibleutilizaunconectorde25
pinsconlasiguientedistribucin:
Ademsdelassealesyadescriptaspreviamentecomoparticipantesenunatransmisinparaleloen
eldiagramaprevioaparecenotrascuyosignificadosemuestraenlamismafigura.
Entotalserequieren12pinsdesaliday5deentradaloscualespuedenserservidosporlosports1,
2y3del80186sininconvenientes.
Son de un uso muy generalizado las interfaces llamadas LAPLINK que permite el intercambio
bidireccionaldeinformacinentredosPCsusandoparaellointerfacesparalela.
Paralograrloelcableutilizaelsiguienteesquemadeconexionado:
Pin1
Pin2
Pin3
Pin4
Pin5
Pin6
Pin7
Pin8
Pin9
Pin10
Pin11
Pin12
Pin13
Pin14
Pin15
Pin16
Pin17
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pin1
Pin2
Pin3
Pin4
Pin5
Pin6
Pin7
Pin8
Pin9
Pin10
Pin11
Pin12
Pin13
Pin14
Pin15
Pin16
Pin17
Pgina110de 136
ElprotocolosuperponelafuncindeBUSYconlaACKNOWLEDGEytransmitesolo4bitspor
vez.Requierededostransmisionesparacompletarunbyte.
Silatransmisinesde1a2:
Pin2a5
Pin6
Pin11
SITIO1
envadatos
envaSTROBE
recibeACKNOWLEDGE
SITIO2
Pin10,12,13y15 recibendatos
Pin11
recibeSTROBE
Pin6
envaACK
Silatransmisinserealizade2a1:
SITIO1
Pin10,12,13y15 recibendatos
Pin11
recibeSTROBE
Pin6
envaACK
SITIO2
Pin2a5
Pin6
Pin11
envandatos
envaSTROBE
recibeACK
2.INTERFACESERIE
Puede ser sincrnica o asincrnica. El protocolo asincrnico permite que dos dispositivos se
comuniquen sin tener una conexin que provea un nico clock a ambos. Si, en cambio, debe
establecerseunavelocidaddetransferenciacomnaambosquesedenominaBAUDRATEBASE
yqueseexpresaenbitsporsegundos(baudios).
Los datos son transferidos en frames. Un frame es una secuencia de un numero fijo de bits
transmitidossobreunanicalnea.Unframeconsistedeunbitdeinicio(STARTBIT)siempreun
valor lgico de cero, seguidodeunconjuntodebitsdedatos(7,8u9)yunbitdeterminacin
(STOPBIT).
EldispositivoquetransmitelosdatossedenominaTXyelquelosrecibeRX.
EldispositivoRXeselresponsabledesincronizarelflujodedatosrecibidosyrecuperarlosdatos
correctamente. Debido a que no existe una seal de sincronismo es indispensable que tanto
transmisor como receptor trabajen a la misma velocidad base. El proceso clave es detectar la
presenciadel STARTBIT.Lacalidadconqueseimplementeesteprocesodeterminarel%de
desvoadmisibleentrelasvelocidadesbasedeambosdispositivosydarunaideadelainmunidad
anteruidosquetendrlatransmisin.
2.1.ESTUDIODEUNCASOPARTICULAR.
PararealizarladeteccindelSTARTBITelreceptorutilizaunclockdemuestreoaunafrecuencia
detrabajomuchomayorquelafrecuenciaqueutiliceeltransmisor.
Comoejemploseanalizarelcasoquedichoclockdemuestreotrabaje16vecesmsrpidoquela
BAUDRATEBASE.
ElclockdemuestreosedenominarRTyparacadabittimedelatransmisinexistirnentonces
16ciclosderelojdeRTqueseidentificaranconlosnmeros1a16.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina111de 136
Cuando el receptor arranca su actividad o luego de haber recibido un STOP BIT alfinal de un
frame, inicia la bsqueda asincrnica del flanco negativo del START BIT. El objetivo de esta
bsquedaesobtenerlasincronizacinentreeldatoserieyelclockRT.
UnavezquelasincronizacinhasidoestablecidaelclockRTmarcarelentornodeexistenciade
cadabittimedeldatoserie.
ParadetectarelSTARTBITesnecesarioencontrarunamuestradelasealdeentrada(RxD)igual
aceroyquehayasidoprecedidaporotrastresmuestrasconsecutivasigualesauno.
EstascuatromuestrassedenominancalificadorasdelSTARTBIT.
HastaquelamuestracalificadoradelSTARTBITseadetectadaelclockRTesreseteadoluegode
cada muestray porlotantoobligadoapermanecerenRT1.Detectadalamuestracalificadorase
libera el avance del clock RT y se tomaran nuevas muestras en RT3, RT5 y RT7. Si dos
cualesquiera o las tres resultaran iguales a uno, el cero en RT1 se asumir como ruido y se
reiniciarlabsquedadelSTARTBITencasocontrarioseconsideraraquelasincronizacinha
sidoestablecidayseinterpretaranlosdatosconsiderandounframecuyoSTARTBITcomenzen
RT1.
DurantecadabittimeincluyendoelSTARTBITyelSTOPBITenRT8,RT9,yRT10setomaran
muestras.Seconsideraqueel valor recibido es igual alvalormayoritarioentrelastresmuestras
tomadas es decir que el valor asumido por al menos dos de las muestras determinara el valor
asignadoaldatorecibidoduranteelbittimeencuestin.
Siunodelosvaloresnocoincideconlosotrosdoselbitdeerrorseractivado.
LasiguientefiguramuestraelcasoidealdereconocimientodelSTARTBIT.
STARTBITDETECTADO
STARTBITREAL
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DEL
CLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3
[1]
[2]
[3]
[4]
CASOIDEAL
Durante[1]todaslasmuestrasdetentanRxD=1ycorrespondenaunasituacindelneainactivao
disponible(IDLELINE)oaunSTOPBIT.
Durante [2] se detecta el cero precedido por tres unos y el contador de pulsos de RT arranca
considerandoRT1elbittimeduranteelcualserecibielceroquefinalizolasecuencia1110yde
ahenmasseguirnRT2,RT#,RT$,....RT16.
LasmuestrastomadasenRT3,RT5yRT7durante[3]igualesaceroconfirmanladeteccindel
STARTBIT.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina112de 136
ComoentodobittimetambinduranteelSTARTBITsetomanlasmuestrascorrespondientesa
RT8, RT9 y RT10 durante [4]. En cualquier otro bit time estas tres muestras son las que por
mayora determinan el valor del dato recibido pero durante el START BIT su valor es
forzadamenteinterpretadocomoceroindependientementedesuvalorreal.
EnestecasoelSTARTBITrealyelSTARTBITdetectadocoinciden.LaresolucindelclockRT
fija laincertidumbre del exacto lugar en queelfrentede onda negativo,que iniciorealmenteel
STARTBIT,ocurri.Laincertidumbrequedalimitadaa1/16delafrecuenciadetransmisin.
2.1.1.CASOC ONRUIDOEJ EMPLON1
UnruidocausaquesedetecteunceroerrneoantesqueelverdaderocomienzodelSTARTBITse
produzca.
STARTBITDETECTADO
STARTBITREAL
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DEL
CLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 2 3 4 5 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3
[1]
[2]
CASOCONRUIDONUMEROUNO
Un cero lgico en [1] en conjuncin con los otros tres unos anteriores conforman la muestra
calificadora y por lo tanto se dar por iniciado el START BIT. Las muestras en RT3 y RT5
devuelvenvaloresunoporloqueluegodeRT5elclockRTvuelvealestadoRT1.Deallenms
continua como el caso ideal con lo que el ruido que gener el cero en [1] no ha causado
inconvenientealguno.
2.1.2.CASOC ONRUIDOEJ EMPLON2
Lapeorsituacinparaeltipoderuidoanalizadopreviamentesedacuandoelruidoquegenerael
falsoceroseproducetancercadelverdaderoSTARTBITquelamuestraenRT5resultaiguala
ceropuesyacomenzelSTARTBITreal.
En este caso el sistema reconocer el inicio del START BIT en [1] y como RT3=1 pero
RT5=RT7=0(mayoradeceros)elreconocimientoesvalidadoaunquelasealdeerrorseaseteada.
El clock RT considerar START BIT hasta su estado RT16 y en el siguiente estado RT1
consideraraelcomienzodelprimerbitdedatos.Eldesplazamientoenestecasoesde5clocks[4]
perolasmuestrasRT8,RT9yRT10quesetomenacontinuacincorrespondernencadacasoal
bitcorrecto.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina113de 136
STARTBITDETECTADO
STARTBITREAL
LSBDETEC
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DEL
CLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 1 1 2 5 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7
[1]
[2]
[3]
[4]
CASOCONRUIDONUMERODOS
AlgunossistemasresincronizanelclockRTencualquiertransicinvalidadeunoaceroenlos
datos. Dicha transicin es detectada por una secuencia calificadora del START BIT (1110)
convalidadapormuestrasmayoritariamentecerosenlassiguientesRT3,RT5yRT7.
Siasfueraeldesplazamientoprovocadoenestecasoporlasealdeerroren[1]seriacompensado
conlaprimeratransicindeunoaceroenlosbitsdedatos.
2.1.3.CASODEERROR EJ EM PLON3
Estasituacinseproducecuandounarfagaderuidosalteramasdeunamuestra.Elcasoplanteado
consideraquelasmuestrasenRT1yRT3sonfalsoscerosen[1].
ComoRT3=0,RT5=1yRT7=0elSTARTBITerrneamentedetectadoesconvalidado,aunquela
sealdeerrorserseteada.
Eldesplazamientoproducidoesde7clocksperoigualmentelasmuestrastomadasenRT8,RT9y
RT10encadabitdedatoscorrespondernalosbitsrealmentetransmitidos.
STARTBITDETECTADO
STARTBITREAL
LSBDETEC
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DEL
CLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9
[1]
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
[2]
[3]
Pgina114de 136
CASOCONRUIDONUMEROTRES
Seales de error tan groseras no son comunes. Este ejemplo muestra lamuybuena tolerancia a
ruidosdelsistema.
2.1.4.CASODEERROR EJ EM PLON4
Unasealdeerrorquegenereindividualmenteunfalso1enRT3oRT5oRT7duranteelSTART
BITnoinvalidarlacorrectadeteccindelcomienzodelSTARTBITproducidaen[1].
STARTBITDETECTADO
STARTBITREAL
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DELCLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3
[1]
CASOCONRUIDONUMEROCUATRO
2.1.5.CASODEERROR EJ EM PLON5
SiporelcontrariolasealdeerrorfuesedeltiporfagayllevaraaquedosdelasmuestrasenRT#,
RT5oRT7fuesenunoselsistemainvalidaraladeteccininiciadadelSTARTBITyreiniciarasu
bsqueda.ComonoseproduciralasecuenciacalificadoraenestecasonosedetectaraelSTART
BIT.Esteeselnicocasoquepuedegenerarlaperdidadeuncarcterolarecepcininvalidadel
mismo.
STARTBITNODETECTADO
STARTBITREAL
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DEL
CLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 1 1 1 1 1 1 1 1 1 1 1 1
[1]
[2]
CASOCONRUIDONUMEROCINCO
2.1.6.CASODEERROR EJ EM PLON6
EsteultimocasomuestraunarfagadeerroresenlamitaddelSTARTBITdeformatalquegenera
valoreserrneosenmasdedosdelasmuestrastomadasenRT8,RT9yRT10[1].
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina115de 136
DebidoaqueelsistemafuerzalosvaloresdeRT8,RT9yRT10duranteelSTARTBITcomoceros
nosealterarelfuncionamientocorrectodelprocesodedeteccindelSTARTBITaunquesise
activaralasealdeerror.
STARTBITDETECTADO
STARTBITREAL
LSB
SEALRxD
MUESTRA
CLOCK
BITTIME
DEL
CLOCK
R R R R R R R R R R R R R R R R R R R R R R R R R R R R
T T T T T T T T T T T T T T T T T T T T T T T T T T T T
1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3
[1]
CASOCONRUIDONUMEROSEIS
UnavezdetectadoelSTARTBITelclockRTpasaraporlosestadosRT1aRT16paracadabitde
datos que corresponda y a continuacin espera recibir un STOP BIT. Las muestras tomadas en
RT8,RT9yRT10correspondientesalSTOPBITesperadodeberanserunos.Sinolofuesenel
sistemasetearunerrordeframe.
SiunerrordeframeesdetectadopuesmayoritariamentelasmuestrasenRT8,RT9yRT10noson
unos(perotampocoresultanlastresigualesacero)lasmuestrascorrespondientesaRT14,RT15,
RT16sonforzadasalvalorunoparaadelantardeestaformaladeteccindeunaposiblesecuencia
calificadoradelSTARTBIT.
2.2.DESVIACIONESADMISIBLESENLASVELOCIDADESDETRANSMICION.
En transmisiones libres de errores y considerando desactivado el dispositivo que genera re
sincronismo ante transiciones de uno a cero en los datos es posible calcular el mximo de
desviacinposibleentrelavelocidaddetransmisinrealylaasumidaporelreceptorsinquese
generenerroresenlainterpretacindelosdatosrecibidos.
2.2.1.VELOCIDADDETRANSM ISIO NM ENORALAASUMIDA
Comoeltransmisorestatransmitiendoaunavelocidadmenor,cuandoelclockRTconsidereque
susestadosRT1aRT16correspondenalSTOPBITenrealidadestarrecibiendodatospreviosal
STOP BIT verdadero. Las seales reales del STOP BIT pueden atrasarse sin generar
inconvenientessiempreycuandosatisfaganlasmuestrasRT8,RT9yRT10correspondientes.
Lafiguramuestraelpeorcaso:
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina116de 136
SEALREAL
START
D1 D2 D3 D4...... Dn
RTESPERAELBITDESTOP
1
16 1 16 1 16 1 16 1 16.... 1 16 12345678910121416ESTADOS
DELCLOCKRT
VELOCIDADDELTRANSMISORMENORQUELAASUMIDAPORELRECEPTOR
Comoeltransmisorestatransmitiendoaunavelocidadmayor,cuandoelclockRTconsidereque
susestadosRT1aRT16correspondenalSTOPBITenrealidadestarrecibiendodatosposteriores
al STOP BIT verdadero. Las seales reales del STOP BIT pueden adelantarse sin generar
inconvenientessiempreycuandosatisfaganlasmuestrasRT8,RT9yRT10correspondientes.
Lafiguramuestraelpeorcaso:
SEALREAL
START
D1 D2 D3 D4...... Dn
RTESPERAELBITDESTOP
1
16 1 16 1 16 1 16 1 16.... 1 16 12345678910121416ESTADOS
DELCLOCKRT
VELOCIDADDELTRANSMISORMAYORQUELAASUMIDAPORELRECEPTOR
SilasealrealseadelantamasdeloindicadonosepodraasegurarlavalidezdeRT8=RT9=
RT10= uno. Por lo tanto mientras RT emiti Krt pulsos,elclockdeltransmisorcomomximo
debehaberemitidoKtpulsoscon:
Krt=16pulsosdelSTARTBIT+16xNpulsosdelosNbitsdedatos+10pulsosdelSTOP
BITpreviosaRT10yporlotantolavelocidadasumidaporelreceptorenbitsporsegundosser:
(26+16xN)/16
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina117de 136
Kt=1pulsodeSTARTBIT+NpulsosdelosNbitsdedatos+1pulsodelSTOPBITyporlo
tantolavelocidadmslentapermitidaeneltransmisorenbitsporsegundosser N+2
Mnimavelocidaddeltransmisor como
(N+2)x100
%delaVelocidadNominal.........(26+16N)/16
Paraelcasode8bitsdedatosresulta103,85%
2.3.TRANSMICIONSERIALENEL80186
Estaunidadestacompuestapordoscanalesindependienteseidnticosllamadoscanal0ycanal1.
Cadacanalademstienecircuitosindependientesparalarecepcin(RX)comoparalatransmisin
(TX)delosdatos.
El80186utilizaparaelmuestreodelasealdeentradaunclockinterno(CT)cuyafrecuenciaes8
veceslaBaudRateBase.
Con referencia a la metodologa explicada anteriormente, con una relacin de 1 a 16, solo es
cuestindereemplazar,deacuerdoalasiguientetabla,losestadoscorrespondientes:
Estadoconrelacin1a16
Estadoconrelacin1a8
RT1
CT1
RT3
CT2
RT5
CT3
RT7
CT4
RT8
CT4
RT9
CT5
RT10
CT6
RXMachine.
LasealrecibidaesconectadaalpinRxD.Lasealesdesplazadadentrodeunregistrodetrabajoy
cuandolarecepcindeldatoescompletadaelcontenidodedichoregistroestransferidoalSERIAL
RECEIVERBUFFER(SxRBUF)yunainterrupcinesgenerada.
TXMachine.
Una transmisin se inicia grabando en el SERIAL TRANSMIT BUFFER (SxTBUF) el dato a
transmitir. El contenidodeeste registroes transferidoaunregistro detrabajo encuantoestese
encuentre vaco y desde all es desplazado hacia el pin TxD. Cuando se ha emitido la seal
correspondientealSTOPBITsegeneraunainterrupcinqueinformaquelatransmisinhasido
finalizada.
LastransmisionespuedenserbloqueadaspormediodelasealdeentradaCTS(ClearToSend).
Mientrasestasealpermanezcaactivaserinhibidatodatransmisin.
2.4.MODALIDADESDETRANSMICIONSERIE
2.4.1.M ODOS1,3Y4
Estostresmodossonmuysemejantesentres.
Elmodo1,transmite8bitsdedatos.Sisehaindicadocontroldeparidadlos8bitscorrespondena
7 bits de datos propiamente dicho y el octavo bit que complementa la paridad requerida (paro
impar).
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina118de 136
Elmodo3transmite9bitsdedatos.Elnovenopuedeusarsecomobitdeparidadolibreparael
usuario.
El modo 4 transmite 7 bits de datos. En este caso no existe la posibilidad de bit de paridad
autogenerado.
2.4.2.M ODO2
Esconocidoconelnombredereconocimientodedireccin.Seloutilizaconjuntamenteconel
modo3paralacomunicacininter procesadores.
Enelmodo2laRXnodarporcompletadaunarecepcinalmenosqueelnovenobitseaiguala
uno.Todarecepcinconsunovenobitenceroesignorada.Estosignificaquelosflagsnosern
seteados,noseiniciarlainterrupcinnitampocosetransferireldatoaSxRBUF.
EsdecirqueunarecepcinignoradapasartotalmentedesapercibidaparalaCPUdelreceptor.
Estamodalidadsecomplementaconelmodo3enunesquemacomoelsiguiente:
Supngase que se desea establecer la comunicacin entre una unidad MASTER y una unidad
SLAVEdeentrevariasqueseencuentranconectadassobreunnicomediodecomunicacin.
LaunidadMastertransmitirsiempreenmodo3ylosSLAVEsestarninicializadosoriginalmente
pararecibirenModo2.CadaSLAVEtieneuncdigode8bitsqueloidentifica(ID).
A) LaMASTERtransmiteelIDdelaSLAVEconlaquedeseacomunicarseconelnovenobiten
uno.
B) Todas las unidades SLAVEs reciben este dato pero solo aquellaque seidentifica conel ID
transmitidocambiasumodalidadderecepcinamodo3.
C) LaMASTERtransmitelatotalidaddesumensajeforzandoelnovenobitdecadaunodelos
caracterestransmitidoalvalor0.EstohacequesololaunidadSLAVEidentificadarecibalos
datosytodaslasotraslosignoren.
D) Cuandolatransmisinterminalaunidadreceptoravuelveasumodoinicialderecepcinquees
elmodo2yporlotantoignorartodoloquesetransmitaporlalneahastaqueunatransmisin
cumplacon:
Bitnovenoenuno.
BytetransmitidocoincidenteconsuID.
Evidentementeenestetipodeesquemasnoesposibleusarelnovenobitcomoelbitdeparidad.
2.4.3.M ODO0
Este modo es sincrnico. La TX Machine generar una seal de clock la cual tambin es
transmitidaalaRXMachinevaunsoportedecomunicacionesadicional.
LasealdeclockgeneradaseentregaenelpinTxDysiempreesundivisordelasealdeclock
queutilizalaCPUypuedeserinterna(CLKOUT)oexterna(ingresavaBCLKx).
LosdatosseentreganenelpinRxDysiempresonde8bits.
Dada la utilizacin de TxD para enviar el clock la transmisin en modo 0 siempre es HALF
DUPLEX, es decir que la unidad que este recibiendo/transmitiendo datos en modo 0 no puede
simultneamentetransmitir/recibirdatosporelmismocanal.
2.4.4.VARIACIONESDELOSM ODO S
Existenalgunasvariacionesalosmtodosdescriptosdeusopocofrecuenteperodisponiblesalfin
DOBLESTOPBIT
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina119de 136
Existenalgunasunidadesreceptorasquenotienenlacapacidaddereaccinsuficientecomopara
recibirdatosquesolosestnseparadosentresporunnicobit.Enestoscasossesueleutilizarun
esquemaenelcualeltransmisorgenerasiempreautomticamentedosbitsdeltipoSTOPBIT.
BRECKCHARACTER
SialreceptoraunnoleessuficientecondoscaracteresdeSTOP(casoalgunasviejasunidadesde
telex) es posible programar al transmisor para que separe los caracteres con BRECK
CHARACTER. Un BRECK CHARACTER es una larga sucesin de ceros sin intercalacin de
STARTBITsniSTOPBITs.
Estos caracteres especiales tambin fueron usados para implementar un viejo esquema de
MASTERSLAVE.
2.5.PROGRAMACIONDELAUNIDADSERIEDEL80186
Existenparacadacanalserie6registrosquecontrolansufuncionamiento
SerialReceiveBufferRegister
Bits0a7
Datorecibido
SerialTransmitBufferRegister
Bits0a7
SxRBUF
SxTBUF
Datoasertransmitido
BaudRateCounterRegister
BaudRateCompareRegister
BxCNT
BxCMP
EstosdosregistrostrabajanenconjuntoyentreambosdeterminanlaBaudRateBase(BRB).
ElBxCNTesuncontadorde16bitsqueesincrementadoenunocadaciclodelclockllamadoBaud
Timebase.
ElBaudTimebasepuedeserelpropioclockdelaCPUopuedeserunclockexternoquedebeser
ingresadovaelpinBCLK.
Elbitmssignificativodeesteregistro(BxCMP)indicacualhadeserlafuenteusadaparaelBaud
Timebase.
CuandoelvalordelBxCNTalcanzaelvaloralmacenadoenBxCMPsereseteaBxCNTysegenera
unpulso.
LarelacinentreBRByelvaloralmacenadoenBxCMPvienedadaporlaformula:
ENMODO0
ENMODO1A 4
FCPU
BxCMP
FCPU
1
BaudRate
BxCMP
1
BaudRate*8
SielBTBeselclockinternosiendoFCPU=0,5*CLCKIN
SielBTBesunclockexternolasformulassemodificandelasiguientemanera:
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina120de 136
ENMODO0
ENMODO1A4
BCLK
BCLK
BxCMP
BxCMP
BaudRate
BaudRate*8
BaudRateCounterRegister
Bits0a14
BxCNT
Valoractualdelcontador
BaudRateCompareRegister
BxCMP
Bits0a14 Valordecomparacin
Bit15 Seleccionalafuenteparaelclock0BCLK1CPUclock
2.5.1.EJ EM PLOSDEVALOR ESPAR ABXCM P
LatablasiguientemuestralosvalorescorrespondientesaBxCMPparalasdistintasvelocidadesde
transmisinmasfrecuentementeusadasconsiderandounaCPUquetrabajaa20MHzyusandoel
clockinternocomofuente.
BaudRate
19.200
9.600
4.800
2.400
1.200
SerialPortControl
Bits0a2
Modo0
(20.000.000/19.200)1=
=1.041d=0411h
=2.082d=0822h
=4.166d=1046h
=8.332d=208Ch
=16.666d=411Ah
SxCON
Mododeoperacin
Bit3
PEN
Bit4
Bit5
Bit6
EVN
REN
CEN
Bit7
Bit8
TB8
SBRK
Modo1a4
(20.000.000/19.200*8) 1=
=129d=0081h
=259d=0103h
=520d=0208h
=1.041=0411h
=2.082=0822h
000modo0
011modo3
001modo1
100modo4
010modo2
101/110/111nousados
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina121de 136
SerialStatus
Bit1
Bit2
Bit3
Bit4
Bit5
Bit6
Bit7
Bit8
Bit9
SxSTS
CTS
ClearToSend.RepresentaelcomplementodelvalorpresenteenelpinCTS.La
lecturadeestebitnomodificaelvalordeCTS.
OE
Errordesobreescritura.Seproducecuandoelregistrodedesplazamientode
laRXtienedisponibleunnuevodatoparasertransferidoaSxRBUFyelultimo
datocolocadoallaunnofueledo.
TXE
esigualaunosolosiSxTBUFyelregistrodedesplazamientodelaTXestn
vacos.EnestacondicinesposiblegrabardosdatosconsecutivosenSxTBUF
parasu transmisin. Elprimero ser inmediatamentetransferidoalregistrode
desplazamientoyelotropermanecerenSxTBUF.
FE
FramingError.Esseteadoa1cuandoRXdetectaunerrordeframeesdecirno
detectaunSTOPBITcorrectocuandolorequiere.
TI
Esseteadoa1cuandoTXcomienzalatransmisindeunSTOPBIT.
RI
esseteadocuandolaRXdetectalallegadadeunSTOPBITyhatransferidoel
datoaSxRBUF.
RB8/PE Contiene el noveno bit recibido en modos 2 o 3. PE es igual a uno cuando
ocurri un error de paridad. Solo tiene significado cuando la paridad esta
habilitadaenmodos1,2o3.
DBRK0 es seteadoaunocuandoserecibeunBREAKCHARACTERdealmenosM
bits.
DBRK1 esseteadoaunocuandoserecibeunBREAKCHARACTERdealmenos2M+
3bits
Meslacantidadtotaldebitsqueconstituyenelframe
LalecturadelregistroSxSTSreseteatodossusbitssalvoCTSyTXE.
Cada vez que los bits TI o RI son seteados por el micro (no por programa) se produce una
interrupcin.
El canal 0 soporta el manejo de las interrupciones directamente va la unidad integrada de
interrupcionesmientrasqueelcanal1generalassealesdesalidaRXI1YTXI1lascualespueden,
siasselodesea,conectarseapinsdeinterrupcinexternos.
2.5.2.PRO GRAM ANDO ELM O DO0
Lospasosaseguirparaprogramarestemododetransmisinson:
a) Determinar el canal serie a utilizar e inicializar los pin de E/S de acuerdo al uso que se
pretenda.
b) Programar BxCNT y BxCMP para determinarlavelocidad de latransferencia y la fuente de
clockautilizar.
c) Programarbit0,bit1ybit2con000paradefinirmodo0
d) SisedeseabloquearlastransmisionesconCTS,setearen1elbitCENenSxCON
Sisetratadeunatransmisin,grabareldatoatransmitirenSxTBUF.Estaaccindesencadenarla
transmisin sincrnica a la velocidad indicadacon unframe de 8 bitsde datos. Lainterrupcin
generadaporTI=1oelpropiochequeodeTI=1enelSxSTSindicaranelfinaldelaTransmisin.
Sisetratadeunarecepcin,elseteodelbitRENenSxCONiniciaraelmuestreodelosdatosde
ingreso.PreviamentedebeasegurarsequeelRIseacero.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina122de 136
a) Determinar el canal serie a utilizar e inicializar los pin de E/S de acuerdo al uso que se
pretenda.
b) Programar BxCNT y BxCMP para determinar lavelocidad de latransferencia y la fuente de
clockautilizar.
c) Programarbit0,bit1ybit2conelvalorcorrespondientealmodoelegido.
d) SivaausarseparidadprogramarPENyEVNenSxCON.
e) SiseusarClearToSendprogramarCEN.
f) SisedesearecibirdatosdebeprogramarseRENparahabilitarlaRXMachine.LaTXMachine
norequiereserhabilitadaexplcitamente.
Sise trata de una transmisin lagrabacin deldato enSxTBUFlainiciar.Lainterrupcinoel
chequeodeTI=1indicarlafinalizacindelatransmisin.
SisetratadeunarecepcinlahabilitacindeunadeRXconRI=0lainiciar.Lainterrupcinoel
chequeodeRI=1indicarlafinalizacin.
EnamboscasosdetectadalafinalizacinlalecturadeSxSTSpermitirconocerelresultadodela
transferenciayalavezblanquearlosbitsdestatus.
2.6.EJEMPLOSDEPROGRAMAS.
2.6.1.PRO GRAM AUSANDOELM ODO0
EjemplodetransmisinenModo0
$mod186
nameejemplo_mode_0
**************************************************************
FUNCION:Tr ansmiteundatodelusuar ioenfor maser ialysincr nicamentevaRxD1
TxD1suministr aelclock.Lafr ecuenciadelatr ansmisinsecalcula:
tr an_fr eq=(0.5*CLKIN/BAUDRATE) 1
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina123de 136
Pgina124de 136
popax
popbp
r et
endp
ends
end
2.7.EJEMPLODETRANSMICIONENMODO4
$mod186
2.8.PROGRAMAUSANDOELMODO4
name
EJ EMPLO_TRANSM_ASINC
EjemplodeiniciacindelaSer ialCommunicationsUnit.
CHANNEL_SETUPseteaelcanal0a9600baud,fullduplex,7bitsdedatos,par idadpar ,y
con
tr olvaCTS#.
B0CMPEQU0xxxx Channel0BaudRateCompar e
S0CONEQU0xxxx Channel0Contr ol
S0STSEQU0xxxx Channel0Status
S0RBUFEQU0xxxx Channel0ReceiveBuffer
S0TBUFEQU0xxxx Channel0Tr ansmitBuffer
code_seg
assume
segmentpublic
cs:code_seg
CHANNEL_SETUP
Seteodelcanal0
pr ocnear
movax,8067H
movdx,B0CMP
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
9600bauda8MHzCPUclock
Pgina125de 136
outdx,al
movax,0059H
movdx,S0CON
outdx,al
setea:baudr ate
CEN=1(CTSenabled)
REN=0(r eceiver notenabledyet)
EVN=1(evenpar ity)
PEN=1(par itytur nedON)
MODE=1(10bitfr ame)
gr abaelSer ialContr olReg.
Blanqueatodainter r upcinpendiente
movdx,S0STS
inax,dx
habilitalaRXmachine
movdx,S0CON
inax,dx
or ax,0020H
outdx,al
LeeS0CON
SeteaREN
Gr abaS0CON
A par tir de este momentocomienzala tomade muestr as sobr eRxD. Detectado un fr ame
cor r ectoeldatoser tr ansfer idoaS0RBUF
Unwr itesobr eSxTBUFiniciar latr ansmisin.
Ret
CHANNEL_SETUP endp
code_seg
ends
end
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina126de 136
3.ACCESODIRECTOAMEMORIA(DMA)
3.1.DESCRIPCIONGENERAL
En muchasaplicaciones serequieretransferirgrandesbloquesdeentrememoriayelespaciode
E/S.Undrivedediscoporejemplonormalmenteleeygrababloquesdedatosdecientosdebytes
de longitud. Si la CPU fuese requerida para manejar cada uno de los bytes ha ser transferidos
prcticamentelatransferenciaensabsorberalatotalidaddelacapacidaddeejecutarinstrucciones
delaCPU.PormasquelatransferenciasehiciesevainterrupcioneslacargadelaCPUseramuy
grande.
ElconceptodeDMApermitequelatransferenciaentrelamemoriaylosperifricosserealicesin
laintervencindelaCPU.LossistemasqueadmitenDMAcuentanconunaunidaddecontrolde
DMAlacualtomaelcontroldelbusdelsistemapararealizardirectamentebajosusupervisinla
transferencia.
Cuando el controlador DMA recibe un requerimiento desde un perifrico para realizar una
transferenciasolicitaalaCPUelcontroldelbusdelsistema.EncuantopuedalaCPUentregara
dichocontrolyelDMArealizarlatransferencia.EnmuchoscasoslaCPUpodrseguircargando
instruccionesdesdelacoladeprecarga.
Enelcasodel80186launidadDMAtienecuatrocanales.Cadaunopuedeaceptarrequerimientos
desdeunadelassiguientescuatrofuentesposibles:
a) unpinexterno
b) launidaddecomunicacionesseries.
c) Launidadderelojes
d) Desdeunprograma.
e) Latransferenciadelosdatospuederealizarseentrecualquiercombinacindedireccionesde
memoriaydireccionesdelespaciodeE/S.
3.2.TRANSFERENCIADEDATOSVIADMAENEL80186
UnatransferenciavaDMAseiniciaconunrequerimiento.Puedeserun'sourcerequest',cuandoel
perifricodeseatransmitirdatos,oun'destinationrequest'cuandoelperifricodesearecibirdatos.
Cuando un requerimiento DMA es servido la BIU provee las seales paracontrolarelBusyel
DMAproveelasdireccionesinvolucradas.
TodatransferenciavaDMAconsistededosciclosdebus.Unoeseldecargayelotro eselde
deposito.Ambossonindivisibles.
Duranteelciclodecargaunbyteounapalabraesledodesdelafuenteyalmacenadaenunregistro
temporario. En el ciclo de depsito el contenido de dicho registro temporario es grabado en el
destino.
CadacanalDMAtienealmacenadaslasdireccionesfsicasquerepresentanlafuenteyeldestinode
latransferencia.
Comounadireccinfsicapuedetenerhasta20bitssereservandosregistrosde16bitscadauno
paraalmacenarcadaunadelasdirecciones.
Estos pointers pueden ser automticamente incrementados o decrementados a lo largo de una
transferencia. Segn se transfieran bytes o palabras dichoincremento o decremento serdeuna
unidadodedos.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina127de 136
3.3.TIPOSDEREQUERIMIENTOSDMA
ExistendostipoderequerimientosdeDMA:externoseinternos
3.3.1.REQ UERIM IENTOSEXTERNOS
SonpresentadosenelpinDRQ.EstepinesanalizadoconelfrentenegativodeCLKOUT.Unavez
detectadoelDRQactivo,transcurrirnalmenos4clocksantesqueelcicloDMAseainiciado.
LasealDRQdebeserdesactivadaalmenos4clocksantesqueelcicloDMAterminesinose
deseaquesearranqueinmediatamenteacontinuacinunnuevocicloDMA.
LosrequerimientosDMAexternosseclasificanensincronizadosporlafuenteysincronizadospor
el destino. Los sincronizados por la fuente son generados por perifricos que envan datos a la
CPUlosotrosporperifricosquerecibendatosdelaCPU.
EltipodesincronizacindeuncanalDMAsemanejaporsoftware.
Lafigurasiguientemuestraunatpicatransferenciasincronizadaporlafuente
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina128de 136
Elclockquefinalizalafase1delTSTATET2delciclodedepositoeslanicaoportunidadde
desactivarDRQcuandonosequierenciclosconsecutivos.
3.3.2.REQ UERIM IENTOSINTERNOS
Sonaquellosgeneradosporperifricosintegradosoporsoftware.
Cualquiera de los 4 canales DMA puede aceptar requerimientos desde el TIMER2 o desde la
unidaddecomunicacionesSerie.
ElmultiplexorINTERNALDMAREQUESTcontrolacualdeellostomaraccin.
3.3.2.1. Tr ansfer enciascon tr olad aspor TIM E2
Cuando uncanalDMAreaccionaarequerimientosinternosdeTIME2iniciarunatransferencia
cadavezqueTIME2alcancesumximovalor.Estetipodetransferenciasesmuytilcuandose
tratadeserviraperifricoscuyofuncionamientoesbasadoeneltiempo.
Por ejemplo, supngase que un convertido A/D requiere datos cada 22 microsegundos para
producirunaondaenelrangodeaudio.EnestecasolafuentededatosparaelcanalDMAseraun
lugardememoriadondeelprogramairagenerandolosdistintosvaloresdelaonda,eldestinode
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina129de 136
losdatosseriaelperifricoqueconviertedigitalenanalgicoy TIME2controlaralafrecuenciade
latransferenciagenerandounrequerimientoDMAcada22microsegundos.
3.3.2.2. Tr ansfer enciascon tr olad aspor la unida dserie
El 80186 tiene dos canales de E/S serie, cada uno de los cuales tiene sus propias RX y TX
Machines.
Cadauno delos4 canalesDMApuedeserasignadosoloaunodeestoscanalesseriessegnla
siguientetabla:
DMAcanal0soportaalcanalserie0comotransmisorTX0
DMAcanal1soportaalcanalserie0comoreceptorRX0
DMAcanal2soportaalcanalserie1comotransmisorTX1
DMAcanal3soportaalcanalserie1comoreceptorRX1
Cuando un canal serie completa la transmisin de un byte activa la seal de requerimiento de
DMAylasealdeinterrupcin.
LautilizacindeunportseriecontransferenciascontroladasporelDMAenlugardecontroladas
porinterrupcionesproveeunamejorperformancesobretodocuandosetratadebloquesdegran
tamao.
3.3.2.3. Tr ansfer enciascon tr olad aspor softwa re
Pgina130de 136
PorprogramasefijalaprioridaddeuncanalenALTAoBAJA.
Silaprioridaddeamboscanalessonigualesseaplicaruncriterioderotacin.
Sidoscanalesconprioridadesdistintas,dentrodelmismomdulo,requierenservicioseatender
aquelquetengalaprioridadALTA.
EstecanalcontinuarrealizandociclosDMAmientrastodasestascondicionesseverifiquen:
a) elcanalsiguerequiriendociclos
b) elcanalnohaterminadoosuspendidosutransferencia(vaprogramacinointerrupciones)
c) ElcanalnohaliberadoelbusmediantelainsercindeTSTATEIDLEenunatransferencia
sincronizadapordestino.
Este ultimo punto es muy importante cuando los dos canales usan diferentes tipos de
sincronizacin.
Porejemplo,considerarelsiguientecaso:
Canal0
canal1
Prioridad
BAJA
ALTA
Sincronizacin
PORLAFUENTE
PORELDESTINO
Sienunmomentoambosrequierenseratendidosseiniciarunatransferenciaporelcanal1pues
su prioridad es ALTA. Pero una vez transferido el primer byte, como es sincronizado por el
destino,seinsertarnTSTATEIDLEyentonceselbusestomadoporelcanal0,transfirindose
unbyteapesarqueelcanalmsprioritarioaunnohaterminadosutransferencia.
Canal1retomarelcontroldelbusalfinaldelatransferenciadelcanal0,puesenestemomento
volverapresentarselasituacinquelosdosrequierenservicioperoel1eseldeprioridadALTA,
yassucesivamenteseirnintercalandotransferenciasdeamboscanales.
Lafiguramuestradistintassituacionespresentables:
La unidad DMA del 80186 consiste de dos mdulos DMA y un circuito lgico de prioridades
intermdulosquefuncionaexactamenteigualquelaunidadlgicaquefijalasprioridadesanivel
canaldentrodelmdulo.
La tabla quesigue muestralosnombresdelosregistrosdentrodelaPCBasociadosalaunidad
DMAylosnombresdelassealescorrespondientes
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina131de 136
LasiguientefiguramuestraelesquemageneraldelaunidadDMA.
3.7.PROGRAMANDOLAUNIDADDMA
Cada canal DMA tiene asociado 6 registros que lo controlan. Existen adems 2 registros
adicionalesquecontrolanlaprioridadintermdulos,elmultiplexorderequerimientosinternosyla
suspensindeservicios.
Paracadacanallosregistrosson:
DMASourceHigh
Bits0a3
DxSRCH
contienenlosbits16a19deladireccindelafuente
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina132de 136
DMASourceLow
DxSRCL
Bits0a15 contienenlosbits0a15deladireccindelafuente
DMADestinationHigh DxSRCH
Bits0a3
contienenlosbits16a19deladireccindeldestino
DMASourceLow
DxSRCL
Bits0a15 contienenlosbits0a15deladireccindeldestino
DMAControlRegister DxCON
Bit15 DMEM
Bit14 DDEC
Bit13 DINC
Bit12
Bit11
Bit10
Bit9
Bit8
Bit6/7
Si=1destinoenmemoriasi=0destinoenespacioE/S
si=1elpointerdedestinoesdecrementadoluegodecadatransferencia.
si=1elpointerdedestinoesincrementadoluegodecadatransferencia.
Nota:SiDDEC=DINCelpointerpermanececonstante
SMEN
Si=1lafuenteenmemoriasi=0lafuenteenespacioE/S
SDEC
si=1elpointerdelafuenteesdecrementadoluegodecadatransferencia.
SINC
si=1elpointerdelafuenteesincrementadoluegodecadatransferencia.
Nota:SiSDEC=SINCelpointerpermanececonstante
TCsi=1sedarporterminadalatransferenciacuandoelcontadorllegueacero.
INT
si=1cuandoelcontadorllegueacerosegenerarunainterrupcin
SYN
Determinaneltipodesincronizacin
00nosincronizado
01sincronizadoporlafuente
10sincronizadoporeldestino
11nousado
Si 00 el canal comenzar a transferir datos inmediatamente a continuacin de hacer STRT
iguala1
bit5
bit4
P
IDRQ
bit3
bit2
Bit1
CHG
SRRT
Bit0
WORD
Prioridad.ALTA(1)BAJA(0)
siessetea=1elcanalsoloreaccionararequerimientosinternos.Sies=0
soloatenderrequerimientosexternosvaelpinDRQ
noseusa
sies=1habilitalaposibilidaddemodificarSTRT
Hacerlo igual a 1 indica la iniciacin del canal. Solo puedemodificarsesi
CHG=1.
sies=1setransferirnpalabrassies=0setransferirnbytes
DMAControlRegister DxCON
Bit15 DMEM
Si=1destinoenmemoriasi=0destinoenespacioE/S
Binarioque indica la cantidaddetransferenciasarealizar.Estenumeroesdecrementadoenuna
unidadcadavezqueunatransferenciaunitariaesrealizada.
LosdosregistrosgeneralesdelaunidadDMAson:
DMAModulePriorityRegister
DMAPRI
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina133de 136
Bit10 IDRQB
Bit8
IDRQA
Bit2
Bit0
DMAPB
DMAPA
DMAHaltRegister
Bit15
Bit9
Bit8
Bit7
HMI
HMB
HMA
HNMI
Bit1
Bit0
HDMB
HDMA
DMAHALT
Debeser=1parahabilitarlaposibilidaddemodificacindeHNMI.
Debeser=1parahabilitarlaposibilidaddemodificacindeHDMB.
Debeser=1parahabilitarlaposibilidaddemodificacindeHDMA.
espuesto=1cuandolaCPUprocesaunaNMI.Mientrasesteen1suspende
todatransferenciaenambosmdulos.Esreseteadoaceroautomticamente
cuandolaCPUprocesalainstruccinIRET.
sies=1suspendelastransferenciasdelmduloB
sies=1suspendelastransferenciasdelmduloA
1) ProgramarlospointersalafuenteyaldestinodecadaunodeloscanalesDMAquevayana
usarse.
2) Programarlaprioridadintermdulos
3) Programarelregistrodecontrolyelcontadordetransferenciasdecadacanalcomenzandocon
eldemayorprioridad.
3.7.2.UTILIZACIONDELAUNIDADDM AC ONLOSPUERTOSDECOM UNICACINSER IE.
3.7.2.1. Ejemp lo1.Puertoserie0enr ecepcin
SeusarelcanalDMA 1enelmduloA.
ElpointeralafuentedebeapuntaraSxRBUF
Elpointeraldestinoapuntarallugardememoriadondeelmensajearecibirdebeseralmacenado.
Elregistrodecontadordetransferenciadebeiniciarseconlacantidaddetransferenciasunitarias
requeridas
ElcanalDMAseprogramarparaqueacepterequerimientosinternosydelcanalserie0.
Losvaloresdecadaunodelosregistrosasociadossern:
D1SRCL/H
D1DSTL/H
DMAPRI
DireccindelS0RBUF
Direccindeunlugardememoria,porejemploMSG_RCV
IDRQB=0
IDRQA=1 canalserie0serlafuentedeinterrupciones
DMAPB=0
DMAPA=1 elmduloAtendrprioridadALTA
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina134de 136
D1TC
D1CON
128
DMEN=1
DDEC=0
DINC=1
SMEN=0
SDEC=0
SINC=0
TC=1
INT=1
STRT=1
elmensajearecibirserde128bytesdelongitud.
destinoenmemoria
elpointeramemoriadedestinodeberincrementarseenunoluego
decadatransferenciaunitaria
terminarlatransferenciacuandoelcontadorllegueacero.
generarinterrupcincuandoelcontadorllegueacero.Comoesel
canalDMA1lainterrupcinsepresentarenDMAI1.
sincronizadoporlafuente
prioridaddeestecanalALTA
reaccionararequerimientosinternos.
habilitaelposiblecambiodeSTRT
SYN=01
P=1
IDRQ=1
CHG=1
iniciaelcanal
WORD=0 setransferirnbytes.
CuandoelcanalserierecibaelprimerbytedelatransmisinenS0RBUFgenerarunainterrupcin
derecepcinlacualinternamenteprovocarunrequerimientodeDMAcanal1.
CuandolaBIUsatisfagaestepedidodeunciclodebus(respetandosusprioridades)seproducela
transferenciaentreS0RBUFyelprimerbytedelbufferMSG_RCV.
Concadabyteadicionalrecibidosegenerarunasituacinsimilarperocomoelpointeradestinose
incrementa en uno cada vez los bytes recibidos se van colocando en posicionesconsecutivas a
partirdelprimerbyteenMSG_RCV:
Cuandosetransfieraelbytenumero128elcontadorllegaraaceroyporlotantoseterminarala
transferencia (el canal 1 deber iniciarse nuevamente para que pueda reaccionar a un nuevo
requerimientoDMA)ysegenerarunasealdeinterrupcinenDMAI1.
Si este pin se conecta con alguna de las entradas de interrupciones externas de la unidad de
interrupciones por programa se podr detectar esta interrupcin y su rutina de servicio
correspondientetieneasudisposicinlos128bytestransmitidos.DurantelatransferencialaCPU
nofuerequeridaenlomasmnimo.
Si se quisiese programar una transmisin serie, el proceso es muy similar, pero una diferencia
importanteesquelatransmisindebeiniciarsemoviendoelprimerbyteatransferiralTBUFdel
canalseriecorrespondienteconunainstruccinOUT.
Unaveziniciadalatransferenciacontinuarautomticamentehastaqueelcontadoralcanceelvalor
cero.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina135de 136
APENDICEA.PRECIOSAPROXIMADOS
Costosdeprocesadoresenfunciondetipodeencapsulado.FechaAGOSTO1998.
80186
Numerodeitem
Precio
$
A80C186XL12
24.6
A80C186XL20
25.35
KU80C186EC20
12.75
KU80C186EC25
12.75
N80C186XL12
7.75
N80C186XL20
7.75
N80C186XL25
7.75
R80C186XL12
20.65
R80C186XL20
20.65
S80C186EB25
10.2
S80C186EC25
12.35
S80C186XL20
8
S80C186XL25
8
SB80C186EA20
19.5
SB80C186EC20
13.25
SB80C186XL20
16
SB80C186XL25
8.65
SB80L186EB13
10.85
SB80L186EB16
10.85
TA80C186XL12
24.6
TA80C186XL20
24.6
TN80C186EA13
19.5
TN80C186EA20
19.5
TN80C186EB13
9.95
TN80C186EB20
9.95
TN80C186XL12
7.75
TN80C186XL20
7.75
TS80C186EB13
10.2
TS80C186EC20
12.35
TS80C186XL20
864
TS80L186EB13
10.2
80386
DescripcionPrecio
$
FA80386EXTB25 32BITMICROPROCE
16.50
FA80386EXTC33 32BITMICROPROCE
16.50
KU80386EXTB25 32BITMICROPROCE
15.80
KU80386EXTC25 32BITMICROPROCE
15.80
KU80386EXTC33 32BITMICROPROCE
15.80
KU80386SXTA25 32BITMICROPROCE
11.85
NG80386SX16
32BITMICROPROCE
10.00
Numeroitem
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a
Pgina136de 136