TAKARDUN BAYANI
Jagorar Haɗa RFID Reader
Cikakken takardun bayanai da ke rufe saitin sadarwar serial, daidaita antena, ayyukan ƙirƙirar alamar (EPC Gen2 / ISO 18000-6C), da sarrafa wuta. Ya haɗa da misalai don amfani da antena da yawa da kuma skan na inventory da sauri.
Saitin Sadarwar Serial
Masu karanta RFID na Nextwaves NRN protocol suna sadarwa ta tashar serial (RS-232 ko USB-zuwa-Serial). Dole ne a saita sigogin haɗin daidai don tabbatar da isar da bayanai mai ɗorewa.
Baud Rate
115200
Data Bits
8
Stop Bits
1
Parity
None
Don haɗin WebSerial API ta hanyar burauza, yi amfani da Nextwaves Reader Connect a app.nextwaves.com/reader. Manhajar tana gano tashoshin COM ta atomatik kuma tana saita sigogin haɗin.
// 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()Tsarin Frame na Nextwaves NRN Protocol
Kowane umarnin NRN protocol an ƙunsar da shi a cikin frame na binary wanda ya ƙunshi: Header (0x5A), PCW (Protocol Control Word), Category, MID (Message ID), Length, Data payload, da CRC16-CCITT checksum.
| Filin | Girma | Bayanin |
|---|---|---|
| Header | 1 byte | Kullum 0x5A. alamar farawar frame |
| PCW | 2 bytes | Alamomin Protocol (sigar, adireshi) |
| Category | 1 byte | Rukunin umarni (0x00=System, 0x01=Device, 0x02=RFID) |
| MID | 1 byte | ID saƙo a cikin rukunin |
| Length | 2 bytes | Tsawon payload a cikin byte (big-endian) |
| Data | N bytes | Payload na umarni |
| CRC16 | 2 bytes | CRC16-CCITT checksum na bytes bayan header |
Misalan Umarnin
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 CRC16Jagorar Umarnin Maɓalli
| Umurni | Lamba | Bayanin |
|---|---|---|
| QUERY_INFO | 0x0100 | Nemi lambar serial na mai karanta da sigar firmware |
| QUERY_RFID_ABILITY | 0x1000 | Nemi ƙwarewar RFID (iyakar ƙarfin, yawan antena) |
| READ_EPC_TAG | 0x0210 | Fara inventory na alamun EPC a ci gaba |
| WRITE_EPC_TAG | 0x0211 | Rubuta bayanai zuwa bankin EPC na alama |
| STOP_INVENTORY | 0x02FF | Tsayar da inventory na alama da ke gudana |
| CONFIGURE_READER_POWER | 0x0201 | Saita ƙarfin watsawa (0-33 dBm per antena) |
| CONFIGURE_ANTENNA_ENABLE | 0x0203 | Kunna/ kashe tashoshin antena (bitmask) |
| SET_WORKING_FREQUENCY | 0x0205 | Saita takamaiman mitar aiki |
| SET_FILTER_SETTINGS | 0x0209 | Saita tace maimaita alama (na lokaci) |
| BUZZER_SWITCH | 0x011E | Kula da Yanayin Buzzer |
Saitin Antena
Masu karanta RFID suna goyan bayan har zuwa tashoshin antena 32. Kowane tashar ana kunna ko kashe ta hanyar bitmask na byte 4. Antenuna suna da lamba daga 1 zuwa 32, inda kowanne bit yake da alaka da tashar.
Bitmask na Antena
Kunna Antennas 1-4
0x0F, 0x00, 0x00, 0x00
Binary: 00001111 → Ports 1,2,3,4 ON
Kunna Antennas 1 & 3 Kawai
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 enabledKaddamar da Antenna da yawa
Lokacin sanya antenna da yawa, yi la'akari da polarisation (layi vs zagaye), tazara tsakanin antenna, da yankunan rufin da suka yi overlapp. Na'urar karatu tana duba a jere ta antenna da aka kunna, kuma kowanne rahoton tag yana ƙunshe da ID na antenna don tantance matsayi.
Kofofin Dock
2-4 antennas a kowace portal, circular polarization, 30 dBm power
Banda Mai ɗauka
1-2 antennas a kowace tashar, linear polarization, 20-25 dBm
Rijiyar Siyarwa
Antena na kusa da filin, ƙaramin wuta 15-20 dBm, mai yawan yawa
Lambar Tag (EPC Gen2 / ISO 18000-6C)
UHF RFID na bin ma'aunin EPC Gen2 (ISO 18000-6C). Kowanne tag yana da bankunan ƙwaƙwalwa 4: Reserved (kalmar sirri), EPC (mai gano bit 96+), TID (ID ɗin chip da ba za a iya canzawa ba), da User (bayanan al'ada).
Tsarin Ƙwaƙwalwar Tag
| Banki | ID | Girman Al'ada | Amfani |
|---|---|---|---|
| Reserved | 00 | 64 bits | Kalmar sirri ta kashe (32b) + Kalmar sirri ta shiga (32b) |
| EPC | 01 | 96-128 bits | SGTIN-96, SSCC-96, ko ƙirƙirar alama na al'ada |
| TID | 10 | 96+ bits | ID mai ƙera chip (karanta kawai, na musamman) |
| User | 11 | 0-512 bits | Bayanan da aka keɓance ga aikace-aikace (dogara da chip) |
Misalin Fassarawa na SGTIN-96
SGTIN-96 shine mafi yawan ƙirƙira don kayayyakin retail da sarkar samarwa. Canza EPC hex mai haruffa 24 zuwa GTIN-14, lambar serial, da 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]Yi amfani da kayan aikin EPC Encoder na yanar gizo a /tools/tds-rfid-converter don encode da decode SGTIN-96, SSCC-96, GRAI-96 kai tsaye a burauzarka.
Sarrafa Wuta
Karfin watsar da Reader na iya daidaitawa daga 0 zuwa 33 dBm a kowane tashar antena. Karfi mafi girma yana ƙara nisan karantawa amma kuma yana ƙara tsangwama da amfani da wuta.
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 readersSa ido kan RSSI
Kimomin RSSI (Alamar Ƙarfi na Sigina da Aka Karɓa) daga alamar ana bayar da su a matsayin ƙwayoyin ADC na asali (0-255). Yi amfani da tsarin canji don samun ƙimar dBm daidai.
Lissafin Canji
dBm = -100 + round((raw × 70) / 255)
Raw 128
-65 dBm
Mai Kyau
Raw 180
-51 dBm
Mai ƙarfi
Raw 220
-40 dBm
Mafi Kyau
Binciken Inventory Mai Sauri
Don yin duba inventory da sauri, saita frekwensin aiki, tace tag masu maimaitawa, da yanayin duba ci gaba. Na'urorin karatu suna tallafawa har zuwa 700 tag/s daƙiƙa tare da saitin da ya dace.
Saitin Matsa
UHF RFID yana aiki a cikin band na 920-925 MHz (Kudu maso gabashin Asiya), tare da tazara tsakanin tashoshi na 0.5 MHz. Tashoshi an lissafa su daga 0 (920 MHz) zuwa 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 MHzMafi Kyawun Tsarin Skanin
Saita tashoshin antena da matakan wuta
Saita mitoci masu aiki (FHSS don yanayin cunkoso)
Saita matattarar maimaitawa (500ms-3000ms dangane da yanayin amfani)
Aika READ_EPC_TAG don fara inventari na ci gaba
Aiwatar da sanarwar tag (PID 0x1231) yayin da suka iso
Aika STOP_INVENTORY idan an gama
// 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");