Previous | Next

Overview of System Buses

Windows 98 supports four system bus standards for connecting hardware devices to the computer. The two new standards are Universal Serial Bus (USB) and IEEE 1394, both supported by WDM. The other two are PCI and PC Card, both currently supported by Windows 95 but unsupported by WDM. The following sections describe the four system bus standards supported by Windows 98.

Using USB

USB is an external bus standard for the computer that brings the Plug and Play capability of hardware devices (such as keyboards, mouse devices, and hard drives) outside the computer, eliminating the need to install cards into dedicated computer slots and reconfigure the system. With USB, hardware devices can be automatically configured as soon as they are physically attached—without the need to reboot or run the setup sequence. USB is supported by WDM under Windows 98.

USB Topology

As seen in Figure 30.2, USB uses a tiered topology, allowing you to attach up to 127 devices to the bus simultaneously. USB currently supports up to five tiers. Each device can be located up to five meters from its hub.

Figure 30.2 Example of the USB topology

The three types of USB components are:

Note

When you plug a device into a particular port for the first time, Windows 98 must go through the detection and enumeration process with that device.

Choosing Devices Supported by USB

You can connect the following USB devices to your computer: monitor controls, audio I/O devices, telephones, modems, speakers, keyboards, mouse devices, joysticks, scanners, printers, low-bandwidth video devices, digital still cameras, data gloves, and digitizers. For computer-telephony integration, USB provides an interface for Integrated Services Digital Network (ISDN) and digital PBXs.

For USB, the computer host controller is implemented through the OpenHCI or UHCI standards. To work with USB, the host controller must comply with one of these standards.

The USB Connector and Cable

The USB specification defines a standard connector, socket, and cable, which all USB devices can use. This single standard eliminates the confusion caused by the current mixture of connector and cable types required for hardware devices. The USB hub uses a type A connector, and the device uses a type B connector.

Data Transfer Rates Supported by USB

USB supports four data transfer modes: interrupt, control, bulk, and isochronous. Each mode applies to the endpoints of the same name and has separate characteristics. Isochronous and interrupt endpoints reserve bandwidth and are guaranteed access to transfer data at the established rate. Bulk and control endpoints are scheduled for best fit or for whatever bandwidth is available, but 10% of the total bus bandwidth is reserved for bulk and control transfers. Guaranteed data delivery is required to support the demands of multimedia applications and devices.

The USB host determines the data transfer rate and the priority assigned to a data stream. USB supports the following maximum data transfer rates, depending on the amount of bus bandwidth a device requires:

USB Support for Plug and Play

Windows 98 supports Plug and Play through USB in several ways.

Hot Plug-in Capability.

You can plug a USB device into the system anytime. The USB hub driver enumerates the device and notifies the system that the device is present.

Persistent Addressing.

USB devices use descriptors to identify the device and its capabilities and protocols used. The serial number generates the Plug and Play ID, and the port address indicates the port and hub the device is connected to. If the device does not provide a serial number, USB uses the device’s port address.

Power Management Support.

USB supports three power modes: On, Suspend, and Off. USB devices can be placed in Suspend mode and still retain the ability to wake up the system.

USB Driver Interface

Windows 98 supports USB by allowing USB device drivers to communicate with the USB driver stack. Between the USB device drivers (for example, Human Interface [HID] drivers for keyboard, mouse, and joystick) and the USB driver stack is the USB Driver Interface (USBDI). In Windows 98, this communication takes place within the WDM layered architecture.

The USB driver architecture is shown in Figure 30.3.

Note

Although Windows 98 natively supports many USB devices, some devices might require additional drivers or application software (for example, a device developed after the release of Windows 98 might not be inherently recognized). Such a device would ship with a diskette or other medium containing the required driver or application software.

Figure 30.3 USB Driver Architecture

Figure 30.3 shows the following modules:

In addition, Hidclass.sys, a WDM input class driver, sends and receives HID reports to and from its minidrivers. Hidusb.sys, an HID device driver, sends and receives HID reports over the USB. The PCI Enumerator loads the USB stack driver components when a USB bus is detected on a platform and always loads at least the other core components.

Windows 98 is able to recognize a USB device once the client device driver communicates with the USB driver stack. This requires that a WDM I/O request packet (IRP) be issued to pass information across the USBDI between the client device driver and the USB driver stack.

For more information about how device drivers communicate with the USB through the use of IRPs, see the Windows 98 DDK.

Using the IEEE 1394 Bus

Windows 98 supports the IEEE 1394 bus, also known as FireWire. It is designed for high-bandwidth computer devices, such as digital camcorders, cameras, and videodisc players. IEEE 1394 devices are supported by WDM in accordance with the OpenHCI standard.

You can connect up to 63 devices to one IEEE 1394 bus and interconnect up to 1023 buses to form a very large network with over 64,000 devices. Each device can have up to 256 terabytes of memory addressable over the bus. A built-in mechanism ensures equal access to the bus for all devices.

For more information about device support under IEEE 1394, see "Choosing Devices Supported by IEEE 1394" later in this chapter.

Looking at the IEEE 1394 Bus Topology

Figure 30.4 shows an example of an IEEE 1394 bus configuration.

Figure 30.4 An IEEE 1394 bus configuration

The four types of IEEE 1394 bus components are:

Choosing Devices Supported by IEEE 1394

Windows 98 supports IEEE 1394 by allowing IEEE 1394 device drivers to communicate with the IEEE 1394 bus class driver. In accordance with the OpenHCI standard, Windows 98 currently includes the IEEE 1394 bus class driver with hardware-specific minidriver extensions for add-on and motherboard host controllers.

The IEEE 1394 Bus Connector and Cable

The IEEE 1394 specification defines a standard connector and socket based on the Nintendo GameBoy connector. An IEEE 1394 bus cable contains two power conductors and two twisted pairs for transmitting data.

Data Transfer Rates Supported by IEEE 1394

The IEEE 1394 specification currently supports the following bus transfer rates:

Higher transfer rates are under development.

You can freely interconnect devices with different data rates; communication automatically takes place at the highest rate supported by the lowest-rate device.

IEEE 1394 supports two data transfer protocols: isochronous and asynchronous. An isochronous connection transfers data at a guaranteed, fixed rate of delivery. Guaranteed data delivery is required to support the demands of multimedia applications and devices. Asynchronous data can be transferred whenever there is no isochronous traffic on the bus.

IEEE 1394 Support for Plug and Play

Windows 98 supports hot plugging of nodes; you can plug an IEEE 1394 device into the system anytime.

IEEE 1394 Standards

IEEE 1394 device standards are currently under development. To simplify IEEE 1394 device development, Microsoft is participating with industry partners and the 1394 Trade Association to define the standards necessary to enable seamless integration of IEEE 1394 consumer devices with computers. Table 30.1 lists the standards.

Table 30.1 Proposed IEEE 1394 standards

Standard Benefit
OpenHCI
Standard interface for computer host controller hardware
Enables broad computer market adoption of IEEE 1394 by providing standard hardware and software much like IDE.
SBP-2
General-purpose command transport protocol for IEEE 1394
Simplifies device development by providing a common transport protocol that can be used to support a range of device classes.
Device power management
Interfaces for centralized power management (proposed)
Provides standard power-control interfaces for centralized power management and OnNow devices, based on application demand.
Plug and Play design reference
Requirements for interoperability (proposed)
Provides guidelines for configuration-ROM structure, bus-management capabilities, and electro-mechanical design for overall ease of use.

Each proposed standard has been submitted to the 1394 Trade Association for industry review and feedback. After this has been completed, many of the standards will be forwarded to an appropriate standards body, such as the Institute of Electrical and Electronics Engineers (IEEE) or the American National Standards Institute (ANSI). Wide adoption of these standards will ensure the interoperability of IEEE 1394 devices and computers.

Comparing the IEEE 1394 Bus and USB

The IEEE 1394 bus and USB are used for different classes of devices. The IEEE 1394 bus, with its fast data rates, is designed for high-bandwidth consumer electronics connections to the computer, such as those required by digital camcorders and digital videodisc players, storage, printers, and scanners. The slower data rate of USB is suited for more traditional computer connections, such as those required by keyboards, mouse devices, joysticks, and handheld scanners. USB is also suitable for advanced computer games, high-fidelity audio, and highly compressed video, such as MPEG-1.

The Simply Interactive PC (SIPC) is the Microsoft initiative to create computers that never have to be serviced by the user and are as simple to use as any household appliance. The SIPC concept requires that the ports for the IEEE 1394 bus and USB be easily accessible, that is, available on the front of the computer where you can easily walk up and plug in a hardware device. More permanent installations of IEEE 1394 or USB devices will be handled from the back of the computer.

Because the SIPC concept is compatible with the IEEE 1394 bus, USB, WDM, and OnNow power management, Windows 98 and future versions of Windows NT will be the operating systems of choice for computers designed under the SIPC concept.

Supporting Legacy Buses

The following sections describe how the buses supported previously by Windows now function under Windows 98.

The PCI Bus

The PCI bus is a high-performance bus well suited for transferring data between hardware devices, adapters, and other bus backplanes. Today, almost all computers ship with a PCI backplane or host bus. The PCI bus is usually connected to the host CPU and main memory through a bridge device that controls the data transfers between the CPU, cache, and main memory. This bridge also provides the major interface, and controls the data transfer between main memory and all the other devices on the PCI bus.

Because of its high bandwidth, the PCI bus is capable of high-performance data transfers.

Note

This calculation is an approximation of the maximum transfer rate. Not every PCI bus cycle is used to transfer data, and the calculation does not include latency or guarantees of isochronous transfers.

To calculate the maximum transfer rate on the PCI bus

  1. Multiply the bus clock rate by the bus width in bits.
  2. Divide by the number of clock cycles it takes for each data transfer (1 cycle for the PCI bus).

The following example illustrates this calculation:

Clock rate 33 MHz
Bus width 32 bits
Maximum transfer rate 1.06 Gbps

This is higher than the maximum IEEE 1394 bus rates (98.304, 196.608, and 393.216 Mbps) and considerably higher than the maximum USB rate (12 Mbps).

PC Card and CardBus

Windows 98 supports the new features of products designed for the Personal Computer Memory Card International Association (PCMCIA) standard, also known as PC Card. These products include multifunction cards, 3.3-V cards, and 32-bit PC Cards. These advancements add the modularity and bus-independence of Plug and Play without affecting device drivers. Driver development under Windows 98 is identical to that used in Windows 95, and many Plug and Play drivers that operated under Windows 95 can be used unmodified under Windows 98 to support the same controller implemented on the multifunction or 32-bit PC cards.

Windows 98 supports CardBus, a combination of PC Card 16 and PCI, also known as PC Card 32. CardBus brings 32-bit performance and the benefits of the PCI bus to the PC Card format. CardBus allows portable computers to run high-bandwidth applications, such as Video Capture.

As of this writing, CardBus implementations under Windows 98 are being developed.

The SCSI Bus

The Small Computer Standard Interface (SCSI) is used with such devices as hard disks and CD-ROM drives. Each device on the bus is connected in a daisy-chained topology. Plug and Play SCSI devices support dynamic changes to the adapter and automatic configuration of device ID and termination.

For more information about support for SCSI devices and drivers, see Chapter 10, "Disks and File Systems."

For more information about Plug and Play using SCSI devices, see Chapter 24, "Device Management."

The ISA Bus

The Industry Standard Architecture (ISA) bus is specified for the IBM PC/AT. Plug and Play ISA devices can be used on existing computers, because the specification does not require any change to ISA buses. For legacy devices, standard ISA cards can coexist with Plug and Play ISA cards on the same computer. Windows 98 determines the type of hardware and its configuration during Setup.

For more information about ISA devices, see Chapter 24, "Device Management."

The EISA Bus

The Enhanced Industry Standard Architecture (EISA) bus is specified for x86-based computers by an industry consortium. EISA devices use cards that are upwardly compatible from ISA. As with ISA, standard EISA cards can coexist with Plug and Play EISA cards on the same computer.

For more information about EISA devices, see Chapter 24, "Device Management."