Sie sind auf Seite 1von 136

MICROPROCESADORES

Y
MICROORDENADORES

CATEDRA:DIGITALII
DEPARTAMENTODESISTEMAS
INGENIERIAELECTRONICA
AUTOR:ING.ENRIQUEGIANDOMENICO
AO:1998

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 1de 136

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.2.UNIDADDEINTERFACESC ONELBUS(BIU) ................................................................................................9


3.3.ACCESOALESPACIODEMEMORIA................................................................................................................9
3.3.1.IM PLEMENTACINDE LSTACK .............................................................................................................................................................11

3.4.ACCESOALESPACIODEENTRADA/SALIDA............................................................................................. 11

4.CONJ UNTODEINSTRUCCIONES ...........................................................................................12


5.INSTRUCCIONESANIVELASSEMBLER..............................................................................12
5.1.INSTRUCC IONESDEM OVIMIENTODEDATOS........................................................................................ 13
5.2.INSTRUCC IONESMATEMATICAS.................................................................................................................. 16
5.2.1.ADIC ION............................................................................................................................................................................................................16
5.2.2.SUBTRACCION...............................................................................................................................................................................................18
5.2.3.MULTIPL ICACION........................................................................................................................................................................................21
5.2.4.DIVISION ...........................................................................................................................................................................................................23

5.3.INSTRUCC IONESDETRANSFERENCIAS ..................................................................................................... 26


5.3.1.TRANSFERENCIASCONDICIONALES...................................................................................................................................................26
5.3.1.1.
INTERPRETACIONDELOSCODIGOSDETRANSFERENCIASCONDICIONALES ....................................................29
5.3.2.TRANSFERENCIASINCONDICIONALES ...............................................................................................................................................31

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

Pgina 2de 136

9.UNIDADSELECTORADECHIPS. CHIPSELECTUNIT(CSU) ........................................59


9.1.DECRIPCIONFUNCIONAL................................................................................................................................. 59
9.2.R ESGISTROSDECONTROLDELACSU ....................................................................................................... 61

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.4.ACTIVAC IONDELASEALINT ................................................................................................................... 66


10.4.1.E SQUEM ADEP RIORIDADES ..................................................................................................................................................................66
10.4.2.M ODODEOP ERACIN.............................................................................................................................................................................67
10.4.3.E STADODELO SBIT SDELIRR,ISRYIMR .......................................................................................................................................67

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

10.9.EJ EMPLOSDEPROGRAMAS .......................................................................................................................... 75


10.10.EXPANDIENDO LACANTIDADDESEALESDEINTERRUPC ION............................................... 77

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

11.6.EJ EMPLOS ............................................................................................................................................................. 85


11.6.1.IMP LEM ENTAC IONDEUNRELOJ .......................................................................................................................................................85
11.6.1.1.
DESCRIPCIONGENERAL.........................................................................................................................................................85
11.6.1.2.
PROGRAMA.................................................................................................................................................................................87
11.6.2.GENE RARUNAONDARECTANGULAR. .............................................................................................................................................90

12.PREGUNTAS,PROBLEMASYALGUNASSOLUCIONES ...............................................92

TRANSFERENCIAS DE INFORMACION ENTRE EL MICRO Y EL MEDIO


AMBIENTE ...................................................................................................106
1.INTERFACESPARALELA........................................................................................................ 106
1.1.PORTSPARALELOSENEL80186 .................................................................................................................. 108
1.2.NOTAESPECIAL .................................................................................................................................................. 110
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 3de 136

2.INTERFACESERIE .................................................................................................................... 111


2.1.ESTUDIODEUNCASOPARTICULAR .......................................................................................................... 111
2.1.1.CASOCONRUIDOEJ EMP LON1 .........................................................................................................................................................113
2.1.2.CASOCONRUIDOEJ EMP LON2 .........................................................................................................................................................113
2.1.3.CASODEERROREJ EMPLON3............................................................................................................................................................114
2.1.4.CASODEERROREJ EMPLON4.............................................................................................................................................................115
2.1.5.CASODEERROREJ EMPLON5............................................................................................................................................................115
2.1.6.CASODEERROREJ EMPLON6.............................................................................................................................................................115

2.2.DESVIACIONESADMISIBLESENLASVELOCIDADESDETRANSM ICION................................... 116


2.2.1.VELOC IDADDETRANSM ISIONMENORALAASUM IDA ............................................................................................................116
2.2.2.VELOC IDADDETRANSM ICIONSUPERIORALAASUM IDA ......................................................................................................117

2.3.TRANSM ICIONSERIALENEL80186............................................................................................................ 118


2.4.M ODALIDADESDETRANSMICIONSERIE ................................................................................................ 118
2.4.1.MODOS1,3Y4 ..............................................................................................................................................................................................118
2.4.2.MODO2............................................................................................................................................................................................................119
2.4.3.MODO0............................................................................................................................................................................................................119
2.4.4.VARIACIONESDELOSMODOS..............................................................................................................................................................119

2.5.PROGRAMACIONDELAUNIDADSERIEDEL80186.............................................................................. 120
2.5.1.EJ EMP LOSDEVALORE SPARABXCMP .............................................................................................................................................121
2.5.2.PROGRAMANDOELMODO0..................................................................................................................................................................122
2.5.3.PROGRAMANDOLOSMODOS1A4......................................................................................................................................................123

2.6.EJ EMPLOSDEPROGRAMAS.......................................................................................................................... 123


2.6.1.PROGRAMAUSANDOELMODO0 ........................................................................................................................................................123

2.7.EJ EMPLODETRANSM ICIONENM ODO4 ................................................................................................. 125


2.8.PROGRAMAUSANDOELMODO4................................................................................................................ 125

3.ACCESODIRECTOAMEMORIA(DMA) ............................................................................ 127


3.1.DESCR IPCIONGENERAL ................................................................................................................................. 127
3.2.TRANSFERENCIADEDATOSVIADMAENEL80186 ............................................................................. 127
3.3.TIPOSDEREQ UERIM IENTOSDMA ............................................................................................................. 128
3.3.1.REQUERIM IENTOSEXTERNOS .............................................................................................................................................................128
3.3.2.REQUERIM IENTOSINTERNOS ..............................................................................................................................................................129
3.3.2.1.
TRANSFERENCIASCONTROLADASPORTIME2.............................................................................................................129
3.3.2.2.
TRANSFERENCIASCONTROLADASPORLAUNIDADSERIE .....................................................................................130
3.3.2.3.
TRANSFERENCIASCONTROLADASPORSOFTWARE..................................................................................................130

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

Pgina 4de 136

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

El esquema general del 80186 se muestraenla


siguientefigura:
CaractersticasGenerales:
v BusdeDirecciones:20Bits

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

Pgina 5de 136

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

La presencia y tamao de los


distintos tipos de memoria vara
segn los distintos modelos del
HC11.

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

Pgina 6de 136

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

Pgina 7de 136

LaUnidadAritmticaYLgica(ALU)realizalasoperaciones.Puedeutilizaroperandosde8ode
16Bits.
FLAGS:esunregistrode16bits,cadaunodeloscualesrepresentaunadeterminadacondicin.
LafigurasiguientemuestraelsignificadodecadaunodelosbitsdelregistroFLAGS,quetambin
recibeelnombredePSW(ProgramStatusWord)

Launidaddeejecucin(EU)noseconectadirectamenteconelbusexterno,solopuedehacerlova
laBIU.
Lasinstruccionesquedebeircargandoparasuejecucinnuncaprovienendirectamentedelame
moriasinoquesoncargadasdesdelacoladeprecarga.

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 8de 136

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

Pgina 9de 136

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

Se define como direccin lgica normalizada aquella quecorresponde al valorde DESPLAZA


MIENTOmspequeo.
Ladireccinlgicanormalizadaesnicaparacadadireccinfsica.
LaBIUsiempreaccedeamemoriaindicandoladireccinfsica,losprogramadoressiemprehacen
referenciaadireccioneslgicas.Elsegmentopuedeindicarseenformaexplcitaoenformaimpl
cita.Sinoseindicara,cadatipodeinstruccindelatablasiguienteindicacualeselSEGMENTO
pordefaultqueseusar
TIPODEMEMORIAREFERENCIADO
CargadeInstrucciones
OperacinsobreelSTACK
Variables
FuenteenoperacionesdeStrings
DestinoenoperacionesdeStrings
SiapareceBPcomopartedelDESPLAZAMIENTO

SEGMENTOBASEDEFAULT
CS
SS
DS
DS
ES
SS

Estaformadedireccionarpermitelareubicacindinmicadesegmentosdentrodelespaciodedi
reccionesmuyfcilmente.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 10de 136

Sienundeterminadomomentolasituacineslamostradaenlafiguradelaizquierda,cambiando
elcontenidodecadaunodelosregistrosdesegmentoyreubicandolossegmentoselesquemaque
daracomoelmostradoenlafiguradeladerecha.

CS

CS

DS

DS

SS

SS

3.3.1.IM PLEM ENTACINDELSTACK

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

Pgina 11de 136

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

mover el nmero hexadecimal 1234 de 16 bits al


registroAX.
MOVAX,BX
moverelcontenidodeBXaAX
MOVAX,Var1
moverelcontenidodeladireccincorrespondientea
Var1aAX
Enelniveldemaquinaunainstruccinespecificalatotalidaddelosdatosqueserequierenpara
que pueda ser ejecutada. La instruccin de assembler MOV puede generar 28 instrucciones
diferentesdelniveldemaquinasegncomoseespecifiquenlosoperandosqueenellaparticipen.
Lasinstruccionesaniveldemaquinanosontodasdeiguallongitud.Lashaydesdedeunbytehasta
decincobytes.
Enelniveldelassemblerexistenaproximadamente100instrucciones,mientrasqueenelnivelde
maquinasonmasdetrescientas.

5.INSTRUCCIONESANIVELASSEMBLER.
Paraunamejororganizacinselashaagrupadofuncionalmenteencincogrupos:

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 12de 136

5.1.INSTRUCCIONESDEMOVIMIENTODEDATOS

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 13de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 14de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 15de 136

5.2.INSTRUCCIONESMATEMATICAS
5.2.1.ADICION

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 16de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 17de 136

5.2.2.SUBTRACC ION

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 18de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 19de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 20de 136

5.2.3.M ULTIPLICACION

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 21de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 22de 136

5.2.4.DIVISION

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 23de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 24de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 25de 136

5.3.INSTRUCCIONESDETRANSFERENCIAS
5.3.1.TRANSFERENCIASCO NDIC IONALES

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 26de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 27de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 28de 136

5.3.1.1. INTERPRETAC IONDELOSCODIGOSDETRANSFERENCIASCONDICIONALES

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 29de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 30de 136

5.3.2.TRANSFERENCIASINCONDICIONALES

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 31de 136

5.4.CONTROLDEITERACCIONES

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 32de 136

5.5.INTERRUPCIONES

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 33de 136

5.6.INSTRUCCIONESDEMANIPULACIONDEBITS

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 34de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 35de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 36de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 37de 136

5.7.INSTRUCCIONESDECONTROLDELPROCESADOR
5.7.1.OPERACIONESCO NFLAGS

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 38de 136

5.7.2.OPERACIONESDESINCRONIZACIONEXTERNA

5.7.3.NOOPERACION

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 39de 136

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

Pgina 40de 136

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]

Pgina 41de 136

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

Pgina 42de 136

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

Pgina 43de 136

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

Sonvalor esqueapar ecenenlahojadeespecificacionestecnicasdelmicr oencuestion


UnBCcomienzaconelflancopositivodelasealALEyelseteodelostresbitsdecontrolque
defineneltipodeBCqueseejecutar(STATUSS2:0)loscualesdebenasumirsusvaloresantesde
comenzarT1.
SiempreantesdeT1existirunT4ounTI.
DuranteT1debepresentarseunadireccioncorrectaenAD15:0/a19:16.
ConelfrentenegativodeALEseregistrarenellatchdedireccionesladireccionpresenteenel
Bus.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 44de 136

DichadirecciontambienactivarlasealdeChipSelectquecorresponda.
Losvalorestipicosparalafasededatossemuestranacontinuacion

Sonvalor esqueapar ecenenlahojadeespecificacionestecnicasdelmicr oencuestion


LadirecciondelatransferenciaRD/WRdebeservalidaantesdecomenzarT2.
LosbitsdeSTATUSdebenpermanecervalidoshastapasadalafinalizaciondeT2
SisetratadeunWRITE,losdatosdebenestardisponiblesenelbusalcomenzarT2yelflanco
negativodelclockqueterminaT3eselquedaporterminadalaoperacindesactivandolaseal
WR.
SisetratadeunREADelflancodescendentedelclockqueterminaT3permitetomardelbuslos
datosleidos.
La siguiente figura muestra el circuito para la lectura y grabacion de una memoria RAM
conformadapordosbancosquedireccionan8bitscadauno.

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 45de 136

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

Pgina 46de 136

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

Pgina 47de 136

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

Pgina 48de 136

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

Pgina 49de 136

7.3.TIEMPOSDELCICLODEBUSPARAUNAGRABACION
LasiguientefiguramuestraelcicloparaunWRITEconlostiemposclavesquedebenrespetarse
paraunaoperacincorrecta

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 50de 136

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

Pgina 51de 136

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

Pgina 52de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 53de 136

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

VALORES SOLUC ION VALORES

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

Pgina 54de 136

Hojadeespecificacionesdel80186a25Mz

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 55de 136

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 56de 136

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

Pgina 57de 136

In terr up.M ASTERySLAVE


Port2
RefrescodeM emorias
MPICP0
00h
P2DIR
58h
YAlimenta cion
MPICP1
02h
P2PIN
5Ah
RFBASE
B0h
SPICP0
04h
P2CON
5Ch
RFTIME
B2h
SPICP1
06hh
P2LTCH
5Eh
RFCON
B4h
Reserved
08h
RFADDR
B6h
Entra daySalidaSerie
Interrup.RequestLatchReg.
PWRCON
B8h
Ca na l0
SCUIRL
0Ah
B0CMP
60h
Reserved
BAh
DMAIRL
0Ch
B0CNT
62h
STEPID
BCh
TIMIRL
0Eh
S0CON
64h
PWRSAV
BEh
Reserved
10h
S0STS
66h
AccesoDirectoa M emor ia
Reserved
12h
S0RBUF
68h
C ana l0
Reserved
14h
S0TBUF
6Ah
D0SRCL
C0h
Reserved
16h
Reserved
6Ch
D0SRCH
C2h
Reserved
18h
Reserved
6Eh
D0DSTL
C4h
Reserved
1Ah
D0DSTH
C6h
Ca na l1
Reserved
1Ch
B1CMP
70h
D0TC
C8h
Reserved
1Eh
B1CNT
72h
D0CON
CAh
S1CON
74h
WatchDogRegister s
G enera les
WDTRLDH 20h
S1STS
76h
DMAPRI
CCh
WDTRLDL 22h
S1RBUF
78h
DMAHALT CEh
WDTCNTH 24h
S1TBUF
7Ah
C ana l1
WDTCNTL 26h
Reserved
7Ch
D1SRCL
D0h
WDTCLR
28h
Reserved
7Eh
D1SRCH
D2h
WDTDIS
2Ah
D1DSTL
D4h
SeleccindeChips
Reserved
2Ch
D1DSTH
D6h
Ch ips0a 7
Reserved
2Eh
GCS0ST
80h
D1TC
D8h
GCS0SP
82h
D1CON
DAh
TIM ER0Register s
T0CNT
30h
GCS1ST
84h
Reserved
DCh
T0CMPA
32h
GCS1SP
86h
Reserved
DEh
T0CMPB
34h
GCS2ST
88h
C ana l2
T0CON
36h
GCS2SP
8Ah
D2SRCL
E0h
GCS3ST
8Ch
D2SRCH
E2h
TIM ER1Register s
T1CNT
38h
GCS3SP
8Eh
D2DSTL
E4h
T1CMPA
3Ah
GCS4ST
90h
D2DSTH
E6h
T1CMPB
3Ch
GCS4SP
92h
D2TC
E8h
T1CON
3Eh
GCS5ST
94h
D2CON
EAh
GCS5SP
96h
Reserved
ECh
TIM ER2Register s
T2CNT
40h
GCS6ST
98h
Reserved
EEh
T2CMPA
42h
GCS6SP
9Ah
C ana l3
Reserved
44h
GCS7ST
9Ch
D3SRCL
F0h
T2CON
46h
GCS7SP
9Eh
D3SRCH
F2h
D3DSTL
F4h
Entra da SalidaPa ra lelo
Ch ipenDir eccionBaja
LCSST
A0h
D3DSTH
F6h
Por t3
P3DIR
48h
LCSSP
A2h
D3TC
F8h
P3PIN
4Ah
D3CON
FAh
Ch ipenDir eccionAlta
P3CON
4Ch
UCSST
A4h
Reserved
FCh
P3LTCH
4Eh
UCSSP
A6h
Reserved
FEh
Por t1
Registr odeR eub.delaPCB
P1DIR
50h
RELREG
A8h
P1PIN
52h
Reserved
AAh
P1CON
54h
Reserved
ACh
P1LTCH
56h
Reserved
AEh
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 58de 136

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

Pgina 59de 136

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

Pgina 60de 136

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

Pgina 61de 136

ISTOP Sicer oseignoraladireccindeterminacindelespaciomapeado.Elespacioterminaen


0FFFFFh(memoria)o0FFFFh(E/S)
MEM Siunosemapeaenelespaciodememoria.Sicer osemapeaenelespaciodeE/S
RDY Sicer o,elBIUinsertarlacantidaddeTWaitindicadaenelregistroSTARTyluegoin
dependientementedesielperifricoactivonolasealdeREADYelBCesterminado.
Siuno,elBIUunavezinsertadalacantidaddeTWAITindicadaenelregistroSTART
sigueinsertandoTWaithastaqueelperifricoactivelasealREADY.
LassiguientesfigurasmuestranelformatodetalladodelosregistrosSTARTySTOP:

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

CSEN ISTOP MEM


ESPC
S
N
S
S
S
S
S
S
S
S
S
S

RDY
N
S
N
N

Pgina 62de 136

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

Pgina 63de 136

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

Pgina 64de 136

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

Pgina 65de 136

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

Pgina 66de 136

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

Pgina 67de 136

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

Pgina 68de 136

2) el 8259A SLAVE es programado para operacin en cascada, con un ID=7 y el esquema de


prioridadesdefault
3) ambosmduloshansidoinicializadosrecientementeynohayinterrupcionespendientes.
4) Todaslasinterrupcionesenambosmdulostienensusbitsdeenmascaramientoigualesa cer o.
Unasecuenciatpicapodraser:
1) unainterrupcinseteaelbit2enelINTERRUPREQUESTREGISTERdelSLAVE
2) ElPRIORITYSOLVERdelSLAVEchequeasiotrosbitsmsprioritariosestnseteadosenel
INTERRUPREQUESTREGISTER.Estonoesas.
3) ElPRIORITYSOLVERdelSLAVEchequeasiotrosbitscorrespondientesainterrupcionesde
mayoroigualprioridadqueIR2estnseteadosenINTERRUP SERVICEREGISTER.Estono
ocurre.
4) EnestemomentoelPRIORITYSOLVERdelSLAVEhadeterminadoqueIR2tienesuficiente
prioridadcomopararequerirunainporloqueactivaraIR7delMASTER.
5) ElbitIR7delINTERRUPREQUESTREGISTERdelMASTERserseteado
6) ElPRIORITYSOLVERdelMASTERchequearasiIR7tienesuficienteprioridadparasolicitar
unain(loqueenestecasoresultaafirmativo)yporlotantoseactivaraINT.
7) LaCPUiniciaraunINTACYCLE.
8) EnelprimerfrentenegativodeINTAse:
a) BlanquearIR7delINTERRUPREQUESTREGISTERdelMASTER.
b) SetearIR7delINTERRUPSERVICEREGISTERdelMASTER.
c) ComoelMASTERconocequesobrelalnea7existeunSLAVEcolocaenCAS2:0el
IDdelSLAVEcorrespondiente,enestecaso7
d) ComoelSLAVEreconoceenCAS2:0supropioIDseencargardeblanquearsubit2
enelINTERRUPREQUESTREGISTERysetearsubit2enelINTERRUPSERVICE
REGISTER.
9) EnelsegundofrentenegativodeINTA.
a) elSLAVEpresentarsobreeldatabuseltipodeinterrupcinsolicitado,enestecaso
IR2
b) elMASTERreconocequelainterrupcinprovienedeunSLAVEyporlotantopresenta
altaimpedanciaalbusdedatosduranteesteINTACYCLE.
10) La CPU ejecutarlasecuenciacorrespondientealtipodeinterrupcinIR2einiciarlarutinade
serviciocorrespondiente.
11) CuandolarutinadeserviciofinalizaenestecasodebeemitirdosENDOFINTERRUPuno
paraelMASTERyotroparaelSLAVE.
EstosdosENDOFINTERRUPblanquearanelbitIR7delINTERRUPSERVICEREGISTER
delMASTERyelbitIR2delINTERRUPSERVICEREGISTERdelSLAVE.
EsenestecasoqueresultadeutilidadelmododeoperacinSPECIALFULLYNESTED.
AscomoestnplanteadaslascosassiambosmdulosusaranelmodoFULLYNESTEDmientras
seprocesalarutinadeserviciocorrespondienteaIR2todanuevainenlassealesdelSLAVEser
ignoradas pues por mas que el PRIORITY SOLVER del SLAVE determine que son ms
prioritarias que IR2 al setear IR7 en el MASTER el PRIORITY SOLVER del MASTER las
ignorarpueselbit7delINTERRUPSERVICEREGISTERdelMASTERestaenuno.
EspecificandoparaelMASTERelmododeoperacinSPECIALFULLYNESTEDseresuelveel
problemaperosegeneraotroquedebesertenidoencuentaenlaprogramacin.
SehadichoquecuandolarutinadeserviciofinalizadebeemitirdosENDOFINTERRUP,uno
paraelSLAVEyelotroparaelMASTER.ElENDOFINTERRUPparaelMASTERsolodebe
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 69de 136

enviarse sila rutinade servicio corresponde a un nicobiten uno enelINTERRUPSERVICE


REGISTERdeSLAVE.
Elprocedimientoaseguirsera:
a) Enviar un END OF INTERRUP especifico al SLAVE indicando el ir al que corresponde la
presenterutinadeservicio.
b) SolosielINTERRUPSERVICEREGISTERdelSLAVEtienetodoscer osenviarelENDOF
INTERRUPalMASTER.
c) QuedaclaroqueelmododeoperacinSPECIALFULLYNESTEDsolopuedeserusadoporel
mduloMASTERenunsistemaencascada.
10.7. ESQUEMADELAUNIDADDECONTROLDEINTERRUPCIONESENEL8259A
En el 80186 la unidad de control de interrupciones esta compuesta por dos mdulos 8259A
conectadosencascadaytresregistros(RequestLatchRegister).
ElmduloSLAVEcontrola7fuentesdeinterrupcionesinternasyunafuentedeinexterna(INT7).
ElmduloMASTERcontrolaalSLAVEy7fuentesdeinterrupcionesexternas(INT0aINT7).
Lasiguientefiguramuestraelesquemacorrespondiente

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 70de 136

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

Pgina 71de 136

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

Pgina 72de 136

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

Pgina 73de 136

10.8.4. FUENTESDEINTERRUPCIONINTERNAS

El 80186 tiene 11 fuentes de interrupciones internas. Tres corresponden a la unidad de


temporizadores,4alaunidaddeaccesodirectoamemoriay4alaunidaddeentradasalidaserie.
EstassealessonmanejadasportresregistrosllamadosInterruptRequestLatchRegisterqueestn
representadosenlaPCBenlasposicionesTIMIRL,DMAIRLSCUIRL
Lafiguramuestraelesquemacorrespondiente

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

Pgina 74de 136

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

Pgina 75de 136

Elrestodelos vectores deberainicializarseenformasimilar.


Comienzalainic ializacindelmdulo8259ASLAVE
MOVDX,SPICP0
ICW1vaSPICP0
XORAH,AH
blanquealosbitsreservados
MOVAL,10001B
Detec cinporflanco,casc ada,requiereIC4
OUTDX,AL
sedefinecomodireccinbase28henelSLAVEvaICW2
MOVDX,SPICP1
ICW2vaSPICP1
MOVAL,28H
Direcc inbasees28H(Type40)
OUTDX,AL
EnICWsedefinecomoIDdelSLAVE 7 .
MOVDX,SPICP1
ICW3vaSPICP1
MOVAL,7
ID=7
OUTDX,AL
sec ompletalainicializac inconICW4
MOVDX,SPICP1
ICW4vaSPICP1
MOVAL,1
Nospecialfullynes tedmode
NoAEOImode
OUTDX,AL
Lainic ializacindelmduloSLAVEestaterminada
Comienzalainic ializacindelmduloMASTER
MOVDX,MPICP0
XORAH,AH
MOVAL,10001B

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

Pgina 76de 136

TIM0_HANDLER

PROCFAR
STI

Necesariosisedeseaanidarinterrupciones

Aqudeberainsertarseelcdigoespecificoparaeltratamientodelainterrupcin

instrucc iones requeridasalfinaldelarutina


MOVDX,TIMIRL
MOVAX,0100H
OUTDX,AL
MOVDX,MPICP0
MOVAX,20H
OUTDX,AL
MOVDX,SPICP0
MOVAX,20H
OUTDX,AL
IRET
TIM0_HANDLER
ENDP
INT_HNDLRS
ENDS

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

Pgina 77de 136

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

Pgina 78de 136

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

Pgina 79de 136

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

Pgina 80de 136

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

Pgina 81de 136

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

INTbitdeTxCON queindicasisedesea interrumpiralaCPUcadavezqueterminaun


ciclo.

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

Pgina 82de 136

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

Pgina 83de 136

hastaalcanzarelvalor0FFFFh,luegoasumirelvalor cer oyseguirhastavalcanzarfinalmenteel


valormximo.
CuandoelvalorcorrienteresultaigualalvalormximoseseteaenunoelbitMC.Estebitnoes
reseteadoautomticamenteyesnecesariohacerlomanualmente(grabandoelregistroTxCON)si
asselorequiere.
Elvalormximopuedesermodificadoencualquiermomentograbandoelregistrocorrespondiente.
11.5.3. REINICIALIZACION.

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

Pgina 84de 136

11.5.5. HABILITANDOYDESHABILITANDOLOSCONTAR ORES.

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

Pgina 85de 136

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

Pgina 86de 136

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

Pgina 87de 136

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

Pgina 88de 136

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

Pgina 89de 136

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

11.6.2. GENERAR UNAONDAREC TANGULAR.

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

Pgina 90de 136

d) como no se usaran interrupciones no es necesario inicializar la tabla del vector de


interrupciones.
e) inicializacindelosTIMERs
T1CNT=0
T1CMPA=3
T1CMPB=2
T1CON=1100000000001011
Nointerrupt
modocontinuo
Permitehabilitar
dosvaloresmximos
Habilita
preescala
T2CNT=0
T2CMPA=9C40h=40.000d
T2CON=1100000000000001
Nointerrupt
modocontinuo
Permitehabilitar
Habilita
ComoseespecificonointerrumpirestasnosegenerarancadavezqueTIMER1alcancealgunode
losvaloresmximosespecificadosperolasealT1OUTirasumiendolosvalorescer oyunode
acuerdoalosolicitado.

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 91de 136

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

Pgina 92de 136

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

Pgina 93de 136

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

Pgina 94de 136

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

Pgina 95de 136

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

Pgina 96de 136

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

159.997,5ms2,5159.997,5 ms2,5ser epite


ms
mscclicamente

Lasalidafinalasumir lossiguientesvalor es:


T0
HIGH
LOW
LOW
HIGH

T1
HIGH
HIGH
LOW
LOW

SALIDA
HIGH
HIGH
LOW
HIGH

DURACION
159.996,5
1
1,5
1

Par aimplementar lo,pr oducidalainter r upcinenir 3sellamar aunar utinaquedebe


hacer losiguiente:
a) inicializar T2concuentamxima62.500par aquegener eunpulsocada2,5ms.
b) Inicializar T0concuentamximaigualesa63.999y1conloquesegener alaondade
159.997,5y2,5ms
c) Inicializar T1igualaT0
d) Blanquear elvalor deloscontador esT0,T1,T2
e) Inicializar par aquear r anqueT0
f) Inicializar par aquear r anqueT2
g) Gener ar unloopquedemor eenejecutar se1ms
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina 97de 136

h) Inicializar par aquear r anqueT1

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

Pgina 98de 136

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

29) Encontrar el mximo valor permitido


para c/u de los parmetros especificados para
unamemoriaconectadaalprocesadorquesedetallasabiendoquesehaninicializado3Twaits
paratodaoperacindeE/S.
Datosdelprocesador:
Reloj:80MHz.
Smbolo
Tclov
Tclis

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

Par aimplementar lo,pr oducidalainter r upcinenir 3sellamar aunar utinaquedebe


hacer losiguiente:
i) inicializar T2concuentamxima25.000par aquegener eunpulsocada1ms.
j) Inicializar T0concuentamximaigualesa65.000y65000conloquesegener alaon
dacuadr adade65.000ms
k) Inicializar T1igualaT0
l) Blanquear elvalor deloscontador esT0yT2einicializar T1en1
m)Inicializar par aquear r anqueT0
n) Inicializar par aquear r anqueT1
o) Inicializar par aquear r anqueT2
34)Se requiere mapear en forma consecutiva sobre el espacio de direcciones de E/S,
comenzandoenladireccin192]10,lossiguientesdispositivos:
A)
DATOS(16)

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

Losr egistr osdecontr olseinicializar n:

CS1
CS2
CS3

Registr oSTART
0000000011XX0000
0000000100XX0000
0000030000XX0000

Registr oSTOP
0000000100XX1100
0000001100XX1100
0000001101XX1100

IndicaespacioI/O
IndicaNoReady

IndicaCer oWaitStates

Indica consider ar dir eccinde


ter minacin
IndicaHabilitado
Par aleer cor r ectamentelos16bitsdecadaunodelosr egistr osdelosdistintosdispositivoses
necesar iopr esentar dir eccionespar es.Antecadadir eccin par eldispositivoentr egar aenlos
16bitsdelbusdedatoselcontenido(en8bits)deladir eccin pr esentadayelcontenido(en
8bits)deladir eccin pr esentadamas1.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina103de 136

Por lotantosedejar flotandoelbitA0delbusdedir eccionesyseconectar anlosotr os


deacuer doalsiguienteesquema:
Disp.A BitsA1hastaA4alascuatr oentr adasdedir eccionesexistentes
Disp.B BitsA1hastaA8alasochoentr adasdedir eccionesexistentes
Disp.C BitsA1alanicaentr adadedir eccionesexistente.
Cualquier dir eccinentr e0300y03FFconA1igualacer odir eccionar alr egistr ocer o
deldispositivoC,ysir esultaA1igualaunodir eccionar alr egistr ouno.Dichodeotr a
maner ayconsider andoqueXr epr esentatantoavalor escer oscomoaunos,elconjunto
dedir eccionesvalidaspar aacceder alr egistr ocer oyalr egistr ounodeldispositivoCson
r espectivamente:
Regcer o
Reguno
00000011XX0X
00000011XX1X.
Comosetr atadelespaciodeentr ada/salidalainstr uccinpar agr abar es:OUT
35)Enunprocesador80188seencuentramapeadoentrelasdirecciones0040hy0080h
delespaciodedireccionesdeentrada/salidaundispositivoquetienedosregistrosde
16bitscadauno.Launicaentradadedirecciondeldispositivoseencuentraconecta
daalasealA5delbusdedatos.Especificarcualessonlasinstruccionesvalidaspa
ragrabaryleerambosregistrosdeldispositivo.
Resp:
LainstruccionOUTDX,AXgrabaelcontenidodeAxenladireccionaountada
porDX.SeanalizarelcomportamientodelaBIUparadistintoscontenidosde
AXyDX.
Ax=1234hyDX=0040h
LaBIUgeneraunciclodebustransfiriendo16bitsaladireccion0040h.Los
8bitsmenossignificativossetransfierena0040hylos8massignificativosa
0041h.ComoA5enamboscasoses0elregistrodireccionadoesR0.
Lomismoocurrirparatodadireccionentre0040hy005Fh.
Ax=1234hyDX=0060h
LaBIUgeneraunciclodebustransfiriendo16bitsaladireccion0060h.Los
8bitsmenossignificativossetransfierena0060hylos8massignificativosa
0061h.ComoA5enamboscasoses1elregistrodireccionadoesR1.
Lomismoocurrirparatodadireccionentre0060hy007Fh.
Ax=1234hyDX=0061h
LaBIUgeneradosciclosdebuspuesseintentatransferirunapalabraauna
direccionimpar.CadaciclotransfiereunByte.Elprimerciclotransfierelos8
bitsmassignificativosaladireccion0061hyelsegundociclotransfierelos8
bitsmenossignificativosa0062h.ComoA5enamboscasoses1elregistro
direccionadoenamboscasosesR1.
Lomismoocurrirparatodadireccionentre0061hy007Dh.
Dariala sensacion que enestecasopodriahabilitarselaposibilidaddedirec
cionaradireccionesimparessiqueellorepercutaenunmalfuncionamiento
aunquesienunapeorperfomance.Podriadecirsequetodadireccionentre
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

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

Una transmisin bidireccional puede pensarse como la superposicin de dos transmisiones


unidireccionales. Puede darse que cada canal tenga sus propias lneas de comunicacin o que
multiplexensufuncineneltiemposegnladireccindelatransferencia.
1.1.PORTSPARALELOSENEL80186
El80186tiene22pinsquepuedenserutilizadoscomodeentraday/osalida.Ellossonagrupados
endosportde8bitscadauno(PORT1yPORT2)yunode6bits(PORT3).Muchosdeestospins
sonfuncionalmentemultiplexadosconlosperifricosintegrados,estoimplicaqueporprograma
puede definirse si el pin ser controlado por el perifrico integrado o si ser controlado por
programayfuncionarentoncessimplementecomopindeentrada/salida.
Lassiguientestablasmuestranelagrupamientodelospinsy sumultiplexadofuncional
PORT1
Exclusivamentesalida

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

Sila sealreal seatrasaramasdelo indicadonosepodraasegurarlavalidezdeRT8=RT9=


RT10= uno. Por lotanto mientras RTemitiKrtpulsos,elclockdeltransmisoralmenosdebe
haberemitidoKtpulsoscon:
Krt=16pulsosdelSTARTBIT+16xNpulsosdelosNbitsdedatos+7pulsosdelSTOP
BITpreviosaRT8yporlotantolavelocidadasumidaporelreceptorenbitsporsegundosser:
(23+16xN)/16
Kt=1pulsodeSTARTBIT+NpulsosdelosNbitsdedatosyporlotantolavelocidadms
lentapermitidaeneltransmisorenbitsporsegundosser N+1
Mnimavelocidaddeltransmisor como
(N+1)x100
%delaVelocidadNominal.........(23+16N)/16
Paraelcasode8bitsdedatosresulta95,36%
2.2.2.VELOCIDADDETRANSM IC IONSUPER IORALAASUM IDA

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

Habilita el bit de paridad. Cuando corresponda el canal generar


automticamente el bit de paridad de acuerdo al tipo de paridad indicado en
EVN.
CuandolaparidadestahabilitadaindicaeltipodeseadoPar(1)Impar(0).
HabilitalaRXMachinecuandoes1
ClearToSend.Sies=1todatransmisinquedainhibidahastaquelasealCTS
seadesactivada.
representaaloctavo(noveno?) bittransmitidoenlosmodos2y3
Fuerza,cuandosuvalores1,lasalidaTxDigualacero.TxDpermaneceencero
mientrasSBRKpermanezcaenuno.

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

La interrupcin generada por RI = 1 o el propio chequeo de RI = 1 indicaran el final de la


recepcin.LosbitsdeerroresOE,FEyPEpierdensignificadoenestemododeoperacin.
2.5.3.PRO GRAM ANDO LOSM ODOS1A4

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

A010pulseonP1.0indicar elfinaldelatr ansmisin.

SINTASIS:exter nvoidfar par allel_ser ial(char user _data,inttr an_fr eq)


INPUTS:user _datadatoaser enviado

tr an_fr eqvalor acolocar enSer ialCompar eRegister par adeter minar la


fr ecuencia
OUTPUTS:None
NOTA:Lospar metr osr equer idosseasumensonpasadosenelstack
**************************************************************
B1CMP equxxxxH
Channel1BaudRateCompar e
S1CON equxxxxH
Channel1Contr ol
S1STS
equxxxxH
Channel1Status
S1TBUF equxxxxH
Channel1ReceiveBuffer

MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina123de 136

xxxxdeber ser r eemplazadopor loscor r espondientesvalor esdedesplazamientodecada


r egis tr odentr odelaPCB
Seasumequetodoslospor t pinseencuentr anconfigur adoscomocor r espondey
quela PCBseencuentr aenelespaciodedir eccionesdeE/S.
lib_80186
segmentpublic' code'
assumecs:lib_80186
public
_par allel_ser ial
_par allel_ser ial
pr ocfar
pushbp
salvaelvalor debp
movbp,sp
posicionabpaltopedelstack
user _data
equwor dptr [bp+6]
r elacionalosnombr esdelospar metr os
tr an_fr eq
equwor dptr [bp+8]
consuubicacinenelstack
pushax
salvalosr egistr os
pushdx
quesenecesitan
movdx,S1STS
blanqueatodainter r upcinpendiente
movdx,P1CON
LeeelestadodelPor t1
inax,dx
andax,0feh
seteaPor t1.1comodesalida
outdx,al
movdx,B1CMP
movax,tr an_fr eq
or ax,8000h
seteafuentedeclockcomointer na
outdx,ax
Modo0,1millnbps
movdx,P2CON
seteaPor t2.1comoTXD
movax,0ffh
outdx,al
movdx,S1TBUF
colocaenS1TBUFeldatodelusuar io
movax,
outdx,al
movdx,S1CON
Modo0,NoCTS,Tr ansmisin
xor ax,ax
outdx,ax
movdx,S1STS
Check_4_TI:
inax,dx
testax,0020h
checkeaelbitTI
jzCheck_4_TI
movdx,P1LTCH
seteaP1.0como0
xor ax,ax
outdx,al
notax
seteaP1.0como1
outdx,al
notax
seteaP1.0como0
outdx,al
popdx
r ecuper alosr egistr ossalvados
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

Pgina124de 136

_par allel_ser ial


lib_80186

popax
popbp
r et
endp
ends
end

r ecuper aelvalor debp

2.7.EJEMPLODETRANSMICIONENMODO4
$mod186

2.8.PROGRAMAUSANDOELMODO4
name
EJ EMPLO_TRANSM_ASINC

EjemplodeiniciacindelaSer ialCommunicationsUnit.

CHANNEL_SETUPseteaelcanal0a9600baud,fullduplex,7bitsdedatos,par idadpar ,y
con
tr olvaCTS#.

Seasumequelosr egistr osdelpor tser ialhansidocor r ectamenteseteadosyquelaPCBse


en
cuentr alocalizadaenelespaciodedir eccionesdeE/S.

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

La seal DRQactiva,4clocksantes, desencadenael ciclo de carga del cicloDMA. El valorde


DRQ,4ciclospreviosalaterminacindelcicloDMA,esdecircuandotermineT4,determinarsi
sereiniciaonounnuevociclo.
PorlotantoelperifricopuededesactivarDRQencualquiermomentoentreelpulsoquetermina
T1yelquefinalizalafase1deT4sinoquierereiniciaracontinuacinunnuevocicloDMA.
Enelcasodetransferenciassincronizadaspordestinolasituacinsecomplicapueseldispositivo
deberetenerDRQhastalafinalizacindeT1.Enelciclodedepositoyentoncesnotienetiempo
suficienteparaanticiparconlos4clocksrequeridoselnoreiniciodeotrociclo.Porestarazn
todociclosincronizadopordestinosiempreinsertaluegodelciclodedeposito2TSTATEIDLE.
Lafigurasiguientemuestralasituacindescripta:

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

Si se selecciona para un canal DMA el tipo de sincronizacin NO SINCRONIZADO la


transferencia se iniciar una vez finalizado el seteo del canal DMA correspondiente y solo
finalizarcuandosehallantransferidoslatotalidaddelosbytesindicadosenlainicializacindel
canal.
3.4.TERMINACIONYSUSPENCIONESDETRANSFERENCIASDMA
Cuando una transferencia DMA es terminada se desconocern sucesivos requerimientos DMA
hasta que el canal sea re inicializado nuevamente. Si en cambio una transferencia DMA es
suspendidatemporalmentenoesnecesarioreinicializarelcanal.
UnatransferenciaDMAterminacuando:
A) Si esta programada para terminar por cuenta a cero, cuando el contador de bytes
transferidosllegaacero.
B) Porprogramasefuerzasuterminacin.
UnatransferenciaDMAsesuspendecuando
A) seprocesaunaNMI
B) porprogramasefuerzasususpensin.
3.5.INTERRUPCIONESGENERADASPORLAUNIDADDMA
CadacanalDMApuedeserprogramadoparagenereunainterrupcincuandosucontadordebytes
transferidosalcanzaelvalorcero.
Los canales 2 y 3 son soportados internamente por la unidad de control de interrupciones.Los
canales0y1generanlassalidasDMAI0yDMAI1respectivamente,lascualessisedeseapueden
direccionarseapindeinterrupcionesexternas.
3.6.ORGANIZACINDELOSCANALESDMA
UnmduloDMAconsistededoscanales.
Dentro de cada mdulo existe una unidad lgica que define que canal ser atendido si ambos
requierenserviciosimultneamente.
MICROPROCESADORESYMICROORDENADORES
Versindel 29/08/a

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

Si = 0 el TIMER2 ser la fuente de los requerimientos internos para el


mduloB(canales2y3).Si=1elcanalserie1serlafuente.
RX1acanalDMA3
TX1acanalDMA2
Si = 0 el TIMER2 ser la fuente de los requerimientos internos para el
mduloA(canales0y1).Si=1elcanalserie0serlafuente.
RX0acanalDMA1
TX0acanalDMA0
sies=1elmduloBtieneprioridadALTA
sies=1elmduloAtieneprioridadALTA
SiesDMAPA=DMAPBlaprioridadesrotativa

DMAHALT
Debeser=1parahabilitarlaposibilidaddemodificacindeHNMI.
Debeser=1parahabilitarlaposibilidaddemodificacindeHDMB.
Debeser=1parahabilitarlaposibilidaddemodificacindeHDMA.
espuesto=1cuandolaCPUprocesaunaNMI.Mientrasesteen1suspende
todatransferenciaenambosmdulos.Esreseteadoaceroautomticamente
cuandolaCPUprocesalainstruccinIRET.
sies=1suspendelastransferenciasdelmduloB
sies=1suspendelastransferenciasdelmduloA

3.7.1.SECUENCIACORR ECTAPARALAPROG RAM ACIONDELDM A

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

Das könnte Ihnen auch gefallen