Pokročilý

Kódování tagu a paměť EPC

Ovládněte architekturu paměti tagů a kódování GS1 pro integraci v dodavatelském řetězci

4 Paměťové banky

Každá EPC Gen2 značka má přesně 4 paměťové banky, z nichž každá slouží konkrétnímu účelu. Porozumění této struktuře je nezbytné pro kódování, čtení a zabezpečení vašich značek.

Banka 00 (Rezervována): Obsahuje 32‑bitové Kill Password a 32‑bitové Access Password. Výchozí hodnoty jsou 0x00000000. Kill password trvale deaktivuje značku po odeslání – nevratně. Access password zamyká paměťové banky, aby zabránil neautorizovaným zápisům.

Banka 01 (EPC): Obsahuje StoredCRC (16 bitů, automaticky vypočítáno), StoredPC/Protocol Control (16 bitů, udává délku EPC a schopnosti značky) a samotnou hodnotu EPC. Typicky 96 bitů (12 bytů) pro SGTIN‑96. Některé značky podporují 128‑bitové nebo dokonce 496‑bitové EPC.

Banka 10 (TID): Továrně naprogramovaný identifikátor značky. Obsahuje kód výrobce čipu, číslo modelu a jedinečné sériové číslo. Tato banka je pouze pro čtení a nelze ji nikdy změnit, což ji činí neocenitelnou pro boj proti padělání a autentizaci značek.

Banka 11 (User): Volitelná dodatečná paměť. Velikost se liší podle čipu: NXP UCODE 9 má 0 bitů (žádná uživatelská paměť), Quanray QStar‑7U má 512 bitů (64 bytů). Použijte ji pro čísla šarží, data inspekcí, teplotní limity nebo záznamy údržby. Vždy před zápisem zkontrolujte dostupnou kapacitu.

Kódování SGTIN‑96. Krok za krokem

SGTIN‑96 je nejrozšířenější schéma EPC. Kóduje GTIN‑14 (čárový kód vašeho produktu) plus jedinečné sériové číslo do přesně 96 bitů (12 bytů). To umožňuje až 274 miliard jedinečných sériových čísel na typ produktu.

Struktura 96 bitů: Header (8 bitů, vždy 0x30 pro SGTIN‑96) → Filter (3 bity: 0=all, 1=POS, 2=full case, 3=reserved, 4=inner pack, 5=reserved, 6=unit load, 7=component) → Partition (3 bity: určuje, jak jsou bity rozděleny mezi company prefix a item reference) → Company Prefix (20–40 bitů) → Item Reference (4–24 bitů) → Serial Number (38 bitů).

Hodnota Partition (0–6) určuje délku Company Prefix: P=0 → 40‑bitový prefix (12 číslic), P=1 → 37 bitů (11 číslic), P=2 → 34 bitů (10 číslic), P=3 → 30 bitů (9 číslic), P=4 → 27 bitů (8 číslic), P=5 → 24 bitů (7 číslic), P=6 → 20 bitů (6 číslic). Délka vašeho GS1 company prefix určuje, kterou hodnotu partition použít.

💡

Použijte nástroj Nextwaves TDS RFID Converter na adrese /tools/tds-rfid-converter k interaktivnímu kódování a dekódování hodnot SGTIN-96. Zadejte svůj GTIN‑14 + sériové číslo a okamžitě získáte hex 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

Další EPC schémata

Mimo SGTIN‑96 definuje GS1 několik dalších 96‑bitových EPC schémat pro různé identifikátory v dodavatelském řetězci. Každé má svůj vlastní hlavičkový bajt.

Čtení a zápis paměti tagu

Čtení značek během inventury je pasivní – čtečka vysílá dotaz a značky odpovídají svým EPC z Banky 01. Můžete však také explicitně přečíst libovolnou paměťovou banku odesláním příkazu READ s číslem banky, offsetem slova a počtem slov.

Zápis na tagy vyžaduje vyšší přesnost. Tag musí být singulován (odpovídá jen jeden tag) a zápisy probíhají po jednom slovu (16 bitů) najednou. Kompletní 96‑bitový zápis EPC vyžaduje 6 po sobě jdoucích zápisů slov. Každý zápis trvá 10–20 ms, takže zakódování jednoho tagu zabere 60–120 ms jen pro data EPC.

Časté selhání zápisu: Tag je příliš daleko od antény (pro zápis je potřeba silnější signál než pro čtení – přibližte tag do 1 m). Více tagů v poli (selhala singulace – izolujte cílový tag). Paměť tagu je uzamčena (vyžaduje přístupové heslo). Ověření zápisu selhalo (opakujte, nebo může být tag vadný – typická míra vad je 1–3 z 10 000).

💡

Nejlepší praxe: Vždy po zápisu ověřte čtením zpětných dat a jejich porovnáním. Příkaz zápisu může být úspěšný, ale v ojedinělých případech poškodit sousední bity. Ověření čtení po zápisu zachytí tyto 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čení tagů a hesla

Tagy EPC Gen2 podporují dva 32bitová hesla pro zabezpečení. Přístupové heslo (Access Password) zamyká konkrétní paměťové banky. Jakmile je nastaveno, tato banka vyžaduje heslo před jakoukoliv operací čtení nebo zápisu. Kill Password trvale deaktivuje tag po přenosu. Nevratná operace, která se primárně používá pro ochranu soukromí spotřebitelů v maloobchodě (zničení tagu po pokladně).

Nejlepší bezpečnostní postupy: V produkci nikdy nepoužívejte výchozí heslo se všemi nulami (0x00000000). Poskytuje nulové zabezpečení. Generujte unikátní hesla pro každou šarži tagů nebo použijte prefix vaší společnosti jako semeno. Ukládejte hesla ve vašem backendovém systému, nikdy přímo na tag (paměť hesla lze přečíst, pokud je tag odemčen). Po naprogramování zamkněte heslové banky. Zvažte režim Untraceable (dostupný na novějších čipech), který skrývá TID a snižuje EPC, čímž poskytuje soukromí bez nutnosti zničení tagu.

⚠️

Příkaz Kill je trvalý a nevratný. Nelze jej vrátit zpět. Jakmile je značka zničena, již nikdy neodpoví žádné čtečce. Vždy implementujte ověření kill‑passwordu ve svém softwaru a požadujte schválení manažera před provedením příkazů kill.