Avanceret

Tagkodning og EPC-hukommelse

Mestre tag-hukommelsesarkitektur og GS1-kodning til forsyningskædeintegration

De 4 hukommelsesbanker

Hver EPC Gen2-tag har præcis 4 hukommelsesbanker, der hver tjener et specifikt formål. Forståelse af denne struktur er afgørende for kodning, læsning og sikring af dine tags.

Bank 00 (Reserveret): Indeholder 32-bit Kill Password og 32-bit Access Password. Standardværdier er 0x00000000. Kill-adgangskoden deaktiverer permanent tagget, når det sendes. irreversibel. Adgangskoden låser hukommelsesbanker for at forhindre uautoriserede skrivninger.

Bank 01 (EPC): Indeholder StoredCRC (16 bit, automatisk beregnet), StoredPC/Protocol Control (16 bit, angiver EPC-længde og tag-kapaciteter) og selve EPC-værdien. typisk 96 bit (12 byte) for SGTIN-96. Nogle tags understøtter 128-bit eller endda 496-bit EPC'er.

Bank 10 (TID): Fabriksprogrammeret Tag Identifier. Indeholder chip-producentkoden, modelnummeret og et unikt serienummer. Denne bank er skrivebeskyttet og kan aldrig ændres. hvilket gør det uvurderligt til bekæmpelse af forfalskning og tag-godkendelse.

Bank 11 (Bruger): Valgfri yderligere lagring. Størrelsen varierer efter chip: NXP UCODE 9 har 0 bit (ingen brugermemory), Quanray QStar-7U har 512 bit (64 byte). Brug den til batchnumre, inspektionsdatoer, temperaturtærskler eller vedligeholdelsesoptegnelser. Kontroller altid den tilgængelige kapacitet, før du skriver.

SGTIN-96-kodning. Trin for trin

SGTIN-96 er den mest udbredte EPC-ordning. Den koder en GTIN-14 (din produktstregkode) plus et unikt serienummer i præcis 96 bits (12 bytes). Dette giver op til 274 milliarder unikke serienumre pr. produkttype.

96-bit strukturen: Header (8 bits, altid 0x30 for SGTIN-96) → Filter (3 bits: 0=alle, 1=POS, 2=fuld kasse, 3=reserveret, 4=indvendig pakke, 5=reserveret, 6=enhedsbelastning, 7=komponent) → Partition (3 bits: definerer, hvordan bits er opdelt mellem virksomhedspræfiks og varehenvisning) → Virksomhedspræfiks (20–40 bits) → Varehenvisning (4–24 bits) → Serienummer (38 bits).

Partition-værdien (0–6) bestemmer længden af virksomhedspræfikset: P=0 → 40-bit præfiks (12 cifre), P=1 → 37-bit (11 cifre), P=2 → 34-bit (10 cifre), P=3 → 30-bit (9 cifre), P=4 → 27-bit (8 cifre), P=5 → 24-bit (7 cifre), P=6 → 20-bit (6 cifre). Længden af dit GS1-virksomhedspræfiks afgør, hvilken partition-værdi du skal bruge.

💡

Brug Nextwaves TDS RFID Converter-værktøjet på /tools/tds-rfid-converter til interaktivt at kode og afkode SGTIN-96-værdier. Indtast din GTIN-14 + serienummer, og få hex EPC med det samme.

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

Ud over SGTIN-96 definerer GS1 flere andre 96-bit EPC-ordninger for forskellige forsyningskædeidentifikatorer. Hver har sin egen header-byte.

Læsning og skrivning af taghukommelse

Læsning af tags under lager er passiv. læseren udsender en forespørgsel, og tags svarer med deres EPC fra Bank 01. Men du kan også eksplicit læse enhver hukommelsesbank ved at sende en LÆSE-kommando med banknummeret, ordoffset og ordantal.

Skrivning til tags kræver mere præcision. Tagget skal singuleres (kun ét tag, der svarer), og skrivning sker ét ord (16 bits) ad gangen. En fuld 96-bit EPC-skrivning kræver 6 sekventielle ordskrivninger. Hver skrivning tager 10–20 ms, så kodning af et enkelt tag tager 60–120 ms alene for EPC-data.

Almindelige skrivefejl: Taget er for langt fra antennen (kræver stærkere signal til skrivning end til læsning. Bring tagget inden for 1 m). Flere tags i feltet (singulering mislykkedes. Isoler måltagget). Taghukommelse låst (adgangskode påkrævet). Skriveverificering mislykkedes (prøv igen, eller tagget kan være defekt. Typisk defektrate er 1–3 pr. 10.000).

💡

Bedste praksis: Verificer altid efter skrivning ved at læse dataene tilbage og sammenligne. En skrivekommando kan lykkes, men beskadige tilstødende bits i sjældne tilfælde. Read-after-write-verifikation fanger disse problemer.

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]

Tagsikkerhed og adgangskoder

EPC Gen2-tags understøtter to 32-bit adgangskoder for sikkerhed. Adgangskoden låser specifikke hukommelsesbanker. Når den er indstillet, kræver den bank adgangskoden før enhver læse- eller skriveoperation. Kill-adgangskoden deaktiverer permanent tagget, når det transmitteres. en irreversibel operation, der primært bruges til forbrugerbeskyttelse i detailhandlen (ødelæggelse af tagget efter kassen).

Bedste sikkerhedspraksis: Brug aldrig standardadgangskoden med alle nuller (0x00000000) i produktionen. det giver nul sikkerhed. Generer unikke adgangskoder pr. tag-batch, eller brug din virksomhedspræfiks som et seed. Gem adgangskoder i dit backend-system, aldrig på selve tagget (hukommelsen til adgangskoden kan læses, hvis tagget er låst op). Lås adgangskodebankerne efter programmering. Overvej Untraceable-tilstand (tilgængelig på nyere chips), som skjuler TID og reducerer EPC, hvilket giver privatliv uden at dræbe tagget.

⚠️

Kill-kommandoet er permanent og irreversibelt. Der er ingen fortryd. Når en tag er dræbt, kan den aldrig svare på nogen læser igen. Implementer altid kill-adgangskodeverifikation i din software, og kræv administratorautorisation, før du udfører kill-kommandoer.