Προχωρημένο

Κωδικοποίηση Ετικέτας & Μνήμη EPC

Κυριαρχήστε την αρχιτεκτονική μνήμης ετικέτας και την κωδικοποίηση GS1 για ενσωμάτωση εφοδιαστικής αλυσίδας

Οι 4 Τράπεζες Μνήμης

Κάθε ετικέτα EPC Gen2 έχει ακριβώς 4 τράπεζες μνήμης, κάθε μία εξυπηρετεί έναν συγκεκριμένο σκοπό. Η κατανόηση αυτής της δομής είναι απαραίτητη για την κωδικοποίηση, ανάγνωση και ασφάλεια των ετικετών σας.

Bank 00 (Reserved): Περιέχει το 32-bit Kill Password και το 32-bit Access Password. Οι προεπιλεγμένες τιμές είναι 0x00000000. Το kill password απενεργοποιεί μόνιμα την ετικέτα όταν σταλεί. μη αναστρέψιμο. Το access password κλειδώνει τις τράπεζες μνήμης για αποτροπή μη εξουσιοδοτημένων εγγραφών.

Bank 01 (EPC): Περιέχει StoredCRC (16 bit, αυτο-υπολογιζόμενο), StoredPC/Protocol Control (16 bit, υποδεικνύει μήκος EPC και δυνατότητες ετικέτας), και την τιμή EPC. συνήθως 96 bit (12 byte) για SGTIN-96. Ορισμένες ετικέτες υποστηρίζουν EPC 128-bit ή ακόμη και 496-bit.

Bank 10 (TID): Εργοστασιακά προγραμματισμένο Tag Identifier. Περιέχει τον κωδικό κατασκευαστή chip, τον αριθμό μοντέλου και έναν μοναδικό σειριακό αριθμό. Αυτή η τράπεζα είναι μόνο για ανάγνωση και δεν μπορεί ποτέ να αλλάξει. καθιστώντας την ανεκτίμητη για καταπολέμηση της παραποίησης και πιστοποίηση ετικέτας.

Bank 11 (User): Προαιρετική πρόσθετη αποθήκευση. Το μέγεθος ποικίλλει ανά chip: Το NXP UCODE 9 έχει 0 bit (δεν έχει μνήμη χρήστη), το Quanray QStar-7U έχει 512 bit (64 byte). Χρησιμοποιήστε το για αριθμούς παρτίδων, ημερομηνίες επιθεώρησης, οριακές θερμοκρασίες ή αρχεία συντήρησης. Πάντα ελέγχετε τη διαθέσιμη χωρητικότητα πριν την εγγραφή.

Κωδικοποίηση SGTIN-96. Βήμα προς Βήμα

Το SGTIN-96 είναι το πιο ευρέως χρησιμοποιούμενο σχήμα EPC. Κωδικοποιεί ένα GTIN-14 (τον γραμμωτό κώδικα προϊόντος σας) συν έναν μοναδικό σειριακό αριθμό σε ακριβώς 96 bit (12 byte). Αυτό επιτρέπει έως 274 δισεκατομμύρια μοναδικούς σειριακούς αριθμούς ανά τύπο προϊόντος.

Η δομή 96-bit: Header (8 bit, πάντα 0x30 για SGTIN-96) → Filter (3 bit: 0=όλα, 1=POS, 2=πλήρες κιβώτιο, 3=εφεδρικό, 4=εσωτερική συσκευασία, 5=εφεδρικό, 6=μονάδα φόρτωσης, 7=συστατικό) → Partition (3 bit: ορίζει πώς χωρίζονται τα bit μεταξύ προθέματος εταιρείας και αναφοράς αντικειμένου) → Πρόθεμα Εταιρείας (20–40 bit) → Αναφορά Αντικειμένου (4–24 bit) → Σειριακός Αριθμός (38 bit).

Η τιμή Partition (0–6) καθορίζει το μήκος του Προθέματος Εταιρείας: P=0 → πρόθεμα 40-bit (12 ψηφία), P=1 → 37-bit (11 ψηφία), P=2 → 34-bit (10 ψηφία), P=3 → 30-bit (9 ψηφία), P=4 → 27-bit (8 ψηφία), P=5 → 24-bit (7 ψηφία), P=6 → 20-bit (6 ψηφία). Το μήκος του προθέματος εταιρείας GS1 καθορίζει ποια τιμή partition να χρησιμοποιήσετε.

Χρησιμοποιήστε το εργαλείο Nextwaves TDS RFID Converter στο /tools/tds-rfid-converter για αλληλεπιδραστική κωδικοποίηση και αποκωδικοποίηση τιμών SGTIN-96. Εισάγετε το GTIN-14 + σειριακό σας και λάβετε αμέσως το 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

Άλλα Σχήματα EPC

Πέρα από το SGTIN-96, το GS1 ορίζει αρκετά άλλα σχήματα EPC 96-bit για διαφορετικά αναγνωριστικά εφοδιαστικής αλυσίδας. Κάθε ένα έχει το δικό του byte header.

Ανάγνωση & Εγγραφή Μνήμης Ετικέτας

Η ανάγνωση ετικετών κατά την απογραφή είναι παθητική. Ο αναγνώστης μεταδίδει ένα ερώτημα και οι ετικέτες απαντούν με το EPC τους από το Bank 01. Μπορείτε επίσης να διαβάσετε ρητά οποιαδήποτε τράπεζα μνήμης στέλνοντας μια εντολή READ με τον αριθμό τράπεζας, την τιμή μετατόπισης λέξης και τον αριθμό λέξεων.

Η εγγραφή σε ετικέτες απαιτεί μεγαλύτερη ακρίβεια. Η ετικέτα πρέπει να απομονωθεί (μόνο μία ετικέτα αποκρίνεται), και οι εγγραφές γίνονται μία λέξη (16 bits) τη φορά. Μια πλήρης εγγραφή EPC 96-bit απαιτεί 6 διαδοχικές εγγραφές λέξεων. Κάθε εγγραφή διαρκεί 10–20ms, επομένως η κωδικοποίηση μιας ετικέτας διαρκεί 60–120ms μόνο για τα δεδομένα EPC.

Συνήθεις αποτυχίες εγγραφής: Η ετικέτα είναι πολύ μακριά από την κεραία (απαιτείται ισχυρότερο σήμα για εγγραφές από ό,τι για αναγνώσεις. φέρτε την ετικέτα εντός 1μ). Πολλαπλές ετικέτες στο πεδίο (απομόνωση αποτυχία. απομονώστε την ετικέτα-στόχο). Η μνήμη της ετικέτας είναι κλειδωμένη (απαιτείται κωδικός πρόσβασης). Η επαλήθευση εγγραφής απέτυχε (επαναλάβετε, ή η ετικέτα μπορεί να είναι ελαττωματική. τυπικό ποσοστό ελαττωμάτων 1–3 ανά 10.000).

Βέλτιστη πρακτική: Πάντα επαληθεύετε μετά την εγγραφή διαβάζοντας ξανά τα δεδομένα και συγκρίνοντας. Μια εντολή εγγραφής μπορεί να επιτύχει αλλά να καταστρέψει παρακείμενα bits σε σπάνιες περιπτώσεις. Η επαλήθευση ανάγνωσης-μετά-την-εγγραφή εντοπίζει αυτά τα προβλήματα.

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-bit για ασφάλεια. Ο Κωδικός Πρόσβασης κλειδώνει συγκεκριμένες τράπεζες μνήμης. μόλις οριστεί, εκείνη η τράπεζα απαιτεί τον κωδικό πριν από οποιαδήποτε λειτουργία ανάγνωσης ή εγγραφής. Ο Κωδικός Απενεργοποίησης απενεργοποιεί μόνιμα την ετικέτα όταν μεταδίδεται. μια μη αναστρέψιμη λειτουργία που χρησιμοποιείται κυρίως για την ιδιωτικότητα του καταναλωτή στη λιανική (καταστροφή της ετικέτας μετά το checkout).

Βέλτιστες πρακτικές ασφαλείας: Ποτέ μην χρησιμοποιείτε τον προεπιλεγμένο κωδικό με όλα τα μηδενικά (0x00000000) στην παραγωγή. δεν παρέχει καμία ασφάλεια. Δημιουργήστε μοναδικούς κωδικούς ανά παρτίδα ετικετών ή χρησιμοποιήστε το πρόθεμα της εταιρείας σας ως αρχική τιμή. Αποθηκεύστε τους κωδικούς στο backend σύστημά σας, ποτέ στην ίδια την ετικέτα (η μνήμη κωδικών μπορεί να διαβαστεί αν η ετικέτα είναι ξεκλείδωτη). Κλειδώστε τις τράπεζες κωδικών μετά τον προγραμματισμό. Εξετάστε τη λειτουργία Untraceable (διαθέσιμη σε νεότερα chips) που κρύβει το TID και μειώνει το EPC, παρέχοντας ιδιωτικότητα χωρίς να απενεργοποιεί την ετικέτα.

Η εντολή Kill είναι μόνιμη και μη αναστρέψιμη. Δεν υπάρχει αναίρεση. Μόλις μια ετικέτα απενεργοποιηθεί, δεν μπορεί ποτέ να αποκριθεί σε κανέναν αναγνώστη ξανά. Πάντα υλοποιήστε επαλήθευση κωδικού απενεργοποίησης στο λογισμικό σας και απαιτήστε άδεια διαχειριστή πριν εκτελέσετε εντολές kill.

Επιστροφή στην αρχική