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