¿Qué son microcontroladores? Es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador y que contiene todos los componentes fundamentales de un ordenador, aunque de limitadas prestaciones y que se suele destinar a gobernar una sola tarea. En su memoria sólo reside un programa que controla en funcionamiento de una tarea determinada, sus líneas de entrada/salida se conectan a los sensores y actuadores del dispositivo a controlar y, debido a su pequeño tamaño, suele ir integrado en el propio dispositivo al que gobierna.
Breve Historia del Microcontrolador El primer microprocesador fue el Intel 4004 de 4 bits, lanzado en 1971, seguido por el Intel 8008 y otros más capaces. Sin embargo, ambos procesadores requieren circuitos adicionales para implementar un sistema de trabajo, elevando el costo del sistema total. El Instituto Smithsoniano dice que los ingenieros de Texas Instruments Gary Boone y Michael Cochran lograron crear el primer microcontrolador, TMS 1000, en 1971; fue comercializado en 1974. Combina memoria ROM, memoria RAM, microprocesador y reloj en un chip y estaba destinada a los sistemas embebidos.2 Debido en parte a la existencia del TMS 1000,3 Intel desarrolló un sistema de ordenador en un chip optimizado para aplicaciones de control, el Intel 8048, que comenzó a comercializarse en 1977.3 Combina memoria RAM y ROM en el mismo chip y puede encontrarse en más de mil millones de teclados de compatible IBM PC, y otras numerosas aplicaciones. El en ese momento presidente de Intel, Luke J. Valenter, declaró que el microcontrolador es uno de los productos más exitosos en la historia de la compañía, y amplió el presupuesto de la división en más del 25%. La mayoría de los microcontroladores en aquel momento tenían dos variantes. Unos tenían una memoria EPROM reprogramable, significativamente más caros que la variante PROM que era sólo una vez programable. Para borrar la EPROM necesita exponer a la luz ultravioleta la tapa de cuarzo transparente. Los chips con todo opaco representaban un coste menor.
Estructura interna de un Microcontrolador La estructura o arquitectura interna de un microcontrolador hacer referencia los bloques funcionales internos que conforman el microcontrolador y la forma en que están conectados, por ejemplo la memoria FLASH(de programa), la
memoria RAM (de datos), los puertos, la lógica de control que permite que todo el conjunto funcione, etc. Memoria de programa (FLASH) Es una memoria de 8K de longitud con datos de 14 bits en cada posición. Como es del tipo FLASH se puede programar y borrar eléctricamente, lo que facilita el desarrollo de los programas y la experimentación. En ella se graba o almacena el programa o códigos que el microcontrolador debe ejecutar. En la figura 3.8 se muestra el mapa de la memoria de programa. La memoria de programa está dividida en cuatro bancos o páginas de 2K cada uno. El primero va de la posición de memoria 0000h a la 07FFh, el segundo va de la 0800h a la 0FFFh, el tercero de la 1000h a la 17FFh y el cuarto de la 1800h a la 1FFFh. Vector de reset Cuando ocurre un reset al microcontrolador, el contador de programa se pone en ceros (0000H). Por esta razón, en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo.
Vector de interrupción Cuando el microcontrolador recibe una señal de interrupción, el contador de programa apunta a la dirección 04H de la memoria de programa, por eso, allí se debe escribir toda la programación necesaria para atender dicha interrupción. Pila (Stack) Estos registros no forman parte de ningún banco de memoria y no permiten el acceso por parte del usuario. Se usan para guardar el valor del contador de programa cuando se hace un llamado a una subrutina o cuando se atiende una interrupción; luego, cuando el micro regresa a seguir ejecutando su tarea normal, el contador de programa recupera su valor leyéndolo nuevamente desde la pila. El PIC16F877 tiene una pila de 8 niveles, esto significa que se pueden anidar 8 llamados a subrutina sin tener problemas.
Diferencia entre microprocesador y microcontrolador 1) Tecnología involucrada en microprocesador y microcontrolador El microprocesador es un chip de silicio multipropósito programable que es el componente más crítico dentro de un sistema informático. Es como un corazón del sistema informático que consta de ALU (unidad lógica aritmética), unidad de control, decodificadores de instrucciones y matriz de registro. El microcontrolador, por otro lado, es el corazón del sistema integrado, que es un subproducto de la tecnología del microprocesador. 2) Arquitectura de microprocesador y microcontrolador El microprocesador es solo un circuito integrado sin RAM, ROM o pines de entrada / salida. Básicamente se refiere a la unidad de procesamiento central del sistema informático que capta, interpreta y ejecuta los comandos que se le pasan. Incorpora las funciones de una CPU en un solo circuito integrado. Los microcontroladores, por otro lado, son dispositivos más potentes que contienen los circuitos del microprocesador y tienen RAM, IO y procesador, todo en un solo chip. 3) Trabajo de microprocesador y microcontrolador El microprocesador requiere un bus externo para interactuar con periféricos como RAM, ROM, IO analógico y digital y puertos serie. La ALU realiza todas las operaciones aritméticas y lógicas provenientes de la memoria o de los dispositivos de entrada y ejecuta los resultados en los dispositivos de salida. El microcontrolador es un dispositivo pequeño con todos los periféricos integrados en un solo chip y está diseñado para realizar tareas específicas, como la ejecución de programas para controlar otros dispositivos. 4) Memoria de datos en microprocesador y microcontrolador La memoria de datos es una parte del PIC que contiene Registros de funciones especiales y Registros de fines generales. Almacena datos temporalmente y mantiene resultados intermedios. Los microprocesadores ejecutan varias instrucciones que se almacenan en la memoria y envían los resultados a la salida. Los microcontroladores contienen una o más CPU junto con la RAM y otros periféricos. La CPU obtiene las instrucciones de la memoria y ejecuta los resultados. 5) Almacenamiento en microprocesador y microcontrolador Los microprocesadores se basan en la arquitectura de von Neumann (también conocida como modelo de von Neumann y arquitectura de Princeton) en la que
la unidad de control obtiene las instrucciones asignando señales de control al hardware y decodificando. La idea es almacenar las instrucciones en la memoria junto con los datos sobre los cuales operan las instrucciones. Los microcontroladores, por otro lado, se basan en la arquitectura de Harvard donde las instrucciones y los datos del programa se almacenan por separado. 6) Aplicaciones de microprocesador y microcontrolador Los microprocesadores son un dispositivo de almacenamiento masivo con un solo chip y están integrados en varias aplicaciones, como control de especificación, control del semáforo, control de temperatura, instrumentos de prueba, sistema de monitoreo en tiempo real y mucho más. Los microcontroladores se utilizan principalmente en circuitos eléctricos y electrónicos y en dispositivos controlados automáticamente, como instrumentos médicos de alta gama, sistemas de control de motores de automóviles, cargadores solares, máquinas de juegos, control de semáforos, dispositivos de control industrial, etc.
Principales fabricantes de microcontroladores En este apartado les daremos a conocer algunas empresas dedicadas al rubro de la fabricación de los microprocesadores y lo que a nosotros nos importa los microcontroladores, junto con conocer su rubro se dará a conocer su mayor aporte en los comienzos de la carrera de los microcontroladores. Microchip: Microchip Technology Inc. es una empresa fabricante de microcontroladores, memorias y semiconductores analógicos, situada en Chandler, Arizona, EE. UU. Su Producto más pupular son los microcontroladores PIC de 8 bits. Atmel Corporation: Atmel es una compañía de semiconductores, fundada en 1984. Su línea de productos incluye microcontroladores (incluyendo derivados del 8051, el AT91SAM basados en ARM, y sus arquitecturas propias AVR y AVR32), dispositivos de radiofrecuencia, memorias EEPROM y Flash, ASICs, WiMAX, y muchas otras. También tiene capacidad de ofrecer soluciones del tipo system on chip (SoC). Freescale semiconductor: Freescale Semiconductor es una compañía global líder en la industria de semiconductores enfocada proveer procesamiento embebido y productos de conectividad. Actualmente, se enfoca al suministro de productos para la industria automotriz,
de redes, comunicaciones inalámbricas, control industrial e industrias de consumo electrónico. Con se oferta de procesadores embebidos y de productos complementarios, proporciona una solución completa de semiconductores y software. Texas Instruments: Texas Instruments o TI, es una empresa norteamericana que desarrolla y comercializa semiconductores y tecnología para sistemas de cómputo. Igualmente, es el mayor productor de procesadores digitales de señal y semiconductores analógicos.TI es el tercer mayor fabricante de semiconductores del mundo tras Intel y Samsung y es el mayor suministrador de circuitos integrados para teléfonos móviles. Otras áreas de actividad incluyen circuitos integrados para módem de banda ancha, periféricos para ordenadores, dispositivos digitales de consumo y RFID. ZiLOG Inc: ZiLOG Inc, es un fabricante de microprocesadores y microcontroladores. Su producto más conocido es el Zilog Z80 de 8 bits. Motorola: Motorola Empresa dedicada a fabricar microprocesadores y microcontroladores entre otros productos, su mayor logro en la industria fue poner al Mercado un microprocesador de 8 bits, llamado 6800. Motorola fue la primera compañía en construir otros periféricos como el 6820 y el 6850. Intel: Intel empresa dedicada a la fabricación de microcontroladores y microprocesadores, aunque no trabajaba sola obtuvo un logro en abril de 1974 pone en el Mercado el microprocesador bajo el nombre 8080 con capacidad de direccionar 64kb de memoria, con 75 instrucciones y un precio de inicio de $360 dólares.
Aplicaciones en la industria. Los microcontroladores se encuentran por todas partes: · Sistemas de comunicación: en grandes automatismos como centrales y en teléfonos fijos, móviles, fax, etc. · Electrodomésticos: lavadoras, hornos, frigoríficos, lavavajillas, batidoras, televisores, vídeos, reproductores DVD, equipos de música, mandos a distancia, consolas, etc.
· Industria informática: Se encuentran en casi todos los periféricos; ratones, teclados, impresoras, escáner, etc. ·
Automoción: climatización, seguridad, ABS, etc.
·
Industria: Autómatas, control de procesos, etc.
· Sistemas de supervisión, vigilancia y alarma: ascensores, calefacción, aire acondicionado, alarmas de incendio, robo, etc. · Otros: Instrumentación, electro medicina, tarjetas (smartcard), sistemas de navegación, etc.
¿Qué es un lenguaje de programación? En informática, se conoce como lenguaje de programación a un programa destinado a la construcción de otros programas informáticos. Su nombre se debe a que comprende un lenguaje formal que está diseñado para organizar algoritmos y procesos lógicos que serán luego llevados a cabo por un ordenador o sistema informático, permitiendo controlar así su comportamiento físico, lógico y su comunicación con el usuario humano. Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas, expresadas en forma de instrucciones y relaciones lógicas, mediante las cuales se construye el código fuente de una aplicación o pieza de software determinado. Así, puede llamarse también lenguaje de programación al resultado final de estos procesos creativos.
¿Qué es un compilador? Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.