2015北京市大学生训练项目“智慧校园”之一卡通系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015 北京市大学生训练项目“智慧校园” 之一卡通系统的设
计与实现
【摘要】RFID技术作为一项先进的自动识别和数据采集技术,通过无线射频方式进行非接触双向数据通信,对目标加以识别并获取相关数据。被公认为21 世纪十大重要技术之一。本文以实验为基础,研究了RFID的识读过程。
【关键词】北京大学生;智慧校园;卡通系统
2008 年IBM 公司在全球提出“智慧地球”概念后,美国、欧盟、日本和韩国等相继推出本国的物联、云计算相关发展战略。2009 年,温家宝总理在中科院无锡传感网工程技术研发中心,指示建设“感知中国”中心,拉开了中国智慧城市建设的序幕“智慧校园”作为“智慧城市”的重要组成部分,是继数字校园后关于院校信息化建设的又一全新概念,是由浙江大学于信息化“十二五”规划中首次提出的,并由此引发了“智慧校园”的建设潮。近年来,国内不少高校对智慧校园进入了探索或建设阶段。
基于物联网的校园一卡通系统是以学校校园网为架构,以射频标签作为信息载体,利用RFID标签传感器、无线通信网络等实时采集物品的各种信息,并将这些采集到的信息通过高速互联网或无线网络传输到数据处理中心,这些信息在数据处理中心经
过计算技术提供的海量信息处理功能对其进行智能化处理之后就可以实现人与人、物与物、人与物之间的有效沟通。
一卡通系统平台构成包括软件系统和硬件系统,二者共同完成校园一卡通系统平台整个系统的管理、数据处理、传输与交换和调度控制、应用支撑操作等功能。整个系统的识别过程需要完成4个步骤:寻卡-防冲突-选卡-读/写卡
1RFID 系统组成
RFID 技术利用无线射频方式在阅读器和射频卡之间进行非接触双向数据传输,以达到目标识别和数据交换的目的。最基本的RFID 系统由三部分组成:
1.标签(Tag,即射频卡):由耦合兀件及芯片组成,标签含有内置天线,用于和射频天线间进行通信;
2.阅读器:读取(在读写卡中还可以写入)标签信息的设备;
3.天线:在标签和读取器间传递射频信号。
2工作原理
MCU 通过对读卡器芯片内寄存器的读写来控制读卡器芯片,读卡器芯片收到MCU 发来的命令后,按照非接触式射频卡协议格式,通过天线及其匹配电路向附近发出一组固定频率的调制信号(13.56 MHz)进行寻卡,若此范围内有卡片存在,卡片内部的LC谐振电路(谐振频率与读卡器发送的电磁波频率相同)在电磁波的激励下,产生共振,在卡片内部电压泵的作用下不断为其另
一端的电容充电,获得能量,当该电容电压达到2V时,即可作为电源为卡片的其他电路提供工作电压。当有卡片处在读卡器的有效工作范围内时,MCU 向卡片发出寻卡命令,卡片将回复卡片类型,建立卡片与读卡器的第一步联系,若同时有多张卡片在天线的工作范围内,读卡器通过启动防冲撞机制,根据卡片序列号来选定一张卡片,被选中的卡片再与读卡器进行密码校验,确保读卡器对卡片有操作权限以及卡片的合法性,而未被选中的则仍然处在闲置状态,等待下一次寻卡命令。密码验证通过之后,就可以对卡片进行读写等应用操作。
3实现步骤
1.从串口打印IC卡的类型和序列号。
2.实现显示IC卡的类型,并记录。
3.实现以十六进制显示IC卡的序列号,并记录。
4.测试最大的识别距离。
RC522模块采用了高达10 Mb/s的SPk I2C总线模式——
四线制SP,通信中的时钟信号由Arduino产生,MF RC522 芯片设置为从机模式,接收来自Arduino 的数据以设置寄存器,并负责射频接口通信中相关数据的收发。
数据的传输路径为:Arduino 通过MOSI 线将数据发到
MF RC522, MF RC522 通过MISO 线发回至Arduino。连接电路如图1 所示。
图1 Arduino 与MF RC522 的连接电路
4 部分功能代码
1.寻卡
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN,RST_PIN);// 新建MFRC522 端口
void setup (){
Serial.begin(9600);// 初始化和计算机的连续交流SPI.begin();// Init SPI bus mfrc522.PCD_Init ();// Init MFRC522 card //Serial.println ("Scan a MIFARE Classic PICC to demonstrate Value Blocks." );
}
2.防冲突
void loop (){
// 读卡
// Prepare key - all keys are set to
FFFFFFFFFFFFh at chip
delivery from the factory.
MFRC522::MIFARE_Key key;
for (byte i = 0 ;i < 6;i++){ key.keyByte[i] = 0xFF;
}
// Look for new cards
if (!mfrc522.PICC_IsNewCardPresent())
{ return ;
}
// Select one of the cards if (!
mfrc522.PICC_ReadCardSeria(l )){
return ;
}
// Now a card is selected. The UID and SAK is in mfrc522.uid.
// Dump UID 打印卡号
3.读/ 写卡
Serial.println ("Read block A(4):the first of the sector TWO");
byte buffer[18] ;
byte size = sizeof(buffer );
// change this :valueBlockA ,for read anather block