Download primera parte

Document related concepts
no text concepts found
Transcript
PRIMERA PARTE
La gama básica: el humilde PIC12F508
TEORÍA
Microcontrolador:
la solución está en un chip
CAPÍTULO
1
1.1. ¿QUÉ ES UN MICROCONTROLADOR?
Es un pequeño computador construido sobre el «chip» o dado de silicio que hay dentro
de un circuito integrado. Se emplea para controlar el funcionamiento de una tarea determinada o el de un producto, y debido a su reducido tamaño, suele estar incorporado
en el propio dispositivo que gobierna. Esta última característica es la que le confiere la
denominación de «controlador incrustado» (embebed controller) (Fig. 1.1).
Al microcontrolador se le considera como un «computador dedicado» pues en su
memoria reside un único programa destinado a controlar una aplicación concreta, sus
líneas de entrada/salida soportan el conexionado de los sensores y actuadores del sistema a gobernar y todos los recursos complementarios disponibles tienen como finalidad
exclusiva atender los requerimientos de la tarea a la que se dedica el microcontrolador
(Fig. 1.2).
Figura 1.1. El microcontrolador es tan pequeño que podría incrustarse en un dado y cambiar su suerte.
3
4
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.2. Fotografía de un ratón para PC abierto. Se distingue el microcontrolador que se encarga de
recoger los movimientos de la «bola» y transferirlos al PC para producir los desplazamientos correspondientes del cursor en la pantalla.
Un microcontrolador es un computador completo, aunque de capacidad limitada, que está
contenido en un circuito integrado y se destina a gobernar una tarea o producto en donde
suele ir incrustado.
Figura 1.3. La inclusión de un microcontrolador en un pastillero le añade prestaciones que le otorgan el
calificativo de «inteligente».
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
5
Figura 1.4. Distribución porcentual de la producción mundial de microcontroladores en las cinco grandes
áreas de aplicación.
La potencia que se puede obtener de un computador es inmensa; por eso, si son
pequeños y baratos, se pueden incorporar en cualquier producto por pequeño y económico que sea, abriendo las puertas de la imaginación de los diseñadores. Empresas del
prestigio de Dataquest auguran la presencia de centenares de microcontroladores en los
hogares del mundo desarrollado en un futuro cercano.
1.2. LA INVASIÓN DEL MUNDO
La potencia de los microcontroladores aumenta constantemente a la par que su volumen
y coste, lo que está dando lugar al crecimiento exponencial de su aplicación y, en consecuencia, a su invasión en muchos de los productos típicos del mundo moderno. Fundamentalmente, existen cinco grandes campos de aplicación de los microcontroladores.
1.o
2.o
3.o
4.o
Comunicaciones.
Gran consumo.
Automoción.
Informática.
5.o Industria.
Las comunicaciones y sus sistemas de transferencia de información utilizan profusamente los microcontroladores, siendo el teléfono móvil su componente más representativo (Fig. 1.5).
En el área de productos de gran consumo, los electrodomésticos de línea blanca
(lavadoras, hornos, lavavajillas, etc.) y de línea marrón (televisores, vídeos, aparatos de
audio, etc.) incorporan numerosos microcontroladores (Fig. 1.6).
6
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.5. Las comunicaciones absorben la mayor parte de la producción mundial de microcontroladores, siendo el teléfono móvil uno de los dispositivos que más utilizan.
Figura 1.6. Los electrodomésticos de línea blanca y marrón, como el televisor, precisan numerosos microcontroladores para optimizar su funcionamiento y sus prestaciones.
La industria de automoción es una firme candidata a incrementar el consumo de
microcontroladores para soportar las nuevas y cada vez más exigentes funcionalidades
de los vehículos modernos. En 2003, Microchip vendió veinticinco millones de microcontroladores para el control del sensor del airbag.
La industria informática acapara una buena parte de la producción de microcontroladores, puesto que casi todos los periféricos del computador disponen de uno o varios,
como sucede con las impresoras, teclados, discos duros, escáneres, etc.
En el área industrial, hay secciones como la robótica, la visión artificial, el control
de motores, las fuentes de alimentación ininterrumpibles, etc., que son grandes consumidores de microcontroladores.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
7
Figura 1.7. Bastantes sistemas de control, confort y seguridad del automóvil son gobernados por microcontroladores.
Más de la mitad de la producción mundial de microcontroladores es absorbida por las
comunicaciones y los productos de gran consumo. El resto se reparte entre el sector de la
automoción, la informática y la industria.
Figura 1.8. Casi todos los periféricos del computador, como la impresora, utilizan microcontroladores.
8
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.9. Los robots industriales precisan numerosos y potentes microcontroladores para su control.
Además de las cinco áreas comentadas, van apareciendo constantemente otras nuevas que precisan el empleo de microcontroladores, como la industria militar, la electromedicina, los juegos, la navegación espacial, etc.
Figura 1.10. Fotografía de una pistola para la medida del dolor en pacientes de fibromialgia basada en
microcontrolador.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
9
1.3. EN EL INTERIOR DEL MICROCONTROLADOR
Dentro del circuito integrado que materializa un microcontrolador hay un completo
computador, aunque de recursos y prestaciones limitadas. Consta de tres grandes
bloques.
BLOQUES DEL COMPUTADOR
1. Unidad de proceso:
A. Procesador.
B. Memoria de programa.
C. Memoria de datos.
D. Líneas de E/S.
2. Periféricos complementarios:
A. Temporizadores.
B. Conversores A/D.
C. Comparadores analógicos.
D. Puertos de comunicación.
E. Otros.
3. Recursos auxiliares:
A. Circuito de reloj.
B. Modos de bajo consumo.
C. Perro Guardián.
D. «Reset» al conectar la alimentación.
E. Otros.
Lo verdaderamente curioso es que con tantas cosas como hay dentro del microcontrolador sólo existe comunicación con el exterior a través de las patitas o «pines» existentes en la cápsula, que pueden ser tan pocas como seis u ocho. Dichas patitas sirven
para recibir la alimentación, la señal de reloj para sincronizar su funcionamiento, para
controlar los periféricos externos a gobernar y para sacar o introducir información con
el mundo exterior (Fig. 1.11).
Si sólo existiese un modelo de microcontrolador, éste debería tener muy potenciados
todos sus recursos para poderse adaptar a las exigencias de las múltiples aplicaciones
posibles. Esta potenciación supondría un despilfarro en muchos casos. En la práctica,
cada fabricante oferta un elevado número de modelos diferentes desde los más sencillos
hasta los más potentes. Es posible seleccionar la capacidad de la memoria, la velocidad
de funcionamiento, los periféricos y recursos complementarios, el número de líneas de
E/S, etc. Por todo ello, un aspecto muy destacado en la labor del ingeniero de diseño es
la elección del microcontrolador apropiado.
EJEMPLO
Un horno microondas se gobierna mediante un microcontrolador en el que se almacena
el programa, que tiene 382 instrucciones, cada una de las cuales ocupa una palabra
de la memoria de código. Para soportar el teclado y la pantalla LCD necesita de doce
10
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.11. El computador que hay en el microcontrolador sólo dispone de las patitas existentes en el encapsulado para comunicarse con los periféricos y dispositivos
externos a gobernar, recibir la alimentación y la señal de reloj.
líneas de E/S. ¿Cuál de los siguientes modelos de microcontroladores es el que más se
adapta a los requerimientos de la aplicación?
Modelo
Memoria instr.
(palabras)
Líneas E/S
Precio (euros)
PIC12F508
512
6
1,30
PIC16F83
512
13
2,17
PIC16F84A
1.024
13
2,50
PIC16C54
4.096
33
3,17
SOLUCIÓN
Para esta aplicación es suficiente el PIC16F83 y su empleo supone una importante economía de material y mano de obra.
1.4. DIFERENCIA ENTRE MICROCONTROLADOR
Y MICROPROCESADOR
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP) de un computador. La UCP, también llamada procesador, está formada
por la Unidad de Control, que interpreta o traduce las instrucciones, y el Camino de
Datos, que se encarga de ejecutar las operaciones que conllevan las instrucciones.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
11
Figura 1.12. Un computador basado en un microprocesador es un sistema «abierto» que puede configurarse a medida adaptando a sus buses los módulos necesarios.
Por las patitas de un microprocesador salen al exterior las líneas de los buses de
direcciones, de datos y de control para permitir comunicar el procesador con la Memoria y los Módulos de E/S para configurar un computador completo. De esta manera, el
computador completo se construye con varios circuitos integrados y se dice que el sistema que configura un microprocesador es «abierto» porque su estructura varía según la
aplicación a la que se destine (Fig. 1.12).
Un microcontrolador es un sistema «cerrado» porque contiene un computador completo y
de prestaciones fijas y limitadas que son difíciles de modificar.
Un microprocesador sólo es una parte del computador, la más importante, la UCP, y
para construir un computador completo hay que conectar otros circuitos integrados que
contengan la Memoria y los Módulos de E/S; por eso, se puede configurar a medida y se
llama sistema «abierto».
El PC es un computador conocido por todos que está basado en un microprocesador,
como el Pentium, que reside en la tarjeta principal y se conecta con los módulos de memoria, los controladores de periféricos (disco duro, impresora, etc.) y recursos auxiliares
(fuente de alimentación, circuito de reloj, etc.) configurando la máquina a la medida del
usuario (Fig. 1.13).
Aunque hay excepciones, los microcontroladores contienen todos los elementos
del computador y sus patitas se conectan directamente a los periféricos externos. Al no
disponer en el exterior de los buses, es bastante complicado ampliar las características
con las que se ha fabricado.
12
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.13. Alrededor del microprocesador Pentium se distribuyen y conectan los módulos de memoria
y de periféricos que configuran el PC.
1.5. ARQUITECTURA INTERNA
Las partes principales que existen en un microcontrolador son cinco.
1.
2.
3.
4.
5.
Procesador o UCP.
Memoria para las instrucciones y para los datos.
Líneas de E/S para la comunicación con el exterior.
Periféricos, como temporizadores, conversores AD, comparadores analógicos, etc.
Recursos auxiliares, como Perro Guardián, circuito de reloj, modo de funcionamiento
con bajo consumo, etc.
1.5.1. El procesador
Es la parte más importante del computador y se compone de dos grandes bloques:
1.o Unidad de Control, que se encarga de interpretar el tipo de instrucción que se
debe realizar
2.o Camino de Datos, que realiza las operaciones con los datos que implican las
instrucciones.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
13
Figura 1.14. La Unidad de Control de la UCP recibe las instrucciones de la memoria, las interpreta y
gobierna al Camino de Datos para realizar las operaciones correspondientes con los datos.
La Unidad de Control recibe las instrucciones en formato binario o máquina desde
la memoria que almacena el programa y genera las órdenes que necesita el Camino de
Datos para efectuarlas, recibiendo datos de entrada y generando otros de salida que se
almacenan en la memoria de datos (Fig. 1.14).
La estructura del procesador mostrado en la Figura 1.14 corresponde a la propuesta
por Von Neumann y tiene el inconveniente de guardar en la misma memoria las instrucciones y los datos. Con objeto de poder acceder simultáneamente a instrucciones y datos
y, además, adaptar las características de las memorias a sus contenidos se utiliza la arquitectura Harvard, que dispone de memorias independientes para datos e instrucciones
(Fig. 1.15).
1.5.2. Memoria de programa
Es la memoria donde se guardan las instrucciones del programa que tiene que ejecutar
el microcontrolador. La longitud de sus palabras se adapta al número de bits que tienen
las instrucciones y su capacidad se adecúa al tamaño que previsiblemente tendrán los
programas para los que se destina. En los microcontroladores, es interesante no tener
que ampliar el tamaño de esta memoria por lo que supone en el volumen y precio del
sistema.
14
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.15. La arquitectura Harvard, habitual en los microcontroladores, dispone de memorias independientes para datos e instrucciones.
Como el programa a ejecutar en un microcontrolador siempre es el mismo, debe
estar grabado de forma permanente y no volátil. Los tipos de memoria que se adaptan a
estas exigencias son los siguientes:
A) ROM
El programa se graba en la memoria del microcontrolador durante su fabricación mediante el uso de «máscaras». Los altos costes de diseño e instrumental sólo aconsejan el
uso de la ROM en series de producción muy altas, como sucede con los electrodomésticos y productos de gran consumo. No se puede borrar ni volver a utilizar.
B) EPROM
Si el microcontrolador dispone de memoria EPROM para contener el programa, la grabación del mismo se realiza con un dispositivo (grabador) gobernado desde un PC. En la
superficie de la cápsula del microcontrolador hay una ventana de cristal por la que puede
someterse al chip a rayos ultravioleta para conseguir el borrado de la memoria EPROM y
utilizarla nuevamente. Este tipo de memoria es muy interesante en la fase de diseño y depuración de programas, pero su coste unitario es elevado y su manipulación es complicada
y precisa de grabadores y «quemadores».
C) OTP (Programable una vez)
Al igual que la memoria EPROM, el usuario puede grabar el programa en este tipo de
memoria, pero ya no se puede borrar. El bajo precio de los microcontroladores con OTP
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
15
y la sencillez de la grabación recomiendan este tipo para prototipos finales y series de
producción cortas.
D) EEPROM
La grabación es similar a la de las memorias EPROM y OTP, pero el borrado para su
reutilización es mucho más simple, porque utiliza el mismo procedimiento eléctrico que
en la grabación. Sobre el mismo zócalo del grabador se puede programar y borrar tantas
veces como se desee. Es ideal en aplicaciones de diseño y educativas. Además de servir
para guardar el programa, en muchos modelos hay una parte de EEPROM como memoria de datos no volátiles que tan necesarios son en algunas aplicaciones.
Es una memoria no volátil que suele garantizar el fabricante hasta un millón de
ciclos de grabación/borrado. Como inconveniente, destaca el elevado y variable tiempo
que se precisa para la escritura y el borrado, la dificultad de alcanzar grandes capacidades y el elevado consumo de energía. Está siendo desplazada por la tecnología FLASH.
E) FLASH
Se trata de una memoria no volátil, de bajo consumo, que se puede grabar y borrar en circuito al igual que las EEPROM, aunque disponen de mayor capacidad que estas últimas.
Se suelen garantizar los mil ciclos de grabado/borrado. El borrado y la escritura se realiza
sobre bloques completos en lugar de bytes en la EEPROM.
Son muy recomendables en aplicaciones en las que haya que modificar el programa
a lo largo de la vida del producto como consecuencia del desgaste o de cambios de piezas
o especificaciones, como ocurre con los automóviles.
1.5.3. Memoria de datos
Los datos que manejan los programas varían continuamente y esto exige que la memoria
que los contiene debe ser de lectura y escritura, por lo que la memoria RAM estática
(SRAM) es la más adecuada, aunque sea «volátil» y pierda su contenido al quitar la
alimentación.
Para guardar datos permanentes o no volátiles suele existir en los microcontroladores un pequeño espacio de datos con memoria EEPROM.
Las memorias tipo EEPROM y FLASH pueden escribirse y borrarse eléctricamente en el
mismo circuito donde están montadas. No se precisa sacar el circuito integrado del zócalo
en el que residen.
1.5.4. Líneas de E/S
A veces, en ciertos modelos de microcontroladores, existen algunas patitas de la cápsula
que están reservadas para recibir la alimentación, la frecuencia de funcionamiento e
16
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
incluso para producir la reinicialización o reset. Las restantes se destinan a soportar la
comunicación con el mundo exterior.
Las líneas de E/S sacan información de los periféricos y recursos internos al exterior.
También recogen información de los dispositivos exteriores y la introducen al microcontrolador para su procesamiento. Se suelen agrupar en conjuntos de ocho líneas, que se
llaman «puertas» o «puertos». Son de tipo multifuncional, lo que significa que pueden
realizar diversas funciones multiplexadas en el tiempo y programables.
1.5.5. Recursos y periféricos auxiliares
Según las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador,
le incorpora diversos elementos que refuerzan y potencian su empleo. Entre los recursos
más comunes en casi todos los modelos se citan:
a) Circuito de reloj, que genera los impulsos que sincronizan el funcionamiento de todo
el sistema.
b) Temporizadores, destinados a controlar tiempos y retardos.
c) Perro Guardián («watchdog»), que vigila el programa y lo reinicializa cuando se bloquea.
d) Conversores A/D y D/A.
e) Comparadores analógicos, para analizar las señales analógicas.
f) Sistemas de protección ante fallos de la alimentación.
g) Modos de funcionamiento de bajo consumo.
h) Protocolos de comunicación, como I2C, USART, bus CAN, USB, etc.
Figura 1.16. Un proyecto con microcontrolador se materializa en una tarjeta de circuito impreso que
contiene al microcontrolador con el programa grabado y unos pocos elementos auxiliares.
La fotografía muestra una tarjeta para la creación de prototipos basados en PIC.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
17
1.6. HERRAMIENTAS DE DISEÑO
El resultado de un proyecto basado en microcontrolador suele consistir en una pequeña
tarjeta de circuito impreso que soporta al microcontrolador, que tiene grabado en su
memoria de código el programa de control y una serie de componentes auxiliares. Dicha
tarjeta se conecta a la fuente de alimentación y a los sensores, actuadores y dispositivos
que gobierna (Fig. 1.16).
Para desarrollar un proyecto se precisan de herramientas para la creación del software
y para la implementación y puesta a punto del hardware. Entre las herramientas destinadas al software se precisa un programa que permita desde un PC editar los programas
en un lenguaje, compilarlos para obtener el programa ejecutable, simular el programa y
depurarlo. Microchip ha creado para trabajar con sus microcontroladores PIC un entorno
integrado, denominado MPLAB IDE, que contiene todas las herramientas requeridas
para el desarrollo del software. El MPLAB IDE puede encontrarlo en el CD que acompaña al libro y su propietario lo pone a disposición de los usuarios libremente en su sitio
en Internet (www.microchip.com). Se recomienda visitar este sitio habitualmente para
trabajar con la última versión disponible (Fig. 1.17).
1. Gestión del proyecto
2. Ventana de registros.
3. Ventana de inspecciones.
4. Editor de textos.
5. Ventana de resultados.
6. Memoria del programa.
7. Vista de la EEPROM.
8. Control memoria.
Figura 1.17. El entorno MPLAB IDE de Microchip contiene todas las herramientas necesarias para el desarrollo del software de los proyectos que utilizan microcontroladores PIC.
18
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.18. Fotografía del grabador de PIC denominado «PIC’ Burner», de Ingeniería de Microsistemas Programados.
Los lenguajes usados normalmente para la confección de los programas para microcontroladores son el Ensamblador, el C y el BASIC. Para todos ellos existen en el
mercado eficientes compiladores e intérpretes.
Confeccionado y puesto a punto el software, hay que grabar el programa ejecutable
en la memoria del microcontrolador, montar y conectar todos los componentes que con-
Figura 1.19. Fotografía de un emulador de Microchip que permite comprobar en tiempo real el comportamiento del prototipo y depurarlo.
MICROCONTROLADOR: LA SOLUCIÓN ESTÁ EN UN CHIP
19
Figura 1.20. Los sistemas de desarrollo permiten grabar los microcontroladores, conectar los periféricos y comprobar en tiempo real el comportamiento del prototipo. Fotografía de la PIC
School empleada en esta obra para el desarrollo de las aplicaciones prácticas.
figuran el hardware en la PCB y comprobar el correcto funcionamiento del prototipo.
Tanto los fabricantes de microcontroladores como otras empresas relacionadas ofrecen
un completo abanico de grabadores, emuladores y sistemas para el desarrollo de aplicaciones.
1.7. LOS FABRICANTES Y EL MERCADO MUNDIAL
Hasta el año 2002, Motorola ha ocupado el primer puesto del ranking mundial de fabricantes de microcontroladores de 8 bits, que son los más populares. A partir de dicho
año, Microchip le ha reemplazado como líder mundial de dicho tipo de microcontroladores. Otros importantes fabricantes de estos dispositivos son Mitsubishi, NEC, Intel,
SGS-Thomson, Hitachi, ST-Micro, Renesas, etc. (Fig. 1.21).
En el año 2000 casi se vendieron cuatro billones de microcontroladores de 8 bits,
alcanzando Microchip unas ventas superiores cercanas a los 500 millones de dólares. En
2006, dicha empresa alcanzó una cifra de ventas cercana a los 1.000 millones de dólares
(Fig. 1.22).
20
MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES
Figura 1.21. «Ranking» mundial de los principales fabricantes de microcontroladores de 8 bits ordenado
por el número de unidades vendidas (Dataquest).
Figura 1.22. Crecimiento de las ventas anuales de microcontroladores de Microchip.