1
INTRODUCCIÓN
Alrededor de nosotros existen muchos elementos que hacen nuestra apresurada vida mucho
más pasiva y fácil de manejar. Estos artículos como calculadoras, Asistentes Digitales
Personales (PDAs), elementos de línea blanca como lavadoras, secadoras; artículos de uso
personal como rasuradoras, celulares, unidades portátiles USB, entre algunos, son
indispensables para nosotros ahora y no nos imaginamos la vida sin ellos. La mayoría de estos
dispositivos los consideramos formidables pues tienen características “inteligentes”, algo que
solamente podría realizarse por medio de la electrónica.
Dicha electrónica ha ido cambiando, desde lo que conocimos como tubos al vacío, hasta ahora,
la utilidad de electrónica programable. Sí, es cierto, la electrónica de ahora tiende hacia la
programación, no se ha quedado en un estado sedentario o pasmado en el tiempo. Existe un
nuevo concepto desde hace ciertos años hasta ahora, llamado “sistema embebido”. Un sistema
embebido es la combinación entre hardware (componentes), software (programación) y
posiblemente algo de mecánica para desempeñar un trabajo deseado.
Cuando se diseñan dichos sistemas, por lo general utilizan dispositivos de control, es decir, su
labor es supervisión del entorno del sistema. Los escritores de libros dicen que si un sistema
embebido es bien diseñado, el usuario no debería de notar su presencia. En el presente trabajo
se trata a nivel universitario de acercar más este tipo de temas; en el caso de
“microcontroladores”, para acercar a años inferiores este tema y también a nivel de la educación
2
media, en colegios vocacionales y hacer ver que este tipo de tecnología puede ser dominado
por cualquier persona con conocimientos básicos de electrónica y bajo la tutela de un profesor
idóneo en la materia. Todo lo anterior, debe ir ligado a la programación que es la nueva
tendencia hacia la electrónica.
3
Trabajos Realizados Anteriormente
Esta proeza no es nueva, anteriormente se han realizado trabajos relacionados al área de
electrónica de los cuales figuran el mundo de los microprocesadores y microcontroladores.
Estos trabajos, la mayoría de las veces trataban de hacer productos de aplicación específica,
resolver una necesidad, que es lo que se acostumbra cuando se utilizan este tipo de
dispositivos.
Tabla 1. Trabajos de Tesis Anteriormente Realizados
Año Descripción Autor 1984 Diseño e Implementación de un Analizador y Almacenador de
Señales Eléctricas Sergio Cedeño
1987 Probador Computarizado de Circuitos Integrados Digitales Rangel Alvarado 1989 Reparación y Modernización del Determinador de Carbono WR-12
del Laboratorio de Metalurgia de la Universidad Tecnológica de Panamá
Abdiel Bolaños y Luis Daniels
1990 Diseño y Construcción de un Sistema Analizador de Señales Lentas y/o no Periódicas Mediante el Microprocesador
Filadelfio Caballero y Fernando Blanco
1990 Unidad Computarizada de Control de Asistencia José Palacios 1991 Control de Motores de Inducción Trifásico Mediante el Uso de
Convertidores Vicente Vargas
1991 El Microcontrolador en el Automóvil Franklin Rovira 1993 Diseño y Construcción del Módulo Didáctico y Plataforma de
Desarrollo “EA-65” Basado en el Microprocesador 6502 Erick Arosemena
A diferencia de todos estos trabajos, el trabajo actual puede resultar poco llamativo, pero es de
gran importancia y de mucha ayuda a un novato a iniciarse en el mundo de los
microcontroladores. Anteriormente solo se enfocaba en resolver el problema de un individuo,
pero una de las misiones de este trabajo es acercar la información a las personas.
4
Tarjeta de Desarrollo JK3 / JL3
Para realizar dicho trabajo, se utilizó una tarjeta de desarrollo de experimentación. La tarjeta
fue diseñada originalmente por el Ing. Gustavo Galeano de Colombia quien asistió a la
Universidad Tecnológica de Panamá en el año 2000 promoviendo la Familia HC08 de Motorola
como objetivo de hacer que Latinoamérica y especialmente Panamá fueran parte del territorio
Motorola. Años más tarde, el Ing. Oscar Ellis decidió mejorar el prototipo de la tarjeta original
de la cual resultó una tarjeta de un costo reducido e igual desempeño.
Figura 1. Tarjeta de Desarrollo de Experimentación TD 68HC908JL3 – Rev. 12.26c. Ver Circuitos Impresos en el Apéndice Q y de esta tarjeta en Q.4
La tarjeta es pin compatible con el microcontrolador JL3 de la familia HC08, pero bajo ciertas
modificaciones se puede acceder a programar otros microcontroladores de la misma familia sin
realizar nuevos prototipos, considerada así como un programador universal.
El costo de la tarjeta asciende alrededor de los B/. 37.00 pero añadida la fuente de alimentación
y el cable de comunicación serie con la PC, puede considerarse un costo cercano o promedio
entre los B/. 50.00 sin escatimar. Para todos los softwares generados en los documentos
5
explicativos alrededor de la tesis, se utiliza esta tarjeta que tiene un cristal oscilador de cuarzo a
4.9152 MHz de frecuencia; si se realiza un cambio externo de cristal, afectará también el
comportamiento de tiempos del programa, por ejemplo, el caso de temporizadores, donde el
tiempo del temporizado, depende del cristal. Por el momento, utilice el cristal adaptado a la
tarjeta y si necesita mayor velocidad cámbielo cuando se entiendan los conceptos básicos
sobre el manejo de tiempos.
La tarjeta posee una configuración mínima para programación, LEDs de prueba y de encendido,
un potenciómetro para pruebas de Conversión Analógica a Digital (ADC) y los documentos de
los capítulos, la mayoría están predispuestos para que el usuario se empiece a familliarizar con
la tarjeta y los periféricos internos que posee el microcontrolador. Luego de adquirida cierta
experiencia se procede al siguiente nivel.
La siguiente etapa consta de hacer interface entre la tarjeta y dispositivos externos como
pantallas LCD, teclados, multiplexión de LEDs, etc. Aunque se trata de enfocar más hacia la
programación individual, todos estos componentes pueden ser entrelazados; sin embargo, la
tesis no enfoca este tipo de solución, solo se orienta al usuario a acercarse a la información y
construir en base a los bloques básicos de programación que facilitarán su vida y el tiempo de
entrega de proyectos personales.
Adicionalmente, parte inconclusa de la tesis se presenta en el Apéndice P, representa
una conjunto importante del proyecto la cual involucra una aplicación del
microcontrolador, orientada hacia la robótica para la educación, utilizando el Kit LEGO
Mindstorms sobre el cual se planea se introduzca, primero evaluándose a nivel superior
universitario, para luego llevarlo hacia la educación media.
6
El Microcontrolador
Esta sección del capítulo resume brevemente en lo que consiste un microcontrolador, que es
una de las formas más simples de computador, y siempre, en cualquier sistema computador,
redunda en ciertos elementos comunes que lo hacen computador.
Los microcontroladores son simples ejecutores de instrucciones de propósito general;
dependiendo del estado de las entradas, reacciona y genera salidas que dependen de dicho
cambio. Mas sin embargo, para que todo opere normalmente, el programador es la persona
que realmente hace el trabajo inicial de realizar un programa para cargar el código adecuado y
que el sistema responda correctamente.
Vistazo General a un Sistema Tipo Computadora
Todo computador está formado en parte por tres grandes elementos: el CPU (Unidad Central
de Procesamiento), la memoria y dispositivos de E/S (Entrada/Salida). Cambiando los
dispositivos de E/S, puede mutar desde una computadora de escritorio, una super-computadora
o un simple microcontrolador. La figura 2 muestra el tipo de estructura mencionada
anteriormente. Cualquier sistema computador posee como mínimo este tipo de configuración.
7
Sistema
Microprocesador
Sistema
Microcontrolador
Figura 2. Sistema Microprocesador y Sistema Microcontrolador
Una computadora y una microcomputadora puede acordarse a ser una máquina que manipule
información, dependiendo del programa alojado en él. La información puede ser representada
en números, pero todos estos sistemas procesan datos binariamente, es decir, solo reconocen
unos y ceros.
Diagrama de Bloques del Microcontrolador
Un Diagrama de Bloques es una representación pictórica de los diversos componentes que
posee en este caso, el microcontrolador. La figura 3 muestra las partes por las cuales está
compuesta el microcontrolador JK3, pero el mismo microcontrolador JL3 es ligeramente
diferente a dicho diagrama, solamente aumentan las capacidades de manejo de puertos y
mayor capacidad del módulo de teclado interno.
8
Figura 3. Diagrama Interno de Bloques del Microcontrolador Motorola JK3
9
Entradas del Sistema
Para adquirir datos del mundo exterior se necesita de unidades de entradas. Dichas entradas
pueden ser digitales, en el caso más común, las entradas pueden provenir de un teclado; o
analógica, en el caso de variación de una cantidad física sensada y transducida eléctricamente
a voltaje, como por ejemplo, temperatura.
Como se mencionó anteriormente, dichas señales digitales solo pueden tomar valores entre
unos y ceros. Un uno lógico, representa un estado cercano a los 5 voltios, mientras que un cero
lógico, un estado cercano a los 0 voltios. Como relativamente todas las señales del mundo
exterior son analógicas, necesitamos transformar dichas señales en pulsos, estados cercanos a
estos valores lógicos.
Otro tipo de entradas, son las entradas analógicas. Para que se sensen señales analógicas, se
necesita de los transductores. Los mismos transforman una señal física como temperatura y la
convierten a una señal de voltaje en el rango aceptable para un microcontrolador. Existen una
variedad extensa de transductores como: presión, temperatura, movimiento, humedad, etc.
Los elementos celestes figura 3, representan las entradas del sistema, encapsuladas por
bloques.
Salidas del Sistema
Igualmente, necesitamos informarle al mundo exterior de la acción que debemos tomar.
Generalmente, el dispositivo de salida de microcontroladores es más sencillo que el de los
computadores, por lo que se utilizan LEDs, siete segmentos, una LCD, etc. Los elementos
celestes de la figura 3, representan las salidas del sistema, encapsuladas por bloques.
Aunque parezca contradictorio, las entradas y las salidas pueden ser los mismos pines, pero se
debe aclarar que dicho puerto o pin del puerto, solo puede ser de un solo tipo; como entrada o
como salida, no ambas.
10
Unidad Central de Procesamiento (CPU)
El CPU es el núcleo central de la máquina de ejecutar instrucciones, manejar información y
desempeñar acciones aritméticas, el mismo, controla la actividad de toda máquina. Como el
cerebro humano, puede procesar información (visual y vocal), lo único que a un nivel más bajo,
pues el cerebro humano es un “google” de veces más complejo que una CPU.
Cuando un programa se ejecuta dentro del CPU instruye al sistema a leer las entradas, alterar
los registros (variables internas del microcontrolador) y tomar decisiones en las salidas a
afectar. En el microcontrolador, específicamente hablando, el programa funciona solamente
para un grupo de acciones a una aplicación de control. Debido a la simplicidad del sistema, se
conoce exactamente como este opera y es mucho más fácil de entender las grandes
computadoras a partir del conocimiento de cómo operan los microcontroladores. La parte
central del diagrama de bloques de la figura 3, corresponde al CPU de nuestro
microcontrolador.
Reloj
Para que el CPU procese las instrucciones, estas deben estar sincronizadas con respecto a una
base de tiempo para que cada acción se ejecute en el momento correcto. Así, podríamos hacer
cierta analogía entre el corazón con el reloj del sistema que es el que define la velocidad con
que se ejecuta una instrucción en el microprocesador.
Las computadoras, minicomputadoras, por lo general traen un pequeño reloj oscilador en donde
solo hay que conectar el cristal necesario para que el módulo oscile. En el diagrama de bloques
de la figura 3, el módulo amarillo en la parte superior derecha corresponde al módulo oscilador
del sistema, el cual se le conectará un cristal y ciertos componentes adicionales para generar
las señales de sincronía del sistema.
11
Memoria
La memoria del sistema es la responsable en almacenar la información procesada y a procesar
por el computador. Las memorias pueden estar presentes en todo tipo de formas. Las formas
más comunes en este tipo de sistemas son la memoria RAM (memoria de acceso aleatorio) que
retiene información hasta que se apague el sistema o se altere la misma y la ROM (memoria de
solo lectura), quien es responsable de almacenar el programa de aplicación y se mantiene en
memoria aún apagado el sistema microcontrolador. En la figura 3 se aprecia en la parte inferior
la memoria ROM y RAM.
Otros tipos de memoria que pueden estar presentes en un microcontrolador son las memorias
EPROM (memoria programable y borrable de solo lectura) y la EEPROM (memoria programable
y borrable eléctricamente de solo lectura). La memoria de este tipo de microcontrolador es un
tipo de memoria avanzada, llamada FLASH, que es de mejor tiempo de acceso de
programación, es decir, más rápida y de mejores características que las anteriores.
Programa Computacional
Hablamos del tipo de memoria, FLASH, pero no explicamos su uso específico. Esta es la parte
donde entra la personalización del programador, la información almacenada en esta zona es la
responsable del funcionamiento correcto de una aplicación. Afortunadamente, los programas
que realizamos, se ejecutan de manera lineal, es decir, una instrucción seguida de otra, toda
esta información almacenada en la memoria FLASH son órdenes que el CPU deberá obedecer
y ejecutar dado el comportamiento especificado.
Resumen
Un microcontrolador es un sistema computacional completo que incluye, CPU, memorias, un
reloj oscilador y E/S en un solo chip o pastilla. Cuando el microcontrolador carece de algunos
de estos elementos, se dice que es un microprocesador.
12
Microcontroladores de la Familia HC08
Los microcontroladores se han hecho famosos por ser dispositivos de aplicación específica
fáciles de programar. Algunas ventajas que poseen este tipo de circuitos integrados es la
versatilidad de generar aplicaciones a la medida, programación en lenguajes de alto nivel, su
bajo costo y bajo consumo de potencia. En el mercado actual, se presume, que para el año
2005, existieron alrededor de 350 dispositivos de aplicación específica entre nosotros.
Taxonomía de los Microcontroladores Motorola HC08 Utilizados
De todos los microcontroladores provenientes de la familia HC08, los utilizados en este trabajo
fueron 5 dispositivos, de los cuales, sus características más sobresalientes se listan a
continuación.
Tabla 2. Taxonomía de los Microcontroladores Utilizados
Producto RAM Interna Flash Tipo de Interfase Canales de Frecuencia Serial Temporizadores Máxima de Bus (Bytes) (Bytes) (MHz)
68HC908GP32 512 32768 SCI, SPI 2, 4 4.1, 8.2 68HC908JK3E 128 4096 2 8 68HC908JL3E 128 4096 2 4, 8 68HC908QT4 128 4096 2 3.2, 4, 8, 8.2 68HC908QY4 128 4096 2 3.2, 4, 8, 8.2
Tabla 3. Taxonomía de los Microcontroladores Utilizados . Continuación
Producto Canales de Convertidores Voltaje de Suministro Conversión A/D Bits (bits) (V)
68HC908GP32 8 8 3, 5 68HC908JK3E 10 8 5 68HC908JL3E 12 8 3 68HC908QT4 4 8 3, 5 68HC908QY4 4 8 3, 5
13
Tabla 4. Taxonomía de los Microcontroladores Utilizados. Continuación
Producto Canales de Modulación Bits de Modulación Por Pines de E/S Otros periféricos Por Ancho de Pulso Ancho de Pulso
68HC908GP32 2, 4 16 29, 31, 33 Inhibidor de Bajo Voltaje 68HC908JK3E 2 16 15 Inhibidor de Bajo Voltaje 68HC908JL3E 2 16 23 Inhibidor de Bajo Voltaje 68HC908QT4 2 16 5, 6 Inhibidor de Bajo Voltaje 68HC908QY4 2 16 6, 13, 14 Inhibidor de Bajo Voltaje
Para todos los programas, o la mayoría de ellos, se utilizó el microcontrolador 68HC908JL3E,
enmarcado en las tablas superiores, cualquier cambio de microcontrolador, será avisado antes
de iniciar el programa correspondiente de la sección a estudiar.
Foco del Mercado, ¿Por qué 8-bits?
El mercado de los microcontroladores es extremadamente amplio, existe una gama variada de
microcontroladores, en donde como se ve en las tablas 2 a 5, cada uno posee características
diferentes y se eligen según la aplicación.
Analistas del mercado han estudiado la venta de microcontroladores a nivel mundial y se
estimaron ganancias superiores a los 10 billones de dólares en el 2003. Según los analistas y
fijándonos en la figura 4, se habla de que el mercado de los 8-bits, comparte un porcentaje
considerable del total, a un 29% e irá en crecimiento estimado del 40% o más.
La región geográfica también tiene impacto en las fortunas generados por los
microcontroladores de 8-bits. Japón es todavía líder en el mercado y las compañías, todas, en
aplicaciones como juguetes y juegos, están todas migrando al mercado de los micros de 8-bits.
Las nuevas tendencias de mediciones remotas y seguridad, antes no consideradas, crean una
nueva y potencial posibilidad de volumen de aplicaciones; además, cabe recalcar que las
aplicaciones de bajo consumo (baterías) están tendiendo al mercado de 8-bits.
14
Figura 4. Mercado de los Microcontroladores de 8-bits. Los microcontroladores de 8-bits retienen una cantidad sustancial del mercado. Fuente: Industry Analysts
A partir de otras estadísticas, también podemos percatarnos de la importancia que tiene
Motorola en el mercado Americano. Hasta el año 2001, la estadística de la figura 5 muestra
que Motorola es líder del Mercado con 24%. La preferencia a Motorola está por accesibilidad a
microcontroladores de bajo costo, equipo de desarrollo y documentación variada; además, sus
microcontroladores son mucho más robustos que los de las otras compañías por un precio más
bajo.
Figura 5. Distribución del Mercado de Microcontroladores de 8 – bits. Motorola domina el mercado actual (hasta el 2001) con un amplio porcentaje
15
Competitividad y Familia HC08
Empresas Competidoras
Las dos compañías que actualmente pelean el mercado y han aceptado el reto de establecer la
diferencia entre los microcontroladores de 8 y 16 bits, son Freescale y Renesas, ambas tratan
de liderizar el mercado. La estrategia de Freescale es asegurar que el núcleo del
microcontrolador ocupe una pequeña porción del dispositivo, de allí su bajo costo.
Freescale, también tiene una amplia gama de microcontroladores para soluciones diversas, de
rangos de memoria de FLASH desde los 1 a 60 Kbits; 32 a 512 Kbits para microcontroladores
de 16-bits y superiores a los 1 Mbits para los microcontroladores de 32-bits. Otro aspecto es el
entorno de desarrollo, el cual es consistente independientemente del microcontrolador y la
arquitectura, así, si se desea migrar a un microcontrolador de más capacidad u otra familia,
podrá empezar más rápidamente.
Familia HC08
La familia HC08, tiene una gran variedad de microcontroladores, están entre estos, la familia de
propósito general, que será con la que se trabajará en esta tesis, y que es la más utilizada
debido a la flexibilidad de programación, bajo costo y fácil acceso al sistema de desarrollo. La
familia CAN, que se especializa en redes de áreas controladas, muy utilizada en aplicaciones
automotrices, microcontroladores específicos para control de motores, de bus de serie universal
(USB), etc.
En la siguiente figura, se puede explorar la familia HC08 con respecto a la escala de integración
y cantidad de puertos de entrada salida. Para mayor información acerca de la Cía. Motorola,
que ahora se llama Freescale, visitar el sitio http://www.freescale.com/
16
Figura 6. Familia HC08, Cantidad de Pines vs. Escala de Integración
Top Related