Come accelerare l'integrazione NFC in applicazioni basate su SO

Contributo di Editori nordamericani di DigiKey

Gli sviluppatori hanno da sempre fatto fronte una serie di sfide per ottimizzare le prestazioni RF, progettare hardware e software per la comunicazione near-field (NFC). Ora, tuttavia, la disponibilità di soluzioni NFC monolitiche e il supporto completo di software ha cambiato significativamente la natura della funzionalità NFC incorporata in progetti per elettrodomestici, dispositivi indossabili e dispositivi per l'Internet delle cose (IoT).

Il risultato è che gli sviluppatori possono aggiungere un vasto assortimento di funzioni applicative con basso impatto sull'ingombro del progetto, sul consumo energetico e sulla tempistica dei progetti.

Le comunicazioni bidirezionali della tecnologia NFC sono speciali nel garantire la connettività wireless di prossimità in modo semplice, intrinsecamente sicuro e a basso consumo. Le comunicazioni sono possibili solo se due dispositivi vengono messi vicini, di conseguenza l'intercettazione dei messaggi è improbabile e i vettori di potenziali attacchi informatici sono ridotti al minimo. Inoltre, solo uno dei due dispositivi richiede alimentazione al momento della comunicazione, di conseguenza la media di consumo energetico rimane bassa.

In effetti, la tecnologia NFC può offrire vantaggi notevoli a un'ampia gamma di applicazioni IoT e per la domotica intelligente. Gli utenti possono completare l'accoppiamento Bluetooth o Wi-Fi semplicemente accostando uno smartphone abilitato per NFC a un prodotto anch'esso abilitato per NFC. NFC può fungere da attivatore sottostante per la personalizzazione dei dispositivi e semplificare le attività degli smartphone come le impostazioni di configurazione, il trasferimento di dati o la registrazione di prodotti.

NFC embedded

Come subset di identificazione in radiofrequenza (RFID), NFC opera a 13,56 MHz ed esegue molte delle funzioni proprie dei convenzionali tag RFID e delle smartcard senza contatto. Allo stesso tempo, NFC offre ulteriore flessibilità grazie alla sua capacità di operare in tre modalità di comunicazione: emulazione carta, peer-to-peer e lettura/scrittura.

Nella modalità emulazione carta, un dispositivo NFC funziona come una smartcard senza contatto, il che lo abilita in un'ampia gamma di applicazioni esistenti, tra cui biglietterie, controllo di accesso, transito, caselli autostradali e pagamenti senza contatto. La modalità peer-to-peer permette a due dispositivi abilitati per NFC di connettersi e scambiare informazioni. Ad esempio gli utenti possono usare gli smartphone abilitati per NFC per configurare i parametri Bluetooth o Wi-Fi in altri dispositivi o per autorizzarne l'uso in reti sicure. In modalità lettura/scrittura, un dispositivo NFC può leggere i dati da un altro dispositivo NFC. Ad esempio uno smartphone abilitato per NFC può leggere gli URL o altri dati come i coupon di vendita incorporati negli annunci promozionali in un negozio.

Collegato al processore host in un prodotto, un dispositivo NFC incorporato con funzione di tag opera in modo simile a una memoria a doppia porta. Una delle porte della memoria offre accesso wireless tramite un'interfaccia NFC. L'accesso all'altra porta avviene da un sistema embedded attraverso un'interfaccia I2C. Come risultato, una fonte esterna come uno smartphone può passare i dati al sistema embedded. A sua volta, il processore host può aggiornare i dati memorizzati nel dispositivo NFC, rendendoli disponibili a un dispositivo esterno abilitato per NFC anche quando il prodotto è spento.

Gli sviluppatori possono utilizzare questo approccio in qualsiasi applicazione che richieda il trasferimento dei dati tra un sistema embedded e un sistema esterno come uno smartphone abilitato per NFC. In definitiva, gli sviluppatori possono sfruttare questo approccio per aggiornare i dati del sistema embedded o perfino il firmware, usando la connettività wireless del dispositivo NFC per le comunicazioni e la sua memoria su chip per la memorizzazione temporanea durante il processo di download.

Controller NFC monolitico

In passato, i progettisti che volevano aggiungere caratteristiche NFC a un progetto basato su MCU dovevano affrontare notevoli sfide sia hardware che software. I tecnici hardware che usavano dispositivi NFC convenzionali dovevano assicurare che il progetto fosse adeguato per la temporizzazione critica tra dispositivo NFC e host, che i requisiti energetici rimanessero bassi e che gli ingombri fossero limitati, oltre a una distinta base (BOM) ridotta al minimo. Forse il maggior impatto risiede nel lato software, dove i tecnici dovevano spesso scrivere un codice specifico per gestire le numerose transazioni a basso livello che possono costituire una singola operazione NFC a livello di applicazione.

I dispositivi NFC di ultima generazione, come PN7150 di NXP Semiconductor, sono progettati per semplificare l'inclusione della funzionalità NFC in un progetto IoT o in un qualsiasi sistema embedded. PN7150 combina un front-end RF con un core ARM® Cortex®-M0 a bassa potenza, memoria e periferiche di I/O (Figura 1).

Schema del controller NFC PN7150 di NXP Semiconductors

Figura 1: Il controller NFC PN7150 di NXP Semiconductors combina un front-end RF, un device host con core ARM® Cortex®-M0 e firmware integrato. (Immagine per gentile concessione di NXP Semiconductors)

Il dispositivo evita i consueti problemi di integrazione hardware assicurando una temporizzazione ottimale tra device host embedded e front-end RF, mentre supporta potenze di uscita in RF superiori. Inoltre, l'interfaccia integrata I2C è compatibile con NTAG I2C Plus di NXP per sensori, apparecchi di illuminazione e altri dispositivi associati alle reti di domotica intelligente. Oltre a ciò, il dispositivo aiuta a ridurre i requisiti di potenza: PN7150 può effettuare automaticamente la transizione alla modalità basso consumo, lasciando l'host in modalità di sospensione fino a che non sono richieste comunicazioni in RF.

Oltre a semplificare la progettazione dell'hardware, PN7150 offre notevoli vantaggi anche sul fronte software. NXP precarica i dati embedded e la memoria del codice del dispositivo con supporto esteso per l'interfaccia (NCI) del controller NFC. Gestita da NFC Forum, la specifica tecnica NCI definisce l'interfaccia logica tra un controller NFC (NFCC) e un device host (DH) che esegue un SO ad alto livello come Android, Linux o Windows IoT.

Il firmware NCI embedded del PN7150 alleggerisce il compito di sviluppare il software riducendo alcune interazioni host e fornendo un livello superiore di estrazione per gli sviluppatori del software delle applicazioni NFC. Spostando il codice a basso livello al firmware, PN7150 riduce anche le dimensioni del codice applicazione sul fronte host.

Soluzione drop-in

Grazie al software e all'hardware integrato, PN7150 è progettato come soluzione NFC drop-in per sviluppatori che lavorano in ambienti Android, Linux o Windows (Figura 2). Gli sviluppatori senza esperienza nello sviluppo della tecnologia NFC possono trarre vantaggio dai kit dimostrativi PN7150 per Arduino (NXP OM5578/PN7150ARDM), BeagleBone Black (NXP OM5578/PN7150BBBM) e Raspbery Pi (NXP OM5578/PN7150RPIM). Ogni kit include una scheda controller NFC PN7150, una scheda di interfaccia dedicata e la carta campione NFC.

Schema NXP PN7150 (clic per ingrandire)

Figura 2: NXP PN7150 richiede pochi componenti aggiuntivi per fornire un sottosistema NFC completo che si integra fluidamente nell'MCU host tramite una semplice interfaccia hardware e con il software host tramite il protocollo NCI. (Immagine per gentile concessione di NXP Semiconductors)

I progettisti hanno bisogno di pochi componenti per creare un sottosistema NFC completo per un progetto basato su MCU esistente. In alcuni casi in effetti, i tecnici possono ridurre ulteriormente la distinta base eliminando o combinando alcuni componenti passivi nel circuito di accordatura dell'antenna (Figura 3).

Schema di PN7150 come controller NFC (NFCC)

Figure 3: Utilizzando un PN7150 come controller NFC (NFCC), i progettisti possono ridurre ulteriormente la distinta base in alcune applicazioni, semplificando il circuito di accordatura dell'antenna. (Immagine per gentile concessione di NXP Semiconductors)

In un tipico progetto di circuito di antenna, i resistori di smorzamento RQ sui terminali dell'antenna si rendono necessari per abbassare un fattore di qualità dell'antenna eccessivamente alto, cosa che può influire negativamente sulla forma del segnale generato. In un progetto con un fattore di qualità nominale dell'antenna, i progettisti possono rimuovere i resistori di smorzamento RQ dai terminali dell'antenna. Nel circuito di accordatura stesso, è possibile sostituire la coppia di condensatori in parallelo con un singolo condensatore (ed eliminare la connessione al filtro EMC) quando un particolare progetto è caratterizzato da una tensione ai terminali dell'antenna picco-picco massima sufficientemente bassa. In applicazioni tipiche, dove è collegata una piccola antenna a PN7150, la tensione picco-picco generata ai terminali dell'antenna sarà relativamente bassa. Di conseguenza, è anche possibile semplificare il percorso Rx rimuovendo i condensatori Crx di disaccoppiamento e collegando direttamente i resistori Rrx all'antenna.

Software semplificato

Sul fronte software, PN7150 offre un modello esecutivo semplice che accelera ulteriormente lo sviluppo del prodotto (Figura 4). L'architettura DH combina un driver di layer di trasporto, un driver NCI e un middleware per l'ambiente di esecuzione NFC (NFCEE) contenente le librerie di lettura/scrittura, peer-to-peer o di emulazione carta. Per le operazioni NFC, l'host deve solo inviare operazioni NCI ad alto livello a PN7150 attraverso l'interfaccia I2C. A sua volta, il firmware PN7150 esegue le transazioni dettagliate richieste nel protocollo NFC.

Schema del firmware NCI embedded di NXP PN7150

Figura 4: Il firmware NCI embedded di NXP PN7150 riduce le dimensioni del software nel device host (DH), che deve solo inviare i comandi NCI tramite l'interfaccia hardware I2C per l'esecuzione delle transazioni dettagliate sul controller NFC PN7150 (NFCC). (Immagine per gentile concessione di NXP Semiconductors)

In effetti, dal punto di vista di uno sviluppatore, lo sviluppo di applicazioni NFC procede ad alto livello grazie a una piattaforma software completa disponibile presso NXP. Per applicazioni IoT abilitate per NFC, un'operazione comune implica lo scambio di dati formattati in formato scambio dati NFC (NDEF). Gestito da NFC Forum, NDEF è un formato dati standardizzato che può essere utilizzato per scambiare informazioni come URI o plain text tra qualsiasi dispositivo compatibile NFC e altri dispositivi NFC o tag.

La libreria NXP linux_libnfc-nci offre un'API semplice che estrae le transazioni a basso livello e le trasporta in operazioni a livello superiore orientate all'applicazione. Ad esempio, gli sviluppatori possono scrivere in un tag con una semplice chiamata a una routine WriteTag (Listato 1). La libreria utilizza una serie di routine a basso livello per scomporre questa richiesta a livello di applicazione in una serie di passi richiesti per valutare, formattare e trasmettere i dati (msgToPush nel listato 1).

int WriteTag(nfc_tag_info_t TagInfo, unsigned char* msgToPush, unsigned int len)

{

            int res = 0x00;

           

            res = nfcTag_writeNdef(TagInfo.handle, msgToPush, len);

            if(0x00 != res)

            {

                        printf("Scrittura tag fallita\n");

                        res = 0xFF;

            }

            else

            {

                        res = 0x00;

            }

            return res;

}

Listato 1: NXP fornisce software NCI come linux_libnfc-nci, che è una libreria NFC Linux da utilizzare con PN7150. Gli sviluppatori possono creare applicazioni NFC usando semplici chiamate come WriteTag, che richiamano routine a basso livello per gestire i dettagli di protocollo di messaggistica NFC. (Listato per gentile concessione di NXP Semiconductors)

Un device host usa i messaggi di controllo NCI per interagire con un controller NFC. Una sequenza di comando NCI particolarmente importante offre un meccanismo tale per cui un controller NFC può trovare altre carte, lettori o peer. Questa sequenza di comando, denominata RF Discovery, induce un dispositivo conforme NFC, come PN7150, ad alternare tra l'ascolto di altri dispositivi di trasmissione e la trasmissione (fase poll) per individuare una carta o un tag remoto.

Come per qualsiasi tecnologia RF, la trasmissione richiede molta più potenza rispetto alla ricezione radio (Figura 5). In effetti, nella fase poll, PN7150 consuma circa 30 mA, in funzione delle caratteristiche dell'antenna. Durante la fase di ascolto, PN7150 attende una portante RF generata esternamente e il consumo di corrente scende a circa 20 μA quando la modalità standby è abilitata.

Schema dei dispositivi NFC NXP

Figura 5: I dispositivi NFC possono avere requisiti di potenza relativamente alti a causa di una fase poll estesa nella sequenza Discovery RF standard, secondo NFC Forum. (Immagine per gentile concessione di NXP Semiconductors)

Tipicamente, la fase poll dura circa 20 ms mentre quella di ascolto ha una durata tra 300 e 500 ms. Per una fase di ascolto di 500 ms, possiamo calcolare un consumo energetico di questo tipo:

(30 x 20 + 0,02 x 500) / 520 = 1,17 mA.

Per ridurre i requisiti energetici per RF Discovery, NXP N7150 offre un meccanismo proprietario denominato Modalità Rilevatore carta a basso consumo (LPCD). In modalità LPCD, PN7150 ricerca una variazione dell'impedenza dell'antenna derivante dall'accoppiamento magnetico che si crea quando un altro dispositivo arriva nelle vicinanze. Se la variazione di impedenza supera la soglia predefinita, PN7150 entra automaticamente nella sequenza standard RF Discovery secondo NFC Forum. Di conseguenza, questo approccio "guidato dagli eventi" può ridurre significativamente la durata della fase RF Discovery con conseguente minor consumo energetico (Figura 6).

Schema NXP PN7150

Figura 6: NXP PN7150 può ridurre significativamente il consumo energetico per il loop RF Discovery usando una modalità di rilevamento speciale per diminuire la durata della fase poll energivora. (Immagine per gentile concessione di NXP)

Conclusione

NFC offre connettività sicura e a basso consumo di potenza che può semplificare notevolmente i dispositivi connessi in prodotti di elettronica per la casa, indossabili e altri dispositivi IoT. Basta mettere uno smartphone abilitato per NFC vicino a un prodotto connesso, gli utenti possono autorizzare il prodotto, caricare le informazioni di accesso e recuperare informazioni memorizzate nel prodotto stesso. In passato, l'implementazione della tecnologia NFC in sistemi basati su MCU poneva sfide di progettazione sia relativamente all'integrazione hardware che software. Oggi invece, dispositivi NFC come NXP PN7150 offrono ai progettisti di NFC soluzioni quasi drop-in, semplificando lo sviluppo sia hardware che software di applicazioni abilitate per NFC.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo editore

Editori nordamericani di DigiKey