ҚҰЖАТТАМА
RFID Reader интеграциялау нұсқаулығы
Сериялық байланысты орнатуды, антенна конфигурациясын, тегті кодтау операцияларын (EPC Gen2 / ISO 18000-6C) және қуатты басқаруды қамтитын жан-жақты құжаттама. Көп антенналы орналастыру және жоғары жылдамдықты түгендеуді сканерлеу үшін мысалдарды қамтиды.
Сериялық байланысты орнату
Nextwaves NRN протоколының RFID оқу құралдары сериялық порт арқылы байланысады (RS-232 немесе USB-to-Serial). Тұрақты деректерді беруді қамтамасыз ету үшін қосылым параметрлері дұрыс конфигурациялануы керек.
Baud Rate
115200
Data Bits
8
Stop Bits
1
Parity
None
Браузерге негізделген WebSerial API қосылымдары үшін app.nextwaves.com/reader мекенжайындағы Nextwaves Reader Connect қолданыңыз. Қолданба 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.
| Өріс | Өлшемі | Сипаттама |
|---|---|---|
| Header | 1 byte | Әрқашан 0x5A. кадрдың басталу белгісі |
| PCW | 2 bytes | Хаттама жалаушалары (нұсқа, мекенжай) |
| Category | 1 byte | Команда санаты (0x00=Жүйе, 0x01=Құрылғы, 0x02=RFID) |
| MID | 1 byte | Санат ішіндегі хабарлама идентификаторы |
| Length | 2 bytes | Жүктеме ұзындығы байтпен (үлкен-эндиан) |
| Data | N bytes | Командаға тән жүктеме |
| CRC16 | 2 bytes | Заголовоктан кейінгі байттардың CRC16-CCITT бақылау сомасы |
Командалардың мысалдары
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 дБм) |
| CONFIGURE_ANTENNA_ENABLE | 0x0203 | Антенна порттарын қосу/өшіру (биттік маска) |
| SET_WORKING_FREQUENCY | 0x0205 | Жұмыс істеу жиіліктерін орнату |
| SET_FILTER_SETTINGS | 0x0209 | Тегтің қайталау сүзгісін конфигурациялау (уақытқа негізделген) |
| BUZZER_SWITCH | 0x011E | Зумер режимін басқару |
Антенна конфигурациясы
RFID оқу құрылғылары 32 антенна портына дейін қолдайды. Әрбір порт 4 байттық биттік маска арқылы қосылады немесе өшіріледі. Антенналар 1-ден 32-ге дейін нөмірленген, әрбір бит портқа сәйкес келеді.
Антенна биттік маскасы
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 дБм қуат
Конвейерлік таспа
Әр станцияға 1-2 антенна, сызықтық поляризация, 20-25 дБм
Бөлшек сауда сөресі
Жақын-алаңдық антенналар, төмен қуат 15-20 дБм, жоғары тығыздық
Тегті кодтау (EPC Gen2 / ISO 18000-6C)
UHF RFID EPC Gen2 стандартына (ISO 18000-6C) сәйкес келеді. Әрбір тегте 4 жад банкі бар: Reserved (құпия сөздер), EPC (96+ биттік идентификатор), TID (өзгермейтін чип ID) және User (пайдаланушы деректері).
Тег жадының құрылымы
| Банк | ID | Типтік өлшемі | Қолданылуы |
|---|---|---|---|
| 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 таңбалы hex 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 дБм-ге дейін реттеледі. Жоғары қуат оқу диапазонын арттырады, бірақ сонымен қатар кедергілер мен қуат тұтынуды арттырады.
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 readersRSSI мониторингі
Тегтерден алынған RSSI (Received Signal Strength Indicator) мәндері шикі ADC байттары ретінде хабарланады (0-255). Дәл дБм мәндерін алу үшін түрлендіру формуласын пайдаланыңыз.
Ауыстыру формуласы
dBm = -100 + round((raw × 70) / 255)
Raw 128
-65 dBm
Жақсы
Raw 180
-51 dBm
Күшті
Raw 220
-40 dBm
Керемет
Жоғары жылдамдықты түгендеуді сканерлеу
Жоғары жылдамдықты түгендеуді сканерлеу үшін жұмыс жиіліктерін, қайталанатын тег сүзгісін және үздіксіз сканерлеу режимін конфигурациялаңыз. Оқу құрылғылары оңтайлы конфигурациямен секундына 700-ге дейін тегті қолдайды.
Жиілік конфигурациясы
UHF RFID 920-925 МГц диапазонында (Оңтүстік-Шығыс Азия) 0,5 МГц арна аралығымен жұмыс істейді. Арналар 0 (920 МГц) -ден 10 (925 МГц) -ге дейін нөмірленген.
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)
Қайталанатын сүзгіні конфигурациялаңыз (қолдану жағдайына байланысты 500 мс-3000 мс)
Үздіксіз түгендеуді бастау үшін 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");