非接觸式IC卡節(jié)水控制器的設(shè)計(jì)與實(shí)現(xiàn)
1.引言
非接觸式IC卡節(jié)水控制器(簡(jiǎn)稱水控器或水控機(jī)),就是采用非接觸式IC卡讀寫(xiě)器控制出水,對(duì)用水實(shí)行無(wú)人收費(fèi)管理]。它是一種集計(jì)量功能及控制功能為一體的裝置,是一種利用現(xiàn)代微電子技術(shù)、現(xiàn)代傳感技術(shù)、非接觸式IC卡技術(shù)對(duì)用水量進(jìn)行計(jì)量并能進(jìn)行用水?dāng)?shù)據(jù)傳遞及結(jié)算交易的新型裝置。有水龍頭流水的場(chǎng)所都可以利用控制器達(dá)到節(jié)水的目的。如:浴室、集體和個(gè)人公寓、開(kāi)水房等場(chǎng)所。該裝置采用國(guó)內(nèi)最常見(jiàn)的Philips公司生產(chǎn)的Mifare1 S50非接觸式IC卡作為通訊卡,具有體積小、攜帶方便、防水防潮、堅(jiān)固耐磨等優(yōu)點(diǎn),并且能方便的配合售飯機(jī)、門禁系統(tǒng)、考勤系統(tǒng)等一起使用,構(gòu)成校園一卡通、企業(yè)一卡通系統(tǒng)。
2.基于非接觸式IC卡的節(jié)水控制器總體方案及硬件設(shè)計(jì)
2.1 總體方案
由圖1的系統(tǒng)框圖可以看出,水控器主要以AT89C51主控MCU為核心,輔以射頻接口模塊、流量計(jì)量模塊、水控接口模塊、開(kāi)關(guān)電源電路、數(shù)碼顯示電路、數(shù)據(jù)存儲(chǔ)電路、蜂鳴器報(bào)警電路等組成。
圖1非接觸式IC卡節(jié)水控制器系統(tǒng)框圖
只要在讀卡器讀卡范圍內(nèi)有IC卡,則通過(guò)單片機(jī)控制射頻接口電路對(duì)IC卡進(jìn)行操作,判斷IC卡的類型(用戶卡或管理員卡),根據(jù)卡內(nèi)的信息內(nèi)容進(jìn)行相應(yīng)的處理,并根據(jù)需求通過(guò)水控接口電路來(lái)控制電磁閥的狀態(tài)(開(kāi)或關(guān)),系統(tǒng)運(yùn)作過(guò)程中的有關(guān)信息通過(guò)數(shù)碼顯示電路顯示出來(lái)或?qū)⒂嘘P(guān)數(shù)據(jù)記錄到數(shù)據(jù)存儲(chǔ)器中。另外水表在用水的過(guò)程中通過(guò)流量傳感器發(fā)出脈沖信號(hào),單片機(jī)接收脈沖信號(hào)進(jìn)行運(yùn)算和處理然后對(duì)IC卡進(jìn)行相應(yīng)的扣款處理并通過(guò)數(shù)碼顯示電路顯示有關(guān)信息,并在用水的過(guò)程中進(jìn)行實(shí)時(shí)監(jiān)控,若IC卡的余額過(guò)低則通過(guò)蜂鳴器發(fā)聲報(bào)警。水控器的各部分協(xié)調(diào)運(yùn)作從而可以實(shí)現(xiàn)用水的自動(dòng)化管理。
2.2 水控器硬件設(shè)計(jì)
2.2.1 MCU模塊
水控器的核心MCU模塊選用內(nèi)置功能強(qiáng)大,且具有高性價(jià)比的AT89C51單片機(jī),它是一個(gè)低電壓、高性能CMOS 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)。另外MCU的外接電路,如:數(shù)據(jù)存儲(chǔ)器采用AT24C01A作為非易失的數(shù)據(jù)存儲(chǔ)(用于存儲(chǔ)設(shè)置參數(shù)和消費(fèi)數(shù)據(jù),如水價(jià)、累計(jì)消費(fèi)等)。
數(shù)碼顯示電路可采用74HC164驅(qū)動(dòng)數(shù)碼顯示。為了降低裝置的功耗和發(fā)熱,采用了開(kāi)關(guān)電源作為供電電源,可選用L4962E/A的降壓型PWM控制開(kāi)關(guān)穩(wěn)壓集成電路,它具有輸出電壓可調(diào)、過(guò)流保護(hù)、過(guò)熱保護(hù)和軟啟動(dòng)功能。報(bào)警電路將蜂鳴器與MCU基本I/O口相連主要實(shí)現(xiàn)余額不足報(bào)警等功能。水控接口電路利用AT89C51單片機(jī)的基本I/O口輸出控制信號(hào),經(jīng)放大后用以控制電磁閥的開(kāi)啟與關(guān)閉。來(lái)自流量傳感器的水流信號(hào)經(jīng)前置電路處理后,轉(zhuǎn)換為一系列可供測(cè)量的電壓脈沖信號(hào),這些脈沖信號(hào)可由單片機(jī)的定時(shí)器進(jìn)行捕獲并由中斷服務(wù)程序?qū)崟r(shí)記錄,經(jīng)過(guò)計(jì)算處理可以準(zhǔn)確轉(zhuǎn)換成用戶的耗水量,進(jìn)而通過(guò)將耗水量轉(zhuǎn)換成用戶所要支付的金額并控制射頻接口模塊對(duì)IC卡進(jìn)行扣款操作。
2.2.2射頻接口模塊
該模塊主要由MFRC500芯片及其天線電路組成。
1)MFRC500簡(jiǎn)介
MFRC500是Philips公司于2000年給出的應(yīng)用于13.56MHz非接觸式通信中高集成讀卡IC系列中的一員。利用了先進(jìn)的調(diào)制和解調(diào)概念,符合ISO/IEC1443標(biāo)準(zhǔn)中TYPE A協(xié)議的規(guī)定,完全集成了在13.56MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議。它具有以下一些特點(diǎn):
·內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線(可達(dá)100mm)。
·接收器部分提供一個(gè)堅(jiān)固而有效的解調(diào)和解碼電路,用于ISO14443A兼容的應(yīng)答信號(hào)。
·數(shù)字部分處理ISO14443A幀和錯(cuò)誤檢測(cè)(奇偶&CRC);此外,它還支持快速CRYPTO1加密算法用于驗(yàn)證MIFARE系列產(chǎn)品。 方便的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設(shè)計(jì)提供了極大的靈活性。
射頻接口模塊的硬件電路設(shè)計(jì)圖如下圖2所示。
圖2 射頻接口模塊硬件電路圖
2)單片機(jī)與MFRC500接口電路設(shè)計(jì)
單片機(jī)與MFRC500的接 口采用 了獨(dú)立 讀/寫(xiě)選通 復(fù)用地 址總線 的接口模式,將MFRC500的并口(P0~P7)與單片機(jī)的P0口連接,片選信號(hào)NCS與P2.7相連,MFRC500的中斷與單片機(jī)的INT1相連,復(fù)位腳 RSTPD與單片機(jī)的P1.2相連。另外該模式下MFRC500的A2、A1、A0分別與GND、VCC、VCC相連,保證 A2、A1、A0的輸入電平分別為低、高、高。
3)天線電路設(shè)計(jì)
天線電路由4個(gè)部分組成,即EMC(電磁兼容性)低通濾波器、接收電路、天線匹配電路和天線。
EMC低通濾波器由L0和C0組成。Mifare系統(tǒng)在13.56MHz頻率下操作。該頻率由一個(gè)石英晶振產(chǎn)生用于驅(qū)動(dòng)MFRC500以及作為驅(qū)動(dòng)天線的13.56MHz能量載波的基頻。這樣除了產(chǎn)生13.56MHz的發(fā)射功率而且會(huì)發(fā)射更高的諧波。國(guó)際EMC條例定義了在廣播頻段中發(fā)射功率的幅值。因此,必須對(duì)輸出信號(hào)進(jìn)行適當(dāng)?shù)臑V波。接收電路由R1、R2、C3、C4組成。使用了內(nèi)部產(chǎn)生的VMID電勢(shì)作為RX腳的輸入電勢(shì)。為了提供一個(gè)穩(wěn)定的參考電壓,還必須在VMID腳接一個(gè)對(duì)地的電容C4。讀卡器的接收部分在RX和VMID腳之間連接了一個(gè)分壓器。天線線圈和分壓器之間使用了一個(gè)串接電容。 EMC低通濾波器和接收電路的元件取值見(jiàn)下表1:
天線匹配電路由C1、C2a、C2b組成,這里設(shè)計(jì)成一個(gè)直接匹配天線的匹配電路,各元件的取值決定于天線的電氣特性和環(huán)境的影響。
對(duì)天線線圈的電感量的精確計(jì)算是不可行的??梢酝ㄟ^(guò)下面的公式來(lái)估算,天線一般設(shè) 計(jì)成環(huán)形或者矩形。
表1 EMC濾波器和接收電路元件的取值
式中,I1為導(dǎo)體環(huán)一圈的長(zhǎng)度;D1為導(dǎo)線直徑或者PCB板上導(dǎo)體的寬度; K為天線形狀因素(環(huán)行天線K=1.07,矩形天線K=1.47);N1為圈數(shù)。
3. 軟件設(shè)計(jì)方案
控制器采用的是Mifare 1 S50型非接觸式IC卡,這里將IC卡設(shè)置成用戶卡和管理員卡兩種。用戶卡即為買水用卡;而管理員用卡用于對(duì)水控器進(jìn)行參數(shù)設(shè)置和讀取消費(fèi)額。管理員卡在使用前要在裝有系統(tǒng)管理軟件的PC機(jī)上進(jìn)行設(shè)置,在IC卡的一個(gè)分區(qū)內(nèi)寫(xiě)有管理員特征碼,用于區(qū)分卡類型。
3.1 水控器總體流程
水控器總體流程圖如圖3所示。
圖3 水控器總體流程圖
系統(tǒng)初始化包括了單片機(jī)的初始化、讀24C01A操作、顯示處理、以及MFRC500初始化。其中讀24C01A操作是為了顯示單價(jià)的需要, MFRC500的初始化即對(duì)MFRC500的內(nèi)部寄存器進(jìn)行設(shè)置。當(dāng)有IC卡靠近讀寫(xiě)器時(shí),先讀取系統(tǒng)識(shí)別碼(判斷該卡是否適用于該系統(tǒng)),然后判斷卡類型并進(jìn)入相對(duì)應(yīng)的用戶卡或管理員卡處理流程。在用戶卡以及管理員卡處理流程中考慮長(zhǎng)期使用可能出現(xiàn)壞卡,因而設(shè)置有寫(xiě)卡累計(jì)次數(shù)限制流程,如果寫(xiě)卡累計(jì)6 次仍不能成功則退出并報(bào)警。
3.2 讀寫(xiě)器與IC卡通訊流程
讀寫(xiě)器與IC卡通訊流程圖如下圖4所示。
圖4讀寫(xiě)器與IC卡通訊流程圖
首先上電對(duì)MFRC500進(jìn)行復(fù)位與初始化,當(dāng)有IC卡靠近讀寫(xiě)器的讀寫(xiě)范圍之內(nèi)時(shí),讀寫(xiě)器向IC卡發(fā)出請(qǐng)求命令,此時(shí)IC卡的ATR(復(fù)位應(yīng)答信息)將啟動(dòng),并將IC卡中的2BIC卡類型傳送給讀寫(xiě)器,建立IC卡與讀寫(xiě)器的第一步通信聯(lián)絡(luò)。如果讀寫(xiě)器天線工作范圍內(nèi)有多張IC卡,防沖突模塊將啟動(dòng)。讀寫(xiě)器首先與每一張卡進(jìn)行通訊,取得每一張卡的序列號(hào),卡的序列號(hào)都是唯一的,根據(jù)IC卡的序列號(hào)來(lái)選定一張IC卡進(jìn)行操作,未被選擇的IC卡處于等待狀態(tài)。序列號(hào)存儲(chǔ)在IC卡的block0中,共5B,其中有1B為序列號(hào)的檢驗(yàn)字節(jié)(CRC碼)。完成了上述兩個(gè)步驟以后,讀寫(xiě)器還必須對(duì)IC卡進(jìn)行選擇,讀寫(xiě)器將收到從被選中的IC卡傳送出的容量字節(jié)(存儲(chǔ)于block0)。當(dāng)讀寫(xiě)器收到這一字節(jié)后,就可以對(duì)IC卡進(jìn)行密碼認(rèn)證操作。非接觸式IC卡的密碼認(rèn)證分為三個(gè)步驟進(jìn)行,稱為三重認(rèn)證,只有三重認(rèn)證通過(guò)以后才可以對(duì)IC卡的這一分區(qū)進(jìn)行讀、寫(xiě)等操作。Mifare1型IC卡共有16個(gè)分區(qū),每個(gè)分區(qū)都可分別設(shè)置各自的密碼,互不干涉。如果改變分區(qū)還必須用該分區(qū)的密鑰重新完成三重認(rèn)證。
4. 結(jié)論
本文介紹了一種非接觸式IC卡節(jié)水控制器的設(shè)計(jì)方案,進(jìn)行了系統(tǒng)方案的整體設(shè)計(jì),并且對(duì)射頻讀寫(xiě)模塊進(jìn)行了較詳細(xì)的設(shè)計(jì),給出了射頻讀寫(xiě)模塊的硬件電路圖,同時(shí)給出了系統(tǒng)的軟件設(shè)計(jì)流程,以及對(duì)電子標(biāo)簽與讀寫(xiě)器的通訊流程進(jìn)行了說(shuō)明。非接觸式IC卡節(jié)水控制器作為構(gòu)成校園一卡通、企業(yè)一卡通系統(tǒng)的一部分,越來(lái)越深入人們的生活,提供了人們對(duì)水資源的利用與管理的自動(dòng)化服務(wù),為人們的生活帶來(lái)了便利。