Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I was wondering how the computer determine the connected hardware -through USB- whether it is a mouse ,a keyboard or a camera etc... I opened a mouse and I couldn't find any thing that can identify the device , no microcontroller and no memory !!! so how ?!! thx in advance

share|improve this question
"I couldn't find any thing ..." - So what did you find? Surely there was at least one IC? If this was a USB mouse rather than a PS/2 mouse, then there is a microcontroller; do you know how to recognize a uC IC? – sawdust Jul 17 '12 at 6:35
Yes I know what it is a uC , there is not one !!! – Issam Zoli Jul 17 '12 at 13:28
The only part I found is a motion detector A2633 BDT LA71 – Issam Zoli Jul 17 '12 at 13:36
I found out that this component is largely supported "support for Microsoft Windows Vista, XP, 2000, ME, and 98 and other operating systems. DPI up to 1200, Plug and Play" – Issam Zoli Jul 17 '12 at 13:47
up vote 2 down vote accepted

I don't know what mouse you looked at, but USB devices have descriptors which are stored in ROM on the device. When the device is connected, it sends the device descriptor to the host PC, which contains the USB version, packet size, and vendor/product IDs, among other information.

You can find more information on USB here. Or you could look at the official developer documentation for even more.

share|improve this answer
"it sends the device descriptor to the host PC" - to clarity, this "it" would be an embedded microcontroller in the USB device (aka gadget). USB is a bus that uses a serial protocol to transfer control and data packets between the host PC and gadgets. The protocol is sophisticated enough to require a uC with ROM and RAM in the USB device. – sawdust Jul 17 '12 at 19:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .