Legal claims defining the scope of protection, as filed with the USPTO.
1. In a computer system including a host having a processor, a Universal Serial Bus (USB) host controller and a port for attaching to a USB device, the USB host controller being capable of coupling to the USB device through an attachment to the port, the USB host controller including circuitry for detecting an attachment of the USB device to the port for enabling a bidirectional communication channel between the host unit and the USB device, the improvement comprising: logic for detecting a condition indicative of a degree of reliability of the bi-directional communication channel upon attachment of USB device to the at least one port; and logic for enabling at least one of transmission of a Control Transfer from the host to the attached USB device and receipt of data provided by the attached USB device to the host in an Interrupt Transfer upon detecting the condition indicative of a degree of reliability in the bi-directional communication channel enabled by the attachment of the USB device.
2. The computer system of claim 1, wherein the enabling logic enables the at least one of transmission of a Control Transfer from the host to the attached USB device and receipt of data provided by the attached USB device to the host in an Interrupt Transfer following a set time period following a detection of an attachment of the USB device to the USB controller.
3. The computer system of claim 1, wherein the enabling logic inhibits the transmission of a Control Transfer from the host to the attached USB device and the receipt of data provided by the attached USB device to the host in an Interrupt Transfer until the detection of the condition indicative of a degree of reliability in a bi-directional communication channel enabled by the attachment of the USB device.
4. In a computer system including a host having a processor, a Universal Serial Bus (USB) host controller and a port for attaching to a USB device, the processor executing at least one applications program and one or more instances of a software driver, the software driver being capable of supporting communication between an attached USB device and the host, the USB host controller being capable of coupling to the USB device through an attachment to the port, the USB host controller including circuitry for detecting an attachment of the USB device to the port or a detachment of the USB device from the port, the improvement comprising: logic for associating an attachment of the USB device with an instance of the software driver; logic for associating the instance of the software driver with at least one application program executing on the processor, the instance of the software driver being responsive to calls from the at least one associated application program; logic for maintaining the instance of the software driver while the at least one application is executing, independent of whether the USB device remains attached to the port; and logic for terminating the instance of the software driver in response to one of a termination of the execution of the at least one application program and an acknowledgment that the application program has been notified of a detachment of the USB device.
5. The computer system of claim 4, the improvement further including: logic for maintaining a count of the executing application programs which are associated with the instance of the software driver and decrementing the count when one of the execution of an associated application terminates and an acknowledgment that the associated application has been notified of a detachment of the USB device; and logic for terminating the instance of the software driver when the count is decremented to zero.
6. The computer system of claim 4, the host further including a portion of memory which is allocated to the instance of the software driver, wherein the improvement further includes logic for de-allocating the memory allocated to the instance of the software driver when the instance of the software driver terminates.
7. A host computer system having a Universal Serial Bus (USB) host controller capable of attaching to a USB device through a port, the USB device having a plurality of distinct controls for receiving user inputs, the host computer system comprising: logic for associating the USB device with exactly one Entity Descriptor which defines a plurality of data structures, each data structure being associated with one of the distinct controls; a memory for storing a data packet received in response to an associated Interrupt Transfer initiated at the USB device, the data packet including data representative of a plurality of said data structures, each of the plurality of data structures including data representative of user inputs from its associated control; and logic for extracting each of the plurality of data structures from the stored data packet.
8. The host computer system of claim 7, the host computer system further including: a processor for executing application programs thereon; logic for associating each of the reports extracted from the stored data packet with an application program; and logic for notifying each application program associated with an extracted data structure of the receipt of said extracted data structure.
9. The host computer system of claim 7, wherein the logic for extracting data structures from the stored data packet includes: logic for determine the number of data structures included in the stored data packet; logic for associating each of the data structures in the stored data packet with one of the controls of the USB device; logic for determining a memory location of each data structure in the stored data packet; and logic for retrieving each data structure in the stored data packet at its associated memory location by executing an application program associated with the data structure.
10. A host computer system having a Universal Serial Bus (USB) controller capable of attaching to a USB device through a port to receive Interrupt Transfers, the Interrupt Transfers having a data packet associated therewith, the host computer system comprising: logic for enabling the receipt of Interrupt Transfers from the USB device at the USB controller in response to an attachment of the USB device to the USB controller; circuitry for detecting an Interrupt Transfer at the port; and logic for selectively storing the data packet of the detected interrupt transfer in an allocatable memory when at least one of the host computer system is enabled to receive Interrupt Transfers and sufficient memory at the host computer system is allocatable to store the data packet.
11. The host computer system of claim 10, wherein the logic for enabling the receipt of Interrupt Transfers further includes: logic for associating the attached USB device with an instance of a software driver; logic for detecting of a condition indicative of a degree of reliability of data received from Interrupt Transfers initiated at the attached USB device.
12. The host computer system of claim 11, wherein the logic detecting a degree of reliability of the data received from Interrupt Transfers initiated at the attached USB device detects a passage of a set time period following a detection of an attachment of the USB device to the USB controller.
13. The host computer system of claim 10, the host computer system further comprising logic for transmitting an error signal to the attached USB device upon detection of an Interrupt Transfer when the host computer system is not enabled to receive the Interrupt Transfer or there is not sufficient memory allocatable to store the associated data packet.
14. A computer readable medium for use in conjunction with a computer system including a host having a processor and a Universal Serial Bus (USB) host controller, the USB host controller being capable of attaching to at least one USB device through at least one port, the computer readable medium including computer readable instructions encoded thereon for: detecting an attachment of a USB device to the at least one port; and enabling at least one of transmission of a Control Transfer from the host to the attached USB device and receipt of data provided by the attached USB device to the host in an Interrupt Transfer upon detection of a condition indicative of a degree of reliability in a bi-directional communication channel enabled by the attachment of the USB device.
15. The computer readable medium of claim 14, the computer readable medium further including computer readable instructions encoded thereon for enabling the at least one of transmission of a Control Transfer from the host to the attached USB device and receipt of data provided by the attached USB device to the host in an Interrupt Transfer following a set time period following a detection of an attachment of the USB device to the USB controller.
16. The computer readable medium of claim 14, the computer readable medium further including computer readable instructions encoded thereon for inhibiting the transmission of a Control Transfer from the host to the attached USB device and the receipt of data provided by the attached USB device to the host in an Interrupt Transfer until the detection of the condition indicative of the degree of reliability.
17. A computer readable medium for use in conjunction with a computer system including a host having a processor and a Universal Serial Bus (USB) host controller, the USB host controller being capable of attaching to at least one USB device through at least one port, the computer readable medium including computer readable instructions encoded thereon for: associating an attached USB device with an instance of a software driver executable on the processor, the software driver being capable of supporting communication between the attached USB device and the host; associating the instance of the software driver with at least one application program executing on the processor, the instance of the software driver being responsive to calls from the at least one associated application program; maintaining the instance of the software driver while the at least one application is executing, independent of whether the USB device remains attached to the USB; and terminating the instance of the software driver in response to one of a termination of the execution of the at least one application program and an acknowledgment that the application program has been notified of a detachment of the USB device.
18. The computer readable medium of claim 17, the computer readable medium further including computer readable instructions encoded thereon for: maintaining a count of the executing application programs which are associated with the instance of the software driver and decrementing the count when one of the execution of an associated application terminates and an acknowledgment that the associated application has been notified of a detachment of the USB device; and terminating the instance of the software driver when the count is decremented to zero.
19. The computer readable medium of claim 17, wherein the host further includes a portion of memory which is allocated to the instance of the software driver, wherein the computer readable medium further includes computer readable instructions encoded thereon for de-allocating the memory allocated to the instance of the software driver when the instance of the software driver terminates.
20. A computer readable medium for use in conjunction with a host computer system having a Universal Serial Bus (USB) host controller capable of attaching to a USB device through a port, the USB device having a plurality of distinct controls for receiving user inputs, the computer readable medium including computer readable instructions encoded thereon for: associating the USB device with exactly one Entity Descriptor which defines a plurality of data structures, each data structure being associated with one of the distinct controls; storing in a memory associated with the host computer system a data packet received in response to an associated Interrupt Transfer initiated at the USB device, the data packet including data representative of a plurality of said data structures, each of the plurality of data structures including data representative of user inputs from its associated control; and extracting each of the plurality of data structures from the stored data packet.
21. The computer readable medium of claim 20, wherein the host computer system further includes a processor for executing application programs thereon, and wherein the computer readable medium further includes computer readable instructions encoded thereon for: associating each of the reports extracted from the stored data packet with an application program; and notifying each application program associated with an extracted data structure of the receipt of said extracted data structure.
22. The computer readable medium of claim 20, the computer readable medium further including computer readable instructions encoded thereon for: determining a number of data structures included in the stored data packet; associating each of the data structures in the stored data packet with one of the controls of the USB device; determining a memory location of each data structure in the stored data packet; and retrieving each data structure in the stored data packet at its associated memory location by executing an application program associated with the data structure.
23. A computer readable medium for use in conjunction with a host computer system having a Universal Serial Bus (USB) controller capable of attaching to a USB device through a port to receive Interrupt Transfers, the Interrupt Transfers having a data packet associated therewith, the computer readable medium including computer readable instructions encoded thereon for: enabling the receipt of Interrupt Transfers from the USB device at the USB controller in response to an attachment of the USB device to the USB controller; detecting an Interrupt Transfer at the port; and selectively storing the data packet of the detected interrupt transfer in an allocatable memory when at least one of the host computer system is enabled to receive Interrupt Transfers and sufficient memory at the host computer system is allocatable to store the data packet.
24. The computer readable medium of claim 23, the computer readable medium further including computer readable instructions encoded thereon for: associating the attached USB device with an instance of a software driver; and detecting a condition indicative of a degree of reliability of data received from Interrupt Transfers initiated at the attached USB device.
25. The computer readable medium of claim 24, the computer readable medium further including computer readable instructions encoded thereon for detecting a passage of a set time period following a detection of an attachment of the USB device to the USB controller to determine a degree of reliability of the data received from Interrupt Transfers initiated at the attached USB device detects.
26. The computer readable medium of claim 23, the computer readable medium further including computer readable instructions encoded thereon for transmitting an error signal to the attached USB device upon detection of an Interrupt Transfer when the host computer system is not enabled to receive the Interrupt Transfer or there is not sufficient memory allocatable to store the associated data packet.
Complete technical specification and implementation details from the patent document.
DETAILED DESCRIPTION
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
Unknown
July 4, 2000
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.