ΤΕΚΜΗ
Εγχειρίδιο Ενσωμάτωσης Αναγνώστη RFID
Πλήρης τεκμηρίωση που καλύπτει τη ρύθμιση σειριακής επικοινωνίας, τη διαμόρφωση κεραίων, τις λειτουργίες κωδικοποίησης ετικετών (EPC Gen2 / ISO 18000-6C) και τη διαχείριση ενέργειας. Περιλαμβάνει παραδείγματα για εγκατάσταση πολλαπλών κεραίων και σάρωση αποθέματος υψηλής ταχύτητας.
Ρύθμιση Σειριακής Επικοινωνίας
Οι αναγνώστες RFID του πρωτοκόλλου NRN της Nextwaves επικοινωνούν μέσω σειριακής θύρας (RS-232 ή USB-to-Serial). Οι παράμετροι σύνδεσης πρέπει να ρυθμιστούν σωστά για να εξασφαλιστεί σταθερή μετάδοση δεδομένων.
Baud Rate
115200
Data Bits
8
Stop Bits
1
Parity
None
Για συνδέσεις WebSerial API μέσω προγράμματος περιήγησης, χρησιμοποιήστε το Nextwaves Reader Connect στο app.nextwaves.com/reader. Η εφαρμογή εντοπίζει αυτόματα τις θύρες COM και ρυθμίζει τις παραμέτρους σύνδεσης.
// Request serial port access
const port = await navigator.serial.requestPort();
await port.open({
baudRate: 115200,
dataBits: 8,
stopBits: 1,
parity: "none",
flowControl: "none",
bufferSize: 4096,
});
// Get reader/writer streams
const reader = port.readable.getReader();
const writer = port.writable.getWriter();import serial
port = serial.Serial(
port="/dev/ttyUSB0", # Linux/macOS
# port="COM3", # Windows
baudrate=115200,
bytesize=serial.EIGHTBITS,
stopbits=serial.STOPBITS_ONE,
parity=serial.PARITY_NONE,
timeout=2.0,
)
# Flush buffers before communication
port.reset_input_buffer()
port.reset_output_buffer()Δομή Πλαισίου Πρωτοκόλλου NRN της Nextwaves
Κάθε εντολή του πρωτοκόλλου NRN περιβάλλεται σε ένα δυαδικό πλαίσιο που αποτελείται από: Header (0x5A), PCW (Protocol Control Word), Category, MID (Message ID), Length, Data payload και CRC16-CCITT checksum.
| Πεδίο | Μέγεθος | Περιγραφή |
|---|---|---|
| Header | 1 byte | Πάντα 0x5A. δείκτης έναρξης πλαισίου |
| PCW | 2 bytes | Σημαίες πρωτοκόλλου (έκδοση, διεύθυνση) |
| Category | 1 byte | Κατηγορία εντολής (0x00=Σύστημα, 0x01=Συσκευή, 0x02=RFID) |
| MID | 1 byte | Αναγνωριστικό μηνύματος εντός κατηγορίας |
| Length | 2 bytes | Μήκος φορτίου σε bytes (big-endian) |
| Data | N bytes | Φορτίο ειδικό για την εντολή |
| CRC16 | 2 bytes | Άθροισμα ελέγχου CRC16-CCITT των byte μετά την κεφαλίδα |
Παραδείγματα Εντολών
TX → 5A 00 01 01 00 00 00 DC E5
┌──┐ ┌────┐ ┌──┐ ┌──┐ ┌────┐ ┌────┐
│5A│ │0001│ │01│ │00│ │0000│ │DCE5│
└──┘ └────┘ └──┘ └──┘ └────┘ └────┘
HDR PCW CAT MID LEN CRC16TX → 5A 00 01 02 10 00 00 04 5A
HDR PCW CAT MID LEN CRC16
Response notifications (PID 0x1231) contain:
• Antenna ID (1 byte)
• RSSI value (1 byte, raw ADC 0-255)
• EPC data (12+ bytes)
• Frequency channel index (1 byte)TX → 5A 00 01 02 FF 00 00 88 5A
HDR PCW CAT MID LEN CRC16Αναφορά Εντολών Πλήκτρων
| Εντολή | Κώδικας | Περιγραφή |
|---|---|---|
| QUERY_INFO | 0x0100 | Ανάκτηση σειριακού αριθμού αναγνώστη και εκδόσεων λογισμικού υλικού |
| QUERY_RFID_ABILITY | 0x1000 | Ανάκτηση δυνατοτήτων RFID (εύρος ισχύος, αριθμός αντένας) |
| READ_EPC_TAG | 0x0210 | Έναρξη συνεχούς απογραφής ετικετών EPC |
| WRITE_EPC_TAG | 0x0211 | Εγγραφή δεδομένων στην τράπεζα EPC της ετικέτας |
| STOP_INVENTORY | 0x02FF | Διακοπή ενεργής απογραφής ετικετών |
| CONFIGURE_READER_POWER | 0x0201 | Ορισμός ισχύος εκπομπής (0‑33 dBm ανά αντένα) |
| CONFIGURE_ANTENNA_ENABLE | 0x0203 | Ενεργοποίηση/απενεργοποίηση θυρών αντένας (μάσκα bit) |
| SET_WORKING_FREQUENCY | 0x0205 | Ορισμός συγκεκριμένων λειτουργικών συχνοτήτων |
| SET_FILTER_SETTINGS | 0x0209 | Διαμόρφωση φίλτρου διπλών ετικετών (βάσει χρόνου) |
| BUZZER_SWITCH | 0x011E | Έλεγχος λειτουργίας buzzer |
Διαμόρφωση Αντένας
Οι αναγνώστες RFID υποστηρίζουν έως 32 θύρες αντένας. Κάθε θύρα ενεργοποιείται ή απενεργοποιείται μέσω μίας 4‑byte μάσκας bit. Οι αντένες αριθμούνται από 1 έως 32, με κάθε bit να αντιστοιχεί σε μια θύρα.
Μάσκα Bit Αντένας
Ενεργοποίηση κεραίων 1-4
0x0F, 0x00, 0x00, 0x00
Binary: 00001111 → Ports 1,2,3,4 ON
Ενεργοποίηση μόνο των κεραίων 1 & 3
0x05, 0x00, 0x00, 0x00
Binary: 00000101 → Ports 1,3 ON
TX → 5A 00 01 02 03 00 04 0F 00 00 00 E1 EF
┌───────────┐
Payload: │0F 00 00 00│ ← bitmask
└───────────┘
Bit 0 = ANT1, Bit 1 = ANT2, Bit 2 = ANT3, Bit 3 = ANT4
0x0F = 0b00001111 → all 4 ports enabledΑνάπτυξη Πολλαπλών Κεραίας
Κατά την εγκατάσταση πολλαπλών κεραίων, λάβετε υπόψη τον πόλωση (γραμμική vs. κυκλική), την απόσταση μεταξύ των κεραίων και τις επικαλυπτόμενες ζώνες κάλυψης. Ο αναγνώστης σαρώει διαδοχικά τα ενεργοποιημένα κεραία, και κάθε αναφορά ετικέτας περιλαμβάνει το ID του κεραίου για τον προσδιορισμό της θέσης.
Πόρτα Εγκατάστασης
2-4 κεραίες ανά πύλη, κυκλική πόλωση, ισχύς 30 dBm
Μεταφορική Ζώνη
1-2 κεραίες ανά σταθμό, γραμμική πόλωση, 20-25 dBm
Ράφι Λιανικής
Κεραία κοντινού πεδίου, χαμηλή ισχύς 15-20 dBm, υψηλή πυκνότητα
Κωδικοποίηση Ετικέτας (EPC Gen2 / ISO 18000-6C)
Το UHF RFID ακολουθεί το πρότυπο EPC Gen2 (ISO 18000-6C). Κάθε ετικέτα διαθέτει 4 τράπεζες μνήμης: Reserved (κωδικοί πρόσβασης), EPC (αναγνωριστικό 96+ bit), TID (αμετάβλητο ID τσιπ), και User (προσαρμοσμένα δεδομένα).
Δομή Μνήμης Ετικέτας
| Τράπεζα | Αναγνωριστικό | Τυπικό Μέγεθος | Χρήση |
|---|---|---|---|
| Reserved | 00 | 64 bits | Κωδικός εξόντωσης (32b) + Κωδικός πρόσβασης (32b) |
| EPC | 01 | 96-128 bits | SGTIN-96, SSCC-96 ή προσαρμοσμένη κωδικοποίηση |
| TID | 10 | 96+ bits | Αναγνωριστικό κατασκευαστή τσιπ (μόνο ανάγνωση, μοναδικό) |
| User | 11 | 0-512 bits | Δεδομένα ειδικά για την εφαρμογή (εξαρτώνται από το τσιπ) |
Παράδειγμα Αποκωδικοποίησης SGTIN-96
Το SGTIN-96 είναι η πιο κοινή κωδικοποίηση για προϊόντα λιανικής και εφοδιαστικής αλυσίδας. Μετατρέψτε ένα 24-χαρακτήρων δεκαεξαδικό EPC σε GTIN-14, σειριακό αριθμό και Ψηφιακό Σύνδεσμο GS1.
EPC Hex: 3034257BF7194E4000001A85
Decoded:
Header: 0x30 (SGTIN-96)
Filter: 1 (Point-of-Sale)
Partition: 5
Company Prefix: 0614141
Item Reference: 812345
Serial: 6789
GTIN-14: 80614141123458
Digital Link: https://id.gs1.org/01/80614141123458/21/6789// NRN protocol WRITE_EPC_TAG command
TX → 5A 00 01 02 11 00 0C [EPC_DATA_12_BYTES] [CRC16]
// The reader will:
// 1. Select the tag in its field
// 2. Write the provided EPC data to Bank 01
// 3. Return success/failure notification
// Access password required if tag is locked:
TX → 5A 00 01 02 11 00 10 [ACCESS_PWD_4B] [EPC_DATA_12B] [CRC16]Χρησιμοποιήστε το διαδικτυακό εργαλείο EPC Encoder στο /tools/tds-rfid-converter για κωδικοποίηση και αποκωδικοποίηση SGTIN-96, SSCC-96, GRAI-96 απευθείας στον περιηγητή σας.
Διαχείριση Ενέργειας
Η ισχύς εκπομπής του αναγνώστη είναι ρυθμιζόμενη από 0 έως 33 dBm ανά θύρα κεραίου. Η υψηλότερη ισχύς αυξάνει την εμβέλεια ανάγνωσης, αλλά επίσης αυξάνει την παρεμβολή και την κατανάλωση ενέργειας.
TX → 5A 00 01 02 01 00 04 1E 1E 1E 1E 67 FE
┌───────────┐
Payload: │1E 1E 1E 1E│
└───────────┘
0x1E = 30 decimal = 30 dBm per port
Power guidelines:
• 33 dBm — Maximum range (~10m), dock doors
• 30 dBm — Standard range (~6-8m), general use
• 25 dBm — Medium range (~3-5m), conveyor belts
• 20 dBm — Short range (~1-2m), point-of-sale
• 15 dBm — Near-field (~0.5m), shelf readersΠαρακολούθηση RSSI
Οι τιμές RSSI (Δείκτης Ισχύος Λήψης Σήματος) από τις ετικέτες αναφέρονται ως ακατέργαστα bytes ADC (0-255). Χρησιμοποιήστε τον τύπο μετατροπής για ακριβείς τιμές dBm.
Τύπος Μετατροπής
dBm = -100 + round((raw × 70) / 255)
Raw 128
-65 dBm
Καλό
Raw 180
-51 dBm
Ισχυρό
Raw 220
-40 dBm
Άριστο
Σάρωση Αποθεμάτων Υψηλής Ταχύτητας
Για σάρωση αποθεμάτων υψηλής ταχύτητας, διαμορφώστε τις λειτουργικές συχνότητες, το φίλτρο διπλών ετικετών και τη λειτουργία συνεχούς σάρωσης. Οι αναγνώστες υποστηρίζουν έως 700 ετικέτες/δευτερόλεπτο με βέλτιστη διαμόρφωση.
Διαμόρφωση Συχνότητας
Το UHF RFID λειτουργεί στη ζώνη 920-925 MHz (Νοτιοανατολική Ασία), με διάστημα καναλιών 0,5 MHz. Τα κανάλια αριθμούνται από 0 (920 MHz) έως 10 (925 MHz).
TX → 5A 00 01 02 05 00 06 00 02 04 06 08 0A C4 1B
Channel mapping (formula: 920.0 + index × 0.5 MHz):
Ch 0 → 920.0 MHz
Ch 2 → 921.0 MHz
Ch 4 → 922.0 MHz
Ch 6 → 923.0 MHz
Ch 8 → 924.0 MHz
Ch 10 → 925.0 MHzΒέλτιστη Ροή Εργασίας Σάρωσης
Διαμορφώστε τις θύρες κεραίας και τα επίπεδα ισχύος
Ορίστε τις λειτουργικές συχνότητες (FHSS για πυκνά περιβάλλοντα)
Διαμορφώστε το φίλτρο διπλοτύπων (500ms-3000ms ανάλογα με τη χρήση)
Στείλτε READ_EPC_TAG για να ξεκινήσετε τη συνεχή απογραφή
Επεξεργαστείτε τις ειδοποιήσεις ετικετών (PID 0x1231) καθώς φτάνουν
Στείλτε STOP_INVENTORY όταν ολοκληρώσετε
// 1. Enable antennas 1-4
await sendFrame("CONFIGURE_ANTENNA_ENABLE", [0x0F, 0x00, 0x00, 0x00]);
// 2. Set power to 30 dBm on all ports
await sendFrame("CONFIGURE_READER_POWER", [0x1E, 0x1E, 0x1E, 0x1E]);
// 3. Set working frequencies
await sendFrame("SET_WORKING_FREQUENCY", [0, 2, 4, 6, 8, 10]);
// 4. Set duplicate filter to 1000ms
await sendFrame("SET_FILTER_SETTINGS", [0x03, 0xE8]);
// 5. Start inventory
await sendFrame("READ_EPC_TAG");
// 6. Process tags...
reader.on("tag", (tag) => {
const rssiDbm = -100 + Math.round((tag.rssi * 70) / 255);
console.log(`EPC: ${tag.epc}, Ant: ${tag.antenna}, RSSI: ${rssiDbm} dBm`);
});
// 7. Stop when done
await sendFrame("STOP_INVENTORY");