摘 要:以MSP430F413作为微控制器,提出了一种接触式IC卡智能水表的设计方案。针对MSP430单片机的低功耗特性和工作原理,设计了一套适应低功耗需求的硬件电路和软件流程。
0引言
随着电子技术、传感器技术的日趋成熟, 实现自来水收费管理的电子化、信息化已成为可能。目前市场上已经出现了各种形式的电子水表。按照抄表的方式主要可以分为网络式和分立式。由于在某些场合需要对旧的水表系统改造,如果采用网络式抄表方式需要进行抄表线路的铺设,这给施工带来很大的问题。而分立式的IC卡水表收费系统则无需考虑这一问题, 这为管理部门和用户提供了极大的便利。基于这一思路我们设计出了基于MSP430的超低功耗接触式IC卡水表。
1系统原理及功能介绍
1。1工作原理
1.1.1 MSP430F413简介
主控芯片MSP430F413采用1.8—3.6V供电,有5种低功耗模式,最低耗电在0.7 μA左右,活动模式耗电在205μA,I/O输入端口的漏电流最大仅50 nA, 从低功耗模式转向活动模式只需6μs,这些特性使得单节2.4Ah的电池可以保证系统正常工作超过6年,达到了业界要求的工作年限标准。同时MSP430F41 3还集成了96段液晶驱动器, 简化了水表的人机界面设计。
1.1.2系统简介
接触式IC卡水表主要由MCU、电源监测、IC卡读写模块、电动阀门、水流传感器、液晶,非易失性存储器、蜂呜报警8个模块组成(见图1)。
图1系统框图
电源监测模块采用HOTEK公司的HT7027A, 当该芯片检测到电源电压低于2.7V时,会触发1个低电平信号,单片机检测到低电平信号时发出报警,并关闭阀门。
水流传感部分采用磁敏元件干簧管。水流带动水表中的磁体旋转,当磁铁靠近干簧管时,干簧管导通,此时单片机会在相应的端口检测到低电平。为了避免重复计数,在水表中安装了3个干簧管,只有当单片机先后检测到3个不同的干簧管导通时才算作1次有效的计数。
当读卡器有IC卡插入时, 卡座上的卡簧常开触点闭合,在单片机的I/O口检测到低电平输入,转入读写卡操作的程序。主要的卡型分为开户卡、用户卡、管理卡、数据采集卡以及清零卡。对于不同权限卡,系统分别作以不同的处理。
1。2系统功能
(1)读卡、写卡, 并根据卡的内容进行开户,上传水表数据、开关阀等操作。
(2)增、减计数以及存储当前的剩余水量和总用水量。
(3)液晶显示。
(4)当计数满足一定条件时进行相应的报警、开关阀动作。
水表使用中剩余水量递减,总用水量递增。当剩余水量小于X 吨时,液晶显示“请购水”,水表自动关阀。此时插入用户卡可重新开启阀门,但此时用户务必尽快购水,当用水量小于y吨时,此时水表会第二次关闭阀门,这时只能凭借充过值的用户卡才能开启阀门。其中Y<X,x,Y的值由出厂时厂家设定。
2硬件设计
2.1外围E PROM以及单片机内部flash
MSP430F413内部集成了256个字节的flash存储器,但由于flash只能按段擦写, 同时为了保证水表的数据能够在单片机出现问题后不会丢失,采用24C02作为外部存储器以确保数据保存的可靠性。水量等重要数据在单片机和外部存储器内均留有备份。为了极大可能的降低水表的功耗, 对于外部的EEPROM我们采用了导通式的供电方式,这一过程通过1个三极管来实现当需要对E PROM进行读写操作时, 通过1个I/O口来控制三极管的导通,从而实现对EEPROM的供电控制。
2.2阀门控制电路
2-2.1阀门电机驱动
对于电机模块, 我们通过控制2个I/O口P6.6和P6.7上的电平高低使得流过电机的电流有正反2个方向,实现直流电机的正反转,如图2所示。
图2电机阀门模块原理图
2-2-2光电传感器在阀门检测上的应用
光电传感器的基本转换原理是将被测参数转换成光信号的变化,然后将光信号作用于光电元件转换成电信号的输出。常用的光电传感器是采用发光二极管作为光源,光源经过透镜聚焦于空间某一点。如果在该点有障碍物,光就照不到光敏二极管上, 电路处于偏置状态,PN结截止,反向电流很小。当没有障碍物遮挡时,光照到光敏二极管上时,PN结附近产生电子— — 空穴对,并在外.电场和内电场的共同作用下,漂移过PN结,产生光电流。此时,光电流与光照强度成正比,光敏二极管处于导通状态。
为了保证单片机可以精确监测阀门的开关状态,我们在控制阀门开关的齿轮上安装了2个光电传感器 齿轮的最大转动角为90度,0度和90度分别对应着开和关2个状态,光电传感器就分别安装在相互垂直的这两端。
利用2个I/O口来检测这两个光电传感器的导通状态。当阀门转到对应的状态上时,对应的I/0口触发1个上升沿的中断信号,从而及时通知单片机切断对直流电机的供电,避免因电机堵转造成对电机的损害,并极大可能的减少系统消耗的能量。
2.3计数电路
2.3.1水流传感器
水流传感器的基本原理是在普通转盘计数的水表中加装干簧管和磁铁,干簧管固定安装在计数转盘附近,永磁铁安装在计数盘(本系统O.O1立方米)位上,当转盘每转1圈,永磁铁经过于簧管1次即在信号端产生1个计量脉冲。
在管道系统中, 如果发生液流瞬变流动,管流的流速、压力等参数均随时间变化。流速突然变化会引起一系列急剧的压力交替升降的水力冲击现象,管道将发生剧烈振动和较大的声响, 这种剧烈的抖动可能造成干簧管簧片在很短时间里,频繁地吸合,发出大量的脉冲。造成计数偏差, 为了避免这种现象的发生,如图3,将3个干簧管分别通过上拉电阻接人单片机的3个不同的I/O口。水流带动中间叶片上的磁体旋转, 当磁体靠近干簧管时,对应的干簧管导通。
图3水流传感器示意图
为了防止因为水的回流引起的多计数,我们在程序中设置了增计数和减计数功能。当水流方向为逆时针时,干簧管的导通次序应该依次为A-B-C-A,反之,当水流方向为顺时针时,导通次序为C-B-A-C。这样我们就可以根据干簧管的导通次序来判断水流的方向。
通过定时器控制,定时中断到来时先拉高P6.0口(如图4所示), 然后检测ABC 3个干簧管的导通状态,例如干簧管A处于导通状态,A口对地短路, 当我们拉高P6.0时,从P6.1检测到的电平信号应该为1个低电平,而P6.2,P6.3检测到的电平信号仍然为高电平。以此来判断是不是要进行计数操作。查询结束后将P6.0口置低,等待下一次的定时器中断到来。
图4计数单元电路及读卡器接口
2.4读卡器接口电路
SLE4428卡是西门子公司下属的Infineon公司生产的接触式逻辑加密存储卡。符合ISO7816标准,具有1 024个字节寻址E PROM,每个字节具有不可恢复的写保护功能。片内具有2个字节的可编程密码保护功能,只有在正确校验PSC后数据才能被改写。
SLE4428卡有8个管脚, 与操作命令有关的是RST复位引脚,CLK时钟输入端,SDA双向数据端。所有的地址,数据和命令都通过SDA端输入输出。为了能够识别是否有卡插入,在单片机上设置了1个[/O口(P6、4)连到读卡器的卡簧(见图4),当读卡器有卡插入时,P6.4口对地短路, 从P6、4口检测到低电平,从而可以判断卡簧是闭合还是分离, 以此来通知单片机是否需要进行读写卡操作。
3软件流程
系统的主要流程见图5。
图5主程序流程图
程序中我们对各个接口模块均采用查询而不是中断的方式进行操作。整个系统中处于等待模式时只有1个定时器中断,定时器的中断时间为0.25S。这使得程序可以在预先设定的范围内跳转,有效避免了中断的嵌套以及可能引起的中断冲突。同时0.25s的中断问隔完全可以满足计数要求,用户插卡后最长需要等待0.25s单片机就可以转入读写卡模块处理。图6为读写卡模块的流程图。
图6读写卡模块程序
为防止单片机在长时间无人坚守的情况下运行异常,我们使用了单片机内部的看门狗模块来监测程序的运行。在每次的定时器中断处理程序中清除看门狗定时器的计数。这样当程序跑飞或陷入死循环时,可以通过看门狗对系统进行复位。
4性能分析及测试
如图6所示, 当系统处于0、25s的睡眠状态时,HT7207A(voltage detector)和单片机消耗电流总和约为3μA。当系统从睡眠中唤醒时,进入100μs的中断处理程序,这期间除MCU进入活动状态外, 还要对部分端IZl进行上拉操作,系统消耗的总电流大约为300μA。
图7 系统功耗图
液晶显示平均耗电20μA, 电机模块运转时消耗电流大约为21 mA。但液晶显示和电机模块只有在读写卡和报警关阀时耗电,且每次读写卡和阀门操作的时间不会超过10s,1个月内一般不会超过1次读写卡操作,其余时间这两个模块均为关闭状态。由于系统中还存在微弱的漏电流影响,实际测得的平均电流大约为3-4 μA。1节2.4Ah的电池至少可以供系统使用6年。
5结束语
本文的设计思路围绕低功耗和高可靠性2个方面,以MSP430F413作为主控芯片, 通过对外围电路的优化,极大程度上降低了水表的功耗,延长了电池的使用寿命。
在软件方面采用查询方式检测外围接口的状态代替以往常用的中断方式,使得程序的流程更加清晰的同时保证了系统的可靠性。
作者简介:作者简介:李采超(1983一),男,硕士研究生,主要从事智能化控制技术的研究;
殳国华(1969一),男,副教授,主要从事电力电子、智能控制方向的研究。
参考文献
沈建华,杨艳琴,瞿骁曙.MSP430系列16位超低功耗单片机原理及应用.北京:电子工业出版社,2004
魏小龙.MSP430系列单片机接口计数及系统设计实例.北京:北京航空航天大学出版社,200