Sunteți pe pagina 1din 26

MICRO-

CONTROLADORES
CAPTULO 2
Cmo funcionan?
Unidades de entrada y salida
Historias de microprocesadores
Microcomputadoras: de qu se tratan?
Las interrupciones
Perifricos en microcontroladores
Conversores analgico-digitales
Actividades
02
C02.indd 51 15/06/11 19:13
52 MICROCONTROLADORES
CMO FUNCIONAN?
Comenzaremos a incursionar en los elementos
que ms auge han tenido en estos ltimos
tiempos, dentro de la electrnica digital:
los microprocesadores y microcontroladores.
L
os microprocesadores y los mi-
crocontroladores han cambiado
la forma de pensar y disear
los circuitos electrnicos. Desde
que Intel lanz en 1971 el 8080, el
primer microprocesador exitoso,
estos dispositivos no han dejado de
evolucionar, y hoy en da es imposi-
ble imaginarse la vida sin ellos.
Pero a esta altura del tema nos
surgen las primeras preguntas: qu
son los microprocesadores? Y los
microcontroladores? Cmo pode-
mos diferenciar unos de los otros?
Qu es un microprocesador?
Los microprocesadores son circuitos
integrados que contienen millones
de transistores en su interior, los
cuales crean circuitos complejos
encargados de realizar diferentes
tareas. Tambin se los denomina
unidad de procesamiento central
o CPU, ya que muchos de ellos
pueden actuar como el cerebro
de un sistema computacional,
administrando todas las tareas
que este realice y llevando a cabo
las operaciones con los datos.
Los microprocesadores estn
diseados para interpretar y ejecutar
las instrucciones que nosotros les
indiquemos y que suelen ser opera-
ciones simples, como sumar, restar,
multiplicar y dividir. Pero tambin
existen instrucciones lgicas, como
> Los microcontroladores
PIC son uno de los
dispositivos ms utilizados en
el rea de control. Aqu podemos
ver uno de los encapsulados que
ofrece el fabricante.
AND, OR, NOT, etc. El listado de
instrucciones recibe el nombre de
programa, que las ejecuta una por
una por medio del microprocesador.
La potencia, el tamao y la com-
plejidad de los microprocesadores
fueron incrementndose con el
correr del tiempo. Tanto es as,
que hoy en da podemos observar
procesadores que integran millones
de transistores en su interior y con
varios ncleos para aumentar su
capacidad de procesamiento.
Los microprocesadores
son circuitos
integrados complejos
encargados de realizar
diferentes tareas.
C02.indd 52 13/06/11 23:27
53 Cmo funcionan?
Sistemas digitales
Registro
temporal
Acumulador Bloque de control
Registro de
instrucciones
Decodicador
de instrucciones
Contador de
programa
ALU
Bus de datos
gg
Bus de direcciones B
Sistemas digitta tal
Bus de control B
> Figura 1.
Diagrama bsico
de los componentes
que integran un
microprocesador.
Reloj
Diagrama bsico
de un microprocesador
En la Figura 1 podemos observar el
diagrama bsico de un micropro-
cesador. El elemento principal es la
ALU (unidad aritmtico-lgica), que
se encarga de llevar a cabo todas
las operaciones lgicas y aritmti-
cas que requieran los procesos que
se ejecuten. Tambin podemos ver
los registros para almacenamiento
temporal de los datos; el contador de
programa, que contiene la direccin
de memoria de la siguiente instruc-
cin por ejecutar; un registro de ins-
trucciones que almacena el cdigo
de la instruccin en ejecucin y el
bloque de control.
Todo este bloque de circuitos lgicos
realiza dos operaciones de manera
continua: la bsqueda de una ins-
truccin (fetch) y su ejecucin.
La bsqueda de una instruccin en la
memoria de programa es la opera-
cin fundamental del procesador y
se efecta de la siguiente manera:
El dato que contiene el contador
de programa nos indica cul es la
direccin de la prxima instruccin
que se ejecutar, y es colocado en el
bus de direcciones.
La unidad de control enva una
seal de lectura hacia la memoria de
programa a travs del bus de control.
Los datos contenidos en la direc-
cin de memoria de programa son
cargados en el bus de datos.
Estos datos son procesados para
que el cdigo de operacin
se almacene en el registro de ins-
trucciones, y los datos, en los regis-
tros de almacenamiento temporal.
Finalmente, el contador de pro-
grama se incrementa para volver a
buscar la siguiente instruccin.
En la operacin de ejecucin,
se decodica el cdigo de opera-
cin, y la unidad de control genera
las diferentes seales que permi-
ten la entrada y la salida de los
registros internos hacia la unidad
aritmtico-lgica.
La ALU ejecutar la operacin
que le indique la unidad de control,
y puede devolver el resultado en
un registro interno, normalmente
llamado acumulador, o en una posi-
cin de la memoria de datos.
> Figura 2. Diagrama
en bloque de un sistema
de computadora completo
con las memorias
de datos y de programa
como elementos externos
al microprocesador.
CPU
Memoria
de datos
Memoria
de programa
Circuitera
de interfaces
Dispositivos
perifricos
Bus de direcciones (16 lneas)
Bus de control (6 lneas)
Bus de datos (8 lneas)
C02.indd 53 13/06/11 23:27
54 MICROCONTROLADORES
Contador de programa
El contador de programa (PC) es,
bsicamente, un registro contador
que incrementa su cuenta con cada
ejecucin de una instruccin.
El contenido de este registro con-
tador apunta a la direccin donde
reside la instruccin que se desea
ejecutar en la memoria de programa.
Unidad aritmtico-lgica
La unidad aritmtico-lgica se ocupa
de realizar las operaciones necesa-
rias con los datos. Ellas son la suma
y la sustraccin de nmeros enteros,
las operaciones lgicas como AND,
OR y NOT y las operaciones de
desplazamiento de bits.
La salida o el resultado de la opera-
cin se almacena, como ya dijimos,
en un registro interno del micropro-
cesador llamado acumulador.
Este registro tambin puede utilizarse
como un operando, con la ventaja de
que ganamos en velocidad y ecien-
cia en las operaciones complejas.
La unidad posee, adems, una
entrada de control, desde donde
la unidad de control le indica cul
es la operacin por realizar.
Cabe aclarar que en procesadores
ms complejos podemos encon-
trarnos con unidades aritmtico-
lgicas que pueden calcular la
multiplicacin y hasta la divisin
de los operandos.
Existen ALUs
que calculan
la multiplicacin
y la divisin
de los operandos.
> Figura 3. Esquema clsico de
una unidad aritmtico-lgica
con las entradas de datos y de
control, y una nica salida con el
resultado de la operacin.
Memoria
de programa
Contador de programa
16 niveles
mejorados
Pila
8 niveles
existentes
Dato
Control
Dato
Resultado
ALU
> Figura 4. El contador de programa
siempre contiene la direccin de la
prxima instruccin que se ejecutar.
Despus de un reset del sistema, se
inicializa con el valor cero.
El valor inicial del contador siempre
es la direccin donde est la primera
instruccin del programa. Adems,
es posible modicar su contenido
para crear saltos hacia rutinas que
estn en lugares especcos de la
memoria de programa.
La cantidad de bits que posee el
contador sirve para calcular cul
es la cantidad mxima de instruc-
ciones que puede direccionar el
procesador. Con esto tenemos una
idea del tamao de memoria de
programa que podemos utilizar.
Si tenemos un contador de pro-
grama de 16 bits, podemos direc-
cionar, como mximo, hasta una
memoria de 64 KB (2^16).
C02.indd 54 15/06/11 11:06
55 Cmo funcionan?
Memoria de datos
y de programas
Los programas y datos que controlan
la ejecucin de las instrucciones en
un microprocesador necesitan ser
almacenados en memorias de datos
y de programa.
Memoria de programa
Para realizar una tarea especca,
un microprocesador necesita de un
programa que le indique, instruccin
por instruccin, cules son los pasos
que debe cumplir. Este programa
reside en una memoria externa al
procesador llamada memoria de
programa. Su caracterstica principal
es que no debe perder su contenido
cuando el sistema no est energiza-
do. Normalmente, se utilizan memo-
rias ROM de solo lectura para grabar
un programa, porque poseen esta
caracterstica tan preciada, aunque
tienen la desventaja de que solo pue-
den ser escritas una sola vez.
Gracias al avance de la tecnologa,
hoy podemos utilizar memorias
EEPROM y Flash para almacenar
cdigo, con la ventaja adicional de
que es posible borrar su contenido
elctricamente.
Memoria de datos
La memoria de datos es tambin una
memoria externa al microprocesador,
pero que se encarga de almacenar
la informacin que precisa el proce-
sador para ejecutar las operaciones
que le indiquemos.
El tipo de memoria que se emplea
para los datos es la RAM, porque
puede almacenar datos temporales
que pueden ser escritos y ledos una
innidad de veces. Adems, son de
acceso rpido, por lo que el sistema
gana en velocidad y eciencia.
Tambin es posible querer almace-
nar datos que no se pierdan luego
de que el sistema se queda sin ali-
mentacin. En este caso, se pueden
utilizar memorias no voltiles, como
las EEPROM de baja capacidad,
ideales para guardar contraseas
o nombres de usuarios.
> Una antigua memoria EPROM cuyo
contenido poda borrarse por medio
de luz ultravioleta. Era muy utilizada
para almacenar memoria de programa.
d d
> Una antigua memoria EPROM cuyo
contenido poda borrarse por medio
de luz ultravioleta. Era muy utilizada
para almacenar memoria de programa
2
+
61
100MF
1k
3
4 5

1
+
62
100MF
2222222 2 222
> MAPA DE MEMORIA
El mapa de memoria indica las reas de las que dispone el procesador,
su extensin y direccionamiento. Segn la arquitectura, puede haber solo
un rea general (Von Neumann), un rea de datos y otra de programa
(Harvard), o, incluso, reas especcas de entrada/salida (Z80, 80 86, AVR).
El procesador puede tener registros fuera de este mapa de memoria.
C02.indd 55 13/06/11 23:27
56 MICROCONTROLADORES
UNIDADES DE ENTRADA
Y SALIDA
Para que un procesador pueda comunicarse
con el mundo externo, necesita unidades
de entrada y de salida que codiquen
los mensajes para interpretarlos.
A
las unidades que funcionan
como interfaz entre el mundo
externo y el procesador se
las llama perifricos. Los perifricos
se comunican con el procesador
mediante los buses de direccin, de
datos y las seales de control.
Existen dos formas de transmitir infor-
macin entre un perifrico externo y
el procesador: en paralelo y en serie.
La transmisin en paralelo utiliza
todas las lneas de comunicacin del
bus de datos, y no requiere realizar
ningn sincronismo entre el perifrico
y el procesador. Por su parte, la que
es en serie hace la transformacin de
paralelo a serie y transmite el byte,
bit por bit. Este tipo de trasmisin
necesita de un sincronismo entre el
procesador y el perifrico.
Los perifricos pueden clasicarse
de forma general en: perifricos de
entrada y de salida.
Perifricos de entrada
Se ocupan de codificar los mensa-
jes o seales del exterior para que
el procesador pueda interpretarlos.
> El pulsador es el ejemplo ms
simple de un perifrico de entrada.
Si armamos una matriz de pulsadores,
podemos crear un sencillo teclado
para ingresar datos.
El ejemplo ms
sencillo de un perifrico
de entrada es el teclado, con el
cual un usuario puede introducir
un programa o datos. Pero esto no
solo se limita al ingreso de datos
por parte de un usuario, sino que
tambin es posible recibir datos
de una aplicacin de control. Los
dispositivos de monitoreo, como
los sensores, son perifricos de
entrada, ya que pueden convertir
distintas magnitudes, como el
calor o la presin, en seales que
una computadora sea capaz de
leer.
C02.indd 56 13/06/11 23:27
57 Unidades de entrada y salida
Perifricos de salida
Permiten observar los resultados
arrojados por el procesador de
una manera ms cmoda que si se
presentaran como unos y ceros.
La pantalla y la impresora son los
perifricos de salida ms conocidos,
pero tambin tenemos dispositivos
actuadores que afectan de manera
mecnica todo lo que los rodea,
como los motores y los rels.
Programacin
de microprocesadores
La programacin de microprocesa-
dores puede realizarse entre tres
tipos de niveles bsicos de lengua-
jes: en cdigo mquina, ensambla-
dor y de alto nivel.
Lenguaje en cdigo mquina
Es el lenguaje elemental del micropro-
cesador, pero el ms complicado de
utilizar. Cada instruccin posee cdi-
gos hexadecimales que son espec-
cos de ese procesador. Esto hace
que la programacin de las distintas
familias de microprocesadores sea in-
compatible. Solo se trabaja en cdigo
mquina con algunos perifricos
que disponen de un repertorio deter-
minado de comandos.
Todos los lenguajes superiores al
nal sern transformados a lenguaje
mquina para ser introducidos en
la memoria, ya que este es el nico
lenguaje que entienden los micropro-
cesadores. Pero esta conversin no la
realiza el programador, sino que existe
un software especco para este n.
Si se desea programar en cdigo m-
quina, hay que entender previamente
a fondo el microprocesador que se
va a utilizar, ya que cada bit de cada
instruccin tiene un signicado con-
creto y es muy fcil equivocarse.
El lenguaje ensamblador
Tambin llamado ASSEMBLER, es un
tipo de lenguaje intermedio entre los de
alto nivel y el lenguaje mquina. Cada
microprocesador tiene su propio len-
guaje assembler, que est en relacin
directa con su estructura. Este lenguaje
usa las mismas instrucciones que
posee el microprocesador, solo que
el programador no emplea su corres-
pondencia en hexadecimal, como en el
lenguaje mquina, sino que utiliza los
nemotcnicos de dichas instrucciones.
Debido a que cada microproce-
sador tiene su assembler
especco, los distintos len-
guajes ensambladores de las
diferentes familias de proce-
sadores que existen comer-
cialmente no son compatibles
entre s, pese a que emplean
instrucciones con idntico
cometido. En este punto de
incompatibilidad, se asemejan
el lenguaje ensamblador y el
lenguaje mquina.
>
PARA TENER EN CUENTA
> En muchos
procesadores
se necesita hardware
adicional para hacer la
programacin. Algunos,
como el de la imagen,
pueden programar
los microcontroladores
sin sacarlos de la placa.
El lenguaje
ensamblador utiliza
nemotcnicos para las
mismas instrucciones
en binario.
C02.indd 57 13/06/11 23:27
58 MICROCONTROLADORES
CPU
Cdigo de
operacin
N
RAM
Bus de direcciones
Bus de control
Contador
de programa
Registro de
operaciones
Reloj
Lectura
Bus de datos
Cdigo de operacin
N + 2
N + 1
N
N + 1
Los microprocesadores
realizan cuatro
operaciones bsicas
para ejecutar
una instruccin.
> EL CICLO DE MQUINA
Los microprocesadores realizan una serie de operaciones bsicas: bsqueda
de la instruccin, decodicacin, ejecucin y almacenamiento
de los resultados. Estas cuatro operaciones conforman el ciclo de mquina.
Todas se encuentran sincronizadas con un reloj general (clock del sistema).
El tiempo que dura un ciclo de mquina nos da idea de cuntas instrucciones
puede ejecutar un microprocesador en un segundo (MIPS).
> Secuencia que lleva a cabo el procesador para buscar una
instruccin en la memoria. El PC apunta a la direccin donde
se encuentra la instruccin, y la memoria coloca el cdigo de
operacin en el bus de datos.
CPU
Cdigo de
operacin
N
RAM
Bus de direcciones
Bus de control B
Contador C d
de programa
Registro de
operaciones
Reloj
Lectura
Bus de datos
Cdigo de operacin
N + 2
N + 1
N
N + 1
vez interpretada por el decodicador,
se abrir de nuevo el bus de direccio-
nes y de datos para tomar el segundo
byte en la posicin de memoria indica-
da por el PC ya incrementado.
El proceso se repetir otra vez
si la instruccin es de tres bytes.
As, segn la instruccin sea de uno,
dos o tres bytes, la velocidad
Secuencia de ejecucin
de un programa
Para el manejo del programa, el
microprocesador dispone de dos
registros de importancia: el contador
de programa (PC) y el registro de
instrucciones (IR). Para entender el
proceso de interpretacin del progra-
ma, veamos los pasos que se realizan
para decodicar una instruccin.
Al comienzo de cada instruccin, lo
primero que debe hacerse es la lec-
tura del primer byte de la instruccin;
para esto, el PC tiene que direccionar
a la posicin de memoria en la que
se encuentra. Mediante seales de
transferencia en el bus de control, el
byte entra en el microprocesador por
el bus de datos al registro de instruc-
ciones. All es interpretado por el de-
codicador de instrucciones, mientras
el PC es incrementado en una cuenta.
Si la instruccin es de ms bytes, una
o tiempo de ejecucin ser menor o
mayor, respectivamente.
Una vez que los bytes de la instruc-
cin han entrado en el microproce-
sador, este procede a ejecutarla;
tras esta operacin, vuelve a tomar
el byte cuya direccin est apuntada
por el PC. Este proceso se repite
hasta llegar a la ltima instruccin.
>>> EEEELLLLLLLL
LLo Lo oo LLo Lo ooo Lo ooossss s mmmmi mi mmmmmm
de deeeeee de de dde deee lll llaa a aa ii
de de eeeee dde de llll looos os ss os
To To To o To o To ooddda dasss s
El El El E tie emmmmmm
pu ued d e eeeeeeee
C02.indd 58 13/06/11 23:28
59 Unidades de entrada y salida
Los lenguajes de alto nivel
tambin fueron pensados para
eliminar la incompatibilidad
entre los de bajo nivel y los
distintos sistemas de procesa-
dores. Sin embargo, esto no es
del todo cierto, ya que existen
algunas diferencias dentro de
un mismo lenguaje de alto nivel
con los distintos sistemas que
no proporcionan total compa-
tibilidad. Lo cierto es que un
programa en lenguaje de alto
nivel debe ser traducido a c-
digo mquina, para lo cual se
utilizan programas intrpretes
o compiladores.
>
PARA TENER EN CUENTA
Lenguajes de alto nivel
Se llaman de alto nivel porque su
sistema de programacin est a la
altura misma del lenguaje concep-
tual, matemtico y de organizacin
del propio hombre. El desarrollo de
los lenguajes de alto nivel fue nece-
sario como consecuencia de la adap-
tacin de la mquina al hombre. Esto
trajo muchas ventajas que hicieron
que este tipo de lenguaje de progra-
macin se impusiera rpidamente.
Por un lado, al ser un lenguaje prxi-
mo al del hombre que, en denitiva,
es quien tiene que programarlos,
permite la reduccin de los costos
de software, as como tambin el
tiempo de desarrollo. Otras ventajas
son su facilidad de aprendizaje, la
posibilidad de realizar programacin
estructurada y el hecho de que para
usarlo no es imprescindible tener
conocimiento del hardware.
Entre los lenguajes de alto nivel,
los ms conocidos son:
MATLAB, MATrix LABoratory (labo-
ratorio de matrices): es un lenguaje
diseado para hacer clculos ma-
temticos, y empleado en el mundo
cientco y tcnico.
COBOL, Commom Business Oriented
Language (lenguaje orientado hacia
aplicaciones comerciales y de
gestin): es un lenguaje para uso
especco en gestin por tener poca
capacidad de clculo, pero con
potencia en el manejo de datos.
BASIC, Beginners All Purpose
Symbolic Instruction Code (cdigo de
instruccin simblica universal para
principiantes): fue desarrollado por
la Universidad de Dartmonth (EE.UU.)
para los estudiantes que se inician
en el mundo de la programacin.
C/C++: es un lenguaje extremada-
mente poderoso y eciente, que nos
da la libertad de realizar casi cual-
quier tarea con una computadora.
Es muy popular entre los desarrolla-
dores de software profesional.
> En procesadores con alto poder de clculo, como
los DSP (micros con procesamiento digital de seales),
resulta muy difcil y costoso programar en assembler.
C02.indd 59 13/06/11 23:28
60 MICROCONTROLADORES 60
HISTORIAS DE
MICROPROCESADORES
H
asta el momento hemos co-
nocido la estructura interna y
algunos conceptos generales
que comparten los microprocesado-
res y microcontroladores, al menos
los de 8 bits. Estos conocimientos
son la piedra fundamental sobre la
que se edica toda la estructura que
contiene a los microcontroladores
ms modernos. Aun con sus mayores
diferencias, todos conservan una
historia y ciertos puntos en comn.
Comprendindola, podremos abordar
indistintamente cualquiera de ellos
para nuestro trabajo.
> Esta figura nos muestra la evolucin del modelo
de programacin del 6800 a la CPU08.
> Esta figura nos muestra la evolucin del modelo
de programacin del 6800 a la CPU08.
7 A 0 7 A
15 X 0 15
00
0
00
X 0 X 0
7 B 0
0
7 CCR 0
15 PC
15 SP
A: Acumulador A
B: Acumulador A
X: Registro ndice
PC: ProgramCounter
SP: Stack Pointer
CCR: Registro de estado (Conditio Code Register)
Motorola 6800
A Acumulador A
7 0
X H Registro ndice (H:X)
7 0 15
15
15
8
STACK POINTER (SP)
0
PROGRAM COUNTER (PC)
0
V 1 1 H I N Z C
Registro de estado
CARRY/BORROW FLAG (C)
CONDITION CODE
REGISTER (CCR)
7 0
TWOS COMPLEMENT
OVERFLOW FLAG (V)
ZERO FLAG (Z)
NEGATIVE FLAG (N)
HALF-CARRY FLAG (H)
INTERRUPT MASK (I)
Freescala CPU08
Mucho tiempo ha pasado desde el desarrollo
del primer microprocesador, y an varios
de los conceptos originales siguen vivos
en los microcontroladores ms modernos.
De 8080 a Rabbit 5000
Como sabemos, el primer micropro-
cesador exitoso fue el 8080 de Intel,
sobre el que se bas el Z80 de la
empresa Zilog. Con ellos, naci uno
de los primeros sistemas operativos
de amplia distribucin: el CP/M.
La caracterstica distintiva de estos
micros fue su gran cantidad de regis-
tros y un variado set de instruccio-
nes orientado al procesamiento de
datos. El Z80, en particular, introdujo
la innovacin del set alternativo de
registros, para acelerar el cambio de
contexto en interrupciones, tema que
desarrollaremos ms adelante.
Otra novedad fue un rea especial
para el acceso a puertos de entrada/
salida (I/O) fuera del mapa de memo-
ria de datos. Sobre esta plataforma
se desarroll Rabbit, que estudiare-
mos en la clase 17.
Del 6800 al HCS08
El primer microprocesador exitoso de
Motorola, hoy Freescale, fue el 6800,
contemporneo y competidor del 8080
e, incluso, del Z80. Las lneas de 8 bits
de mayor xito de Freescale en la
actualidad son las HC08 y HCS08 (S08),
C02.indd 60 13/06/11 23:28
61 Historias de microprocesadores
basadas en la CPU08, que, a su vez,
es descendiente de la original 6800. La
caracterstica distintiva de estos micros
es un modelo de programacin simple
y compacto, con gran cantidad de ins-
trucciones cortas y ecientes, orienta-
das a la resolucin de tareas simples.
El 8051
En la gura de la pgina 10 se mues-
tra en detalle la arquitectura MCS51,
perteneciente al 8051, un microcon-
trolador diseado por Intel que ha
pasado a ser el estndar de facto en
el mundo de los microcontroladores,
y que es modicado y producido por
decenas de fabricantes. Su particu-
laridad distintiva es que puede
procesar bits individualmente, den-
tro de un rea de 128 bits (32 bytes).
MSP430 y AVR
Dos cores de relativamente recien-
te aparicin son, por un lado, el
MSP430, de 8/16 bits, fabricado por
Texas Instruments; y, por el otro, el
AVR, de Atmel. Ambos se caracteri-
zan por tener una gran cantidad de
registros del procesador, fuera del
mapa de memoria de datos, adems
de un poderoso set de instrucciones.
El MSP430 permite operar en 8 o 16
bits sobre los registros o la memoria.
AVR incluye, adems, un rea de I/O.
Ambos ncleos permiten que cual-
quier registro o posicin de memoria
sea fuente o destino de casi cual-
quier operacin.
Microchip PIC
Otro core de gran repercusin es
el PIC, de Microchip, elegido por la
mayora de los acionados en el mun-
do, cuya historia conoceremos ms
adelante. l ser el protagonista de
la clase. Se distingue por la simpleza
y eciencia del core, y por tener un
muy compacto set de instrucciones
de rpida ejecucin, con acceso a
toda la memoria de datos como uno
de los operandos y posible destino de
muchas de las operaciones.
stos son solo algunos de los ncleos
de 8 bits de algunos de los fabricantes
de mayor repercusin. Por supuesto
que existen muchas ms alternativas.
R0/PC Program Counter 0 / g
R1/SP Steck Pointer 0 /
R2/SR/CGI Status / /
R3/CG2 Constant Generator /
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
16
Zero, Z
Carry, C
Overflow, V
Negative, N
16
MCLK
MDB
Memory Data Bus
MAB
Memory Address Bus
dst src
16-bit ALU
AVR
Flash
Memoria de
programa
Program
Counter
Status
Control
Data Bus 8-bit
Registro de
instrucciones
32 x 8
Registros
Memoria
de datos
ALU
SRAM
AVR
16
MDB
Memory Data Bus
MAB
Memory Address Bus
Data Bus 8-bit
R0/PC Program Counter 0 / g
R1/SP Steck Pointer 0 /
R2/SR/CGI Status / /
R3/CG2 Constant Generator /
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
Zero, Z
Carry, C
Overflow, V
Negative, N
16
MCLK
dst src
16-bit ALU
Flash
Memoria de
programa
Program
Counter
Status
Control
Registro de
instrucciones
32 x 8
Registros
Memoria
de datos
ALU
SRAM
AVR
> Detalles de la estructura interna
simplificada de los ncleos ms
recientes: AVR ATmega y MSP430.
C02.indd 61 15/06/11 11:06
62 MICROCONTROLADORES
> En el diagrama
podemos ver
la conexin
entre la CPU, la
memoria de datos
y la de programa,
utilizando el bus
de datos para las
instrucciones y
los datos. Esto
genera un cuello
de botella.
MICROCOMPUTADORAS:
DE QU SE TRATAN?
Se encuentran en todos nuestros
electrodomsticos, alarmas y automotores,
entre otros equipos, donde aplican inteligencia
a todos los aparatos que nos rodean.
E
l avance de las escalas de
integracin permiti integrar
cada vez ms transistores por
unidad de supercie. El desarrollo de
la tecnologa VLSI (muy alta escala
de integracin), que produjo los
microprocesadores, pronto permiti
introducir en un solo chip todo un
sistema mnimo. Esto dio nacimiento
a la microcomputadora, actualmente
conocida como microcontrolador.
Dentro de ellas encontramos una
CPU, una memoria de programa, una
memoria de datos, el circuito de
reset y el circuito oscilador, adems
de los puertos de entrada/salida,
tambin conocidos como PORTS I/O.
Las microcomputadoras o microcon-
troladores nacieron a mediados de los
80 y rpidamente ganaron mercado,
al desplazar a los sistemas mnimos
desarrollados con microprocesadores
en el campo del control industrial.
Los microcontrolad ores, debido a su
muy bajo costo, alta inmunidad al ruido
elctrico y pequeo tamao, produje-
ron la revolucin microcontrolada, que
desplaz a toda la lgica cableada
(utilizada en la electrnica industrial)
y a la lgica programada. Es en este
campo donde se los bautiz con el
nombre de microcontroladores y se
desech el de microcomputadoras.
A partir de los 90, los microcontro-
ladores invadieron la electrnica de
consumo, brindando a los electro-
domsticos y a todo tipo de sistema
electrnico de consumo la capacidad
de inteligencia y conectividad. El mun-
do actual est rodeado de microcon-
troladores; desde nuestros celulares,
sistemas de alarmas y lavarropas,
hasta las computadoras de a bordo
de los automviles. Sin ellos, nuestro
mundo actual no existira.
Arquitectura interna
de los microcontroladores
Los microcontroladores estn for-
mados por varios bloques. Dentro de
ellos existe, como elemento princi-
pal, la CPU, que se interconecta con
sus perifricos para formar lo que se
conoce como arquitectura interna.
Esta puede ser de dos tipos:
Von Neumann o Harvard.
La arquitectura Von Neumann
fue suplantada por los microcontroladores
con arquitectura Harvard.
CPU Memoria
de datos
y de programa
8 bits
Bus
Arquitectura
Von Neumann
C02.indd 62 13/06/11 23:28
63 Microcomputadoras: de qu se tratan?
> En la figura observamos los bloques que conforman el interior de un microcontrolador bsico.
Arquitectura Von Neumann
Fue desarrollada en 1949 por el profe-
sor John Von Neumann e implementa-
da para la construccin de las compu-
tadoras como la ENIAC (nombre de la
primera computadora electrnica).
Segn esta arquitectura, existe un
bus de datos que liga la CPU con la
bus de datos deba compartirse con
los datos y las instrucciones, lo que
generaba un cuello de botella.
Entonces, se presentaron varios
problemas en la arquitectura, como
mencionamos a continuacin.
Por un lado, el ancho del bus de datos
era de 8 bits y, como por l viajan
P0.0 - P0.7
Direcciones
de datos
GND
Vcc
Direcciones
de programa
Memoria
de programa
P2.0 - P2.7
PORT O DRIVERS
EEPROM
Registros
TMP2
ALU
TMP1
Stack
Pointer
Registro
de estado
Port 1
Latch
Spi
Port
Port 3
Latch
Timing
and
control
Interrupciones,
puerto serie, timer
Buffer
PC
Incrementer
Program
Counter
Dual
DPTR
Program
Logic
Program Address
Register
Acumulador Bus de datos
Memoria
de datos
Port 0
Latch
Port 2
Latch
d
d
Flash
de
RAM ADDR.
REGISTER
PORT 2 DRIVERS
P3.0 - P3.7
PORT 3 DRIVERS
P1.0 - P1.7
PORT 1 DRIVERS
PSEN
ALE/PROG
EA / Vpp
RST
Registro
de
instrucciones
Watch
Dog
OSC
M
I
C
R
O
P
R
O
C
E
S
A
D
O
R
E
S

Y

M
I
C
R
O
C
O
N
T
R
O
L
A
D
O
R
E
S
C
l
a
s
e

1
0





1
5
memoria de datos y de programa, por
el cual viajan datos e instrucciones.
Este concepto fue muy til en las pri-
meras dcadas de las computadoras,
pero, al incrementarse la cantidad de
datos por procesar, la velocidad de
procesamiento se redujo. Rpidamen-
te, la arquitectura se satur, ya que el
C02.indd 63 13/06/11 23:28
64 MICROCONTROLADORES
Los microcontroladores
son una pequea
computadora inyectada
en un chip.
los datos y las instrucciones, el ancho
de los datos limitaba el ancho de las
instrucciones. Como consecuencia,
las instrucciones con ms de
8 bits deban ser enviadas en varias
partes, lo cual haca que el sistema
resultara lento.
Otro conicto es que nunca se saba
cunta memoria de programa se usa-
ba, pues esto depende del ancho en
bytes que tengan las instrucciones,
lo cual es muy variable.
Esta arquitectura caduc a nales
de los 80 y fue suplantada por los
microcontroladores Harvard.
Arquitectura Harvard
Fue desarrollada en 1970 para solu-
cionar los problemas de velocidad
de procesamiento que presentaba
la arquitectura Von Neumann.
Esta arquitectura conect la CPU
hacia su memoria mediante dos bu-
ses distintos: uno de datos y otro de
instrucciones. De este modo, el an-
cho del bus de instrucciones no est
limitado por el de datos, y el procesa-
dor puede recibir instrucciones por
caminos diferentes, aprovechando
CPU Memoria
de datos
8 bits
Bus
Memoria
de programa
14 bits
Bus
> ARQUITECTURA HARVARD
Emplea dos buses de acceso, uno para datos y otro para programa.
Esto optimiza el funcionamiento a costa de duplicar la cantidad de
memorias. No es posible guardar constantes con el programa. La versin
modicada introduce acceso a la memoria de programa como datos,
resolviendo este inconveniente. Los compiladores para lenguajes de alto
nivel, como C, deben introducir directivas para elegir rea.
> En la figura observamos
los buses separados
de datos e instrucciones,
que pusieron fin
al cuello de botella
que se generaba
en la arquitectura
Von Neumann.
el tiempo del ciclo de mquina.
El concepto y nombre de la arqui-
tectura deviene de la computadora
MARK1, construida en la Universidad
de Harvard en 1944.
En 1975, una compaa americana
denominada General Instruments
form una divisin especial dedicada
al desarrollo de memorias y micro-
procesadores: GI Microelectronics.
Esta tom el concepto de la arqui-
tectura Harvard y lo materializ en su
primer microcontrolador denominado
PIC1650, e introdujo mejoras en el
concepto de la arquitectura. Coloc
dentro del chip una pila de instruc-
ciones de dos niveles. Esto dio la
posibilidad de buscar y ejecutar una
instruccin en el mismo ciclo de m-
quina. Se la denomin arquitectura
Harvard modicada.
C02.indd 64 13/06/11 23:28
65 Microcomputadoras: de qu se tratan?
El microprocesador 6502 fue
desarrollado por la compaa
Rockwell. Este micro era una
variante del 6800, fabricado
por la firma Motorola, con
la diferencia de que el 6502
posea solo un registro de
trabajo. A partir de este
se fabricaron la TK2000 de
Microdigital y el Apple 2e.
Por su parte, Commodore
desarroll su Commodore 64
a partir de una variante me-
jorada del 6502, denominada
6510 (el cual inclua un PORT
I/O auxiliar).
>
EL MICRO 6502
En 1985 GI vendi Microelectronics
a un grupo inversor denominado
Ventura, que reot el proyecto
del PIC1650 y rebautiz la compaa
con el nombre de Microchip.
Esta desarroll rpidamente una serie
de microcontroladores basados en la
arquitectura del PIC. Con el tiempo,
otras rmas adoptaron el modelo de
Microchip para sus ncleos.
Concepto de una computadora
La computadora es un circuito digital
capaz de procesar informacin binaria.
En este circuito encontramos un mi-
croprocesador, una memoria del tipo
no voltil (ROM, EPROM, EEPROM,
Flash), una memoria RAM, un circuito
oscilador, un circuito de reset y los
puertos de entrada/salida.
La memoria no voltil es conocida
como memoria de programa, ya que
en ella se almacena el que hace
funcionar a la computadora.
La RAM es usada por la compu-
tadora para guardar los resultados
de procesamientos de datos internos
o los que provienen del exterior.
Por su parte, los puertos I/O (entra-
da/salida) se usan para intercam-
biar informacin y controlar todo
el entorno externo a la mquina.
Todos estos elementos se encuentran
en forma discreta (es decir, encap-
sulados en chips individuales) y
montados sobre un PCB. A este
conjunto se lo denomina
sistema mnimo.
Las computadoras miden su potencia
de procesamiento en funcin de la
cantidad de instrucciones que pue-
den ejecutar por segundo, medida en
una unidad denominada MIPS.
Microcontroladores
y microprocesadores
No debemos confundir los micropro-
cesadores con los microcontrolado-
res. Los primeros, simplemente, son
la unidad central de procesamiento.
No incorporan puertos para control
de perifricos, ni memoria de progra-
ma ni tampoco memoria de datos.
Estn especialmente diseados
para procesar grandes cantidades
de datos y son muy susceptibles
al ruido elctrico.
En cambio, los microcontroladores
son una pequea computadora
inyectada en un chip. Estn disea-
dos, principalmente, para el control
industrial y no para el procesamien-
to de grandes cantidades de datos.
Su principal ventaja radica en la alta
inmunidad al ruido, el bajo
costo y la reduccin
de espacio.
s de
radica en
, el bajo
n
I/O
res
ea-
ntrol
mien-
atos.
a alta
/salida) se usan para intercam-
r informacin y controlar todo
entorno externo a la mquina.
dos estos elementos se encuentran
forma discreta (es decir, encap-
ados en chips individuales) y
ntados sobre un PCB. A este
njunto se lo denomina
tema mnimo.
C02.indd 65 13/06/11 23:28
Rutina principal
66 MICROCONTROLADORES
upcin
erna
Rutina principal
Inicio
Interrupcin
externa
Vector de interrupcin
Rutina de interrupciones
66
LAS INTERRUPCIONES
Con las interrupciones podemos hacer
que determinados eventos que ocurren
en el hardware cambien la rutina
del software. Veamos de qu se trata.
P
ara entender qu es una
interrupcin, recurriremos a
un ejemplo muy sencillo y que
se presenta bastante a menudo en
nuestros hogares. Cuando enviamos
un archivo a la impresora, la rutina
principal del programa se encarga de
mandar los caracteres al buffer de
este equipo. Si la impresora se queda
sin papel, el proceso se detiene, y se
despliega un mensaje en la pantalla
de la PC para advertirnos al respecto.
Como podemos observar, el programa
principal se encarga de enviar los
caracteres del archivo a la impresora.
Sin embargo, si el sensor de falta
de papel se activa, se interrumpe la
impresin. Este evento hace que el
procesador pase a procesar un pro-
grama que atienda la interrupcin, el
cual despliega el mensaje en pantalla.
Una vez que recargamos el papel, el
sensor se desactiva, la seal de inte-
rrupcin desaparece, y el procesador
vuelve a ejecutar la rutina principal.
La interrupcin es un sistema que
provoca un salto a una subrutina,
La interrupcin
provoca un salto
a una subrutina,
pero disparada por un
evento del hardware.
> En la figura, podemos observar el proceso de una interrupcin de forma grfica.
Rutina principal
Inicio
Interrupcin
externa
Vector de interrupcin
Rutina de interrupciones
> INTERRUPCIONES
El concepto nace de la necesidad de procesar eventos que, al ocurrir, requieren una atencin
inmediata ya que no es conveniente esperarlos. Segn el procesador, se transere la ejecucin
a una posicin ja o indicada por el contenido de una posicin o tabla. Aqu se salva el contexto
(si el procesador no lo hace), se opera y se devuelve el control.
C02.indd 66 13/06/11 23:29
67 Las interrupciones 6
Reset Vector
CALL, RCALL, RETURN
RETFIE, RETLW
User
Memory
Space
0000h
0008h
0018h
FFFFh
10000h
1FFFFh
200000h
21
PIC18FX620
High-Priority Interrupt Vector
Stack Level 1
21
PC<20:0>
Stack Level 31
000 Low-Priority Interrupt Vector
F
On-Chip
Program Memory
1
2
1
Read O
pero disparada por un evento del
hardware. Se diferencia de los
saltos a subrutina generados por el
software, como el producido por la
instruccin CALL, en lo siguiente:
La interrupcin es atemporal;
el microcontrolador nunca sabe
cundo va a ocurrir.
Cuando la interrupcin ocurre, el
procesador abandona el programa
que est ejecutando y pasa a pro-
cesar una rutina que se encuentra a
partir de una posicin de memoria ja,
denominada vector de interrupcin.
En la interrupcin se salva el con-
tenido interno de los registros ms
importantes del procesador, de modo
que luego, al volver al programa que
se estaba ejecutando, se prosiga sin
alteraciones.
Tipos de interrupciones
Las interrupciones pueden dividirse
en internas o externas, y en enmas-
carables o no enmascarables.
Las internas son disparadas por el
hardware interno del microcontrola-
dor, por ejemplo, el conversor ana-
lgico/digital, los temporizadores,
etc. Las externas son disparadas
externamente mediante la aplica-
cin de un pulso o un estado sobre
un pin del microcontrolador, deno-
minado INT (interrupcin). Pero ms
all de si la interrupcin es interna
o externa, esta puede ser del tipo
enmascarable o no enmascarable.
Las primeras necesitan tener ac-
tivado un bit de habilitacin para
generarse, aunque hayan sido soli-
citadas; en tanto que las segundas
suceden, s o s, no bien ocurre el
evento de la interrupcin.
El vector de interrupciones
Como hemos visto, cuando la inte-
rrupcin se genera, el procesador
pasa a procesar la rutina que se
encuentra a partir de una posicin
> Aqu observamos la posicin de memoria de programa
de los vectores de interrupcin en un microcontrolador PIC18F.
de memoria ja, conocida como
vector de interrupciones. En los mi-
crocontroladores puede existir ms
de un vector de este tipo, uno para
la interrupcin enmascarable y otro
para la no enmascarable.
En otros microcontroladores, pue-
de ocurrir que cada dispositivo del
hardware que interrumpe tenga su
propio vector, o que haya vectores
distintos segn la prioridad que
hayamos elegido para la interrup-
cin. Todo depende del microcon-
trolador que manejemos.
C02.indd 67 13/06/11 23:29
Display Alfanumrico
Teclado a
membrana
Display 7
segmentos
FM24CL64
MAX 232 Drive
AT45DB041B
FT2232D
Sensor de temperatura
Puertos paralelos de propsito general.
Pueden conectarse tpicamente a los
mismos: leds, switches, botones, displays
alfanumricos, displays 7 segmentos
y teclados a membrana. Dependiendo
del microcontrolador utilizado, son capaces
de manejar corrientes desde los 40uA
a 25mA por lnea.
Puertos Paralelos esclavo de 8 bits.
Conversores analgico-digitales. Digitalizacin
de seales de origen analgico como el sensor
de temperatura
Conversor A/D de 10 bits multicanal
Mdulo HW para interfaces sincrnicas
seriales, encontrada en diversas arquitecturas.
Permite congurar interfaces SPI e I2C en
modos Master y Slave.
Ejemplos: AT45DB041B Flash Eeprom SPI de
Atmel y FRAM FM24CL64 I2C de Ramtrom.
Mdulo Serial Sincrnico Multipropsito
(MSSP en Microchip): SPI / I2C
Para implementacin de comunicaciones
asincrnicas seriales como RS232.
Generador de Baud-rate congurable:
Ej.: 9600 19200 baudios etc. Manejan 8
9 bits de datos, conguracin de bits de
parada, ags de errores, etc.
Universal Synchronous
Asynchronous Receiver/Transmitter
(USART/SCI en Microchip).
Oscilador
0- 40 MHz
SPI
1 C
T0 T1 USART
PLL
Puerto A Puerto B
CCP1
CCP2
CP
A/D
converter
Vref
Comunicacin
serial
CCP/PWM
Modulos
Puerto C
Interrup.
Puerto D
El chip FT2232D de FTDI para
conectividad USB 2.0
Full-Speed, permite interfaces
con nuestro microcontrolador
del tipo SPI, I2C mismo con
un mdulo asincrnico como
RS232
T
IP
p FT2232D de FTDI
T
IP
T
I
TIP
68 MICROCONTROLADORES
PERIFRICOS EN MICROCONTROLADORES
En esta infografa les mostramos los mdulos de hardware internos
de un PIC16F876A y una idea de conexin de algunos de los perifricos
-vzms utilizados en aplicaciones con microcontroladores.
C02.indd 68 13/06/11 23:29
Algunos microcontroladores como el PIC18F97J60 de Microchip,
ofrecen controladores Ethernet embebidos. Se encuentran
completamente implementados en el HW del micro. Los mdulos
Media Access Control (MAC) y Physical Layer Transmitter
(PHY) se encargan de ello. Para su interfaz directa a una red
Ethernet, slo se requiere la utilizacin de 2 transformadores
de pulso y algunos componentes pasivos que ayudan
a la reduccin de EMI (Interferencia Electromagntica).
Circuito interfaz
adaptador
de lneas
y reduccin EMI
Son utilizados para diversas aplicaciones que necesiten trabajar con marcas
de tiempo, implementar retrasos (delays) y analizar eventos en forma temporal
generando interrupciones. Pueden alimentarse con clks externos o internos.
Caractersticas PIC16F876A de Microchip:
Timer 0: Contador/Temporizador de 8 bits con preescaler de 8 bits
Timer 1: Contador/Temporizador de 16 bits con preescaler.
Puede ser incrementado durante sleep, mediante un cristal o reloj externo.
Timer 2: Contador/Temporizador de 8 bits. Posee preescaler y postcaler.
RJ45
232 Driver
Led
Mdulos Ethernet (PIC18F97J60).:
Utilizados para control de motores pequeos de CC para medir
ciclos de trabajo de seales como la salida de un acelermetro.
Utilizan los recursos de los mdulos Contadores/Timers
que forman parte de cualquier arquitectura micrcontrolador.
Caractersticas PIC 16F876A de Microchip:
Resolucin Captura 12,5ns mx. y de 16bits
Resolucin Comparador 200ns mx y de 16bits
Resolucin del mod. Pulse Width Modulation es de 10 bits.
Mdulos PWM.:
Mdulos Timer/Temporizadores
T0 T1 SER RAM
Ethernet
MAC
Power
Supply
2 -5.5V
Ethernet
PHY
EEPROM
8 Kbytes
Buffer RAM
RESET
Program
Memory
CPU
Memoria Interrup. WDT
erto D Puerto E
T2 T3
Se necesitan chips conversores de
niveles como el MAX232 para
adaptar las tensiones y corrientes
del micro a los del protocolo
propiamente dicho.
TIP
69 Perifricos en microcontroladores
C02.indd 69 13/06/11 23:29
70 MICROCONTROLADORES
La resolucin de un
conversor A/D nos
indica la precisin que
tendr el dispositivo
al realizar el proceso.
CONVERSORES
ANALGICO-DIGITALES
Los conversores A/D o ADCs son fundamentales
para que el microcontrolador pueda leer
las variaciones analgicas del mundo real
y reaccionar a ellas.
L
os conversores A/D son dispositi-
vos que convierten una variacin
analgica en formato digital. Son
indispensables en los lazos de control
cerrados digitales; podramos decir
que son los ojos de los micropro-
cesadores y de los microcontroladores.
En todo sistema digital de control, existe
siempre un conversor A/D que se en-
carga de traducir la seal entregada
por un sensor de temperatura, presin o
fuerza a un valor digital equivalente que
pueda procesar el sistema de control
digital, ya sea que este se encuentre
implementado con micropro-cesadores
o con microcontroladores.
Resolucin
de los conversores A/D
La resolucin de un conversor A/D es
un parmetro muy importante porque
nos indica la precisin que tendr el
dispositivo al realizar la conversin.
La seal analgica que ingresa al
conversor es dividida en una serie
de pequeas fracciones. Cuanto
mayor sea la resolucin del conversor,
ms pequeas sern las fracciones
y, por lo tanto, ms aproximada
ser la conversin al valor real.
Dicha resolucin queda determinada
por el nmero de bits que puede
procesar el conversor. Por ejemplo, en
un conversor de 8 bits, la seal de en-
trada se divide en 256 fracciones. Sin
embargo, en uno de 16 bits, lo hace en
65536 fracciones, y la precisin para
el mismo nivel de seal resulta mayor.
La fraccin se denomina escaln de
conversin o rata de cambio. Cuanto
ms pequea es, ms precisa es la
conversin analgico-digital. Los
conversores ms comunes son de
8 bits de resolucin, pero tambin
existen de 10 bits, 12 bits, 16 bits,
20 bits y 24 bits. Es importante destacar
que cuanta mayor precisin tiene
el conversor, ms lento es; por lo
tanto, si la seal de entrada vara muy
rpidamente, se producirn errores.
> LOS INICIOS DE LOS A/D
Los conversores A/D que se usaron en las primeras PCs para las placas de
sonido eran de 8 bits. Su resolucin limitada generaba sonidos sintticos.
Luego fueron superados por los conversores de 16 bits, que dieron vida a
las tarjetas de sonido como la Sound Blaster. Sin embargo, actualmente
contamos con conversores muy superiores, mediante los cuales podemos
digitalizar seales con alta precisin.
el conversor, ms lento es; por lo
tanto, si la seal de entrada vara muy
rpidamente, se producirn errores.
>En la gura observamos la funcin de
transferencia de un conversor de 10 bits.
E l b l f i d
3FFh
3FEh
003h
002h
001h
000h
0
.
5

L
S
B
1

L
S
B
1
.
5

L
S
B
2

L
S
B
2
.
5

L
S
B
3

L
S
B
V
a
l
o
r

d
i
g
i
t
a
l

d
e

s
a
l
i
d
a
1
0
2
2

L
S
B
1
0
2
2
.
5

L
S
B
1
0
2
3

L
S
B
1
0
2
3
.
5

L
S
B
Valor analgico de entrada
C02.indd 70 13/06/11 23:29
71 Conversores analgico-digitales
2
4
R
2R
4R
8R
2
3
2
2
2
1
2
8
2
4
2
2
2
1
1 1 1 1
1 1 1 0
1 1 0 1
1 1 0 o
1 0 1 1
1 0 1 o
1 o 0 o
0 1 1 1
0 1 1 o
0 1 o 1
o 1 0 o
o 0 1 1
o 0 1 o
o 0 o 1
o o 0 o
REGISTRO RESISTENCIAS
PONDERADAS
NIVEL ANALGICO Y SU CORRESPONDIENTE EN BINARIO
CLOCK
CLOCK
E
N
T
R
A
D
A
> En la gura
podemos ver un
conversor D/A
por resistores
ponderadores.
La dicultad que
presenta este
mtodo radica
en conseguir
comercialmente
los valores de los
resistores.
> Este conversor D/A del tipo R-2R utiliza solo dos clases distintas de resistores; sin embargo, su construccin necesita ms
resistores que el mtodo ponderado.
Conversores
digital-analgicos
Existen varios mtodos para obtener
la conversin digital-analgica. Para
conseguir pasar un valor binario a un
valor de tensin analgico equiva-
lente, se recurre a una red de resis-
tencias. Esta genera una tensin en
funcin de los niveles binarios que se
encuentren en un momento dado en
cada uno de los bits que intervienen
en el proceso.
La mencionada red resistiva es, por
lo tanto, la clave de la conversin.
Existen dos redes perfectamente
diferenciadas que cumplen este co-
metido: la de resistores ponderados
y la red R-2R. Para explicar este con-
cepto, supongamos que disponemos
de un registro de 8 bits, que puede
ser cargado con cualquier valor
desde 00 hasta FF.
Una red ponderada de resistores
consistir en conectar un resistor
en cada salida del registro (de all su
nombre ponderada), de modo
Para pasar un valor
binario a uno de
tensin analgico
equivalente, se recurre
a una red de resistores.
E t D/A d l ti R 2R tili l d l di ti t d i t i b t i it
OSC2
OSC1
Sleep
8 MHz
Source
INTRC
Source
8 MHz
(INTOSC)
31 kHz (INTRC)
OSCTUNE<7>
OSCCON<6:4>
Internal Oscillator
FOSC3:FOSC0 OSCCON<1:0>
Clock
Control
IDLEN
CPU
Peripherals
LP, XT, HS, RC, EC
HSPLL, INTOSC/PLL
OSCTUNE<6>
P
o
s
t
s
c
a
l
e
r
4 x PLL
T1OSC
M
U
X
WDT, PWRT, FSCM
and Two-Speed Start-up
Clock Source Option
for Other Modules
111
110
101
100
011
010
001
000
M
U
X
8 MHz
4 MHz
2 MHz
1 MHz
500 MHz
250 MHz
125 MHz
31 MHz
1
0
T1OSCEN
Enable
Oscillator
OSCCON<6:4>
T1OSO
T1OSI
PI C18F2525/ 2620/ 4525/ 4620
Secondary Oscillator
Primary Oscillator
Internal
Oscillator
Block
C02.indd 71 13/06/11 23:29
72 MICROCONTROLADORES
que los valores de los resistores por
conectar desde el bit de mayor peso
hasta el de menor peso son R, 2R, 4R,
8R, 16R, 32R, 64R y 128R.
Si una vez conectados estos
resistores, se aplican valores binarios
de 00 a FF en forma consecutiva,
se generar una rampa ascendente
de 255 escalones, donde cada uno
corresponde a un valor binario.
La conversin D/A tambin
puede realizarse mediante otro
procedimiento denominado red de
resistores R-2R. En este sistema,
a cada bit que sale del registro
se le conecta un resistor de valor 2R
y, en el extremo de este, se coloca
un resistor de valor R.
Por ejemplo, si R vale 10K, 2R vale
20K. Como se puede apreciar,
en esta red el valor hmico de los
resistores R determina el valor de
2R, que es el doble de R (2R = 2 x R).
Este sistema tiene la ventaja de que
emplea solo dos valores de resistores
distintos. La salida de seal analgica
se toma despus del resistor
en serie del bit de mayor peso.
Conversores
analgico-digitales (ADC)
La conversin analgico-digital
consiste en transformar valores
analgicos en digitales. Es el proce-
so inverso a la D/A. En este caso, a
cada valor analgico aplicado en la
entrada del conversor le correspon-
de un valor digital de salida, dentro
de los que puede generar el con-
versor. La precisin del conversor
estar dada por la cantidad de bits
que formarn al resultado de la con-
versin. Para obtener la conversin
A/Dm existen varios mtodos; aqu
trataremos solo los ms represen-
tativos:
Conversor esttico o ash
Conversor dinmico o de rampa
Conversor de doble rampa
Conversor SAR o por
aproximacin sucesiva
Conversor esttico o ash
Este tipo de conversor es el ms
rpido de todos. Est formado por
una cadena de comparadores que
toman su voltaje de referencia desde
un array de resistores. Como todos
los comparadores se encuentran
en paralelo, el sistema es conocido
como conversor paralelo. La salida
de los comparadores se aplica
a un codicador de prioridad digital,
el cual genera un nmero binario
segn la entrada que se haya
activado. De este modo, cada
comparador dispara una entrada,
la cual, a su vez, genera un cdigo
binario en la salida del codicador.
El mtodo de conversin
es muy sencillo, ya que la tensin
de entrada se aplica a la entrada
de comparacin de todos los
comparadores. Como resultado,
estos activan su salida cuando la
tensin de comparacin supera a
la de referencia. Pero, del sistema,
solo sale un cdigo binario, pues el
codicador de prioridad nicamente
genera una salida equivalente a la
entrada de mayor peso que est
activa, y el resto es ignorado. Si bien
este mtodo es rpido y eciente,
tiene el inconveniente del tamao y
del costo del conversor,
porque se necesitan 255
comparadores para construir
un conversor de 8 bits.
.
.
.
.
.
.
.
.
.
V
i n
V
r ef +
R/ 2
R
R
R
R/ 2
V
r ef -
+
-
+
-
+
-
+
-
( 2
N
- 1) - t o- N
encoder
D
out
N
La principal ventaja que tienen
los conversores estticos o de
tipo ash es su velocidad de
conversin. Como la seal de
entrada se aplica simultnea-
mente a todos los conversores,
el nico tiempo de retardo que
existe es el de propagacin del
comparador y el del codica-
dor binario. Por esta causa, los
conversores de este tipo son
los ms rpidos del mercado.
>
VELOCIDAD
DE CONVERSIN
> En la gura observamos un conversor
esttico de 4 bits, mediante el cual
ilustramos su constitucin interna.
C02.indd 72 13/06/11 23:29
73 Conversores analgico-digitales
> El conversor
dinmico o de
rampa simple es
ms econmico
que el esttico.
La salida de la
conversin se
lee desde la
salida del registro
tipo LATCH.
I C1
Entrada
de seal
Registro
tipo Latch
S
a
l
i
d
a

d
e

d
a
t
o
s
I C2a
I C3 I C4
+
-
Reloj
Control
de rampa
1
2
3
4
5
6
7
8
9
10
11
12
24
23
22
21
20
19
18
17
16
15
14
13
1
2
3
4
5
6
7
8
9
10
11
12
R
binario de la conversin de la seal
de entrada.
El tiempo de conversin depende
del nivel de la seal de entrada:
cuanto ms grande sea, mayor ser
el tiempo de conversin. La principal
desventaja del conversor de rampa
simple es su inestabilidad en la ge-
neracin de la rampa. Por otra parte,
como no existe una sincronizacin
entre la seal de clock y la gene-
racin de la rampa, cualquier
Conversor de rampa
simple o dinmico
Este tipo de conversor es ms
econmico y eciente que el ante-
rior. Se lo suele denominar conversor
A/D de rampa simple o dinmico,
y se construye a partir de un conta-
dor digital y un comparador.
Cuando el conversor arranca, tanto
el contador como el comparador
inician en cero. Como la salida del
comparador tiene un nivel lgico
cero, una compuerta AND inhibe el
paso de la seal de clock hacia el
contador. Al aplicarse una seal en
la entrada del comparador, dado que
la entrada de referencia de este vale
cero, la salida del comparador pasa
a uno. Esto habilita la compuerta
AND, que deja pasar los pulsos
de clock al contador.
De esta forma, el comparador
comienza a incrementar su estado
de cuenta. La salida del contador se
enva hacia un registro tipo LATCH y,
al mismo tiempo, a un conversor D/A,
mediante el cual se genera la tensin
de referencia. De esta manera,
la referencia comienza
a incrementarse, y cuando llega
al valor de la tensin de entrada,
la salida del comparador pasa a
cero. Esto desactiva la AND e inhibe
el paso de la seal de clock. El
contador se detiene y se genera la
seal para que el registro tipo LATCH
capture el estado de cuenta y lo
presente en su salida como el valor
corrimiento afectar el resultado
de la conversin. Este problema se
compensa en el sistema de conver-
sin de doble rampa, que es ms
lento pero mucho ms estable.
Conversor de doble rampa
Este tipo de conversor subsana las
deciencias del sistema de rampa
simple, pero es ms lento que su
antecesor. Elimina el efecto del
corrimiento del voltaje de rampa
a lo largo del tiempo, y tambin utiliza
un integrador de entrada.
Este circuito est formado por un am-
plicador operacional y un capacitor
en el lazo de realimentacin. Cuando
aplicamos una tensin positiva a
la entrada del integrador, la salida
crece, pero en sentido negativo. Dicha
tensin provoca que la salida del
comparador pase a uno, lo que activa
la AND, que permite el paso de los
pulsos de clock que hacen avanzar al
contador. La rampa negativa generada
por el integrador tiene un tiempo jo,
determinado por el RC del integrador.
Despus de este tiempo, el circuito de
control pone a cero el contador y, tam-
bin, pone la entrada del integrador
a una tensin de referencia negativa.
En estas condiciones, el integra-
dor genera una rampa positiva. El
contador iniciar su cuenta hasta que
la salida del integrador llegue a cero,
lo que provocar que el comparador
entregue cero en su salida.
Este tipo de conversores, con
ligeras modicaciones, ha sido
adoptado por su simplicidad
para la conversin de audio en
formato digital, en cuyo caso
se denominan conversores tipo
sigma-delta. Los procesadores
de efecto para guitarras elc-
tricas, al igual que los pedales
de efecto digitales, lo emplean
para generar la conversin,
con la variante de que la salida
del comparador se aplica di-
rectamente a la entrada de un
procesador de seales digital.
>
APLICACIN DE LOS
CONVERSORES
C02.indd 73 13/06/11 23:29
74 MICROCONTROLADORES
El circuito de control detecta el anco
negativo producido por la salida del
comparador y memoriza en el LATCH
de salida el valor del contador. Este
nmero binario es el valor digitalizado
de la seal de entrada.
Cuando se aplica la referencia nega-
tiva en la entrada del integrador,
el tiempo requerido por este para
retornar a cero depende de la
magnitud de la seal de entrada.
Cualquier variacin en el circuito
integrador generador de la rampa
se cancela automticamente
en este retorno. El gran problema
que presenta este conversor es su
extrema lentitud: por lo general,
se necesitan unos 100 ms para efec-
tuar un ciclo completo de conversin.
Este tipo de conversor se encuentra
en el voltmetro TC7106/7107 diseado
por Microchip y otras compaas.
I C1
Integrador
de entrada
Seal
de entrada SW1
-Vref
R1
IC5
C1
Comparador
Registro
tipo Latch
S
a
l
i
d
a

d
e

d
a
t
o
s
I C2a
I C3 I C4
+
-
+
-
Reloj
Circuito de control
y temporizacin
1
2
3
4
5
6
7
8
9
10
11
12
24
23
22
21
20
19
18
17
16
15
14
13
1
2
3
4
5
6
7
8
9
10
11
12
R
> VOLTMETRO DE 3
A mediados de los aos 80, la empresa Intersil, que desarrollaba soluciones
embebidas para voltmetros, present su voltmetro de 3 dgitos basado en
un conversor de doble rampa. Este circuito integrado, denominado ICL7106/7,
fue producido, luego, por otros fabricantes como Microchip (TC7106/7). Su
uso se extendi ampliamente en la fabricacin de testers digitales.
> En el diagrama
vemos el pin out
del voltmetro
TC7106/7 basado
en el conversor
de doble rampa.
C02.indd 74 13/06/11 23:29
75 Conversores analgico-digitales
Vref: Tensin
de referencia
Entrada de
seal analgica
Comparador
Arranque
de conversin
Final de conversin (EOC)
IC1
S
a
l
i
d
a

d
e

d
a
t
o
s
+
-
Reloj o Clock
Registro de aproximaciones
sucesivas (SAR)
Registro
de salida
Conversor DAC
> Diagrama
interno
esquematizado
de un conversor
tipo SAR.
S.A.R.
SWITCH TREE
256 RESISTOR LOADER
TRI
STATE

OUTPUT
LATCH
BUFFER
8 CHANNELS
MULTIPLEXING
ANALOG
SWITCHES
ADDRESS
LATCH
AND DECODER
CONTROL & TIMING
END OF CONVERSION
(INTERRUPT)
CLOCK START
OUTPUT
ENABLE
REF (-) REF (+) GND VCC
3

B
I
T

A
D
D
R
E
S
S
ADDRESS
LATCH
ENABLE
8

A
N
A
L
O
G

I
M
P
U
T
S
COMPARATOR
8 BIT A/D
8

B
I
T

O
U
T
P
U
T
S
En la gura vemos el pin out del ADC0808, de la rma National Semiconductors. En la actualidad, otros fabricantes
tambin desarrollan este tipo de conversor.
C02.indd 75 13/06/11 23:29
ACTIVIDADES
TEST DE AUTOEVALUACIN
1. Mencione las caractersticas de un microprocesador.
2. Enumere los componentes que integran un micropro-
cesador.
3. Qu es y qu funcin cumple la ALU?
4. Para qu sirve el bus de direcciones?
5. Entregue algunos ejemplos de perifricos de entrada
y salida.
6. Qu ventajas proporciona el uso del lenguaje en-
samblador?
7. Qu es el ciclo de mquina?
8. Detalle las caractersticas de la arquitectura Von
Neumann y Harvard.
9. Cul es la principal funcin de las interrupciones?
10. Qu son los conversores analgico-digitales?
EJERCICIOS PRCTICOS
1. Realice un diagrama que muestre los componentes
de un microprocesador.
2. Experimente con algn lenguaje de alto nivel como
COBOL o BASIC.
3. Genere una lnea de tiempo en la cual se identique
la evolucin de los microprocesadores.
4. Analice el esquema de un conversor tipo SAR.
C02.indd 76 13/06/11 23:29

S-ar putea să vă placă și