US5974486A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
Assignee: Atmel Corp
•
Filing: 1997-08-12
•
Granted: 1999-10-26
•
Expires: 2017-08-12
Abstract
Abstract A versatile USB controller comprises a serial interface engine (SIE) for connection with a host. The SIE is capable of simulating a disconnect/connect sequence in situations where a reboot of the device is appropriate. The controller further includes a control store for keeping track of multiple endpoints of a device. A FIFO provides data transfer between each of the endpoints and the host. A state machine provides transaction sequencing with the host for each endpoint. In a variation of the preferred embodiment, a second FIFO is included to provide additional buffering capability.
Inventors
- 👤 Mahesh Siddappa
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-06 14:06
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/38; G06F13/382; G06F13/385
Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
160 words
A controller for operating a peripheral in accordance with the Universal Serial Bus (USB) specification, comprising: means for receiving data packets; a FIFO for storing data contained in received data packets, said FIFO being associated with at least two endpoints; a packet control store for storing, as a current endpoint, an identifier contained in an endpoint field of a received data packet, wherein data stored in said FIFO corresponds to said current endpoint; a state machine to control sequencing of a transaction based on said current endpoint, said transaction including reception and transmission of a plurality of data packets, said state machine thereby being capable of controlling sequencing of transactions with any endpoint; a plurality of endpoint control stores; and a selector coupled to said plurality of endpoint control stores for selecting one of said endpoint control stores based on said current endpoint; said state machine coupled to receive the contents of a selected one of said endpoint control stores.
Claim 2
Dependent Claim
160 words
A controller for operating a peripheral in accordance with the Universal Serial Bus (USB) specification, comprising: means for receiving data packets; a FIFO for storing data contained in received data packets, said FIFO being associated with at least two endpoints; a packet control store for storing, as a current endpoint, an identifier contained in an endpoint field of a received data packet, wherein data stored in said FIFO corresponds to said current endpoint; a state machine to control sequencing of a transaction based on said current endpoint, said transaction including reception and transmission of a plurality of data packets, said state machine thereby being capable of controlling sequencing of transactions with any endpoint; a plurality of endpoint control stores; and a selector coupled to said plurality of endpoint control stores for selecting one of said endpoint control stores based on said current endpoint; said state machine coupled to receive the contents of a selected one of said endpoint control stores.
Claim 3
Dependent Claim
23 words
The controller of claim 1 further including means for transmitting data packets, coupled to said FIFO for transmission of data from said device.
Claim 4
Dependent Claim
35 words
The controller of claim 2 wherein said endpoint control stores include a bus turnaround delay specifier, said means for transmitting data coupled to receive the bus turnaround delay specifier of said selected endpoint control store.
Claim 5
Dependent Claim
30 words
The controller of claim 1 further including a port for attachment to a host; said port including means for simulating the disconnection and connection of a universal serial bus device.
Claim 6
Dependent Claim
69 words
The controller of claim 4 wherein said port comprises a D+ signal line and a D- signal line and a pull-up resistor coupled to one of said signal lines, said means for simulating includes a first transistor switch coupled to pull said D+ and D- signal lines to a voltage in the range of 2.0 to 0.8 volts and a second transistor switch coupled to disconnect said pull-up resistor.
Claim 7
Dependent Claim
168 words
A controller for transmitting data in accordance with the Universal Serial Bus (USB) specification, comprising: a microcontroller interface for connection to a microcontroller; a port for attachment to a USB host; serial means, coupled to said port, for receiving and transmitting USB packets, including means for extracting an endpoint identifier from a packet of a TOKEN type; control means for managing the transfer of packets between said USB host and said microcontroller, including first memory means for storing an extracted endpoint identifier, thereby defining an active endpoint; a FIFO for storing data obtained from a received packet, said FIFO associated with said active endpoint; state machine means, coupled to said control means, for controlling the sequencing of a transaction with said USB host based on said active endpoint, said transaction comprising plural packets; and a second memory means for storing configuration and state information for each endpoint; said state machine means coupled to said second memory means to receive configuration and state information corresponding to said active endpoint.
Claim 8
Dependent Claim
168 words
A controller for transmitting data in accordance with the Universal Serial Bus (USB) specification, comprising: a microcontroller interface for connection to a microcontroller; a port for attachment to a USB host; serial means, coupled to said port, for receiving and transmitting USB packets, including means for extracting an endpoint identifier from a packet of a TOKEN type; control means for managing the transfer of packets between said USB host and said microcontroller, including first memory means for storing an extracted endpoint identifier, thereby defining an active endpoint; a FIFO for storing data obtained from a received packet, said FIFO associated with said active endpoint; state machine means, coupled to said control means, for controlling the sequencing of a transaction with said USB host based on said active endpoint, said transaction comprising plural packets; and a second memory means for storing configuration and state information for each endpoint; said state machine means coupled to said second memory means to receive configuration and state information corresponding to said active endpoint.
Claim 9
Dependent Claim
35 words
The controller of claim 6 wherein said second memory means includes a bus turnaround time specifier for each endpoint, said serial means coupled to receive the bus turnaround time specifier corresponding to said active endpoint.
Claim 10
Dependent Claim
38 words
The controller of claim 6 further including means for generating an interrupt during the reception of a packet of a TOKEN type, thereby signaling said microcontroller to prepare for storing data to or reading data from said FIFO.
Claim 11
Dependent Claim
30 words
The controller of claim 8 wherein said means for generating an interrupt is characterized by producing an interrupt prior to reception of the EOP delimiter of a TOKEN-type of packet.
Claim 12
Dependent Claim
29 words
The controller of claim 8 wherein said means for generating an interrupt is characterized by producing an interrupt during reception of the CRC portion of a TOKEN-type of packet.
Claim 13
Dependent Claim
24 words
The controller of claim 6 further including means for simulating a disconnection from a USB host and a subsequent reconnection to said USB host.
Claim 14
Dependent Claim
77 words
The controller of claim 11 wherein said port includes a D+ signal line, a D- signal line, and a pull-up resistor coupled to one of said signal lines, and wherein said means for simulating includes a first transistor switch coupled to momentarily pull the potential of said D+ and D- lines in the range of 2.0 to 0.8 volts and a second transistor switch coupled to disconnect said pull-up resistor, thereby creating a single-ended zero (SE0) condition.
Claim 15
Dependent Claim
44 words
The controller of claim 6 further including a second FIFO wherein each of said FIFO's is associated with a plurality of endpoints; the controller further including means for storing data into one of said FIFO's depending upon the endpoint identified by said active endpoint.
Claim 16
Independent Claim
148 words
A method of transferring data between a host and a device in accordance with the Universal Serial Bus standard, said method comprising: receiving a first packet, said first packet containing a first endpoint identifier; storing said first endpoint identifier thereby defining a current endpoint; receiving a second packet corresponding to said current endpoint, said second packet containing first data; storing said first data into a first FIFO; reading out said first data from said first FIFO; receiving a third packet, said third packet containing a second endpoint identifier; storing said second endpoint identifier thereby redefining said current endpoint; receiving a fourth packet corresponding to said current endpoint, said fourth packet containing second data; storing said second data into said first FIFO; and reading out said second data from said first FIFO; whereby said first FIFO serves to store data received for each of said first and second endpoints.
Claim 17
Independent Claim
148 words
A method of transferring data between a host and a device in accordance with the Universal Serial Bus standard, said method comprising: receiving a first packet, said first packet containing a first endpoint identifier; storing said first endpoint identifier thereby defining a current endpoint; receiving a second packet corresponding to said current endpoint, said second packet containing first data; storing said first data into a first FIFO; reading out said first data from said first FIFO; receiving a third packet, said third packet containing a second endpoint identifier; storing said second endpoint identifier thereby redefining said current endpoint; receiving a fourth packet corresponding to said current endpoint, said fourth packet containing second data; storing said second data into said first FIFO; and reading out said second data from said first FIFO; whereby said first FIFO serves to store data received for each of said first and second endpoints.
Claim 18
Dependent Claim
49 words
The method of claim 14 wherein said step of receiving said second packet includes receiving a SYNC, a packet id, a device address, an endpoint address, a CRC, and an EOP delimiter, and said step of reading out said first data is initiated prior to receiving said EOP delimiter.
Claim 19
Dependent Claim
48 words
The method of claim 14 wherein said step of receiving said second packet includes receiving a SYNC, a packet id, a device address, an endpoint address, a CRC, and an EOP delimiter, and said step of reading out said first data is initiated during reception of said CRC.
Claim 20
Dependent Claim
62 words
The method of claim 14 further including: receiving a fifth packet, said fifth packet containing a third endpoint identifier; storing said third endpoint identifier thereby redefining said current endpoint; receiving a sixth packet corresponding to said current endpoint, said sixth packet containing third data; storing said third data into a second FIFO; and reading out said third data from said second FIFO.
Claim 21
Independent Claim
106 words
A method of transferring data between a host and a device in accordance with the Universal Serial Bus standard, said method comprising: producing first data associated with a first endpoint and second data associated with a second endpoint; receiving a first packet containing an endpoint identifier; storing said endpoint identifier into a current endpoint store; selecting one of said first and second data, by matching the endpoint identified in said current endpoint store with one of said first and second endpoints; storing a selected one of said first and second data into a first FIFO; and transmitting data stored in said first FIFO to said host.
Claim 22
Independent Claim
106 words
A method of transferring data between a host and a device in accordance with the Universal Serial Bus standard, said method comprising: producing first data associated with a first endpoint and second data associated with a second endpoint; receiving a first packet containing an endpoint identifier; storing said endpoint identifier into a current endpoint store; selecting one of said first and second data, by matching the endpoint identified in said current endpoint store with one of said first and second endpoints; storing a selected one of said first and second data into a first FIFO; and transmitting data stored in said first FIFO to said host.
Claim 23
Dependent Claim
46 words
The method of claim 18 wherein said step of receiving said first packet includes receiving a SYNC, a packet id, a device address, an endpoint address, a CRC, and an EOP delimiter, and said step of storing data is initiated prior to receiving said EOP delimiter.
Claim 24
Dependent Claim
45 words
The method of claim 18 wherein said step of receiving said first packet includes receiving a SYNC, a packet id, a device address, an endpoint address, a CRC, and an EOP delimiter, and said step of storing data is initiated during reception of said CRC.
Claim 25
Dependent Claim
72 words
The method of claim 18 further including: associating a first plurality of endpoints with said first FIFO; associating a second plurality of endpoints with a second FIFO; and prior to said step of storing data, determining whether the endpoint of said selected data is associated with said first FIFO and if the endpoint of said selected data is associated with said second FIFO, then storing said selected data into said second FIFO.
Claim 26
Independent Claim
87 words
A method of operating a device in accordance with the Universal Serial Bus standard, said method comprising: associating a first plurality of endpoints with a first FIFO; associating a second plurality of endpoints with a second FIFO; receiving a first packet, said first packet containing an endpoint identifier; storing said endpoint identifier as a current endpoint; receiving a second packet; matching said current endpoint to one of said first and second FIFO's; and storing data contained in said second packet into a matched one of said FIFO's.
Claim 27
Independent Claim
87 words
A method of operating a device in accordance with the Universal Serial Bus standard, said method comprising: associating a first plurality of endpoints with a first FIFO; associating a second plurality of endpoints with a second FIFO; receiving a first packet, said first packet containing an endpoint identifier; storing said endpoint identifier as a current endpoint; receiving a second packet; matching said current endpoint to one of said first and second FIFO's; and storing data contained in said second packet into a matched one of said FIFO's.
Claim 28
Dependent Claim
13 words
The method of claim 22 wherein said first packet is an IN-type packet.
Claim 29
Dependent Claim
35 words
The method of claim 22 wherein said step of storing data contained in said second packet is initiated during reception of said second packet and prior to receiving an EOP delimiter of said second packet.
Claim 30
Dependent Claim
66 words
The method of claim 24 further including: generating data to be sent to a host; receiving a third packet, said third packet containing a second endpoint identifier; storing said second endpoint as said current endpoint; matching said current endpoint to one of said first and second FIFO's; storing generated data into a matched one of said FIFO's; and transmitting data from said FIFO to said host.
Claim 31
Dependent Claim
13 words
The method of claim 25 wherein said third packet is an OUT-type packet.
Claim 32
Dependent Claim
31 words
The method of claim 25 wherein said step of storing generated data is initiated during reception of said third packet and prior to receiving an EOP delimiter of said third packet.
References Cited (Backward Citations)
US4203001A
Cited
US4958342A
Cited
US4979167A
Cited
US5437031A
Cited
US5535197A
Cited
US5568134A
Cited
US5721722A
Cited
US5860119A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-10-25 | 2003-04-26 | 2003-10-26 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-10-25 | 2007-04-26 | 2007-10-26 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-10-25 | 2011-04-26 | 2011-10-26 | $7700.00 | Window Closed / Lapsed |