Realización de una comunicación USB de alta velocidad desde STM32F4 y Java en PC con Linux

Tengo una placa STM32F4Discovery e intento comunicarme entre el programa ac (sin sistema operativo) en la placa y un programa Java en ubuntu pc. He encontrado muchos tutoriales como este sobre USB, pero todos intentan hacer un puerto serie tipo RS232 que es demasiado lento (como 9600 baudios o un máximo de 14,4 Kbps).

En este momento estoy perdido y necesito averiguar cómo debo hacer esto. ¿Es posible hacer una comunicación de alta velocidad en este caso y qué tan rápido podría ser? Las especificaciones de USB 2.0 dicen que podría ser de hasta 480 Mbps. ¿Podría decirme con qué biblioteca es esto posible? ¿Y hay alguna mejor práctica disponible a seguir para hacer una comunicación bidireccional a través de USB?

Realmente aprecio cualquier pista.

Respuestas (1)

El protocolo USB se divide en varias clases , como HID, almacenamiento masivo, audio, etc.

1.Debe intentar buscar una clase que requiera transferir datos a una tasa de bits alta, ejemplos de tales clases serían dispositivos de video o almacenamiento masivo. Las clases que usan paquetes masivos o isócronos para transferir datos a través del bus tendrán altas tasas de bits, porque tienen un tamaño de paquete más grande y pueden tener intervalos de tiempo más grandes para usar el bus.

2. Luego, debe mirar los ejemplos de código enviados con su placa para las clases mencionadas anteriormente.

¿Podría dar un poco más de información sobre qué datos desea transferir entre la placa y la PC?

Gracias Jay. Necesitamos transferir la información del sensor de la placa de descubrimiento al programa Java que se ejecuta en la PC con Linux, que a su vez es otra placa similar. Y necesitamos enviar comandos de motor desde el lado de Java a la placa de descubrimiento. En este momento, necesito transferir 250 bytes cada pocos milisegundos, pero esto se incrementará en el futuro.
@Mehdi ¿Tiene que ser un tiempo muy estricto? USB no es bueno en este tipo de aplicación. El USB es ideal para la transferencia de datos en general donde la sincronización crítica no es un problema. Usaría SPI si la distancia es corta.
@Spoon Speed ​​no es crítico, un poco más tarde o más temprano no importa en nuestro caso. gracias por la pista.
No es la "velocidad" lo que preocupa (parece que tiene una necesidad muy definida de ser más rápido que la "serie" normal y está investigando esto, lo cual es bueno), solo la variabilidad en el tiempo de llegada de los "comandos" que usted mencionado. He visto software roto porque los controladores USB pueden estropearlo. Sin embargo, está usando las otras clases que no he usado y creo que tiene en cuenta este tipo de problema. Tengo un proyecto que algún día querrá este tipo de conexión USB. Buena suerte... Es posible que venga a hacer preguntas cuando finalmente llegue yo mismo...