Patent ID: 7644196

Claim:
A USB function apparatus which supports a plurality of USB descriptors and which is connected to a host apparatus via a USB to operate as a USB function, the USB function apparatus comprising: a descriptor switching device which switches between one of said plurality of USB descriptors to be transmitted to said host apparatus; a bus reset generating device which generates a bus reset to initialize communications with said host apparatus; and a control device which: (a) sends a current USB descriptor to said host apparatus in response to a descriptor request from said host apparatus; (b) determines whether said host apparatus has responded to the current USB descriptor by communicating with the USB function apparatus in accordance with the current USB descriptor; wherein if the control device determines that the host apparatus has not responded to the current USB descriptor by communicating with the USB function apparatus, the control device further (c) causes said descriptor switching device to switch the current USB descriptor to a different one of the plurality of USB descriptors; and (d) causes said bus reset generating device to generate a bus reset; a host connection detecting device which detects that said host apparatus is connected to the USB function apparatus via said USB; and a timer which starts clocking when said host connection detecting device detects that said host apparatus is connected to the USB function apparatus or when said bus reset generating device generates a bus reset, and wherein when said host apparatus does not respond to the current USB descriptor by communication with the USB function apparatus in accordance with the current USB descriptor within a predetermined time after a detection of the connection with said host apparatus or after the generation of a bus reset, said control device causes the descriptor switching device to switch the current USB descriptor to a different one of the plurality of USB descriptors and causes the bus reset generating device to generate a bus reset.