Прирачник за интеграција на RFID читач
Сеопфатна документација која опфаќа поставување на сериска комуникација, конфигурација на антена, операции за кодирање на ознаки (EPC Gen2 / ISO 18000-6C) и управување со енергија. Вклучува примери за распоредувања со повеќе антени и скенирање на инвентар со голема брзина.
Поставување на сериска комуникација
RFID читачите на Nextwaves NRN протоколот комуницираат преку сериска порта (RS-232 или USB-to-Serial). Параметрите за поврзување мора да бидат правилно конфигурирани за да се обезбеди стабилен пренос на податоци.
За конекции базирани на прелистувачот 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()Структура на рамката на Nextwaves NRN протокол
Секоја команда на NRN протоколот е инкапсулирана во бинарна рамка која се состои од: Заглавие (0x5A), PCW (Protocol Control Word), Категорија, MID (Message ID), Должина, 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Референтна листа на клучни команди
Конфигурација на Antenna
RFID читачите поддржуваат до 32 antenna порти. Секоја порта е овозможена или оневозможена преку 4-byte bitmask. Antennas се нумерирани од 1 до 32, при што секој бит одговара на порта.
Битмаска на антена
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Разместување со повеќе антени
При распоредување на повеќе антени, земете во предвид поларизацијата (линеарна наспроти кружна), растојанието помеѓу антените и преклопувачките зони на покриеност. Читачот скенира секвенцијално низ овозможените антени, а секој извештај за ознака вклучува ID на антената за одредување на позицијата.
Влезна врата
2-4 антени по портал, кружна поларизација, 30 dBm моќност
Подвижна лента
1-2 антени по станица, линеарна поларизација, 20-25 dBm
Трговска полка
Near-field антени, мала моќност 15-20 dBm, висока густина
Кодирање на ознаки (EPC Gen2 / ISO 18000-6C)
UHF RFID го следи стандардот EPC Gen2 (ISO 18000-6C). Секоја ознака има 4 мемориски банки: Reserved (лозинки), EPC (96+ битен идентификатор), TID (непроменлив ID на чип) и User (прилагодени податоци).
Структура на меморијата на ознаки
Пример за декодирање SGTIN-96
SGTIN-96 е најчестото кодирање за малопродажба и производи во синџирот на снабдување. Претворете го 24-карактерниот хексадецимален EPC во 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) вредностите од ознаките се пријавуваат како сурови 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");