2016-11-26 4 views
0

J'essaie de trouver un moyen d'envoyer/recevoir des données via le port USB d'un processeur ARM sur une carte Zynq (ZC706) en cours d'exécution petalinux. J'ai cherché sur le net et je suis totalement confus par où commencer. J'ai trouvé des solutions mais celles-ci ne considéraient pas l'USB comme étant connecté au processeur ARM, au transfert de données haut débit ou au petalinux.Comment transférer des données à haute vitesse via USB?

Je sais comment écrire des codes de noyau Linux simples et je sais comment travailler avec la carte zynq.

Pour être précis, je veux savoir comment écrire un morceau de code, mieux dire une bibliothèque de fonctions, dans petalinux pour lire et écrire sur un port USB connecté à ARM aussi vite que possible.

+0

À quoi sert le port USB? Le Zynq est-il un hôte ou un périphérique dans ce contexte? –

+0

@JameyHicks Ce n'est pas une grande affaire pour moi d'être hôte ou invité. considérez ce qui est mieux. – MJay

Répondre

1

On dirait que vous essayez de faire quelque chose de très sophistiqué. D'abord, je voudrais dire que l'USB n'est pas un type de port que vous pouvez lire des données "octet après octet" comme dans le cas de ports série ou parallèle.

Je vous recommande de commencer par lire sur la documentation USB 2.0 et EHCI (cela prend du temps). En outre, vous devez savoir quel type d'USB est votre carte - est-ce hôte ou type d'appareil USB? En cas de type de périphérique USB, vous devez probablement écrire votre propre pilote pour cette carte et le connecter à un hôte USB (PC par exemple). Ensuite, vous devez créer un protocole de communication via USB. Heureusement, du côté PC, vous utiliseriez la bibliothèque libusb pour cela. Je veux dire que vous devez écrire un programme qui utilise la librairie libusb pour la communication avec votre carte.

Beaucoup de travail à faire.