Compartir a través de


Control de errores para HID a través de SPI

En este artículo se tratan los procedimientos de detección y control de errores para HID sobre SPI. Los errores en el bus SPI se dividen en las siguientes categorías:

  • Errores de protocolo
  • Errores de tiempo de espera

Errores de protocolo

Los errores de protocolo se caracterizan aún más en las siguientes clasificaciones:

  • Errores de paquetes cortos
  • Errores de nivel de bits

Errores de paquetes cortos

Los errores de paquetes cortos se producen cuando el host o el dispositivo no devuelven el número de bits identificados en el campo solicitud y longitud del protocolo HID SPI. Se espera que el host reloj en el número especificado de bits. El host no tiene ninguna manera de saber si el dispositivo ha dejado de enviar datos, ya que el host leerá lo que ocurra en el autobús. Se espera que el host compruebe los campos de sincronización y otros campos para ver si los datos son razonables. El comportamiento del host para datos inesperados o datos no válidos es iniciar un restablecimiento del dispositivo.

Errores de nivel de bits

Los errores de nivel de bits pueden producirse en el bus SPI. Estos errores suelen ser el resultado del ruido en el bus o la interferencia de otros autobuses del sistema. Esta especificación no admite CRC u otro mecanismo de detección para errores de nivel de bits en la línea de datos SPI.

Es posible que el analizador de hosts identifique un informe con formato incorrecto y lo descarte. Es responsabilidad de la pila del controlador HID del host protegerse frente a un informe con formato incorrecto que no se ajusta al descriptor de informe. El comportamiento del host de los datos inesperados es iniciar un restablecimiento de dispositivo.

Errores de tiempo de espera agotado

El protocolo HID sobre SPI es secuencial con la expectativa de que el dispositivo debe responder a las solicitudes de host de forma oportuna. En la mayoría de los casos, las respuestas del dispositivo al host se completan en cuestión de milisegundos. En caso de que el dispositivo esté bloqueado y no pueda revertirse, hay un retraso de tiempo de espera forzado después del cual el host puede restablecer el dispositivo y reiniciar las operaciones.

TIMEOUT_HostInitiatedReset = 1 second

Los hosts pueden permitir que los métodos propietarios ajusten el valor de este tiempo de espera para sus dispositivos específicos, pero es obligatorio que el host admita un valor de tiempo de espera.

Restablecimiento iniciado por el host

El host puede restablecer el dispositivo para volver a establecer la comunicación con el dispositivo cuando se detecta un error. Este mecanismo está pensado para la recuperación de errores y debe responder a un evento excepcional, como volver a establecer la comunicación con un dispositivo expuesto a una descarga de ESD.