MJay MJay - 8 months ago 59
Linux Question

How to transfer data with high speed through USB?

I'm trying to find a way to send/receive data through USB port of an ARM processor on a zynq board (ZC706) running petalinux.

I searched on the net and I'm totally confused where to begin. I found solutions but those did not consider USB to be connected to ARM processor, high-speed data transfer or petalinux.

I know how to write simple linux kernel codes and I know how to work with zynq board.

To be specific, I want to know how to write a piece of code, better to say a library of functions, in petalinux to read and write to usb port connected to ARM as high-speed as possible.

Answer Source

Seems like you are trying to do some quite sophisticated thing. First I would like to say that USB is not some kind of port which you can read data "byte after byte" like in case of serial or parallel ports.

I would recommend you to start with reading about USB 2.0 and EHCI documentation (it take some time). Additionally you need to know what kind of USB is your board - is it host or device USB type? In case of usb device type - probably you need to write your own driver for this board and connect it to some USB host (PC for example). Then you need to create some communication protocol over USB. Luckily on the PC side you would use the libusb library for this. I mean you need to write program which uses libusb library for communication with your board.

Quite a lot of work to do.