张欢 李天侠
摘 要: 阐述了射频识别(RFID)技术的基本工作原理,并分析了SL500 RFID读写器与I·CODE SLI中高频电子标签的基本性能。采用VC6.0开发工具,设计了SL500 RFID与Access数据库的接口程序,实现了SL500 RFID与数据库的接口功能。
关键词: 射频识别; SL500 RFID; I·CODE SLI; 接口
中图分类号:TP315 文献标志码:A 文章编号:1006-8228(2013)02-07-02
Implementation of SL500 RFID and database interface
Zhang Huan, Li Tianxia
(School of Management, Tianjin Normal University, Tianjin 300387, China)
Abstract: The basic working principle of radio frequency identification (RFID) technology is described in this article, and the basic performance of the SL500 RFID reader and I·CODE SLI in high-frequency electronic tags are analyzed. By using VC6.0 development tools, SL500 RFID and Access database interface program is designed, and the SL500 RFID and database interface functions are realized.
Key words: radio frequency identification; SL500 RFID; I·CODE SLI; interface
0 引言
射频识别(RFID)技术是近年来随着无线电技术和大规模集成电路的普及应用而出现的一项先进的自动识别和数据采集技术[1]。它在国内外迅速发展,应用领域也十分广泛。射频识别技术以其特有的优势给各行各业带来了便利。本文以SL500 RFID读写器和I·CODE SLI射频卡为例,给出了SL500 RFID与数据库对接的具体方法及关键程序,实现I·CODE SLI射频卡与数据库的双向写入功能。
1 射频识别系统的工作原理
射频识别技术是利用电感或电磁耦合原理实现对被识别物体的自动识别。一般地,射频识别系统包括主机、读写器、标签、天线等四部分。射频识别系统的基本工作原理:读写器通过天线发出某一特定频率信号,电子标签进入这一信号工作区域后会产生感应电流,这种感应电流可以使电子标签内的电压调节器工作从而为电子标签提供电能。电子标签可以利用天线将自身的编码信息发射出去;读写器的天线接收到来自电子标签发出的信息后,会将其传送给读写器处理模块进行处理,经解调和解码后,再将有效信息传送到电脑终端(PC)进行相应的读写工作[2]。射频识别系统的原理如图1所示。
2 SL500 RFID与I·CODE SLI的基本性能
2.1 SL500 RFID读写器
SL500 RFID是一款可以读写非接触电子标签的RFID读写器。它的工作频率为13.56MHz,属于高频RFID读写器。SL500 RFID的核心部份包括一个控制用微处理器和一个RFID 基站芯片。它能独立完成对符合ISO 15693 标准卡片的所有操作,并且有与用户主系统的串行通信的能力,可根据用户系统的命令完成对RFID 卡的读写操作,并将所得数据返回给用户系统[3]。
[电子标签] [天线] [电脑终端(PC)][读写器][命令][I/O通道][响应] [命令][射频电缆][响应]
图1 射频识别系统原理图
2.2 I·CODE SLI射频卡
I·CODE SLI是一种中高频电子标签,读写距离一般小于1m,擦写能力大于100000次,并且有十年的数据记忆能力[4]。它的内部有64位惟一标识符(UID),896个bit的可存储数据(DATA),28个块(BLOCK),其中每块都由4个字节组成,且能全部被读写。它的每个芯片都具有惟一的标识符,且每个块具有闭锁机制[5]。
3 SL500 RFID与数据库之间的接口实现
SL500 RFID与数据库对接主要目的就是实现将SL500 RFID读取到的I·CODE SLI数据写入数据库,并且将数据库中数据写入I·CODE SLI中的功能。具体原理如图2所示。
[I·CODE SLI
射频卡][读写器] [数据库] [读取][写入] [写入][写入] [接口]
图2 SL500 RFID与数据库对接原理图
3.1 数据库设计
本文中SL500 RFID与数据库对接采用Microsoft Access 2003数据库。数据库名为“rfid”,数据表名为“UID1”。根据I·CODE SLI射频卡的存储结构,数据库设计了3个字段:“UID”、“BLOCK”、“DATA”。其中UID存储I·CODE SLI射频卡的ID;BLOCK存储块序号;DATA存储I·CODE SLI射频卡的28块数据。数据库设计见表1。
表1 UID1数据表结构
[字段名\&数据类型\&长度\&说明\&UID;\&文本\&50\&存储I·CODE SLI射频卡的惟一ID\█\&文本\&20\&存储块(BLOCK)序号\&DATA;\&文本\&30\&存储每一块(BLOCK)内数据\&]
3.2 SL500 RFID与数据库之间接口程序设计
SL500 RFID与数据库接口程序以VC6.0为开发平台,使用VC++作为编程语言,采用ADO方法连接数据库。利用AfxOleInit()函数来初始化COM库,以下给出了连接数据库的关键程序。
BOOL CDemoDlg::InitInstance()
{ AfxOleInit();
……
}
将#import指令引入ADO类型库,在stdafx.h头文件中加入:
#import "d:\RFID\common files\system\ado\msado15.dll
"no_namespace rename( "EOF", "adoEOF")
创建Connection对象并连接数据库:
BOOL CDemoDlg::OnInitDialog()
{ CDialog::OnInitDialog();
HRESULT a;
try
{ a=m_pConnection.CreateInstance("ADODB.Connection");
//创建Connection对象
if(SUCCEEDED(hr))
{ //打开本地Access库rfid.mdb
hr=m_pConnection->Open("Provider=Microsoft.Jet
.OLEDB.4.0; Data Source=rfid.mdb","","",
adModeUnknown);
}
}
catch(_com_error e)
{ CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:
%s",e.ErrorMessage());
AfxMessageBox(errormessage);
}
}
4 实验结果
本实验读取了ID号为4CD3DD19000104E0的I·CODE SLI28块数据,打开rfid数据库中UID1表,数据结果如图3所示。实验结果表明I·CODE SLI中数据已经写入到数据库中。打开SL500 RFID读写器与数据库对接程序,将数据库中第10块的数据修改为‘10101010,数据结果如图4所示。实验结果表明,数据库中的数据可以写入到射频卡中。
图3 I·CODE SLI 写入数据库结果图
图4 数据库写入I·CODE SLI结果图
5 结束语
本文根据射频识别技术的基本原理,实现了SL500 RFID与数据库的接口功能,这种对接可以将SL500 RFID读出的数据存入数据库,同时将数据库中数据写入I·CODE SLI。SL500 RFID与数据库接口的实现有助于完成MIS系统前端数据自动采集与存储,因而便于对射频卡进行管理。
参考文献:
[1] 康东,石喜勤,李勇鹏.射频识别(RFID)核心技术与典型应用开发案例
[M].人民邮电出版社,2008.
[2] 袁丁,傅一平.VISUAL C++精彩实例详解[M].机械工业出版社,2004.
[3] 董丽华.RFID技术与应用[M].电子工业出版社,2008.
[4] 陈威佳,李志鹏,彭涛.基于VB界面RFID读写器的串口通信上位机软件设计[J].机电产品开发与创新,2010.23(4):83-100
[5] 潘盛辉,郭毅锋,潘绍明,黄丽敏.基于MSP430的手持式RFID读写器的设计[J].内蒙古大学学报,2010.41(3):347-350
[6] 黎恒.超高频RFID读写器射频前端设计[J].应用天地,2010.29(5):87-90