摘要:为适应校园智能化管理发展趋势,文中介绍了一种基于非接触式IC卡的智能水控器设计方案。该设计通过对STC11F16XE单片机、MF RC500读卡芯片、双干簧管传感器、L9110电机驱动芯片等器件的综合运用,可以实现刷卡流水,并能按流量实时扣费功能,从而有效提高学生节水意识。文中重点阐述了该智能水控器的硬件电路设计和软件思路。实验结果表明,该设计方案可行,系统运行稳定,可以满足计量准确要求。
关键词:非接触式IC卡;智能水控器;STC单片机;MF RC500
0 引言
随着社会经济的发展,国民经济依赖水资源的程度越来越高,而水资源紧缺却日益严重。在校园内,当代学生又大多数缺乏独立生活的能力,对能源的节约意识不够强,常会出现公共用水浪费现象。因此如何既能保障学生的正常用水,同时又避免不必要的浪费,已经成为学校后勤管理服务所关注的焦点。本文研究的基于非接触式IC卡智能水控器既可以有效提高学生的节水意识,同时又能适应目前校园智能化管理的发展趋势。
1 智能水控器原理
非接触式IC卡智能水控器以射频识别技术为核心,这里非接触式IC卡采用的是PHILIPS公司的Mifare 1卡。系统工作时,其智能水控器的内部专用读卡芯片相连的天线线圈会不断向外发射一组13.56MHz固定频率的电磁波,当Mifare 1卡靠近时,卡内的LC串联谐振电路产生共振,从而使电容充电而产生电荷。当电容充电达到2V时,该电容就作为电源为卡上的其他电路提供工作电压,这样就可将卡内数据发射出去或接收水控器的数据并保存。
智能水控器应用于已采用校园一卡通系统的学校,安装在有水龙头流水的场所。当用户将卡放置到水控器卡感应区,读卡芯片就会获取卡上的信息,并将相关数据发送回单片机,由单片机控制数码管显示用户余额,再对余额进行判断看是否大于单位扣费金额,若余额足够则控制电磁阀打开,出水,流量传感器将流经的水转换成电脉冲信号输入单片机,之后单片机通过预设费率将用水量转换成金额并进行扣费,数码管动态实时显示用户当前金额。当卡拿走后,单片机自动关闭电磁阀,停止供水,水控器随即进入待机状态,仅显示当前时间和水温。卡消费信息可通过上位机软件发送指令来查询。
2 智能水控器硬件设计
根据功能设计要求,智能水控器硬件电路主要包括主控模块、射频模块、电磁阀控制模块、流量计量模块、显示模块等。智能水控器硬件结构框图如图1所示。
2.1 主控模块
主控模块由单片机及其外围电路组成。通过综合考虑存储器容量、I/O口数量、开发费用等因素,本设计中的单片机芯片选择了宏晶科技公司开发的8位微处理器STC11F16XE。STC11F16XE指令代码完全兼容传统8051,其速度快8-12倍,且价格低。这种处理器的片内有16kbytes的可反复擦写100000次以上的FLASH只读程序存储器,足够装载程序,无需拓展。内含1280字节RAM,有32k字节EEPROM,可以保存系统需要的特定参数,即使掉电后也能操持数据,因此大大减少了电路的复杂性和降低开发成本。片上最多有40个I/O,每个I/O口驱动能力均可达到20mA,可以满足系统多模块接口要求。其内部电路还引进了看门狗功能,抗干扰能力强。
STC11F16XE芯片周围联系着射频、电磁阀控制、流量计量、温度传感、时钟、显示、通信等功能模块,是整个水控系统电路的控制核心。单片机端口与其它模块的接口电路如图2所示。
2.2 射频模块
与Mifare 1卡配套对应读写装置有卡读写组件和专用读卡芯片。因产品小型化设计要求,只考虑采用读卡芯片。由于本设计采用并行接口进行数据传送,因此将射频模块读卡芯片确定为MF RC500 。
MF RC500是一个小型的、最大操作距离达10厘米的Mifare卡射频基站。其功能包括调制、解调、产生射频信号、安全管理和防冲撞机制。MFRC500内部结构可分为射频区和接口区:射频区内含调制解调器和电源供电电路,直接与天线连接;接口区有与单片机相连的端口,还含有与射频区相连的收/发器、64B的数据缓冲器、存放3套寄存器初始化文件的EEPROM、存放16套密钥的只写存储器以及经过三次验证和数据加密的密码机制、防冲撞处理的防冲撞模块和控制单元。
MFRC500根据其寄存器的设定对发送数据进行调制,首先得到发送信号,之后通过由天线驱动引脚TX1和TX2驱动的天线以13.56MHz的电磁波形式发送出去。与此同时,在其射频范围内的Mifare卡采用RF场的负载调制进行响应。天线接收到卡片的响应信号后,再经过天线匹配电路送到MFRC500的接收引脚RX,最后由芯片内部的接收器对接收信号进行解调、译码,并根据寄存器的设定进行处理后,将数据发送到并行接口D0-D7由单片机读取。
2.3 电磁阀控制模块
本设计中采用5V双稳态电磁阀对水流通断进行控制。由于单片机I/O口驱动能力有限,且电磁阀会对单片机产生较大干扰,需增加驱动电路。考虑到使用组合三极管,但这种由分立元件组成的电路制作麻烦,且成功率不高,因此采用了集成芯片L9110,从而使外围器件成本降低,提高了整机可靠性。L9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,其电源电压范围较宽,为2.5V-12V,每个通道具有800mA的连续电流输出能力,峰值电流能力可达1.5-2.0A。它与TTL/CMOS输出电平相兼容,具有良好的抗干扰性,可直接连接单片机。
2.4 流量计量模块
本设计流量计量模块主要是在普通水表上加装传感器件,并进行流量信号的采集和处理。经对比,光电传感器和霍尔传感器虽然灵敏度高又无触点,但功耗都较高,增加系统供电复杂性,且易受电源干扰。而干簧管传感器仅在接触的瞬间有极小的消耗,但其物理结构存在着缺陷,会影响数据采集精度。故采用了双干簧管传感器,两干簧管以一定角度安装在水表计数转盘附近,磁铁安装在水表计数盘上。当计数盘转动,磁铁旋转靠近干簧管时,簧片触点吸合;磁铁远离时,簧片触点断开,发出一脉冲信号。当计数盘旋转一周,两干簧管均有一脉冲信号,且两信号相位差与两干簧管安装的角度一致,此时,单片机累记一次水量。这种设计可以有效减少因供水管道问题引起的计量误差,且可以防止强磁干扰智能水控器正常工作。
2.5 显示模块
本系统待机状态下显示当前时间和水温,刷卡用水时需要显示消费余额和温度,因为这些参数都仅需要显示数字,从产品成本角度考虑,只需要采用LED数码管显示即可。设计采用八位七段数码管显示,待机时数码管前两位用于显示当前水温,后六位用于显示时间;刷卡工作时前两位用于显示当前水温,而后六位为当前IC卡的余额,可精确到分。另外还需要四个按键对时间进行调整,确保走时准确。为节省单片机端口,设计中采用了串行通讯方式驱动专门的数码管芯片HD7279。该芯片是一片具有串行接口的,无需外围元件便可直接驱动8位共阴式数码管以及扫描64键矩阵键盘(或64只独立LED)的智能显示驱动芯片。其内部含有BCD译码器,可直接接受BCD码,并且具有识别多种指令的能力,如消隐、闪烁、左移、右移,段寻址等。
2.6 时钟模块
时钟模块选择了典型串行实时时钟芯片DS1302,温度检测模块采用了DS18B20集成温度传感器,通信模块采用RS232串行通讯实现水控器与上位机之间通信,报警模块电路主要由PNP三极管和蜂鸣器构成,由于篇幅有限,这里不再详述。
3 智能水控器软件设计
确定硬件电路后,必须有软件的支持才能实现功能运行,而且软件的设计在很大程度上直接影响智能水控器运行的性能。本设计采用C51语言编写程序,该程序按功能设计要求,采用模块化设计方法,包括主程序,卡操作功能程序,数据显示功能程序,电磁阀控制功能程序,消费处理功能程序,数据存储功能程序,数据上传功能程序。而每个功能程序由若干函数组成。其中主程序包括了单片机的初始化,显示缓存,MF RC500初始化等系统初始化程序,主程序流程图如图3所示。
4 智能水控器技术参数
根据本文的设计研制出的样机除实现功能外,还参考中华人民共和国城镇建设行业标准CJ/T133—2001《IC卡冷水水表》,将样机放置于温度为5℃-110℃,相对湿度为5%-75%,大气压力为86kPa-106kPa的试验环境中进行了主要参数测试。
测试显示:非接触式IC卡智能水控器可以连续正常运行,正常工作电压值为9V,静态功耗约为0.5W,最大的动态功耗将近1W,与基表显示误差小于±0.5%。
5 结束语
本文主要论述了非接触式IC卡智能水控器的设计。按照智能水控器设计要求,采用STC11F16XE为主控芯片,结合射频读卡芯片MFRC500及电磁阀控制等外围接口电路完成整体设计。这种样机可正常显示当前时间、水温,并能正常进行用水消费控制,还可将用户消费信息保存,并上传至上位机。技术参数测试结果表明:该设计方案可行,系统运行稳定,可以满足计量准确要求。