Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CAMPUS ISTMO
INGENIERIA EN MECATRONICA
MICROCONTROLDADORES
MC GASTON DEHESA VALENCIA
UNIDAD I1
ARQUITECTURA DE LOS MICROCONTROLADORES
31/10/17
1
Contenido
Microcontroladores.....................................................................................................................................3
Arquitectura de los microcontroladores ........................................................................................................4
La arquitectura Harvard y sus ventajas: .............................................................................................5
Arquitectura interna de un microcontrolador. .....................................................................................6
CPU (unidad central de proceso): .......................................................................................................6
Memoria: ..................................................................................................................................................6
Unidades de entrada/salida: .................................................................................................................7
Arquitectura RISC y CISC .....................................................................................................................8
1.1 Diferencia entre microcomputadora y, microprocesador y microcontrolador ........................................9
1.2 Caractersticas y aplicaciones de microcontroladores. ..........................................................................11
1.3 Tipos de arquitecturas computacionales ...............................................................................................18
1.4 Tipos de microcontroladores y sus fabricantes .....................................................................................22
1.5 Componentes del microcontrolador ......................................................................................................29
1.5.1 Registros internos...............................................................................................................................30
1.5.2 Tipos y distribucin de las memorias internas ...................................................................................39
1.5.3 Perifricos ..........................................................................................................................................41
1.5.4 Instrucciones del microcontrolador. ...................................................................................................43
1.5.6 El reset y sus posibles fuentes. ...........................................................................................................48
1.6 Caractersticas de la fuente de alimentacin y consumo de potencia del microcontrolador. ................54
1.7 Ambiente integrado de desarrollo (IDE) ...............................................................................................54
1.7.1 Ensamblador y compilador. ...............................................................................................................55
1.7.2 Simulador, debugger y emulador. ......................................................................................................57
1.7.3 Equipos programadores (downloaders)..............................................................................................59
1.8 Herramientas de desarrollo. ..................................................................................................................60
Bibliografa .................................................................................................................................................62
2
Microcontroladores
Primero que todo comenzaremos definiendo que son los microcontroladores: Los
microcontroladores (abreviado C, UC o MCU) son circuitos integrados que son
capaces de ejecutar rdenes que fueron grabadas en su memoria. Su composicin est
dada por varios bloques funcionales, los cuales cumplen una tarea especfica.
Son dispositivos que operan uno o ms procesos, por lo general los microcontroladores
estn basados en la arquitectura de Harvard, la cual consiste en dispositivos de
almacenamiento separados (memoria de programa y memoria de datos).
El termino microcontrolador est dado por dos palabras que son Micro-Controlador
las cuales tienen por significado pequeo (en tamao) y maniobrar o controlar
(funcin principal) procesos los cuales son definidos mediante la programacin. Un
micro controlador est constituido en su interior por las tres principales unidades
funcionales de una computadora.
3
Arquitectura de los microcontroladores
El tamao de la unidad de datos o instrucciones est fijado por el ancho del bus de la
memoria. Las dos principales limitaciones de esta arquitectura tradicional son:
4
La arquitectura Harvard y sus ventajas:
La otra memoria solo almacena los datos y es llamada Memoria de Datos. Ambos buses
son totalmente independientes y pueden ser de distintos anchos. Para un procesador
de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set
de instrucciones y el bus de la memoria de programa.
Pueden disearse de manera tal que todas las instrucciones tengan una sola posicin
de memoria de programa de longitud. Adems, como los buses son independientes, el
CPU puede estar accediendo a los datos para completar la ejecucin de una instruccin,
y al mismo tiempo estar leyendo la prxima instruccin a ejecutar. Podemos observar
claramente que las principales ventajas de esta arquitectura son:
Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben
poseer instrucciones especiales para acceder a tablas de valores constantes que pueda
ser necesario incluir en los programas, ya que estas tablas se encontraran
5
fsicamente en la memoria de programa (por ejemplo en la EPROM de un
microprocesador).
Podemos decir que la CPU, siglas en ingls de unidad central de proceso, es el ncleo
del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la
memoria, de la que hablaremos ms adelante. Es lo que habitualmente llamamos
procesador o microprocesador, trmino que a menudo se confunde con el de
microcontrolador.
En esta lnea cabe aclarar que, tal y como estamos viendo, ambos trminos no son lo
mismo: el microprocesador es una parte de un microcontrolador y sin l no sera til; un
microcontrolador, en cambio, es un sistema completo que puede llevar a cabo de forma
autnoma una labor.
Memoria:
6
apartado, s habr que tener en cuenta una clasificacin bsica, que distingue entre
memoria voltil y no voltil. La primera es aquella que pierde la informacin que
almacena al desconectarla de la alimentacin; la segunda, como resulta obvio, no.
Por lo tanto, se hace evidente que al menos la memoria de programa deber ser no
voltil: no sera prctico que el programa grabado en el microcontrolador se borrara
cada vez que apagramos el dispositivo. Con respecto a la memoria de datos, diremos
por el momento segn la situacin puede interesarnos una u otra.
Unidades de entrada/salida:
Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para
comunicarse con el exterior. Imaginemos una televisin: por un lado tiene un dispositivo
de salida, como es la pantalla, y por otro lado, de entrada, como son los botones de
subir o bajar volumen y de cambio de canal.
7
Arquitectura RISC y CISC
RISC (Reduced Instruction Set Computer) Computadora con Juego de Instrucciones Reducidas.
Es como intentar explicarle a alguien con pocas palabras cmo llegar al aeropuerto en
una nueva ciudad. Sin embargo, no todo es tan oscuro. Adems, el microcontrolador es
muy rpido as que no es posible ver todas las acrobacias aritmticas que realiza.
El usuario slo puede ver el resultado final de todas las operaciones. Por ltimo, no es
tan difcil explicar dnde est el aeropuerto si se utilizan las palabras adecuadas tales
como: a la derecha, a la izquierda, el kilmetro etc.
8
1.1 Diferencia entre microcomputadora y, microprocesador y microcontrolador
Las lneas de sus buses de direcciones, datos y control, para permitir conectarle con la
Memoria y los Mdulos de (ENTRADA / SALIDA) E/S y configurar un computador
implementado por varios circuitos integrados. Se dice que un microprocesador es un
sistema abierto porque su configuracin es variable de acuerdo.
9
Representa una mejora considerable en el mismo. Aumento de la habilidad al
reemplazar el microcontrolador por un elevado nmero de elementos disminuye el
riesgo de averas y se precisan menos ajustes. Reduccin del tamao en el producto
acabado. La integracin del microcontrolador en un chip disminuye el volumen.
La mano de obra y los stocks. Mayor flexibilidad: las caractersticas de control estn
programadas por lo que su medicacin slo necesita cambios en el programa de
instrucciones.
10
1.2 Caractersticas y aplicaciones de microcontroladores.
Genera las seales adecuadas que accionan los actuadores que intentan llevar el valor
de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha
permanecido invariable a travs del tiempo, su implementacin fsica ha variado
frecuentemente.
En la actualidad, todos los elementos del controlador se han podido incluir en un chip,
el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero
completo computador contenido en el corazn (chip) de un circuito integrado.
Memoria
La RAM en estos dispositivos es de poca capacidad pues slo debe contener las
variables y los cambios de informacin que se produzcan en el transcurso del programa.
Por otra parte, como slo existe un programa activo, no se requiere guardar una copia
del mismo en la RAM pues se ejecuta directamente desde la ROM
11
Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y
utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no
voltil que se pueden encontrar en los microcontroladores del mercado.
Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin
del chip. El elevado coste del diseo. De la mscara slo hace aconsejable el empleo de
los microcontroladores con este tipo de memoria cuando se precisan cantidades
superiores a varios miles de unidades.
2. OTP
3 EPROM
4 EEPROM
12
Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito,
pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito.
Para ello se usan grabadores en circuito que confieren una gran flexibilidad y rapidez.
5 FLASH
Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar.
Funciona como una ROM y una RAM pero consume menos y es ms pequea. A
diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y
de mayor densidad que la EEPROM.
Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores
que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar
el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria
incorporado al control del motor de un automvil.
13
Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la
sincronizacin de todas las operaciones del sistema. Generalmente, el circuito de reloj
est incorporado en el microcontrolador y slo se necesitan unos pocos componentes.
Recursos especiales
La labor del diseador es encontrar el modelo mnimo que satisfaga todos los
requerimientos de su aplicacin. De esta forma, minimizar el coste, el hardware y el
software. Los principales recursos especficos que incorporan los microcontroladores
son:
14
Comparador analgico: Algunos modelos de microcontroladores disponen
internamente de un amplificador operacional que acta como comparador entre una
seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula.
La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor
o menor que la otra.
Recursos especiales
Cada fabricante oferta numerosas versiones de una arquitectura bsica de
microcontrolador. En algunas ampla las capacidades de las memorias, en otras
incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para
aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo mnimo
que satisfaga.
15
Todos los requerimientos de su aplicacin. De esta forma, minimizar el coste, el
hardware y el software. Los principales recursos especficos que incorporan los
microcontroladores son:
Aplicaciones
Este dato puede dar una idea de la masiva utilizacin de estos componentes. Los
microcontroladores estn siendo empleados en multitud de sistemas presentes en la
vida diaria, como pueden ser juguetes, horno microondas, frigorficos, televisores,
computadoras, impresoras, mdems, el sistema de arranque de nuestro coche, etc.
16
controlar pequeas partes del sistema. Estos pequeos controladores podran
comunicarse entre ellos y con un procesador central, probablemente ms potente, para
compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya
habitualmente en cualquier PC.
17
1.3 Tipos de arquitecturas computacionales
Subcategoras.
18
palabra, los modos de direccin de memoria, registros del procesador, y los formatos
de datos y de direcciones.
Diseo del sistema incluye todos los dems componentes de hardware dentro
de un sistema de computacin. Estos incluyen:
19
Programador MacroArquitectura Visible: herramientas de lenguaje de alto nivel,
tales como compiladores puede definir una interfaz consistente o contrato para
los programadores que utilizan ellos, abstraer diferencias subyacentes ISA,
CASD y microarquitecturas. Por ejemplo: la C , C + + o Java estndares definen
diferente Programmer MacroArquitectura Visible aunque en la prctica la
microarquitectura C para un equipo en particular incluye
Pin son ms flexibles que las funciones de ISA porque el hardware externo puede
adaptarse a las nuevas codificaciones, o cambiar de un alfiler a un mensaje. El trmino
"arquitectura" se ajusta, porque las funciones deben ser proporcionados para los
sistemas compatibles, incluso si los cambios detallados mtodo.
Tipos.
Arquitectura computacional RISC.
En arquitectura computacional, RISC del ingls Reduced Instruction Set Computer
(Computadora con Conjunto de Instrucciones Reducido). Tipo de microprocesadores
con las siguientes caractersticas fundamentales:
20
2. Slo las instrucciones de carga y almacenamiento acceden a memoria a por
datos.
RISC es una filosofa de diseo de CPU para computadora que est a favor de
conjuntos de instrucciones pequeos y simples que toman menor tiempo para
ejecutarse. El tipo de procesador ms comnmente utilizado en equipos de escritorio,
el x86, est basado en CISC en lugar de RISC.
La diferencia prctica entre CISC y RISC es que los procesadores CISCx86 corren a
DOS, Windows 3.1 y Windows 95 en el modo nativo; es decir, sin la traduccin de
software que disminuya el desempeo. Pero CISC y RISC tambin reflejan dos
filosofas de computacin rivales.
21
1.4 Tipos de microcontroladores y sus fabricantes
Los microcontroladores suelen clasificarse por familias o por el nmero de Bits que
manejan (4, 8, 16 32 bits). Lgicamente los microcontroladores de 16 y 32 bits son
superiores a los de 4 y 8 bits en cuanto a funcionalidades, siendo que los
microcontroladores de 8 bits dominan el mercado.
Arquitectura de 8-bits.
22
PIC18: Es la familia ms alta de Microchip, y una de las que se estn usando
ms acorde al paso del tiempo, los usuarios descubren esta fantstica familia y
quedan encantados, micros con una cantidad de pines y perifricos
considerables, por lo tanto, los hacen ideales para proyectos con envergadura
y complejidad media-alta.
Arquitectura de 16-bits.
Microchip, pone a disposicin del usuario, dos familias cuyo procesador es de 16-bits.
Una es la llamada PIC24, que sigue la lnea de microcontroladores de 8-bits, y la otra
es la denominada dsPIC, es la apuesta de Microchip en el mundo del procesado de
seal.
23
Arquitectura de 32-bits.
En esta categora, encontramos slo una familia, la denominada PIC32, diseados para
aplicaciones embebidas que requieran una cantidad de memoria mayor, un procesado
de la informacin mayor, y una cantidad considerable de perifricos. Para el trabajo con
esta categora, Microchip ofrece el entorno de trabajo MPlab, el cual incluye:
24
ARQUITECTUR
FABRICANTE FAMILIA IDE
A
CISC 8 bits
ADUC8xx -
8051
Analog Device www.analog.com
RISC 32 bits
ADUC7xx -
ARM7
Prog.
CISC 8 bits
AT89xxx independiente
8051
s
Prog.
TS87xxx CISC 8 bits independiente
Atmel www.atmel.com
s
RISC 16 bits
AT91xxx -
ARM7/9
RISC 32 bits
EP73xxx -
ARM7
Cirrus Logic www.cirrus.com
RISC 32 bits
EP93xxx -
ARM9
CISC 8 bits
Cygnal www.silabs.com C8051F -
8051
CISC 8 bits
HC05 -
6800
CISC 8 bits
HC08 Code Warrior
6809
Freescale (Motorola) www.freescale.com
CISC 8 bits
HC11 -
6809
25
HCS12 CISC 16 bits Code Warrior
CISC 32 bits
68K -
68000
RISC 32 bits
MAC7100 -
ARM7
FR RISC 32 bits -
CISC 8 bits
C5xxx -
8051
CISC 8 bits
C8xxx -
8051
Infineon www.infineon.com
C16xxx CISC 16 bits -
CISC 8 bits
MCS251 -
8051
Intel www.intel.com
CISC 8 bits
DS80Cxxx -
8051
Maxim (Dallas) www.maxim-ic.com
CISC 8 bits
DS83Cxxx -
8051
26
CISC 8 bits
DS89Cxxx -
8051
PIC
10,12,14,16,17,1 RISC 8 bits MPLAB
Microchip www.microchip.com 8
NS (NATIONAL
CR16Cxxx CISC 16 bits -
SEMICONDUCTOR) www.national.com
CISC 8 bits
P8xxx -
8051
RISC 32 bits
LPC2xxx -
ARM7
27
ST5 CISC 8 bits Visual FIVE
RISC 32 bits
ARM7 -
ARM7
CISC 8 bits
MSC12xxx -
8051
RISC 32 bits
TMS470 -
ARM7
28
1.5 Componentes del microcontrolador
Que accionan los efectores que intentan llevar el valor de la temperatura dentro del
rango estipulado. Aunque el concepto de controlador ha permanecido invariable a
travs del tiempo, su implementacin fsica ha variado frecuentemente. Hace tres
dcadas, los controladores se construan exclusivamente con componentes de
lgica discreta.
CPU
29
1.5.1 Registros internos
Registros acumuladores
Los registros acumuladores de 8 bits estn conectados directamente a las entradas
de la UPA, de esta manera se pueden efectuar operaciones lgico aritmticas en
forma directa.
La figura 5.4 muestra el diagrama de bloques del acumulador. Como puede
observar, el acumulador est formado por un registro latch y por tres transeivers.
Los transeivers tienen la funcin de aislar o conectar el latch a los diferentes buses
de datos del acumulador (A, B y C).
30
Figura 5.4. Diagrama de bloques del acumulador.
E1 E0 Bus Seleccionado
0 0 Ninguno
0 1 A
1 0 B
1 1 C
31
un nivel lgico bajo (0), escribir el dato del bus seleccionado en el latch. Si por el
contrario, presenta un nivel lgico alto (1), entonces el registro latch estar habilitado
slo para lectura.
32
Algoritmo de la multiplicacin
La siguiente figura muestra una configuracin de la UPA con los registros
acumuladores para efectuar la multiplicacin de dos nmeros. Tenga en cuenta que
el algoritmo de multiplicacin debe estar implementado en la mquina de estados.
33
Usando como base este diseo se pueden efectuar multiplicaciones. El siguiente ejemplo
ilustra la multiplicacin de 2 valores de 8 bits cada uno.
0 0 0 0 0 1 1 1
X 0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1
B = Multiplicando A = Multiplicador Q = A
A=0
FOR j = 0:7
IF (Q0 = 1) THEN A = A + B
Q = Corrimiento a la derecha de Q un bit, con Q7 = A0
A = Corrimiento a la derecha de A un bit. Si Q0 = 1 entonces A7 = Acarreo de A+B, si no A7 =
0 END FOR
B=Q
Finalmente, el resultado de AxB queda en los acumuladores A (parte ms significativa) y B
(parte menos significativa). La siguiente tabla muestra los clculos efectuados por la UPA
para obtener el resultado de AxB.
34
Registro Registro Registro Acciones
B A Q
0000 0000 XXXXXXX -----------
X
0111 0101
0000 0000 0000 QA, A0
0111 0000 0101
0000 0000 0000 Como Qo=1 entonces
0111 0111 0101 AA+B
Corrimiento de A y Q a la
0000 0000 1000
derecha con Q7=Ao y
0111 0011 0010
A7=Acarreo de A+B
35
La figura 5.7 muestra la carta ASM que ejecuta la multiplicacin de dos operandos de 8 bits.
Observe como las salidas de la carta ASM son las que controlan las funciones de la UPA.
36
Registro contador de 16 bits
La figura 5.8a muestra un registro contador de 16 bits, y tres transeivers que lo aslan o lo
conectan a los buses de la arquitectura.
37
La tabla 5.4 muestra la relacin entre las lneas de control C2, C1 y C0, y las
operaciones que realiza el contador.
Lneas de Control
Funcin del Contador
C2 C1 C0
0 0 0 Mantiene su valor (Lectura)
0 0 1 Incrementa en 1
0 1 0 Decrementa en 1
0 1 1 Carga un valor en la Parte Baja (Escritura)
1 0 0 Carga un valor en la Parte Alta (Escritura)
1 0 1 Carga un valor de 16 bits (Escritura)
1 1 0 Corrimiento a la Izquierda
1 1 1 Corrimiento a la Derecha
38
1.5.2 Tipos y distribucin de las memorias internas
Tipos de Memorias
39
El procesador o UCP
40
1.5.3 Perifricos
Ese nombre indica las distintas tareas que el microcontrolador puede realizar con
ese pin dentro del circuito electrnico. Algunos pines se pueden usar para leer un
valor analgico, otros para generar una seal PWM, para establecer una
comunicacin mediante un protocolo serie, etc.. Es decir el nombre del pin indica a
que parte del hardware del microcontrolador se puede conectar dicho pin.
En la hoja de caractersticas del microcontrolador podemos ver los distintos mdulos
hardware (perifricos) que lo componen:
41
y salida.
En el programa que hacemos para el microcontrolador se configura el
funcionamiento de los distintos mdulos, as como qu mdulo va conectado a cada
pin del microcontrolador. Para saber cmo se configuran y se usan los distintos
mdulos (perifricos) del microcontrolador tenemos que mirar cmo se estructura
su memoria.
El microcontrolador tiene 3 tipos de memorias: la memoria de programa FLASH, la
memoria de datos SRAM, y la memoria de datos EEPROM.
42
1.5.4 Instrucciones del microcontrolador.
Juego de instrucciones
El juego de instrucciones para los microcontroladores 16F8XX incluye 35
instrucciones en total. La razn para un nmero tan reducido de instrucciones yace
en la arquitectura RISC. Esto quiere decir que las instrucciones son bien
optimizadas desde el aspecto de la velocidad operativa, la sencillez de la
arquitectura y la compacidad del cdigo. Lo malo de la arquitectura RISC es que se
espera del programador que haga frente a estas instrucciones. Por supuesto, esto
es relevante slo si se utiliza el lenguaje ensamblador para la programacin. Este
libro se refiere a la programacin en el lenguaje de alto nivel C, lo que significa que
la mayor parte del trabajo ya fue hecho por alguien ms. As, slo se tienen que
utilizar instrucciones relativamente simples.
Mover el contenido de
MOVWF f W -> f 1
Waf
Mover el contenido de 1,
MOVF f,d f -> d Z 1
fad 2
Borrar el contenido de
CLRW 0 -> W Z 1
W
43
Borrar el contenido de
CLRF f 0 -> f Z 1 2
f
Sumar el contenido 1,
ADDWF f,d W+f -> d C, DC ,Z 1
de W y f 2
1,
SUBWF f,d Restar W de f f-W -> d C, DC, Z 1
2
1,
ANDWF f,d AND W con f W AND f -> d Z 1
2
OR inclusivo de W
IORLW k W OR k -> W Z 1
con literal
OR inclusivo de W 1,
IORWF f,d W OR f -> d Z 1
con f 2
OR exclusivo de W 1,
XORWF f,d W XOR k -> W Z 1
con literal 2
OR exclusivo de W
XORLW k W XOR f -> d Z 1
con f
1,
INCF f,d Sumar 1 a f f+1 -> f Z 1
2
1,
DECF f,d Restar 1 a f f-1 -> f Z 1
2
Rotar F a la izquierda
1,
RLF f,d a travs del bit de C 1
2
Acarreo
Rotar F a la derecha a
1,
RRF f,d travs del bit de C 1
2
Acarreo
1,
COMF f,d Complementar f f -> d Z 1
2
44
Poner a 0 el bit b del 1,
BCF f,b 0 -> f(b) 1
registro f 2
Saltar si bit b de 1
BTFSC f,b Skip if f(b) = 0 3
registro f es 0 (2)
Disminuir f en 1. 1,
f-1 -> d skip if 1
DECFSZ f,d Saltar si el resultado 2,
Z=1 (2)
es 0 3
Incrementar f en 1. 1,
f+1 -> d skip if 1
INCFSZ f,d Saltar si el resultado 2,
Z=0 (2)
es 1 3
Retornar de una
RETURN TOS -> PC 2
subrutina
Otras instrucciones
Reiniciar el
0 -> WDT, 1 ->
CLRWDT temporizador perro TO, PD 1
TO, 1 -> PD
guardin
45
1 Si un registro de E/S est modificado, el valor utilizado ser el valor presentado
en los pines del microcontrolador.
2 Si la instruccin se ejecuta en el registro TMR y si d=1, el pre-escalador ser
borrado.
3 Si la instruccin se ejecuta en el registro TMR y si d=1, el pre-escalador ser
borrado.
46
Pata 4 (MCLR / Vpp): Es una pata de mltiples aplicaciones, es la entrada de Reset
(master clear) si est a nivel bajo y tambin es la habilitacin de la tensin de
programacin cuando se est programando el dispositivo. Cuando su tensin es la
de VDD el PIC funciona normalmente.
47
1.5.6 El reset y sus posibles fuentes.
Reset de un Pic
En un microprocesador, la seal de reset se genera manualmente al pulsar un
botn(reset manual) o cuando se pone en marcha el sistema(reset por encendido)
En un microcontrolador hay otras posibles fuentes de reset como son el reset por
fallo de alimentacin(power-glitch reset, brown-out reset) y el rest por
desbordamiento del perro guardin.
El reset por desbordamiento del perro guardin se produce cuando la tensin de
alimentacin cae momentneamente por debajo de un cierto valor umbral, de modo
que C se descarga parcialmente y se alcanza y se alcanza la condicin Vreset <
Vumbral.
El Reset por desbordamiento del perro guardin se produce cuando por alguna
razn no se ha refrescado(borrado) a tiempo el perro guardin. Generalmente ello
significa que el microcontrolador se ha perdido en la ejecucin del programa, es
decir, se ha salido de la secuencia correcta.
es muy importante que el microcontrolador efecte una accin de reset cuando se
poducen falos de este tipo. Ello garantiza que en situaciones como stas, en las que
el microcontrolador perdera inexorablemente la
secuencia correcta de instrucciones del programa, no salte a
una direccin aleatoria sino que vaya a una direccin determinada( la del valor de
reset) donde se pueden efectuar acciones que contrarresten el fallo que ha
48
producido
El Perro Guardian
49
Si el programa se ejecuta correctamente, el perro guardin nunca se desbordara
pus antes de hacerlo ha sidi borrado del programa. En cambio, el microcontrolador
se pierde y el programa deja de ser ejecutado en la secuencia correcta, el perro
guardin no es borrado a tiempo, se desborda y produce el reset del
microcontrolador, con lo que es posible retomar el control y reconducir el programa
por el camino correcto.
Temporizador Watchdog API Llamadas al sistema
Sistema de llamada Propsito
wdt_alloc () Devuelve un identificador vlido que identifica el temporizador de
vigilancia asignado
wdt_realloc () Reasigna el temporizador de vigilancia, que fue devuelto por la
ltima llamada a wdt_alloc () . Esto permite que un nuevo actor
crea en un altamente disponible (HA) entorno a asumir la gestin de
vigilancia para un actor que ha muerto. Si el temporizador de
vigilancia est armado, tambin se volver a cargar en la presente
convocatoria.
wdt_free () Desarma y libera el temporizador de vigilancia
wdt_get_maxinterval Devuelve el intervalo de tiempo de espera mximo que se puede
() establecer para el temporizador
wdt_set_interval () Establece el intervalo de tiempo de espera para el temporizador de
vigilancia. Si ambos componentes de intervalo son cero, el
temporizador est desarmado.
wdt_get_interval () Devuelve el conjunto de tiempo de espera actual para el intervalo
de temporizador de vigilancia
wdt_arm () Inicia un nuevo intervalo de tiempo de espera, la duracin del cual
ser fijado por wdt_set_interval ()
wdt_disarm () Desarma el temporizador de vigilancia
wdt_is_armed () Devuelve el estado del temporizador de vigilancia. Un valor
positivo se devuelve si el temporizador est activado.
wdt_pat () Vuelve a cargar el temporizador de vigilancia. El temporizador se
inicia un nuevo intervalo de tiempo de espera, la duracin de los
cuales se establece por wdt_set_interval () .
wdt_startup_commit Indica si el temporizador de vigilancia de la secuencia de arranque
() se ha completado con xito. La conclusin con xito indica que el
sistema ya no necesita ser reiniciado si el dispositivo de modo
watchdog restablecimiento armados por el marco arranque
expire. Debido a que el dispositivo de modo watchdog reset no
debe ser desarmado, el sistema continuar para recargar el
dispositivo de modo de reinicio en silencio hasta que se apague o
hasta que el temporizador de vigilancia est destinado de forma
explcita y armados por el marco HA (u otra aplicacin).
50
Sistema de llamada Propsito
wdt_shutdown () Indica si el sistema se est cerrando. Durante el apagado, el
dispositivo de modo watchdog reset no debe volver a cargar por
ms que el intervalo de tiempo de espera configurado. Esto
asegurar que el sistema se restablece, incluso si la secuencia de
apagado no se completa dentro del perodo de tiempo de espera. La
presente convocatoria se producir un error si se invoca cuando el
dispositivo de vigilancia est armado.
Componente de un Microcontrolador
Componentes de un microcontrolador
Un microcontrolador combina los recursos fundamentales disponibles en un
microcomputador, es decir, la unidad central de procesamiento CPU), la memoria y
los recursos de entrada y salida, en un nico circuito integrado.
La fig que vemos a continuacin muestra el diagrama en bloque interno de un micro
controlador.
Los Micro controladores disponen de un oscilador que genera los pulsos que
sincronizan todas las operaciones internas. El oscilador puede ser del tipo RC,
aunque generalmente se prefiere que est controlado por un cristal de cuarzo
(XTAL) debido a su gran estabilidad de frecuencia. La velocidad de ejecucin de las
instrucciones del programa est en relacin directa con la frecuencia del oscilador
del micro controlador.
La MAR :es el registro de direcciones de memoria (memory adress register).
MBR: Este registro es el buffer de datos de la memoria (memory buffer register).
51
ROP: Este registro contiene el cdigo de operacin de la ALU
Al igual que un microcomputador, la CPU es el cerebro del micro controlador Esta
unidad trae las instrucciones del programa , una a una, desde la memoria donde
estn almacenadas, las interpreta (descodifica) y hace que se ejecuten. En
la CPU se incluyen los circuitos ALU para realizar operaciones aritmticas y lgicas
elementales con los datos binarios
La CPU de un micro controlador dispone de diferentes registros algunos de
propsito general y otros para propsitos especficos. Entre estos ltimos estn el
registro de Instruccin, el Acumulador, el registro de estado, el contador de
Programa, el registro de Direcciones de datos y el Puntero de la Pila.
El Registro de Instruccin (RI) almacena la instruccin que est siendo ejecutada
por la CPU. El RI es invisible para el programador.
El Acumulador (ACC: Accumulator), es el registro asociado a al operaciones
aritmticas y lgicas que se pueden realizar en la ALU. En cualquier operacin, uno
de los adatos debe estar en el ACC y el resultado se obtiene en ACC. El ACC no
existe en los microcontroladores PIc que tienen en cambio en el registro W
(Working Register), con caractersticas muy parecidas a las del ACC.
El Registro de estado (STATUS) agrupa los bits indicadores de las caractersticas
del resultado de las operaciones aritmticas y lgicas realizadas en la ALU. Entre
los indicadores estn el signo el resultado ( si es + o -) si el resultado es 0, si hay
acarreos o prstamos, el tipo de paridad (par o Impar) del resultado, etc.
El contador de Programa (PC. Program Counter) es el registro de la CPU donde se
almacenan direcciones de instrucciones. cada vez que la CPU busca una
instruccin en la memoria, el PC se incrementa, apuntando as a la siguiente
instruccin. En un instante de tiempo dado, el PC contiene la direccin de las
instruccin que ser ejecutada a continuacin. Las instrucciones de transferencia
de control modifican el valor del PC.
El registro de Direcciones de Datos (RDD) almacenan direcciones de datos
situados en la memoria. este registro de datos (RDD) amacena direcciones de datos
situados en la memoria. este registro es indispensable para el direccionamiento
indirecto de datos en al memoria. El RDD toma diferentes nombres segn el micro
52
controlador . En los PIC, el RDD es el registro FSR (File Select Register).
El Puntero de la Pila(SP: Stack Pointer) es el registro que almacena direcciones de
datos en la pila. Los micro controladores PIC carecen de registro SP.
La memoria del Micro controlador es el lugar donde son almacenadas las
instrucciones del programa y los datos que manipula. En un micro controlador hay
2 tipos de memoria. la memoria RAM( Randon Acces Memory) y la ROM( Random
Only Memory).
Tanto la memoria RAM como la memoria ROM son de acceso aleatorio, pero la
costumbre ha de dejado el nombre RAM para las memorias de lectura y escritura.
El trminoacceso aleatorio se refiere a que el tiempo necesario para localizar un
dato no depende del lugar de la memoria donde est almacenado. En las memorias
de acceso secuencial, en cambio, cuando ms alejado est un dato de la posicin a
la que se ha accedido por ltima vez, ms se tarda en localizar.
La cantidad de memoria ROM disponible es normalmente muy superior a la cantidad
de memoria RAM. sto se debe a dos razones: la 1era es que la gran mayora de las
aplicaciones requieren programas que manejen pocos datos;la 2da razn es que la
memoria RAM ocupa mucho ms espacio en el circuito integrado que la memoria
ROM, de modo que es mucho ms costosa que sta.
La entrada y la salida es particularme importante en los microcontroladores, pues a
travs de ella el microcontrolador interacciona con el exterior.
53
1.6 Caractersticas de la fuente de alimentacin y consumo de potencia del
microcontrolador.
54
1.7.1 Ensamblador y compilador.
Ensamblador
Ensamblador se refiere a un tipo de programa, informtico que se encarga de
traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto
que contiene cdigo mquina ejecutable directamente por la mquina para la que
se ha generado.
La tarea fundamental de un ensamblador es traducir un programa en lenguaje de
ensamblador al cdigo correspondiente en lenguaje de mquina.
Tipos De Ensambladores
Ensambladores cruzados: Se denominan as a los ensambladores que se utilizan
en una computadora que posee el procesador diferente al que tendrn las
computadoras donde se va a ejecutar el programa objeto producido.
Ensambladores residentes: Son aquellas que permanecen en la memoria principal
de la computadora y cargar para su ejecucin al programa objeto producido.
Micro ensambladores: Al programa que indica al intrprete de instrucciones de la
CPU como debe actuar se le denomina microprograma. El programa que ayuda a
realizar este microprograma se llama micro ensamblador.
Macro ensambladores: Son ensambladores que permiten el uso de
macroinstrucciones.
Ensambladores de una fase: leen una lnea y la traducen directamente para producir
una instruccin de lenguaje maquina o la ejecuta si se trata de una
pseudosinstruccin. Se construye la tabla de smbolos a medida que aparecen las
definiciones de variables, etiquetas, etc.
Ensambladores de dos fases: Realiza la traduccin en dos etapas: 1 fase leen el
programa fuente y construyen la tabla de smbolos, 2 fase vuelve a leer el programa
fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los
smbolos.
Compilador
Un compilador es un programa informtico que traduce un programa escrito en un
lenguaje de programacin a otro lenguaje de programacin, generando un
55
programa equivalente que la maquina ser capaz de interpretar. Usualmente el
segundo lenguaje es lenguaje de mquina, pero tambin puede ser simplemente
texto. Este proceso de traduccin se conoce como compilacin.
Un compilador es un programa que permite traducir el cdigo fuente de un programa
en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de
maquina). De esta manera un programador puede disear un programa en un
lenguaje mucho ms cercano a cmo piensa un ser humano, para luego compilarlo
a un programa ms manejable por una computadora.
Fases del compilador
Clasificacin De Compiladores
De una pasada: Examina el cdigo fuente una vez, generando el cdigo o programa
objeto.
Pasadas mltiples: Requiere pasos intermedios para producir cdigo en otro
lenguaje y una pasada final para producir y optimizar el cdigo producido durante
pasos anteriores.
Compiladores incrementales: Generan un cdigo objeto, instruccin por instruccin
cuando el usuario teclea cada orden individual.
Compilador cruzado: Se genera cdigo en lenguaje objeto para una maquina
diferente a la que se est utilizando para compilar.
Compilador con montador: Compila distintos mdulos de forma independiente y
despus es capaz de aplazarlos.
56
1.7.2 Simulador, debugger y emulador.
Simulador
Programa que reproduce por software el comportamiento del microcontrolador en la
ejecucin de un programa.
Tipos de simuladores y definicin
MPSIM ------ Es un simulador de Microchip para los PIC.
SIMUPIC 84 ------ Es un simulador de Microsystems Engineering, slo til
para los PIC16X84.
MPLAB ------- Simula programas en ensamblador.
Debugger
Un depurador (en ingls, debugger), es un programa que permite depurar o limpiar
los errores de otro programa informtico.
Al iniciarse la depuracin, el depurador lanza el programa a depurar. Este se ejecuta
normalmente hasta que el depurador detiene su ejecucin, permitiendo al usuario
examinar la situacin.
El depurador permite detener el programa en:
Un punto determinado mediante un punto de ruptura.
Un punto determinado bajo ciertas condiciones mediante un punto de ruptura
condicional.
Un momento determinado cuando se cumplan ciertas condiciones.
Un momento determinado a peticin del usuario.
Emulador
Un emulador es un programa capaz de actuar de intrprete en la mquina destino
para que un software originalmente escrito para otra plataforma pueda ser ejecutado
en ella.
57
El emulador traduce el cdigo de la mquina original al cdigo de la de destino , por
lo que nuestra computadora ni siquiera sabe que est comportndose como otra
plataforma (otro sistema operativo diferente al que ejecuta por defecto), y tan solo
ejecuta el programa siguiendo su propio juego de instrucciones pero adaptado
desde la plataforma original.
Para poder ejecutarse, los desarrolladores de este tipo de aplicaciones se
documentan sobre la arquitectura interna de las mquinas a emular (procesador,
juego de instrucciones, tipo y cantidad de registros y de memoria,
direccionamientos, etc.) e implementan un comportamiento idntico al de las
mismas, gracias a la traduccin de cada una de las operaciones al cdigo de la
mquina destino.
Gracias a la potencia de las computadoras actuales, el proceso de traduccin, que
en otro caso conllevara un tiempo elevado, se realiza en un instante, lo que permite
dar la impresin de estar ejecutando el juego o la aplicacin como si del original se
tratase, aunque en algunos casos las velocidades pueden ser tanto mayores como
menores de las observadas en la plataforma nativa.
58
1.7.3 Equipos programadores (downloaders).
59
Es capaz de programar diferentes tipos de memorias como EPROM,
Flash... y microcontroladores como 8051y sus derivaciones
Soporta archivos en formato hexadecimal, binario,etc
Programa dispositivos con encapsulados DIP, QFP, LCC y PLCC
Incluye conversores de formato
Software para Dos y Windows
60
con cuidado, el cdigo resultante puede ser mucho ms ineficiente que el
programado en ensamblador. Las versiones ms potentes suelen ser muy caras,
aunque para los microcontroladores ms populares pueden encontrarse versiones
demo limitadas e incluso compiladores gratuitos.
Depuracin: debido a que los microcontroladores van a controlar dispositivos
fsicos, los desarrolladores necesitan herramientas que les permitan comprobar el
buen funcionamiento del microcontrolador cuando es conectado al resto de
circuitos.
Simulador. Son capaces de ejecutar en un PC programas realizados para el
microcontrolador. Los simuladores permiten tener un control absoluto sobre la
ejecucin de un programa, siendo ideales para la depuracin de los mismos. Su
gran inconveniente es que es difcil simular la entrada y salida de datos del
microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero,
al menos, permiten el 20 paso fsico de la implementacin de un modo ms seguro
y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba
in-situ.
Placas de evaluacin. Se trata de pequeos sistemas con un microcontrolador ya
montado y que suelen conectarse a un PC desde el que se cargan los programas
que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores
LCD, teclados, LEDs, fcil acceso a los pines de E/S, etc. El sistema operativo de
la placa recibe el nombre de programa monitor. El programa monitor de algunas
placas de evaluacin, aparte de permitir cargar programas y datos en la memoria
del microcontrolador, puede permitir en cualquier momento realizar ejecucin paso
a paso, monitorizar el estado del microcontrolador o modificar los valores
almacenados los registros o en la memoria.
Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC
anfitrin y el zcalo de la tarjeta de circuito impreso donde se alojar el
microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la
tarjeta de aplicacin es como si lo hiciese el mismo microcontrolador que luego ir
en el zcalo. Presenta en pantalla toda la informacin tal y como luego suceder
cuando se coloque la cpsula.
61
Bibliografa
https://documents.tips/documents/23-tipos-y-distribucion-de-las-memorias-
internas.html
62