Plug and play

Last updated

In computing, a plug and play (PnP) device or computer bus is one with a specification that facilitates the recognition of a hardware component in a system without the need for physical device configuration or user intervention in resolving resource conflicts. [1] [2] The term "plug and play" has since been expanded to a wide variety of applications to which the same lack of user setup applies. [3] [4]

Contents

Expansion devices are controlled and exchange data with the host system through defined memory or I/O space port addresses, direct memory access channels, interrupt request lines and other mechanisms, which must be uniquely associated with a particular device to operate. Some computers provided unique combinations of these resources to each slot of a motherboard or backplane. Other designs provided all resources to all slots, and each peripheral device had its own address decoding for the registers or memory blocks it needed to communicate with the host system. Since fixed assignments made expansion of a system difficult, devices used several manual methods for assigning addresses and other resources, such as hard-wired jumpers, pins that could be connected with wire or removable straps, or switches that could be set for particular addresses. [5] As microprocessors made mass-market computers affordable, software configuration of I/O devices was advantageous to allow installation by non-specialist users. Early systems for software configuration of devices included the MSX standard, NuBus, Amiga Autoconfig, and IBM Microchannel. Initially all expansion cards for the IBM PC required physical selection of I/O configuration on the board with jumper straps or DIP switches, but increasingly ISA bus devices were arranged for software configuration. [6] By 1995, Microsoft Windows included a comprehensive method of enumerating hardware at boot time and allocating resources, which was called the "Plug and Play" standard. [7]

Plug and play devices can have resources allocated at boot-time only, or may be hotplug systems such as USB and IEEE 1394 (FireWire). [8]

History of device configuration

A third-party serial interface card for the Apple II that required cutting and soldering to reconfigure. The user would cut the wire traces between the thinly connected triangles at X1 and X3 and solder across the unconnected <> pads at X2 and X4 located at the center of the card. Once done, reverting the modification was more difficult. Microdigital Super Serial Card SSC.jpg
A third-party serial interface card for the Apple II that required cutting and soldering to reconfigure. The user would cut the wire traces between the thinly connected triangles at X1 and X3 and solder across the unconnected ◀▶ pads at X2 and X4 located at the center of the card. Once done, reverting the modification was more difficult.
Jumperblock-shunts.jpg
DIP switch 01 Pengo.jpg
Left: Jumper blocks of various sizes.
Right: A DIP switch with 8 switches.

Some early microcomputer peripheral devices required the end user physically to cut some wires and solder together others in order to make configuration changes; [9] such changes were intended to be largely permanent for the life of the hardware.

As computers became more accessible to the general public, the need developed for more frequent changes to be made by computer users unskilled with using soldering irons. Rather than cutting and soldering connections, configuration was accomplished by jumpers or DIP switches. Later on this configuration process was automated: Plug and Play. [6]

MSX

The MSX system, released in 1983, [10] was designed to be plug and play from the ground up, and achieved this by a system of slots and subslots, where each had its own virtual address space, thus eliminating device addressing conflicts in its very source. No jumpers or any manual configuration was required, and the independent address space for each slot allowed very cheap and commonplace chips to be used, alongside cheap glue logic. On the software side, the drivers and extensions were supplied in the card's own ROM, thus requiring no disks or any kind of user intervention to configure the software. The ROM extensions abstracted any hardware differences and offered standard APIs as specified by ASCII Corporation.

NuBus

A NuBus expansion card without jumpers or DIP switches Radius PrecisionColor Series 24X 1993 1 front.JPG
A NuBus expansion card without jumpers or DIP switches

In 1984, the NuBus architecture was developed by the Massachusetts Institute of Technology (MIT) [11] as a platform agnostic peripheral interface that fully automated device configuration. The specification was sufficiently intelligent that it could work with both big endian and little endian computer platforms that had previously been mutually incompatible. However, this agnostic approach increased interfacing complexity and required support chips on every device which in the 1980s was expensive to do, and apart from its use in Apple Macintoshes and NeXT machines, the technology was not widely adopted.

Amiga Autoconfig and Zorro bus

In 1984, Commodore developed the Autoconfig protocol and the Zorro expansion bus for its Amiga line of expandable computers. The first public appearance was in the CES computer show at Las Vegas in 1985, with the so-called "Lorraine" prototype. Like NuBus, Zorro devices had absolutely no jumpers or DIP switches. Configuration information was stored on a read-only device on each peripheral, and at boot time the host system allocated the requested resources to the installed card. The Zorro architecture did not spread to general computing use outside of the Amiga product line, but was eventually upgraded as Zorro II and Zorro III for the later iteration of Amiga computers.

Micro-Channel Architecture

An MCA expansion card without jumpers or DIP switches MCA NIC IBM 83X9648.jpg
An MCA expansion card without jumpers or DIP switches

In 1987, IBM released an update to the IBM PC known as the Personal System/2 line of computers using the Micro Channel Architecture. [12] The PS/2 was capable of totally automatic self-configuration. Every piece of expansion hardware was issued with a floppy disk containing a special file used to auto-configure the hardware to work with the computer. The user would install the device, turn on the computer, load the configuration information from the disk, and the hardware automatically assigned interrupts, DMA, and other needed settings.

However, the disks posed a problem if they were damaged or lost, as the only options at the time to obtain replacements were via postal mail or IBM's dial-up BBS service. Without the disks, any new hardware would be completely useless and the computer would occasionally not boot at all until the unconfigured device was removed.

Micro Channel did not gain widespread support [13] because IBM wanted to exclude clone manufacturers from this next generation computing platform. Anyone developing for MCA had to sign non-disclosure agreements and pay royalties to IBM for each device sold, putting a price premium on MCA devices. End-users and clone manufacturers revolted against IBM and developed their own open standards bus, known as EISA. Consequently, MCA usage languished except in IBM's mainframes.

ISA and PCI self-configuration

In time, many Industry Standard Architecture (ISA) cards incorporated, through proprietary and varied techniques, hardware to self-configure or to provide for software configuration; often, the card came with a configuration program on disk that could automatically set the software-configurable (but not itself self-configuring) hardware. Some cards had both jumpers and software-configuration, with some settings controlled by each; this compromise reduced the number of jumpers that had to be set, while avoiding great expense for certain settings, e.g. nonvolatile registers for a base address setting. The problems of required jumpers continued on, but slowly diminished as more and more devices, both ISA and other types, included extra self-configuration hardware. However, these efforts still did not solve the problem of making sure the end-user has the appropriate software driver for the hardware.

ISA PnP or (legacy) Plug & Play ISA was a plug-and-play system that used a combination of modifications to hardware, the system BIOS, and operating system software to automatically manage resource allocations. It was superseded by the PCI bus during the mid-1990s.

The PCI plug and play (autoconfiguration) is based on the PCI BIOS Specification in 1990s, the PCI BIOS Specification is superseded by the ACPI in 2000s.

Legacy Plug and Play

In 1995, Microsoft released Windows 95, which tried to automate device detection and configuration as much as possible, but could still fall back to manual settings if necessary. During the initial install process of Windows 95, it would attempt to automatically detect all devices installed in the system. Since full auto-detection of everything was a new process without full industry support, the detection process constantly wrote to a progress tracking log file during the detection process. In the event that device probing would fail and the system would freeze, the end-user could reboot the computer, restart the detection process, and the installer would use the tracking log to skip past the point that caused the previous freeze. [14]

At the time, there could be a mix of devices in a system, some capable of automatic configuration, and some still using fully manual settings via jumpers and DIP switches. The old world of DOS still lurked underneath Windows 95, and systems could be configured to load devices three different ways:

Microsoft could not assert full control over all device settings, so configuration files could include a mix of driver entries inserted by the Windows 95 automatic configuration process, and could also include driver entries inserted or modified manually by the computer users themselves. The Windows 95 Device Manager also could offer users a choice of several semi-automatic configurations to try to free up resources for devices that still needed manual configuration.

An example of an ISA interface card with extremely limited interrupt selection options, a common problem on PC ISA interfaces.
Kouwell KW-524J dual serial, dual parallel port, 8-bit ISA, manufactured in 1992:
* Serial 1: IRQ 3/4/9
* Serial 2: IRQ 3/4/9
* Parallel 1: IRQ 5/7
* Parallel 2: IRQ 5/7
(There is no technical reason why 3,4,5,7,9 cannot all be selectable choices for each port.) Kouwell KW-524J - 8-bit PC ISA interface card - 4 port - 2 serial - 2 parallel.jpg
An example of an ISA interface card with extremely limited interrupt selection options, a common problem on PC ISA interfaces.
Kouwell KW-524J dual serial, dual parallel port, 8-bit ISA, manufactured in 1992:
* Serial 1: IRQ 3/4/9
* Serial 2: IRQ 3/4/9
* Parallel 1: IRQ 5/7
* Parallel 2: IRQ 5/7
(There is no technical reason why 3,4,5,7,9 cannot all be selectable choices for each port.)

Also, although some later ISA devices were capable of automatic configuration, it was common for PC ISA expansion cards to limit themselves to a very small number of choices for interrupt request lines. For example, a network interface might limit itself to only interrupts 3, 7, and 10, while a sound card might limit itself to interrupts 5, 7, and 12. This results in few configuration choices if some of those interrupts are already used by some other device.

The hardware of PC computers additionally limited device expansion options because interrupts could not be shared, and some multifunction expansion cards would use multiple interrupts for different card functions, such as a dual-port serial card requiring a separate interrupt for each serial port.

Because of this complex operating environment, the autodetection process sometimes produced incorrect results, especially in systems with large numbers of expansion devices. This led to device conflicts within Windows 95, resulting in devices which were supposed to be fully self-configuring failing to work. The unreliability of the device installation process led to Plug and Play being sometimes referred to as Plug and Pray. [15]

Until approximately 2000, PC computers could still be purchased with a mix of ISA and PCI slots, so it was still possible that manual ISA device configuration might be necessary. But with successive releases of new operating systems like Windows 2000 and Windows XP, Microsoft had sufficient clout to say that drivers would no longer be provided for older devices that did not support auto-detection. In some cases, the user was forced to purchase new expansion devices or a whole new system to support the next operating system release.

Current plug and play interfaces

Several completely automated computer interfaces are currently used, each of which requires no device configuration or other action on the part of the computer user, apart from software installation, for the self-configuring devices. These interfaces include:

For most of these interfaces, very little technical information is available to the end user about the performance of the interface. Although both FireWire and USB have bandwidth that must be shared by all devices, most modern operating systems are unable to monitor and report the amount of bandwidth being used or available, or to identify which devices are currently using the interface.[ citation needed ]

See also

Related Research Articles

<span class="mw-page-title-main">Parallel ATA</span> Interface standard for the connection of storage devices

Parallel ATA (PATA), originally AT Attachment, also known as IDE, is a standard interface designed for IBM PC-compatible computers. It was first developed by Western Digital and Compaq in 1986 for compatible hard drives and CD or DVD drives. The connection is used for storage devices such as hard disk drives, floppy disk drives, and optical disc drives in computers.

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The BIOS firmware comes pre-installed on an IBM PC or IBM PC compatible's system board and exists in some UEFI-based systems to maintain compatibility with operating systems that do not support UEFI native operation. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by some companies looking to create compatible systems. The interface of that original system serves as a de facto standard.

<span class="mw-page-title-main">Bus (computing)</span> System that transfers data between components within a computer

In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between computers. This expression covers all related hardware components and software, including communication protocols.

<span class="mw-page-title-main">Extended Industry Standard Architecture</span> Bus standard for IBM PC compatible computers

The Extended Industry Standard Architecture is a bus standard for IBM PC compatible computers. It was announced in September 1988 by a consortium of PC clone vendors as an alternative to IBM's proprietary Micro Channel architecture (MCA) in its PS/2 series.

<span class="mw-page-title-main">Industry Standard Architecture</span> Internal expansion bus in early PC compatibles

Industry Standard Architecture (ISA) is the 16-bit internal bus of IBM PC/AT and similar computers based on the Intel 80286 and its immediate successors during the 1980s. The bus was (largely) backward compatible with the 8-bit bus of the 8088-based IBM PC, including the IBM PC/XT as well as IBM PC compatibles.

<span class="mw-page-title-main">Motherboard</span> Main printed circuit board (PCB) for a computing device

A motherboard is the main printed circuit board (PCB) in general-purpose computers and other expandable systems. It holds and allows communication between many of the crucial electronic components of a system, such as the central processing unit (CPU) and memory, and provides connectors for other peripherals. Unlike a backplane, a motherboard usually contains significant sub-systems, such as the central processor, the chipset's input/output and memory controllers, interface connectors, and other components integrated for general use.

<span class="mw-page-title-main">Sound card</span> Expansion card that provides input and output of audio signals

A sound card is an internal expansion card that provides input and output of audio signals to and from a computer under the control of computer programs. The term sound card is also applied to external audio interfaces used for professional audio applications.

<span class="mw-page-title-main">VESA Local Bus</span> Expansion bus for 486 PCs

The VESA Local Bus is a short-lived expansion bus introduced during the i486 generation of x86 IBM-compatible personal computers. Created by VESA, the VESA Local Bus worked alongside the then-dominant ISA bus to provide a standardized high-speed conduit intended primarily to accelerate video (graphics) operations. VLB provides a standardized fast path that add-in (video) card makers could tap for greatly accelerated memory-mapped I/O and DMA, while still using the familiar ISA bus to handle basic device duties such as interrupts and port-mapped I/O. Some high-end 386DX motherboards also had a VL-Bus slot.

<span class="mw-page-title-main">Wake-on-LAN</span> Mechanism to wake up computers via a network

Wake-on-LAN is an Ethernet or Token Ring computer networking standard that allows a computer to be turned on or awakened from sleep mode by a network message.

<span class="mw-page-title-main">Tandy 1000</span> IBM PC compatible home computer system

The Tandy 1000 is the first in a line of IBM PC compatible home computer systems produced by the Tandy Corporation for sale in its Radio Shack and Radio Shack Computer Center chains of stores. Introduced in 1984, the product line was aimed at providing affordable but capable systems for home computing or education, with some of its Tandy specific features like graphics, sound and joystick port making it more appealing for home use.

Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).

<span class="mw-page-title-main">Expansion card</span> Circuit board for connecting to a computer system to add functionality

In computing, an expansion card is a printed circuit board that can be inserted into an electrical connector, or expansion slot on a computer's motherboard to add functionality to a computer system. Sometimes the design of the computer's case and motherboard involves placing most of these slots onto a separate, removable card. Typically such cards are referred to as a riser card in part because they project upward from the board and allow expansion cards to be placed above and parallel to the motherboard.

<span class="mw-page-title-main">Micro Channel architecture</span>

Micro Channel architecture, or the Micro Channel bus, is a proprietary 16- or 32-bit parallel computer bus introduced by IBM in 1987 which was used on PS/2 and other computers until the mid-1990s. Its name is commonly abbreviated as "MCA", although not by IBM. In IBM products, it superseded the ISA bus and was itself subsequently superseded by the PCI bus architecture.

<span class="mw-page-title-main">Sound Blaster</span> Family of sound cards by Creative Technology

Sound Blaster is a family of sound cards and audio peripherals designed by Singaporean technology company Creative Technology. The first Sound Blaster card was introduced in 1989.

<span class="mw-page-title-main">IBM PS/2</span> Second generation of personal computers by IBM

The Personal System/2 or PS/2 is IBM's second generation of personal computers. Released in 1987, it officially replaced the IBM PC, XT, AT, and PC Convertible in IBM's lineup. Many of the PS/2's innovations, such as the 16550 UART, 1440 KB 3.5-inch floppy disk format, 72-pin SIMMs, the PS/2 port, and the VGA video standard, went on to become standards in the broader PC market.

An Option ROM for the PC platform is a piece of firmware that resides in ROM on an expansion card, which gets executed to initialize the device and (optionally) add support for the device to the BIOS. In its usual use, it is essentially a driver that interfaces between the BIOS API and hardware. Technically, an option ROM is firmware that is executed by the BIOS after POST and before the BIOS boot process, gaining complete control of the system and being generally unrestricted in what it can do. The BIOS relies on each option ROM to return control to the BIOS so that it can either call the next option ROM or commence the boot process. For this reason, it is possible for an option ROM to keep control and preempt the BIOS boot process. The BIOS generally scans for and initializes option ROMs in ascending address order at 2 KB address intervals within two different address ranges above address C0000h in the conventional (20-bit) memory address space; later systems may also scan additional address ranges in the 24-bit or 32-bit extended address space.

In a computer, an interrupt request is a hardware signal sent to the processor that temporarily stops a running program and allows a special program, an interrupt handler, to run instead. Hardware interrupts are used to handle events such as receiving data from a modem or network card, key presses, or mouse movements.

<span class="mw-page-title-main">Sound Blaster 16</span> Sound card by Creative Technology

The Sound Blaster 16 is a series of sound cards by Creative Technology, first released in June 1992 for PCs with an ISA or PCI slot. It was the successor to the Sound Blaster Pro series of sound cards and introduced CD-quality digital audio to the Sound Blaster line. For optional wavetable synthesis, the Sound Blaster 16 also added an expansion-header for add-on MIDI-daughterboards, called a Wave Blaster connector, and a game port for optional connection with external MIDI sound modules.

<span class="mw-page-title-main">Legacy Plug and Play</span> Series of specifications and Microsoft Windows features

The term Legacy Plug and Play, also shortened to Legacy PnP, describes a series of specifications and Microsoft Windows features geared towards operating system configuration of devices, and some device IDs are assigned by UEFI Forum. The standards were primarily aimed at the IBM PC standard bus, later dubbed Industry Standard Architecture (ISA). Related specifications are also defined for the common external or specialist buses commonly attached via ISA at the time of development, including RS-232 and parallel port devices.

Commodore 64 disk/tape emulation and data transfer comprises hardware and software for Commodore 64 disk & tape emulation and for data transfer between either Commodore 64 (C64), Commodore (1541) disk drive or Commodore tape deck and newer computers.

References

  1. Kozierok, Charles M. (April 17, 2001). "Plug and Play". The PC Guide. Retrieved 2018-10-16.
  2. "plug and play Definition from PC Magazine Encyclopedia". pcmag.com. Archived from the original on 2013-03-27. Retrieved 2018-10-16.
  3. "How or where do I find Microsoft WPD Enhanced Storage Certificate". microsoft.com. December 28, 2011. Retrieved 2018-10-16.
  4. "What does Plug aNd Play mean?". Archived from the original on 2018-10-16. Retrieved 2018-12-08.
  5. "Legacy Plug and Play Guidelines - Microsoft Download Center". Archived from the original on 2016-12-16. Retrieved 2018-10-16.
  6. 1 2 "Does it pay to Plug and Play (COVER STORY". BYTE. October 1991.
  7. "Plug and Play Run-Time Services". DrDobbs.com. September 1, 1995. Run-time services (detectable only in software) are central to Windows ... that finds the Plug and Play header, then calls run-time services. ... Windows 95 includes an "Add New Hardware" wizard
  8. Plug and Play Definition
  9. "Apple II Card Electrical Woes". BigMESSoWires.com (Big Mess o' Wires). On the Disk II card, while the Apple II was idle, I measured 600 mV ... Cut the trace for the B VCC side power supply of 3.3 and use wire wrap wire and solder it to +5v.
  10. Gordon Laing (2004). Digital Retro: The Evolution and Design of the Personal Computer. Ilex Press. ISBN   9781904705390.
  11. Pasieka, Michael Stephen (1984). An examination of architectures for interfacing to the NuBus (Thesis). Massachusetts Institute of Technology. Dept. of Electrical. hdl:1721.1/15573.
  12. "The IBM PS/2: 25 years of PC history". July 10, 2012. By the time of the PS/2's launch in 1987, IBM PC ... The line launched in April 1987 with ... its new expansion bus, dubbed Micro Channel Architecture.
  13. "Open Standards vs. IBM – Remembering the MicroChannel Architecture". December 9, 2004. the PS/2 based on the proprietary MicroChannel architecture ... was not what the market demanded
  14. Scott Mueller, Upgrading and Repairing PCs, Eleventh Edition, Que, 2999, ISBN   0-7897-1903-7, page 1370
  15. "Plug and Play Overview: How Windows Finds Drivers for USB Devices". May 20, 2009. So Plug and Play sounds great, right? Well, it is... when everything works right (which is why it's sometimes also called "Plug and Pray"!)