stringtranslate.com

Microcontrolador de placa única

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

Un microcontrolador de placa única es un microcontrolador integrado en una única placa de circuito impreso . 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 útil de inmediato para un desarrollador de aplicaciones, sin requerir que dedique tiempo y esfuerzo a desarrollar hardware de controlador.

Como suelen ser de bajo coste y tienen un coste de capital especialmente bajo para su desarrollo, los microcontroladores de placa única han sido populares durante mucho tiempo en la educación. 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 práctico construir un controlador completo en una sola placa, además de 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 conductores 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 para tarjetas 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 época requerían que se incluyeran varios chips de soporte fuera del procesador. La RAM y la EPROM estaban separadas y a menudo requerían 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 frecuentemente 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 propósito general y de las interfaces de almacenamiento masivo que tendría una computadora de propósito 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 discreto o analógico. 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.

Autobús 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, aunque 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 40 limitados disponibles para el omnipresente paquete de circuitos integrados de doble 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 potencial de expansión, aunque 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 estuvieron disponibles los microcontroladores de un solo chip, como el 8048 , ya no era necesario exponer el bus fuera del paquete, ya que toda la memoria necesaria podía proporcionarse dentro del paquete del chip. Esta generación de procesadores utilizó una arquitectura Harvard con buses de datos y programas separados, ambos internos al chip. Muchos de estos procesadores utilizaban una arquitectura Harvard modificada , donde era posible cierto acceso de escritura al espacio de datos del programa, permitiendo 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 expansión de periféricos, se utilizaba un bus de E/S dedicado, como I²C , 1-Wire o varios buses serie .

Ampliación de bus externo

Algunas placas de microcontrolador que utilizan un microprocesador de uso general pueden llevar el bus de dirección y 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 pueda instalarlo si lo desea.

Entrada y salida

Arduino Diecimila con Atmel ATMEGA168

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 único 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 buffer desde el bus de datos del microprocesador sólo 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 las salidas digitales del microcontrolador operan relés de estado sólido y las entradas están aisladas mediante circuitos de protección y cambio de nivel de acondicionamiento de señal .

En algunas placas de microcontrolador se encuentran una o más entradas analógicas, con un multiplexor analógico y un convertidor analógico a digital común. Las salidas analógicas pueden utilizar 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 las 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 desnuda. El circuito se agregó como opción en el momento de la entrega o podría completarse más adelante.

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, particularmente aquellos destinados a capacitación, también incluyen una placa de pruebas enchufable y reutilizable 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 microcontrolador. Los primeros sistemas podrían implementar un puerto serie para proporcionar RS-232 o bucle de corriente . El puerto serie podría ser usado por el programa de aplicación o podría usarse, 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 a un desarrollador de aplicaciones construir rápidamente un instrumento o sistema habilitado para 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 generalmente se realizaba en lenguaje ensamblador , o a veces en C o PL/M , y luego se ensamblaba o compilaba de forma cruzada 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 dependían de dispositivos de memoria de sólo lectura programable y borrable (EPROM) para contener el programa de aplicación. El código 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 retiraba y reemplazaba muchas veces durante el desarrollo del programa, era común proporcionar un zócalo 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 con microcontroladores estaban disponibles con EPROM integrada. Estos también se programarían en un quemador separado y luego se colocarían en un enchufe del 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

Una computadora de placa única con teclado hexagonal y pantalla de 7 segmentos

Cuando el controlador de placa única formaba 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 "monitor" configurado permanentemente en la ROM. Este monitor permitía ingresar programas en código de máquina directamente a través del teclado y mantenerlos en la 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: el montaje manual o la codificación byte a byte.

Los microcontroladores de este tipo de "teclado y pantalla de calculadora" de placa única 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 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 la RAM se había ampliado de tal manera que era posible descargar el programa a través del puerto serie y guardarlo en la RAM. Esta reducción masiva en el tiempo del ciclo para probar una nueva versión de un programa dio un impulso igualmente grande en la velocidad de desarrollo.

Esta memoria de 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 era a menudo grabarlo en una EPROM.

Microcontroladores de un solo chip

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

Los microcontroladores de un solo chip, como el Intel 8748 , combinaban muchas de las características de las placas anteriores en un solo paquete de circuitos integrados. 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 estará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. Ejemplos de microcontroladores de un solo chip incluyen:

Memoria de programa

Para uso en producción como sistemas integrados , la ROM integrada fue programada en máscara en la fábrica de chips o programada una sola vez (OTP) por el desarrollador como una 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 grabar EPROM. En este caso, se proporcionaría todo el controlador IC y, por tanto, los zócalos ZIF .

Con el desarrollo de EEPROM y memoria flash asequibles , se volvió práctico conectar el controlador permanentemente 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 realizaba sobrescribiéndolos con una nueva descarga o borrándolos eléctricamente en masa (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 serie 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 en la actualidad

tablero dwengo

Ahora es barato y sencillo diseñar placas de circuitos para microcontroladores. Los sistemas host de desarrollo también son económicos, especialmente cuando se utiliza software de código abierto . Los lenguajes de programación de nivel superior abstraen detalles del hardware, haciendo que las diferencias entre procesadores específicos sean menos obvias para el programador de aplicaciones. La memoria flash reescribible ha reemplazado los ciclos de programación lentos, al menos durante el desarrollo de programas. En consecuencia, casi todo el desarrollo actual se basa en la compilación cruzada desde computadoras personales y los programas se descargan a la placa controladora a través de una interfaz tipo serie, que generalmente aparece ante 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:


Ver también

Referencias

  1. ^ Peter Grigson; David Harris (agosto-octubre de 1983). "'Marvin' - Computadora de control Z80 ". Electronics Today International .
  2. ^ Folleto de computadora de placa única Intel SBC 80/10, 1976
  3. ^ Mike Bedford (agosto-septiembre de 1983). "Programador EPROM universal". Electrónica hoy internacional : 45–51, 37–39.
  4. ^ "KIM 1". Computadoras antiguas.com. {{cite web}}: Enlace externo en |publisher=( ayuda )
  5. ^ "Sistema de formación de microprofesores". Flite Electronics Internacional. Archivado desde el original el 9 de mayo de 2008.
  6. ^ Página de inicio de Arduino
  7. ^ ab "Página de inicio del proyecto". Dwengo. {{cite web}}: Enlace externo en |publisher=( ayuda )
  8. ^ Foro de usuarios de Arduino
  9. ^ "Página de inicio del proyecto". Proyecto Arduino. {{cite web}}: Enlace externo en |publisher=( ayuda )
  10. ^ Timothy L. Warner. "Hackear Raspberry Pi". 2013. pág. 12.
  11. ^ Página de inicio de la plataforma de desarrollo de cableado de Wiring.org
  12. ^ "Cableado: hardware". Proyecto de cableado. {{cite web}}: Enlace externo en |publisher=( ayuda )