Напредно

Кодирање на тагови и EPC меморија

Овладете ја архитектурата на меморијата на тагови и кодирањето GS1 за интеграција на синџирот на снабдување

4 Мемориски Банки

Секоја EPC Gen2 ознака има точно 4 мемориски банки, секоја со одредена цел. Разбирањето на оваа структура е од суштинско значење за кодирање, читање и обезбедување на вашите ознаки.

Банка 00 (Резервирано): Ги содржи 32-битниот Kill Password и 32-битниот Access Password. Стандардните вредности се 0x00000000. Лозинката за убивање трајно ја оневозможува ознаката кога е испратена. Неповратна. Лозинката за пристап ги заклучува мемориските банки за да спречи неовластено пишување.

Банка 01 (EPC): Содржи StoredCRC (16 бита, автоматски пресметано), StoredPC/Protocol Control (16 бита, го означува должината на EPC и можностите на ознаката) и самата EPC вредност. типично 96 бита (12 бајти) за SGTIN-96. Некои ознаки поддржуваат 128-битни или дури 496-битни EPC.

Банка 10 (TID): Фабрички програмирана идентификација на ознаката. Го содржи кодот на производителот на чипот, бројот на моделот и единствен сериски број. Оваа банка е само за читање и никогаш не може да се промени. што го прави непроценливо за борба против фалсификување и автентикација на ознаки.

Банка 11 (Корисник): Дополнително складирање по избор. Големината варира според чипот: NXP UCODE 9 има 0 бита (без корисничка меморија), Quanray QStar-7U има 512 бита (64 бајти). Користете го за броеви на серии, датуми на инспекција, температурни прагови или записи за одржување. Секогаш проверувајте го достапниот капацитет пред да пишувате.

SGTIN-96 кодирање. Чекор по чекор

SGTIN-96 е најшироко користената EPC шема. Таа кодира GTIN-14 (вашиот баркод на производот) плус единствен сериски број во точно 96 бита (12 бајти). Ова овозможува до 274 милијарди единствени сериски броеви по тип на производ.

96-битната структура: Заглавие (8 бита, секогаш 0x30 за SGTIN-96) → Филтер (3 бита: 0=сите, 1=POS, 2=целосен случај, 3=резервирано, 4=внатрешно пакување, 5=резервирано, 6=единечно оптоварување, 7=компонента) → Партиција (3 бита: дефинира како битовите се поделени помеѓу префиксот на компанијата и референцата на ставката) → Префикс на компанијата (20–40 бита) → Референца на ставката (4–24 бита) → Сериски број (38 бита).

Вредноста на партицијата (0–6) ја одредува должината на префиксот на компанијата: P=0 → 40-битен префикс (12 цифри), P=1 → 37-битен (11 цифри), P=2 → 34-битен (10 цифри), P=3 → 30-битен (9 цифри), P=4 → 27-битен (8 цифри), P=5 → 24-битен (7 цифри), P=6 → 20-битен (6 цифри). Должината на префиксот на вашата GS1 компанија одредува која вредност на партицијата да се користи.

💡

Користете ја алатката Nextwaves TDS RFID Converter на /tools/tds-rfid-converter за интерактивно кодирање и декодирање на SGTIN-96 вредности. Внесете го вашиот GTIN-14 + сериски број и веднаш добијте го хексадецималниот 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

Други EPC Шеми

Освен SGTIN-96, GS1 дефинира неколку други 96-битни EPC шеми за различни идентификатори на синџирот на снабдување. Секој има свој бајт за заглавие.

Читање и запишување на меморијата на тагот

Читањето ознаки за време на инвентар е пасивно. читачот емитува барање и ознаките одговараат со нивниот EPC од Банка 01. Но, исто така можете експлицитно да прочитате која било мемориска банка со испраќање на команда READ со бројот на банката, поместувањето на зборот и бројот на зборови.

Запишувањето на тагови бара поголема прецизност. Тагот мора да биде сингулиран (само еден таг да одговара), а запишувањата се случуваат по еден збор (16 бита) истовремено. Целосно запишување на 96-битен EPC бара 6 последователни запишувања на зборови. Секое запишување трае 10–20ms, така што кодирањето на еден таг трае 60–120ms само за EPC податоците.

Вообичаени неуспеси при запишување: Тагот е премногу далеку од антената (потребен е посилен сигнал за запишување отколку за читање. Донесете го тагот во рамките на 1m). Повеќе тагови во полето (сингулацијата не успеа. Изолирајте го целниот таг). Меморијата на тагот е заклучена (потребна е лозинка за пристап). Неуспешно верифицирање на запишувањето (обидете се повторно, или тагот може да е неисправен. Типичната стапка на дефекти е 1–3 на 10.000).

💡

Најдобра практика: Секогаш проверувајте по пишувањето со повторно читање на податоците и споредување. Командата за пишување може да успее, но во ретки случаи да ги оштети соседните битови. Верификацијата по читањето го фаќа овој проблем.

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]

Безбедност на тагови и лозинки

EPC Gen2 таговите поддржуваат две 32-битни лозинки за безбедност. Лозинката за пристап ги заклучува специфичните мемориски банки. Откако ќе се постави, таа банка бара лозинка пред која било операција за читање или пишување. Лозинката за убивање трајно го оневозможува тагот кога се пренесува. неповратна операција првенствено се користи за приватност на потрошувачите во малопродажбата (уништување на тагот по наплатата).

Најдобри практики за безбедност: Никогаш не користете ја стандардната лозинка со сите нули (0x00000000) во производството. обезбедува нула безбедност. Генерирајте уникатни лозинки по серија тагови или користете го префиксот на вашата компанија како семе. Чувајте ги лозинките во вашиот backend систем, никогаш на самиот таг (меморијата за лозинка може да се прочита ако тагот е отклучен). Заклучете ги банките за лозинки по програмирањето. Размислете за режимот Untraceable (достапен на поновите чипови) кој го крие TID и го намалува EPC, обезбедувајќи приватност без да го убие тагот.

⚠️

Командата Kill е трајна и неповратна. Нема поништување. Откако ознаката ќе биде убиена, таа никогаш повеќе нема да може да одговори на ниту еден читач. Секогаш имплементирајте верификација на лозинката за убивање во вашиот софтвер и барајте овластување од менаџерот пред да извршите команди за убивање.