Slider[Style1]

Style2

Style3[OneLeft]

Style3[OneRight]

Style4

Style5[ImagesOnly]

Style6

Know2pro RFID Project ตอนที่ 12 : ขั้นตอนการติดต่อกับ Reader และคำสั่ง Halt คืออะไร

ขั้นตอนหลักๆของการเขียนโปรแกรมติดต่อกับเครื่อง RFID Reader ส่วนนี้ผมได้ข้อมุลมาจาก Programmer มืออาชีพท่านหนึ่งครับ

1. POR (Power on Reset) เมื่อบัตรเข้ามาอยู่ในระยะ
2. ทำการ Request ติดต่อบัตร
3. ตรวจสอบ Anti-Collistion หรือเช็คว่ามี Tag กี่อันจะได้ไม่อ่านซ้ำ
4. Select Card เลือกการ์ดมาสักอัน เพื่อเอามาอ่านหรือเขียนข้อมูล
5. Authentication บัตรที่เลือกด้วย Key (password) ของมาตรฐาน RFID
6. ทำการอ่านหรือเขียนข้อมูล
7. Halt เพื่อที่จะไม่อ่าน Tag นั้นๆอีก เสร็จแล้วก็กลับไปรอ Tag ตัวใหม่ (ตัวเก่าจะไม่เอามาอ่านแล้ว)

Halt คือ การกำหนดสถานะของ Tag เพื่อให้หยุดทำงานชั่วคราว โดยการใช้ Function

rf_halt(0)

ค่า 0 (ศูนย์) คือ ค่า icdev เป็นค่าตายตัว

เมื่อใช้ function นี้แล้ว ตัว Reader จะอ่านค่าสถานะจาก Tag นั้นได้ว่าเป็น Halt และจะข้ามไปหา Tag ตัวอื่นๆแทน

แต่ถ้าเอา Tag ที่ Halt ออกจากระยะการอ่านของ Reader และใส่กลับเข้าไปใหม่ สถานะจะกลับไปเป็น Active เหมือนเดิมอีกครั้ง ดังนั้นการ Halt ทำได้แค่ชั่วคราวเท่านั้น

นอกจากนี้ ต้องกำหนดค่าใน function rf_request ใหม่ด้วย เพื่อให้สามารถอ่านสถานะ Halt ได้ วิธีกำหนดค่าคือ

rf_request(0,&H26,j)

ค่า 0 (ศุนย์) คือ ค่า icdev เป้นค่าตายตัว [INPUT]
ค่า &H26 คือ Mode [Input] ในการ Request มี 2 ค่าคือ
0x26 หรือ &H26 = Request non-halt cards ทำงานเฉพาะ Tag ที่ไม่เป็น Halt
0x52 หรือ &H52 = Request cards of All Status ทำงานกับ Tag ทุกสถานะ
ค่า j เป็นค่า pTagType [Output] หรือประเภทของ Tag ลองทดสอบแล้วได้ค่า 4
ซึ่งก็คือ 0x0400 = Mifare_one(S50)
สรุปคือ ได้ค่าออกมาเป็น 4 หมายถึง Request ไปแล้วได้ Tag ที่เป็นมาตรฐาน Mifare นั่นเอง

ที่คิดในตอนนี้คือ Tag ทุกตัวจะมี ID ไม่เหมือนกัน ถ้าเอามาใช้งานน่าจะให้ทำงานแค่ครั้งเดียวแล้ว Halt ไปเลย จาดนั้นก็ให้ Reader ทำการ Request Tag ตัวใหม่ วนไปแบบนี้เรื่อยๆ ก็จะได้วิธีการอ่าน Tag แบบไม่รู้จบ
แต่ต้องดุระยะการอ่านของ Reader ก่อนว่าจะทำได้หรือเปล่า

About Know2Play

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
«
Next
Newer Post
»
Previous
Older Post

No comments:

Post a Comment