Logo NXPUM11942
Livello di istruzioni PN5190
Controller front-end NFC

Manuale d'uso

Controller front-end NFC PN5190

Informazioni sul documento

Informazioni Contenuto
Parole chiave PN5190, NFC, frontend NFC, controller, livello istruzioni
Astratto Questo documento descrive i comandi e le risposte del livello di istruzione da utilizzare da un controller host, per valutare il funzionamento del controller frontend NFC NXP PN5190. PN5190 è un controller frontend NFC di nuova generazione. Lo scopo di questo documento è descrivere i comandi dell'interfaccia per lavorare con il controller frontend NFC PN5190. Per ulteriori informazioni sul funzionamento del controller frontend NFC PN5190, fare riferimento alla scheda tecnica e alle sue informazioni complementari.

Cronologia delle revisioni

Riv. Data Descrizione
3.7 20230525 • Tipo e titolo del documento modificati da addendum alla scheda tecnica del prodotto al manuale utente
• Pulizia editoriale
• Termini editoriali aggiornati per i segnali SPI
• Aggiunto comando GET_CRC_USER_AREA nella Tabella 8 nella Sezione 4.5.2.3
• Aggiornati vari dettagli differenziati per PN5190B1 e PN5190B2 nella Sezione 3.4.1
• Risposta aggiornata della Sezione 3.4.7
3.6 20230111 Migliorata la descrizione della risposta Check Integrity nella Sezione 3.4.7
3.5 20221104 Paragrafo 4.5.4.6.3 “Evento”: aggiunto
3.4 20220701 • Aggiunto comando CONFIGURE_MULTIPLE_TESTBUS_DIGITAL nella Tabella 8 nella Sezione 4.5.9.3
• Sezione 4.5.9.2.2 aggiornata
3.3 20220329 Migliorata la descrizione dell'hardware nella sezione 4.5.12.2.1 "Command" e nella sezione 4.5.12.2.2 "Response"
3.2 20210910 Numeri di versione del firmware aggiornati da 2.1 a 2.01 e da 2.3 a 2.03
3.1 20210527 Aggiunta la descrizione del comando RETRIEVE_RF_FELICA_EMD_DATA
3 20210118 Prima versione rilasciata ufficialmente

Introduzione

1.1 Introduzione
Questo documento descrive l'interfaccia host PN5190 e le API. L'interfaccia host fisica utilizzata nella documentazione è SPI. La caratteristica fisica SPI non è considerata nel documento.
La separazione dei frame e il controllo del flusso fanno parte di questo documento.
1.1.1 Ambito di applicazione
Il documento descrive il livello logico, il codice di istruzione, le API rilevanti per il cliente.

Comunicazione con l'host terminataview

PN5190 ha due modalità operative principali per comunicare con il controller host.

  1. La comunicazione basata su HDLL viene utilizzata quando il dispositivo viene attivato per inserire:
    UN. Modalità di download sicuro crittografato per aggiornare il firmware
  2. Comunicazione basata sulla risposta al comando TLV (data come example).

2.1 Modalità HDLL
La modalità HDLL viene utilizzata affinché il formato di scambio di pacchetti funzioni con le seguenti modalità operative IC:

  1. Modalità di download sicuro del firmware (SFWU), vedere la sezione 3

2.1.1 Descrizione di HDLL
HDLL è il livello di collegamento sviluppato da NXP per garantire un download FW affidabile.
Un messaggio HDLL è composto da un'intestazione di 2 byte, seguita da un frame, comprendente l'opcode e il Payload del comando. Ogni messaggio termina con un CRC a 16 bit, come descritto nell'immagine seguente:Controller frontend NFC NXP PN5190 -L'intestazione HDLL contiene:

  • Un bel po'. Che indica se questo messaggio è l'unico o l'ultimo pezzo di un messaggio (pezzo = 0). O se segue almeno un altro pezzo (pezzo = 1).
  • La lunghezza del Payload codificata su 10 bit. Pertanto, il payload del frame HDLL può arrivare fino a 1023 byte.

L'ordine dei byte è stato definito come big-endian, ovvero Ms Byte first.
Il CRC16 è conforme allo standard X.25 (CRC-CCITT, ISO/IEC13239) con polinomio x^16 + x^12 + x^5 +1 e valore di pre-caricamento 0xFFFF.
Viene calcolato sull'intero frame HDLL, ovvero Header + Frame.
Sample Implementazione del codice C:
statico uint16_t phHal_Host_CalcCrc16(uint8_t* p, uint32_t dwLength)
{
uint32_ti ;
uint16_t crc_nuovo;
uint16_t crc = 0xffffU;
for (I = 0; i < dwLength; i++)
{
crc_new = (uint8_t)(crc >> 8) | (cr << 8 );
crc_nuovo ^= p[i];
crc_nuovo ^= (uint8_t)(crc_nuovo & 0xff) >> 4;
crc_nuovo ^= crc_nuovo << 12;
crc_nuovo ^= (crc_nuovo & 0xff) << 5;
crc = crc_nuovo;
}
ritorno crc;
}
2.1.2 Mappatura dei trasporti sullo SPI
Per ogni asserzione NTS, il primo byte è sempre un HEADER (byte di indicazione del flusso), può essere 0x7F/0xFF rispetto all'operazione di scrittura/lettura.
2.1.2.1 Sequenza di scrittura dall'host (direzione DH => PN5190)Controller frontend NFC NXP PN5190 - Sequenza di scrittura SPI.2.1.2.2 Sequenza di lettura dall'host (direzione PN5190 => DH)Controller frontend NFC NXP PN5190: sequenza di lettura2.1.3 Protocollo HDLL
HDLL è un protocollo di risposta ai comandi. Tutte le operazioni sopra menzionate vengono attivate tramite un comando specifico e validate in base alla risposta.
I comandi e le risposte seguono la sintassi del messaggio HDLL, il comando viene inviato dall'host del dispositivo, la risposta dal PN5190. Il codice operativo indica il tipo di comando e risposta.
Comunicazioni basate su HDLL, utilizzate solo quando il PN5190 viene attivato per accedere alla modalità "Download sicuro del firmware".
2.2 Modalità TLV
TLV sta per Tag Valore di lunghezza.
2.2.1 Definizione del telaio
Un frame SPI inizia con il fronte di discesa di NTS e termina con il fronte di salita di NTS. SPI è full duplex per definizione fisica, ma PN5190 utilizza SPI in modalità half-duplex. La modalità SPI è limitata a CPOL 0 e CPHA 0 con una velocità di clock massima come specificato in [2]. Ogni frame SPI è composto da un'intestazione di 1 byte e n byte di corpo.
2.2.2 Indicazione del flussoController frontend NFC NXP PN5190 - Indicazione del flussoL'HOST invia sempre come primo byte il byte di indicazione del flusso, se vuole scrivere o leggere dati dal PN5190.
Se è presente una richiesta di lettura e non sono disponibili dati, la risposta contiene 0xFF.
I dati dopo il byte di indicazione del flusso sono uno o più messaggi.
Per ogni asserzione NTS, il primo byte è sempre un HEADER (byte di indicazione del flusso), può essere 0x7F/0xFF rispetto all'operazione di scrittura/lettura.
2.2.3 Tipo di messaggio
Un controller host comunicherà con PN5190 utilizzando messaggi trasportati all'interno di frame SPI.
Esistono tre diversi tipi di messaggio:

  • Comando
  • Risposta
  • Evento

Controller frontend NFC NXP PN5190: controller hostIl diagramma di comunicazione sopra mostra le direzioni consentite per i diversi tipi di messaggio come di seguito:

  • Comando e risposta.
  • I comandi vengono inviati solo dal controller host a PN5190.
  • Le risposte e gli eventi vengono inviati solo dal PN5190 al controller host.
  • Le risposte ai comandi vengono sincronizzate utilizzando il pin IRQ.
  • L'host può inviare i comandi solo quando l'IRQ è basso.
  • L'host può leggere la risposta/evento solo quando l'IRQ è alto.

2.2.3.1 Sequenze e regole consentiteController frontend NFC NXP PN5190: sequenze consentiteSequenze consentite di comando, risposta ed eventi

  • Un comando viene sempre confermato da una risposta, da un evento o da entrambi.
  • Al controller host non è consentito inviare un altro comando prima di non aver ricevuto una risposta al comando precedente.
  • Gli eventi possono essere inviati in modo asincrono in qualsiasi momento (NON interlacciati all'interno di una coppia comando/risposta).
  • I messaggi EVENT non vengono mai combinati con i messaggi RESPONSE all'interno di un frame.

Nota: La disponibilità di un messaggio (RISPOSTA o EVENTO) è segnalata con l'IRQ che va dall'alto al basso. L'IRQ rimane alto finché non viene letto tutto il frame di risposta o di evento. Solo dopo che il segnale IRQ è basso, l'host può inviare il comando successivo.
2.2.4 Formato del messaggio
Ogni messaggio è codificato in una struttura TLV con payload di n byte per ogni messaggio ad eccezione del comando SWITCH_MODE_NORMAL.Controller frontend NFC NXP PN5190: formato messaggioOgni TLV è composto da:Controller frontend NFC NXP PN5190 - TLV è composto daTipo (T) => 1 byte
Bit[7] Tipo di messaggio
0: Messaggio di COMANDO o RISPOSTA
1: messaggio EVENTO
Bit[6:0]: Codice istruzione
Lunghezza (L) => 2 byte (dovrebbe essere in formato big-endian)
Valore (V) => N byte di valore/dati del TLV (parametri di comando/dati di risposta) in base al campo Lunghezza (formato big-endian)
2.2.4.1 Cornice divisa
Il messaggio COMMAND deve essere inviato in un frame SPI.
I messaggi RESPONSE ed EVENT possono essere letti in più frame SPI, ad esempio per leggere il byte di lunghezza.Controller front-end NFC NXP PN5190: frame SPI multipliI messaggi di RISPOSTA o EVENTO possono essere letti in un singolo frame SPI ma ritardati da NO-CLOCK nel mezzo, ad esempio per leggere il byte di lunghezza.Controller frontend NFC NXP PN5190: frame SPI singolo

Modalità di avvio operativo IC: modalità di download del FW protetta

3.1 Introduzione
Parte del codice firmware PN5190 è memorizzato in modo permanente nella ROM, mentre il resto del codice e i dati sono memorizzati nella memoria flash incorporata. I dati degli utenti sono archiviati in flash e sono protetti da meccanismi anti-strappo che garantiscono l'integrità e la disponibilità dei dati. Per fornire ai clienti di NXP funzionalità conformi agli standard più recenti (EMVCo, NFC Forum e così via), è possibile aggiornare sia il codice che i dati utente in FLASH.
L'autenticità e l'integrità del firmware crittografato sono protette dalla firma della chiave asimmetrica/simmetrica e dal meccanismo hash concatenato inverso. Il primo comando DL_SEC_WRITE contiene l'hash del secondo comando ed è protetto da una firma RSA sul payload del primo frame. Il firmware PN5190 utilizza la chiave pubblica RSA per autenticare il primo comando. L'hash concatenato in ciascun comando viene utilizzato per autenticare il comando successivo, per garantire che il codice e i dati del firmware non siano accessibili a terzi.
I payload dei comandi DL_SEC_WRITE sono crittografati con una chiave AES-128. Dopo l'autenticazione di ciascun comando, il contenuto del payload viene decrittografato e scritto su flash dal firmware PN5190.
Per il firmware NXP, NXP è responsabile della fornitura di nuovi aggiornamenti firmware sicuri, insieme ai nuovi dati utente.
La procedura di aggiornamento è dotata di un meccanismo per proteggere l'autenticità, l'integrità e la riservatezza del codice e dei dati NXP.
Lo schema del pacchetto frame basato su HDLL viene utilizzato per tutti i comandi e le risposte per la modalità di aggiornamento firmware protetta.
La Sezione 2.1 fornisce quanto sopraview dello schema del pacchetto frame HDLL utilizzato.
I circuiti integrati PN5190 supportano sia il download di FW protetto crittografato legacy sia il protocollo di download FW protetto crittografato hardware a seconda della variante utilizzata.
I due tipi sono:

  • Protocollo di download FW sicuro legacy che funziona solo con la versione IC PN5190 B0/B1.
  • Protocollo di download sicuro del FW assistito da crittografia hardware che funziona solo con la versione IC PN5190B2, che utilizza i blocchi crittografici hardware su chip

Le sezioni seguenti illustrano i comandi e le risposte della modalità di download del firmware protetto.
3.2 Come attivare la modalità "Download sicuro del firmware".
Il diagramma sottostante e i passaggi successivi mostrano come attivare la modalità di download del firmware protetto.Controller frontend NFC NXP PN5190: modalità di download del firmwarePrecondizione: PN5190 è in stato di funzionamento.
Scenario principale:

  1. Condizione di ingresso in cui il pin DWL_REQ viene utilizzato per accedere alla modalità "Download sicuro del firmware".
    UN. L'host del dispositivo imposta il pin DWL_REQ alto (valido solo se si aggiorna il firmware in modo sicuro tramite il pin DWL_REQ) OPPURE
    B. L'host del dispositivo esegue un hard reset per avviare il PN5190
  2. Condizione di ingresso in cui il pin DWL_REQ non viene utilizzato per accedere alla modalità "download firmware protetto" (download senza pin).
    UN. L'host del dispositivo esegue un hard reset per avviare il PN5190
    B. L'host del dispositivo invia SWITCH_MODE_NORMAL (Sezione 4.5.4.5) per accedere alla modalità di applicazione normale.
    C. Ora, quando l'IC è in modalità normale di applicazione, l'host del dispositivo invia SWITCH_MODE_DOWNLOAD (Sezione 4.5.4.9) per accedere alla modalità di download sicuro.
  3. L'host del dispositivo invia il comando DL_GET_VERSION (Sezione 3.4.4) o DL_GET_DIE_ID (Sezione 3.4.6) o DL_GET_SESSION_STATE (Sezione 3.4.5).
  4. L'host del dispositivo legge la versione corrente dell'hardware e del firmware, la sessione e l'ID Die dal dispositivo.
    UN. L'host del dispositivo controlla lo stato della sessione se l'ultimo download è stato completato
    B. L'host del dispositivo applica le regole di controllo della versione per decidere se avviare il download o uscire dal download.
  5. L'host del dispositivo viene caricato da a file il codice binario del firmware da scaricare
  6. L'host del dispositivo fornisce un primo comando DL_SEC_WRITE (Sezione 3.4.8) che contiene:
    UN. La versione del nuovo firmware,
    B. Un nonce di 16 byte di valori arbitrari utilizzato per l'offuscamento della chiave di crittografia
    C. Un valore digest del fotogramma successivo,
    D. La firma digitale del telaio stesso
  7. L'host del dispositivo carica la sequenza del protocollo di download sicuro sul PN5190 con i comandi DL_SEC_WRITE (Sezione 3.4.8)
  8. Una volta inviato l'ultimo comando DL_SEC_WRITE (Sezione 3.4.8), il dispositivo host esegue il comando DL_CHECK_INTEGRITY (Sezione 3.4.7) per verificare se le memorie sono state scritte con successo.
  9. L'host del dispositivo legge la nuova versione del firmware e controlla lo stato della sessione se chiusa per segnalarlo al livello superiore
  10. L'host del dispositivo imposta il pin DWL_REQ su un livello basso (se il pin DWL_REQ viene utilizzato per accedere alla modalità download)
  11. L'host del dispositivo esegue un hard reset (attivando/disattivando il pin VEN) sul dispositivo per riavviare il PN5190
    Post-condizione: il firmware è aggiornato; viene segnalato il nuovo numero di versione del firmware.

3.3 Firma del firmware e controllo della versione
Nella modalità di download del firmware PN5190, un meccanismo assicura che solo un firmware firmato e fornito da NXP sarà accettato per il firmware NXP.
Quanto segue è applicabile solo per il firmware NXP sicuro crittografato.
Durante una sessione di download, viene inviata una nuova versione del firmware a 16 bit. È composto da un numero maggiore e uno minore:

  • Numero maggiore: 8 bit (MSB)
  • Numero minore: 8 bit (LSB)

Il PN5190 controlla se il nuovo numero di versione principale è maggiore o uguale a quello corrente. In caso contrario, il download protetto del firmware viene rifiutato e la sessione viene mantenuta chiusa.
3.4 Comandi HDLL per download crittografato legacy e crittografia hardware assistita download crittografato
Questa sezione fornisce le informazioni sui comandi e le risposte utilizzati per entrambi i tipi di download per il download del firmware NXP.
3.4.1 Codici OP comando HDLL
Nota: I frame di comando HDLL sono allineati a 4 byte. I byte di carico utile non utilizzati vengono lasciati pari a zero.
Tabella 1. Elenco dei codici OP di comando HDLL

PN5190 B0/B1
(Download precedente)
PN5190B2
(Download assistito da crittografia)
Comando alias Descrizione
0xF0 0xE5 DL_RESET Esegue un ripristino parziale
0xF1 0xE1 DL_GET_VERSIONE Restituisce i numeri di versione
0xF2 0xDB DL_GET_SESSION_STATE Restituisce lo stato della sessione corrente
0xF4 0xDF DL_GET_DIE_ID Restituisce l'ID della matrice
0xE0 0xE7 DL_CHECK_INTEGRITÀ Controlla e restituisce i CRC nelle diverse aree nonché i flag di stato superato/non superato per ciascuna
0xC0 0x8C DL_SEC_WRITE Scrive x byte in memoria a partire dall'indirizzo assoluto y

3.4.2 Codici operativi di risposta HDLL
Nota: I frame di risposta HDLL sono allineati a 4 byte. I byte di carico utile non utilizzati vengono lasciati pari a zero. Solo le risposte DL_OK possono contenere valori di payload.
Tabella 2. Elenco dei codici OP di risposta HDLL

codice operativo Alias ​​di risposta Descrizione
0x00 DL_OK Il comando è passato
0x01 DL_INVALID_ADDR Indirizzo non consentito
0x0B DL_UNKNOW_CMD Comando sconosciuto
0x0C DL_ABORTED_CMD La sequenza dei blocchi è troppo grande
0x1E DL_ADDR_RANGE_OFL_ERROR Indirizzo fuori portata
0x1F DL_BUFFER_OFL_ERROR Il buffer è troppo piccolo
0x20 DL_MEM_BSY Memoria occupata
0x21 DL_SIGNATURE_ERRORE Mancata corrispondenza della firma
0x24 DL_FIRMWARE_VERSION_ERROR Versione attuale uguale o superiore
0x28 DL_PROTOCOL_ERRORE Errore di protocollo
0x2Un DL_SFWU_DEGRADED Corruzione dei dati Flash
0x2D PH_STATUS_DL_FIRST_CHUNK Primo pezzo ricevuto
0x2E PH_STATUS_DL_NEXT_CHUNK Aspetta il pezzo successivo
0xC5 PH_STATUS_INTERNAL_ERROR_5 Mancata corrispondenza della lunghezza

3.4.3 Comando DL_RESET
Scambio di frame:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF0 0x00 0x00 0x00 0x18 0x5B] PN5190B2: [HDLL] -> [0x00 0x04 0xE5 0x00 0x00 0x00 0xBF 0xB9] [HDLL] <- [0x00 0x04 STAT 0x00 CRC16] Il ripristino impedisce al PN5190 di inviare la risposta DL_STATUS_OK. Pertanto, è possibile ricevere solo stati errati.
STAT è lo stato di ritorno.
3.4.4 Comando DL_GET_VERSION
Scambio di frame:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF1 0x00 0x00 0x00 0x6E 0xEF] PN5190B2: [HDLL] -> [0x00 0x04 0xE1 0x00 0x00 0x00 0x75 0x48] [HDLL] <- [0x00 0x08 STAT HW_V RO_V MODEL_ID FM1V FM2V RFU1 RFU2 CRC16] Il frame del payload della risposta GetVersion è:
Tabella 3. Risposta al comando GetVersion

Campo Byte Descrizione
STATISTICHE 1 Stato
HW_V 2 Versione hardware
RO_V 3 codice rom
ID_MODELLO 4 ID modello
FMxV 5-6 Versione firmware (utilizzata per il download)
RFU1-RFU2 7-8

I valori attesi dei diversi campi di risposta e la loro mappatura sono i seguenti:
Tabella 4. Valori previsti della risposta del comando GetVersion

Tipo di CI Versione HW (esadecimale) Versione ROM (esadecimale) ID modello (esadecimale) Versione FW (esadecimale)
PN5190B0 0x51 0x02 0x00 xx.aa
PN5190B1 0x52 0x02 0x00 xx.aa
PN5190B2 0x53 0x03 0x00 xx.aa

3.4.5 Comando DL_GET_SESSION_STATE
Scambio di frame:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF2 0x00 0x00 0x00 0xF5 0x33] PN5190B2: [HDLL] -> [0x00 0x04 0xDB 0x00 0x00 0x00 0x31 0x0A] [HDLL] <- [0x00 0x04 STAT SSTA RFU CRC16] Il frame del payload della risposta GetSession è:
Tabella 5. Risposta al comando GetSession

Campo Byte Descrizione
STATISTICHE 1 Stato
SSTA 2 Stato della sessione
• 0x00: chiuso
• 0x01: aperto
• 0x02: bloccato (download non più consentito)
RFU 3-4

3.4.6 Comando DL_GET_DIE_ID
Scambio di frame:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF4 0x00 0x00 0x00 0xD2 0xAA] PN5190B2: [HDLL] -> [0x00 0x04 0xDF 0x00 0x00 0x00 0xFB 0xFB] [HDLL] <- [0x00 0x14 STAT 0x00 0x00 0x00 ID0 ID1 ID2 ID3 ID4 ID5 ID6 ID7 ID8 ID9
ID10 ID11 ID12 ID13 ID14 ID15 CRC16] Il frame del payload della risposta GetDieId è:
Tabella 6. Risposta al comando GetDieId

Campo Byte Descrizione
STATISTICHE 1 Stato
RFU 2-4
MORTO 5-20 ID della matrice (16 byte)

3.4.7 Comando DL_CHECK_INTEGRITY
Scambio di frame:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xE0 0x00 0x00 0x00 CRC16] PN5190B2: [HDLL] -> [0x00 0x04 0xE7 0x00 0x00 0x00 0x52 0xD1] [HDLL] <- [0x00 0x20 STAT LEN_DATA LEN_CODE 0x00 [CRC_INFO] [CRC32] CRC16] Il frame del payload della risposta CheckIntegrity è:
Tabella 7. Risposta al comando CheckIntegrity

Campo Byte Valore/Descrizione
STATISTICHE 1 Stato
DATI LUNGHEZZA 2 Numero totale di sezioni di dati
CODICE LENTE 3 Numero totale di sezioni di codice
RFU 4 Prenotato
[CRC_INFO] 58 32 bit (little endian). Se un bit è impostato, il CRC della sezione corrispondente è OK, altrimenti Not OK.
Morso Stato di integrità dell'area
[31:28] Riservato [3]
[27:23] Riservato [1]
[22] Riservato [3]
[21:20] Riservato [1]
[19] Area di configurazione RF (PN5190 B0/B1) [2] Riservato (PN5190 B2) [3]
[18] Area di configurazione protocollo (PN5190 B0/B1) [2] Area di configurazione RF (PN5190 B2) [2]
[17] Riservato (PN5190 B0/B1) [3] Area di configurazione utente (PN5190 B2) [2]
[16:6] Riservato [3]
[5:4] Riservato per PN5190 B0/B1 [3] Riservato per PN5190 B2 [1]
[3:0] Riservato [1]
[CRC32] 9-136 CRC32 delle 32 sezioni. Ogni CRC è di 4 byte memorizzati in formato little-endian.
I primi 4 byte di CRC sono del bit CRC_INFO[31], i successivi 4 byte di CRC sono del bit CRC_INFO[30] e così via.
  • [1] Questo bit deve essere 1 affinché il PN5190 funzioni correttamente (con funzionalità e/o download FW crittografato).
  • [2] Questo bit è impostato su 1 per impostazione predefinita, ma le impostazioni modificate dall'utente invalidano il CRC. Nessun effetto sulla funzionalità del PN5190.
  • [3] Questo valore di bit, anche se è 0, non è rilevante. Questo valore di bit può essere ignorato.

3.4.8 Comando DL_SEC_WRITE
Il comando DL_SEC_WRITE deve essere considerato nel contesto di una sequenza di comandi di scrittura sicura: il "download sicuro del firmware" crittografato (spesso indicato come eSFWu).
Il comando di scrittura sicura apre innanzitutto la sessione di download e passa l'autenticazione RSA. I successivi passano indirizzi e byte crittografati da scrivere nella flash PN5190. Tutti tranne l'ultimo contengono l'hash successivo, quindi informano che non sono gli ultimi e uniscono crittograficamente i frame della sequenza.
Altri comandi (tranne DL_RESET e DL_CHECK_INTEGRITY) possono essere inseriti tra i comandi di scrittura protetti di una sequenza senza interromperla.
3.4.8.1 Primo comando DL_SEC_WRITE
Un comando di scrittura protetta è il primo se e solo se:

  1. La lunghezza del frame è 312 byte
  2. Nessun comando di scrittura protetta è stato ricevuto dall'ultimo ripristino.
  3. La firma incorporata è stata verificata con successo dal PN5190.

La risposta al comando del primo frame sarebbe la seguente: [HDLL] <- [0x00 0x04 STAT 0x00 0x00 0x00 CRC16] STAT è lo stato restituito.
Nota: Almeno un blocco di dati deve essere scritto durante un eSFWu anche se i dati scritti possono essere lunghi solo un byte. Pertanto, il primo comando conterrà sempre l'hash del comando successivo, poiché i comandi saranno almeno due.
3.4.8.2 Comandi DL_SEC_WRITE centrali
Un comando di scrittura protetto è "intermedio" se e solo se:

  1. Il codice operativo è quello descritto nella Sezione 3.4.1 per il comando DL_SEC_WRITE.
  2. Un primo comando di scrittura protetta è già stato ricevuto e verificato con successo in precedenza
  3. Non si è verificato alcun ripristino dalla ricezione del primo comando di scrittura protetta
  4. La lunghezza del frame è uguale alla dimensione dei dati + dimensione dell'intestazione + dimensione dell'hash: FLEN = DIMENSIONE + 6 + 32
  5. Il digest dell'intero frame è uguale al valore hash ricevuto nel frame precedente

La risposta al comando del primo frame sarebbe la seguente: [HDLL] <- [0x00 0x04 STAT 0x00 0x00 0x00 CRC16] STAT è lo stato restituito.
3.4.8.3 Ultimo comando DL_SEC_WRITE
Un comando di scrittura protetta è l'ultimo se e solo se:

  1. Il codice operativo è quello descritto nella Sezione 3.4.1 per il comando DL_SEC_WRITE.
  2. Un primo comando di scrittura protetta è già stato ricevuto e verificato con successo in precedenza
  3. Non si è verificato alcun ripristino dalla ricezione del primo comando di scrittura protetta
  4. La lunghezza del frame è uguale alla dimensione dei dati + dimensione dell'intestazione: FLEN = DIMENSIONE + 6
  5. Il digest dell'intero frame è uguale al valore hash ricevuto nel frame precedente

La risposta al comando del primo frame sarebbe la seguente: [HDLL] <- [0x00 0x04 STAT 0x00 0x00 0x00 CRC16] STAT è lo stato restituito.

Modalità di avvio operativo IC: modalità di funzionamento normale

4.1 Introduzione
Generalmente l'IC PN5190 deve essere in modalità operativa normale per ottenere la funzionalità NFC.
Quando l'IC PN5190 si avvia, attende sempre la ricezione dei comandi da un host per eseguire l'operazione, a meno che gli eventi generati all'interno dell'IC PN5190 non abbiano provocato l'avvio dell'IC PN5190.
4.2 Elenco dei comandi finitoview
Tabella 8. Elenco dei comandi PN5190

codice comando Nome del comando
0x00 SCRIVI_REGISTRA
0x01 WRITE_REGISTER_OR_MASK
0x02 SCRIVI_REGISTER_AND_MASK
0x03 SCRIVI_REGISTER_MULTIPLE
0x04 LEGGI_REGISTRAZIONE
0x05 READ_REGISTER_MULTIPLE
0x06 SCRIVI_E2PROM
0x07 LEGGI_E2PROM
0x08 TRANSMIT_RF_DATI
0x09 RECUPERA_RF_DATA
0x0Un SCAMBIO_RF_DATI
0x0B MFC_AUTENTICA
0x0C EPC_GEN2_INVENTARIO
0x0D LOAD_RF_CONFIGURAZIONE
0x0E UPDATE_RF_CONFIGURAZIONE
0x0F GET_ CONFIGURAZIONE_RF
0x10 RF_ON
0x11 RF_OFF
0x12 CONFIGURA TESTBUS_DIGITAL
0x13 CONFIGURE_BUS DI PROVA_ANALOGICO
0x14 CTS_ENABLE
0x15 CTS_CONFIGURA
0x16 CTS_RETRIEVE_LOG
0x17-0x18 RFU
0x19 fino a FW v2.01: RFU
da FW v2.03 in poi: RETRIEVE_RF_FELICA_EMD_DATA
0x1Un RICEVI_RF_DATI
0x1B-0x1F RFU
0x20 COMMUTAZIONE_MODALITÀ_NORMALE
0x21 SWITCH_MODE_AUTOCOLL
0x22 SWITCH_MODE_STANDBY
0x23 SWITCH_MODE_LPCD
0x24 RFU
0x25 SWITCH_MODE_DOWNLOAD
0x26 OTTIENI_DIEID
0x27 OTTIENI_VERSIONE
0x28 RFU
0x29 fino a FW v2.05: RFU
da FW v2.06 in poi: GET_CRC_USER_AREA
0x2Un fino a FW v2.03: RFU
da FW v2.05 in poi: CONFIGURE_MULTIPLE_TESTBUS_DIGITAL
0x2B-0x3F RFU
0x40 ANTENNA_SELF_TEST (non supportato)
0x41 PROVA_PRBS
0x42-0x4F RFU

4.3 Valori dello stato della risposta
Di seguito sono riportati i valori dello stato della risposta, che vengono restituiti come parte della risposta da PN5190 dopo che il comando è stato reso operativo.
Tabella 9. Valori dello stato della risposta PN5190

Stato della risposta Valore dello stato della risposta Descrizione
PN5190_STATUS_SUCCESSO 0x00 Indica che l'operazione è stata completata correttamente
PN5190_STATUS_TIMEOUT 0x01 Indica che l'operazione del comando ha provocato un timeout
PN5190_STATUS_INTEGRITY_ERROR 0x02 Indica che l'operazione del comando ha provocato un errore di integrità dei dati RF
PN5190_STATUS_RF_COLLISION_ERROR 0x03 Indica che l'operazione del comando ha provocato un errore di collisione RF
PN5190_STATUS_RFU1 0x04 Prenotato
PN5190_STATUS_INVALID_COMMAND 0x05 Indica che il comando dato non è valido/non implementato
PN5190_STATUS_RFU2 0x06 Prenotato
PN5190_STATUS_AUTH_ERROR 0x07 Indica che l'autenticazione MFC non è riuscita (autorizzazione negata)
PN5190_STATUS_MEMORY_ERROR 0x08 Indica che l'operazione del comando ha provocato un errore di programmazione o un errore di memoria interna
PN5190_STATUS_RFU4 0x09 Prenotato
PN5190_STATUS_NO_RF_FIELD 0x0Un Indica assenza o errore nella presenza del campo RF interno (applicabile solo se modalità iniziatore/lettore)
PN5190_STATUS_RFU5 0x0B Prenotato
PN5190_STATUS_SYNTAX_ERROR 0x0C Indica che è stata ricevuta una lunghezza del frame di comando non valida
PN5190_STATUS_RESOURCE_ERROR 0x0D Indica che si è verificato un errore di risorsa interna
PN5190_STATUS_RFU6 0x0E Prenotato
PN5190_STATUS_RFU7 0x0F Prenotato
PN5190_STATUS_NO_EXTERNAL_RF_FIELD 0x10 Indica che non è presente alcun campo RF esterno durante l'esecuzione del comando (Applicabile solo in modalità tessera/bersaglio)
PN5190_STATUS_RX_TIMEOUT 0x11 Indica che i dati non vengono ricevuti dopo l'avvio di RFExchange e il timeout di RX.
PN5190_STATUS_USER_CANCELLED 0x12 Indica che l'attuale comando in corso è stato interrotto
PN5190_STATUS_PREVENT_STANDBY 0x13 Indica che PN5190 non può entrare in modalità Standby
PN5190_STATUS_RFU9 0x14 Prenotato
PN5190_STATUS_CLOCK_ERROR 0x15 Indica che l'orologio del CLIF non è stato avviato
PN5190_STATUS_RFU10 0x16 Prenotato
PN5190_STATUS_PRBS_ERROR 0x17 Indica che il comando PRBS ha restituito un errore
PN5190_STATUS_INSTR_ERROR 0x18 Indica che l'operazione del comando non è riuscita (può includere un errore nei parametri dell'istruzione, un errore di sintassi, un errore nell'operazione stessa, i prerequisiti per l'istruzione non sono soddisfatti, ecc.)
PN5190_STATUS_ACCESS_DENIED 0x19 Indica che l'accesso alla memoria interna è negato
PN5190_STATUS_TX_FAILURE 0x1Un Indica che la trasmissione su RF non è riuscita
PN5190_STATO_NO_ANTENNA 0x1B Indica che nessuna antenna è collegata/presente
PN5190_STATUS_TXLDO_ERROR 0x1C Indica che c'è un errore in TXLDO quando il VUP non è disponibile e RF è acceso.
PN5190_STATUS_RFCFG_NOT_APPLIED 0x1D Indica che la configurazione RF non è caricata quando RF è acceso
PN5190_STATUS_TIMEOUT_WITH_EMD_ERROR 0x1E fino a FW 2.01: non previsto
dal FW 2.03 in poi:
Indica che durante lo scambio con LOG ENABLE BIT impostato nel registro FeliCa EMD, è stato osservato l'errore FeliCa EMD
PN5190_STATUS_INTERNAL_ERROR 0x7F Indica che l'operazione NVM non è riuscita
PN5190_STATUS_SUCCSES_CHAINING 0xAF Indica che, inoltre, i dati sono in attesa di lettura

4.4 Eventi finitiview
Esistono due modi in cui gli eventi vengono notificati all'host.
4.4.1 Eventi normali sul pin IRQ
Questi eventi sono categorie come di seguito:

  1. Sempre abilitato: l'host riceve sempre una notifica
  2. Controllato dall'Host – L'Host viene avvisato se il rispettivo bit di abilitazione evento è impostato nel registro (EVENT_ENABLE (01h)).

Gli interrupt di basso livello dagli IP periferici, incluso il CLIF, devono essere completamente gestiti all'interno del firmware e l'host deve ricevere notifiche solo degli eventi elencati nella sezione eventi.
Il firmware implementa due registri di eventi come registri RAM che possono essere scritti/letti utilizzando i comandi della Sezione 4.5.1.1/Sezione 4.5.1.5.
Il registro EVENT_ENABLE (0x01) => Abilita notifiche specifiche/tutte gli eventi.
Il registro EVENT_STATUS (0x02) => Parte del payload del messaggio di evento.
Gli eventi devono essere cancellati dall'host una volta che il messaggio dell'evento è stato letto dall'host.
Gli eventi sono di natura asincrona e vengono notificati all'host, se sono abilitati all'interno del registro EVENT_ENABLE.
Di seguito è riportato l'elenco degli eventi che saranno disponibili per l'host come parte del messaggio di evento.
Tabella 10. Eventi PN5190 (contenuto di EVENT_STATUS)

Bit – Intervallo Campo [1] Sempre Abilitato (Sì/No)
31 12 RFU NA
11 11 CTS_EVENTO [2] N
10 10 IDLE_EVENT Y
9 9 LPCD_CALIBRATION_DONE_EVENT Y
8 8 LPCD_EVENT Y
7 7 AUTOCOLL_EVENT Y
6 6 TIMER0_EVENTO N
5 5 TX_OVERCURRENT_EVENT N
4 4 RFON_DET_EVENTO [2] N
3 3 RFOFF_DET_EVENT [2] N
2 2 STANDBY_PREV_EVENT Y
1 1 GENERAL_ERROR_EVENT Y
0 0 BOOT_EVENT Y
  1. Tieni presente che non vengono battuti due eventi, tranne in caso di errori. In caso di errori durante l'operazione, verranno impostati gli eventi funzionali (es. BOOT_EVENT, AUTOCALL_EVENT ecc.) e GENERAL_ERROR_EVENT.
  2. Questo evento verrà automaticamente disabilitato dopo essere stato pubblicato nell'host. L'host deve abilitare nuovamente questi eventi se desidera riceverne la notifica.

4.4.1.1 Formati dei messaggi di evento
Il formato del messaggio di evento varia a seconda delle occorrenze di un evento e del diverso stato di PN5190.
L'host deve leggere tag (T) e lunghezza del messaggio (L) e quindi leggere il corrispondente numero di byte come valore (V) degli eventi.
In generale, il messaggio di evento (vedere Figura 12) contiene EVENT_STATUS come definito nella Tabella 11 ei dati di evento corrispondono al rispettivo bit di evento impostato in EVENT_STATUS.
Nota:
Per alcuni eventi, il carico utile non esiste. Ad esempio, se viene attivato TIMER0_EVENT, come parte del messaggio di evento viene fornito solo EVENT_STATUS.
La Tabella 11 specifica inoltre se i dati dell'evento sono presenti nel messaggio di evento per l'evento corrispondente.Controller frontend NFC NXP PN5190: si sono verificati erroriGENERAL_ERROR_EVENT può verificarsi anche con altri eventi.
In questo scenario, il messaggio di evento (vedere Figura 13) contiene EVENT_STATUS come definito nella Tabella 11 e GENERAL_ERROR_STATUS_DATA come definito nella Tabella 14 e quindi i dati dell'evento corrispondono al rispettivo bit di evento impostato in EVENT_STATUS come definito nella Tabella 11.Controller frontend NFC NXP PN5190: formato quando si è verificato un erroreNota:
Solo dopo BOOT_EVENT o dopo POR, STANDBY, ULPCD, l'host sarà in grado di funzionare nella modalità operativa normale emettendo i comandi sopra elencati.
In caso di interruzione di un comando in esecuzione esistente, solo dopo IDLE_EVENT, l'host sarà in grado di lavorare nella modalità operativa normale emettendo i comandi sopra elencati.
4.4.1.2 Diverse definizioni di stato EVENTO
4.4.1.2.1 Definizioni di bit per EVENT_STATUS
Tabella 11. Definizioni per i bit EVENT_STATUS

Bit (A – Da) Evento Descrizione Dati evento dell'evento corrispondente
(se presente)
31 12 RFU Prenotato
11 11 CTS_EVENT Questo bit viene impostato quando viene generato l'evento CTS. Tabella 86
10 10 IDLE_EVENT Questo bit viene impostato quando il comando in corso viene annullato a causa dell'emissione del comando SWITCH_MODE_NORMAL. Nessun dato sull'evento
9 9 LPCD_CALIBRATION_DONE_
EVENTO
Questo bit viene impostato quando viene generato l'evento calibrazione effettuata LPCD. Tabella 16
8 8 LPCD_EVENT Questo bit viene impostato quando viene generato l'evento LPCD. Tabella 15
7 7 AUTOCOLL_EVENT Questo bit viene impostato quando l'operazione AUTOCOLL è completata. Tabella 52
6 6 TIMER0_EVENTO Questo bit viene impostato quando si verifica l'evento TIMER0. Nessun dato sull'evento
5 5 TX_OVERCURRENT_ERROR_
EVENTO
Questo bit viene impostato quando la corrente sul driver TX è superiore alla soglia definita nella EEPROM. In questa condizione il campo viene automaticamente spento prima della notifica all'host. Fare riferimento alla Sezione 4.4.2.2. Nessun dato sull'evento
4 4 RFON_DET_EVENT Questo bit viene impostato quando viene rilevato il campo RF esterno. Nessun dato sull'evento
3 3 RFOFF_DET_EVENT Questo bit viene impostato quando il campo RF esterno già esistente scompare. Nessun dato sull'evento
2 2 STANDBY_PREV_EVENT Questo bit viene impostato quando lo standby viene impedito a causa della presenza di condizioni di prevenzione Tabella 13
1 1 GENERAL_ERROR_EVENT Questo bit viene impostato quando esistono condizioni di errore generali Tabella 14
0 0 BOOT_EVENT Questo bit è impostato quando PN5190 viene avviato con POR/Standby Tabella 12

4.4.1.2.2 Definizioni di bit per BOOT_STATUS_DATA
Tabella 12. Definizioni per i bit BOOT_STATUS_DATA

Un po' a Un po' da Stato di avvio Motivo di avvio dovuto a
31 27 RFU Prenotato
26 26 ULP_STANDBY Motivo di avvio dovuto all'uscita da ULP_STANDBY.
25 23 RFU Prenotato
22 22 BOOT_RX_ULPDET RX ULPDET ha provocato l'avvio in modalità ULP-Standby
21 21 RFU Prenotato
20 20 BOOT_SPI Motivo dell'avvio dovuto al fatto che il segnale SPI_NTS è abbassato
19 17 RFU Prenotato
16 16 BOOT_GPIO3 Avvio Motivo dovuto alla transizione di GPIO3 da basso ad alto.
15 15 BOOT_GPIO2 Avvio Motivo dovuto alla transizione di GPIO2 da basso ad alto.
14 14 BOOT_GPIO1 Avvio Motivo dovuto alla transizione di GPIO1 da basso ad alto.
13 13 BOOT_GPIO0 Avvio Motivo dovuto alla transizione di GPIO0 da basso ad alto.
12 12 BOOT_LPDET Avvio Motivo dovuto alla presenza di campo RF esterno durante STANDBY/SUSPEND
11 11 RFU Prenotato
10 8 RFU Prenotato
7 7 BOOT_SOFT_RESET Bootup Motivo dovuto al soft reset dell'IC
6 6 BOOT_VDDIO_LOSS Avvio Motivo dovuto alla perdita di VDDIO. Fare riferimento alla Sezione 4.4.2.3
5 5 BOOT_VDDIO_START Motivo di avvio se STANDBY è stato inserito con VDDIO LOSS.
Fare riferimento alla Sezione 4.4.2.3
4 4 BOOT_WUC Motivo di avvio dovuto al contatore di riattivazione scaduto durante l'operazione STANDBY.
3 3 BOOT_TEMP Il motivo dell'avvio dovuto alla temperatura del circuito integrato è superiore al limite di soglia configurato. Fare riferimento alla Sezione 4.4.2.1
2 2 BOOT_WDG Bootup Motivo dovuto al ripristino del watchdog
1 1 RFU Prenotato
0 0 BOOT_POR Motivo di avvio dovuto al ripristino all'accensione

4.4.1.2.3 Definizioni di bit per STANDBY_PREV_STATUS_DATA
Tabella 13. Definizioni per i bit STANDBY_PREV_STATUS_DATA

Un po' a  Un po' da  Prevenzione dello stand-by Standby impedito a causa di
31 26 RFU PRENOTATO
25 25 RFU PRENOTATO
24 24 PREC_TEMP La temperatura operativa dei circuiti integrati è fuori soglia
23 23 RFU PRENOTATO
22 22 PREV_HOSTCOMM Comunicazione dell'interfaccia host
21 21 PREV_SPI Segnale SPI_NTS abbassato
20 18 RFU PRENOTATO
17 17 PREV_GPIO3 Segnale GPIO3 che passa da basso ad alto
16 16 PREV_GPIO2 Segnale GPIO2 che passa da basso ad alto
15 15 PREV_GPIO1 Segnale GPIO1 che passa da basso ad alto
14 14 PREV_GPIO0 Segnale GPIO0 che passa da basso ad alto
13 13 PREV_WUC Contatore risvegli scaduto
12 12 PREV_LPDET Rilevamento a bassa potenza. Si verifica quando viene rilevato un segnale RF esterno durante il passaggio in standby.
11 11 PREV_RX_ULPDET Rilevamento di potenza ultra-bassa RX. Si verifica quando viene rilevato un segnale RF durante il passaggio a ULP_STANDBY.
10 10 RFU PRENOTATO
9 5 RFU PRENOTATO
4 4 RFU PRENOTATO
3 3 RFU PRENOTATO
2 2 RFU PRENOTATO
1 1 RFU PRENOTATO
0 0 RFU PRENOTATO

4.4.1.2.4 Definizioni di bit per GENERAL_ERROR_STATUS_DATA
Tabella 14. Definizioni per i bit GENERAL_ERROR_STATUS_DATA

Un po' a  Un po' da  Stato di errore Descrizione
31 6 RFU Prenotato
5 5 XTAL_START_ERRORE L'avvio di XTAL non è riuscito durante l'avvio
4 4 SYS_TRIM_RECOVERY_ERRORE Si è verificato un errore di memoria di trim del sistema interno, ma il ripristino non è riuscito. Il sistema funziona in modalità ridotta.
3 3 SYS_TRIM_RECOVERY_SUCCESS Si è verificato un errore di memoria di trim del sistema interno e il ripristino ha avuto esito positivo. L'host deve eseguire il riavvio della PN5190 affinché il ripristino abbia effetto.
2 2 TXLDO_ERRORE Errore TXLDO
1 1 ERRORE_OROLOGIO Errore dell'orologio
0 0 GPADC_ERRORE Errore ADC

4.4.1.2.5 Definizioni di bit per LPCD_STATUS_DATA
Tabella 15. Definizioni per byte LPCD_STATUS_DATA

Un po' a Un po' da Applicabilità dei bit di stato in base all'operazione sottostante di LPCD o ULPCD La descrizione del bit corrispondente è impostata nel byte di stato.
LPCD ULPCD
31 7 RFU Prenotato
6 6 Interrompi_HIF Y N Interrotto a causa dell'attività HIF
5 5 Errore CLKDET N Y Interrotto a causa di un errore CLKDET
4 4 Tempo scaduto XTAL N Y Interrotto a causa del timeout XTAL verificatosi
3 3 Sovracorrente LDO VDDPA N Y Interrotta a causa della sovracorrente dell'LDO VDDPA
2 2 Campo RF esterno Y Y Interrotto a causa di campo RF esterno
1 1 GPIO3 Interruzione N Y Interrotto a causa della modifica del livello GPIO3
0 0 Carta rilevata Y Y Carta rilevata

4.4.1.2.6 Definizioni di bit per i dati di stato LPCD_CALIBRATION_DONE
Tabella 16. Definizioni per i byte di dati di stato LPCD_CALIBRATION_DONE per ULPCD

Un po' a Un po' da Stato di LPCD_CALIBRATION DONE evento La descrizione del bit corrispondente è impostata nel byte di stato.
31 11 Prenotato
10 0 Valore di riferimento dalla calibrazione UPCD Il valore RSSI misurato durante la calibrazione dell'ULPCD che viene utilizzato come riferimento durante l'ULPCD

Tabella 17. Definizioni per i byte di dati di stato LPCD_CALIBRATION_DONE per LPCD

Un po' a Un po' da Applicabilità dei bit di stato in base all'operazione sottostante di LPCD o ULPCD La descrizione del bit corrispondente è impostata nel byte di stato.
2 2 Campo RF esterno Y Y Interrotto a causa di campo RF esterno
1 1 GPIO3 Interruzione N Y Interrotto a causa della modifica del livello GPIO3
0 0 Carta rilevata Y Y Carta rilevata

4.4.2 Gestione di diversi scenari di avvio
L'IC PN5190 gestisce diverse condizioni di errore relative ai parametri IC come di seguito.
4.4.2.1 Gestione dello scenario di sovratemperatura quando PN5190 è in funzione
Ogni volta che la temperatura interna dell'IC PN5190 raggiunge il valore di soglia configurato nel campo EEPROM TEMP_WARNING [2], l'IC entra in standby. Di conseguenza, se il campo EEPROM ENABLE_GPIO0_ON_OVERTEMP [2] è configurato per inviare una notifica all'host, GPIO0 verrà portato in alto per notificare all'IC la sovratemperatura.
Se e quando la temperatura dell'IC scende al di sotto del valore di soglia configurato nel campo EEPROM TEMP_WARNING [2], l'IC si avvierà con BOOT_EVENT come nella Tabella 11 e il bit di stato di avvio BOOT_TEMP è impostato come nella Tabella 12 e il GPIO0 verrà abbassato.
4.4.2.2 Gestione della sovracorrente
Se l'IC PN5190 rileva la condizione di sovracorrente, l'IC interrompe l'alimentazione RF e invia TX_OVERCURRENT_ERROR_EVENT come nella Tabella 11.
La durata della condizione di sovracorrente può essere controllata modificando il campo EEPROM TXLDO_CONFIG [2].
Per informazioni sulla soglia di sovracorrente IC, fare riferimento al documento [2].
Nota:
Se sono presenti altri eventi o risposte in sospeso, verranno inviati all'host.
4.4.2.3 Perdita di VDDIO durante il funzionamento
Se l'IC PN5190 rileva l'assenza di VDDIO (perdita VDDIO), l'IC entra in standby.
L'IC si avvia solo quando VDDIO è disponibile, con BOOT_EVENT come nella Tabella 11 e il bit di stato di avvio BOOT_VDDIO_START impostato come nella Tabella 12.
Per informazioni sulle caratteristiche statiche del circuito integrato PN5190, fare riferimento al documento [2].
4.4.3 Gestione degli scenari di interruzione
L'IC PN5190 supporta l'interruzione degli attuali comandi in esecuzione e il comportamento dell'IC PN5190, quando tale comando di interruzione come la Sezione 4.5.4.5.2 viene inviato all'IC PN5190 è mostrato nella Tabella 18.
Nota:
Quando l'IC PN5190 è in modalità ULPCD e ULP-Standby, non può essere interrotto inviando una Sezione 4.5.4.5.2 OPPURE avviando una transazione SPI (tirando basso il segnale SPI_NTS).
Tabella 18. Risposta all'evento prevista quando diversi comandi terminavano con la Sezione 4.5.4.5.2

Comandi Comportamento quando viene inviato il comando Switch Mode Normal
Tutti i comandi in cui non è inserita la bassa potenza EVENT_STAUS è impostato su "IDLE_EVENT"
Cambia modalità LPCD EVENT_STATUS è impostato su "LPCD_EVENT" con "LPCD_STATUS_DATA" che indica i bit di stato come "Abort_HIF"
Cambia modalità standby EVENT_STAUS è impostato su "BOOT_EVENT" con "BOOT_STATUS_DATA" che indica i bit "BOOT_SPI"
Switch Mode Autocoll (nessuna modalità autonoma, modalità autonoma con standby e modalità autonoma senza standby) EVENT_STAUS è impostato su "AUTOCOLL_EVENT" con i bit STATUS_DATA che indicano che il comando è stato annullato dall'utente.

4.5 Dettagli delle istruzioni di funzionamento in modalità normale
4.5.1 Manipolazione dei registri
Le istruzioni di questa sezione vengono utilizzate per accedere ai registri logici del PN5190.
4.5.1.1 SCRITTURA_REGISTRATO
Questa istruzione viene utilizzata per scrivere un valore a 32 bit (little-endian) in un registro logico.
Condizioni 4.5.1.1.1
L'indirizzo del registro deve esistere e il registro deve avere l'attributo READ-WRITE o WRITE-ONLY.
4.5.1.1.2 Comando
Tabella 19. Valore del comando WRITE_REGISTER Scrive un valore a 32 bit in un registro.

Campo di carico utile Lunghezza Valore/Descrizione
Registra indirizzo 1 byte Indirizzo del registro.

Tabella 19. Valore del comando WRITE_REGISTER…continua
Scrivere un valore a 32 bit in un registro.

Campo di carico utile Lunghezza Valore/Descrizione
Valore 4 byte Valore del registro a 32 bit che deve essere scritto. (Little endian)

4.5.1.1.3 Risposta
Tabella 20. Valore della risposta WRITE_REGISTER

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR

4.5.1.1.4 Evento
Non ci sono eventi per questo comando.
4.5.1.2 SCRIVI_REGISTER_OR_MASK
Questa istruzione viene utilizzata per modificare il contenuto del registro utilizzando un'operazione logica OR. Viene letto il contenuto del registro e viene eseguita un'operazione logica OR con la maschera fornita. Il contenuto modificato viene riscritto nel registro.
Condizioni 4.5.1.2.1
L'indirizzo del registro deve esistere e il registro deve avere l'attributo READ-WRITE.
4.5.1.2.2 Comando
Tabella 21. Valore comando WRITE_REGISTER_OR_MASK Esegue un'operazione OR logica su un registro utilizzando la maschera fornita.

Campo del carico utile Lunghezza Valore/descrizione
Registra indirizzo 1 byte Indirizzo del registro.
Maschera 4 byte Maschera di bit utilizzata come operando per l'operazione OR logica. (Little endian)

4.5.1.2.3 Risposta
Tabella 22. Valore della risposta WRITE_REGISTER_OR_MASK

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR

4.5.1.2.4 Evento
Non ci sono eventi per questo comando.
4.5.1.3 SCRIVI_REGISTRA_E_MASCHERA
Questa istruzione viene utilizzata per modificare il contenuto del registro utilizzando un'operazione logica AND. Viene letto il contenuto del registro e viene eseguita un'operazione logica AND con la maschera fornita. Il contenuto modificato viene riscritto nel registro.
Condizioni 4.5.1.3.1
L'indirizzo del registro deve esistere e il registro deve avere l'attributo READ-WRITE.
4.5.1.3.2 Comando
Tabella 23. Valore comando WRITE_REGISTER_AND_MASK Esegue un'operazione AND logica su un registro utilizzando la maschera fornita.

Campo del carico utile Lunghezza Valore/descrizione
Registra indirizzo 1 byte Indirizzo del registro.
Maschera 4 byte Maschera di bit utilizzata come operando per l'operazione logica AND. (Little endian)

4.5.1.3.3 Risposta
Tabella 24. Valore della risposta WRITE_REGISTER_AND_MASK

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR

4.5.1.3.4 Evento
Non ci sono eventi per questo comando.
4.5.1.4 SCRITTURA_REGISTRATO_MULTIPLO
Questa funzionalità di istruzione è simile alla Sezione 4.5.1.1, Sezione 4.5.1.2, Sezione 4.5.1.3, con la possibilità di combinarle. In effetti, prende un array di set di valori di tipo registro ed esegue l'azione appropriata. Il tipo riflette l'azione che è scrittura registro, operazione logica OR su un registro o operazione logica AND su un registro.
Condizioni 4.5.1.4.1
Deve esistere il rispettivo indirizzo logico del registro all'interno di un set.
L'attributo di accesso al registro deve consentire l'esecuzione dell'azione richiesta (tipo):

  • Azione di scrittura (0x01): attributo READ-WRITE o WRITE-ONLY
  • Azione maschera OR (0x02): attributo READ-WRITE
  • Azione maschera AND (0x03): attributo READ-WRITE

La dimensione dell'array 'Set' deve essere compresa tra 1 e 43 inclusi.
Il campo "Tipo" deve essere compreso tra 1 e 3 inclusi

4.5.1.4.2 Comando
Tabella 25. Valore comando WRITE_REGISTER_MULTIPLE Esegue un'operazione di scrittura del registro utilizzando una serie di coppie Registro-Valore.

Campo del carico utile Lunghezza Valore/descrizione
Imposta [1…n] 6 byte Registra indirizzo 1 byte Indirizzo logico del registro.
Tipo 1 byte 0x1 Scrivi Registro
0x2 Scrivi Registro O Maschera
0x3 Scrivi Registro E Maschera
Valore 4 byte 32 Valore del registro del morso che deve essere scritto o maschera di bit utilizzata per l'operazione logica. (Little endian)

Nota: in caso di eccezione, l'operazione non viene annullata, ovvero i registri che sono stati modificati finché non si verifica un'eccezione rimangono nello stato modificato. L'host deve intraprendere le azioni appropriate per ripristinare uno stato definito.
4.5.1.4.3 Risposta
Tabella 26. Valore della risposta WRITE_REGISTER_MULTIPLE

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR

4.5.1.4.4 Evento
Non ci sono eventi per questo comando.
4.5.1.5 LEGGI_REGISTRO
Questa istruzione viene utilizzata per rileggere il contenuto di un registro logico. Il contenuto è presente nella risposta, come valore a 4 byte in formato little-endian.
Condizioni 4.5.1.5.1
L'indirizzo del registro logico deve esistere. L'attributo di accesso del registro deve essere READ-WRITE o READ-ONLY.
4.5.1.5.2 Comando
Tabella 27. Valore del comando READ_REGISTER
Rileggere il contenuto di un registro.

Campo di carico utile Lunghezza Valore/Descrizione
Registra indirizzo 1 byte Indirizzo del registro logico

4.5.1.5.3 Risposta
Tabella 28. Valore della risposta READ_REGISTER

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Registra valore 4 byte Valore di registro a 32 bit che è stato letto. (Little endian)

4.5.1.5.4 Evento
Non ci sono eventi per questo comando.
4.5.1.6 READ_REGISTER_MULTIPLE
Questa istruzione viene utilizzata per leggere più registri logici contemporaneamente. Il risultato (contenuto di ogni registro) è fornito nella risposta all'istruzione. L'indirizzo del registro stesso non è incluso nella risposta. L'ordine del contenuto del registro all'interno della risposta corrisponde all'ordine degli indirizzi del registro all'interno dell'istruzione.
Condizioni 4.5.1.6.1
Tutti gli indirizzi dei registri all'interno dell'istruzione devono esistere. L'attributo di accesso per ciascun registro deve essere READ-WRITE o READ-ONLY. La dimensione dell'array 'Indirizzo registro' deve essere compresa tra 1 e 18 inclusi.
4.5.1.6.2 Comando
Tabella 29. Valore del comando READ_REGISTER_MULTIPLE Esegue un'operazione di lettura del registro su una serie di registri.

Campo di carico utile Lunghezza Valore/Descrizione
Registra indirizzo[1…n] 1 byte Registra indirizzo

4.5.1.6.3 Risposta
Tabella 30. Valore della risposta READ_REGISTER_MULTIPLE

Campo del carico utile Lunghezza Valore/descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Registro Valore [1…n] 4 byte Valore 4 byte Valore di registro a 32 bit che è stato letto (little-endian).

4.5.1.6.4 Evento
Non ci sono eventi per questo comando.
4.5.2 Manipolazione E2PROM
L'area accessibile in E2PROM corrisponde alla mappa EEPROM e alle dimensioni indirizzabili.
Nota:
1. Ovunque nelle istruzioni seguenti venga menzionato l''Indirizzo E2PROM', si farà riferimento alla dimensione dell'area EEPROM indirizzabile.
4.5.2.1 SCRIVI_E2PROM
Questa istruzione viene utilizzata per scrivere uno o più valori su E2PROM. Il campo 'Valori' contiene i dati da scrivere su E2PROM a partire dall'indirizzo fornito dal campo 'Indirizzo E2PROM'. I dati vengono scritti in ordine sequenziale.
Nota:
Si noti che questo è un comando di blocco, ciò significa che l'NFC FE è bloccato durante l'operazione di scrittura. Questo può richiedere diversi millisecondi.
Condizioni 4.5.2.1.1
Il campo 'Indirizzo E2PROM' deve essere compreso nell'intervallo indicato in [2]. Il numero di byte nel campo "Valori" deve essere compreso tra 1 e 1024 (0x0400), inclusi. L'operazione di scrittura non deve andare oltre l'indirizzo EEPROM come menzionato in [2]. La risposta all'errore verrà inviata all'host se l'indirizzo supera lo spazio degli indirizzi EEPROM come in [2].
4.5.2.1.2 Comando
Tabella 31. Valore comando WRITE_E2PROM Scrive i valori dati in sequenza su E2PROM.

Campo del carico utile Lunghezza Valore/descrizione
Indirizzo E2PROM 2 byte Indirizzo in EEPROM da cui inizierà l'operazione di scrittura. (Little endian)
Valori 1 – 1024 byte Valori che devono essere scritti in E2PROM in ordine sequenziale.

4.5.2.1.3 Risposta
Tabella 32. Valore di risposta WRITE_EEPROM

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR PN5190_STATUS_MEMORY_ERROR

4.5.2.1.4 Evento
Non ci sono eventi per questo comando.
4.5.2.2 LEGGI_E2PROM
Questa istruzione viene utilizzata per rileggere i dati dall'area di memoria E2PROM. Il campo 'Indirizzo E2PROM' indica l'indirizzo iniziale dell'operazione di lettura. La risposta contiene i dati letti da E2PROM.
Condizioni 4.5.2.2.1
Il campo "Indirizzo E2PROM" deve essere compreso in un intervallo valido.
Il campo "Numero di byte" deve essere compreso tra 1 e 256 inclusi.
L'operazione di lettura non deve andare oltre l'ultimo indirizzo EEPROM accessibile.
La risposta all'errore verrà inviata all'host, se l'indirizzo supera lo spazio degli indirizzi EEPROM.
4.5.2.2.2 Comando
Tabella 33. Valore del comando READ_E2PROM Leggere i valori da E2PROM in sequenza.

Campo del carico utile Lunghezza Valore/descrizione
Indirizzo E2PROM 2 byte Indirizzo in E2PROM da cui inizierà l'operazione di lettura. (Little endian)
Numero di byte 2 byte Numero di byte da leggere. (Little endian)

4.5.2.2.3 Risposta
Tabella 34. Valore di risposta READ_E2PROM

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Valori 1 – 1024 byte Valori letti in ordine sequenziale.

4.5.2.2.4 Evento
Non ci sono eventi per questo comando.
4.5.2.3 GET_CRC_USER_AREA
Questa istruzione viene utilizzata per calcolare il CRC per l'intera area di configurazione utente inclusa l'area del protocollo dell'IC PN5190.
4.5.2.3.1 Comando
Tabella 35. Valore del comando GET_CRC_USER_AREA
Leggere il CRC dell'area di configurazione utente inclusa l'area del protocollo.

Campo di carico utile Lunghezza Valore/Descrizione
Nessun dato nel carico utile

4.5.2.3.2 Risposta
Tabella 36. Valore della risposta GET_CRC_USER_AREA

Campo del carico utile Lunghezza Valore/descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Valori 4 byte 4 byte di dati CRC in formato little-endian.

4.5.2.3.3 Evento
Non ci sono eventi per questo comando.
4.5.3 Manipolazione dati CLIF
Le istruzioni descritte in questa sezione descrivono i comandi per la trasmissione e la ricezione RF.
4.5.3.1 SCAMBIO_DATI_RF
La funzione di scambio RF esegue una trasmissione dei dati TX ed è in attesa della ricezione di eventuali dati RX.
La funzione ritorna in caso di ricezione (errata o corretta) o di timeout. Il timer viene avviato con la FINE della TRASMISSIONE e fermato con l'INIZIO della RICEZIONE. Il valore di timeout preconfigurato nella EEPROM deve essere utilizzato nel caso in cui il timeout non sia configurato prima dell'esecuzione del comando Exchange.
Se transceiver_state è

  • in IDLE si entra nella modalità TRANSCEIVE.
  • In WAIT_RECEIVE, lo stato del ricetrasmettitore viene reimpostato su TRANSCEIVE MODE nel caso in cui sia impostato il bit iniziatore
  • In WAIT_TRANSMIT, lo stato del ricetrasmettitore viene reimpostato su TRANSCEIVE MODE nel caso in cui il bit iniziatore NON sia impostato

Il campo 'Numero di bit validi nell'ultimo byte' indica l'esatta lunghezza dei dati da trasmettere.

Condizioni 4.5.3.1.1
La dimensione del campo "Dati TX" deve essere compresa tra 0 e 1024 inclusi.
Il campo "Numero di bit validi nell'ultimo byte" deve essere compreso tra 0 e 7.
Il comando non deve essere chiamato durante una trasmissione RF in corso. Il comando dovrà garantire il corretto stato del ricetrasmettitore per la trasmissione dei dati.
Nota:
Questo comando è valido solo per la modalità Lettore e la modalità Iniziatore Passivo/Attivo P2P”.
4.5.3.1.2 Comando
Tabella 37. Valore del comando EXCHANGE_RF_DATA
Scrive i dati TX nel buffer di trasmissione RF interno e avvia la trasmissione utilizzando il comando di ricetrasmissione e attende fino alla ricezione o al timeout per preparare una risposta all'host.

Campo di carico utile Lunghezza Valore/Descrizione
Numero di bit validi nell'ultimo byte 1 byte 0 Vengono trasmessi tutti i bit dell'ultimo byte
1 – 7 Numero di bit nell'ultimo byte da trasmettere.
RFExchangeConfig 1 byte Configurazione della funzione RFExchange. Dettagli vedi sotto

Tabella 37. Valore del comando EXCHANGE_RF_DATA…continua
Scrive i dati TX nel buffer di trasmissione RF interno e avvia la trasmissione utilizzando il comando di ricetrasmissione e attende fino alla ricezione o al timeout per preparare una risposta all'host.

Campo di carico utile Lunghezza Valore/Descrizione
Dati di trasmissione n byte Dati TX che devono essere inviati tramite CLIF utilizzando il comando transceive. n = 0 – 1024 byte

Tabella 38. Maschera di bit RFexchangeConfig

b7 b6 b5 b4 b3 b2 b1 b0 Descrizione
I bit 4 – 7 sono RFU
X Include dati RX nella risposta in base a RX_STATUS, se il bit è impostato su 1b.
X Include il registro EVENT_STATUS nella risposta, se il bit è impostato su 1b.
X Include il registro RX_STATUS_ERROR nella risposta, se il bit è impostato su 1b.
X Include il registro RX_STATUS in risposta, se il bit è impostato su 1b.

4.5.3.1.3 Risposta
Tabella 39. Valore della risposta EXCHANGE_RF_DATA

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati) PN5190_STATUS_TIMEOUT PN5190_STATUS_RX_TIMEOUT PN5190_STATUS_NO_RF_FIELD PN5190_STATUS_TIMEOUT_WITH_EMD_ERROR
STATO_RX 4 byte Se è richiesto RX_STATUS (little-endian)
RX_STATO_ERRORE 4 byte Se è richiesto RX_STATUS_ERROR (little-endian)
STATO_EVENTO 4 byte Se è richiesto EVENT_STATUS (little-endian)
Dati RX 1 – 1024 byte Se i dati RX sono richiesti. Dati RX ricevuti durante la fase di ricezione RF dello scambio RF.

4.5.3.1.4 Evento
Non ci sono eventi per questo comando.
4.5.3.2 TRANSMIT_RF_DATI
Questa istruzione viene utilizzata per scrivere i dati nel buffer di trasmissione CLIF interno e avviare la trasmissione utilizzando il comando transceive internamente. La dimensione di questo buffer è limitata a 1024 byte. Dopo che questa istruzione è stata eseguita, viene avviata automaticamente una ricezione RF.
Il comando ritorna immediatamente dopo il completamento della trasmissione, senza attendere il completamento della ricezione.
Condizioni 4.5.3.2.1
Il numero di byte nel campo "Dati TX" deve essere compreso tra 1 e 1024 inclusi.
Il comando non deve essere chiamato durante una trasmissione RF in corso.
4.5.3.2.2 Comando
Tabella 40. Valore del comando TRANSMIT_RF_DATA Scrive i dati TX nel buffer di trasmissione CLIF interno.

Campo di carico utile Lunghezza Valore/Descrizione
Numero di bit validi nell'ultimo byte 1 byte 0 Vengono trasmessi tutti i bit dell'ultimo byte. 1 – 7 Numero di bit all'interno dell'ultimo byte da trasmettere.
RFU 1 byte Prenotato
Dati di trasmissione 1 – 1024 byte Dati TX che saranno utilizzati durante la successiva trasmissione RF.

4.5.3.2.3 Risposta
Tabella 41. Valore della risposta TRANSMIT_RF_DATA

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS PN5190_STATUS_INSTR_ERROR PN5190_STATUS_NO_RF_FIELD PN5190_STATUS_NO_EXTERNAL_RF_FIELD

4.5.3.2.4 Evento
Non ci sono eventi per questo comando.
4.5.3.3 RETRIEVE_RF_DATI
Questa istruzione viene utilizzata per leggere i dati dal buffer CLIF RX interno, che contiene i dati di risposta RF (se presenti) inviati ad esso dalla precedente esecuzione della Sezione 4.5.3.1 con l'opzione di non includere i dati ricevuti nella risposta o nel comando della Sezione 4.5.3.2.
4.5.3.3.1 Comando
Tabella 42. Valore del comando RETRIEVE_RF_DATA Legge i dati RX dal buffer di ricezione RF interno.

Campo di carico utile Lunghezza Valore/Descrizione
Vuoto Vuoto Vuoto

4.5.3.3.2 Risposta
Tabella 43. Valore della risposta RETRIEVE_RF_DATA

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
Campo di carico utile Lunghezza Valore/Descrizione
PN5190_STATUS_INSTR_SUCCESS
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Dati RX 1 – 1024 byte Dati RX che sono stati ricevuti durante l'ultima ricezione RF riuscita.

4.5.3.3.3 Evento
Non ci sono eventi per questo comando.
4.5.3.4 RICEZIONE_DATI_RF
Questa istruzione attende i dati ricevuti tramite l'interfaccia RF del lettore.
In modalità lettore, questa istruzione ritorna se c'è una ricezione (errata o corretta) o si è verificato un timeout FWT. Il timer viene avviato con la FINE della TRASMISSIONE e fermato con l'INIZIO della RICEZIONE. Il valore di timeout predefinito preconfigurato in EEPROM deve essere utilizzato nel caso in cui il timeout non sia configurato prima dell'esecuzione del comando Exchange.
In modalità target, questa istruzione ritorna in caso di ricezione (errata o corretta) o errore RF esterno.
Nota:
Questa istruzione deve essere utilizzata con il comando TRANSMIT_RF_DATA per eseguire operazioni TX e RX...
4.5.3.4.1 Comando
Tabella 44. Valore del comando RECEIVE_RF_DATA

Campo di carico utile Lunghezza Valore/Descrizione
RiceviRFConfig 1 byte Configurazione della funzione ReceiveRFConfig. Vedere Tabella 45

Tabella 45. Maschera di bit ReceiveRFConfig

b7 b6 b5 b4 b3 b2 b1 b0 Descrizione
I bit 4 – 7 sono RFU
X Include dati RX nella risposta in base a RX_STATUS, se il bit è impostato su 1b.
X Include il registro EVENT_STATUS nella risposta, se il bit è impostato su 1b.
X Include il registro RX_STATUS_ERROR nella risposta, se il bit è impostato su 1b.
X Include il registro RX_STATUS in risposta, se il bit è impostato su 1b.

4.5.3.4.2 Risposta
Tabella 46. Valore della risposta RECEIVE_RF_DATA

Campo del carico utile Lunghezza Valore/descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
PN5190_STATUS_TIMEOUT
Campo del carico utile Lunghezza Valore/descrizione
PN5190_STATUS_NO_RF_FIELD
PN5190_STATUS_NO_EXTERNAL_RF_FIELD
STATO_RX 4 byte Se è richiesto RX_STATUS (little-endian)
RX_STATO_ERRORE 4 byte Se è richiesto RX_STATUS_ERROR (little-endian)
STATO_EVENTO 4 byte Se è richiesto EVENT_STATUS (little-endian)
Dati RX 1 – 1024 byte Se i dati RX sono richiesti. Dati RX ricevuti su RF.

4.5.3.4.3 Evento
Non ci sono eventi per questo comando.
4.5.3.5 RETRIEVE_RF_FELICA_EMD_DATA (Configurazione FeliCa EMD)
Questa istruzione viene utilizzata per leggere i dati dal buffer CLIF RX interno, che contiene i dati di risposta EMD FeliCa (se presenti) inviati dalla precedente esecuzione del comando EXCHANGE_RF_DATA che restituisce lo stato 'PN5190_STATUS_TIMEOUT_WITH_EMD_ERROR'.
Nota: Questo comando è disponibile da PN5190 FW v02.03 in poi.
4.5.3.5.1 Comando
Legge i dati RX dal buffer di ricezione RF interno.
Tabella 47. Valore del comando RETRIEVE_RF_FELICA_EMD_DATA

Campo di carico utile Lunghezza Valore/Descrizione
FeliCaRFRetrieveConfig 1 byte 00 – FF Configurazione della funzione RETRIEVE_RF_FELICA_EMD_DATA
descrizione della configurazione (maschera di bit). bit 7..2: RFU
bit 1: include il registro RX_STATUS_ ERROR nella risposta, se il bit è impostato su 1b.
bit 0: include il registro RX_STATUS nella risposta, se il bit è impostato su 1b.

4.5.3.5.2 Risposta
Tabella 48. Valore della risposta RETRIEVE_RF_FELICA_EMD_DATA

Campo del carico utile Lunghezza Valore/descrizione
Stato 1 byte Stato dell'operazione. I valori previsti sono i seguenti: PN5190_STATUS_INSTR_SUCCESS PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
STATO_RX 4 byte Se è richiesto RX_STATUS (little-endian)
RX_STATUS_ ERRORE 4 byte Se è richiesto RX_STATUS_ERROR (little-endian)
Campo del carico utile Lunghezza Valore/descrizione
Dati RX 1…1024 byte FeliCa EMD RX dati che sono stati ricevuti durante l'ultima ricezione RF fallita utilizzando Exchange Command.

4.5.3.5.3 Evento
Non ci sono eventi per questo comando.
4.5.4 Cambio della modalità operativa
PN5190 supporta 4 diverse modalità operative:
4.5.4.1 Normal
Questa è la modalità predefinita, in cui sono consentite tutte le istruzioni.
4.5.4.2 In attesa
PN5190 è in stato standby/sospensione per risparmiare energia. È necessario impostare le condizioni di riattivazione per definire quando lasciare nuovamente lo standby.
4.5.4.3 LPCD
PN5190 è in modalità di rilevamento della scheda a basso consumo, dove tenta di rilevare una scheda che entra nel volume operativo, con il minor consumo energetico possibile.
4.5.4.4 Collez.autom
PN5190 funge da ascoltatore RF, eseguendo l'attivazione della modalità target in modo autonomo (per garantire vincoli in tempo reale)
4.5.4.5 SWITCH_MODE_NORMAL
Il comando Cambia modalità normale ha tre casi d'uso.
4.5.4.5.1 UseCase1: accesso alla modalità operativa normale all'accensione (POR)
Utilizzare per ripristinare lo stato Inattivo per ricevere/elaborare il comando successivo accedendo alla modalità operativa normale.
4.5.4.5.2 UseCase2: terminare il comando già in esecuzione per passare alla modalità operativa normale (comando di interruzione)
Utilizzare per ripristinare lo stato Inattivo per ricevere/elaborare il comando successivo terminando i comandi già in esecuzione.
È possibile terminare comandi come standby, LPCD, Exchange, PRBS e Autocoll utilizzando questo comando.
Questo è l'unico comando speciale, che non ha una risposta. Invece, ha una notifica EVENTO.
Fare riferimento alla Sezione 4.4.3 per ulteriori informazioni sul tipo di eventi che si verificano durante l'esecuzione dei diversi comandi sottostanti.
4.5.4.5.2.1 Caso d'uso2.1:
Questo comando reimposterà tutti i registri CLIF TX, RX e Field Control allo stato Boot. L'emissione di questo comando disattiverà qualsiasi campo RF esistente.
4.5.4.5.2.2 Caso d'uso2.2:
Disponibile da PN5190 FW v02.03 in poi:
Questo comando non modificherà i registri CLIF TX, RX e Field Control ma sposterà solo il ricetrasmettitore nello stato IDLE.
4.5.4.5.3 UseCase3: Modalità di funzionamento normale dopo soft-reset/uscita dallo standby, LPCD In questo caso, il PN5190 entra direttamente nella modalità di funzionamento normale, inviando IDLE_EVENT all'host (Figura 12 o Figura 13) e " IDLE_EVENT” è impostato nella Tabella 11.
Non è necessario inviare il comando SWITCH_MODE_NORMAL.
Nota:
Dopo che l'IC è passato alla modalità normale, tutte le impostazioni di RF vengono modificate allo stato predefinito. È fondamentale che la rispettiva configurazione RF e altri registri correlati siano caricati con valori appropriati prima di eseguire un'operazione RF ON o RF Exchange.
4.5.4.5.4 Frame di comando da inviare per diversi casi d'uso
4.5.4.5.4.1 UseCase1: il comando entra in modalità di funzionamento normale all'accensione (POR) 0x20 0x01 0x00
4.5.4.5.4.2 UseCase2: comando per terminare i comandi già in esecuzione per passare alla modalità operativa normale
Caso d'uso 2.1:
0x20 0x00 0x00
Caso d'uso 2.2: (dal FW v02.02 in poi):
0x20 0x02 0x00
4.5.4.5.4.3 UseCase3: comando per la modalità di funzionamento normale dopo soft-reset/uscita dallo standby, LPCD, ULPCD
Nessuno. PN5190 entra direttamente nella modalità operativa normale.
4.5.4.5.5 Risposta
Nessuno
4.5.4.5.6 Evento
Viene impostato un BOOT_EVENT (nel registro EVENT_STATUS) che indica che è stata attivata la modalità normale e viene inviato all'host. Fare riferimento alla Figura 12 e alla Figura 13 per i dati dell'evento.

Controller front-end NFC NXP PN5190 - Funzionamento normale

Viene impostato un IDLE_EVENT (nel registro EVENT_STATUS) che indica l'accesso alla modalità normale e viene inviato all'host. Fare riferimento alla Figura 12 e alla Figura 13 per i dati dell'evento.Controller frontend NFC NXP PN5190: già terminato

Viene impostato un BOOT_EVENT (nel registro EVENT_STATUS) che indica l'accesso alla modalità normale e viene inviato all'host. Fare riferimento alla Figura 12 e alla Figura 13 per i dati dell'evento.

Controller frontend NFC NXP PN5190 - Modalità operativa su Warm

4.5.4.6 SWITCH_MODE_AUTOCOLL
Lo Switch Mode Autocoll esegue automaticamente la procedura di attivazione della carta in modalità target.
Il campo "Modalità Autocoll" deve essere compreso tra 0 e 2 inclusi.
Nel caso in cui il campo 'Autocoll Mode' sia impostato su 2 (Autocoll): il campo 'RF Technologies' (Tabella 50) deve contenere una maschera di bit che indica le tecnologie RF da supportare durante l'Autocoll.
Non è necessario inviare istruzioni mentre si è in questa modalità.
La terminazione viene indicata utilizzando un'interruzione.
4.5.4.6.1 Comando
Tabella 49. Valore del comando SWITCH_MODE_AUTOCOLL

Parametro Lunghezza Valore/Descrizione
Tecnologie RF 1 byte Bitmask che indica la tecnologia RF da ascoltare durante l'Autocoll.
Modalità di raccolta automatica 1 byte 0 Nessuna modalità autonoma, ovvero l'Autocoll termina quando il campo RF esterno non è presente.
Risoluzione in caso di
• NESSUN CAMPO RF o CAMPO RF è scomparso
• PN5190 è ATTIVATO in modalità TARGET
1 Modalità autonoma con standby. Quando non è presente alcun campo RF, Autocoll entra automaticamente in modalità Standby. Una volta rilevato il campo RF esterno, il PN5190 entra nuovamente in modalità Autocoll.
Risoluzione in caso di
• PN5190 è ATTIVATO in modalità TARGET
Da PN5190 FW versione 02.03 in poi: Se il campo EEPROM “bCard ModeUltraLowPowerEnabled” all'indirizzo '0xCDF' è impostato su '1', il PN5190 entra in standby a bassissimo consumo.
2 Modalità autonoma senza standby. Quando non è presente alcun campo RF, PN5190 attende finché non è presente il campo RF prima di avviare l'algoritmo Autocoll. In questo caso lo standby non viene utilizzato.
Risoluzione in caso di
• PN5190 è ATTIVATO in modalità TARGET

Tabella 50. Maschera di bit delle tecnologie RF

b7 b6 b5 b4 b3 b2 b1 b0 Descrizione
0 0 0 0 RFU
X Se impostato su 1b, l'ascolto di NFC-F attivo è abilitato. (Non disponibile).
X Se impostato su 1b, l'ascolto di NFC-A attivo è abilitato. (Non disponibile).
X Se impostato su 1b, l'ascolto di NFC-F è abilitato.
X Se impostato su 1b, l'ascolto di NFC-A è abilitato.

4.5.4.6.2 Risposta
La risposta segnala solo che il comando è stato elaborato.
Tabella 51. Valore della risposta SWITCH_MODE_AUTOCOLL

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS
PN5190_STATUS_INSTR_ERROR (La modalità di commutazione non è stata inserita a causa di impostazioni errate)

4.5.4.6.3 Evento
La notifica dell'evento viene inviata quando il comando è terminato e si entra nella modalità normale. L'host leggerà i byte di risposta in base al valore dell'evento.
Nota:
Quando lo stato non è “PN5190_STATUS_INSTR_SUCCESS”, non sono presenti ulteriori byte di dati “Protocollo” e “Card_Activated”.
Le informazioni sulla tecnologia vengono recuperate dai registri utilizzando i comandi Sezione 4.5.1.5, Sezione 4.5.1.6.
La tabella seguente mostra i dati dell'evento inviati come parte del messaggio di evento. Figura 12 e Figura 13.
Tabella 52. Dati EVENT_SWITCH_MODE_AUTOCOLL – AUTOCOLL_EVENT Cambia modalità operativa Evento Autocoll

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione
PN5190_STATUS_INSTR_SUCCESS PN5190 è ATTIVATO in modalità TARGET.
Ulteriori dati in questo caso sono validi.
PN5190_STATUS_PREVENT_STANDBY Indica che PN5190 non può entrare in modalità Standby. Questo stato è valido solo quando la modalità Autocoll è selezionata come “Modalità autonoma con standby”.
PN5190_STATUS_NO_EXTERNAL_RF_ CAMPO Indica che nessun campo RF esterno è presente durante l'esecuzione di Autocoll in modalità Non Autonoma
PN5190_STATUS_USER_CANCELLED Indica che il comando attuale in corso viene interrotto dal comando normale di commutazione modalità
Protocollo 1 byte 0x10 Attivato come tipo passivo A
0x11 Attivato come tipo passivo F 212
0x12 Attivato come tipo passivo F 424
0x20 Attivato come Tipo Attivo A
0x21 Attivato come Active TypeF 212
0x22 Attivato come Active TypeF 424
Altri valori Non valido
Carta_Attivata 1 byte 0x00 Nessun processo di attivazione della carta secondo ISO 14443-3
0x01 Indica che il dispositivo è attivato in modalità Passiva

Nota:
Dopo aver letto i dati dell'evento, i dati ricevuti dalla carta/dispositivo che è stato attivato (come 'n' byte di ATR_REQ/RATS secondo ISO18092/ISO1443-4), devono essere letti utilizzando il comando della Sezione 4.5.3.3.
4.5.4.6.4 Comunicazione esample

Controller frontend NFC NXP PN5190 - Comunicazione esample

4.5.4.7 COMMUTAZIONE_MODALITÀ_STANDBY
Switch Mode Standby imposta automaticamente l'IC in modalità Standby. L'IC si riattiverà dopo che le sorgenti di riattivazione configurate soddisfano le condizioni di riattivazione.
Nota:
La scadenza del contatore per ULP STANDBY e l'interruzione HIF per STANDBY sono disponibili per impostazione predefinita per uscire dalle modalità standby.

4.5.4.7.1 Comando
Tabella 53. Valore del comando SWITCH_MODE_STANDBY

Parametro Lunghezza Valore/Descrizione
Configurazione 1 byte Maschera di bit che controlla la sorgente di riattivazione da utilizzare e la modalità Standby a cui accedere. Fare riferimento a Tabella 54
Controvalore 2 byte Valore utilizzato per il contatore delle sveglie in millisecondi. Il valore massimo supportato è 2690 per lo standby. Il valore massimo supportato è 4095 per lo standby ULP. Il valore da fornire è in formato little-endian.
Il contenuto di questo parametro è valido solo se la “Config Bitmask” è abilitata per la riattivazione allo scadere del contatore.

Tabella 54. Bitmask di configurazione

b7 b6 b5 b4 b3 b2 b1 b0 Descrizione
X Entra in standby ULP se il bit è impostato su 1b Entra in standby se il bit è impostato su 0b.
0 RFU
X Riattivazione su GPIO-3 quando è alto, se il bit è impostato su 1b. (Non applicabile per lo standby ULP)
X Riattivazione su GPIO-2 quando è alto, se il bit è impostato su 1b. (Non applicabile per lo standby ULP)
X Riattivazione su GPIO-1 quando è alto, se il bit è impostato su 1b. (Non applicabile per lo standby ULP)
X Riattivazione su GPIO-0 quando è alto, se il bit è impostato su 1b. (Non applicabile per lo standby ULP)
X Il contatore di risveglio scade se il bit è impostato su 1b. Per ULP-Standby, questa opzione è abilitata per impostazione predefinita.
X Riattivazione sul campo RF esterno, se il bit è impostato su 1b.

Nota: Da PN5190 FW v02.03, se il campo EEPROM “CardModeUltraLowPowerEnabled” all'indirizzo '0xCDF' è impostato su '1', la configurazione di standby ULP non può essere utilizzata con il comando SWITCH_MODE_STANDBY.
4.5.4.7.2 Risposta
La risposta segnala solo che il comando è stato elaborato e lo stato di standby verrà inserito solo dopo che la risposta è stata completamente letta dall'host.
Tabella 55. Valore di risposta SWITCH_MODE_STANDBY Cambia la modalità operativa standby

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS
PN5190_STATUS_INSTR_ERROR (La modalità Switch non è stata inserita – a causa di impostazioni errate)

4.5.4.7.3 Evento
La notifica dell'evento viene inviata al termine del comando e si accede alla modalità normale. Fare riferimento al formato dell'evento che verrà inviato dopo il completamento del comando come in Figura 12 e Figura 13.
Nel caso in cui al PN5190 venga impedito di entrare in modalità Standby, il bit dell'evento “STANDBY_PREV_EVENT” impostato in EVENT_STATUS come menzionato nella Tabella 11 viene inviato all'host insieme al motivo della prevenzione dello standby come menzionato nella Tabella 13.
4.5.4.7.4 Comunicazione Esample

Controller frontend NFC NXP PN5190 - Comunicazione Esample1

4.5.4.8 COMMUTAZIONE_MODALITÀ_LPCD
Switch Mode LPCD esegue un rilevamento di disaccordo sull'antenna a causa del cambiamento dell'ambiente attorno all'antenna.
Ci sono 2 diverse modalità di LPCD. La soluzione basata su HW (ULPCD) offre un consumo energetico competitivo con una sensibilità ridotta. La soluzione basata su FW (LPCD) offre la migliore sensibilità della categoria con un maggiore consumo energetico.
Nella modalità singola basata su FW (LPCD), non viene inviato alcun evento di calibrazione all'host.
Quando viene richiamata la modalità singola, la calibrazione e le misurazioni successive vengono tutte eseguite dopo essere usciti dallo standby.
Per l'evento di calibrazione in modalità singola, emettere prima la modalità singola con il comando dell'evento di calibrazione. Dopo la calibrazione, viene ricevuto un evento di calibrazione LPCD dopo il quale deve essere inviato il comando di modalità singola con il valore di riferimento ottenuto dal passaggio precedente come parametro di ingresso.
La configurazione dell'LPCD viene eseguita nelle impostazioni EEPROM/Flash Data prima che venga richiamato il comando.
Nota:
L'interruzione GPIO3 per ULPCD e l'interruzione HIF per LPCD sono disponibili per impostazione predefinita per uscire dalle modalità a basso consumo.
La riattivazione per scadenza contatore è sempre abilitata.
Per ULPCD, la configurazione DC-DC deve essere disabilitata nelle impostazioni EEPROM/Flash Data e deve fornire alimentazione VUP tramite VBAT. È necessario effettuare le impostazioni necessarie dei ponticelli. Per le impostazioni dei dati EEPROM/Flash, fare riferimento al documento [2].
Se il comando riguarda la calibrazione LPCD/ULPCD, l'host deve comunque inviare il frame completo.

4.5.4.8.1 Comando
Tabella 56. Valore del comando SWITCH_MODE_LPCD

Parametro Lunghezza Valore/descrizione
bControllo 1 byte 0x00 Immettere la calibrazione UPCD. Il comando si arresta dopo la calibrazione e viene inviato all'host un evento con valore di riferimento.
0x01 Inserisci l'ULPCD
0x02 Calibrazione LPCD. Il comando si arresta dopo la calibrazione e viene inviato all'host un evento con valore di riferimento.
0x03 Inserisci LPCD
0x04 Modalità singola
0x0C Modalità singola con evento di calibrazione
Altri valori RFU
Controllo della sveglia 1 byte Maschera di bit che controlla la sorgente di riattivazione da utilizzare per LPCD/ULPCD. Il contenuto di questo campo non è considerato per la calibrazione. Fare riferimento a Tabella 57
Valore di riferimento 4 byte Valore di riferimento da utilizzare durante ULPCD/LPCD.
Per ULPCD, il byte 2 che contiene il valore dell'attenuatore HF viene utilizzato sia durante la fase di calibrazione che di misurazione.
Per LPCD, il contenuto di questo campo non è considerato per la calibrazione e la modalità singola. Fare riferimento a Tabella 58 per le informazioni corrette su tutti e 4 i byte.
Controvalore 2 byte Valore del contatore delle sveglie in millisecondi. Il valore massimo supportato è 2690 per LPCD. Il valore massimo supportato è 4095 per ULPCD. Il valore da fornire è in formato little-endian.
Il contenuto di questo campo non è considerato per la calibrazione LPCD.
Per la modalità singola e la modalità singola con evento di calibrazione, la durata dello standby prima della calibrazione può essere configurata dalla configurazione EEPROM: LPCD_SETTINGS->wCheck Period.
Per la modalità singola con calibrazione, il valore WUC deve essere diverso da zero.

Tabella 57. Bitmask di controllo riattivazione

b7 b6 b5 b4 b3 b2 b1 b0 Descrizione
0 0 0 0 0 0 0 RFU
X Riattivazione sul campo RF esterno, se il bit è impostato su 1b.

Tabella 58. Informazioni byte valore di riferimento

Byte del valore di riferimento ULPCD LPCD
byte 0 Byte di riferimento 0 Canale 0 Byte di riferimento 0
byte 1 Byte di riferimento 1 Canale 0 Byte di riferimento 1
byte 2 Valore dell'attenuatore HF Canale 1 Byte di riferimento 0
byte 3 NA Canale 1 Byte di riferimento 1

4.5.4.8.2 Risposta
Tabella 59. Valore di risposta SWITCH_MODE_LPCD

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS
PN5190_STATUS_INSTR_ERROR (La modalità Switch non è stata inserita – a causa di impostazioni errate)

4.5.4.8.3 Evento
La notifica dell'evento viene inviata quando il comando è terminato e la modalità normale viene inserita con i seguenti dati come parte dell'evento menzionato in Figura 12 e Figura 13.
Tabella 60. EVT_SWITCH_MODE_LPCD

Campo del carico utile Lunghezza Valore/Descrizione
Stato LPCD Fare riferimento alla tabella 15 Fare riferimento alla Tabella 154.5.4.8.4 Comunicazione Esample

Controller frontend NFC NXP PN5190 - Esample

4.5.4.9 COMMUTA_MODALITÀ_DOWNLOAD
Il comando Switch Mode Download consente di accedere alla modalità di download del firmware.
L'unico modo per uscire dalla modalità download è eseguire un ripristino su PN5190.
4.5.4.9.1 Comando
Tabella 61. Valore del comando SWITCH_MODE_DOWNLOAD

Parametro Lunghezza Valore/Descrizione
Senza valore

4.5.4.9.2 Risposta
La risposta segnala solo che il comando è stato elaborato e la modalità Download deve essere inserita dopo che la risposta è stata letta dall'host.
Tabella 62. Valore della risposta SWITCH_MODE_DOWNLOAD
Cambia la modalità operativa Autocoll

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (La modalità cambio non è stata inserita)

4.5.4.9.3 Evento
Nessuna generazione di eventi.
4.5.4.9.4 Comunicazione Esample
4.5.5 Autenticazione classica MIFARE
4.5.5.1 MFC_AUTENTICATA
Questa istruzione viene utilizzata per eseguire un'autenticazione classica MIFARE su una carta attivata. Richiede la chiave, l'UID della carta e il tipo di chiave per l'autenticazione a un dato indirizzo di blocco. La risposta contiene un byte che indica lo stato di autenticazione.
Condizioni 4.5.5.1.1
La chiave del campo deve essere lunga 6 byte. Il tipo di chiave del campo deve contenere il valore 0x60 o 0x61. L'indirizzo del blocco può contenere qualsiasi indirizzo compreso tra 0x0 e 0xff inclusi. Il campo UID deve essere lungo byte e deve contenere l'UID da 4 byte della carta. Una scheda basata sul prodotto ISO14443-3 MIFARE Classic deve essere impostata sullo stato ATTIVO o ATTIVO* prima dell'esecuzione di queste istruzioni.
In caso di errore di runtime relativo all'autenticazione, questo campo "Stato di autenticazione" viene impostato di conseguenza.
4.5.5.1.2 Comando
Tabella 63. Comando MFC_AUTHENTICATE
Eseguire l'autenticazione su una carta basata sul prodotto MIFARE Classic attivata.

Campo di carico utile Lunghezza Valore/Descrizione
Chiave 6 byte Chiave di autenticazione da utilizzare.
Tipo di chiave 1 byte 0x60 Chiave tipo A
0x61 Chiave di tipo B
Indirizzo di blocco 1 byte L'indirizzo del blocco per il quale deve essere eseguita l'autenticazione.
Identificativo utente 4 byte UID della carta.

4.5.5.1.3 Risposta
Tabella 64. Risposta MFC_AUTHENTICATE
Risposta a MFC_AUTHENTICATE.

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_INSTR_SUCCESS PN5190_STATUS_INSTR_ERROR PN5190_STATUS_TIMEOUT PN5190_STATUS_AUTH_ERROR

4.5.5.1.4 Evento
Non esiste alcun evento per questa istruzione.
4.5.6 Supporto ISO 18000-3M3 (EPC GEN2).
4.5.6.1 EPC_GEN2_INVENTARIO
Questa istruzione viene utilizzata per eseguire un inventario di ISO18000-3M3 tags. Implementa un'esecuzione autonoma di più comandi secondo ISO18000-3M3 al fine di garantire le tempistiche specificate da tale norma.
Se presente nel payload dell'istruzione, viene eseguito prima un comando Select seguito da un comando BeginRound.
Se c'è una risposta valida nel primo intervallo di tempo (nessun timeout, nessuna collisione), l'istruzione invia un ACK e salva il PC/XPC/UII ricevuto. L'istruzione esegue quindi un'azione in base al campo "Timeslot Processed Behavior":

  • Se questo campo è impostato su 0, viene emesso un comando NextSlot per gestire la finestra temporale successiva. Ciò viene ripetuto finché il buffer interno non è pieno
  • Se questo campo è impostato su 1, l'algoritmo viene messo in pausa
  • Se questo campo è impostato su 2, viene emesso un comando Req_Rn se, e solo se, c'è stato un comando valido tag risposta in questo timeslotCommand

Il campo "Seleziona comando lunghezza" deve contenere la lunghezza del campo "Seleziona comando", che deve essere compreso tra 1 e 39 inclusi. Se 'Seleziona lunghezza comando' è 0, i campi 'Bit validi nell'ultimo byte' e 'Seleziona comando' non devono essere presenti.
Il campo Bits in last Byte dovrebbe contenere il numero di bit da trasmettere nell'ultimo byte del campo 'Seleziona comando'. Il valore deve essere compreso tra 1 e 7 inclusi. Se il valore è 0, vengono trasmessi tutti i bit dell'ultimo byte del campo 'Seleziona comando'.
Il campo "Seleziona comando" deve contenere un comando di selezione secondo ISO18000-3M3 senza CRC-16c finale e deve avere la stessa lunghezza indicata nel campo "Seleziona comando lunghezza".
Il campo "Comando BeginRound" deve contenere un comando BeginRound secondo ISO18000-3M3 senza CRC-5 finale. Gli ultimi 7 bit dell'ultimo byte di 'BeginRound Command' vengono ignorati poiché il comando ha una lunghezza effettiva di 17 bit.
Il "Comportamento elaborato nella fascia oraria" deve contenere un valore compreso tra 0 e 2 inclusi.
Tabella 65. Valore comando EPC_GEN2_INVENTORY Esegui un inventario ISO 18000-3M3

Campo del carico utile Lunghezza Valore/descrizione
RiprendiInventario 1 byte 00 Iniziale GEN2_INVENTORY
01 Riprendi il comando GEN2_INVENTORY – il rimanente

i campi sottostanti sono vuoti (l'eventuale payload viene ignorato)

Seleziona Lunghezza comando 1 byte 0 Nessun comando Select è impostato prima del comando BeginRound. Il campo "Bit validi nell'ultimo byte" e il campo "Seleziona comando" non devono essere presenti.
1 – 39 Lunghezza (n) del campo 'Seleziona comando'.
Bit validi nell'ultimo byte 1 byte 0 Vengono trasmessi tutti i bit dell'ultimo byte del campo 'Seleziona comando'.
1 – 7 Numero di bit da trasmettere nell'ultimo byte del campo 'Seleziona comando'.
Seleziona Comando n byte Se presente, questo campo contiene il comando Select (secondo ISO18000-3, Tabella 47) che viene inviato prima del comando BeginRound. CRC-16c non deve essere incluso.
Comando IniziaRound 3 byte Questo campo contiene il comando BeginRound (secondo ISO18000-3, Tabella 49). CRC-5 non deve essere incluso.
Comportamento elaborato nella fascia oraria 1 byte 0 La risposta contiene max. Numero di intervalli di tempo che possono rientrare nel buffer di risposta.
1 La risposta contiene solo una fascia oraria.
2 La risposta contiene un solo intervallo di tempo. Se la fascia oraria contiene una risposta della carta valida, viene incluso anche l'handle della carta.

4.5.6.1.1 Risposta
La lunghezza della risposta potrebbe essere "1" in caso di ripresa dell'inventario.
Tabella 66. Valore della risposta EPC_GEN2_INVENTORY

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS (Leggi lo stato della fascia oraria nel byte successivo per Tag risposta)
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Fascia oraria [1…n] 3 – 69 byte Stato della fascia oraria 1 byte 0 Tag risposta disponibile. 'Tag Lunghezza della risposta", campo "Bit validi nell'ultimo byte" e "Tag campo di risposta' presente.
1 Tag risposta disponibile.
2 NO tag risposto entro la fascia oraria. 'Tag I campi "Lunghezza risposta" e "Bit validi nell'ultimo byte" devono essere impostati su zero. 'Tag il campo risposta' non deve essere presente.
3 Due o più tags risposto nella fascia oraria. (Collisione). 'Tag I campi "Lunghezza risposta" e "Bit validi nell'ultimo byte" devono essere impostati su zero. 'Tag il campo "risposta" non deve essere presente.
Tag Lunghezza della risposta 1 byte 0-66 Lunghezza di'Tag Rispondi' campo (i). Se Tag La lunghezza della risposta è 0, quindi il Tag Il campo di risposta non è presente.
Bit validi nell'ultimo byte 1 byte 0 Tutti i bit dell'ultimo byte di 'Tag risposta' sono validi.
1-7 Numero di bit validi dell'ultimo byte di 'Tag campo "risposta". Se Tag La lunghezza della risposta è zero, il valore di questo byte deve essere ignorato.
Tag Rispondere 'n' byte Risposta del tag secondo ISO18000-3_2010, Tabella 56.
Tag Maniglia 0 o 2 byte Maniglia del tag, nel caso in cui il campo "Stato fascia oraria" sia impostato su "1". Altrimenti campo non presente.

4.5.6.1.2 Evento
Non ci sono eventi per questo comando.
4.5.7 Gestione configurazione RF
Fare riferimento alla Sezione 6, per la configurazione TX e RX per diverse tecnologie RF e velocità dati supportate da PN5190. I valori non sono presenti nel range sotto indicato, sono da considerarsi come RFU.
4.5.7.1 CARICA_RF_CONFIGURAZIONE
Questa istruzione viene utilizzata per caricare la configurazione RF dalla EEPROM nei registri CLIF interni. La configurazione RF si riferisce a una combinazione univoca di tecnologia RF, modalità (target/iniziatore) e baud rate. La configurazione RF può essere caricata separatamente per il percorso del ricevitore CLIF (configurazione RX) e del trasmettitore (configurazione TX). Il valore 0xFF deve essere utilizzato se la configurazione corrispondente per un percorso non deve essere modificata.
Condizioni 4.5.7.1.1
Il campo "Configurazione TX" deve essere compreso nell'intervallo 0x00 – 0x2B incluso. Se il valore è 0xFF, la configurazione TX non viene modificata.
Il campo "Configurazione RX" deve essere compreso nell'intervallo 0x80 – 0xAB incluso. Se il valore è 0xFF, la configurazione RX non viene modificata.
Una configurazione speciale con TX Configuration = 0xFF e RX Configuration = 0xAC viene utilizzata per caricare i registri di avvio una volta.
Questa configurazione speciale è necessaria per aggiornare le configurazioni del registro (sia TX che RX) che sono diverse dai valori di ripristino dell'IC.

4.5.7.1.2 Comando
Tabella 67. Valore del comando LOAD_RF_CONFIGURATION
Carica le impostazioni RF TX e RX da E2PROM.

Campo di carico utile Lunghezza Valore/Descrizione
Configurazione trasmissione 1 byte 0xFF Configurazione TX RF non modificata.
0x0 – 0x2B Configurazione TX RF corrispondente caricata.
Configurazione RX 1 byte 0xFF Configurazione RX RF non modificata.
0x80 – 0xAB Configurazione RX RF corrispondente caricata.

4.5.7.1.3 Risposta
Tabella 68. Valore della risposta LOAD_RF_CONFIGURATION

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR

4.5.7.1.4 Evento
Non ci sono eventi per questo comando.
4.5.7.2 AGGIORNAMENTO_RF_CONFIGURAZIONE
Questa istruzione viene utilizzata per aggiornare la configurazione RF (vedere la definizione nella Sezione 4.5.7.1) all'interno di E2PROM. L'istruzione consente l'aggiornamento al valore di granularità del registro, cioè non è necessario aggiornare l'insieme completo (sebbene sia possibile farlo).
Condizioni 4.5.7.2.1
La dimensione della configurazione dell'array di campi deve essere compresa tra 1 e 15 inclusi. La configurazione dell'array di campo deve contenere una serie di configurazione RF, indirizzo di registro e valore. La configurazione RF del campo deve essere compresa nell'intervallo 0x0 – 0x2B per la configurazione TX e 0x80 – 0xAB per la configurazione RX, inclusa. L'indirizzo nel campo Indirizzo registro deve esistere nella rispettiva configurazione RF. Il campo Valore deve contenere un valore che deve essere scritto nel registro indicato e deve essere lungo 4 byte (formato little-endian).
4.5.7.2.2 Comando
Tabella 69. Valore del comando UPDATE_RF_CONFIGURATION
Aggiorna la configurazione RF

Campo di carico utile Lunghezza Valore/Descrizione
Configurazione[1…n] 6 byte Configurazione RF 1 byte Configurazione RF per la quale occorre modificare il registro.
Registra indirizzo 1 byte Indirizzo registro all'interno della tecnologia RF specificata.
Valore 4 byte Valore che deve essere scritto nel registro. (Little endian)

4.5.7.2.3 Risposta
Tabella 70. Valore della risposta UPDATE_RF_CONFIGURATION

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR PN5190_STATUS_MEMORY_ERROR

4.5.7.2.4 Evento
Non ci sono eventi per questo comando.
4.5.7.3 GET_RF_CONFIGURAZIONE
Questa istruzione viene utilizzata per leggere una configurazione RF. Le coppie indirizzo-valore del registro sono disponibili nella risposta. Per sapere quante coppie sono previste, è possibile recuperare le informazioni sulla prima dimensione dal primo TLV, che indica la lunghezza totale del carico utile.
Condizioni 4.5.7.3.1
La configurazione RF del campo deve essere compresa nell'intervallo compreso tra 0x0 – 0x2B per la configurazione TX e 0x80 –0xAB per la configurazione RX, inclusa.
4.5.7.3.2 Comando
Tabella 71. Valore comando GET_ RF_CONFIGURATION Recupera la configurazione RF.

Campo di carico utile Lunghezza Valore/Descrizione
Configurazione RF 1 byte Configurazione RF per la quale deve essere recuperato il set di coppie di valori del registro.

4.5.7.3.3 Risposta
Tabella 72. GET_ RF_CONFIGURATION Valore di risposta

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
Coppia[1…n] 5 byte Registra indirizzo 1 byte Indirizzo registro all'interno della tecnologia RF specificata.
Valore 4 byte Valore di registro a 32 bit.

4.5.7.3.4 Evento
Non esiste un evento per l'istruzione.
4.5.8 Gestione del campo RF
4.5.8.1 RF_ON
Questa istruzione viene utilizzata per abilitare l'RF. Il regolamento DPC al FieldOn iniziale deve essere gestito in questo comando.
4.5.8.1.1 Comando
Tabella 73. Valore del comando RF_FIELD_ON
Configura RF_FIELD_ON.

Campo di carico utile Lunghezza Valore/Descrizione
RF_on_config 1 byte Parte 0 0 Utilizzare la prevenzione delle collisioni
1 Disabilita l'evitamento delle collisioni
Parte 1 0 Nessun P2P attivo
1 P2P attivo

4.5.8.1.2 Risposta
Tabella 74. Valore di risposta RF_FIELD_ON

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR
PN5190_STATUS_RF_COLLISION_ERROR (Il campo RF non è attivato a causa di una collisione RF)
PN5190_STATUS_TIMEOUT (il campo RF non è attivato a causa del timeout) PN5190_STATUS_TXLDO_ERROR (l'errore TXLDO dovuto a VUP non è disponibile)
PN5190_STATUS_RFCFG_NOT_APPLIED (la configurazione RF non viene applicata prima di questo comando)

4.5.8.1.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.8.2 RF_OFF
Questa istruzione viene utilizzata per disabilitare il campo RF.
4.5.8.2.1 Comando
Tabella 75. Valore del comando RF_FIELD_OFF

Campo di carico utile Lunghezza Valore/Descrizione
Vuoto Vuoto vuoto

4.5.8.2.2 Risposta
Tabella 76. Valore di risposta RF_FIELD_OFF

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)

4.5.8.2.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.9 Testare la configurazione del bus
I segnali del bus di test disponibili sulle configurazioni PAD selezionate sono elencati nella Sezione 7 come riferimento.
È necessario fare riferimento a questi per fornire la configurazione per le istruzioni del bus di prova come menzionato di seguito.
4.5.9.1 CONFIGURA_TESTBUS_DIGITALE
Questa istruzione viene utilizzata per commutare il segnale del bus di test digitale disponibile sulle configurazioni dei pad selezionate.
4.5.9.1.1 Comando
Tabella 77. Valore del comando CONFIGURE_TESTBUS_DIGITAL

Campo del carico utile Lunghezza Valore/descrizione
TB_SignalIndex 1 byte Fare riferimento a Sezione 7
TB_BitIndex 1 byte Fare riferimento a Sezione 7
TB_PadIndex 1 byte L'indice del pad, su cui deve essere emesso il segnale digitale
0x00 Pin AUX1
0x01 Pin AUX2
0x02 Pin AUX3
0x03 pin GPIO0
0x04 pin GPIO1
0x05 pin GPIO2
0x06 pin GPIO3
0x07-0xFF RFU

4.5.9.1.2 Risposta
Tabella 78. Valore della risposta CONFIGURE_TESTBUS_DIGITAL

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)

4.5.9.1.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.9.2 CONFIGURA_TESTBUS_ANALOGICO
Questa istruzione viene utilizzata per ottenere il segnale del bus di test analogico disponibile sulle configurazioni dei pad selezionate.
Il segnale sul bus di test analogico può essere ottenuto in diverse modalità. Sono:
4.5.9.2.1 Modalità RAW
In questa modalità, il segnale scelto da TB_SignalIndex0 viene spostato da Shift_Index0, mascherato con Mask0 ed emesso su AUX1. Allo stesso modo, il segnale scelto da TB_SignalIndex1 viene spostato da Shift_Index1, mascherato con Mask1 ed emesso su AUX2.
Questa modalità offre al cliente la flessibilità di emettere qualsiasi segnale di larghezza pari o inferiore a 8 bit e che non richiede la conversione del segno da emettere sui pad analogici.
4.5.9.2.2 Modalità COMBINATA
In questa modalità, il segnale analogico sarà il valore ADCI/ADCQ/pcrm_if_rssi con segno a 10 bit convertito in un valore senza segno, ridotto a 8 bit e quindi emesso sui pad AUX1 o AUX2.
Solo uno dei valori convertiti ADCI/ADCQ (10 bit) può essere inviato a AUX1/AUX2 in qualsiasi momento.
Se il valore del campo payload del segnale Combined_Mode è 2 (analogico e digitale combinato), il bus di test analogico e digitale viene instradato su AUX1 (segnale analogico) e GPIO0 (segnale digitale).
I segnali da instradare sono configurati nell'indirizzo EEPROM indicato di seguito:
0xCE9 – TB_SignalIndex
0xCEA – TB_BitIndex
0xCEB – TB_Indice analogico
L'indice del bus di prova e il bit del bus di prova devono essere configurati nella EEPROM prima di attivare la modalità combinata con l'opzione 2.
Nota:
L'host dovrà fornire tutti i campi, indipendentemente dall'applicabilità del campo in modalità "grezza" o "combinata". L'IC PN5190 considera solo i valori dei campi applicabili.
4.5.9.2.3 Comando
Tabella 79. Valore del comando CONFIGURE_TESTBUS_ANALOG

Campo del carico utile Lunghezza Valore/descrizione Applicabilità sul campo per la modalità combinata
bConfig 1 byte Bit configurabili. Fare riferimento a Tabella 80
Segnale in modalità_combinata 1 byte 0 – ADCI/ADCQ
1 – pcrm_if_rssi
2 – Combinazione analogica e digitale
3 – 0xFF –Riservato
TB_SignalIndex0 1 byte Indice del segnale analogico. Fare riferimento a Sezione 7
TB_SignalIndex1 1 byte Indice del segnale analogico. Fare riferimento a Sezione 7
Maiusc_Indice0 1 byte Posizioni shift dell'ingresso DAC0. La direzione sarà decisa a bit in bConfig[1]. NO
Maiusc_Indice1 1 byte Posizioni shift dell'ingresso DAC1. La direzione sarà decisa a bit in bConfig[2]. NO
Maschera0 1 byte Maschera DAC0 NO
Maschera1 1 byte Maschera DAC1 NO

Tabella 80. Maschera di bit di configurazione

b7 b6 b5 b4 b3 b2 b1 b0 Descrizione Applicabile alla modalità
X X Gamma di spostamento uscita DAC1 – 0, 1, 2 Crudo
X X Gamma di spostamento uscita DAC0 – 0, 1, 2 Crudo
X In modalità combinata, segnale sul pin AUX1/AUX2
0 ➜ Segnale su AUX1
1 ➜ Segnale su AUX2
Combinato
X Direzione di spostamento dell'ingresso DAC1
0 ➜ Sposta a destra
1 ➜ Spostarsi a sinistra
Crudo
X Direzione di spostamento dell'ingresso DAC0
0 ➜ Sposta a destra
1 ➜ Spostarsi a sinistra
Crudo
X Modalità.
0 ➜ Modalità grezza
1 ➜ Modalità combinata
Grezzo/Combinato

4.5.9.2.4 Risposta
Tabella 81. Valore di risposta CONFIGURE_TESTBUS_ANALOG

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)

4.5.9.2.5 Evento
Non esiste alcun evento per questa istruzione.
4.5.9.3 CONFIGURA_MULTIPLA_TESTBUS_DIGITALE
Questa istruzione viene utilizzata per commutare più segnali del bus di test digitale disponibili sulle configurazioni dei pad selezionate.
Nota: Se questa lunghezza è ZERO, il bus di test digitale viene RESET.
4.5.9.3.1 Comando
Tabella 82. Valore del comando CONFIGURE_MULTIPLE_TESTBUS_DIGITAL

Campo del carico utile Lunghezza Valore/descrizione
TB_SignalIndex n. 1 1 byte Fare riferimento a 8 sotto
TB_BitIndice #1 1 byte Fare riferimento a 8 sotto
TB_PadIndex #1 1 byte L'indice del pad, su cui deve essere emesso il segnale digitale
0x00 Pin AUX1
0x01 Pin AUX2
0x02 Pin AUX3
0x03 pin GPIO0
0x04 pin GPIO1
0x05 pin GPIO2
0x06 pin GPIO3
0x07-0xFF RFU
TB_SignalIndex n. 2 1 byte Fare riferimento a 8 sotto
TB_BitIndice #2 1 byte Fare riferimento a 8 sotto
TB_PadIndex #2 1 byte L'indice del pad, su cui deve essere emesso il segnale digitale
0x00 Pin AUX1
0x01 Pin AUX2
0x02 Pin AUX3
0x03 pin GPIO0
0x04 pin GPIO1
0x05 pin GPIO2
0x06 pin GPIO3
0x07-0xFF RFU

4.5.9.3.2 Risposta
Tabella 83. Valore della risposta CONFIGURE_MULTIPLE_TESTBUS_DIGITAL

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 2]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)

4.5.9.3.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.10 Configurazione CTS
4.5.10.1 CTS_ENABLE
Questa istruzione viene utilizzata per abilitare/disabilitare la funzione di registrazione CTS.
4.5.10.1.1 Comando
Tabella 84. Valore comando CTS_ENABLE

Valore/Descrizione della lunghezza del campo payload
Abilita/Disabilita 1 byte Parte 0 0 Disabilita la funzione di registrazione CTS

1 Abilitare la funzione di registrazione CTS

Pezzo 1-7 RFU

4.5.10.1.2 Risposta
Tabella 85. Valore della risposta CTS_ENABLE

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)

4.5.10.1.3 Evento
La tabella seguente mostra i dati dell'evento che verranno inviati come parte del messaggio di evento, come mostrato nella Figura 12 e nella Figura 13.
Tabella 86. Ciò informa l'host che i dati sono stati ricevuti. EVT_CTS_DONE

Campo di carico utile Lunghezza Valore/Descrizione
Evento 1 byte 00 … si è verificato il TRIGGER, i dati sono pronti per la ricezione.

4.5.10.2 CTS_CONFIGURA
Questa istruzione viene utilizzata per configurare tutti i registri CTS richiesti come trigger, registri bus di test, sampconfigurazione ling ecc.,
Nota:
[1] fornisce una migliore comprensione della configurazione CTS. I dati acquisiti da inviare come parte della risposta al comando della Sezione 4.5.10.3.

4.5.10.2.1 Comando
Tabella 87. Valore comando CTS_CONFIGURE

Campo di carico utile Lunghezza Valore/Descrizione
PRE_TRIGGER_SHIFT 1 byte Definisce la lunghezza della sequenza di acquisizione post-trigger in unità di 256 byte.
0 significa nessuno spostamento; n significa spostamento di blocco n*256 byte.
Nota: valido solo se TRIGGER_MODE è la modalità di trigger "PRE" o "COMB".
MODALITÀ_TRIGGER 1 byte Specifica la modalità di acquisizione da utilizzare.
0x00 – Modalità POST
0x01 – RFU
0x02 – Modalità PRE
0x03 – 0xFF – Non valido
RAM_PAGE_WIDTH 1 byte Specifica la quantità di memoria su chip coperta da un'acquisizione. La granularità scelta in base alla progettazione è di 256 byte (ovvero 64 parole a 32 bit).
I valori validi sono i seguenti:
0x00h – 256 byte
0x02h – 768 byte
0x01h – 512 byte
0x03h – 1024 byte
0x04h – 1280 byte
0x05h – 1536 byte
0x06h – 1792 byte
0x07h – 2048 byte
0x08h – 2304 byte
0x09h – 2560 byte
0x0Ah – 2816 byte
0x0Bh – 3072 byte
0x0Ch – 3328 byte
0x0Dh – 3584 byte
0x0Eh – 3840 byte
0x0Fh – 4096 byte
0x10h – 4352 byte
0x11h – 4608 byte
0x12h – 4864 byte
0x13h – 5120 byte
0x14h – 5376 byte
0x15h – 5632 byte
0x16h – 5888 byte
0x17h – 6144 byte
0x18h – 6400 byte
0x19h – 6656 byte
0x1Ah – 6912 byte
0x1Bh – 7168 byte
0x1Ch – 7424 byte
0x1Dh – 7680 byte
0x1Eh – 7936 byte
0x1Fh – 8192 byte
SAMPLE_CLK_DIV 1 byte Il valore decimale di questo campo specifica il fattore di divisione della frequenza di clock da utilizzare durante l'acquisizione.
Orologio CTS = 13.56 MHz/2SAMPLE_CLK_DIV
00 – 13560 kHz
01 – 6780 kHz
02 – 3390 kHz
03 – 1695 kHz
04 – 847.5 kHz
05 – 423.75 kHz
06 – 211.875 kHz
07 – 105.9375 kHz
08 – 52.96875 kHz
09 – 26.484375 kHz
10 – 13.2421875 kHz
11 – 6.62109375 kHz
12 – 3.310546875 kHz
13 – 1.6552734375 kHz
14 – 0.82763671875 kHz
15 – 0.413818359375 kHz
SAMPLE_BYTE_SEL 1 byte Questi bit vengono utilizzati per specificare quali byte dei due bus di ingresso a 16 bit contribuiscono al meccanismo di interleave che genera i dati da trasferire alla memoria su chip. Il significato e l'uso di essi dipende dalla SAMPValori LE_MODE_SEL.

Nota: il valore dato è sempre mascherato con 0x0F e quindi viene considerato il valore effettivo.

SAMPLE_MODE_SEL 1 byte Seleziona la sampmodalità interleave ling come descritto dalle specifiche di progettazione CTS. Il valore decimale 3 è riservato e verrà trattato come 0.
Nota: il valore dato è sempre mascherato con 0x03, quindi viene considerato il valore effettivo.
TB0 1 byte Seleziona quale bus di test collegare a TB0. Fare riferimento a Sezione 7 (valore TB_Segnale_Indice)
TB1 1 byte Seleziona quale bus di test collegare a TB1. Fare riferimento a Sezione 7 (valore TB_Segnale_Indice)
TB2 1 byte Seleziona quale bus di test collegare a TB2. Fare riferimento a Sezione 7 (valore TB_Segnale_Indice)
TB3 1 byte Seleziona quale bus di test collegare a TB3. Fare riferimento a Sezione 7 (valore TB_Segnale_Indice)
TTB_SELECT 1 byte Seleziona quale TB collegare alle sorgenti di trigger. Fare riferimento a Sezione 7 (valore TB_Signal_Index)
RFU 4 byte Invia sempre 0x00000000
MISC_CONFIG 24 byte Eventi di trigger, polarità, ecc. Fare riferimento a [1] per comprendere la configurazione CTS da utilizzare.

4.5.10.2.2 Risposta
Tabella 88. Valore della risposta CTS_CONFIGURE

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR

4.5.10.2.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.10.3 CTS_RETRIEVE_LOG
Questa istruzione recupera il registro dei dati dei dati del bus di prova catturatiampfile memorizzati nel buffer di memoria.
4.5.10.3.1 Comando
Tabella 89. Valore del comando CTS_RETRIEVE_LOG

Campo di carico utile Lunghezza Valore/Descrizione
Dimensione pezzo 1 byte 0x01-0xFF Contiene il numero di byte di dati previsti.

4.5.10.3.2 Risposta
Tabella 90. Valore della risposta CTS_RETRIEVE_LOG

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
PN5190_STATUS_SUCCSES_CHAINING
Dati di registro [1…n] Richiesta CTS Catturato Sampblocco di dati

Nota:
La dimensione massima dei "Dati di registro" dipende dal "ChunkSize" fornito come parte del comando.
La dimensione totale del log sarà disponibile nella risposta dell'intestazione TLV.
4.5.10.3.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.11 Comandi TEST_MODE
4.5.11.1 ANTENNA_SELF_TEST
Questa istruzione viene utilizzata per verificare se l'antenna è collegata e i componenti corrispondenti sono popolati/assemblati.
Nota:
Questo comando non è ancora disponibile. Vedere le note di rilascio per la disponibilità.
4.5.11.2 PROVA_PRBS
Questa istruzione viene utilizzata per generare la sequenza PRBS per le diverse configurazioni dei protocolli e dei bit rate della modalità Reader. Una volta eseguita l'istruzione, la sequenza di test PRBS sarà disponibile su RF.
Nota:
L'host deve assicurarsi che la configurazione appropriata della tecnologia RF sia caricata utilizzando la Sezione 4.5.7.1 e che RF sia attivata utilizzando il comando della Sezione 4.5.8.1 prima di inviare questo comando.
4.5.11.2.1 Comando
Tabella 91. Valore del comando PRBS_TEST

Campo di carico utile Lunghezza Valore/Descrizione
tipo_prbs 1 byte 00 PRBS9(predefinito)
01 PRBS15
02-FF RFU

4.5.11.2.2 Risposta
Tabella 92. Valore della risposta PRBS_TEST

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR PN5190_STATUS_NO_RF_FIELD

4.5.11.2.3 Evento
Non esiste alcun evento per questa istruzione.
4.5.12 Comandi informazioni chip
4.5.12.1 GET_DIEID
Questa istruzione viene utilizzata per leggere l'ID del die del chip PN5190.
4.5.12.1.1 Comando
Tabella 93. GET_DIEID Valore del comando

Campo di carico utile Lunghezza Valore/Descrizione
Nessun dato nel carico utile

4.5.12.1.2 Risposta
Tabella 94. Valore della risposta GET_DIEID

Campo del carico utile Lunghezza Valore/descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (non sono presenti ulteriori dati)
Valori 16 byte ID matrice da 16 byte.

4.5.12.1.3 Evento
Non ci sono eventi per questo comando.
4.5.12.2 OTTIENI_VERSIONE
Questa istruzione viene utilizzata per leggere la versione HW, la versione ROM e la versione FW del chip PN5190.
4.5.12.2.1 Comando
Tabella 95. Valore del comando GET_VERSION

Campo di carico utile Lunghezza Valore/Descrizione
Nessun dato nel carico utile

In modalità download è disponibile un comando DL_GET_VERSION (Sezione 3.4.4) che può essere utilizzato per leggere la versione HW, la versione ROM e la versione FW.
4.5.12.2.2 Risposta
Tabella 96. Valore della risposta GET_VERSION

Campo di carico utile Lunghezza Valore/Descrizione
Stato 1 byte Stato dell'operazione [Tabella 9]. I valori attesi sono i seguenti:
PN5190_STATUS_SUCCESSO
PN5190_STATUS_INSTR_ERROR (Non sono presenti ulteriori dati)
HW_V 1 byte Versione hardware
RO_V 1 byte codice rom
FW_V 2 byte Versione firmware (utilizzata per il download)
RFU1-RFU2 1-2 byte

La risposta prevista per la versione diversa dell'IC PN5190 è menzionata nella (Sezione 3.4.4)
4.5.12.2.3 Evento
Non ci sono eventi per questo comando.

Appendice (Esample)

Questa appendice è costituita dall'examples per i comandi sopra menzionati. L'exampi le sono solo a scopo illustrativo per mostrare il contenuto del comando.
5.1 Esample per WRITE_REGISTER
Segue la sequenza di dati inviati dall'host per scrivere un valore 0x12345678 nel registro 0x1F.
Frame di comando inviato a PN5190: 0000051F78563412
Host per attendere un'interruzione.
Quando l'host legge il frame di risposta ricevuto da PN5190 (che indica l'operazione riuscita): 00000100 5.2 Example per WRITE_REGISTER_OR_MASK
Seguente sequenza di dati inviati dall'host per eseguire l'operazione logica OR sul registro 0x1F con una maschera come 0x12345678
Frame di comando inviato a PN5190: 0100051F78563412
Host per attendere un'interruzione.
Quando l'host legge il frame di risposta ricevuto da PN5190 (che indica un'operazione riuscita): 01000100
5.3 Esample per WRITE_REGISTER_AND_MASK
Seguente sequenza di dati inviati dall'host per eseguire l'operazione AND logica sul registro 0x1F con una maschera come 0x12345678
Frame di comando inviato a PN5190: 0200051F78563412
Host per attendere un'interruzione.
Quando l'host legge il frame di risposta ricevuto da PN5190 (che indica un'operazione riuscita): 02000100
5.4 Esample per WRITE_REGISTER_MULTIPLE
Segue la sequenza di dati inviati dall'host per eseguire un'operazione AND logica sul registro 0x1F con una maschera come 0x12345678 e un'operazione OR logica sul registro 0x20 con una maschera come 0x11223344 e una scrittura nel registro 0x21 con un valore come 0xAABBCCDD.
Frame di comando inviato a PN5190: 0300121F03785634122002443322112101DDCCBBAA
Host per attendere un'interruzione.
Quando l'host legge il frame di risposta ricevuto da PN5190 (che indica un'operazione riuscita): 03000100
5.5 Esample per READ_REGISTER
Segue la sequenza di dati inviati dall'host per leggere il contenuto del registro 0x1F e assumendo che il registro abbia il valore 0x12345678
Frame di comando inviato a PN5190: 0400011F
Host per attendere un'interruzione.
Quando l'host legge il frame di risposta ricevuto da PN5190 (che indica un'operazione riuscita): 0400050078563412
5.6 Esample per READ_REGISTER_MULTIPLE
Segue sequenza di dati inviati dall'host per leggere il contenuto dei registri 0x1F che contengono il valore di 0x12345678 e del registro 0x25 che contengono il valore di 0x11223344
Frame di comando inviato a PN5190: 0500021F25
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 050009007856341244332211
5.7 Esample per WRITE_E2PROM
Seguente sequenza di dati inviati dall'host per scrivere nelle posizioni E2PROM da 0x0130 a 0x0134 con i contenuti come 0x11, 0x22, 0x33, 0x44, 0x55
Frame di comando inviato a PN5190: 06000730011122334455
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 06000100
5.8 Esample per READ_E2PROM
Di seguito la sequenza di dati inviati dall'host per leggere dalle posizioni E2PROM da 0x0130 a 0x0134 dove i contenuti memorizzati sono: 0x11, 0x22, 0x33, 0x44, 0x55
Frame di comando inviato a PN5190: 07000430010500
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 070006001122334455
5.9 Esample per TRANSMIT_RF_DATA
Segue la sequenza di dati inviati dall'host per inviare un comando REQA (0x26), con il numero di bit da trasmettere come '0x07', presupponendo che i registri richiesti siano impostati prima e che RF sia acceso.
Frame di comando inviato a PN5190: 0800020726
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 08000100
5.10 Esample per RETREIVE_RF_DATA
Segue la sequenza di dati inviati dall'host per ricevere i dati ricevuti/memorizzati nel buffer CLIF interno (supponendo che sia stato ricevuto 0x05), presupponendo che TRANSMIT_RF_DATA sia già inviato dopo che RF è stato attivato.
Frame di comando inviato a PN5190: 090000
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 090003000400
5.11 Esample per EXCHANGE_RF_DATA
Segue la sequenza di dati inviati dall'host per trasmettere un REQA (0x26), con il numero di bit nell'ultimo byte da inviare impostato come 0x07, con tutto lo stato da ricevere insieme ai dati. Si presuppone che i registri RF richiesti siano già impostati e che RF sia attivato.
Frame di comando inviato a PN5190: 0A0003070F26
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 0A000 F000200000000000200000000004400
5.12 Esample per LOAD_RF_CONFIGURATION
Di seguito la sequenza di dati inviati dall'host per impostare la configurazione RF. Per TX, 0x00 e per RX, 0x80
Frame di comando inviato a PN5190: 0D00020080
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 0D000100
5.13 Esample per UPDATE_RF_CONFIGURATION
Di seguito la sequenza di dati inviati dall'host per aggiornare la configurazione RF. Per TX, 0x00, con indirizzo di registro per CLIF_CRC_TX_CONFIG e valore come 0x00000001
Frame di comando inviato a PN5190: 0E0006001201000000
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 0E000100
5.14 Esample per RF_ON
Segue la sequenza di dati inviati dall'host per attivare il campo RF utilizzando la funzione anticollisione e nessun P2P attivo. Si presuppone che la corrispondente configurazione RF TX e RX sia già impostata in PN5190.
Frame di comando inviato a PN5190: 10000100
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 10000100
5.15 Esample per RF_OFF
Segue sequenza di dati inviati dall'host per spegnere il campo RF.
Frame di comando inviato a PN5190: 110000
Host per attendere un'interruzione.
Quando l'host legge la risposta, frame ricevuto da PN5190 (che indica l'operazione riuscita): 11000100

Appendice (Indici di configurazione del protocollo RF)

Questa appendice è costituita dagli indici di configurazione del protocollo RF supportati dal PN5190.
Le impostazioni di configurazione TX e RX devono essere utilizzate nei comandi Sezione 4.5.7.1, Sezione 4.5.7.2, Sezione 4.5.7.3.

Controller frontend NFC NXP PN5190 - indici di configurazione

Appendice (Segnali CTS e TESTBUS)

La tabella seguente specifica i diversi segnali disponibili da PN5190 per la cattura utilizzando le istruzioni CTS (Sezione 4.5.10) e le istruzioni TESTBUS.

Controller frontend NFC NXP PN5190 - Appendice

Questi devono essere usati per il comando Sezione 4.5.9.1, Sezione 4.5.9.2, Sezione 4.5.10.2.

Abbreviazioni

Tabella 97. Abbreviazioni

Abbr. Senso
Orologio Orologio
DWL_REQ Pin richiesta download (chiamato anche DL_REQ)
Memoria EEPROM Memoria di sola lettura programmabile cancellabile elettricamente
FW Firmware
Terra Terra
GPIO Input/output per uso generale
HW Hardware
I²C Circuito integrato (bus dati seriale)
IRQ Richiesta di interruzione
ISO / IEC Organizzazione internazionale per la standardizzazione/Comunità elettrotecnica internazionale
Non-FC Comunicazione in prossimità
OS Sistema operativo
PCD Dispositivo di accoppiamento di prossimità (lettore senza contatto)
Catetere venoso centrale (PICC) Scheda a circuito integrato di prossimità (scheda senza contatto)
PMU Unità di gestione dell'alimentazione
PERO Ripristino all'accensione
RF Frequenza radio
RST Reset
SFWU modalità di download sicuro del firmware
SPI Interfaccia periferica seriale
VEN V Abilita pin

Riferimenti

[1] Parte della configurazione CTS di NFC Cockpit, https://www.nxp.com/products/:NFC-COCKPIT
[2] Scheda tecnica IC PN5190, https://www.nxp.com/docs/en/data-sheet/PN5190.pdf

Informazioni legali

10.1 Definizioni
Bozza — Uno stato di bozza su un documento indica che il contenuto è ancora in fase internaview e soggetto ad approvazione formale, che può comportare modifiche o aggiunte. NXP Semiconductors non fornisce alcuna dichiarazione o garanzia circa l'accuratezza o la completezza delle informazioni incluse in una versione bozza di un documento e non avrà alcuna responsabilità per le conseguenze dell'uso di tali informazioni.
Dichiarazione di non responsabilità 10.2
Garanzia limitata e responsabilità — Le informazioni contenute in questo documento sono ritenute accurate e affidabili. Tuttavia, NXP Semiconductors non fornisce alcuna dichiarazione o garanzia, espressa o implicita, in merito all'accuratezza o alla completezza di tali informazioni e non si assume alcuna responsabilità per le conseguenze dell'uso di tali informazioni. NXP Semiconductors non si assume alcuna responsabilità per il contenuto di questo documento se fornito da una fonte di informazioni al di fuori di NXP Semiconductors.
In nessun caso NXP Semiconductors sarà ritenuta responsabile per eventuali danni indiretti, incidentali, punitivi, speciali o consequenziali (inclusi, a titolo esemplificativo, mancati profitti, mancati risparmi, interruzione dell'attività, costi relativi alla rimozione o sostituzione di qualsiasi prodotto o spese di rilavorazione) sia o non tali danni sono basati su illecito (inclusa negligenza), garanzia, violazione del contratto o qualsiasi altra teoria legale.
Nonostante eventuali danni che il cliente potrebbe subire per qualsiasi motivo, la responsabilità complessiva e cumulativa di NXP Semiconductors nei confronti del cliente per i prodotti descritti nel presente documento sarà limitata in conformità con il
Termini e condizioni di vendita commerciale di NXP Semiconductors.
Diritto di apportare modifiche — NXP Semiconductors si riserva il diritto di apportare modifiche alle informazioni pubblicate in questo documento, incluse, a titolo esemplificativo, le specifiche e le descrizioni dei prodotti, in qualsiasi momento e senza preavviso. Il presente documento sostituisce e sostituisce tutte le informazioni fornite prima della pubblicazione del presente documento.
Idoneità all'uso — I prodotti NXP Semiconductors non sono progettati, autorizzati o garantiti per essere idonei all'uso in sistemi o apparecchiature di supporto vitale, critici per la vita o per la sicurezza, né in applicazioni in cui è ragionevolmente prevedibile un guasto o un malfunzionamento di un prodotto NXP Semiconductors causare lesioni personali, morte o gravi danni materiali o ambientali. NXP Semiconductors ei suoi fornitori non si assumono alcuna responsabilità per l'inclusione e/o l'uso dei prodotti NXP Semiconductors in tali apparecchiature o applicazioni e pertanto tale inclusione e/o utilizzo è a rischio e pericolo del cliente.
Applicazioni — Le applicazioni qui descritte per uno qualsiasi di questi prodotti sono solo a scopo illustrativo. NXP Semiconductors non rilascia alcuna dichiarazione o garanzia che tali applicazioni siano adatte all'uso specificato senza ulteriori test o modifiche.
I clienti sono responsabili della progettazione e del funzionamento delle loro applicazioni e prodotti che utilizzano i prodotti NXP Semiconductors e NXP Semiconductors non si assume alcuna responsabilità per l'assistenza con le applicazioni o la progettazione dei prodotti dei clienti. È esclusiva responsabilità del cliente determinare se il prodotto NXP Semiconductors è adatto e idoneo per le applicazioni e i prodotti pianificati del cliente, nonché per l'applicazione pianificata e l'utilizzo di clienti di terze parti del cliente. I clienti devono fornire adeguate protezioni di progettazione e funzionamento per ridurre al minimo i rischi associati alle loro applicazioni e ai loro prodotti.
NXP Semiconductors non si assume alcuna responsabilità relativa a inadempienze, danni, costi o problemi basati su debolezze o inadempienze nelle applicazioni o nei prodotti del cliente, o dall'applicazione o dall'utilizzo da parte di clienti terzi del cliente. Il Cliente è responsabile di eseguire tutti i test necessari per le applicazioni ei prodotti del cliente che utilizzano i prodotti NXP Semiconductors al fine di evitare un'impostazione predefinita delle applicazioni e dei prodotti o dell'applicazione o l'utilizzo da parte di clienti terzi del cliente. NXP non si assume alcuna responsabilità al riguardo.

NXP BV – NXP BV non è una società operativa e non distribuisce né vende prodotti.

Licenze 10.3
Acquisto di circuiti integrati NXP con tecnologia NFC: l'acquisto di un circuito integrato di NXP Semiconductors conforme a uno degli standard Near Field Communication (NFC) ISO/IEC 18092 e ISO/IEC 21481 non trasmette una licenza implicita ai sensi di alcun diritto di brevetto violato dall'implementazione di uno qualsiasi di questi standard. L'acquisto del circuito integrato di NXP Semiconductors non include una licenza per alcun brevetto NXP (o altro diritto di proprietà intellettuale) che copra combinazioni di tali prodotti con altri prodotti, siano essi hardware o software.

Marchi 10.4
Avviso: tutti i marchi di riferimento, i nomi di prodotti, i nomi di servizi e i marchi registrati sono di proprietà dei rispettivi proprietari.
NXP: il marchio denominativo e il logo sono marchi di NXP BV
EdgeVerse — è un marchio di NXP BV
FeliCa — è un marchio di Sony Corporation.
MIFARE — è un marchio di NXP BV
MIFARE Classic — è un marchio di NXP BV

Si prega di notare che avvisi importanti riguardanti il ​​presente documento e i prodotti in esso descritti sono stati inclusi nella sezione "Informazioni legali".
Italiano:
Per maggiori informazioni, visitare: http://www.nxp.com
Tutti i diritti riservati.
Data di rilascio: 25 maggio 2023
Identificativo del documento: UM11942

Documenti / Risorse

Controller front-end NFC NXP PN5190 [pdf] Manuale d'uso
PN5190, PN5190 Controller front-end NFC, Controller front-end NFC, Controller, UM11942

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *