2016-08-29 1 views
0

Mon professeur me demande de trouver un moyen de diffuser des données ADC sur PC (ou Matlab) en utilisant un Beaglebone Black Board (BBB) ​​à 10 kHz ~ 20 kHz ou plus par USB . Je sais que je peux utiliser des PRU pour programmer en temps réel et je sais que le protocole USB a un mode de transfert isochrone pour transmettre des données. Ou je peux utiliser USB-série pour l'archiver. Donc, mon idée est d'utiliser PRU pour capturer les données ADC et les envoyer via usb à Matlab.Comment puis-je utiliser l'interface USB pour envoyer des données en temps réel en utilisant Beaglebone

J'ai trouvé une bibliothèque python qui capture des données ADC en utilisant PRU mais je ne sais pas comment l'adapter pour transférer des données vers un PC.

Lien: https://github.com/pgmmpk/beaglebone_pru_adc

+0

Pas une réponse à votre question, mais Matlab a [toolboxes spécifiques qui attaquent l'entrée d'usb] (http://uk.mathworks.com/solutions/test- la mesure/). Peut-être que cela rend la vie plus facile? –

+0

Comment est-ce que l'horloge série 'BBB' est' STABLE'? La définition 'CLOCK' du niveau Os est' FUZZY'! Besoin d'utiliser 'IC' ou' MCU' pour une communication sérielle rapide et stable. (J'ai testé 'teensy 3.01' à la vitesse' 6Mbps' sans aucune erreur!) – dsgdfg

Répondre

0

USB standard a la classe de périphérique USB CDC. Il peut émuler un port COM (RS 232). Vous pouvez implémenter ceci sur le Beaglebone (Beaglebone en tant que périphérique non hôte), puis utiliser les bibliothèques RS 232 standard dans matlab ou C pour obtenir les données. Sur Linux, vous voyez un périphérique USB CDC (ACM) comme /dev/ttyACMx ou /dev/ttyUSBx

Selon cette https://groups.google.com/forum/#!topic/beagleboard/-HBwQdkuzes le BEAGLEBONE a mis en place CDC USB (ACM) encore RS232-over-USB. C'est le moyen le plus simple car vous pouvez utiliser les commandes standard RS-232 dans matlab pour obtenir les données.

Si vous utilisez une prise linux dans le BBB et exécutez dmesg ou lsusb -v pour voir les interfaces USB intégrées du BBB.

c'est une très bonne vue d'ensemble sur USB http://www.beyondlogic.org/usbnutshell/usb1.shtml

+0

Le problème est que je veux utiliser une transmission à haute vitesse (C'est 200kHz 12bits) et moi si j'utilise RS232 je serai limité à 115kbps. Pour l'instant j'utilise usb sur ethernet. –

+0

sur USB vitesse RS232 n'est pas limitée à 115kbps, voir http://stackoverflow.com/questions/38190995/virtual-com-port-or-using-raw-endpoints/38192868#38192868 –

+0

en cours d'exécution des deux commandes que j'ai eu: http://pastebin.com/bAyQ62Mn –