Partager via


Gestion des erreurs pour HID sur SPI

Cet article décrit les procédures de détection et de gestion des erreurs pour HID sur SPI. Les erreurs sur le bus SPI sont réparties dans les catégories suivantes :

  • Erreurs de protocole
  • Erreurs en relation avec les délais d'expiration

Erreurs de protocole

Les erreurs de protocole sont davantage caractérisées dans les classifications suivantes :

  • Erreurs de paquets courts
  • Erreurs de niveau de bits

Erreurs de paquets courts

Des erreurs de paquets courts se produisent lorsque l’hôte ou l’appareil ne retourne pas le nombre de bits identifié dans le champ de requête et de longueur du protocole HID SPI. L’hôte est censé horloger dans le nombre de bits spécifié. L’hôte n’a aucun moyen de savoir si l’appareil a cessé d’envoyer des données, car l’hôte lit tout ce qui se trouve dans le bus. L’hôte est censé case activée les champs de synchronisation et d’autres champs pour voir si les données sont raisonnables. Le comportement de l’hôte pour les données inattendues ou non valides consiste à lancer une réinitialisation d’appareil.

Erreurs au niveau du bit

Des erreurs au niveau du bit peuvent se produire sur le bus SPI. Ces erreurs sont généralement le résultat d’un bruit sur le bus ou d’interférences d’autres bus dans le système. Cette spécification ne prend pas en charge crc ou autre mécanisme de détection des erreurs au niveau du bit sur la ligne de données SPI.

Il est possible pour l’analyseur hôte d’identifier un rapport mal formé et de l’ignorer. Il incombe à la pile de pilotes HID hôte de se prémunir contre un rapport mal formé qui n’est pas conforme au descripteur de rapport. Le comportement de l’hôte pour les données inattendues consiste à lancer une réinitialisation de l’appareil.

Erreurs de délai d’expiration

Le protocole HID sur SPI est séquentiel avec l’attente que l’appareil doit répondre aux demandes d’hôte en temps opportun. Dans la plupart des cas, les réponses de l’appareil à l’hôte se terminent en quelques millisecondes. Dans le cas où l’appareil est bloqué et ne peut pas se rétablir lui-même, il existe un délai d’expiration forcé après lequel l’hôte peut réinitialiser l’appareil et redémarrer les opérations.

TIMEOUT_HostInitiatedReset = 1 second

Les hôtes peuvent autoriser les méthodes propriétaires à ajuster la valeur de ce délai d’expiration pour leurs appareils spécifiques, mais il est obligatoire pour l’hôte de prendre en charge une valeur de délai d’expiration.

Réinitialisation initiée par l’hôte

L’hôte peut réinitialiser l’appareil pour rétablir la communication avec l’appareil lorsqu’une erreur est détectée. Ce mécanisme est destiné à la récupération d’erreurs et doit être en réponse à un événement exceptionnel, tel que le rétablissement de la communication avec un appareil qui a été exposé à une décharge ESD.