Apparatus and method for handling universal serial bus control transfers
AssigneeNational Semiconductor Corporation
InventorsDavid Brief, David J. Fensore, Kent Bruce Waterson, Gregory Lewis Dean
Life of this patent
Estimating the term…
Abstract
A method and apparatus for performing a control transfer on a Universal Serial Bus (USB) device. A USB device includes a memory space for reading and writing data transmitted over a USB network. The memory space is shared between a plurality of endpoints. A host initiates a control transfer by transmitting a SETUP token to a first endpoint. The endpoint must accept the SETUP token. If the first endpoint does not expect the SETUP token, or if another endpoint is active, the device stores the token until a buffer is allocated and the first endpoint is made active.
Claims18
A method of operating a control endpoint on a Universal Serial Bus comprising the steps of:
- providing a transceiver operationally coupled with the Universal Serial Bus to send and receive data;
- providing a controller operationally coupled with the transceiver, wherein the controller provides data to the transceiver for transmission over the Universal Serial Bus and accepts data which the transceiver receives over the Universal Serial Bus;
- providing a memory operationally coupled with the controller, wherein the controller saves data to the memory and copies data from the memory;
- providing a function element operationally coupled with the memory and with the controller, wherein the function provides commands to the controller saves data to the memory and copies data from the memory;
- receiving a SETUP token from a host coupled with the Universal Serial Bus, wherein the SETUP token indicates that the host will perform a control transfer;
- receiving a first DATA0 packet from the host on the Universal Serial Bus wherein the first DATA0 packet indicates that the control transfer will include a data stage having at least one data transaction;
- and
- allocating a portion of the memory for the at least one data transaction wherein the function element performs the allocation and provides a first memory address to the controller, and further wherein the first memory address points to a first memory location within the portion of the memory.
A device for connecting to a Universal Serial Bus comprising:
- a buffer memory for storing data;
- a controller operationally coupled with the buffer memory and with a Universal Serial Bus wherein the controller comprises:
- a first and second memory address pointer wherein the first and second memory address pointer hold an address within the memory buffer;
- endpoint pipe state logic for maintaining the current state of an endpoint pipe wherein the endpoint pipe state logic indicates whether the endpoint pipe contains data for transmitting over the Universal Serial Bus;
- a function operationally coupled with the controller and with the buffer memory wherein the function stores data in the buffer memory and assigns the corresponding address to the first and second buffer memory pointer wherein when the controller receives an IN token of a control read transfer the controller automatically sends a NAK if the endpoint pipe state logic indicates that the endpoint pipe does not contain data and automatically sends the data if the endpoint pipe state logic indicates that the endpoint pipe does contain data.
Dependencies are inferred from the claim text.