劉佩森,王成棟,郭慶豐
(電子科技大學 機械電子工程學院,成都 611731)
?
小型消費卡管理系統應用研究*
劉佩森,王成棟,郭慶豐
(電子科技大學 機械電子工程學院,成都 611731)
針對現有的消費卡管理系統成本高昂、系統龐大、管理復雜而不適用于小型企業的情況,開發一款適應于小型企業的消費卡管理系統。提出基于單片機控制技術、射頻識別技術和數據庫管理技術的實現方案。系統硬件包括微控制器模塊、射頻卡讀寫模塊、射頻卡等,軟件部分包括下位機程序和上位機程序。比較詳細地敘述了各個模塊的功能及設計原理,給出了單片機程序流程圖及計算機應用程序的設計要點。經過實驗驗證,性能穩定,可靠性高,成本比較低,可以應用于大多數消費卡應用場合。
單片機;射頻識別;消費卡;管理系統
如今針對小型企業開發的消費卡管理系統還比較少,基于這一背景,本文研究了一種成本低廉、穩定性高的消費卡管理系統,具有較強的實用性和廣闊的市場前景。
小型消費卡管理系統總體結構包括兩部分。第一部分是以單片機為核心控制器件的消費卡識別系統,通過單片機對射頻卡讀寫器、液晶屏、LED、蜂鳴器、按鍵等器件的控制,實現對消費卡的識別。第二部分是在計算機上建立的消費卡管理系統,系統使用SQL Server 2008軟件建立卡信息數據庫,使用Visual studio 2008軟件建立用戶操作界面,實現對消費卡信息的管理。計算機利用單片機串口通信實現數據交換,保證卡內存儲的數據與數據庫中信息一致。圖1為小型消費卡管理系統的總體結構。
小型消費卡管理系統的設計包括硬件和軟件兩部分。系統硬件設計采用模塊化設計思想,即按照功能將硬件分成各個模塊,參考成熟設計逐一實現。模塊化設計思路清晰,易于查錯和更改,有利于擴充新功能。系統硬件的各個模塊如圖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.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)