Near Field Communication Smartphone verarbeitet Sensorsignal

In der Praxis

Zu den aufgelisteten Transpondern bieten die Hersteller in den meisten Fällen Demoboards oder Evaluationssysteme mit Software wie Demo-Apps für Android an. Als besonders umfangreich und dennoch recht preisgünstig (ca. 20 Euro) stellt sich das M24LR Discovery von STMicroelectronics dar, das zwei Platinen umfasst. Das RF-Transceiver-Demoboard wird über USB mit einem PC für das Schreiben und Lesen von Tag-Daten per Demonstrationssoftware verbunden. Das Herzstück bildet hier der CR95HF als NFC-Transceiver, der von einem STM32 gesteuert wird.

Das M24LR-Board beherbergt einen M24LR-Chip als NFC-Reader, der per I²C-Bus mit einem 8-bit-Mikrocontroller vom Typ STM8LM152 kommuniziert. Für Demozwecke sind auf dem Discovery-Board ein LCD, zwei Buttons (User, Reset) und ein Temperatursensor (STTS751) vorhanden. An Steckerleisten sind der I²C-Bus sowie die Signale für den Anschluss eines optionalen Programmers (ST-Link/v2) herausgeführt, sodass sich hier weitere Sensoren anschließen lassen und sich die Firmware des STM8LM152 an die eigene Applikation anpassen lässt. Die Antennen sind bei beiden Boards Leiterbahnen im Layout der Platine.

Ein erster Funktionstest ist mit dem Discovery-Board möglich, indem ein NFC-fähiges Smartphone auf die Antennenfläche gelegt wird, woraufhin das Smartphone mit einer Meldung »Neues Tag erfasst« reagieren sollte (vgl. Bild 4, dort Kontaktaufnahme mit der Sensorplatine), falls im Smartphone NFC nicht deaktiviert ist (Verbindungen – Teilen & verbinden – NFC). Mit der dazu passenden Android-App NfcV reader lassen sich NDEF-Nachrichten lesen und schreiben (NFC Data Exchange Format), Speicherbereiche mit einem Password schützen sowie verschiedene Systemdaten anzeigen (UID, Manufacturer u. a.). Während des Aufbaus der NFC-Verbindung zeigt das LC-Display des Discovery-Boards den Wert der Versorgungsspannung an (typ. 1,8 V bis 3,35 V), dieser Wert kann als Indikator für die Qualität der Kopplung dienen, denn der NFC-Touchpoint ist bei einem Smartphone meist nicht unmittelbar zu erkennen.

Etwas schwieriger erwies sich der Umgang mit dem RF-Transceiver-Demoboard, denn das Schreiben von Daten in den NFC-Tag führte beim Smartphone zur Fehlermeldung »Kein Tag erkannt«. Die NFC-Reader-Software ist zwar quelloffen und wurde mit Eclipse geschrieben, sie lässt sich jedoch in »Android Studio« nicht importieren. Nach dem Einfügen des Codes in ein neues Android-Projekt wird ersichtlich, nicht die für NDEF vorgesehenen Funktionen werden verwendet, sondern die Daten stattdessen konventionell in einer Programmschleife ausgeführt – z. B. Datenlesen mit »NFCCommand.SendReadMultipleBlockCommandCustom()«. Das ist zwar sonderbar, aber nicht falsch. Deshalb lässt sich die App auch problemlos kompilieren, was den Fehler jedoch nicht behebt. Denn er liegt nicht in der NFC-Reader-Software, sondern am RF-Transceiver-Demoboard oder besser in der dazugehörigen PC-Software begründet. Deswegen werden die Daten im Capability Container Field falsch geschrieben, was der Einfachheit halber manuell mit der NfcV-Reader-Software behoben wurde. Im Block 0000 steht im Original »E1 40 FF 10«, was in »E1 40 FF 05« zu ändern ist, woraufhin das System korrekt arbeitet.