Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué tipo de datos transmite el mouse USB al puerto USB de la computadora?

¿Qué tipo de datos transmite el mouse USB al puerto USB de la computadora?

Es difícil analizar los paquetes. Copié algunos datos, no sé si te serán útiles.

3.7 Tipos de flujo de datos

Existen dos canales para el intercambio de datos y señales de control entre el host y el dispositivo USB: unidireccional y bidireccional. La transferencia de datos USB se realiza entre el software host y el puerto designado del dispositivo USB. Esta conexión entre el software host y el puerto del dispositivo USB se denomina canal. En términos generales, los flujos de datos entre canales son independientes entre sí. Un dispositivo USB determinado puede tener varios canales. Por ejemplo, si un dispositivo USB tiene un puerto, puede establecer un canal para enviar datos al puerto de otros dispositivos USB y también puede establecer un canal para recibir datos del puerto de otros dispositivos USB.

La estructura del USB incluye cuatro tipos básicos de transmisión de datos:

Transmisión de datos de control: se utiliza para la configuración cuando el dispositivo está conectado y también puede controlar dispositivos específicos, como el control de canales;

Transmisión de datos por lotes: los datos generados y utilizados en lotes grandes tienen un amplio rango dinámico bajo restricciones de transmisión;

Transmisión de datos de interrupción: se utiliza para describir o comparar sentimientos humanos o comentarios sobre respuestas características .

Transferencia de datos sincrónica: El ancho de banda USB programado se llena con el retraso de transferencia programado.

Para cualquier dispositivo determinado, un canal solo puede admitir la transmisión de datos en una de las formas anteriores. En el Capítulo 4 se detallan más detalles sobre el modo de flujo de datos.

3.7.1 Transmisión de datos de control

Cuando se instala un dispositivo USB por primera vez, el software del sistema USB utiliza datos de control para configurar el dispositivo y el controlador del dispositivo utiliza los datos de control. Controlar datos para transmitir los datos de una manera específica. La transmisión no tiene pérdidas.

3.7.2 Transmisión de datos por lotes

Los datos por lotes se componen de una gran cantidad de datos. Por ejemplo, cuando se utilizan impresoras y escáneres, los datos por lotes son continuos. La detección de errores se puede utilizar a nivel de hardware para garantizar una transferencia de datos confiable, y se introducen múltiples transferencias de datos a nivel de hardware. Además, dependiendo de otras acciones del bus, el ancho de banda ocupado por grandes cantidades de datos se puede cambiar en consecuencia.

Transmisión de datos interrumpida

Los datos interrumpidos son muy pequeños y su tiempo de retardo de datos es limitado. Estos datos pueden ser enviados por el dispositivo en cualquier momento y transferidos a través de USB a una velocidad no inferior a la velocidad especificada del dispositivo.

Los datos de interrupción generalmente constan de notificación de eventos, características y números de coordenadas, con solo uno o unos pocos bytes. Hacer coincidir las coordenadas de un dispositivo señalador es un ejemplo. Aunque no es necesario especificar la velocidad de transferencia con precisión, el USB debe proporcionar el tiempo de respuesta mínimo para datos interactivos.

Transmisión síncrona

El establecimiento, transmisión y uso de datos sincronizados son continuos y en tiempo real. Los datos sincrónicos envían y reciben información en tiempo real a una velocidad estable. La sincronización de datos debe mantener al receptor y al remitente en el mismo horario. Además de la velocidad de transmisión, los datos de sincronización también son muy sensibles al retraso de la transmisión. Por lo tanto, la determinación del ancho de banda del canal de sincronización debe satisfacer las características de muestreo de los componentes funcionales relevantes. El inevitable retraso de la señal está relacionado con la cantidad de buffers disponibles por puerto.

Un ejemplo típico de datos sincronizados es la voz. Si no se puede mantener la velocidad de transferencia del flujo de datos, la pérdida del flujo de datos dependerá del tamaño del búfer y del grado de corrupción. Incluso si los datos se transfieren a la velocidad adecuada en el hardware USB, los retrasos en la transferencia causados ​​por el software pueden dañar los sistemas en tiempo real, como las aplicaciones de teleconferencia.

La transmisión en tiempo real de datos síncronos definitivamente conducirá a una posible pérdida instantánea de datos. En otras palabras, incluso muchos mecanismos de hardware, como la introducción de la retransmisión, no pueden evitar errores. En aplicaciones prácticas, la tasa de error de datos del USB es casi insignificante. En términos de ancho de banda USB, se asigna una parte especialmente al flujo de datos síncronos USB para cumplir con la velocidad de transmisión esperada. USB también diseña un tiempo de retardo mínimo para la transmisión de datos síncronos.

Tratamiento de 3.3.

Transmisión USB

Como se mencionó anteriormente, existen cuatro tipos de transmisión en el sistema USB: una transmisión generalmente se divide en varias transacciones, el procesamiento de una transacción generalmente pasa por tres paquetes de tokens, paquetes de datos y tres paquetes de datos. fase de paquetes de protocolo de enlace, pero también hay algunas transacciones que no tienen una fase de paquete de datos o una fase de paquete de protocolo de enlace, y también hay algunas transacciones que solo tienen una fase de paquete de token. La siguiente es una breve introducción al procesamiento de estos cuatro tipos de transmisión.

1) Transferencia en bloque

Se utiliza para la transferencia de datos por lotes entre el host y el dispositivo USB. Por lo general, una transferencia en bloque debe dividirse en varias transacciones de transferencia en bloque. Obviamente, la dirección de la transferencia en bloque es única. Para el host, es entrada o salida. Por lo tanto, una transferencia en bloque consta de varias transacciones IN o varias transacciones OUT. La Figura 10.38 es un diagrama esquemático del proceso de transacción de transferencia por lotes. El paquete PING y el paquete NYET en la imagen solo se usan para equipos de transmisión de alta velocidad y los principiantes pueden ignorarlos por el momento.

Para ingresar una transferencia en bloque, generalmente se realizan varias transacciones. Cada vez que se realiza una transacción IN, el host primero emite un paquete de token IN. El punto final del dispositivo responde después de recibir el paquete, generalmente devolviendo un paquete. Si los datos no se pueden devolver, se devuelve un paquete NAK o un paquete STALL. NAK indica que el dispositivo no puede enviar datos temporalmente; STALL indica que el punto final se ha detenido o requiere la intervención del software del sistema IJSB si el host recibe un paquete de datos legítimo, responderá con un paquete de protocolo de enlace ACK si lo encuentra; un error al recibir datos, no se dará ninguna respuesta al dispositivo.

Para que se generen transferencias en bloque, generalmente se realizan varias transacciones de salida. Cada vez que se ejecuta una transacción OUT, el host envía primero el paquete de token OUT y luego el paquete de datos. Después de recibir el paquete de datos, el dispositivo responde con un paquete de protocolo de enlace según la situación; devuelve ACK, lo que indica que los datos se han recibido correctamente y notifica al host que se puede iniciar la siguiente transacción OUT para que se pueda enviar el siguiente paquete de datos. se envía; NAK indica que los datos se han recibido correctamente, pero el host no debe enviar más datos porque el dispositivo no puede recibir temporalmente (por ejemplo, el búfer está lleno, si el punto final ha sido terminado, responderá STALL); para informar al host que no reenvíe los datos porque el dispositivo ha fallado. Si la verificación CRC es incorrecta, el paquete de protocolo de enlace no se enviará;

Cabe señalar que las transacciones de entrada y salida no solo se utilizan en transacciones de transferencia en bloque, sino también en varias otras transacciones de transferencia. Por supuesto, los manejadores pueden variar.

2) Transmisión interrumpida

Se utiliza para la transmisión de datos con un volumen de transmisión de datos pequeño y sin periodicidad, pero es sensible al tiempo de respuesta y requiere una respuesta inmediata. El nombre de transferencia de interrupción implica que un dispositivo puede provocar una interrupción de hardware, lo que hará que el host responda rápidamente. Pero el hecho es que las transferencias interrumpidas, como todas las demás transferencias USB, sólo ocurren cuando el host accede al dispositivo. Se llama transmisión de interrupción porque garantiza que el host responda o envíe datos en el menor tiempo posible. Lo especial de la transmisión de interrupciones es que el host accederá al punto final que puede causar una interrupción (llamado punto final de interrupción) de acuerdo con un ciclo específico para ver si hay una interrupción. La figura 10.39 muestra el flujo de una transacción de transferencia interrumpida.

Para que se ingrese la transmisión de interrupción, el host ejecuta la transacción IN de acuerdo con un ciclo específico. Si no ocurre ninguna interrupción, el punto final de la interrupción responde con un paquete NAK, si hay una interrupción, los datos de la interrupción; será devuelto. Después de recibir los datos, el host envía un paquete ACK.

Para que se genere la transmisión interrumpida, el host ejecuta la transacción OUT de acuerdo con un ciclo específico, envía el token OUT y luego envía el paquete de datos. Si no se produce ninguna interrupción, el punto final de la interrupción responde con un paquete NAK o un paquete STALL; si hay una interrupción y los datos recibidos son correctos, se devuelve un paquete ACK. Cabe señalar que el host siempre ejecutará transacciones OUT según un ciclo específico sin interrumpir el dispositivo y los datos enviados permanecerán sin cambios. Cuando ocurre una interrupción, el puntero de datos se modifica para apuntar a la siguiente área de datos.

Una transferencia interrumpida consta de una o más transacciones de entrada o una o más transacciones de salida.

Una transferencia interrumpida finaliza en una de dos situaciones: cuando se ha transferido la cantidad solicitada de datos o cuando la longitud del paquete es menor que el máximo especificado (incluidos los paquetes de longitud 0). El final de la transferencia de interrupción significa que los datos a transferir han llegado y pueden ser utilizados por el receptor, y la consulta periódica del host del punto final de la interrupción continúa para iniciar la siguiente transferencia de interrupción cuando ocurre la siguiente interrupción.

3) Transmisión síncrona

Se utiliza para la transmisión de datos a velocidad de transmisión periódica y constante. Las transmisiones isócronas tienen un número determinado de bytes en cada trama. Una transferencia isócrona consiste en una transacción de entrada o una transacción de salida por trama en una o más tramas consecutivas. La Figura 10.40 muestra el proceso de una transacción de transferencia isócrona. Se puede ver que la transacción IN y la transacción OUT de transmisión isócrona solo incluyen dos fases: paquete de token y paquete de datos. No hay fase de paquete de protocolo de enlace y no se admite el reintento.

4) Transferencia de control

La transferencia de control proporciona una manera de configurar un dispositivo USB y controlar ciertos aspectos de su funcionamiento. Cada dispositivo debe tener un punto final de control predeterminado establecido (normalmente el punto final O). Los puntos finales de control se utilizan para configurar un dispositivo, controlar el estado del dispositivo y ciertos aspectos del funcionamiento del dispositivo. El punto final de control responde a algunas solicitudes especiales USB enviadas por la transferencia de control. Por ejemplo, cuando un sistema detecta un dispositivo, el software del sistema debe leer el descriptor del dispositivo para determinar su tipo y características operativas.

La transmisión de control incluye al menos dos etapas, o puede ser de tres etapas:

① Etapa de configuración: la transmisión de control siempre comienza desde la etapa de configuración, que envía información al dispositivo de destino y define el tipo de solicitud para el dispositivo (por ejemplo, leer el descriptor del dispositivo).

②Etapa de datos: Esta etapa es solo para solicitudes que necesitan transmitir datos. Por ejemplo, durante la fase de datos, leer un descriptor requiere que el contenido del descriptor se envíe al host. Algunas solicitudes no requieren transferencia de datos fuera de la fase de configuración.

③Fase de estado: Esta fase siempre se utiliza para informar los resultados de la operación solicitada.

En la fase de configuración, las transacciones de configuración se utilizan para transferir información al punto final de control. Configurar una transacción es similar a .

Transacción OUT, pero el PID de identificación del paquete está configurado en lugar de OUT. La figura 10.41 muestra la ejecución de una transacción de configuración. La configuración de la fase de datos de una transacción siempre utiliza el PID DATA0. Si se recibe correctamente, el punto final de control responde con un paquete ACK; si se recibe incorrectamente o se pierden los datos, no se devolverá ningún paquete de protocolo de enlace.

No es necesario controlar la fase de los datos transmitidos. Si se requiere esta fase, consta de una o más transacciones IN o una o más transacciones OUT. Todas las transacciones en la fase de datos deben tener la misma dirección, es decir, todas las transacciones IN o todas las transacciones OUT. La cantidad y dirección de los datos transferidos durante la fase de datos se especifican en la fase de configuración. Si la cantidad de datos excede el tamaño de paquete predeterminado, la transmisión de los datos requiere múltiples transacciones (de entrada o de salida) capaces de transportar el paquete más grande, y la porción restante (menor que el tamaño máximo de paquete) se programa con otra transacción.

La fase de estado de la transferencia de control es la última fase de la transferencia y requiere solo una transacción. La dirección del flujo de datos de la fase de estado debe ser diferente a la de la fase anterior y siempre se debe utilizar el PID DE DATOS. Por ejemplo, si la etapa de datos realiza una transacción de salida, la etapa de estado es una transacción de entrada. Si la transferencia de control no tiene fase de datos, la fase de estado consta de transacciones IN. La Figura 10.42 muestra la secuencia de la transacción, el valor del bit de activación (entre paréntesis) y el tipo de PID de datos para una transferencia de lectura de control, una transferencia de escritura de control y una transferencia de control sin fase de datos.

El proceso anterior de transmisión y transacciones de transmisión refleja el proceso de transmisión de datos en el sistema USB. Tenga en cuenta que una trama (o microtrama) incluye cuatro transacciones de transmisión, por lo que el proceso de transmisión real es más complicado de lo que se indica aquí.

4. Tecnología de activación de datos

El sistema USB adopta tecnología de activación de datos. La activación de datos es un mecanismo para garantizar que el remitente y el receptor de la transmisión de datos estén sincronizados, lo cual es especialmente importante para procesos de transmisión largos que requieren una gran cantidad de transacciones. Cuando se produce un error de protocolo de enlace, el mecanismo de activación de datos puede resincronizar al remitente y al receptor.

La activación de datos solo admite transferencia de interrupción, transferencia de bloque y transferencia de control. Los remitentes y receptores que admiten el mecanismo de activación de datos deben tener bits de activación en cada transmisión de datos. Cuando ambas partes creen que la transferencia de datos se ha completado correctamente, cambian sus bits de activación al estado opuesto. Se transmiten alternativamente dos tipos de paquetes de datos (datos0 y datos1), y el receptor del paquete de datos lo comparará con el bit de activación para determinar si el paquete de datos recibido es correcto. El tipo de paquete utilizado por el remitente es coherente con el estado actual de su bit de activación (por ejemplo, si el bit de activación es 0, el paquete utiliza datos 0). Tomemos la transacción OUT como ejemplo para comprender el mecanismo de activación de datos.

Ejemplo 10.1 La figura 10.43 muestra el proceso de una transacción OUT sin errores y los cambios en el bit de activación. Supongamos que los bits de activación tanto del remitente como del receptor comienzan con 0. El proceso de propagación es el siguiente:

Transacción l:

①El host envía un token de salida al dispositivo de destino.

②El dispositivo de destino recibe el paquete de token sin errores.

③El host envía un paquete de datos DATA0 al dispositivo de destino (consistente con su bit de activación).

④El dispositivo de destino recibe el paquete de datos DATA0, que es coherente con el bit de activación.

⑤El dispositivo de destino recibe con éxito el paquete de datos DATA0 y el bit de activación se convierte en 1.

⑥El dispositivo de destino envía un paquete de protocolo de enlace ACK al host para notificarle que los datos se han recibido sin errores.

⑦El host recibe el paquete ACK sin errores.

⑧Después de recibir exitosamente el paquete ACK, el host cambia el bit de activación a L..

Transacción 2:

①El host envía un nuevo comando OUT al tarjeta del dispositivo de destino para iniciar el siguiente proceso de transacción.

②El dispositivo de destino recibe el paquete de token sin errores.

③El host envía paquetes de datos DAl y A1 al dispositivo de destino (de acuerdo con su bit de activación).

④El dispositivo de destino recibe el paquete de datos DATAl consistente con el bit de activación.

⑤El dispositivo de destino recibe con éxito el paquete de datos DATAl y el bit de activación se convierte en 0.

⑥El dispositivo de destino envía un paquete de protocolo de enlace ACK al host para notificarle que los datos se han recibido sin errores.

⑦El host recibe el paquete ACK sin errores.

⑧ Tras la recepción exitosa del paquete ACK, el host activará el bit 0.

Este proceso es el mismo para cada transacción hasta que se completa la transferencia completa. Siempre que el paquete de datos recibido sea coherente con el bit de activación y el remitente reciba el paquete de protocolo de enlace ACK sin errores, el remitente y el receptor permanecen sincronizados.

El caso anterior es el caso en el que tanto los paquetes de datos como los paquetes de protocolo de enlace se transmiten correctamente. Veamos los errores de transmisión de paquetes y los errores de transmisión de paquetes de protocolo de enlace, respectivamente.

Ejemplo l0.2 La figura 10.44 muestra la salida m-ésima de la transmisión. Durante el procesamiento de la transacción, ocurrió un error de transmisión de paquetes. Las operaciones realizadas por el host y el dispositivo de destino son las siguientes:

Transacción m:

①El host envía un token de salida al dispositivo de destino.

②El dispositivo de destino recibe el paquete de token sin errores. ,

③El host envía un paquete de datos DATA0 al dispositivo de destino (consistente con su bit de activación).

④Cuando el dispositivo de destino recibe el paquete de datos DATAO, se encuentra un error.

⑤ Debido a que se detecta un error de paquete, el dispositivo de destino ignorará el paquete. Los datos se descartarán y el paquete de protocolo de enlace no se enviará al host. Dado que el paquete no se recibió correctamente, el bit de activación permanece sin cambios.

⑥El host espera que regrese el paquete de protocolo de enlace, pero no hay respuesta. Una vez transcurrido el tiempo de espera del bus (tiempo de 16 bits), el host no detecta respuesta y considera que la transmisión del paquete de datos no tuvo éxito y el bit de activación del host permanece sin cambios. Posteriormente, el anfitrión debe rehacer la transacción.

Se reanuda la transacción m:

①El host envía un token de salida al dispositivo de destino.

②El dispositivo de destino recibe el paquete de token sin errores.

③El host envía un paquete de datos DATAO (consistente con su bit de activación) al dispositivo de destino que falló en la última transmisión.

④El dispositivo de destino recibe con éxito el paquete de datos DATA0, que es coherente con el bit de activación.

⑤ Dado que el paquete de datos DATA0 se recibe correctamente, el dispositivo de destino cambia el bit de activación a 1.

⑥El dispositivo de destino envía un paquete de protocolo de enlace ACK al host para notificarle que los datos se han recibido sin errores.

⑦El host recibe el paquete ACK sin errores.

⑧ Después de recibir con éxito el paquete ACK, el host cambia el bit de activación a l.

Como se puede ver en el proceso anterior, los dispositivos host y de destino permanecen sincronizados a pesar de los errores de transmisión.

Ejemplo 10.3 La Figura 10.45 muestra el procesamiento de la enésima transacción OUT transmitida, durante la cual falló debido a un error de paquete ACK. Cada paso de la detección y recuperación de errores es el siguiente:

Número de transacción:

①El host envía un token de salida al dispositivo de destino.

②El dispositivo de destino recibe el paquete de token sin errores.

③Luego, el host envía un paquete de datos DATA0 al dispositivo de destino (consistente con su bit de activación).

④El dispositivo de destino recibe el paquete de datos DATA0, que es coherente con el bit de activación.

⑤El dispositivo de destino recibe con éxito el paquete de datos DATA0 y el bit de activación se convierte en 1.

⑥El dispositivo de destino envía un paquete de protocolo de enlace ACK al host para notificarle que los datos se han recibido sin errores.

⑦ Hay un error en el paquete ACK recibido por el host.

⑧Debido a que el host detectó un error, no puede determinar si el dispositivo de destino recibió los datos correctamente. Por lo tanto, el bit de activación del host no ha cambiado (aún es 0). El host asume que el dispositivo de destino no recibió los datos, por lo que rehacerá la transacción.

Se restaura la transacción n:

①El host envía el token de salida al dispositivo de destino.

②El dispositivo de destino recibe el paquete de token sin errores.

③El host reenvía el paquete DATA0 al dispositivo de destino (de acuerdo con su bit de activación. Se desconoce si el dispositivo de destino recibió el paquete correctamente durante la última transmisión).

④El dispositivo de destino recibe el paquete de datos DATA0 correctamente, pero no es coherente con el bit de activación.

⑤El dispositivo de destino cree que no está sincronizado con el host, descarta los datos y el bit de activación permanece sin cambios (1).

⑥El dispositivo de destino envía un paquete de protocolo de enlace ACK al host para notificarle que los datos se han recibido sin errores, porque

el host obviamente no recibió el último paquete de protocolo de enlace ACK .

⑦El host recibe el paquete de protocolo de enlace ACK sin errores.

⑧ Después de recibir con éxito el paquete ACK, el host cambia el bit de activación a 1. Los dispositivos host y de destino ahora están listos para la siguiente transacción.

Se puede ver en este ejemplo que el host y el dispositivo de destino aún no han llegado a un acuerdo sobre si se completa la transferencia de datos. Sin embargo, el mecanismo de activación de datos garantiza que se pueda detectar la falta de sincronización y que se pueda volver a lograr la sincronización.

/yangchengbo 82/blog/item/e 9301b 895 c 00 b 1b 10e 244435 html

.