Welcome Guest ( Log In | Register )

Outline · [ Standard ] · Linear+

> USB versioning

views
     
TSmeenn P
post Jan 14 2022, 06:21 PM, updated 2w ago

New Member
*
Probation
11 posts

Joined: Jan 2022
So I want to start coding for USB, but I found out so many versions in USB.

In early years, maybe 1994~96, there is UHCI.
Then OHCI,
EHCI - USB 2.0
XHCI - USB 3.0

They even have AHCI, but couldn't find it on official site.

Well, the purpose of this thread is to let coders familiar with USB versioning of different standard or specification.

For example, one can download HID( USB 1.11) spec in PDFs from USB official site:
usb.org/documents?search=hid&items_per_page=50

So, I still haven't figure out UHCI ealier, or OHCI earlier.

Writing a USB driver and HID parser is not easy, and there is also Report Descriptor, example header like this:

This is for wheel mouse: (a bit outdated)
CODE
char ReportDescriptor[118] = {
    0x05, 0x01,        // USAGE_PAGE (Generic Desktop)
    0x09, 0x02,        // USAGE (Mouse)
    0xa1, 0x01,        // COLLECTION (Application)
    0x09, 0x02,        //   USAGE (Mouse)
    0xa1, 0x02,        //   COLLECTION (Logical)
    0x09, 0x01,        //     USAGE (Pointer)
    0xa1, 0x00,        //     COLLECTION (Physical)
                       // ------------------------------  Buttons
    0x05, 0x09,        //       USAGE_PAGE (Button)      
    0x19, 0x01,        //       USAGE_MINIMUM (Button 1)
    0x29, 0x05,        //       USAGE_MAXIMUM (Button 5)
    0x15, 0x00,        //       LOGICAL_MINIMUM (0)
    0x25, 0x01,        //       LOGICAL_MAXIMUM (1)
    0x75, 0x01,        //       REPORT_SIZE (1)
........
......

pillage2001
post Jan 15 2022, 02:18 PM

Regular
******
Senior Member
1,667 posts

Joined: Jan 2003
From: Kalamazoo, MI
QUOTE(meenn @ Jan 14 2022, 06:21 PM)
So I want to start coding for USB, but I found out so many versions in USB.

In early years, maybe 1994~96, there is UHCI.
Then OHCI,
EHCI - USB 2.0
XHCI - USB 3.0

They even have AHCI, but couldn't find it on official site.

Well, the purpose of this thread is to let coders familiar with USB versioning of different standard or specification.

For example, one can download HID( USB 1.11) spec in PDFs from USB official site:
usb.org/documents?search=hid&items_per_page=50

So, I still haven't figure out UHCI ealier, or OHCI earlier.

Writing a USB driver and HID parser is not easy, and there is also Report Descriptor, example header like this:

This is for wheel mouse: (a bit outdated)
CODE
char ReportDescriptor[118] = {
    0x05, 0x01,        // USAGE_PAGE (Generic Desktop)
    0x09, 0x02,        // USAGE (Mouse)
    0xa1, 0x01,        // COLLECTION (Application)
    0x09, 0x02,        //   USAGE (Mouse)
    0xa1, 0x02,        //   COLLECTION (Logical)
    0x09, 0x01,        //     USAGE (Pointer)
    0xa1, 0x00,        //     COLLECTION (Physical)
                       // ------------------------------  Buttons
    0x05, 0x09,        //       USAGE_PAGE (Button)      
    0x19, 0x01,        //       USAGE_MINIMUM (Button 1)
    0x29, 0x05,        //       USAGE_MAXIMUM (Button 5)
    0x15, 0x00,        //       LOGICAL_MINIMUM (0)
    0x25, 0x01,        //       LOGICAL_MAXIMUM (1)
    0x75, 0x01,        //       REPORT_SIZE (1)
........
......

*
Just a correction, there's no AHCI. That's a SATA standard.

 

Change to:
| Lo-Fi Version
0.0201sec    0.65    5 queries    GZIP Disabled
Time is now: 28th January 2022 - 10:50 AM