Avansat

Codificarea tag-urilor și memoria EPC

Stăpâniți arhitectura memoriei etichetelor și codificarea GS1 pentru integrarea lanțului de aprovizionare

Cele 4 bănci de memorie

Fiecare etichetă EPC Gen2 are exact 4 bănci de memorie, fiecare servind unui scop specific. Înțelegerea acestei structuri este esențială pentru codificarea, citirea și securizarea etichetelor dvs.

Banca 00 (Rezervat): Conține Kill Password de 32 de biți și Access Password de 32 de biți. Valorile implicite sunt 0x00000000. Parola de ucidere dezactivează permanent eticheta atunci când este trimisă. ireversibil. Parola de acces blochează băncile de memorie pentru a preveni scrierile neautorizate.

Banca 01 (EPC): Conține StoredCRC (16 biți, calculat automat), StoredPC/Protocol Control (16 biți, indică lungimea EPC și capacitățile etichetei) și valoarea EPC în sine. de obicei 96 de biți (12 octeți) pentru SGTIN-96. Unele etichete suportă EPC-uri de 128 de biți sau chiar 496 de biți.

Banca 10 (TID): Tag Identifier programat în fabrică. Conține codul producătorului de cipuri, numărul modelului și un număr de serie unic. Această bancă este doar pentru citire și nu poate fi modificată niciodată. ceea ce o face de neprețuit pentru combaterea contrafacerii și autentificarea etichetelor.

Banca 11 (Utilizator): Stocare suplimentară opțională. Dimensiunea variază în funcție de cip: NXP UCODE 9 are 0 biți (fără memorie utilizator), Quanray QStar-7U are 512 biți (64 octeți). Utilizați-o pentru numere de lot, date de inspecție, praguri de temperatură sau înregistrări de întreținere. Verificați întotdeauna capacitatea disponibilă înainte de scriere.

Codificarea SGTIN-96. Pas cu pas

SGTIN-96 este cea mai utilizată schemă EPC. Acesta codifică un GTIN-14 (codul de bare al produsului dvs.) plus un număr de serie unic în exact 96 de biți (12 octeți). Acest lucru permite până la 274 de miliarde de numere de serie unice per tip de produs.

Structura de 96 de biți: Header (8 biți, întotdeauna 0x30 pentru SGTIN-96) → Filter (3 biți: 0=toate, 1=POS, 2=carcasă completă, 3=rezervat, 4=pachet interior, 5=rezervat, 6=sarcină unitară, 7=componentă) → Partition (3 biți: definește modul în care biții sunt împărțiți între prefixul companiei și referința articolului) → Prefixul companiei (20–40 biți) → Referința articolului (4–24 biți) → Numărul de serie (38 biți).

Valoarea Partition (0–6) determină lungimea prefixului companiei: P=0 → prefix de 40 de biți (12 cifre), P=1 → 37 de biți (11 cifre), P=2 → 34 de biți (10 cifre), P=3 → 30 de biți (9 cifre), P=4 → 27 de biți (8 cifre), P=5 → 24 de biți (7 cifre), P=6 → 20 de biți (6 cifre). Lungimea prefixului companiei GS1 determină ce valoare de partiție să utilizați.

💡

Utilizați instrumentul Nextwaves TDS RFID Converter la /tools/tds-rfid-converter pentru a codifica și decodifica interactiv valorile SGTIN-96. Introduceți GTIN-14 + serial și obțineți instantaneu EPC hexazecimal.

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

Alte scheme EPC

Dincolo de SGTIN-96, GS1 definește mai multe alte scheme EPC de 96 de biți pentru diferiți identificatori ai lanțului de aprovizionare. Fiecare are propriul său octet de antet.

Citirea și scrierea memoriei tag-ului

Citirea etichetelor în timpul inventarului este pasivă. cititorul difuzează o interogare, iar etichetele răspund cu EPC-ul lor din Banca 01. Dar puteți, de asemenea, să citiți în mod explicit orice bancă de memorie trimițând o comandă READ cu numărul băncii, offset-ul cuvântului și numărul de cuvinte.

Scrierea pe tag-uri necesită mai multă precizie. Tag-ul trebuie să fie singulat (un singur tag care răspunde), iar scrierile se fac câte un cuvânt (16 biți) o dată. O scriere EPC completă de 96 de biți necesită 6 scrieri secvențiale de cuvinte. Fiecare scriere durează 10–20ms, astfel încât codificarea unui singur tag durează 60–120ms doar pentru datele EPC.

Eșecuri comune la scriere: Tag-ul este prea departe de antenă (are nevoie de un semnal mai puternic pentru scrieri decât pentru citiri. Apropiați tag-ul la o distanță de 1m). Mai multe tag-uri în câmp (singulare nu a reușit. Izolați tag-ul țintă). Memoria tag-ului blocată (este necesară parola de acces). Verificarea scrierii a eșuat (reîncercați sau tag-ul poate fi defect. Rata tipică de defectare este de 1–3 la 10.000).

💡

Cea mai bună practică: Verificați întotdeauna după scriere prin citirea datelor și compararea. O comandă de scriere poate reuși, dar poate corupe biții adiacenți în cazuri rare. Verificarea după scriere detectează aceste probleme.

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]

Securitatea Etichetelor și Parole

Etichetele EPC Gen2 acceptă două parole de 32 de biți pentru securitate. Parola de acces blochează anumite bănci de memorie. odată setată, acea bancă necesită parola înainte de orice operație de citire sau scriere. Parola de distrugere dezactivează permanent eticheta atunci când este transmisă. o operație ireversibilă utilizată în principal pentru confidențialitatea consumatorilor în retail (distrugerea etichetei după finalizarea comenzii).

Cele mai bune practici de securitate: Nu utilizați niciodată parola implicită cu zero (0x00000000) în producție. aceasta nu oferă nicio securitate. Generați parole unice per lot de etichete sau utilizați prefixul companiei ca punct de plecare. Stocați parolele în sistemul dvs. backend, niciodată pe eticheta în sine (memoria parolei poate fi citită dacă eticheta este deblocată). Blocați băncile de parole după programare. Luați în considerare modul Untraceable (disponibil pe cipuri mai noi) care ascunde TID și reduce EPC, oferind confidențialitate fără a distruge eticheta.

⚠️

Comanda Kill este permanentă și ireversibilă. Nu există nicio anulare. Odată ce o etichetă este ucisă, aceasta nu mai poate răspunde niciodată la niciun cititor. Implementați întotdeauna verificarea parolei de ucidere în software-ul dvs. și solicitați autorizarea managerului înainte de a executa comenzi de ucidere.