Nieuwe mogelijkheden met de nieuwste NXP NFC-tags (chips) van de NTAG21x serie
[deel-1 van 2]
(1e publicatie 2015, herzien 06/2020)
NXP Semiconductors is de voormalige halfgeleiderdivisie van ons eigen Philips. NXP behoort tot één van de grootste halfgeleiderproducenten van Europa.
De nieuwe NXP NTAG21x serie NFC-chips bevatten een aantal fantastische mogelijkheden die de inzet van NFC in b.v. reclame, marketing, consumer relations sterk zal uitbreiden en vereenvoudigen.
In dit artikel behandelen we de mirror (kopieer) functies van de NTAG21x NFC-tags zoals b.v. NTAG213 en NTAG216.
Twee soorten
1. UID mirroring
2. Interaction Counter Mirroring
Terminologie
Voor de uitleg is het handig als enkele termen nader toegelicht worden, zo is de uitleg gemakkelijker te begrijpen.
Chip
De chip is het (micro)elektronisch ‘brein’, het is het stukje elektronica kleiner dan een speldenknop dat de handelingen verricht en het geheugen bevat.
Tag
De chip heeft een ‘antenne’ nodig om het elektromagnetisch communicatie signaal tussen de reader/writer (b.v. NFC-telefoon) op te vangen vaak is dit een spiraalvormig metalen deelt dat samen met de chip op een drager aangebracht wordt.
Tag-vorm
De drager met de chip en antenne wordt vervolgens geplaatst in een sticker, sleutelhanger, kaart of andere vorm om de tag te kunnen gebruiken.
User memory
Het “User memory” of “Gebruikers geheugen” is een gedeelte van het geheugen op de NFC-chip.
Dit geheugen kan door de gebruiker gevuld worden met gegevens zoals bijvoorbeeld een webadres (link) of tekst. Bij de NTAG213 is dit 144 bytes groot en bij de NTAG216 888 bytes.
NFC-tags hebben echter ook geheugen gedeelten (records) die voor de gebruiker niet toegankelijk zijn om te beschrijven (gegevens op te slaan), meestal kunnen ze echter wel gelezen worden.
Zo wordt elke NFC-tag bij de fabricage voorzien van een (vrijwel) altijd uniek nummer het chip-ID UID.
Zo’n chip-ID kan er b.v. zo uit zien: 04691b2a763c80 (hexadecimaal, kan echter ook decimaal weergegeven worden).
Omdat dit chip-ID niet in het user-memory staat kan het dus niet gewijzigd worden, er kan namelijk niet in geschreven worden door de gebruiker zoals dit wel kan in het user-memory.
Mobiele NFC-telefoons
Nu is het zo dat telefoons meestal juist alleen dit user-memory (of soms met een app juist alleen het chip-ID uitlezen).
Dit is jammer want het zou natuurlijk zeer nuttig zijn als we een webadres in het user-memory zouden kunnen zetten, die bovendien het chip-ID mee stuurt zodat we weten welke chip (tag) uitgelezen is.
De nieuwe UID-mirroring functie
De chip-ID ook wel genoemd UID (Unique IDentifier) van de tag staat dus zoals eerder aangegeven in een stukje geheugen dat zich buiten het user memory bevindt.
De nieuwe UID mirror functie zorgt er nu voor (indien geactiveerd) dat het chip-ID ‘meegegeven’ wordt aan het webadres dat we in het user memory zetten.
Dit werkt, omdat de chip het chip-ID kopieerd (mirorring) naar het user memory door het achter het webadres te plakken.
Dit zal er dan bijvoorbeeld als volgt uitzien:
Webadres: www.nfc-nederland.nl
UID: 04691b2a763c80
In het user memory staat nu www.nfc-nederland.nl/?uid=04691b2a763c80
[edit] In de oude versie van de app stond hier in plaats van zoals nu “?uid=” eerder “?m”.
Dus let op:
Op het moment van het schrijven van dit artikel gebruikte NXP dus “?m” in plaats van het huidige “?uid=”. (dit maakt voor de werking niet uit, maar “?uid” is wel duidelijker.
De afbeelding hieronder klopt dus wat dat betreft niet meer precies.
De tekens “?m=” (nu dus “?uid=”) is de z.g.n. parameter en wordt volgens afspraken (uniform resource locator) gebruikt om de query-string aan te duiden. (meer uitleg: http://nl.wikipedia.org/wiki/Uniform_Resource_Locator)
Hoe je gemakkelijk een webadres in een NFC-tag zet lees je hier:
https://www.nfc-nederland.nl/nfc-tags-programmeren-met-een-webadres-link/
Om ook het UID mee te geven aan het adres kun je deze functie gedurende het instellen van het programmeren de functie ‘Add Tag UID to URL (mirror)‘ aanvinken.
Wat heb ik er aan?
Je kunt nu aan de serverzijde met b.v. Javascript/ASP identificeren welke tag het is.
Het UID is namelijk uniek.
Zo kun je bijvoorbeeld op diverse locaties NFC-tags aanbrengen en aan de hand van dit gegeven exact bepalen welke tag en dus op welke locatie de tag is uitgelezen.
Ook kan het gebruikt worden als een klantenkaart of personeelskaart waarbij op afstand te bepalen is wie dit is, want bij die toepassingen wordt het UID gekoppeld aan een persoon en in dit geval meegezonden met de URL.
Verder kun je natuurlijk dit natuurlijk ook bij machines, gereedschappen en andere producten toepassen.
Nog mooier?
Ja, NXP heeft nog een “cadeautje” voor ons in petto: Interaction Counter Mirroring.
Interaction Counter Mirroring
Als de Interaction Counter (uitlees-teller) geactiveerd is houdt de chip bij hoeveel keer de chip is uitgelezen.
Als ook dit geactiveerd wordt in ons weblink voorbeeld (werkt ook met andere opties zoals b.v. tekst i.p.v. een link) ziet dit er als volgt uit:
www.nfc-nederland.nl?m=04691b2a763c80x000005
We zien nu dat NXP er voor gekozen heeft de teller te scheiden van het UID door de ‘x‘. In ons voorbeeld blijkt dus dat de tag 5x is uitgelezen.
Ik denk dat deze nieuwe mirror-functie een geweldige verbetering is en de vereenvoudigde inzet voor vele NFC-toepassingen mogelijk maakt.
In een volgend deel zullen we andere vernieuwingen bespreken!
Technische info (voor programmeurs):
https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf
Voorbeelden van NTAG213 NFC-tags:
https://www.nfc-nederland-shop.nl/alle-nfc-tags/?filter%5B%5D=683849
Voorbeelden van NTAG216 NFC-tags:
https://www.nfc-nederland-shop.nl/alle-nfc-tags/?filter%5B%5D=683850