الـ ٤ بنوك ذاكرة
كل علامة EPC Gen2 لها بالضبط ٤ بنوك ذاكرة، يخدم كل منها غرضاً محدداً. فهم هذه البنية ضروري لترميز وقراءة وتأمين علاماتك.
Bank 00 (المحجوز): يحتوي كلمة مرور الإلغاء ٣٢ بت وكلمة مرور الوصول ٣٢ بت. القيم الافتراضية هي 0x00000000. كلمة مرور الإلغاء تعطل العلامة بشكل دائم عند إرسالها. لا رجعة فيها. كلمة مرور الوصول تحجز بنوك الذاكرة لمنع الكتابات غير المصرح بها.
Bank 01 (EPC): يحتوي StoredCRC (١٦ بت، محسوب تلقائياً)، StoredPC/التحكم بالبروتوكول (١٦ بت، يشير إلى طول EPC وإمكانات العلامة)، وقيمة EPC نفسها. عادةً ٩٦ بت (١٢ بايت) لـ SGTIN-96. بعض العلامات تدعم EPC ١٢٨ بت أو حتى ٤٩٦ بت.
Bank 10 (TID): معرف العلامة المبرمج من المصنع. يحتوي رمز مصنّع الشريحة ورقم الطراز ورقم تسلسلي فريد. هذا البنك للقراءة فقط ولا يمكن تغييره أبداً. مما يجعله لا يقدر بثمن لمكافحة التزوير ومصادقة العلامة.
Bank 11 (المستخدم): تخزين إضافي اختياري. يختلف الحجم حسب الشريحة: NXP UCODE 9 ليس لديها ذاكرة مستخدم، Quanray QStar-7U لديها ٥١٢ بت (٦٤ بايت). استخدمها لأرقام الدفعة أو تواريخ الفحص أو عتبات درجة الحرارة أو سجلات الصيانة. تحقق دائماً من السعة المتاحة قبل الكتابة.
ترميز SGTIN-96. خطوة بخطوة
SGTIN-96 هو مخطط EPC الأكثر استخداماً على نطاق واسع. يرمز GTIN-14 (الباركود الخاص بمنتجك) بالإضافة إلى رقم تسلسلي فريد إلى ٩٦ بت (١٢ بايت) بالضبط. هذا يسمح بما يصل إلى ٢٧٤ مليار رقم تسلسلي فريد لكل نوع منتج.
البنية ٩٦-بت: Header (٨ بت، دائماً 0x30 لـ SGTIN-96) → Filter (٣ بت: ٠=الكل، ١=POS، ٢=صندوق كامل، ٣=محجوز، ٤=حزمة داخلية، ٥=محجوز، ٦=وحدة تحميل، ٧=مكون) → Partition (٣ بت: يحدد كيفية تقسيم البتات بين بادئة الشركة ومرجع العنصر) → بادئة الشركة (٢٠–٤٠ بت) → مرجع العنصر (٤–٢٤ بت) → الرقم التسلسلي (٣٨ بت).
قيمة Partition (٠–٦) تحدد طول بادئة الشركة: P=٠ → بادئة ٤٠-بت (١٢ رقم)، P=١ → ٣٧-بت (١١ رقم)، P=٢ → ٣٤-بت (١٠ أرقام)، P=٣ → ٣٠-بت (٩ أرقام)، P=٤ → ٢٧-بت (٨ أرقام)، P=٥ → ٢٤-بت (٧ أرقام)، P=٦ → ٢٠-بت (٦ أرقام). طول بادئة شركة GS1 الخاصة بك يحدد أي قيمة partition تستخدم.
استخدم أداة Nextwaves TDS RFID Converter على /tools/tds-rfid-converter لترميز وفك ترميز قيم SGTIN-96 تفاعلياً. أدخل GTIN-14 + الرقم التسلسلي واحصل على EPC السداسي عشري فوراً.
┌────────┬──────┬─────┬──────────────┬──────────────┬──────────────┐
│ 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 أخرى ٩٦-بت لمعرفات سلسلة التوريد المختلفة. لكل منها بايت header الخاص به.
قراءة وكتابة ذاكرة البطاقة
قراءة البطاقات أثناء الجرد سلبية. يبث القارئ استعلاماً وترد البطاقات برمز EPC الخاص بها من البنك 01. لكن يمكنك أيضاً قراءة أي بنك ذاكرة صراحةً بإرسال أمر READ مع رقم البنك وإزاحة الكلمة وعدد الكلمات.
الكتابة على البطاقات تتطلب دقة أكبر. يجب عزل البطاقة (بطاقة واحدة فقط ترد)، والكتابة تتم كلمة (16 بت) في كل مرة. تتطلب كتابة EPC كاملة بـ 96 بت ست عمليات كتابة كلمات متسلسلة. تستغرق كل كتابة 10-20 مللي ثانية، لذا يستغرق ترميز بطاقة واحدة 60-120 مللي ثانية لبيانات EPC وحدها.
أخطاء الكتابة الشائعة: البطاقة بعيدة جداً عن الهوائي (تحتاج إشارة أقوى للكتابة مقارنة بالقراءة. ضع البطاقة ضمن 1م). بطاقات متعددة في المجال (فشل العزل. عزل البطاقة المستهدفة). ذاكرة البطاقة مقفلة (يتطلب كلمة مرور للوصول). فشل التحقق من الكتابة (أعد المحاولة، أو قد تكون البطاقة معيبة. معدل العيوب النموذجي 1-3 لكل 10,000).
أفضل الممارسات: تحقق دائماً بعد الكتابة بقراءة البيانات مرة أخرى ومقارنتها. قد ينجح أمر الكتابة لكنه يفسد البتات المجاورة في حالات نادرة. التحقق بالقراءة بعد الكتابة يكتشف هذه المشكلات.
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 بت للأمان. تُغلق كلمة مرور الوصول (Access Password) بنوك الذاكرة المحددة. بمجرد تعيينها، يتطلب ذلك البنك كلمة المرور قبل أي عملية قراءة أو كتابة. تُعطّل كلمة مرور الإلغاء (Kill Password) البطاقة بشكل دائم عند نقلها. عملية لا رجعة فيها تُستخدم أساساً لخصوصية المستهلك في التجزئة (تدمير البطاقة بعد الدفع).
أفضل ممارسات الأمان: لا تستخدم أبداً كلمة المرور الافتراضية كلما كانت أصفاراً (0x00000000) في الإنتاج. لا توفر أي أمان. أنشئ كلمات مرور فريدة لكل دفعة بطاقات أو استخدم بادئة شركتك كبذرة. خزّن كلمات المرور في نظام الواجهة الخلفية، وليس على البطاقة نفسها (يمكن قراءة ذاكرة كلمات المرور إذا كانت البطاقة غير مقفلة). أقفل بنوك كلمات المرور بعد البرمجة. فكر في وضع عدم التتبع (متاح على الشرائح الأحدث) الذي يخفي TID ويقلل EPC، مما يوفر الخصوصية دون إلغاء البطاقة.
أمر الإلغاء دائم ولا رجعة فيه. لا يوجد تراجع. بمجرد إلغاء بطاقة، لا يمكنها أبداً الرد على أي قارئ مرة أخرى. نفّذ دائماً التحقق من كلمة مرور الإلغاء في برنامجك واطلب تفويض المدير قبل تنفيذ أوامر الإلغاء.
رابط GS1 الرقمي
يعزز رابط GS1 الرقمي الجسر بين بطاقات RFID المادية ومعلومات رقمية يمكن الوصول إليها عبر الويب. يحول بيانات EPC إلى معرّف موارد موحد (URI) قياسي يؤدي إلى معلومات المنتج وخدمات المصادقة وإشعارات الاستدعاء أو بيانات الاستدامة.
التدفق: رمز EPC للبطاقة (مثل: 3034257BF7194E4000001A85) → فك الترميز إلى GTIN-14 (80614141123458) + الرقم التسلسلي (6789) → بناء URI: https://id.gs1.org/01/80614141123458/21/6789. يمكن لهذا URI أن يؤدي إلى صفحة منتجك أو واجهة برمجة المصادقة أو أي خدمة مسجلة في شبكة حل روابط GS1 الرقمية.
الاستخدامات العملية: مسح قطعة ملابس موسومة في متجر تجزئة → يحل URI إلى تعليمات العناية بالمنتج ودليل المقاسات وشهادات الاستدامة. مسح منتج صيدلاني موسوم → يحل URI إلى المصادقة (هل هذا المنتج أصلي؟) وتاريخ انتهاء الصلاحية وحالة الاستدعاء. مسح أصل موسوم → يحل URI إلى سجل الصيانة وجدول الفحص.
تولّد أدوات Nextwaves تلقائياً روابط URI الرقمية عند فك ترميز أي EPC من نوع SGTIN-96. استخدم محوّل TDS عبر الإنترنت أو أداة MCP decode_sgtin96 للإنشاء الفوري للرابط الرقمي.