低频ID卡读取设计Word格式文档下载.docx
《低频ID卡读取设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《低频ID卡读取设计Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
![低频ID卡读取设计Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/26/0fcc6d4b-ff03-4c7a-b722-91c2130389dd/0fcc6d4b-ff03-4c7a-b722-91c2130389dd1.gif)
课程设计所需软件、硬件等
12864液晶显示屏
AVR仿真器
电源适配器
IARforAVR软件
课程设计进度计划
起至日期
工作内容
备注
2014年12月
2014年12月中旬
2014年12月底
2015年1月
进行可行性研究,完成选题。
根据选题查阅资料、进行概要设计,确定设计方案。
详细设计,实施设计方案,编写程序、调试程序。
完成课程设计(任务书)的撰写。
参考文献、资料索引
序号
文献、资料名称
编著者
出版单位
[1]王志良.物联网:
现代与未来.北京:
机械工业出版社,2010
[2]刘云浩.物联网导论.北京:
科学出版社,2010
[3]周洪波.物联网:
技术、应用、标准和商业模式.北京.电子工业出版社2010.
[4]伍新华.物联网工程技术.北京.:
清华大学出版社,2011.
[5]罗海波.
一卡通系统的安全性研究[J].科技广场,2010,(07):
74
1.实验设计原理
(1)标签
低频段射频标签简称低频标签,其工作频率范围30~300KHZ。
典型的工作频率为125kHZ和133kHZ。
低频标签一般为无源标签,其工作能量通过电感耦合方式从读写器耦合线圈的辐射场中获得。
低频标签与读写器之间传送数据时,位于读写器天线辐射的近场区内。
(2)读写器
读写器只要完成的工作包括:
载波频率的天线驱动。
对发送的数据进行AM调制后传送到天线上并发送。
解调天线上感应到的AM信号。
(3)天线
低频125kHZ频率天线耦合方式为电感耦合,所以在电路PCB上制作天线需要考虑具有足够的电感量。
线圈的绕制采用螺旋形方式,根据对电感量的要求和线圈的面积来确定电路板的层数,并在各层上以保证每层中电流的方向相同为前提来制作线圈。
2.实验步骤
2.1硬件的连接
(1)插上12864液晶显示屏
(2)设置跳线,将JP8的八个跳线全部短接
(3)若需要RS232或RS485通信,则连接RS232电缆或RS485电缆
(4)连接AVR仿真器
(5)插上电源适配器
2.2实验程序的下载
(1)运行IAREmbeddedWorkbench
(2)写入实验程序
(3)参数设置
(4)编译程序
(5)调试程序
(6)实验过程操作
3.实验内容
3.1主函数编写
主函数负责对IO口、液晶屏等进行相应初始化,以便各部件和模块能够正常工作。
本例中主函数源码清单如下所示:
:
voidmain(void)
{
delay_ms(50);
LCD_init();
gpio_init();
//初始化液晶屏显示
LED_CLR;
SHD_CLR;
loc(1,0);
LCD_display("
----请刷卡------"
);
loc(2,0);
"
while
(1)
{
//定时读取ID卡号
while(0==DY--)
{
delay(5);
//20000
read_rfid();
}
}
}
3.2卡号读取
低频RFID卡号的读取需要判断帧头和曼彻斯特码解码,并注意验证相应的校验码,以确保能够读到正确卡号,可封装成为函数Read_Card(),其源码清单如下所示:
ulongRead_Card()
uchari=0;
ucharerror;
ucharerror_flag;
ucharrow,col;
ucharrow_parity;
ucharcol_parity[5];
uchar_data;
ulongtemp;
uchartimeout=0;
if(timeout==100)
return0;
else
timeout++;
while(DEMOD_OUT==0);
Delay384us();
if(DEMOD_OUT)
for(i=0;
i<
8;
i++)
{
error=0;
while(DEMOD_OUT)
{
if(error==TIME_OF)
{
error_flag=1;
break;
}
elseerror++;
}
Delay384us();
if(!
(DEMOD_OUT&
&
error_flag==0))
break;
}
if(i==8)
{
error_flag=0;
{
error_flag=0;
col_parity[0]=col_parity[1]=col_parity[2]=col_parity[3]=col_parity[4]=0;
for(row=0;
row<
11;
row++)
for(col=0,row_parity=0;
col<
5;
col++)
Delay384us();
if(DEMOD_OUT)_data=1;
else_data=0;
if(col<
4&
10)
{
temp<
<
=1;
temp+=(ulong)_data;
}
else;
row_parity+=_data;
col_parity[col]+=_data;
error=0;
while(DEMOD_OUT==((_data&
0x01)<
PC1))
if(error==TIME_OF)
{
error_flag=1;
break;
}
elseerror++;
if(error_flag)break;
if(row<
10)
if((row_parity&
0x01)||error_flag)
temp=0;
error_flag=1;
break;
if(error_flag||((col_parity[0]&
0x01)&
(col_parity[1]&
(col_parity[2]&
(col_parity[3]&
0x01)))
error_flag=0;
temp=0;
continue;
elsereturntemp;
continue;
error_flag=0;
continue;
3.3卡号转换
MCU读取的ID卡号为二进制,并不能直接用于显示,还需要转换成为十进制,进一步还需要转换成为ASCII码才能送至液晶屏显示,此部分功能可封装成为函数,其源码清单如下所示:
voidread_rfid()
ulongSN;
SN=Read_Card();
if(SN)
BEEP_SET;
LED_SET;
loc(3,0);
LCD_display("
刷卡次数:
”);
if(SN==0x000E8714)
num1++;
if(num1>
100)
num1=0;
loc(3,5);
wr_data(ASCII[(uchar)(num1/100)]);
wr_data(ASCII[(uchar)(num1%100/10)]);
wr_data(ASCII[(uchar)(num1%10)]);
elseif(SN==0x00535181)//535181
num2++;
if(num2>
num2=0;
loc(3,5);
wr_data(ASCII[(uchar)(num2/100)]);
wr_data(ASCII[(uchar)(num2%100/10)]);
wr_data(ASCII[(uchar)(num2%10)]);
loc(1,0);
卡号:
loc(2,2);
wr_data(ASCII[(uchar)(SN/1000000000)]);
wr_data(ASCII[(uchar)(SN%1000000000/100000000)]);
wr_data(ASCII[(uchar)(SN%100000000/10000000)]);
wr_data(ASCII[(uchar)(SN%10000000/1000000)]);
wr_data(ASCII[(uchar)(SN%1000000/100000)]);
wr_data(ASCII[(uchar)(SN%100000/10000)]);
wr_data(ASCII[(uchar)(SN%10000/1000)]);
wr_data(ASCII[(uchar)(SN%1000/100)]);
wr_data(ASCII[(uchar)(SN%100/10)]);
wr_data(ASCII[(uchar)(SN%10)]);
delay_ms(20);
BEEP_CLR;
while(DY--)
delay(2000);
//20000
else
loc(2,0);
loc(4,0);
www.dong-"
LED_CLR;
4.实验运行结果
将程序下载至低频RFID阅读器开发板中,运行程序后,一张ID卡片靠近读卡天线,如图3-31所示。
图3-31低频RFID读卡实验
则液晶屏上将会显示其卡号,如图3-32所示。
图3-32低频RFID卡号显示
5.实验总结
通过这一周的无线传感课程设计,我复习了RFID的基本概念、语法、语义和数据类型的使用特点,加深了对课堂所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。
在平时的无线传感课实验课中我们不少接触RFID,但在这次在编写程序以及调试的过程中中遇到了很多困难,因此我通过去图书馆查找资料,请教同学,再自己一点点改善程序,最终编写出一些比较完善的程序,这使我使我在这次课程设计过程中学到了很更多的知识,使我对无线传感技术处这门课有了更加的了解和掌握。
在这一周中的学习使我对无线传感处理这门课程有了进一步的理解。
经过查阅相关资料,逐步地掌握了RFID的设计过程,使我加强了对实际问题的动手和思考和解决能力。
但也暴露出了自身的许多不足,如自主解决问题的能力有所欠缺,这在以后学习过程中需要更好的加强。
在这一周中每天都是忙碌的,但我觉得很充实,自己学到很多东西,也加深我对无线传感处理学习兴趣。
RFID里边的公式虽多,但理解了它、掌握了它,就会发现其中也是有规律可循。
这一次的课程设计中培养了我如何去学习和掌握新知识能力,这对以后的学习上很大的帮助。
在设计过程中,我们组成员共同讨论,为对方查找错误,提示建议,在这个过程中我们收获甚多,也培养了自己的合作精神。
同时我们发现自己的程序还有很多地方可以完善。
程序的界面可以做得更加人性化,这样使用户使用方便。