#基于ZLG500的射频识别系统硬件平台设计.docx
《#基于ZLG500的射频识别系统硬件平台设计.docx》由会员分享,可在线阅读,更多相关《#基于ZLG500的射频识别系统硬件平台设计.docx(31页珍藏版)》请在冰点文库上搜索。
#基于ZLG500的射频识别系统硬件平台设计
基于ZLG500的射频识别系统硬件平台设计
专业:
电子信息工程(使用电子技术方向)学号:
200712608057
学生姓名:
陈振华 指导老师姓名:
黄一平
【内容摘要】通过对射频识别技术进行研究和分析,提出了一种以AT89S52单片机为主控核心,ZLG500B射频识别模块为前端射频主电路,通过射频识别技术来对MIFARE1S50非接触式IC卡进行读/写等操作的设计思路。
系统的成功设计使得以ZLG500B模块为核心的射频识别系统的使用开发变得更加便捷,大大缩短了其二次开发使用的周期。
系统具有体积小、功耗低、功能强、人机界面友好、可灵活扩展等特点,可直接使用于实验室门禁系统、食堂饭卡消费系统、热水卡消费系统等日常生活方面,具有广阔的使用前景。
【关键词】MIFARE1S50射频卡;ZLG500B;单片机;液晶
1绪论
1.1课题研究背景
随着现代科技、经济等产业的快速发展,以及人们生活节奏的加快,人们对信息的需求也日益增长。
例如仓库管理、收费站收费管理、物流管理等。
原始的、手工的信息录入方式已经不能适应当代社会的发展趋势并逐渐被淘汰。
而电子技术的迅猛发展可谓让所有的难题迎刃而解。
针对人们对各类信息管理工作方便、准确、迅速的要求,RFID技术应运而生。
RFID技术是一种利用射频信号实现的自动识别技术。
由于具有体积小、存储容量大、寿命长、操作快捷方便等优点,其技术和使用的发展十分迅速。
RFID技术在国外发展非常迅速,RFID产品种类繁多,RFID技术已被广泛使用于商品自动化、工业自动化、交通运输控制管理等众多领域,如交通监控系统、高速公路自动收费系统、停车场管理系统、流水线自动生产管理系统、安检系统、仓库管理系统、动物管理系统等[1]。
在国内,由于RFID技术起步较晚,所以使用领域没有国外那么广。
目前我国RFID技术主要使用于公共交通管理、企业生产管理、校园日常管理等方面,现在很多城市都连续采用了射频公交卡。
另外,我国RFID技术使用最大的项目是第二代公民身份证[2]。
1.2RFID及MIFARE1S50介绍
射频识别(RadioFrequencyIdentification,RFID),又称电子标签(E-Tag)。
基本的RFID系统由三部分组成:
1)标签(Tag):
由耦合组件及芯片组成,每个标签具有唯一的电子编码;
2)读卡器(Reader):
读取/写入标签信息的设备;
3)天线(Antenna):
在标签和读卡器之间传递射频信号。
RFID中的电子标签一般保存有约定格式的电子数据,在实际使用中,电子标签附着在待识别物体的表面。
读卡器可无接触地读取并识别电子标签中所保存的电子数据,达到自动识别的目的。
通常读卡器和电脑相连,读卡器将读取到的标签信息传送到电脑进行下一步处理。
MIFARE1S50卡是一种非接触式IC卡。
非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内。
非接触式IC卡在一定距离内,可以通过读写器完成数据的读写操作。
MIFARE1S50卡主要技术指标如下[3]:
1、无电源,自带天线,内含有加密控制逻辑和通讯逻辑电路;
2、容量为8K,分为16个扇区,每个扇区分4块,每块16个字节;
3、具有防冲突机制和快速防冲突协议,支持多卡操作,支持多种协议标准;
4、每张卡拥有全球唯一的序列号,其长度为32位。
1.3研究内容及意义
通过对系统进行功能需求分析,综合考虑功耗、体积、可靠性、成本等因素,完成系统的整体设计方案。
系统主要研究内容包括:
RFID和ZLG500B关键技术深入研究、系统硬件电路设计和系统软件设计。
通过这些方面的研究,完成系统要求的功能,最终达到较全面地掌握非接触式IC卡RFID系统设计的基本原理和实现方法。
RFID技术广泛使用于社会的各个领域,其使用可大大提高管理和运作效率,对改善人们生活质量、提高企业经济效益和提升社会信息化水平产生了重要影响。
基于RFID技术如火如荼的发展热潮,系统选择了RFID技术为研究方向,以ZLG500B模块为核心设计了一款射频识别系统。
系统可直接使用于实验室门禁系统、食堂饭卡消费系统、热水卡消费系统等日常生活方面,在这些使用中,本系统都将起到核心作用。
总之,随着人们生活水平的提高和科学技术的不断发展,RFID技术将得到更多的使用,而基于ZLG500B模块为核心的RFID系统将具有更加良好的市场前景。
1.4论文的组织结构
本文介绍了一种基于ZLG500B模块为核心的RFID系统的设计和实现方案,并简要介绍了相关背景、使用及今后的发展前景,具体组织结构如下:
第一章绪论:
主要阐述课题的研究背景、研究内容和研究意义;
第二章系统总体设计:
主要阐述系统的功能和总体方案的选择;
第三章系统的硬件设计:
主要阐述系统硬件电路的分析及实现;
第四章系统的软件设计:
主要阐述系统软件设计及具体实现;
第五章系统测试:
主要阐述系统功能、性能测试和结果分析;
第六章结论:
主要阐述系统设计的功能及创新之处,并给出展望。
2系统总体设计
2.1系统设计要求
2.1.1系统主要功能
系统主要研究的是基于ZLG500B模块的射频识别系统硬件平台设计,其主要包括以下功能:
1、系统可以实现对MIFARE1S50非接触式IC卡进行读/写等操作;
2、系统操作的过程中能正确显示当前的状态并具有报警提示功能;
3、系统设计提供一些完整的软、硬件输入输出接口,方便其二次开发;
4、系统自定义RS-232串口通信格式,能和PC机通信。
2.1.2系统组成
系统是一个多技术融合的技术系统,需要的基础技术包括ZLG500B射频识别模块的操作技术、单片机多机通信技术、单片机和PC的通信技术、EDA技术等。
总体上,系统由ZLG500B模块、单片机控制模块、显示模块和串口通信模块组成。
2.2系统总体设计方案
2.2.1系统设计思路
系统设计遵循先学习后使用、先简单后复杂和先模块后综合的原则。
从系统设计要求来看,系统需要设计一个单片机最小系统,然后根据ZLG500B射频识别模块的数据手册弄懂其工作方式和弄懂官方提供的标准库函数,通过其库函数对ZLG500B模块进行初始化等操作,再利用单片机和PC通过串口实现通信,最后在下位机上设计一个显示当前状态的显示模块。
结合整个系统即可对MIFARE1S50非接触式IC卡进行读/写等操作。
2.2.2系统模块的选取
1)主控制器模块
主控制器采用AT89S52单片机。
AT89S52单片机算术运算能力强,软件编程灵活,另外还具有功耗低、体积小、I/O口丰富和成本低等优点。
2)通信模块
利用RS-232串行通信。
串行通信只需一根数据线就可以传送数据,即数据是一位一位按顺序传送的。
RS-232是一种近距离通信的单端串行通信标准。
RS-232串行通信的最大优点就是成本低和占用I/O口较少。
3)显示模块
采用SMC1602LCD。
SMC1602是字符点阵型液晶显示模块,能显示2行字符,每行能显示16个字符。
SMC1602液晶显示器具有轻薄短小、功耗低、显示稳定、可视面积大、画面效果好、抗干扰能力强等特点。
4)电源模块
电源的性能和系统的性能有着很大的关联性。
系统选择专用电源适配器,适配器输入电压为AC100-240V,50/60HZ;输出电压为DC5V(+/-1V),电流2A。
5)其它模块
系统使用的RFID模块为ZLG500B,此模块的控制方式是串口控制。
而一块AT89S52单片机只有一个串口,也就是一块单片机并不能解决既要用于控制ZLG500B模块,又要用于和PC机通信。
此时系统的解决方案是利用两块AT89S52单片机,这样就等于拥有两个串口,就可以解决以上的问题。
2.2.3系统的最终方案
通过各个模块的分析和论证,决定系统各模块的最终方案如下:
1、控制模块:
采用AT89S52单片机做主控制器;
2、通信模块:
利用RS-232串行通信;
3、显示模块:
采用SMC1602液晶显示;
4、报警模块:
采用压电式蜂鸣器做报警提醒;
5、电源模块:
采用现成电源适配器。
系统总体方框图如图1所示。
图1系统总体方框图
3系统硬件设计
3.1系统硬件组成部分
系统硬件主要由ZLG500B射频模块、AT89S52单片机主控制器模块、1602LCD显示模块、蜂鸣器报警模块和系统电源模块组成。
3.2系统主要单元电路设计
系统单元电路设计主要包括单元电路主要器件介绍、电路设计及工作原理分析和单元的具体实现电路图。
3.2.1ZLG500B模块
ZLG500B模块为非接触式IC卡读写模块,该模块采用最新的PHILIPS高集成ISO14443读卡芯片,能读/写MIFARE1S50卡。
这个器件包括了一个PCB天线和一个标准的UART接口(CMOS电平),可直接受控于主机微处理器。
模块的实物图如图2所示。
图2ZLG500B模块实物图
ZLG500B模块主要性能特征[4]:
1、双层电路板设计,双面表贴,EMC性能优良;
2、采用最新PHILIPS高集成ISO14443A读卡芯片--MFRC500;
3、UART串行接口,能外接RS-232或RS-485芯片;
4、蜂鸣器输出口,能用软件控制其输出频率及延续时间;
5、提供C51函数库,能读写模块中RC500芯片的EEPROM。
ZLG500B模块主要管脚功能描述如表1所示。
表1ZLG500B模块主要管脚描述
管脚
符号
类型
描述
J2-1
CTRL
输出
控制线输出
J2-2
BZ
输出
蜂鸣器信号输出,平时为高,输出方波或低电平
J2-3
CON485
输出
RS-485控制,平时为低,TXD发送时为高
J2-4
VCC
PWR
电源正端
J2-5
RST
复位
模块复位端
J2-6
GND
PWR
电源负端
J2-7
RXD
输入
UART接收端
J2-8
TXD
输出
UART发送端
ZLG500B模块提供了标准的UART接口,该接口可以和MCU进行串行通信。
本系统设计中ZLG500B模块接线图如图3所示。
图3ZLG500B模块原理图
3.2.2AT89S52单片机
单片微型计算机(singlechipmicrocomputer,SCM)简称单片机,它在一块芯片上集成了中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、计时器/计数器、输入输出(I/O)端口等功能部件,这些功能部件通过内部总线相互连接起来。
AT89S52是一种低功耗、高性能CMOS8位单片机。
使用ATMEL公司高密度非易失性电子技术制造。
其主要性能特征如下:
1、和MCS-51单片机产品兼容,具有多级加密程序存储器;
2、8K字节在线系统可编程Flash内存,可擦写1000次,自带256x8位RAM;
3、全静态操作:
0HZ~33MHZ,内设看门狗定时器;
4、32个可编程I/O口,可8位为一组操作或单独1位操作;
5、三个16位定时器/计数器,八个中断源,一个全双工UART串行通道。
系统设计中主、从机都采用上电复位的方式;P0口用作通用I/O口使用,所以要加上外部上拉电阻,阻值为4.7K;外部晶振和电容一起构成稳定的自激振荡器,为系统提供稳定的时钟信号。
晶振选取11.0592MHz,两电容选取30pF。
AT89S52单片机最小系统如图4所示。
图4单片机最小系统图
主、从机管脚具体分配如表2和表3所示。
表2主机管脚分配
管脚
功能描述
P0.0
LCD1602的RS
P0.1
LCD1602的RW
P0.2
LCD1602的EN
P0.4~P0.7
LCD1602的高四位数据线
P1.0~P1.7
两机通信并行数据线
P2.0
LCD1602的背光灯控制角
P3.0
LZG500B的UART发送端
P3.1
LZG500B的UART接受端
P3.2
主机接收中断信号管脚
P3.6
主机发送中断信号管脚
P3.7
主、从机通信应答管脚
表3从机管脚分配
管脚
功能描述
P0.0~P0.7
两机通信并行数据线
P3.0
RS232串口接收端(和PC通信)
P3.1
RS232串口发送端(和PC通信)
P3.2
主机接收中断信号管脚
P3.6
主机发送中断信号管脚
P3.7
主、从机通信应答管脚
主、从机通信硬件模型图如图5所示。
图5主、从机通信硬件模型图
3.2.3SMC1602液晶显示器
液晶显示器(LiquidCrystalDisplay,LCD)。
LCD按显示内容可分为字段型、点阵字符型和位图型。
字段型,是以长条笔划状显示像素组成的液晶显示器;点阵字符型是将LCD控制器、点阵驱动器、字符内存做在一块印刷块上,构成便于使用的液晶显示模块,专门用于显示数字、字符、图形符号及少量自定义的符号;位图型除可以显示字符外,还可以显示各种图形信息、汉字等。
SMC1602LCD属于点阵字符型。
系统用到的SMC1602液晶显示器属于点阵字符型。
其主要接口信号说明如表4所示:
表4SMC1602LCD接口信号说明
管脚
符号
功能描述
管脚
符号
功能描述
1
GND
电源地
9
D2
DataI/O
2
VCC
电源正极
10
D3
DataI/O
3
VO
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读/写选择断(H/L)
13
D6
DataI/O
6
EN
时能信号
14
D7
DataI/O
7
D0
DataI/O
15
LCD+
背光源正极
8
D1
DataI/O
16
LCD-
背光源负极
系统设计中充分考虑功耗问题,所以利用主控制器的一个管脚来控制SMC1602LCD背光灯的开/关,即系统在没有任何操作一分钟后就自动关闭背光灯。
因为主控器的I/O输出电流太小无法实现对LCD背光灯的控制,所以利用三极管8550来实现电流放大。
具体电路图如图6所示。
图6SMC1602LCD电路图
3.3系统电路仿真
Proteus是世界上著名的EDA工具(仿真软件)。
这款仿真软件可以从绘画原理图、载入程序代码到单片机和外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
基于先仿真后制作电路板的思想,模块电路设计完后,在PC机上利用Proteus7软件来进行一些仿真,通过仿真可以分析电路各种性能和找出设计的不足,进而修改,使得系统最终变得更加完美。
具体仿真电路图如图7所示。
图7proteus7仿真电路图
4系统软件设计
4.1系统软件总体设计
系统软件设计采用模块化的编程方式,即将一个大的程序划分成若干个小的模块,每个模块具有自己相对的独立性,模块之间可以通过函数调用的方式相联系。
这种编程方式有助于程序的调试、修改和维护。
在编程语言方面,系统软件设计采用C语言,C语言最大的优点就是程序结构清晰、可读性强和移植性好。
系统软件设计流程为:
先在单片机开发平台编写好程序,然后编译生成hex文件,再利用程序下载软件进行程序下载。
通过反复修改和调试,最后完成设计。
软件设计包含到的环境名称:
PC机操作系统环境为WindowsXP,单片机开发平台为keiluVision3IDE,程序下载软件为Easy51Prov2.0。
系统设计要实现下位机和上位机的通信,所以根据系统要求自定义数据通信格式。
系统具体数据通信格式如表5所示。
1)上位机发送到下位机的数据(十六进制)格式为:
28个字节=0xFF+0xFE+卡类型(1字节)+密码(6字节)+操作类型(1字
节)+地址(1字节)+数据(16字节)+备用(1字节)
2)下位机发送到上位机(返回值)的数据格式为:
19个字节=0xFF+0xFE+命令字(1个字节)+扇区中的数据(16个字节)
表5系统通信数据格式
功能
上位机发送到下位机
返回值
连接
操作类型=0x41
成功:
命令字=0x00
失败:
命令字=0xFF(无卡)
读卡
操作类型=0x46
成功:
命令字=0x01
失败:
命令字=0x03(密码错误)
写卡
操作类型=0x47
成功:
命令字=0x02
失败:
命令字=0x03(密码错误)
数值(加)
操作类型=0x48
成功:
命令字=0x02
失败:
命令字=0x03(密码错误)
失败:
命令字=0x04(数据格式错误)
数值(减)
操作类型=0x49
成功:
命令字=0x02
失败:
命令字=0x03(密码错误)
失败:
命令字=0x04(数据格式错误)
格式化
操作类型=0x51
成功:
命令字=0x02
失败:
命令字=0x03(密码错误)
读RC500序列号
成功:
命令字=0xAA
系统主程序流程图和功能流程图如图8和图9所示。
图8主程序流程图
图9功能流程图
4.2主要模块软件设计
4.2.1ZLG500B模块软件设计
根据ZLG500B数据手册上提供的操作说明,系统直接调用其标准库函数。
利用ZLG500B对MIFARE1S50卡进行读/写等操作的程序流程图如图10所示。
图10ZLG500B模块读/写流程图
voidRead_Card(uchar_Adr,ucharidata*_Data)//读卡子函数
{
unsignedchari;
while(mifs_request(IDLE,databuf)!
=MI_OK);//等待有RFID卡的到来
if(mifs_cascanticoll(ANTICOLL1,0,card_snr)!
=MI_OK);//多层防碰撞if(mifs_cascselect(ANTICOLL1,card_snr,&i)!
=MI_OK);
if(i&0x04)//多层选择
{
if(mifs_cascanticoll(ANTICOLL2,0,card_snr+4)!
=MI_OK);
if(mifs_cascselect(ANTICOLL2,card_snr+4,&i)!
=MI_OK);
}
if(mifs_authentication(KEYA,_Adr/4)!
=0);//证实密码
if(mifs_read(_Adr,_Data)!
=0);//开始读卡
}
voidWrite_Card(uchar_Adr,ucharidata*_Data)//写卡子函数
{
unsignedchari;
while(mifs_request(IDLE,databuf)!
=MI_OK);//等待有RFID卡的到来
if(mifs_cascanticoll(ANTICOLL1,0,card_snr)!
=MI_OK);//多层防碰撞if(mifs_cascselect(ANTICOLL1,card_snr,&i)!
=MI_OK);
if(i&0x04)//多层选择
{
if(mifs_cascanticoll(ANTICOLL2,0,card_snr+4)!
=MI_OK);if(mifs_cascselect(ANTICOLL2,card_snr+4,&i)!
=MI_OK);
}
if(mifs_authentication(KEYA,_Adr/4)!
=0);//证实密码
if(mifs_write(_Adr,_Data)!
=0);//开始写卡
}
4.2.2两机通信软件设计
为了解决系统所需两个串口的问题,系统硬件引进了两块单片,在软件上要实现其两者的通信。
根据主、从机的硬件连接图,自定义通信协议。
通信中数据发送、接收程序流程图如图11所示。
图11数据发送、接收程序流程图
两机通信具体实现函数如下:
voidie0(void)interrupt0using0//利用外部中断来接收数据
{
EX0=0;//关外部中断0
redat[tt]=dat_io;//读取数据并存放到相应数据中
tt++;//数据指针加一
get_ack=0;//发送应答位
Delay_1ns
(2);
get_ack=1;//恢复原来的电位
EX0=1;//开外部中断0
}
voidSend_Dat_Muc(ucharcomm,uchar*dat)//发送数据
{
ucharj=0;
Send_Byte(0xFF);Send_Byte(0xFE);//先发送引导码(0xFF+0xFE)
Send_Byte(comm);//发送操作命令字
for(j=0;j<16;j++)
Send_Byte(*(dat+j));//发送数据
}
voidSend_Byte(uchardat)//发送一个字节数据
{
send_itr=1;//为发送中断信号做准备
dat_io=dat;//发送数据
delay_1ns(100);
send_itr=0;//给中断信号
while(get_ack);//等待为低电平。
接收到应答位,说明接收完毕
delay_1ns(100);
dat_io=0xFF;
}
5系统测试
测试使用到的仪器设备和测试软件如表6所示。
表6测试仪器和测试软件
名称、型号、规格
数量
备注
UT61E数字万用表
1台
优利德公司
DS1042C示波器
1台
北京普源精电科技有限公司
ZLG500B配套读卡器
1台
周立功单片机公司
ZLG500B配套读卡器上位机
1
周立功单片机公司
MIFARE1S50射频卡
5张
周立功单片机公司
STC-ISPV38A串口调试工具
1
宏晶科技有限公司
5.1指标测试
5.1.1硬件电路测试
硬件电路测试主要是测试硬件电源、单片机的晶振信号情况和各个模块电路测试,硬件电路测试结果如表7所示。
表7硬件电路测试结果
测试单元
测试结果
硬件电源
上电后电源指示LED亮,测得VCC和GND两端的电压为5.08V
单片机的晶振电路
测得振荡频率为11.0591MHz
单片机复位电路
重新上电后,单片机自动复位
液晶显示电路
LCD1602显示“LCDOK”
两机通信和串口通信
串口调试工具测试接收、发送正常
ZLG500B模块
配置成功,蜂鸣器报警
通过以上结果可知,在误差允许的范围内,系统的硬件电路工作是正常的。
5.1.2系统功能测试
系统功能测试主要是测试系统的每个功能完成情况。
结合串口调试工具,通过对比论证的方式,测试系统准确性、稳定性、适应性等。
1)系统主要功能测试结果如表8所示。
表8系统功能测试结果
步骤
测试内容
测试结果(数据为十六进制)
1
系统上电
ZLG500B模块配置成功,蜂鸣器报警,上位机接收到数据为:
FFFEAA3088F800048CCAB65914000000000000
LCD1602显示:
第一行