Señal y codificación del sistema USB (Parte 5/6)

En esta serie, ya se han analizado las solicitudes y descriptores de USB. Con el conocimiento de los descriptores, solicitudes, tipos de transferencia y transacciones de USB, ahora es fácil comprender cómo se comunican los datos a través de la interfaz USB. Otro aspecto de la comunicación USB son los estados de línea y la codificación, que los diseñadores de sistemas suelen ignorar, ya que un dispositivo USB puede diseñarse sin conocimientos de esquemas de señalización y codificación. Los esquemas de señalización y codificación se implementan en los niveles más bajos (generalmente en el controlador IC) y generalmente se abstraen durante el diseño del sistema. Sin embargo, comprender los términos relacionados con los estados del bus y la codificación ayudaría a obtener una visión integral del sistema USB .

Estados del autobús

El estado del bus se refiere al nivel de voltaje de la señal en el bus USB, o las condiciones que estos voltajes significan:

Diferencial 0 y Diferencial 1: El estado Diferencial 0 se refiere a la condición en la que la línea de datos D+ es lógicamente baja y D- es lógicamente alta. El estado Diferencial 1 ocurre cuando D+ es lógico alto y D- es lógico bajo.

Cero de terminación única: este estado también se conoce como SE0. Ocurre cuando D+ y D- son lógicamente bajos. El bus utiliza el estado SE0 al ingresar a los estados Desconectar, Reiniciar y EOP (Fin de paquete).

Acabado único: También conocido como SE1. Ocurre cuando D+ y D- son lógicamente altos. Este estado puede considerarse un complemento del estado SE0. SE1 nunca debería ocurrir ya que es un estado de bus no válido.

Detenido: este estado ocurre cuando el bus permanece inactivo o no se intercambian paquetes. Para un dispositivo de velocidad máxima, el voltaje en D+ será más positivo que D-, mientras que para un dispositivo de baja velocidad, el voltaje en D- será más positivo que D+

Datos J y Datos K: Los estados de datos J y K se utilizan para definir los estados de datos como el diferencial 0 y 1 que se refiere a los estados del bus. Están definidos por el estado del Diferencial 0 o 1 y la velocidad del autobús.

Tabela que lista o status do flip-flop para estados de barramento diferencial 0 e diferencial 1

Fig. 1: Tabla que enumera el estado del flip-flop para los estados del bus diferencial 0 y diferencial 1

Los estados de datos se utilizan para describir un evento incluso cuando los voltajes en las líneas de datos son diferenciales. Por ejemplo, existe un estado de inicio de paquete cuando el bus cambia del estado inactivo al estado K.

Inicio del paquete: También conocido como SOP. Este estado ocurre cuando hay un cambio del estado Inactivo al estado K. Cada transmisión de paquete comienza con SOP.

Fin del paquete: También conocido como EOP. Este estado ocurre cuando el estado SEO ocurre por tiempos de dos bits, seguido de un estado J por tiempos de 1 bit.

Desconectar: ​​un puerto descendente al que está conectado el dispositivo ingresa al estado desconectado cuando un estado SE0 dura al menos 2,5 uS.

Conectar: ​​un puerto descendente ingresa al estado de conexión cuando hay un estado inactivo durante al menos 2,5 uS y no más de 2 mS.

Algunos otros estados y signos.

Mantenga viva la señal : esta señal está representada por un EOP de baja velocidad. La razón principal de esta señal es mantener el dispositivo en estado inactivo. Esta señal se envía al menos una vez cada milisegundo para evitar que el dispositivo entre en estado de suspensión.

Estado de suspensión : El dispositivo entra en estado de suspensión cuando no hay intercambio de paquetes o el bus permanece inactivo durante 3 mS. Este estado se incorporó al USB para conservar energía. En estado suspendido, el dispositivo no debe consumir más de 500 uA de corriente. Un dispositivo suspendido debe reconocer la señal de reinicio y reanudación.

Reanudar: la señal de reanudación se utiliza para reactivar el dispositivo del estado suspendido. El host despierta el dispositivo del estado de suspensión y mantiene el bus en el estado K durante al menos 20 ms, seguido de un EOP de baja velocidad.

Estado de reinicio: un dispositivo ingresa al estado de reinicio si se aplica SE0 durante más de 2,5 uS. Al restablecerlo, el dispositivo vuelve a su estado predeterminado y no configurado.

Estado desconectado: este estado ocurre cuando el dispositivo USB se desconecta del host. En este estado, el Host ve ambas líneas de datos bajas.

Estado conectado : este estado ocurre cuando el dispositivo USB está conectado al host. El anfitrión reconoce este estado si ve D+ o D- alto.

Condições de listagem de tabela para estados de barramento USB

Fig. 2: Tabla que enumera las condiciones para los estados del bus USB

Diagrama de sinal para diferentes estados de barramento USB

Fig. 3: Diagrama de señales para diferentes estados del bus USB

Identificación de velocidad

En el sistema USB, la velocidad de funcionamiento del dispositivo se detecta comprobando qué línea de datos se tira. La línea de datos se eleva hasta 3,3 V derivados de la línea de voltaje. Normalmente se utiliza una resistencia de 1,5 kilo ohmios para el pull-up.

Para baja velocidad, la línea de datos D está levantada. Mientras que a máxima velocidad, la línea de datos D+ se levanta. Los dispositivos de alta velocidad se detectan inicialmente como dispositivos de máxima velocidad.

Esquema de código

USB emplea un mecanismo de codificación NRZI (sin retorno a cero inversión) para codificar datos en el bus. En la codificación NRZI, un '1' está representado por ningún cambio de nivel, mientras que un '0' está representado por un cambio de nivel. Junto con la codificación NRZI, el aumento de bits y el campo SYNC se utilizan para la sincronización entre el host y el dispositivo.

Diagrama de sinal ilustrando o esquema de codificação de não retorno a zero (NRZI)

Fig. 4: Diagrama de señales que ilustra el esquema de codificación con inversión sin retorno a cero (NRZI)

un poco rígido

Cuando se transmiten largas series de ceros utilizando NRZI, se produce una transición en los niveles. Pero cuando se transmiten series largas, no se produce ninguna transición según el esquema de codificación NRZI. Ninguna transición de nivel durante demasiado tiempo puede confundir al receptor y desincronizarlo.

El endurecimiento de bits es un proceso en el que se inserta un cero en los datos sin procesar cada seis bits consecutivos. Al ingresar cero se produce una transición de nivel. El receptor debe reconocer los bits completados y descartarlos después de decodificar los datos NRZI.

Si no se produce ninguna transición en la señal NRZI después de seis transiciones consecutivas, el receptor decide que no se realizó el endurecimiento de bits y descarta los datos recibidos.

Diagrama de sinal mostrando a mudança de bits no esquema de codificação de inversão sem retorno a zero (NRZI)

Fig. 5: Diagrama de señal que muestra el desplazamiento de bits en el esquema de codificación sin inversión de retorno a cero (NRZI)

campo SINCRONIZAR

El endurecimiento de bits por sí solo no es suficiente para encargarse de la sincronización entre el transmisor y el receptor. Para mantener sincronizados el transmisor y el receptor, se utiliza el campo SYNC. En este mecanismo, cada paquete comienza con un campo SYNC que permite al receptor sincronizar el reloj.

Para velocidad baja/máxima, el campo SYNC es de 8 bits: KJKJKJKK. La primera k sirve como comienzo del paquete. Para alta velocidad, el campo SYNC es de 32 bits: quince repeticiones KJ, seguidas de KK. Las K y J alternativas proporcionan transiciones para la sincronización y las dos últimas KK marcan el final del campo SYNC.

Fin del paquete

El final del paquete, que es SE0 para tiempos de 2 bits seguido del estado J para tiempos de 1 bit, marca el final del paquete.

Todo esto es necesario saber sobre los esquemas de señal y codificación implementados en el sistema USB. En la parte final de la serie, se analiza la selección de un chip controlador para desarrollar dispositivos personalizados con capacidad USB .

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.