Re: USB transfer types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 23, 2012 at 09:56:08AM +0100, zouid abdelhamid wrote:
> 
> hi sarah, 
> I am a student in electrical engineering,I am a USB enthousiast and I
> am a begginer in the USB world,I am supposed to execute a project, in
> which I would make performance measurements on the USB 3.0 under linux
> environment

Are you trying to measure *bus* performance at some electrical level or
are you trying to measure overall driver stack performance?

You are going to have to learn a lot for this project, but you need to
do so on your own.  I will answer any specific questions about the xHCI
driver or USB core that you have, but they must be very specific.  I
won't hand-hold you through this project.

> I have taken a look on the USB 2.0 and USB 3.0 official
> specifications, I know the major differences between the two
> technologies, and I know how the different packets are created, their
> details, and their different fields but the problem is that I
> couldn't figure out how a USB host could set a bulk transfer and not
> an isochrounous transfer for example, I learned that setting different
> packets (tocken, data, handshake ) for USB 2.0 and (LMP, TP, DP, ITP)
> belongs to the "protocol" layer that does not get out of the kernel
> space, setting bulk, interruption, control or isochronous transfers
> belongs to the user space by choosing the type of the pipe that would
> do the job and transfer data, which means, at last, that creating
> different packets in USB 3.0 (same as USB 2.0) blongs to a layer that
> is lower than setting the tranfer type (bulk, isochronous,
> interruption or control) layer, what I would just ask you about, is
> what I said right and acceptable, if not how could I correct it. 

The lowest layer in the software stack is the xHCI host controller.  It
only knows about endpoint types (bulk, control, interrupt, isochronous)
and endpoint rings.  It passes buffers down to the controller that
translates them into the link layer packets you've seen.

Yes, your understanding is correct.  However, I'm not going to answer
these type of "here's all I've learned, is this correct?" mails unless
it's very specific questions.  Please read "How to ask questions the
smart way":
	http://catb.org/esr/faqs/smart-questions.html

I really wouldn't suggest starting from the spec and moving upwards.
Instead, look at the USB skeleton driver (drivers/usb/skeleton.c) and
move down.  Read everything in the Documentation/usb/ directory,
specifically URB.txt.  Perhaps take a look at the usbtest driver, and
find a device that will work with it.

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux