Avancé

Encodage des étiquettes et mémoire EPC

Maîtrisez l'architecture de la mémoire des étiquettes et l'encodage GS1 pour l'intégration de la chaîne d'approvisionnement

Les 4 banques mémoire

Chaque étiquette EPC Gen2 possède exactement 4 banques mémoire, chacune servant un objectif spécifique. Comprendre cette structure est essentiel pour encoder, lire et sécuriser vos étiquettes.

Banque 00 (Réservé) : Contient le mot de passe Kill de 32 bits et le mot de passe d'accès de 32 bits. Les valeurs par défaut sont 0x00000000. Le mot de passe Kill désactive définitivement l'étiquette lorsqu'il est envoyé. irréversible. Le mot de passe d'accès verrouille les banques mémoire pour empêcher les écritures non autorisées.

Banque 01 (EPC) : Contient StoredCRC (16 bits, calculé automatiquement), StoredPC/Protocol Control (16 bits, indique la longueur de l'EPC et les capacités de l'étiquette) et la valeur EPC elle-même. généralement 96 bits (12 octets) pour SGTIN-96. Certaines étiquettes prennent en charge des EPC de 128 bits ou même de 496 bits.

Banque 10 (TID) : Identifiant d'étiquette programmé en usine. Contient le code du fabricant de la puce, le numéro de modèle et un numéro de série unique. Cette banque est en lecture seule et ne peut jamais être modifiée. ce qui la rend inestimable pour la lutte contre la contrefaçon et l'authentification des étiquettes.

Banque 11 (Utilisateur) : Stockage supplémentaire facultatif. La taille varie selon la puce : NXP UCODE 9 a 0 bits (pas de mémoire utilisateur), Quanray QStar-7U a 512 bits (64 octets). Utilisez-la pour les numéros de lot, les dates d'inspection, les seuils de température ou les enregistrements de maintenance. Vérifiez toujours la capacité disponible avant d'écrire.

Encodage SGTIN-96. Étape par étape

SGTIN-96 est le schéma EPC le plus largement utilisé. Il encode un GTIN-14 (code-barres de votre produit) ainsi qu'un numéro de série unique en exactement 96 bits (12 octets). Cela permet jusqu'à 274 milliards de numéros de série uniques par type de produit.

La structure à 96 bits : En-tête (8 bits, toujours 0x30 pour SGTIN-96) → Filtre (3 bits : 0=tous, 1=POS, 2=cas complet, 3=réservé, 4=emballage interne, 5=réservé, 6=unité de chargement, 7=composant) → Partition (3 bits : définit la manière dont les bits sont répartis entre le préfixe de l'entreprise et la référence de l'article) → Préfixe de l'entreprise (20–40 bits) → Référence de l'article (4–24 bits) → Numéro de série (38 bits).

La valeur de partition (0–6) détermine la longueur du préfixe de l'entreprise : P=0 → préfixe de 40 bits (12 chiffres), P=1 → 37 bits (11 chiffres), P=2 → 34 bits (10 chiffres), P=3 → 30 bits (9 chiffres), P=4 → 27 bits (8 chiffres), P=5 → 24 bits (7 chiffres), P=6 → 20 bits (6 chiffres). La longueur du préfixe de votre entreprise GS1 détermine la valeur de partition à utiliser.

💡

Utilisez l'outil Nextwaves TDS RFID Converter à l'adresse /tools/tds-rfid-converter pour encoder et décoder les valeurs SGTIN-96 de manière interactive. Saisissez votre GTIN-14 + numéro de série et obtenez instantanément l'EPC hexadécimal.

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

Autres schémas EPC

Au-delà de SGTIN-96, GS1 définit plusieurs autres schémas EPC de 96 bits pour différents identificateurs de la chaîne d'approvisionnement. Chacun a son propre octet d'en-tête.

Lecture et écriture de la mémoire des étiquettes

La lecture des étiquettes pendant l'inventaire est passive. le lecteur diffuse une requête et les étiquettes répondent avec leur EPC de la banque 01. Mais vous pouvez également lire explicitement n'importe quelle banque mémoire en envoyant une commande READ avec le numéro de la banque, le décalage du mot et le nombre de mots.

L'écriture sur les étiquettes nécessite plus de précision. L'étiquette doit être singulée (une seule étiquette répond), et les écritures se font un mot (16 bits) à la fois. Une écriture EPC complète de 96 bits nécessite 6 écritures de mots séquentielles. Chaque écriture prend 10 à 20 ms, donc l'encodage d'une seule étiquette prend 60 à 120 ms pour les seules données EPC.

Échecs d'écriture courants : étiquette trop éloignée de l'antenne (nécessite un signal plus fort pour l'écriture que pour la lecture. rapprochez l'étiquette à moins de 1 m). Plusieurs étiquettes dans le champ (singulation échouée. isolez l'étiquette cible). Mémoire de l'étiquette verrouillée (mot de passe d'accès requis). La vérification de l'écriture a échoué (réessayez, ou l'étiquette peut être défectueuse. le taux de défauts typique est de 1 à 3 pour 10 000).

💡

Meilleure pratique : toujours vérifier après l'écriture en relisant les données et en les comparant. Une commande d'écriture peut réussir mais corrompre des bits adjacents dans de rares cas. La vérification après écriture détecte ces problèmes.

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]

Sécurité des étiquettes et mots de passe

Les étiquettes EPC Gen2 prennent en charge deux mots de passe de 32 bits pour la sécurité. Le mot de passe d'accès verrouille des banques de mémoire spécifiques. une fois défini, cette banque nécessite le mot de passe avant toute opération de lecture ou d'écriture. Le mot de passe de destruction désactive définitivement l'étiquette lors de la transmission. une opération irréversible principalement utilisée pour la confidentialité des consommateurs dans le commerce de détail (destruction de l'étiquette après le passage en caisse).

Meilleures pratiques de sécurité : n'utilisez jamais le mot de passe par défaut tout-zéros (0x00000000) en production. il n'offre aucune sécurité. Générez des mots de passe uniques par lot d'étiquettes ou utilisez le préfixe de votre entreprise comme amorce. Stockez les mots de passe dans votre système backend, jamais sur l'étiquette elle-même (la mémoire du mot de passe peut être lue si l'étiquette est déverrouillée). Verrouillez les banques de mots de passe après la programmation. Envisagez le mode Untraceable (disponible sur les puces plus récentes) qui masque le TID et réduit l'EPC, offrant une confidentialité sans détruire l'étiquette.

⚠️

La commande Kill est permanente et irréversible. Il n'y a pas d'annulation. Une fois qu'une étiquette est détruite, elle ne peut plus jamais répondre à aucun lecteur. Implémentez toujours la vérification du mot de passe de destruction dans votre logiciel et exigez l'autorisation du responsable avant d'exécuter les commandes de destruction.