给览网 行情 工控仪表

IC卡智能水表的研制

发布日期:2013-04-16 浏览次数 :1086


摘 要:介绍了IC卡智能水表的研制方法,并给出了硬件设计要求和软件设计流程图.

  随着社会的发展,各部门都在提高工作效率.但目前,供水部门水费的征收仍采用传统的方式,已远远不能适应快节奏的现代生活,为解决水费征收效率低、群众意见大的实际情况,我们研制了预付费水表.本文介绍的IC卡预付费水表是以传统水表为母表,用单片机实现控制用水的仪表.该水表的单片机控制电路需在原水表的基础上重新设计控制盒并将其与水阀组装在一起,为了提高IC卡水表的性、可靠性和稳定性,在设计中采用了人性化设计理念.该水表在降低功耗,提高使用寿命,降低成本的同时,不但能实现预付费,还能实现远程控制及信息的远程传输.在其开发研制过程中,我们还针对一些IC卡水表存在的问题,优化了其硬件与软件设计,并采用了Microchip公司新推出的单片机PIC16C72,实现了水表的智能化,使该水表具有自动计数、自动供水断水、自动保存数据、自动告警、限制日用水量等功能.本文主要介绍该IC卡智能水表的软硬件设计方法.

  1 硬件设计

  图1是IC卡智能水表的硬件原理图,主要包括PIC16C72单片机、掉电检测电路、脉冲采样电路、存储器、IC卡接口、阀门控制电路、显示电路和电源电路等.为了降低功耗,芯片全部选用CMOS低功耗器件.下面详细描述关键电路的设计要求.

  1.1 单片机

  PIC16C72是一种带2KB存储器的低电压、高性能的8位单片机,具有低功耗闲置和掉电工作模式.该芯片的主要特性是2.0~6.0V的宽工作电压,其低功耗状态电流小于5μA,自带上电复位电路,内设电子看门狗,配有异步串行通讯口,提供2个定时计数器,全部指令为单字节指令,采用ASIC结构;内部具有程序加密开关,保密性高;一次性编程芯片价格十分低廉,适用于批量生产[1].

  1.2 掉电存储器

  EEPROM电可擦除存储器是系统中的关键电路,它不仅要保证停电时系统所有数据的可靠保存,还要防止程序意外跑飞时造成的RAM区数据丢失,是提高系统可靠性的关键.本系统的EEPROM采用AT93C46,其存储容量为1 024位,内部为128×8位或64×16位.AT93C46为串行三线SPI操作芯片,在时钟时序同步下接收数据口的指令.指令码为9位二进制码,具有读(read)、擦写使能(ewen)、擦除(erase)、写(write)、全擦(eral)、全写(nral)、擦除禁止(ewds)7个指令.该芯片擦写时间快,并有擦写使能保护,可靠性很高,擦写次数达100万次,非常适用于数据量不大的水表系统.图2给出了AT93C46与单片机的接线图[2].

  1.3 IC卡及其接口电路

  本系统的IC卡选用西门子公司生产的SLE4442.该芯片内部设有硬件逻辑判断电路,数据区分为用户区、密码区和存储区等,存储区数据访问需先比较密码,在密码错误4次后芯片自锁,具有很高的安全等级.

  图3为CPU与IC卡的接线图,采用I2C总线形式,支持ISO/7816—3同步传输协议.在实际使用中,为防止插入铁片等异物,UDD应用CPU口单独控制.IC卡存储器可存储用户码、购水量或金额等数据,在每次插入IC卡时,开关S被闭合,通过中断口唤醒单片机并读IC卡,在确认IC卡为合法时,读取其中的购水量并与表内剩余水量相加.这样IC卡就代替了过去人工抄表收费的全部工作[3].

  1.4 显示电路

  本系统为降低功耗,采用LCD显示,而PIC16C72没有驱动LCD的能力,因此,采用了HT1621 LCD驱动专用芯片.该芯片可在静态或动态方式下工作,zui大可驱动128像素,睡眠状态电流小于9μA,与单片机连接只需3个口线.其有关详细技术,可参阅HT1621芯片技术手册.

  1.5 其他电路

  (1)脉冲采样电路.该水表中有机械转轮,干簧管与磁铁配合可完成脉冲采样工作,CPU在测试脉冲时需加软件防抖动程序.

  (2)掉电检测电路.采用HT7039芯片,只需消耗1μA电流就可完成电池失压检测工作.也可使用MAX810等芯片.

  (3)电源电路.本系统采用外接3节5号电池供电,内部备用1.2Ah锂电池.在使用时,当外接电池接好后,系统供水,若外接电池失压,立即关阀,备用电池确保阀门安全关闭.单片机睡眠后静态电流在10μA以下,普通电池可使用1年以上;内部锂电池只在关阀时使用,寿命达10年以上.

  2 软件设计

  本系统软件由主程序、掉电中断程序、脉冲中断程序和IC卡中断程序组成,图4至图7分别为4个程序的流程图.

  主程序主要完成水量判断及关阀操作,平时处于睡眠状态.当表内剩余水量小于5 m3时,表内蜂鸣器发出提示音,以提醒用户剩余水量不多,请速购水;当表内剩余水量为0 m3时,切断阀门,停止供水,直到新的水量被购来为止.从而达到用水必须预先交费的目的,省去了人工抄表收费环节.掉电中断程序使CPU在检测到电池失压后,将RAM区的所有数据写入EEPROM中,以保证下次上电时安全读出.当用户插入IC卡时,IC卡中断程序将读取卡中数据,在对数据的合法性进行判别后,进行购水量的累加,并打开阀门恢复供水.脉冲中断程序是简单的程序,目的是保证水量的正确计算.3个中断程序均可唤醒CPU.主程序被唤醒,执行一次程序后将重新进入睡眠状态.

  3 结语

  (1)应注意降低系统的功耗.可用CPU控制存储器及IC卡电源口,每当读写时才供电,这样不仅可降低功耗,而且可防止在IC卡口插入铁片造成电源短路的情况.

  (2)为防止水阀门长时间不工作造成锈死的情况,可每隔一段时间让CPU自动开关阀一次,以防止阀门生锈.

  (3)为提高系统的可靠性,在程序运行时打开单片机的watchdog,可防止程序跑飞现象.另外,在程序跑飞时RAM区数据可能遭到破坏,应将重要的数据存放到EEPROM中.当程序开始运行时,先从EEPROM中读出数据,再判断其正确性,这样系统的可靠性会大大提高.