IEEE 1394 and the Windows Platform
The optimal PC interconnect bus for consumer electronic devices
Updated: December 14, 2001
On This Page
What Is IEEE 1394?
IEEE 1394 serial bus is an easy, cost-effective, and high-performance means of interconnecting high-speed storage, imaging, and many new types of audio/video (A/V) devices easily, with no need to install separate drivers. On a PC running a current version of the Microsoft Windows operating system, the IEEE 1394 bus also provides an easy network interface, and is capable of supporting IP transports as well as isochronous media streaming (AV/C).
IEEE 1394 is already in widespread use in a variety of consumer electronics devices. Soon, most consumer PCs and many commercial PCs will include the IEEE 1394 bus. With IEEE 1394 support in PCs, the PC industry can ensure that PCs interoperate with consumer electronics and, more importantly, provide advanced capabilities through software that leverages PC storage and networking interface.
Windows Millennium Edition (Windows Me) and Windows 2000 delivered rich support for IEEE 1394, and Windows XP provides further enhancements with easy networking, printing, storage, and more. Microsoft believes that IEEE 1394 will enhance the usability of PCs and launch a new round of PC growth because of the new for capabilities PCs, including new participation in the consumer A/V cluster. To support this growth, Microsoft is providing the tools and infrastructure in Windows XP to leverage the IEEE 1394 interconnect and deliver its full value to users.
Why IEEE 1394 Is Important
IEEE 1394 defines a single interconnection bus that serves many purposes and user scenarios. In addition to its adoption by the consumer electronics industry, PC vendorsincluding Compaq, Dell, IBM, Fujitsu, Toshiba, Sony, NEC, and Gatewayare now shipping Windows-based PCs with IEEE 1394 buses.
With connectivity for storage, scanners, printers, and other types of consumer A/V devices, IEEE 1394 gives users all the benefits of a great legacy-free connectora true Plug and Play experience and hassle-free PC connectivity.
How IEEE 1394 Meets User Needs
Many consumers today own an assortment of electronic devices such as a PC, CD player, VCR, digital camera, and DVD player. These consumers are also likely to subscribe to Internet and cable TV services for their homes.
As consumers continue to buy and use more digital devices, they will want to integrate their PCs and other devices for flexible, easy operation and to take advantage of the ability under Windows to create, store, edit, and distribute that digital content.
To meet these user needs, a Windows-based, IEEE 1394-capable PC enables capabilities such as:
Current Issues for PC Connectivity
PCs are becoming more appliance-like while consumer electronics devices are becoming more intelligent and computer-like. Consumer electronics devices will increasingly be used as PC peripherals or in conjunction with PCs for certain tasks. This convergence cannot be easily or fully supported by the USB 1.1 capabilities available in PCs today:
As a complement to IEEE 1394, USB is the better interconnect for Human Interface Devices (HID) and devices such as modems and consumer printers and scanners. For these types of I/O devices, the USB device-class standards and the USB lower-speed data transfer together deliver a reliable user experience.
IEEE 1394 Technology
The IEEE 1394 bus addresses interconnection of both PC peripherals and consumer electronics with these features:
Digital Media and IEEE 1394
An IEEE 1394 bus is the digital interconnect of choice for consumer electronics devices. Manufacturers worldwide are delivering a wide array of new IEEE 1394 devices.
Storage Devices and IEEE 1394
A Windows XP-based PC that includes IEEE 1394 provides the best all-around support for new high-speed storage devices, internal or external.
For system manufacturers, IEEE 1394 also supports a faster preinstallation method for transferring operating system images to machines on the manufacturing line.
For Windows 2000 and Windows XP, all ANSI Serial Bus Protocol (SBP-2) IEEE 1394 devices that passed WHQL testing and use SCSI-2, MMC-2, or RBC command sets are supported as boot devices. This means that PCs can boot exclusively from internal or external IEEE 1394 hard drives without requiring the presence of a SCSI or IDE hard drive. An IEEE 1394-capable system must also have BIOS boot support in order to make the IEEE 1394 device available through existing real-mode INT 13 calls during the initial operating system load process.
With IEEE 1394 boot support in Windows 2000 and Windows XP, bootable CD or DVD media such as the Windows product disk can be used on systems that rely on external IEEE 1394 CD or DVD drives.
Microsoft provides an update package that addresses issues for IEEE 1394 storage devices under Windows 98 Second Edition, including issues related to the surprise removal of peripheral devices. The update package installs a safe device-removal utility that allows users to stop a Plug and Play storage device safely, before physically unplugging the device. The update package is available from the Microsoft Update web site.
This driver update provides the same robust capabilities and performance under Windows 98 Second Edition as provided in the Windows 2000 support for IEEE 1394 storage. In this update, the Ntmap component, which converts IOS-style requests (IOPs) into WDM-style requests (IRPs), was significantly simplified. The drivers in this update package have shown large performance improvements over the implementation of IEEE 1394 storage drivers provided with Windows 98 Second Edition.
Scanners and Printers and IEEE 1394
Windows-based PCs with IEEE 1394 support high-speed communications with printers, scanners, and multifunction peripherals.
Device support in Windows is based on the SBP-2 specification, which defines a protocol for transporting commands, data, and status between devices connected by the IEEE 1394 serial bus. For example, an IEEE 1394 scanner that uses SBP-2 to transport SCSI commands does not require additional drivers for Windows XP, Windows 2000, Windows Me, or Windows 98 Second Edition. The scanner uses the same drivers and INF entries as a SCSI scanner, with two exceptions: The Plug and Play ID in the INF is different, and Scsimap.sys is not needed.
For an IEEE 1394/SBP-2 device, the PnPID is a combination of the vendor name, device name, and command set ID. The easiest way to determine the PnPID is to plug the device into an IEEE 1394-capable system and then look in the registry under the following key:
The Plug and Play ID appears as the subkey name for the scanner under the Enum\1394 key. Use that value in the INF file instead of the SCSI Plug and Play ID. As an example, an entry in the INF might appear as follows:
In this example, the Plug and Play ID from the registry should be used to replace Vendor&Model&CmdSetId104d8.
For an IEEE 1394 SBP-2 scanner, only Scsiscan.sys must be loaded. Scsimap.sys is not needed, and it should be removed from the [AddReg] and [CopyFiles] sections in the INF for Windows 98 Second Edition and Windows Me. This file has never been required for Windows 2000 or Windows XP.
The version of Scsiscan.sys provided with Windows 98 Second Edition does not send down the open and close IRPs correctly, which causes a problem with IEEE 1394-connected scanners. To work around the problem in your development processes, use the version of Scsiscan.sys that ships with Windows 2000 or Windows XP.
If you need to provide the updated version of Scsiscan.sys to customers, this can be done under the license provision of the Windows DDK. If you choose to redistribute the Scsiscan.sys file, the file must be copied only as part of a [CopyFiles] INF section so that proper version checking occurs.
Debugging and IEEE 1394
The Microsoft-provided debugger solution can use IEEE 1394 OHCI controllers to interface with the debugger. Direct memory access from the IEEE 1394 bus to the target physical memory makes this an ideal solution for Windows Me, Windows XP, and future versions of Windows.
Systems equipped with one or more standard IHVI-compliant IEEE 1394 controllers can use the standard IEEE 1394 ports for connecting a host machine with one or more targets (up to 62 on a single bus). The host controller can be on the motherboard or attached by way of PCI (including CardBus). Standard IEEE 1394 cables can be used for this purpose. For information, see Debug Port Specification.
Windows XP and IEEE 1394
Windows XP supports a number of new capabilities for an IEEE 1394 bus:
Digital Media. Windows XP delivers IEEE 1394 support for digital video cameras. In addition, Windows XP supports MPEG-2 across IEEE 1394 on compatible DVD, digital television (DTV), digital satellite system, digital VHS, and set-top boxes. This support allows a Windows XP-based PC to interoperate with these devices and also send and receive MPEG-2 streams.
Windows XP also supports a new enhancement to audio capabilities: the PC can send digital audio streams to IEEE 1394 audio systems and speakers. Connecting a home stereo, home theater, and other equipment to a PC running Windows XP means the A/V cluster can be used for Internet access.
IEC-61883 is the standard communications and control interface used by IEEE 1394 audio/video devices. Windows XP supports the IEC-61883 protocol through a new kernel-mode driver, 61883.sys. This driver handles function control protocol (FCP), common isochronous packet (CIP) format, and connection management procedure (CMP) requests sent by an IEC-61883 client, such as an AV/C subunit driver, as defined in the IEC 61883-1 specification.
Manufacturers of consumer electronic audio/video devices can take advantage of IEC-61883 support in Windows XP by writing IEC-61883 client drivers. For details about writing related drivers, see "IEC-61883 Client Drivers" in the Windows DDK.
Virtual Devices. Windows XP gives developers an infrastructure for creating virtual devices. This infrastructure enables the developer to write a virtual device driver that exposes a non-IEEE 1394 device, such as a parallel port printer, so that it appears as an IEEE 1394-capable device on the network. Developers can also use this infrastructure to emulate devices during design and prototyping phases.
More Windows Support
In addition to the outstanding support in Windows XP, several Microsoft operating systems provide substantial support for IEEE 1394. All the versions of Windows listed here support the following:
Windows 2000 support:
Windows Me support:
Windows 98 Second Edition support: Users will want to upgrade to later versions of Windows that offer greater support for IEEE 1394. However, Windows 98 Second Edition supports the basic standards and devices listed earlier.
Windows CE support: Third-party vendors offer IEEE 1394 products for earlier versions of Windows CE.