Hoja 1 de 13 Microprocesadores I - Unidad 1 Año 2003 Javier Rambaldo Profesor de la cátedra de Microprocesadores I Unidad 1: Controlador y microcontrolador versus microprocesador. Arquitectura cerrada y abierta. Prestaciones, fiabilidad, flexibilidad, aplicaciones. Recursos comunes. Recursos especiales. Lenguajes de programación. Herramientas de desarrollo. Versión 1.4 Javier Rambaldo Hoja 2 de 13 Microprocesadores I - Unidad 1 Controlador y Microcontrolador Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna, cuando sobrepasa los límites prefijados, genera las señales adecuadas para intentar llevar a la temperatura al rango estipulado. Aunque el concepto de controlador ha permanecido invariable a traves del tiempo, su implementación física ha variado notablemente. Hace tres décadas, los controladores se construían con componentes de lógica discreta; posteriormente se empleron los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una terjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un solo chip, el cual recibe el nombre de microcontrolador. Realmente consiste en una sencilla pero completa computadora contenida en el corazón de un circuito integrado. El microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. Se dice que es “la solución en un chip” porque su reducido tamaño minimiza el número de componentes y el costo. Un microcontrolador dispone de los siguientes componentes: ¤ ¤ ¤ ¤ ¤ ¤ Procesador o CPU Memoria RAM para contener los datos Memoria de solo lectura para contener el programa Líneas de entrada y salida para comunicarse con el esterior Diversos módulos para el control de periféricos (Temporizadores, puertos serie y paralelo, conversores analógicos a digitales, etc.) Generador de impulsos de relos que sincronizan el funcionamiento de todo el sistema Reloj CPU Entrada / Salida µC Mem. de Datos RAM EEPROM Conversores AD y DA Temporizadores Comunicaciones Etc. Mem. de Programa EPROM ROM EEPROM Componentes que configuran un microcontrolador. Ejemplo: ¿Qué diferencia existe entre un microcontrolador y un microprocesador? Solución: El microprocesador es un circuito integrado que contiene a la CPU de un sistema de microcómputo general. El microcontrolador es un circuito integrado que contiene una sencilla pero completa computadora (CPU, memoria, E/S) destinado a gobernar una tarea concreta. Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 3 de 13 Existen muchos modelos de microcontroladores los cuales se diferencian por su cantidad de entradas/salidas, si tienen o no conversores analógicos/digitales, puertos de comunicación, temporizadores, etc. También la memoria de datos y de programa en otra de las diferencias. Todas estas características hacen que uno pueda seleccionar el más adecuado al proyecto. Prestaciones: Su reducido tamaño y bajo costo permiten que se pueda incorporar en sistemas que antes no tenían controladores. Por ejemplo en automotores. Fiabilidad: Al tener menos componentes, se disminuye el riesgo de fallas y precisa menos calibraciones. Flexibilidad: Como el control se hace mediante un programa, su modificación solo precisa cambios de programación. Aplicaciones: “La única limitación que tienen las aplicaciones de los microcontroladores actuales está en la imaginación del diseñador...” Cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir tamaño y costo, mejorar su fiabilidad y disminuir el consumo. Los campos más destacados en los que se emplean microcontroladores son los siguientes: ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ Periféricos y dispositivos auxiliares de las computadoras. Electrodomésticos. Aparatos portátiles y de bolsillo. Máquinas expendedoras y juguetería. Instrumentación. Industria automotriz. Control industrial y robótica. Sistemas de navegación espacial. Seguridad y alarma. Termoregulación (Calderas de calefacción, aire acondicionado, hornos, etc.) Controlador incrustado: Una sencilla definición de controlador incrustado (“embedded controller”) es una computadora dedicada a una sola tarea y, generalmente, incorporado en el mismo producto al que gobierna. Es el caso del teléfono móvil, el ratón de la computadora o el mismo teclado. Ejemplo: ¿Cuál es la principal ventaja de una computadora basada en microcontrolador y la que lo está en un microprocesador? Solución: La computadora basada en un microcontrolador está formada por un solo circuito integrado, reduciendo notablemente el tamaño y el costo. Una computadora basada en un microprocasador se compone de varios circuitos integrados para soportar las memorias y los módulos de E/S. Tiene mayor tamaño y costo, y menor fiabilidad. Recursos comunes a todos los microcontroladores Al estar todos los dispositivos integrados en un solo chip, su estructura fundamental y sus características básicas son muy parecidas. Todos deben disponer de los bloques escenciales: Procesador, memoria de datos, memoria de instrucciones, entrada y salida, reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones para las que se destinan preferentemente. Arquitectura cerrada y abierta Para resolver aplicaciones sencillas se precisan pocos recursos; en cambio, las aplicaciones grandes requieren numerosos y potentes recursos. Siguiendo esta filosofía, los fabricantes de microcontroladores construyen diversos modelos orientados a cubrir, de forma óptima, las necesidades de cada proyecto. Esta es la razón por la que existen dos tendencias para resolver las demandas de los usuarios: Arquitectura cerrada Cada modelo se construye con un determinado procesador (CPU), cierta capacidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un número de E/S y un conjunto de recursos auxiliares Versión 1.4 Javier Rambaldo Hoja 4 de 13 Microprocesadores I - Unidad 1 muy concreto. El modelo no admite variaciones ni ampliaciones. La aplicación a la que se destina debe encontrar en su estructura todo los que precisa y, en caso contrario, hay que desecharlo. Arquitectura abierta Estos microcontroladores se caracterizan porque, además de disponer de una estructura interna determinada, pueden emplear sus líneas de E/S para sacar al exterior los buses de datos, direcciones y control, con lo que se posibilita la ampliación de la memoria y las E/S con circuitos integrados externos. Ejemplo: Para resolver una aplicación que precisa 1K palabras de código, 74 bytes de datos, 10 líneas de E/S digitales y un conversor A/D se usa un microcontrolador con 2K palabras de código, 128 bytes para datos y 12 líneas de E/S digitales. ¿Cómo debería ser la arquitectura del microcontrolador, abierta o cerrada? Solución: Abierta porque, al no disponer del conversor A/D, habrá que acoplarlo en el exterior. Arquitectura Básica Inicialmente se había adoptado la arquitectura Von Newman, caracterizada por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control.) MEMORIA PRINCIPAL CPU BUS DE CONTROL DATOS + INSTRUCCIONES DATOS E INSTRUCCIONES DIRECCIONES En el presente se impone la arquitectura Harvard, que es la que utilizan los microcontroladores PIC. Esta, dispone de dos memorias independientes: una que contiene solo instrucciones y otra, solo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias. MEMORIA DE INSTRUCCIONES INSTRUCCIONES MEMORIA DE DATOS CPU DIRECCION DE DIRECCION DE INSTRUCCIONES DATOS DATOS INSTRUCCIONES DATOS El Procesador o CPU: Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel de hardware como de software. Se encarga de direccionar, recibir el código de la instrucción en curso, su decodificación y la ejecución de la operación, que implica la búsqueda de operandos y almacenamiento del resultado. Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 5 de 13 Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales: CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC (Juego de Instrucciones Complejo). Disponen de más de 80 instrucciones, algunas de las cuales son muy sofisticadas y potentes, requeriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macro-instrucciones. RISC: Tanto la industria de las computadoras comerciales como la de los microcontroladores están decantándose hacia la filosofía RISC (Juego de Instrucciones Reducido). En estos procesadores el juego de instrucciones es muy reducido y las instrucciones son simples, generalmente se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC: En los microprocesadores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es “específico”, o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC (Juego de Instrucciones Específico). Memoria: Según su uso específico dentro del sistema, a las memorias las podemos llamar RAM para aquellas que manejan datos y variables, y ROM a las que almacenan el programa. Como los microcontroladores se utilizan para sistemas pequeños, la cantidad de datos y variables en mucho menor que la cantidad de instrucciones de programa. En los microcontroladores PIC, las memorias de datos RAM poseen de 20 a 512 bytes, mientras que las memorias de programa ROM (o EEPROM) poseen 512 bytes a 8K bytes. Hay dos particularidades que diferencian a los microcontroladores de las PC: 1. 2. En los microcontroladores no existen sistemas de almacenamiento masivo (cintas, discos rígidos, disquetes, etc.) Como el microcontrolador solo se destina a una tarea en la memoria ROM, solo hay que almacenar un único programa de trabajo. Según el tipo de memoria de programa que dispongan los microcontroladores, la aplicación y utilización de los mismos son diferentes. Existen 5 tipos de memorias no volátiles: 1. ROM con máscara Es una memoria no volátil de solo lectura cuyo contenido se graba durante la fabricación del chip. El elevado costo del diseño de la máscara solo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2. OTP (One Time Programming) El microcontrolador contiene una memoria no volátil de solo lectura “programable solo una vez” por el usuario. Es al usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde una PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tienen menor costo que la tecnología FLASH con la misma geometría. 3. EPROM (Erasable Programmable Read Only Memory) Los microcontroladores que disponen de memorias EPROM (también llamada UV-PROM) pueden borrarse y grabarse muchas veces. La grabación se realiza como en el caso de las OTP, con un grabador gobernado desde una PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caras que las OTP. 4. EEPROM (Electrical Erasable Programmable Read Only Memory) Borrables eléctricamente. Pueden ser borradas y re-programadas sin retirarse del circuito. Es la solución más flexible a la hora de realizar un prototipo. El costo es relativamente más alto que las OTP en la misma geometría. La tensión de programación ronda los 13,5V. 5. FLASH Similar a las EEPROM pero de mayor densidad (más capacidad) y más veloces. Recientemente han aparecido microcontroladores con memorias FLASH con tensiones de trabajo de 2.0v a 5.5v y tensión de programación de 5v. El consumo también es mucho más bajo que las anteriores. Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 6 de 13 Ejemplo: En la primera fase de un diseño con microcontrolador se deben construir un par de prototipos hasta poner a punto el código. Después se requiere lanzar una serie experimental con 50 productos acabados a distribuidores mundiales. Finalmente, superadas todas las pruebas, se prevé sacar al mercado 22.000 unidades ¿Qué tipo de memoria para programa será aconsejable que tenga el microcontrolador en cada una de las fases del proyecto? Solución: 1° fase: Memoria EPROM o EEPROM. 2° fase: Memoria OTP. 3° fase: Memoria ROM con máscara. Puertas de Entrada / Salida: La mayoría de las patitas que posee un microcontrolador son de E/S y se destinan a proporcionar el soporte a las señales de entrada, salida y de control. (En el apéndice A de este apunte hay una descripción de las puertas de E/S del PIC16F84.) Reloj Principal: Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia que se utiliza para sincronizar todas las operaciones del sistema. Generalmente, el reloj está incorporado en el microcontrolador y solo se necesitan unos pocos componentes externos: cristal de cuarzo, resonador cerámico o una red R-C. Aumentar la frecuencia del reloj implica disminuir el tiempo de ejecución de las instrucciones pero lleva aparejado un incremento de la temperatura. Ejemplo: Un microcontrolador dispone de un ciclo de instrucción (tiempo que dura una instrucción) de cuatro ciclos de reloj principal. ¿Cuánto tiempo tardará en ejecutar un programa de 1000 instrucciones si el oscilador principal tiene una frecuencia de 10 Mhz? Solución: f = 10Mhz Treloj = 1x109 / 10x106 = 100ns Tinstruccion = 4 x 100 = 400ns Tprograma = 1000 x 400 = 400 ? s Recursos Especiales Cada fabricante oferta numerosas versiones de una arquitectura básica de ? C. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el costo, el hardware y el software. Los principales recursos que incorporan los microcontroladores son: ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ Timers o temporizadores Watchdog o perro guardián Brownout o protección ante fallo de alimentación Sleep o estado de reposo o bajo consumo Conversor analógico a digital Conversor digital a analógico Comparador analógico PWM o Modulador de anchura de pulso Puertas de E/S digitales Puertos de comunicación serial Protección de código Timers: Controlan períodos de tiempo (temporizadores). Llevan la cuenta de acontecimientos que suceden en el exterior (contadores). Versión 1.4 Javier Rambaldo Hoja 7 de 13 Microprocesadores I - Unidad 1 Watchdog: Los programas frecuentemente pueden fallar, tanto por problemas de diseño o por ruidos externos al sistema. Por lo general, el procesador queda en un lazo infinito dejando de atender al resto del programa. La única alternativa que nos queda en estos casos es resetear el sistema. El perro guardián o watchdog se encarga de resetar al sistema automáticamente, en el momento que el sistema quede “colgado”. Brownout: Es un circuito de protección que resetea al microcontrolador cuando la tensión de alimentación es inferior a un mínimo. Si el microcontrolador no posee este recurso, se puede construir uno externo. El siguiente circuito cumple esta función: Vdd Vdd 33K 10K PIC Este circuito activa el reset cuando Vdd se va por debajo de Vz + 0,7V. MCLR 40K Brownout Sleep o Bajo consumo: Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar sin hacer nada, a que se produzca algún acontecimiento externo que lo ponga de nuevo en funcionamiento. Para ahorrar energía, los microcontroladores disponen de una instrucción especial que los pasa a este modo de reposo. En dicho estado se detiene el reloj principal y se congelan los circuitos asociados. Sale de este estado al interrumpirse por el acontecimiento esperado. En los PIC se ingresa a este modo ejecutando la instrucción SLEEP. Si está habilitado, el watchdog se resetea pero continúa activo y el oscilador del reloj se detiene. Los puertos de E/S mantienen su estado. Para despertar al microcontrolador y sacarlo de este estado deberá ocurrir uno de estos eventos: 12- Un RESET externo en el pin MCLR. Un RESET interno producido por el watchdog. Ambos eventos causan un reset del dispositivo microcontrolador. Ejemplo: Un reloj que dispone de opciones de: Desconexión (OFF), Puesta en marcha (ON), Activación de alarma, Desactivación de alarma y Puesta en hora, se gobierna con un microcontrolador. ¿Cuándo convendrá que el microcontrolador entre en el modo de reposo? Solución: Cuando se desconecta el reloj (OFF) y no debe funcionar. Conversor A/D y D/A: Los microcontroladores que poseen conversores, pueden manejar estas señales analógicas. Suelen disponer de un multiplexor para manejar varias entradas analógicas. Comparador analógico: Algunos microcontroladores poseen un amplificador operacional que actúa como comparador entre una señal fija de referencia y otra variable. La salida del comparador proporciona un 0 o un 1 según la señal sea mayor o menor que la de referencia. PWM: Son circuitos que proporcionan en su salida impulsos de ancho variable, que se ofrecen al exterior a través de las patitas del encapsulado. Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 8 de 13 Puertas digitales de E/S: Todos los microcontroladores disponen de algunas patitas de E/S digitales. Por lo general se agrupan de a 8 formando puertas. Pueden configurarse como entrada o salida cada patita independientemente de las otras. Puertos de comunicación: Con el objeto de dotar al microcontroladores de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, redes, etc., algunos modelos disponen de estos recursos entre los que se destacan: ¤ UART: Adaptador de Comunicación Serie Asincrónica. ¤ USART: Adaptador de Comunicación Serie Sincrónica y Asincrónica. ¤ USB (Universal Serial Bus): Moderno bus serie para los PC. ¤ Bus I2C: Interfaz serie a dos hilos (Philips). ¤ CAN (Controller Area Network): Interfaz utilizada por automóviles. Protección de código: El código o programa ingresado en los microcontroladores puede ser protegido contra lectura por razones de seguridad. También posee 4 bytes destinados a identificación, donde el usuario puede colocar una palabra única de identificación. Esta palabra se puede leer durante el proceso de verificación de la grabación. Lenguajes de programación Se han desarrollado todo tipo de lenguajes de programación para los microcontroladores, pero los más usados son el ensamblador, Basic y el C. Como toda máquina digital, el microcontrolador es capaz de entender exclusivamente el lenguaje binario grabado en la memoria. El lenguaje ensamblador es una forma más humana de escribir programas. Los programas escritos en ensamblador son compactos y rápidos puesto que realizan un completo control de la máquina. Sin embargo, si no están bien confeccionados resultarán de gran tamaño y lentos. Los intérpretes son programas residentes en el microcontrolador que permiten la ejecución línea a línea. Loa más populares son el Basic y el Forth. El primero más fácil y simple pero lento su interpretado y el segundo de difícil escritura pero muy apropiado para control industrial y robótica. Los compiladores son programas que se encargan de traducir el programa de trabajo escrito en cualquier lenguaje a código de máquina, para luego grabarlo en la memoria del microcontrolador. Los más populares son el C y el Basic. Proyectos con microcontroladores Realmente se fabrica un integrado propio, hecho a medida, donde se verán reflejadas todas nuestras ideas y conceptos. En este proceso se deben seguir los siguientes pasos: 12- Planear el comportamiento del circuito, pensando en los elementos que es necesario controlar. Diseñar el circuito. Tener en cuenta características eléctricas (capacidades, corrientes por puerto, velocidades, etc.) 3- Hacer el prototipo en protoboard o circuito impreso universal. 4- Elaborar un diagrama de flujo del programa. 5- Escribir el programa (tener siempre presente el circuito eléctrico). 6- Compilar el programa. 7- Usar un simulador para verificar su buen funcionamiento. 8- Pasar el programa al microcontrolador. 9- Montar el microcontrolador y probar todo el proyecto. 10- Si fuera necesario, repetir los últimos pasos, hasta obtener el funcionamiento buscado. 11- Superando todas las etapas anteriores, armar el impreso final y, si desea hacer varios en serie, usar microcontroladores tipo OTP (One Time Programing). Herramientas de desarrollo Además del lenguaje de programación y su compilador o intérprete, se precisan otras herramientas para depurar y poner a punto los diseños basados en ? C. Grabadores o programadores Editado el programa y convertido a código de máquina, hay que grabarlo en la memoria de instrucciones del microcontrolador. Cuando hay que grabar enormes cantidades de chips es preferible encargarle la operación al fabricante y utilizar sistemas con memoria ROM con máscara. Cuando es el usuario quien desea grabar los programas ha de adquirir microcontroladores con memoria no volátil tipo OTP, EPROM o EEPROM. Simuladores Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 9 de 13 Son programas soportados generalmente desde una PC, capaces de simular la ejecución de programas confeccionados para un modelo de microcontrolador. Visualizan en el monitor de la PC el estado actual de todos los recursos y admiten la ejecución paso a paso, los puntos de parada, la modificación de los contenidos de los registros, sin necesidad de montar el físico. Los simuladores no soportan interrupciones externas en modo real y funcionan mas lentamente que los microcontroladores físicos. Emuladores en circuito Se trata de un instrumento que se coloca entre una PC y el zócalo de la terjeta de circuito impreso donde se alojará el microcontrolador definitivo. El programa es ejecutado desde la PC, pero para la tarjeta de aplicación es como si lo hiciera el propio microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información al igual que los simuladores por software. Mercado mundial en los PICs Análisis comparativo de prestaciones La arquitectura Harvard y la técnica de la segmentación son los principales recursos en los que se apoya el elevado rendimiento que caracteriza estos dispositivos programables, mejorando dos características esenciales: 1. Velocidad de ejecución. 2. Eficiencia en la compactación del código. Se proporciona una comparación de los modelos PIC16C5X A 20 MHz, frente a los de otros importantes fabricantes. En este análisis hay que considerar que las pruebas las ha realizado Microchip seleccionando los programas evaluativos y los modelos de microcontroladores de los restantes competidores, que son: SGS-Thomson ST62 a 8 MHz Motorola MC68HC05 a 4,2 MHz lntel 8048/8049 a 11 MHz Zilog Z86Cxx a 12 MHz National COP800 a 20 MHz Para ser imparciales hay que indicar que estos y otros fabricantes disponen de versiones de microcontroladores, como la familia MCS-51 y MCS-96 de lntel y la M68HCll de Motorola, que luchan por conseguir una parte del mercado mundial y que no se han incluido en este análisis. Además, existen parámetros muy importantes, como la inmunidad al ruido, que no se han considerado. El estudio se ha realizado tomando como base un conjunto de programas de prueba ("benchmark") y midiendo el tiempo promedio que tardan en ser ejecutados por los diversos microcontroladores comparados, Versión 1.4 Javier Rambaldo Hoja 10 de 13 Microprocesadores I - Unidad 1 así como el espacio de código que ocupan en la memoria de instrucciones. Los programas seleccionadas para la prueba son muy sencillos pero muy representativos de las acciones típicas que llevan a cabo las aplicaciones que utilizan microcontroladores, son los siguientes: ¤ Empaquetamiento de dos dígitos BCD. ¤ Control de un bucle que decrementa un contador hasta cero. ¤ Transmisión síncrona por desplazamiento en serie de 8 bits, ¤ Temporizador software de 10 ms. ¤ Exploración de un bit y salto si vale 1. Programa MCU PARAM EMPAQUETADO BUCLE BCD CONTROL A) B) A) B) PRUEBA TRANSMISIÓN TEMPORIZACI VALORES BIT Y SALTO SINCRONA ÓN SINCRONA FINALES A) A) A) TAMA- DE B) B) B) ÑO RELATIVO ETRO VEL. REL. COP800 20MHZ 4 5 2 6 2 4 16 105 8 - 1.29 0,108 ST62 10 10 45,2 10,05 2 3 9,75 2,86 3 3 8,12 2,38 19 20 390 126 10 11 - 2.10 2,24 1,045 0,136 4 2,33 3 1,83 3 2,38 21 68 9 - 1,51 0,212 4 5,45 2 2,73 5 6,82 14 124 9 - 1,58 0,112 2 0,4 2 0,5 2 0,5 11 14,8 8 - 1 1 8MHZ MC68HC05 4,2MHZ Z86CXX 12MHZ 8048/8049 11MHZ PIC16C5X Resultados obtenidos con los diversos microcontroladores. A) indica el tamaño del código en palabra y B) el tiempo de ejecución en ? s En lo que se refiere al número de palabras en la memoria de instrucciones que emplea cada microcontrolador en contener cada programa de prueba, hay que precisar que la longitud de las palabras que contienen código en los PICI6C5X es de 12 bits por tener una memoria de instrucciones independiente. En los demás modelos la anchura de las posiciones de memoria es de 8 bits. La diferencia más notable de los PIC en cuanto al tamaño de código se consigue con el MC8HCC05, que necesita 2,24 veces más espacio. En cuanto a la velocidad de ejecución, el más desfavorecido es el ST62, que resulta unas 20 veces más lento que los PIC, aunque aquél posee una inmunidad a los ruidos mucho más elevada que le favorece en algunas aplicaciones. Algunos Fabricantes de Microcontroladores: INTEL MOTOROLA HITACHI PHILIPS S6S THOMSON MICROCHIP NATIONAL ZILOG TEXAS TOSHIBA 8048, 8051, 80C196, 80186,80188, 80386EX 6805, 68HC11, 68HCXX, 68705XX, 683XX HD64180 CLONES DEL 8051 ST-62XX PICs COP400, COP800 Z8, Z86XX TMS370 68HC11 Se considera a Intel como el padre de los microcontroladores. Este fabricante siempre ha ido delante de los demás presentando sus nuevos productos. El primer microcontrolador de 8 bits se considera al 8048 y lo fabricó Intel en la década de los 70. La siguiente generación, más evolucionada, fue la 8051 a la que ha seguido la de 16 bits: 80C196, 80188, 80186 y 80386EX que es la versión basada en 80386, la cual permite trabajar con herramientas clásicas desarrolladas para el entorno del PC. Otra de las principales empresas del mundo de los dispositivos programables es Motorola, que dispone del potente microcontrolador 68HC11 de 8 bits para datos y 16 para direcciones. Este se caracteriza por poder trabajar como arquitectura abierta o cerrada. Trabajando como arquitectura abierta, hereda todas las posibilidades de direccionamiento que posee su ancestro: el 6809. Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 11 de 13 Los microcontroladores PIC de la empresa Microchip han sido conocidos durante los últimos 20 años. Su popularidad avanza día a día siendo incluídos en la mayoría de los proyectos debido a su bajo costo, reducido consumo, fácil programación y abundancia de herramientas de soporte. También Zilog ha irrumpido con fuerza en el mercado de los microcontroladores, y ha lanzado algunos modelos con memoria OTP de la familia Z86xx, muy completos y fáciles de manejar. Otras empresas como ST-Micro, NEC, Mitsubishi, Philips, Siemens, SGS-Thomson, Hitachi, Texas, Toshiba, National Semiconductor, etc abarcan pequeñas partes del mercado. Todos los microcontroladores que se fabrican en el presente son buenos y el mejor no siempre es el mismo. Cambian el modelo y el fabricante según la aplicación y las circunstancias que lo envuelven. Un buen diseñador profesional debe conocer todo el abanico de la oferta para elegir en cada situación el microcontrolador que le conviene. Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 12 de 13 Apéndice A Referencia: 16F84 Data Sheet (5.0 – Pag. 21) Entradas y Salidas en el 16F84 Este PIC tiene 2 puertos, PORTA y PORTB. Algunas patas de los puertos están multiplexadas con funciones alternas para otras características sobre el dispositivo. Registros PORTA y TRISA El PORTA es de 5 bits, RA4 tiene una entrada schmitt trigger y una salida “open drain”(colector abierto). Todos los demás pines del puerto RA tienen entradas TTL y drivers de salida CMOS. Todos los pines tienen bits de dirección de datos (data direction), los registros TRIS, los cuales pueden configurarse cada pin como entrada o salida. Un 1 en algún bit del registro TRISA, pone al pin del bit correspondiente en alta impedancia. Un 0 en algún bit del registro TRISA, pone el contenido del latch de salida en el pin seleccionado. Al leer el registro PORTA se tendrá el estado del pin. Si ese pin está como salida, el valor será el que tendrá el latch en ese momento. El pin RA4 está multiplexado con la entrada de clock TMR0. Ejemplo: Inicializando el PORTA CLRF PORTA BSF STATUS,RP0 MOVLW0x0f MOVWFTRISA ; ; ; ; ; selección del banco 1 valor usado para inicializar el DDR <RA3:0> como entrada y RA4 como salida (TRISA <7:5> siempre se leen como ceros.) Registros PORTB y TRISB El PORTB es de 8 bits y es bidireccional. El registro de dirección de datos que le corresponde es el TRISB. Un 1 en algún registro TRISB, pone al pin correspondiente en alta impedancia. Un 0 en algún bit del registro TRISB, pone al contenido del latch de salida en el pin seleccionado. Este puerto tiene todos los pines en pull-up interno controlados por un simple bit (borrando el bit 7 del registro OPTION). El pull-up se desconecta automáticamente cuando el pin del puerto se configura como salida. Cuatro de los bits del PORTB (RB7:RB4) tienen la característica de interrumpir al cambiar de estado. Solo los pines configurados como entrada tienen esta característica. Los valores de los pines son comparados con los valores anteriores, para generar así una interrupción si ocurre un cambio. Esta interrupción puede despertar al procesador de un estado de bajo consumo (SLEEP). El usuario, en la rutina de servicio de interrupción, puede borrar la interrupción de la siguiente forma: a) Leyendo o escribiendo el PORTB. b) Borrando el bit RBIF. Dicha condición continuará seteando el bit RBIF. Esta característica de interrupción, junto con la posibilidad de configuración del puerto como pull-up, permite una interfase sencilla para leer un teclado, haciendo posible que se despierte el procesador al presionar una tecla (ver AN552). Versión 1.4 Javier Rambaldo Microprocesadores I - Unidad 1 Hoja 13 de 13 Ejercicios y Problemas: 1- Nombre las diferencias entre controlador y microcontrolador. 2- ¿Qué característica de la arquitectura Harvard confiere el procesador que la incorpora más velocidad en la ejecución de instrucciones que al que incorpora la arquitectura Von Neuman? 3- ¿Cuál es el primer microcontrolador que se considera se comercializó en el mundo y quién fue su fabricante? 4- Los microcontrolador PIC de Microchip,?a qué arquitectura responden: CISC, RISC o SISC? 5- La mayor parte de los microcontroladores de 8 bits que se venden en el mundo ¿A qué aplicación se destinan? 6- ¿Qué misión tiene el Watchdog o Perro Guardián en un microcontrolador? 7- ¿Qué utilidad tiene el SLEEP o estado de bajo consumo? 8- Indicar las ventajas de la memoria EEPROM. 9- ¿Qué utilidad tiene la inclusión en los microcontroladores de una memoria de programa OTP? 10- En un microcontrolador: la memoria de datos (RMA) es mucho más grande que la memoria de programa (ROM). ¿O es al revés? 11- Que entiende por arquitectura abierta y por arquitectura cerrada. 12- ¿Cuáles son los recursos comunes a todos los microcontroladores? 13- ¿Qué entiende por recursos especiales? Nombre alguno de ellos. Versión 1.4 Javier Rambaldo