DOKUMENTASYON
Manwal ng Integrasyon ng RFID Reader
Komprehensibong dokumentasyon na sumasaklaw sa setup ng serial communication, configuration ng antenna, operasyon ng pag-encode ng tag (EPC Gen2 / ISO 18000-6C), at pamamahala ng power. Kasama ang mga halimbawa para sa multi-antenna deployments at high-speed inventory scanning.
Pag-setup ng Serial na Komunikasyon
Ang mga RFID reader na gumagamit ng Nextwaves NRN protocol ay nakikipag-ugnayan sa pamamagitan ng serial port (RS-232 o USB-to-Serial). Dapat maayos na i-configure ang mga parameter ng koneksyon upang matiyak ang matatag na paglipat ng data.
Baud Rate
115200
Data Bits
8
Stop Bits
1
Parity
None
Para sa mga koneksyon ng WebSerial API sa browser, gamitin ang Nextwaves Reader Connect sa app.nextwaves.com/reader. Awtomatikong natutuklasan ng aplikasyon ang mga COM port at inaayos ang mga parameter ng koneksyon.
// 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()Struktura ng Frame ng Nextwaves NRN Protocol
Bawat NRN protocol command ay nakapaloob sa isang binary frame na binubuo ng: Header (0x5A), PCW (Protocol Control Word), Category, MID (Message ID), Length, Data payload, at CRC16-CCITT checksum.
| Patlang | Laki | Paglalarawan |
|---|---|---|
| Header | 1 byte | Palaging 0x5A. marker ng simula ng frame |
| PCW | 2 bytes | Mga flag ng protocol (bersyon, address) |
| Category | 1 byte | Kategorya ng utos (0x00=System, 0x01=Device, 0x02=RFID) |
| MID | 1 byte | Message ID sa loob ng kategorya |
| Length | 2 bytes | Haba ng payload sa mga byte (big-endian) |
| Data | N bytes | Payload na tiyak sa utos |
| CRC16 | 2 bytes | CRC16-CCITT checksum ng mga byte pagkatapos ng header |
Mga Halimbawa ng Kautusan
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 CRC16Sanggunian ng Key Commands
| Kautusan | Kodigo | Paglalarawan |
|---|---|---|
| QUERY_INFO | 0x0100 | Kunin ang serial number ng mambabasa at mga bersyon ng firmware |
| QUERY_RFID_ABILITY | 0x1000 | Kunin ang kakayahan ng RFID (saklaw ng kapangyarihan, bilang ng antenna) |
| READ_EPC_TAG | 0x0210 | Simulan ang tuloy-tuloy na imbentaryo ng EPC tag |
| WRITE_EPC_TAG | 0x0211 | Isulat ang data sa EPC bank ng isang tag |
| STOP_INVENTORY | 0x02FF | Itigil ang nagpapatakbong imbentaryo ng tag |
| CONFIGURE_READER_POWER | 0x0201 | Itakda ang transmit power (0-33 dBm bawat antenna) |
| CONFIGURE_ANTENNA_ENABLE | 0x0203 | I-enable/i-disable ang mga antenna port (bitmask) |
| SET_WORKING_FREQUENCY | 0x0205 | Itakda ang tiyak na mga working frequency |
| SET_FILTER_SETTINGS | 0x0209 | I-configure ang duplicate filter ng tag (batay sa oras) |
| BUZZER_SWITCH | 0x011E | Kontrolin ang mode ng buzzer |
Kumpigurasyon ng Antenna
Sinusuportahan ng mga RFID reader ang hanggang 32 antenna port. Ang bawat port ay maaaring i-enable o i-disable gamit ang 4-byte na bitmask. Ang mga antenna ay binibigyan ng bilang mula 1 hanggang 32, kung saan ang bawat bit ay tumutugma sa isang port.
Bitmask ng Antenna
Paganahin ang Antennas 1-4
0x0F, 0x00, 0x00, 0x00
Binary: 00001111 → Ports 1,2,3,4 ON
Paganahin lamang ang Antennas 1 at 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 enabledPag-deploy ng Maramihang Antenna
Kapag nag-deploy ng maramihang antenna, isaalang-alang ang polarization (linear vs. circular), agwat sa pagitan ng mga antenna, at mag-overlap na mga coverage zone. Ang reader ay nag-scan nang sunud-sunod sa mga pinahintulutang antenna, at bawat ulat ng tag ay kasama ang antenna ID para sa pagtukoy ng posisyon.
Pintuan ng Dock
2-4 antenna bawat portal, circular polarization, 30 dBm na kapangyarihan
Conveyor Belt
1-2 antenna bawat istasyon, linear polarization, 20-25 dBm
Istante ng Retail
Near-field antennas, mababang power na 15-20 dBm, mataas na densidad
Pag-encode ng Tag (EPC Gen2 / ISO 18000-6C)
Ang UHF RFID ay sumusunod sa pamantayan ng EPC Gen2 (ISO 18000-6C). Bawat tag ay may 4 na memory bank: Reserved (mga password), EPC (96+ bit na identifier), TID (hindi nababago na chip ID), at User (custom na data).
Estruktura ng Memorya ng Tag
| Bangko | ID | Karaniwang Laki | Paggamit |
|---|---|---|---|
| Reserved | 00 | 64 bits | Kill password (32b) + Access password (32b) |
| EPC | 01 | 96-128 bits | SGTIN-96, SSCC-96, o custom encoding |
| TID | 10 | 96+ bits | Chip manufacturer ID (basahin-lamang, natatangi) |
| User | 11 | 0-512 bits | Data na partikular sa aplikasyon (nakadepende sa chip) |
Halimbawa ng Pag-decode ng SGTIN-96
Ang SGTIN-96 ay ang pinakakaraniwang encoding para sa mga produkto ng retail at supply chain. I-convert ang 24-character na hex EPC sa GTIN-14, serial number, at 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]Gamitin ang online na tool na EPC Encoder sa /tools/tds-rfid-converter upang i-encode at i-decode ang SGTIN-96, SSCC-96, GRAI-96 nang direkta sa iyong browser.
Pamamahala ng Power
Ang transmit power ng reader ay maaaring i-adjust mula 0 hanggang 33 dBm bawat antenna port. Ang mas mataas na power ay nagpapataas ng read range ngunit nagdadagdag din ng interference at konsumo ng power.
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 readersPagmamanman ng RSSI
Ang mga halaga ng RSSI (Received Signal Strength Indicator) mula sa mga tag ay iniulat bilang raw na ADC bytes (0-255). Gamitin ang conversion formula upang makuha ang tumpak na mga halaga ng dBm.
Pormula ng Pag-convert
dBm = -100 + round((raw × 70) / 255)
Raw 128
-65 dBm
Mabuti
Raw 180
-51 dBm
Malakas
Raw 220
-40 dBm
Mahusay
Mabilis na Pag-scan ng Imbentaryo
Para sa mabilis na pag-scan ng imbentaryo, i-configure ang mga working frequency, duplicate tag filter, at continuous scan mode. Ang mga reader ay sumusuporta hanggang 700 na tag bawat segundo sa optimal na configuration.
Kumpigurasyon ng Frequency
Ang UHF RFID ay gumagana sa bandang 920-925 MHz (Timog-silangang Asya), na may agwat ng channel na 0.5 MHz. Ang mga channel ay binibigyan ng numero mula 0 (920 MHz) hanggang 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 MHzPinakamainam na Workflow ng Pag-scan
I-configure ang mga antenna port at antas ng kapangyarihan
Itakda ang mga working frequency (FHSS para sa masikip na kapaligiran)
I-configure ang duplicate filter (500ms-3000ms depende sa kaso ng paggamit)
Ipadala ang READ_EPC_TAG upang simulan ang patuloy na imbentaryo
Iproseso ang mga notipikasyon ng tag (PID 0x1231) habang dumarating
Ipadala ang STOP_INVENTORY kapag tapos na
// 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");