پیشرفته

رمزگذاری تگ و حافظه EPC

معماری حافظه تگ و رمزگذاری GS1 را برای ادغام زنجیره تامین تسلط دهید

4 بانک حافظه

هر تگ EPC Gen2 دقیقاً 4 بانک حافظه دارد که هر کدام هدف خاصی را دنبال می کنند. درک این ساختار برای رمزگذاری، خواندن و ایمن سازی تگ های شما ضروری است.

بانک 00 (رزرو شده): شامل رمز عبور Kill 32 بیتی و رمز عبور دسترسی 32 بیتی است. مقادیر پیش فرض 0x00000000 است. رمز عبور kill در صورت ارسال، تگ را به طور دائم غیرفعال می کند. غیر قابل برگشت. رمز عبور دسترسی بانک های حافظه را قفل می کند تا از نوشتن غیرمجاز جلوگیری شود.

بانک 01 (EPC): شامل StoredCRC (16 بیت، محاسبه خودکار)، StoredPC/Protocol Control (16 بیت، طول EPC و قابلیت های تگ را نشان می دهد) و خود مقدار EPC است. معمولاً 96 بیت (12 بایت) برای SGTIN-96. برخی از تگ ها از EPC های 128 بیتی یا حتی 496 بیتی پشتیبانی می کنند.

بانک 10 (TID): شناسه تگ برنامه ریزی شده کارخانه. شامل کد سازنده تراشه، شماره مدل و یک شماره سریال منحصر به فرد است. این بانک فقط خواندنی است و هرگز نمی توان آن را تغییر داد. که آن را برای ضد جعل و احراز هویت تگ ارزشمند می کند.

بانک 11 (User): ذخیره سازی اضافی اختیاری. اندازه بسته به تراشه متفاوت است: NXP UCODE 9 دارای 0 بیت (بدون حافظه کاربر) است، Quanray QStar-7U دارای 512 بیت (64 بایت) است. از آن برای شماره دسته، تاریخ بازرسی، آستانه دما یا سوابق تعمیر و نگهداری استفاده کنید. همیشه قبل از نوشتن، ظرفیت موجود را بررسی کنید.

رمزگذاری SGTIN-96. گام به گام

SGTIN-96 پرکاربردترین طرح EPC است. این یک GTIN-14 (بارکد محصول شما) به علاوه یک شماره سریال منحصر به فرد را دقیقاً در 96 بیت (12 بایت) رمزگذاری می‌کند. این امکان را می‌دهد تا 274 میلیارد شماره سریال منحصر به فرد برای هر نوع محصول وجود داشته باشد.

ساختار 96 بیتی: هدر (8 بیت، همیشه 0x30 برای SGTIN-96) → فیلتر (3 بیت: 0=همه، 1=POS، 2=کامل، 3=رزرو شده، 4=بسته داخلی، 5=رزرو شده، 6=بار واحد، 7=مؤلفه) → پارتیشن (3 بیت: نحوه تقسیم بیت‌ها بین پیشوند شرکت و مرجع آیتم را تعریف می‌کند) → پیشوند شرکت (20–40 بیت) → مرجع آیتم (4–24 بیت) → شماره سریال (38 بیت).

مقدار پارتیشن (0–6) طول پیشوند شرکت را تعیین می‌کند: P=0 → پیشوند 40 بیتی (12 رقم)، P=1 → 37 بیتی (11 رقم)، P=2 → 34 بیتی (10 رقم)، P=3 → 30 بیتی (9 رقم)، P=4 → 27 بیتی (8 رقم)، P=5 → 24 بیتی (7 رقم)، P=6 → 20 بیتی (6 رقم). طول پیشوند شرکت GS1 شما تعیین می‌کند که از کدام مقدار پارتیشن استفاده کنید.

💡

از ابزار Nextwaves TDS RFID Converter در /tools/tds-rfid-converter برای رمزگذاری و رمزگشایی مقادیر SGTIN-96 به صورت تعاملی استفاده کنید. GTIN-14 + سریال خود را وارد کنید و EPC هگز را فوراً دریافت کنید.

SGTIN-96 Bit Structure
┌────────┬──────┬─────┬──────────────┬──────────────┬──────────────┐
│ Header │Filter│Part │Company Prefix│Item Reference│   Serial     │
│ 8 bits │3 bits│3bits│  20-40 bits  │   4-24 bits  │   38 bits    │
│  0x30  │ 0-7  │ 0-6 │  GS1 prefix  │  product ref │  unique ID   │
└────────┴──────┴─────┴──────────────┴──────────────┴──────────────┘

Partition table (defines prefix/item bit allocation):
P=0: 40-bit prefix (12 digits)  P=4: 27-bit prefix (8 digits)
P=1: 37-bit prefix (11 digits)  P=5: 24-bit prefix (7 digits)
P=2: 34-bit prefix (10 digits)  P=6: 20-bit prefix (6 digits)
P=3: 30-bit prefix (9 digits)

Example: 3034257BF7194E4000001A85
  Header=0x30 Filter=1 Part=5 Prefix=0614141
  Item=812345 Serial=6789 → GTIN-14: 80614141123458

سایر طرح های EPC

فراتر از SGTIN-96، GS1 چندین طرح EPC 96 بیتی دیگر را برای شناسه های مختلف زنجیره تامین تعریف می کند. هر کدام بایت هدر مخصوص به خود را دارند.

خواندن و نوشتن حافظه تگ

خواندن تگ ها در طول موجودی منفعل است. خواننده یک پرس و جو را پخش می کند و تگ ها با EPC خود از بانک 01 پاسخ می دهند. اما شما همچنین می توانید هر بانک حافظه را با ارسال یک دستور READ با شماره بانک، افست کلمه و تعداد کلمات به صراحت بخوانید.

نوشتن روی تگ‌ها به دقت بیشتری نیاز دارد. تگ باید به صورت تکی (فقط یک تگ پاسخگو) انتخاب شود و نوشتن یک کلمه (16 بیت) در یک زمان انجام می‌شود. نوشتن کامل 96 بیت EPC به 6 بار نوشتن متوالی کلمه نیاز دارد. هر بار نوشتن 10 تا 20 میلی‌ثانیه طول می‌کشد، بنابراین رمزگذاری یک تگ واحد 60 تا 120 میلی‌ثانیه برای داده‌های EPC به تنهایی طول می‌کشد.

خطاهای رایج نوشتن: تگ خیلی دور از آنتن (برای نوشتن به سیگنال قوی‌تری نسبت به خواندن نیاز دارد. تگ را تا فاصله 1 متری بیاورید). چندین تگ در میدان (انتخاب تکی ناموفق بود. تگ مورد نظر را جدا کنید). حافظه تگ قفل شده است (رمز عبور دسترسی لازم است). تأیید نوشتن ناموفق بود (دوباره امتحان کنید، یا ممکن است تگ معیوب باشد. میزان نقص معمول 1 تا 3 در هر 10000 است).

💡

بهترین روش: همیشه پس از نوشتن با خواندن مجدد داده ها و مقایسه، تأیید کنید. یک دستور نوشتن ممکن است موفق شود اما در موارد نادر بیت های مجاور را خراب کند. تأیید خواندن پس از نوشتن این مشکلات را برطرف می کند.

Write EPC — Nextwaves NRN Protocol
TX → 5A 00 01 02 11 00 0C [EPC_12_BYTES] [CRC16]

Write per 16-bit word: 10-20ms
Full 96-bit EPC = 6 words = 60-120ms total

With access password:
TX → 5A 00 01 02 11 00 10 [PWD_4B] [EPC_12B] [CRC16]

امنیت تگ و رمزهای عبور

تگ های EPC Gen2 از دو رمز عبور 32 بیتی برای امنیت پشتیبانی می کنند. رمز عبور دسترسی بانک های حافظه خاصی را قفل می کند. پس از تنظیم، آن بانک قبل از هر عملیات خواندن یا نوشتن به رمز عبور نیاز دارد. رمز عبور Kill به طور دائم تگ را هنگام انتقال غیرفعال می کند. یک عملیات غیرقابل برگشت که در درجه اول برای حفظ حریم خصوصی مصرف کننده در خرده فروشی استفاده می شود (از بین بردن تگ پس از تسویه حساب).

بهترین شیوه های امنیتی: هرگز از رمز عبور پیش فرض همه صفر (0x00000000) در تولید استفاده نکنید. هیچ امنیتی را فراهم نمی کند. رمزهای عبور منحصر به فرد را در هر دسته تگ تولید کنید یا از پیشوند شرکت خود به عنوان یک seed استفاده کنید. رمزهای عبور را در سیستم پشتیبان خود ذخیره کنید، هرگز روی خود تگ (حافظه رمز عبور را می توان در صورت باز شدن قفل تگ خواند). بانک های رمز عبور را پس از برنامه نویسی قفل کنید. حالت Untraceable را در نظر بگیرید (موجود در تراشه های جدیدتر) که TID را پنهان می کند و EPC را کاهش می دهد و حریم خصوصی را بدون از بین بردن تگ فراهم می کند.

⚠️

دستور Kill دائمی و غیرقابل برگشت است. هیچ بازگشتی وجود ندارد. هنگامی که یک تگ از بین رفت، دیگر هرگز نمی تواند به هیچ خواننده ای پاسخ دهد. همیشه تأیید رمز عبور kill را در نرم افزار خود پیاده سازی کنید و قبل از اجرای دستورات kill، مجوز مدیر را درخواست کنید.