2. ¿Qué es un microcontrolador?
Hubo un tiempo en que los sistemas de control se
hacían exclusivamente con componentes
discretos lógicos, eran cajas grandes, pesadas (antes
incluso eran diseños analógicos más grandes aún y
más complejos).
Después se utilizaron microprocesadores y el sistema
de control entero podía encajar dentro de una tarjeta
de circuito impreso. Esto es común todavía, Vd.
puede encontrar muchos sistemas impulsados por
uno de los muchos microprocesadores comunes
(incluso Zilog Z80, Intel 8088, Motorola 6809, y
otros).
3. Como el proceso de miniaturización siguió continuando, todos
los componentes que se requieren para un sistema de
control se construyó dentro de un chip, nació el
microcontrolador.
“Un microcontrolador es un
circuito integrado que incluye
todos (o casi) los componentes
necesarios para tener un
sistema de control completo.”
4. • CPU
•RAM
•EPROM/PROM/ROM
•I/O (input/output) - serie y paralelo
•Temporizadores/Contadores
•Sistema de interrupciones.
•Los modelos más potentes incluyen además
:Sistemas auxiliares (A/D, D/A, dsp ..)
Los microcontroladores son "la solución en un
chip", incluyen típicamente:
5. Mando medioambiental
Invernadero, Fábrica, Casa
LAS APLICACIONES :
Los microcontroladores frecuentemente se encuentran en:
Aparatos electrodomésticos:
Microondas, Hornos, Frigoríficos
Televisión ,Vídeos, Equipos sonido
Equipos informáticos
Impresoras, Copiadoras láser,
Módems, Unidades de disco..
Automóviles
Mando de sistemas del automóvil
(ABS,Inyeccion,Encendido..),
Diagnósticos,Climatizador
Instrumentación, Sistemas aerospaciales ..
6. Una aplicación especial de los
microcontroladores es la captura de datos:
Temperatura, humedad, velocidad, etc.
El tamaño de los microcontroladores es pequeño
y consumen muy poco, esto los hace ideales para
sistemas portátiles y autónomos.
Los microcontroladores se usan típicamente donde
la potencia de procesamiento no es importante.
Los sistemas basados en microprocesador y los
microcontroladores se usan extensivamente en
robótica
7. Los hay de 4, 8, 16, y 32 bits de ancho de palabra.
Existen Microcontroladores/Procesadores
especializados para:
Comunicaciones
Manejo del teclado
Procesamiento de la señal
Proceso vídeo
Otras tareas.
Tipos de microcontroladores
8. Para decidir el tipo de dispositivo a utilizar para llevar
a cabo un proyecto, hemos de considerar lo siguiente:
¿Puedo obtener ayuda cuando tenga problemas?
¿Qué herramientas de desarrollo están disponibles
y cuanto cuestan?.
¿Que clase de documentación tengo disponible
(manuales de referencia, notas de aplicación,
libros)
¿Tiene el fabricante disponibles para ese
microcontrolador dispositivos periféricos
(conversores A/D, memoria, reguladores de
tensión)?
¿Disponen de microcontroladores OTP, grabables
por máscara, EPROM, de esa misma familia?
¿Qué microcontrolador usar?
9. Los Fabricantes de uP y uC
Intel
Microchip
AMD
Motorola
IBM
TI
Cyrix
Hitachi
NEC
LSI
IDT
Mitsibishi
Philips
Matsushita
AT&T
Toshiba
10. CARACTERISTICAS DE LOS
MICROCONTROLADORES
Técnicas de fabricación
CMOS - Semiconductor de Oxido de Metal
Complementario
Este es el nombre de la técnica con que se fabrican
la mayoría (sino todos) los microcontroladores.
Los dispositivos CMOS tienen las siguientes
características:
Consumen muy poca corriente y pueden ser
alimentados por baterías durante mucho tiempo.
El reloj del sistema puede detenerse y ponerse el
dispositivo "en modo sueño" para bajar más aún
su consumo.
CMOS tiene una alta inmunidad al ruido eléctrico
11. Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en:
•CISC: (Complex Instruction Set Computer) Computadores de juego
de instrucciones complejo, que disponen de un repertorio de
instrucciones elevado (unas 80), algunas de ellas muy sofisticadas y
potentes, pero que como contrapartida requieren muchos ciclos de
máquina para ejecutar las instrucciones complejas.
•RISC: (Reduced Instruction Set Computer) Computadores de juego
de instrucciones reducido, en los que el repertorio de instrucciones es
muy reducido (en nuestro caso 35), las instrucciones son muy simples
y suelen ejecutarse en un ciclo máquina. Además los RISC deben
tener una estructura pipeline y ejecutar todas las instrucciones a la
misma velocidad.
•SISC.(Specific Instriction Set Computer) Computadores de juego de
instrucciones específico.
12. Arquitectura Von-Neuman
Los uC. Von-Neuman tienen un solo bus de datos por el
cual circulan instrucciones y datos.
Las instrucciones del programa y los datos se guardan
conjuntamente en una memoria común.
Cuando la CPU se dirige a la memoria principal, primero
saca la instrucción y después saca los datos necesarios
para ejecutarla, esto retarda el funcionamiento de la CPU.
Arquitectura según el modelo de Von Neumann
Tipos de arquitectura
13. Dispone de dos memorias:
•Memoria de datos
•Memoria de Programa
Además cada memoria dispone de su respectivo bus, lo que
permite, que la CPU pueda acceder de forma independiente y
simultánea a la memoria de datos y a la de instrucciones. Como
los buses son independientes éstos pueden tener distintos
contenidos en la misma dirección .
Arquitectura Harvard
14. Opciones avanzadas de Memoria
FLASH (EPROM)
Las memorias FLASH son mejores que las EEPROM
cuando tenemos que almacenar el programa de control en
una memoria no volátil.
Estas memorias son más rápidas que las memoria
EEPROM y permiten más ciclos de borrado/grabación.
EEPROM - Memoria (solo de lectura) Programable y Borrable
Eléctricamente.
Muchos microcontroladores tienen incorporada una cantidad
limitada de memoria EEPROM dentro del chip, el objetivo es
tener una pequeña cantidad de memoria donde poner una serie
de parámetros que puedan ser cambiados si la aplicación lo
necesita.
Este tipo de memoria es relativamente lenta, y el número de
veces que se puede borrar/grabar está limitado.
15. Memoria "Field programming/reprogramming"
Este tipo de memoria no volátil permite ser reprogramada en
el sitio sin quitar el microcontrolador del sistema que
controla.
Una aplicación típica de esta memoria es el sector del
automóvil, pues podemos reprogramar el microcontrolador
"in situ". Por ejemplo cambiando los parámetros de la
inyección electrónica para adaptar el motor a normas de
emisión de humos, o ponerlo a punto después de un periodo
de desgaste.
Se podría remotamente actualizar su módem de Vfast a V.34.
Memoria RAM con pila
Son útiles cuando tenemos un programa de gran tamaño, es
mucho más rápida que la memoria no volátil, no hay límite en
el número de veces que puede ser grabada, así, es perfecta en
aplicaciones donde se cambien cantidades grandes de datos
frecuentemente.
16. Memoria OTP - One Time Programmable
Un OTP es una memoria PROM (memoria programable de
solo lectura). Una vez la grabamos con un grabador de
EPROM normal, esta no puede modificarse ni borrarse.
Este tipo de memorias se utiliza para hacer series pequeñas de
producción (para probar el código de programa) antes de
fabricar grandes tiradas de microcontroladores con memorias
ROM de máscara.
Como los ciclos de desarrollo de productos son cada vez más
cortos, es interesante para los fabricantes de
microcontroladores ofrecer OTPs como una opción.
Las memorias de ROM de máscara son interesantes cuando
se necesitan un gran número de unidades y estemos seguros
de que el programa va a ser el definitivo, pero el tiempo de
entrega es de 8 a 44 semanas (una eternidad en algunos
sectores).
17. Protección del software
O por encriptacion o protección del fusible, el software
programado es protegido contra personal desautorizado
(ingeniería inversa, modificaciones, piratería, etc.).
Ésta es sólo una opción en OTPs y dispositivos de ventana
(EPROM).
En Dispositivos ROM de máscara, la seguridad no se necesita
- la única manera de leer su código sería rasgar el
microcontrolador, y examinar con un microscopio
electrónico.
Cuando le encargamos a un fabricante de microcontroladores
nuestro microcontrolador de ROM de máscara ellos tienen
que probarlo para asegurarse que se programa correctamente.
Para ello deben poder leer desde fuera de la ROM y
compararlo al código que Vd. les envió. Este modo de
funcionamiento es conocido como modo de prueba.
En modo de prueba se puede leer cualquier dispositivo.
18. Temporizadores.
Cronómetros "perro guardián".
Circuitos para "dormir/despertar" al
microcontrolador.
Modos potentes de direccionamiento de
entrada/salida.
Circuitos conversores analógico/digital etc.
Estas nuevas características específicas para control
son cada vez más numerosas y vienen incorporadas
sin aumento de precio en los nuevos dispositivos.
Los microcontroladores vienen ahora con una series de
características que son de una gran ayuda al ingeniero de
control:
19. RECURSOS DE LOS MICROCONTROLADORES
SLEEP
El dispositivo puede ponerse en el modo de Ocioso/Parada
(IDLE /HALT) por medio del software.
En estos modos de funcionamiento, en la memoria RAM
no se pierde ni ningún otro dato.
En modo sleep (ocioso), todas las actividades se detienen
excepto:
La circuitería de oscilador de asociada
La lógica del perro guardián
El amonestador del reloj
El cronómetro ocioso (un cronómetro corriente libre)
• Protección de Brownout
Protección de Brownout normalmente es un circuito
que protege contra sobretensiones de alimentación
20. Temporizador Watchdog ("Perro guardian")
Un temporizador perro guardián soluciona de una
manera elegante la recuperación del sistema ante un
problema.
Por ejemplo si un programa entra en un bucle infinito, o
si un fallo de hardware le impide funcionar, entonces el
temporizador de perro guardián reseteará el sistema en
un intervalo predeterminado.
El problema puede continuar existiendo, pero al menos
tenemos una vía de solución (podriamos reiniciar el
sistema en un modo de funcionamiento mínimo o
auxiliar).
Esta característica es muy útil para sistemas
desatendidos.
21. ENTRADAS y SALIDAS
UART
Un UART (Unidad Universal de Transmisión Recepción
Asíncrona) es un dispositivo adaptador del puerto serie
para comunicaciones asíncronas.
USART
Un USART (Unidad Universal de Transmisión Recepción
Síncrona y Asíncrona) es un adaptador del puerto de serie
para comunicaciones asíncronas o síncronas.Los
dispositivos que usan un USART son típicamente más
rápidos (tanto como 16 veces) que con un UART.
SPI (Motorola)
Un SPI (interface periférica de serie) es un puerto de serie
síncrono.
SCI (serial communications interface)
Un SCI es un UART reforzado (puerto de serie asíncrono).
22. Conversión Analógica Digital (A/D)
Ha sido un componente típicamente externo, convierten tensión
analógica a su valor digital, se utiliza para adquisición de datos
del mundo analógico, (temperatura, humedad, etc.)
dependiendo del tipo de sensor conectado.
Conversores D/A (Digitales/Analógicos)
Sirven para sacar una tensión analógica a partir de un
valor digital, un ejemplo
En un sistema de 8 bits alimentado con una tensión de
5 voltios, el número 50 sería convertido a una tensión
analógica de 0.9765 voltios
(50/256 * 5 voltios)= 0.9765 voltios
23. Interrupciones.
Al contrario de la técnica (Polling) en la que el
procesador está continuamente preguntando a los
periféricos (temporizadores /UARTS / Conversores
A/D / Componentes externos) cuando tienen un dato
disponible para hacer la transferencia de entrada
salida (y perdiendo la mayoría del tiempo en
preguntar), una técnica más eficiente es dejar a los
periféricos comunicar cuando deben ser atendidos:
El procesador puede estar ejecutando su programa
principal, y solo responderá a los periféricos cuando
ellos lo necesiten. Cuando el procesador recibe una
interrupción, abandona el programa principal,
identifica al periférico que ha producido la
interrupción y ejecuta la subrutina de atención a la
interrupción adecuada, para después volver al
programa principal.
24. LENGUAJES DE PROGRAMACIÓN PARA
MICROCONTROLADORES
LENGUAJE ENSAMBLADOR
El lenguaje máquina es la representación del programa
tal como la entiende el microcontrolador.
El lenguaje ensamblador es una representación
alfanumérica del lenguaje máquina, lo que facilita su
lectura.Cada instrucción en lenguaje ensamblador
corresponde a una instrucción en código máquina (sin
tener en cuenta macros ni directivas).
Un programa en lenguaje ensamblador es rápido y corto.
Esto es porque el programador genera el código más
óptimo posible, el programador se adapta al
microcontrolador. Programando en ensamblador Vd.
aprenderá la arquitectura y estructura del chip
25. Intérpretes
Un Intérprete es un lenguaje traductor de alto nivel
(próximo al lenguaje natural) a código máquina.
El Intérprete está residente en el microcontrolador.
Ejecuta el programa leyendo cada sentencia en alto
nivel una a una y traduciéndolas y ejecutándolas
(traduce y ejecuta al mismo tiempo).
Los dos intérpretes más populares que hay para
microcontroladores son el BASIC y el FORTH.
El BASIC es conocido por su sencillez,
legibilidad y por supuesto porque todo el mundo
ha programado en BASIC alguna vez que otra..
Una idea común es que el BASIC (interpretado) es
lento, esto puede ser mejorado usando diferentes
técnicas.
26. El FORTH tiene muchos fans debido a su velocidad (se
aproxima al lenguaje ensamblador) y su afinidad para
construir un sistema con partes reemplazables de software.
Muchos sistemas FORTH vienen con un programa
monitor que transforma su PC en un sistema de
desarrollo.
Puede ser difícil escribir en FORTH (sino se tiene
experiencia con él) e incluso es duro de leer. Sin
embargo, es muy útil y productivo como lenguaje para
control de sistemas y para robótica.
Una cosa interesante de los Intérpretes es que se puede
construir y desarrollar un programa interactívamente. Vd.
escribe primero un trozo pequeño de programa y a
continuación puede probarlo para ver inmediatamente cómo
funciona. Cuando los resultados son satisfactorios, vd. puede
agregar entonces las partes adicionales que necesite y así
consecutivamente.
27. Los Compiladores
Un compilador es un lenguaje de alto nivel que combina la
programación fácil de un intérprete con una grán
velocidad de proceso. Esto se hace traduciendo todo el
programa de alto nivel directamente a código máquina. El
código máquina se pasa a una memoria EPROM o se carga
en la memoria RAM del microcontrolador. El
microcontrolador entonces ejecuta el programa traducido
directamente, sin haberlo interpretado primero.
Los compiladores más conocidos para microcontroladores
son "C", BASIC compilado y el "PL/M" de Intel,
Módula-2 tiene también un seguimiento relativo debido a
su eficiente código y alta productividad. Para grandes
chips algunos programadores siguen programando en
ADA (16 bits o más).
28. HERRAMIENTAS DE DESARROLLO
Simuladores
Un simulador ejecuta su programa de
microcontrolador en un ordenador (como su PC).
Se puede ejecutar el programa paso a paso y ver
exactamente qué pasa según el programa se
ejecuta
Vd. puede ver y modificar el contenido de los
registros, memoria, variables y ver como responde
el programa. Elimina (o al menos retarda) el ciclo
borrado/programado de la EPROM en el
desarrollo de programas de microcontrolador.
Se puede aprender experimentando con pequeños
trozos de código y observar en pantalla los
resultados.
29. Debuggers residentes
Un debbuger residente corre su programa dentro
del propio microcontrolador, al mismo tiempo
muestra el progreso de depuración en una máquina
host (como por ejemplo un PC).
Tiene las mismas características que un simulador
normal, con la ventaja adicional de que el
programa corre en un microcontrolador real.
Un debbuger residente, roba los siguientes recursos
al microcontrolador:
Un puerto de comunicaciones, para
comunicarse con el host.
Una interrupción, para generar programas paso
a paso.
Una cierta cantidad de memoria para almacenar
el programa residente.
30. Emuladores
Si se dispone de dinero, este es el equipo para
desarrollar su sistema.
Un emulador es un sofisticado dispositivo que
sustituye al microcontrolador al mismo tiempo que
está captando información.
Hemos de retirar el microcontrolador de la placa y
poner en su lugar el emulador.
Hemos de retirar el microcontrolador de la placa y
poner en su lugar el emulador.
Nos dá total información sobre lo que está pasando
en la realidad, y no roba ningún recurso a la tarjeta
que está analizando.
El emulador puede venir con su propio display o
conectado a un PC.
32. PIC (MicroChip)
La mayoría de la gente cree que la línea de
microcontroladores PIC es de reciente introducción en el
mercado. Sin embargo eran populares hace 20 años.
Los microcontroladores PIC fueron los primeros
microcontroladores RISC, RISC generalmente implica
que la simplicidad de diseño permite añadir más
características a bajo precio y la línea PIC nó es una
excepción.
Aunque tiene pocas instrucciones (33 instrucciones el
16C5X mientras que el Intel 8048 tiene más de 90), la
línea PIC tiene las características siguientes:
Buses de instrucciones y datos separados (arquitectura
Harvard) lo que permite el acceso simultáneo a las
instrucciones y a los datos, y el solapamiento de algunas
operaciones para incrementar las prestaciones de proceso
33. PIC (MicroChip) continuación I
El beneficio de su diseño tan sencillo es que :
El chip es pequeño
Pocas patillas.
Muy bajo consumo.
Los microcontroladores PIC están ganando popularidad
debido a su bajo costo, pequeño tamaño y a su bajo
consumo pueden ser usados en áreas en las que antes se
pensaba que eran inapropiados.
Existen 4 líneas
PIC16C5X
PIC16CXX
PIC17CXX
PIC18CXX
La linea 16C5X es la línea descendiente del diseño
original PIC, está limitada y se ha quedado obsoleta con
la línea 16CXX.
44. • Usado en jóvenes amputados entre 5 a 9 años
• Los amputado controlan estas manos
mediante la contracción de los músculos de
sus brazos
• El sistema posee unos electrodos y amplifica
señales en microvoltios de estas
contracciones
• El Stamp fue elegido por su pequeño tamaño,
y controla los servos y solenoides para la
articulación de la mano.
45. • Usados en un episodio de los X-File
• Se crearon complejos movimientos laterales y adelante-
atrás via servos y solenoides
• Se eligieron por ser fáciles de construir, unir y programar
• Se utlizaron Stamp I y básicamente el comando pulsout
46. •El gato padece Lipodósis hepática
(Requiere de dieta líquida a través de
cánula).
•El Stamp controla un diminuto motor
bomba, a través de de switchs sensores.
•El switch envía un pulso por cada
vuelta del motor hacia el Stamp.
•El Stamp está programado para nueve
diferentes volúmenes de alimentación,
además posee un sistema de alarma por
cualquier interrupción del flujo
48. •Medición de 4 temperaturas al mismo tiempo a intervalos de
un segundo
•Gráficas en tiempo real de 4 temperaturas de diferentes
procesos
•Base de datos (archivos ordenados por fecha del proceso).
•Reportes tipo Termo Registrador de hasta 4 procesos
diferentes
•Registros históricos de diferentes procesos ordenados por
fechas
•Sistema de alarmas para la supervisión del proceso
•Comunicación serial con la PC mediante interfaz RS232 o
RS485.
CARACTERISTICAS DEL SISTEMA
49. PANTALLA PRINCIPAL DEL
SISTEMA DE MONITOREO Y
SUPERVISION
GRAFICA DE LA BASE
DE DATOS DEL SISTEMA
DE MONITOREO Y
SUPERVISION
53. VENTILADOR VAR PORTD.7
DEFINE OSC 4
' Definir los registros y bits del LCD
DEFINE LCD_DREG PORTB 'D0,D1,D2,D3-4,5,6,7
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTE 'E0-RS
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTE 'E1-E
DEFINE LCD_EBIT 1
' Definir los parametros del ADCIN
DEFINE ADC_BITS 8 ' Setear el numero de bits del resultado
' Definir variables de los resultados de la conversión
adc1 VAR BYTE
TRISA = %11111111 ' Setear el puerto A como entrada
ADCON1 = %00000100 ' Setear el puerto A como analógico
Pause 500 ' Espera de .5 segundos
LCDOut $fe,1,"SENATI CHICLAYO"
LCDOut $fe,$c0, "Z.L.C.N"
Pause 1500
LCDOut $fe,1, " ELECTROTECNIA"
LCDOut $fe,$c0," INDUSTRIAL"
Pause 1500
LCDOut $fe,1, " VI "
LCDOut $fe,$c0," SEMESTRE"
Pause 1500
LCDOut $fe,1, " CONTROL DE"
LCDOut $fe,$c0," TEMPERATURA"
Pause 1000
54. INICIO:
LCD:
IF adc1>=28 Then
High VENTILADOR
Else
Low VENTILADOR
EndIF
LCDOut $fe, 1 ' Limpiar el LCD
ADCIN 0, adc1 ' Leer el primer canal del ADC
adc1=adc1*2
LCDOut $fe,1, " sensores"
LCDOut $fe,$c0, " T1=",#adc1
PAUSE 100
GOTO INICIO
60. CARACTERISTICAS DEL SISTEMA
•Medición de 2 temperaturas al mismo tiempo a intervalos de
un segundo
•Gráficas en tiempo real de 2 temperaturas de diferentes
procesos
•Comunicación serial con la PC mediante interfaz RS232 .