DOKUMENTASIE
RFID Leser Integrasie Handleiding
Omvattende dokumentasie wat seriële kommunikasie opstelling, antenna konfigurasie, tag enkodering operasies (EPC Gen2 / ISO 18000-6C), en kragbestuur dek. Sluit voorbeelde in vir multi-antenna ontplooiings en hoë-spoed voorraad skandering.
Seriële Kommunikasie Opstelling
Nextwaves NRN protokol RFID lesers kommunikeer via seriële poort (RS-232 of USB-na-Seriële). Verbindings parameters moet korrek gekonfigureer word om stabiele data transmissie te verseker.
Baud Rate
115200
Data Bits
8
Stop Bits
1
Parity
None
Vir blaaier-gebaseerde WebSerial API verbindings, gebruik Nextwaves Reader Connect by app.nextwaves.com/reader. Die toepassing outomaties bespeur COM poorte en konfigureer verbindings parameters.
// 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 Protokol Raamwerk Struktuur
Elke NRN protokol kommando word ingekapsuleer in 'n binêre raamwerk wat bestaan uit: Opskrif (0x5A), PCW (Protocol Control Word), Kategorie, MID (Boodskap ID), Lengte, Data vrag, en CRC16-CCITT kontrolesom.
| Veld | Grootte | Beskrywing |
|---|---|---|
| Header | 1 byte | Altyd 0x5A. begin-van-raamwerk merker |
| PCW | 2 bytes | Protokolvlae (weergawe, adres) |
| Category | 1 byte | Kommando kategorie (0x00=Stelsel, 0x01=Toestel, 0x02=RFID) |
| MID | 1 byte | Boodskap-ID binne kategorie |
| Length | 2 bytes | Vraglengte in grepe (groot-einde) |
| Data | N bytes | Kommando-spesifieke vrag |
| CRC16 | 2 bytes | CRC16-CCITT kontrolesom van grepe na kop |
Kommando Voorbeelde
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 CRC16Sleutelopdragte Verwysing
| Kommando | Kode | Beskrywing |
|---|---|---|
| QUERY_INFO | 0x0100 | Navraag doen oor leser-reeksnommer en firmware-weergawes |
| QUERY_RFID_ABILITY | 0x1000 | Navraag doen oor RFID-vermoëns (kragbereik, antenna-telling) |
| READ_EPC_TAG | 0x0210 | Begin deurlopende EPC-etiketvoorraad |
| WRITE_EPC_TAG | 0x0211 | Skryf data na 'n tag se EPC-bank |
| STOP_INVENTORY | 0x02FF | Stop 'n lopende etiketvoorraad |
| CONFIGURE_READER_POWER | 0x0201 | Stel transmissiekrag in (0-33 dBm per antenna) |
| CONFIGURE_ANTENNA_ENABLE | 0x0203 | Aktiveer/deaktiveer antenna-poorte (bitmask) |
| SET_WORKING_FREQUENCY | 0x0205 | Stel spesifieke werkfrekwensies in |
| SET_FILTER_SETTINGS | 0x0209 | Konfigureer etiketduplikaatfilter (tydgebaseerd) |
| BUZZER_SWITCH | 0x011E | Beheer zoemer-modus |
Antenna Konfigurasie
RFID-lesers ondersteun tot 32 antenna-poorte. Elke poort word geaktiveer of gedeaktiveer via 'n 4-greep bitmask. Antennes word genommer 1 tot 32, met elke bietjie wat ooreenstem met 'n poort.
Antennabitmask
Aktiveer Antennas 1-4
0x0F, 0x00, 0x00, 0x00
Binary: 00001111 → Ports 1,2,3,4 ON
Aktiveer Slegs Antennas 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 enabledMulti-Antenna Ontplooiing
Wanneer verskeie antennas ontplooi word, oorweeg polarisasie (lineêr vs. sirkulêr), spasieëring tussen antennas, en oorvleuelende dekking sones. Die leser skandeer opeenvolgend deur geaktiveerde antennas, en elke tag verslag sluit die antenna ID in vir posisie bepaling.
Dokdeur
2-4 antennas per portaal, sirkulêre polarisasie, 30 dBm krag
Vervoerband
1-2 antennas per stasie, lineêre polarisasie, 20-25 dBm
Kleinhandel Rak
Naby-veld antennas, lae krag 15-20 dBm, hoë digtheid
Merker Kodering (EPC Gen2 / ISO 18000-6C)
UHF RFID volg die EPC Gen2 standaard (ISO 18000-6C). Elke merker het 4 geheuebanke: Gereserveerd (wagwoorde), EPC (96+ bit identifiseerder), TID (onveranderlike chip ID), en Gebruiker (aangepaste data).
Merker Geheue Struktuur
| Bank | ID | Tipiese Grootte | Gebruik |
|---|---|---|---|
| Reserved | 00 | 64 bits | Doodmaakwagwoord (32b) + Toegangswagwoord (32b) |
| EPC | 01 | 96-128 bits | SGTIN-96, SSCC-96, of pasgemaakte kodering |
| TID | 10 | 96+ bits | Chip-vervaardiger-ID (slegs-lees, uniek) |
| User | 11 | 0-512 bits | Toepassingspesifieke data (chip-afhanklik) |
SGTIN-96 Dekoderingsvoorbeeld
SGTIN-96 is die mees algemene kodering vir kleinhandel- en voorsieningskettingprodukte. Skakel 'n 24-karakter heksadesimale EPC om in GTIN-14, reeksnommer en 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]Gebruik die aanlyn EPC Encoder-instrument by /tools/tds-rfid-converter om SGTIN-96, SSCC-96, GRAI-96 direk in jou blaaier te enkodeer en dekodeer.
Kragbestuur
Leser se transmissie krag is verstelbaar van 0 tot 33 dBm per antenna poort. Hoër krag verhoog leesafstand maar verhoog ook inmenging en kragverbruik.
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 Monitering
RSSI (Received Signal Strength Indicator) waardes vanaf tags word gerapporteer as rou ADC grepe (0-255). Gebruik die omskakelingsformule om akkurate dBm waardes te kry.
Omrekeningsformule
dBm = -100 + round((raw × 70) / 255)
Raw 128
-65 dBm
Goed
Raw 180
-51 dBm
Sterk
Raw 220
-40 dBm
Uitstekend
Hoëspoed-voorraadskandering
Vir hoëspoed-voorraadskandering, konfigureer werkfrekwensies, duplikaat-etiketfilter en deurlopende skanderingsmodus. Lesers ondersteun tot 700 etikette/sekonde met optimale konfigurasie.
Frekvensiekonfigurasie
UHF RFID werk in die 920-925 MHz-band (Suidoos-Asië), met 0.5 MHz kanaalspasiëring. Kanale word genommer van 0 (920 MHz) tot 10 (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 MHzOptimale Skandering Werkvloei
Konfigureer antenna poorte en kragvlakke
Stel werkfrekwensies in (FHSS vir digte omgewings)
Konfigureer duplikaatfilter (500ms-3000ms afhangende van die gebruik)
Stuur READ_EPC_TAG om deurlopende voorraad te begin
Verwerk merker kennisgewings (PID 0x1231) soos hulle aankom
Stuur STOP_INVENTORY wanneer klaar
// 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");