ҚҰЖАТТАМА

RFID Reader интеграциялау нұсқаулығы

Сериялық байланысты орнатуды, антенна конфигурациясын, тегті кодтау операцияларын (EPC Gen2 / ISO 18000-6C) және қуатты басқаруды қамтитын жан-жақты құжаттама. Көп антенналы орналастыру және жоғары жылдамдықты түгендеуді сканерлеу үшін мысалдарды қамтиды.

Reader bring-up
NRN
Serial115200 8N1
ProtocolCRC16-CCITT
RF power0-33 dBm
Inventory700 tags/s
5APCWCATMIDLENDATACRC16

Сериялық байланысты орнату

Nextwaves NRN протоколының RFID оқу құралдары сериялық порт арқылы байланысады (RS-232 немесе USB-to-Serial). Тұрақты деректерді беруді қамтамасыз ету үшін қосылым параметрлері дұрыс конфигурациялануы керек.

Браузерге негізделген WebSerial API қосылымдары үшін app.nextwaves.com/reader мекенжайындағы Nextwaves Reader Connect қолданыңыз. Қолданба COM порттарын автоматты түрде анықтайды және қосылым параметрлерін конфигурациялайды.

Baud rate115200
Data bits8
Stop bits1
ParityNone
TypeScript - WebSerial Connection
// 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();
Python - PySerial Connection
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 бақылау сомасы

Командалардың мысалдары

QUERY_INFO - Query reader serial number and firmware
TX -> 5A 00 01 01 00 00 00 DC E5
       +----+ +------+ +----+ +----+ +------+ +------+
       | 5A | | 0001 | | 01 | | 00 | | 0000 | | DCE5 |
       +----+ +------+ +----+ +----+ +------+ +------+
        HDR     PCW    CAT   MID    LEN     CRC16
READ_EPC_TAG - Start continuous EPC tag inventory
TX -> 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)
STOP_INVENTORY - Stop running inventory scan
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 антенналарды қосу0F 00 00 00Binary 00001111 - ports 1, 2, 3, 4 on
Тек 1 және 3 антенналарды қосу05 00 00 00Binary 00000101 - ports 1 and 3 on
CONFIGURE_ANTENNA_ENABLE - Enable ports 1-4
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 бар.

Portal

Док есігі

Порталға 2-4 антенна, дөңгелек поляризация, 30 дБм қуат

Station

Конвейерлік таспа

Әр станцияға 1-2 антенна, сызықтық поляризация, 20-25 дБм

Shelf

Бөлшек сауда сөресі

Жақын-алаңдық антенналар, төмен қуат 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-ке түрлендіріңіз.

SGTIN-96 Decode - Example
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
WRITE_EPC_TAG - Write EPC data to tag
// 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 дБм-ге дейін реттеледі. Жоғары қуат оқу диапазонын арттырады, бірақ сонымен қатар кедергілер мен қуат тұтынуды арттырады.

CONFIGURE_READER_POWER - Set 30 dBm on all 4 ports
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 = -100 + round((raw x 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 МГц) -ге дейін нөмірленген.

SET_WORKING_FREQUENCY - 6 channels (920-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

Оңтайлы сканерлеу жұмыс ағыны

01

Антенна порттары мен қуат деңгейлерін конфигурациялаңыз

02

Жұмыс жиіліктерін орнатыңыз (тығыз орталар үшін FHSS)

03

Қайталанатын сүзгіні конфигурациялаңыз (қолдану жағдайына байланысты 500 мс-3000 мс)

04

Үздіксіз түгендеуді бастау үшін READ_EPC_TAG жіберіңіз

05

Келген тег туралы хабарламаларды (PID 0x1231) өңдеңіз

06

Аяқталған кезде STOP_INVENTORY жіберіңіз

Complete inventory flow - TypeScript
// 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");