Se dice que un dispositivo electrónico o sistema integrado es programable en el campo o en el lugar si su firmware (almacenado en una memoria no volátil , como ROM ) se puede modificar "en el campo", sin desmontar el dispositivo o devolverlo a su fabricante.
Esto es a menudo una característica muy deseable, ya que puede reducir el costo y el tiempo de respuesta para la sustitución del cochecito o firmware obsoleto. Por ejemplo, un proveedor de cámaras digitales podría distribuir firmware que admita un nuevo formato de archivo de imagen instruyendo a los consumidores para que descarguen una nueva imagen de firmware a la cámara a través de un cable USB .
Historia
Cuando el firmware de un dispositivo se almacena en una ROM de máscara o en una PROM programable de una sola vez , no se puede modificar sin reemplazar físicamente el circuito integrado , por lo que dicho dispositivo no se puede programar en el campo en el sentido moderno. El firmware borrable basado en PROM 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 EEPROM y la memoria flash en la década de 1980. Las primeras EEPROM solo podían reprogramarse 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 de campo fue 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 el campo por consumidores comunes. Varios desarrollos lo han hecho posible:
- Los dispositivos flash y EEPROM 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 realizar protocolos de programación arbitrarios.
- El acceso a Internet ubicuo 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 puede usarse para leer y programar los chips EEPROM y Flash en muchos dispositivos electrónicos de consumo . Muchos de estos dispositivos incluyen cabezales JTAG internamente para la programación de fábrica y el control de calidad , aunque no se expone ningún conector externo en el producto terminado.
Lógica programable
La década de 1980 vio la introducción de dispositivos lógicos programables (PLD) como PAL , PLA y CPLD . Estos son circuitos integrados que pueden implementar funciones lógicas digitales casi arbitrarias basadas en información similar a un firmware almacenada en una memoria no volátil.
Por lo tanto, los dispositivos que contienen PLD pueden considerarse como hardware programable en campo , mientras que EEPROM y la memoria flash actúan como almacenamiento para software programable en campo .
Los arreglos de puertas programables en campo (FPGA) se inventaron en 1984 y son el tipo más avanzado de lógica programable 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 rápido despliegue de dispositivos electrónicos digitales. Los FPGA 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 (incluyendo reproductores de MP3 , routers de banda ancha , teléfonos celulares y cámaras digitales) contienen sistemas basados en incrustados de propósito general microprocesadores y microcontroladores . La mayoría de estos dispositivos contienen componentes programables en campo que pueden ser localizados y accesibles por piratas informáticos expertos . La programación de 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 particularmente propicios para dicha modificación. Por ejemplo, los proyectos iPodLinux y OpenWrt han permitido a los usuarios ejecutar distribuciones de Linux con todas las funciones en sus reproductores MP3 y enrutadores inalámbricos, respectivamente.
Si bien la programación de campo para aficionados es teóricamente posible en prácticamente cualquier sistema integrado en la actualidad, en la práctica los esfuerzos para modificar los dispositivos de los consumidores a menudo se ven obstaculizados por la falta de documentación para el hardware .
Ver 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