USB en una cáscara de nuez
Parte 4
A diferencia de RS-232 y similares interfaces en serie, donde se envía el formato de datos no está definido, USB se compone de varias capas de protocolos. Aunque esto suena complicado, no te rindas ahora. Una vez usted entienda lo que está pasando, en realidad sólo tiene que preocuparse de las capas de nivel superior. De hecho la mayoría de circuitos integrados del controlador USB se encargará de la capa inferior, por lo que es casi invisible para el diseño final. Cada transacción consiste en un USB Como ya hemos discutido, USB es un bus de host céntrica. El host inicia todas las transacciones. El primer paquete, también llamado token es generado por el anfitrión para describir lo que sigue y si la transacción de datos será una lectura o escritura y lo que la dirección del dispositivo y el punto final es designado. El siguiente paquete es por lo general un paquete de datos lleva la carga útil y es seguido por un paquete de protocolo de enlace, la información si los datos o de la ficha fue recibida con éxito, o si el punto final está bloqueado o no disponible para aceptar los datos. Los datos sobre la USBus se transmite LSBit primero. USB paquetes constan de los siguientes campos, Todos los paquetes deben comenzar con un campo de sincronización. El campo de sincronización es de 8 bits de longitud a una velocidad baja y completa o 32 bits de alta velocidad y se utiliza para sincronizar el reloj del receptor con la del transmisor. Los dos últimos bits indican que los campos PID comienza. PID es sinónimo de paquetes de identificación. Este campo se utiliza para identificar el tipo de paquete que se envía. La siguiente tabla muestra los valores posibles. Grupo Token 1001 0101 1101 Datos 1011 0111 1111 Apretón de manos 1010 1110 0110 Especial 1100 1000 0100 Hay 4 bits a la PID, sin embargo para asegurar que se recibe correctamente, el 4 bits se complementan y repetidas, por lo que una de 8 bits PID en total. El formato resultante se muestra a continuación. PID 0 El campo de dirección especifica el dispositivo que el paquete se ha diseñado para. Ser 7 bits de longitud permite el 127 dispositivos a ser apoyada. Dirección 0 no es válida, ya que cualquier dispositivo que aún no se le asigna una dirección debe responder a los paquetes enviados a la dirección cero. El campo de punto final se compone de 4 bits, permitiendo 16 puntos finales posibles. dispositivos de baja velocidad, sin embargo, sólo puede tener dos extremos adicionales en la parte superior de la tubería por defecto. (Máximo 4 puntos finales) Comprobaciones de redundancia cíclica se realizan en los datos de la carga útil del paquete. Todos los paquetes token de tener un poco CRC 5, mientras que los paquetes de datos tienen un poco CRC 16. Fin del paquete. Señalizados por un único cero de composición (SE0) durante aproximadamente 2 veces poco seguida por una J por el tiempo de 1 bit.
Los campos comunes de paquetes USB
PID Valor
Identificador de Paquete
0001
FUERA Token
En señal
SOF Token
CONFIGURACIÓN Token
0011
DATA0
DATA1
DATA2
MDATA
0010
ACK Handshake
NAK Handshake
BLOQUEO apretón de manos
Nyet (No hay respuesta todavía)
1100
Preámbulo
ERR
Split
Ping
PID 1
PID 2
PID 3
PNDI 0
PNDI un
PNDI 2
PNDI 3USB Tipos de paquetes
USB tiene cuatro tipos de paquetes diferentes. paquetes Token indicar el tipo de transacción a seguir, los paquetes de datos contienen la carga, los paquetes de apretón de manos se utilizan para el reconocimiento de datos o errores de información e inicio de los paquetes marco de indicar el inicio de un nuevo marco.
- Los paquetes Token
Hay tres tipos de paquetes de manera,
- En - Informa el dispositivo USB que el anfitrión desea obtener información.
- Fuera - Informa el dispositivo USB que el host desea enviar la información.
- El programa de instalación - Se utiliza para iniciar la transferencia de control.
Los paquetes Token debe cumplir con el siguiente formato,
Sync
PID
ADDR
ENDP
CRC5
EOP - Los paquetes de datos
Hay dos tipos de paquetes de datos cada uno capaz de transmitir hasta 1024 bytes de datos.
- DATA0
- Datos1
El modo de alta velocidad define otro conjunto de datos de las IDPs, DATA2 y MDATA.
Los paquetes de datos tienen el formato siguiente,
Sync
PID
Datos
CRC16
EOP- El tamaño máximo de carga de datos para dispositivos de baja velocidad es de 8 bytes.
- El tamaño máximo de carga de datos para dispositivos de alta velocidad es de 1023 bytes.
- El tamaño máximo de carga de datos para dispositivos de alta velocidad es de 1024 bytes.
- Los datos deben ser enviados en múltiplos de bytes.
- Apretón de manos paquetes
Hay tres tipos de paquetes de protocolo de enlace que consisten simplemente en el PID
- ACK - Reconocimiento de que el paquete ha sido recibido con éxito.
- NAK - Los informes de que el dispositivo temporal no puede enviar o recibir datos. También se utiliza durante las operaciones de interrupción de informar a la acogida no hay datos para enviar.
- BLOQUEO - El dispositivo tiene su en un estado que requiere la intervención del anfitrión.
Apretón de manos paquetes tienen el siguiente formato,
Sync
PID
EOP - Inicio de paquetes marco
El paquete SOF que consiste en un marco poco número 11 es enviado por el host cada 1 ms ± 500ns en un autobús a toda velocidad o cada 125 mu.s ± 0,0625 mu.s en un bus de alta velocidad.
Sync
PID
Número de fotograma
CRC5
EOP
Funciones USB
Cuando pensamos en un dispositivo USB, pensamos en un periférico USB, un dispositivo USB, pero podría significar un dispositivo transmisor-receptor USB que se usa en el sistema principal o periférico, un concentrador USB o Host de dispositivo controlador IC, o un dispositivo periférico USB. La norma por lo tanto hace referencia a las funciones de USB que se puede ver como los dispositivos USB que proporcionan una capacidad o función, como una impresora, una unidad Zip, escáner, módem u otro periférico.
Así que por ahora debemos saber el tipo de cosas que forman un paquete de USB. ¿No? Usted está olvidado cuántos bits forman un campo PID ya?Bueno, no se alarme demasiado. Afortunadamente la mayoría de funciones USB manejar el bajo nivel de protocolos USB hasta la capa de transacción (que vamos a cubrir el capítulo siguiente) en el silicio. La razón por la que cubrir esta información es más controladores de la función USB informe de errores, tales como PID error de codificación. Sin cubriendo brevemente esto, uno podría preguntarse ¿qué es un error de codificación PID? Si usted ha sugerido que los últimos cuatro bits de la PID no se corresponde con el inverso de los primeros cuatro bits, entonces estaría bien.
La mayoría de las funciones tendrá una serie de topes, típicamente de 8 bytes de longitud. Cada tampón pertenecerá a un extremo - ep0 EN, ep0 FUERA etc Digamos por ejemplo, el host envía una solicitud de descriptor del dispositivo. El hardware de función lee el paquete de instalación y determinar desde el campo de dirección si el paquete es para sí, y si es así va a copiar el contenido del paquete los siguientes datos en el búfer de punto final apropiada dictadas por el valor en el campo de punto final de la configuración simbólica . A continuación, enviar un paquete apretón de manos a reconocer la recepción de los bytes y generar una interrupción interna dentro de los semiconductores / micro-controlador para el extremo apropiado que significa que ha recibido un paquete. Esto normalmente se hace todo en hardware.
El software ahora recibe una interrupción, y debería leer el contenido del búfer de punto final y analizar la solicitud descriptor del dispositivo.
Los extremos pueden ser descritos como fuentes o sumideros de datos. Cuando el autobús es el anfitrión céntrica, los extremos se producen al final del canal de comunicaciones en la función USB. En la capa de software, el controlador de dispositivo puede enviar un paquete a los dispositivos EP1 por ejemplo. Como los datos están fluyendo desde el host, que va a terminar en el EP1 tampón OUT. Su firmware entonces en su tiempo libre leer estos datos. Si quiere devolver los datos, la función no puede limitarse a escribir en el autobús, el autobús es controlado por el anfitrión. Por lo tanto, escribe datos en EP1 en que se encuentra en el búfer hasta el momento en el host envía un paquete en el punto final que solicita los datos. Los extremos también puede ser visto como la interfaz entre el hardware del dispositivo de la función y el firmware que se ejecuta en el dispositivo de la función.
Todos los dispositivos deben ser compatibles extremo cero. Este es el punto final que recibe todos los dispositivos de control y las solicitudes de estado durante la enumeración, y durante todo el período, mientras el dispositivo está en funcionamiento en el autobús.
Mientras que el dispositivo envía y recibe datos en una serie de criterios de valoración, el cliente transfiere software de datos a través de tuberías.Una tubería es una conexión lógica entre el host y el punto final (s). Pipes también tendrá un conjunto de parámetros asociados con ellos, tales como cuánto ancho de banda asignado, el tipo de transferencia (de Control, a granel, Iso o de interrupción) que utiliza, una dirección de flujo de datos y máximo de paquete / tamaños de búfer. Por ejemplo, el tubo por defecto es un tubo bidireccional integrado por cero en el punto final y el punto final a cero con un tipo de transferencia de control.
USB define dos tipos de tubos
- Tubos de Stream no tienen definido el formato USB, que se puede enviar cualquier tipo de datos por un tubo de corriente y puede recuperar los datos por el otro extremo. Los flujos de datos de forma secuencial y tiene una dirección definida previamente, ya sea dentro o fuera. tubos de corriente apoyará isócrono e interrumpir la transferencia de tipos, a granel. tubos de flujo pueden ser controlados por el anfitrión o dispositivo.
- Mensaje tuberías tienen un formato definido por USB. Son de acogida controlada, que se inició por una solicitud enviada desde el host. Los datos se transfieren en la dirección deseada, dictada por la solicitud. Por lo tanto las tuberías mensaje de permitir el flujo de datos en ambas direcciones pero sólo apoyará la transferencia de control.
No hay comentarios:
Publicar un comentario