Anda di halaman 1dari 55

INTRODUCCION A LOS MICROCONTROLADORES

Germn Pereira Muoz


ICEI Instituto de Capacitacion en Electronica e Informatica
1
Indice
Introduccin u Ios microprocesudores
Generalidades y cronologia 1-2
El microprocesador y la logica cableada 1-5
Organizacion de un sistema microprocesador 1-6
Estructura de los buses 1-9
Niveles de comunicacion 1-9
Tipos de buses 1-9
Cronologia en la estructura de buses 1-11
Expansion de los buses 1-12
Bloque de memoria 1-13
Tipos de memoria 1-13
Estructura interna de una memoria 1-14
Tiempos de lectura y escritura 1-17
Interconexionado del sistema de memoria 1-22
Estructuras de conexionado 1-22
Estrategias de decodiIicacion 1-23
DecodiIicacion parcial 1-25
DecodiIicacion total 1-27
La unidad central de proceso (CPU) 1-34
Operaciones y Iunciones elementales de la CPU 1-35
La unidad de tiempo y control. El controlador interno 1-36
La unidad aritmetico-logica (ALU) 1-37
El acumulador y registros auxiliares 1-39
Registros de proposito especiIico 1-41
Contador de programa y salida de direcciones 1-41
El registro de instrucciones 1-43
El registro o palabra de estado (PSW) 1-45
El puntero de pila o stack pointer (SP) 1-46
Instrucciones 1-47
Eormato de una instruccion 1-47
Tipos de instrucciones 1-49
Modos de direccionamiento 1-49
Las Subrutinas 1-50
La pila y su puntero 1-53
Las interrupciones 1-55
Las unidades de entrada/salida 1-64
Estructura de las unidades de E/S 1-64
Conexion de las unidades de E/S 1-67
Estructuru internu de Iu fumiIiu MCS-1 2-1
Eamilia MCS-51 2-1
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
2
Patillas de MCS-51 2-3
Arquitectura interna 2-8
Organizacion de la memoria 2-8
Organizacion de los registros de Eunciones especiales 2-10
El Oscilador y circuiteria de reloj 2-13
Versiones HMOS 2-13
Versiones CHMOS 2-14
Diagramas de tiempo de la CPU 2-15
Estructura y Iunciones de los ports 2-17
ConIiguraciones de entrada/salida 2-17
Escritura en un port 2-20
Acceso a la memoria externa 2-20
Seal PSEN 2-23
Seal ALE 2-23
Solapamientos de los espacios de la memoria de
programa y datos externos 2-24
A) Memoria de programa 2-24
B) Memoria de Datos 2-24
Temporizadores/Contadores 2-25
Timer 0 y Timer 1 2-25
Modo 0 2-26
Modo 1 2-28
Modo 2 2-29
Modo 3 2-29
Timer 2 2-30
InterIace Serie 2-33
Modo 0 2-33
Modo 1 2-34
Modo 2 2-34
Modo 3 2-34
Comunicaciones multiprocesador 2-34
Registros de control del puertos serie 2-35
Baud Rate 2-37
Utilizacion del Timer 1 para generar Baud Rates 2-37
Utilizacion del Timer 2 para generar Baud Rates 2-39
Port serie en modo 0 2-40
Port serie en modo 1 2-42
Port serie en modo 2 y 3 2-44
Interrupciones 2-46
Estructura del nivel de prioridad 2-48
Tratamiento de las interrupciones 2-49
Interrupciones externas 2-51
Tiempos de respuesta 2-52
Modos de Iuncionamiento de la
alimentacion/retencion de datos 2-53
Reduccion de la alimentacion para versiones HMOS 2-53
Reduccion de la alimentacion para versiones CHMOS 2-53
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
3
Modo de no operacion (Idle Mode) 2-54
Modo de reduccion de la alimentacion
( power down mode )
2-55
El 8751H 2-57
Programacion de la EPROM 2-57
VeriIicacion del programa 2-58
Bit de seguridad de la memoria de programa 2-59
Caracteristicas de borrado 2-59
Versiones de la Iamilia MCS-51 2-60
Versiones de alta velocidad 2-61
Mejoras en el sistema de memoria 2-61
Set de instrucciones y progrumucin de Iu fumiIiu MCS-1 3-1
Introduccion 3-1
DeIinicion de las instrucciones 3-1
Resumen Iuncional 3-2
Instrucciones de transIerencia de datos 3-3
Generales 3-3
EspeciIicas al acumulador 3-3
De carga de 16 bits 3-4
Instrucciones aritmeticas 3-5
Representacion de los numeros 3-5
Numeros sin signo 3-5
Numeros BCD 3-5
Numeros con signo 3-5
Numeros enteros 3-6
Suma 3-7
Resta 3-7
Multiplicacion 3-7
Division 3-7
Euncionamiento de los Ilags del PSW 3-8
Instrucciones logicas 3-14
Operaciones con un solo operando 3-14
Operaciones con dos operandos 3-15
Instrucciones de transIerencia de control 3-15
Llamadas incondicionales, retornos y saltos 3-15
Saltos condicionales 3-16
Retorno de interrupciones 3-17
Set de instrucciones 3-18
Instrucciones aritmeticas 3-18
ADD A,Rn 3-19
ADD A,directo 3-19
ADD A,Ri 3-20
ADD A,#dato 3-20
ADDC A,Rn 3-21
ADDC A,directo 3-21
ADDC A,Ri 3-22
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
4
ADDC A,#dato 3-22
SUBB A,Rn 3-23
SUBB A,directo 3-23
SUBB A,Ri 3-24
SUBB A,#dato 3-24
INC A 3-25
INC Rn 3-25
INC directo 3-26
INC Ri 3-26
DEC A 3-27
DEC Rn 3-27
DEC directo 3-28
DEC Ri 3-28
INC DPTR 3-29
MUL AB 3-29
DIV AB 3-30
DA A 3-31
Instrucciones logicas 3-32
ANL A,Rn 3-33
ANL A,directo 3-33
ANL A,Ri 3-34
ANL A,#dato 3-34
ANL directo,A 3-35
ANL directo,#dato 3-35
ANL C,bit 3-36
ANL C,/bit 3-36
ORL A,Rn 3-36
ORL A,directo 3-37
ORL A,Ri 3-37
ORL A,#dato 3-38
ORL directo,A 3-38
ORL directo,#dato 3-39
ORL C,bit 3-39
ORL C,/bit 3-40
XRL A,Rn 3-40
XRL A, Ri 3-41
XRL A, directo 3-41
XRL A,#dato 3-42
XRL directo,A 3-42
XRL directo,#dato 3-43
CLR A 3-43
CLR C 3-44
CLR bit 3-44
CPL A 3-44
CPL C 3-45
CPL bit 3-45
RL A 3-45
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
5
RLC A 3-46
RR A 3-46
RRC A 3-47
SWAP A 3-47
SETB C 3-48
SETB bit 3-48
Instrucciones de transIerencia de datos 3-49
MOV A,RN 3-50
MOV A,directo 3-50
MOV A,Ri 3-50
MOV A,#dato 3-51
MOV Rn,A 3-51
MOV Rn,directo 3-51
MOV Rn,#dato 3-52
MOV directo,A 3-52
MOV directo,Rn 3-52
MOV directo,directo 3-53
MOV directo,Ri 3-53
MOV directo,#dato 3-53
MOV Ri,A 3-54
MOV Ri,directo 3-54
MOV Ri,#dato 3-54
MOV DPTR,#dato16 3-55
MOVC A,ADPTR 3-55
MOVC A,APC 3-56
MOVX A,Ri 3-56
MOVX A,DPTR 3-57
MOVX Ri,A 3-57
MOVX DPTR,A 3-58
MOV C,bit 3-58
MOV bit,C 3-51
PUSH directo 3-51
POP directo 3-60
XCH A,Rn 3-60
XCH A,directo 3-60
XCH A,Ri 3-61
XCHD A,Ri 3-61
Instrucciones de llamada, retorno y salto 3-62
ACALL dir11 3-63
LCALL dir 16 3-64
RETI 3-65
RET 3-65
NOP 3-66
LJMP dir16 3-66
SJMP rel 3-67
AJMP dir11 3-67
JMP ADPTR 3-68
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
6
JZ rel 3-68
JNZ rel 3-69
DJNZ Ri,rel 3-69
DJNZ directo,rel 3-70
CJNE A,Ri,rel 3-70
CJNE Rn,#dato,rel 3-71
CJNE Ri,#dato,rel 3-72
CJNE Ri,#dato,rel 3-72
JC rel 3-73
JNC rel 3-73
JB bit,rel 3-74
JNB bit,rel 3-74
JBC bit,rel 3-75
Ejemplo de programacion de los diIerentes dispositivos
internos: interrupciones, timers y puerto serie 3-76
Ejemplo 1 3-76
Ejemplo 2 3-77
Ejemplo 3 3-78
Ejemplo 4 3-79
Ejemplo 5 3-80
Ejemplo 6 3-81
Ejemplo 7 3-82
Ejemplo 8 3-83
Ejemplo 9 3-85
Ejemplo 10 3-87
Ejemplo 11 3-89
Herrumientus puru eI desurroIIo de upIicuciones con 2 mC 4-1
EspeciIicacion de un sistema y herramientas de desarrollo 4-1
Analisis de caracteristicas 4-1
Diseo Hardware/SoItware 4-2
VeriIicacion y puesta a punto 4-3
Herramientas de depuracion hardware.
Analizadores logicos 4-3
Herramientas de depuracion soItware.4-4
Simuladores y emuladores
Herramientas de ensamblado y compilado 4-6
Ensamblador X8051 de 2500 A.D. 4-7
Operacion de ensamblado 4-7
Operacion de enlazado 4-9
Ensamblador A51 de Eranklins 4-10
Operacion de ensamblado 4-10
Operacion de enlazado 4-13
Generacion de librerias 4-14
Operacion de conversion de codigo 4-15
Mapa de registros del 8051 y simbolos empleados por A51 4-19
Herramientas de depurado del soItware 4-22
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
7
Depurado mediante simulador AVSIM51 de 2500 A.D. 4-22
Comandos 4-23
Menu de Iunciones 4-36
Como empezar 4-46
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
8
CaptuIo

Introduccin a Ios microcontroIadores
GeneraIidades y cronoIoga
La introduccion del microprocesador ha signiIicado una verdadera revolucion en el campo
del diseo industrial, y es de prever un mayor impacto con la incorporacion de nuevos
materiales y tecnologias que conIiguren sistemas mas potentes combinados con sistemas de
produccion cada vez mas economicos.
La evolucion de la idea de microprocesador queda plasmada a lo largo de la historia, pero
el ser humano tuvo que esperar hasta 1971 para conseguir un dispositivo Iisico de este
ideal, al Iabricar Intel el 4004, primer microprocesador de 4 bits. Sin embargo existe una
trayectoria historica en la que diIerentes acontecimientos van perIilando el concepto de
sistema programable.
Desde el siglo XVIII, con la revolucion industrial, el objetivo del desarrollo tecnico y
cientiIico ha sido la busqueda de la obtencion de la maxima automatizacion de los procesos
industriales. El termino automati:acion nacio en EE.UU., en las Iabricas de Eord, ante la
necesidad de eliminar los tiempos muertos de las maquinas.
Es a partir de la mitad del siglo XX cuando comienza la autentica carrera hacia la maxima
automatizacion. Es una carrera de obstaculos sin meta aparente, en la que cada obstaculo
esta cada vez mas cerca del otro. Sirva este simil para explicar como la tecnologia avanza a
velocidades vertiginosas.
Debemos revisar los siglos XVIII y XIX y analizar los hechos que acontecieron con la
revolucion industrial.
Los primeros dispositivos de calculo que se conocen son los abacos. Los mas antiguos son
de origen oriental. Hasta el siglo XVII no se construyen las primeras calculadoras
mecanicas, mientras que en el siglo XVIII aparecen las primeras maquinas mecanicas de
multiplicar. El precursor de los computadores modernos es Babbage, quien en 1837
propone una maquina que no llego nunca a construirse, puesto que era demasiado compleja
para la tecnologia mecanica del momento.
EI microprocesador y Ia Igica cabIeada
La utilizacion de sistemas basados en microcomputadores desplaza a la logica cableada y a
sistemas programables mas complejos hacia otros margenes de utilizacion, a la vez que
posibilita la introduccion de la electronica en general, y la inIormatica en particular, en
nuevos campos de aplicacion. Respecto a la sustitucion de sistemas de logica cableada por
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
9
microcomputadores, este presenta las siguientes ventajas:
a) El microprocesador puede reemplazar un numero elevado de circuitos integrados, lo
cual presenta ventajas en cuanto a Iacilidad y modularidad del diseo, reduccion de
costes, aumento de Iiabilidad por el menor numero de elementos e interconexiones
y disminucion del consumo.
b) El sistema resultante es mas Ilexible, por lo que permite mas opciones y/o
modiIicaciones a la vez que posibilita Iuturas expansiones del sistema.
c) Se puede trabajar con estructuras de inIormacion mas desarrolladas, las operaciones
aritmeticas y logicas pueden ser mas complejas y sobre palabras de longitud
variable aumentando la capacidad de decision del sistema.
d) Se posibilita el soporte de un sistema de entradas y salidas potente en cuanto a
numero y diversiIicacion de accesos. e) Se simpliIica ladiagnosis de Iallos, las
reparaciones y el mantenimiento.
e) Permite concebir sistemas de Iorma modular y estructurada.
I) Se reduce el periodo de desarrollo y comercializacion del equipo.
Actualmente las aplicaciones de los microcomputadores cubren diversos sectores, entre los
que cabria destacar:
Controladores programables: automatismos industriales, maquinas herramienta, etc.
Instrumentacion: terminales interactivos, analizadores logicos, instrumentacion biomedica,
Sistemas de adqisicion de datos, etc.
Controladores de periIericos: unidades de discos, control de impresoras, etc.
Control de procesos: sistemas de supervision y control, etc.
Unidades de proceso aritmetico y contables: ordenadores de gestion, cajas registradoras,
etc.
Sistemas para la comunicacion: transmisores y receptores de datos, etc.
Organizacin de un sistema microprocesador
Cualquier sistema microcomputador debe constar basicamente de los siguientes bloques
Iuncionales:
a) Unidad de clculo (ALU): para la ejecucion de operaciones aritmetico y logicas.
b) Unidad de control (UTC): capaz de coordinar el Iuncionamiento de todo el sistema
(Eirmware) y de tomar decisiones en Iuncion de resultados previos.
c) Sistema de Memoria: para la obtencion de instrucciones (Programa) y
almacenamiento de inIormacion (variables del programa).
d) Un Sistema de Entradas/Salida s: para establecer la comunicacion con el mundo
exterior (recepcion de ordenes, datos, y entrega de resultados tanto de caracter
analogico como digital).
En la Fig 3.1 se muestra los diIerente bloques descritos anteriormente e interconexion de
los mismos, Iormando asi la arquitectura tipica de un ordenador de utilizacion general.
Un microprocesador es el resultado de la integracion a alta escala de la unidad aritmetico-
logica (ALU) y el la unidad de tiempo y control (UTC). Un microcomputador es el sistema
completo que utiliza un microprocesador.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
10
Eig. 3.1
En algunos casos, este elemento base contendra tambien parte de otros subsistemas como
lineas de entrada/salidas (I/O) y un bloque de memoria de programa y datos, siendo el caso
limite la integracion en un solo chip de un microcomputador completo, denominando a
estos microcontroladores mC) de gran aplicacion en automatismos y sistemas de control
industrial (MCS-51 de Intel, PIC de Arizona Microchip, etc).
Existen Iundamentalmente dos alternativas limites en cuanto a la organizacion concreta de
un microcomputador:
Estructura Ortogonal: particion del sistema en subsistemas disjuntos donde cada uno
tiene una Iuncion especiIica. De esta Iorma es posible aumentar la capacidad de cada
subsistema (ROM, RAM, accesos de entrada o de salida) de una Iorma independiente. La
Fig 3.2 muestra este tipo de estructura.
Estructura Empaquetada. integracion de varias Iunciones distintas en un mismo circuito
integrado. Existen circuitos integrados con dos o mas Iunciones;
por ejemplo el microcontrolador 8051 de Intel contiene los siguientes bloques:
ROM, RAM, puertos de entrada/salida programables bit a bit, temporizadores (Timers),
circuitos de control de prioridad de interrupciones, puerto de comunicacion serie (UART).
Otros microcontroladores de mayor potencia integran convertidores A/D con varios canales
de entrada (80552). Se puede observar este tipo de estructura en la Fig 3.2 .
En la practica los microcomputadores tienen una estructura mixta, tendiendo hacia la
estructura ortogonal los sistemas mas complejos, con requerimientos de gran capacidad de
memoria y/o accesos periIericos, y hacia una estructura mas empaquetada los sistemas para
aplicaciones menos complejas; como ejemplo podemos citar el empleo de un automata
programable en una determinada tarea de control industrial (Planta embotelladora), siendo
el nucleo de la estructura interna de este sistema generalmente un microcontrolador.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
11
Fig.3. 2
En el desarrollo de distintas Iamilias de microprocesadores y circuitos de soporte
compatibles, se ha seguido diIerentes tendencias, condicionando generalmente la estructura
del ordenador. Entre estas tendencias, no todas incompatibles cabe destacar:
Desarrollo de una CPU de Iorma que Iacilite la interconexion con circuitos estandar de
memoria de entrada/salida (Intel 80XX6, Motrola M68XXX, Zilog Z-8000).
Incorporacion del maximo numero de Iunciones en un circuito dando lugar a
microcomputadores integrados (Intel MCS-51, MCS-96; Texas 9940; NEC mPD-17K;
etc.).
Posibilidad de una capacidad minima Iormando un microcomputador con pocos circuitos
integrados (Rockwell PPS-8, Intel 8085).
Estructura memoria-memoria con pocos registros internos, a Iin de potenciar Iunciones
propias de la CPU y permitir un servicio eIiciente de interrupciones (Texas TMS 9900).
Optimizacion para Iunciones de controlador especializado, mas que para Iormar un
computador versatil de utilizacion general (Eairchild E-8, National SC/MP, ScientiIic
Microsystem SMS 300).
Particion de la ALU en "rebanadas" (bit-slice) para conseguir longitudes de palabra
variables (AMD 2900, Intel 3002, Motorola 10800).
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
12
Posibilidad de microprogramacion para lograr un repertorio de instrucciones arbitrario
(Texas TMSl000, General Instruments CP 1600, National IMP-l6, microprocesadores a
rebanadas)
Estructura de Ios buses
NiveIes de comunicacin
Las necesidades de comunicacion en un sistema micromputador aparecen a tres niveles
distintos:
1) Comunicacion entre los elementos constituyentes de un circuito integrado.
Este sistema de comunicacion constituye los buses internos, de estructura mas o menos
distinta para cada CPU considerada.
2) Comunicacion entre los distintos subsistemas del microcomputador: unidad central de
proceso, memoria y entrada/salida. El conjunto de las vias para este tipo de comunicacion
Iorman los buses externos, en general de caracter sincrono.
3) Comunicacion con periIericos: esta comunicacion es a nivel de sistema de entrada/salida
con periIerico. El conjunto de lineas de transmision Iorman los buses periIericos, en general
de caracter asincrono.
Tipos de buses
La inIormacion desde o hacia la CPU y otros subsistemas puede ser de tres tipos:
direcciones, datos y control; por lo que Iuncionalmente se encontraran tres tipos de buses
en el microcomputador, aunque no esten Iisicamente siempre separados, ya que pueden
estar multiplexados en el tiempo sobre lineas comunes.
La interconexion de la CPU con el sistema de memoria y E/S se realiza mediante estos
buses, tal y como se observa vemos en la Fig 4.1.
BUS DE DIRECCIONES. son lineas de la CPU a memoria y sistema de entradas/salidas
que sirven para enviar la direccion del elemento seleccionado para una transIerencia. Estas
lineas, seran siempre gobernadas por la CPU, salvo en el caso de transIerencias por acceso
directo a memoria (DMA). Pueden compartir total o parcialmente las lineas Iisicas con el
bus de datos.
BUS DE DATOS. son lineas bidireccionales (o dos buses unidireccionales independientes)
para el envio de inIormacion (instrucciones y datos) entre subsistemas. Su anchura, en
general, es la longitud de palabra del microprocesador.
BUS DE CONTROL. son lineas de entrada o salida de la CPU de ordenes o de
inIormacion de estado que permiten coordinar la operacion de todo el sistema
El bus de control presenta variaciones notables de un microprocesador a otro.
Existen dos tendencias en cuanto a su realizacion Iisica:
Dar unas seales de control elementales, que pueden estar codiIicadas, y que deben ser
interpretadas temporalmente respecto al estado en que se producen en cada ciclo de
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
13
maquina. Esta estructura se observa principalmente en microprocesadores de las primeras
generaciones.
Dar un conjunto de seales completo y demultiplexado, de Iorma que las memorias y
periIericos responda a estas de una Iorma pasiva, por lo que no son precisos circuitos
especializados para la decodiIicacion de las seales de control.
Eig. 4. 1
Las distintas lineas del bus de control se pueden agrupar Iuncionalmente en varios tipos
distintos, dependiendo de cada microprocesador en particular el que se disponga de unas y
otras Iunciones, asi como la Iorma de realizarlas:
Seales de sincronizacin de transferencias: gobiernan el intercambio de inIormacion
entre subsistemas. Estas seales son las de validacion de lectura o escritura de memoria y
E/S. En caso de que el microprocesador permita un Iuncionamiento asincrono de los buses,
se dispondra de lineas de control (Ready, Wait,.) que permiten retrasar los ciclos de lectura
y escritura en caso de que la memoria o periIericos tengan un tiempo de acceso superior al
preciso para una transIerencia sincrona gobernada solo por la CPU.
Seales de estado:. Salidas de la CPU que pueden signiIicar dos tipos de inIormacion:
Estado del microprocesador: tipo de ciclo de maquina en curso, inicio de ciclo
(sincronismo), estado del sistema de interrupciones, inicializacion...
Estado de los buses: pueden indicar que los buses estan en estado de alta impedancia, si el
bus de datos esta operando en modo de entrada o de salida, el tipo de inIormacion
(direcciones o datos) presente en un bus multiplexado, etc.
Seales de temporizacin: son las seales de reloj del sistema, de una o varias Iases.
Seales de control de secuencia o modo de operacin. Son primitivas de control externo
que originan:
a) Inicializacion del sistema (Reset).
b) Peticion de interrupciones.
Peticion de ciclos de memoria para transIerencias por DMA.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
14
Paro del sistema (Halt).
Otras seales particulares de cada sistema: algunos microprocesadores poseen seales
especiales como las de reIresco de memoria dinamica (Z-80), lineas de control dedicadas a
Iunciones especiIicas del sistema de E/S, (COSMAC), lineas de la CPU gestionables por
soItware (8085 .
CronoIoga en Ia estructura de buses
En general, la estructura, respecto a si los buses son o no multiplexados, depende del
microprocesador utilizado, aunque se observa una cierta evolucion desde los primeros
microprocesadores comercializados.
En los microprocesadores de la 1 generacin, la limitacion en el numero de patillas (pins)
de los circuitos integrados impone un multiplexaje de direcciones, datos y seales de
control sobre unas mismas vias de comunicacion, lo cual implica una gran complejidad en
los sistemas externos a la CPU (registros, demultiplexores, decodiIicadores,
temporizadores, etc.).
En la 2 generacin y 3 generaciones se tiende a separar los buses por Iunciones,
estableciendo lineas particulares para el bus de control aunque multiplexa datos y
direcciones (8086), debido a la limitacion de encapsulados tipo DIP (Dual In Package),
siendo el numero de patillas mas Irecuente de 40.
En los microprocesadores mas modernos, al incorporar el empleo de encapsulados tipo
PGA (Pin Grid Array), de hasta 168 patillas caso del 486DX; se tiende demultiplexar
totalmente las seales de control de una Iorma que se simpliIique la interconexion con otros
sistemas, y ademas se dispone de mas lineas de control y de interrupciones; de igual Iorma
se demultiplexan datos y direcciones.
Expansin de Ios buses
Existe una tendencia hacia la normalizacion de los buses a Iin de potenciar la
compatibilidad de diversos sistemas. Los intentos de normalizacion cubren dos sectores:
BUSES EXTERNOS. Se pretende que se pueda construir un sistema microcomputador a
partir de tarjetas de circuito impreso compatibles con un bus normalizado, (MUBUS, ISA,
VESA,PCI, PCMCIA etc.).
Para deIinir el bus de comunicacion se debera:
a) DeIinir las seales de Iorma univoca en cuanto a la Iuncion a realizar.
b) DeIinir las temporizaciones de Iorma absoluta (duracion de pulsos y niveles) y
relativa (respecto a otras seales).
c) Establecer la disposicion Iisica en el conector de cada una de las lineas.
BUSES DE COMUNICACION CON PERIFRICOS. Para especiIicar
estos buses se deberan deIinir en sus dos aspectos:
N Hardware: lineas de transmision, Iuncion y disposicion.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
15
N Software: protocolos de comunicacion. Las directrices de normalizacion de estos
buses cubren tres niveles distintos:
Transmision en paralelo con periIericos cercanos al microcomputador.
Transmision en serie con periIericos situados a una distancia mayor que
justiIique el intento de reducir el numero de lineas.
Union a redes de perifricos y/o redes de ordenadores.
BIoque de memoria
Tipos de memorias
Todo sistema ordenador precisa de memoria para: Almacenar las instrucciones que Iorman
el programa.
Almacenar datos y resultados intermedios.
La memoria esta organizada en palabras, cada una con una unica direccion.
La longitud de palabra, en general, es la misma que la del microprocesador y bus de datos.
Las memorias utilizadas en microcomputadores son, en general, de semiconductores y de
acceso aleatorio, estas se Iabrican utilizando diversas tecnologias (TTL, STTL,
MOS,VIOS, CMOS,...) con caracteristicas distintas en tiempos de acceso, posibilidades de
integracion y consumo.
MEMORIAS ROM:
Las memorias de solo lectura (ROM) se utilizan en microcomputadores para almacenar
programas, tablas y constantes.
Existen tres tipos basicos de memorias ROM:
ROM de mscara. son memorias programadas en el proceso de Iabricacion e inalterables
posteriormente. Son las mas economicas en coste por bit pero solo para grandes cantidades,
ya que el coste Iijo es elevado, por lo que son utilizadas en la produccion de grandes series.
ROM programable (PROM): son memorias, que pueden ser programadas por el usuario
pero no modiIicadas, ya que el proceso de programacion es irreversible. Son mas baratas
que las memorias ROM de mascara para pequeas series.
ROM reprogramables (EPROM, EAROM,EEPROM): son memorias que pueden ser
grabadas y borradas o modiIicadas posteriormente. Las memorias EPROM son
especialmente aptas para realizacion de prototipos y pequeas series. En la Eig. 5.1 se
presenta en encapsulado de la memoria EPROM 27C64.
MEMORIAS RAM: Las memorias de escritura y lectura (RAM) tienen como Iinalidad el
almacenamiento de datos y resultados intermedios o tambien se utilizan como memoria de
programa para zonas del mismo que deben ser modiIicadas. Las memorias RAM son
volatiles, es decir, la inIormacion almacenada se pierde si Ialla la alimentacion del sistema.
Existen dos tipos de memoria RAM de acceso aleatorio:
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
16
N RAM estticas. la inIormacion se almacena en un biestable, de Iorma que el
contenido se mantiene mientras haya alimentacion.
N RAM dinmicas. la inIormacion se mantiene en Iorma de carga en la capacidad
puerta-sustrato de un transistor MOS. Esta carga se disipa con el tiempo (del orden
de milisegundos) por lo que es necesario un reIresco periodico consistente en un
ciclo de lectura/escritura en cada bit de memoria, realizado de Iorma paralela con
todos los bits de columna a la vez. La principal desventaja de las memorias
dinamicas es la necesidad de disponer de un circuito de reIresco externo. Las
ventajas de la memoria dinamica es que permiten una mayor densidad de
integracion (actualmente del orden de 64K bits Irente a 16K en las estaticas), al
precisar menos transistores por celula elemental de memoria, por lo que son mas
baratas que las RAM estaticas de la misma capacidad y consumen menos potencia.
Estructura interna de una memoria
El diseo de los circuitos integrados busca siempre una minimizacion de la superIicie de la
oblea ocupada por cada chip. Es, por tanto, logico que el diseador trate de encontrar que
disposicion topologica de los distintos elementos da lugar a una minima superIicie. Las
pastillas de Iorma cuadrada o casi cuadrada tienen ventajas en este sentido y el diseador
trata de encajar los elementos en dicho Iormato. En el caso de las memorias compuestas en
su mayor parte por elementos identicos (las celulas de almacenamiento) la disposicion de
todos ellos en una superIicie cuadrada sugiere una organizacion matricial por Iilas y
columnas.
Por otro lado, la organizacion matricial simpliIica el diseo y permite reducir el numero de
cicuitos complementarios que realizan las Iunciones de escritura y lectura en cada una de
las celulas.
Pensemos en una memoria de 256 posiciones de 1 bit. La pastilla estaria organizada como
16 Iilas por 16 columnas, conteniendo cada posicion una celula de almacenamiento. Para
direccionar cualquiera de estas celulas serian necesarios 8 terminales de direcciones, de los
cuales 4 serian utilizados para seleccionar una Iila y los otros 4 para seleccionar una
columna. La celula que se encontrase en la Iila y en la columna seleccionadas seria la que
resultase leida o escrita.
La estructura matricial de una memoria como esta se presenta en la Fig 5.2 en la que
pueden verse los decodiIicadores de Iilas y columnas. Los terminales de direcciones A4 - A7
seleccionan una de las Iilas, activando todas las celulas que la componen. Los terminales A0
- A3 seleccionan una columna, activando el circuito de lectura/escritura correspondiente, de
modo que el dato leido o escrito es el que se encuentra en la celula interseccion entre Iila y
columna activadas.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
17
Fig. 5. 2
En esta ocasion han de leerse simultaneamente 8 celulas que estan situadas en la misma Iila
pero no consecutivas. La representacion de la seleccion de columnas mediante
multiplexores es solo ilustrativa. La matriz de memoria es de 128 Iilas por 128 columnas.
Las columnas estan agrupadas en grupos de 16 de las cuales el multiplexor selecciona una.
Puesto que hay 8 multiplexores y todos ellos estan gobernados por los mismos 4 bits
procedentes del conjunto de las direcciones, se accede a las 16.384 celulas de ocho en ocho.
Por ejemplo si la direccion es 00H queda activada la Iila 0 y las columnas 0, 16, 32, 48, 64,
80, 96 y 112.
Estas ocho celulas componen la posicion 00H de esta memoria.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
18
Por ultimo vamos a describir el diagrama suministrado por el Iabricante de una memoria
RAM de 256 x 4 cuyas 1024 celulas estan dispuestas en una matriz de 32 Iilas por 32
columnas tal y como se observa en la Fig. 5.4.
En el bloque "circuitos de E/S de columna" existiran 32 elementos, cada uno de ellos
encargado de leer o escribir en una columna. Las columnas se activan de 3 en 3 mediante
un mecanismo similar a los multiplexores de la Iigura 5.3.
Fig 5.4
Tiempos de Iectura y escritura
Para la utilizacion de una memoria en un circuito es de trascendental importancia la
observacion de las secuencias y tiempos relacionados con las mismas que especiIica el
Iabricante. DesaIortunadamente existe gran conIusion sobre la Iorma de Iuncionamiento de
diIerentes pastillas de memoria que viene agravada por el hecho de que los Iabricantes no
han llegado a un lenguaje comun que Iacilite la interpretacion de sus especiIicaciones. Por
todo ello va a resultar aqui imposible exponer el detalle de los diagramas de tiempos que
pueden encontrarse en las hojas de caracteristicas de memorias y cuya consulta es im-
prescindible para poder interpretar en su sentido correcto cuestiones tan importantes como
son la secuencia en que deben aplicarse las seales (datos, direcciones, seleccion de chip,
lectura/escritura, etc.) y las relaciones temporales que deben mantenerse entre ellas.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
19
Pese a todo, vamos a intentar mostrar los conceptos primarios que pueden servir para un
conocimiento mas completo del Iuncionamiento de las pastillas de memoria. Lo que se
expone a continuacion es valido tanto para memorias RAM (exceptuando las dinamicas),
EEPROM y R0M, entendiendo que en estas ultimas el proceso de escritura no es aplicable.
En las memorias EPROM el ciclo de escritura se denomina ciclo de programacion, el cual
debe de realizarse mediante un programador de memorias.
Caracterizacin de las memorias de lectura:
Debido a los diIerentes retardos que se producen en los circuitos que intervienen en el
proceso, la lectura de una memoria no es instantanea, es decir que media un cierto tiempo
desde el momento en que se da la orden de leer una posicion determinada y los datos
aparecen en los terminales de salida. Debemos recordar que para eIectuar un proceso de
lectura hemos de realizar las siguientes acciones:
Establecer la direccion de la posicion que se desea leer en sus entradas de direcciones.
Activar la pastilla globalmente mediante la entrada de seleccion de pastilla chip enable
(CE`).
Asegurarse de que la entrada de seleccion lectura (OE`) esta al nivel activo (generalmente
"0")
El orden en que estas operaciones deben realizarse puede ser importante en algunos casos y
ser diIerente al de esta exposicion. Solo las hojas de caracteristicas pueden inIormarnos de
las secuencias correctas y de los intervalos de tiempos maximos y minimos que se permiten
entre ellas.
Pasando por alto este detalle y suponiendo que estas tres condiciones se cumplen en un
cierto instante t0 el tiempo que transcurre hasta que los datos leidos en las celulas
direccionadas aparezcan en los terminales de salida, instante t1 es el llamado "tiempo de
acceso" TACC.
Una vez obtenido el dato deseado, se pueden alterar las condiciones de los terminales de la
pastilla, bien para eIectuar una lectura de otra posicion, una escritura o, simplemente para
dejarla inactiva. Las relaciones de tiempos a que deben estar sujetas estas seales despues
de realizada la lectura tambien estan impuestas por las especiIicaciones del Iabricante. El
tiempo total utilizado para establecer las seales adecuadas en las entradas, obtener el dato
y desactivar las seales, dejando a la pastilla preparada para una nueva operacion de lectura
o escritura es el llamado "tiempo de ciclo de lectura". De todos los tiempos que componen
el tiempo de ciclo de lectura, el mas importante es sin duda el tiempo de acceso, por lo que
en la mayoria de los casos no es disparatado decir:
TIEMPO DE CICLO DE LECTURA TIEMPO DE ACCESO
Caracterizacin de las memorias de escritur a:
El proceso de escritura de una posicion de memoria esta sujeto a temporizaciones similares
a las descritas para la lectura. Las acciones a eIectuar son las siguientes:
N Establecer la direccion de la posicion en que se desea escribir el dato.
N Activar la pastilla globalmente mediante la entrada de seleccion de pastilla (CE`).
N Establecer el dato que se desea escribir en las entradas de datos.
N Poner la entrada de seleccion escritura (WE`) al nivel adecuado (generalmente '0).
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
20
N Todas estas operaciones han de realizarse en el orden especiIicado por el Iabricante,
guardando entre ellas los intervalos tambien especiIicados. Una vez transcurrido el
tiempo necesario, se procede a retornar la linea WE` a su nivel de reposo (WE` 1).
Este instante es el que se suele tomar como reIerencia para la escritura del dato
deseado en la posicion direccionada
De todas las deIiniciones de los tiempos involucrados en el proceso de escritura,
destacaremos las siguientes:
tWPL TIEMPO DEL IMPULSO DE ESCRITURA
Tiempo minimo durante el cual la entrada WE` debe mantenerse a 0.
tDV TIEMPO DE ESCRITURA
Tiempo minimo anterior al instante de reIerencia (paso de 0 a 1 de la entrada WE`)
durante el cual el dato a escribir debe permanecer estable.
tDH TIEMPO DE MANTENIMIENTO
Tiempo minimo posterior al instante de reIerencia durante el cual el dato a escribir
debe permanecer estable.
Ademas de estos tiempos, tambien conviene especiIicar:
tAS TIEMPO DE ESTABLECIMIENTO DE LA DIRECCION
Tiempo minimo que debe mediar desde que se establece la direccion deseada y se habilita
la pastilla, hasta que la linea WE` puede ponerse a nivel activo ('0) para escritura.
Alguno de estos tiempos, en algunas pastillas, puede ser nulo.
El tiempo total que dura el proceso de escritura sera el llamado tWC TIEMPO DE CICLO
DE ESCRITURA, cuyo valor minimo especiIicara el Iabricante.
Es normal que el tiempo de ciclo de lectura sea aproximadamente igual al tiempo de ciclo
de escritura, denominandose este valor comun "tiempo de ciclo de memoria. La inversa
de este tiempo representara, por tanto, la maxima Irecuencia con que la memoria puede ser
accedida, bien para lectura, bien para escritura.
. La memoria EEPROM especiIicada 28C64 incorpora una linea que permite consultar el
estado listo / ocupado (RDY/BUSY`), en cuanto al ciclo de escritura. Se tarta de una salida
en drenador abierto permitiendo cablearla con una resistencia de Pull-up al resto de lineas
RDY/BUSY` de otros dispositivos de memoria, con objeto de poder ser consultadas por el
mP.
Interconexin deI sistema de memoria
Estructuras de conexionado
Existen dos tipos de estructuras conceptualmente distintos a la Iorma de considerar la
memoria en un microprocesador.
ESTRUCTURA HARVARD: Cuando la memoria de programa (pasiva o solo lectura)
recibe un tratamiento distinto de la memoria de datos (activa o de lectura/escritura). Las
diIerencias pueden consistir en el modo de direccionamiento de Iorma que las lineas de
control (o alguna de ellas) que activen cada subsistema (ROM, RAM) no son comunes,
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
21
pudiendose llegar a una total diIerenciacion de los buses de comunicacion, lo que permitira
un cierto solapamiento entre los ciclos de busqueda y ejecucion de las instrucciones.
Fig. 5. 9
ESTRUCTURA VON NEWMAN O PRINCETON: Cuando el tratamiento de memoria
es unico, sin distincion entre datos e instrucciones. Este sistema es el mas sencillo y el mas
Ilexible, aunque el rendimiento en cuanto a rapidez de ejecucion es inIerior a la estructura
Harvard.
Fig. 5. 10
Al interconectar la CPU con el sistema de memoria se deberan considerar
tres tipos de inIormacion:
N DIRECCIOAES. sirven para seleccionar una posicion de memoria determinada, y
deberan mantenerse estables durante todo el ciclo de memoria (en lectura o
escritura).
N DA1OS. son las lineas que Iorman el bus de datos y a traves de ellas se realiza la
transIerencia de inIormacion.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
22
N COA1ROL. son las seales que activan y sincronizan la transIerencia. Las seales
de control a considerar, en general, son:
4 Lneas de seleccin: se obtienen a partir de la decodiIicacion de las lineas
de direcciones mas signiIicativas, no utilizadas para el direccionamiento
interno de cada circuito integrado. La seleccion se puede dar a dos niveles:
S Seleccion de modulos de memoria
S Seleccion de circuitos de memoria dentro de cada modulo.
4 Lneas de validacin de transferenci a: son seales de activacion de la
lectura o escritura. Indican cuando al microprocesador entran los datos
(lectura) o que los datos enviados por la CPU son validos (escritura).
4 Lneas de Sincronizacin: algunos mP incorporan alguna linea (READY)
que permite alargar el ciclo RD/WR a peticion de la memoria u otro
dispositivo periIerico seleccionado, pudiendose de esta Iorma acomodar el
tiempo de acceso al ciclo maquina.
Estrategias de decodificacin
De esta Iorma, una primera condicion que debe cumplir la conexion de la memoria a un
sistema mP es la de prever las lineas necesarias para poder seleccionar cualquier posicion
de memoria.
Si todas las unidades de memoria disponibles en el mercado tuvieran una capacidad de 64
Kbytes (numero maximo de posiciones de memoria que puede direccionarse con un
microprocesador de 8 bits), esta condicion estaria resuelta sin mas que conectar las dieciseis
lineas del bus de direcciones a las dieciseis lineas de direccion de memoria y por tanto cada
direccion que apareceria en el bus seleccionaria una de las 64 K posiciones de la memoria.
En realidad esto no es asi, y los diIerentes tipos de memoria poseen distintos tipos de
estructura y capacidad. Por ejemplo, existen memorias de 4 K x 1 bit o1 K x 8 bits, etc.
Esta gran variedad de memorias presenta dos problemas en cuanto a su conexion:
Hay que determinar cual de las dieciseis lineas del bus de direcciones hay que utilizar.
Si se requieren varias unidades de memoria, disear un sistema que seleccione en que
unidad se encuentra la inIormacion.
El primer problema tiene Iacil solucion, puesto que todas las memorias disponen de unas
entradas de direccion en Iuncion de su capacidad de almacenamiento. Asi pues, una
memoria de 1 K 1024 posiciones de memoria dispone de 10 entradas de direccion (A0-
A9), puesto que 2 10 1024 y estas seran las que se conectaran a sus respectivas lineas del
bus de direcciones. Esta situacion es la que se ilustra en la Fig. 5.11.
Ademas de las entradas de direccion, las memorias disponen de una o mas entradas de
seleccion del dispositivo (entradas CS o chip select) que se utilizan para seleccionar la
unidad deseada cuando en el bus de direcciones aparece la direccion de una de las
posiciones de esta unidad.
En el segundo caso, la solucion no es tan sencilla, ya que para cada direccion hay que
seleccionar la unidad a la que pertenece.
Consideremos la situacion planteada en la Fig. 5.12 en la que deben conectarse dos
unidades de memoria de 1 K x 8. Como las dos unidades tienen conectadas sus lineas de
direccion A0-A9 al bus, cuando una de las 1024 posiciones aparezcan en el bus de
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
23
direcciones, el dato seleccionado aparecera en el bus de datos de ambas memorias,
produciendose un eIecto llamado "cruce de bus, debido a que se han seleccionado dos
unidades de memoria a la vez y a que las salidas de datos estan unidas entre si. Para
solucionar esto hay que utilizar las lineas CS para seleccionar una sola unidad a la vez
mientras que las salidas de datos de las demas quedan en estado de alta impedancia no
oIreciendo ninguna carga al bus. Todas estas consideraciones planteadas desembocan en lo
que llamamos "estrategias de decodificacin`, es decir metodos que Iacilitan la seleccion
de la unidad de memoria deseada.
Fig. 5.11
ig. 5. 12
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
24
Decodificacin parciaI
Este es un metodo muy sencillo y por consiguiente con un coste muy bajo, que permite
realizar la seleccion de una unidad de memoria sin que las demas queden aIectadas. La Fig
5.13 ilustra el mismo ejemplo anterior, pero con el problema de la seleccion solucionado.
Consiste en conectar la entrada CS a la linea de direccion A15 pero intercalando en una de
las unidades un inversor. De esta manera la memoria 1 se seleccionara cuando A15 0 y la
memoria 2 cuando A15 1, siendo imposible que en cualquier caso las dos memorias se
seleccionen a la vez.
Evidentemente, este tipo de decodiIicacion presenta un problema: existen muchas
combinaciones que seleccionan cualquiera de las dos memorias. Asi, por ejemplo, la
direccion 8000 H en la que A15 1 selecciona la memoria 2, asi como tambien la direccion
A000 H. Y la direccion 0800 H selecciona la memoria 1 como tambien la direccion 0000H.
Fig. 5. 13
Si construimos una tabla en la que esten representadas todas las posibles direcciones desde
la 0000 H hasta la EEEE H, veremos que siempre hay alguna de las dos memorias
seleccionadas.
Para que esta decodiIicacion Iuncione en un sistema, deberiamos asignar a la memoria 1
una zona comprendida entre la 0000 H y la 7EEE H y a la memoria 2 una zona
comprendida entre la 8000 H y la EEEE H.
El ejemplo anterior es, evidentemente, muy sencillo y no reIleja la realidad de muchos de
los sistemas que existen actualmente. Por ello, en la Fig 5.14 se presenta un circuito que
utiliza el metodo de la decodiIicacion parcial en el que se han conectado cuatro unidades de
memoria RAM MC6810 de 128x8 y una memoria EPROM del tipo TMS2716 de 2K x 8.
Las memorias RAM, al tener una capacidad de 128 bytes, necesitan para su
direccionamiento siete lineas del bus de direcciones. Con esto liemos solucionado el
direccionamiento de las 128 posiciones de memoria. Ahora hemos de solucionar el
problema de la seleccion de cada unidad para que solo lo haga una de ellas. Para ello
utilizamos las entradas CS que en el caso de este tipo de memoria es de cuatro. Asignamos
entonces un espacio de memoria a cada una de ellas de manera que sean consecutivas, es
decir, a la primera le asignamos la zona 0000-007E H, a la segunda de la 0080-00EE H y asi
sucesivamente, tal como muestra la tabla representada en la misma Iigura.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
25
Fig. 5. 14
Cada zona comprende 128 posiciones de memoria que es la capacidad de cada una de las
unidades.
Para seleccionar la primera memoria conectamos las entradas CS a las lineas de direccion
A7, A8, A9 y A15, puesto que los bits correspondientes a estas lineas siempre se mantienen
a cero sea cual sea la posicion de memoria seleccionada dentro de la gama 0000-007E.
Para la segunda memoria conectamos las entradas CS directamente a las lineas A8, A9,
A15 y la linea A7 con un inversor, puesto que este bit siempre esta a uno dentro de su gama
de actuacion.
En las otras dos memorias RAM se conectan inversores en las lineas A8 para la RAM-3 y
en la A7 y A8 para la RAM-4. La tabla de la Fig. 5.14 muestra claramente toda esta
disposicion.
Para la memoria EPROM, el procedimiento es analogo. Se ha asignado a esta la zona E800-
EEEE; es decir, 2 K bytes. Utiliza como lineas de direccion de la A0-Al0 y dispone de una
sola entrada CS. En este caso y para diIerenciarla del resto de unidades conectamos la linea
A15 a traves de un inversor a la entrada CS. De este modo, solo cuando esta linea este a
uno, seleccionara la memoria EPROM, es decir siempre que en el bus aparezca una
direccion comprendida entre E800 y la EEEE.
Las lineas Al l-A14 no se utilizan para seleccion y por consiguiente no se conectan a
ninguna unidad.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
26
Como ya se ha dicho anteriormente, el metodo de decodiIicacion parcial es sencillo y
economico (en el ejemplo anterior se han utilizado solamente cinco inversores) pero tiene
el inconveniente de que al no utilizar todas las lineas de direccion, hace diIicil la Iutura
expansion del sistema y tiene poca Ilexibilidad cuando se quieren realizar modiIicaciones.
Decodificacin totaI
Se dice que un sistema microprocesador emplea el metodo de la decodiIicacion total,
cuando todas sus lineas de direccion A0-A15 se utilizan para acceder a cada posicion de
memoria y que cada una de ellas solo responde a una sola direccion. Evidentemente, este
metodo es mucho mas eIiciente porque prevee todas las posibilidades Iuturas de expansion,
pero resulta algo mas complejo y costoso ya que requiere circuitos especializados. Existen
varias estrategias empleadas en el metodo de la decodiIicacion total y se pueden dividir en
cuatro grupos, segun el tipo de componentes empleados:
Lgica aleatoria (puertas AND, NAND, OR, NOR e inversores)
Decodificadores
Redes lgicas programables (PAL).
Se describiran cada uno de estos metodos haciendo las consideraciones pertinentes en cada
caso.
Lgica aIeatoria
La decodiIicacion se realiza utilizando un numero determinado de puertas logicas que
conectadas convenientemente implementan la Iuncion deseada. Si deseamos realizar la
decodiIicacion para una memoria que actue en la zona A000-A3EEH utilizaremos las lineas
A0-A9 para direccionamiento y las Al0-A15 para activar la entrada CS. El circuito
empleado para realizar esta decodiIicacion esta representado en la Fig. 5.15 y responde a la
ecuacion logica CS`(Al5` * A14 * Al3` * Al2 * A11 * A10)` utilizandose para ello dos
inversores y una puerta de seis entradas.
Cuando el numero de memorias es mayor, la cantidad de puertas necesarias hace que el
metodo resulte costoso y poco Ilexible.
ig. 5. 15
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
27
La utilizacion de decodiIicadores de M entradas y N salidas donde N 2 M, resuelve en
gran parte el problema de la decodiIicacion total de una manera mucho mas sencilla. Los
mas empleados son el 74L5 154, decodiIicador de cuatro lineas a dieciseis, el 74L5138,
decodiIicador de tres a ocho lineas y el 74L5139, doble decodiIicador de dos a cuatro
lineas, los cuales ademas de tener entradas de habilitacion que aumentan la versatilidad,
todas sus salidas son activas a nivel bajo, es decir, la salida seleccionada queda a nivel cero.
La Eig. 5.16 muestra un ejemplo de como realizar la decodiIicacion total, empleando
decodiIicadores, en un sistema en el que se desean conectar seis memorias RAM MC6810
de 128 x 8 y cuatro memorias EPROM de 1K x 8 TM52708.
La tabla de la misma Iigura muestra las direcciones asignadas a cada memoria asi como el
estado de los bits utilizados para decodiIicacion.
En este ejemplo se ha utilizado un decodiIicador 74L5154 para seleccionar todas las
unidades de memoria RAM, utilizando las cuatro lineas de direccion de mayor peso A12-
A15. Cuando todas estas lineas estan a nivel bajo, seleccionan la salida Q15 que se utiliza
como seal de habilitacion de un segundo decodiIicador 74L5139 que, a traves de las lineas
de direccion Al0-Al 1 realizan la seleccion de las cuatro memorias EPROM conectadas al
bus. Como puede verse, el empleo de decodiIicadores Iacilita en gran parte y con
relativamente pocos componentes (dos decodiIicadores y cuatro inversores), la solucion al
problema de la decodiIicacion total. Ademas, la adicion de nuevas unidades de memoria al
sistema no oIrece ninguna diIicultad, puesto que en el decodiIicador 74L5154 quedan aun
trece lineas direccionables por A12-A15 que pueden ser utilizadas para este Iin. Por otra
parte son muchas las combinaciones a realizar con un decodiIicador sin mas que cambiar
las lineas de direccion conectadas a el o bien combinando dos o mas decodiIicadores, con
lo que podemos dividir el espacio de memoria en tantas partes como deseemos. La Fig 5.17
presenta un ejemplo de como utilizar una combinacion de dos decodiIicadores 74L5138
para obtener particiones de 32 bits.
Fig. 5. 17
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
28
Decodificacin con redes Igicas programabIes (PAL)
Los dispositivos PAL pueden considerarse como un conjunto de puertas AND-OR
dispuestas convenientemente Iormando matrices producto y suma de manera que puedan
utilizarse los diagramas de Karnaugh para la implementacion de Iunciones logicas.
Para explicarlo de una manera sencilla, una PAL es un dispositivo logico Iormado por
multitud de puertas logicas interconectadas de manera conveniente. Ahora bien, las PAL
disponen de una caracteristica importante que modiIica esta idea: la posibilidad de
rogramacion de las interconexiones entre las puertas. Una disposicion de conexion Iija solo
podria dar lugar a una unica Iuncion de salida y por tanto no tendria ninguna aplicacion
practica a menos que esta Iuera la Iuncion deseada.
La posibilidad de programar ciertas interconexiones proporciona la generacion de multitud
de Iunciones logicas de salida y por tanto la Iacultad de obtener las ecuaciones para la
decodiIicacion de las memorias.
En la Fig 5.18 se muestra una disposicion tipica de una PAL en la que las intersecciones
pueden ser programadas y estan Iormadas por Iusibles al igual que en las memorias PROM.
La Iusion de este implica la apertura de la conexion y viceversa.
Aunque en la representacion mas general, cada puerta AND solo dispone de una sola
entrada, en realidad cada una de ellas tiene 2 N entradas siendo N el numero de entradas de
la PAL.
Al igual que las memorias PROM, una vez programada la PAL no es posible volver a
modiIicar su contenido, es decir, variar la Iuncion logica de salida. No obstante, existen en
el mercado un tipo de PAL que, al igual que las memorias EPROM, disponen de una
ventana para su borrado y posterior programacion.
Tambien existen tipos de PAL reprogramables electricamente o GAL.
Para la implementacion de Iunciones logicas mediante dispositivos PAL es necesario
disponer las sumas de productos. Si la Iuncion a generar es compleja, hay que recurrir a los
sistemas de simpliIicacion como por ejemplo los diagramas de Karnaugh.
La utilizacion de una PAL como decodiIicador de direcciones en un sistema
microprocesador no requiere, por lo general, Iunciones demasiado complejas y sus
ecuaciones pueden obtenerse directamente a traves de la tabla de direcciones.
Fig. 5. 18
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
29
A eIectos de notacion, se representa con un circulo las uniones programables que deben
dejarse intactas. Las entradas de la PAL se toman de las lineas de direccion mas una seal
de control que indica la validez de los estados Las Iunciones obtenidas realizan la
decodiIicacion para las dos memorias EPROM cuyas direcciones estan comprendidas entre
la 8000H y la EEEEH, y dos memorias RAM con direcciones comprendidas entre la 4000H
y la 4EEEH. A continuacion se describen las ecuaciones simpliIicadas:
EPROM1` A15 * A14
EPROM2`A15 * A14`
RAM1A15` A14 A13` A12` A11
RAM2 A15` A14 A13` A12` A11`
La unidad centraI de proceso (CPU)
La unidad central de proceso (CPU) es el sistema principal de un microcomputador, ya que
es el elemento capaz de interpretar las instrucciones y coordinar su ejecucion. La CPU esta
constituida por tres subsistemas Iuncionales:
N UNIDAD ARITMTICA Y LOGICA (ALU): es el elemento calculador del
sistema, capaz de realizar operaciones logicas (AND, OR, X0R...) y aritmeticas
(suma, resta...).
N UNIDAD DE TIEMPO Y CONTROL (UTC). es el elemento controlador del
Ilujo de inIormacion (instrucciones y datos) en el sistema. Las Iunciones de la
unidad de control son:
a) busqueda de instrucciones en memoria (Fetch).
b) decodiIicacion, interpretacion y ejecucion de las instrucciones;
c) control de la secuencia de ejecucion;
d) reconocimiento de primitivas externas de control: interrupciones, peticion de
acceso directo a memoria, ordenes de paro, espera, inicializacion, etc.
N REGISTROS. Empleados para guardar temporalmente inIormacion con la cual va
a operar la ALU, o registros punteros para direccionar en memoria, contador de
programa, puntero del stack o pila.
Estos tres subsistemas estan total o parcialmente integrados en un circuito LS1, el que se
denomina microprocesador.
Operaciones y funciones eIementaIes de Ia CPU
El microprocesador o CPU es, por supuesto, el componente central de cualquier sistema
con microprocesador. Controla las Iunciones realizadas por otros dispositivos del sistema y
proporciona al mismo su capacidad aritmetica y logica. El microprocesador busca
instrucciones de la memoria, las decodiIica y las ejecuta. ReIerencia memoria y
dispositivos E/S en busca de datos y responde a seales de control procedentes de
dispositivos externos.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
30
Las seales de control generadas por dispositivos externos pueden hacer que el
microprocesador tome algunas de las siguientes acciones:
N Reset, provoca que la ejecucion del programa comience desde alguna posicion
inicial.
N Esperar una cantidad de tiempo suIiciente para acceder a una determinada posicion
de memoria.
N Interrumpir la ejecucion del programa en curso y biIurcar a una posicion de
memoria donde empieza una subrutina que da servicio al dispositivo externo
causante de la interrupcion.
N Suspender su operacion y poner sus patas de direcciones y datos en Ilotacion,
permitiendo que otros dispositivos lean o escriban directamente en memoria.
La unidad de tiempo y controI. EI controIador interno
La Unidad de Tiempo y Control UTC o controlador interno es el circuito que gobierna y
coordina todas las operaciones que tienen lugar dentro de la CPU es la UTC. Se trata de un
circuito eminentemente secuencial que genera las micro ordenes que reciben los elementos
operativos (ALU y registros). Ordenes tales como que un registro acepte un dato o lo
entregue al bus, que un registro se incremente, decremente o desplace, que la ALU ejecute
una Iuncion determinada de su repertorio, todas ellas proceden del controlador interno. Para
que el controlador interno pueda desempear su Iuncion debe recibir dos inIormaciones
de distinta procedencia:
N La INSTRUCCION, procedente del exterior de la CPU
N El ESTADO, procedente del interior de la CPU
Todo ello puede representarse graIicamente del modo indicado en la Fig 6.2.
La instruccion es una combinacion de bits cuyo valor representa un determinado codigo de
operacion, el cual debe realizar la CPU. La UTC decodiIica o interpreta el signiIicado de la
instruccion y la descompone en micro ordenes u operaciones elementales sobre la ALU y
los diIerentes registros internos de la CPU.
Fig. 6. 2
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
31
Por otro lado, la accion de la UTC esta condicionada por la historia anterior de la CPU
presente en la palabra de estado o PSW. Por esta entrada llegan al controlador
inIormaciones tales como que en un registro hay un valor positivo o negativo o nulo, se ha
producido desbordamiento en una operacion de la ALU, etc.. En Iuncion de esta
inIormacion la UTC puede generar microordenes diIerentes para una misma instruccion.
La UTC es un circuito sincrono, es decir que todos sus cambios de estado estan
acompasados al ritmo de una seal de reloj que la cual puede ser interna externa a la CPU y
que se utiliza para sincronizar el Iuncionamiento de todo el sistema. Las microordenes o
seales de salida de la UTC bien podrian ser del tipo que muestra la Fig. 6.3.
Fig. 6. 3
Cada salida de la UTC genera una microorden especiIica destinada a actuar sobre un
elemento de la CPU.
Por ejemplo, una de estas seales da lugar a que un dato se escriba en un registro
determinado, otra seal activa la salida de un registro cuyo contenido pasa al bus interno,
otras indican a la ALU que debe realizar una suma, etc..
Logicamente el Iabricante de la pastilla busca la Iorma de realizar la UTC de la manera mas
eIicaz y que ocupe menos superIicie. Es Irecuente que se utilicen para ello circuitos
basados en PLA (Programmable Logic Array) o incluso en ROM. Algunos
microprocesadores permiten que el usuario deIina el comportamiento que desee que tenga
el controlador ante un codigo de instruccion dado, es decir, permiten programar el propio
controlador Estos microprocesadores se denominan microprogramables. Se denomina
microprogramacion a la tecnica que permite deIinir el comportamiento del controlador.
Volviendo a la Fig. 6.1. vamos a describir cada uno de los elementos internos que existen
en la CPU. Nos ocuparemos Iundamentalmente de aquellos elementos basicos que, con
algunas diIerencias, existen en todos los microprocesadores.
La unidad aritmtico Igica (ALU)
Es un circuito combinacional, capaz de realizar ciertas operaciones de tipo logico o de tipo
aritmetico entre dos operandos, generando un resultado que se deposita en un registro
llamado acumulador, tal y como ilustra la Fig. 6.4. Para ello es preciso que cada uno de los
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
32
operandos este situado en la entrada correspondiente de la ALU. Estas variables de entrada
determinaran la salida de la ALU de acuerdo con las tablas de verdad a las que responde.
Las entradas de control que deben considerarse tambien como entradas al circuito
combinacional ALU a la hora de deIinir las tablas de verdad, permiten seleccionar el tipo
de operacion que se va a realizar. Por ejemplo, 3 lineas de control permiten deIinir 8
operaciones diIerentes que podrian ser: AND, OB, EXOR, NOT, NAND, NOR, SUMA
BINARIA y RESTA BINARIA. Estas serian las operaciones que es capaz de realizar la
ALU.
Fig. 6. 4
El acumulador es un registro de carga paralelo, lectura paralelo que recoge el resultado de
la operacion de la ALU. Su orden de carga (ENABLE) procedera del controlador interno y
debera llegar despues de que los operandos han sido cargados en sus registros respectivos
con el suIiciente retraso como para que la salida de la ALU haya alcanzado su valor estable.
En la Fig 6.5.a) vemos que se utilizan tres registros en torno a la ALU:
Dos registros de operando y un acumulador. No obstante, la mayoria de los Iabricantes
optan por suprimir uno de los registros de operando sustituyendolo por el propio
acumulador. De esta Iorma el acumulador cumple dos misiones:
Antes de la operacin: almacena un operando
Despus de la operacin: almacena el resultado
Esto es posible debido al retardo de la ALU, incapaz de generar instantaneamente el
resultado. De este modo se tiene la ventaja de eliminar un registro (superIicie del chip) a
costa de que uno de los operandos se destruye en la operacion. La estructura resultante
modiIicacion es la que se muestra en la Fig. 6.5 b).
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
33
a) b)
Fig. 6. 5
EL acumuIador y registros auxiIiares
La CPU hace uso de un grupo de registros que pueden ser utilizados durante la ejecucion
del programa. Sirven para almacenar temporalmente datos y resultados intermedios, tal y
como se observaba al describir la ALU.
Este tipo de registros puede ser considerado como posiciones de memoria entro de la CPU.
Esta caracteristica hace que el tiempo de acceso a estos registros sea muy rapido. Los
registros auxiliares pueden utilizarse, entre otras, para las siguientes Iunciones:
Almacenamiento de datos temporales sin tener que acudir a la memoria exterior
Eacilitar la generacion de direcciones de memoria
Los microcontroladores mC) monochip disponen, dentro del integrado, de memoria de
datos y/o de programa. Todas estas posiciones pueden ser consideradas como "registros
auxiliares.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
34
Estos registro se denominan en cada CPU que reciben son B, C, D, H, L, R0, R1, R2, R3,
ETC. La Fig. 6.6 a) ilustra un registro generico de lectura paralelo escritura paralelo, las
Iiguras b) y c) son representaciones del mismo de Iorma simpliIicada.
Fig. 6. 6
EL ACUMULADOR
El acumulador (A o ACC) es un registro de proposito general , que recibe un trato
privilegiado ya que en combinacion con la ALU actua de la Iorma descrita anteriormente,
que corresponde a la propia de un registro de carga paralelo/lectura paralelo. Pero ademas,
bien podria encargarse por si mismo de eIectuar a1gunas operaciones, como se ilustra en la
Eig. 6.7. a), tales como DESPLAZAMIENTOS (b) y ROTACIONES (c) a izquierda o
derecha asi como INCREMENTOS y DECREMENTOS del dato que contiene, Eacilmente
podriamos sintetizar con biestables un circuito secuencial que tuviese este comportamiento.
Fig. 6. 7de una Iorma, algunos nombres
Registros de propsito especfico
El control de la CPU exige disponer de unos registros asociados de proposito especiIico,
ademas de la UTC. Estos registros son:
N Contador de programa (PC).
N Registro de direcciones temporal .
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
35
N Registro de instrucciones (RI).
N Registro o palabra de estado (PSW).
N Puntero de Pila o Stack pointer (SP).
Fig. 6.7
EL CONTADOR DE PROGRAMA Y CIRCUITO DE SALIDA DE DIRECCIONES
La CPU es el elemento que se encarga de direccionar la memoria que contiene tanto el
propio programa como datos de cualquier tipo Para ello debe disponer de un conjunto de
terminales de salida que se conectaran al bus de direcciones del subsistema de memoria. El
numero de terminales que constituyen la salida de direcciones puede ser cualquiera y sera el
determinante de la maxima dimension de la memoria que
CAPACIDAD DE DIRECCIONAMIENTO 2 N LINEAS DE DIRECCION
Es Irecuente en microprocesadores de 8 bits que el numero de terminales de direcciones sea
de 16 si bien aumentar en los microprocesadores mas modernos.
Con 16 terminales de direcciones A(0-15) es posible direccionar hasta 65.535 posiciones de
memoria y, con el objeto de acogernos a un caso concreto, supondremos que mientras no se
indique lo contrario, la CPU que se esta presentando dispone precisamente de estos 16
terminales. A una combinacion cualquiera de valores binarios de estos terminales la
denominaremos genericamente "direccion".
Las direcciones que impone en su salida la mente de dos tipos:
N Direccion para acceder a una posicion de memoria en la que se va a encontrar una
instruccion a eiecutar.
N Direccion para acceder a una posicion de memoria en la que se va a leer o a escribir
un dato.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
36
Cuando la CPU se dirige a memoria para encontrar instrucciones del programa que esta
ejecutando suele hacerlo a posiciones consecutivas, precisamente a la zona que llamamos
memoria de programa. En este caso, el elemento interno de la CPU que se encarga de
presentar su contenido en los terminales de direcciones es el llamado contador de
programa. El contador de programa sera, por tanto, un contador ascendente-descendente,
circuito secuencial ya conocido el cual se observa en la Eig.6.8.
Su numero de bits estara en consonancia con el numero de terminales de direccion
existentes.
Fig. 6. 8
Pero el programa no siempre se ejecuta de Iorma estrictamente consecutiva, sino que
pueden producirse saltos o rupturas de secuencia que el contador de programa debe ser
capaz de manejar. Para ello debe disponer de entradas de carga paralelo que permitan que
su contenido pueda ser alterado bruscamente.
Cuando la CPU eIectua un direccionamiento a memoria para leer o escribir un dato, la
direccion a la que accede no tiene ninguna relacion con el contador de programa y, por
tanto, debe de existir algun camino para que la direccion aparezca en los terminales de
salida correspondientes.
Todas estas posibilidades estan representadas a modo de bloques en la Fig 6.9. En ella
podemos ver que la direccion que en cada momento esta presente en los terminales de
direcciones procede de un registro "registro de salida de direcciones". La inIormacion
presente en este registro puede proceder bien del contador de programa y otros registros de
la CPU a traves del bus interno. Por otro lado el contador de programa tambien puede
alterar su contenido directamente por medio de sus entradas de carga paralelo.
Como hemos dicho, el microprocesador que estamos considerando trabaja con datos de 8
bits y dispone de 16 bits de direcciones. Queda, por tanto, explicar de que Iorma es posible
que los registros asociados a la salida de direcciones puedan cargarse con inIormacion de
solo 8 bits, que es la que puede transportar el bus interno. La solucion no es otra que la
descomposicion de una direccion (palabra de 16 bits) en dos palabras de 8 bits que son
transmitidas en un orden preestablecido. Por esta razon, en la Fig 6.9 los registros de 16
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
37
bits aparecen divididos en dos mitades con entradas independientes conectadas al bus
interno. La UTC o controlador interno de la CPU se encarga de coordinar estas operaciones
sin que su detalle sea necesario para la utilizacion del mP.
Fig. 6. 9
EL REGISTRO DE INSTRUCCIONES
La CPU es capaz de ejecutar un numero Iinito de acciones que le vienen sealadas desde el
exterior mediante una inIormacion binaria que se denomina "Instruccin".
fig. 6. 10
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
38
Una instruccion es una palabra, combinacion binaria de unos y ceros que indica a la CPU
el tipo de operacion que debe realizar a continuacion.
Como ya se ha comentado la UTC interpretara el codigo de operacion desencadenando las
acciones necesarias sobre los diIerentes elementos internos de la CPU.
Las instrucciones escritas en la secuencia adecuada han sido depositadas previamente en la
memoria, concretamente en la zona denominada "memoria de programa. Cada una de
esas instrucciones es leida por la CPU y debe llegar a presencia de la UTC, siguiendo el
camino sealado por la Ilecha sobre la Fig. 6.10.
La Iorma en que la instruccion es extraida de la memoria no es diIerente a cualquier otro
proceso de lectura, sin embargo la CPU debe conocer que esa inIormacion leida es
precisamente una instruccion; esto debe estar implementado en el microcodigo de cada
instruccion cuyas ultimas micro-ordenes consistiran en realizar una nueva busqueda de
instruccion o "Ciclo de Fetch" , Fig. 6.11.
Fig. 6. 11
El registro de instrucciones es pues el lugar en el que se deposita el codigo de operacion de
una instruccion, quedando presente a la entrada del controlador para indicarle la secuencia
de acciones que de desarrollar. Este registro tendra tantos bits como tiene la longitud del
bus de datos de la CPU.
EL REGISTRO O PALABRA DE ESTADO (PSW)
El registro de Estado tambien llamado "registro de cdigos de condicin" esta constituido
por un conjunto de biestables independientes, es decir que pueden ser puestos a "1" o a "0"
aisladamente los unos de los otros, segun la Fig. 6.12. Cada uno de ellos esta destinado a
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
39
memorizar el hecho de que un determinado suceso ha tenido lugar dentro de la CPU. Cada
uno de estos biestables se suele denominar ELAG (bandera) simbolizando asi su Iuncion de
"elemento visible" que pretende llamar la atencion sobre el hecho que representa. Los
sucesos que suelen estar sealados mediante banderas son tipicamente los siguientes:
N El resultado de una operacion ha sido nulo (ELAG DE CERO)
N El resultado de una operacion ha sido negativo (ELAG DE SIGNO)
N El resultado de una operacion desborda la capacidad del registro (ELAG DE
DESBORDAMIENTO), etc.
Fig. 6. 12
El estado de los Ilags es consultado por el controlador interno y condicionara su modo de
actuacion en el desarrollo de una instruccion. Tambien puede ser consultado a voluntad del
programador y sera la clave para que los programas "tomen decisiones" en Iuncion de las
circunstancias.
Aunque cada uno de los bits del registro de estado sea independiente de los restantes, todos
ellos estan organizados en Iorma de un registro que tambien puede ser leido o escrito
globalmente por la CPU de la misma Iorma que cualquier otro.
EL PUNTERO DE PILA O STACK POINTER (SP)
El stack pointer SP es un registro que se utiliza como indicador de una posicion de una
zona de memoria que denominamos pila (stack).
Este registro requiere una atencion especial y se hace necesario a la hora de ejecutar tramos
de programa denominados "Subrutinas" o en rutinas de atencion a una "Interrupcin" o
evento externo. Mas adelante se estudiara con cierta proIundidad el Iuncionamiento de este
registro.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
40
Instrucciones
Formato de una instruccin
Es conveniente desarrollar un poco mas el concepto de instruccin explicado hasta ahora
de Iorma muy superIicial. Una primera deIinicion de instruccion podria ser:
Una Instruccin es una inIormacion elemental que se suministra a la CPU, a partir de la
cual esta desarrolla una secuencia de acciones que le permiten llevar a cabo una
determinada operacion de entre las que componen su repertorio.
Puesto que la unica inIormacion asequible para la CPU es la binaria, una instruccion no
sera mas que una combinacion de ceros y unos con un signiIicado preestablecido. Sin
embargo, con el Iin de Iacilitar al programador recordar el signiIicado de estos codigos, es
conveniente adjudicar a cada instruccion una abreviatura que sintetice la accion de la
misma. Esta abreviatura se denomina "Cdigo nemnico" debiendo resaltarse que solo es
una Iorma mas clara de representar las instrucciones de cara al programador, ya que la CPU
solo entiende palabras binarias.
En la tabla siguiente se presentan a titulo ilustrativo algunas de las instrucciones que es
capaz de ejecutar un microprocesador concreto, en este caso la Iamilia de icrocontroladores
MCS-51 de INTEL. Los codigos nemonicos asignados:
Los codigos nemonicos utilizados tienen un signiIicado sencillo en relaccion a los terminos
ingleses de donde proceden: ADDC ADD WITH CARRY, SBC SUBTRACT WITH
CARRY, CLC CLEAR CAREY, etc.. Puesto que son convencionales, podrian sustituirse
por otros cualquiera si bien ello no es aconsejable, siendo conveniente utilizar siempre los
establecidos por el Iabricante.
Pero una instruccion no se compone unicamente de este codigo, binario o nemonico, que
solo deIine la Iuncion a realizar. Muchas instrucciones deben especiIicar tambien cuales
son los datos a utilizar o en que lugar se encuentran estos datos. Estas instrucciones
requieren ademas un Operando. Estableciendo una terminologia mas concreta deIiniremos
los diIerentes terminos implicitos en una instruccion.
CODIGO DE OPERACION: Es el codigo que deIine el tipo de operacion a
realizar.
OPERANDO: Es la inIormacion asociada a una instruccion que deIine bien el dato
con el que se va a operar, bien la posicion de memoria en la cual se encuentra dicho
dato.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
41
INSTRUCCION: Es el conjunto de codigo de operacion y del operando (si este
existe).
Por ejemplo, una instruccion completa seria de la Iorma:
Esta instruccion indica a la CPU que debe incrementar en una unidad el contenido de la
posicion de memoria 0300H .
El codigo de operacion, en el tipo de microprocesadores que estamos utilizando, se
especiIica mediante un byte. Esto signiIica que podrian representarse hasta 256 codigos de
operacion diIerentes mediante sus 8 bits.
El operando, si existe, puede ser un dato de la longitud utilizada (8 bits en nuestro caso) o
una direccion (16 bits caso). En consecuencia una instruccion completa puede ser:
de 1 byte (si no hay operando)
de 2 bytes (el primero para el codigo de operacion y otro para el operando)
de 3 bytes (el primero para el codigo de operacion y dos para el operando)
En microprocesadores mas complejos pueden ser necesarios dos bytes para poder
especiIicar mas de 256 operaciones diIerentes. Ademas el operando puede requerir
especiIicar dos direcciones y las direcciones pueden ser de mas de 16 bits. Por ejemplo, el
68000 de Motorola tiene instrucciones que requieren 10 bytes.
Tipos de instrucciones
El repertorio de instrucciones es muy variable en Iuncion del microprocesador utilizado.
Existe una gran diIerencia entre los primeros microprocesadores con un "conjunto de
instrucciones muy limitado" (RISC), y los empleados hasta hace muy poco tiempo con
"gran potencia en cuanto a nmero de instrucciones" (CISC). Actualmente parece que se
ha optado por una vuelta a los origenes, de Iorma que la IilosoIia que "parece" imponerse a
nivel de rendimiento es la de arquitecturas tipo RISC (486DX, PENTIUM, Sparck,..).
Por la Iuncion realizada, las instrucciones tipicas de un microprocesador se pueden dividir
en varias categorias:
N Instrucciones de transferencia. movimiento de datos entre registros. Los
registros Iuente y destino de la transIerencia pueden pertenecer a la CPU
(acumulador y registros auxiliares), a memoria o al sistema de E/S.
N Instrucciones operativas. ejecucion de operaciones logicas o aritmeticas
entre dos operandos (suma, resta, multiplicacion...), sobre un solo operando
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
42
(incremento, complemento, borrado...) o bit a bit (Y, O, O exclusiva, puesta
a uno, complemento...).
N Instrucciones de control de secuencia. saltos de programa y llamadas y
retornos de subrutinas, incondicionales o condicionales.
N Instrucciones de control. instrucciones que aIectan al registro de estado,
sistema de interrupciones, cambio de bancos de registros, paro del sistema,
instrucciones especiales de E/S, etc.
Algunos sistemas son microprogramables, lo cual posibilita un repertorio de instrucciones
arbitrario.
Modos de direccionamiento
Existen distintas Iormas de direccionar los registros, palabras de memoria y accesos de
entrada y salida que intervienen en la ejecucion de una instruccion.
Las posibilidades de direccionamiento de un microprocesador son importantes de tener en
cuenta por su repercusion en la velocidad de ejecucion, Ilexibilidad de la programacion y
necesidades en la capacidad de memoria.
Como se ha visto una instruccion se puede considerar dividida en dos partes:
cdigo de operacion y operando (si es necesario). El operando, si existe, ocupa palabra(s)
sucesiva(s) al codigo de operacion. La inIormacion de la direccion se puede presentar de
distintas Iormas:
Direccionamiento implicito: cuando el mismo codigo de operacion indica la direccion del
operando. Por la limitacion que este metodo supone, en cuanto a capacidad, su utilizacion
es restringida al direccionamiento de registros internos de la CPU y casos especiales de
control de secuencia.
N Direccionamiento inmediato. cuando el operando no representa una direccion sino
que es uno de los datos de la operacion.
N Direccionamiento directo: cuando se indica de una Iorma absoluta la direccion
eIectiva del operando o la direccion de salto en caso de instrucciones de control de
secuencia.
N Direccionamiento indirecto. cuando el operando indica una direccion donde esta la
direccion eIectiva del operando. Puede ser posible un encadenamiento de
indirecciones hasta llegar a la direccion eIectiva. La indireccion puede ser respecto
a un registro interno, punteros de memoria o de stack, o respecto a memoria, segun
donde este el puntero de la direccion eIectiva.
N Direccionamiento relativo al contador de programa: el operando indica un
desplazamiento, positivo o negativo, respecto a la direccion de la instruccion en
curso.
N Direccionamiento indexado. el operando indica un desplazamiento respecto a un
puntero de memoria en la CPU (registro de indice).
N Direccionamiento por pginas. cuando el operando indica la direccion eIectiva en
la pagina (memoria dividida en modulos de 256 palabras) en curso o respecto a la
pagina cero (posiciones 0 a 255).
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
43
Las subrutinas
Cuando una misma secuencia de instrucciones identicas aparece varias veces a lo largo del
programa, supone un trabajo adicional para el programador, que tiene que escribir varias
veces lo mismo y a esto se aade una mayor extension del programa; por ello es preIerible
agruparia en un bloque independiente que recibe el nombre de SUBRUTINA; En el juego
de instrucciones de todo microprocesador existe una instruccion "LLAMADA A
SUBRUTINA" (CALL) que rompe la secuencia normal de ejecucion del programa,
alterando el contenido del contador de Iorma que la ejecucion continua en el punto de
comienzo de una subrutina. Ademas, permite que una vez Iinalizada se incorpore una
instruccion "EIN DE SUBRUTINA" (RET) que permita que el contador de programa
recupere el valor que tenia y pueda continuar la ejecucion del programa principal a partir
del punto de donde partio.
La secuencia de instrucciones que se recorre se representa esquematicamente
en la Fig. 8.1.
Fig. 8. 1
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
44
SUBRUTINAS ANIDADAS
Es posible que una subrutina recurra, a su vez, a otras subrutinas (que podriamos llamar
SUB-SUBRUTINAS). Estas pueden requerir otras y asi sucesivamente. Este anidamiento
de subrutinas puede realizarse perIectamente sin mas limitaciones que las que veremos
seguidamente, derivadas del mecanismo utilizado para "recordar" el valor del contador de
programa en cada punto en que se produce un salto a subrutina.
En la Eig. 8.2 se esquematiza una situacion en la que el programa principal hace uso de la
subrutina A. Esta, a su vez, llama a la subrutina B, la cual utiliza la subrutina C. Existen
tres niveles de anidamiento y la CPU debe recordar los valores del contador de programa en
que se han producido los saltos, que llamaremos PCl, PC2 y PC3.
Fig. 8. 2
Para ello existen varias posibilidades:
Debe estar limitado, con lo que se limita el NIVEL de ANIDAMIENTO de subrutinas. Sin
embargo, la velocidad con que se eIectua este almacenamiento puede ser mas alta que
mediante el procedimiento 2).
Almacenar estos valores en una zona de la memoria RAM exterior a la CPU llamada PILA
o STACK y disponer en la CPU de un solo registro auxiliar llamado 'puntero de pila o
stack pointer` que indique la posicion del ultimo valor almacenado. Este procedimiento
que estudiaremos seguidamente, permite un nivel de anidamiento practicamente ilimitado
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
45
(todo el MAPA de MEMORIA) si bien requiere maniobras adicionales de la CPU que
precisan de un tiempo mayor.
Pero al ejecutarse una subrutina ademas del contador de programa, que siempre se debera
recordar, puede ser necesario almacenar los datos contenidos en otros registros de la CPU
con el Iin de que a la vuelta al programa principal se reanude la ejecucion del mismo en las
mismas condiciones existentes en el momento de producirse el salto a la subrutina. En
particular, puede ser necesario guardar el contenido del acumulador v del registro de
estado. Ademas, dependiendo de los casos, puede necesitarse la salvaguarda de otros
registros.
La salvaguarda del contador de programa suele hacerse automaticamente mientras que la
del acumulador y del registro de estado requiere la indicacion expresa del programador
mediante instrucciones especiales.
El almacenamiento de otros registros tambien puede hacerse por metodos normales de
llevar datos a memoria.
La piIa y su puntero
El metodo automatico de salvaguarda del contador de programa y de otros registros hace
uso de una zona de memoria de tamao variable reservada expresamente para este Iin, que
recibe el nombre de STACK o PILA. Al mismo tiempo se dispone en la CPU de un registro
especial llamado puntero de la pila que se decrementa automaticamente cada vez que se
ejecuta una instruccion de LLAMADA a SUBRUTINA. Este registro PUNTERO debera,
en principio, ser de 16 bits con el Iin de permitir el almacenamiento de una direccion
completa.
Su contenido inicial es Iijado por el programador cargandolo con la "direccin de
comienzo de la pila" deseada. Al eIectuarse una llamada a subrutina el contador de
programa se almacena en esa direccion y en la anterior decrementandose (o
incrementandose dependiendo del tipo de CPU) en dos unidades el contenido del puntero
de la pila, de Iorma que "seala" ahora la siguiente direccin libre del stack. Si a su vez, en
la ejecucion de la subrutina se produce una nueva llamada a subrutina, se almacenaran los
valores correspondientes del contador de programa decrementandose (o incrementandose)
automaticamente el puntero de la pila Los valores sucesivos del contador de programa son
guardados consecutivamente en direcciones cada vez mas bajas ( o mas altas), creciendo el
STACK hacia arriba (o hacia abajo), de la Iorma indicada en la Fig. 9.1.
En el ejemplo de la Iigura, el programador ha Iijado el comienzo de la Pila en la posicion
XXX8 de memoria, correspondiente a la RAM. Al producirme la 1 llamada a subrutina, se
almacenan automaticamente los valores de PCH y PCL en XXX8 y XXX7, quedando el
Puntero con el contenido XXX6, es decir, apuntando a XXX6.
Al producirme una llamada a la 2 subrutina, en el seno de la 1, los valores del PC en ese
momento se almacenan en XXX6 y XXX5 quedando el puntero en XXX4. La Fig. 9.1
representa el caso en que la subrutina ha sido interrumpida por una 3 quedando el puntero
sealando la proxima direccion libre XXX2. Al Iinalizar la ejecucion de cada subrutina, se
produce el proceso inverso, devolviendo a la CPU los valores sucesivos del PC e
incrementandose automaticamente el valor del puntero.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
46
Fig. 9. 1
Fig. 9. 2
El Iuncionamiento de la memoria destinada al STACK es del tipo LIFO (last in, Iirst out)
y es corriente que el proceso se produzca en el sentido indicado (decrementandose el
puntero al saltar a subrutinas e incrementandose al volver a ellas), pero esto es arbitrario,
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
47
pudiendo muy bien ser al contrario. Esta es una eleccion que ha hecho el Iabricante del
microprocesador.
Cuando se desea almacenar, ademas del PC, el contenido de otros registros, cada vez que se
produce un salto a subrutinas se deben utilizar las instrucciones adecuadas (PUSH) para
llevar este al stack. En la Fig. 9.2 se presenta un ejemplo hipotetico en el que se llevan al
stack el PC, el ACUMULADOR y DOS REGISTROS auxiliares.
El programador debe prever el tamao maximo de la pila con el Iin de obtener un optimo
aprovechamiento de la RAM sin que en ningun caso interIiera el crecimiento de la misma
con zonas de la RAM destinadas a otros usos.
Los registros que se salvaguardan automaticamente al producirse la llamada a subrutina
dependen del microprocesador concreto de que se trate. Todos los microprocesadores
guardan automaticamente el contador de programa, ya que resulta imprescindible conservar
su valor para reanudar la ejecucion del programa principal. Para la salvaguarda de los
registros de Iorma no automatica, todos los microprocesadores disponen de instrucciones
especiIicas que se suelen denominar PUSH, para llevar datos a la pila y POP, para
recuperarlos.
Las interrupciones
Las interrupciones constituyen quiza el mecanismo mas importante para la conexion del
sistema microprocesador al mundo exterior, sincronizando la ejecucion de programas con
acontecimientos externos. Todos los microprocesadores tienen implementado, e incluso
potenciado, este mecanismo gracias al cual se va a Iacilitar su incorporacion a sistemas que
Iuncionan en tiempo real.
El Iuncionamiento de las interrupciones es similar al de las subrutinas de las cuales casi
exclusivamente se diIerencian en el procedimiento con que se ponen en marcha. Asi como
las subrutinas se ejecutan cada vez que en el programa aparece la instruccion de llamada
PUSH, las interrupciones se ponen en marcha al activarse un terminal INT de entrada a la
CPU, es decir, mediante un mecanismo hardware.
Las interrupciones se pueden producir en cualquier momento de la ejecucion del programa,
no estando ligadas a los puntos del mismo en los que el programador ha previsto la
instruccion equivalente de llamada a subrutina. La subrutina que se pone en marcha como
consecuencia de una interrupcion se denomina "rutina de atencin a la interrupcin" y
debe Iinalizar con una instruccion especiIica que indique el termino de la misma,
denominado "fin de interrupcin" (RETI). La Fig. 10.1 trata de esquematizar este
Iuncionamiento.
Las interrupciones se diIerencian por otro lado de las subrutinas en que ademas de
almacenar en la pila el Contador de programa (PC), se almacena la Palabra de estado
(PSW) ya que en el retorno de la rutina de interrupcion hacia el programa principal, este
debe continuar su ejecucion con los Elags de la PSW en el mismo estado en que se
interrumpio.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
48
Fig. 10. 1
Para ilustrar su Iuncionamiento, plantearemos un ejemplo muy clasico; la realizacion de un
RELOJ EN TIEMPO REAL. Se denomina RELOJ EN TIEMPO REAL a cualquier sistema
que es capaz de producir interrupciones periodicas en momentos determinados. En este
ejemplo lo vamos a utilizar para que el microprocesador lleve la cuenta de segundos,
minutos y horas con la precision de un oscilador a cuarzo exterior. El diagrama de bloques
necesario se muestra en la Fig. 10.2..
Fig. 10. 2
La seal, procedente de un oscilador a cuarzo, dividida en Irecuencia por procedimientos
conocidos, suministra a la CPU, a traves de su entrada de interrupcion, impulsos a la
Irecuencia de 1 Hz.
Cada uno de estos impulsos va a provocar una interrupcion, lo que dara lugar a la ejecucion
de una rutina cuya unica mision sera la actualizacion de tres contadores: un contador de
segundos, uno de minutos y un tercero de horas. No habria inconveniente en establecer
otros contadores que contabilizasen dias, meses, aos, etc..
Estos contadores son "soItware", es decir, que cada uno de ellos es un registro o posicion de
memoria que se incrementa bajo la accion del programa.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
49
La rutina de atencion a estas interrupciones tendria la estructura que se muestra en la Fig.
10.3. El microprocesador tardara muy poco en ejecutar este programa, por lo que la mayor
parte de su tiempo estara desocupado y podra utilizarse para otras cosas.
Si, por ejemplo, tarda 100 microsegundos (tiempo seguramente excesivo) y lo ejecuta una
vez cada segundo, solo ocupara el 0,01 de su tiempo en llevar la cuenta de la hora, tarea
que resultaria perIectamente compatible con otras actividades llevadas a cabo por el
programa principal.
La rutina de atencion a interrupciones, a su termino, debe devolver el control al programa
principal, para lo cual, igual que las subrutinas, tiene que salvaguardar los datos necesarios
para que la CPU este en condiciones de reanudar su tarea como si esta no se hubiera
interrumpido. El mecanismo de la pila y su puntero se utiliza aqui de Iorma identica a la
descrita para el caso de las subrutinas aadiendo el almacenamiento del registro de estado
junto con el contador de programa, quedando las diIerencias relegadas a un segundo
termino especiIico de cada microprocesador.
Fig. 10. 3
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
50
Las unidades de entrada/saIida
Estructura de Ias unidades de E/S
Hasta ahora se han descrito dos de las unidades basicas de un sistema microprocesador: la
unidad central de proceso (CPU) y la memoria. La primera es la encargada de procesar la
inIormacion, realizar los calculos aritmeticos y logicos y ejecutar instrucciones del
programa mientras que la segunda es la unidad de almacenamiento de inIormacion que
segun el tipo de memoria podia contener datos de Iorma permanente o temporal. Hasta aqui
y desde una vision general el proceso parece simple, pero queda una cuestion pendiente; la
Iorma de introducir datos y como, una vez procesados aparecen de Iorma inteligible para
Nosotros
Esta es la tarea Iundamental de las unidades de entrada-salida, la de proveer de un sistema
Iacil y ordenado de acceso al bus de datos del sistema microprocesador. La utilizacion de
un dispositivo de E/S (entrada-salida) necesita de una interIace, es decir, de un sistema
hardware-soItware que permita la comunicacion con el elemento exterior.
A una unidad de E/S tambien se le llama via de acceso o "Puerto. Una via de acceso
puede ser de entrada (puerto de entrada) si la CPU lee datos del exterior o de salida (puerto
de salida) si la CPU escribe o envia datos al exterior o tambien puede ser de entrada-salida
si la CPU realiza ambas operaciones. En este caso se dice que es una via de acceso
bidireccional (puerto bidireccional).
El numero de puertos o vias de acceso que puede soportar un sistema microprocesador esta
limitado por el numero de bits de direccion que esten reservados a este Iin. La Fig.13.1
ilustra un diagrama de bloques con una conIiguracion de entrada-salida.
Fig. 13. 1
La comunicacion entre el microprocesador y el elemento exterior puede realizarse
Iundamentalmente por dos metodos: Serie y Paralelo.
Puertos Paralelo: Un puerto de entrada paralelo transIiere todos los bits de la palabra de
datos a la vez desde el elemento exterior hacia la CPU y un puerto de salida paralelo
transIiere la palabra de datos desde la CPU hacia el elemento exterior. La y salida paralelo.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
51
En la Fig. 13.2 muestra un ejemplo de puerto de entrada que utiliza un circuito integrado
74LS244 compuesto por 8 "buffers triestados, cada uno de los cuales tiene su entrada
conectada al circuito exterior pudiendo transIerir una palabra de 8 bits. Las salidas se
conectan al bus de datos directamente gracias a que disponen de estado de alta impedancia.
La transIerencia de inIormacion se produce al activar la entrada de habilitacion E (Enable)
del 74LS244 a traves de un decodiIicador.
Fig. 13. 2
Un circuito similar puede utilizarse como puerto de salida, utilizando un circuito de
enclavamiento o "Latch" como el 74LS374 tal como muestra la Fig. 13.3.
Fig. 13. 3
Puertos Serie: La comunicacion serie se utiliza para transIerir palabras de datos
secuencialmente bit a bit. Se utiliza entre equipos que se encuentran a distancias
relativamente elevadas, incluso a traves de la linea teleIonica. La transmision serie tiene la
ventaja de utilizar un menor numero de lineas de conexion que la comunicacion paralelo.
Solamente son necesarias dos pares de lineas: un par para entrada y el otro para salida y en
algunos casos puede ser realizado con una linea comun y dos lineas: una para entrada y otra
para salida.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
52
Una unidad de entrada-salida serie necesita que la palabra de datos sea convertida primero
de paralelo a serie (el bus de datos del microprocesador es siempre paralelo) proceso que
recibe el nombre de "serializacin" de la inIormacion. Este proceso puede ser realizado por
hardware o por soItware. Si se disponen de circuitos especializados es mas conveniente
realizarlo por hardware porque de esta manera reducimos las tareas de programacion.
Un ejemplo tipico de transmision serie se representa en la Fig. 13.4. La velocidad de
transmision de la inIormacion esta determinado por la Irecuencia de la seal de reloj. El
numero de bits por segundo transmitidos se mide en "baudios. Asi por ejemplo 300
baudios signiIica una velocidad de 300 bits por segundo.
Para que el elemento receptor conozca exactamente en que momento se inicia la
transmision y en que momento se termina se utiliza un protocolo de transmision. La
inIormacion se transmite en bloques de datos.
Cada bloque esta Iormado por un bit de inicio (Start), continua con los bits de datos y un
bit de paridad opcional y termina con uno o dos bits de parada (Stop) tal como se muestra
en la Fig. 13.4.
Fig. 13. 4
Al nivel lgico ~0 se le llama a menudo ~espacio y al nivel lgico ~1 se le llama
~marca. Por ejemplo, si la palabra de datos a transmitir es 0110101(7bits) y se utiliza
paridad par la palabra transmitida sera 01010110011 (el bit menos signiIicativo es el que se
manda primero) y aparecera como muestra la Iigura anterior. Si la palabra de datos esta en
codigo ASCII, el dato 35H representara el numero 5.
Un teletipo, llamado generalmente TTY es un terminal de entrada serie parecido a una
maquina de escribir que utiliza un bit de inicio, siete bits de datos, un bit de paridad
(generalmente ignorado) y dos bits de parada, por lo tanto hay 11 bits en el codigo del
caracter transmitido. Eunciona a 10 caracteres por segundo y su velocidad de transmision es
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
53
de 110 baudios. Los terminales de video Iuncionan generalmente a velocidades de hasta
9.600 baudios, es decir 960 caracteres por segundo.
Conexin de Ias unidades de E/S
Desde el punto de vista de conexion al sistema microprocesador, unicamente es necesario
disponer de un sistema de decodiIicacion del bus de direcciones de modo que cada vez que
aparezca la direccion seleccionada, se transIiera la inIormacion del bus de datos a la salida
del circuito de enclavamiento. Lo mismo podriamos decir del caso inverso.
Una disposicion mas completa se representa en la Fig. 13.5 en la que se han combinado los
circuitos anteriores para obtener ocho lineas de entrada y ocho de salida. En este caso
unicamente es necesario disponer de una seal de control que habilite el circuito
correspondiente para las seales de entrada o de salida. Para esta Iuncion se utiliza
generalmente la seal de lectura-escritura combinada adecuadamente con la seal de
habilitacion suministrada por el decodiIicador.
Fig. 13. 5
La conIiguracion proporcionada por este circuito podria ser util para una aplicacion
concreta, pero diIicilmente esta estructura tan rigida proporcionara los requerimientos
necesarios de la mayoria de sistemas. Por ello, la mayor parte de Iabricantes disponen de
una gama de circuitos LSI programables que realizan las Iunciones de unidad de entrada-
salida y que se denominan dispositivos de adaptacin universales tal como el 8255 de
INTEL.
Estos circuitos LSI disponen de registros internos para almacenar los datos desde o hacia
los circuitos de utilizacion. La seleccion de estos registros se realiza por decodiIicacion del
bus de direcciones utilizando las mismas tecnicas vistas anteriormente en el apartado de
memorias. Antes de ocuparnos de las peculiaridades de la conexion de estas unidades,
hay que hacer una distincion en el modo con que la CPU trata a las unidades de entrada-
salida segun el tipo de microprocesador utilizado.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
54
Puertos de Entrada/Salida mapeados en memoria: Un primer metodo consiste en tratar
a estas unidades como si Iueran posiciones de memoria. Bajo esta concepcion, una
instruccion MOV (mover) se utiliza tanto para manejar datos de la memoria como para leer
o escribir datos en la unidad de entrada-salida sin mas que especiIicar la direccion
correspondiente. Este metodo se denomina
entradas-salidas mapeadas en memoria porque utiliza parte de la zona reservada al
direccionamiento de memoria para acceder a las entradas-salidas. Tiene la ventaja de
utilizar las mismas instrucciones que para el acceso de los datos en memoria y presenta el
inconveniente de que al utilizar parte de la zona de direccionamiento destinada a esta,
limita la capacidad total de memoria que puede disponer el sistema. Esta concepcion en el
tratamiento de las entradas-salidas desde el punto de vista de la CPU es el utilizado por
Motorola y Rockwell en sus Iamilias de microprocesadores.
Puertos de Entrada/Salida NO mapeados en memoria: El otro metodo consiste en
utilizar instrucciones especiali:adas para acceder a los puertos de entrada-salida. Estas
instrucciones producen la activacion de ciertas lineas de control de la CPU para indicar que
la inIormacion presente en el bus de datos esta destinada a la unidad de entrada-salida
direccionada. Este metodo, utilizado por Intel y Zilog en sus Iamilias de microprocesadores
tiene la ventaja de no restar espacio de direccionamiento a la memoria y por lo tanto de
independizar el direccionamiento de ambos dispositivos. Por otra parte, presenta el
inconveniente de necesitar lineas de control distintas ( IO/M`)que indiquen si el acceso es a
la memoria o a la unidad de entradas-salidas; ademas el set de intrucciones debe incoporar
instrucciones especiIicas para el tratamiento de entradas-salidas (IN, OUT).
A pesar de que como ya hemos dicho anteriormente, las mismas tecnicas empleadas para la
decodiIicacion de la memoria son aplicables en el caso de las unidades de entrada-salida, si
que habra que tener en cuenta el tipo de tratamiento que la CPU haga sobre estas para
determinar las lineas de control a utilizar.
En el caso de un sistema orientado a memoria, el mismo decodiIicador utilizado para la
memoria sirve para la decodiIicacion de las unidades de entrada-salida mientras que en el
caso de instrucciones especializadas deberemos de utilizar otro decodiIicador distinto que
utilice la seal IO/M` activa al nivel de seleccion de entradas-salidas (IO/M`1).
A nivel general, los dispositivos adaptadores universales poseen unas caracteristicas tales
como:
Programacion del sentido de actuacion de los puertos.
Lineas de control exterior para el establecimiento de protocolos de dialogo (handshaking).
Programacion de los Ilancos de actuacion en la generacion de interrupciones.
Posibilidad de enmascarar seales de control de interrupcion.
A nivel de interconexion con el sistema microprocesador disponen de las siguientes lineas:
Bus de datos: Se utiliza para el intercambio de inIormacion CPU-PeriIerico.
Lineas de habilitacion: Permite la habilitacion del dispositivo cuando se dan las condiciones
de seleccion.
Lineas de seleccion de registro: Seleccionan los registros internos. Se conectan
generalmente a las lineas de direccion menos signiIicativas.
Lineas de control de interrupcion: Eacilitan la generacion de interrupciones a la CPU y se
conectan a sus entradas correspondientes.
Reloj: Conectada a la seal de reloj del procesador.
Lectura-escritura: Indican la direccion del Ilujo de datos.
INTRODUCCION A LOS MICROCONTROLADORES
Germn Pereira Muoz
ICEI Instituto de Capacitacion en Electronica e Informatica
55
Reposicion (Reset): Reinicializa el contenido de los registros.
La Fig, 13.6 ilustra un adaptador de puertos universal, en este caso el PPI 8255A de
NTEL.
El empleo de los adaptadores universales en un sistema microprocesador proporciona una
solucion Ilexible en la mayoria de aplicaciones a la vez que reduce el numero de
dispositivos empleados aunque, debido a sus posibilidades de programacion exige un
esIuerzo a nivel de soItware que, no obstante, esta ampliamente recompensado.
Fig. 13. 6

Anda mungkin juga menyukai