Avansert

Brikkekoding og EPC-minne

Mestre tag-minnearkitektur og GS1-koding for forsyningskjedeintegrasjon

De 4 minnebankene

Hver EPC Gen2-tag har nøyaktig 4 minnebanker, som hver tjener et spesifikt formål. Å forstå denne strukturen er avgjørende for koding, lesing og sikring av taggene dine.

Bank 00 (Reservert): Inneholder 32-bit Kill Password og 32-bit Access Password. Standardverdier er 0x00000000. Kill-passordet deaktiverer taggen permanent når den sendes – irreversibelt. Tilgangspassordet låser minnebanker for å forhindre uautoriserte skriver.

Bank 01 (EPC): Inneholder StoredCRC (16 bits, automatisk beregnet), StoredPC/Protocol Control (16 bits, indikerer EPC-lengde og tag-funksjoner) og selve EPC-verdien – vanligvis 96 bits (12 bytes) for SGTIN-96. Noen tagger støtter 128-bit eller til og med 496-bit EPC-er.

Bank 10 (TID): Fabrikkprogrammert Tag Identifier. Inneholder chip-produsentkode, modellnummer og et unikt serienummer. Denne banken er skrivebeskyttet og kan aldri endres – noe som gjør den uvurderlig for forfalskning og tag-autentisering.

Bank 11 (Bruker): Valgfri tilleggslagring. Størrelsen varierer etter chip: NXP UCODE 9 har 0 bits (ingen brukerminne), Quanray QStar-7U har 512 bits (64 bytes). Bruk den til batchnummer, inspeksjonsdatoer, temperaturterskler eller vedlikeholdslogger. Sjekk alltid tilgjengelig kapasitet før du skriver.

SGTIN-96-koding – Trinn for trinn

SGTIN-96 er den mest brukte EPC-ordningen. Den koder en GTIN-14 (produktets strekkode) pluss et unikt serienummer i nøyaktig 96 bits (12 byte). Dette gir opptil 274 milliarder unike serienumre per produkttype.

96-bits strukturen: Header (8 bits, alltid 0x30 for SGTIN-96) → Filter (3 bits: 0=alle, 1=POS, 2=full kasse, 3=reservert, 4=innerpakning, 5=reservert, 6=enhetslast, 7=komponent) → Partisjon (3 bits: definerer hvordan bits er delt mellom bedriftsprefiks og varenr.) → Bedriftsprefiks (20–40 bits) → Varenr. (4–24 bits) → Serienummer (38 bits).

Partisjonsverdien (0–6) bestemmer lengden på bedriftsprefikset: P=0 → 40-bits prefiks (12 sifre), P=1 → 37-bits (11 sifre), P=2 → 34-bits (10 sifre), P=3 → 30-bits (9 sifre), P=4 → 27-bits (8 sifre), P=5 → 24-bits (7 sifre), P=6 → 20-bits (6 sifre). Lengden på GS1-bedriftsprefikset ditt avgjør hvilken partisjonsverdi du skal bruke.

💡

Bruk Nextwaves TDS RFID Converter-verktøyet på /tools/tds-rfid-converter for å kode og dekode SGTIN-96-verdier interaktivt. Skriv inn GTIN-14 + serienummeret ditt og få hex EPC umiddelbart.

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

Andre EPC-ordninger

Utover SGTIN-96 definerer GS1 flere andre 96-bit EPC-ordninger for forskjellige forsyningskjedidentifikatorer. Hver har sin egen header byte.

Lesing og skriving av brikkeminne

Å lese tagger under inventar er passivt – leseren kringkaster en spørring og tagger svarer med sin EPC fra Bank 01. Men du kan også eksplisitt lese en hvilken som helst minnebank ved å sende en READ-kommando med banknummer, ordforskyvning og ordantall.

Å skrive til tagger krever mer presisjon. Taggen må singuleres (bare én tag svarer), og skriver skjer ett ord (16 bits) om gangen. En full 96-bit EPC-skriving krever 6 sekvensielle ordskrivinger. Hver skriving tar 10–20 ms, så koding av en enkelt tag tar 60–120 ms bare for EPC-data.

Vanlige skrivefeil: Brikken er for langt fra antennen (trenger sterkere signal for skriving enn lesing – bring brikken innenfor 1 meter). Flere brikker i feltet (singulering mislyktes – isoler mål-brikken). Brikkeminne låst (tilgangspassord kreves). Skriveverifisering mislyktes (prøv på nytt, eller brikken kan være defekt – typisk defektrate er 1–3 per 10 000).

💡

Beste praksis: Verifiser alltid etter skriving ved å lese tilbake dataene og sammenligne. En skrivekommando kan lykkes, men korrumpere tilstøtende biter i sjeldne tilfeller. Les-etter-skriv-verifisering fanger disse problemene.

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-sikkerhet og passord

EPC Gen2-tagger støtter to 32-bits passord for sikkerhet. Tilgangspassordet låser bestemte minnebanker – når det er satt, krever den banken passordet før noen lese- eller skriveoperasjon. Kill-passordet deaktiverer taggen permanent når den sendes – en irreversibel operasjon som primært brukes for forbrukerpersonvern i detaljhandel (ødelegger taggen etter utsjekking).

Beste sikkerhetspraksis: Bruk aldri standardpassordet med alle nuller (0x00000000) i produksjon – det gir null sikkerhet. Generer unike passord per tag-batch eller bruk selskapets prefiks som en startverdi. Lagre passord i backend-systemet ditt, aldri på selve taggen (passordminnet kan leses hvis taggen er ulåst). Lås passordbankene etter programmering. Vurder Untraceable-modus (tilgjengelig på nyere brikker) som skjuler TID og reduserer EPC, og gir personvern uten å drepe taggen.

⚠️

Kill-kommandoen er permanent og irreversibel. Det er ingen angre. Når en tag er drept, kan den aldri svare på noen leser igjen. Implementer alltid kill-passordverifisering i programvaren din og krev lederautorisasjon før du utfører kill-kommandoer.