我的教授让我找到一种方法,使用Beaglebone黑板(BBB)将ADC数据传输到PC(或Matlab),频率为10khz~20kHz或更高频率。
我知道我可以使用PRU实时编程,我知道USB协议具有等时传输模式来传输数据。或者我可以使用USB-serial来存档它。
所以我的想法是使用PRU捕获ADC数据并通过usb发送给Matlab。
我找到了一个使用PRU捕获ADC数据的python库,但我不知道如何调整它以将数据传输到PC。
答案 0 :(得分:1)
USB标准具有USB CDC设备类。它可以模拟COM端口(RS 232)。 https://en.wikipedia.org/wiki/USB_communications_device_class
您可以在Beaglebone(Beaglebone作为设备而不是主机)上实现此功能,然后在matlab或C中使用标准RS 232库来获取数据。在Linux上,您会看到USB {CDC(ACM)设备为/dev/ttyACMx
或/dev/ttyUSBx
根据这个https://groups.google.com/forum/#!topic/beagleboard/-HBwQdkuzes,Beaglebone已经实现了USB CDC(ACM)RS232-over-USB。这是最简单的方法,因为您可以在matlab中使用标准RS-232命令来获取数据。
如果你在BBB中使用linux插件并运行dmesg
或lsusb -v
来查看BBB的内置USB接口。