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.