小型消费卡管理系统应用研究*
2014-09-06刘佩森王成栋郭庆丰
刘佩森,王成栋,郭庆丰
(电子科技大学 机械电子工程学院,成都 611731)
小型消费卡管理系统应用研究*
刘佩森,王成栋,郭庆丰
(电子科技大学 机械电子工程学院,成都 611731)
针对现有的消费卡管理系统成本高昂、系统庞大、管理复杂而不适用于小型企业的情况,开发一款适应于小型企业的消费卡管理系统。提出基于单片机控制技术、射频识别技术和数据库管理技术的实现方案。系统硬件包括微控制器模块、射频卡读写模块、射频卡等,软件部分包括下位机程序和上位机程序。比较详细地叙述了各个模块的功能及设计原理,给出了单片机程序流程图及计算机应用程序的设计要点。经过实验验证,性能稳定,可靠性高,成本比较低,可以应用于大多数消费卡应用场合。
单片机;射频识别;消费卡;管理系统
引 言
如今针对小型企业开发的消费卡管理系统还比较少,基于这一背景,本文研究了一种成本低廉、稳定性高的消费卡管理系统,具有较强的实用性和广阔的市场前景。
1 系统总体结构
小型消费卡管理系统总体结构包括两部分。第一部分是以单片机为核心控制器件的消费卡识别系统,通过单片机对射频卡读写器、液晶屏、LED、蜂鸣器、按键等器件的控制,实现对消费卡的识别。第二部分是在计算机上建立的消费卡管理系统,系统使用SQL Server 2008软件建立卡信息数据库,使用Visual studio 2008软件建立用户操作界面,实现对消费卡信息的管理。计算机利用单片机串口通信实现数据交换,保证卡内存储的数据与数据库中信息一致。图1为小型消费卡管理系统的总体结构。
2 系统硬件设计
小型消费卡管理系统的设计包括硬件和软件两部分。系统硬件设计采用模块化设计思想,即按照功能将硬件分成各个模块,参考成熟设计逐一实现。模块化设计思路清晰,易于查错和更改,有利于扩充新功能。系统硬件的各个模块如图1左边部分所示。
图1 小型消费卡管理系统总体结构
2.1 微控制器模块
系统采用Atmel公司生产的AT89S52单片机作为硬件核心控制器。该单片机是一种低功耗、高性能的8位微控制器,拥有8 KB的在线可编程Flash存储器,256 B的RAM,3个16位定时器/计数器,可选时钟频率0~33 Hz。微控制器模块主要包括:单片机最小系统、ISP(在线系统编程)模块和电源模块。其中,单片机最小系统包括单片机、复位电路和晶振电路,单片机晶振频率采用22.118 4 MHz。ISP程序下载电路采用Atmel公司标准ISP10针接口,ISP模块同时也可以为单片机供电。电源模块可以利用ISP模块为系统供电,也可以外接+5 V开关电源。微控制器模块还控制12864液晶屏、蜂鸣器(Beep)、按键(Key)、LED灯等。图2给出了微控制器模块电路原理图。
图2 微控制器模块电路原理图
2.2 射频卡读写模块
系统采用广州辰明智能卡科技有限公司生产的
图3 射频卡读写模块工作示意图
CM018射频卡读写模块,CM018射频卡读写模块主要由FM1702芯片、P89LPC922单片机、3.3 V稳压芯片1117M3和天线组成。图3为系统中射频卡读写模块工作示意图。
选用高集成度、低功耗的P89LPC922单片机控制FM1702芯片,完成FM1702芯片指令的编程,实现SPI总线向I2C总线的转变,不仅减轻主控AT89S52单片机控制压力,而且通过I2C总线控制读写模块节约I/O资源,提高编程效率。考虑P89LPC922单片机和其控制的FM1702芯片工作电压均为3.3 V,为了使供电电压为5 V的主控单片机对读写模块进行控制,采用了3.3 V稳压芯片1117M3。主控单片机对射频卡读写模块控制时,输入的5 V电压通过稳压芯片1117M3转换成可供读写模块使用的3.3 V电压。图4给出了射频卡读写模块工作原理图。
射频卡读写模块中还集成了天线,天线设计包括EMC滤波电路、接收电路和天线的匹配。滤波电路中,由L1、C9和L2、C11组成的低通滤波器可有效去除振荡器产生的高次谐波:
(1)
得到滤波器截止频率略高于读写模块工作频率13.56 MHz,低于高次谐波频率,可以有效抑制高频谐波成分,通过天线发射到周围环境中。接收电路推荐使用芯片内部产生的VMID作为RX引脚输入信号的偏置,电路由R1、R2、C14、C15组成,原理图中给出了阻值和容值。天线的匹配主要是确定电容C8、C10、C12、C13的容值,容值主要依赖于天线的电性能以及环境影响。实际中,根据式(2)估算出线圈的电感[6],然后在FM1702芯片手册中查表可以得到电容的参考值,为了优化性能,准确地取值必须通过调试来获得。
(2)
其中,l为一圈导线的长度;D为线圈宽度或者PCB板覆铜宽度;K为天线形状系数(圆形状K=1.07,矩形K=1.47);N为天线匝数。计算得到L为天线的电感,单位为nH。
图4 射频卡读写模块电路原理图
射频卡读写模块工作原理是:射频卡读写模块向IC卡发送一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写模块发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在电荷的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2 V时,此电容可作为电源为其他电路提供工作电压,将卡内数据发射出去或接收读写模块的数据。
针对其他模块,系统采用基于RS-232标准的串口通信模块;带有中文字库的12864液晶作为LCD显示模块;采用5 V有源蜂鸣器作为声音模块;采用3个独立式按键作为辅助功能控制器件;采用4个LED作为功能提示的指示灯。这些模块都有成熟的设计电路供参考。
3 系统软件设计
3.1 单片机程序设计
单片机程序设计采用C语言在Keil软件中编程。图5给出单片机主程序流程图。系统上电后,对定时器、液晶、串口和读写模块进行初始化,蜂鸣器长鸣表示系统完成准备工作并处于稳定状态。系统运行中,读写模块始终检测是否有卡操作,在循环语句中通过检测TagSta的状态来判断是否有卡操作。每张M1 S50卡具有4字节唯一的卡号,存储空间分为16个扇区(sector),每个扇区有4个块(block),包括前三个数据块和最后的控制块,每块可存储16字节数据,总共可以存储1 KB信息。每一个扇区都具有独立的A套密码和B套密码供选择,各自占用6个字节,具备了良好的保密性和多用途性。
单片机和计算机通过串口通信进行数据交换,采用串口工作方式1,波特率9 600 bps。数据传输中关键的问题是确保数据的正确,数据以数据包形式传输,传输时按照规定的通信协议来传输。
通信协议中定义了数据包传输格式,一般包括起始标志码、数据长度、功能码、传输数据和校验码。校验方式有很多种, CRC-16(循环冗余)校验[7]广泛应用于测控及通信领域,占两个字节,C语言程序的实现主要包括直接计算法和查表法,为减轻单片机计算量,系统采用CRC-16查表法来实现。
3.2 计算机程序设计
图5 单片机控制程序流程图
计算机程序设计包括使用SQL Server 2008建立的信息数据库和使用Visual Studio2008软件开发的消费卡信息管理系统。SQL(Structured Query Language)是一种标准化的语言,它能够轻松存储、更新和存取信息。数据库使用SQL语句进行创建[8],建立过程快速,具有可靠和使用方便的特点。数据库总共创建了用户登录信息Log User、卡信息Card、卡的使用情况Card Using、身份信息Person Identity和消费记录Consume 5个表。图6给出这些表的具体内容、主键和相互关系图。LoginLevel指的是登录角色,包括消费者、操作者和管理员;State指的是卡状态,包括正常、挂失、注销;CardID指的是IC卡固有的卡号,占4个字节,为了方便使用,将其转换成十进制数保存;ConsumeType指的是对消费和充值的编码,Boolean类型,True表示充值,False表示消费。
图6 数据库关系图
信息管理系统主要是提供一个操作界面,对数据库中的数据进行管理,同时与单片机进行数据交换,保证卡内存储的数据与数据库中信息一致。系统通过8个模块来实现:连接数据库模块、用户登录模块、密码修改模块、卡信息管理模块、消费者信息管理模块、消费/充值模块、消费记录查询模块、串口通信模块。
连接数据库模块通过ADO技术访问数据库,ADO(ActiveX Data Object)是Microsoft开发数据库应用程序的面向对象的新口,它具有面向对象的特点[9],这里使用预处理指令#import进行ADO编程。用户登录模块主要作用是选定不同的角色,验证登陆账号和密码信息,图7给出消费卡管理系统登录界面。
图7 消费卡管理系统登录界面
密码修改模块提供密码修改功能。卡信息管理模块包括新建卡、注销卡、卡的挂失、卡的解锁、卡的有效期设置等操作,图8给出消费卡信息管理界面。串口通信模块利用成熟的串口类CnComm来实现与计算机的串口通信[10]。
图8 消费卡信息管理界面
结 语
经过实验验证,系统利用单片机控制技术、RFID技术、数据库管理技术实现了消费卡管理系统的应用。经过固化单片机程序和外形包装设计即可生产出产品,针对于小型企业规模小、资金有限的情况,该产品只需配合一台计算机即可工作,降低了添置附加专有设备的成本,可广泛应用于消费领域。
[1] 葛红玲. 商家发行消费卡对金融体系的影响[J]. 商业时代, 2009(8): 73-75.
[2] 李扬弘, 李秉智. 非接触IC卡读卡器的开发研究[J]. 计算机工程与应用, 2005, 41(32): 106-114.
[3] 游站清, 李苏剑. 无线射频识别技术(RFD)理论与应用[M]. 北京: 电子工业出版社, 2004.
[4] 耿丽微, 钱东平, 赵春辉. 基于射频技术的奶牛身份识别系统[J]. 农业工程学报, 2009, 25(5): 137-141.
[5] ISO/IEC 14443-2 —2001Identification cards-contactless integrated circuit(s) cards-proximity cards[S].
[6] 曾孝平, 任家峪, 熊东. 基于RFID的非接触式IC卡读写器设计[J]. 计算机测量与控制, 2010, 18(10): 2357-2359.
[7] 李宥谋, 房鼎益. CRC编码算法研究与实现[J]. 西北大学学报, 2006, 36(6): 895-898.
[8] Robert Vieria. SQL Server2008编程入门经典[M]. 北京:清华大学出版社, 2011.
[9] 姚万军. VC下利用ADO访问SQL Server技术[J]. 微计算机应用, 2004, 25(1): 99-103.
[10] 龚建伟, 熊光明. Visual C++ /Turbo C串口通信编程实践[M]. 北京:电子工业出版社, 2007.
刘佩森(硕士研究生),研究方向为嵌入式设备、状态监测与故障诊断。
Liu Peisen, Wang Chengdong, Guo Qingfeng
(Mechanical and Electronic Engineering,University of Electronic Science and Technology, Chengdu 611731, China)
In view of the situation that the existing management system of consumer card is expensive,huge and complicated to manage for small enterprises, a management system of consumer card suitable for small enterprises is developed.An implementation based on microcontroller control technology, RFID technology and database management technology is put forward. The hardware of system consists of microcontroller module, RF card reader module,RF card and so on, the software consists of the lower computer programs and the upper computer programs. The functions and design principles of each module are described in detail, and the design of MCU program flow chart and the main design points of computer application program are given. After experimental verification, the system has the advantages of high stability, high reliability and lower cost, and can be applied to most consumer card applications.
MCU; radio frequency identification; consumer card; management system
TP368.1
A
迪娜
2013-06-28)