Manual de Integración del Lector RFID
Documentación completa que cubre configuración de comunicación serial, configuración de antena, operaciones de codificación de etiquetas (EPC Gen2 / ISO 18000-6C) y gestión de energía. Incluye ejemplos para despliegues multi-antena y escaneo de inventario de alta velocidad.
Configuración de Comunicación Serial
Los lectores RFID del protocolo NRN de Nextwaves se comunican a través de puerto serial (RS-232 o USB-a-Serial). Los parámetros de conexión deben configurarse correctamente para garantizar una transmisión de datos estable.
Para conexiones basadas en navegador mediante WebSerial API, use Nextwaves Reader Connect en app.nextwaves.com/reader. La aplicación detecta automáticamente los puertos COM y configura los parámetros de conexión.
// 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()Estructura de Trama del Protocolo NRN de Nextwaves
Cada comando del protocolo NRN se encapsula en una trama binaria que consiste en: Header (0x5A), PCW (Palabra de Control de Protocolo), Categoría, MID (ID de Mensaje), Longitud, Carga útil de datos y suma de verificación CRC16-CCITT.
Ejemplos de Comandos
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 CRC16Referencia de Comandos Principales
Configuración de Antena
Los lectores RFID soportan hasta 32 puertos de antena. Cada puerto se habilita o deshabilita a través de una máscara de bits de 4 bytes. Las antenas se numeran de 1 a 32, con cada bit correspondiente a un puerto.
Máscara de Antena
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 enabledDespliegue Multi-Antena
Al desplegar múltiples antenas, considere polarización (lineal vs. circular), espaciado entre antenas y zonas de cobertura superpuestas. El lector escanea secuencialmente a través de las antenas habilitadas, y cada reporte de etiqueta incluye el ID de antena para determinación de posición.
Puerta de Muelle
2-4 antenas por portal, polarización circular, potencia 30 dBm
Banda Transportadora
1-2 antenas por estación, polarización lineal, 20-25 dBm
Estante de Retail
Antenas de campo cercano, baja potencia 15-20 dBm, alta densidad
Codificación de Etiquetas (EPC Gen2 / ISO 18000-6C)
UHF RFID sigue el estándar EPC Gen2 (ISO 18000-6C). Cada etiqueta tiene 4 bancos de memoria: Reservada (contraseñas), EPC (identificador de 96+ bits), TID (ID de chip inmutable) y Usuario (datos personalizados).
Estructura de Memoria de Etiqueta
Ejemplo de Decodificación SGTIN-96
SGTIN-96 es la codificación más común para productos de retail y cadena de suministro. Convierta un EPC hex de 24 caracteres en GTIN-14, número de serie y 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]Use la herramienta EPC Encoder en línea en /tools/tds-rfid-converter para codificar y decodificar SGTIN-96, SSCC-96, GRAI-96 directamente en su navegador.
Gestión de Energía
La potencia de transmisión del lector es ajustable de 0 a 33 dBm por puerto de antena. Mayor potencia aumenta el alcance de lectura pero también aumenta la interferencia y el consumo de energía.
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 readersMonitoreo RSSI
Los valores RSSI (Indicador de Fuerza de Señal Recibida) de las etiquetas se reportan como bytes ADC sin procesar (0-255). Use la fórmula de conversión para obtener valores dBm precisos.
Escaneo de Inventario de Alta Velocidad
Para escaneo de inventario de alta velocidad, configure frecuencias de trabajo, filtro de etiquetas duplicadas y modo de escaneo continuo. Los lectores soportan hasta 700 etiquetas/segundo con configuración óptima.
Configuración de Frecuencia
UHF RFID opera en la banda de 920-925 MHz (Sudeste Asiático), con espaciado de canal de 0.5 MHz. Los canales se numeran del 0 (920 MHz) al 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 x 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 MHzFlujo de Trabajo de Escaneo Óptimo
Configurar puertos de antena y niveles de potencia
Establecer frecuencias de trabajo (FHSS para entornos densos)
Configurar filtro de duplicados (500ms-3000ms según el caso de uso)
Enviar READ_EPC_TAG para iniciar inventario continuo
Procesar notificaciones de etiquetas (PID 0x1231) a medida que lleguen
Enviar STOP_INVENTORY cuando termine
// 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");