Se dice que un dispositivo electrónico o sistema embebido es programable en campo o programable in situ si su firmware (almacenado en memoria no volátil , como la ROM ) puede modificarse "en el campo", sin desmontar el dispositivo ni devolverlo a su fabricante. [ 1 ]
Esta función suele ser muy útil, ya que puede reducir el coste y el tiempo de respuesta para la sustitución de firmware defectuoso u obsoleto. Por ejemplo, un fabricante de cámaras digitales podría distribuir firmware compatible con un nuevo formato de archivo de imagen indicando a los consumidores que descarguen una nueva imagen de firmware a la cámara mediante un cable USB .
Historia
Cuando el firmware de un dispositivo se almacena en una ROM de máscara o en una PROM programable una sola vez , no se puede modificar sin reemplazar físicamente el circuito integrado ; por lo tanto, dicho dispositivo no puede programarse en campo en el sentido moderno. El firmware basado en PROM borrable se puede borrar y reprogramar, pero solo después de una exposición prolongada a una fuente de luz ultravioleta de alta intensidad.
Así, los dispositivos programables en campo no fueron prácticos hasta la invención de la memoria EEPROM y la memoria flash en la década de 1980. Las primeras EEPROM solo podían reprogramarse con costosos programas especializados , ya que requerían altos voltajes (10-20 V , en comparación con los niveles lógicos típicos de 3-5 V ) y no existía un protocolo de programación estándar ; como resultado, la programación en campo la realizaban principalmente técnicos profesionales e ingenieros de servicio. Sin embargo, a principios de la década de 2000, muchos dispositivos se diseñaron expresamente para ser programados en campo por usuarios comunes. Varios avances lo hicieron posible:
- Los dispositivos EEPROM y flash modernos contienen bombas de carga internas que eliminan la necesidad de altos voltajes.
- La mayoría de los consumidores tienen acceso a ordenadores personales , que pueden ejecutar protocolos de programación arbitrarios.
- El acceso generalizado a Internet proporciona un medio conveniente para distribuir rápidamente imágenes de firmware.
Han surgido protocolos estándar para la programación de dispositivos de memoria no volátil. Por ejemplo, JTAG se puede usar para leer y programar los chips EEPROM y Flash en muchos dispositivos electrónicos de consumo . Muchos de estos dispositivos incluyen conectores JTAG internos para la programación en fábrica y el control de calidad , aunque no haya ningún conector externo expuesto en el producto final.
Lógica programable
En la década de 1980 se introdujeron los dispositivos lógicos programables (PLD, por sus siglas en inglés), como los PAL , los PLA y los CPLD . Se trata de circuitos integrados capaces de implementar funciones lógicas digitales prácticamente arbitrarias a partir de información similar al firmware, almacenada en memoria no volátil.
Por lo tanto, los dispositivos que contienen PLD pueden considerarse hardware programable en campo, mientras que la memoria EEPROM y la memoria flash actúan como almacenamiento para el software programable en campo .
Las matrices de puertas programables en campo (FPGA) se inventaron en 1984 y representan el tipo de lógica programable más avanzado disponible en la actualidad. Estos dispositivos de alta capacidad pueden implementar lógica extremadamente compleja, como microprocesadores o procesadores de señales digitales . Hoy en día, son de gran ayuda en el desarrollo y la rápida implementación de dispositivos electrónicos digitales. Las FPGA se utilizan frecuentemente para la creación de prototipos de diseños de hardware y la aceleración de hardware .
Oportunidades para aficionados
Muchos dispositivos electrónicos de consumo (incluidos reproductores de MP3 , routers de banda ancha , teléfonos móviles y cámaras digitales) contienen sistemas embebidos basados en microprocesadores y microcontroladores de propósito general . La mayoría de estos dispositivos contienen componentes programables en campo que pueden ser localizados y accedidos por aficionados a la electrónica . La programación en campo permite a los aficionados reemplazar el firmware de un dispositivo con un nuevo código que puede modificar o ampliar sus capacidades.
Han surgido numerosas comunidades en línea en torno a dispositivos que se consideran especialmente adecuados para este tipo de modificaciones. Por ejemplo, los proyectos iPodLinux y OpenWrt han permitido a los usuarios ejecutar distribuciones completas de Linux en sus reproductores de MP3 y routers inalámbricos, respectivamente.
Si bien la programación de campo para aficionados es teóricamente posible en prácticamente cualquier sistema embebido actual, en la práctica los esfuerzos por modificar dispositivos de consumo a menudo se ven obstaculizados por la falta de documentación del hardware .
Véase también
- Firmware
- JTAG
- Matriz de puertas programables en campo (FPGA)
- Matriz analógica programable en campo (FPAA): similar a una FPGA pero con señales analógicas.
- Dispositivos de radiofrecuencia programables en campo
Referencias
- ↑ Schneider, Josh (3 de junio de 2024). "Matrices de puertas programables en campo (FPGA) frente a microcontroladores: ¿Cuál es la diferencia?" . Blog de IBM . Consultado el 9 de octubre de 2024 .
Enlaces externos
- UsbAudioHowTo : una guía para convertir un router inalámbrico en un reproductor de radio por Internet , del proyecto OpenWrt.
- electrónica digital