AT88RF020在学校就餐管理系统中的应用

2007-03-09 19:03:27来源: 互联网
摘 要:就餐比较集中的学校基本上采用非接触式RFID卡组成的现场前台系统与微机后台管理系统相结合的形式。AT88RF020使用频率在13.56 MHz的低端非接触式射频卡芯片,它遵循lS0/IEC 14443 Type B协议。本文着重介绍AT88RF020的特点及工作原理,并对其在学校就餐管理中的应用及管理系统作相应介绍,同时也给出部分程序代码。由AT88RF020射频芯片组成的现场前台系统使用方便,价格低廉。 关键词:RFID AT88RF020 读卡器 就餐管理系统 1 概述 现在,在一些就餐比较集中的大、中专及中学里,学生的就餐基本上采用微机管理,学生凭一张非接触式的RFID卡就可以很方便地在学校食堂消费。有些学校还采用了校园一卡通,只要持有一张合法的RFID卡,就可在全校范围内的公共消费场所进行消费。 RFID(Radio Frequency Identification)即射频识别卡或是感应式电子芯片。RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动的物体,并可同时识别多个标签,操作快捷方便。AT88RF020就是Atmel公司生产的非接触式RFID卡。 2 RFlD卡AT88RF020的特点 ◇AT88RF020是13.56 MHz射频卡,遵循ISO/IEC 14443 Type B协议; ◇容量为2048位; ◇每张卡有唯一序列号; ◇带有加密和锁定功能; ◇一个一次性计数器; ◇所有传输信息中包括一个字节的循环校验码; ◇写时间为3 ms; ◇写次数为100 000次; ◇工作环境是O~70℃。 3 RFID射频识别技术的组成及工作原理 3.1 RFID系统的基本组成 ①标签(tag,即射频卡)。由耦合元件及芯片组成,标签含有内置天线,用于和射频天线间进行通信,每个标签具有唯一的电子编码,附着在物体上标识目标对象。图1是RFID芯片AT88RF020的内部结构原理图。 ②阅读器(reader或叫读卡器)。读取(除读卡外还可以写入)标签信息的设备,可设计为手持式或固定式。 ③天线(antenna)。在标签(射频卡)和读卡器之间传递射频信号。 有些系统还通过读卡器的RS232或RS485接口与外部计算机(上位机主系统)连接,进行数据交换。 3.2 RFID系统的基本工作原理 读卡器通过发射天线发送一定频率(如13.56 MHz)的射频信号,当射频卡进入发射天线工作区域时产生感应电流,射频卡获得能量被激活。射频卡将自身编码等信息通过射频卡的内置发射天线发送出去。系统接收天线接收到从射频卡发送来的载波信号,经天线调节器传送到读卡器,读卡器对接收的信号进行解调和解码,然后送到后台主系统进行相关处理。主系统根据逻辑运算判断该卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号控制执行机构动作。 3.3 RFID系统读卡器的结构及工作原理 对读卡器而言,在耦合方式(如电感-电磁)、通信流程(如FDX、HDX、SEQ)、从射频卡到读卡器的数据传输方法(如负载调制、反向散射、高次谐波)以及频率范围等方面,不同的非接触传输方法有根本的区别。但所有的读卡器在功能原理上,以及由此决定的设计构造上都很相似,所有阅读器均可简化为高频接口和控制单元两个基本模块。高频接口包含发送器和接收器,其功能包括:产生高频发射功率以启动射频卡并提供能量;对发射信号进行调制,用于将数据传送给射频卡;接收并解调来自射频卡的高频信号。不同射频识别系统的高频接口设计具有一些差异,电感耦合系统的高频接口原理如图2所示。 读卡器控制单元的功能包括:与应用系统软件进行通信,并执行应用系统软件发来的命令;控制与射频卡的通信过程(主-从原则);信号的编解码。对一些特殊的系统还有执行反碰撞算法,对射频卡与阅读器问要传送的数据进行加密和解密,以及进行射频卡和读卡器间的身份验证等附加功能。 4 RFID卡AT88RF020的存储结构 Atmel的AT88Rt020射频卡芯片有2048位的存储容量,分成32页,每页8个字节,存储组织结构如表1所列。 表1中标有“—”的字节由用户定义,出厂时初始值为0。 ①Pseudo Unique PICC Identifier。卡唯一序列号,卡序列号由卡厂家写入,不能被修改。 ②Applicatlon Data。应用数据,这个数据被作为ATQB回复信息的一部分由卡传输到读写器中。 ③counter。计数器,每执行一次COUNT指令,计数器的值就加1,初始值由厂家设为0。 ④Signature。签名(用于加密),这个数据位于第2页的前6个字节,可以通过COUNT指令修改,counter和Signature 可以提供更进一步的安全保护。 ⑤Password。密码,密码放在第3页中,不能读出。 ⑥Lock Bits。锁定位,位于第0页,验证密码后,能用LocK命令修改。锁定位中的每一位与内存各页对应,如果某位被设为“1”,则对应的页就被锁死,不能再进行写操作,也没有机制解锁,所以某页一旦被锁,其内容再也不能修改,出厂初始值为0。 AT88RF020通电或重启的工作流程如图3所示。 5 RFlD卡AT88RF020的常用命令与函数 5.1 AT88RF020的常用命令 ①REQB/WUPB:用于寻卡或者唤醒处于HALT状态的卡,这种卡只响应应用代码(API)为00或01的情况,如果接收到一个带有无效API代码的WUPB命令,那么卡仍然处于HALT状态。 ②ATTRIB:用于从所有响应REQB/WUPB的卡中选择一张卡,此后,卡进入AC-TIVE状态。 ③Slot MARKER:为读写器提供了一种用于查询随机数大于1的卡。 ④HALTB:设置卡处于HALT状态,此后只能执行WUPB命令。 ⑤READ:用于读取卡中的数据,读取页0~2可以不必验证密码,而第3页的数据不能读出,只能通过PASS—WORD命令修改,其他的页验证密码后可以读出。 ⑥WRITE:用于对卡写入数据。 ⑦LOCK:只有在验证密码之后才能执行,用于锁定某一地址区域,被锁定的地址区域在验证密码之后只可以进行读操作。 ⑧CHECK PASSWORD:密码校验命令,在设备进入就绪状态之后执行。 ⑨DESELECT:如果对处于ACTIVE状态的卡执行该命令,且通过,则卡发送一个正确的回答信息,并进入HALT状态。 ⑩COUNT:用于写第2页。COUNT命令中所带的数据写入到第2页的前6个字节中,后2个字节被用做计数器使用,每执行一次COUNT命令,计数器的值就增1,如果计数器的值达到2的15次方,就不能再执行COUNT操作,且第2页被锁定,不能再修改。执行该命令之前要验证密码。 5.2 AT88RF020的函数 下面以rf_attrib()函数为例来说明AT88RF020的函数用法。 ①函数rLattrib()的格式: int rI_attrib(HANDLE icdev,unsigned long pupi,unsigned char param,unsigned char cid,unsigned charbrTx,unsigned char brRx); ②函数的功能。从已响应REQB/WUPB命令的卡中选取一张卡,同时给每一张卡分配一个ID号。 ③函数的参数描述。 icdev:rf_init()返回的设备描述符。pupi:Pseudo—Unique PICC Identifier。param:设为0。cid:卡片ID号(0~15),这个值存储在卡片中供后面操作使用。 brTx:由CD(近耦合设备)到PICC(近耦合集成电路卡)的波特率,对于AT88RF020,0x00代表106 kb/s。 brRx:由PICC到PCD的波特率,对于AT88RF020,0x00代表106 kb/s。 ④返回值。等于0表示成功;不等于0表示失败。 ⑤例程。 int st; unsigned char Mode=0; unsigned char_Data[15]; unsigned long pupi=0; st=rf_requestb(iedev,Mode,0~0 Data); if(st==0){ memcpy(%26;amp;pupi,%26;amp;Data[1],4); st=rf_attrih(icdev,pupi,0,0,0.0); } 经过选卡后,如果有多张卡进入激活状态,则可以根据CID(射频卡ID号)在同一时间内对多张卡操作。以两张卡为例: int st; unsigned long pupi[2]; unsigned char receive[256],data[10]; pupi[o]=0x25510200;//卡1的pupi pupill]=Ox344e0200;//卡2的pupi unsigned char cid=0; st=rf_requestb(icdev,0,0,0,receive);//选择一张卡 //in the case of the response card is card 1 cid一0;//slot 0 st=rf_attrib(icdev,pupiEO],o,cid,0,O); //select card 2 st=rf_request(iedev,0,0,0,receive); //in the case of the response card is card 2 cid=1; st=rf_attrib(icdev.pupi[l].0,cid,0,0); //operate the two cards in the same time for(int i一0;i-(2;i++){ st=rt_read(icdev,i,0,data); //deseleet card 1 st=at88rf020 deseleet(iedev,0); //deseleet card 2 st=at88rf020 deseleet(icdev.1); 6 RFlD卡在学校就餐管理中的应用 6.1系统总体方案 采用美国Atmel公司生产的AT88RF020射频识别卡、IDIc(Identification IntegratecI circuit)、读写基站集成电路u2270B和Atmel公司的8位单片机研制开发学校食堂就餐管理系统,系统具有预付收费、目标识别、身份验证、数据采集、数据加密和数据库管理的功能。系统由AT88RF020卡、就餐管理终端、数据库管理系统、就餐管理终端与数据库管理微机的通信系统四部分组成。主机与就餐管理终端之间的通信采用RS一485通信标准,工作方式为半双工,每次通信都是主机首先呼叫从机。系统结构如图4所示。 6.2通信硬件接口设计 本系统中,就餐管理终端与上位机的通信选用了RS485总线标准,并采用了MAX465芯片来实现,它具有RS485通信接口需要的全部功能。数据通信的方向由RE和DE脚来控制,设计中二者连在一起,由单片机的Pl,5来控制。当它为高电平时,数据由就餐管理终端经MAX485到外部串行总线,即处于发送状态;为低电平时,数据由外部串行总线到就餐管理终端。一般微机的串行口采用RS232接口,故在上位机一端需要一个RS232/Rs485转换器。本设计中采用台湾Aten公司生产的IC-485SN转换器,它是一种双向RS232/R$485或RS422转换器,可提供点对点、点对多点(最多可达254个点)的全双工和半双工以及多点的单工串行通信。 6.3通信软件接口设计 上位机数据库管理系统采用Visual FoxPro(即VF)编写,这里介绍的串行通信程序主要是在VF中实现与就餐管理终端的通信程序设计。本系统采用标准的通信控 件commLmications进行通信程序的设计,实现挂失数据的发送、用户卡号的发送、发卡和就餐数据的接收。每次通信时,首先在上位机的lnlt事件中初始化通信控件olecon—troll,初始化设置为: thisform,olecontroll,commPort=1 //选择串行口COM1 thisform,olecontroll,PortOpen=1 //打开串行口COM1 thisform,olecontroll,lnpLltMode=O //接收的数据按文本方式 thisform olecontroll,RTSEnable=1 //允许使用RTs线.用于 //RS232/485转换器的发送控制和供电 thisform,oleconatroll,InputLen=1 //每次读取接收缓冲 //区的一个字符 thisform,olecontroll,OutbifferCount=O//清除发送缓冲区 thisform,olecontroll,InbufferCotInt=O//清除接收缓冲区 结 语 本文介绍了RFID卡ATRF88020的特点、工作原理及在学校就餐管理中的应用。RFID技术的典型应用还有;物流和供应管理、生产制造和装配、航空行李处理、邮件/快运包裹处理、文档追踪/图书馆管理、动物身份标识、运动计时、门禁控制/电子门票、道路自动收费等。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/rfandwireless/200703/9051.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved