Compartilhar via


Tratamento de erros para HID sobre SPI

Este artigo aborda procedimentos de detecção e tratamento de erros para HID por SPI. Os erros no barramento SPI são divididos nas seguintes categorias:

  • Erros de protocolo
  • Erros do Tempo Limite

Erros de protocolo

Os erros de protocolo são ainda mais caracterizados nas seguintes classificações:

  • Erros curtos de pacote
  • Erros de nível de bit

Erros curtos de pacote

Erros curtos de pacote ocorrem quando o host ou o dispositivo não retorna o número de bits conforme identificado no campo solicitação e comprimento do protocolo HID SPI. Espera-se que o host clock no número especificado de bits. O host não tem como saber se o dispositivo parou de enviar dados, pois o host lerá o que quer que esteja no ônibus. Espera-se que o host marcar campos de sincronização e outros campos para ver se os dados são razoáveis. O comportamento do host para dados inesperados ou dados inválidos é iniciar uma redefinição de dispositivo.

Erros de nível de bit

Erros de nível de bit podem ocorrer no barramento SPI. Esses erros geralmente são resultado de ruído no ônibus ou interferência de outros ônibus no sistema. Essa especificação não dá suporte ao CRC ou a outro mecanismo de detecção para erros de nível de bit na linha de dados SPI.

É possível que o analisador de host identifique um relatório malformado e descarte-o. É responsabilidade da pilha de driver hid host proteger-se contra um relatório malformado que não está em conformidade com o descritor de relatório. O comportamento do host para dados inesperados é iniciar uma redefinição de dispositivo.

Erros do tempo limite

O protocolo HID sobre SPI é sequencial com a expectativa de que o dispositivo deve responder às solicitações de host em tempo hábil. Na maioria dos casos, as respostas do dispositivo para o host são concluídas em questão de milissegundos. Caso o dispositivo esteja preso e não consiga se reverter, há um atraso de tempo limite forçado após o qual o host pode redefinir o dispositivo e reiniciar as operações.

TIMEOUT_HostInitiatedReset = 1 second

Os hosts podem permitir que métodos proprietários ajustem o valor desse tempo limite para seus dispositivos específicos, mas é obrigatório que o host dê suporte a um valor de tempo limite.

Redefinição iniciada pelo host

O host pode redefinir o dispositivo para restabelecer a comunicação com o dispositivo quando um erro for detectado. Esse mecanismo destina-se à recuperação de erros e deve ser uma resposta a um evento excepcional, como restabelecer a comunicação com um dispositivo que foi exposto a uma descarga de ESD.