Se dice que un dispositivo electrónico o sistema integrado es programable en campo o programable en el lugar si su firmware (almacenado en una memoria no volátil , como la ROM ) se puede modificar "en el campo", sin desmontar el dispositivo ni devolverlo a su fabricante.
Esta es una característica muy deseable, ya que puede reducir el costo y el tiempo de reemplazo de firmware obsoleto o con errores. Por ejemplo, un proveedor 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 de un solo uso , no se puede modificar sin reemplazar físicamente el circuito integrado , por lo que un dispositivo de este tipo 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.
Por lo tanto, los dispositivos programables en campo no fueron prácticos hasta la invención de la EEPROM y la memoria flash en la década de 1980. Las primeras EEPROM solo se podían reprogramar con un costoso hardware de programación dedicado , 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 era realizada principalmente por técnicos profesionales e ingenieros de servicio. Sin embargo, a principios de la década de 2000, muchos dispositivos fueron diseñados expresamente para ser programados en campo por consumidores comunes. Varios desarrollos lo han hecho 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 computadoras personales , que pueden ejecutar protocolos de programación arbitrarios.
- El acceso ubicuo a Internet proporciona un medio conveniente para distribuir rápidamente imágenes de firmware.
Han surgido protocolos estándar para programar dispositivos de memoria no volátil. Por ejemplo, JTAG se puede utilizar para leer y programar los chips EEPROM y Flash en muchos dispositivos electrónicos de consumo . Muchos de estos dispositivos incluyen conectores JTAG internamente para programación de fábrica y control de calidad , aunque no haya ningún conector externo expuesto en el producto terminado.
Lógica programable
En la década de 1980 se introdujeron los dispositivos lógicos programables (PLD), como los PAL , PLA y CPLD . Se trata de circuitos integrados que pueden implementar funciones lógicas digitales casi arbitrarias basadas en información similar a la del firmware almacenada en una memoria no volátil.
Por lo tanto, los dispositivos que contienen PLD pueden considerarse hardware programable en campo, mientras que la EEPROM y la memoria flash actúan como almacenamiento para software programable en campo .
Las matrices de puertas programables en campo (FPGAs) se inventaron en 1984 y son el tipo de lógica programable más avanzado disponible en la actualidad. Estos dispositivos de alta capacidad pueden implementar una lógica extremadamente compleja, como microprocesadores o procesadores de señales digitales . Hoy en día, son una gran ayuda en el desarrollo y la rápida implementación de dispositivos electrónicos digitales. Las FPGAs se utilizan a menudo para la creación de prototipos de diseños de hardware y aceleración de hardware .
Oportunidades para aficionados
Muchos dispositivos electrónicos de consumo (incluidos reproductores de MP3 , enrutadores de banda ancha , teléfonos celulares y cámaras digitales) contienen sistemas integrados basados en microprocesadores y microcontroladores de uso general . La mayoría de estos dispositivos contienen componentes programables en campo que pueden ser localizados y accesibles por piratas informáticos expertos en hardware . 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 han considerado especialmente propicios para dicha modificación. Por ejemplo, los proyectos iPodLinux y OpenWrt han permitido a los usuarios ejecutar distribuciones Linux con todas las funciones en sus reproductores de MP3 y enrutadores inalámbricos, respectivamente.
Si bien hoy en día la programación de campo por parte de aficionados es teóricamente posible en prácticamente cualquier sistema integrado, en la práctica los esfuerzos por modificar los dispositivos de consumo suelen verse 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): como FPGA pero con señales analógicas
- Dispositivos de radiofrecuencia programables en campo
Enlaces externos
- UsbAudioHowTo: una guía para convertir un enrutador inalámbrico en un reproductor de radio por Internet , del proyecto OpenWrt