DOKUMENTACE

Manuál integrace RFID čtečky

Komplexní dokumentace zahrnující nastavení sériové komunikace, konfiguraci antén, operace kódování tagů (EPC Gen2 / ISO 18000-6C) a správu napájení. Obsahuje příklady nasazení více antén a vysokorychlostního inventurního skenování.

Nastavení sériové komunikace

RFID čtečky protokolu Nextwaves NRN komunikují přes sériový port (RS-232 nebo USB-to-Serial). Parametry připojení musí být správně nakonfigurovány pro zajištění stabilního přenosu dat.

Baud Rate

115200

Data Bits

8

Stop Bits

1

Parity

None

Pro prohlížečové připojení pomocí WebSerial API použijte Nextwaves Reader Connect na adrese app.nextwaves.com/reader. Aplikace automaticky detekuje COM porty a konfiguruje parametry připojení.

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()

Struktura rámce protokolu Nextwaves NRN

Každý příkaz protokolu NRN je zabalen do binárního rámce, který obsahuje: hlavičku (0x5A), PCW (Protocol Control Word), kategorii, MID (Message ID), délku, datový payload a kontrolní součet CRC16-CCITT.

PoleVelikostPopis
Header1 byteVždy 0x5A. značkovač začátku rámce
PCW2 bytesProtokolové příznaky (verze, adresa)
Category1 byteKategorie příkazu (0x00=Systém, 0x01=Zařízení, 0x02=RFID)
MID1 byteID zprávy v rámci kategorie
Length2 bytesDélka užitečného zatížení v bajtech (big-endian)
DataN bytesPayload specifické pro příkaz
CRC162 bytesKontrolní součet CRC16-CCITT bajtů po hlavičce

Příklady příkazů

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

Reference klávesových příkazů

PříkazKódPopis
QUERY_INFO0x0100Dotázat se na sériové číslo čtečky a verze firmwaru
QUERY_RFID_ABILITY0x1000Dotázat se na možnosti RFID (rozsah výkonu, počet antén)
READ_EPC_TAG0x0210Spustit kontinuální inventuru EPC tagů
WRITE_EPC_TAG0x0211Zapsat data do banky EPC tagu
STOP_INVENTORY0x02FFZastavit probíhající inventuru tagů
CONFIGURE_READER_POWER0x0201Nastavit vysílací výkon (0‑33 dBm na anténu)
CONFIGURE_ANTENNA_ENABLE0x0203Povolit/zakázat anténové porty (bitová maska)
SET_WORKING_FREQUENCY0x0205Nastavit konkrétní pracovní frekvence
SET_FILTER_SETTINGS0x0209Nastavit filtr duplicit tagů (časově založený)
BUZZER_SWITCH0x011EOvládání režimu bzučáku

Konfigurace antény

Čtečky RFID podporují až 32 anténových portů. Každý port je povolen nebo zakázán pomocí 4‑bajtové bitové masky. Antény jsou očíslovány od 1 do 32, přičemž každý bit odpovídá portu.

Bitová maska antény

Povolit antény 1‑4

0x0F, 0x00, 0x00, 0x00

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

Povolit pouze antény 1 a 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

Nasazení více antén

Při nasazování více antén zvažte polarizaci (lineární vs. kruhovou), vzdálenost mezi anténami a překrývající se zóny pokrytí. Čtečka skenuje sekvenčně povolené antény a každá zpráva o tagu obsahuje ID antény pro určení polohy.

Dokovací vrata

2‑4 antény na portál, kruhová polarizace, výkon 30 dBm

Dopravník

1‑2 antény na stanici, lineární polarizace, 20‑25 dBm

Maloobchodní regál

Antény blízkého pole, nízký výkon 15‑20 dBm, vysoká hustota

Kódování tagu (EPC Gen2 / ISO 18000-6C)

UHF RFID vychází ze standardu EPC Gen2 (ISO 18000-6C). Každý tag má 4 paměťové banky: Reserved (hesla), EPC (identifikátor >96 bitů), TID (neměnný ID čipu) a User (vlastní data).

Struktura paměti tagu

BankIDTypická velikostPoužití
Reserved0064 bitsKill heslo (32 b) + Access heslo (32 b)
EPC0196-128 bitsSGTIN‑96, SSCC‑96 nebo vlastní kódování
TID1096+ bitsID výrobce čipu (pouze pro čtení, jedinečné)
User110-512 bitsAplikačně specifická data (závisí na čipu)

Příklad dekódování SGTIN-96

SGTIN-96 je nejčastěji používané kódování pro maloobchodní a dodavatelské řetězce. Převádějte 24‑znakový hex EPC na GTIN‑14, sériové číslo a digitální odkaz GS1.

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]

Použijte online nástroj EPC Encoder na /tools/tds-rfid-converter pro kódování a dekódování SGTIN-96, SSCC-96, GRAI-96 přímo ve vašem prohlížeči.

Správa napájení

Vysílací výkon čtečky je nastavitelný od 0 do 33 dBm na port antény. Vyšší výkon zvyšuje dosah čtení, ale také zvyšuje rušení a spotřebu energie.

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

Monitorování RSSI

Hodnoty RSSI (Received Signal Strength Indicator) z tagů jsou hlášeny jako surové ADC bajty (0‑255). Použijte konverzní vzorec pro získání přesných hodnot v dBm.

Konverzní vzorec

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

Raw 128

-65 dBm

Dobré

Raw 180

-51 dBm

Silné

Raw 220

-40 dBm

Vynikající

Vysokorychlostní skenování inventáře

Pro vysokorychlostní skenování inventáře nastavte pracovní frekvence, filtr duplicitních tagů a režim kontinuálního skenování. Čtečky podporují až 700 tagů za sekundu při optimální konfiguraci.

Konfigurace frekvence

UHF RFID pracuje v pásmu 920‑925 MHz (Jihovýchodní Asie) s rozestupem kanálů 0,5 MHz. Kanály jsou číslovány od 0 (920 MHz) do 10 (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

Optimální workflow skenování

1

Nakonfigurujte anténní porty a úrovně napájení

2

Nastavte pracovní frekvence (FHSS pro husté prostředí)

3

Nakonfigurujte filtr duplicit (500 ms‑3000 ms v závislosti na použití)

4

Odešlete READ_EPC_TAG pro zahájení kontinuálního inventarizování

5

Zpracovávejte oznámení tagů (PID 0x1231) při jejich příchodu

6

Odešlete STOP_INVENTORY po dokončení

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