Partager via


Matériel de la caméra

Vue d’ensemble de la topologie

En termes de prise en charge du pilote Windows, le sous-système de la caméra contient des composants hors système sur puce (SoC), tels que le capteur de la caméra, une unité de focus automatique facultative et le flash, et éventuellement d’autres matériels associés. Le matériel de la caméra comprend également les unités de traitement d’images on-SoC.

Le matériel de traitement d’image sur SoC doit être géré par le plug-in du moteur d’alimentation (PEP) fourni par le fournisseur de soC. Le matériel de traitement d’image doit être énuméré en tant qu’appareil unique dans ACPI et géré par un pilote WDF (Windows Driver Framework). Activez la gestion système du délai d’inactivité de l’appareil de traitement d’images afin que le PEP puisse contrôler n’importe quelle topologie de partage d’horloge et de rail d’alimentation propre au SoC. Tout matériel de traitement d’image sur SoC doit être hors tension chaque fois que l’appareil photo est éteint.

Certaines conceptions SoC ont un bloc de fonction partagé qui effectue à la fois la capture d’appareil photo et d’autres traitements d’images et de graphiques. Dans une plateforme qui utilise un tel SoC, le pep fourni par le fournisseur de soC doit référencer-compter l’utilisation de ce bloc partagé et le mettre hors tension lorsque tous les clients sont inactifs.

Dans certaines plateformes, le matériel de traitement d’image sur SoC peut être partagé entre deux appareils photo ou plus. Dans ce cas, le matériel de traitement d’image est multiplexé entre les appareils photo. Les composants de chaque appareil photo doivent être décrits indépendamment dans l’espace de noms ACPI et doivent être énumérés en tant qu’objets d’appareil distincts pour le gestionnaire de Plug-and-Play Windows.

Les plateformes qui ont deux (ou plusieurs) caméras incorporées sont requises par Windows pour pouvoir utiliser (c’est-à-dire diffuser du contenu à partir de) les deux (ou toutes) caméras en même temps avec n’importe quelle combinaison de modes et de résolutions pris en charge par les caméras individuelles. Les fournisseurs de SoC qui ne peuvent pas répondre à cette exigence doivent travailler directement avec Microsoft pour obtenir des conseils sur l’implémentation de leurs pilotes et microprogrammes système.

Configuration de l’alimentation prise en charge

Windows prend en charge une configuration de gestion de l’alimentation matérielle unique pour les appareils photo dans les plateformes de secours modernes. En bref, chaque capteur de caméra doit être connecté au Système sur puce (SoC) via une liaison MIPI-CSI, et peut éventuellement être connecté à un bus I2C et à une ou plusieurs broches GPIO. L’appareil capteur de caméra, son flash facultatif et tout autre composant de caméra Hors SoC doivent être placés sur un rail d’alimentation qui peut être allumé et désactivé par le microprogramme ACPI.

Si, en plus d’une liaison MIPI-CSI, l’appareil photo a des broches I2C ou GPIO pour contrôler le capteur de caméra ou l’appareil flash, ces broches doivent être acheminées vers les broches correspondantes du contrôleur I2C ou du contrôleur GPIO sur le SoC. L’intégrateur système doit énumérer les ressources I2C et GPIO pour le capteur de caméra et le périphérique flash dans un objet _CRS sous l’appareil photo dans l’espace de noms ACPI.

Note L’intégrateur système doit travailler avec le développeur du pilote de sous-système de caméra pour déterminer comment les pilotes de caméra s’attendent à ce que les ressources GPIO et I2C soient triées. Par exemple, un pilote qui reçoit deux ressources I2C les distingue en fonction de l’ordre dans lequel elles apparaissent dans la liste des ressources. De même, un pilote qui reçoit trois ressources GPIO s’attend à ce que ces ressources soient répertoriées dans un ordre particulier. L’intégrateur système doit énumérer les ressources I2C et GPIO dans le même ordre dans l’objet _CRS.

Le capteur de la caméra et le dispositif flash doivent être placés sur un rail d’alimentation qui peut être activé et désactivé par les méthodes de contrôle ACPI. Nous vous recommandons d’utiliser une broche GPIO du SoC pour contrôler le matériel du commutateur d’alimentation. Le GPIO doit être énuméré dans une région d’opération GPIO afin que son état puisse être modifié par les méthodes de contrôle ACPI. L’intégrateur système doit décrire la ressource d’alimentation d’un appareil photo (capteur, flash ou tout autre composant de caméra) dans l’espace de noms ACPI. Cette ressource doit inclure une méthode _ON et une méthode _OFF pour modifier l’état du signal GPIO acheminé vers le matériel de commutateur d’alimentation. Sous l’appareil photo dans l’espace de noms ACPI, l’intégrateur système doit fournir un objet _PR0 et un objet _PR3 qui font référence à la ressource d’alimentation.

Lorsque le pilote du contrôleur de caméra détecte que toutes les broches de diffusion en continu sont entrées dans l’état KSSTATE_STOP, il utilise une interface privée pour indiquer aux pilotes qui contrôlent les composants de caméra hors SoC dont la capture n’est plus nécessaire. À leur tour, ces pilotes appellent la méthode IWDFDevice2::ResumeIdle pour indiquer à l’infrastructure du pilote que leur matériel est inactif. En réponse, l’infrastructure de pilote lance une transition vers D3, ce qui entraîne un IRP D3 à transiter par la pile des pilotes de périphérique de caméra. (Un IRP D3 est un IRP IRP_MJ_POWER qui spécifie une valeur d’énumération DEVICE_POWER_STATE de PowerDeviceD3.) Le pilote WINDOWS ACPI, Acpi.sys, observera l’IRP D3 et exécutera la méthode _OFF de la ressource d’alimentation identifiée par l’objet _PR3 sous l’appareil photo dans l’espace de noms ACPI.

La dernière phrase du paragraphe précédent suppose que la ressource d’alimentation ne fournit pas d’alimentation à des appareils autres que l’appareil photo. Si d’autres appareils ont des références à cette ressource d’alimentation, Acpi.sys exécutez la méthode _OFF uniquement après la transition de tous les autres appareils qui référencent la ressource d’alimentation vers D3. Pour plus d’informations, consultez Activation des transitions vers D3cold.

Le retour du matériel de la caméra à l’état d’alimentation actif est un processus similaire. Lorsque le pilote du contrôleur de caméra détecte la première broche de capture de flux pour entrer dans l’état KSSTATE_ACQUIRE, le pilote du contrôleur de caméra communique avec les pilotes pour les autres composants on-SoC et off-SoC qui composent le sous-système de caméra. En réponse, le pilote qui contrôle l’unité de traitement d’image sur SoC appelle la méthode IWDFDevice2::StopIdle, qui informe le PEP que le matériel de l’unité de traitement d’image doit être mis sous tension. Le pilote du contrôleur de caméra indique aux pilotes qui contrôlent les composants de la caméra hors soC qu’ils doivent revenir à l’état actif. À leur tour, ces pilotes appellent StopIdle pour informer l’infrastructure du pilote que le matériel n’est plus inactif, ce qui entraîne le flux D0 IRP dans la pile des pilotes de périphérique de caméra. (Un IRP D0 est un IRP IRP_MJ_POWER qui spécifie une valeur d’énumération DEVICE_POWER_STATE de PowerDeviceD0.) Acpi.sys répond à l’IRP D0 en exécutant la méthode _ON de la ressource d’alimentation identifiée par l’objet _PR0 sous l’appareil photo dans l’espace de noms ACPI.

Si la plateforme a plusieurs appareils photo, chaque appareil photo doit avoir ses propres rails d’alimentation et ressources d’alimentation commutables indépendamment décrits dans l’espace de noms ACPI. Pour chaque appareil photo de l’espace de noms ACPI, l’intégrateur système doit fournir un objet _PLD qui indique si l’appareil photo se trouve à l’avant ou à l’arrière de l’ordinateur. Si un appareil photo est intégré dans le couvercle d’un ordinateur à clamshell-form-factor et fait face à l’utilisateur lorsque le couvercle est ouvert, l’objet _PLD de cet appareil doit indiquer que la caméra se trouve à l’avant de la plateforme. Si un appareil photo est intégré au couvercle d’un ordinateur à clamshell-form-factor et qu’il est face à l’utilisateur lorsque le couvercle est ouvert, l’objet _PLD de cet appareil doit indiquer que l’appareil photo se trouve à l’arrière du système.

Problèmes de veille

Le matériel de l’appareil photo ne doit pas prendre en charge le wake. Windows ne s’attend pas à ce que les appareils photo soient en mesure de sortir le SoC de son état d’alimentation le plus faible pendant la veille moderne. De nombreux téléphones cellulaires permettent au SoC de sortir du mode veille lorsque l’utilisateur appuie sur le bouton de l’appareil photo. Le bouton de l’appareil photo est traité par Windows comme un appareil d’entrée utilisateur dont le fonctionnement est distinct et indépendant de l’intégration ou de la gestion de l’alimentation de l’appareil photo, de son capteur et du flash facultatif.