Beschleunigung der NFC-Integration in Betriebssystemanwendungen

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Die Entwickler standen im Laufe der Zeit vielen Herausforderungen bei der Optimierung der HF-Leistung und der Auslegung von Hardware und Software für die Nahfeldkommunikation (NFC) gegenüber. Jetzt hat sich mit der Verfügbarkeit monolithischer NFC-Lösungen und umfassender Softwareunterstützung die Art und Weise der Integration der NFC-Funktionalität in die Heimelektronik, in Wearables und in Geräte für das Internet der Dinge fundamental geändert.

Dies hat dazu geführt, dass die Entwickler ihre Anwendungen mit einer Vielzahl von Funktionen versehen können, ohne große Auswirkungen auf die Abmessungen, den Energieverbrauch oder Projekttermine befürchten zu müssen.

Die bidirektionale NFC-Kommunikation ist einzigartig mit ihrer Fähigkeit, eine einfache, von Natur aus sichere drahtlose Kommunikation über kurze Entfernung herstellen zu können. Eine Kommunikation ist nur dann möglich, wenn zwei Geräte nahe zusammengebracht werden, sodass eine Störung der Nachrichten unwahrscheinlich und die Angriffsfläche für potenzielle Cyberangriffe minimal ist. Darüber hinaus muss für eine Kommunikation nur jeweils eines der beiden Geräte eingeschaltet sein. Dies bedeutet, dass der durchschnittliche Energieverbrauch relativ gering ist.

Tatsächlich bietet NFC signifikante Vorzüge für ein breites Spektrum von Anwendungen für das Internet der Dinge und das intelligente Heim. Eine Bluetooth- oder Wi-Fi-Kopplung kann einfach hergestellt werden, indem ein NFC-fähiges Smartphone nahe an ein NFC-fähiges Produkt herangebracht wird. NFC kann als grundlegende Aktivierungsebene für die Personalisierung von Geräten dienen und Aufgaben auf einem Smartphone vereinfachen, z. B. das Konfigurieren von Einstellungen, das Übertragen von Daten oder das Registrieren von Produkten.

Eingebettetes NFC

NFC ist ein Teilbereich von RFID (Radio-frequency Identification) auf einer Frequenz von 13,56 MHz und führt viele derselben Funktionen von herkömmlichen RFID-Tags und kontaktlosen Smartcards aus. Gleichzeitig bietet NFC weitere Flexibilität, da sie in einem von drei Kommunikationsmodi arbeitet: Kartenemulation, Peer-to-Peer und Lesen/Schreiben.

Im Kartenemulationsmodus arbeitet das NFC-Gerät wie eine kontaktlose Smartcard und kann für viele vorhandene Anwendungen wie Ticketkontrolle, Zugangskontrolle, Transit, Mautstellen und kontaktlose Zahlung eingesetzt werden. Im Peer-to-Peer-Modus können sich NFC-fähige Geräte miteinander verbinden und Informationen austauschen. So könnten z. B. Bluetooth- oder Wi-Fi-Setup-Parameter eines Geräts mit einem NFC-fähigen Smartphone festgelegt oder der Betrieb in vertrauenswürdigen Netzwerken angemeldet werden. Im Modus Lesen/Schreiben kann ein NFC-Gerät Daten eines anderen NFC-Geräts lesen. Zum Beispiel könnte ein NFC-fähiges Smartphone URLs oder andere Daten wie Gutscheine auslesen, die in einem Geschäft auf Werbemedien eingebettet sind.

Wenn es mit dem Host-Prozessor innerhalb eines Produkts verbunden ist, verhält sich ein eingebetteter NFC-Baustein als Tag wie Dual-Port-Speicher. Auf einen der Speicherports wird drahtlos über eine NFC-Schnittstelle zugegriffen. Auf den anderen Port wird vom eingebetteten System über eine I2C-Schnittstelle zugegriffen. So kann eine externe Quelle, z. B. ein Smartphone, Daten an das eingebettete System übergeben. Der Hostprozessor kann wiederum im NFC-Gerät gespeicherte Daten aktualisieren und dem externen NFC-fähigen Gerät zur Verfügung stellen – auch wenn das Produkt ausgeschaltet ist.

Entwickler können diesen Ansatz in jeder Anwendung verwenden, die eine Übertragung von Daten zwischen einem eingebetteten System und einem externen System wie einem NFC-fähigen Smartphone erfordert. Dieser Ansatz kann auch zur Aktualisierung der Daten oder sogar der Firmware des eingebetteten Systems verwendet werden, wobei die drahtlose Verbindung des NFC-Geräts für die Kommunikation und der integrierte Arbeitsspeicher als temporärer Speicher während des Downloads verwendet wird.

Monolithische NFC-Controller

In der Vergangenheit sahen sich Entwickler, die MCU-basierte Bausteine mit NFC-Funktionen ausstatten wollten, beträchtlichen Schwierigkeiten bezüglich Hardware und Software gegenüber. Die Hardware-Ingenieure mussten bei herkömmlichen NFC-Bausteinen sicherstellen, dass kritische Timings zwischen NFC-Baustein und Host erfüllt werden, der Energieverbrauch niedrig gehalten wird und sowohl die Abmessungen als auch die Stückliste des Produkts minimiert werden. Die vielleicht größte Herausforderung betraf aber die Software. Die Ingenieure mussten oft eigenen Code zur Behandlung der Transaktionen auf unterster Ebene schreiben, die für eine einzige NFC-Operation auf Anwendungsebene erforderlich sind.

Hochentwickelte NFC-Bausteine wie der NXP Semiconductor PN7150 sollen die Integration der NFC-Funktionalität in ein IoT-Bauteil oder in ein eingebettetes System vereinfachen. Der PN7150 verbindet ein HF-Frontend mit einem stromsparenden ARM® Cortex®-M0-Kern, Arbeitsspeicher und E/A-Peripheriebausteinen (Abbildung 1).

Schaltbild des NFC-Controllers PN7150 von NXP Semiconductors

Abbildung 1: Der NFC-Controller PN7150 von NXP Semiconductors umfasst ein komplettes HF-Frontend, einen ARM Cortex-M0-Geräte-Host und integrierte Firmware. (Bildquelle: NXP Semiconductors)

Das Gerät vermeidet die üblichen Probleme bei der Hardware-Integration, indem es für ein optimales Timing zwischen dem eingebetteten Geräte-Host und dem HF-Frontend sorgt und eine höhere HF-Ausgangsleistung unterstützt. Darüber hinaus ist die integrierte I2C-Schnittstelle kompatibel mit NTAG I2C Plus von NXP für Sensoren, Beleuchtungsanlagen und andere für Netzwerke für das intelligente Heim bestimmte Bausteine. Außerdem trägt der Baustein zur Energieeinsparung bei: Der PN7150 kann automatisch in einen Stromsparmodus umschalten, wobei der Host so lange im Schlafmodus bleibt, bis eine HF-Kommunikation benötigt wird.

Der PN7150 vereinfacht nicht nur die Auslegung der Hardware, sondern verfügt auch softwareseitig über entscheidende Vorzüge. NXP lädt die Daten und den Code des eingebetteten Bausteins im Voraus mit erweiterter Unterstützung für die NFC-Controller-Schnittstelle (NCI). Die vom NFC-Forum verwaltete technische Spezifikation der NCI definiert die logische Schnittstelle zwischen einem NFC-Controller (NFCC) und einem Geräte-Host (DH), unter dem ein High-Level-Betriebssystem wie Android, Linux oder Windows IoT läuft.

Die eingebettete NFI-Firmware des PN7150 erleichtert die Software-Entwicklung, indem sie bestimmte Host-Interaktionen reduziert und für Entwickler von NFC-Anwendungen einen höheren Abstraktionsgrad einführt. Durch Verschieben des Low-Level-Codes in die Firmware reduziert der PN7150 außerdem den Umfang des Anwendungscodes auf der Host-Seite.

Drop-in-Lösung

Der PN7150 ist mit seiner integrierten Hardware und Software als NFC-Drop-in-Lösung („Einstecklösung“) für Entwickler gedacht, die unter Android-, Linux-, oder Windows-Umgebungen arbeiten (Abbildung 2). So können Entwickler, für die NFC neu ist, von vorhandenen PN7150-Demo-Kits für Arduino profitieren (NXP OM5578/PN7150ARDM), BeagleBone Black (NXP OM5578/PN7150BBBM) und Raspbery Pi (NXP OM5578/PN7150RPIM). Jedes Kit umfasst eine Platine mit dem NFC-Controller PN7150, eine dedizierte Schnittstellenplatine und eine NFC-Demoplatine.

Schaltbild des PN7150 von NXP (für größere Darstellung klicken)

Abbildung 2: Der PN7150 von NXP benötigt nur wenige zusätzliche Komponenten, wenn er als vollständiges NFC-Subsystem fungieren soll, das sich über eine einfache Hardware-Schnittstelle und Host-Software mittels NCI-Protokolls problemlos in die Host-MCU integrieren lässt. (Bildquelle: NXP Semiconductors)

Zur Entwicklung eines kompletten NFC-Subsystems auf einem vorhandenen MCU-basierten Design sind nur wenige Komponenten erforderlich. So kann die Stückliste in manchen Fällen durch Elimination oder Zusammenfassung bestimmter passiver Komponenten in der Schaltung für die Antennenanpassung reduziert werden (Abbildung 3).

Schaltbild des PN7150 als NFC-Controller (NFCC)

Abbildung 3: Mit dem PN7150 als NFC-Controller (NFCC) kann die Stückliste in manchen Fällen durch Vereinfachung der Schaltung für die Antennenanpassung reduziert werden. (Bildquelle: NXP Semiconductors)

Bei einer typischen Antennenschaltung werden RQ-dämpfende Widerstände an den Antennenleitungen benötigt, um einen zu hohen Antennenqualitätsfaktor, der die Form des generierten Signals negativ beeinflussen kann, zu dämpfen. In einem Design mit einem nominellen Antennenqualitätsfaktor können diese RQ-Dämpfungswiderstände von den Antennenenden entfernt werden. In der eigentlichen Anpassungsschaltung können die beiden parallelgeschalteten Kondensatoren durch einen einzelnen Kondensator ersetzt (und die Verbindung mit dem EMV-Filter aufgehoben) werden, wenn bei einer bestimmten Auslegung eine genügend kleine Peak-to-Peak-Spannung an den Antennenleitungen vorhanden ist. In einer typischen Anwendung, in der an den PN7150 eine kleine Antenne angeschlossen ist, ist die an den Antennenleitungen generierte Peak-to-Peak-Spannung relativ gering. Daher kann der Rx-Pfad durch Entkoppeln der Crx-Kondensatoren und direkten Anschluss der Rrx-Widerstände an die Antenne vereinfacht werden.

Einfache Software

Aus der Software-Perspektive bietet der PN7150 ein einfaches Ausführungsmodell, das die Produktentwicklung zusätzlich beschleunigt (Abbildung 4). Die Architektur des Geräte-Hosts besteht aus einem Treiber für die Transportschicht, einem NCI-Treiber und einer NFC-Ausführungsumgebungs-Middleware (NICE), die die Lese-/Schreib-, Peer-to-Peer und Kartenemulationsbibliotheken enthält. Für NFC-Operationen muss der Host nur High-Level-NCI-Befehle über die I2C-Schnittstelle an den PN7150 senden. Die PN7150-Firmware führt daraufhin die vom NFC-Protokoll geforderten detaillierten Transaktionen aus.

Schema der eingebetteten Firmware des PN7150 von NXP

Abbildung 4: Die im PN7150 von NXP eingebettete Firmware reduziert den Software-Umfang auf dem Gerätehost (DH), der zur Ausführung von detaillierten NFC-Transaktionen auf dem NFC-Controller (NFCC) PN7150 nur NCI-Befehle über die I2C-Hardware-Schnittstelle senden muss. (Bildquelle: NXP Semiconductors)

Tatsächlich findet vom Standpunkt des Entwicklers aus die Entwicklung einer NFC-Anwendung dank der von NXP zur Verfügung gestellten umfassenden Software-Plattform auf einer sehr hohen Ebene statt. Bei NFC-fähigen Anwendungen für das Internet der Dinge umfasst ein normaler Vorgang den Austausch von im NFC-Datenaustauschformat (NDEF) formatierten Daten. NDEF ist ein vom NFC-Forum verwaltetes standardisiertes Datenformat, in dem Informationen wie URLs oder Klartext zwischen beliebigen kompatiblen NFC-Geräten und anderen NFC-Geräten oder Tags ausgetauscht werden können.

Die NXP-Bibliothek „linux_libnfc-nci“ stellt eine einfache Programmierschnittstelle für Anwendungen (API) bereit, in der Low-Level-Transaktionen als anwendungsorientierte High-Level-Operationen abstrahiert werden. Entwickler können z. B. mit einem einfachen Aufruf einer WriteTag-Routine (Listing 1) in ein Tag schreiben. In der Bibliothek werden Anfragen auf Anwendungsebene durch eine Reihe von Routinen auf niedrigerer Ebene in die für die Validierung, Formatierung und Übertragung von Daten erforderliche Anzahl von Schritten zerlegt (msgToPush in Listing 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("Write Tag Failed\n");

                        res = 0xFF;

            }

            else

            {

                        res = 0x00;

            }

            return res;

}

Listing 1: NXP stellt NCI-Software wie linux_libnfc-nci, eine Linux-NFC-Bibliothek für den PN7150, zur Verfügung. Es können auch NFC-Anwendungen erstellt werden, die nur einfache Aufrufe wie WriteTag einsetzen, die ihrerseits zur Behandlung von Details des NFC-Nachrichtenprotokolls Low-Level-Routinen aufrufen. (Listing-Quelle: NXP Semiconductors)

Ein Gerätehost interagiert mit einem NFC-Controller über NCI-Steuernachrichten. Eine besonders wichtige NCI-Befehlssequenz stellt einen Mechanismus bereit, mit dem ein NFC-Controller andere Karten, Lesegeräte oder Peers finden kann. Diese Befehlssequenz mit dem Namen „RF Discovery“ (HF-Erkennung) bewirkt, dass ein kompatibler NFC-Baustein wie der PN7150 zwischen der Empfangsbereitschaft für sendende Geräte und dem Senden wechselt (Abfragephase), um eine Karte oder ein Tag zu finden.

Wie allgemein bei der HF-Übertragung wird für das Senden von Funksignalen erheblich mehr Energie als für den Empfang benötigt (Abbildung 5). Tatsächlich verbraucht der PN7150 in der Abfragephase (poll phase) je nach Antennencharakteristik ca. 30 mA. Während der Empfangsbereitschaftsphase wartet der PN7150 auf ein extern generiertes HF-Trägersignal, und der Stromverbrauch sinkt bei aktiviertem Standby-Modus auf etwa 20 μA.

Schaltbild der NFC-Bausteine von NXP

Abbildung 5: NFC-Bausteine können aufgrund einer langen Abfragephase in der Standard-RF-Discovery-Sequenz lt. NFC-Forum einen relativ hohen Energiebedarf aufweisen. (Bildquelle: NXP Semiconductors)

Eine typische Abfragephase dauert etwa 20 ms, während die Empfangsbereitschaftsphase 300 ms bis 500 ms lang ist. Der durchschnittliche Stromverbrauch für eine 500 ms lange Empfangsbereitschaftsphase lautet damit:

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

Der PN7150 von NXP verfügt über einen proprietären Mechanismus zur Reduzierung des Stromverbrauchs für die HF-Erkennung mit der Bezeichnung LPCD-Modus (low power card detector mode). Im LPCD-Modus erkennt der PN7150 Änderungen der Antennenimpedanz aufgrund der magnetischen Kopplung, die auftritt, wenn sich ein anderes Gerät nähert. Wenn die Änderung der Impedanz größer als ein vordefinierter Schwellenwert ist, leitet der PN7150 automatisch die Standard-RF-Discovery-Sequenz ein. Daher kann dieser ereignisgesteuerte Ansatz die Dauer der RF-Discovery-Phase signifikant reduzieren, was zu einem geringeren mittleren Energieverbrauch führt (Abbildung 6).

Schaltbild des PN7150 von NXP

Abbildung 6: Der PN7150 von NXP kann den Stromverbrauch der RF-Discovery-Schleife durch einen speziellen Erkennungsmodus erheblich reduzieren, der die Länge der Abfragephase, die viel Strom zieht, verkürzt. (Bildquelle: NXP)

Fazit

NFC bietet sichere Konnektivität mit niedrigem Energieverbrauch, die die Benutzerfreundlichkeit von vernetzten Produkten wie Heimelektronik, Wearables und anderen IoT-Geräten signifikant erhöhen kann. Durch einfaches Annähern eines NFC-fähigen Smartphones an ein verbundenes Produkt kann dieses aktiviert, Zugriffsinformationen können geladen und im Produkt gespeicherte Informationen abgerufen werden. In der Vergangenheit brachte die NFC-Implementierung in MCU-basierte Systeme Herausforderungen bei der Hardware- und Software-Integration mit sich. Dagegen bieten integrierte NFC-Bausteine wie der PN7150 von NXP fast schon eine Drop-in-Lösung für NFC-Geräte, die die Hardware- und Software-Entwicklung von NFC-fähigen Anwendungen vereinfacht. 

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key