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