劉佩森,王成棟,郭慶豐
(電子科技大學(xué) 機(jī)械電子工程學(xué)院,成都 611731)
?
小型消費(fèi)卡管理系統(tǒng)應(yīng)用研究*
劉佩森,王成棟,郭慶豐
(電子科技大學(xué) 機(jī)械電子工程學(xué)院,成都 611731)
針對現(xiàn)有的消費(fèi)卡管理系統(tǒng)成本高昂、系統(tǒng)龐大、管理復(fù)雜而不適用于小型企業(yè)的情況,開發(fā)一款適應(yīng)于小型企業(yè)的消費(fèi)卡管理系統(tǒng)。提出基于單片機(jī)控制技術(shù)、射頻識別技術(shù)和數(shù)據(jù)庫管理技術(shù)的實(shí)現(xiàn)方案。系統(tǒng)硬件包括微控制器模塊、射頻卡讀寫模塊、射頻卡等,軟件部分包括下位機(jī)程序和上位機(jī)程序。比較詳細(xì)地?cái)⑹隽烁鱾€(gè)模塊的功能及設(shè)計(jì)原理,給出了單片機(jī)程序流程圖及計(jì)算機(jī)應(yīng)用程序的設(shè)計(jì)要點(diǎn)。經(jīng)過實(shí)驗(yàn)驗(yàn)證,性能穩(wěn)定,可靠性高,成本比較低,可以應(yīng)用于大多數(shù)消費(fèi)卡應(yīng)用場合。
單片機(jī);射頻識別;消費(fèi)卡;管理系統(tǒng)
如今針對小型企業(yè)開發(fā)的消費(fèi)卡管理系統(tǒng)還比較少,基于這一背景,本文研究了一種成本低廉、穩(wěn)定性高的消費(fèi)卡管理系統(tǒng),具有較強(qiáng)的實(shí)用性和廣闊的市場前景。
小型消費(fèi)卡管理系統(tǒng)總體結(jié)構(gòu)包括兩部分。第一部分是以單片機(jī)為核心控制器件的消費(fèi)卡識別系統(tǒng),通過單片機(jī)對射頻卡讀寫器、液晶屏、LED、蜂鳴器、按鍵等器件的控制,實(shí)現(xiàn)對消費(fèi)卡的識別。第二部分是在計(jì)算機(jī)上建立的消費(fèi)卡管理系統(tǒng),系統(tǒng)使用SQL Server 2008軟件建立卡信息數(shù)據(jù)庫,使用Visual studio 2008軟件建立用戶操作界面,實(shí)現(xiàn)對消費(fèi)卡信息的管理。計(jì)算機(jī)利用單片機(jī)串口通信實(shí)現(xiàn)數(shù)據(jù)交換,保證卡內(nèi)存儲(chǔ)的數(shù)據(jù)與數(shù)據(jù)庫中信息一致。圖1為小型消費(fèi)卡管理系統(tǒng)的總體結(jié)構(gòu)。
小型消費(fèi)卡管理系統(tǒng)的設(shè)計(jì)包括硬件和軟件兩部分。系統(tǒng)硬件設(shè)計(jì)采用模塊化設(shè)計(jì)思想,即按照功能將硬件分成各個(gè)模塊,參考成熟設(shè)計(jì)逐一實(shí)現(xiàn)。模塊化設(shè)計(jì)思路清晰,易于查錯(cuò)和更改,有利于擴(kuò)充新功能。系統(tǒng)硬件的各個(gè)模塊如圖1左邊部分所示。
圖1 小型消費(fèi)卡管理系統(tǒng)總體結(jié)構(gòu)
2.1 微控制器模塊
系統(tǒng)采用Atmel公司生產(chǎn)的AT89S52單片機(jī)作為硬件核心控制器。該單片機(jī)是一種低功耗、高性能的8位微控制器,擁有8 KB的在線可編程Flash存儲(chǔ)器,256 B的RAM,3個(gè)16位定時(shí)器/計(jì)數(shù)器,可選時(shí)鐘頻率0~33 Hz。微控制器模塊主要包括:單片機(jī)最小系統(tǒng)、ISP(在線系統(tǒng)編程)模塊和電源模塊。其中,單片機(jī)最小系統(tǒng)包括單片機(jī)、復(fù)位電路和晶振電路,單片機(jī)晶振頻率采用22.118 4 MHz。ISP程序下載電路采用Atmel公司標(biāo)準(zhǔn)ISP10針接口,ISP模塊同時(shí)也可以為單片機(jī)供電。電源模塊可以利用ISP模塊為系統(tǒng)供電,也可以外接+5 V開關(guān)電源。微控制器模塊還控制12864液晶屏、蜂鳴器(Beep)、按鍵(Key)、LED燈等。圖2給出了微控制器模塊電路原理圖。
圖2 微控制器模塊電路原理圖
2.2 射頻卡讀寫模塊
系統(tǒng)采用廣州辰明智能卡科技有限公司生產(chǎn)的
圖3 射頻卡讀寫模塊工作示意圖
CM018射頻卡讀寫模塊,CM018射頻卡讀寫模塊主要由FM1702芯片、P89LPC922單片機(jī)、3.3 V穩(wěn)壓芯片1117M3和天線組成。圖3為系統(tǒng)中射頻卡讀寫模塊工作示意圖。
選用高集成度、低功耗的P89LPC922單片機(jī)控制FM1702芯片,完成FM1702芯片指令的編程,實(shí)現(xiàn)SPI總線向I2C總線的轉(zhuǎn)變,不僅減輕主控AT89S52單片機(jī)控制壓力,而且通過I2C總線控制讀寫模塊節(jié)約I/O資源,提高編程效率??紤]P89LPC922單片機(jī)和其控制的FM1702芯片工作電壓均為3.3 V,為了使供電電壓為5 V的主控單片機(jī)對讀寫模塊進(jìn)行控制,采用了3.3 V穩(wěn)壓芯片1117M3。主控單片機(jī)對射頻卡讀寫模塊控制時(shí),輸入的5 V電壓通過穩(wěn)壓芯片1117M3轉(zhuǎn)換成可供讀寫模塊使用的3.3 V電壓。圖4給出了射頻卡讀寫模塊工作原理圖。
射頻卡讀寫模塊中還集成了天線,天線設(shè)計(jì)包括EMC濾波電路、接收電路和天線的匹配。濾波電路中,由L1、C9和L2、C11組成的低通濾波器可有效去除振蕩器產(chǎn)生的高次諧波:
(1)
得到濾波器截止頻率略高于讀寫模塊工作頻率13.56 MHz,低于高次諧波頻率,可以有效抑制高頻諧波成分,通過天線發(fā)射到周圍環(huán)境中。接收電路推薦使用芯片內(nèi)部產(chǎn)生的VMID作為RX引腳輸入信號的偏置,電路由R1、R2、C14、C15組成,原理圖中給出了阻值和容值。天線的匹配主要是確定電容C8、C10、C12、C13的容值,容值主要依賴于天線的電性能以及環(huán)境影響。實(shí)際中,根據(jù)式(2)估算出線圈的電感[6],然后在FM1702芯片手冊中查表可以得到電容的參考值,為了優(yōu)化性能,準(zhǔn)確地取值必須通過調(diào)試來獲得。
(2)
其中,l為一圈導(dǎo)線的長度;D為線圈寬度或者PCB板覆銅寬度;K為天線形狀系數(shù)(圓形狀K=1.07,矩形K=1.47);N為天線匝數(shù)。計(jì)算得到L為天線的電感,單位為nH。
圖4 射頻卡讀寫模塊電路原理圖
射頻卡讀寫模塊工作原理是:射頻卡讀寫模塊向IC卡發(fā)送一組固定頻率的電磁波,卡片內(nèi)有一個(gè)LC串聯(lián)諧振電路,其頻率與讀寫模塊發(fā)射的頻率相同,這樣在電磁波激勵(lì)下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷;在電荷的另一端,接有一個(gè)單向?qū)ǖ碾娮颖?,將電容?nèi)的電荷送到另一個(gè)電容內(nèi)存儲(chǔ),當(dāng)所積累的電荷達(dá)到2 V時(shí),此電容可作為電源為其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫模塊的數(shù)據(jù)。
針對其他模塊,系統(tǒng)采用基于RS-232標(biāo)準(zhǔn)的串口通信模塊;帶有中文字庫的12864液晶作為LCD顯示模塊;采用5 V有源蜂鳴器作為聲音模塊;采用3個(gè)獨(dú)立式按鍵作為輔助功能控制器件;采用4個(gè)LED作為功能提示的指示燈。這些模塊都有成熟的設(shè)計(jì)電路供參考。
3.1 單片機(jī)程序設(shè)計(jì)
單片機(jī)程序設(shè)計(jì)采用C語言在Keil軟件中編程。圖5給出單片機(jī)主程序流程圖。系統(tǒng)上電后,對定時(shí)器、液晶、串口和讀寫模塊進(jìn)行初始化,蜂鳴器長鳴表示系統(tǒng)完成準(zhǔn)備工作并處于穩(wěn)定狀態(tài)。系統(tǒng)運(yùn)行中,讀寫模塊始終檢測是否有卡操作,在循環(huán)語句中通過檢測TagSta的狀態(tài)來判斷是否有卡操作。每張M1 S50卡具有4字節(jié)唯一的卡號,存儲(chǔ)空間分為16個(gè)扇區(qū)(sector),每個(gè)扇區(qū)有4個(gè)塊(block),包括前三個(gè)數(shù)據(jù)塊和最后的控制塊,每塊可存儲(chǔ)16字節(jié)數(shù)據(jù),總共可以存儲(chǔ)1 KB信息。每一個(gè)扇區(qū)都具有獨(dú)立的A套密碼和B套密碼供選擇,各自占用6個(gè)字節(jié),具備了良好的保密性和多用途性。
單片機(jī)和計(jì)算機(jī)通過串口通信進(jìn)行數(shù)據(jù)交換,采用串口工作方式1,波特率9 600 bps。數(shù)據(jù)傳輸中關(guān)鍵的問題是確保數(shù)據(jù)的正確,數(shù)據(jù)以數(shù)據(jù)包形式傳輸,傳輸時(shí)按照規(guī)定的通信協(xié)議來傳輸。
通信協(xié)議中定義了數(shù)據(jù)包傳輸格式,一般包括起始標(biāo)志碼、數(shù)據(jù)長度、功能碼、傳輸數(shù)據(jù)和校驗(yàn)碼。校驗(yàn)方式有很多種, CRC-16(循環(huán)冗余)校驗(yàn)[7]廣泛應(yīng)用于測控及通信領(lǐng)域,占兩個(gè)字節(jié),C語言程序的實(shí)現(xiàn)主要包括直接計(jì)算法和查表法,為減輕單片機(jī)計(jì)算量,系統(tǒng)采用CRC-16查表法來實(shí)現(xiàn)。
3.2 計(jì)算機(jī)程序設(shè)計(jì)
圖5 單片機(jī)控制程序流程圖
計(jì)算機(jī)程序設(shè)計(jì)包括使用SQL Server 2008建立的信息數(shù)據(jù)庫和使用Visual Studio2008軟件開發(fā)的消費(fèi)卡信息管理系統(tǒng)。SQL(Structured Query Language)是一種標(biāo)準(zhǔn)化的語言,它能夠輕松存儲(chǔ)、更新和存取信息。數(shù)據(jù)庫使用SQL語句進(jìn)行創(chuàng)建[8],建立過程快速,具有可靠和使用方便的特點(diǎn)。數(shù)據(jù)庫總共創(chuàng)建了用戶登錄信息Log User、卡信息Card、卡的使用情況Card Using、身份信息Person Identity和消費(fèi)記錄Consume 5個(gè)表。圖6給出這些表的具體內(nèi)容、主鍵和相互關(guān)系圖。LoginLevel指的是登錄角色,包括消費(fèi)者、操作者和管理員;State指的是卡狀態(tài),包括正常、掛失、注銷;CardID指的是IC卡固有的卡號,占4個(gè)字節(jié),為了方便使用,將其轉(zhuǎn)換成十進(jìn)制數(shù)保存;ConsumeType指的是對消費(fèi)和充值的編碼,Boolean類型,True表示充值,F(xiàn)alse表示消費(fèi)。
圖6 數(shù)據(jù)庫關(guān)系圖
信息管理系統(tǒng)主要是提供一個(gè)操作界面,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行管理,同時(shí)與單片機(jī)進(jìn)行數(shù)據(jù)交換,保證卡內(nèi)存儲(chǔ)的數(shù)據(jù)與數(shù)據(jù)庫中信息一致。系統(tǒng)通過8個(gè)模塊來實(shí)現(xiàn):連接數(shù)據(jù)庫模塊、用戶登錄模塊、密碼修改模塊、卡信息管理模塊、消費(fèi)者信息管理模塊、消費(fèi)/充值模塊、消費(fèi)記錄查詢模塊、串口通信模塊。
連接數(shù)據(jù)庫模塊通過ADO技術(shù)訪問數(shù)據(jù)庫,ADO(ActiveX Data Object)是Microsoft開發(fā)數(shù)據(jù)庫應(yīng)用程序的面向?qū)ο蟮男驴冢哂忻嫦驅(qū)ο蟮奶攸c(diǎn)[9],這里使用預(yù)處理指令#import進(jìn)行ADO編程。用戶登錄模塊主要作用是選定不同的角色,驗(yàn)證登陸賬號和密碼信息,圖7給出消費(fèi)卡管理系統(tǒng)登錄界面。
圖7 消費(fèi)卡管理系統(tǒng)登錄界面
密碼修改模塊提供密碼修改功能??ㄐ畔⒐芾砟K包括新建卡、注銷卡、卡的掛失、卡的解鎖、卡的有效期設(shè)置等操作,圖8給出消費(fèi)卡信息管理界面。串口通信模塊利用成熟的串口類CnComm來實(shí)現(xiàn)與計(jì)算機(jī)的串口通信[10]。
圖8 消費(fèi)卡信息管理界面
經(jīng)過實(shí)驗(yàn)驗(yàn)證,系統(tǒng)利用單片機(jī)控制技術(shù)、RFID技術(shù)、數(shù)據(jù)庫管理技術(shù)實(shí)現(xiàn)了消費(fèi)卡管理系統(tǒng)的應(yīng)用。經(jīng)過固化單片機(jī)程序和外形包裝設(shè)計(jì)即可生產(chǎn)出產(chǎn)品,針對于小型企業(yè)規(guī)模小、資金有限的情況,該產(chǎn)品只需配合一臺計(jì)算機(jī)即可工作,降低了添置附加專有設(shè)備的成本,可廣泛應(yīng)用于消費(fèi)領(lǐng)域。
[1] 葛紅玲. 商家發(fā)行消費(fèi)卡對金融體系的影響[J]. 商業(yè)時(shí)代, 2009(8): 73-75.
[2] 李揚(yáng)弘, 李秉智. 非接觸IC卡讀卡器的開發(fā)研究[J]. 計(jì)算機(jī)工程與應(yīng)用, 2005, 41(32): 106-114.
[3] 游站清, 李蘇劍. 無線射頻識別技術(shù)(RFD)理論與應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2004.
[4] 耿麗微, 錢東平, 趙春輝. 基于射頻技術(shù)的奶牛身份識別系統(tǒng)[J]. 農(nóng)業(yè)工程學(xué)報(bào), 2009, 25(5): 137-141.
[5] ISO/IEC 14443-2 —2001Identification cards-contactless integrated circuit(s) cards-proximity cards[S].
[6] 曾孝平, 任家峪, 熊東. 基于RFID的非接觸式IC卡讀寫器設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制, 2010, 18(10): 2357-2359.
[7] 李宥謀, 房鼎益. CRC編碼算法研究與實(shí)現(xiàn)[J]. 西北大學(xué)學(xué)報(bào), 2006, 36(6): 895-898.
[8] Robert Vieria. SQL Server2008編程入門經(jīng)典[M]. 北京:清華大學(xué)出版社, 2011.
[9] 姚萬軍. VC下利用ADO訪問SQL Server技術(shù)[J]. 微計(jì)算機(jī)應(yīng)用, 2004, 25(1): 99-103.
[10] 龔建偉, 熊光明. Visual C++ /Turbo C串口通信編程實(shí)踐[M]. 北京:電子工業(yè)出版社, 2007.
劉佩森(碩士研究生),研究方向?yàn)榍度胧皆O(shè)備、狀態(tài)監(jiān)測與故障診斷。
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)