L'interfaccia del controller NFC (NCI) viene utilizzata per interagire con un Controller NFC (NFCC). In questa pagina vengono descritte le specifiche di Android comandi NCI proprietari.
Definizioni NCI
I comandi NCI di proprietà di Android utilizzano l'ID gruppo proprietario (GID) 0xF
e lo spazio di codice OID (Opcode Identifier) di Android di 0xC
.
Formato pacchetto comune
Il formato del pacchetto NCI Android è conforme alle specifiche NCI per i pacchetti di controllo
usando le proprietà proprietarie Group_ID 0xF
e Opcode_ID 0x0C
. Per ogni dispositivo Android
messaggio proprietario, il primo byte del payload del pacchetto deve essere impostato
Codice operativo Android (0x0C
). I pacchetti di controllo Android utilizzano Message_Type
e
PBF
per identificare comandi, risposte e notifiche in modo simile a
tramite comandi standard.
Il formato dei pacchetti Android è mostrato nella seguente tabella:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Message_Type
|
PBF
|
Group_ID = 0xF (PROPRIETARY)
|
|||||
riservato per uso futuro (RFU) | Opcode_ID = 0x0C (ANDROID)
|
||||||
Payload_Length
|
|||||||
Android_Opcode_ID
|
|||||||
Android_Payload
|
|||||||
Gli identificatori opcode Android assegnati sono elencati nella seguente tabella. La le specifiche di ciascun pacchetto nelle prossime sezioni.
OID Android | Tipo di messaggio | Nome del messaggio |
---|---|---|
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 |
Comando Ottieni funzionalità
L'host utilizza NCI_ANDROID_GET_CAPS_CMD
per eseguire query sull'elenco
delle funzionalità proprietarie di Android supportate dall'NFCC. La
Il comando NCI_ANDROID_GET_CAPS_CMD
non accetta parametri.
NFCC deve rispondere con la risposta NCI_ANDROID_GET_CAPS_RSP
con uno stato
di STATUS_OK
e l'elenco di caratteristiche e funzionalità supportate.
Se NFCC non supporta NCI_ANDROID_GET_CAPS_CMD
, l'host deve presumere
in modo che ciascuna capacità assuma il valore predefinito specificato. Se viene specificato
non viene restituita da NFCC nella risposta, l'host deve presupporre che
la funzionalità ha il valore predefinito specificato.
NCI_ANDROID_GET_CAPS_CMD
Campi payload | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|
N/D | 0 ottetti |
NCI_ANDROID_GET_CAPS_RSP
Campi payload | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|
Stato | 1 ottetto | Consulta i codici di stato nella tabella 140 della specifica NCI. | |||||
Android_Version
|
2 ottetti | Identifica la versione dei requisiti Android implementati dall'NFCC. | |||||
0x0000 | Android 15 | ||||||
Numero di funzionalità | 1 ottetto | Numero (n) di funzionalità supportate | |||||
Capacità[0..n] | (m + 2) * n ottetti | Funzionalità supportate | |||||
Tipo | 1 ottetto | L'identificatore della funzionalità | |||||
Len | 1 ottetto | Lunghezza (m) del valore | |||||
Valore | ottetti | Il valore della capacità |
Funzionalità proprietarie di Android
Nome funzionalità | ID | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|---|
Modalità di osservazione | 0x00 | 1 ottetto | Supporto per la modalità di osservazione.
0x00 (valore predefinito): non supporta questa funzionalità. 0x01 - Supporta la funzione con disattivazione RF dall'host (richiesta per Android 15 o versioni successive). Tutti gli altri valori sono RFU. |
|||||
Notifica frame di polling | 0x01 | 1 ottetto | Supporto per le notifiche del frame di polling. 0x01 se supportato, 0x00 (predefinito) se non supportato. Tutti gli altri valori sono RFU. | |||||
Modalità risparmio energetico | 0x02 | 1 ottetto | Supporto della modalità di risparmio energetico. 0x01 se supportato, 0x00 (predefinito) se non supportato. Tutti gli altri valori sono RFU. | |||||
Filtro loop di polling Auotransact | 0x03 | 1 ottetto | Supporto dei filtri loop di polling nel firmware per bypassare la modalità di osservazione per pattern specifici quando questa è abilitata a livello globale.
0 x 00 (valore predefinito). Questa funzionalità non è supportata. 0x01 - Supporta filtri del ciclo di polling Tutti gli altri valori sono RFU |
|||||
0x04..0xFF | 0 ottetti | Riservato per un uso futuro |
Comando di risparmio energetico
Per passare dall'NFCC alla modalità di risparmio energetico, l'host può utilizzare
Comando NCI_ANDROID_POWER_SAVING_CMD
. L'NFCC deve rispondere con
NCI_ANDROID_POWER_SAVING_RSP
con un codice di stato
che indicano un successo o un insuccesso.
In modalità di risparmio energetico, l'host non deve inviare alcun comando all'NFCC e NFCC non deve inviare alcuna notifica o risposta all'host. L'NFCC o Secure Element (eSE) incorporato può accettare automaticamente le richieste di pagamento in entrata in base alla configurazione di routing impostata prima di attivare il risparmio energetico .
Per tornare alla modalità a potenza piena, l'host può reimpostare o reinizializzare l'NFCC.
NCI_ANDROID_POWER_SAVING_CMD
Campi payload | Dimensioni | Valore/descrizione | |
---|---|---|---|
Modalità risparmio energetico | 1 ottetto | 0x00 | Disattiva modalità di risparmio energetico |
0x01 | Attiva modalità di risparmio energetico |
NCI_ANDROID_POWER_SAVING_RSP
Campi payload | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|
Stato | 1 ottetto | Consulta i codici di stato nella tabella 140 della specifica NCI. |
Imposta comando modalità di osservazione
Per attivare o disattivare la modalità di osservazione, l'organizzatore può utilizzare
Comando NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
. L'NFCC deve rispondere con
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
con un codice di stato che indica l'esito positivo o
errore.
Quando la modalità di osservazione è disabilitata, l'NFCC deve implementare il parametro le attività della modalità di ascolto standard in base Specifiche tecniche delle attività.
Quando la modalità di osservazione è attiva, l'NFCC non deve rispondere ad alcun sondaggio.
durante il loop di polling in modalità di ascolto, fino all'autorizzazione esplicita da parte
l'organizzatore. L'NFCC deve inviare la notifica RF_FIELD_INFO_NTF
(come definita dalla
sezione 5.3 del
specifica NCI)
quando rileva l'attivazione del campo. Se il rilevamento della modalità di sondaggio è attivo, l'NFCC
devi implementare l'attività in modalità poll in base alle
Specifiche tecniche delle attività.
NFCC può memorizzare nella cache le informazioni del sondaggio per procedere immediatamente con il dispositivo.
non appena la modalità di osservazione viene disattivata.
NFCC dovrebbe disattivare la modalità di osservazione se l'host si arresta per qualsiasi motivo (ad esempio, batteria scarica o arresto avviato dall'utente) in modo che SE le transazioni possono essere eseguite.
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
Campi payload | Dimensioni | Valore/descrizione | |
---|---|---|---|
modalità di osservazione | 1 ottetto | 0x00 | Disattiva la modalità di osservazione (impostazione predefinita) |
0x01 | Attiva la modalità di osservazione |
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
Campi payload | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|
Stato | 1 ottetto | Consulta i codici di stato nella tabella 140 della specifica NCI. |
Notifica loop di polling
L'NFCC deve inviare la notifica NCI_ANDROID_POLLING_FRAME_NTF
all'organizzatore
dopo ogni frame del loop di polling. Quando RF_FIELD_INFO_NTF
e
Vengono generate notifiche NCI_ANDROID_POLLING_FRAME_NTF
. L'NFCC deve inviare
NCI_ANDROID_POLLING_FRAME_NTF
dopo RF_FIELD_INFO_NTF
.
La notifica NCI_ANDROID_POLLING_FRAME_NTF
è indipendente dal fatto che
che la modalità di osservazione sia attiva o meno. Quando la modalità di osservazione è attiva,
l'NFCC deve sempre inviare una notifica NCI_ANDROID_POLLING_FRAME_NTF
prima
la transazione.
NCI_ANDROID_POLLING_FRAME_NTF
Campi payload | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|
Dati polling[0..n] | (m +3) * n ottetti | Elenco di richieste di polling ricevute dall'ultima notifica. Ogni risultato fornisce il tipo (tecnologia) dell'oggetto richieste e dati identificabili della richiesta, a seconda della tecnologia. | |||||
Tipo | 1 ottetto | Vedi i tipi di frame. | |||||
Bandiere | 1 ottetto | Vedi byte flag. | |||||
Lunghezza | 1 ottetto | Lunghezza (m) del report sui dati del polling inclusi i campi timestamp e guadagno. | |||||
Timestamp | 4 ottetti | Timestamp misurato in millisecondi di ricezione delle richieste di polling, big endian. | |||||
Guadagno | 1 ottetto | Forza della richiesta di polling.
0xFF indica che il valore non è disponibile. |
|||||
Dati | m-5 ottetti | Restituisce i dati identificabili presenti nella richiesta di polling |
Tipi di fotogrammi
Sondaggio | Tipo | Dimensioni | Valore/descrizione | |
---|---|---|---|---|
Campo remoto | 0x00 | 1 ottetto | 0x00 | Campo non attivo |
0x01 | Campo attivato | |||
0x02..0xFF | RFU | |||
NFC | 0x01 | n ottetti | Il valore deve includere un comando ISO 14443-3 (ad esempio, REQ o WUP) | |
NFC | 0x02 | n ottetti | Il valore deve includere un byte AIF e un comando ISO 14443-3 (ad es. REQ o WUP) | |
NFC | 0x03 | n ottetti | Il valore deve includere un comando ISO 14443-3 (ad esempio, REQ o WUP) | |
NFC-V | 0x04 | n ottetti | Il valore deve includere un comando ISO 14443-3 (ad esempio, REQ o WUP) | |
Sconosciuto | 0x07 | n ottetti | Dati frame non elaborati |
Definizione dei byte del flag
Bandiere | ||||||||
---|---|---|---|---|---|---|---|---|
p | B1 | B2 | B3 | B4 | B5 | B6 | B7 | |
0 | Fotogramma breve | RFU | RFU | RFU | RFU | RFU | RFU | RFU |
1 | Frame lungo |
Comando di stato della modalità di osservazione delle query
Per recuperare lo stato corrente della modalità di ordine passivo, l'organizzatore può usare
il comando NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
. L'NFCC deve
rispondi con NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
con uno stato
che indica l'esito positivo dell'errore.
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
Campi payload | Dimensioni | Valore/descrizione | |||||
---|---|---|---|---|---|---|---|
N/D | 0 ottetti |
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
Campi payload | Dimensioni | Valore/descrizione | |
---|---|---|---|
Stato | 1 ottetto | Consulta i codici di stato nella tabella 140 della specifica NCI. | |
modalità di osservazione | 1 ottetto | 0x00 | Modalità di osservazione disabilitata |
0x01 | Modalità di osservazione attivata |