射頻IC卡在電影院票務(wù)發(fā)行系統(tǒng)中的應(yīng)用
文章出處:http://m.mjagi.com 作者: 人氣: 發(fā)表時(shí)間:2012年03月30日
摘要:本文主要介紹基于射頻 IC卡的電影院票務(wù)發(fā)行系統(tǒng)的設(shè)計(jì)以及實(shí)現(xiàn)的關(guān)鍵技術(shù),提出在 RS485網(wǎng)絡(luò)中多臺(tái)讀卡器串行通訊的解決方案。
關(guān)鍵詞:IC卡;票務(wù)發(fā)行;RS485;串行通訊
1 引言
目前國(guó)內(nèi)很多電影院仍采用傳統(tǒng)的紙質(zhì)票據(jù)式門票,這種門票的最大好處是門票的直接成本低,但是這種門票也存在很多的缺點(diǎn),如容易偽造、復(fù)制,團(tuán)體票和年票使用麻煩,而且不容易實(shí)現(xiàn)對(duì)觀眾進(jìn)入電影院的次數(shù)以及銷售額進(jìn)行統(tǒng)計(jì)和管理。鑒于紙質(zhì)門票存在的弊端,國(guó)內(nèi)許多檢票系統(tǒng)已經(jīng)開始改用電子門票方式來實(shí)現(xiàn)人員出入的自動(dòng)化管理。由于 IC卡具有存儲(chǔ)容量大、體積小、重量輕、抗干擾能力強(qiáng)、便于攜帶、易于使用、安全性高等優(yōu)點(diǎn),在很多領(lǐng)域都得到了廣泛的應(yīng)用?;窗踩嗣翊髸?huì)堂是淮安市區(qū)最大、設(shè)備最完善的一家電影院,為了方便單位年票的發(fā)行,更好地解決假票問題,提供更優(yōu)質(zhì)的管理服務(wù),提高觀眾看電影的熱情,提出了基于射頻 IC卡的電影院票務(wù)發(fā)行系統(tǒng)的設(shè)計(jì)要求。
2 電影院票務(wù)系統(tǒng)設(shè)計(jì)
采用IC卡應(yīng)用于電影院票務(wù)系統(tǒng),觀眾只需在辦卡時(shí)預(yù)存一定的金額,就可以隨時(shí)刷卡消費(fèi)。淮安人民大會(huì)堂一共有4個(gè)入口,其中兩個(gè)入口進(jìn)入數(shù)字廳,另外兩個(gè)入口分別進(jìn)入星影廳和淮海廳,需要4個(gè)讀卡器同時(shí)工作;在票務(wù)發(fā)行室,還需要一臺(tái)發(fā)卡器完成發(fā)卡操作??紤]將發(fā)卡器接到上位機(jī)的COM2口,而將4個(gè)讀卡器通過RS485網(wǎng)絡(luò)并聯(lián),通過RS-232 /RS-485轉(zhuǎn)換器將其接入上位機(jī)的COM1口,由上位機(jī)通過指令控制工作。這樣整個(gè)IC 卡電影院票務(wù)系統(tǒng)就形成了一臺(tái)PC 機(jī)對(duì)多臺(tái)下位機(jī)的串行通訊系統(tǒng),具體結(jié)構(gòu)如下圖所示:
讀卡器采用 WM-02H讀卡控制器,有一個(gè) 5.4CM X 1.8CM的液晶顯示屏,用來顯示卡內(nèi)余額以及一些提示信息。讀卡控制器在讀到卡后會(huì)將卡號(hào)暫存于讀卡控制器中,這時(shí)指示燈的顏色變紅,上位機(jī)取走卡號(hào)后燈變回綠。如果上位機(jī)沒有讀卡(取走數(shù)據(jù)),該讀卡控制器就不再讀卡,直到上位機(jī)將卡號(hào)讀取后再開始讀卡。另外,為了防止用戶操作不規(guī)范造成重復(fù)讀卡,設(shè)置一張卡刷卡后在 3秒內(nèi)讀卡器不再讀這張卡,當(dāng)然也允許刷卡時(shí)同一張卡多人使用,但每次刷卡的時(shí)間間隔必須大于 3秒鐘。
射頻卡選用 EM公司的 ID卡,主要采用瑞士 EM或臺(tái)灣 GK公司的4100、4102系列 IC芯片 + 線圈 + 卡基封裝而成。這種卡沒有存儲(chǔ)功能,卡中只保存唯一的卡號(hào),所有的信息都是保存在上位機(jī)的數(shù)據(jù)庫(kù)中。刷卡消費(fèi)時(shí),根據(jù)讀卡器讀出的卡號(hào)在數(shù)據(jù)庫(kù)中查找該卡號(hào)是否存在,如果不存在,提示“非法卡號(hào)! ”,否則檢查卡內(nèi)余額是否充足,根據(jù)情況在讀卡器的 LED顯示屏上顯示不同的信息,同時(shí)蜂鳴器也相應(yīng)發(fā)出聲響。這些都通過程序控制讀卡器來完成。
針對(duì)淮安人民大會(huì)堂檢票系統(tǒng)的用戶需求,我們最終確定系統(tǒng)包含四大功能,分別是卡發(fā)行管理模塊、刷卡模塊、查詢統(tǒng)計(jì)模塊以及系統(tǒng)管理模塊。其中卡發(fā)行管理模塊主要完成個(gè)人以及團(tuán)體卡的辦理、卡充值、掛失、信息修改等功能;刷卡模塊主要完成日常的刷卡業(yè)務(wù);查詢統(tǒng)計(jì)模塊實(shí)現(xiàn)對(duì)刷卡信息以及營(yíng)業(yè)額等數(shù)據(jù)的查詢操作,并可以以 Excel表格的形式輸出;系統(tǒng)管理模塊主要完成用戶管理、系統(tǒng)的設(shè)置以及數(shù)據(jù)備份、恢復(fù)等功能。程序設(shè)計(jì)語(yǔ)言選用目前流行的VB6.0。
3 關(guān)鍵技術(shù)的實(shí)現(xiàn)
發(fā)卡和刷卡功能是系統(tǒng)最重要的功能,都會(huì)涉及軟硬件的編程,但兩者之間的編程方式有較大的區(qū)別。
3.1 發(fā)卡功能的實(shí)現(xiàn)
因?yàn)殡娪霸浩眲?wù)發(fā)行人員只利用一臺(tái)發(fā)卡器辦理個(gè)人或團(tuán)體卡,不存在同時(shí)讀卡的情況,所以可采用被動(dòng)模式,當(dāng)發(fā)卡器讀出卡信息后,自動(dòng)觸發(fā)上位機(jī)去讀保存在發(fā)卡器中的卡號(hào)。
在 VB中可以利用 MSComm通信控件實(shí)現(xiàn)讀卡器和 PC機(jī)之間的串口通訊。MSComm 控件使用前有許多屬性需要設(shè)置,系統(tǒng)在窗體的 Load事件中通過以下程序段完成MSComm 控件屬性的設(shè)定。
3.2 485通訊指令協(xié)議
系統(tǒng)中 4個(gè)讀卡器通過 RS485網(wǎng)絡(luò)并聯(lián),由上位機(jī)對(duì)讀卡器進(jìn)行控制,控制字方式為 1位開始位、8個(gè)數(shù)據(jù)位、一個(gè)停止位,無(wú)奇偶校驗(yàn)。具體通訊協(xié)議格式如下:
|開始標(biāo)志|分機(jī)地址|信息長(zhǎng)度|命令和參數(shù)/叢機(jī)返回|校驗(yàn)|
其中: 開始標(biāo)志長(zhǎng)度為 2個(gè)字節(jié),主機(jī)給分機(jī)為AAH FFH;分機(jī)給主機(jī)為BBH FFH。
分機(jī)地址長(zhǎng)度為 1個(gè)字節(jié),范圍為 00H---FEH之間,每個(gè)讀卡器必須事先設(shè)定一個(gè)唯一的地址。
信息長(zhǎng)度表示命令和參數(shù)的總字節(jié)數(shù),不包括開始標(biāo)志、地址和校驗(yàn)的長(zhǎng)度。
校驗(yàn)位長(zhǎng)度為 1個(gè)字節(jié),是開始標(biāo)志、地址、信息長(zhǎng)度、命令和參數(shù)中所有字節(jié)的異或值。
命令和參數(shù)決定主機(jī)發(fā)送的命令類型以及從機(jī)返回的數(shù)據(jù)。比如主機(jī)向從機(jī)發(fā)送的讀命令為A2H,根據(jù)通訊協(xié)議,則發(fā)送讀命令的程序段可編寫如下:
3.3 刷卡功能的實(shí)現(xiàn)
刷卡功能的實(shí)現(xiàn)相比發(fā)卡就復(fù)雜的多。由于有 4臺(tái)讀卡器同時(shí)連接,刷卡人員可以決定開放哪幾個(gè)讀卡器,根據(jù)需要也可以同時(shí)開放,所以同時(shí)就可能有 4張卡被刷,如果仍采用被動(dòng)模式,則必然帶來沖突,造成讀卡錯(cuò)誤,所以系統(tǒng)采用主動(dòng)模式編程。上位機(jī)按一定時(shí)間間隔輪流主動(dòng)去取讀卡控制器中的數(shù)據(jù),根據(jù)不同情況作不同的處理。由于不需控件響應(yīng)消息,應(yīng)將MSComm控件的RThreshold 和SThreshold 屬性設(shè)置為0。
在刷卡程序設(shè)計(jì)時(shí),有幾個(gè)問題需要解決。使用定時(shí)器控制主機(jī)輪詢的時(shí)間間隔應(yīng)設(shè)置為多少?讀取數(shù)據(jù)后,如何判斷數(shù)據(jù)的正確性?對(duì)于非法卡、卡內(nèi)余額不足以及正??ㄌ幚砗螅绾胃鶕?jù)不同情況同時(shí)在讀卡器的液晶顯示器上顯示相關(guān)信息,并鳴笛?經(jīng)過不斷的摸索和驗(yàn)證運(yùn)行的可靠性,設(shè)定了一個(gè)輪詢定時(shí)器,時(shí)間間隔為20ms。接下來就按照運(yùn)行的流程編寫程序,結(jié)果卻發(fā)現(xiàn),如果只開放一個(gè)讀卡器,不管是哪一個(gè),程序都能夠正常運(yùn)行,但多臺(tái)讀卡器同時(shí)開放時(shí),運(yùn)行總不太穩(wěn)定,特別是要同時(shí)在讀卡器上顯示信息和短聲鳴笛時(shí),明明在1號(hào)讀卡器上顯示相應(yīng)的信息,而且程序中也是給 1號(hào)讀卡器發(fā)鳴笛命令,卻是下一個(gè)讀卡器在響。后來發(fā)現(xiàn)可能在讀卡器上顯示信息的執(zhí)行時(shí)間較長(zhǎng),到發(fā)鳴笛命令時(shí),輪詢的計(jì)數(shù)器已經(jīng)到了下一個(gè)讀卡器,但即使增加輪詢的時(shí)間間隔,效果也不理想。經(jīng)不斷調(diào)試和比較不同的設(shè)計(jì)方案,最終選擇再增設(shè)一個(gè)定時(shí)器,作為在讀卡器上顯示信息和短聲鳴笛的時(shí)間間隔,時(shí)間間隔設(shè)定為20ms。由于讀卡器鳴笛時(shí)不會(huì)再讀卡,同時(shí)也為了防止鳴笛的執(zhí)行影響下一個(gè)執(zhí)行動(dòng)作,再為每個(gè)讀卡器增設(shè)一個(gè)鳴笛狀態(tài),如果主機(jī)發(fā)送命令給某個(gè)讀卡器時(shí),該讀卡器還在執(zhí)行鳴笛,則跳過該讀卡器,按順序訪問下一個(gè)未鳴笛的讀卡器。經(jīng)過這樣的處理,最終圓滿的解決了問題,由此可見,在硬件編程過程中,時(shí)序的控制非常重要。
3.4 安全控制方面
由于本系統(tǒng)使用的 IC卡不是存儲(chǔ)卡,卡內(nèi)不保存任何信息,所有信息都是保存在數(shù)據(jù)庫(kù)中,所以系統(tǒng)的安全控制就尤為重要。系統(tǒng)不僅設(shè)置不同權(quán)限的操作人員,限制普通操作人員可以對(duì)系統(tǒng)執(zhí)行的操作,而且提供本地和遠(yuǎn)程備份和還原數(shù)據(jù)庫(kù)的功能,以防止由于機(jī)器故障或其他原因?qū)?shù)據(jù)造成的破壞;還可對(duì)重要的卡信息加密保存,提供完善的日志功能,對(duì)各個(gè)操作員和管理員進(jìn)入系統(tǒng)執(zhí)行的操作都作了詳細(xì)的記錄,并提供方便的查詢功能,以減少人員方面的安全隱患;從 IC卡發(fā)行方面來說,每張 IC卡卡號(hào)在封卡后不可再更改,絕對(duì)確保卡號(hào)的唯一性和安全性;另外,為防止串卡現(xiàn)象的發(fā)生,本系統(tǒng)專門設(shè)定了發(fā)行卡庫(kù),只有在卡庫(kù)中的卡才可以發(fā)行,徹底杜絕仿制卡的出現(xiàn)。由此可見,系統(tǒng)具有較高的安全性。
4 結(jié)束語(yǔ)
本文介紹了射頻 IC卡在電影院票務(wù)發(fā)行系統(tǒng)中的應(yīng)用,并詳細(xì)介紹了系統(tǒng)開發(fā)的思路和關(guān)鍵技術(shù)的實(shí)現(xiàn)。目前該系統(tǒng)已投入使用半年多,運(yùn)行情況穩(wěn)定,取得了良好的社會(huì)效益和經(jīng)濟(jì)效益。除了可以應(yīng)用于電影院業(yè)務(wù),其實(shí)本文所介紹的 IC卡系統(tǒng)還可以應(yīng)用至停車場(chǎng)、游樂場(chǎng)以及各種收費(fèi)的智能化管理應(yīng)用領(lǐng)域。
創(chuàng)新點(diǎn):成功將射頻 IC卡應(yīng)用到電影院門票發(fā)行中;提出在 RS485網(wǎng)絡(luò)中多臺(tái)并聯(lián)讀卡器的訪問控制方案,具有較好的推廣應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 田擁軍,曾健平.基于射頻識(shí)別技術(shù)的多用戶電能表的設(shè)計(jì)[J].微計(jì)算機(jī)信息.2007年第23 卷第5-2期,219-221
[2]非接觸式 IC卡.http://www.iccard8.com
[3] 肖文波,梁楚樵 . 基于非接觸式IC卡的管理信息系統(tǒng)的設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào).2005年10月
[4] Anon.Smart card microcomputers for high-security applications[J].HitachiReview Special Issue,2001
作者簡(jiǎn)介:周蕾(1971-),女,講師,研究方向:計(jì)算機(jī)應(yīng)用,網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)
【稿件聲明】:如需轉(zhuǎn)載,必須注明來源和作者,保留文中圖片和內(nèi)容的完整性,違者將依法追究。