• Pasado, presente y futuro de los microcontroladores. • Concepto. Recibe el nombre de controlador, el dispositivo que se emplea para el gobierno de uno o varios procesos. Aunque el concepto de controlador ha permanecido invariable a través de los tiempos, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta; posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la década de los 70, los fabricantes de circuitos integrados iniciaron la difusión de un nuevo circuito para control, medición e instrumentación al que llamaron microcomputador en un sólo chip o de manera más exacta microcontrolador. Un microcontrolador es un circuito integrado programable que contiene todos los componentes de un computador aunque de limitadas prestaciones. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamaño, suele ir incorporado en el propio dispositivo al que gobierna. Esta última característica es la que le confiere la denominación de controlador incrustado (Embedded controller). El microcontrolador es un dispositivo dedicado. En su memoria sólo reside un programa destinado a gobernar una aplicación determinada; sus líneas de entrada/salida soportan el conexionado de sensores y actuadores del dispositivo a controlar y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada. • El pasado y el presente de los microcontroladores. El microcontrolador es uno de los logros más sobresalientes del siglo XX. Hace un cuarto de siglo tal afirmación habría parecido absurda. Pero cada año, el microcontrolador se acerca más al centro de nuestras vidas, forjándose un sitio en el núcleo de una máquina tras otra. Su presencia ha comenzado a cambiar la forma en que percibimos el mundo e incluso a nosotros mismos. Cada vez se hace más difícil pasar por alto el microcontrolador como otro simple producto en una larga línea de innovaciones tecnológicas. Ninguna otra invención en la historia se ha diseminado tan aprisa por todo el mundo o ha tocado tan profundamente tantos aspectos de la existencia humana. Hoy existen casi 15,000 millones de microchips de alguna clase en uso. De cara a esa realidad, ¿Quién puede dudar que el microcontrolador no sólo está transformando los productos que usamos, sino también nuestra forma de vivir y, por último, la forma en que percibimos la realidad? Desde luego, éste es el milagro. Decenas de miles de microcontroladores se integran todos los días en las plantas de manufactura más avanzadas jamás conocidas, donde un simple gránulo de polvo puede significar el desastre, donde los procesadores ocurren en ambientes más limpios que ningún otro sitio en la tierra. Incluso el agua que utiliza para enjuagar las superficies de los chips terminados es más pura que la que se utiliza en la cirugía a corazón abierto. Y no obstante, pese a un proceso de manufactura extraordinariamente refinado, los microchips se producen a razón de más de 1.000 millones de unidades por año. Para poner esta complejidad en perspectiva, imagine que dentro de cada microcontrolador diminuto existe una estructura tan compleja como una ciudad de tamaño mediano, incluidas todas sus líneas de energía eléctrica, líneas telefónicas, líneas de drenaje, edificios, calles y casas. Ahora imagine que en esa misma ciudad, millones de personas se desplazan a la velocidad de la luz y 1 con la sincronización perfecta en una danza de coreografía muy complicada. Y eso es tan sólo un chip. En la siguiente fotografía se puede observar el diminuto tamaño de un microcontrolador comparado con una aguja: De todas las estadísticas asombrosas que se utilizan para describir el mundo del microcontrolador, ninguna es más extraordinaria que ésta: el número total de transistores que integran todos los microchips que se producirán en el mundo este año es equivalente al número de gotas de lluvia que caerán en California durante ese mismo periodo. Pero el microcontrolador ya ha eclipsado hasta a la Revolución Industrial. Evolucionando a mayor velocidad que ningún otro invento en la historia, la capacidad del microcontrolador ha aumentado 10.000 veces en los últimos 25 años. El mayor atributo del microcontrolador es que puede integrar inteligencia casi a cualquier artefacto. Se le puede entrenar para adaptarse a su entorno, responder a condiciones cambiantes y volverse más eficiente y que responda a las necesidades únicas de sus usuarios. • El futuro de los microcontroladores. Lo que es notable, y quizá un poco atemorizante, es que por todos los indicios, estamos tan sólo a la mitad de la historia del microcontrolador. No es muy aventurado sugerir que la humanidad tardará otro siglo en comprender todas las implicaciones de esta revolución. Por lo tanto, todos los milagros de que somos testigos hoy como resultado del microcontrolador, podrían ser una pequeña fracción de todas las maravillas que obtendremos de este dispositivo en este nuevo siglo. El número de productos que funcionan en base a uno o varios microcontroladores aumenta de forma exponencial. No es aventurado pronosticar que en el siglo XXI habrá pocos elementos que carezcan de microcontrolador. • Microcontroladores programables. 2 Un microcontrolador contiene toda la estructura (arquitectura) de un sencillo pero completo computador contenidos en el corazón (chip) de un circuito integrado. Los resultados de tipo práctico, que pueden lograrse a partir de éstos elementos, son sorprendentes. Se trata de 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 coste. Los componentes de los que dispone normalmente un microcontrolador son: • Procesador o UCP (Unidad central de proceso). • Memoria RAM para contener los datos. • Memoria para el programa tipo ROM/PROM/EPROM. • Líneas de E/S para comunicarse con el exterior. • Diversos módulos para el control de periféricos (Temporizadores, puertas serie y paralelo, CAD, etc.) • Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. Fig. 2.1. Estructura típica de un microcontrolador. Según el modelo de microcontrolador que se trate, el tamaño y el tipo de memoria pueden diferir, así como el número de líneas de E/S y los módulos de control de periféricos. La diversificación de modelos, permite seleccionar el más adecuado según la aplicación de que se trate. Una estructura interna fija supone una limitación, que se convierte en una ventaja en el caso de que en un simple circuito integrado residan todos los componentes que necesita el controlador. La única limitación que tienen las aplicaciones de los microcontroladores actuales está en la imaginación del diseñador. Los campos más destacados en los que se emplean microcontroladores son los siguientes: • Automatización industrial. • Medida y control de procesos. • Enseñanza e investigación. • 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 de la automoción. • Electromedicina. 3 • Robótica. • Sistemas de navegación. • Sistemas de seguridad y alarma. • Domótica. • Termorregulación. La industria de la informática acapara gran parte de los microcontroladores que se fabrican. Casi todos los periféricos de un ordenador, desde el ratón hasta la impresora o el teclado, son regulados por el programa de un microcontrolador. Los electrodomésticos de gama blanca (lavadoras, hornos, lavavajillas, etc.) y de línea marrón (televisores, vídeos, aparatos musicales, etc.) incorporan numerosos microcontroladores. Igualmente los sistemas de supervisión, vigilancia y alarma en los edificios utilizan estos chips para optimizar el rendimiento de ascensores, calefacción, aire acondicionado, alarmas de incendio y robo, etc. Las comunicaciones y sus sistemas de transferencia de información utilizan profusamente estos pequeños computadores, incorporándolos en los grandes automatismos y en los modernos teléfonos. La instrumentación y la electromedicina son dos campos idóneos para la implantación de estos circuitos integrados. Una importante industria consumidora de microcontroladores es la de automoción, que los aplica en el control de aspectos tan populares como la climatización o los frenos ABS. A continuación se muestra un gráfico de la distribución de la producción mundial de microcontroladores en las diversas áreas de aplicación: Fig. 2.2. Distribución por sectores de aplicación. Los productos que para su regulación incorporan un microcontrolador, disponen de las siguiente ventajas: • Aumento de prestaciones. • Aumento de la fiabilidad. • Reducción del tamaño en el producto acabado. • Menor consumo de energía. • Mayor flexibilidad. • Reducción del precio del producto acabado. • Clasificación de los microcontroladores. 4 Teniendo en cuenta que existen más de 50 fabricantes de microcontroladores en el mundo, la clasificación de los microcontroladores parece realmente difícil, ya que puede hacerse de infinidad de formas, atendiendo a multitud de criterios. • Tamaño de los datos. Según el tamaño de los datos que procesa el microcontrolador se puede distinguir entre: • Microcontroladores de 4 bits. • Microcontroladores de 8 bits. • Microcontroladores de 16 bits. • Microcontroladores de 32 bits. • Microcontroladores de 64 bits. El más representativo de esta clasificación es el microcontrolador de 8 bits porque resulta el más flexible y eficaz para la mayoría de los diseños típicos. Aunque en los últimos años, los microcontroladores de 16 bits están aumentado significativamente su cuota de mercado. Fig 2.3. Distribución del mercado mundial en el año 1999. • Arquitectura básica. Según la arquitectura interna de la memoria del microcontrolador se puede distinguir entre: • Microcontroladores con arquitectura Von Neumann. • Microcontroladores con arquitectura Harvard. Inicialmente, todos los microcontroladores adoptaron la arquitectura clásica de Von Neumann. Actualmente, muchos microcontroladores utilizan esta arquitectura, pero poco a poco se impone la arquitectura Harvard. La arquitectura de Von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede por un sistema de buses único (direcciones, datos y control). Esta arquitectura presenta algunos problemas cuando se demanda rapidez. La arquitectura Harvard dispone de dos memorias independientes; una, que contiene sólo instrucciones y otra, sólo datos. Ambas, disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones 5 de acceso (lectura o escritura) simultáneamente en ambas memorias. Esta estructura no modifica nada desde el punto de vista del usuario y la velocidad de ejecución de los programas es impresionante. • Arquitectura del procesador o UCP. Según la filosofía de la arquitectura del procesador se puede distinguir entre: • Microcontroladores CISC. • Microcontroladores RISC. • Microcontroladores SISC. Un microcontrolador basado en la filosofía CISC (Computadores de Juego de Instrucciones Complejo) dispone de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúa como macros. Tanto la industria de los computadores comerciales como los de los microcontroladores están decantándose hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples y, generalmente, se ejecuta en un solo ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. En los microcontroladores 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 (Computadores de Juego de Instrucciones Específico). • Arquitectura cerrada o abierta. Entre los fabricantes de microcontroladores hay dos tendencias para resolver las demandas de los usuarios. Los microcontroladores con arquitectura cerrada poseen una determinada UCP, cierta cantidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un número de E/S y un conjunto de recursos auxiliares muy concreto. El modelo no admite variaciones ni ampliaciones. La aplicación a la que se destina debe encontrar en su estructura todo lo que precisa, y en caso contrario, hay que desecharlo. Los microcontroladores con arquitectura abierta se caracterizan porque, además de poseer una estructura interna determinada, emplean 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. Esta solución se asemeja a la que emplean los clásicos microprocesadores. La línea que separa unos de otros es muy delgada, pero el concepto de microcontrolador se acerca posiblemente más a la arquitectura cerrada. • Tipo de memoria de programa. En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, que se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria debe ser volátil, tipo RAM, y se destina a guardar las variables y los datos. 6 Existen principalmente cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado: • Memoria ROM con máscara. • Memoria OTP. • Memoria EPROM. • Memoria EEPROM. • Memoria Flash. La memoria ROM con máscara es no volátil y de sólo lectura, cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. La memoria OTP (One Time Programmable) es no volátil, de sólo lectura y programable una sola vez por el usuario. La grabación se realiza mediante un sencillo grabador controlado por un programa desde un 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 o serie muy pequeñas. Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read Only Memory), pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de la memoria OTP. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a le EPROM a rayos ultravioleta durante varios minutos. La memoria EEPROM (Electrical EPROM) es de sólo lectura, programable y borrable eléctricamente. Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC, y puede hacerse con el microcontrolador instalado en el circuito. Es muy cómoda y rápida la operación de grabado y la de borrado. La memoria Flash es no volátil, de bajo consumo y puede grabarse y borrarse eléctricamente. Funciona como una ROM y una RAM pero consume menos energía y es más pequeña. La memoria Flash también puede programarse en circuito, además, es más rápida, tiene mayor densidad y tolera más ciclos de escritura/borrado que la EEPROM. • Prestaciones y recursos especiales. Además de las clasificaciones anteriores, se podrían hacer otras dos clasificaciones más. Atendiendo a las prestaciones y atendiendo a los recursos especiales que pueden tener los microcontroladores. 7 Respecto a las prestaciones cabe destacar: • Precio. • Velocidad de ejecución de código. • Eficiencia en la compactación de código. • Inmunidad al ruido. Indudablemente, el precio es uno de los factores decisivos a la hora de emplear uno u otro microcontrolador. La velocidad de ejecución del código depende principalmente de la frecuencia de funcionamiento del microcontrolador, pero también influyen otras características como la arquitectura o el tipo de memoria empleada. En lo que se refiere al número de palabras en la memoria que emplea cada microcontrolador en contener un programa, esta depende sobre todo de la arquitectura básica y de la longitud de la palabra de datos. La inmunidad al ruido, así como otras características especiales como rangos amplios de temperaturas de funcionamiento, destacan sobre todo en microcontroladores destinados al uso militar. Los recursos especiales más comunes que pueden poseer los microcontroladores son los siguientes: • Temporizador y/o contador. • Perro guardián o Watchdog. • Protección ante el fallo de la alimentación. • Estado de reposo o de bajo consumo. • Conversor analógico−digital (CAD). • Conversor digital−analógico (CDA). • Comparador analógico. • Modulador de anchura de impulsos o PWM. • Puertas de entrada y salidas digitales. • Puertas de comunicación (USART, USB, SCI, etc.) Los temporizadores se emplean para controlar periodos de tiempo, actuando como temporizador, o para llevar la cuenta de acontecimientos que suceden en el exterior, actuando como contador. El perro guardián consiste en un temporizador que cuando se desborda provoca un reset automáticamente en el microcontrolador, para así evitar que el sistema se quede colgado. Se debe diseñar el programa de tan modo que refresque o inicialice el perro guardián antes de que provoque el reset. La protección ante el fallo de la alimentación consiste en un circuito que provoca un reset al microcontrolador cuando el voltaje de alimentación sea inferior a un voltaje mínimo. Mientras el voltaje de alimentación sea inferior al mínimo, el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Son abundantes las situaciones reales en las que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, factor clave en los aparatos portátiles, los microcontrolador disponen de una instrucción especial que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. Los microcontrolador que incorporan un convertidor analógico−digital, pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde los terminales del circuito integrado. 8 El conversor digital−analógico transforma los datos digitales obtenidos del procesamiento del microcontrolador, en su correspondiente señal analógica, que saca al exterior por unos terminales de la cápsula. Existen muchos efectores que trabajan con señales analógicas. Algunos modelos de microcontrolador disponen internamente de un amplificador operacional que actúa como comparador analógico entre una señal de referencia fija y otra variable que se aplica por una de los terminales de la cápsula. La salida de comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. El modulador de anchura de pulsos o PWM, es un circuito que proporciona en su salida impulsos de anchura variable, que se ofrecen al exterior a través de los terminales del encapsulado. Todos los microcontrolador destinan algunos de sus terminales a soportar líneas de entrada y salida digitales. Por lo general, estas líneas se agrupan de ocho en ocho, formando así lo que se conoce como puertas. Con el objeto de dotar al microcontrolador de la capacidad de comunicarse con otros dispositivos externos, otros buses de microcontrolador o microprocesadores, buses de sistemas o buses de redes y poder adaptarlos con otros elementos y con otras normas y protocolos, algunos microcontrolador disponen de puertas de comunicación. Destacan las conexiones serie UART y USART, las puertas paralelas, o el moderno bus serie USB desarrollado para los PC. • Consideraciones de diseño. La elección del microcontrolador. El primer escollo al que se enfrenta un ingeniero a la hora de materializar una idea usando un microcontrolador, es la elección de una familia de microcontroladores y dentro de esta, un modelo en concreto que se ajuste lo mejor posible a las necesidades del diseño. Todos los microcontroladores que se fabrican hoy en día 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. Es el mercado existen multitud de fabricantes. La elección de un microcontrolador PIC de Microchip frente a otros más conocidos como el 80XX de Intel, el 68XX de Motorola, el ST−62XX de SGS−Thomson o el Z86XX de Zilog, se debe a características como su bajo precio, velocidad, reducido consumo, pequeño tamaño, facilidad de uso, fácil programabilidad o la abundancia de información y de herramientas económicas de soporte. • Características de otros microcontroladores. • Altair. Altair es el nombre genérico de una familia de microcontroladores de propósito general compatibles con la familia 51. Todos ellos son programables directamente desde un equipo PC mediante lenguaje macroensamblador, o bien mediante otros lenguajes disponibles para la familia 51 (Basic, C, etc.). Los microcontroladores Altair disponen de un microprocesador de 8 bits 100% compatible a nivel de código, 256 bytes de memoria interna, 128 registros especiales de función, puertos de entrada/salida de propósito general, 111 instrucciones y posibilidad de direccionar 128 Kbytes. Existen distintos modelos dependiendo de la velocidad de ejecución, del número de E/S o de los periféricos de los que dispongan (DAC, ADC, Watchdog, PWM, etc.). La elección de un modelo u otro dependerá de las necesidades. Como entrenador o sistema de iniciación existen varios modelos, entre los que destacan el Altair 32 9 Básico o bien el Altair 535A completo. Para proyectos avanzados o desarrollos profesionales, el Altair 537 A. • Intel. El 8051 es el primer microcontrolador de la familia introducido por Intel Corporation. La familia 8051 de microcontroladores son controladores de 8 bits capaces de direccionar hasta 64 Kbytes de memoria de programa y una separada memoria de datos de 64 Kbytes. El 8031(la versión sin ROM interna del 8051, siendo esta la única diferencia) tiene 128 bytes de RAM interna (el 8032 tiene RAM interna de 256 bytes y un temporizador adicional). El 8031 tiene dos temporizadores/contadores, un puerto serie, cuatro puertos de entrada/salida paralelas de propósito general (P0, P1, P2 y P3) y una lógica de control de interrupción con cinco fuentes de interrupciones. Al lado de la RAM interna, el 8031 tiene varios registros de funciones especiales (SFR) que son para el control y registros de datos. Los SFR también incluyen el registro acumulador, el registro B, y el registro o palabra de estado de programa (PSW), que contiene los flags de la CPU. La ROM interna del 8051 y el 8052 no pueden ser programados por el usuario. El usuario debe suministrar el programa al fabricante, y el fabricante programa los microcontroladores durante la producción. Debido a costos, la opción de la ROM programado por el fabricante no es económica para producción de pequeñas cantidades. El 8751 y el 8752 son las versiones EPROM del 8051 y el 8052. Estos pueden ser programados por los usuarios. Durante la década pasada muchos fabricantes introdujeron miembros mejorados del microcontrolador 8051. Las mejoras incluyen más memoria, más puertos, convertidores analógico−digital, más temporizadores, más fuentes de interrupción, Watchdog, y subsistemas de comunicación en red. Todos los microcontroladores de la familia usan el mismo conjunto de instrucciones, el MCS−51. Las características mejoradas son programadas y controladas por SFR adicionales. • Siemens. El Siemens SAB80C515 es un miembro mejorado de la familia 8051 de microcontroladores. El 80C515 es de tecnología CMOS que típicamente reduce los requerimientos de energía. Las características que tiene frente al 8051 son más puertos, un versátil convertidor analógico−digital, un segundo temporizador optimizado, un Watchdog, y modos de ahorro de energía sofisticados. El 80C515 es completamente compatible con el 8051. Esto es, usa el mismo conjunto de instrucciones del lenguaje ensamblador MCS−51. Las nuevas facilidades del chip son controladas y monitoreadas a través de SFR adicionales. • Motorola. El 68hc11 de Motorola, es un potente microcontrolador de 8 bits en su bus de datos, 16 bits en su bus de direcciones, con un conjunto de instrucciones que es similar a los más antiguos miembros de la familia 68xx (6801, 6805, 6809). El 68hc11 dispone internamente de memoria de programa EEPROM u OTP, memoria de datos RAM, temporizadores, convertidor A/D de 8 bits y 8 canales, generador PWM, y canales de comunicación síncrona (SPI) y asíncrona (SCI). La corriente típica que maneja es menor que 10 mA. La CPU tiene dos acumuladores de 8 bits (A y B) que pueden ser concatenado para suministrar un acumulador doble de 16 bits (D). Dos registros índices de 16 bits están presentes (X, Y) para suministrar indexamiento 10 para cualquier lugar dentro del mapa de memoria. El tener dos registros índices significa que el 68hc11 es muy bueno para el procesamiento de datos. Aunque es un microcontrolador de 8 bits, el 68hc11 tiene algunas instrucciones de 16 bits. También dispone de un puntero de pila de 16 bits y de instrucciones para la manipulación de la pila. • Análisis comparativo de prestaciones. La arquitectura Harvard y la técnica de segmentación, son los principales recursos en los que se apoya el elevado rendimiento de los microcontroladores PIC, mejorando dos características que son esenciales, como la velocidad de ejecución y la eficiencia en la compactación del código. A continuación se proporciona una comparación entre los modelos PIC16C5X a 20 Mhz, frente a los de otros importantes fabricantes. • National COP800 a 20 Mhz. • SGS−Thomson ST62 a 8 Mhz. • Motorola MC68HC05 a 4,2 Mhz. • Zilog Z86CXX a 12 Mhz. • Intel 8048/8049 a 11 Mhz. Resultados de la comparativa respecto al tamaño promedio que ocupa el código de los programas usados en la prueba para los diversos modelos de microcontroladores usados. Fig. 3.1. Tamaño relativo del código. 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 PIC16C5X es de 12 bits por tener una memoria de instrucciones independiente, frente a 8 bits del resto de modelos. La gráfica muestra esta situación representando en color más claro, el código equivalente en el caso de considerar la memoria de programa de 8 bits en todos los modelos. Resultados de la comparativa respecto a la velocidad promedio con la que ejecutan los diversos microcontroladores el conjunto de programas de prueba. 11 Fig. 3.2. Velocidad promedio de ejecución. Para ser más justos en la comparativa, también se han representado los resultados, en color más claro, teniendo en cuenta la velocidad de reloj, es decir, representando la velocidad equivalente en el caso de que todos los modelos funcionen a 20 Mhz. El estudio se ha realizado tomando como base un conjunto de programas de prueba y midiendo el tiempo promedio que tardan en ser ejecutados por los diversos microcontroladores comparados, así como el espacio de código que ocupan en la memoria de instrucciones. Los programas seleccionados 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 serie. • Temporizador software de 10 ms. • Exploración de un bit y salto si vale 1. • La familia de microcontroladores PIC de Microchip. Los microcontroladores PIC de Microchip Technology Inc. combinan una gran calidad unida a un bajo coste y un excelente rendimiento. Un gran número de estos microcontroladores se usan en una gran cantidad de aplicaciones tan comunes como periféricos del ordenador, datos de entrada automoción de datos, sistemas de seguridad y aplicaciones en el sector de telecomunicaciones. Existen multitud de sistemas de desarrollo amistosos como programadores, emuladores, ensambladores, linkadores, etc. • Características relevantes. Las características más representativas de los PIC son las siguientes: • Arquitectura del procesador tipo Harvard. • Técnica de segmentación o pipe−line en la ejecución de las instrucciones. • El formato de todas las instrucciones tiene la misma longitud. • Procesador RISC (Computador de Juego de Instrucciones Reducido). • Todas las instrucciones son ortogonales. • Arquitectura basada en banco de registros. 12 • Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes. • Herramientas de soporte potentes y económicas. En el modelo de arquitectura Harvard la UCP se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos, permitiendo acceder simultáneamente a las dos memorias. La segmentación permite al procesador realizar al mismo tiempo la ejecución de una instrucción y la búsqueda del código de la siguiente. De esta forma se puede ejecutar cada instrucción en un ciclo (un ciclo de instrucción equivale a cuatro ciclos de reloj). Las instrucciones de salto ocupan dos ciclos de reloj al no conocer la dirección de la siguiente instrucción hasta que no se haya completado la de bifurcación. Todas las instrucciones de los microcontroladores PIC tienen una misma longitud, esta sólo depende de la gama. Esta característica es muy ventajosa en la optimización de la memoria de instrucciones y facilita enormemente la construcción de ensambladores y compiladores. Las instrucciones ortogonales pueden manejar cualquier elemento de la arquitectura como fuente o destino. Además, todos los elementos del sistema (puertas de E/S, temporizadores, posiciones de memoria, etc.) están implementados físicamente como registros. La empresa Microchip y otras que utilizan PIC ponen a disposición de los usuarios numerosas herramientas para desarrollar hardware y software. Son muy abundantes los programadores, simuladores software, emuladores en tiempo real, ensambladores, compiladores C y Basic, intérpretes, etc. • Las gamas de PIC. El fabricante Microchip realiza una clasificación en gamas. Cada gama tiene características en común y que la distinguen de las demás. • La gama baja. La gama baja de los PIC encuadra nueve modelos fundamentales en la actualidad. La memoria de programa puede contener 512, 1 k o 2 k palabras de 12 bits, y ser de tipo ROM, OTP o EPROM. La memoria de datos SRAM puede tener una capacidad comprendida entre 25 y 73 bytes. Sólo disponen de un temporizador (TMR0), un repertorio de 33 instrucciones y un número de terminales para soportar las E/S comprendido entre 12 y 20. Al no disponer de interrupciones, la pila sólo tiene dos niveles de profundidad. El voltaje de alimentación admite un valor muy flexible comprendido entre 2 y 6,25 voltios, lo cual posibilita el funcionamiento mediante pilas corrientes teniendo en cuenta su bajo consumo, menos de 2 mA a 5 V y 4 Mhz. • La gama media. En esta gama sus componentes añaden nuevas prestaciones a las que poseen los de la gama baja, haciéndoles más adecuados en las aplicaciones complejas. El repertorio es de 35 instrucciones y la longitud de las instrucciones es de 14 bits. Admiten interrupciones, poseen comparadores de magnitudes analógicas, convertidores A/D, puertas serie y diversos temporizadores. Algunos modelos disponen de una memoria de instrucciones del tipo OTP y otros de memoria EEPROM. El temporizador TMR1 de que dispone esta gama tiene un circuito oscilador que puede trabajar 13 asíncronamente y que puede incrementarse aunque el microcontrolador se halle en el modo de reposo, posibilitando la implementación de un reloj en tiempo real. Las líneas de E/S de la puerta B presentan unas resistencias de carga pull−up activadas por software. • La gama alta. En la actualidad, esta gama está formada principalmente por tres modelos cuyas características responden a microcontroladores de arquitectura abierta, pudiéndose expansionar hacia el exterior al poder sacar los buses de datos, direcciones y control. Así se pueden configurar sistemas similares a los que utilizan los microprocesadores convencionales, siendo capaces de ampliar su configuración interna, añadiendo nuevos dispositivos de memoria y de E/S externas. Esta facultad obliga a estos componentes a tener un elevado número de terminales comprendido entre 40 y 44. Admiten interrupciones, poseen puerto serie, varios temporizadores y mayores capacidades de memoria, que alcanza los 8 k palabras en la memoria de instrucciones y 454 bytes en la memoria de datos. El formato de las instrucciones es de 16 bits y la pila dispone de 16 niveles de profundidad. El repertorio es de 55 o 58 instrucciones según modelo. La frecuencia máxima de funcionamiento es de 25 Mhz, con un ciclo de instrucción de 160 ns. • Microcontroladores nuevos y especiales. Todos los fabricantes de microcontroladores lanzan continuamente nuevos productos para satisfacer la demanda creciente. Microchip dispone, además de los microcontroladores encuadrados en las tres gamas anteriores, de otros microcontroladores con características distintas: El PIC12C5XX tiene un encapsulado de sólo 8 terminales. Dispone de hasta 1 k palabras de 12 bits de memoria de programa EPROM y hasta 41 bytes de memoria de datos. Funciona a una frecuencia de 4 Mhz, con un ciclo de instrucción de 1 s. El repertorio es de 33 instrucciones y el direccionamiento de datos e instrucciones puede ser directo, indirecto o relativo. El PIC16C92X está especializado en el control de pantallas LCD. Dispone de 4 k palabras de 14 bits de memoria de programa EPROM y 176 bytes de memoria de datos SRAM. Trabaja a 8 Mhz con un ciclo de instrucción de tan solo 500 ns. El repertorio es de 35 instrucciones. Tiene la capacidad de generar interrupciones y admite direccionamiento directo, indirecto o relativo. Además de los recursos típicos, el PIC16C92X también dispone de tres temporizadores, módulo de captura, módulo PWM, puerta serie síncrona (SSP/I2C), convertidor A/D de 8 bits y un módulo programable para el control de un LCD. En la tabla siguiente se exponen a grandes rasgos las características más importantes de las gamas baja, media y alta. Arquitectura Procesador tipo Segmentación Máxima frecuencia Repertorio instrucciones Longitud instrucciones Tipo memoria ROM Gama baja Harvard / Cerrada 8 bit / RISC Sí 20 Mhz (1) 33 12 bits Gama media Harvard / Cerrada 8 bit / RISC Sí 20 Mhz (1) 35 14 bits Gama alta Harvard / Abierta 8 bit / RISC Sí 25 Mhz (1) 55 o 58 16 bits 14 OTP, QTP, SQTP, EPROM Tamaño ROM Memoria datos SRAM Memoria datos EEPROM Niveles de la pila Encapsulado Protección fallo Vdd Modo de reposo Interrupciones externas Vectores de interrupción Fuentes de interrupción Perro guardián Temporizadores Convertidor A/D Módulo captura/comparación/PWM Puerta serie Puerta paralela esclava Multiplicador hardware Rango de tensión de alimentación Precio aproximado OTP, QTP, SQTP, EPROM 512 − 2 k 24 − 73 bytes No 2 18, 20 o 28 pines No Sí No No 0 Sí 1 de 8 bits No OTP, QTP, SQTP, EPROM, EEPROM, Flash 512 − 4 k 31 − 192 bytes 64 bytes (1) 8 18, 28 o 40 pines Sí (1) Sí Sí 1 Hasta 8 Sí De 1 a 3 de 8 bits Sí (1) No Sí (1) Sí (1) No No No Sí (1) Sí (1) No Sí (1) Sí (1) Sí 2 a 6,25 V (1) 2 a 6 V (1) 4,5 a 5,5 V (1) 400 − 2.500 pts 750 − 5.900 pts 1.950 − 5.100 pts 2k−8k 232 − 454 bytes No 16 40 o 44 pines Sí (1) Sí Sí 4 11 Sí 4 de 8/16 bits Sí (1) (1) Según modelo de la gama. Este anexo forma parte del proyecto fin de carrera realizado por (Ingeniería técnica industrial electrónica en la Universidad de Jaén) cuyo título es Adquisición de magnitudes físicas mediante microcontrolador. Granada (España), Julio del 2000. Anexo 2. Microcontroladores. 15