Pokročilý

Kódovanie tagov a pamäť EPC

Ovládnite architektúru pamäte tagov a kódovanie GS1 pre integráciu dodávateľského reťazca

4 pamäťové banky

Každý tag EPC Gen2 má presne 4 pamäťové banky, z ktorých každá slúži na špecifický účel. Pochopenie tejto štruktúry je nevyhnutné pre kódovanie, čítanie a zabezpečenie vašich tagov.

Banka 00 (Reserved): Obsahuje 32-bitové Kill Password a 32-bitové Access Password. Predvolené hodnoty sú 0x00000000. Kill password trvalo deaktivuje tag pri odoslaní. nezvratné. Access password uzamyká pamäťové banky, aby sa zabránilo neoprávnenému zápisu.

Banka 01 (EPC): Obsahuje StoredCRC (16 bitov, automaticky vypočítané), StoredPC/Protocol Control (16 bitov, označuje dĺžku EPC a možnosti tagu) a samotnú hodnotu EPC. typicky 96 bitov (12 bajtov) pre SGTIN-96. Niektoré tagy podporujú 128-bitové alebo dokonca 496-bitové EPC.

Banka 10 (TID): Továrensky naprogramovaný identifikátor tagu. Obsahuje kód výrobcu čipu, číslo modelu a jedinečné sériové číslo. Táto banka je iba na čítanie a nikdy sa nemôže zmeniť. vďaka čomu je neoceniteľná pre boj proti falšovaniu a autentifikáciu tagov.

Banka 11 (User): Voliteľné dodatočné úložisko. Veľkosť sa líši podľa čipu: NXP UCODE 9 má 0 bitov (žiadna používateľská pamäť), Quanray QStar-7U má 512 bitov (64 bajtov). Použite ju pre čísla šarží, dátumy kontroly, teplotné prahy alebo záznamy údržby. Pred zápisom vždy skontrolujte dostupnú kapacitu.

Kódovanie SGTIN-96. Krok za krokom

SGTIN-96 je najpoužívanejšia schéma EPC. Kóduje GTIN-14 (váš čiarový kód produktu) plus jedinečné sériové číslo do presne 96 bitov (12 bajtov). To umožňuje až 274 miliárd jedinečných sériových čísel na typ produktu.

96-bitová štruktúra: Hlava (8 bitov, vždy 0x30 pre SGTIN-96) → Filter (3 bity: 0=všetko, 1=POS, 2=celý obal, 3=rezervované, 4=vnútorné balenie, 5=rezervované, 6=jednotkové zaťaženie, 7=komponent) → Partícia (3 bity: definuje, ako sa bity rozdeľujú medzi predponu spoločnosti a referenciu položky) → Predpona spoločnosti (20–40 bitov) → Referencia položky (4–24 bitov) → Sériové číslo (38 bitov).

Hodnota partície (0–6) určuje dĺžku predpony spoločnosti: P=0 → 40-bitová predpona (12 číslic), P=1 → 37-bitová (11 číslic), P=2 → 34-bitová (10 číslic), P=3 → 30-bitová (9 číslic), P=4 → 27-bitová (8 číslic), P=5 → 24-bitová (7 číslic), P=6 → 20-bitová (6 číslic). Dĺžka predpony vašej spoločnosti GS1 určuje, ktorú hodnotu partície použiť.

💡

Použite nástroj Nextwaves TDS RFID Converter na /tools/tds-rfid-converter na interaktívne kódovanie a dekódovanie hodnôt SGTIN-96. Zadajte svoj GTIN-14 + sériové číslo a okamžite získajte hexadecimálny EPC.

SGTIN-96 Bit Structure
┌────────┬──────┬─────┬──────────────┬──────────────┬──────────────┐
│ Header │Filter│Part │Company Prefix│Item Reference│   Serial     │
│ 8 bits │3 bits│3bits│  20-40 bits  │   4-24 bits  │   38 bits    │
│  0x30  │ 0-7  │ 0-6 │  GS1 prefix  │  product ref │  unique ID   │
└────────┴──────┴─────┴──────────────┴──────────────┴──────────────┘

Partition table (defines prefix/item bit allocation):
P=0: 40-bit prefix (12 digits)  P=4: 27-bit prefix (8 digits)
P=1: 37-bit prefix (11 digits)  P=5: 24-bit prefix (7 digits)
P=2: 34-bit prefix (10 digits)  P=6: 20-bit prefix (6 digits)
P=3: 30-bit prefix (9 digits)

Example: 3034257BF7194E4000001A85
  Header=0x30 Filter=1 Part=5 Prefix=0614141
  Item=812345 Serial=6789 → GTIN-14: 80614141123458

Ďalšie schémy EPC

Okrem SGTIN-96 definuje GS1 niekoľko ďalších 96-bitových EPC schém pre rôzne identifikátory dodávateľského reťazca. Každý má svoj vlastný bajt hlavičky.

Čítanie a zapisovanie do pamäte tagu

Čítanie tagov počas inventarizácie je pasívne. čítačka vysiela dotaz a tagy odpovedajú svojím EPC z Banky 01. Môžete však tiež explicitne prečítať akúkoľvek pamäťovú banku odoslaním príkazu READ s číslom banky, offsetom slova a počtom slov.

Zapisovanie na tagy vyžaduje väčšiu presnosť. Tag musí byť singulovaný (reaguje iba jeden tag) a zápisy sa uskutočňujú po jednom slove (16 bitov). Plný 96-bitový zápis EPC vyžaduje 6 sekvenčných zápisov slov. Každý zápis trvá 10–20 ms, takže kódovanie jedného tagu trvá 60–120 ms len pre dáta EPC.

Bežné zlyhania zápisu: Tag je príliš ďaleko od antény (potrebuje silnejší signál pre zápis ako pre čítanie. Priblížte tag do 1 m). Viacero tagov v poli (singulácia zlyhala. Izolujte cieľový tag). Pamäť tagu uzamknutá (vyžaduje sa prístupové heslo). Overenie zápisu zlyhalo (skúste znova, alebo môže byť tag chybný. Typická miera chybovosti je 1–3 z 10 000).

💡

Najlepšia prax: Vždy overte po zápise spätným prečítaním údajov a porovnaním. Príkaz zápisu môže uspieť, ale v zriedkavých prípadoch poškodiť susedné bity. Overenie po zápise zachytáva tieto problémy.

Write EPC — Nextwaves NRN Protocol
TX → 5A 00 01 02 11 00 0C [EPC_12_BYTES] [CRC16]

Write per 16-bit word: 10-20ms
Full 96-bit EPC = 6 words = 60-120ms total

With access password:
TX → 5A 00 01 02 11 00 10 [PWD_4B] [EPC_12B] [CRC16]

Zabezpečenie tagov a heslá

Tagy EPC Gen2 podporujú dve 32-bitové heslá pre zabezpečenie. Prístupové heslo uzamyká konkrétne pamäťové banky. Po nastavení vyžaduje táto banka heslo pred akoukoľvek operáciou čítania alebo zápisu. Heslo Kill trvalo deaktivuje tag pri prenose. Ireverzibilná operácia používaná predovšetkým pre súkromie spotrebiteľov v maloobchode (zničenie tagu po odhlásení).

Najlepšie postupy zabezpečenia: Nikdy nepoužívajte predvolené heslo so všetkými nulami (0x00000000) vo výrobe. Neposkytuje žiadne zabezpečenie. Generujte jedinečné heslá pre každú dávku tagov alebo použite predponu svojej spoločnosti ako základ. Uložte heslá vo svojom back-end systéme, nikdy nie na samotnom tagu (pamäť hesla sa dá prečítať, ak je tag odomknutý). Uzamknite banky hesiel po programovaní. Zvážte režim Untraceable (dostupný na novších čipoch), ktorý skrýva TID a znižuje EPC, čím poskytuje súkromie bez zničenia tagu.

⚠️

Príkaz Kill je trvalý a nezvratný. Neexistuje možnosť vrátenia späť. Akonáhle je tag zabitý, už nikdy nemôže reagovať na žiadnu čítačku. Vždy implementujte overenie kill-hesla vo svojom softvéri a vyžadujte autorizáciu manažéra pred vykonaním príkazov kill.