Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > 2c51d8eb79f8810ada971ee8c30ce1e5 > files > 3759

kernel-doc-2.6.32-71.14.1.el6.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>Chapter&#160;1.&#160;Introduction to USB on Linux</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="The Linux-USB Host Side API" /><link rel="up" href="index.html" title="The Linux-USB Host Side API" /><link rel="prev" href="index.html" title="The Linux-USB Host Side API" /><link rel="next" href="ch02.html" title="Chapter&#160;2.&#160;USB Host-Side API Model" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&#160;1.&#160;Introduction to USB on Linux</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch02.html">Next</a></td></tr></table><hr /></div><div class="chapter" title="Chapter&#160;1.&#160;Introduction to USB on Linux"><div class="titlepage"><div><div><h2 class="title"><a id="intro"></a>Chapter&#160;1.&#160;Introduction to USB on Linux</h2></div></div></div><p>A Universal Serial Bus (USB) is used to connect a host,
    such as a PC or workstation, to a number of peripheral
    devices.  USB uses a tree structure, with the host as the
    root (the system's master), hubs as interior nodes, and
    peripherals as leaves (and slaves).
    Modern PCs support several such trees of USB devices, usually
    one USB 2.0 tree (480 Mbit/sec each) with
    a few USB 1.1 trees (12 Mbit/sec each) that are used when you
    connect a USB 1.1 device directly to the machine's "root hub".
    </p><p>That master/slave asymmetry was designed-in for a number of
    reasons, one being ease of use.  It is not physically possible to
    assemble (legal) USB cables incorrectly:  all upstream "to the host"
    connectors are the rectangular type (matching the sockets on
    root hubs), and all downstream connectors are the squarish type
    (or they are built into the peripheral).
    Also, the host software doesn't need to deal with distributed
    auto-configuration since the pre-designated master node manages all that.
    And finally, at the electrical level, bus protocol overhead is reduced by
    eliminating arbitration and moving scheduling into the host software.
    </p><p>USB 1.0 was announced in January 1996 and was revised
    as USB 1.1 (with improvements in hub specification and
    support for interrupt-out transfers) in September 1998.
    USB 2.0 was released in April 2000, adding high-speed
    transfers and transaction-translating hubs (used for USB 1.1
    and 1.0 backward compatibility).
    </p><p>Kernel developers added USB support to Linux early in the 2.2 kernel
    series, shortly before 2.3 development forked.  Updates from 2.3 were
    regularly folded back into 2.2 releases, which improved reliability and
    brought <code class="filename">/sbin/hotplug</code> support as well more drivers.
    Such improvements were continued in the 2.5 kernel series, where they added
    USB 2.0 support, improved performance, and made the host controller drivers
    (HCDs) more consistent.  They also simplified the API (to make bugs less
    likely) and added internal "kerneldoc" documentation.
    </p><p>Linux can run inside USB devices as well as on
    the hosts that control the devices.
    But USB device drivers running inside those peripherals
    don't do the same things as the ones running inside hosts,
    so they've been given a different name:
    <span class="emphasis"><em>gadget drivers</em></span>.
    This document does not cover gadget drivers.
    </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="ch02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The Linux-USB Host Side API&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Chapter&#160;2.&#160;USB Host-Side API Model</td></tr></table></div></body></html>