软件——基于单片机的智能水表的设计_第1页
软件——基于单片机的智能水表的设计_第2页
软件——基于单片机的智能水表的设计_第3页
软件——基于单片机的智能水表的设计_第4页
软件——基于单片机的智能水表的设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆交通大学(重庆通信学院办学点)毕 业 设 计 论 文题 目:基于单片机的智能水表的设计专 业:电气工程及其自动化姓 名:学 号:指导老师:刘安才二一一年五月摘 要为适应国家用水制度的改革,研究和利用现代化智能技术对自来水实行自动控制,减轻供水管理部门因“先供水后收费”造成的资金压力,减少每月抄表、收费所带来的麻烦和因收费问题带来的纠纷,用现代科学技术手段改变自来水管理体制的落后现状,势在必行。基于单片机的智能水表不但可以提高供水部门的工作效率,而且在技术上为节约用水、合理用水创造了条件,由于这些特点,智能水表得到了越来越广泛的应用。本论文主要设计研究基于单片机的IC卡智能水表电路,其主要功能是以AT89C2051单片机为核心,实现IC卡的读写,液晶显示的控制,电磁阀的控制,脉冲的提取,同时具有安全保护电路、记忆单元电路、通信接口电路,完成整个水表信号的读、写处理,监控水表工作的功能。本文对每个模块逐一进行了研究,全面详细地论述了硬件电路的设计流程,对本设计中非接触式IC卡读写电路模块、液晶显示电路模块和读写电路模块等工作原理及功能进行了详细了说明。关键词:单片机;IC卡;液晶显示;记忆模块AbstractIn order to adapt the reform of the nation system of water supply,studying and making use of the modern intelligence technique to realize the automatic supervision of the water supply,lightening the funds pressure because of“supply water first behind charge”of the department supplying water,reducing the trouble and dispute of copying the form and charging monthly,using the modern science technique change the current administration structure of using water and water supply industry is imperative under the situation.The application of intelligent water meter not only improves work efficiency of intelligent water meter not only improves work efficiency of the department supplying water and realizes using water electronically but also creates a condition for using water frugally and rationally.Because of these charactetistics,intelligent water meter obtained more and more widespread application. In this paper, the main design based on single-chip pre-charges the IC card water meter system hardware circuit design, its main function is based on AT89C2051 single-chip microcomputer as the core, the realization of IC card reader, LCD display control, the control solenoid valve, pulse extraction, at the same time security protection circuit, memory cell circuit, communication interface circuit, the signal meter to complete the reading, writing and processing, monitoring the work function of water meters. In this paper, one by one for each module studied. Full detail of the hardware circuit design flow, for the design of the Central African contactless IC card reader circuit module, liquid crystal display circuit module and circuit module, such as reading and writing H6152 working principle and function are described in detail.Key words: SCM; IC Card ; Liquid crystal display; Memory modules目 录摘 要IAbstractII目 录1第1章 绪论11.1课题背景及意义11.2 传统水表21.2.1 传统水表的主要结构21.2.2 传统水表的主要特点21.3 智能水表21.3.1 智能水表的特点31.3.2 国内外智能水表的发展现状及发展趋势4第2章 智能水表的硬件设计62.1设计思想62.2智能水表的工作原理62.3智能水表的硬件结构72.4智能水表各模块芯片及器件的选型82.4.1微处理器的选择82.4.2传感器的选择82.4.3记忆单元组成的选择92.4.4控制阀门的选择92.4.5 IC卡的选择92.5各模块硬件电路设计102.5.1 IC卡读写电路102.5.2 液晶显示电路112.5.3 电源模块122.5.4 单片机模块122.5.5 记忆单元电路122.5.6 电磁阀控制电路的设计122.5.7 检测模块的设计132.5.8 报警电路132.5.9防拆电路132.5.10复位电路132.5.11时钟电路142.5.12信号处理模块的设计14第3章 智能水表的软件设计153.1 主程序的设计153.2中断服务程序设计173.2.1 外部中断0服务程序173.2.2 外部中断1服务程序193.3 IC卡的读写软件设计203.3.1 SDA和SCL信号203.3.2 IC卡的写操作213.3.3 IC卡的读操作213.3.4 IC卡芯片的控制字节和器件寻址223.3.5 IC卡处理程序流程图223.4 片外数据存储器读写软件设计233.5液晶显示电路软件设计243.5.1液晶控制驱动器指令集243.5.2程序流程图及部分程序263.6记忆单元电路软件设计27第4章 关于智能水表的节能及安全问题284.1 IC卡智能水表的低功耗问题284.2 低功耗解决方案284.3 IC卡智能水表的安全性问题294.4 安全性问题解决方案294.5对水表的物理性攻击的防范办法30第5章 结 论31参考文献32谢 辞33附录341.相关电路图342.相关程序362.1报警程序362.2蜂鸣器程序372.3时钟程序373.protel电气原理图设计软件介绍403.1 protel电路板设计软件413.2 原理图的绘制423.3 PCB图的绘制424.外文资料翻译AT89C2051单片机简介45第1章 绪论1.1课题背景及意义随着社会科学技术的高速发展,资源短缺现象日益严重,尤其是与人类生存嘻嘻相关的水资源日益缺乏。水是宝贵的环境资源,也是我国可持续发展战略的重要物质基础。但是,我国是世界上人均水资源拥有量是分贫乏的国家之一,节约和保护水资源是我国当前一项十分重要的战略措施。节约水资源包括两个方面的措施,一是大力推广应用节水新技术;二是加强用水的科学管理,在某种意义上来说,加强用水科学管理是当前的首要任务。要加强用水的科学管理,最重要的是加速研究开发科学先进、应用方便的节水科学管理仪表以及这种仪表的普及应用。因此研制一种低功耗、计量精确方便的智能水表显得极为重要。长期以来,我国城镇居民所使用的水表普遍是普通机械旋翼湿式水表,这种水表价格低廉,性能比较稳定,但是还采用人工抄表、按户收费的模式。此方式存在着工作量大,收费周期长,收费困难,效率低下等缺点。随着我国信息产业的飞速发展,金卡工程的全面实施,实现自来水收费管理的电子化、信息化及网络化已成为可能。水表系统的智能化可以大大提高供水管理部门的工作效率、节约费用,用以改善供水设施,提高居民饮水质量;同时还能为加强自来水使用的监督管理提供手段,从而在技术上为节约用水合理用水创造条件。微电子技术和计算机技术的不断发展,引起了仪表机构的根本性变革,以微型计算机(单片机)为主体,将计算机技术和检测技术有机结合,组成新一代“智能化仪表”,智能化仪表在测量过程自动化。智能仪表不仅能解决传统仪表不易或不能解决的问题,还能简化仪表电路,提高仪表的可靠性,更容易实现高精度、高性能、多功能的目的。随着科学技术的进一步发展,仪表的智能化程度将越来越高。我国目前智能水表新产品开发基本上是借鉴国外先进模式,因为国外在此方面的研究设计起步较早。例如ABB公司的KENT水表采用充电电池,具有按键读数、可以显示日期时间及各户用水量,建有机械式与电子式读数功能,而且还配有IBM PC兼容机接口,可以进行电话通信;德国Sameco公司的新型水表可显示上一年与本年度用水量以及日期与时间等,并开发电卡式水表;此外,日本、以色列等国也相继推出自己的新产品。国内的一些企业也对多种智能化水表系统作了研究,但在微功耗、可靠性等方面效果并不理想,因此并未投入大批量生产。从国内外水表行业的目前情况以及水资源的可持续性发展目标来看,我国的传统水表必须进行改进,才能适应社会和经济的发展。1.2 传统水表传统水表的发展经历了漫长年代,它涉及社会生活的各个方面。它对改善人类生活、促进社会发展和科技进步起到了无法估量的作用。直到现在在很多领域还能继续发挥作用。1.2.1 传统水表的主要结构传统水表主要结构由硬件构成,以相对固定形式确定下来,所实现的功能较单一。只具有流量采集和机械指针显示用水量的功能,用户在使用过程中无法对其功能进行改变。它一般具有输入信号接口、内部处理电路和实时显示三部分。对于一些仪表功能如自凋零、自校准、自动调节量程等的设置是由用户在仪表设备面板上手工完成。1.2.2 传统水表的主要特点传统水表的主要特点是自成体系,自我包容,用户无法更改。传统水表功能单一,只具流量采集和机械指针显示用水量的功能。同时,一台普通传统水表具有相对独立性,不能与其他水表设备进行通信,而只能用于现场测量,测量结果不能处理、存储、显示,局限性很大。另外,传统水表无法升级换代,而且开发周期长、经费投入大。随着科技水平不断发展,人们对传统水表提出以下几方面的要求:测量精度高、功能强、可靠性好,测量全能自动化、智能化,小型化、使用灵活方便、升级方便,同时还能进行测量数据的处理、存储和显示,具有和其他设备进行数据通讯等功能。这些新的要求不仅促使着传统水表不断地改进和发展,也孕育着新一代水表智能水表的产生。1.3 智能水表随着为电子技术的不断发展,集成了处理器、存储器、定时器/计数器、并行和串行接口、看门狗甚至A/D、D/A转换器等电路在一块芯片上的超大规模集成电路芯片单片机出现了。智能水表是一种以单片机为主体,结合计算机技术与测量控制技术,利用现代微电子技术、现代传感技术、智能IC卡技术对用水量进行计量并进行用水数据传递及结算交易的新型水表。智能水表是除了可对用水量进行计量并进行用水数据传递及结算交易的新型水表。智能水表除了可对水量进行记录和电子显示外,还可以按照约定对用水量进行自动控制,并且自动完成阶梯水价的水费计算,同时可以进行用水数据存储的功能。出于其数据传递和交易结算通过IC卡进行,因而可以实现由工作人员上门抄表收费到用户自己去营业所交费的转变。IC卡交易系统还具有交易方便,计算准确,可以利用银行进行结算的特点。1.3.1 智能水表的特点与传统水表相比,智能水表有以下特点:1对供水部门来说,可以实现先交费再供水的用水模式。这是大家都普遍认可的一个优点。这对解决水费托拖欠这个过去难以解决的问题会有帮助。供水部门推行IC卡水表的经验表明,人们普遍接受这一模式,供水部门不仅解决了拖欠交费的老大难问题,还可以提前收到资金。对用户来说,由于水费的支出在总支出中占的比重很小,这种改变,对用户来说,只是把水费的交付时间提前了一段时间,所以,用户并不敏感。但对供水部门来说,这种变化则是不能小看的。随着水资源的紧张和水的商品属性逐步被社会认可,水的交易将会逐渐采用一般商品的交易模式,显然,先交费后用水,是更合理的一种交易模式。2改变了入户抄表收费的模式。这种模式改变的意义是巨大的。由于城市规模不断扩大和居民户数快速增加,供水部门抄表和收费的工作量将不断加大。沿用传统的上门抄表模式,将很难适应这种变化。而现在由于各种原因的影响,人工入户抄表的效率已经在逐渐下降并且这种模式的成本在不断增加。解决这个问题,可以采用多种途径,但依靠技术进步来解决这个问题,应当是更值得提倡的方式。显然,采用智能IC卡水表及其管理系统,将可以从根本上改变由供水部门派人去千家万户抄表收费的模式。只要供水部门合理设置交费机构,基本上不会给用户带来麻烦。如果得到金融系统的配合,还可以减少布点的成本。因此大规模采用智能IC卡水表技术对降低供水部门的管理成本是会有显著帮助的。而使用IC卡进行交易结算,用户可以自主决定交费时间和数量,增大了用户的自主性。特别是随着人们家庭安全意识和隐私意识的增强,入户抄表和上门收费等随意进入私人住户的做法将逐渐不受欢迎甚至受到抵制,这是一个必须给予重视的社会发展趋势。而使用智能IC卡进行交易结算,将可以有效解决这个会带来很多社会隐患的问题。3可以有效解决一些技术难题。比如,随着水资源的紧张,将会逐步实行超计划水价甚至阶梯式水价等较为复杂的用水管理模式。这些,将对供水交易提出较高的技术要求。采用普通水表和人工抄表的模式,是难以解决这些技术问题的,而采用智能IC卡水表,将很容易解决这些问题。4随着科学技术的发展,供水行业也需要逐步实现用高科技手段进行供水管理。采用传统水表,这个跨越是很难完成的,而采用智能IC卡水表,将为运用计算机技术进行现代化管理奠定一个技术基础。5当然,使用智能IC卡水表还有其他优点,比如可以有效解决尽量扯皮、用水纠纷,贪污水费、人情用水、用水统计困难等问题。6与远传抄表系统相比,智能IC卡水表具有使用和维护成本很低,没有布线造成的混乱和高故障率等问题。智能IC卡水表的以上优点,将会使智能IC卡水表逐渐被社会所接受并成为一种基本配置。1.3.2 国内外智能水表的发展现状及发展趋势目前,国内企业与研究机构主要致力于智能网络远传水表的智能卡式水表系统的研究开发,如宁波水表厂、上海自来水公司水表厂等都在相继开发远传水表,由于智能网络远传水表系统需要配套远传通信网络支持,其初期投资大,因此只适用于在一些新建住宅小区组成相对独立的小网,所以目前尚未大量投入市场;而采用先付费后用水的管理模式,在当前收费困难、人工抄表效率低下的情况下,更能获得供水管理部门的青睐。1、智能网络远传水表系统就目前来讲,智能网络远传水表又可分为分线制集中抄表方式和总线制智能抄表方式。(1)分线制集中抄表方式各种分线制集中抄表方式的基本原理大致相同,即由采集器定时顺序采集来自多路分户线的水表信号,并进行数据处理、存储。各采集器之间采用总线制连接,最后连接到计算机。其典型特点是各户表通过分户线连接至采集器。分线制集中抄表模式单纯从技术上讲较成熟,也节约成本(多户表共享一个采集器),但从实际情况看,分线制集中抄表模式存在如下缺点:由于每次水表的计量信号是通过分户线穿越较长距离到达采集器,中途任何一个环节出现疏漏都将使采集器采集不到数据,而且铺设分户线不仅使安装任务繁重,也存在许多隐患:短线,断线等。错综复杂的线路更使得维护工作困难重重。采集器均安装于现场,需专业人员调试系统并定期巡视维护,专业队伍日益“壮大”,维护费用也相应剧增。分线制集中抄表模式的风险不仅仅是各表风险的简单累加。如果采集器掉电或出现其他严重故障则会使该采集器上所有数据丢失,集中抄表的风险无法有效分散,与测控系统强调的集中管理、分散控制的分布式设计死相违背。(2)总线制智能抄表方式总线制智能水表由于采集、计数工作单元均安装在智能水表内并密封,水表的数据采集、处理、存贮等基础工作全由智能水表本身完场,手抄器或电脑不参与底层数据采集仅进行通讯联系,消除了外界因素对计量的影响。另外因智能水表引出的总线通、断不影响单表数据采集和保存(仅影响水表数据的读出),无需重新置数,水表的真实读数仍可继续读出,其安全性、稳定性是比较可靠的。但由于单表内设置单片机和后备电源,成本较高,推广普及较慢。由于各表输出的总线只需挂接,可以减少分线制抄表方式大量烦琐的布线、系统调试任务以及后期使用过程中线路、系统维护等繁重劳动强度,也方便高层次设计如网络结构的设计、与其他系统(如安防、照明、空调、消防)共享开放式网络的设计,进而为用户提供完善、综合的配套服务。2、卡式智能水表系统智能卡水表是在当今智能卡技术与市场迅猛发展、单个智能卡及刷卡机性能价格比日益提高的特定时期应运而生的。主要由智能卡式水表、智能卡、读卡器、收费管理信息系统等组成。用户须在供水部门指定售卡点,购水后刷卡方能使用。它具有有限用水量、解决用水收费纠纷的功能,这是其他抄表方式及普通水表上门抄表方式所不能比拟的,并且智能卡水表如同普通水表,无需铺设管线及线路维护,安装方便、维护简单;另外,智能卡水表自带数据采集模块、电源部分、电磁阀(电动阀)控制,由智能卡读入预购水量等信息,使用简单,动作可靠,并且它的前期投资费用低,因此日益受到供水管理部门的青睐。根据我国金卡工程的长远发展建设来看,单纯地将普通机械式水表转化成机械式+电子式固然已迈出了重要的一步,但是还不够完善,因为水表的计量预收费及管理自动化将是大势所趋。未来信息技术的发展必将朝着网络化的方向发展,作为楼宇自动化发展的方向的一个重要方面|智能化水表系统。因此如何设计合适的平台,将自动抄表系统、远程监控报警系统、家居安防系统等无“缝隙”地与数据网及控制网连接起来,开发出能体现优良的综合性、互操作性、方便实际现场安装维护的一体化智能系统将成为今后一段时期内的热点。第2章 智能水表的硬件设计本水表电路的硬件设计原则是在低功耗的前提下实现多功能。系统硬件电路由IC卡读写电路、液晶显示控制电路、电磁阀控制电路、脉冲提取电路、安全保护电路、记忆单元电路、通信接口电路组成。它能方便地读取IC卡的数据,并控制电磁阀和液晶显示器的工作,同时还可以将水表的数据存入E2PROM进行永久保存并可通过串口送至表外的数据终端,大大地提高了该水表的智能化的功能。本水表采用电池供电。2.1设计思想智能水表区别于传统的人工抄表就是应该具有一定的智能控制功能。针对目前供水部门与用户的实际情况,本设计对智能水表应该具有的功能提出了以下设计思想:1. 统计功能:当用户插入有效卡时,将购买水量与剩余水量自动相加,并且存入E2PROM以防丢失;当用户用水时,将剩余水量与用水量自动相减,并且存入E2PROM以防丢失。2. 自动供停水功能:当剩余水量为0时,自动关闭阀门;购水后,阀门开启。3. 显示功能:采用6位LED显示,可随时查询累计用水总量及可用剩余水量。4. 报警功能:当剩余水量减少到一定量时,报警提示用户购水。5. 掉电自动保护数据功能:掉电后,数据依然可以被保存。当恢复供电后,数据自动恢复。6. 一户一卡的功能:通过设立用户信息和用户校验码的方式实现一户一卡。即一个水表只能使用一个用户专用卡,插入其他卡片无效。7. 欠电自动关闭系统的功能:当电池电压或电池容量掉到规定数值后,意味着电池可能已经快没有电了,此时,水表应会自动将阀门关闭并使系统处于休眠状态,并报警提示。8. 防拆卸功能:在表体和接头管件上设置铅封口并可进行防伪铅封处理,以防止随意拆卸水表的行为。即使被拆卸后,单片机立即关闭阀门,以防偷水。2.2智能水表的工作原理智能水表以单片机为主体,结合计算机技术与测量控制技术,利用现代微电子技术、现代传感技术、智能IC卡技术对用水量进行计量并进行用水数据传递及结算。智能水表除了可对水量进行记录和电子显示外,还可以按照约定对用水量进行自动控制,并且自动完成阶梯水价的水费计算,同时可以进行用水数据存储的功能。出于其数据传递和交易结算通过IC卡进行,因而可以实现由工作人员上门抄表收费到用户自己去营业所交费的转变。智能水表以AT89C2051为核心控制芯片,完成整个水表信号的读、写处理,监控水表工作的功能。该CPU芯片内置4K的程序存储器,有32个多功能的I/O口,具有多个可编程的中断I/O口和数据串行通信口。并且,该芯片功耗低,特别适用于水表控制线路多、功能全、功耗低的要求。智能水表工作时,首先由用户购买IC卡(即用户卡),并携IC卡至收费工作站交费购水,工作人员将购买水量等信息写入卡中。用户将卡插入IC卡水表,卡表内单片机识别IC卡密码并确认无误后,将卡中购买水量与表内剩余水量相加后,写入卡表内存储器,同时必须将IC卡内购水值清零。当用户用水时,由流量传感器采进来的信号以脉冲形式触发单片机的外部中断,换醒单片机,进行用水处理。用户在用水过程中,卡表内剩余水量相应减少。当剩余水量低于一定量,如5m3,卡表报警提示用户购水。当E2PROM中存储的水量用完时,单片机自动关闭电磁阀。用户只有重新购水,才能使电磁阀打开。此外,在发生人为故意破坏时,阀门也会关闭。智能水表的主系统框图如图2.1所示。图2.1 主系统框图2.3智能水表的硬件结构系统硬件电路由IC卡读写电路、液晶显示控制电路、电磁阀控制电路、脉冲提取电路、安全保护电路、记忆单元电路、通信接口电路组成,以AT89C2051为核心控制芯片,完成整个水表信号的读、写处理,监控水表工作的功能。其硬件结构框图如图2.2所示。IC卡座通信插座去脉冲电磁阀来自水量传感器CPU脉冲提取电路电磁阀控制电路安全保护电路IC卡读写电路IC卡读写电路显示/报警电路通信接口电路记忆单元电路电源模块图2.2 硬件结构框图2.4智能水表各模块芯片及器件的选型2.4.1微处理器的选择虽然其通用的80C51系列的单片机具有电源电压适应范围宽、抗干扰能力和驱动能力强、价格便宜等特点。然而对本设计来说,根据其系统所要应用的需要:主要是其应用的引脚、应用所需要的容量以及在制作过程中所要考虑的体积、价格及供应等因素。显然AT89C2051单片满足I/O端口数、所需要的容量等要求。AT89C2051单片机与80C51单片机相比具有体积小、价格低等优点。同时AT89C2051单片机和80C51单片机是完全兼容的,它与80C51的显著区别在于它内部有一个闪存。另外考虑到在调试过程中实验器材的现实情况,本设计系统将选用AT89C2051单片机作为主控芯片。2.4.2传感器的选择WG系列韦根传感器具有以下特点:(1) 传感器工作时无须使用外加电源,适用于微功耗仪表,如电子水表、电子气表和其它智能型仪表。(2) 使用双磁极交替触发工作方式,触发磁场极性变化一周,传感器输出一对正负双向脉冲电信号,信号周期为磁场交变周期。(3) 输出信号幅值与磁场的变化速度无关,可实现“零速”传感。(4) 无触点、耐腐蚀、防水,寿命长。(5) 利用电话线、同轴线可实现电信号远传。由于WG系列韦根传感器具有以上的众多的特点,特别是其几乎不需要外界能量的输入。因此,选择它作为本低功耗设计的传感器。在这里,我们选择了南京艾驰电子科技有限公司的WG系列韦根传感器产品,其型号为WG101。具体使用方法为:在水表的计量齿轮上安装小磁钢,当用户用水,齿轮转动,小磁钢将会转过Wiegand丝传感器,这时传感器产生一个高电平脉冲信号,经过整形、放大处理后输入至单片机进行计数计量。选择此传感器作输入信号测量的传感器,既满足了准确计量的基本要求,又满足了低功耗设计的需要,是本低功耗设计的重要组成部分。2.4.3记忆单元组成的选择本设计的记忆单元中采用I2C总线接口,存储单元采用AT24C01以满足本设计的要求。2.4.4控制阀门的选择目前可控制的阀门主要是电磁阀,但常规的电磁阀是靠电的通/断来控制阀门的开/关的,即要让阀门一直关着,就必须一直通电,因此耗电较大,不符合本水表低功耗的要求。因此,必须对现有电平开关式电磁阀进行改进,采用双稳态电磁阀,即阀门的开/关控制由电脉冲来实现。使得对阀门开/关只需瞬时供电,从而减少耗电量。在这里我们选择:执行机构采用继电器HRS2H-S-DC3V,驱动带自锁的脉冲电磁阀MP15A-3V,两者仅需+3V电源供电。正常供水情况下,电磁阀自锁于常开状态,驱动机构不消耗电能,只有当购买的吨位数用完时,才由固态继电器驱动电磁阀关闭开关,并自锁于常闭状态,重新购水插卡后,再次送电开启。2.4.5 IC卡的选择由于水表中采用IC卡存储用户所购买的用水量等信息,如果IC卡一旦被非法复制、伪造,必将给供水管理造成巨大的损失。本设计中选用的SLE4442卡是由SIMENSE公司设计生产的逻辑加密芯片,具有2K的存储容量和完全独立的可编程加密代码存储器(PSC),内部电压提升电路保证了芯片能够以单+5V电压供电,较大的存储容量能够满足通常应用领域的各种要求。SLE4442卡,以其优良的性能价格比,近年来在中国被广泛应用于医疗、交通、企业管理以及水、电、气、商业预收费等领域中11。该芯片特点:(1)用多存储器结构。(2)2线连接协议,串行接口满足ISO7816同步传送协议。(3)芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5MS。(4)存储器具有至少次的擦除/写入周期,数据保持时间至少为10年。(5)按字节写保护最低32个地址 (字节0-31)具有不可逆性。2.5各模块硬件电路设计2.5.1 IC卡读写电路IC卡应用系统的硬件设计结构框图如图2.12所示,总体原理图见附录1。单片机AT89C2051是本设计的核心器件,它主要完成了对射频卡(MIFARE 1卡)的读写操作。H6152读写器对射频卡进行读写后通过串口电平转换电路将RS232电平转换为单片机所识别的TTL电平,从而达到了使用AT89C2051单片机来控制射频卡的读写过程。CPU串口电平转换电路IC卡读写器报警电路Mifare1射频卡图2.12 IC卡系统硬件结构图2.5.2 液晶显示电路图2.16 串口显示电路图显示电路的具体电路如图2.16所示。它由单片机AT89C2051,2片74HC164,6个LED数码管,6个220欧姆左右的限流电阻组成。74HC164是8位串入并出移位寄存器。它的每一个输出管脚具有+/-20mA的驱动能力。对于小型LED数码管,还要串联200360的限流电阻。本设计提出的动态显示电路采用2片74HC164,可以驱动18只共阴极数码管,这里我们采用6位显示。其中一片U3作为段码驱动,另一片U1作为位码驱动。2片74HC164采用级联方式连接,只占用单片机AT89C2051的2个I/O端口。位码驱动U1的数据输入端口、时钟输入端口分别连接AT89C2051的RXD和TXD端口。段码驱动U3的数据输入端口、时钟输入端口分别连接位码驱动U1的Q7和AT89C2051的TXD端口。选择AT89C2051的串行口方式为0方式,即移位寄存器方式。如果要求在6位LED数码管的最低位显示一个字符时,首先从DMbufer中取出要显示的数,通过译码表译出这个字符的段码值并将段码值写入U3中。根据这个字符在LED、显示器的位置(这里为最低位)。确定它的位码值是FEH(1111 1110)将位码值写入WMbuffer中(注意:段码驱动U3为高电平有效、位码驱动U1为低电平有效)。在显示程序中,首先将位码值写入串行数据寄存器(SBUF)。在AT89C2051TXD端口的时钟作用下,AT89C2051RXD端口送出这个字符的位码值到段码驱动U3。当AT89C2051送完一个字节的位码值后,发送中断标志位TI置位。检测到TI=1后,清零TI,接着将段码写入SBUF,AT89C2051再送段码值到段码驱动B,同时段码驱动U3的位码值被送入位码驱动U1中,延时2ms,即可显示这个字符了。如果要求在低二位显示第2个字符,则WMbufer(1111 1110)不带进位位左移一位(1111 1101)并送WMbufer。再通过译码表取得第2个字符的段码值送入U3,重复上述过程即可。以上过程循环N次,即可完成16位字符的显示工作。在主程序中循环调用显示程序,反复扫描LED数码管,使之达到近似静态的显示效果51213。2.5.3 单片机模块由于内部液晶控制器的存在,单片机可直接与GXM12864相连,不必使用其他的接口芯片。由于单片机采用Atmel公司的AT89C2051,将液晶模块作为存储器的一部分,直接进行I/O操作。其工作原理图见附录2所示。2.5.4 记忆单元电路本设计的记忆单元利用单片机AT89C2051与24C01进行I2C通信,实现对某一地址内数据的读/写校验操作。2.5.5 电磁阀控制电路的设计本设计中,当水量为零时,控制阀自动关闭,水路即被切断,此时用户须重新持卡购水。在正常情况下控制阀处于接通状态,只有当特殊事件发生时,控制阀才从接通状态变为关闭状态。三种事件状态下控制阀的通断情况如图2.19所示7。图2.19 控制阀的关断情况2.5.6 检测模块的设计检测模块主要对以下四种情况进行检测 (1) 水表被拆卸;(2) 电池欠压或取出电池;(3) 有按键按下;(4) 有IC卡插入。当有以上四种情况之一时,外部中断(P3.5)产生中断。当产生中断后,中断程序马上依次检测P3.6口(F_KEY)、P3.2口(V_MONI)、P3.3口(OPEN_D)、P1.5口(SW_T),以确认是哪种情况产生的中断后作出相应处理。该电路由一个电压检测器HT7039、两个与非门、一个或非门、一个常闭开关和一个常开开关组成。2.5.7 报警电路利用单片机输出报警信号是很有用的。在控制系统中,当用户消费的水量超出警戒值或设定值时,或者电池电压不够时,在这些情况下,由单片机P1.6端口输出通过三极管驱动蜂鸣器,发出声音信号用于报警,提醒人们引起注意,2.5.8防拆电路在智能网络水表的设计中,为了防止用户拆卸水表,所以在电路中设计了防拆卸电路,在电路中加入一个按键,平时处于按下的状态,当水表被拆卸时,这个按键弹起,这时水表关闭阀门,这样大大增加了水表的安全系数。2.5.9复位电路复位的功能是保证单片机在任何情况下,都能够正常工作。例如在单片机上电时,或是单片机的电源电压偶然减少时,或是单片机受到电磁干扰使程序不能运行时,或是人工需要单片机复位时。2.5.10时钟电路时间是智能水表计量系统检控的一个重要数据,当表出现特殊情况时如:插卡,非法打开表盖,阀门关闭和开启等异常时刻时,实时时钟芯片都能准确无误的记录下来,方便日后的查询;同时对我们设计多费率的水表,有效监控水源的使用情况具有重要意义。本系统采用美国DALLAS公司生产的低功耗时钟芯片DS1302产生时间信号,DS1302 是一种高性能、低功耗、带RAM的实时时钟芯片。2.5.11信号处理模块的设计由于WG系列韦根传感器使用双磁极交替触发工作方式(即对称驱动方式),当水表叶轮转动一周,触发磁场极性变化一周,韦根传感器输出一对正负双向脉冲电信号。当韦根传感器输出为正向脉冲时,NPN管导通,脉冲检测信号W_IN输出为高电平;当韦根传感器输出为负向脉冲时,NPN管截止,脉冲检测信号W_IN输出为低电平。即水表叶轮转动一周,脉冲检测信号W_IN存在一个由高到低的跳变。由于我们设定外部中断(P3.2)为跳变触发方式,即电平发生由高到低的跳变时触发。因此,水表叶轮转动一周,外部中断产生一次中断5。第3章 智能水表的软件设计本文在进行智能水表的软件设计时,结合智能水表具备的功能,首先考虑了以下几个问题:(1)程序承担的任务:任何一个程序的设计,都有其具体的应用场合和明确的工艺要求,程序设计的首要任务就是确定程序承担的任务;(2)程序的时序性:单片机是按时序运行的,所以程序设计要考虑到任务的执行顺序和时间要求;(3)程序的适应性:所谓适应性,就是要求设计出来的程序具有灵活性,主要考虑将来系统扩展时必要的修改,增加通用性;(4)程序的设计模式:程序的设计模式直接影响着程序的编制、纠错及测试的难易度。本文采用模块化设计思想,将一个完整的程序分成若干个可以独立完成某些任务的功能模块,各模块又分为若干子模块,各子模块之间相互独立,又受主程序模块的控制。使整个系统层次分明,逻辑清楚,便于程序的编制、调试、修改和查错。利用模块化技术,可以将错误局限在各个模块内部而不影响整体,提高了系统的可靠性、灵活性和可维护性。在本次设计过程中,CPU平时处于低功耗模式,当有中断发生时,唤醒CPU进行中断处理,处理完成后又进入低功耗模式。当系统时钟发生器基本功能建立后,CPU内状态寄存器SR中的SCG1、SCG2、OSC OFF位是重要的低功耗控制位。这四个控制位可以由软件配置成6种工作模式:其中1种活动模式和5种低功耗模式。通过设置控制位AT89C2051可以从活动模式进入相应的低功耗模式,只要任意中断被响应,上述中断控制位就被压入堆栈保存,中断处理后,又可以恢复先前的工作方式。此外,在进行程序设计时,还应注意以下问题(1)用可计算的分支代替标志位测试产生的分支;(2)用快速查表代替冗长的软件计算;(3)在冗长的软件计算中使用单周期的CPU寄存器;(4)避免频繁的子程序和函数调用15。根据智能网络水表所要实现的功能,软件组成主要包括:主程序设计、中断服务程序、各子程序等组成。3.1 主程序的设计主程序主要完成系统的初始化,各种情况的判断如电压情况、按键是否按下、水量判断等,在适当情况下还要进行显示、关闭阀门等操作,平时处于睡眠状态。当表内剩余水量小于5 m3时,阀门暂时关闭以代替蜂鸣器发出提示报警,以提醒用户剩余水量不多,请速购水;当表内剩余水量为0 m3时,切断阀门,停止供水,直到新的水量被购来为止。从而达到用水必须预先交费的目的,省去了人工抄表收费环节。主程序的流程图如图3.1所示16-18.图3.1主程序的流程图3.2中断服务程序设计在软件设计中,采用中断方式是降低功耗的重要手段。由于平时智能水表处于低功耗模式,当水表进行采集数据、数据通信等工作时,进入中断程序进行处理。当中断处理完成后,重新进入到低功耗模式。在本次设计中,中断服务程序包括水表计量中断、干扰中断、欠压中断、拆除中断、通信中断等。中断服务程序的流程图如图3.2所示。图3.2 中断程序流程图3.2.1 外部中断0服务程序外部中断0子程序也即水表脉冲计量程序,它主要是对用户水量进行处理。当用户在进行用水操作时,由流量传感器产生的脉冲信号使进入中断响应程序。根据机械水表的测量原理,水的流量与水表齿轮的转速可以近似成一定的线性关系。显然,水表齿轮所转的圈数与传感器产生的脉冲信号是一一对应的关系。根据这一原理,我们可确定流量的计算公式: (3.1)在式(3.1)中,Q为流量,单位为m3;K为基表系数,单位为m3r;N为转数,单位为r。在这里,由于K(基表系数)是一个常数。因此,Q与N是一一对应关系。我们采用了6位数据显示,其中只含有一位小数。当Q为0.1m3时,由于K已知,N即可以求出。在本系统编程中,我们设定M为测得脉冲数,N为Q为0.1m3时对应的转数值,“剩余水量-1,用水总量+1”中的“1”表示0.1m3的水量3。其具体流程图如图3.3所示。图3.3 外部中断服务程序在上述程序设计中,当剩余水量小于5吨时,阀门亦将关闭,而不是进行报警提示,当再次刷卡时阀门再次打开,其目的在于避免采用报警信号方式当报警发出时用户不在家接收不到报警信号而报警器处于工作当中,以关闭阀门来进行报警提示代替纯报警信号将更有效地达到预警效果,不但避免了突然断水对用户带来的不便,而且降低了水表功耗,此外还提高了供水部门的管理效率。此处中,当插入IC卡时,水表液晶显示中将显示用水余额等信息,提示用户尽快购水。3.2.2 外部中断1服务程序以下四种情况均可以使产生中断:(1) 水表被拆卸;(2) 电池欠压或取出电池;(3) 有按键按下;(4) 有IC卡插入。当产生中断后,中断程序马上依次检测P3.6口、P3.2口、P3.3口、P1.5口(原理图见总电路图中检测模块),以确认是哪种情况产生的中断后作出相应处理。其具体流程图如图3.4所示。图3.4外部中断子程序3.3 IC卡的读写软件设计系统软件设计的流程应为确认有卡插入后,延时,待IC卡供电电路稳定,读IC卡标志位,并与系统中保存的标志比较,确认后,读数据区。为提高可靠性,IC卡中的数据在两个不连续区作备份,第二组数据作校验。为防止有损坏的字节和其它因素影响数据不可靠,建议将每次写入的数据再读出比较,判断写入的数据是否正确,从而达到保证对IC书写操作的无误。下面详细地介绍了它的工作原理。3.3.1 SDA和SCL信号SDA和SCL双向总线采用I2C-bus(inter-intergrad circuit bus)汇流总线技术,所有的控制命令和数据传输均由这两条双向总线执行,采用SDA和SCL,两条总线就可实现对E2PROM进行读写,并且在读写过程中其信息传递的波特率可以从0到100kbps,其数据传输及时钟脉冲时序图如图3.5所示。图3.5数据传输及时钟时序图IC卡的读写其实也就是对IC卡片内E2PROM进行读写。所以在AT24C01系列IC卡的应用中,与逻辑控制有关的引出端线只有2条:SCL和SDA。所有的地址、数据及读/写控制命令等信号均从SDA端输入/输出。为了区分SDA线上的数据、地址、操作命令以及各种状态的“开始”与“结束”,卡片内设计了多个逻辑控制单元。其中,启动与停止逻辑单元产生控制读/写操作的“开始”和“停止”标志信号。“开始”状态:当SCL处于高电平时,SDA从高电平转向低电平,即产生“开始”标志信号;“停止”状态:当SCL处于高电平时,SDA从低电平转向高电平,即产生“停止”标志信号,如图3.6所示。图 3.6读/写的启动与停时序SDA和SCL通常各自通过一个电阻拉到高电平。当SCL为高电平时,对应的SDA上的数据有效;而当SCL为低电平时,允许SDA上的数据变化。数据输入/输出应该应答逻辑单元产生数据输入/输出操作应答信号。操作时所有的地址和数据均为8位码串行输入/输出于卡片。卡片每收到一个8位码长的地址码或数据字后,都以置SDA线为低电平方式“确认”应答信号。其波形如图3.7所示。图3.7输入输出的确认时序3.3.2 IC卡的写操作在器件地址码之后,紧跟着的是字节地址码。地址码长度为8位。时序中的数据为写字节时,由IC卡读/写器中的单片机在SDA发送一个8位码长的数据;卡片每收到一个数据字节后,都要通过SDA回送一个“确认”信号(ACK)。写操作时序如图3.8所示。图3.8写操作时序3.3.3 IC卡的读操作读操作有3种:立即地址读、随机地址读及顺序地址读;立即地址读:如果最后1次操作的地址在n,则现行地址为n+1。其时序如图3.9中的第2部分;图3.9读操作时序随机地址读:从选定的地址单元开始读,时序如图4.8所示。时序中器件地址和字地址概念同写操作,不同的是,IC卡读/写器中的单片机在给出数据字地址码之后,不发任何数据字,而是在卡片发出“确认”应答之后,又发出一个“开始”状态,进入“立即地址读”操作;单片机读入1个数据后,使SDA处于高电平,随后产生一个“停止”状态,结束本次操作。顺序地址读 :可以从“立即地址读”和“随机地址读”开始。当IC卡读/写器中的单片机收到第1个数据字后,不发“停止”状态,而是回答一个“确认”信号。一旦卡片收到单片机发出的“确认”信号,则将卡片内地址计数器的地址自动加1,并将此地址单元中的数据从SDA线上串行输出。只要单片机收到数据字后回答“确认”信号,顺序读操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论