Professional Documents
Culture Documents
1 of 9 09-Jun-10 1:17 AM
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
R FID ยอ มาจากคําวา Radio Frequency Identification เปนระบบฉลากหรือปายอิเล็กทรอนิกส (Tag) ถูกพัฒนามาตั้งแตป ค.ศ. 1980 ปายนี้สามารถอานและเขียนคาขอมูล
ไดโดยผาน คลื่นวิทยุ จากที่มีระยะหาง ดังนั้นเมื่อนําปายนี้ไปติดอยูกับวัตถุตางๆแลวบันทึกขอมูลของวัตถุนั้นใว เชน ผลิต ที่ไหน ใครเปนผูผลิต ผลิตอยางไร ผลิตวันไหน และเมื่อ
ไร ประกอบไปดวยชิ้นสวนกี่ชิ้น และแตละชิ้น มาจากที่ไหน ก็จะสามารถใชปายนี้เปนตัวระบุเอกลักษณของวัตถุได การอานขอมูลของวัตถุนั้น ไมจําเปนตองถูกตองหรือสัมผัสที่ตัว
วัตถุ (Contact-Less)
RFID ทํางานอยางไร
สวนประกอบของระบบ RFID
ส วนประกอบในระบบ RFID จะมีหลักๆ อยู 2 สวนดวยกัน คือ สวนแรกคือฉลากหรือปายขนาดเล็กที่จะถูก ผนึกอยูกับวัตถุที่เราสนใจ โดยฉลากนี้จะทําการบันทึกขอมูลเกี่ยวกับวัตถุชิ้นนั้นๆ เอาไวฉ ลากดังกลาว มีชื่อเรียก
วา ทรานสพอนเดอร (Transponder, Transmitter & Responder) หรือที่เรียกกันโดยทั่ว ไปวา ?แท็ก? (Tag) สวนที่สองก็คืออุปกรณสําหรับอานหรือเขียนขอมูลภายในแท็ก มีชื่อเรียกวา ทรานสซิฟเวอร (Transceiver,
Transmitter & Receiver) หรือที่เรียกกันโดยทั่ว ๆ ไปวา ?เครื่องอาน? โดยปกติแท็ก จะไม?มีแบตเตอรี่อยู?ภายในหรือไม?จําเป?นต?องรับแหล?งจ?ายไฟใด ๆ เพราะจะทํางานโดยอาศัยพลังงานไฟฟ?าที่เกิดจากการเหนี่
ยวนําคลื่นแม?เหล็กไฟฟ?าจากตัวอ?าน แท็กชนิดนี้เ รียกวาแท็กพาสซีฟ (Passive Tag) มีน้ําหนักเบาและมีขนาดเล็ก แตมีแท็กอีกชนิดหนึ่งที่เ รียกวาชนิดแอ็กทีฟ (Active tag) จะมีแบตเตอรี่อยูภ ายใน
RFID Tag
RFID Reader
2 of 9 09-Jun-10 1:17 AM
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
รูปแบบคําสั่งการติดตอกับตัวอาน
Header : Communication header มีขนาด 1 ไบต มีคาเปน 0xBA บอกวาเปนการติดตอจาก Host ไปสูโมดูล
Len : ความยาวของขอมูลที่สงนับจาก Command ถึง Checksum มีขนาด 1 ไบต
Command : คําสั่ง มีขนาด 1 ไบต
3 of 9 09-Jun-10 1:17 AM
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
Header : Communication header มีขนาด 1 ไบต มีคาเปน 0xBD บอกวาเปนการติดตอจากโมดูล ไปสู Host
Len : ความยาวของขอมูลที่สงนับจาก Command ถึง Checksum มีขนาด 1 ไบต
Command : เปนคําสั่งที่ไ ดรับจาก Host มีขนาด 1 ไบต
Status : สถานะการทํางาน มีขนาด 1 ไบต
4 of 9 09-Jun-10 1:17 AM
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
คําสั่งในรูปเลขฐานสิบหกที่สงใหกับตัวอาน 0xBA,0x02,0x01,0xB9
5 of 9 09-Jun-10 1:17 AM
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
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
ผลการทดลองเมื่อมีแท็ก
//----------------------------------------------------------------------------
// Mifare Read/Write RFID Module
// Model RFM015M-1
//----------------------------------------------------------------------------
BYTE RxdataBuff[21];
BYTE sel_card[4]={0xBA,0x02,0x01,0xB9}; // Select Mifare card command return 10 bytes
BYTE byte_length;
/*---------------------------------------------------------------------------------
void LCD_clr_line(unsigned char j)
function : clear LCD on line number j (0 or 1)
input line number j
----------------------------------------------------------------------------------*/
7 of 9 09-Jun-10 1:17 AM
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
void main()
{
BYTE i;
char Cardf_Str[] = "Selected Card "; // Card selected string for 0x00 status
char Notag_Str[] = "No tag "; // No tag string for 0x01 status
char Colli_Str[] = "Collision occur"; // Collision occur string for 0x0A status
char Chksm_Str[] = "Checksum error "; // Checksum error string for 0xF0 status
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 Buffer
for (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 success
LCD_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
}
8 of 9 09-Jun-10 1:17 AM
PrintWhatYouLike on RFID (Radio Frequency Identification) http://www.printwhatyoulike.com/print?url=http%3A%2F%2Fwww.rfidbasic.com%2Fmain.php%3Ft...
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");
}
}
}
9 of 9 09-Jun-10 1:17 AM