基于PN532的自助收費(fèi)式飲水機(jī)控制系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
隨著生活節(jié)奏的加快及社會(huì)化管理的完善,為節(jié)約水資源,便于飲水消費(fèi)的收費(fèi)管理,自助收費(fèi)式飲水機(jī)的應(yīng)用也越來(lái)越普遍。自助收費(fèi)式飲水機(jī)是在原有飲水機(jī)的基礎(chǔ)上, 增加用水計(jì)量及自動(dòng)收費(fèi)功能。常見的自助收費(fèi)式飲水機(jī)有投幣式、接觸式IC 卡式和非接觸式(感應(yīng)式)IC 卡式。前兩種飲水機(jī)成本高、故障率高,因而應(yīng)用較少,感應(yīng)式 IC 卡飲水機(jī)克服了上述缺陷,因而應(yīng)用較為廣泛。
1 總體方案設(shè)計(jì)
本系統(tǒng)的控制核心為STC11F32XE 單片機(jī),P0 口作為數(shù)碼管的位選和段選,P1 口作為鍵盤掃描輸入,P2 口作為控制繼電器和冷熱水指示接口,P3口作為單片機(jī)和PN532 通信接口。自助收費(fèi)式飲水機(jī)控制系統(tǒng)需要實(shí)現(xiàn)對(duì)IC 卡的注冊(cè)、充值以及計(jì)費(fèi)管理等功能,以實(shí)現(xiàn)“先充值、后消費(fèi)”的收費(fèi)管理模式,用以解決學(xué)校等公共場(chǎng)合飲水機(jī)收費(fèi)管理難和用水浪費(fèi)的問題。基于PN532 自助收費(fèi)式飲水機(jī)控制系統(tǒng)結(jié)構(gòu)框圖如圖 1所示。
自助收費(fèi)式飲水機(jī)控制系統(tǒng)包括IC 卡管理系統(tǒng)及飲水機(jī)計(jì)費(fèi)控制系統(tǒng)。IC 卡管理系統(tǒng)和飲水機(jī)計(jì)費(fèi)控制系統(tǒng)結(jié)構(gòu)框圖基本相同,唯一的區(qū)別是IC 卡管理系統(tǒng)不包括電磁閥控制電路。IC 卡管理系統(tǒng)實(shí)現(xiàn) IC 卡注冊(cè)、密碼設(shè)定與修改、充值等管理功能。傳統(tǒng)發(fā)卡管理系統(tǒng)大多是通過(guò)計(jì)算機(jī)管理,其優(yōu)點(diǎn)是升級(jí)方便、操作簡(jiǎn)單、維護(hù)方便,缺點(diǎn)是成本較高, 而本設(shè)計(jì)則基于單片機(jī)實(shí)現(xiàn) IC卡管理,具有成本低、免維護(hù)等優(yōu)點(diǎn)。計(jì)費(fèi)控制系統(tǒng)實(shí)現(xiàn)對(duì)已注冊(cè)IC卡進(jìn)行識(shí)別、讀取卡號(hào)、驗(yàn)證卡片密碼、冷熱水切換、根據(jù)純凈水價(jià)格與飲水機(jī)中水流速更改計(jì)費(fèi)值、顯示卡內(nèi)余額及計(jì)費(fèi)標(biāo)準(zhǔn)等功能。相對(duì)而言,本系統(tǒng)設(shè)計(jì)更有優(yōu)勢(shì)。
2 系統(tǒng)部分硬件電路設(shè)計(jì)
自助收費(fèi)式飲水機(jī)控制系統(tǒng)硬件主要由單片機(jī)最小系統(tǒng)、鍵盤掃描、數(shù)碼管顯示、IC卡讀寫、電磁閥控制、電源及報(bào)警等電路組成。單片機(jī)最小系統(tǒng)電路主要由單片機(jī)、復(fù)位電路及振蕩電路等組成。本設(shè)計(jì)選用宏晶科技的STC11F32XE單片機(jī),該單片機(jī)是新一代 8051單片機(jī),其指令代碼與 8051完全兼容,其處理速度是普通 8051的 8~12倍。除了具備低功耗和處理速度快的特點(diǎn)外,STC11F32XE還具有較強(qiáng)的抗干擾能力,為飲水機(jī)控制系統(tǒng)的穩(wěn)定性和可靠性創(chuàng)造了條件。另外該單片機(jī)可通過(guò)ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程)方式進(jìn)行程序修改,且具有 32KBFlashROM,1280B SRAM和 29KBE2PROM,便于自助收費(fèi)式飲水機(jī)控制系統(tǒng)數(shù)據(jù)處理以及密碼存儲(chǔ)和修改 [1]??紤]到該系統(tǒng)要求的按鍵較多,包括數(shù)字鍵 0 ~9,及“充值 /更改金額”鍵“、密碼更改”鍵及“注冊(cè)”鍵,故采用 4×4矩陣式按鍵,以節(jié)省I/O資源。
2.1 PN532模塊電路
NFC 技術(shù)是近距離高頻無(wú)線電通信技術(shù),它基于無(wú)線電射頻識(shí)別(Radio Frequency Identification,RFID)技術(shù), 其工作原理與 RFID 類似, 都采用電磁感應(yīng)耦合技術(shù) [2,3]。PN532 芯片是NXP 公司推出的一款低電壓、體積小、成本低、高度集成的非接觸式讀 / 寫卡NFC 芯片。它包含 80C51 微控制器內(nèi)核,工作頻率為 13.56 MHz,支持ISO14443A/14443B和ISO18092 協(xié)議,最遠(yuǎn)讀寫距離可達(dá) 10 cm,接收來(lái)自天線的信號(hào)并對(duì)該數(shù)據(jù)根據(jù) ISO14443 規(guī)定的幀格式進(jìn)行處理 [4]。PN532 的功能框圖如圖 2 所示。
本系統(tǒng)設(shè) 計(jì)采用 40 腳的 HVQFN 封裝 PN532 芯片。STC11F32XE 單片機(jī)通過(guò)PN532 芯片完成對(duì)卡片內(nèi)存儲(chǔ)器的讀寫,完成自助收費(fèi)式飲水機(jī)控制系統(tǒng)的充值和收費(fèi)管理。PN532 復(fù)位后通過(guò)控制管腳上的邏輯電平識(shí)別微控制器指令, PN532 芯片收到STC11F32XE 單片機(jī)發(fā)送的命令后,根據(jù)非接觸式射頻卡協(xié)議格式通過(guò)天線及其匹配電路向附近發(fā)出一組固定頻率的調(diào)制信號(hào)(13.56 MHz)進(jìn)行讀寫卡片??煞奖愕刈x寫 Mifare1 S50、S70 等卡片,有 HUS(全雙工串行總線)、I2C(雙線式串行總線)和 SPI(串行總線)三種通信方式可供選擇,可與各種類型MCU 進(jìn)行通信 [5]。本系統(tǒng)設(shè)計(jì)選用STC11F32XE 作為控制芯片,綜合考慮采用 SPI 通信方式較為方便。PN532 模塊電路主要由PN532 芯片及其匹配天線和總線接口電路組成[6]。PN532 模塊電路如圖 3 所示。
2.2 閥門控制電路和顯示電路
本設(shè)計(jì)選用工作電壓為DC 12 V 的電磁閥,為使 5 V 單片機(jī)驅(qū)動(dòng)12 V電磁閥,系統(tǒng)采用5 V繼電器實(shí)現(xiàn)電壓信號(hào)隔離, 并通過(guò)繼電器動(dòng)作,實(shí)現(xiàn)閥門通斷控制。系統(tǒng)采用NPN 三極管驅(qū)動(dòng) 5 V 繼電器,通過(guò)I/O 口的高低電平來(lái)控制繼電器的吸合與斷開,從而實(shí)現(xiàn)電磁閥上電與斷電。
考慮到本系統(tǒng)應(yīng)用在人員多,亮度較高的場(chǎng)所,而數(shù)碼管顯示具有清晰可見,且對(duì)外界環(huán)境要求低、亮度高、壽命長(zhǎng)、成本低、容易編程實(shí)現(xiàn)等優(yōu)點(diǎn),因此本設(shè)計(jì)采用四位一體的共陰極數(shù)碼管作為顯示部分。由兩片 74HC573 鎖存器驅(qū)動(dòng)數(shù)碼管,采用動(dòng)態(tài)掃描顯示方式。為保證顯示清晰,需設(shè)置合適的數(shù)碼管顯示時(shí)間間隔。由于飲水機(jī)的消費(fèi)功能要求數(shù)碼管即時(shí)顯示金額,故將顯示程序子程序內(nèi)置于中斷子程序。
3 軟件設(shè)計(jì)
為便于程序的調(diào)試與修改,程序采用模塊化設(shè)計(jì)方式。本系統(tǒng)軟件主要包括 :主程序、PN532 讀 / 寫卡程序、計(jì)費(fèi)程序、數(shù)碼管顯示程序和鍵盤掃描等程序。
3.1 主程序設(shè)計(jì)
IC 卡智能飲水機(jī)在工作過(guò)程中,程序執(zhí)行較為復(fù)雜,整 個(gè)工程中有多個(gè)子程序,程序運(yùn)行時(shí)需要調(diào)用多個(gè)函數(shù),主 要包括鍵盤掃描、數(shù)碼管顯示、讀 / 寫卡等函數(shù)。如在飲水 機(jī)消費(fèi)功能中,在未檢測(cè)到有 IC 卡進(jìn)入射頻天線有效范圍內(nèi) 時(shí),數(shù)碼管只顯示扣費(fèi)標(biāo)準(zhǔn)的工作模式標(biāo)志。此時(shí)主要執(zhí)行按 鍵掃描程序和數(shù)碼管顯示程序,并可通過(guò)按鍵進(jìn)行更改消費(fèi) 等相關(guān)設(shè)定;當(dāng)檢測(cè)到有 IC 卡進(jìn)入到射頻天線有效范圍內(nèi)時(shí), 將進(jìn)行卡片驗(yàn)證,卡片驗(yàn)證成功通過(guò)之后,將根據(jù)具體模式 來(lái)進(jìn)行 IC 卡數(shù)據(jù)讀寫操作 ;當(dāng) IC 卡取走之后,消費(fèi)系統(tǒng)將 恢復(fù)顯示當(dāng)前模式,繼續(xù)執(zhí)行鍵盤掃描程序。以 IC 卡智能飲 水機(jī)系統(tǒng)消費(fèi)功能為例,其主程序流程圖如圖 4 所示。
3.2 讀 / 寫卡程序設(shè)計(jì)
IC 卡(S50 卡)分為 16 個(gè)扇區(qū),每個(gè)扇區(qū)分為 4 塊,即塊 0、 塊 1、塊 2 和塊 3。第 0 扇區(qū)中的塊 0 被用于存放廠商代碼且 無(wú)法更改,其他每個(gè)扇區(qū)的塊 0、塊 1、塊 2 均可作為數(shù)據(jù)塊, 塊 3 則作為控制塊。其中塊 3 包括密碼 A(6 字節(jié))、存取控制(4 字節(jié))、密碼 B(6 字節(jié))。PN532 根據(jù)寄存器設(shè)置來(lái)調(diào)制發(fā)送 緩沖區(qū)數(shù)據(jù)進(jìn)而產(chǎn)生發(fā)送信號(hào),并以 TX1、TX2 引腳驅(qū)動(dòng)天 線產(chǎn)生電磁波的形式發(fā)送,IC 卡采用 RF 場(chǎng)的負(fù)載調(diào)制進(jìn)行 響應(yīng)。同時(shí)天線檢測(cè)到 IC 卡響應(yīng)信號(hào)后,經(jīng)過(guò)天線匹配傳送 到 PN532,PN532 內(nèi)部接收緩沖器對(duì)其信號(hào)進(jìn)行檢測(cè)、解調(diào), 并根據(jù)寄存器的設(shè)置進(jìn)行相應(yīng)處理,再將其數(shù)據(jù)發(fā)送至單片 機(jī) [7]。感應(yīng)式 IC 卡讀寫電路的主要功能是對(duì) IC 卡識(shí)別、讀 取卡片數(shù)據(jù)、對(duì)卡片數(shù)據(jù)修改等操作。讀 / 寫卡程序流程圖如 圖 5 所示。
4 系統(tǒng)測(cè)試
本系統(tǒng)設(shè)計(jì)共 3 類卡片分別為用戶卡,具有充值和消費(fèi)功 能 ;消費(fèi)更改卡,具有更改飲水機(jī)固定消費(fèi)金額功能 ;母卡, 具有 IC 卡管理器累計(jì)充值金額清零功能。
4.1 用戶卡功能測(cè)試
IC 卡管理器上電后顯示累計(jì)充值總金額。將用戶卡置于 IC 卡管理器感應(yīng)區(qū),數(shù)碼管顯示卡片余額,按下“充值 / 更改 消費(fèi)”鍵后,四位數(shù)碼管第 4 段均被點(diǎn)亮,提示輸入充值金額。 若輸入錯(cuò)誤,按下取消鍵即可重新輸入,輸入完畢后,再次 按下“充值 / 更改消費(fèi)”鍵確定充值金額。
飲水機(jī)系統(tǒng)上電后顯示飲用水價(jià)格,飲水機(jī)出水有冷熱 水之分,可通過(guò)冷熱水切換鍵選擇,且必須在無(wú)卡消費(fèi)情況 下切換(紅燈代表熱水,綠燈代表冷水)。選定冷熱水后,將 用戶卡置于飲水機(jī)感應(yīng)區(qū),數(shù)碼管顯示卡內(nèi)余額,出水的同 時(shí)進(jìn)行扣費(fèi),且實(shí)時(shí)顯示卡內(nèi)金額。本系統(tǒng)計(jì)費(fèi)通過(guò)定時(shí)器計(jì) 時(shí)來(lái)實(shí)現(xiàn)??鄢痤~的計(jì)算方法為 :當(dāng)消費(fèi)標(biāo)準(zhǔn)為 00.0x 元 / 秒時(shí),即每 1 秒扣除 x 分錢并顯示用戶卡余額 ;當(dāng)消費(fèi)標(biāo)準(zhǔn)為 00.xy 元 / 秒時(shí),每 0.1 秒扣除 x 分錢,且當(dāng) 1 秒時(shí)間到,再 額外扣除 y 分錢。
4.2 更改消費(fèi)卡功能測(cè)試
更改消費(fèi)和充值操作基本相同,區(qū)別是通過(guò)消費(fèi)更改卡 進(jìn)行修改飲水價(jià)格。將更改消費(fèi)卡置于 IC 卡管理器感應(yīng)區(qū), 數(shù)碼管顯示當(dāng)前飲水價(jià)格,按下“充值 / 更改消費(fèi)”鍵可更改 飲水價(jià)格。接著通過(guò)按下飲水機(jī)的冷熱水切換鍵更改設(shè)定目 標(biāo),選擇更改目標(biāo)后,將更改消費(fèi)卡置于飲水機(jī)感應(yīng)區(qū)即可 更改固定消費(fèi),數(shù)碼管顯示更改后的飲水收費(fèi)標(biāo)準(zhǔn)。
4.3 母卡功能測(cè)試
將母卡置于 IC 卡管理器感應(yīng)區(qū),IC 卡管理器累計(jì)充值 總金額被清零,數(shù)碼管顯示為零。
4.4 其他功能測(cè)試
當(dāng)按下 IC 卡管理器的注冊(cè)鍵時(shí),四位數(shù)碼管第 7 段均 被點(diǎn)亮,提示注冊(cè)已準(zhǔn)備就緒,將新用戶卡置于 IC 卡管理器 感應(yīng)區(qū),即可完成注冊(cè),蜂鳴器響一聲提示注冊(cè)完成,并顯 示卡片余額。注冊(cè)完成后可進(jìn)行下一張新用戶卡片注冊(cè),若不 需再注冊(cè),按下取消鍵,即可退出注冊(cè)。
本系統(tǒng)密碼為 6 位阿拉伯?dāng)?shù)字。按下 IC 卡管理器的密碼 更改鍵,四位數(shù)碼管各段均被點(diǎn)亮,提示進(jìn)行更改密碼操作; 再次按下密碼更改鍵,四位數(shù)碼管第 4 段均被點(diǎn)亮,提示輸 入新密碼 ;輸入一位數(shù)字后,第四位數(shù)碼管短暫顯示所輸入的 數(shù)值,并立即恢復(fù)顯示,重復(fù) 6 次,密碼輸入完畢后,數(shù)碼管 將之前輸入的 6 個(gè)數(shù)字依次顯示,最后顯示 ok 提示密碼修改 完成 ;若密碼輸入出現(xiàn)錯(cuò)誤,可按取消鍵取消當(dāng)前設(shè)定,繼續(xù) 執(zhí)行輸入密碼操作。
5 結(jié) 語(yǔ)
針對(duì)學(xué)校等公共場(chǎng)合飲水機(jī)收費(fèi)自動(dòng)化的需要,以 STC11F32XE 為微控制器,PN532 非接觸式射頻讀寫卡芯片 為信息采集單元,以 S50 卡為信息載體,結(jié)合了 RFID 技術(shù), 設(shè)計(jì)了基于 PN532 的自助收費(fèi)式飲水機(jī)控制系統(tǒng),系統(tǒng)包括 IC 卡管理系統(tǒng)及計(jì)費(fèi)控制系統(tǒng),并對(duì)該無(wú)線 RFID 讀卡系統(tǒng) 的軟硬件設(shè)計(jì)、系統(tǒng)構(gòu)架和程序流程做了詳細(xì)介紹,實(shí)現(xiàn)了 IC 卡注冊(cè)、密碼修改、充值和用水收費(fèi)管理等功能。項(xiàng)目完 成后,在某高校宿舍和教室走廊應(yīng)用本系統(tǒng),應(yīng)用結(jié)果表明 本系統(tǒng)穩(wěn)定可靠,便于管理和消費(fèi),解決了飲水機(jī)收費(fèi)難和水 資源浪費(fèi)的問題,提高了師生們的節(jié)約意識(shí)。