Розширений

Кодування тегів та пам'ять EPC

Оволодійте архітектурою пам'яті міток та кодуванням GS1 для інтеграції ланцюга поставок

4 банки пам'яті

Кожен тег EPC Gen2 має рівно 4 банки пам'яті, кожен з яких служить певній меті. Розуміння цієї структури має важливе значення для кодування, зчитування та захисту ваших тегів.

Банк 00 (Reserved): Містить 32-бітний Kill Password та 32-бітний Access Password. Значення за замовчуванням — 0x00000000. Kill password назавжди вимикає тег під час надсилання. Незворотньо. Access password блокує банки пам'яті, щоб запобігти несанкціонованому запису.

Банк 01 (EPC): Містить StoredCRC (16 біт, обчислюється автоматично), StoredPC/Protocol Control (16 біт, вказує довжину EPC та можливості тегу) та саме значення EPC. Зазвичай 96 біт (12 байт) для SGTIN-96. Деякі теги підтримують 128-бітні або навіть 496-бітові EPC.

Банк 10 (TID): Заводський ідентифікатор тегу. Містить код виробника мікросхеми, номер моделі та унікальний серійний номер. Цей банк доступний лише для читання і ніколи не може бути змінений. що робить його безцінним для боротьби з підробками та аутентифікації тегів.

Банк 11 (User): Додаткове додаткове сховище. Розмір залежить від мікросхеми: 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=all, 1=POS, 2=full case, 3=reserved, 4=inner pack, 5=reserved, 6=unit load, 7=component) → Розділ (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 + серійний номер та миттєво отримайте 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

Інші схеми EPC

Окрім SGTIN-96, GS1 визначає кілька інших 96-бітових схем EPC для різних ідентифікаторів ланцюга поставок. Кожен має власний байт заголовка.

Зчитування та запис пам'яті тегів

Зчитування тегів під час інвентаризації є пасивним. зчитувач транслює запит, і теги відповідають своїм EPC з Банку 01. Але ви також можете явно зчитати будь-який банк пам'яті, надіславши команду READ з номером банку, зміщенням слова та кількістю слів.

Запис на теги вимагає більшої точності. Тег повинен бути сингульованим (відповідає лише один тег), і записи відбуваються по одному слову (16 біт) за раз. Повний запис EPC на 96 біт вимагає 6 послідовних записів слів. Кожен запис займає 10–20 мс, тому кодування одного тегу займає 60–120 мс лише для даних EPC.

Поширені збої при записі: Тег занадто далеко від антени (потрібен сильніший сигнал для запису, ніж для зчитування. Піднесіть тег на відстань до 1 м). Кілька тегів у полі (сингуляція не вдалася. Ізолюйте цільовий тег). Пам'ять тегу заблокована (потрібен пароль доступу). Не вдалося перевірити запис (спробуйте ще раз, або тег може бути дефектним. Типовий рівень дефектів становить 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) у виробництві. Він не забезпечує жодної безпеки. Створюйте унікальні паролі для кожної партії міток або використовуйте префікс своєї компанії як основу. Зберігайте паролі у своїй внутрішній системі, ніколи не на самій мітці (пам'ять пароля можна прочитати, якщо мітка розблокована). Заблокуйте банки паролів після програмування. Розгляньте можливість використання режиму Untraceable (доступний на нових чіпах), який приховує TID та зменшує EPC, забезпечуючи конфіденційність без знищення мітки.

⚠️

Команда Kill є постійною та незворотною. Немає можливості скасувати. Після знищення тегу він ніколи більше не зможе відповідати жодному зчитувачу. Завжди реалізуйте перевірку kill-пароля у своєму програмному забезпеченні та вимагайте авторизацію менеджера перед виконанням команд kill.