新闻中心

EEPW首页>嵌入式系统>设计应用> 非接触式IC卡工业水表及其售水系统设计

非接触式IC卡工业水表及其售水系统设计

作者: 时间:2013-08-03 来源:网络 收藏


3.1.2 基表(见图4)。


图4 基表电路描述图

(1) 水量记录:水表中有机械转轮,通过干簧管与磁铁配合完成采样;内部提供了强磁场干扰的判别处理,再加之基表埋入地下,基本可以忽略外部环境的影响。

(2) 稳压电源及反馈电路:正常情况下,基表部分的电池通过刷机的12V 电源充电。它为基表部分的MCU 和阀门电机供电。考虑到电路中同时出现三种电压:3.3V、5V、12V,若干电容被使用,用来去除高频、低频毛刺,保证各电源不受污染以及信号的有效性。稳压电源电路的设计与刷机部分类似。基表部分使用了12V - 7.0Ah/20HR 的可充点蓄电池,电池特性说明,实际电压随电量的有效值同步变化。反馈电路采样电池电压,并把实时采样结果返回给MCU,MCU 根据采样结果判断电池电量是否足够维持当前系统的正常工作,并作出相应处理。

(3) 阀门驱动及反馈电路:两条电源线分别接阀门电机的两端,电机工作的条件是两端有电压差;继电器配合采样电路,准确、及时地为电机提供接通、切断电源的信号。实验证明阀门驱动及反馈信号电路均能支持正常工作。

(4) MCU:微处理器选用Freescale 公司的8 位MCU

3.2 软件设计

3.2.1 刷机部分。

由以下5 部分组成。

(1) 稳压电源及反馈:程序中主要以中断的方式判断220V 电源的供电情况是否正常,但MCU 在工作时,会有其他中断和需要关闭中断进行长时间操作的程序块,因此存在丢失220V 中断的情况;程序实现时,结合查询方式,很好的避免了上述意外情况。在确认市电断电后,系统报警,错误指示灯闪烁。

(2) 汉字点阵LCD:该LCD 提供了汉字与ASCII 字符的显示。

(3) IC 卡读写卡模块:为了保证一户一卡、一表一卡,IC 卡中添加了密码与特定用户信息,刷卡过程中,所有信息都吻合时才可以对其读写;从另一个角度来讲,仅有系统设计人员才能更改其中的内容。

(4) MCU:系统采用消息驱动的编程方式,上述任何一部分在发生或需要的时候,相应功能模块才会被执行;同时考虑到各模块及其他程序执行时间的先后顺序,系统给出了有效合理的安排。

(5) 串行通信:与阀门每隔约2.3 秒进行一次通信握手,如有通信线故障,系统会立刻报警并给出提示。

3.2.2 基表部分。

基表由以下六部分组成。

(1) 时钟模块:该模块有两个用途:

①为防止阀门锈蚀,系统会定期转动阀门,该时间间隔是15 天;
②当部分的电源转换器不能为基表电池充电,并且电池本身电量降到某一低限时,MCU 也要记时,并在一小时后关闭阀门。

(2) 水量记录:水量记录以中断的方式触发,并及时给予处理。记录信号的接收,需要考虑到了以下几点:①接收的方法:以低电平触发,一个下降沿代表一个记录脉冲,软件上为正确判断,使用两个引脚并以互补的方式接收下降沿,保证不丢失和添加任何一个记录信号;②屏蔽外接干扰:基表埋入地下,可以避免绝大多数干扰,另外自身提供了磁干扰的硬件判断的电路,软件上以中断方式触发,一旦发现异常,阀门关闭。工业水表的口径较大,单个记录信号所需要的时间非常段,因此在单位时间内会有若干记录中断信号;在其他处理时间比较长的过程中,肯定会出现记录信号与此过程冲突的现象;基于上述两种考虑,为了保证在刷卡时不丢失记录信号,程序除了在中断中及时处理记录信号外,必须还要支持该信号的累加,而后再处理的记录方法。

(3) 水量计算:所有关于水量的计算、存储都是以BCD 码为基础。程序上,提供了多位BCD 码的加、减和比较的子程序,具有很好的通用性。

(4) 电源模块:中断与查询相结合的方式判断电池的供电情况,功能与刷卡机部分电源模块相同。

(5) 阀门驱动及反馈模块:阀门设置了三种状态:堵塞、打滑、正常,程序根据开、关阀过程对阀门状态做出判断,在阀门动作失败后,程序会再一次尝试其他方法完成上述动作,并记录最终的状态。

(6) MCU:系统同样采用消息驱动的编程模式;基表部分MCU 的RAM 内存放着当前用户的水量信息,记录信号累加到RAM,并定期写入FLASH;水表的水量和用户信息存在于FLASH 内,掉电后数据不会丢失,可以保存十年以上的时间。基表部分MCU 内程序的特殊考虑,使其具有很强的独立性,并表现在这样两个方面:①任何一个刷卡机都可以与用户特定的基表匹配;②基表可以脱离刷卡机单独工作。考虑到用户刷卡过程中交互的数据量大,操作时间相对比较长的问题,MCU 在刷卡机与基表的通信和基表数据的更新上做了许多保护性措施,可在刷卡结束后判断是否刷卡成功,支持失败后的可以重新刷卡。基表部分的MUP 在初次上电并进入正常工作后,MCU 内RAM 和FLASH 内记录了用户水量等重要信息,绝不允许其掉电,原则上不会出现掉电现象,但为了避免不可能中的万一,系统还是设置了冷热复位的判断和处理,该操作既可以保证RAM 区水量正确,更保证了水量的一致性,也即累计用水、剩余水量、本次购水之间的数值关系。

3.2.3 监控程序

Freescale 公司的是刚刚推出的一款具有16 位单片机性能的8 位单片机。它的封装形式从传统MCU 的DIP 转为LQFP,焊接时带来了许多困难,不适合取下重新写入程序。因此,在开发前编写了GB32 的监控程序及其在线编程系统,通过串口便可方便对开发板上的GB32 编程。

4 售水系统设计

售水系统包括售水系统软件和读写卡器。软、硬件结合

4.1 售水系统软件

售水系统实现发行IC 卡(开户)、售水、用户信息查询、售水信息查询、图表打印、系统维护等功能。同时含有发行清零卡、反读卡、工作卡、清卡、读取反读卡等卡操作,和用户过户、数据备份等功能。系统分管理员、操作员两种模式进入。管理员主要实现查询、特殊功能和系统维护等操作;操作员主要实现查询、特殊功能、开户和售水等操作。

系统提供了多种查询方式:

①用户信息查询:可根据用户号、姓名、开户日期、公司地址四种方式查询用户信息;
②售水信息查询:管理员可以查询统计售水情况,该功能模块有四个字功能模块,即组合查询模块、收盘统计模块、按用户名称查询模块和黑名单统计模块。

特殊功能有用户过户、数据备份、数据导入、清卡、读反读卡,管理员模式下多一个修改操作员密码的功能。系统维护包括参数设置(具体参数有:每表附加费、每吨附加费、水价类型、卡类型、口径、报警水量、透支水量、管理员、操作员、单位名称)、发行清零卡、发行反读卡、发行工作卡。开户和售水是用水的前提,也是售水系统最基本的功能;开户或每次售水后,相应的数据均写入数据库;如果用户卡丢失,系统可以根据之前记录补卡。

售水系统基于客户服务器模式(C/S)设计的,后台数据库用的是Microsoft SQLServer2000,适用于基于分布式网络售水的应用。同时,根据公司要求,考虑到本售水系统也能适用于规模比较小的单点售水,在数据库设计时,使其兼容ACCESS 2000。这样,售水系统管理软件在实际应用时,可以根据应用规模的大小,选择不同的后台数据库管理软件,增强了软件的适应性,可扩充性,使之具有更大的灵活性。

图5 描述了售水系统中操作员可执行的系统功能。


图5 售水系统软件功能模块图(操作员)

蜂鸣器相关文章:蜂鸣器原理


评论


相关推荐

技术专区

关闭