NFC čipi, nastavitve čitalnika za branje ID kode in praktični primeri

Digitalizacija poslovanja z NFC čipi in čitalnikom SYRIS RD300-H1-G

29. December 2022
Ko delamo digitalizacijo poslovanja, potrebujemo mehanizme za hitro identifikacijo predmetov ali oseb in to lahko naredimo z uporabo brezstične tehnologije RFID ali NFC. Brezstični čipi vsebujejo ID številko in nekaj spomina, čitalniki lahko preberejo identifikacijsko številko čipa ali vpis vsebine v spominu čipa in izvedejo določeno funkcijo.

Najbolj preprost način delovanja čitalnika je ta, da preberejo ID številko čipa in jo prikažejo na zaslonu računalnika ali druge naprave. Če ste v Excelovi tabeli, se bo ID številka čipa pojavila v določeni celici in po branju se bo pozicija samodejno prestavila na naslednjo celico. Tak način delovanja imenujemo simulacija tipkovnice ali Keyboard Emulator, obstajajo pa še drugi načini delovanja čitalnikov in so opisani v nadaljevanju.


Zakaj včasih enak čitalnik prebere različno dolgo ID kodo čipa?

Različni čitalniki lahko isto ID številko čipa interpretirajo na različne načine. Ko snujemo sistem in izbiramo primerne naprave moramo paziti, da vsi čitalniki v sistemu berejo čipe na enak način, sicer aplikacija ne pravilno bo prepoznala RFID medijev.

Če v informacijskem sistemu uporabljamo mobilne naprave, ki berejo ID kodo v formatu 14 HEX reverse, potem moramo tudi USB čitalnik izbrati ali nastaviti tako, da bere ID kodo v enakem formatu.

Kako nastaviti čitalnik, da bere na enak način kot NFC tablica ali telefon?

Primer iz prakse:
NFC tablica prebere kodo: 04 23 A2 54 E2 D5 B3
Čitalnik Syris RD 300 v privzetem načinu prebere: 54 A2 23 04 

Iz primera lahko vidimo, da je koda, ki jo prebere tablica daljša in tudi zaporedje prebranih znakov je drugačno.

Nekaterim čitalnikom se načina branja ne da spreminjati, čitalnik RD300 pa ima priložen tudi CD s konfiguratorjem in drugimi razvojnimi orodji in nam omogoča prilagoditev načina branja.

V konfiguratorju enostavno izberemo ID Format 14 HEX in pritisnemo set.
Sedaj dobimo izpis celotne 7-bajtne kode, torej  B3 D5 E2 54 A2 23 04 ampak to še ni enak izpis, kot ga dobimo iz tablice. Potrebno je tudi dodati kljukico na ID Reverse Byte in ponovno pritisniti Set.

S tem se zaporedje bajtov obrne in dobimo enako kodo kot jo dobimo na mobilnih napravah, torej 04 23 A2 54 E2 D5 B3.

Ali je možno, da imata dva NFC čipa enako ID kodo?

Možnost nastavljanja dolžine prebrane ID kode nam omogoči branje tudi najdaljših kod in to ne podpira vsak čitalnik. Veliko nizkocenovnih čitalnikov prebere le 4-bajte, kar je v redu za čipe, ki imajo 4-bajtno ID kodo (na primer MIFARE Classic®), če pa z ne ustreznim čitalnikom beremo novejše čipe, ki imajo daljše kode, se nam lahko zgodi, da nam čitalnik za različne čipe prebere isti del kode in s tem zaznamo podvojeni vpis oz. napako pri identifikaciji.

Čipi tipa MIFARE DESFire® in NFC čipi iz družine NTAG imajo kodo dolgo 7-bajtov, čipi tipa ICODE SLIX pa 8-bajtov.

Primer ustreznega branja čipov tipa NTAG213, ko čitalnik prebere vseh 7 bajtov:
Vzorec 1: 04 23 A2 54 E2 D5 B3
Vzorec 2: 04 33 B2 54 E2 D5 B3
Vzorec 3: 04 23 A2 50 52 65  E3

Primer neustreznega branja istih čipov tipa NTAG213, če čitalnik prebere le 4 bajte:
Vzorec 1: 54 E2 D5 B3
Vzorec 2: 54 E2 D5 B3
Vzorec 3: 50 52 65  E3

Čitalnik, ki prebere le 4-bajte ne loči med vzorcem 1 in 2 in sistem zazna podvojeni vpis oziroma lahko napačno sklepamo, da imate dve NFC kartici enako kodo.

Kako lahko ločimo dva čitalnika, ki delujeta v Keyboard Emulator načinu?

Naslednja uporabna lastnost čitalnika RD300 za digitalizacijo poslovanja je ta, da omogoča 
samodejno dodajanje predpone ali dodatnega znaka na koncu prebranega niza ID kode. S tem lahko na preprost način ločimo čitalnike med seboj.

Primer uporabe predpone (prefix) pred prebrano ID kodo
Čitalnik 1 namestimo na vhod in mu nastavimo samodejno dodajanje predpone VHOD.

Primer branja treh vzorcev:
Vzorec 1: VHOD 04 23 A2 54 E2 D5 B3
Vzorec 2: VHOD 04 33 B2 54 E2 D5 B3
Vzorec 3: VHOD 04 23 A2 50 52 65  E3

Če čitalnik 2 namestimo na izhod in mu dodamo predpono IZHOD bo prebral spodnje kode:
Vzorec 1: IZHOD 04 23 A2 54 E2 D5 B3
Vzorec 2: IZHOD 04 33 B2 54 E2 D5 B3
Vzorec 3: IZHOD 04 23 A2 50 52 65  E3

V tem primeru dobimo z dodajanjem predpone informacijo o lokaciji čitalnika in le to lahko uporabimo pri nadaljnji obdelavi podatkov. 

Vsak RD300 čitalnik ima tudi svojo ID kodo, ki jo je možno uporabiti za programsko identifikacijsko naprav v rešitvi (vidna je v konfiguratorju pod zavihkom Option PID, CID).

Zakaj nekateri NFC čipi ne delujejo na vseh NFC čitalnikih?

Veliko NFC čitalnikov podpira branje 13,56 Mhz čipov po standardu ISO 14443 ampak to še ne pomeni, da so primerni za vse NFC čipe. Poleg NFC standarda ISO 14443 obstaja tudi ISO 15693 in tovrstnih čipov povprečni NFC čitalniki ne preberejo. 

Tipi NFC čipov in standardi so podrobno opisani v članku Vse kar morate vedeti o NFC nalepkah

Čitalnik Syris RD300-H1 je poseben, ker podpira več različnih protokolov. Primeren je za uporabo s čipi ISO 14443 in za ISO 15693 in čipi, ki delujejo po protokolu Felica.

Od ISO 14443 so najbolj razširjeni čipi MIFARE Classic®, NTAG213, NTAG215, NTAG216, MIFARE DESFire®, MIFARE Ultralight®, MIFARE Plus®…

Od ISO 15693 so najbolj razširjeni , kot so čipi ICODE® SLIX, ter celo čipe tipa Felica.

Kaj lahko naredimo, če nam čitalnik ne prebere NFC čipa?

NFC tehnologija spada v kategorijo bližinskih tehnologij (Proximity) in običajna razdalje branja čipov so med 1 in 5 cm. V primeru branja NFC medijev z manjšo anteno je razdalja manjša, v primeru branja medijev z večjo anteno pa nekoliko večja ampak še nismo odkrili takšnih čitalnikov, ki bi brali čipe na večjih razdaljah od 10 cm.       

Čitalnik RD300-H1-G dobro bere tudi najmanjše NFC medije in s preizkušanjem smo ugotovili, da uspešno prebere tudi nekatere NFC nalepke, ki jih drugi čitalniki ne zaznajo.

Na branje čipov vpliva tudi podlaga na kateri je čitalnik nameščen. Lahko se vam zgodi, da vam v pisarni, ko je čitalnik na mizi vse deluje normalno, če na terenu čitalnik uporabljate na kovinski podlagi, lahko zaznate težave z branjem ali krajšo razdaljo branja. Rešitev predstavlja dvig čitalnika od podlage z uporabo lesene ploščice ali distančnika iz umetne mase.

Kaj lahko naredimo, če nočemo, da nam čitalnik pretipka ID kodo na zalon ampak bi jo zajeli s programom?

Prednost čitalnika RD300 je ta, da ga lahko nastavite, da deluje kot Virtual COM reader, kjer prebere ID kodo čipa navideznih COM vratih. 

Nastavitev naredite tako, da odprete konfigurator in naložite prilagojeni Firmware iz CD-ja.

Tako nastavljeni čitalnik vam poda ID kodo na navideznih COM vratih in le to lahko preverite tudi z orodjem, kot je Putty.

Če slučajno dobite namesto HEX kode kakšne čudne znake, je potrebno odpreti konfigurator in nastaviti lastnost STX ASCII Format. Privzeto bo čitalnik bral 8 mestno HEX kodo, ki so zgolj 4 bajti ID kode. Če želite prebrati celotno 14 mestno kodo je potrebno s konfiguratorjem nastaviti Format ID: 14 HEX

V tem načinu delovanja napredno nastavljanje formata ID kode ne deluje (obračanje bitov in bajtov) in morebitno prilagoditev branja je potrebno opraviti na nivoju programske rešitve.

Je čitalnik Syris RD300 primeren tudi za programiranje NFC čipov?

Vsak NFC čipe ima svojo edinstveno identifikacijsko številko, ki je tovarniško vprogramirana in je ni možno spreminjati. 

Če želimo NFC čipe sprogramirati tako, da odpirajo določen url naslov ali izvajajo druge NFC funkcionalnosti, je za to bolj primeren čitalnik ACR1252U v kombinaciji z namensko aplikacijo, kot je GoToTags ali NFC tools.

Syris RD300 nam omogoča nekaj osnovnega programiranja:

Za vpis url naslova, ki ga mobilne NFC naprave samodejno odprejo je potrebno odpreti konfigurator in iti na zavihek NFC/NDEF ampak tu je potrebno izbrati spodnjo opcijo URL Address.

Če izberemo zgornjo opcijo TEXT + URL, nam le ta vpiše podatke v obliki navadnega zapisa in telefon nam izpiše Nova oznaka je pregledana ter pokaže vpisani test in url.

Druge uporabne funkcije za programiranje, ki jih ponuja osnovni konfigurator RD100/RD200/RD300 Tools:
spreminjanje ključev čipom Mifare Classic (po sektorjih)
branje in pisanje v spomin od čipov Mifare Classic
vpis nekega niza v spomin čipov NTAG in Ultralight ter branje spomina.

Ali lahko zapišemo na čip neko svojo ID kodo?

Če nam obstoječa programska rešitev ne omogoča uporabe tovarniško vprogramirane ID kode čipa, lahko v spomin čipa zapišemo neko svojo ID kodo in le to uporabljamo za identifikacijske namene.

Čitalnik RD300 lahko nastavimo tako, da se obnaša kot navadni Keyboar Emulator čitalnik ampak v resnici bere ID kodo, ki je zapisana v določenem sektorju. Ta funkcija se imenuje AvtoRead.

Nastavitev čitalnika, da dela v AutoRead načinu:
1. nastavimo čitalnik, da bere ASCII znake - Common ID Format: ASCII/FDX-B/AUTO
2. vpišemo novo ID kodo v spomin - zavihek Mifare Write Card Data (ASCII) npr. 1234 
3. Nastavimo čitalnik, da avtomatično prebere vpisano vsebino (pravi sektor in blok)- Zavihek Auto Read Enabled Autor Read Block
4. Nenazadnje je potrebno pisati še ključ v EEPROM čitalnika. Privzeti ključ je FFFFFFFFFFFF, ključ na kartici lahko spremenimo pod zavihkom Mifare Key.

V primeru vprašanj smo na razpolago na info@mave.si ali telefonski številki  041 884 124.

Strokovni članki

Vsi članki