En informática , un dispositivo plug and play ( PnP ) o bus de computadora es uno con una especificación que facilita el reconocimiento de un componente de hardware en un sistema sin la necesidad de configuración física del dispositivo o intervención del usuario para resolver conflictos de recursos. [1] [2] El término "plug and play" se ha ampliado desde entonces a una amplia variedad de aplicaciones a las que se aplica la misma falta de configuración del usuario. [3] [4]
Los dispositivos de expansión se controlan e intercambian datos con el sistema anfitrión a través de direcciones de puerto de memoria o espacio de E/S definidos, canales de acceso directo a memoria , líneas de solicitud de interrupción y otros mecanismos, que deben estar asociados de forma única con un dispositivo en particular para funcionar. Algunas computadoras proporcionaban combinaciones únicas de estos recursos a cada ranura de una placa base o placa base . Otros diseños proporcionaban todos los recursos a todas las ranuras, y cada dispositivo periférico tenía su propia decodificación de direcciones para los registros o bloques de memoria que necesitaba para comunicarse con el sistema anfitrión. Dado que las asignaciones fijas dificultaban la expansión de un sistema, los dispositivos usaban varios métodos manuales para asignar direcciones y otros recursos, como puentes cableados, pines que se podían conectar con cables o correas extraíbles, o interruptores que se podían configurar para direcciones particulares. [5] A medida que los microprocesadores hicieron que las computadoras del mercado masivo fueran asequibles, la configuración de software de los dispositivos de E/S fue ventajosa para permitir la instalación por parte de usuarios no especialistas. Los primeros sistemas para la configuración de software de dispositivos incluyeron el estándar MSX , NuBus , Amiga Autoconfig e IBM Microchannel. Inicialmente, todas las tarjetas de expansión para IBM PC requerían la selección física de la configuración de E/S en la placa con puentes o interruptores DIP , pero cada vez más los dispositivos de bus ISA se organizaron para la configuración de software. [6] En 1995, Microsoft Windows incluyó un método integral para enumerar hardware en el momento del arranque y asignar recursos, que se denominó estándar "Plug and Play". [7]
Los dispositivos plug and play pueden tener recursos asignados solo en el momento del arranque, o pueden ser sistemas de conexión en caliente como USB e IEEE 1394 (FireWire). [8]
Algunos de los primeros dispositivos periféricos de microcomputadoras requerían que el usuario final cortara físicamente algunos cables y soldara otros para poder realizar cambios de configuración; [9] dichos cambios estaban pensados para ser en gran medida permanentes durante la vida útil del hardware.
A medida que las computadoras se volvieron más accesibles para el público en general, surgió la necesidad de que los usuarios de computadoras que no eran expertos en el uso de soldadores realizaran cambios con mayor frecuencia. En lugar de cortar y soldar conexiones, la configuración se realizaba mediante puentes o interruptores DIP . Más tarde, este proceso de configuración se automatizó: Plug and Play. [6]
El sistema MSX , lanzado en 1983, [10] fue diseñado para ser plug and play desde el principio, y logró esto mediante un sistema de ranuras y subranuras, donde cada una tenía su propio espacio de direcciones virtuales , eliminando así los conflictos de direccionamiento de dispositivos en su propia fuente. No se requirieron puentes ni ninguna configuración manual, y el espacio de direcciones independiente para cada ranura permitió que se usaran chips muy baratos y comunes, junto con una lógica de pegamento barata . En el lado del software, los controladores y las extensiones se suministraban en la propia ROM de la tarjeta, por lo que no se requerían discos ni ningún tipo de intervención del usuario para configurar el software. Las extensiones de ROM abstraían cualquier diferencia de hardware y ofrecían API estándar según lo especificado por ASCII Corporation .
En 1984, el Instituto Tecnológico de Massachusetts (MIT) [11] desarrolló la arquitectura NuBus como una interfaz periférica independiente de la plataforma que automatizaba por completo la configuración de dispositivos. La especificación era lo suficientemente inteligente como para funcionar con plataformas informáticas big endian y little endian que anteriormente habían sido incompatibles entre sí. Sin embargo, este enfoque independiente aumentó la complejidad de la interfaz y requirió chips de soporte en cada dispositivo, lo que en la década de 1980 era costoso de hacer y, aparte de su uso en las computadoras Apple Macintosh y NeXT , la tecnología no fue ampliamente adoptada.
En 1984, Commodore desarrolló el protocolo Autoconfig y el bus de expansión Zorro para su línea de computadoras expandibles Amiga . La primera aparición pública fue en la feria de computadoras CES en Las Vegas en 1985, con el llamado prototipo "Lorraine". Al igual que NuBus, los dispositivos Zorro no tenían puentes ni interruptores DIP. La información de configuración se almacenaba en un dispositivo de solo lectura en cada periférico y, en el momento del arranque, el sistema host asignaba los recursos solicitados a la tarjeta instalada. La arquitectura Zorro no se extendió al uso informático general fuera de la línea de productos Amiga, pero finalmente se actualizó como Zorro II y Zorro III para la iteración posterior de las computadoras Amiga.
En 1987, IBM lanzó una actualización de la IBM PC conocida como la línea de computadoras Personal System/2 que utilizaba la arquitectura de microcanales . [12] El PS/2 era capaz de autoconfigurarse de forma totalmente automática. Cada pieza de hardware de expansión se entregaba con un disquete que contenía un archivo especial que se utilizaba para configurar automáticamente el hardware para que funcionara con la computadora. El usuario instalaba el dispositivo, encendía la computadora, cargaba la información de configuración del disco y el hardware asignaba automáticamente interrupciones, DMA y otras configuraciones necesarias.
Sin embargo, los discos representaban un problema si se dañaban o se perdían, ya que las únicas opciones en ese momento para obtener repuestos eran por correo postal o el servicio de acceso telefónico BBS de IBM . Sin los discos, cualquier hardware nuevo sería completamente inútil y, en ocasiones, el equipo no arrancaría hasta que se eliminara el dispositivo no configurado.
Micro Channel no obtuvo un apoyo generalizado, [13] porque IBM quería excluir a los fabricantes de clones de esta plataforma informática de próxima generación. Cualquiera que desarrollara para MCA tenía que firmar acuerdos de confidencialidad y pagar regalías a IBM por cada dispositivo vendido, lo que suponía un sobreprecio para los dispositivos MCA. Los usuarios finales y los fabricantes de clones se rebelaron contra IBM y desarrollaron su propio bus de estándares abiertos, conocido como EISA. En consecuencia, el uso de MCA languideció, excepto en los mainframes de IBM.
Con el tiempo, muchas tarjetas de arquitectura estándar industrial (ISA) incorporaron, mediante técnicas patentadas y variadas, hardware para autoconfigurarse o para proporcionar configuración de software; a menudo, la tarjeta venía con un programa de configuración en disco que podía configurar automáticamente el hardware configurable por software (pero no autoconfigurable por sí mismo). Algunas tarjetas tenían tanto puentes como configuración de software, con algunas configuraciones controladas por cada uno; este compromiso redujo la cantidad de puentes que se debían configurar, al tiempo que evitaba grandes gastos para ciertas configuraciones, por ejemplo, registros no volátiles para una configuración de dirección base. Los problemas de los puentes necesarios continuaron, pero disminuyeron lentamente a medida que cada vez más dispositivos, tanto ISA como de otros tipos, incluían hardware de autoconfiguración adicional. Sin embargo, estos esfuerzos aún no resolvieron el problema de asegurarse de que el usuario final tenga el controlador de software apropiado para el hardware.
ISA PnP o Plug & Play (antiguo) ISA era un sistema plug-and-play que utilizaba una combinación de modificaciones en el hardware, el BIOS del sistema y el software del sistema operativo para gestionar automáticamente las asignaciones de recursos. Fue reemplazado por el bus PCI a mediados de la década de 1990.
El plug and play PCI (configuración automática) se basa en la especificación PCI BIOS de la década de 1990, la especificación PCI BIOS fue reemplazada por ACPI en la década de 2000.
En 1995, Microsoft lanzó Windows 95 , que intentó automatizar la detección y configuración de dispositivos tanto como fuera posible, pero aún podía recurrir a configuraciones manuales si era necesario. Durante el proceso de instalación inicial de Windows 95, intentaría detectar automáticamente todos los dispositivos instalados en el sistema. Dado que la detección automática completa de todo era un proceso nuevo sin soporte total de la industria, el proceso de detección escribía constantemente en un archivo de registro de seguimiento de progreso durante el proceso de detección. En el caso de que el sondeo de dispositivos fallara y el sistema se congelara, el usuario final podría reiniciar la computadora, reiniciar el proceso de detección y el instalador usaría el registro de seguimiento para omitir el punto que causó el congelamiento anterior. [14]
En aquella época, un sistema podía tener una combinación de dispositivos, algunos capaces de configurarse automáticamente y otros que todavía utilizaban configuraciones totalmente manuales mediante puentes e interruptores DIP. El viejo mundo del DOS todavía acechaba bajo Windows 95 y los sistemas podían configurarse para cargar dispositivos de tres maneras diferentes:
Microsoft no podía ejercer un control total sobre todas las configuraciones de los dispositivos, por lo que los archivos de configuración podían incluir una combinación de entradas de controladores insertadas por el proceso de configuración automática de Windows 95 y también podían incluir entradas de controladores insertadas o modificadas manualmente por los propios usuarios de la computadora. El Administrador de dispositivos de Windows 95 también podía ofrecer a los usuarios la posibilidad de elegir entre varias configuraciones semiautomáticas para intentar liberar recursos para los dispositivos que aún necesitaban una configuración manual.
Además, aunque algunos dispositivos ISA posteriores eran capaces de realizar configuraciones automáticas, era común que las tarjetas de expansión ISA para PC se limitaran a una cantidad muy pequeña de opciones para las líneas de solicitud de interrupciones. Por ejemplo, una interfaz de red podría limitarse a las interrupciones 3, 7 y 10, mientras que una tarjeta de sonido podría limitarse a las interrupciones 5, 7 y 12. Esto da como resultado pocas opciones de configuración si algunas de esas interrupciones ya están siendo utilizadas por algún otro dispositivo.
El hardware de las computadoras PC también limitaba las opciones de expansión del dispositivo porque no se podían compartir las interrupciones y algunas tarjetas de expansión multifunción usaban múltiples interrupciones para diferentes funciones de la tarjeta, como una tarjeta serial de doble puerto que requería una interrupción separada para cada puerto serial.
Debido a este complejo entorno operativo, el proceso de detección automática a veces producía resultados incorrectos, especialmente en sistemas con una gran cantidad de dispositivos de expansión. Esto conducía a conflictos de dispositivos dentro de Windows 95, lo que provocaba que los dispositivos que se suponía que se configuraban por sí solos dejaran de funcionar. La falta de fiabilidad del proceso de instalación de dispositivos hizo que a veces se hiciera referencia a Plug and Play como Plug and Pray . [15]
Hasta aproximadamente el año 2000, los ordenadores personales todavía se podían adquirir con una combinación de ranuras ISA y PCI, por lo que aún era posible que fuera necesaria la configuración manual de los dispositivos ISA. Pero con los sucesivos lanzamientos de nuevos sistemas operativos como Windows 2000 y Windows XP, Microsoft tuvo suficiente influencia para decir que ya no se proporcionarían controladores para los dispositivos más antiguos que no admitieran la detección automática. En algunos casos, el usuario se vio obligado a comprar nuevos dispositivos de expansión o un sistema completamente nuevo para admitir la siguiente versión del sistema operativo.
Actualmente se utilizan varias interfaces informáticas completamente automatizadas, cada una de las cuales no requiere ninguna configuración de dispositivo ni ninguna otra acción por parte del usuario de la computadora, aparte de la instalación de software, para los dispositivos autoconfigurables. Estas interfaces incluyen:
En el caso de la mayoría de estas interfaces, el usuario final dispone de muy poca información técnica sobre el rendimiento de la interfaz. Aunque tanto FireWire como USB tienen un ancho de banda que debe ser compartido por todos los dispositivos, la mayoría de los sistemas operativos modernos no pueden supervisar ni informar sobre la cantidad de ancho de banda que se utiliza o está disponible, ni identificar qué dispositivos están utilizando actualmente la interfaz. [ cita requerida ]
Los servicios de tiempo de ejecución (detectables sólo en el software) son fundamentales para Windows ... que encuentra el encabezado Plug and Play y luego llama a los servicios de tiempo de ejecución. ... Windows 95 incluye un asistente para "Agregar nuevo hardware"
En la tarjeta Disk II, mientras la Apple II estaba inactiva, medí 600 mV... Corté la pista para la fuente de alimentación del lado B VCC de 3,3 y usé un cable de envoltura de alambre y lo soldé a +5v.
En el momento del lanzamiento del PS/2 en 1987, IBM PC... La línea se lanzó en abril de 1987 con... su nuevo bus de expansión, denominado Arquitectura de Micro Canal.
El PS/2 basado en la arquitectura MicroChannel propietaria... no era lo que demandaba el mercado
Entonces, Plug and Play suena genial, ¿verdad? Bueno, lo es... cuando todo funciona correctamente (¡por eso a veces también se lo llama "Plug and Pray"!)