Εγχειρίδιο Ενσωμάτωσης Αναγνώστη RFID
Ολοκληρωμένη τεκμηρίωση που καλύπτει τη ρύθμιση σειριακής επικοινωνίας, διαμόρφωση κεραίας, λειτουργίες κωδικοποίησης ετικετών (EPC Gen2 / ISO 18000-6C) και διαχείριση ισχύος. Περιλαμβάνει παραδείγματα για αναπτύξεις πολλαπλών κεραιών και σάρωση απογραφής υψηλής ταχύτητας.
Ρύθμιση Σειριακής Επικοινωνίας
Οι αναγνώστες RFID πρωτοκόλλου NRN της Nextwaves επικοινωνούν μέσω σειριακής θύρας (RS-232 ή USB-to-Serial). Οι παράμετροι σύνδεσης πρέπει να διαμορφωθούν σωστά για να διασφαλιστεί σταθερή μετάδοση δεδομένων.
Για συνδέσεις WebSerial API βασισμένες σε browser, χρησιμοποιήστε το 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()Δομή Πλαισίου Πρωτοκόλλου Nextwaves NRN
Κάθε εντολή πρωτοκόλλου NRN ενθυλακώνεται σε ένα δυαδικό πλαίσιο που αποτελείται από: Header (0x5A), PCW (Protocol Control Word), Category, MID (Message ID), Length, Data payload και CRC16-CCITT checksum.
Παραδείγματα Εντολών
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Αναφορά Βασικών Εντολών
Διαμόρφωση Κεραίας
Οι αναγνώστες RFID υποστηρίζουν έως και 32 θύρες κεραίας. Κάθε θύρα ενεργοποιείται ή απενεργοποιείται μέσω bitmask 4 bytes. Οι κεραίες αριθμούνται από 1 έως 32, με κάθε bit να αντιστοιχεί σε μια θύρα.
Bitmask Κεραίας
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 κυκλική), την απόσταση μεταξύ κεραιών και τις επικαλυπτόμενες ζώνες κάλυψης. Ο αναγνώστης σαρώνει διαδοχικά μέσω των ενεργοποιημένων κεραιών, και κάθε αναφορά ετικέτας περιλαμβάνει το αναγνωριστικό κεραίας για προσδιορισμό θέσης.
Πόρτα Αποβάθρας
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 (αμετάβλητο chip ID) και User (προσαρμοσμένα δεδομένα).
Δομή Μνήμης Ετικέτας
Παράδειγμα Αποκωδικοποίησης SGTIN-96
Το SGTIN-96 είναι η πιο κοινή κωδικοποίηση για προϊόντα λιανικής και εφοδιαστικής αλυσίδας. Μετατρέψτε ένα EPC hex 24 χαρακτήρων σε GTIN-14, αριθμό σειράς και GS1 Digital Link.
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 (Received Signal Strength Indicator) από τις ετικέτες αναφέρονται ως ακατέργαστα bytes ADC (0-255). Χρησιμοποιήστε τον τύπο μετατροπής για να λάβετε ακριβείς τιμές 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 x 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");