Architecture et vue d’ensemble de HID sur le transport SPI
Cet article décrit la pile de pilotes pour les appareils qui prennent en charge HID sur le transport SPI.
Architecture et vue d’ensemble
La pile de pilotes HID SPI se compose de composants existants et nouveaux fournis par Microsoft, ainsi que des composants fournis par le fabricant de silicium SPI. L’illustration suivante illustre la pile et ces composants.
Windows fournit une interface pour les bus simples à faible alimentation pour communiquer efficacement avec le système d’exploitation. Cette interface est appelée bus périphérique simple (SPB) et prend en charge les bus tels que le circuit inter-intégré (I2C) et l’interface SPI (Serial Peripheral Interface). Pour plus d’informations sur SPB, reportez-vous à la rubrique SPB (Simple Peripheral Bus).
Windows fournit un pilote hid miniport basé sur KMDF qui implémente la version 1.0 de la spécification de protocole pour HID sur SPI. Ce pilote est nommé HIDSPI.sys. Windows charge ce pilote en fonction d’une correspondance d’ID compatible, qui est exposée par l’interface ACPI (Advanced Configuration and Power Interface). Les intégrateurs système peuvent utiliser un inf d’extension pour charger ce pilote en fonction de l’ID matériel de leur périphérique. Le pilote garantit que les applications qui utilisent la compatibilité au niveau de l’application HID IOCTLs pour les logiciels qui tirent parti des IOCTLs HID et de l’ensemble d’API. Une connexion GPIO est fournie au pilote, ce qui permet à l’appareil d’affirmer une interruption lorsqu’il nécessite une attention ou a des données.
Remarque
Le pilote de périphérique HIDSPI.sys prend uniquement en charge le bus SPI. Il ne prend pas en charge les bus I2C, SMBUS ou autres bus à faible puissance dans Windows.
Pilote de contrôleur SPI
Le pilote de contrôleur SPI expose une interface IOCTL SPB (Serial Peripheral Bus) pour effectuer des opérations de lecture et d’écriture. Ce pilote fournit les intrinsèques du contrôleur réel (par exemple, SPI). L’extension de classe SPB, pour le compte du pilote du contrôleur, gère toutes les interactions avec le hub de ressources et implémente les files d’attente nécessaires pour gérer les cibles simultanées.
Remarque
Le pilote HID SPI ne fonctionnera pas sur les systèmes qui n’ont pas de bus SPI compatible avec la plateforme SPB. Contactez le fabricant de votre système pour déterminer si le bus SPI sur votre système d’appareil est compatible avec la plateforme SPB.
Pilote de contrôleur GPIO
Le contrôleur d’entrée/sortie à usage général (GPIO) fournit des interruptions à partir de l’appareil via GPIO. Il s’agit souvent d’un composant subordonné simple qui utilise des broches GPIO pour signaler windows de nouvelles données ou d’autres événements. GPIO peut également contrôler l’appareil par des approches autres que le canal SPI.
Hub de ressources
Les connexions sur une plateforme SoC sont généralement non détectables, car il n’existe aucune norme pour l’énumération des appareils sur les bus utilisés sur soC. Par conséquent, ces appareils doivent être définis statiquement dans l’interface ACPI (Advanced Configuration and Power Interface). En outre, les composants ont souvent plusieurs dépendances couvrant plusieurs bus, par opposition à une structure d’arborescence de branchement stricte.
Le hub de ressources est un proxy qui gère les connexions entre tous les appareils et contrôleurs de bus. Le pilote HIDSPI utilise le hub de ressources pour rediriger les demandes d’ouverture de périphérique vers le pilote de contrôleur approprié. Pour plus d’informations sur le hub de ressources, reportez-vous à la rubrique ID de connexion pour les appareils connectés SPB.
Extension de classe HIDSPI (HIDSPICx)
Pour les implémentations nécessitant une plus grande performance ou intégration, il est possible pour les fabricants de systèmes de développer du silicium personnalisé pour le traitement des transactions HIDSPI. Pour cela, l’extension de classe HIDSPICx est fournie avec Windows. HIDSPICx permet le développement d’un pilote de contrôleur HIDSPI HWA personnalisé sans utiliser SpbCx.
Pour les appareils HWA, le fournisseur fournit un pilote client chargé d’implémenter l’interface définie par l’extension de classe et de communiquer avec l’extension de classe.