• Controlar el intercambio de datos
• Intercambio de datos en forma de carga útil real
Campos de paquetes USB
En USB, el LSB del paquete se transmite primero. Un paquete USB contiene diferentes campos. Ellos son:
• Sincronizar : Es un campo obligatorio que aparece al principio del paquete. Este campo sincroniza el reloj del receptor con el del transmisor. Para el modo de velocidad baja y máxima, este campo es de 8 bytes y para el modo de alta velocidad es de 32 bytes.
• PID : PID significa ID de paquete. Indica el tipo de paquete que se envía. Este campo tiene una longitud de 8 bits. Los cuatro bits superiores identifican el tipo de paquete y los cuatro bits inferiores son un complemento bit a bit de los cuatro bits superiores. Los cuatro bits inferiores ayudan con la detección de errores.

Fig. 1: Tabla que enumera los campos del paquete USB
• ADDR : este campo contiene la dirección de designación del dispositivo USB. Es de 7 bits, lo que significa que puede admitir 27 ¬=127 dispositivos.
• PEND : Este campo especifica el número de terminal. Son 4 bits, lo que significa que puede indicar 2¬¬4¬¬ ¬¬= 16 posibles puntos finales.
Para paquetes de token se utiliza CRC de 5 bits y para paquetes de datos se utiliza CRC de 16 bits.
• POE : EOP significa Fin de Paquete. Este campo señala las líneas de datos a cero de extremo único (SE0) durante aproximadamente 2 bits, seguido por el estado J (estado inactivo) durante 1 bit.
Tipos de paquetes USB
Básicamente, existen cuatro tipos de paquetes de datos:
1. Paquetes de tokens : estos paquetes los envía únicamente el host. La estructura del paquete contiene un byte PID, 11 bits de dirección y un CRC de 5 bits. Tipos de paquetes de tokens:

Fig. 2: Imagen que muestra el formato de datos de los paquetes de tokens
2. Paquetes de datos: hay dos tipos de paquetes de datos, Datos0 y Datos1. La estructura del paquete contiene un byte PID, un campo de datos y un CRC de 16 bits. El campo de datos puede transportar de 0 a 1023 bytes de datos. Los datos siempre deben enviarse en múltiplos de bytes.

Fig. 3: Imagen que muestra el formato de datos de los paquetes de datos.
Después de USB2.0, se agregaron dos tipos más, Data2 y MData. Sólo se utilizan en transferencias de alta velocidad y transferencias isócronas de gran ancho de banda cuando es necesario transferir más de 1024 bytes a 8192 kB/s.
3. Paquetes de protocolo de enlace : estos paquetes se envían principalmente en respuesta a paquetes de datos. Consisten simplemente en un byte PID. Hay tres tipos de paquetes de protocolo de enlace:

Fig. 4: Imagen que muestra el formato de datos de los paquetes de protocolo de enlace
Actas
Una transacción exitosa consta de hasta tres fases que ocurren en secuencia. Son fase de token, fase de datos y fase de protocolo de enlace.

Fig. 6: Diagrama de bloques de transacciones USB
Estas fases garantizaron la transferencia segura de datos. Hay tres tipos de transacciones:

Fig. 7: Tabla que enumera los tipos de transacciones USB
Tipos de transferencia USB
Tipos de transferencias USB

Fig. 8: Tabla que enumera los tipos de transferencias USB
Actualmente, USB admite cuatro tipos de modos de transferencia. Cada uno de ellos está diseñado para resolver diferentes propósitos. Ellos son :
1. Transferencias de control
Las transferencias de control se utilizan para transportar información relacionada con la configuración de dispositivos periféricos. El anfitrión aprende sobre el periférico a través de esta transferencia. También admite flujo de comunicación de tipo comando y estado. El punto final de control predeterminado es siempre cero. Es el punto final de control que responde a consultas del host, como la descripción del dispositivo, mediante la transferencia de control.
Hay tres pasos en la transferencia de control y cada paso se compone de una o más transacciones. Ellos son:
• Etapa de configuración : la transferencia de control siempre comienza en esta etapa. En esto, el host envía la consulta/solicitud al dispositivo USB (periférico).
• Etapa de datos – En esta fase se realizan varias transacciones IN o OUT. El paquete de Datos contiene información relacionada con la solicitud realizada en el paso anterior.
Las transferencias de control son compatibles con todos los modos de velocidad. El tamaño máximo de carga útil de datos para paquetes de datos en la etapa de datos es diferente para cada modo de velocidad. Para dispositivos de baja velocidad, es de 8 bytes. Para dispositivos de alta velocidad, puede ser de 8, 16, 32 o 64 bytes. Para dispositivos de alta velocidad, es de 64 bytes. Estos bytes no incluyen bits PID y CRC.
Las transferencias masivas se utilizan para transferir grandes cantidades de datos de forma secuencial. No tienen ancho de banda garantizado. El traspaso ocurre cuando queda algo de ancho de banda después de asignar ancho de banda para control, interrupción y traspaso isócrono. Si no hay ancho de banda disponible o el bus está ocupado, la transferencia puede tardar mucho en completarse.
3. Transferencias isócronas
Son unidireccionales y utilizan transacciones IN o OUT. Una característica especial de la transferencia isócrona es que no hay protocolo de enlace de paquetes en la transacción. Sólo son compatibles con dispositivos Full y High Speed.
4. Detener transferencias
En este tipo de transferencia, las transacciones IN y OUT se realizan periódicamente. El tamaño máximo de carga útil de datos para la transferencia de interrupción es diferente para cada modo de velocidad. Para dispositivos de baja velocidad, es de hasta 8 bytes. Para dispositivos de máxima velocidad, es de hasta 64 bytes. Para dispositivos de alta velocidad, es de hasta 1024 bytes. Estos bytes no incluyen bits PID y CRC.

Fig. 9: Tabla comparativa de tipos de transferencias USB

Fig. 10: Tabla comparativa de tipos de transferencias USB

Fig. 11: Tabla que enumera las transacciones para diferentes transferencias USB