PC Hardware in a Nutshell, 3rd Edition [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

PC Hardware in a Nutshell, 3rd Edition [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










24.2 USB Host Controller Interfaces


The intent of USB was to provide a
standardized Plug-and-Play interface that would permit USB-compliant
devices from any manufacturer to coexist peacefully with those from
any other maker. The ball got rolling in September 1995, when 25
major PC companies announced the formation of a consortium to develop
a nonproprietary, open Host Controller Interface (HCI) standard. This
was necessary because the HCI was not defined in the USB
specification itself. Although it would have been possible for each
motherboard or chipset manufacturer to develop a proprietary USB HCI,
that would have introduced serious compatibility issues between the
multiple HCIs and USB peripherals. So, for the good of the industry
and in the interests of interoperability, nearly all of the major
players in the PC industry signed on to this
initiative.

The HCI is the heart of USB, just as the chipset is the heart of a
motherboard. In fact, the USB HCI is often referred to as the USB
chipset. Just as the system chipset defines the functionality and
capabilities of the motherboard, coordinates the working of other
motherboard components, and arbitrates conflicting demands, a USB HCI
chipset defines the USB and performs analogous services for connected
USB peripherals.

The HCI may reside in any or all of the following three places:

Embedded in the motherboard chipset



All modern chipsets contain at least a USB
1.1 HCI embedded in the Southbridge. Most chipsets introduced after
mid-2002 include a USB 2.0 HCI. The quality and compatibility of the
embedded HCI depend on the maker of the chipset and its age, but even
the best and most recent embedded USB 1.1 HCIs may have issues with
some peripherals, particularly older models. If you use USB heavily,
and especially if you use many peripherals, it's
often a good idea to disable the embedded HCI in BIOS and substitute
an add-on PCI USB controller of more recent vintage.


As a separate chip on the motherboard



A few motherboards implement the
HCI as a discrete chip, separate from the main chipset Southbridge.
This method is common in USB 2.0 transition motherboards. For
example, early versions of Intel 845-family chipsets supported only
USB 1.1. Some transition Intel motherboards, such as the D845BGSE,
used a separate NEC mPD720100 USB 2.0 host controller as a stopgap to
add USB 2.0 functionality until Intel chipsets with integrated USB
2.0 functionality became available. As with embedded USB HCIs, a
discrete HCI can be disabled from BIOS Setup, should that become
necessary.


On an add-on peripheral card



Add-on PCI USB adapters are
available from numerous makers in both USB 1.1 and USB 2.0 variants.
USB 2.0 adapters cost little more than USB 1.1 adapters, so we
recommend only USB 2.0 models. All USB 2.0 adapters we are familiar
with use the NEC mPD720100 host controller, which fortunately seems
to be a good one.




If you buy a USB 2.0 adapter, make sure your
operating system supports it

as a USB 2.0
device . Otherwise, the operating system will recognize and
use the USB 2.0 adapter as a USB 1.1 adapter. Microsoft supports USB
2.0 only with Windows XP and Windows 2000. USB 2.0 support under
Windows 9X requires drivers supplied by the adapter maker. USB 2.0
support under Linux requires kernel 2.4.20 or higher.

It is
becoming increasingly common for motherboards to include more than
one HCI. Because each HCI defines a USB, motherboards with multiple
HCIs actually have two or more USBs defined, each of which has its
own root hub ports and operates independently from the others. The
benefits to having multiple USBs are that you can segregate devices
that conflict with each other by connecting them to separate USBs,
that you can dedicate separate USBs to USB 1.1 versus USB 2.0
devices, and that multiple HCIs allow the system to have several USB
ports available at both the front and rear of the case.


24.2.1 USB HCI Types



There
are three types of USB host controller:

Open Host Controller Interface (OHCI)




The Open
Host Controller Interface
(OHCI) is a
USB 1.X interface that was developed by a consortium of PC makers led
by Compaq, Microsoft, and National Semiconductor. OHCI places more of
the burden for managing USB functions on hardware, and less on
software. OHCI is most common in systems that use non-Intel chipsets,
including those from ALi, SiS, and VIA. Windows 98/SE/Me and Windows
2000/XP include native OHCI drivers. You can download the full Open
Host Controller Interface Specification from http://h18000.www1.hp.com/productinfo/development/openhcil.


If you run Windows 98SE on a system with an OCHI, visit the Microsoft
web site and read Knowledge Base article 253697. This combination of
OS and HCI can cause some very odd behavior, such as unplugging a
bulk-mode device from one root hub port causing a hub connected to a
different root hub port to disconnect. One possible symptom, believe
it or not, is your computer making a high-pitched whining noise, like
a phaser about to self-destruct.



Universal Host Controller Interface (UHCI)



The Universal Host Controller Interface
(UHCI) is a USB 1.X interface that was developed
by Intel. UHCI places more of the burden for managing USB functions
on software, and less on hardware. UHCI is most common in systems
with Intel chipsets, although many non-Intel chipsets also use UHCI.
USB devices designed to use UHCI (e.g., the Intel USB camera) may not
work properly with OHCI. Windows 98/SE/Me and Windows 2000/XP include
native UHCI drivers. You can download the full Universal Host
Controller Interface Design Guide from http://developer.intel.com/design/USB/UHCI11D.



Enhanced Host Controller Interface (EHCI)



The Enhanced Host Controller Interface
(EHCI) is the single USB 2.0 interface, used by
all USB 2.0 devices. The simple fact that a single integrated HCI
specification exists for USB 2.0 eliminates many of the problems that
occurred with USB 1.1 because of competing HCI standards. Of
Microsoft operating systems, only Windows XP and Windows 2000 have
native EHCI drivers available. Microsoft has no plans to release EHCI
drivers for any variant of Windows 9X. You can download the full
Enhanced Host Controller Interface Specification from http://www.intel.com/technology/usb/ehcispec.




24.2.2 USB HCI Issues



In
addition to the standard they supportOHCI, UHCI, or
EHCIUSB host controllers vary in how well they are
implemented. Early host controllers from all manufacturers, including
Intel, have numerous bugs and incompatibilities, which may manifest
in various ways, from minor performance glitches to a complete
failure of the USB to recognize devices.

It is important to be aware of the particular host controller your
system uses. That information can save you trouble when you are
attempting to connect various devices to your system, and may even
help you avoid buying a new USB device that has known
incompatibilities with your existing configuration. In general, HCI
issues are independent of operating system. That is, an HCI that has
problems under Windows 9X is likely to have the same or similar
problems under Windows 2000/XP and Linux.

Here are details about some of the USB host controllers you are
likely to encounter:

ALi chipsets




Although we do not have extensive
experience with ALi chipsets, there have been enough reported
problems that we consider USB support to be suspect. When configuring
an ALi-based system to use USB, we recommend updating the main system
BIOS to the most recent available, installing the latest chipset
drivers, disabling ACPI and power management in BIOS, and setting the
BIOS PnP OS? option to No. In Windows, replace the ALi USB Host
Controller with the Windows Standard OpenHCI USB Host Controller, and
disable USB error detection (for Win98 SE or later only). If your
motherboard has an old ALi chipset and you encounter USB problems,
often the most practical solution is to install a PCI/USB card.


AMD chipsets




The AMD-750
"Irongate" chipset has reasonably
robust USB support for an older chipset. Microsoft Knowledge Base
article Q241134 describes one known problem that occurs under Windows
98 and 98SE with low-speed devices such as mice and keyboards, and
provides a patch for that problem. The AMD-760 and AMD-760MP provide
generally reliable USB support, although we recommend running
motherboards based on those chipsets with ACPI disabled. Although the
first stepping of the AMD-760MPX chipset had a widely reported USB
bug, we expect later steppings of that chipset to resolve the
problem.


Intel PIIX3 (82371SB)




The PIIX3, used in
the Intel 430HX Pentium chipset, is USB 1.0-compliant and does not
function properly with many USB 1.1 devices. The PIIX3 supports one
USB 1.0 UHCI and two root hub ports. This chipset (and the
motherboards that use it) is so ancient that you should not even
consider attempting to connect modern USB devices to it. If upgrading
the motherboard is not an option, install an add-on USB card such as
those sold by Adaptec. If for some reason you must use the 82371SB,
you may be able to resolve some problems by substituting the 82317AB
or 82371AB/EB driver.


Technically, any USB 1.1-compliant peripheral should be compatible
with any USB 1.0-compliant controller. The updates from the USB 1.0
Specification to USB 1.1 tightened up ambiguities on the peripheral
side to eliminate conflicts, but made only minor changes to the
host-side specification. Conflicts between USB 1.0 controllers and
USB 1.1 peripherals are due less to the difference in USB
specification level than to bugs in USB 1.0 controllers.


Intel PIIX4 (82371AB)



The PIIX4, used in the Intel 430TX chipset, is
USB 1.1-compliant, despite the fact that its datasheet claims only
USB 1.0 compliance. The PIIX4 supports one USB 1.1 UHCI and two root
hub ports. Although this chipset should in theory support modern USB
1.1 devices, it is quite buggy and we therefore recommend not
attempting to use it. Again, replace the motherboard or install a
modern add-on USB adapter. If for some reason you must use the
82371AB, you may be able to resolve some problems by substituting the
updated 82371AB/EB driver.


For the Intel PIIX4 and later Intel chipsets, we suggest as a first
step that you visit http://developer.intel.com/design/software/drivers/platform/inf
and download the most recent Intel Chipset Software Installation
Utility. Heed all cautions listed.


Intel PIIX4E (82371EB)



The PIIX4E is used in the Intel 440BX, 400EX,
440LX, 440ZX, 440ZX66, 440GX, and 450NX chipsets, and is the oldest
USB host controller that you should consider using in a production
system. The PIIX4E supports one USB 1.1 UHCI and two root hub ports,
and has many fewer compatibility problems than do earlier Intel USB
controllers. The most common problem with the PIIX4E is a device not
being recognized when you connect it. The PIIX4E also may become
confused and lose connectivity if the screensaver kicks in or if the
system enters standby, suspend, or hibernate mode. If that occurs,
hot-plugging the device (disconnecting and then reconnecting the USB
cable while the PC and device remain on) may resolve the problem. In
our experience, the 82371EB seems reasonably well behaved with
low-speed USB devices such as mice and keyboards, particularly under
Windows 2000. It is more likely to have problems with hi-speed and
bulk-mode USB devices, particularly scanners, printers, and digital
cameras, and particularly under Windows 9X.


Intel I/O Controller Hub (ICH) (82801AA) and I/O Controller Hub (ICH0) (82801AB)



The 82801AA I/O Controller Hub
(ICH) and 82801AB I/O Controller
Hub
(ICH0) are used in the Intel 810,
810E, 815, 815G, 815P, 820, and 840 chipsets. The 82801AA and 82801AB
differ primarily in physical packaging, although different drivers
have been released for them. The 82801AA and 82801AB support one USB
1.1 UHCI and two root hub ports. Although the 82801AA and 82801AB
have significantly fewer incompatibilities than earlier Intel USB
controllers, you may still experience intermittent connection
problems. If you have problems with the 82801AA, try installing the
82801AB driver, which is fully compatible with the 82801AA but has
fewer issues.


Intel I/O Controller Hub 2 (ICH2) (82801BA/BAM)



The 82801BA/BAM I/O Controller Hub 2
(ICH2) is used in the Intel 810E2, 815E, 815EG,
815EP, 820E, 845, 850, and 860 chipsets. The 82801BAM is the mobile
version of the 82801BA. The 82801BA/BAM supports two USB 1.1 UHCIs
and four root hub ports. We have experienced no USB problems
attributable to this chipset, and reported problems are relatively
rare. If you do experience problems, try substituting the 82801AB
driver.


Intel I/O Controller Hub 3S (ICH3-S) (82801CA)



The 82801CA I/O Controller Hub 3-S
(ICH3-S) is used in the Intel E7500 and E7501
chipsets. The 82801CA supports three USB 1.1 UHCIs, which provide six
USB 1.1 root hub ports. We have insufficient experience with this
chipset to judge its reliability with USB, although it is quite
similar to the 82801BA/BAM chipset. We would expect its features and
compatibility to be similar to that of the 82801BA/BAM.


Intel I/O Controller Hub 4 (ICH4) (82801DB)



The 82801DB I/O Controller Hub 4
(ICH4) is used in the Intel 845E, 845G, 845GE,
845GL, 845GV, 845PE, E7205, and E7505 chipsets. The 82801DB supports
three USB 1.1 UHCIs, which provide six USB 1.1 root hub ports, as
well as one EHCI that provides six USB 2.0 root hub ports. We have
experienced no USB problems attributable to this chipset.


Intel I/O Controller Hub 5/5R (ICH5/ICH5R) (82801EB/82801ER)



The I/O Controller Hub 5
(ICH5) and I/O Controller Hub
5R
(ICH5R) are used in the Intel 865-
and 875-series chipsets. These two versions are functionally
identical, except that the ICH5R version supports hardware Serial ATA
RAID. The ICH5/ICH5R supports one ECHI that supports eight USB 2.0
root hub ports. We have experienced no USB problems attributable to
this chipset.


nVIDIA nForce and nForce2 chipsets




Both of
these chipsets are available in multiple versions, but USB features
and compatibility are similar for each of the chipsets. The
first-generation

n Force chipset supports three
USB 1.1 OHCIs, which provide up to six USB 1.1 root hub ports. The
second-generation

n Force2 supports two USB 1.1
OHCIs, which provide four USB 1.1 root hub ports, and one EHCI that
provides up to six USB 2.0 root hub ports. Our experience with

n VIDIA chipsets is limited, but we have never
encountered a USB 1.1 or USB 2.0 problem attributable to the chipset.


If you are experiencing USB problems, the fix may be as simple as
upgrading the main system BIOS, particularly if your USB controller
is a recent model. Even if it is not, however, a BIOS upgrade may
solve or minimize USB conflicts. For example, we have an elderly
Intel SE440BX-2V motherboard with an 82371EB USB host
controller.Attempting to use an Epson inkjet printer and a UMAX
scanner on that system was an exercise in frustration, with
apparently random problems plaguing us. For no obvious reason, one or
the other device would stop working. When both were working, powering
off or disconnecting one device sometimes caused the other to fail to
be recognized.

Attempting to use the scanner while the printer was
printing would sometimes lock up one or both devices. When we
rebooted the system, sometimes only the printer would appear in the
Device Manager; other times, only the scanner would appear. Sometimes
there would be two copies of one or both devices in the Device
Manager. And so on. In other words, a not-untypical USB 1.1
experience.

The camel-back-breaking straw happened one day when we
connected a USB mouse. That worked fine, with one exception. Every
time we moved the mouse, the printer ejected a sheet of paper.
Arrghhh. Enough was enough. We finally installed a BIOS upgrade on
the SE440BX-2V, and many of the problems became less severe. Then we
stripped the hard drive down to bare metal and reinstalled the
operating system. That pretty much cured the problem, although we
still keep our fingers crossed.


SiS chipsets




In the past, we avoided SiS chipsets,
as we have had numerous bad experiences with them, including what
appeared to be irresolvable USB conflicts. We still avoid early SiS
chipsets, but, as the old saying goes, even a blind pig finds an
acorn occasionally. The SiS735 chipset for AMD processors is a solid
chipset. It is inexpensive and fast, and appears to be robust in all
respects, including USB support. We expect that the follow-on SiS745
chipset is just as good, although we haven't tested
it. When configuring older SiS chipsets to use USB, we recommend
updating the main system BIOS to the most recent available,
installing the latest chipset drivers, disabling ACPI and power
management in BIOS, and setting the BIOS PnP OS? option to No. In
Windows, replace the SiS PCI to USB Open Host Controller with the
Windows Standard OpenHCI USB Host Controller, and disable USB error
detection (for Win98 SE or later only). If your motherboard has an
old SiS chipset and you encounter USB problems, often the only real
solution is to install a PCI/USB card.


VIA chipsets




We consider USB support in older VIA
chipsets to be fundamentally flawed. Even recent VIA chipsets for
both Intel and AMD processors have USB issues, although problems are
most severe with VIA chipsets from 1999 and earlier. In our
experience, system hangs, stop errors, and dropped connections are
common with VIA chipsets, particularly if you use hi-speed bulk-mode
USB peripherals. Unfortunately, the VIA web site is not forthcoming
about USB issues, attributing problems primarily to operating system
and power issues rather than to incompatibilities within the chipsets
themselves. We recommend you avoid running USB on any VIA-based
motherboard older than a year or two if at all possible, and also
that you avoid VIA-based PCI/USB cards. If you run USB on any VIA
chipset and experience USB problems, download and install the latest
USB Filter Patch from http://www.via.com.tw. Better still, install
a PCI/USB card and stop using the motherboard USB ports.




There is a severe USB bug in Windows 98SE
(Windows 98, Me, and 2000/XP are not affected) running on systems
with a VIA chipset and an AMD processor running faster than 350 MHz.
See the Microsoft Knowledge Base article Q240075 for details and a
patch file.



Windows 2000 and XP do not
support VIA chipsets REV_04 or earlier. Windows 2000 explicitly does
not support VIA chipsets with the VT83C572 or VT82C586 chips.
Microsoft warns that these chipsets are irreparably flawed, that they
cannot be fixed in software, and that using them may cause system
instability or data loss.


/ 238