← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag