基于MSP430单片机的智能IC卡水表控制器
摘要:介绍了一种以MSP430单片机为控制核心的IC卡水表控制器的设计方案。将微控制器和4442卡技术、I2C总线技术、流量计量技术及低压检测技术等相结合,实现了水表管理的高效率和智能化。详细介绍了该控制器的基本结构及各模块的软硬件设计原理。样机试验表明该智能水表控制器具有功能完善、计量准确及通信可靠等特点。
关键词:IC卡水表;4442卡;I2C总线;MSP430
0 引言
随着IC卡应用的普及,利用IC卡实现“预付费方式”的水费管理成为可能。目前的电子水表按照抄表的方式主要可以分为网络式和分立式。由于在某些场合需要对旧的水表系统改造,如果采用网络式抄表方式需要进行抄表线路的铺设,这给施工带来很大的问题。而分立式的IC卡水表收费系统则无需考虑这一问题,这为管理部门和用户提供了极大的便利。
1 硬件电路设计
本控制器以MSP430单片机为控制核心。MSP430系列单片机是美国TI公司从1996年开始推向市场的一种16位RISC架构、超低功耗的混合信号处理器。电源采用1.8~3.6 V低电压、RAM数据保持方式下耗电仅0.1μA,活动模式下耗电250μA/MIPS,IO口漏电流仅为50 nA(一般单片机为1~10μA)。非常适合水、燃气、热、电表等电池供电设备的设计。单片机系统图如图1所示。系统整体电路方案如图2所示。
1.1 IC卡接口部分电路设计
利用德国西门子SLE 4442卡与单片机进行通信,来完成对水表的控制、用户充值和查看水量等功能。IC卡接口电路便是IC卡与单片机连接的枢纽。本设计可兼容4442卡和T5557卡两种卡片。电路预留了单片机与IC卡的接口。可根据设计需要灵活选择卡片种类。SLE4442卡遵循I2C协议,读写时序与I2C相类似。
一般说来,IC卡只要直接和单片机相连即可以应用,但是为了使设计更加稳定,在IC卡与单片机之间增加一些电阻以达到保护的目的。另外IO口和卡到位检测需要上拉电阻,以保证其可以正常操作。在水表的标准中要求水表要有防静电的功能,所以在IC卡座的设计上,加上TVS管保证在遭受静电后,此IC卡座仍能正常工作。
1.2 E2PROM电路的设计
采用CAT24WC02芯片,它为2 Kb串行E2PROM,与400kHz I2C总线兼容,1.8~6.0 V工作电压范围,低功耗CMOS技术,具有写保护功能,当WP为高电平时进入写保护状态。页写缓冲器、自定时擦写周期为1 000 000编程/擦除周期,可保存数据100年。8脚DIPSOIC或TSSOP封装,温度范围分为商业级、工业级和汽车级。本系统利用存储芯片对水表中的数据进行存储。E2PROM中存储的数据掉电之后不丢失,这样就避免了由于掉电导致的数据丢失,可靠性较高。
1.3 电源检测电路设计
电源检测电路主要是用来检测低压,当电源电压过低的时候,通过低压检测电路检测到,进行相应的操作,避免出现不必要的错误。具体工作原理如图3所示,当PWR_CHECK_EN为高电平时,此电路工作,此时,Q9导通,Q8的基极为低电平,VBAT端一直为高电平,Q8导通,WR_ CHECK脚的电压为R17和R20分压得到。之后,PWR_CHECK端的电压作为MSP430内部ADC的输入端,和1.5 V的电源相比较得到比较结果,确定是否为低压。电容的作用是防止电压突变引起的AD采样错误。PWR_CHECK_EN端口设置主要是为了低功耗设计,低压检测需要一定的时间间隔,当不需要检测的时候此端口置高,以节省功耗。
1.4 脉冲检测电路的设计
MSP430F149单片机最多可以提供1路数字I/O接口,即P1~P7。MSP430单片机的I/O端口有8个管脚。每个I/O管脚都可以独立地设置为输入或者输出方向,并且每个I/O接线都可以被独立地读取或者写入。所有接口的寄存器都可以被独立地置位或者清零。MSP430系列单片机具有丰富的I/O口资源和中断资源,其中P1,P2端口是有中断能力的。本设计中可以利用P1,P2端口的中断能力来实现对脉冲的计量。利用中断来完成计量有利于节省单片机资源。
脉冲检测电路如图4所示。利用4个呈环形均匀分布的干簧管进行脉冲计数,当有磁铁靠近干簧管时,簧片吸合。此时只要将干簧管的一端接地,一端接入单片机的I/O口,将单片机的I/O口设置为中断允许,随着叶轮的转动,基表中的磁铁也跟着转动,转过一圈之后,四个干簧管分别吸合,I/O口通过中断来完成4个计数,这样即可完成脉冲的计数。
2 软件设计
软件主要涉及系统时钟配置、IC卡与单片机通信、低压检测程序、E2PROM相关程序、报警程序、阀门控制程序、液晶显示程序等,这里主要介绍脉冲检测和通信模块的程序设计。
2.1 脉冲检测程序
脉冲检测部分是水表的重要组成部分,主要用作流量的计量,水表的整个换算体系都是以此为基础的,流量汁量是衡量水表性能的重要标志。脉冲检测的原理是:当有磁铁靠近干簧管的时候,干簧管的簧片吸合。根据当四个干簧管分别吸合一次,即表示水流过一圈(在本程序中设定当流过五圈表示1 m3水量),由此可以得到用水量。此时将累计用水量加1,并存入到E2PROM中。具体流程图如图5所示。
2.2 通信模块程序设计
SLE 4442卡主要包括三个存储器:256×8位E2PROM型主存储器(地址0~31为保护数据区、32~255后24字节为应用数据区,该区数据读写不受限制,擦除和写入受加密存储器数据校验结果影响)、32×1位PROM型保护存储器(一次性编程以保护主存储器保护数据区,防止一些固定的标识参数被改动,保护存储器同样受加密存储器数据校验结果的影响)、4×8位E2PROM型加密存储器。读卡和写卡流程如图6和图7所示。
3 结论
本文讨论了以MSP430单片机为控制核心的IC卡智能水表控制器的设计方案,该控制器具有水量计量、换算充值、各种异常的检查等功能,并带有RF和M-Bus抄表的扩展接口。该系统实现了用水收费的电子化和智能化,改变了先用水后收费的不合理状况,促进了用水计量、收费的科学化管理。该装置具有操作简单、低功耗、方便、可靠等特点,具有良好的推广使用前景。
评论