Articulo de referencia

Microcontrolador de placa única

El kit de controlador Make incluye un microcontrolador Atmel AT91SAM7X256 ( ARM ). Un microcontrolador de placa única es un microcontrolador integrado en una sola placa de circu...

El kit de controlador Make incluye un microcontrolador Atmel AT91SAM7X256 ( ARM ).

Un microcontrolador de placa única es un microcontrolador integrado en una sola placa de circuito impreso . Esta placa proporciona todos los circuitos necesarios para una tarea de control útil: un microprocesador , circuitos de entrada/salida , un generador de reloj , memoria RAM , memoria de programa almacenada y cualquier circuito integrado de soporte necesario . El objetivo es que la placa sea inmediatamente útil para un desarrollador de aplicaciones, sin que este tenga que invertir tiempo y esfuerzo en desarrollar el hardware del controlador.

Debido a su bajo costo habitual y a la escasa inversión inicial para su desarrollo, los microcontroladores de placa única han sido populares en el ámbito educativo desde hace mucho tiempo. Además, son una herramienta muy utilizada por los desarrolladores para adquirir 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 práctico construir un controlador completo en una sola placa, así como asequible dedicar una computadora a una tarea relativamente menor.

En marzo de 1976, Intel anunció un producto de computadora 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 tarjetas de expansión cuando las aplicaciones no requerían hardware adicional. El desarrollo de software para este sistema se realizaba en el sistema de desarrollo de microcomputadoras Intellec MDS de Intel ; este proporcionaba soporte para ensamblador y PL/M , y permitía la emulación en circuito para la depuración. [ 2 ]

Los procesadores de esta época requerían la inclusión de varios chips de soporte externos. La RAM y la EPROM eran independientes, y a menudo requerían circuitos de gestión o actualización de memoria dinámica . El procesamiento de E/S podía ser realizado por un solo chip, como el 8255 , pero con frecuencia requería varios chips adicionales.

Un microcontrolador de placa única se diferencia de una computadora de placa única en que carece de la interfaz de usuario de propósito general y las interfaces de almacenamiento masivo que tendría una computadora de propósito general. En comparación con una placa de desarrollo de microprocesador , una placa de microcontrolador se centra en las interconexiones de control digital y analógico con algún sistema controlado, mientras que una placa de desarrollo puede tener pocos o ningún dispositivo de entrada/salida discreto o analógico. La placa de desarrollo existe para mostrar o capacitar sobre una familia de procesadores en particular y, por lo tanto, la implementación interna es más importante que la funcionalidad externa.

Autobús interno

El bus de los primeros dispositivos de placa única, como el Z80 y el 6502 , era universalmente de arquitectura Von Neumann . Se accedía a la memoria de programa y a la de datos a través del mismo bus compartido, aunque se almacenaban en tipos de memoria fundamentalmente diferentes: ROM para programas y RAM para datos. Esta arquitectura de bus era necesaria para optimizar el número de pines requeridos, de los 40 disponibles para el encapsulado de circuito integrado dual en línea (DIP) tan común en el procesador.

Era común ofrecer acceso al bus interno mediante un conector de expansión, o al menos proporcionar espacio para soldar uno. Esta era una opción económica que ofrecía la posibilidad de expansión, aunque rara vez se utilizaba. Las expansiones típicas consistían en dispositivos de E/S o memoria adicional. Era inusual añadir periféricos como almacenamiento en cinta o disco, o una pantalla CRT.

Más adelante, con la llegada de los microcontroladores de un solo chip , como el 8048 , el bus ya no necesitaba estar expuesto fuera del encapsulado, puesto que toda la memoria necesaria podía integrarse en el chip. Esta generación de procesadores utilizaba una arquitectura Harvard con buses de programa y datos separados, ambos internos al chip. Muchos de estos procesadores empleaban una arquitectura Harvard modificada , que permitía cierto acceso de escritura al espacio de datos del programa, posibilitando así la programación en circuito. Ninguno de estos procesadores requería ni admitía un bus Harvard en un microcontrolador de placa única. Cuando admitían un bus para la expansión de periféricos, se utilizaba un bus de E/S dedicado, como I²C , 1-Wire o diversos buses serie .

Expansión de autobuses externos

Algunas placas de microcontrolador que utilizan un microprocesador de propósito general pueden conectar el bus de direcciones y datos del procesador a un conector de expansión, lo que permite añadir memoria o periféricos adicionales. Esto proporciona recursos que no están presentes en el sistema de placa única. Dado que no todos los sistemas requieren expansión, el conector puede ser opcional, con una posición de montaje para que el usuario lo instale si lo desea.

Entrada y salida

Arduino Diecimila con Atmel ATMEGA168

Los sistemas de microcontroladores proporcionan múltiples tipos de señales de entrada y salida para que el software de aplicación pueda controlar un sistema externo del mundo real. Las entradas/salidas digitales discretas proporcionan un único bit de datos (encendido o apagado). Las señales analógicas, que representan un rango de variables continuas, como la temperatura o la presión, también pueden funcionar como entradas y salidas para los microcontroladores.

Las entradas y salidas digitales discretas pueden estar protegidas del bus de datos del microprocesador únicamente mediante un pestillo direccionable, o bien pueden ser operadas por un circuito integrado de entrada/salida especializado, como un adaptador de entrada/salida paralelo Intel 8255 o Motorola 6821. Los microcontroladores de un solo chip más recientes disponen de pines de entrada y salida. 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 se activan mediante las salidas digitales del microcontrolador, y las entradas se aíslan mediante circuitos de protección y adaptación de nivel de señal .

Algunas placas de microcontroladores incluyen una o más entradas analógicas, con un multiplexor analógico y un convertidor analógico-digital común. Las salidas analógicas pueden utilizar un convertidor digital-analógico o, en algunos microcontroladores, controlarse mediante modulación por ancho de pulso . Para entradas discretas, pueden ser necesarios circuitos externos para escalar las señales de entrada 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 necesarios instalados, dejando la placa sin componentes. El circuito se añadía como opción en el momento de la entrega o podía instalarse posteriormente.

Es práctica común que las placas incluyan "áreas de prototipado", zonas diseñadas como una placa de pruebas soldable con el bus y las líneas de alimentación disponibles, pero sin un circuito definido. Varios controladores, especialmente los destinados a la formación, también incluyen una placa de pruebas enchufable y reutilizable para facilitar el prototipado de circuitos de E/S adicionales que podrían modificarse o eliminarse para proyectos posteriores.

Comunicaciones e interfaces de usuario

Las interfaces de comunicación varían según la antigüedad del sistema de microcontrolador. Los sistemas antiguos podían implementar un puerto serie para proporcionar RS-232 o bucle de corriente . Este puerto podía ser utilizado por el programa de aplicación o, junto con una ROM de monitorización, 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 disponen de firmware para implementar un servidor web, lo que permite a un desarrollador de aplicaciones crear rápidamente un instrumento o sistema con acceso web.

Programación

Muchos de los primeros sistemas carecían de herramientas internas para la programación y dependían de un sistema anfitrión externo para esta tarea. Esta programación se realizaba normalmente en lenguaje ensamblador , o a veces en C o PL/M , y luego se ensamblaba o compilaba de forma cruzada en el sistema anfitrión. Algunos microcontroladores de placa única admiten un sistema de lenguaje BASIC, lo que permite desarrollar programas en el hardware de destino. El desarrollo en un sistema anfitrión permite utilizar todo el almacenamiento y los periféricos de un ordenador de sobremesa, proporcionando un entorno de desarrollo más potente.

Grabación de EPROM

Los primeros microcontroladores utilizaban memorias de solo lectura programables y borrables (EPROM) para almacenar el programa de aplicación. El código objeto del sistema anfitrión se grababa en una EPROM con un programador de EPROM . [ 3 ] Esta EPROM se conectaba físicamente a la placa. Dado que la EPROM se extraía y reemplazaba con frecuencia durante el desarrollo del programa, era común utilizar un zócalo ZIF para evitar el desgaste o los daños. Borrar una EPROM con un borrador UV requiere bastante tiempo, por lo que también era habitual que un desarrollador tuviera varias EPROM en circulación simultáneamente.

Algunos microcontroladores contaban con memoria EPROM integrada. Estos se programaban en un programador independiente y luego se insertaban en un zócalo del sistema de destino.

El uso de zócalos EPROM permitía actualizar el programa de aplicación en campo, ya fuera para corregir errores o para proporcionar nuevas funcionalidades.

Monitores de teclado

Un ordenador de placa única con teclado hexadecimal y pantalla de 7 segmentos.

Cuando el controlador de placa única constituía todo el entorno de desarrollo (normalmente en el ámbito educativo), la placa podía incluir un sencillo teclado hexadecimal , una pantalla LED tipo calculadora y un programa de monitorización almacenado permanentemente en la ROM. Este monitor permitía introducir programas en código máquina directamente mediante el teclado y almacenarlos en la RAM. Estos programas estaban escritos en código máquina, ni siquiera en lenguaje ensamblador, y a menudo se compilaban a mano en papel antes de introducirlos. Resulta discutible cuál de los dos procesos era más laborioso y propenso a errores: la compilación manual o la introducción byte a byte.

Los microcontroladores de placa única de este tipo, con teclado y pantalla de calculadora, eran 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 se fabrican hoy en día y se utilizan como introducciones de muy bajo coste a los microprocesadores a nivel de programación de hardware. [ 5 ]

Desarrollo alojado

Con la aparición de los ordenadores personales de sobremesa, inicialmente CP/M o Apple II , y posteriormente el IBM PC y sus compatibles, se produjo un cambio hacia el desarrollo alojado en la nube. El hardware era ahora más económico y la capacidad de la memoria RAM se había ampliado, lo que permitía descargar el programa a través del puerto serie y almacenarlo en la RAM. Esta drástica reducción del tiempo de ciclo para probar una nueva versión de un programa impulsó significativamente la velocidad de desarrollo.

Esta memoria de programa aún era volátil y se perdería en caso de un corte de energía. La memoria flash todavía no estaba disponible a un precio asequible. Dado que un proyecto de controlador completo generalmente debía ser no volátil, el paso final solía consistir en grabarlo en una EPROM.

Microcontroladores de un solo chip

Un microcontrolador de la familia 8048 con una EPROM UV integrada , el 8749
Una placa de desarrollo para un dispositivo de la familia PIC.

Los microcontroladores de un solo chip, como el Intel 8748 , combinaron muchas de las características de las placas anteriores en un único encapsulado. Estos microcontroladores integran la memoria (tanto RAM como ROM) en el propio encapsulado y, por lo tanto, no necesitan exponer el bus de datos y direcciones a través de los pines del mismo. Estos pines quedan disponibles para las líneas de entrada/salida. Estos cambios también reducen el área requerida en la placa de circuito impreso y simplifican el diseño del microcontrolador de una sola placa. Algunos ejemplos de microcontroladores de un solo chip son:

Memoria del programa

Para su uso en producción como sistemas embebidos , la ROM integrada se programaba mediante máscara en la fábrica de chips o mediante programación única (OTP) por el desarrollador como una PROM . Las PROM solían utilizar la misma tecnología EPROM UV que el chip, pero en un encapsulado más económico y sin la ventana de borrado transparente. Durante el desarrollo del programa, seguía siendo necesario grabar las EPROM. En este caso, se proporcionaba el circuito integrado controlador completo y, por lo tanto, los zócalos ZIF .

Con el desarrollo de memorias EEPROM y flash asequibles , se hizo práctico conectar el controlador de forma permanente a la placa y descargar el código del programa desde un ordenador anfitrión mediante una conexión serie. Esto se denominó " programación en circuito ". El borrado de programas antiguos se realizaba sobrescribiéndolos con una nueva descarga o borrándolos eléctricamente en bloque (para EEPROM ). Este último método era más lento, pero podía realizarse in situ.

La función principal de la placa controladora era entonces alojar los circuitos de soporte para esta interfaz serie o, en placas posteriores, USB . Para mayor comodidad durante el desarrollo, muchas placas también incluían características de bajo costo, como indicadores LED de las líneas de E/S o interruptores de reinicio integrados.

Microcontroladores de placa única en la actualidad

Tablero de Dwengo

Actualmente, diseñar placas de circuitos para microcontroladores es económico y sencillo. Los sistemas de desarrollo también son económicos, sobre todo al usar software de código abierto . Los lenguajes de programación de alto nivel abstraen los detalles del hardware, lo que hace que las diferencias entre procesadores específicos sean menos evidentes para el programador. La memoria flash regrabable ha sustituido a los lentos ciclos de programación, al menos durante el desarrollo de programas. Por consiguiente, casi todo el desarrollo se basa ahora en la compilación cruzada desde ordenadores personales y los programas se descargan a la placa controladora mediante una interfaz tipo serie, que suele aparecer en el sistema anfitrión 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 hacia:

  • Plataformas de fácil acceso dirigidas 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 tecnológica para procesadores innovadores o funciones periféricas:

Véase también

Referencias

  1. Peter Grigson; David Harris (agosto-octubre de 1983).'Marvin' - Computadora de control Z80". Electronics Today International .
  2. Folleto del ordenador de placa única Intel SBC 80/10 , 1976
  3. Mike Bedford (agosto-septiembre de 1983). "Programador universal de EPROM". Electronics Today International : 45-51 , 37-39 .
  4. "KIM 1" . old-computers.com . Ordenadores antiguos. Archivado del original el 18 de junio de 2021.
  5. "Sistema de entrenamiento Microprofessor" . Flite Electronics International. Archivado del original el 9 de mayo de 2008.
  6. Página principal de Arduino
  7. 1 2 "Página principal del proyecto" . dwengo.org . Dwengo . Consultado el 5 de septiembre de 2024 .
  8. Foro de usuarios de Arduino
  9. "Página principal del proyecto" . arduino.cc . Proyecto Arduino . Consultado el 5 de septiembre de 2024 .
  10. Timothy L. Warner. "Hacking Raspberry Pi" . 2013. pág. 12.
  11. Página principal de la plataforma de desarrollo de Wiring.org
  12. "Hardware de cableado. Descripción general" . wiring.org.co . Proyecto de cableado . Consultado el 5 de septiembre de 2024 .