隨著IC卡技術的不斷發(fā)展,基于卡證應用的現(xiàn)代化管理模式已日漸普及。目前各大高校內(nèi)往往憑借一張校園卡就可以完成存款、繳費、就餐、購物和洗澡等電子支付服務,大大提高了學校的管理水平和服務工作的效率。校園一卡通系統(tǒng)消費子系統(tǒng)大部分是基于網(wǎng)絡的,連網(wǎng)消費機必須實時把每筆消費記錄都發(fā)到消費機服務器上。其優(yōu)點是實時性強,支持消費人群多;缺點是成本高、維護復雜、系統(tǒng)龐大不夠靈活,而且消費高峰階段極易造成消費機服務器的負擔,出現(xiàn)擁塞現(xiàn)象。
高校傳統(tǒng)的澡堂仍然是粗放式的管理,以人工售票為主,不限制洗澡的時間。這樣不但容易造成水和燃料的浪費,還存在不能及時了解澡堂的空閑水龍頭數(shù)量等問題,極易造成洗浴高峰。
本文的設計是針對校園洗浴的現(xiàn)狀開發(fā)的校園一卡通單機版計時消費機。它具有脫離網(wǎng)絡獨立消費記帳功能,所有的消費數(shù)據(jù)都存儲在消費機中,能夠與現(xiàn)有按鍵消費機通信協(xié)議兼容,與按鍵消費機使用的IC卡格式兼容。它采用了射頻感應技術,持卡人只需進出門各刷一次卡,便可達到計時消費的的目,省去了賣澡票和收澡票的麻煩,是高校公共澡堂和集體公寓用水管理的理想解決方案。
消費機系統(tǒng)概述
本設計的目的是開發(fā)出以單片機為核心的基于I2C總線的脫網(wǎng)版計時消費機,能在脫離網(wǎng)絡和服務器的情況下獨立運行,同時實現(xiàn)計時消費的功能。系統(tǒng)由控制器、讀寫器、EEPROM、IC卡等組成。單片機STC89C58控制整個系統(tǒng),并實現(xiàn)對外圍芯片的初始化和數(shù)據(jù)傳送??紤]到該系統(tǒng)需要大容量數(shù)據(jù)存儲,這里采用了ATMEL公司生產(chǎn)的24C256 EEPROM存儲器。PCF8563是PHILIPS公司生產(chǎn)的低功耗的實時時鐘/日歷芯片,作用是產(chǎn)生年、月、日、時、分、秒等,用來記錄采集數(shù)據(jù)的時間。
系統(tǒng)按13.56MHz的工作頻率以半雙工方式在讀寫器與IC卡之間雙向傳遞數(shù)據(jù)。讀寫器將要發(fā)送的信號編碼后加載在頻率為13.56MHz的載波信號上經(jīng)天線向外發(fā)送,進入讀寫器工作區(qū)域的IC卡接收此脈沖信號。一方面卡內(nèi)芯片中的射頻接口模塊由此信號獲得電源電壓、復位信號、時鐘信號;另一方面卡內(nèi)芯片中的有關電路對此信號進行調(diào)制、解碼、解密,然后對命令請求、密碼和權限等進行判斷。若為讀命令,控制邏輯電路從存儲器中讀取有關信息,經(jīng)加密、編碼、調(diào)制后由卡內(nèi)天線發(fā)送給讀寫器;若為修改信息的寫命令,有關控制邏輯引起內(nèi)部電荷泵提升工作電壓,提供擦寫EEPROM時所需的高壓;以便對EEPROM中的內(nèi)容進行改寫;若經(jīng)判斷其對應的密碼和權限不符,則返回出錯信息。
硬件電路的設計
消費機硬件結構框圖如圖1所示,微控制器STC89C58負責整個窗口機的監(jiān)控。RC50為MIFARE卡讀寫器模塊,在MCU控制下,完成對卡片的非接觸式讀寫等多種操作。PCF8563是一款低功耗的實時時鐘/日歷芯片,實現(xiàn)時鐘模塊的計時功能。EEPROM模塊用于在脫網(wǎng)消費時保存大量的消費記錄。
圖1 消費機硬件結構框圖
在對各模塊進行操作的時候由電源模塊向其供電,提供電壓為+5V。EEPROM模塊和讀寫器模塊在沒有進行操作的時候不需要外加電源,而時鐘模塊則需要外加電源供給能量,以保持時鐘的持續(xù)和正確。各模塊是通過I2C總線進行數(shù)據(jù)交換的,I2C總線最主要的優(yōu)點是簡單性和有效性。它由簡單的雙向通訊的兩芯接口為集成電路之間提供有效的控制。一條線路用來傳輸時鐘,另外一條用來傳輸數(shù)據(jù)。通過一個帶有緩沖區(qū)的接口,數(shù)據(jù)可以被I2C發(fā)送或接收??刂坪蜖顟B(tài)信息則通過一套內(nèi)存映射寄存器來傳送。
圖2 IC卡讀寫器硬件電路
本文利用單片機的通用I/O口(P1.7和P1.6)來虛擬I2C總線接口,為了在使用虛擬I2C總線時有一個通用的界面,可設計出一個主方式下的虛擬I2C總線軟件包,給出歸一化操作指令即可。進行數(shù)據(jù)傳輸時則靠識別芯片地址來選擇操作芯片。
1 IC卡讀寫器部分
IC卡讀寫器的電路如圖2所示,由于采用了PHILIPS公司高集成度的TYPE A讀寫器芯片MF RC500,天線驅(qū)動電路僅需很少的外圍元件,有效距離可達10cm。每次上電或硬啟動后,芯片會復原其并行接口模式并檢測當前的MCU接口類型,MF RC500可支持不同的微控制器接口,一個智能的自動檢測邏輯可以自動適應系統(tǒng)總線的并行接口,使用信號NCS選擇芯片。要使用獨立的地址和數(shù)據(jù)總線與微控制器相連,必須將ALE引腳連接到DVDD。本設計使用復用的地址和數(shù)據(jù)總線與微控制器接口,所以必須將MF RC500的ALE引腳連接到微控制器的ALE信號。
2 存儲器部分
計時消費機中存儲的消費數(shù)據(jù)要求掉電不丟失,為此選用了ATMEL公司的24C256 EEPROM。24C256是一個256kb的支持I2C總線數(shù)據(jù)傳送協(xié)議的串行CMOS EEPROM,可編程自定時寫周期(包括自動擦除時間不超過10ms,典型時間為5ms),其地址分配如表1所示。
圖3 數(shù)據(jù)信息寫入流程圖
串行EEPROM的數(shù)據(jù)讀取正確與否和系統(tǒng)軟件的設計緊密相關。系統(tǒng)軟件要根據(jù)硬件電路確定數(shù)據(jù)傳輸位;建立數(shù)據(jù)區(qū)地址指針,按照串行EEPROM的工作時序設定讀、寫控制主程序。主程序分為以下兩個部分。
1)數(shù)據(jù)端口初始化
根據(jù)串行EEPROM數(shù)據(jù)存取的特點,設立數(shù)據(jù)端口的工作方式,建立相應的數(shù)據(jù)指針DPTR,為地址和數(shù)據(jù)信息的存、取建立各自的子程序,為后一步數(shù)據(jù)信息的存、取做準備。
2)數(shù)據(jù)信息寫入/讀取
如圖3所示,首先設立數(shù)據(jù)源的入口地址DPTP,然后調(diào)用串行EEPROM入口地址服務子程序,選通EEPROM數(shù)據(jù)區(qū),啟動讀/寫程序傳輸數(shù)據(jù)。
3 計時模塊
計時模塊的電路如圖4所示。PCF8563是低功耗的CMOS 實時時鐘/日歷芯片,它提供一個可編程時鐘輸出,一個中斷輸出和掉電檢測器,所有的地址和數(shù)據(jù)通過I2C總線接口串行傳遞。在給PCF8563送入初始的日歷信息后,PCF8563中的日歷就會自動運行。由于PCF8563為實時時鐘芯片,在沒有外接電源時仍然要求連續(xù)供電,以保持時間的準確無誤。因此,這部分電路還加了掉電保護功能,在主供電系統(tǒng)意外斷電時,即Vcc為0V時,D1截止,3.6V備用電源通過D2繼續(xù)給PCF8563供電,保證其正常運行。
4 顯示模塊
消費機顯示部分包括前后面板都有8位LED數(shù)碼管,全部由74LS164驅(qū)動。顯示部分采用的是普通的串行靜態(tài)顯示,由STC89C58的P1.6和P1.7構成模擬I2C串行口,通過P89LPC932將驅(qū)動信號分別送往前后顯示面板。
5 數(shù)據(jù)通信部分
每臺消費機在投入使用前,都可通過串口根據(jù)實際情況對消費機進行讀寫器密鑰、消費機號和基準時間等參數(shù)進行設置。設置成功后,參數(shù)保存在消費機的EEPROM中。
圖4 時鐘電路
本設計中采用RS232串行通信方式進行數(shù)據(jù)的傳送。數(shù)據(jù)的采集存儲由單片機系統(tǒng)完成,而數(shù)據(jù)的處理由PC完成,即將PC與單片機組成上位機、下位機分布式控件系統(tǒng)。下位單片機作為前端處理機,深入到現(xiàn)場,負責采集各種數(shù)據(jù)并記錄,在需要時將各種數(shù)據(jù)傳到上位機。
結束語
本文為一卡通系統(tǒng)脫網(wǎng)版提出了模塊劃分的藍本,對一卡通系統(tǒng)中脫網(wǎng)版按鍵、按次等消費機的設計有指導意義,可以借鑒和參考。
這一系統(tǒng)采用了應用開發(fā)較為成熟的單片機STC89C58,其他芯片也均是市場上的主流產(chǎn)品,價格比較合理,因此整個系統(tǒng)的性價比較高。此外,本系統(tǒng)還具有以下優(yōu)勢:采用射頻感應技術,可靠性高、保密性高、快速方便、使用壽命長;采用I2C總線簡化了硬件電路結構;采用電子錢包的方法實現(xiàn)了聯(lián)網(wǎng)與脫網(wǎng)消費機的并行運行;采用大容量的EEPROM,具有掉電后長期保存功能;具有自動識別非法卡并報警的功能;數(shù)據(jù)采集靈活。
數(shù)據(jù)通信方面,本系統(tǒng)采用的是RS232串口通信,在USB接口通信已經(jīng)廣泛使用的今天,根據(jù)應用需要還可以再增加USB接口,以大大提高傳輸速率。