Sistema embebido
Imagen del interior de un módem/enrutador módem/enrutador ADSL ADSL.. Un ejemplo de un sistema embebido. Las partes marcadas incluyen un microprocesador (4), RAM (6), y una memoria flash (7).
Un sistema embebido o empotrado es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas dedicadas
1 2
frecuentemente en un sistema de computación en tiempo real. real . Al
contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas. En un sistema embebido la mayoría de los componentes se encuentran incluidos en la placa base (la tarjeta de vídeo, vídeo, audio, módem módem,, etc.) y muchas veces los dispositivos resultantes no tienen el aspecto de lo que se suele asociar a una computadora. Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un taximetro, un sistema de control de acceso, la electrónica que controla una máquina expendedora o el sistema de control de una fotocopiadora entre otras múltiples aplicaciones. Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o también, utilizando los compiladores específicos, pueden utilizarse lenguajes como C o C++ C++;; en algunos casos, cuando el tiempo de respuesta de la aplicación no es un factor crítico, también pueden usarse lenguajes interpretados como JAVA JAVA.. Puesto que los sistemas embebidos se pueden fabricar por decenas de millares o por millones de unidades, una de las principales preocupaciones es reducir los costes costes.. Los sistemas embebidos suelen usar un procesador relativamente pequeño y una memoria pequeña para ello. Los primeros equipos embebidos que se desarrollaron fueron elaborados por porIBM en los años 1980. 1980.
Los programas de sistemas embebidos se enfrentan normalmente a tareas de procesamiento en tiempo real. Contenido [ocultar]
1 Componentes de un sistema embebido 2 Microprocesadores y sistemas embebidos 3 Arquitecturas de computadores más empleadas o
3.1 Arquitectura básica
4 Aplicaciones de un sistema embebido o
4.1 Ventajas de un sistema embebido sobre las soluciones industriales tradicionales
5 Véase también 6 Referencias 7 Enlaces externos
[editar]Componentes
de un sistema embebido
En la parte central se encuentra el microprocesador, microcontrolador, DSP, etc. Es decir, la CPU o unidad que aporta capacidad de cómputo al sistema, pudiendo incluir memoriainterna o externa, un micro con arquitectura específica según requisitos. La comunicación adquiere gran importancia en los sistemas embebidos. Lo normal es que el sistema pueda comunicarse mediante interfaces estándar de cable o inalámbricas. Así un SI normalmente incorporará puertos de comunicaciones del tipo RS-232, RS-485, SPI, I²C, CAN, USB, IP, WiFi, GSM, GPRS, DSRC, etc. El subsistema de presentación tipo suele ser una pantalla gráfica, táctil, LCD, alfanumérico, etc. Se denominan actuadores a los posibles elementos electrónicos que el sistema se encarga de controlar. Puede ser un motor eléctrico, un conmutador tipo relé etc. El más habitual puede ser una salida de señal PWM para control de la velocidad en motores de corriente continua. El módulo de E/S analógicas y digitales suele emplearse para digitalizar señales analógicas procedentes de sensores, activar diodos LED, reconocer el estado abierto cerrado de un conmutador o pulsador, etc. El módulo de reloj es el encargado de generar las diferentes señales de reloj a partir de un único oscilador principal. El tipo de oscilador es importante por varios aspectos: por lafrecuencia necesaria, por la estabilidad necesaria y por el consumo de corriente requerido. El oscilador con mejores características en cuanto a estabilidad y coste son los basados en resonador de cristal
de cuarzo, mientras que los que requieren menor consumo son los RC. Mediante sistemas PLL se obtienen otras frecuencias con la misma estabilidad que el oscilador patrón. El módulo de energía (power) se encarga de generar las diferentes tensiones y corrientes necesarias para alimentar los diferentes circuitos del SE. Usualmente se trabaja con un rango de posibles tensiones de entrada que mediante conversores ac/dc o dc/dc se obtienen las diferentes tensiones necesarias para alimentar los diversos componentes activos del circuito. Además de los conversores ac/dc y dc/dc, otros módulos típicos, filtros, circuitos integrados supervisores de alimentación, etc. El consumo de energía puede ser determinante en el desarrollo de algunos sistemas embebidos que necesariamente se alimentan con baterías, con lo que el tiempo de uso del SE suele ser la duración de la carga de las baterías.
[editar]Microprocesadores
y sistemas embebidos
Un microprocesador es una implementación en forma de circuito integrado (IC) de la Unidad Central de Proceso CPU de una computadora. Frecuentemente nos referimos a un microprocesador como simplemente “CPU”, y la parte de un sistema que contiene al microprocesador se denomina subsistema
de CPU. Los microprocesadores varían en consumo de potencia, complejidad y coste. Los hay de unos pocos miles de transistores y con coste inferior a 2 euros (en producción masiva) hasta de más de cinco millones de transistores que cuestan más de 600 euros. Los subsistemas de entrada/salida y memoria pueden ser combinados con un subsistema de CPU para formar una computadora o sistema embebido completo. Estos subsistemas se interconectan mediante los buses de sistema (formados a su vez por el bus de control, el bus de direcciones y el bus de datos). El subsistema de entrada acepta datos del exterior para ser procesados mientras que el subsistema de salida transfiere los resultados hacia el exterior. Lo más habitual es que haya varios subsistemas de entrada y varios de salida. A estos subsistemas se les reconoce habitualmente como periféricos de E/S. El subsistema de memoria almacena las instrucciones que controlan el funcionamiento del sistema. Estas instrucciones comprenden el programa que ejecuta el sistema. La memoria también almacena varios tipos de datos: datos de entrada que aún no han sido procesados, resultados intermedios del procesado y resultados finales en espera de salida al exterior. Es importante darse cuenta de que los subsistemas estructuran a un sistema según funcionalidades. La subdivisión física de un sistema, en términos de circuitos integrados o placas de circuito impreso (PCB) puede y es normalmente diferente. Un solo circuito integrado (IC) puede proporcionar múltiples funciones, tales como memoria y entrada/salida.
Un microcontrolador (MCU) es un IC que incluye una CPU, memoria y circuitos de E/S. Entre los subsistemas de E/S que incluyen los microcontroladores se encuentran lostemporizadores, los convertidores analógico a digital (ADC) y digital a analógico (DAC) y los canales de comunicaciones serie. Estos subsistemas de E/S se suelen optimizar para aplicaciones específicas (por ejemplo audio, video, procesos industriales, comunicaciones, etc.). Hay que señalar que las líneas reales de distinción entre microprocesador, microcontrolador y microcomputador en un solo chip están difusas, y se denominan en ocasiones de manera indistinta unos y otros. En general, un SE consiste en un sistema con microprocesador cuyo hardware y software están específicamente diseñados y optimizados para resolver un problema concreto eficientemente. Normalmente un SE interactúa continuamente con el entorno para vigilar o controlar algún proceso mediante una serie de sensores. Su hardware se diseña normalmente a nivel de chips, o de interconexión de PCB, buscando la mínima circuitería y el menor tamaño para una aplicación particular. Otra alternativa consiste en el diseño a nivel de PCB consistente en el ensamblado de placas con microprocesadores comerciales que responden normalmente a un estándar como el PC-104 (placas de tamaño concreto que se interconectan entre sí “apilándolas” unas s o bre otras, cada una de ellas con
una funcionalidad específica dentro del objetivo global que tenga el SE). Esta última solución acelera el tiempo de diseño pero no optimiza ni el tamaño del sistema ni el número de componentes utilizados ni el coste unitario. En general, un sistema embebido simple contará con un microprocesador, memoria, unos pocos periféricos de E/S y un programa dedicado a una aplicación concreta almacenado permanentemente en la memoria. El término embebido o empotrado hace referencia al hecho de que el microcomputador está encerrado o instalado dentro de un sistema mayor y su existencia como microcomputador puede no ser aparente. Un usuario no técnico de un sistema embebido puede no ser consciente de que está usando un sistema computador. En algunos hogares las personas, que no tienen por qué ser usuarias de una computadora personal estándar (PC), utilizan del orden de diez o más sistemas embebidos cada día. Las microcomputadoras en estos sistemas controlan electrodomésticos tales como: televisores, videos, lavadoras, alarmas, teléfonos inalámbricos, etc. Incluso una PC tiene sistemas embebidos en el monitor, impresora, y periféricos en general, adicionales a la CPU de la propia PC. Un automóvil puede tener hasta un centenar de microprocesadores y microcontroladores que controlan cosas como la ignición, transmisión, dirección asistida, frenos antibloqueo (ABS), control de la tracción, etc. Los sistemas embebidos se caracterizan normalmente por la necesidad de dispositivos de E/S especiales. Cuando se opta por diseñar el sistema embebidos partiendo de unaplaca con
microcomputador también es necesario comprar o diseñar placas de E/S adicionales para cumplir con los requisitos de la aplicación concreta. Muchos sistemas embebidos son sistemas de tiempo real. Un sistema de tiempo real debe responder, dentro de un intervalo restringido de tiempo, a eventos externos mediante la ejecución de la tarea asociada con cada evento. Los sistemas de tiempo real se pueden caracterizar como blandos o duros. Si un sistema de tiempo real blando no cumple con s us restricciones de tiempo, simplemente se degrada el rendimiento del sistema, pero si el sistema es de tiempo real duro y no c umple con sus restricciones de tiempo, el sistema fallará. Este fallo puede tener posiblemente consecuencias catastróficas. Un sistema embebido complejo puede utilizar un sistema operativo como apoyo para la ejecución de sus programas, sobre todo cuando se requiere la ejecución simultánea de los mismos. Cuando se utiliza un sistema operativo lo más probable es que se tenga que tratar de un sistema operativo de tiempo real (RTOS), que es un sistema operativo diseñado y optimizado para manejar fuertes restricciones de tiempo asociadas con eventos en aplicaciones de tiempo real. En una aplicación de tiempo real compleja la utilización de un sistema operativo de tiempo real multitarea puede simplificar el desarrollo del software.
[editar]Arquitecturas
de computadores más empleadas
[editar]Arquitectura básica Una PC embebida posee una arquitectura semejante a la de un PC. Brevemente éstos son los elementos básicos:
Microprocesador Es el encargado de realizar las operaciones de cálculo principales del sistema. Ejecuta código para realizar una determinada tarea y dirige el funcionamiento de los demás elementos que le rodean, a modo de director de una orquesta.
Memoria En ella se encuentra almacenado el código de los programas que el sistema puede ejecutar así como los datos. Su característica principal es que debe tener un acceso de lectura y escritura lo más rápido posible para que el microprocesador no pierda tiempo en tareas que no son meramente de cálculo. Al ser volátil el sistema requiere de un soporte donde se almacenen los datos incluso sin disponer de alimentación o energía.
Caché Memoria más rápida que la principal en la que se almacenan los datos y el código accedido últimamente. Dado que el sistema realiza microtareas, muchas veces repetitivas, la caché hace
ahorrar tiempo ya que no hará falta ir a memoria principal si el dato o la instrucción ya se encuentra en la caché. Dado su alto precio tiene un tamaño muy inferior (8 –512 KB) con respecto a la principal (8 –256 MB). En el interior del chip del microprocesador se encuentra una pequeña caché (L1), pero normalmente se tiene una mayor en otro chip de la placa madre (L2).
Disco duro En él la información no es volátil y además puede conseguir capacidades muy elevadas. A diferencia de la memoria que es de estado sólido éste suele ser magnético. Pero su excesivo tamaño a veces lo hace inviable para PC embebidas, con lo que se requieren soluciones como unidades de estado sólido. Otro problema que presentan los dispositivos magnéticos, a la hora de integrarlos en sistemas embebidos, es que llevan partes mecánicas móviles, lo que los hace inviables para entornos donde estos estarán expuestos a ciertas condiciones de vibración. Existen en el mercado varias soluciones de esta clas e (DiskOnChip, CompactFlash, IDE Flash Drive, etc.) con capacidades suficientes para la mayoría de sistemas embebidos (desde 2 MB hasta más de 1 GB). El controlador del disco duro de PC estándar cumple con el estándar IDE y es un chip más de la placa madre.
Disco flexible Su función es la de almacenamiento, pero con discos con capacidades mucho más pequeñas y la ventaja de su portabilidad. Normalmente se encontraban en computadora personal estándar pero no así en una PC embebida. Llevan varios años en total desuso en PC comunes.
BIOS-ROM BIOS (Basic Input & Output System, sistema básico de entrada y salida) es código que es necesario para inicializar la computadora y pa ra poner en comunicación los distintos elementos de la placa madre. La ROM (Read Only Memory, memoria de sólo lectura no volátil) es un chip donde se encuentra el código BIOS.
CMOS-RAM Es un chip de memoria de lectura y escritura alimentado con una pila donde se almacena el tipo y ubicación de los dispositivos conectados a la placa madre (disco duro, puertos de entrada y salida, etc.). Además contiene un reloj en permanente funcionamiento que ofrece al sistema la fecha y la hora.
Chipset Chip que se encarga de controlar las interrupciones dirigidas al microprocesador, el acceso directo a memoria (DMA) y al bus ISA, además de ofrecer temporizadores, etc. Es frecuente encontrar la CMOS-RAM y el reloj de tiempo real en el interior del Chip Set.
Entradas al sistema
pueden existir puertos para mouse, teclado, vídeo en formato digital, comunicaciones serie o paralelo, etc.
Salidas del sistema puertos de vídeo para monitor o televisión, pantallas de cristal líquido, altavoces, comunicaciones serie o paralelo, etc.
Ranuras de expansión para tarjetas de tareas específicas que pueden no venir incorporadas en la placa madre, como pueden ser más puertos de comunicaciones, acceso a red de computadoras vía LAN (Local Area Network , red de área local) o vía red telefónica: básica, RDSI (Red Digital de Servicios Integrados), ADSL (Asynchronous Digital Subscriber Loop , Lazo Digital Asíncrono del Abonado),Cablemódem, etc. Un PC estándar suele tener muchas más ranuras de expansión que una PC embebida. Las ranuras de expansión están asociadas a distintos tipos de bus:VESA, ISA, PCI, NLX (ISA + PCI), etc. Hoy en día existen en el mercado fabricantes que integran un microprocesador y los elementos controladores de los dispositivos fundamentales de entrada y salida en un mismo chip, pensando en las necesidades de los sistemas embebidos (bajo coste, pequeño tamaño, entradas y salidas específicas, etc.). Su capacidad de proceso suele ser inferior a los procesadores de propósito general pero cumplen con su cometido ya que los sistemas donde se ubican no requieren tanta potencia. Los principales fabricantes sonSTMicroelectronics (familia de chips STPC), AMD (familia Geode), Motorola (familia ColdFire) e Intel. En cuanto a los sistemas operativos necesarios para que un sistema basado en microprocesador pueda funcionar y ejecutar programas suelen ser específicos para los sistemas embebidos. Así nos encontramos con sistemas operativos de bajos requisitos de memoria, posibilidad de ejecución de aplicaciones de tiempo real, modulares (inclusión sólo de los elementos necesarios del sistema operativo para el
sistema embebido concreto), etc. Los más conocidos en la actualidad son Windows CE, QNX y VxWorks de WindRiver.
[editar]Aplicaciones
de un sistema
embebido Los lugares donde se pueden encontrar los sistemas embebidos son numerosos y de varias naturalezas. A continuación se exponen varios ejemplos para ilustrar las posibilidades de los mismos:
En una fábrica, para controlar un proceso de montaje o producción. Una máquina que se encargue de una determinada tarea hoy en día contiene numerosos circuitos electrónicos y eléctricos para el control de motores, hornos, etc. que deben ser gobernados por un procesador, el cual ofrece un interfaz persona – máquina para ser dirigido por un operario e informarle al mismo de la marcha del proceso.
Puntos de servicio o venta (POS, Point Of Service). Las cajas donde se paga la compra en un supermercado son cada vez más completas, integrando teclados numéricos, lectores de códigos de barras mediante láser, lectores de tarjetas bancarias de banda magnética o chip, pantalla alfanumérica de cristal líquido, etc. El sistema embebido en este caso requiere numerosos conectores de entrada y salida y unas características robustas para la operación continuada.
Puntos de información al ciudadano. En oficinas de turismo, grandes almacenes, bibliotecas, etc. existen equipos con una pantalla táctil donde se puede pulsar sobre la misma y elegir la consulta a
realizar, obteniendo una respuesta personalizada en un entorno gráfico amigable.
Decodificadores y set-top boxes para la recepción de televisión. Cada vez existe un mayor número de operadores de televisión que aprovechando las tecnologías vía satélite y de red de cable ofrecen un servicio de televisión de pago diferenciado del convencional. En primer lugar envían la señal en formato digital MPEG-2 con lo que es necesario un procesado para decodificarla y mandarla al televisor. Además viaja cifrada para evitar que la reciban en claro usuarios sin contrato, lo que requiere descifrarla en casa del abonado. También ofrecen un servicio de televisión interactiva o web-TV que necesita de un software específico para mostrar páginas web y con ello un sistema basado en procesador con salida de señal de televisión.
Sistemas radar de aviones. El procesado de la señal recibida o reflejada del sistema radar embarcado en un avión requiere alta potencia de cálculo además de ocupar poco espacio, pesar poco y soportar condiciones extremas de funcionamiento (temperatura, presión atmosférica, vibraciones, etc.).
Equipos de medicina en hospitales y ambulancias UVI – móvil.
Máquinas de revelado automático de fotos.
Cajeros automáticos.
Pasarelas (Gateways) Internet-LAN.
Y un sin fin de posibilidades aún por descubrir o en estado embrionario como son las neveras inteligentes que controlen su suministro vía Internet, PC de bolsillo, etc.
[editar]Ventajas
de un sistema embebido sobre las soluciones industriales tradicionales Los equipos industriales de medida y control tradicionales están basados en un microprocesador con un sistema operativo privativo o específico para la aplicación correspondiente. Dicha aplicación se programa en ensamblador para el microprocesador dado o en lenguaje C, realizando llamadas a las funciones básicas de ese sistema operativo que en ciertos casos ni siquiera llega a existir. Con los modernos sistemas PC embebida basados en microprocesadores i486 o i586 se llega a integrar el mundo del PC compatible con las aplicaciones industriales. Ello implica numerosas ventajas:
Posibilidad de utilización de sistemas o perativos potentes que ya realizan numerosas tareas: comunicaciones por redes de datos, soporte gráfico, concurrencia con lanzamiento de threads, etc. Estos sistemas operativos pueden ser los mismos que para PC compatibles (Linux, Windows, MS-DOS) con fuertes exigencias en hardware o bien ser una versión reducida de los mismos con características orientadas a los PC embebidos.
Al utilizar dichos sistemas operativos se pueden encontrar fácilmente herramientas de desarrollo software potentes así como numerosos programadores que las dominan, dada la extensión mundial de las aplicaciones para PC compatibles.
Reducción en el precio de los componentes hardware y software debido a la gran cantidad de PC en el mundo.
: Sistemas microcontrolados
El diagrama de un sistema microcontrolado sería algo así
Los dispositivos de entrada pueden ser un teclado, un interruptor, un sensor, etc. Los dispositivos de salida pueden ser LED's, pequeños parlantes, zumbadores, interruptores de potencia (tiristores, optoacopladores), u otros dispositivos como relés, luces, un secador de pelo, en fin.. lo que quieras. Aquí tienes una representación en bloques del microcontroador, para que te des una idea, y puedes ver que lo adaptamos tal y cual es un ordenador, con su fuente de alimentación, un circuito de reloj y el chip microcontrolador, el cual dispone de su CPU, sus memorias, y por supuesto, sus puertos de comunicación listos para conectarse al mundo exterior.
Definamos entonces al microcontrolador; Es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Sacado de un libro...!!!. En fin estas son básicamente algunas de sus partes...
Memoria ROM (Memoria de sólo lectura) Memoria RAM (Memoria de acceso aleatorio) Líneas de entrada/salida (I/O) También llamados puertos Lógica de control Coordina la interacción entre los demás bloques
Eso no es todo, algunos traen funciones especiales, ya hablaremos de ellas.
.: Microcontroladores PIC16CXX/FXX de Microchip
Me referiré a estos porque serán los que utilizaré aquí, (al menos por ahora). Estos micros pertenecen a la gama media y disponen de un set de 35 instrucciones, por eso lo llaman de tipo RISC (Reduced Instruction Set Computer) en entendible sería "Computador con Set de Instrucciones Reducido" pocas instrucciones pero muy poderosas, otras son de tipo CISC (Complex Instruction Set Computer - Computador con Set de Instrucciones Complejo), demasiadas instrucciones, y lo peor, difíciles de recordar. Esta familia de microcontroladores se divide en tres rangos según la capacidad de los microcontroladores. El más bajo lo compone la familia 16C5X. El rango medio lo componen las familias 16C6X/ 7X/ 8X, algunos con conversores A/D, comparadores, interrupciones, etc. La familia de rango superior lo componen los 17CXX. Estas son las funciones especiales de las cuales disponen algunos micros...
Conversores análogo a digital (A/D) en caso de que se requiera medir señales analógicas, por ejemplo temperatura, voltaje, luminosidad, etc. Temporizadores programables (Timer's) Si se requiere medir períodos de tiempo entre eventos, generar temporizaciones o salidas con frecuencia específica, etc. Interfaz serial RS-232. Cuando se necesita establecer comunicación con otro microcontrolador o con un computador. Memoria EEPROM Para desarrollar una aplicación donde los datos no se alteren a pesar de quitar la alimentación, que es un tipo de memoria ROM que se puede programar o borrar eléctricamente sin necesidad de circuitos especiales. salidas PWM (modulación por ancho de pulso) Para quienes requieren el control de motores DC o cargas resistivas, existen microcontroladores que pueden ofrecer varias de ellas. Técnica llamada de "Interrupciones" , (ésta me gustó) Cuando una señal externa activa una línea de interrupción, el microcontrolador deja de lado la tarea que está ejecutando, atiende dicha interrupción, y luego continúa con lo que estaba haciendo.
Todo esto, sólo para tener una idea de lo que son los micros, ahora vamos a un par de ellos en especial
Microcontroladores Ariel Palazzesi . Vista 112490 veces
184 Votos 24 Comentarios
24>> comenta
138 46
Dentro del mundo de la electrónica digital existen básicamente dos maneras de diseñar o construir un circuito: mediante componentes discretos y circuitos integrados, o bien utilizando microcontroladores. Estos incluyen dentro de una misma capsula (a veces de tan solo 8 pines) un microprocesador, una memoria RAM, una ROM (generalmente de tipo FLASH), puertos de entrada y salida, etc. y pueden ser fácilmente programados para llevar a cabo las mas diversas tareas.
Anuncios Google
o
Intel Microprocesador h30406.www3.hp.com/Servidor - Servidores HP DL380P Gen8 Con Procesador Intel® Xeon®
o
Nuevos Cortes De Pelo www.herbalessences.com.mx - Corte de Cabello Ideal para Tí. Tips Herbal Essences. Ingresa!
Quizás una de las mayores ventajas sea la posibilidad de realizar modificaciones en el comportamiento de nuestro proyecto simplemente actualizando el software que ejecuta el microcontrolador. En un diseño tradicional, una tarea tan sencilla como modificar un tiempo de respuesta o agregar alguna pequeña función no contemplada en el diseño original obliga a construir un nuevo circuito impreso, agregar o quitar integrados, etc. Si el proyecto esta construido en torno a un microcontrolador, en pocos minutos se puede tener el nuevo proyecto funcionando.
Explicado mediante términos sencillos, podemos definir a un microcontrolador como un circuito integrado (chip) que incluye en su interior las tres unidades funcionales de una computadora: CPU, memoria y unidades de E/S, es decir, se trata de una computadora completa en un solo circuito integrado. Aunque por supuesto sus prestaciones son limitadas si las comparamos con las de cualquier ordenador personal, además de dicha integración, su característica principal es su alto nivel de especialización. Si bien los hay del tamaño de un sello de correos, lo normal es que sean incluso más pequeños, ya que, lógicamente, forman parte del dispositivo que controlan. Los microcontroladores representan la inmensa mayoría de los chips microprocesadores vendidos, sobre un 50% son controladores "simples" y otro son DSP (Digital Signal Processor, Procesador Digital de Señal), circuitos más especializados. Mientras podemos tener uno o dos microprocesadores de propósito general en casa (dentro del ordenador, claro!), probablemente tenemos distribuido entre los electrodomésticos de nuestra casa entre una y dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo eléctrico como automóviles, lavarropas, hornos microondas, teléfonos, equipos de audio, etc.. Un microcontrolador difiere de un microprocesador de los que estamos acostumbrados a ver (por ejemplo un Athlon o un Pentium), no solo fisicamente si no en que es más fácil convertirlo en una “computadora” en funcionamiento, con un mínimo de chips externos de apoyo. La idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energía y de información (por medio de sus puertos de entrada/salida integrados) que necesite, y eso es todo. Un microprocesador convencional no le permitirá hacer esto, ya que normalmente requiere que todas estas tareas sean manejadas por otros chips. Típicamente, un microcontrolador puede disponer de un generador de reloj integrado y una pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincronización. Los microcontroladores disponen generalmente también de una gran variedad de dispositivos de entrada/salida, como convertidores de analógico a digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN, entre otros. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores a veces incluyen un lenguaje de programación integrado, como el BASIC que se utiliza bastante con este propósito. En caso de que no dispongan de un interprete “on-board”, se pueden programar desde el ordenador, usando también alguna versión de Basic, C, Pascal, assembler u otros dentro de la larga lista de lenguajes disponibles, muchas veces en forma gratuita. Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuitería. Incluso en una de las familias mas difundidas,
solo se dispone de un set de 35 instrucciones básicas.
Placa con un microcontrolador ATmel.
Otra placa microcontrolada.
Cuando no existían los microprocesadores, los ingenieros y aficionados a la electrónica creaban sus circuitos electrónicos mediante diseños que implicaban muchos componentes individuales y complejos cálculos matemáticos. Un circuito lógico básico a menudo requería de muchos elementos electrónicos basados en transistores, resistencias, circuitos integrados con compuertas lógicas (ver nota sobre compuertas digitales en NeoTeo), etc., lo cual implicaba circuitos con muchos ajustes y posibilidades de fallos. En el año 1971 apareció el primer microprocesador (desarrollado por Intel, el 4004) el cual originó un cambio decisivo en las técnicas de diseño de la mayoría de los equipos. A partir de ese momento, fue posible construir un equipo electrónico con un microprocesador, unos pocos circuitos accesorios y un software. Los diseños electrónicos comenzaron a ser mucho más pequeños y simplificados, los diseñadores de equipos electrónicos podían realizar mayor cantidad de tareas en menos tiempo y el tamaño de los equipos se redujo considerablemente;
sin embargo, después de cierto tiempo apareció una nueva tecnología, llamada microcontrolador que simplifico aun mas el diseño electrónico, al incluir en un mismo encapsulado el núcleo microprocesador, la memoria y las entradas/salidas.
El Intel 4004, primer microprocesador.
Interior del 4004, abuelo de los actuales micros.
Esto tiene mucha lógica, si pensamos que un microcontrolador cuesta mucho menos que un circuito equivalente construido a partir de circuitos integrados “comunes” y que además muy sencillo agregar o modificar las prestaciones de un dispositivo construido con un microcontrolador simplemente modificando su programa, sin tener que reconfigurar la electrónica (el “hard” del aparato). Si uno se toma el trabajo de utilizar un buscador de paginas web, es posible encontrar aplicaciones de lo mas diversas que involucren microcontroladores, como por ejemplo alarmas de todo tipo, interfaces electrónicas, manejadores de pantallas LCD alfanuméricas y graficas, temporizadores, “computadoras” de a bordo de los mas variados vehículos, interfaces con PC, control de maquinas industriales, y un largísimo etcétera. Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilización de estos componentes. Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los mouses y teclados de las computadoras, impresoras, modems, en los teléfonos, juguetes, en los hornos de microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estas diminutas computadoras, que gobernarán la mayor parte de los aparatos usamos. Lo mejor de todo esto es que cualquier estudiante o aficionado también puede
emplear microcontroladores en sus proyectos, ya que existe abundante documentación disponible para que su uso sea posible sin complicaciones.
Microondas comandado mediante microcontolador.
Microchip es la empresa que fabrica los microcontroladores PIC. En los últimos tiempos esta familia de microcontroladores ha revolucionado el mundo de las aplicaciones electrónicas. Tienen una facilidad de uso y programación tales, que junto a las inmensas posibilidades de E/S que brindan han conquistado a programadores y desarrolladores. Su principal ventaja (y según sus detractores la principal desventaja) es su carácter general, la flexibilidad que les permite ser empleados en casi cualquier aplicación. Otras familias de microcontroladores son más eficaces en aplicaciones específicas. La familia PIC se divide en cuatro gamas, gamas que podemos llamar mini, baja, media y alta. Las principales diferencias entre estas gamas radica en el número de instrucciones y su longitud, el número de puertos y funciones, lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones, como veremos a continuación. Gama mini, con encapsulado de 8 pines, tiene como principal característica su reducido tamaño, al disponer todos sus componentes de solamente 8 pines. Se alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones, respectivamente. En la figura 1 se muestra el diagrama de conexionado de uno de estos PIC. A pesar de tener solo 8 pines, se pueden destinar hasta 6 de ellos como E/S para los periféricos porque disponen de un oscilador interno R-C, lo cual es una de su
principales características (los dos restantes corresponden a la alimentación) Los modelos 12C5xx pertenecen a esta gama, siendo el tamaño de las instrucciones de 12 bits; mientras que los 12C6xx son de la gama media y sus instrucciones tienen 14 bits. Los modelos 12F6xx poseen memoria Flash para el programa y EEPROM para los datos. Algunos modelos disponen de conversores Analógico/Digital de 8 bits incorporados. La gama baja o básica consiste en una serie de PIC de recursos limitados, pero con una de la mejores relaciones coste/prestaciones de la familia. Sus versiones están encapsuladas con 18 y 28 patitas y pueden alimentarse a partir de una tensión de 2,5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz). Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. La figura 2 ilustra su conexionado. Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama baja se caracterizan por poseer los siguientes recursos: Sistema “Power On Reset”, Perro guardián (Watchdog o WDT), Código de protección, etc. La denominada gama media es la más variada y completa de los PIC. Abarca modelos con encapsulado desde 18 hasta 68 pines, cubriendo varias opciones que integran abundantes periféricos. Dentro de esta gama se halla el famoso PIC16F84, quizás el modelo mas utilizado en la historia de los microcontroladores, aunque ya se lo considera obsoleto. En esta gama sus componentes añaden nuevas prestaciones a las que poseían los de la gama baja, haciéndoles más adecuados en las aplicaciones complejas. Poseen comparadores de magnitudes analógicas, convertidores A/D, puertos serie y diversos temporizadores. El repertorio de instrucciones es de 35, de 14 bits cada una y compatible con el de la gama baja. Sus distintos modelos contienen todos los recursos que se precisan en las aplicaciones de los microcontroladores de 8 bits. También dispone de interrupciones y una pila de 8 niveles que permite el anidamiento de subrutinas. Encuadrado en la gama media también se halla la versión PIC14C000, que soporta el diseño de controladores inteligentes para cargadores de baterías, pilas pequeñas, fuentes de alimentación y UPS y cualquier sistema de adquisición y procesamiento de señales que requiera gestión de la energía de alimentación. Los PIC 14C000 admiten cualquier tecnología de las baterías como Li-Ion, NiMH, NiCd, Ph y Zinc. La gama alta dispone de chips con 58 instrucciones de 16 bits en el repertorio y que disponen de un sistema de gestión de interrupciones vectorizadas muy potente. También incluyen variados controladores de periféricos, puertos de comunicación serie y paralelo con elementos externos, un multiplicador hardware de gran velocidad y mayores capacidades de memoria, que alcanza los 8 k palabras en la memoria de instrucciones y 454 bytes en la memoria de datos. Quizás la característica más destacable de los componentes de esta gama es su arquitectura abierta, que consiste en la posibilidad de ampliación del microcontrolador con elementos externos. Para este fin, algunos pinen comunican con el exterior las
líneas de los buses de datos, direcciones y control, a las que se pueden conectar memorias o controladores de periféricos. Esta facultad obliga a estos componentes a tener un elevado número de pines, comprendido entre 40 y 44. Esta filosofía de construcción del sistema es la que se empleaba en los microprocesadores y no suele ser una práctica habitual cuando se emplean microcontroladores. Esta gama se utiliza en aplicaciones muy especiales, con grandes requerimientos.
Características de algunos PICs "mini".
Algunos PICs del grupo "bajo".
Microchips de gama "media"
Algunos integrantes de la gama "alta".
Desde NeoTeo haremos lo posible para acercarle esta tecnología, proporcionándole la información necesaria para que construya su propio programador de microcontroladores, aprenda a programarlos, y sobre todo, a disfrutar de un hobby apasionante.