DOKUMENTAATIO

RFID-lukijan integrointiopas

Kattava dokumentaatio, joka kattaa sarjaliikenteen asetukset, antennin konfiguroinnin, tagien koodausoperaatiot (EPC Gen2 / ISO 18000-6C) ja virranhallinnan. Sisältää esimerkkejä useiden antennien käyttöönotoista ja nopeasta inventaarion skannauksesta.

Sarjaliikenteen asetukset

Nextwaves NRN -protokollan RFID-lukijat kommunikoivat sarjaportin (RS-232 tai USB-to-Serial) kautta. Yhteysparametrit on määritettävä oikein vakaan tiedonsiirron varmistamiseksi.

Baud Rate

115200

Data Bits

8

Stop Bits

1

Parity

None

Käytä selainpohjaisia WebSerial API -yhteyksiä varten Nextwaves Reader Connect -ohjelmaa osoitteessa app.nextwaves.com/reader. Sovellus tunnistaa COM-portit automaattisesti ja määrittää yhteysparametrit.

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 -protokollan kehysrakenne

Jokainen NRN-protokollakomento on kapseloitu binäärikehykseen, joka koostuu: Otsikosta (0x5A), PCW:stä (Protocol Control Word), kategoriasta, MID:stä (Message ID), pituudesta, Data payloadista ja CRC16-CCITT-tarkistussummasta.

KenttäKokoKuvaus
Header1 byteAina 0x5A. kehyksen aloitusmerkki
PCW2 bytesProtokollan liput (versio, osoite)
Category1 byteKomennon luokka (0x00=Järjestelmä, 0x01=Laite, 0x02=RFID)
MID1 byteViestin tunnus kategoriassa
Length2 bytesHyötykuorman pituus tavuina (big-endian)
DataN bytesKomennon mukainen hyötykuorma
CRC162 bytesCRC16-CCITT-tarkistussumma tavuista otsikon jälkeen

Esimerkkikomennot

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

Avainkomentojen viite

KomentoKoodiKuvaus
QUERY_INFO0x0100Kysy lukijan sarjanumero ja laiteohjelmistoversiot
QUERY_RFID_ABILITY0x1000Kysy RFID-ominaisuudet (tehoalue, antennien määrä)
READ_EPC_TAG0x0210Aloita jatkuva EPC-tunnisteiden inventointi
WRITE_EPC_TAG0x0211Kirjoita dataa tagin EPC-pankkiin
STOP_INVENTORY0x02FFPysäytä käynnissä oleva tunnisteinventointi
CONFIGURE_READER_POWER0x0201Aseta lähetysteho (0–33 dBm per antenni)
CONFIGURE_ANTENNA_ENABLE0x0203Ota antenniportit käyttöön/poista käytöstä (bittimaski)
SET_WORKING_FREQUENCY0x0205Aseta tietyt toimintataajuudet
SET_FILTER_SETTINGS0x0209Määritä tunnisteiden duplikaattisuodatin (aikaan perustuva)
BUZZER_SWITCH0x011EOhjaa summerin tilaa

Antennin konfigurointi

RFID-lukijat tukevat jopa 32 antenniporttia. Jokainen portti otetaan käyttöön tai poistetaan käytöstä 4-tavuisella bittimaskilla. Antennit on numeroitu 1–32, ja jokainen bitti vastaa yhtä porttia.

Antennin bittimaski

Ota käyttöön antennit 1-4

0x0F, 0x00, 0x00, 0x00

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

Ota käyttöön vain antennit 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

Usean antennin käyttöönotto

Kun otat käyttöön useita antenneja, harkitse polarisaatiota (lineaarinen vs. ympyrä), antennien välistä etäisyyttä ja päällekkäisiä peittoalueita. Lukija skannaa peräkkäin käytössä olevien antennien läpi, ja jokainen tagiraportti sisältää antennin ID:n sijainnin määrittämistä varten.

Lastauslaituri

2-4 antennia per portti, ympyräpolarisaatio, 30 dBm teho

Kuljetinhihna

1-2 antennia per asema, lineaarinen polarisaatio, 20-25 dBm

Vähittäismyyntihylly

Lähikenttäantennit, pienitehoiset 15–20 dBm, suuri tiheys

Tunnisteen koodaus (EPC Gen2 / ISO 18000-6C)

UHF RFID noudattaa EPC Gen2 -standardia (ISO 18000-6C). Jokaisessa tunnisteessa on 4 muistipankkia: Reserved (salasanat), EPC (96+ bitin tunniste), TID (muuttumaton sirun ID) ja User (mukautetut tiedot).

Tunnisteen muistirakenne

PankkiTunnusTyypillinen kokoKäyttö
Reserved0064 bitsKill-salasana (32b) + Access-salasana (32b)
EPC0196-128 bitsSGTIN-96, SSCC-96 tai mukautettu koodaus
TID1096+ bitsSiruvalmistajan tunnus (vain luku, yksilöllinen)
User110-512 bitsSovelluskohtaiset tiedot (sirusta riippuen)

SGTIN-96 Dekoodauksen esimerkki

SGTIN-96 on yleisin koodaus vähittäiskaupan ja toimitusketjun tuotteille. Muunna 24 merkin heksadesimaalinen EPC GTIN-14:ksi, sarjanumeroksi ja GS1 Digital Link -linkiksi.

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]

Käytä online EPC Encoder -työkalua osoitteessa /tools/tds-rfid-converter koodataksesi ja dekoodataksesi SGTIN-96, SSCC-96, GRAI-96 suoraan selaimessasi.

Virranhallinta

Lukijan lähetystehoa voidaan säätää 0–33 dBm antenniporttia kohti. Suurempi teho lisää lukuetäisyyttä, mutta lisää myös häiriöitä ja virrankulutusta.

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

Tagien RSSI (Received Signal Strength Indicator) -arvot raportoidaan raakana ADC-tavuina (0-255). Käytä muuntokaavaa saadaksesi tarkat dBm-arvot.

Muuntokaava

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

Raw 128

-65 dBm

Hyvä

Raw 180

-51 dBm

Vahva

Raw 220

-40 dBm

Erinomainen

Nopea inventaarioluku

Nopeaa inventaariolukua varten määritä toimintataajuudet, kaksoistunnisteiden suodatus ja jatkuva skannaustila. Lukijat tukevat jopa 700 tunnusta/sekunti optimaalisella konfiguraatiolla.

Taajuuskonfiguraatio

UHF RFID toimii 920-925 MHz:n taajuusalueella (Kaakkois-Aasia), 0,5 MHz:n kanavavälillä. Kanavat on numeroitu 0:sta (920 MHz) 10:een (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

Optimaalinen skannausprosessin kulku

1

Määritä antenniportit ja tehotasot

2

Aseta toimintataajuudet (FHSS tiheisiin ympäristöihin)

3

Määritä kaksoiskappalesuodatin (500ms-3000ms käyttötapauksesta riippuen)

4

Lähetä READ_EPC_TAG aloittaaksesi jatkuvan inventoinnin

5

Käsittele tunnisteilmoitukset (PID 0x1231) niiden saapuessa

6

Lähetä STOP_INVENTORY, kun olet valmis

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