ระดับสูง

การเข้ารหัสแท็กและหน่วยความจำ EPC

เชี่ยวชาญสถาปัตยกรรมหน่วยความจำแท็กและการเข้ารหัส GS1 เพื่อการเชื่อมต่อในห่วงโซ่อุปทาน

หน่วยความจำทั้ง 4 ส่วน (Memory Banks)

แท็ก EPC Gen2 ทุกใบมีหน่วยความจำ (memory banks) ทั้งหมด 4 ส่วน โดยแต่ละส่วนมีวัตถุประสงค์การใช้งานที่แตกต่างกัน การทำความเข้าใจโครงสร้างนี้เป็นสิ่งสำคัญสำหรับการเข้ารหัส การอ่าน และการรักษาความปลอดภัยของแท็ก

Bank 00 (Reserved): ประกอบด้วย Kill Password ขนาด 32 บิต และ Access Password ขนาด 32 บิต ค่าเริ่มต้นคือ 0x00000000 โดย Kill Password จะทำให้แท็กใช้งานไม่ได้อย่างถาวรเมื่อมีการส่งคำสั่ง (ไม่สามารถย้อนกลับได้) ส่วน Access Password ใช้สำหรับล็อกหน่วยความจำเพื่อป้องกันการเขียนข้อมูลโดยไม่ได้รับอนุญาต

Bank 01 (EPC): ประกอบด้วย StoredCRC (16 บิต, คำนวณอัตโนมัติ), StoredPC/Protocol Control (16 บิต, ระบุความยาว EPC และความสามารถของแท็ก) และค่า EPC เอง ซึ่งโดยปกติจะมีขนาด 96 บิต (12 ไบต์) สำหรับ SGTIN-96 แท็กบางรุ่นรองรับ EPC ขนาด 128 บิต หรือสูงสุดถึง 496 บิต

Bank 10 (TID): หมายเลขระบุแท็กที่โปรแกรมมาจากโรงงาน (Tag Identifier) ประกอบด้วยรหัสผู้ผลิตชิป หมายเลขรุ่น และหมายเลขซีเรียลที่ไม่ซ้ำกัน หน่วยความจำส่วนนี้เป็นแบบอ่านอย่างเดียว (read-only) และไม่สามารถเปลี่ยนแปลงได้ จึงมีประโยชน์อย่างยิ่งในการป้องกันการปลอมแปลงและการตรวจสอบความถูกต้องของแท็ก

Bank 11 (User): ส่วนจัดเก็บข้อมูลเพิ่มเติม (ทางเลือก) ขนาดจะแตกต่างกันไปตามรุ่นของชิป เช่น NXP UCODE 9 มีขนาด 0 บิต (ไม่มีหน่วยความจำผู้ใช้), Quanray QStar-7U มีขนาด 512 บิต (64 ไบต์) สามารถใช้สำหรับเก็บหมายเลขล็อต (batch numbers), วันที่ตรวจสอบ, เกณฑ์อุณหภูมิ หรือบันทึกการบำรุงรักษา ควรตรวจสอบความจุที่ใช้งานได้ก่อนทำการเขียนข้อมูลเสมอ

การเข้ารหัส SGTIN-96 — ทีละขั้นตอน

SGTIN-96 เป็นรูปแบบ EPC ที่มีการใช้งานแพร่หลายที่สุด โดยจะเข้ารหัส GTIN-14 (บาร์โค้ดสินค้าของคุณ) พร้อมกับหมายเลขซีเรียลที่ไม่ซ้ำกันลงในข้อมูลขนาด 96 บิต (12 ไบต์) พอดี ซึ่งช่วยให้สามารถสร้างหมายเลขซีเรียลที่ไม่ซ้ำกันได้ถึง 2.74 แสนล้านหมายเลขต่อประเภทสินค้า

โครงสร้างขนาด 96 บิต: Header (8 บิต, สำหรับ SGTIN-96 จะเป็น 0x30 เสมอ) → Filter (3 บิต: 0=ทั้งหมด, 1=POS, 2=กล่องบรรจุเต็ม, 3=สำรองไว้, 4=แพ็คภายใน, 5=สำรองไว้, 6=หน่วยบรรจุสินค้า, 7=ส่วนประกอบ) → Partition (3 บิต: กำหนดวิธีการแบ่งบิตระหว่างรหัสบริษัทและรหัสอ้างอิงสินค้า) → Company Prefix (20–40 บิต) → Item Reference (4–24 บิต) → Serial Number (38 บิต)

ค่า Partition (0–6) จะเป็นตัวกำหนดความยาวของ Company Prefix: P=0 → prefix ขนาด 40-bit (12 หลัก), P=1 → 37-bit (11 หลัก), P=2 → 34-bit (10 หลัก), P=3 → 30-bit (9 หลัก), P=4 → 27-bit (8 หลัก), P=5 → 24-bit (7 หลัก), P=6 → 20-bit (6 หลัก) ความยาว GS1 company prefix ของคุณจะเป็นตัวกำหนดว่าต้องใช้ค่า partition ใด

💡

ใช้เครื่องมือ Nextwaves TDS RFID Converter ที่ /tools/tds-rfid-converter เพื่อ encode และ decode ค่า SGTIN-96 แบบโต้ตอบได้ เพียงกรอก GTIN-14 + serial แล้วคุณจะได้รับค่า hex 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-bit อื่นๆ สำหรับรหัสระบุตัวตนในซัพพลายเชนที่แตกต่างกัน โดยแต่ละรูปแบบจะมี header byte เป็นของตัวเอง

การอ่านและเขียนหน่วยความจำของแท็ก

การอ่านแท็กระหว่างการตรวจนับสินค้าคงคลังจะเป็นแบบ passive — เครื่องอ่านจะส่งสัญญาณ query และแท็กจะตอบกลับด้วยค่า EPC จาก Bank 01 แต่คุณยังสามารถเลือกอ่านหน่วยความจำ bank ใดก็ได้โดยการส่งคำสั่ง READ พร้อมระบุหมายเลข bank, word offset และ word count

การเขียนข้อมูลลงในแท็กต้องใช้ความแม่นยำสูงกว่า แท็กจะต้องถูกแยกแยะ (singulated) ให้เหลือเพียงแท็กเดียวที่ตอบสนอง และการเขียนจะเกิดขึ้นทีละหนึ่ง word (16 bits) การเขียน EPC ขนาด 96-bit ให้ครบถ้วนต้องใช้การเขียน word ต่อเนื่องกัน 6 ครั้ง การเขียนแต่ละครั้งใช้เวลา 10–20ms ดังนั้นการ encode แท็กหนึ่งใบจะใช้เวลา 60–120ms สำหรับข้อมูล EPC เพียงอย่างเดียว

ข้อผิดพลาดในการเขียนที่พบบ่อย: แท็กอยู่ห่างจากเสาอากาศเกินไป (การเขียนต้องใช้สัญญาณที่แรงกว่าการอ่าน — ควรให้แท็กอยู่ในระยะ 1 เมตร) มีแท็กหลายใบอยู่ในรัศมี (singulation ล้มเหลว — ให้แยกแท็กเป้าหมายออกมา) หน่วยความจำของแท็กถูกล็อก (ต้องใช้ access password) การตรวจสอบการเขียนล้มเหลว (ให้ลองใหม่ หรือแท็กอาจชำรุด — อัตราการชำรุดปกติอยู่ที่ 1–3 ต่อ 10,000 ใบ)

💡

แนวทางปฏิบัติที่ดีที่สุด: ควรตรวจสอบความถูกต้องหลังการเขียนเสมอโดยการอ่านข้อมูลกลับมาเปรียบเทียบ คำสั่งเขียนอาจจะสำเร็จแต่ในบางกรณีที่เกิดขึ้นได้ยากอาจทำให้ bit ข้างเคียงเสียหาย การตรวจสอบแบบ read-after-write จะช่วยตรวจพบปัญหาเหล่านี้ได้

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 บิต สองชุดเพื่อความปลอดภัย Access Password ใช้สำหรับล็อกหน่วยความจำเฉพาะส่วน — เมื่อตั้งค่าแล้ว ส่วนนั้นจะต้องใช้รหัสผ่านก่อนการอ่านหรือเขียนข้อมูลใดๆ Kill Password จะปิดการทำงานของแท็กอย่างถาวรเมื่อมีการส่งรหัส — ซึ่งเป็นการดำเนินการที่ไม่สามารถย้อนกลับได้ โดยส่วนใหญ่ใช้เพื่อความเป็นส่วนตัวของผู้บริโภคในการค้าปลีก (การทำลายแท็กหลังการชำระเงิน)

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย: ห้ามใช้รหัสผ่านเริ่มต้นที่เป็นเลขศูนย์ทั้งหมด (0x00000000) ในการใช้งานจริง — เพราะไม่มีความปลอดภัยเลย ควรสร้างรหัสผ่านที่ไม่ซ้ำกันสำหรับแท็กแต่ละชุด หรือใช้คำนำหน้าของบริษัทเป็นค่าเริ่มต้น (seed) เก็บรหัสผ่านไว้ในระบบหลังบ้านของคุณ ห้ามเก็บไว้ในตัวแท็กเอง (หน่วยความจำรหัสผ่านสามารถถูกอ่านได้หากแท็กไม่ได้ถูกล็อก) ล็อกส่วนหน่วยความจำรหัสผ่านหลังจากโปรแกรมข้อมูลแล้ว พิจารณาใช้โหมด Untraceable (มีในชิปรุ่นใหม่) ซึ่งจะซ่อน TID และลดขนาด EPC เพื่อให้ความเป็นส่วนตัวโดยไม่ต้องทำลายแท็ก

⚠️

คำสั่ง Kill เป็นแบบถาวรและไม่สามารถย้อนกลับได้ ไม่มีการยกเลิก เมื่อแท็กถูกทำลายแล้ว จะไม่สามารถตอบสนองต่อเครื่องอ่านใดๆ ได้อีก ควรใช้การตรวจสอบ kill-password ในซอฟต์แวร์ของคุณเสมอ และกำหนดให้ต้องมีการอนุมัติจากผู้จัดการก่อนดำเนินการคำสั่ง Kill

อ่านเพิ่มเติม

สำรวจคู่มือ RFID เพิ่มเติมเพื่อเพิ่มพูนความรู้ของคุณ

ระดับเริ่มต้น

เริ่มต้นใช้งาน RFID

คู่มือเชิงปฏิบัติเพื่อทำความเข้าใจเทคโนโลยี UHF RFID — ตั้งแต่วิธีที่คลื่นวิทยุให้พลังงานแก่แท็กแบบพาสซีฟ ไปจนถึงการอ่านข้อมูล EPC และการเข้ารหัสแท็กแรกของคุณ

ระดับกลาง

การจัดวางและเพิ่มประสิทธิภาพเสาอากาศ

คู่มือปฏิบัติเพื่อเพิ่มอัตราการอ่าน RFID ให้สูงสุดผ่านการเลือกเสาอากาศ การจัดวางตำแหน่ง และการปรับจูน RF ที่เหมาะสม พร้อมการวัดผลจริงและตัวอย่างการติดตั้ง

ระดับสูง

การติดตั้งใช้งานเครื่องอ่านหลายเครื่อง

คู่มือสถาปัตยกรรมสำหรับการติดตั้งเครื่องอ่าน RFID หลายเครื่องในการใช้งานจริง — กลยุทธ์การประสานงาน, การจัดการความถี่ และรูปแบบการติดตั้งที่ผ่านการพิสูจน์แล้ว