Avanzado

Codificación de etiquetas e memoria EPC

Domine a arquitectura da memoria da etiqueta e a codificación GS1 para a integración da cadea de subministración

Os 4 bancos de memoria

Cada etiqueta EPC Gen2 ten exactamente 4 bancos de memoria, cada un cun propósito específico. Comprender esta estrutura é esencial para codificar, ler e protexer as túas etiquetas.

Banco 00 (Reservado): Contén o contrasinal de eliminación de 32 bits e o contrasinal de acceso de 32 bits. Os valores predeterminados son 0x00000000. O contrasinal de eliminación desactiva permanentemente a etiqueta cando se envía. irreversible. O contrasinal de acceso bloquea os bancos de memoria para evitar escrituras non autorizadas.

Banco 01 (EPC): Contén StoredCRC (16 bits, calculado automaticamente), StoredPC/Control de protocolo (16 bits, indica a lonxitude do EPC e as capacidades da etiqueta) e o propio valor EPC. normalmente 96 bits (12 bytes) para SGTIN-96. Algunhas etiquetas admiten EPC de 128 bits ou incluso 496 bits.

Banco 10 (TID): Identificador de etiqueta programado de fábrica. Contén o código do fabricante do chip, o número de modelo e un número de serie único. Este banco é de só lectura e nunca se pode cambiar. polo que é inestimable para a loita contra a falsificación e a autenticación de etiquetas.

Banco 11 (Usuario): Almacenamento adicional opcional. O tamaño varía segundo o chip: NXP UCODE 9 ten 0 bits (sen memoria de usuario), Quanray QStar-7U ten 512 bits (64 bytes). Úsao para números de lote, datas de inspección, limiares de temperatura ou rexistros de mantemento. Comproba sempre a capacidade dispoñible antes de escribir.

Codificación SGTIN-96. Paso a paso

SGTIN-96 é o esquema EPC máis utilizado. Codifica un GTIN-14 (o código de barras do seu produto) máis un número de serie único en exactamente 96 bits (12 bytes). Isto permite ata 274 mil millóns de números de serie únicos por tipo de produto.

A estrutura de 96 bits: Cabeceira (8 bits, sempre 0x30 para SGTIN-96) → Filtro (3 bits: 0=todos, 1=POS, 2=caixa completa, 3=reservado, 4=paquete interior, 5=reservado, 6=carga unitaria, 7=compóñente) → Partición (3 bits: define como se dividen os bits entre o prefixo da empresa e a referencia do artigo) → Prefixo da empresa (20–40 bits) → Referencia do artigo (4–24 bits) → Número de serie (38 bits).

O valor de Partición (0–6) determina a lonxitude do Prefixo da empresa: P=0 → prefixo de 40 bits (12 díxitos), P=1 → 37 bits (11 díxitos), P=2 → 34 bits (10 díxitos), P=3 → 30 bits (9 díxitos), P=4 → 27 bits (8 díxitos), P=5 → 24 bits (7 díxitos), P=6 → 20 bits (6 díxitos). A lonxitude do prefixo da súa empresa GS1 determina que valor de partición usar.

💡

Use a ferramenta Nextwaves TDS RFID Converter en /tools/tds-rfid-converter para codificar e decodificar valores SGTIN-96 de forma interactiva. Introduza o seu GTIN-14 + serie e obtén o EPC hexadecimal ao instante.

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

Outros esquemas EPC

Ademais de SGTIN-96, GS1 define varios outros esquemas EPC de 96 bits para diferentes identificadores da cadea de subministración. Cada un ten o seu propio byte de cabeceira.

Lectura e escritura da memoria da etiqueta

A lectura de etiquetas durante o inventario é pasiva. o lector emite unha consulta e as etiquetas responden co seu EPC do Banco 01. Pero tamén podes ler explicitamente calquera banco de memoria enviando un comando READ co número do banco, o desprazamento da palabra e a conta de palabras.

A escritura en etiquetas require máis precisión. A etiqueta debe ser singulada (só unha etiqueta responde), e as escrituras ocorren unha palabra (16 bits) á vez. Unha escritura EPC completa de 96 bits require 6 escrituras de palabras secuenciais. Cada escritura leva 10–20 ms, polo que codificar unha única etiqueta leva 60–120 ms só para os datos EPC.

Fallos de escritura comúns: Etiqueta demasiado lonxe da antena (necesita un sinal máis forte para as escrituras que para as lecturas. achegue a etiqueta a 1 m). Múltiples etiquetas no campo (a singulación fallou. aísle a etiqueta de destino). Memoria da etiqueta bloqueada (requírese contrasinal de acceso). A verificación de escritura fallou (téntao de novo, ou a etiqueta pode ser defectuosa. a taxa de defectos típica é de 1–3 por cada 10.000).

💡

Mellor práctica: verifica sempre despois de escribir lendo os datos e comparando. Un comando de escritura pode ter éxito pero corromper bits adxacentes en casos raros. A verificación de lectura despois da escritura detecta estes problemas.

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]

Seguridade e contrasinais de etiquetas

As etiquetas EPC Gen2 admiten dous contrasinais de 32 bits para a seguridade. O contrasinal de acceso bloquea bancos de memoria específicos. unha vez configurado, ese banco require o contrasinal antes de calquera operación de lectura ou escritura. O contrasinal de eliminación desactiva permanentemente a etiqueta cando se transmite. unha operación irreversible que se usa principalmente para a privacidade do consumidor na venda polo miúdo (destruíndo a etiqueta despois da compra).

Mellores prácticas de seguridade: Nunca use o contrasinal predeterminado de todos os ceros (0x00000000) en produción. non proporciona ningunha seguridade. Xere contrasinais únicos por lote de etiquetas ou use o prefixo da súa empresa como semente. Almacene os contrasinais no seu sistema de backend, nunca na propia etiqueta (a memoria do contrasinal pódese ler se a etiqueta está desbloqueada). Bloquee os bancos de contrasinais despois da programación. Considere o modo Untraceable (dispoñible en chips máis novos) que oculta o TID e reduce o EPC, proporcionando privacidade sen eliminar a etiqueta.

⚠️

O comando Kill é permanente e irreversible. Non hai desfacer. Unha vez que se mata unha etiqueta, nunca máis poderá responder a ningún lector. Implementa sempre a verificación do contrasinal de eliminación no teu software e require a autorización do xestor antes de executar comandos de eliminación.