在设计中编程语言使用了C51,并采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。本系统具有性能优良、稳定可靠的优点。
为适应国家用水制度的改革,研究和利用现代化智能技术对自来水实行自动控制,减轻供水管理部门因“先供水后收费”造成的资金压力,减少每月抄表、收费所带来的麻烦和因收费问题带来的纠纷,用现代科学技术手段改变自来水管理体制的落后现状,势在必行。基于单片机的IC智能水表不但可以提高供水部门的工作效率,而且在技术上为节约用水、合理用水创造了条件,由于这些特点,基于单片机的IC智能水表得到了越来越广泛的应用。
1 总体系统设计
该系统系统硬件电路主要由IC卡读写电路、液晶显示控制电路、电磁阀控制电路、脉冲提取电路、安全保护电路、记忆单元电路、通信接口电路组成,以AT89C51为核心控制芯片,完成整个水表信号的读、写处理,监控水表工作的功能。它能方便地读取IC卡的数据,并控制电磁阀和液晶显示器的工作,同时还可以将水表的数据存入E2ROM进行永久保存并可通过串口送至表外的数据终端,大大地提高了该水表的智能化的功能。系统硬件方框总图如图1所示。
2 硬件组成与原理
硬件设计是整个系统的基础,要考虑的方方面面很多,除了实现模拟路灯控制系统基本功能以外,主要还要考虑如下几个因素:1)系统稳定度;2)器件的通用性或易选购性;3)软件编程的易实现性;4)系统其它功能及性能指标,因此只有合理的硬件设计才能更好的与软件控制相结合,从而达到整体性好,人性化强、可靠性高的优点。
2.1 控制电路
控制电路实质是单片机最小系统。控制电路是系统的核心,考虑到程序的大小选用了AT89C51单片机。它由晶体振荡电路以及轻触按键构成复位电路构成,主要是实现对外围电路的控制功能,使各模块电路正常有序的工作。
晶体震荡电路结合单片机内部的电路,产生单片机所必须的时钟频率,作用是为系统提供基本的时钟信号。
单片机复位电路的作用是使单片机的复位操作使单片机进入初始化状态,本设计中用的是按键电平复位,即当电路已在运行当中时,按下复位键后松开,即能使RST为一段时间的高电平,从而实现复位的操作。
2.2 IC卡读写电路
控制电路实质是单片机最小系统。它主要完成了对射频卡(MIFARE 1卡)的读写操作。H6152读写器对射频卡进行读写后通过串口电平转换电路将RS232电平转换为单片机所识别的TTL电平,从而实现了使用AT89C51单片机来控制射频卡的读写过程。硬件电路由单片机模块、串口电平转换模块和H6152读写模块3部分电路组成。
2.3 液晶显示电路
显示电路用于在人机接口中反馈信息,主要由液晶模块构成。硬件设计中选用了低功耗CMOS技术实现的带KS0108B控制器的GXM12864全点阵图形式液晶,AT89C51的P0口直接与液晶模块的数据总线DB0~DB7相连;P2口的0、1、3、5、6引脚分别和液晶模块的/CSB、/CSA、E、R/W、D/I相连,在单片机程序执行过程中,对它们作相应的控制。通过编程可实现对液晶显示屏的任意位置的显示、滚动显示和反显等功能。
2.4 记忆单元电路
本系统采用美国ATMEL公司的低功耗CMOS串行EEPROM芯片AT24C01是,它内含256x8位存储空间,具有工作电压宽(2.5~5.5 V)、擦写次数多(大于10 000次)、写入速度快(小于10 ms)等特点。利用单片机AT89C51与24C01进行I2C通信,实现对某一地址内数据的读/写校验操作。
2.5 电磁阀控制电路
电磁阀选用脉冲式电磁阀,这种电磁阀在开启时只需在其控制线AB两端加一正向脉冲(幅度DC12 V宽度大于20 ms),水阀一旦开启则会自动保持。当关断时则在AB两端加一反向脉冲,水阀就会关闭。因为这种电磁阀开启后不需给电磁阀持续供电,所以它的功耗非常低,因而特别适合用在IC卡水表中作为水表开启送水或欠费停水的执行单元。电路设计上采用多路模拟开关组合成一组双刀双掷开关,在AT89C51的控制下,将正脉冲或负脉冲加到电磁阀的控制线AB两端。
2.6 其他模块电路
2.6.1 脉冲提取电路
脉冲提取电路,用于提取IC卡水表的计量脉冲。可在原有的老式湿式水表加入磁针和干簧管,磁针随着用水的流动而旋转使得干簧管动作发出开关信号,作为计量信号。也可以利用干式磁传水表已有的开关信号输出,作为计量信号。
2.6.2 安全保护电路
安全保护电路,利用AT89C51可编程的I/O中断口接到水表的外封装上实现保护。使封装完好时I/O线相当于接地,为低电平,一旦封装被非法打开,I/O线就不与地连接,其电平变为高电平,此时CPU将发生安全保护中断,立即关断电磁阀中断供水。这样就能有效地防止私拆或恶意破坏水表的事件发生。
[page]
2.6.3 通信接口电路
通信接口电路,利用AT89C51的串行通信口,选用MAX2338芯片形成485接口电路。外部数据读取设备可通过水表的485接口,将水表的数据读出,实现自动抄表功能。
3 系统软件设计
软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。这里我们选用了移值性好、结构清晰、能进行复杂运算的C语言来实现编程。程序设计中,主要包括IC卡读写模块、液晶显示模块、记忆单元处理模块等几个模块。
3.1 IC卡读写模块
单片机控制卡片读写器H6152,对非接触式IC卡进行读写的程序流程图,如图2所示。
3.2 液晶显示模块
单片机控制液晶显示器件GXM12864,欲显示以用水量和剩余水量的程序流程图如图3所示。
3.3 记忆单元处理模块
本设计利用51单片机与24C01进行I2C通信,实现对某一地址内数据的读/写校验操作。这里假设地址0x02内装的是水表显示的已用和剩余水量的数据。默认是读取其数据,当然也可以设置为其他地址了。其程序流程图如图4所示。
4 结论
本设计通过51单片机控制H6152系列读写模块对Mifarel IC智能卡进行读写操作,控制液晶显示等模块,设计出使用户先买水后用水的一种智能化水表,使水费收取工作迈向自动化。其设计主要包括IC卡读写、液晶显示、记忆单元、电磁阀控制4个模块。
|