Avancé

Encodage des Tags & Mémoire EPC

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

Les 4 Banques de Mémoire

Chaque tag EPC Gen2 a exactement 4 banques de mémoire, chacune servant un but spécifique. Comprendre cette structure est essentiel pour encoder, lire et sécuriser vos tags.

Bank 00 (Reserved) : Contient le mot de passe Kill 32 bits et le mot de passe Access 32 bits. Les valeurs par défaut sont 0x00000000. Le mot de passe kill désactive définitivement le tag quand envoyé — irréversible. Le mot de passe access verrouille les banques de mémoire pour empêcher les écritures non autorisées.

Bank 01 (EPC) : Contient StoredCRC (16 bits, calculé automatiquement), StoredPC/Protocol Control (16 bits, indique la longueur EPC et les capacités du tag), et la valeur EPC elle-même — typiquement 96 bits (12 octets) pour SGTIN-96. Certains tags supportent des EPC de 128 bits ou même 496 bits.

Bank 10 (TID) : Identifiant de Tag (Tag Identifier) programmé en usine. Contient le code 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 changée, la rendant inestimable pour l'anti-contrefaçon et l'authentification des tags.

Bank 11 (User) : Stockage supplémentaire optionnel. La taille varie selon la puce : NXP UCODE 9 a 0 bit (pas de mémoire utilisateur), Quanray QStar-7U a 512 bits (64 octets). Utilisez-la pour les numéros de lot, dates d'inspection, seuils de température ou dossiers 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 (votre code-barres produit) plus 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.

Structure des 96 bits : Header (8 bits, toujours 0x30 pour SGTIN-96) → Filter (3 bits : 0=tout, 1=POS, 2=colis complet, 3=réservé, 4=emballage intérieur, 5=réservé, 6=charge unitaire, 7=composant) → Partition (3 bits : définit comment les bits sont répartis entre le préfixe société et la référence article) → Préfixe Société (20–40 bits) → Référence Article (4–24 bits) → Numéro de Série (38 bits).

La valeur Partition (0–6) détermine la longueur du Préfixe Société : P=0 → préfixe 40-bit (12 chiffres), P=1 → 37-bit (11 chiffres), P=2 → 34-bit (10 chiffres), P=3 → 30-bit (9 chiffres), P=4 → 27-bit (8 chiffres), P=5 → 24-bit (7 chiffres), P=6 → 20-bit (6 chiffres). La longueur de votre préfixe société GS1 détermine quelle valeur de partition utiliser.

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

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à du SGTIN-96, GS1 définit plusieurs autres schémas EPC 96 bits pour différents identifiants de chaîne d'approvisionnement. Chacun a son propre octet header.

Lecture et écriture de la mémoire des tags

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

L'écriture sur les tags nécessite plus de précision. Le tag doit être singulé (un seul tag répondant), et les écritures se font mot par mot (16 bits). Une écriture EPC 96-bit complète nécessite 6 écritures de mots séquentielles. Chaque écriture prend 10–20 ms, donc l'encodage d'un seul tag prend 60–120 ms pour les données EPC seules.

Échecs d'écriture courants : Tag trop éloigné de l'antenne (besoin d'un signal plus fort pour l'écriture que pour la lecture. rapprocher le tag à moins de 1 m). Plusieurs tags dans le champ (la singulation a échoué. isoler le tag cible). Mémoire du tag verrouillée (mot de passe d'accès requis). Échec de la vérification d'écriture (réessayer, ou le tag peut être défectueux. taux de défaut typique : 1 à 3 sur 10 000).

Bonne 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 lecture-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 tags et mots de passe

Les tags EPC Gen2 supportent deux mots de passe 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 Kill désactive définitivement le tag lorsqu'il est transmis. une opération irréversible principalement utilisée pour la vie privée du consommateur dans la vente au détail (destructrice du tag après le passage en caisse).

Bonnes pratiques de sécurité : Ne jamais utiliser le mot de passe par défaut tout à zéro (0x00000000) en production. il n'offre aucune sécurité. Générez des mots de passe uniques par lot de tags ou utilisez votre préfixe entreprise comme graine. Stockez les mots de passe dans votre système backend, jamais sur le tag lui-même (la mémoire des mots de passe peut être lue si le tag est déverrouillé). Verrouillez les banques de mots de passe après la programmation. Envisagez le mode Untraceable (disponible sur les chips plus récents) qui masque le TID et réduit l'EPC, offrant une confidentialité sans détruire le tag.

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

Retour à l'accueil