Formato de paquete de datos cuando el USB se inicializa como puerto COM

0

¿Alguien sabe cómo se ven los datos en el paquete de datos cuando el USB se inicializa como puerto COM?

Tengo un Arduino Mega 2560. He inicializado el puerto COM con una velocidad en baudios de 9600. Sé que hay cuatro tipos de paquetes USB como

  1. Paquete de token (comúnmente utilizado para la identificación de dispositivos y el inicio de transacciones)
  2. Paquete de datos (contiene los datos que deben transferirse del host al cliente o viceversa)
  3. Paquete de acuse de recibo (Acuse de recibo por la recepción de datos sin errores)
  4. Paquetes especiales (comunicación de concentrador a concentrador y diferencial de velocidad)

La carga útil en el paquete de datos se formatea como

DATOS1 > > PAYLOAD > > CRC16; DATOS2 > > > > PAYLOAD > > CRC16; etc.

Hasta este punto, tengo claro lo que está sucediendo.

Ahora todo lo que quiero saber es

  • ¿Cómo se estructuran los datos en la sección PAYLOAD, cuando el USB se inicializa como puerto COM?
  • ¿Cómo se refleja la velocidad en baudios, es decir, cómo se logra una velocidad en baudios en particular en este tipo de comunicación?
  • ¿Cómo es la comunicación en términos de secuencia de paquetes? ¿Cambia la secuencia de paquetes? (Como token > > data > > ack > > > > ack > > ...)

Como @Simon dijo que este podría ser un protocolo específico del proveedor, ¿alguien sabe cómo se usa en Arduino?

Esto es muy importante para mí explorar. A continuación es lo que estoy tratando.

  1. Esto es lo que ya he hecho. Pude transferir exitosamente los datos de 180KBytes de datos en un segundo. Si incremento los datos incluso en 1Kbytes, comienza a mostrar un error en los datos recibidos. No inicialicé la comunicación a ninguna velocidad de transmisión fija. Mega está a la espera de los datos. Si el siguiente bit no llega en los próximos 50 milisegundos, considera esto como el final de la comunicación.
  2. Deseo lograr la misma velocidad de datos para cada Arduino Mega. Por lo tanto, USB debe transferir un total de 540 KB de datos en un segundo. Aquí también tengo que usar el concentrador USB. También me gustaría saber si esto podría causar algún problema, para la transferencia de datos propuesta.

Ahora, aquí quiero saber si esta limitación es del lado USB o Mega o una combinación de ambos. Así que antes de ir a comprar un nuevo Mega para probar, me gustaría saber si funcionará o no.

    
pregunta Damon

1 respuesta

1

El puerto COM es un dispositivo USB CDC , implementa un protocolo específico del proveedor, o ambos.

Estos son protocolos de alto nivel en la parte superior de los puntos de conexión USB, por lo que es más probable que los protocolos de transferencia de datos reales sean paquetes BULK OUT y BULK IN, con algunas transferencias CONTROL intercaladas (por lo que los paquetes USB no corresponden a 1 : 1 a las transferencias de datos a través del puerto serie virtual).

El protocolo de conexión USB es fijo, ya que el intercambio de datos y reconocimientos debe realizarse en un corto período de tiempo, y seguirá el mismo patrón independientemente de las clases de dispositivos y las interfaces que implementa el dispositivo USB.

Para resolver su caso de uso: es poco probable que el USB sea el cuello de botella.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas