




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学华夏学院武汉理工大学华夏学院课 程 设 计 报 告课程名称:射频识别基础课程设计题 目: 高频数据块写入专 业 信息工程系 班 级 学 号 姓 名 成 绩 _指导教师 设计实验目的学习和掌握高频RFID电子标签的识别控制原理。一、 设计实验内容将电子标签放入高频RFID模块的识别范围内,高频RFID模块识别后在LCD上显示识别的卡号。二、 使用仪器电脑一台、WSN通用底板、RF2530模块、高频RFID模块、电子标签、zigbee多功能仿真器(带10pin的JTAG下载线)、A转Mini USB线。三、 设计实验原理射频识别技术(RFID)是一种新型自动识别技术,具有可靠性高、保密性强、方便快捷的特点,它利用无线射频方式,通过电磁感应、无线电波或微波能量,在读写基站和应答目标之间进行非接触双向通信,以达到目标识别和数据交换的目的,这项技术简称为“电子标签”。射频识别系统通常由电子标签(射频标签)和阅读器组成。电子标签内,存有一定格式的电子数据,常以此作为待识别目标的标示性信息。应用中将电子标签附在待识别目标上,作为待识别目标的电子标记,阅读器与电子标签可按约定的通信协议互传信息,RFID标签主要分为无源标签和有源标签两类(或是称为主动和被动)。最常见的是被动标签(无源标签),当阅读器遇见RFID标签时,发出电磁波,周围形成电磁场,标签从电磁场中获得能量激活标签中的微芯片电路,芯片转换电磁波,然后发送给解读器,解读器把它转换成相关数据。这里我们主要使用的电子标签是Mifare S70射频薄卡,该卡采用的飞利浦(NXP)原装的 Mifare IC S70芯片,符合IEC/ISO 14443A 空气接口协议。其具有先进的数据加密及双向密码验证系统,与S50芯片相比,其具有更大的存储容量,是企业一卡通,水表预付费,公交储值卡,高速公路收费,停车场,小区管理,交运卡,公园,公路等首选的高频RFID产品。卡片有4K的存储空间,有32个小扇区和8个大扇区。小扇区的结构为:每扇区有4块,每块16个字节,一共64字节,第3块为密钥和控制字节;大扇区的结构为:每扇区16块,每块16个字节,一共256字节,第15块为密钥和控制字节;详细介绍如下:(1)4K字节, 共40个扇区。前32个扇区中,每个扇区4个数据块;后8个扇区中,每个扇区16个数据块。每个数据块16个字节; (2)每个扇区有独立的一组密码及访问控制; (3)每张卡有唯一序列号,为32位; (4)具有防冲突机制,支持多卡操作; (5)无电源,自带天线,内含加密控制逻辑和通讯逻辑电路; (6)数据保存期为10年,可改写10万次,读无限次; (7)工作频率:13.56MHZ; (8)通信速率:106 KBPS; (9)读写距离:10 cm以内(与读写器有关)。其存储结构4K字节, 共40个扇区,前32个扇区中,每个扇区4个数据块;后8个扇区中,每个扇区16个数据块。每个数据块16个字节。如下图所示: 厂商数据存储块每个扇区的控制位(包含密码)都在该扇区的最后一个块内;扇区1到扇区31有3个数据块,扇区32到扇区39有15个数据块供存储数据(扇区0只有2个数据块和一个厂商数据存储块)。数据块的读写操作由控制位控制。每个扇区最后一个块的结构包含密码A(不能读出)、密码B及相应扇区中的所有块的存储控制位(位于第6个字节到第9个字节),存储结构如下:A0A1A2A3A4A5 FF 07 80 69 B0B1B2B3B4B5密码A(6字节) 存储控制(4字节) 密码B(6字节)使用的阅读器芯片采用的是MF RC522,RC522是应用于13.56MHz非接触式通信中高集成度读写卡系列芯片中的一员。是飞利浦(NXP)公司针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片。MF RC522利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。支持 ISO14443A的多层应用。其内部发送器部分可驱动读写器天线与ISO 14443A/MIFARE卡和应答机的通信,无需其它的电路。接收器部分提供一个坚固而有效的解调和解码电路,用于处理ISO14443A 兼容的应答器信号。数字部分处理ISO14443A 帧和错误检测(奇偶&CRC)。此外,它还支持快速CRYPTO1加密算法,用于验证MIFARE 系列产品。MFRC522支持MIFARE?更高速的非接触式通信,双向数据传输速率高达424kbit/s。阅读器和标签之间的工作结构框图如下所示:该设计实验主要是将电子标签的卡号进行读取出来,该卡号数据就在扇区0的数据块0中,即为厂商数据块。四、 注意事项1、设计实验前,请正确安装RF2530模块和高频RFID模块,注意其丝印方向应与底板丝印方向一致,严禁反接;2、设计实验过程中,严禁带电插拨器件,防止损坏电路;3、设计实验过程中,严禁用手触摸裸露的器件,特别是芯片!防止造成短路或损坏芯片;4、所有模块出厂前均已调试完毕,除非有特别说明,否则不建议自行对电路中可调部分进行调节。五、 设计实验步骤1、将一个RF2530模块和高频RFID模块插入到WSN通用底板的相应位置。 2、将zigbee多功能仿真器的一端通过10 pin下载线接到WSN通用底板的JTAG接口上,另一端通过USB线接到PC机上,并通过SmartRF Flash Programmer软件正确下载相应的设计实验例程(设计实验例程hex格式设计实验代码感知层设计实验RFID卡号识别设计实验RFID识别.HEX)。3、通过USB外接电源(或锂电池BT)给WSN通用底板供电并将电源开关拨至USB供电(或锂电池BT供电)的位置,程序自动运行,LCD显示“RFID Identify”,当有卡进入阅读器的识别距离范围之内,在“RFID Identify”的下方会显示出4个字节的16进制的数据,即为卡号。4、设计实验完毕,关闭电源,各模块放回原位。六、 设计实验程序流程图欢迎界面按下SW1、SW4进入功能选择界面进行读ID操作进去修改ID操作证实出厂ID无法修改读出ID并显示按下SW1返回欢迎界面按下SW2按下SW3七、 总结虽然这次课程是那么短暂的1周时间,我感觉到这些天我的所学胜过我这一学期所学,这次任务原则上是对RFID的运用,其实就是一次大的作业,是让我对课本知识的巩固和对基本程序的熟悉和应用,运用内部函数过程中的那些繁复的程序,使我做事的耐心和仔细程度得以提高。课程设计是培训学生运用本专业所学的理论知识和专业知识来分析解决实际问题的重要教学环节,是对本学期所学知识的复习和巩固。同样,也促使了同学们的相互探讨,相互学习。因此,我们必须认真、谨慎、踏实、一步一步的完成设计。如果时间可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个项目,我相信无论是谁看到自己做出的成果时心里一定会很兴奋。此次设计让我明白了一个很深刻的道理:团队精神固然很重要,担人往往还是要靠自己的努力,自己亲身去经历,这样自己的心里才会踏实,学到的东西才会更多。一开始没有仔细看老师发的资料以为ID卡的卡号可以修改,修改了很久的卡号没有成功,一开始以为是程序的问题,后来发现是根本没有办法写入到卡中,导致浪费了很多的时间,走了弯路,今后一定要在动手之前做好准备工作。八、 参考文献1 赵军辉.射频识别技术与应用M.北京:机械工业出版社,2008.2程雪,周修理,李艳军. 射频识别(RFID)技术在动物食品溯源中的应用J. 东北农业大学学报, 2008,(10) . 3石蕾,陈敏雅. RFID系统中阅读器的设计与实现J. 电脑开发与应用, 2008,(07) . 4钱莹,凌云. RFID中间件设计研究J. 电脑与信息技术, 2008,(05) . 5陈冲,徐志,何明华. 一种新的RFID防碰撞算法的研究J. 福州大学学报(自然科学版), 2009,(03) .6周永明. 一种改进的查询树射频识别防冲突新算法J. 广东轻工职业技术学院学报, 2006,(02) . 7李辉,刘国栋,胡小云,高丽芳,沈烨,郑映钦. 电子标签技术在出口鳗鱼产品监管中的应用研究J. 中国国境卫生检疫杂志, 2007,(06) . 8蔡志刚. 集装箱无线射频识别技术应用研究J. 港口装卸, 2005,(05) . 九、 程序附录void InitRc522(void) PcdReset(); PcdAntennaOff(); PcdAntennaOn(); M500PcdConfigISOType( A );void InitAll(void) SET_MAIN_CLOCK_SOURCE(CRYSTAL); /设置主时钟为32M晶振 initUART(); InitRc522(); INT_GLOBAL_ENABLE(INT_OFF); /开启总中断 /init_time1(); INT_GLOBAL_ENABLE(INT_ON); /开启总中断 bWarn=0; bPass=0; SysTime=0; KeyTime=0; WaitTimes=0; KeyNum=0; KuaiN=0; oprationcard=0; uart_count=0; uart_comp=0; bSendID=0; Pass();void ctrlprocess(void) unsigned char ii; char status; uart_count=0;/ PcdReset(); halWait(200); halWait(200); status=PcdRequest(PICC_REQIDL,&RevBuffer0);/寻天线区内未进入休眠状态的卡,返回卡片类型 2字节 if(status!=MI_OK) return; status=PcdAnticoll(&RevBuffer2);/防冲撞,返回卡的序列号 4字节 if(status!=MI_OK) return; memcpy(MLastSelectedSnr,&RevBuffer2,4); status=PcdSelect(MLastSelectedSnr);/选卡 if(status!=MI_OK) return; if(oprationcard=READCARD)/读卡 oprationcard=0; status=PcdAuthState(PICC_AUTHENT1A,KuaiN,PassWd,MLastSelectedSnr);/ if(status!=MI_OK) bWarn=1; return; status=PcdRead(KuaiN,Read_Data); if(status!=MI_OK) bWarn=1; return; for(ii=0;ii16;ii+) sendchar1(MLastSelectedSnrii); bPass=1; sprintf(s,(char *) %x %x %x %x,MLastSelectedSnr0,MLastSelectedSnr1,MLastSelectedSnr2,MLastSelectedSnr3); GUI_ClearScreen(); /LCD清屏 GUI_PutString5_7(25, 2, ES-CC2530); / 显示字符串 GUI_PutString5_7(8, 18, RFID ID:); / 显示字符串 GUI_PutString5_7(8,40,(char *)s); /显示结果 LCM_Refresh(); PcdHalt(); else if(oprationcard=WRITECARD)/写卡 /if(oprationcard=WRITECARD)/写卡 oprationcard=0; status=PcdAuthState(PICC_AUTHENT1A,KuaiN,PassWd,MLastSelectedSnr);/ if(status!=MI_OK) bWarn=1; return; status=PcdWrite(KuaiN,&WriteData0); if(status!=MI_OK) bWarn=1; return; bPass=1; PcdHalt(); void ctrl_uart(void) uchar ii; for(ii=0;ii6;ii+) RevBufferii+2=0xff; / RevBuffer8=0x03; switch(RevBuffer1) case 0xa1:/读数据 oprationcard=READCARD; for(ii=0;ii6;ii+) PassWdii=RevBufferii+2; KuaiN=RevBuffer8; break; case 0xa2:/写数据 oprationcard=WRITECARD; for(ii=0;ii6;ii+) PassWdii=RevBufferii+2; KuaiN=RevBuffer8; for(ii=0;ii128)RFIDDataSetting=0; MLastSelectedSnrwritebuffer=RFIDDataSetting; if(writebuffer/4)=0) sprintf(s,(char *) %x %x %x %x,MLastSelectedSnr0,MLastSelectedSnr1,MLastSelectedSnr2,MLastSelectedSnr3); GUI_PutString5_7(8,16,(char *)s); /显示结果 LCM_Refresh(); if(setmode) if(modeselect) modeselect=0; setdatamode=1; writemode=0; setmode=0; RevBuffer0=0x09; RevBuffer1=0xa1; GUI_ClearScreen(); /LCD清屏 GUI_PutString5_7(4, 20, RFID ID reading); / 显示字符串 LCM_Refresh(); break; case 3: Key_Flag=0; if(setmode) if(writemode=1)&(setmode=0) RFIDDataSetting=MLastSelectedSnrwritebuffer; RFIDDataSetting += 10; if(RFIDDataSetting128)RFIDDataSetting=0; MLastSelectedSnrwritebuffer=RFIDDataSetting; if(writebuffer/4)=0) sprintf(s,(char *) %x %x %x %x,MLastSelectedSnr0,MLastSelectedSnr1,MLastSelectedSnr2,MLastSelectedSnr3); GUI_PutString5_7(8,16,(char *)s); /显示结果 LCM_Refresh(); if(modeselect) modeselect=0; writemode=1; GUI_ClearScreen(); /LCD清屏 GUI_PutString5_7(8, 2, RFID ID Writting); / 显示字符串 LCM_Refresh(); sprintf(s,(char *) %x %x %x %x,MLastSelectedSnr0,MLastSelectedSnr1,MLastSelectedSnr2,MLastSelectedSnr3); GUI_PutString5_7(8,16,(char *)s); /显示结果 LCM_Refresh(); break; case 4: Key_Flag=0; if(setmode) if(zgConfigPANIDSetting) RevBuffer8=zgConfigPANIDSetting; GUI_ClearScreen(); /LCD清屏 GUI_PutString5_7(25,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论