DOKUMENTATSIOON

RFID-lugeja integreerimise käsiraamat

Põhjalik dokumentatsioon, mis hõlmab jadaliidese seadistamist, antenni konfiguratsiooni, sildistamise toiminguid (EPC Gen2 / ISO 18000-6C) ja energiahaldust. Sisaldab näiteid mitme antenniga kasutuselevõtuks ja kiireks inventuuri skaneerimiseks.

Jadaliidese seadistamine

Nextwaves NRN-protokolli RFID-lugejad suhtlevad jadaliidese (RS-232 või USB-to-Serial) kaudu. Stabiilse andmeedastuse tagamiseks tuleb ühenduse parameetrid õigesti konfigureerida.

Baud Rate

115200

Data Bits

8

Stop Bits

1

Parity

None

Brauseripõhiste WebSerial API-ühenduste jaoks kasutage Nextwaves Reader Connecti aadressil app.nextwaves.com/reader. Rakendus tuvastab automaatselt COM-pordid ja konfigureerib ühenduse parameetrid.

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-protokolli raami struktuur

Iga NRN-protokolli käsk on kapseldatud binaarsesse raami, mis koosneb: päisest (0x5A), PCW-st (protokolli juhtimis sõna), kategooriast, MID-st (sõnumi ID), pikkusest, andmete kasulikust koormast ja CRC16-CCITT kontrollsummast.

VäliSuurusKirjeldus
Header1 byteAlati 0x5A. raami alguse marker
PCW2 bytesProtokolli lipud (versioon, aadress)
Category1 byteKäsu kategooria (0x00=Süsteem, 0x01=Seade, 0x02=RFID)
MID1 byteSõnumi ID kategoorias
Length2 bytesKasuliku koormuse pikkus baitides (suur-endian)
DataN bytesKäskudele spetsiifiline andmepakett
CRC162 bytesCRC16-CCITT kontrollsumma baitidest pärast päist

Käskude näited

QUERY_INFO — Query reader serial number & 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

Põhikäskude viide

KäskKoodKirjeldus
QUERY_INFO0x0100Päringu lugeja seerianumber ja püsivara versioonid
QUERY_RFID_ABILITY0x1000Päringu RFID võimalused (võimsusvahemik, antennide arv)
READ_EPC_TAG0x0210Alusta pidevat EPC sildi inventuuri
WRITE_EPC_TAG0x0211Kirjutage andmed sildi EPC panka
STOP_INVENTORY0x02FFPeata käimasolev sildi inventuur
CONFIGURE_READER_POWER0x0201Määra edastusvõimsus (0-33 dBm antenni kohta)
CONFIGURE_ANTENNA_ENABLE0x0203Luba/keela antenniportid (bitimask)
SET_WORKING_FREQUENCY0x0205Määra konkreetsed töösagedused
SET_FILTER_SETTINGS0x0209Konfigureeri sildi duplikaatide filter (ajapõhine)
BUZZER_SWITCH0x011EJuhtige summeri režiimi

Antenni konfiguratsioon

RFID-lugejad toetavad kuni 32 antenniporti. Iga port on lubatud või keelatud 4-baidise bitimaskiga. Antennid on nummerdatud 1 kuni 32, kusjuures iga bitt vastab pordile.

Antenni bitimask

Luba antennid 1-4

0x0F, 0x00, 0x00, 0x00

Binary: 00001111 → Ports 1,2,3,4 ON

Luba ainult antennid 1 ja 3

0x05, 0x00, 0x00, 0x00

Binary: 00000101 → Ports 1,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

Mitme antenniga kasutuselevõtt

Mitme antenni kasutuselevõtul arvestage polarisatsiooni (lineaarne vs ringikujuline), antennide vahelist kaugust ja kattuvate levialade piirkondi. Lugeja skaneerib järjestikku lubatud antenne ja iga sildiraport sisaldab antenni ID-d positsiooni määramiseks.

Dokk-uks

2-4 antenni portaali kohta, ringpolariseeritus, 30 dBm võimsus

Konveierlint

1-2 antenni jaama kohta, lineaarne polarisatsioon, 20-25 dBm

Jaemüügiriiul

Lähivälja antennid, madal võimsus 15-20 dBm, kõrge tihedus

Sildi kodeerimine (EPC Gen2 / ISO 18000-6C)

UHF RFID järgib EPC Gen2 standardit (ISO 18000-6C). Igal sildil on 4 mälupanka: Reserved (paroolid), EPC (96+ bitine identifikaator), TID (muutumatu kiibi ID) ja User (kohandatud andmed).

Sildi mälustruktuur

PankIDTüüpiline suurusKasutus
Reserved0064 bitsHävitamise parool (32b) + Juurdepääsu parool (32b)
EPC0196-128 bitsSGTIN-96, SSCC-96 või kohandatud kodeering
TID1096+ bitsKiibi tootja ID (ainult lugemiseks, unikaalne)
User110-512 bitsRakendusespetsiifilised andmed (kiibist sõltuv)

SGTIN-96 dekodeerimise näide

SGTIN-96 on kõige levinum kodeering jaemüügi- ja tarneahela toodete jaoks. Konverteerige 24-märgilise kuueteistkümnendsüsteemi EPC GTIN-14, seerianumbriks ja GS1 Digital Linkiks.

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]

Kasutage veebipõhist EPC kodeerimise tööriista aadressil /tools/tds-rfid-converter SGTIN-96, SSCC-96, GRAI-96 otse oma brauseris kodeerimiseks ja dekodeerimiseks.

Energiahaldus

Lugeja edastusvõimsus on reguleeritav vahemikus 0 kuni 33 dBm antenni pordi kohta. Suurem võimsus suurendab lugemisulatust, kuid suurendab ka häireid ja energiatarbimist.

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 jälgimine

Sildidelt saadud RSSI (Received Signal Strength Indicator) väärtused teatatakse toore ADC baitidena (0-255). Täpsete dBm väärtuste saamiseks kasutage teisendusvalemit.

Konversioonivalem

dBm = -100 + round((raw × 70) / 255)

Raw 128

-65 dBm

Hea

Raw 180

-51 dBm

Tugev

Raw 220

-40 dBm

Suurepärane

Kiire inventuuri skaneerimine

Kiireks inventuuri skaneerimiseks konfigureerige töösagedused, duplikaatide sildi filter ja pideva skaneerimise režiim. Lugejad toetavad optimaalse konfiguratsiooniga kuni 700 silti sekundis.

Sageduse konfiguratsioon

UHF RFID töötab sagedusalas 920–925 MHz (Kagu-Aasia), kanalite vahega 0,5 MHz. Kanalid on nummerdatud 0-st (920 MHz) kuni 10-ni (925 MHz).

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 × 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

Optimaalne skaneerimise töövoog

1

Seadistage antenni pordid ja võimsustasemed

2

Määrake töösagedused (FHSS tihedate keskkondade jaoks)

3

Seadistage duplikaatide filter (500 ms-3000 ms olenevalt kasutusjuhtumist)

4

Saatke READ_EPC_TAG, et alustada pidevat inventuuri

5

Töötle silditeatisi (PID 0x1231) nende saabumisel

6

Saatke STOP_INVENTORY, kui olete lõpetanud

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");