1. Trang chủ
  2. » Công Nghệ Thông Tin

USB Complete fourth- P15 pdf

10 258 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 199,13 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Comments: If the device detects an error in the received Setup or Data packet, the device returns no handshake.. For example, in the Set Configuration request, the host passes a configur

Trang 1

Chapter 4

/KETQUQHV15&GUETKRVQTU

Microsoft OS descriptors enable storing Windows-specific information Placing the information in descriptors means the information is available on attach-ment instead of requiring users to provide the information on separate media The Microsoft OS string descriptor has an index of EEh and contains an embedded signature Windows XP SP1 and later request this string descriptor from a device on first attachment A device that doesn’t support the descriptor should return STALL On retrieving a Microsoft OS string descriptor, Win-dows may request one or more Microsoft OS feature descriptors The extended compat ID feature descriptor contains Microsoft-defined IDs that can help Windows locate a driver for device functions that don’t have Windows-pro-vided drivers The extended properties feature descriptor can provide text, icons, and other device-specific properties

7RFCVKPI&GUETKRVQTUVQ75$

To update descriptors for a USB 1.x device to USB 2.0, all except some devices that have isochronous endpoints require just one change: in the device descrip-tor, bcdUSB must be 0200h or greater As Chapter 3 explained, a USB 2.0 device’s default interface(s) must request no isochronous bandwidth, so an interface that wants to do isochronous transfers must have at least one alternate interface setting, and the alternate interface descriptor will have at least one subordinate endpoint descriptor

Table 4-14: The device capability descriptor can provide information that is specific to a technology or another aspect of a device or its function.

02h = USB 2.0 EXTENSION 03h = SUPERSPEED_USB 04h = CONTAINER ID 00h, 05h–FFH (reserved)

3 Capability-Dependent varies Capability-specific data and format.

Trang 2

%QPVTQN6TCPUHGTU

5VTWEVWTGF4GSWGUVUHQT

%TKVKECN&CVC

Of USB’s four transfer types, control transfers have the most complex structure They’re also the only transfer type with functions defined by the USB specifica-tion This chapter looks in greater detail at control transfers and the standard requests defined in the specification

'NGOGPVUQHC%QPVTQN6TCPUHGT

Control transfers enable the host and a device to exchange information about the device’s capabilities and other class-specific or vendor-specific information

As Chapter 3 explained, a control transfer consists of a Setup stage, a Data stage (optional for some transfers), and a Status stage Each stage consists of one or more transactions

Trang 3

Chapter 5

The descriptions below apply to USB 2.0 transfers SuperSpeed transfers exchange the same information but use USB 3.0’s packet structures and proto-cols as described in Chapter 3

5GVWR5VCIG

The Setup stage consists of a Setup transaction, which identifies the transfer as a control transfer and transmits the request and other information that the device needs to complete the request

Devices must return ACK for every Setup transaction received without error

An endpoint that is in the middle of another control transfer must abandon that transfer and acknowledge the new Setup transaction

6QMGP2CEMGV

Purpose: identifies the receiver and identifies the transaction as a Setup

transac-tion

Sent by: the host.

PID: SETUP

Additional contents: the device and endpoint addresses.

&CVC2CEMGV

Purpose: transmits the request and related information.

Sent by: the host.

PID: DATA0

Additional contents: eight bytes in five fields:

bmRequestType specifies the direction of data flow, the type of request, and

the recipient

Bit 7 (Direction) names the direction of data flow for data in the Data stage Host to device (OUT) or no Data stage is zero; device to host (IN) is 1

Bits 6 5 (Request Type) specify whether the request is one of USB’s standard requests (00), a request defined for a specific USB class (01), or a request defined by a vendor-specific driver for use with a particular product or products (10)

Bits 4 0 (Recipient) define whether the request is directed to the device

Trang 4

bRequest identifies the request.

wValue can pass request-specific information to the device Each request can

define the meaning of these two bytes in its own way For example, in a Set Address request, wValue contains the device’s address

wIndex can pass request-specific information to the device A typical use is to

pass an index or offset such as an interface or endpoint number, but each request can define the meaning of these two bytes in any way When passing an endpoint index, bits 3 0 specify the endpoint number, and bit 7 = 0 for a Con-trol or OUT endpoint or 1 for an IN endpoint When passing an interface index, bits 7 0 are the interface number All undefined bits are zero

wLength is two bytes that contain the number of data bytes in the Data stage

that follows For a host-to-device transfer, wLength is the exact number of bytes the host intends to transfer For a device-to-host transfer, wLength is a maxi-mum, and the device may return this many bytes or fewer If the field is zero, the transfer has no Data stage

*CPFUJCMG2CEMGV

Purpose: transmits the device’s acknowledgement.

Sent by: the device.

PID: ACK.

Additional contents: none The handshake packet consists of the PID alone Comments: If the device detects an error in the received Setup or Data packet,

the device returns no handshake The device’s hardware typically handles the error checking and sending of the ACK with no firmware support needed

&CVC5VCIG

The Data stage, when present, consists of one or more IN or OUT transac-tions A Data stage with IN transactions sends data to the host An example is the Get Descriptor request, where the device sends a requested descriptor to the host A Data stage with OUT transactions sends data to the device An example

is the HID-class request Set Report, where the host sends a report to a device If wLength in the Setup transaction equals 0000h, the transfer has no Data stage For example, in the Set Configuration request, the host passes a configuration value to the device in the wValue field of the Setup stage’s data packet, so the transaction has no need for a Data stage

Trang 5

Chapter 5

If all of the data can’t fit in one packet, the stage uses multiple transactions In the device descriptor, bMaxPacketSize0 specifies the maximum number of data bytes per packet The transactions in the Data stage are all in the same direc-tion When the Data stage is present but there is no data to transfer, the data packet is a ZLP

The host uses split transactions in the Data stage when the device is low or full speed and a hub between the device and host connects upstream at high speed The host may use the PING protocol when the device is high speed, the Data stage uses OUT transactions, and the stage has more than one data transaction Each IN or OUT transaction in the Data stage contains token, data, and hand-shake packets

6QMGP2CEMGV

Purpose: identifies the receiver and identifies the transaction as an IN or OUT

transaction

Sent by: the host.

PID: If the request requires the device to send data to the host, the PID is IN.

If the request requires the host to send data to the device, the PID is OUT

Additional contents: the device and endpoint addresses.

&CVC2CEMGV

Purpose: transfers all or a portion of the data specified in the wLength field of

the Setup transaction’s data packet

Sent by: the device if the token packet’s PID is IN or the host if the token

packet’s PID is OUT

PID: The first packet is DATA1 Any additional packets in the Data stage

alter-nate DATA0/DATA1

Additional contents: The host sends data or a ZLP A device may send data, a

ZLP, STALL (unsupported request or halted endpoint), or NAK

*CPFUJCMG2CEMGV

Purpose: the data packet’s receiver returns status information.

Sent by: the receiver of the Data stage’s data packet If the token packet’s PID is

IN, the host sends the handshake packet If the token packet’s PID is OUT, the

Trang 6

PID: A device may return ACK (data received without error), NAK (endpoint

busy), or STALL (unsupported request or halted endpoint) A high-speed device that is receiving multiple data packets may return NYET to indicate that the current transaction’s data was accepted but the endpoint isn’t yet ready for another data packet A host can return only ACK

Additional contents: none The handshake packet consists of the PID alone Comments: If the receiver detected an error in the token or data packet, the

receiver returns no handshake packet

5VCVWU5VCIG

The Status stage completes the transfer In some cases (such as after receiving the first packet of a device descriptor during enumeration), the host may begin the Status stage before the Data stage has completed, and the device must detect the token packet of the Status stage, abandon the Data stage, and complete the Status stage

6QMGP2CEMGV

Purpose: identifies the receiver and indicates the direction of the Status stage’s

data packet

Sent by: the host.

PID: the opposite of the direction of the previous transaction’s data packet If

the Data stage’s PID was OUT or if there was no Data stage, the Status stage’s PID is IN If the Data stage’s PID was IN, the Status stage’s PID is OUT

Additional contents: the device and endpoint addresses.

&CVC2CEMGV

Purpose: enables the receiver of the Data stage’s data to indicate the status of

the transfer

Sent by: the device if the Status stage’s token packet’s PID is IN or the host if

the Status stage’s token packet’s PID is OUT

PID: DATA1

Additional contents: The host sends a ZLP A device may send a ZLP

(suc-cess), NAK (busy), or STALL (unsupported request or halted endpoint)

Trang 7

Chapter 5

Comments: For most requests, a ZLP from the device indicates that the device

has performed the requested action (if any) An exception is Set Address, where the device takes the requested action after the Status stage has completed

*CPFUJCMG2CEMGV

Purpose: The sender of the Data stage’s data indicates the status of the transfer Sent by: the receiver of the Status stage’s data packet If the Status stage’s token

packet’s PID is IN, the host sends the handshake packet; if the token packet’s PID is OUT, the device sends the data packet

PID: A device may return ACK (success), NAK (busy), or STALL

(unsup-ported request or halted endpoint) The host returns ACK in response to a data packet received without error

Additional contents: none The handshake packet consists of the PID alone Comments: The Status stage’s handshake packet is the final transmission in the

transfer If the receiver detected an error in the token or data packet, the receiver returns no handshake packet

For any request that’s expected to take many milliseconds to carry out, the pro-tocol should define an alternate way to determine when the request has com-pleted Doing so ensures that the host doesn’t waste a lot of time asking for an acknowledgement that will take a long time to appear An example is the Set Port Feature(PORT_RESET) request sent to a hub The reset signal lasts at least 10 ms Rather than making the host wait this long for the device to com-plete the request, the hub acknowledges receiving the request when the hub first places the port in the reset state When the reset is complete, the hub sets a bit that the host can retrieve at its leisure via a Get Port Status request

*CPFNKPI'TTQTU

A device might receive a request that firmware doesn’t support Or a device may

be unable to respond because the endpoint is in the Halt condition, the firm-ware has crashed, or the device is no longer attached to the bus A host may also decide to end a transfer early for any reason

An example of an unsupported request is one that uses a request code that the device’s firmware doesn’t know how to respond to Or a device may support the request but other information in the Setup stage doesn’t match what the device expects or supports On these occasions, a Request Error condition exists and

Trang 8

Setup transaction with an ACK, so the STALL transmits in the Data or Status stage When possible, the device should return STALL in the Data stage

On failing to get a response or on detecting an error in received data or a Halt condition at the endpoint, the host abandons the transfer The host then tries

to re-establish communications with the endpoint by sending the token packet for a new Setup transaction If a new token packet doesn’t cause the device to recover, the host requests the device’s hub to reset the device’s port

The host may also end a transfer early by beginning the Status stage before completing all of the Data stage’s transactions In this case, the device must respond to the Status stage in the same way as if all of the data had transferred

&GXKEG(KTOYCTG

USB 2.0 device firmware typically performs the steps below to support control transfers The implementation details vary with the device architecture and pro-gramming language

%QPVTQN9TKVG4GSWGUVUYKVJC&CVC5VCIG

To complete a control write request with a Data stage, the device must detect the request in the Setup stage, accept the data in the Data stage, and send a ZLP

in the Status stage

1 Device hardware detects a received Setup packet, stores the contents of the transaction’s data packet, returns ACK, and triggers an interrupt

2 On detecting the interrupt, the device decodes the request and ensures that endpoint zero is ready to accept data that arrives following an OUT token packet The endpoint must also ACK a new Setup packet if the host decides to abandon the transfer and should return a ZLP in response to an IN token packet, which indicates that the host is ending the transfer early

3 The Data stage begins when the host sends an OUT token packet to end-point zero The endend-point stores the received data and returns ACK in the hand-shake packet The hardware triggers an interrupt

4 On detecting the interrupt, the device processes the received data as needed

5 If the Data stage has additional data packets, steps 3 and 4 repeat for addi-tional OUT transactions up to the wLength value in the Setup transaction

6 To complete the transfer, the host sends an IN token packet, the device responds with a ZLP, and the host returns ACK

Trang 9

Chapter 5

%QPVTQN9TKVG4GSWGUVUYKVJ0Q&CVC5VCIG

To complete a control write request without a Data stage, the device must detect the request in the Setup stage and send a ZLP in the Status stage

1 The hardware detects a Setup packet, stores the contents of the transaction’s data packet, returns ACK, and triggers an interrupt

2 On detecting the interrupt, the device decodes the request, does what is needed to perform the requested action, and arms endpoint zero to respond to

an IN token packet The endpoint must also ACK a new Setup packet if the host decides to abandon the transfer

3 To complete the transfer, the host sends an IN token packet, the device responds with a ZLP, and the host returns ACK

%QPVTQN4GCF4GSWGUVU

To complete a control read request, the device must detect the request in the Setup stage, send data in the Data stage, and acknowledge a received handshake

in the Status stage

1 The hardware detects a Setup packet, stores the contents of the transaction’s data packet, returns ACK, and triggers an interrupt

2 On detecting the interrupt, the device decodes the request and arms end-point zero to send the requested data on receiving an IN token packet The endpoint must also ACK a new Setup packet if the host decides to abandon the transfer and must return a ZLP in response to an OUT packet if the host begins the Status stage early

3 The Data stage begins when the host sends an IN token packet to endpoint zero The device hardware sends the data, detects the received ACK from the host, and triggers an interrupt

4 On detecting the interrupt, a device that has more data to send arms the end-point to send the data on receiving another IN token packet, and steps 3 and 4 repeat

5 On receiving an OUT token packet followed by a ZLP, the endpoint returns ACK to complete the transfer

5VCPFCTF4GSWGUVU

Trang 10

Table 5-1: The USB specification defines these requests for control transfers 4GSWGUV%QFG

4GSWGUV0COG 6CTIGV Y8CNWG Y+PFGZ &CVC5VCIG&CVC

5QWTEG Y.GPIVJ%QPVGPVU 00h

Get Status

device, interface, or endpoint

(device), interface, or endpoint

device 0002h;

status

01h

Clear Feature

device, interface, or endpoint

(device), interface, or endpoint

03h

Set Feature

device, interface, or endpoint

(device), interface, or endpoint

05h

Set Address

06h

Get Descriptor

device descriptor

type and index

0000h or language ID

device descriptor length

(bytes);

descriptor 07h

Set Descriptor

device descriptor

type and index

0000h or language ID

host descriptor length

(bytes);

descriptor 08h

Get Configuration

configuration 09h

Set Configuration

0Ah

Get Interface

alternate setting 0Bh

Set Interface

0Ch

Synch Frame

frame number 30h

Set SEL

exit latency values 31h

Set Isochronous

Delay

Ngày đăng: 04/07/2014, 07:20

TỪ KHÓA LIÊN QUAN

w