Top Banner
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft... 1 of 9 09-Jun-10 1:17 AM
9

การใช้งาน RFID Modules แบบที่ 1.

Jul 28, 2015

Download

Documents

Know2Pro

การใช้งาน RFID Modules แบบที่ 1.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: การใช้งาน RFID Modules แบบที่ 1.

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

1 of 9 09-Jun-10 1:17 AM

Page 2: การใช้งาน RFID Modules แบบที่ 1.

การใชงาน RFID Modules แบบท่ี 1

การใชงานไมโครคอนโทรลเลอร PSoC กับโมดูลอารเอฟไอดี

(Using the PSoC microcontroller with RFID Module.)

RFID คืออะไร

RFID ยอมาจากคําวา Radio Frequency Identification เปนระบบฉลากหรือปายอิเล็กทรอนิกส (Tag) ถูกพัฒนามาต้ังแตป ค.ศ. 1980 ปายนี้สามารถอานและเขียนคาขอมูล

ไดโดยผาน คล่ืนวิทยุ จากท่ีมีระยะหาง ดังนั้นเมื่อนําปายนี้ไปติดอยูกับวัตถุตางๆแลวบันทึกขอมูลของวัตถุนั้นใว เชน ผลิต ที่ไหน ใครเปนผูผลิต ผลิตอยางไร ผลิตวันไหน และเมื่อไร ประกอบไปดวยช้ินสวนกี่ช้ิน และแตละช้ิน มาจากท่ีไหน ก็จะสามารถใชปายนี้เปนตัวระบุเอกลักษณของวัตถุได การอานขอมูลของวัตถุนั้น ไมจําเปนตองถูกตองหรือสัมผัสท่ีตัววัตถุ (Contact-Less)

RFID ทํางานอยางไร

สวนประกอบของระบบ RFID

สวนประกอบในระบบ RFID จะมีหลักๆ อยู 2 สวนดวยกัน คือ สวนแรกคือฉลากหรือปายขนาดเล็กท่ีจะถูก ผนึกอยูกับวัตถุท่ีเราสนใจ โดยฉลากน้ีจะทําการบันทึกขอมูลเกี่ยวกับวัตถุชิ้นน้ัน ๆเอาไวฉลากดังกลาว มีชื่อเรียก

วา ทรานสพอนเดอร (Transponder, Transmitter & Responder) หรือท่ีเรียกกันโดยท่ัว ไปวา ?แท็ก? (Tag) สวนท่ีสองก็คืออุปกรณสําหรับอานหรือเขียนขอมูลภายในแท็ก มีชื่อเรียกวา ทรานสซิฟเวอร (Transceiver,Transmitter & Receiver) หรือท่ีเรียกกันโดยท่ัว ๆไปวา ?เครื่องอาน? โดยปกติแท็ก จะไม?มีแบตเตอรี่อยู?ภายในหรือไม?จําเป?นต?องรับแหล?งจ?ายไฟใด ๆ เพราะจะทํางานโดยอาศัยพลังงานไฟฟ?าท่ีเกิดจากการเหน่ียวนําคล่ืนแม?เหล็กไฟฟ?าจากตัวอ?าน แท็กชนิดน้ีเรียกวาแท็กพาสซีฟ (Passive Tag) มีนํ้าหนักเบาและมีขนาดเล็ก แตมีแท็กอีกชนิดหน่ึงท่ีเรียกวาชนิดแอ็กทีฟ (Active tag) จะมีแบตเตอรี่อยูภายใน

RFID Tag

แท็กชนิดแอ็กตีฟ (Active Tag) แท็กชนิดน้ีจะมีแบตเตอร่ีอยูภายในซึ่งใชเปนแหลงจายไฟขนาดเล็ก เพื่อปอนพลังงานไฟฟาใหแท็กทํางานโดยปกติ โดยแท็กชนิดน้ีมีฟงกชั่นการทํางานท่ัวไปท้ังอานและเขียนขอมูลลงในแท็กได และการท่ีตองใชแบตเตอร่ีจึงทําใหแท็กชนิดแอคตีฟมีอายุการใชงานจํากัดตามอายุของแบตเตอรี ่เมื่อแบตเตอรี่หมดก็ตองนําแท็กไปท้ิงไมสามารถนํากลับมาใชใหมได เน่ืองจากจะมีการซีล (seal) ท่ีตัวแท็กจึงไมสามารถเปล่ียนแบตเตอร่ีได อยางไรก็ตามถาสามารถออกแบบวงจรของแท็กใหกินกระแสไฟนอยๆ ก็อาจจะมีอายุการใชงานนานนับสิบป แท็กชนิดแอ็กทีฟน้ีจะมีหนวยความจําภายในขนาดใหญไดถึง 1เมกะไบตมีกําลังสงสูงและระยะการรับสงขอมูลไกลสูงสุดถึง 6 เมตร ซึ่งไกลกวาแท็กชนิดพาสซีฟ นอกจากน้ียังทํางานในบริเวณท่ีมีสัญญาณรบกวนไดดี แมแท็กชนิดน้ีจะมีขอดีอยูหลายขอแตก็มีขอเสียเรื่องราคาตอหนวยซึ่งแพง

1.

แท็กชนิดพาสซีฟ (Passive Tag) จะไมมีแบตเตอรี่อยูภายในหรือไมจําเปนตองรับแหลงจายไฟใด ๆ เพราะจะทํางานโดยอาศัยพลังงานไฟฟาท่ีเกิดจากการเหน่ียวนําคล่ืนแมเหล็กไฟฟาจากตัวอานตองมูล จึงทําใหแท็กชนิดพาสซีฟมีนํ้าหนักเบาและเล็ก ราคาถูกกวา และมีอายุการใชงานไมจํากัด แตขอเสียก็คือระยะการรับสงขอมูลใกล ประมาณไมเกิน 1.5 เมตร มีหนวยความจําขนาดเล็กซึ่งโดยท่ัว ๆ ไปประมาณ 32 ถึง 128 บิตและตัวเครื่องอานจะตองมีความไวและกําลังท่ีสูง นอกจากน้ีแท็กชนิดพาสซีฟมักจะมีปญหาเมื่อนําไปใชงานในส่ิงแวดลอมท่ีมีสัญญาณแมเหล็กไฟฟารบกวนสูงอีกดวยนแตเมื่อพิจารณาเรื่องราคาก็ทําใหแท็กชนิดน้ีไดรับความนิยมมากกวา

2.

RFID Reader

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

2 of 9 09-Jun-10 1:17 AM

Page 3: การใช้งาน RFID Modules แบบที่ 1.

คูมือMifare Read/Write Module รุน RFM015M-1

วงจรสําหรับการทดลอง (Logic diagram)

รูปแบบคําส่ังการติดตอกับตัวอาน

Header : Communication header มีขนาด 1 ไบต มีคาเปน 0xBA บอกวาเปนการติดตอจาก Host ไปสูโมดูลLen : ความยาวของขอมูลท่ีสงนับจาก Command ถึง Checksum มีขนาด 1 ไบตCommand : คําส่ัง มีขนาด 1 ไบต

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

3 of 9 09-Jun-10 1:17 AM

Page 4: การใช้งาน RFID Modules แบบที่ 1.

Data : ขอมูลท่ีสง ข้ึนอยูกับคําส่ังChecksum : คา Checksum เกิดจากการ xor กันต้ังแต Header ถึง Data มีขนาด 1 ไบต

Header : Communication header มีขนาด 1 ไบต มีคาเปน 0xBD บอกวาเปนการติดตอจากโมดูล ไปสู HostLen : ความยาวของขอมูลท่ีสงนับจาก Command ถึง Checksum มีขนาด 1 ไบตCommand : เปนคําส่ังท่ีไดรับจาก Host มีขนาด 1 ไบตStatus : สถานะการทํางาน มีขนาด 1 ไบต

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

4 of 9 09-Jun-10 1:17 AM

Page 5: การใช้งาน RFID Modules แบบที่ 1.

Data : ขอมูลท่ีสง ข้ึนอยูกับคําส่ังChecksum : คา Checksum เกิดจากการ xor กันต้ังแต Header ถึง Data มีขนาด 1 ไบต

รูปแบบคําส่ังใหตัวอาน อานคา Serial number ของแท็ก

คําส่ังในรูปเลขฐานสิบหกท่ีสงใหกับตัวอาน 0xBA,0x02,0x01,0xB9

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

5 of 9 09-Jun-10 1:17 AM

Page 6: การใช้งาน RFID Modules แบบที่ 1.

ผลการทดลองเมื่อไมมีแท็ก

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

6 of 9 09-Jun-10 1:17 AM

Page 7: การใช้งาน RFID Modules แบบที่ 1.

ผลการทดลองเมื่อมีแท็ก

ไฟลทดสอบ Source Code และ ไฟลสําหรับทดสอบ Hex file

//----------------------------------------------------------------------------// Mifare Read/Write RFID Module// Model RFM015M-1//----------------------------------------------------------------------------

#include <m8c.h> // part specific constants and macros#include "PSoCAPI.h" // PSoC API definitions for all User Modules#include <stdlib.h>

BYTE RxdataBuff[21];BYTE sel_card[4]={0xBA,0x02,0x01,0xB9}; // Select Mifare card command return 10 bytesBYTE byte_length;/*---------------------------------------------------------------------------------void LCD_clr_line(unsigned char j)function : clear LCD on line number j (0 or 1)input line number j----------------------------------------------------------------------------------*/

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

7 of 9 09-Jun-10 1:17 AM

Page 8: การใช้งาน RFID Modules แบบที่ 1.

void LCD_clr_line(unsigned char j){LCD_1_Position(j,0);LCD_1_PrCString(" ");}

void main(){BYTE i;char Cardf_Str[] = "Selected Card "; // Card selected string for 0x00 statuschar Notag_Str[] = "No tag "; // No tag string for 0x01 statuschar Colli_Str[] = "Collision occur"; // Collision occur string for 0x0A statuschar Chksm_Str[] = "Checksum error "; // Checksum error string for 0xF0 status

LCD_1_Start(); // Initialize LCDUART_1_CmdReset(); // Reset Command BufferUART_1_Start(UART_1_PARITY_NONE); // Start UARTLCD_1_Position(0,0); // Set LCD positionLCD_1_PrCString("BaudRate = 9600 ");

while(1){PRT0DR |= 0X80;while(PRT0DR & 0X80) //Test tag detect signal{ // low level indicating tag in detection range;LCD_1_Position(0,0); // high level indicating tag out.LCD_1_PrString(Notag_Str); // Print "No tag" on the LCD ;}UART_1_CmdReset(); // Reset UART Command Bufferfor (i=0;i<4;i++){UART_1_PutChar(sel_card[i]); // Send a character to UART TX port}

if(UART_1_cGetChar()==0xBD){byte_length = UART_1_cGetChar();for (i=0;i<byte_length;i++){RxdataBuff[i] = UART_1_cGetChar(); // Get a character from UART RX data register}LCD_1_Position(0,0);switch(RxdataBuff[1]) // Check status byte{case 0x00: // If 0x00 : Operation successLCD_1_PrString(Cardf_Str); // Print "Card selected" on the LCD ;LCD_1_Position(1,0);LCD_1_PrCString("SN: ");for (i=2;i<6;i++){LCD_1_PrHexByte(RxdataBuff[i]); // Print serial number of the card detected}

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

8 of 9 09-Jun-10 1:17 AM

Page 9: การใช้งาน RFID Modules แบบที่ 1.

break;case 0x01:LCD_1_PrString(Notag_Str); // Print "No tag" on the LCD ;LCD_clr_line(1);break;case 0x0A:LCD_1_PrString(Colli_Str); // Print "Collision occur" on the LCD ;LCD_clr_line(1);break;case 0xF0:LCD_1_PrString(Chksm_Str); // Print "Checksum error" on the LCD ;LCD_clr_line(1);break;}}else{LCD_1_Position(0,0);LCD_1_PrCString("Cardreader error");}}}

PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...

9 of 9 09-Jun-10 1:17 AM