Author Topic: Help basic understanding the USB 3.0 Layer protocol  (Read 11172 times)

ChongHan

  • Member
  • ***
  • Posts: 41
Help basic understanding the USB 3.0 Layer protocol
« on: September 23, 2013, 03:31:23 am »
Hi, as we know that, there are 3 layer in USB 3.0 which are Physical, Link and Protocol. So here, may i know that, is it

1) Physical is hardware based which controlled or can modify only in hardware?
2) Link is software and hardware based which can modify or control in both software and hardware?
3) Protocol is software based which can modify or control only in software?

Hope can get detailed reply.
Thanks in advance.

Btw, any1 know that is there any forum that discussing USB 3.0 development?

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
Re: Help basic understanding the USB 3.0 Layer protocol
« Reply #1 on: September 23, 2013, 01:20:14 pm »
USB 3.0 is discussed here among other topics. I'm not aware of any other discussion forums specifically for USB 3.

The link layer is largely independent of software. From the host driver perspective, the links take care of themselves and there's not much software can do about this.

The protocol layer is largely also taken care of in hardware, but is directed by software. The protocol layer is driven by software in that the hardware doesn't do anything on the bus, unless the software has asked for it to happen. This is different from the link layer where the links will be constantly chatting among themselves doing whatever they do and then telling the software about anything interesting that happened.

For an XHCI host the protocol layer doesn't do anything unless the XHCI driver has put a transfer descriptor (TD) on a transfer ring. The TD is a high level command to the hardware, it tells the hardware where the data is in memory, and how big it is, and some control information. The hardware then goes and does the requested transfer and then tells software about the results by putting an event TRB on the event ring.

Software has no control over what happens in hardware between requesting the transfer and receiving the event. The XHCI spec explicitly says the TDs belong to the host controller during that time, and the host software is not allowed to touch them.

This is all from the host perspective, you might find that a device has a different model.

ChongHan

  • Member
  • ***
  • Posts: 41
Re: Help basic understanding the USB 3.0 Layer protocol
« Reply #2 on: September 26, 2013, 04:18:39 am »
Thanks for replying, so how about for the Physical Layer?

Overall of that, can i say that all these layer is implemented in hardware but software to drive them except link and physical layer. is that true?

sorry if i misunderstood.

Barry Twycross

  • Frequent Contributor
  • ****
  • Posts: 263
Re: Help basic understanding the USB 3.0 Layer protocol
« Reply #3 on: September 26, 2013, 01:58:31 pm »
That's correct.

But I'd state it the other way around. This is all implemented in hardware, but the protocol layer is driven by software.

ChongHan

  • Member
  • ***
  • Posts: 41
Re: Help basic understanding the USB 3.0 Layer protocol
« Reply #4 on: September 26, 2013, 09:09:40 pm »
ok. Got it! Thx bro!