دستاویزی دستاویز

RFID ریڈر انٹیگریشن مینوئل

سیریل کمیونیکیشن سیٹ اپ، اینٹینا کنفیگریشن، ٹیگ انکوڈنگ آپریشنز (EPC Gen2 / ISO 18000-6C)، اور پاور مینجمنٹ کا احاطہ کرنے والی جامع دستاویزات۔ ملٹی اینٹینا تعیناتیوں اور تیز رفتار انوینٹری اسکیننگ کے لیے مثالیں شامل ہیں۔

سیریل کمیونیکیشن سیٹ اپ

Nextwaves NRN پروٹوکول RFID ریڈرز سیریل پورٹ (RS-232 یا USB-to-Serial) کے ذریعے مواصلت کرتے ہیں۔ مستحکم ڈیٹا ٹرانسمیشن کو یقینی بنانے کے لیے کنکشن پیرامیٹرز کو صحیح طریقے سے کنفیگر کرنا ضروری ہے۔

Baud Rate

115200

Data Bits

8

Stop Bits

1

Parity

None

براؤزر پر مبنی WebSerial API کنکشن کے لیے، app.nextwaves.com/reader پر Nextwaves Reader Connect استعمال کریں۔ ایپلیکیشن COM پورٹس کو خود بخود پتہ لگاتی ہے اور کنکشن پیرامیٹرز کو کنفیگر کرتی ہے۔

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 پروٹوکول فریم ڈھانچہ

ہر NRN پروٹوکول کمانڈ ایک بائنری فریم میں شامل ہے جس میں شامل ہیں: ہیڈر (0x5A)، PCW (پروٹوکول کنٹرول ورڈ)، زمرہ، MID (میسج ID)، لمبائی، ڈیٹا پے لوڈ، اور CRC16-CCITT چیکسم۔

فیلڈسائزتفصیل
Header1 byteہمیشہ 0x5A۔ فریم مارکر کا آغاز
PCW2 bytesپروٹوکول جھنڈے (ورژن، پتہ)
Category1 byteکمانڈ کی قسم (0x00=System, 0x01=Device, 0x02=RFID)
MID1 byteزمرے کے اندر پیغام ID
Length2 bytesبائٹس میں پے لوڈ کی لمبائی (بڑے-اینڈین)
DataN bytesکمانڈ سے مخصوص پے لوڈ
CRC162 bytesہیڈر کے بعد بائٹس کا CRC16-CCITT چیکسم

کمانڈ کی مثالیں

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

کلیدی کمانڈز حوالہ

کمانڈکوڈتفصیل
QUERY_INFO0x0100ریڈر سیریل نمبر اور فرم ویئر ورژن کو استفسار کریں
QUERY_RFID_ABILITY0x1000RFID صلاحیتوں کو استفسار کریں (پاور رینج، اینٹینا کی گنتی)
READ_EPC_TAG0x0210مسلسل EPC ٹیگ انوینٹری شروع کریں
WRITE_EPC_TAG0x0211ٹیگ کے EPC بینک میں ڈیٹا لکھیں
STOP_INVENTORY0x02FFچلتی ہوئی ٹیگ انوینٹری کو روکیں
CONFIGURE_READER_POWER0x0201ٹرانسمٹ پاور سیٹ کریں (0-33 dBm فی اینٹینا)
CONFIGURE_ANTENNA_ENABLE0x0203اینٹینا پورٹس کو فعال/غیر فعال کریں (بٹ ماسک)
SET_WORKING_FREQUENCY0x0205مخصوص کام کرنے کی فریکوئنسی سیٹ کریں
SET_FILTER_SETTINGS0x0209ٹیگ ڈپلیکیٹ فلٹر کو ترتیب دیں (وقت پر مبنی)
BUZZER_SWITCH0x011Eبزر موڈ کو کنٹرول کریں

اینٹینا کنفیگریشن

RFID ریڈرز 32 اینٹینا پورٹس تک سپورٹ کرتے ہیں۔ ہر پورٹ کو 4-بائٹ بٹ ماسک کے ذریعے فعال یا غیر فعال کیا جاتا ہے۔ اینٹینا کو 1 سے 32 تک نمبر دیا جاتا ہے، ہر بٹ ایک پورٹ کے مساوی ہے۔

اینٹینا بٹ ماسک

اینٹینا 1-4 فعال کریں

0x0F, 0x00, 0x00, 0x00

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

صرف اینٹینا 1 اور 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

ملٹی-اینٹینا تعیناتی

متعدد اینٹینا کی تعیناتی کرتے وقت، پولرائزیشن (لکیری بمقابلہ سرکلر)، اینٹینا کے درمیان فاصلہ، اور اوورلیپنگ کوریج زونز پر غور کریں۔ ریڈر فعال اینٹینا کے ذریعے یکے بعد دیگرے اسکین کرتا ہے، اور ہر ٹیگ رپورٹ میں پوزیشن کے تعین کے لیے اینٹینا ID شامل ہوتا ہے۔

ڈاک ڈور

پورٹل کے فی 2-4 اینٹینا، سرکلر پولرائزیشن، 30 dBm پاور

کنویئر بیلٹ

اسٹیشن کے فی 1-2 اینٹینا، لکیری پولرائزیشن، 20-25 dBm

ریٹیل شیلف

قریب فیلڈ اینٹینا، کم پاور 15-20 dBm، اعلی کثافت

ٹیگ انکوڈنگ (EPC Gen2 / ISO 18000-6C)

UHF RFID EPC Gen2 معیار (ISO 18000-6C) کی پیروی کرتا ہے۔ ہر ٹیگ میں 4 میموری بینک ہوتے ہیں: محفوظ (پاس ورڈ)، EPC (96+ بٹ شناخت کنندہ)، TID (غیر تبدیل شدہ چپ ID)، اور صارف (کسٹم ڈیٹا)۔

ٹیگ میموری ڈھانچہ

بینکشناختعام سائزاستعمال
Reserved0064 bitsکل پاس ورڈ (32b) + رسائی پاس ورڈ (32b)
EPC0196-128 bitsSGTIN-96, SSCC-96, یا حسب ضرورت انکوڈنگ
TID1096+ bitsچپ بنانے والے کی ID (صرف پڑھنے کے لیے، منفرد)
User110-512 bitsایپلیکیشن کے لیے مخصوص ڈیٹا (چپ پر منحصر)

SGTIN-96 ڈی کوڈنگ کی مثال

SGTIN-96 خوردہ فروشی اور سپلائی چین کی مصنوعات کے لیے سب سے عام انکوڈنگ ہے۔ 24 حروف والے ہیکس EPC کو GTIN-14، سیریل نمبر، اور GS1 ڈیجیٹل لنک میں تبدیل کریں۔

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]

آن لائن EPC اینکوڈر ٹول استعمال کریں /tools/tds-rfid-converter SGTIN-96, SSCC-96, GRAI-96 کو براہ راست اپنے براؤزر میں انکوڈ اور ڈی کوڈ کرنے کے لیے۔

پاور مینجمنٹ

ریڈر ٹرانسمٹ پاور اینٹینا پورٹ کے لحاظ سے 0 سے 33 dBm تک ایڈجسٹ کی جا سکتی ہے۔ زیادہ پاور ریڈ رینج کو بڑھاتی ہے لیکن مداخلت اور بجلی کی کھپت میں بھی اضافہ کرتی ہے۔

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 مانیٹرنگ

ٹیگز سے RSSI (وصول شدہ سگنل کی طاقت کا اشارے) کی قدریں خام ADC بائٹس (0-255) کے طور پر رپورٹ کی جاتی ہیں۔ درست dBm قدریں حاصل کرنے کے لیے تبادلوں کے فارمولے کا استعمال کریں۔

تبدیلی کا فارمولا

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

Raw 128

-65 dBm

اچھا

Raw 180

-51 dBm

مضبوط

Raw 220

-40 dBm

شاندار

تیز رفتار انوینٹری اسکیننگ

تیز رفتار انوینٹری اسکیننگ کے لیے، کام کرنے والی فریکوئنسیوں، ڈپلیکیٹ ٹیگ فلٹر، اور مسلسل اسکین موڈ کو کنفیگر کریں۔ ریڈرز بہترین کنفیگریشن کے ساتھ 700 ٹیگز/سیکنڈ تک سپورٹ کرتے ہیں۔

فریکوئنسی کنفیگریشن

UHF RFID 920-925 MHz بینڈ (جنوب مشرقی ایشیا) میں کام کرتا ہے، جس میں 0.5 MHz چینل کی جگہ ہے۔ چینلز کو 0 (920 MHz) سے 10 (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

بہترین اسکیننگ ورک فلو

1

اینٹینا پورٹس اور پاور لیول کو ترتیب دیں

2

ورکنگ فریکوئنسیز سیٹ کریں (گھنے ماحول کے لیے FHSS)

3

ڈپلیکیٹ فلٹر ترتیب دیں (استعمال کے کیس پر منحصر ہے 500ms-3000ms)

4

مسلسل انوینٹری شروع کرنے کے لیے READ_EPC_TAG بھیجیں

5

ٹیگ اطلاعات پر کارروائی کریں (PID 0x1231) جیسے ہی وہ پہنچتے ہیں

6

ہو جانے پر STOP_INVENTORY بھیجیں

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