%NCUU Audio Windows 98 Gold: audio 1.0 Windows Me: MIDI Windows XP: MIDI improved Communications Windows 98 SE: modem Windows 2000: Remote NDIS Content Security Windows XP: devices with
Trang 1audio 2.0 device can’t use an audio 1.0 host driver Version 2.0 adds full support for high speed, mandatory use of the interface association descriptor, and new capabilities and controls
&QEWOGPVCVKQP
The audio specification consists of the main class specification and supporting documents for audio data formats, terminal types, and MIDI devices The MIDI standard is available from the MIDI Manufacturers Association at
www.midi.org
Table 7-2: Windows provides drivers for many classes.
%NCUU
Audio Windows 98 Gold: audio 1.0
Windows Me: MIDI Windows XP: MIDI (improved) Communications Windows 98 SE: modem
Windows 2000: Remote NDIS Content Security Windows XP: devices with CSM-1 interfaces can provide a serial number Device Firmware
Upgrade
No support
Human Interface Windows 98 Gold: HID 1.0
Windows 98SE: HID 1.1 IrDA Bridge No support
Mass Storage Windows 2000: class driver
Windows 2000 XP3: support for multiple LUNs Personal healthcare No support
Printer Windows 2000: class driver
Smart Card Windows 2000 update: class driver
Still Image Windows 98SE: class driver (first phase/preliminary)
Windows 2000: class driver (improved) Test and
Measurement
No support
Video Windows 98 Gold: USB camera minidriver library USBCAMD 1.0 (not
supported under Windows 2000) Windows Me: USB camera minidriver library USBCAMD 2.0 Windows XP SP2: class driver
Trang 2Each audio function in a device has an Audio Interface Collection that consists
of one or more interfaces The interfaces include one AudioControl (AC) inter-face, zero or more AudioStreaming (AS) interfaces and zero or more MIDIStreaming (MS) interfaces (Figure 7-1) In other words, every Audio Interface Collection has an AudioControl interface, while AudioStreaming and MIDIStreaming interfaces are optional
In audio 2.0 devices, an interface association descriptor (IAD) specifies the interfaces that belong to a collection In audio 1.0 devices, a class-specific AC interface header descriptor contains this information
An AudioControl interface can enable accessing controls such as volume, mute, bass, and treble An AudioStreaming interface transfers audio data in isochro-nous transfers and may also carry control data related to the streaming data A MIDIStreaming interface transfers MIDI data
MIDI is a standard for controlling synthesizers, sound cards, and other elec-tronic devices that generate music and other sounds A MIDI representation of
a sound includes values for pitch, length, volume, and other characteristics A pure MIDI hardware interface carries asynchronous data at 31.25 kbps A USB interface that carries MIDI data uses the MIDI data format but not the asyn-chronous interface Instead, the MIDI data travels on the bus in bulk transfers
A device can have multiple Audio Interface Collections that are active at the same time, with each collection controlling an independent audio function
Trang 3Each audio interface uses standard and class-specific descriptors to enable the host to learn about the interface, its endpoints, and what kinds of data the end-points transfer The specification defines a variety of class-specific descriptors that provide information specific to audio functions Audio 1.0 endpoint descriptors have two additional bytes that follow the 7 bytes defined in the USB 2.0 specification Audio 2.0 endpoint descriptors use the standard 7-byte struc-ture
%NCUUURGEKHKE4GSWGUVU
The audio class provides optional class-specific requests for setting and getting the state of audio controls and exchanging generic data
%JKRU
Some USB controllers have built-in support for audio functions The support may include codec (compressor/decompressor) functions, analog-to-digital converters (ADCs), digital-to-analog converters (DACs), and support for Sony/Philips Digital Interface (S/PDIF) encoding for transmitting audio data
in digital format
Texas Instruments has a variety of USB audio chips The PCM2900 is a stereo audio codec with a full-speed USB port and 16-bit ADC and DAC The chip has an AudioControl interface, an AudioStreaming interface for each direction, and a HID interface that reports the status of three pins on the chip The chip requires no user programming but has the option to use a vendor-specific Ven-dor ID, Product ID, and strings The PCM2902 adds support for S/PDIF encoding The PCM2702 is a 16-bit stereo DAC with a full-speed USB inter-face The chip can accept data sampled at 48, 44.1, and 32 kHz using either 16-bit stereo or monaural audio data and supports digital attenuation and soft-mute features The TUSB3200A USB streaming controller contains an 8052-compatible microcontroller that supports up to seven IN endpoints and seven OUT endpoints The audio support includes a codec port interface, a DMA controller with four channels for streaming isochronous data packets to and from the codec port, and a phase lock loop (PLL) and adaptive clock gener-ator (ACG) to support synchronization modes
Trang 4Windows XP and Windows Vista support USB Audio 1.0 Windows Vista implements Microsoft’s Universal Audio Architecture (UAA), which improves audio support and defines requirements for devices that will use the operating system’s audio drivers Earlier Windows editions through Windows 2000 can also install the UAA driver All devices that are compatible with the USB audio
class system driver (usbaudio.sys) are UAA compliant.
Applications can access USB audio devices using the DirectMusic and Direct-Sound components of the Windows DirectX technology
%QOOWPKECVKQPU
The communications device class (CDC) encompasses a wide range of devices that perform telecommunications and networking functions Telecommunica-tions devices include analog phones and modems, digital phones (including cell phones), and ISDN terminal adapters as well as virtual COM-port devices Networking devices include ADSL modems, cable modems, and Ethernet adapters and hubs
The communications data typically uses an application-specific protocol such
as V.250 for modem control or Ethernet for network data
&QEWOGPVCVKQP
Documentation for the class consists of a main class specification and separate documents for these subclasses:
Asynchronous transfer mode (ATM)
Ethernet emulation model (EEM)
Ethernet control model (ECM)
ISDN
Public switched telephone network (PSTN)
Wireless mobile communications (WMC)
The V.250 standard (a previous version was V.25ter) defines a derivative of the Hayes AT modem command set and is available from the International
Tele-communication Union at www.itu.int The Ethernet standard, IEEE 802.3, is available from www.ieee.org
Trang 5net-framed data Remote NDIS is based on NDIS, which defines a protocol to manage communications with network adapters and higher-level drivers Both specifications are from Microsoft and are supported only on Windows
1XGTXKGY
A communications device is responsible for device management, call manage-ment if needed, and data transmission Device managemanage-ment includes control-ling and configuring a device and notifying the host of events Call management involves establishing and terminating telephone calls or other connections Not all devices require call management Data transmission is the sending and receiving of application data such as phone conversations or files sent over a modem or network
The communications device class supports six major models for communicat-ing
• Asynchronous transfer mode (ATM) devices include ADSL modems
• Ethernet emulation model (EEM) devices exchange Ethernet-framed data Commands share endpoints, and each packet is preceded by a 2-byte header
• Ethernet control model (ECM) devices also exchange Ethernet-framed data using an older protocol that is less efficient than EEM Class-specific requests and notifications manage the interface
• ISDN devices include terminal adapters for ISDN lines
• Public switched telephone network (PSTN) devices include voice modems, telephones, and serial-emulation (virtual COM-port) devices Some devices that exchange Ethernet-framed data use the PSTN model with a ven-dor-specific protocol
• Wireless mobile communications (WMC) devices include cell phones and other multi-function devices
Notifications, which announce events such as ring detect and network connect
or disconnect, can travel to the host in an interrupt or bulk pipe Most devices use interrupt pipes Each notification consists of an 8-byte header followed by a variable-length data field Some device types don’t require notifications
&GUETKRVQTU
The descriptors can specify a communications function at the device or inter-face level If specified at the device level, all of the device’s interinter-faces belong to
Trang 6the communications function In the device descriptor, bDeviceClass = 02h to specify CDC (Figure 7-2) In a composite device, which contains multiple functions, an interface association descriptor (IAD) specifies which interfaces belong to the communication function, and bDeviceClass, bDeviceSubclass,
Figure 7-2 A communications device provides interfaces for data and
notifications.
Trang 7Every communications device must have an interface descriptor with bInter-faceClass = 02h to indicate a Communication interface that handles device management and call management The bInterfaceSubClass field specifies a communication model Table 7-3 shows defined values for the subclasses The bInterfaceProtocol field can name a protocol supported by a subclass Table 7-4 shows defined values for protocols
Table 7-3: In the interface descriptor for a communication device, the
bInterfaceSubClass field indicates the communication model the device
supports.
%QFG D+PVGTHCEG5WD%NCUU #RRNKECVKQP
01h PSTN Direct Line Control Model Telephone modem with the host providing
any data compression and error correction The device or host may provide
modulation/demodulation of the modem data.
02h PSTN Abstract Control Model Telephone modem with the device providing
any data compression, error correction, and modulation/demodulation of the modem data.
03h PSTN Telephone Control Model Telephone.
04h ISDN: Multi-Channel Control
Model
ISDN device with multiple, multiplexed channels.
05h ISDN: CAPI Control Model ISDN device with support for
COMMON-ISDN-API (CAPI) commands and messages.
06h ECM (Ethernet Control Model) Device that exchanges Ethernet-framed data.
08h WMC wireless handset control
model
Logical handset.
09h WMC device management model AT commands only.
0Ah WMC mobile direct line model Migrates some functions of wireless terminal
adapters to the USB host.
0Bh WMC OBEX model Data exchange protocol.
0Ch EEM (Ethernet Emulation Model) Device that exchanges Ethernet-framed data.
80h–FEh Vendor specific Vendor defined.
Trang 8Following the Communication interface descriptor is a class-specific Functional descriptor consisting of a Header Functional descriptor followed by one or more descriptors (also called Functional descriptors) that provide information about a communication function Table 7-5 shows defined values for these descriptors
One of these descriptors, the Union Functional descriptor, has the special func-tion of defining a relafunc-tionship among interfaces that form a funcfunc-tional unit The descriptor designates one interface as the master or controlling interface, which can send and receive certain messages that apply to the entire group For example, a Communication interface can be a master interface for a group con-sisting of a Communication interface and a Data interface The interfaces that make up a group can include communications-class interfaces as well as other related interfaces such as audio and HID
If the Communication interface has a bulk or interrupt endpoint for event noti-fications, the endpoint has a standard endpoint descriptor
A communications device can also have an interface descriptor with bInterface-Class = 0Ah to indicate a Data interface A Data interface can have bulk or iso-chronous endpoints for carrying application data Each of these endpoints has a standard endpoint descriptor Some devices use other class or vendor-specific interfaces for application data For example, a telephone might use an audio interface to send and receive voice data
Table 7-4: In the descriptor for a Communication interface, the
bInterfaceProtocol field can indicate a protocol the communications model supports.
%QFG &GUETKRVKQP
00h No class-specific protocol required
01h AT commands (specified in ITU V.250)
02h–06h AT commands used by WMC devices
07h Ethernet Emulation Model (EEM)
08h–FDh Future use
FEh External protocol The commands are defined by a command set
functional descriptor
FFh Vendor specific
Trang 9nected directly to an RS-232 port on the PC The device may have an asyn-chronous serial interface that communicates with other circuits, but an asynchronous interface isn’t required The USB host doesn’t have to know how the device uses the COM-port data A virtual COM-port device can use bInter-faceSubClass = 02h to specify the abstract control model and bInterfaceProto-col = 01h to specify AT commands For compatibility with the Windows driver, the interface should specify this subclass even if the device doesn’t use AT com-mands The Communication interface has an interrupt endpoint, and the Data interface has a bulk endpoint for each direction For improved performance, some virtual COM-port devices use vendor-specific drivers and thus don’t
Table 7-5: A Functional descriptor consists of a Header functional descriptor followed by one or more function-specific descriptors.
D+PVGTHCEG5WD%NCUU (WPEVKQPCN&GUETKRVQT6[RG
03h Direct Line Control Management
05h Telephone Call and Line State Reporting Capabilities
11h–18h WMC Functional Descriptors
1Ah–7Fh Reserved (future use)
80h–FEh Vendor specific
Trang 10belong to the communications device class My book Serial Port Complete has
more about COM ports and USB virtual COM-port devices
A USB/Ethernet adapter that functions as a Remote NDIS device consists of a Communication interface and a Data interface In the Communication inter-face, bInterfaceSubClass = 02h to specify the abstract control model and bInter-faceProtocol = FFh to specify a vendor-specific protocol The Communication interface has an interrupt endpoint, and the Data interface has two bulk end-points Each endpoint has an endpoint descriptor
%NCUUURGEKHKE4GSWGUVU
Class-specific requests get and set status and control information The sup-ported requests vary with the subclass and the device
%JKRU
Many communications devices, including virtual COM-port devices, can use just about non-low-speed, general-purpose device controller
For USB/Ethernet bridges, Asix Electronics Corporation has the AX88172A, which converts between full- or highspeed USB and 10- or 100-Mbps Ether-net K-Micro has the KLKUSB220 with a 16-bit CPU, full/high-speed USB port, and a 10/100-Mbps Ethernet interface Freescale Semiconductor’s 32-bit MCF5482 ColdFire microprocessor contains a full/high-speed USB device controller and an Ethernet controller
9KPFQYU5WRRQTV
The modem driver included with Windows 98 SE and later (usbser.sys) is
com-patible with modems and other devices that use the abstract control model Each device must have an INF file that contains the device’s Vendor ID and
Product ID USB virtual COM-port devices can also use the usbser.sys driver.
Composite CDC devices should use Windows XP SP3 or later, which have
updated versions of the usbser.sys and usbccgp.sys drivers For mapping Remote NDIS to USB, Windows 2000 and later have the usb8023.sys driver.
Several vendors offer drivers for subclasses that Windows doesn’t support and enhanced drivers for other subclasses Belcarra Technologies Corporation has ECM and EEM drivers Jungo Ltd has drivers for modems, serial-port