2016-08-29 4 views
0

교수님은 USB를 통해 10khz ~ 20kHz 이상의 Beaglebone Black Board (BBB)를 사용하여 ADC 데이터를 PC (또는 Matlab)로 스트리밍하는 방법을 찾도록 요청합니다. .어떻게 USB 인터페이스를 사용하여 Beaglebone을 사용하여 실시간 데이터를 전송할 수 있습니까?

실시간으로 프로그래밍하는 데 PRU를 사용할 수 있다는 것을 알고 있으며 USB 프로토콜에 스트리밍 데이터에 등시성 전송 모드가 있다는 것을 알고 있습니다. 또는 USB-serial을 사용하여 보관할 수 있습니다.

그래서 내 생각은 PRU를 사용하여 ADC 데이터를 캡처하고 usb를 통해 Matlab에 보냅니다.

PRU를 사용하여 ADC 데이터를 캡처하는 파이썬 라이브러리를 찾았지만 데이터를 PC로 전송하는 방법을 알지 못합니다.

링크 : https://github.com/pgmmpk/beaglebone_pru_adc

+0

하지 질문에 대한 답변이지만, MATLAB은 (http://uk.mathworks.com/solutions/test- [USB 입력을 해결 특정 도구 상자]가 측정/). 어쩌면 이것이 삶을 편하게 해줄 수 있을까요? –

+0

'BBB' 시리얼 클럭이 '안정'인지 어떻게 알 수 있습니까? Os 레벨'CLOCK' 정의는'FUZZY'입니다! 고속 + 안정 시리얼 통신을 위해 'IC'또는 'MCU'를 사용해야합니다. ('teensy 3.01'을 아무런 오류없이'6Mbps '속도로 테스트했습니다!) – dsgdfg

답변

0

USB 규격은 USB CDC 장치 클래스를 가지고있다. COM 포트 (RS 232)를 에뮬레이트 할 수 있습니다. https://en.wikipedia.org/wiki/USB_communications_device_class

당신은 (하지 호스트와 장치로 Beaglebone을)를 Beaglebone에이를 구현하고 데이터를 얻을 수 MATLAB 또는 C 표준 RS 232 라이브러리를 사용할 수 있습니다. 리눅스에서 당신은 Beaglebone 아직 USB CDC (ACM) RS232 - 이상 - USB를 구현했습니다이 https://groups.google.com/forum/#!topic/beagleboard/-HBwQdkuzes에 따르면 /dev/ttyACMx 또는 /dev/ttyUSBx

로 USB CDC (ACM) 장치를 참조하십시오. 이것은 MATLAB의 표준 RS-232 명령을 사용하여 데이터를 얻을 수 있기 때문에 가장 쉬운 방법입니다.

리눅스 플러그를 BBB에서 사용하고 dmesg 또는 lsusb -v을 실행하면 BBB의 내장 USB 인터페이스를 볼 수 있습니다.

이 USB http://www.beyondlogic.org/usbnutshell/usb1.shtml에 걸쳐 아주 좋은 개요

+0

문제는 고속 전송 (200kHz 12bits)을 사용하고 RS232를 사용하면 115kbps로 제한된다는 것입니다. 지금은 이더넷을 통해 usb를 사용하고 있습니다. USB RS232 속도의 –

+0

은 115kbps에 국한되지 않습니다. http://stackoverflow.com/questions/38190995/virtual-com-port-or-using-raw-endpoints/38192868#38192868 –

+0

두 명령을 모두 실행하면 다음을 참조하십시오. http://pastebin.com/bAyQ62Mn –