Sinal e codificação do sistema USB (Parte 5/6)

Nesta série, as solicitações e descritores USB já foram discutidos. Com o conhecimento de USB descritores, solicitações, tipos de transferência e transações, agora é fácil entender como os dados são comunicados pela interface USB. Outro aspecto da comunicação USB são os estados de linha e a codificação, que geralmente são ignorados pelos projetistas do sistema, pois um dispositivo USB pode ser projetado sem o conhecimento dos esquemas de sinalização e codificação. Os esquemas de sinalização e codificação são implementados nos níveis mais baixos (geralmente no controlador IC) e geralmente são abstraídos durante o projeto do sistema. No entanto, compreender os termos relacionados aos estados do barramento e à codificação ajudaria a obter uma compreensivo visão do USB Sistema.

Estados de ônibus

O estado do barramento refere-se ao nível de tensão do sinal no barramento USB ou às condições que essas tensões significam -:

Diferencial 0 e Diferencial 1: O estado Diferencial 0 refere-se à condição quando a linha de dados D+ está logicamente baixa e D- está logicamente alta. O estado Diferencial 1 ocorre quando D+ é lógico alto e D- é lógico baixo.

Zero finalizado único: Este estado também é conhecido como SE0. Ocorre quando D+ e D- estão logicamente baixos. O estado SE0 é utilizado pelo barramento ao entrar nos estados Disconnect, Reset e EOP (End of Packet).

Único finalizado: Também conhecido como SE1. Ocorre quando D+ e D- são logicamente altos. Este estado pode ser considerado um complemento do estado SE0. SE1 nunca deve ocorrer, pois é um estado de barramento inválido.

Parado: Este estado ocorre quando o barramento permanece ocioso ou não há troca de pacotes. Para um dispositivo de velocidade total, a tensão em D+ será mais positiva que D- enquanto para um dispositivo de baixa velocidade, a tensão em D- será mais positiva que D+

Dados J e Dados K: Os estados dos dados J e K são usados ​​para definir os estados dos dados como o diferencial 0 e 1 que se refere aos estados do barramento. Eles são definidos pelo estado Diferencial 0 ou 1 e pela velocidade do barramento.

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

Fig. 1: Tabela listando o status do flip-flop para estados de barramento diferencial 0 e diferencial 1

Os estados dos dados são usados ​​para descrever um evento mesmo quando as tensões nas linhas de dados são diferenciais. Por exemplo, existe um estado de início de pacote quando o barramento muda do estado inativo para o estado K.

Início do pacote: Também conhecido como SOP. Este estado ocorre quando há uma mudança do estado Idle para K. Cada transmissão do pacote começa com SOP.

Fim do pacote: Também conhecido como EOP. Este estado ocorre quando o estado SEO ocorre por tempos de dois bits, seguido por um estado J por tempos de 1 bit.

Desconectar: Uma porta downstream na qual o dispositivo está conectado entra no estado desconectado quando um estado SE0 dura pelo menos 2,5 uS.

Conectar: Uma porta downstream entra no estado de conexão quando há um estado inativo por no mínimo 2,5 uS e não mais que 2 mS

Alguns outros estados e sinais

Mantenha o sinal vivo: Este sinal é representado por um EOP de baixa velocidade. O principal motivo deste sinal é manter o dispositivo em estado inativo. Este sinal é enviado pelo menos uma vez a cada milissegundo, para evitar que o dispositivo entre no estado de suspensão.

Suspender estado: O dispositivo entra no estado Suspenso quando não há troca de pacotes ou o barramento permanece inativo por 3 mS. Este estado foi incorporado ao USB para conservação de energia. No estado suspenso, o dispositivo não deve consumir mais de 500 uA de corrente. Um dispositivo suspenso deve reconhecer o sinal de reinicialização e retomada.

Retomar: O sinal de retomada é usado para despertar o dispositivo do estado suspenso. O Host desperta o dispositivo do estado de suspensão, mantendo o barramento no estado K por pelo menos 20 ms, seguido por um EOP de baixa velocidade.

Redefinir estado: Um dispositivo entra no estado Reset se SE0 for aplicado por mais de 2,5 uS. A redefinição define o dispositivo para seu estado padrão não configurado.

Estado desanexado: Este estado ocorre quando o dispositivo USB é desconectado do Host. Neste estado, o Host vê ambas as linhas de dados baixas.

Estado anexado: Este estado ocorre quando o dispositivo USB está conectado ao Host. O host reconhece esse estado se vir D+ ou D- alto.

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

Fig. 2: Tabela listando condições para estados do barramento USB

Diagrama de sinal para diferentes estados de barramento USB

Fig. 3: Diagrama de sinais para diferentes estados do barramento USB

Identificação de velocidade

No sistema USB, a velocidade operacional do dispositivo é detectada verificando qual linha de dados está puxada. A linha de dados é puxada até 3,3 V derivada da linha de tensão. Normalmente, um resistor de 1,5 quilo ohm é usado para pull-up.

Para baixa velocidade, a linha de dados D é puxada para cima. Enquanto para velocidade total, a linha de dados D+ é puxada para cima. Dispositivos de alta velocidade são inicialmente detectados como dispositivos de velocidade máxima.

Esquema de codificação

O USB emprega mecanismo de codificação NRZI (Non Return to Zero Inversion) para codificar os dados no barramento. Na codificação NRZI, um '1' é representado por nenhuma mudança no nível, enquanto um '0' é representado por uma mudança no nível. Juntamente com a codificação NRZI, o reforço de bits e o campo SYNC são usados ​​para sincronização entre o host e o dispositivo.

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

Fig. 4: Diagrama de sinal ilustrando o esquema de codificação de inversão sem retorno a zero (NRZI)

Um pouco rígido

Quando longas séries de zeros são transmitidas usando NRZI, causa uma transição nos níveis. Mas quando longas séries são transmitidas, nenhuma transição ocorre de acordo com o esquema de codificação NRZI. Nenhuma transição de níveis por muito tempo pode confundir o receptor e torná-lo dessincronizado.

O endurecimento de bits é um processo no qual um zero é inserido nos dados brutos a cada seis consecutivos. A inserção de zero provoca transição de nível. O receptor deve reconhecer os bits preenchidos e descartá-los após decodificar os dados NRZI.

Caso nenhuma transição ocorra no sinal NRZI após seis transições consecutivas, o receptor decide que o endurecimento de bits não foi feito e descarta os dados recebidos.

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 sinal mostrando a mudança de bits no esquema de codificação sem retorno a zero inversão (NRZI)

Campo SINCRONIZAR

O endurecimento de bits por si só não é suficiente para cuidar da sincronização entre transmissor e receptor. Para manter o transmissor e o receptor sincronizados, o campo SYNC é usado. Neste mecanismo, cada pacote começa com um campo SYNC que permite ao receptor sincronizar o relógio

Para velocidade baixa/máxima, o campo SYNC é de 8 bits: KJKJKJKK. O primeiro k serve como início do pacote. Para alta velocidade, o campo SYNC é de 32 bits: quinze repetições KJ, seguidas de KK. Os Ks e Js alternativos fornecem transições para sincronização e os dois KKs finais marcam o fim do campo SYNC.

Fim do pacote

O fim do pacote que é SE0 para tempos de 2 bits seguido pelo estado J para tempos de 1 bit marca o fim do pacote.

Tudo isso é necessário para saber sobre os esquemas de sinal e codificação implementados no sistema USB. Na parte final da série, seleção de um chip controlador para desenvolvimento de dispositivos personalizados habilitados para USB é discutido.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.