Commandes NCI propriétaires Android

L'interface du contrôleur NFC (NCI) permet d'interagir avec un Contrôleur NFC (NFCC) Cette page décrit les caractéristiques techniques d'Android des commandes NCI propriétaires.

Définitions NCI

Les commandes NCI propriétaires d'Android utilisent l'ID de groupe propriétaire (GID) 0xF. et l'espace de code d'identifiant d'opération Android (OID) de 0xC.

Format de paquet courant

Le format des paquets NCI Android respecte la spécification NCI pour les paquets de contrôle à l'aide des propriétés Group_ID 0xF et Opcode_ID 0x0C propriétaires. Pour chaque Android propriétaire, le premier octet de la charge utile du paquet doit être défini sur Code d'opération Android (0x0C). Les paquets de contrôle Android utilisent Message_Type et PBF pour identifier les commandes, les réponses et les notifications de la même manière que commandes standards.

Le tableau suivant présente le format des paquets Android:

0 1 2 3 4 5 6 7
Message_Type PBF Group_ID = 0xF (PROPRIETARY)
réservés pour une utilisation future (RFU) Opcode_ID = 0x0C (ANDROID)
Payload_Length
Android_Opcode_ID
Android_Payload

Les identifiants de code d'opération Android attribués sont répertoriés dans le tableau suivant. La pour chaque paquet est présentée dans les sections suivantes.

OID Android Type de message Nom du message
0x00 NCI_MT_CMD NCI_ANDROID_GET_CAPS_CMD
NCI_MT_RSP NCI_ANDROID_GET_CAPS_RSP
0x01 NCI_MT_CMD NCI_ANDROID_POWER_SAVING_CMD
NCI_MT_RSP NCI_ANDROID_POWER_SAVING_RSP
0x02 NCI_MT_CMD NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
NCI_MT_RSP NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
0x03 NCI_MT_NTF NCI_ANDROID_POLLING_FRAME_NTF
0x04 NCI_MT_CMD NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
NCI_MT_RSP NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP

Obtenir la commande "features"

L'hôte utilise NCI_ANDROID_GET_CAPS_CMD pour interroger la liste. des fonctionnalités propriétaires Android compatibles avec le NFCC. La La commande NCI_ANDROID_GET_CAPS_CMD n'accepte aucun paramètre.

Le NFCC doit renvoyer la réponse NCI_ANDROID_GET_CAPS_RSP avec un état de STATUS_OK et à la liste des fonctionnalités prises en charge.

Si le NFCC n'est pas compatible avec NCI_ANDROID_GET_CAPS_CMD, l'hôte doit supposer que chacune des capacités prenne la valeur spécifiée par défaut. Si une valeur spécifiée n'est pas renvoyée par le NFCC dans la réponse, l'hôte doit supposer que la capacité a la valeur spécifiée par défaut.

NCI_ANDROID_GET_CAPS_CMD

Champs de charge utile Taille Valeur/description
N/A 0 octet

NCI_ANDROID_GET_CAPS_RSP

Champs de charge utile Taille Valeur/description
État 1 octet Reportez-vous aux codes d'état dans le tableau 140 de la spécification NCI.
Android_Version 2 octets Identifie la version des exigences Android qui est mise en œuvre par le NFCC.
0x0000 Android 15
Nombre de fonctionnalités 1 octet Nombre (n) de capacités prises en charge
Capacités[0..n] (m + 2) * n octets Fonctionnalités compatibles
Type 1 octet Identifiant de la capacité
Len 1 octet Longueur (m) de la valeur
Valeur m octets La valeur de la capacité
Fonctionnalités Android propriétaires
Nom de la fonctionnalité ID Taille Valeur/description
Mode Observer 0x00 1 octet Prise en charge du mode Observation.
0x00 (par défaut) : cette fonctionnalité n'est pas compatible.
0x01 – Prend en charge la fonctionnalité avec la désactivation RF de l'hôte (obligatoire pour Android 15 ou version ultérieure).
Toutes les autres valeurs sont RFU.
Notification de trame de sondage 0x01 1 octet Prise en charge des notifications de cadre d'interrogation. 0x01 si compatible, 0x00 (par défaut) dans le cas contraire. Toutes les autres valeurs sont RFU.
Mode Économie d'énergie 0x02 1 octet Compatibilité avec le mode Économie d'énergie. 0x01 si compatible, 0x00 (par défaut) dans le cas contraire. Toutes les autres valeurs sont RFU.
Filtre de boucle d'interrogation auotransact 0x03 1 octet Prise en charge des filtres de boucle d'interrogation dans le micrologiciel afin de contourner le mode d'observation pour des schémas spécifiques lorsque ce mode est activé de manière globale.
0x00 (par défaut) : cette fonctionnalité n'est pas compatible.
0x01 – Prend en charge les filtres de boucle d'interrogation
Toutes les autres valeurs sont RFU
0x04..0xFF 0 octet Réservé pour une utilisation ultérieure

Commande d'économie d'énergie

Pour faire passer le NFCC au mode Économie d'énergie, l'hôte peut utiliser la NCI_ANDROID_POWER_SAVING_CMD. Le NFCC doit répondre avec NCI_ANDROID_POWER_SAVING_RSP par un code d'état indiquant la réussite ou l'échec.

En mode Économie d'énergie, l'hôte ne doit envoyer aucune commande au NFCC le NFCC ne doit envoyer aucune notification ni réponse à l'hôte. Le NFCC ou l'élément sécurisé intégré (eSE) peut accepter automatiquement les demandes de paiement entrantes en fonction de la configuration de routage définie avant d'activer le mode économie d'énergie .

Pour revenir au mode plein écran, l'hôte peut réinitialiser ou réinitialiser le NFCC.

NCI_ANDROID_POWER_SAVING_CMD

Champs de charge utile Taille Valeur/description
Mode Économie d'énergie 1 octet 0x00 Désactiver le mode Économie d'énergie
0x01 Activer le mode Économie d'énergie

NCI_ANDROID_POWER_SAVING_RSP

Champs de charge utile Taille Valeur/description
État 1 octet Reportez-vous aux codes d'état indiqués dans le tableau 140 de la spécification NCI.

Définir la commande du mode observation

Pour activer ou désactiver le mode Observation, l'hôte peut utiliser les NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD. Le NFCC doit répondre avec NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP par un code d'état indiquant une réussite ou l'échec.

Lorsque le mode d'observation est désactivé, le NFCC doit implémenter la l'activité standard du mode d'écoute conformément à la Caractéristiques techniques de l'activité.

Lorsque le mode Observation est actif, le NFCC ne doit répondre à aucun sondage pendant la boucle d'interrogation en mode d'écoute, sauf autorisation explicite l'hôte. Le NFCC doit envoyer la notification RF_FIELD_INFO_NTF (comme défini par la section 5.3 spécification NCI) lorsqu'il détecte une activation de champ. Si la détection du mode sondage est active, le NFCC devez implémenter l'activité en mode sondage conformément aux Caractéristiques techniques de l'activité. Le NFCC peut mettre en cache les informations du sondage afin de poursuivre immédiatement avec l’appareil dès que le mode d'observation est désactivé.

Le NFCC doit désactiver le mode observation si l'hôte s'arrête pour une raison quelconque. (par exemple, une batterie déchargée ou un arrêt à l'initiative de l'utilisateur) afin que les transactions peuvent se poursuivre.

NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD

Champs de charge utile Taille Valeur/description
mode Observation 1 octet 0x00 Désactiver le mode Observation (par défaut)
0x01 Activer le mode Observation

NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP

Champs de charge utile Taille Valeur/description
État 1 octet Reportez-vous aux codes d'état dans le tableau 140 de la spécification NCI.

Notification de boucle d'interrogation

Le NFCC doit envoyer la notification NCI_ANDROID_POLLING_FRAME_NTF à l'hôte. après chaque trame de la boucle d'interrogation. Lorsque RF_FIELD_INFO_NTF et NCI_ANDROID_POLLING_FRAME_NTF notifications sont générées, le NFCC doit envoyer NCI_ANDROID_POLLING_FRAME_NTF après RF_FIELD_INFO_NTF.

La notification NCI_ANDROID_POLLING_FRAME_NTF est indépendante du fait que le mode Observation est actif ou non. Lorsque le mode Observation est actif, le NFCC doit toujours envoyer une notification NCI_ANDROID_POLLING_FRAME_NTF avant la transaction.

NCI_ANDROID_POLLING_FRAME_NTF

Champs de charge utile Taille Valeur/description
Données de sondage[0..n] (m +3) * n octets Liste des demandes de sondage reçues depuis la dernière . Chaque résultat indique le type (technologie) de l'objet et les données identifiables associées à la demande, en fonction de la technologie utilisée.
Type 1 octet Consultez la section Types de cadres.
Drapeaux 1 octet Voir octet de l'indicateur.
Durée 1 octet Longueur (m) du rapport sur les données de sondage, y compris les champs de code temporel et de gain.
Code temporel 4 octets Horodatage mesuré en millisecondes de la réception des requêtes d'interrogation, big endian.
Gain 1 octet Force de la demande d'interrogation.
0xFF indique que la valeur n'est pas disponible.
Données m - 5 octets Renvoie les données identifiables présentes dans la demande d'interrogation.
Types de cadres
Frame d'interrogation Type Taille Valeur/Description
Champ distant 0x00 1 octet 0x00 Champ désactivé
0x01 Champ activé
0x02..0xFF RFU
NFC-A 0x01 n octets La valeur doit inclure une commande ISO 14443-3 (REQ ou WUP, par exemple).
NFC-B 0x02 n octets La valeur doit inclure un octet AIF et une commande ISO 14443-3 (par exemple, REQ ou WUP)
NFC-F 0x03 n octets La valeur doit inclure une commande ISO 14443-3 (REQ ou WUP, par exemple).
NFC-V 0x04 n octets La valeur doit inclure une commande ISO 14443-3 (REQ ou WUP, par exemple).
Inconnu 0x07 n octets Données de trame brutes
Définition de l'octet d'indicateur
Drapeaux
O b1 b2 B3 B4 B5 B6 B7
0 Cadre court RFU RFU RFU RFU RFU RFU RFU
1 Cadre long

Interroger la commande d'état du mode observation

Pour récupérer l'état actuel du mode de commande passif, l'hôte peut utiliser la commande NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD. Le NFCC doit répondre avec NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP avec un état indiquant la réussite de l'échec.

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD

Champs de charge utile Taille Valeur/description
N/A 0 octet

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP

Champs de charge utile Taille Valeur/description
État 1 octet Reportez-vous aux codes d'état du tableau 140 de la spécification NCI.
mode Observation 1 octet 0x00 Mode Observer désactivé
0x01 Mode Observer activé