非接觸式lC卡又稱射頻卡,由lC芯片、感應天線組成,封裝在一個標準的PVC卡片內,芯片及天線無任何外露部分,是近幾年發(fā)展起來的一項新技術。由于射頻IC卡具有存儲容量大、抗干擾能力強、便于攜帶、性高等優(yōu)點,在公交、金融等很多領域都得到了廣泛的應用。本文主要以某旅游景點門禁管理系統(tǒng)為例,介紹基于射頻IC卡的應用系統(tǒng)的開發(fā)思路和設計過程。
系統(tǒng)需求以及設計思路
目前我國大部分旅游景點仍遵循傳統(tǒng)的管理模式,門票一般采用紙質票,這種方式不僅在售票與驗票過程中存在較大的財務漏洞,容易產(chǎn)生偷票、漏票、重復使用票的現(xiàn)象,也無法及時、準確統(tǒng)計游客的數(shù)量、流量以及區(qū)內的消費情況等。在旅游景點門票發(fā)行中采用射頻IC卡,不僅可以有效地消除這些隱患、堵絕漏洞,還有利于年卡和月卡的發(fā)行。另外,一般景點都有很多的游樂項目,特別是節(jié)假日,游樂場的售票亭前總會出現(xiàn)長長的人龍,為了避免游客排隊購票的時間浪費以及可能的消費流失,進入景點的游客可以在進場時購臨時卡用于刷卡游樂,到出場時再退卡。這樣游客在游樂的時候,就可以省去排隊購票的麻煩,大大提高了消費熱情和消費強度??梢钥闯?,在大型旅游景點開發(fā)基于射頻IC卡的門禁管理系統(tǒng),不僅可以較好地實現(xiàn)景點的自動化管理,而且還可以通過射頻IC卡的發(fā)行來刺激游客的消費,實現(xiàn)游客不同娛樂項目的自動收費。
該旅游景點有一個正門,設2個驗卡通道,4個主要的游樂場所,考慮用5臺電腦組成局域網(wǎng)。由于景點占地面積較大,不同游樂場所相距較遠,采用R5485串行網(wǎng)絡無法實現(xiàn)長距離的連接,所以系統(tǒng)對各游樂場均配備一臺電腦和讀卡器。選擇一臺性能較好的電腦A,放在景點入口處,用來實現(xiàn)發(fā)卡和進正門的刷卡功能,其中讀卡器和發(fā)卡控制器分別接入其COM1口和COM2口:另外四臺電腦B、C、D和E分別設置在4個游樂場所用于刷卡消費,相應的讀卡器接入上位機的COM1口,在兩個主要的游樂場中增設充值點,用2臺發(fā)卡器分別連接到上位機的COM2口。由于本系統(tǒng)選擇具有存儲功能的射頻IC卡,金額的扣除在射頻IC卡上完成,后臺數(shù)據(jù)庫主要用于存儲信息完成查詢和統(tǒng)計等操作,對實時性要求相對不高,所以考慮將電腦A作為服務器,存放集中數(shù)據(jù)庫的信息,電腦B、C、D、E客戶端程序的登錄驗證、IC卡有效性驗證等都需要訪問電腦A中數(shù)據(jù)庫才可以完成,其本地數(shù)據(jù)庫中只存放在指定游樂場所刷卡消費的信息,可選擇相對空閑的時間對集中數(shù)據(jù)庫的信息進行更新。
根據(jù)需求,我們大致確定了系統(tǒng)實現(xiàn)的主要功能,分別是卡發(fā)行功能、刷卡功能、卡充值、掛失和解掛、查詢統(tǒng)計、數(shù)據(jù)庫維護、用戶管理等,執(zhí)行流程是:游客可以在進入景點之前通過發(fā)卡功能辦理或臨時IC卡,相關信息存入集中數(shù)據(jù)庫相應的或臨時IC卡表中;在進入景點或游玩某個游樂項目之前,根據(jù)卡還是臨時卡訪問相應的表,檢查卡是否是有效卡,如果不是,給出相應的提示信息,拒絕其進入,否則通過刷卡程序按照事先設定好的金額,判斷IC卡中的余額是否充足,如果余額不足,則提示相應的信息,不允許進入,否則更改IC卡中的余額,并將該刷卡信息記錄在本地數(shù)據(jù)庫中,作為以后更新集中數(shù)據(jù)庫中消費表信息的依據(jù);臨時卡在退園時可以根據(jù)余額退還,為了查詢統(tǒng)計方便,退卡后除了將臨時卡表的對應記錄刪除外,還應在相應的消費表中將該操作記錄下來。
由于Visual Basic對串口和數(shù)據(jù)庫的訪問控制均提供了豐富的功能,且具有簡單易學的特點,所以本系統(tǒng)采用Visual Basic 6.0作為開發(fā)環(huán)境。
訪問IC卡發(fā)卡器和讀卡器
在VB中,上位機對串口的通訊可采用兩種方法,一種是調用W indows的API函數(shù),另一種是利用VB的通信控件。本系統(tǒng)采用VB提供的MSComm通信控件實現(xiàn)對IC卡發(fā)卡器和讀卡器的訪問。注意,由于系統(tǒng)的設計涉及上下位機的通訊,需事先為每一個下位機分配一個的機號,在處理時還可以根據(jù)刷卡機的機號確定刷卡的業(yè)務。