USB port controller with automatic transmit retries and receive acknowledgements
First Claim
1. A universal serial bus (USB) controller for interfacing a host processor with a USB port, the USB controller comprising:
- a USB power connection operable to selectively transfer power between the USB controller and an associated USB compatible device through a USB connector;
a transceiver operable to selectively transfer data between the USB controller and the via the associated USB compatible device through at least one USB communications line of the USB connector;
a host communications circuit operable to selectively exchange control and data messages between the USB controller and the host processor; and
a logic circuit operable to implement a lower protocol layer for interfacing the transceiver with an upper protocol layer of the host processor via the host communications circuit, the logic circuit operable to;
receive outgoing packet data from the upper protocol layer of the host processor for transmission to the associated USB compatible device;
transmit an outgoing packet, including the outgoing packet data from the upper protocol layer to the USB communications line of the USB connector via the transceiver; and
automatically retransmit the outgoing packet at least once independent of the upper protocol layer, if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver;
wherein the logic circuit is operable to;
receive an incoming packet from the associated USB compatible device via the transceiver; and
automatically send an acknowledgment to the USB communications line indicating receipt of the incoming packet independent of the upper protocol layer, if the incoming packet is valid;
wherein the logic circuit is operable to send the incoming packet to the upper protocol layer via the host communications circuit after sending the acknowledgment if the incoming packet is valid;
wherein the logic circuit is operable to;
receive a transmit control message from the upper protocol layer, the transmit control message specifying a desired outgoing packet type and an integer number K retries for transmitting the outgoing packet data;
construct and transmit the outgoing packet according to the desired outgoing packet type specified in the transmit control message;
selectively automatically retransmit the outgoing packet up to K times independent of the upper protocol layer, if no acknowledgment of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; and
send a transmit failure message to the upper protocol layer if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver after K retries.
1 Assignment
0 Petitions
Accused Products
Abstract
Described examples include USB controllers and methods of interfacing a host processor with one or more USB ports with the host processor implementing an upper protocol layer and a policy engine for negotiating USB power delivery parameters, in which the USB controller includes a logic circuit implementing a lower protocol layer to provide automatic outgoing data transmission retries independent of the upper protocol layer of the host processor. The controller logic circuit further implements automatic incoming data packet validity verification and acknowledgment independent of the upper protocol layer of the host processor.
10 Citations
8 Claims
-
1. A universal serial bus (USB) controller for interfacing a host processor with a USB port, the USB controller comprising:
-
a USB power connection operable to selectively transfer power between the USB controller and an associated USB compatible device through a USB connector; a transceiver operable to selectively transfer data between the USB controller and the via the associated USB compatible device through at least one USB communications line of the USB connector; a host communications circuit operable to selectively exchange control and data messages between the USB controller and the host processor; and a logic circuit operable to implement a lower protocol layer for interfacing the transceiver with an upper protocol layer of the host processor via the host communications circuit, the logic circuit operable to; receive outgoing packet data from the upper protocol layer of the host processor for transmission to the associated USB compatible device; transmit an outgoing packet, including the outgoing packet data from the upper protocol layer to the USB communications line of the USB connector via the transceiver; and automatically retransmit the outgoing packet at least once independent of the upper protocol layer, if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; wherein the logic circuit is operable to; receive an incoming packet from the associated USB compatible device via the transceiver; and automatically send an acknowledgment to the USB communications line indicating receipt of the incoming packet independent of the upper protocol layer, if the incoming packet is valid; wherein the logic circuit is operable to send the incoming packet to the upper protocol layer via the host communications circuit after sending the acknowledgment if the incoming packet is valid; wherein the logic circuit is operable to; receive a transmit control message from the upper protocol layer, the transmit control message specifying a desired outgoing packet type and an integer number K retries for transmitting the outgoing packet data; construct and transmit the outgoing packet according to the desired outgoing packet type specified in the transmit control message; selectively automatically retransmit the outgoing packet up to K times independent of the upper protocol layer, if no acknowledgment of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; and send a transmit failure message to the upper protocol layer if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver after K retries.
-
-
2. A universal serial bus (USB) controller for interfacing a host processor with a USB port, the USB controller comprising:
-
a USB power connection operable to selectively transfer power between the USB controller and an associated USB compatible device through a USB connector; a transceiver operable to selectively transfer data between the USB controller and the via the associated USB compatible device through at least one USB communications line of the USB connector; a host communications circuit operable to selectively exchange control and data messages between the USB controller and the host processor; and a logic circuit operable to implement a lower protocol layer for interfacing the transceiver with an upper protocol layer of the host processor via the host communications circuit, the logic circuit operable to; receive outgoing packet data from the upper protocol layer of the host processor for transmission to the associated USB compatible device; transmit an outgoing packet, including the outgoing packet data from the upper protocol layer to the USB communications line of the USB connector via the transceiver; and automatically retransmit the outgoing packet at least once independent of the upper protocol layer, if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; wherein the logic circuit is operable to; receive a transmit control message from the upper protocol layer, the transmit control message specifying a desired outgoing packet type and an integer number K retries for transmitting the outgoing packet data; construct and transmit the outgoing packet according to the desired outgoing packet type specified in the transmit control message; selectively automatically retransmit the outgoing packet up to K times independent of the upper protocol layer, if no acknowledgment of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; and send a transmit failure message to the upper protocol layer if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver after K retries.
-
-
3. A multi-port universal serial bus (USB) power delivery host system for controlling power transfer between USB compatible devices, comprising:
-
a plurality of USB port connectors individually associated with a corresponding USB port of the host system; a host processor operable to implement an upper protocol layer and a policy engine for individually negotiating USB power delivery with one or more associated USB compatible devices connected to corresponding ones of the USB port connectors; and a plurality of USB controllers individually operable for interfacing the host processor with a corresponding USB compatible device connected to the corresponding USB port connector, the individual USB controllers comprising; a USB power connection operable to selectively transfer power between the USB controller and the associated USB compatible device through the corresponding USB connector; a transceiver operable to selectively transfer data between the USB controller and the associated USB compatible device through at least one USB communications line of the corresponding USB connector; a host communications circuit operable to selectively exchange control and data messages between the USB controller and the host processor; and a logic circuit operable to implement a lower protocol layer for interfacing the transceiver with the upper protocol layer of the host processor via the host communications circuit, the logic circuit operable to; receive outgoing packet data from the upper protocol layer of the host processor for transmission to the associated USB compatible device; transmit an outgoing packet, including the outgoing packet data from the upper protocol layer to the USB communications line of the corresponding USB connector via the transceiver; and automatically retransmit the outgoing packet at least once independent of the upper protocol layer, if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; wherein the logic circuit of the individual USB controllers is operable to; receive an incoming packet from the associated USB compatible device via the transceiver; and automatically send an acknowledgment to the USB communications line indicating receipt of the incoming packet independent of the upper protocol layer, if the incoming packet is valid; wherein the logic circuit of the individual USB controllers is operable to send the incoming packet to the upper protocol layer via the host communications circuit after sending the acknowledgment if the incoming packet is valid; wherein the logic circuit of the individual USB controllers is operable to; receive a transmit control message from the upper protocol layer of the host processor, the transmit control message specifying a desired outgoing packet type and an integer number K retries for transmitting the outgoing packet data; construct and transmit the outgoing packet according to the desired outgoing packet type specified in the transmit control message; selectively automatically retransmit the outgoing packet up to K times independent of the upper protocol layer, if no acknowledgment of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; and send a transmit failure message to the upper protocol layer if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver after K retries.
-
-
4. A multi-port universal serial bus (USB) power delivery host system for controlling power transfer between USB compatible devices, comprising:
-
a plurality of USB port connectors individually associated with a corresponding USB port of the host system; a host processor operable to implement an upper protocol layer and a policy engine for individually negotiating USB power delivery with one or more associated USB compatible devices connected to corresponding ones of the USB port connectors; and a plurality of USB controllers individually operable for interfacing the host processor with a corresponding USB compatible device connected to the corresponding USB port connector, the individual USB controllers comprising; a USB power connection operable to selectively transfer power between the USB controller and the associated USB compatible device through the corresponding USB connector; a transceiver operable to selectively transfer data between the USB controller and the associated USB compatible device through at least one USB communications line of the corresponding USB connector; a host communications circuit operable to selectively exchange control and data messages between the USB controller and the host processor; and a logic circuit operable to implement a lower protocol layer for interfacing the transceiver with the upper protocol layer of the host processor via the host communications circuit, the logic circuit operable to; receive outgoing packet data from the upper protocol layer of the host processor for transmission to the associated USB compatible device; transmit an outgoing packet, including the outgoing packet data from the upper protocol layer to the USB communications line of the corresponding USB connector via the transceiver; and automatically retransmit the outgoing packet at least once independent of the upper protocol layer, if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; wherein the logic circuit of the individual USB controllers is operable to; receive a transmit control message from the upper protocol layer of the host processor, the transmit control message specifying a desired outgoing packet type and an integer number K retries for transmitting the outgoing packet data; construct and transmit the outgoing packet according to the desired outgoing packet type specified in the transmit control message; selectively automatically retransmit the outgoing packet up to K times independent of the upper protocol layer, if no acknowledgment of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; and send a transmit failure message to the upper protocol layer if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver after K retries.
-
-
5. A multi-port universal serial bus (USB) power delivery host system for controlling power transfer between USB compatible devices, comprising:
-
a plurality of USB port connectors individually associated with a corresponding USB port of the host system; a host processor operable to implement an upper protocol layer and a policy engine for individually negotiating USB power delivery with one or more associated USB compatible devices connected to corresponding ones of the USB port connectors; and a plurality of USB controllers individually operable for interfacing the host processor with a corresponding USB compatible device connected to the corresponding USB port connector, the individual USB controllers comprising; a USB power connection operable to selectively transfer power between the USB controller and the associated USB compatible device through the corresponding USB connector; a transceiver operable to selectively transfer data between the USB controller and the associated USB compatible device through at least one USB communications line of the corresponding USB connector; a host communications circuit operable to selectively exchange control and data messages between the USB controller and the host processor; and a logic circuit operable to implement a lower protocol layer for interfacing the transceiver with the upper protocol layer of the host processor via the host communications circuit, the logic circuit operable to; receive outgoing packet data from the upper protocol layer of the host processor for transmission to the associated USB compatible device; transmit an outgoing packet, including the outgoing packet data from the upper protocol layer to the USB communications line of the corresponding USB connector via the transceiver; and automatically retransmit the outgoing packet at least once independent of the upper protocol layer, if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the transceiver; wherein the host communications circuit of the individual USB controllers includes a serial communications connection for transferring the control and data messages between the USB controller and the host processor; and
wherein the serial communications connections of the plurality of USB controllers are connected to one another to share a single serial communications channel with the host processor. - View Dependent Claims (6, 7)
-
-
8. A method of interfacing a host processor with a USB port using a USB controller, the method comprising:
-
receiving, in the USB controller, outgoing packet data from an upper protocol layer of the host processor for transmission to the associated USB compatible device; transmitting an outgoing packet including the outgoing packet data, from the USB controller to a USB communications line of the USB connector; and if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the USB controller, automatically retransmitting the outgoing packet from the USB controller to a USB communications line of a USB connector at least once independent of the host processor; receiving, in the USB controller, a transmit control message from the upper protocol layer of the host processor, the transmit control message specifying a desired outgoing packet type and an integer number K retries for transmitting the outgoing packet data; constructing and transmitting the outgoing packet according to the desired outgoing packet type specified in the transmit control message; if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the USB controller, selectively automatically retransmitting the outgoing packet up to K times independent of the host processor; and if no acknowledgement of receipt of the outgoing packet by the associated USB compatible device is timely received by the USB controller after K retries, sending a transmit failure message from the USB controller to the host processor.
-
Specification