Un microcontrolador de placa única es un microcontrolador integrado en una placa de circuito impreso única . Esta placa proporciona todos los circuitos necesarios para una tarea de control útil: un microprocesador , circuitos de E / S , un generador de reloj , RAM , memoria de programa almacenada y cualquier circuito integrado de soporte necesario . La intención es que la placa sea inmediatamente útil para un desarrollador de aplicaciones, sin que sea necesario que dediquen tiempo y esfuerzo a desarrollar el hardware del controlador.
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/1/19/Mck_glamor_320.jpg/440px-Mck_glamor_320.jpg)
Como generalmente son de bajo costo y tienen un costo de capital especialmente bajo para el desarrollo, los microcontroladores de placa única han sido populares en la educación durante mucho tiempo. También son un medio popular para que los desarrolladores adquieran experiencia práctica con una nueva familia de procesadores .
Orígenes
Los microcontroladores de placa única aparecieron a finales de la década de 1970, cuando la aparición de los primeros microprocesadores, como el 6502 y el Z80 , [1] hizo que fuera práctico construir un controlador completo en una sola placa, además de asequible para dedicar una computadora a una tarea relativamente menor.
En marzo de 1976, Intel anunció un producto informático de placa única que integraba todos los componentes de soporte necesarios para su microprocesador 8080 , junto con 1 kilobyte de RAM, 4 kilobytes de ROM programable por el usuario y 48 líneas de E / S digitales paralelas con controladores de línea. La placa también ofrecía expansión a través de un conector de bus, pero podía usarse sin una caja de tarjeta de expansión cuando las aplicaciones no requerían hardware adicional. El desarrollo de software para este sistema se alojó en el sistema de desarrollo de microcomputadoras Intellec MDS de Intel ; esto proporcionó soporte para ensamblador y PL / M , y permitió la emulación en circuito para la depuración. [2]
Los procesadores de esta era requerían que se incluyeran varios chips de soporte fuera del procesador. La RAM y la EPROM estaban separadas, a menudo requiriendo administración de memoria o circuitos de actualización para la memoria dinámica . El procesamiento de E / S podría haber sido realizado por un solo chip como el 8255 , pero con frecuencia requería varios chips más.
Un microcontrolador de placa única se diferencia de una computadora de placa única en que carece de la interfaz de usuario de uso general y las interfaces de almacenamiento masivo que tendría una computadora de uso más general. En comparación con una placa de desarrollo de microprocesador , una placa de microcontrolador enfatizaría las interconexiones de control digitales y analógicas con algún sistema controlado, mientras que una placa de desarrollo podría tener solo unos pocos o ningún dispositivo de entrada / salida analógica o discreta. La placa de desarrollo existe para exhibir o entrenar en alguna familia de procesadores en particular y, por lo tanto, la implementación interna es más importante que la función externa.
Bus interno
El bus de los primeros dispositivos de placa única, como el Z80 y el 6502 , era universalmente una arquitectura de Von Neumann . Se accedía a la memoria de programas y datos a través del mismo bus compartido, a pesar de que estaban almacenados en tipos de memoria fundamentalmente diferentes: ROM para programas y RAM para datos. Esta arquitectura de bus era necesaria para economizar la cantidad de pines necesarios de los limitados 40 disponibles para el omnipresente paquete de CI dual en línea del procesador.
Era común ofrecer acceso al bus interno a través de un conector de expansión, o al menos proporcionar espacio para soldar un conector. Esta era una opción de bajo costo y ofrecía el potencial de expansión, incluso si rara vez se usaba. Las expansiones típicas serían dispositivos de E / S o memoria adicional. Era inusual agregar dispositivos periféricos como almacenamiento en cinta o disco, o una pantalla CRT
Más tarde, cuando los microcontroladores de un solo chip , como el 8048 , estuvieron disponibles, ya no era necesario exponer el bus fuera del paquete, ya que toda la memoria necesaria podría proporcionarse dentro del paquete del chip. Esta generación de procesadores utilizó una arquitectura de Harvard con programas y buses de datos separados, ambos internos al chip. Muchos de estos procesadores usaban una arquitectura Harvard modificada , donde era posible cierto acceso de escritura al espacio de datos del programa, lo que permitía la programación en circuito. Ninguno de estos procesadores requirió, ni admitió, un bus Harvard en un microcontrolador de placa única. Cuando admitían un bus para la expansión de periféricos , se usaba un bus de E / S dedicado, como I²C , 1-Wire o varios buses seriales .
Expansión de bus externo
Algunas placas de microcontroladores que utilizan un microprocesador de propósito general pueden llevar la dirección y el bus de datos del procesador a un conector de expansión, lo que permite agregar memoria o periféricos adicionales. Esto proporciona recursos que aún no están presentes en el sistema de placa única. Dado que no todos los sistemas requerirán expansión, el conector puede ser opcional, con una posición de montaje proporcionada para que el usuario lo instale si lo desea.
Entrada y salida
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/1/17/Arduino_Diecimila.jpg/440px-Arduino_Diecimila.jpg)
Los sistemas de microcontroladores proporcionan múltiples formas de señales de entrada y salida para permitir que el software de aplicación controle un sistema externo del "mundo real". La E / S digital discreta proporciona un solo bit de datos (activado o desactivado). Las señales analógicas, que representan un rango variable continuo, como la temperatura o la presión, también pueden ser entradas y salidas para microcontroladores.
Las entradas y salidas digitales discretas pueden almacenarse en búfer desde el bus de datos del microprocesador solo mediante un pestillo direccionable, o pueden ser operadas por un IC de entrada / salida especializado, como un adaptador de entrada / salida paralelo Intel 8255 o Motorola 6821 . Los microcontroladores de un solo chip posteriores tienen pines de entrada y salida disponibles. Estos circuitos de entrada / salida generalmente no proporcionan suficiente corriente para operar directamente dispositivos como lámparas o motores, por lo que los relés de estado sólido son operados por las salidas digitales del microcontrolador, y las entradas están aisladas por circuitos de protección y cambio de nivel de acondicionamiento de señal .
En algunas placas de microcontroladores se encuentran una o más entradas analógicas, con un multiplexor analógico y un convertidor común de analógico a digital . Las salidas analógicas pueden usar un convertidor de digital a analógico o, en algunos microcontroladores, pueden controlarse mediante modulación de ancho de pulso . Para entradas discretas, es posible que se requieran circuitos externos para escalar entradas o para proporcionar funciones como excitación de puente o compensación de unión fría .
Para controlar los costos de los componentes, muchas placas se diseñaron con circuitos de interfaz de hardware adicionales pero sin los componentes para estos circuitos instalados, dejando la placa al descubierto. El circuito se agregó como una opción en el momento de la entrega, o podría completarse más tarde.
Es una práctica común que las placas incluyan "áreas de creación de prototipos", áreas de la placa dispuestas como un área de placa soldable con el bus y los rieles de alimentación disponibles, pero sin un circuito definido. Varios controladores, en particular los destinados a la formación, también incluyen una placa de pruebas reutilizable y enchufable para crear fácilmente prototipos de circuitos de E / S adicionales que podrían cambiarse o eliminarse para proyectos posteriores.
Comunicaciones e interfaces de usuario
Las interfaces de comunicaciones varían según la antigüedad del sistema de microcontroladores. Los primeros sistemas podrían implementar un puerto serie para proporcionar RS-232 o bucle de corriente . El puerto serie podría ser utilizado por el programa de aplicación o podría utilizarse, junto con una ROM de monitor, para transferir programas a la memoria del microcontrolador. Los microcontroladores actuales pueden admitir USB , redes inalámbricas ( Wi-Fi , ZigBee u otras) o proporcionar una conexión Ethernet. Además, pueden admitir una pila de protocolos TCP / IP . Algunos dispositivos tienen firmware disponible para implementar un servidor web, lo que permite al desarrollador de aplicaciones crear rápidamente un instrumento o sistema habilitado para la web.
Programación
Muchos de los primeros sistemas no tenían instalaciones internas para la programación y dependían de un sistema "host" separado para esta tarea. Esta programación se hacía típicamente en lenguaje ensamblador , o algunas veces en C o PL / M , y luego se ensamblaba o compilaba en el host. Algunos microcontroladores de placa única admiten un sistema de lenguaje BÁSICO, lo que permite desarrollar programas en el hardware de destino. El desarrollo alojado permite utilizar todo el almacenamiento y los periféricos de una computadora de escritorio, lo que proporciona un entorno de desarrollo más potente.
Quema de EPROM
Los primeros microcontroladores se basaban en dispositivos de memoria de solo lectura programable y borrable (EPROM) para contener el programa de aplicación. El código de objeto de un sistema host se "grabaría" en una EPROM con un programador de EPROM . [3] Esta EPROM luego se conectó físicamente a la placa. Como la EPROM se quitaría y reemplazaría muchas veces durante el desarrollo del programa, era común proporcionar un enchufe ZIF para evitar desgaste o daños. Borrar una EPROM con un borrador UV lleva un tiempo considerable, por lo que también era común que un desarrollador tuviera varias EPROM en circulación al mismo tiempo.
Algunos dispositivos de microcontroladores estaban disponibles con EPROM integrado. Estos también se programarían en un quemador separado y luego se colocarían en un enchufe en el sistema de destino.
El uso de sockets EPROM permitió actualizaciones de campo del programa de aplicación, ya sea para corregir errores o para proporcionar funciones actualizadas.
Monitores de teclado
Cuando el controlador de placa única formó todo el entorno de desarrollo (normalmente en educación), la placa también podría haber incluido un teclado hexadecimal simple , una pantalla LED estilo calculadora y un programa de "monitorización" configurado permanentemente en la ROM. Este monitor permitió que los programas de código de máquina se ingresaran directamente a través del teclado y se mantuvieran en RAM. Estos programas estaban en código de máquina, ni siquiera en lenguaje ensamblador, y a menudo se ensamblaban a mano en papel antes de ingresarlos. Es discutible qué proceso consumía más tiempo y era más propenso a errores: ensamblar a mano o teclear byte a byte.
Single-Board "teclado y la pantalla de la calculadora" microcontroladores de este tipo son muy similares a algunos microordenadores de gama baja de la época, como el KIM-1 o el Microprofessor I . [4] Algunos de estos sistemas de "entrenamiento" de microprocesadores todavía están en producción hoy en día, y se utilizan como introducciones de muy bajo costo a los microprocesadores a nivel de programación de hardware. [5]
Desarrollo alojado
Cuando aparecieron las computadoras personales de escritorio, inicialmente CP / M o Apple II , luego IBM PC y compatibles, hubo un cambio hacia el desarrollo alojado. El hardware ahora era más barato y la capacidad de RAM se había expandido de tal manera que era posible descargar el programa a través del puerto serie y mantenerlo en la RAM. Esta enorme reducción en el tiempo de ciclo para probar una nueva versión de un programa dio un impulso igualmente grande en la velocidad de desarrollo.
La memoria de este programa todavía era volátil y se perdería si se cortaba la energía. La memoria flash aún no estaba disponible a un precio viable. Como generalmente se requería que un proyecto de controlador completo no fuera volátil, el paso final de un proyecto solía ser grabarlo en una EPROM.
Microcontroladores de un solo chip
Los microcontroladores de un solo chip, como el Intel 8748 , combinaban muchas de las características de las placas anteriores en un solo paquete IC. Los microcontroladores de un solo chip integran memoria (RAM y ROM) en el paquete y, por lo tanto, no necesitan exponer el bus de datos y direcciones a través de los pines del paquete IC. Estos pines están disponibles para las líneas de E / S. Estos cambios también reducen el área requerida en la placa de circuito impreso y simplifican el diseño del microcontrolador de placa única. Entre los ejemplos de microcontroladores de un solo chip se incluyen:
- Intel 8748
- FOTO
- Atmel AVR
Programa de memoria
Para uso en producción como sistemas integrados , la ROM incorporada fue programada con máscara en la fábrica de chips o programada una sola vez (OTP) por el desarrollador como PROM . Las PROM a menudo usaban la misma tecnología UV EPROM para el chip, pero en un paquete más económico sin la ventana de borrado transparente. Durante el desarrollo del programa, todavía era necesario quemar EPROM. En este caso, se proporcionaría todo el IC del controlador y, por lo tanto, los zócalos ZIF .
Con el desarrollo de memorias flash y EEPROM asequibles , se volvió práctico conectar el controlador de forma permanente a la placa y descargar el código del programa desde una computadora host a través de una conexión en serie. Esto se denominó "programación en circuito ". El borrado de programas antiguos se realizó sobrescribiéndolos con una nueva descarga o borrándolos de forma masiva eléctricamente (para EEPROM ). El último método era más lento, pero podía llevarse a cabo in situ.
La función principal de la placa controladora era entonces llevar los circuitos de soporte para esta interfaz serial o, en placas posteriores, USB . Para mayor comodidad durante el desarrollo, muchas placas también tenían características de bajo costo como monitores LED de las líneas de E / S o interruptores de reinicio montados en la placa.
Microcontroladores de placa única hoy
Ahora es barato y sencillo diseñar placas de circuito para microcontroladores. Los sistemas de host de desarrollo también son baratos, especialmente cuando se usa software de código abierto. Los lenguajes de programación de nivel superior abstraen los detalles del hardware, lo que hace que las diferencias entre procesadores específicos sean menos obvias para el programador de aplicaciones. La memoria flash regrabable ha reemplazado los ciclos de programación lentos, al menos durante el desarrollo del programa. En consecuencia, casi todo el desarrollo ahora se basa en la compilación cruzada de computadoras personales y los programas se descargan a la placa del controlador a través de una interfaz en serie, que generalmente aparece en el host como un dispositivo USB.
La demanda original del mercado de una implementación de placa simplificada ya no es tan relevante para los microcontroladores. Los microcontroladores de placa única siguen siendo importantes, pero han cambiado su enfoque a:
- Plataformas de fácil acceso destinadas a grupos tradicionalmente "no programadores", como artistas, diseñadores, aficionados y otros interesados en crear objetos o entornos interactivos. [6] Algunos proyectos típicos en 2011 incluyeron: el control de respaldo de luces de escenario DMX y efectos especiales, control de múltiples cámaras, robots de combate autónomos, control de proyectos bluetooth desde una computadora o teléfono inteligente, [7] LED y multiplexación, pantallas, audio , motores, mecánica y control de potencia. [8] Estos controladores pueden integrarse para formar parte de un proyecto de computación física . Las opciones populares para este trabajo son Arduino , [9] Dwengo [7] [10] o Wiring . [11] [12]
- Placas de demostración de tecnología para procesadores innovadores o funciones periféricas:
- Mariposa AVR
- Hélice Parallax
Ver también
- Comparación de microcontroladores de placa única
- Placa de desarrollo de microprocesador
- Sistema Integrado
- Controlador lógico programable
- Arduino
- Hacer kit de controlador
- PICAXE
- Sello BASIC
- Frambuesa pi
- Tablero Asus Tinker
- Tinkerforge
Referencias
- ^ Peter Grigson; David Harris (agosto-octubre de 1983). " ' Marvin' - Computadora de control Z80". Electronics Today International .
- ^ Folleto de computadora de placa única Intel SBC 80/10 , 1976
- ^ Mike Bedford (agosto-septiembre de 1983). "Programador EPROM Universal". Electronics Today International : 45–51, 37–39.
- ^ "KIM 1" . Old Computers.com . Enlace externo en
|publisher=
( ayuda ) - ^ "Sistema de formación de microprofesores" . Flite Electronics International. Archivado desde el original el 9 de mayo de 2008.
- ^ Página de inicio de Arduino
- ^ a b "Página de inicio del proyecto" . Dwengo . Enlace externo en
|publisher=
( ayuda ) - ^ Foro de usuarios de Arduino
- ^ "Página de inicio del proyecto" . Proyecto Arduino . Enlace externo en
|publisher=
( ayuda ) - ^ Timothy L. Warner. "Hackear Raspberry Pi" . 2013. p. 12.
- ^ Plataforma de desarrollo de cableado de Wiring.org página de inicio
- ^ "Cableado: Hardware" . Proyecto de cableado . Enlace externo en
|publisher=
( ayuda )