基于PN532的自助收费式饮水机控制系统设计
扫描二维码
随时随地手机看文章
引 言
随着生活节奏的加快及社会化管理的完善,为节约水资源,便于饮水消费的收费管理,自助收费式饮水机的应用也越来越普遍。自助收费式饮水机是在原有饮水机的基础上, 增加用水计量及自动收费功能。常见的自助收费式饮水机有投币式、接触式IC 卡式和非接触式(感应式)IC 卡式。前两种饮水机成本高、故障率高,因而应用较少,感应式 IC 卡饮水机克服了上述缺陷,因而应用较为广泛。
1 总体方案设计
本系统的控制核心为STC11F32XE 单片机,P0 口作为数码管的位选和段选,P1 口作为键盘扫描输入,P2 口作为控制继电器和冷热水指示接口,P3口作为单片机和PN532 通信接口。自助收费式饮水机控制系统需要实现对IC 卡的注册、充值以及计费管理等功能,以实现“先充值、后消费”的收费管理模式,用以解决学校等公共场合饮水机收费管理难和用水浪费的问题。基于PN532 自助收费式饮水机控制系统结构框图如图 1所示。
自助收费式饮水机控制系统包括IC 卡管理系统及饮水机计费控制系统。IC 卡管理系统和饮水机计费控制系统结构框图基本相同,唯一的区别是IC 卡管理系统不包括电磁阀控制电路。IC 卡管理系统实现 IC 卡注册、密码设定与修改、充值等管理功能。传统发卡管理系统大多是通过计算机管理,其优点是升级方便、操作简单、维护方便,缺点是成本较高, 而本设计则基于单片机实现 IC卡管理,具有成本低、免维护等优点。计费控制系统实现对已注册IC卡进行识别、读取卡号、验证卡片密码、冷热水切换、根据纯净水价格与饮水机中水流速更改计费值、显示卡内余额及计费标准等功能。相对而言,本系统设计更有优势。
2 系统部分硬件电路设计
自助收费式饮水机控制系统硬件主要由单片机最小系统、键盘扫描、数码管显示、IC卡读写、电磁阀控制、电源及报警等电路组成。单片机最小系统电路主要由单片机、复位电路及振荡电路等组成。本设计选用宏晶科技的STC11F32XE单片机,该单片机是新一代 8051单片机,其指令代码与 8051完全兼容,其处理速度是普通 8051的 8~12倍。除了具备低功耗和处理速度快的特点外,STC11F32XE还具有较强的抗干扰能力,为饮水机控制系统的稳定性和可靠性创造了条件。另外该单片机可通过ISP(在系统可编程)/IAP(在应用可编程)方式进行程序修改,且具有 32KBFlashROM,1280B SRAM和 29KBE2PROM,便于自助收费式饮水机控制系统数据处理以及密码存储和修改 [1]。考虑到该系统要求的按键较多,包括数字键 0 ~9,及“充值 /更改金额”键“、密码更改”键及“注册”键,故采用 4×4矩阵式按键,以节省I/O资源。
2.1 PN532模块电路
NFC 技术是近距离高频无线电通信技术,它基于无线电射频识别(Radio Frequency Identification,RFID)技术, 其工作原理与 RFID 类似, 都采用电磁感应耦合技术 [2,3]。PN532 芯片是NXP 公司推出的一款低电压、体积小、成本低、高度集成的非接触式读 / 写卡NFC 芯片。它包含 80C51 微控制器内核,工作频率为 13.56 MHz,支持ISO14443A/14443B和ISO18092 协议,最远读写距离可达 10 cm,接收来自天线的信号并对该数据根据 ISO14443 规定的帧格式进行处理 [4]。PN532 的功能框图如图 2 所示。
本系统设 计采用 40 脚的 HVQFN 封装 PN532 芯片。STC11F32XE 单片机通过PN532 芯片完成对卡片内存储器的读写,完成自助收费式饮水机控制系统的充值和收费管理。PN532 复位后通过控制管脚上的逻辑电平识别微控制器指令, PN532 芯片收到STC11F32XE 单片机发送的命令后,根据非接触式射频卡协议格式通过天线及其匹配电路向附近发出一组固定频率的调制信号(13.56 MHz)进行读写卡片。可方便地读写 Mifare1 S50、S70 等卡片,有 HUS(全双工串行总线)、I2C(双线式串行总线)和 SPI(串行总线)三种通信方式可供选择,可与各种类型MCU 进行通信 [5]。本系统设计选用STC11F32XE 作为控制芯片,综合考虑采用 SPI 通信方式较为方便。PN532 模块电路主要由PN532 芯片及其匹配天线和总线接口电路组成[6]。PN532 模块电路如图 3 所示。
2.2 阀门控制电路和显示电路
本设计选用工作电压为DC 12 V 的电磁阀,为使 5 V 单片机驱动12 V电磁阀,系统采用5 V继电器实现电压信号隔离, 并通过继电器动作,实现阀门通断控制。系统采用NPN 三极管驱动 5 V 继电器,通过I/O 口的高低电平来控制继电器的吸合与断开,从而实现电磁阀上电与断电。
考虑到本系统应用在人员多,亮度较高的场所,而数码管显示具有清晰可见,且对外界环境要求低、亮度高、寿命长、成本低、容易编程实现等优点,因此本设计采用四位一体的共阴极数码管作为显示部分。由两片 74HC573 锁存器驱动数码管,采用动态扫描显示方式。为保证显示清晰,需设置合适的数码管显示时间间隔。由于饮水机的消费功能要求数码管即时显示金额,故将显示程序子程序内置于中断子程序。
3 软件设计
为便于程序的调试与修改,程序采用模块化设计方式。本系统软件主要包括 :主程序、PN532 读 / 写卡程序、计费程序、数码管显示程序和键盘扫描等程序。
3.1 主程序设计
IC 卡智能饮水机在工作过程中,程序执行较为复杂,整 个工程中有多个子程序,程序运行时需要调用多个函数,主 要包括键盘扫描、数码管显示、读 / 写卡等函数。如在饮水 机消费功能中,在未检测到有 IC 卡进入射频天线有效范围内 时,数码管只显示扣费标准的工作模式标志。此时主要执行按 键扫描程序和数码管显示程序,并可通过按键进行更改消费 等相关设定;当检测到有 IC 卡进入到射频天线有效范围内时, 将进行卡片验证,卡片验证成功通过之后,将根据具体模式 来进行 IC 卡数据读写操作 ;当 IC 卡取走之后,消费系统将 恢复显示当前模式,继续执行键盘扫描程序。以 IC 卡智能饮 水机系统消费功能为例,其主程序流程图如图 4 所示。
3.2 读 / 写卡程序设计
IC 卡(S50 卡)分为 16 个扇区,每个扇区分为 4 块,即块 0、 块 1、块 2 和块 3。第 0 扇区中的块 0 被用于存放厂商代码且 无法更改,其他每个扇区的块 0、块 1、块 2 均可作为数据块, 块 3 则作为控制块。其中块 3 包括密码 A(6 字节)、存取控制(4 字节)、密码 B(6 字节)。PN532 根据寄存器设置来调制发送 缓冲区数据进而产生发送信号,并以 TX1、TX2 引脚驱动天 线产生电磁波的形式发送,IC 卡采用 RF 场的负载调制进行 响应。同时天线检测到 IC 卡响应信号后,经过天线匹配传送 到 PN532,PN532 内部接收缓冲器对其信号进行检测、解调, 并根据寄存器的设置进行相应处理,再将其数据发送至单片 机 [7]。感应式 IC 卡读写电路的主要功能是对 IC 卡识别、读 取卡片数据、对卡片数据修改等操作。读 / 写卡程序流程图如 图 5 所示。
4 系统测试
本系统设计共 3 类卡片分别为用户卡,具有充值和消费功 能 ;消费更改卡,具有更改饮水机固定消费金额功能 ;母卡, 具有 IC 卡管理器累计充值金额清零功能。
4.1 用户卡功能测试
IC 卡管理器上电后显示累计充值总金额。将用户卡置于 IC 卡管理器感应区,数码管显示卡片余额,按下“充值 / 更改 消费”键后,四位数码管第 4 段均被点亮,提示输入充值金额。 若输入错误,按下取消键即可重新输入,输入完毕后,再次 按下“充值 / 更改消费”键确定充值金额。
饮水机系统上电后显示饮用水价格,饮水机出水有冷热 水之分,可通过冷热水切换键选择,且必须在无卡消费情况 下切换(红灯代表热水,绿灯代表冷水)。选定冷热水后,将 用户卡置于饮水机感应区,数码管显示卡内余额,出水的同 时进行扣费,且实时显示卡内金额。本系统计费通过定时器计 时来实现。扣除金额的计算方法为 :当消费标准为 00.0x 元 / 秒时,即每 1 秒扣除 x 分钱并显示用户卡余额 ;当消费标准为 00.xy 元 / 秒时,每 0.1 秒扣除 x 分钱,且当 1 秒时间到,再 额外扣除 y 分钱。
4.2 更改消费卡功能测试
更改消费和充值操作基本相同,区别是通过消费更改卡 进行修改饮水价格。将更改消费卡置于 IC 卡管理器感应区, 数码管显示当前饮水价格,按下“充值 / 更改消费”键可更改 饮水价格。接着通过按下饮水机的冷热水切换键更改设定目 标,选择更改目标后,将更改消费卡置于饮水机感应区即可 更改固定消费,数码管显示更改后的饮水收费标准。
4.3 母卡功能测试
将母卡置于 IC 卡管理器感应区,IC 卡管理器累计充值 总金额被清零,数码管显示为零。
4.4 其他功能测试
当按下 IC 卡管理器的注册键时,四位数码管第 7 段均 被点亮,提示注册已准备就绪,将新用户卡置于 IC 卡管理器 感应区,即可完成注册,蜂鸣器响一声提示注册完成,并显 示卡片余额。注册完成后可进行下一张新用户卡片注册,若不 需再注册,按下取消键,即可退出注册。
本系统密码为 6 位阿拉伯数字。按下 IC 卡管理器的密码 更改键,四位数码管各段均被点亮,提示进行更改密码操作; 再次按下密码更改键,四位数码管第 4 段均被点亮,提示输 入新密码 ;输入一位数字后,第四位数码管短暂显示所输入的 数值,并立即恢复显示,重复 6 次,密码输入完毕后,数码管 将之前输入的 6 个数字依次显示,最后显示 ok 提示密码修改 完成 ;若密码输入出现错误,可按取消键取消当前设定,继续 执行输入密码操作。
5 结 语
针对学校等公共场合饮水机收费自动化的需要,以 STC11F32XE 为微控制器,PN532 非接触式射频读写卡芯片 为信息采集单元,以 S50 卡为信息载体,结合了 RFID 技术, 设计了基于 PN532 的自助收费式饮水机控制系统,系统包括 IC 卡管理系统及计费控制系统,并对该无线 RFID 读卡系统 的软硬件设计、系统构架和程序流程做了详细介绍,实现了 IC 卡注册、密码修改、充值和用水收费管理等功能。项目完 成后,在某高校宿舍和教室走廊应用本系统,应用结果表明 本系统稳定可靠,便于管理和消费,解决了饮水机收费难和水 资源浪费的问题,提高了师生们的节约意识。