Geavanceerd

Tag codering & EPC-geheugen

Beheers taggeheugenarchitectuur en GS1-codering voor supply chain-integratie

De 4 Geheugenbanken

Elke EPC Gen2-tag heeft precies 4 geheugenbanken, die elk een specifiek doel dienen. Inzicht in deze structuur is essentieel voor het coderen, lezen en beveiligen van uw tags.

Bank 00 (Reserved): Bevat het 32-bits Kill-wachtwoord en het 32-bits Access-wachtwoord. Standaardwaarden zijn 0x00000000. Het kill-wachtwoord schakelt de tag permanent uit wanneer deze wordt verzonden. onomkeerbaar. Het toegangswachtwoord vergrendelt geheugenbanken om ongeoorloofd schrijven te voorkomen.

Bank 01 (EPC): Bevat StoredCRC (16 bits, automatisch berekend), StoredPC/Protocol Control (16 bits, geeft EPC-lengte en tagmogelijkheden aan) en de EPC-waarde zelf. meestal 96 bits (12 bytes) voor SGTIN-96. Sommige tags ondersteunen 128-bits of zelfs 496-bits EPC's.

Bank 10 (TID): Fabrieksgeprogrammeerde Tag Identifier. Bevat de chipfabrikantcode, het modelnummer en een uniek serienummer. Deze bank is alleen-lezen en kan nooit worden gewijzigd. waardoor het van onschatbare waarde is voor anti-namaak en tag-authenticatie.

Bank 11 (User): Optionele extra opslag. Grootte varieert per chip: NXP UCODE 9 heeft 0 bits (geen gebruikersgeheugen), Quanray QStar-7U heeft 512 bits (64 bytes). Gebruik het voor batchnummers, inspectiedata, temperatuurdrempels of onderhoudsrecords. Controleer altijd de beschikbare capaciteit voordat u schrijft.

SGTIN-96 codering. Stap voor stap

SGTIN-96 is de meest gebruikte EPC-schema. Het codeert een GTIN-14 (uw productbarcode) plus een uniek serienummer in exact 96 bits (12 bytes). Dit maakt tot 274 miljard unieke serienummers per producttype mogelijk.

De 96-bit structuur: Header (8 bits, altijd 0x30 voor SGTIN-96) → Filter (3 bits: 0=alles, 1=POS, 2=volle doos, 3=gereserveerd, 4=binnenverpakking, 5=gereserveerd, 6=unit load, 7=component) → Partition (3 bits: definieert hoe bits worden verdeeld tussen bedrijfsprefix en itemreferentie) → Bedrijfsprefix (20–40 bits) → Itemreferentie (4–24 bits) → Serienummer (38 bits).

De Partition-waarde (0–6) bepaalt de lengte van de bedrijfsprefix: P=0 → 40-bit prefix (12 cijfers), P=1 → 37-bit (11 cijfers), P=2 → 34-bit (10 cijfers), P=3 → 30-bit (9 cijfers), P=4 → 27-bit (8 cijfers), P=5 → 24-bit (7 cijfers), P=6 → 20-bit (6 cijfers). De lengte van uw GS1-bedrijfsprefix bepaalt welke partition-waarde u moet gebruiken.

💡

Gebruik de Nextwaves TDS RFID Converter-tool op /tools/tds-rfid-converter om SGTIN-96-waarden interactief te coderen en decoderen. Voer uw GTIN-14 + serienummer in en krijg direct de 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

Andere EPC-schema's

Naast SGTIN-96 definieert GS1 verschillende andere 96-bits EPC-schema's voor verschillende supply chain-identificatoren. Elk heeft zijn eigen headerbyte.

Taggeheugen lezen en schrijven

Het lezen van tags tijdens de inventarisatie is passief. de reader zendt een query uit en tags reageren met hun EPC uit Bank 01. Maar u kunt ook expliciet elke geheugenbank lezen door een READ-opdracht te verzenden met het banknummer, de woordoffset en het aantal woorden.

Het schrijven naar tags vereist meer precisie. De tag moet worden gesinguleerd (slechts één tag reageert) en schrijven gebeurt één woord (16 bits) per keer. Een volledige 96-bit EPC-schrijving vereist 6 opeenvolgende woord-schrijvingen. Elke schrijving duurt 10–20 ms, dus het coderen van een enkele tag duurt 60–120 ms, alleen voor EPC-gegevens.

Veelvoorkomende schrijffouten: Tag te ver van de antenne (heeft een sterker signaal nodig voor schrijven dan voor lezen. Breng de tag binnen 1 m). Meerdere tags in het veld (singulatie mislukt. Isoleer de doeltag). Taggeheugen vergrendeld (toegangswachtwoord vereist). Schrijfverificatie mislukt (probeer het opnieuw, of de tag kan defect zijn. De typische defectpercentage is 1–3 per 10.000).

💡

Best practice: Controleer altijd na het schrijven door de gegevens terug te lezen en te vergelijken. Een schrijfbewerking kan slagen, maar in zeldzame gevallen aangrenzende bits beschadigen. Read-after-write verificatie vangt deze problemen op.

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]

Tag Beveiliging & Wachtwoorden

EPC Gen2-tags ondersteunen twee 32-bits wachtwoorden voor beveiliging. Het Toegangswachtwoord vergrendelt specifieke geheugenbanken. Eenmaal ingesteld, vereist die bank het wachtwoord voordat er een lees- of schrijfbewerking kan worden uitgevoerd. Het Kill-wachtwoord schakelt de tag permanent uit wanneer deze wordt verzonden. Een onomkeerbare bewerking die voornamelijk wordt gebruikt voor consumentenprivacy in de detailhandel (het vernietigen van de tag na het afrekenen).

Best practices voor beveiliging: Gebruik nooit het standaard wachtwoord van allemaal nullen (0x00000000) in productie. Het biedt geen beveiliging. Genereer unieke wachtwoorden per tagbatch of gebruik uw bedrijfsprefix als seed. Sla wachtwoorden op in uw backendsysteem, nooit op de tag zelf (het wachtwoordgeheugen kan worden gelezen als de tag is ontgrendeld). Vergrendel de wachtwoordbanken na het programmeren. Overweeg de Untraceable-modus (beschikbaar op nieuwere chips) die TID verbergt en EPC vermindert, waardoor privacy wordt geboden zonder de tag te doden.

⚠️

De Kill-opdracht is permanent en onomkeerbaar. Er is geen ongedaan maken. Zodra een tag is 'gekilld', kan deze nooit meer reageren op een reader. Implementeer altijd kill-wachtwoordverificatie in uw software en vereis managerautorisatie voordat u kill-opdrachten uitvoert.