为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > ic卡预付费水表的设计

ic卡预付费水表的设计

2018-03-09 50页 doc 160KB 8阅读

用户头像

is_014457

暂无简介

举报
ic卡预付费水表的设计ic卡预付费水表的设计 摘 要 为适应国家用水制度的改革,研究和利用现代化智能技术对自来水实行自动监 控,减轻供水管理部门因―先供水后收费‖造成的资金压力,减少每月抄表、收费 所带来的麻烦和因收费问题带来的纠纷,用现代化科学技术手段改变自来水供水 管理体制的落后现状,势在必行。智能化水表的推广,不但可以提高供水管理部 门的工作效率实现了用水收费的电子化,而且在技术上为节约用水,合理用水创 造条件。 本论文以智能IC卡水表系统为研究对象,重点探讨了基于MSP43OF413型超 低功耗单片机在低功耗智能仪表上的应用与开发。论...
ic卡预付费水表的设计
ic卡预付费水表的 摘 要 为适应国家用水制度的改革,研究和利用现代化智能技术对自来水实行自动监 控,减轻供水管理部门因―先供水后收费‖造成的资金压力,减少每月抄表、收费 所带来的麻烦和因收费问带来的纠纷,用现代化科学技术手段改变自来水供水 管理体制的落后现状,势在必行。智能化水表的推广,不但可以提高供水管理部 门的工作效率实现了用水收费的电子化,而且在技术上为节约用水,合理用水创 造条件。 本论文以智能IC卡水表系统为研究对象,重点探讨了基于MSP43OF413型超 低功耗单片机在低功耗智能仪表上的应用与开发。论文首先提出利用IC卡技术 智能水表系统的总体#设计#;然后系统地介绍了以MSP430F413单片机为核心 的智能水表控制系统的组成、特点及各部分功能,设计了系统控制的硬件电路结 构和研究了软件控制流程的实现,采用软硬件结合的方法,对系统的低功耗、抗 干扰性设计及安全性问题作了一定的分析与研究;最后,对系统尚存在的问题及 进一步开发和完善的内容和方向进行了探讨。 关键词:MSP430单片机;智能水表;IC卡技术 Abstract In 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 intelligence water meter not improves work efficiency of the department supplying water and realizes using water electronically but also creats a condition for using water frugally and rationally. This thesis takes intelligence water-meter system based on IC card as the research object,and application and the development of the low power MSP430F413 microcontroller in the intelligence instrument is discussed detailedly.In this thsis,firstly,it puts forward a total design project of the intelligence water meter system which make use of the IC card technique;then it systematically introduces the composition,the characteristics and the functions of each part on the control system of this intelligence water meter which adopts low power MSP430F413 micro controller as the core,designs the hardware electric circuit structure of the control system and studies the software to control the system.According to the combination of software and hardware,low power,anti-interferece and the security of the control system are studied and analyzed.In the end,the existing problems of the system and the improvement ideas of software and hardware in the further contents and approaches are proposed. Keywords:MSP430 micro controller;intelligence water meter;IC card technique 论 ........................................................... 1 第一章 绪 1.1 选题背景及意义 ................................................. 1 1.2 IC卡预付费水表及优点 ........................................... 1 1.3 IC卡智能水表的发展 ............................................. 2 1.4 国内外发展现状 ................................................. 3 1.5 IC卡预付费水表的关键技术 ....................................... 6 1.6 设计的技术指标 ................................................. 7 1.7 本论文的主要内容 ............................................... 7 第二章 IC卡预付费水表总体设计 .......................................... 9 2.1 IC卡概述 ....................................................... 9 2.2 IC卡分类 ....................................................... 9 2.3 IC卡技术 ...................................................... 10 2.4 IC卡的选用 .................................................... 12 2.5 智能水表的工作原理 ............................................ 14 2.6 流量计量的原理 ................................................ 14 2.7 智能水表方案 .................................................. 16 第三章 MSP430系列单片机介绍 ........................................... 20 3.1 MSP430系列单片机简介 .......................................... 20 3.2 MSP430系列单片机功能特性 ...................................... 20 3.3 MSP430F413型单片机 ............................................ 21 3.4 MSP430F413引脚图 .............................................. 25 第四章 硬件设计 ....................................................... 26 4.1 智能水表的主系统 .............................................. 26 4.2 主控芯片 ...................................................... 26 4.3 低电压检测电路 ................................................ 27 4.4 IC卡接口电路 .................................................. 28 4.5 液晶显示电路 .................................................. 28 4.6 脉冲采集电路 .................................................. 31 4.7 阀门控制电路 .................................................. 33 4.8 实时时钟芯片接口电路 .......................................... 36 4.9 上电复位电路 .................................................. 37 4.10 防拆电路 ..................................................... 38 4.11 报警电路 ..................................................... 39 第五章 软件设计及部分程序流程 ......................................... 40 5.1 系统软件开发调试环境 .......................................... 40 5.2 MSP430的指令系统 .............................................. 41 5.3 主程序 ........................................................ 42 5.4 电源电压检测程序 .............................................. 43 5.5 IC卡读写程序 .................................................. 44 5.6 脉冲采集计数程序 .............................................. 45 第六章 设计总结 ....................................................... 47 ................................................................ 48 致 谢 参考文献 .............................................................. 49 附录一 ................................................................ 52 附录二 ................................................................ 54 附录三 ................................................................ 55 英文资料翻译 .......................................................... 60 第一章 绪 论 1.1 选题背景及意义 水资源作为生态环境中的重要资源,是人类生活和生产中不可取代的资源,对 一个国家和地区的生存和发展,也起着极为重要的作用。水是人类赖以生存和发 展所不可替代的一种有限可用资源,是经济可持续发展的基础,水资源的匮乏将 使城市的繁荣无以为继。据联合国有关资料统计,地球上水的总储量为138(6 亿亿立方米,其中淡水储量为3(5亿亿立方米,占总储量的2(5,,除去不能 利用的冰盖、冰川、地下水、土壤水和湖沼水,人类生存所能利用的只有2.5, 中的0(01,。因此,如何保护被称为经济命脉的水资源,合理利用资源,减少 环境污染,是摆在全世界人民面前的重大而严峻的课题。目前,我国的水资源问 题更是严峻,水资源紧缺已成为我国可持续发展的―瓶颈‖。来自水利部的统计数 字,我国人均水资源拥有量只有2200立方米,仅为世界平均水平的四分之一, 目前全国三分之二的大中城市面临缺水;与此同时,地下水资源遭到过度开采, 全国地下水降落面积已达到15万平方公里。合理用水、节约用水是保护我们日 益减少的水资源的根本。水表的产生,满足了用水量的计量要求,为明确用水用 户与供水单位之间的经济关系提供了一种尺度。 长期以来,我国城镇居民所使用的水表普遍是机械旋翼湿式水表,这种水表价 格低,性能比较稳定。然而随着社会的发展,面对高层建筑和生活小区等,传统 水表的不足之处便充分暴露出来。首先,抄表人员要频繁往来于每个用户家里读 表,工作量大:其次,用户正常的生活将受到干扰,并可能给犯罪分子有机可乘: 此外,由于部分用水单位和个人种种原因所造成的水费拖欠的问题等,也一直困 扰着各自来水公司。在经济科技日益发达的今天,为促进企业事业单位等节约用 水,保证居民生活用水的需要,节能型、实用型智能水表的研制与开发成为社会 所需。随着我国电子信息业的迅速发展,无论是用户还是供水管理部门都迫切需 要现代化管理手段的介入,这给供水部门在用水管理规范化、自动化和收费网络 化方面提出了新课题,从而推动了水费管理的电子化,信息化和网络化。针对上 述情况,国家建设部提出了城镇居民住宅―三表出户‖的要求。所以目前国内的很 多水表生产厂家都在进行产品新型化的探索,大部分采用单片机技术,智能水表 系统的实用性研究己成为当前仪表行业的热点之一。 1.2 IC卡预付费水表及优点 IC卡预付费水表是一种集自动供水、自动计量、自动收费、自动控制、显示报 警等多种功能于一体的全新概念的智能水表,是传统水表的换代产品。它主要由发讯基表、电控板和电动阀三部分组成。其工作原理是:以IC智能卡为载体,在管理系统与智能水表间双向传递数据,实现管理功能。用户把预购的水量存于表中,用水时,该表实时采集流量信号,并在预购的水量中扣除。当表内剩余水量一定量时,给出声音报警,同时关闭阀门,这时插用户卡可以打开阀门,提示及时购水。当剩余水量为零时,关闭阀门,用户重新购水插卡打开阀门用水。 使用IC卡预付费水表将会给广大水表用户带来极大的便利,同时也方便了供水管理部门。明明白白消费。要想在普通水表上看清用水量,用户需要很费力地看3,4个指针,甚至有的用户根本就不知道怎么看,抄表员说多少就是多少。IC卡智能水表具有液晶常显功能,中文提示剩余水量、使用水量。避免打扰用户。使用普通水表的不便就是抄表员上门抄表,还有少数不法分子冒充抄表员进行违法犯罪活动,给社会生活带来极大危害。随着生活水平和生活质量的提高,居民对水的要求也越来越高,冷水、热水、中水、纯净水将会逐步进入家庭,多种样式(如双厨双卫)的套房设计,使用水表的数量将会不止1,2具,用户只需一张IC卡就可以轻松搞定多块水表,甚至一卡还可以扩充到管理燃气表、电表、热量表,想想会有多方便~使用安全方便。供水管理部门的管理系统中详细记录用户的所有数据,需要时,用户可以随时查询并打印自己的购水记录。此外,用户如果一旦发生丢卡、损卡等现象时,也不用担心,可以到首次开户的营业所补卡。有效解决收费难问题。IC卡预付费水表独特的预付费功能,决定了用户先付费后用水的形式。因此有效解决了供水部门收费难的问题,保证了供水单位的正常经营。增加了超额用水计费功能。超用水累进加价已在一些城市实行,IC卡也随着时代发展,增加了这项新的功能。如超过规定用水指标,水表会自动将价格调整为加价计费状态。 1.3 IC卡智能水表的发展 智能水表的发展中,最先在上世纪90年代初推出了接触式IC卡,其加密性和抗攻击能力较差;97年第一个代码预付水表产生了;98年射频卡水表研究成功;99年新一代的接触式IC卡水表(采用逻辑加密卡)及CPU卡水表研制成功:2000年TM卡水表产生了;2001年具有防水功能的接触式IC卡水表研制生产。从现有技术来说,非接触式IC卡(射频技术)比接触式IC卡和TM卡技术含量要高,它无外接明口(IC卡插座),不存在被外界攻击的技术隐患;不怕污染、潮湿,适应环境的能力强;没有机械触点磨损的 情况,使用的可靠性高。TM卡比一般的接触式IC卡安全性好一些,它只要两个接触点;非接触式IC卡由于信号发射时难免要有能量损耗,这使它的能量损耗比接触式IC卡要高一些,但这对水表电池的寿命影响不大。 1.4 国内外发展现状 (1)国外发展状况 在国外集中抄表系统的技术发展起步较早,对集中抄表技术的研究起步也较早,且比较深入,从标准的制定到抄表专用芯片的生产都比较成熟,多种集中抄 表技术得到了相对广泛的、成功的应用,在发达国家基本上都实现了远程集中抄表。 对于适合于远程集中抄表的智能水表而言,国外几家大水表公司,如瑞典ABB公司、德国MEILEK公司及以色列ARAD公司推出的总线制智能水表,这些公司定做了一体化芯片(将采集、存储、传输电路集成于一体的专用芯片),固件到表体上。这种水表由于采集计数工作单元均装配在智能水表内并密封,水表的数据采集、处理、存储等基础工作全由水表本身完成,上位机不参与底层数据采集,仅进行通信联系,消除了外界因素对计量的影响。另外因智能水表引出的总线通、断不影响单表数据采集和保存,也不影响其它水表数据的读出,即使本次读数时该表总线出现故障,只需重新挂接好总线,无需重新置数,水表的真实读数仍可继续读出,其安全性、稳定性是比较可靠的。但是成本较高,推广普及较慢。 通过电力线载波技术进行远程集中抄表的智能水表,国外的很多大公司和研究所已经开发出了相对应用于电力线载波技术的器件和元件,例如Intellon、Thomson、Atmel、Enika、national等大公司。电力线载波技术的关键是电力线载波专用芯片,国外很多公司生产出这种专用芯片,使远程集中抄表和控制变得可靠。 瑞典ABB公司开发的无线发射式水表,除安装常规数据采集、处理、存储模块外,另设置无线发射装置,通过远程接收装置接收信号,此种水表不需敷设线路和线路维护、安装方便。但是种无线发射式水表占用频率点需长期交付一定的租用金和管理费。 (2)国内发展状况 相对于国外远程集中抄表和智能化水表的发展,我国在这方面的技术起步较晚,但是发展十分迅速。RS-85总线传输方式已经广泛应用在集中抄表系统中,在我国一些大中城市,无线传输抄表方式也广泛使用,经过技术的改进,这种抄表方式已经取得了明显的效果;电力线载波技术更是发展迅速,尤其在电能表自动抄表方面使用最 多。 对于传统水表出现的缺陷,我国市场上出现了很多种智能化水表,具体分类如图 1.1所示。 ?最早出现的是磁卡式水表,这种水表是IC卡智能水表的雏形,但是由于存在磁卡失磁的问题,这种水表很快被淘汰。 ?九十年代初期,IC卡智能水表成为研究的重点,但是当时水表中电路的主控芯片功耗大、数据采集精度、水表阀门的质量和缺乏国家行业的统一标准等问题使早期的IC卡智能水表发展和推广比较缓慢。随着计算机技术、信息技术、微电子技术、传感器技术的进步和2001年国家建设部颁布了《IC卡冷水水表》的行业标准(CJ/T133一2000),这样促使了IC卡智能水表迅速发展。现在的IC卡智能水表主要有:接触式IC卡智能水表、阶梯式IC卡预付费智能水表、非接触式IC卡(射频卡)智能水表等。 图1.1 智能水表分类 ?接触式IC卡智能水表: 将有数据信息的IC卡插入表具的卡口,通过表具卡座上的接触点和IC卡片上的触点相接触,进行数据信息的读写。根据IC卡的充值金额进行通、断水控制。这种水表目前在市场上比较常见,这种水表的功能比较完善:可以显示用水量、 ;防盗水等功能。接触式IC卡智能水表的缺现行水价、剩余金额等数据;欠压报警 点是:有外露电极,电路只能部分密封,防潮性能差,在潮湿环境下,IC卡会出现数据失误,长期使用触 点生锈、腐蚀。 ?阶梯式IC卡预付费水表(又名分量计费水表和复费率计费水表): 具有水量定额平价、超额高价的自动阶梯式计费功能。这种水表可以根据阶梯水价的划分和水表应用软件的修改,扩展这种阶梯式水表的功能,例如二段式、三段式以及多段式收费功能。二段式收费是第一段定额水量平价,超额水量高价;三段式收费是在二段式的基础上增加了一段鼓励水量,这段鼓励水量低价,这样可以鼓励居民节约用水;多段式收费具有二段和三段收费的功能,而且具有阶梯上行和阶梯下行的收费功能。具有这种功能的水表不仅可以运用在用户用水量计量中,还可以运用在某些工业流体的计量上。 ?非接触式IC卡水表: 采用射频识别技术和IC卡技术,通过无线电磁波传递技术进行信息的读写。非接触式IC卡水表的优点是:第一,没有任何机械触点,因此没有磨损和腐蚀问题。第二,电路全树脂密封,彻底解决了防潮、防水的问题。第三,与接触式IC卡相比,非接触式IC卡无任何外露电极,因此有效地抗击外部的强电干扰。使用非接触式IC卡完全密封无裸露芯片,不怕划伤、不怕磨损更不怕水洗,无需担心芯片脱落、静电击穿、弯曲损坏等问题。但是这种水表的主要缺点是:虽然非接触IC卡是采用无线电波进行数据交换的,因此水表电子控制系统可以进行完全密封,防水性能最好,但是里面的冷凝水却出不来,长期腐蚀线路板。而且非接触式卡本身没有电池,需要设备首先产生电磁辐射,通过感应电为卡提供能源,持卡工作后,通过高频电波与设备交换信息,因此数据交换不可靠,产品成本也较高。 ?远传水表是将用户用水量数据远传给上位机管理系统,现在我国出现了几种远传水表,包括无线远传水表、电力线载波水表和摄像直读式远传水表等。其中: ?无线远传水表: 这种水表除安装常规数据采集、处理、存储模块外,另设置无线发射装置,通过远程接收装置接收信号,此种水表不需敷设线路和线路维护、安装方便。这种无线远传水表利用无线通信设备将数据传输给楼下的集中器,集中器通过有线方式与上位机相连,进行自动抄表。这样减少了单表的成本,不必为占用频率点需交付一定的租用金和管理费。在我国的天津无线远传水表成为自来水表改造的重点,2003年天津安装了25万块远传水表,当时由于技术和管理的原因,这其中很多水表没有正常运行,但 现在经过技术改进和管理的到位,这些水表己经能够正常运行。天津市计划在2005年有63万用户使用无线远传水表,北京市同样有这样的举措。 : ?电力线载波水表 随着我国的低压载波技术的进步发展,出现了利用低压电力线作为通信载体的智能远传水表出现了,但是作为低压电力线载波技术关键的电力线载波专用芯片大都由国外的公司生产。但是我国电网干扰较大,所以这些芯片的可靠使用还存在问题,利用电力线作为通信载体的智能远传水表的广泛应用还需要一些时日。 ?摄像直读式远传水表: 这种水表是在智能水表上安装针孔摄像头,这种摄像头本身有发光二极管,可以全天候拍照,使用寿命长,电流很小,布线方便,使用这种智能水表可以拍摄下水表用水量的图片,通过手持机或者通过有线方式传输给远方的控制室。但是这种远传水表成本较大,在上海等市有一定规模的使用。 1.5 IC卡预付费水表的关键技术 IC卡预付费水表作为一种高科技民用产品。在计量控制精度、功耗、水表防抖动、数据纠错、存贮器寿命延长和安全性等方面必然要有较高的要求。本课题将主要解决以下几个方面的关键技术问题。 (1)射频卡技术 射频卡是一种非接触式IC卡,通过无线方式进行数据传输和数据交换,采用射频卡技术的优点:第一,没有任何机械触点,因此没有磨损和腐蚀的问题;第二,因为电路可以做成全密封,因此有效地解决了防潮、防水的问题;第三,因为可以做成无任何外露电极,因此可以有效地抗击外部的强电干扰。 (2)―零‖功耗技术 近年来,在设计单片机应用系统时,关心系统的―功能实现‖、―可靠性‖等因素的同时,对系统的―低功耗‖特性也越来越重视。尤其在一些电池供电的场合,系统功耗的高低不仅将影响到系统的维护成本,也将对系统的可靠性产生影响。―零‖功耗技术指系统平时自动处于断开状态,系统无任何功耗(0u A)。但当系统处于断开状态时,易受到外部的强电干扰,极易造成微控制器死机。将增设唤醒装置,在受到外部的强电干扰时,提前唤醒系统。 (3)水表防抖动技术 水表在运行过程中,由于管道中水的压力不均匀,管道和水表会发生振动现象。目前国内几乎所有的智能水表都采用磁铁和磁敏元件,由于水表的振动,引起磁铁的抖动;而磁铁的抖动,将引起磁敏元件的多次采样和多次计数,从而引起电子计数和字轮计数不相符合。可采用类似于迟滞比较器的技术,把磁敏元件作成特殊的迟滞器。当使磁敏元件吸合时,磁铁需靠近磁敏元件5mm,但要使磁敏元件断开,则必须使磁铁离不磁敏元件至8mm,这样,在抖动情况下,不会发生乱计数、多计数的问题。 (4)数据自动纠错技术 对由于受到外界的强电强磁干扰下,发生数据混乱的现象,将采取的技术措施 为:增大固态存贮器的容量,把所有数据一模一样地同时存放在五个不同的地方(多处存贮技术),读取数据时,同时从五处读取数据,然后对读取的五处数掘进行分析,只要其中的三处是相同的,就认为数据是有效的(数据表决技术),同时,对出现错误的数据进行纠错处理(自动纠错技术)。 (5)存贮器寿命延长技术 从事技术开发的人员都知道,固态存贮器的使用寿命是有限的,应低于70万次。实际上,存贮器在前10万次使用时,数据工作最为可靠,之后就会偶尔发生不正常现象,因此,每个存贮单元空间应控制在10万次之内。为了解决这个问题,可先将存贮器划分成多个存贮区,设置一个存贮区指针,当使用次数超过10万次时,指针自动转向下一个新的存贮区,这样有效地减少了存贮单元的使用次数,提高了数据可靠性。 1.6 设计的技术指标 主要技术指标: ?工作电压: 锂电池3.6v或者三节碱性干电池4.5V供电。 ?阀门正常工作次数:?1000次。 ?误差:?0.01M3 1.7 本论文的主要内容 本次论文各章的主要内容如下: 第一章:阐述了研究背景和选题的意义,介绍了IC卡预付费水表的分类,以及本次设计的关键技术,最后综述了国内外发展现状。 第二章:主要进行了IC卡预付费水表的整体设计,然后分别介绍了IC卡预付费水表的主要功能,最后进行了设计方案的论证。 第三章:详细介绍了本次设计所用的MSP430系列单片机。 第四章:详细阐述了IC卡预付费水表的硬件设计,即IC卡预付费水表各组成部分的设计,主要包括:主控微处理芯片、水量采集传感器、信息显示、控制阀门以及通信方式等。对其中各个部件的选型和功能做了方案论证。 第五章:详细阐述了IC卡预付费水表的软件设计,给出了各个子程序模块的流程图,以及重要模块的程序。最后介绍了MSP430开发环境,以及软件的调试。 第六章:总结了IC卡预付费水表的功能。 第二章 IC卡预付费水表总体设计 2.1 IC卡概述 IC卡,是集成电路卡(integrated circuit card)的英文缩写,它是将集成电路芯片镶嵌于塑料基片中,并被封装成卡片的形式,其大小和名片相当。国际标准化组织(ISO)为它制定了国际标准ISO7816标准(54mmx86mmx76mm)。IC卡的核心是集成电路芯片,一般为3μm以下半导体技术制造。 IC卡具有突出的3S特点,即Standard(国际标准化)、Smart (灵巧智能化)和Security (安全性)。因而发展迅速,被广泛地应用于移动数据计算场合,如银行、通信、医疗卫生、金融保险、企业内部管理、交通、广播电视、公用事业等领域。 IC卡不仅改进了现有多种卡的使用方法和功能作用,它还不断开创新的应用领域。相信随着时间的推移,IC卡的应用将会越来越广泛,它将会给人们的工作和生活带来更多的方便,带来更大的经济效益和社会效益。 2.2 IC卡分类 (1)根据卡中所镶嵌的集成电路的不同分类 存储器卡:卡中的集成电路为EEPROM(电可擦除可编程只读存储器),它仅有 ? 数据存储能力,没有数据处理能力; ?逻辑加密卡:卡中集成电路为带加密逻辑和EEPROM,在对卡中的数据进行操作前,必须验证卡的操作密码。密码的验证是由卡中的芯片完成的,而不是由读卡终端完成。卡中有一个错误计数器,如果连续三次验证密码失败,则卡中的数据被自动锁死,卡便不能再使用; ?CPU卡:卡中的集成电路包括中央处理器CPU、EEPROM、随机存储器RAM、以及固化在只读存储器ROM中的片内操作系统。 (2)根据卡与外界数据传送的形式分类 ?接触型IC卡:IC卡芯片有8个触点可与外界接触; ?非接触型IC卡:又称射频卡,其集成电路不向外引出触点,另带有射频收/发电路。 (3)根据应用领域分类 IC卡分为金融卡和非金融卡。金融卡又分为信用卡(可使用预先设的透支限额资金)和现金卡。 2.3 IC卡技术 (1)IC卡的读/写技术 IC卡是一种集成电路卡,它的读/写设备是每个IC卡应用系统中不可获缺的周边设备。该设备通过IC卡的8个触点向IC卡提供电源并与IC卡相互交换信息。如图2.1所示。虽然IC卡是从磁卡发展而来的,但它在机器读/写性能远远胜于磁卡,无需往复的机械动作即可完成一机一卡之间的多次信息交换过程,在应用时操作简单,给人们带来极大的便利。 图2.1 IC卡触电位置 按ISO7816标准,部分引脚及其定义功能如下: C1 Vcc: IC 卡 工 作 电 源; C2 RST: 复位信号(可选); C3 CLK: 有关信号的定时与同步; C4 N C: 保留使用; C5 GND: 接地; C6 Vpp: 存储器编程电源(可选); C7 I/O: IC卡中串行数据的输入与输出; C8 N C: 保留使用; (2)IC卡的安全技术 信息安全就是保证数据在确定的时间、地点、条件下,只能被确定的对象所使用。 IC卡正是为了解决数据的安全问题而设计的。它采用的是半导体密码存放和软件加密技术,能够有效的防治卡的非法复制与数据的篡改。 IC卡的信息安全一般具有以下特性: ?保密性:即防止未经授权的使用者获取信息; ?完整性:防止未经授权的信息改变(更改、删除、增加); ?可获取性:防止未经授权的截留信息; ?真实性:即通过一系列的技术措施验证信息的真实性; ?持久性:即长时间信息保存的可靠性与准确性。 (3)数据存储技术 在一个应用系统的使用中,系统必须对所有持卡人建立一份身份与使用的档案。IC卡把与持卡人有关的大量信息存放在卡中,因而使得CI卡使用的灵活性大大增强,交易的实时性也比磁卡明显改善。目前,IC卡的存储容量可达到1MB。 (4)IC卡的技术特点 ?芯片制造技术和工艺 目前,IC卡用芯片普遍采用较为先进的CMOS等集成电路制造工艺,具有较好的电性能及抗干扰性能。其主要技术指标有:写入/擦除次数最少为100000次,数据保存时间最少为10年,抗静电4000V,工作电压为5(1士0.1) V,噪声容限也较高等等。 ?IC卡座的技术要求 IC卡卡座和IC卡应有良好的接触点,应有尽量小的摩擦;具有对应用环境(温度、湿度、振动性及电磁干扰等)的适应性。按有关ISO/IEC7816标准规定,在IC卡的触点和读/写设备的触点良好接触之前,读/写设备不应对IC卡施加有关电信号,以免造成不可预料的损坏。 ?持卡人的正确使用 持卡人的妥善保管和正确使用是延长IC卡使用寿命及可靠性的最经济最有效的手段。具体的说,妥善保管,不随意弯曲,不随意用手接触触点,避免接近强静电、电场环境,注意保持卡表面清洁等。所有这些防护措施都有助于提高IC卡的使用可靠性和延长寿命。 ?IC卡技术结构 1995年国际标准化组织ISO为IC卡制定了通用标准,规定IC卡电路大小必须为5 ?×5?或小于25.2??这种电路里包含一个CPU作为它的主控单元,ROM用来存储卡的操 作系统,EEPROM作为数据存储区。最新的IC卡芯片还包含一个加密的辅助电路。 2.4 IC卡的选用 由于水表中采用IC卡存储用户所购买的用水量等信息,如果IC卡一旦被非法复制、伪造,必将给供水管理造成巨大的损失,综合以上叙述,本智能水表系统中选用是一种带有加密功能、能防伪造、防复制且价格较低并且能够重复使用的 IC卡。 在本系统中选用的SLE4442卡是由SIMENSE公司设计生产的逻辑加密芯片,具有2K的存储容量和完全独立的可编程加密代码存储器(PSC),内部电压提升电路保证了芯片能够以单+5V电压供电,较大的存储容量能够满足通常应用领域的各种要求,SLE4442卡,其优良的性能价格比,近年来在中国被广泛应用于医疗、交通、企业管理以及水、电、气、商业预收费等领域中。 (1)芯片特点 ?用多存储器结构。 ?2线连接协议,串行接口满足ISO7816同步传送协议。 ?芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms。 ?)存储器具有至少10000次的擦除/写入周期,数据保持时间至少为10年。 ?按字节写保护最低32个地址(字节0一31)具有不可逆性。 (2)工作原理: SLE4442卡内含256字节的主存储器(EEPROM)和32位保密存储器(PROM)两部分。主存储又分为保护存储器和应用存储器。保护存储器的地址单元为00H-1FH,应用存储器的地址单元为20H-FFH。保护存储器和应用存储器有所不同,它具有保护功能,可以通过在保护位存储器中写入相应的保护位而得到保护。实行保护后,被保护的单元不能被擦写;若没有被保护,则其使用功能与应用存储器完全相同。另外,保护功能是不可逆的,保护存储器中的某单元一旦被保护后就不能再解除保护,保护位存储器的32位和保护存储器的32字节是相对应的。通常情况下,SLE4442保护存储器中的固化信息如下: ?00H-O3H复位应答信息(ATR); ?O4H-O7H芯片生产厂家代码和卡型编码(出厂时己经固化); ?15H-1AH应用标识。 信息主存按字节擦写,擦除时把某字节的8位全置为1;当被写入时,根据所输入的数据,单个EEPROM单元中的信息逐位被改成0。每次擦除和写入的最短时间间隔为 2.5ms。主存储器低32字节通过32位保护存储器中写入相应的位得到保护,保护位使主存储器相应地址的字节数据不会改变。除了存储器外,保密逻辑控制整个存储器的读写功能。SLE4442卡有四个字节的保密存储区。其中0字节为错误计数器(EC),1-3字节为可编程密码(PSC)。上电后,除了PSC以外整个存储器只能读,不能擦写,只有在密码校验正确时才能进行擦写操作。若连续三次密码校验比较错误后,则卡自毁,从而消除了任何擦写的可能性。 (3)SLE4442的电路时序分析 上电以后,RST端开始为低电平,然后在CLK低电平时跳转为高电平,并保持高电平状态直到CLK完成一个时钟周期,并且在CLK为低电平时,从高电平跳转为低电平完成一次复位操作。在随后连续的32个CLK脉冲输入下,依次在 FO线读出32位四个字节的标头数据。标头数据包含了各种出厂信息。其时序如图2.2所示。复位和应答复位是卡操作前所必须进行的,编程时要准确计算,执行完复位和应答复位,就可以发出控制命令了。 图2.2 时序图 复位操作完成以后,芯片等待输入操作命令。SLE4442卡按命令方式进行操作,读写设备向卡发送由3个字节一控制字节、地址字节、数据字节依次组成的命令。一个开始状态写入三个字节,接着是一个停止状态。CLK为高电平时,I/O口线由高到低 为开始状态,CLK高电平时,I/0口线由低到高为停止状态。共有七条命令分别完成读/写存储器字节内容、读/写保护字、有条件的比较读/写密码等操作。 2.5 智能水表的工作原理 (用户卡),并携带IC卡至 IC卡智能水表的工作原理是,用户必须先购买IC卡 收费工作站交费购水,工作人员将购水量等信息写入卡中。用户将卡插入IC卡水表表座内时,IC卡水表内单片机识别IC卡密码,校验并确认无误后,将卡中购水量与表内剩余水量相加后(初次使用时,剩余水量为零),写入IC卡水表内的存储器,进而控制电阀开通阀门供水。 用户在用水过程中,带磁感器的叶轮在水流的冲击下转动,通过磁传递,带动上表罩上的梅花齿轮转动并使多极齿轮转动,实现机械累计计量,每当计量到0.01m?时由位于0.01 m?处的计量传感器向单片机发出一同步的计量脉冲信号,此时,单片机将输入的有效脉冲计入并计算用水量,IC卡水表内剩余水量就会相应的减少一个计量单位,累计用水量就会增加一个计量单位,LCD显示屏上显示剩余水量等相关用水数据。当剩余水量低于一个定量时(有一个事先设定好的最低剩余水量值),IC卡水表的报警系统启动(蜂鸣器响起),提醒用户及时到供水部门重新购水,这时,LCD显示屏上显示―请购水‖字样。当剩余水量为,1时,单片机驱动电阀自动关闭,切断水源,停止供水并报警。在用户重新购水读卡存入后,再开通电阀供水。在正常情况下,阀门处于开通状态,当遇到剩余水量为,1或者电池电压小于3V等其它特殊情况时阀门会由开通变为关闭状态。 2.6 流量计量的原理 智能水表的传感器主要是用来进行能量转换,即在普通机械旋翼式水表的转盘上加装传感器,将机械装盘转动计数转换成电信号输出给控制微处理器计数.从基本原理上大致可分为以下4种: ?干簧管传感器:在机械水表中加装干簧管和磁铁。利用干簧管的簧片在磁铁的循环作用下循环开闭,从而输出计量脉冲信号。 ?霍尔传感器:在机械水表中加装霍尔元件和磁铁。构成基于磁电转换技术的传感器。安装在计数盘位上的磁铁随着计数转盘运转.每经过霍尔元件一次,即由 霍尔元件输出一个计数脉冲。霍尔开关传感器是基于霍尔效应原理,当霍尔效应片垂直于磁场时,对霍尔效应片施加控制电流,在垂直于电流和磁场方向上就产生电动势,称 之为霍尔电动势。由霍尔片和处理电路构成了集成化霍尔开关传感器,其基本原理是将由霍尔效应片所产生的电动势由内部差分放大器进行放大,然后被送往施密特触发器。当外加磁场的强度小于霍尔开关的磁场工作强度时,差动放大器的输出电压不足以开启施密特触发器,霍尔开关处于关闭状态;当外加磁场的强度大于霍尔开关的磁场工作强度时,差分放大器的输出电压达到或大于施密特触发器的开启电压阀值,霍尔开关处于开启状态,此时若外加磁场强度逐渐减弱,霍尔开关并不立即进入关闭状态,而是当磁场强度减弱至磁场释放点时,使差分放大器的输出电压降到施密特触发器的关闭阀值, 霍尔开关进入关闭状态。 霍尔传感器的主要优点是:可靠性强、抗干扰性能好、温度特性优良、电源电压范围宽、输出电流能力强、兼容性好、能与CMOS集成电路直接接口,动作响应时间短以及体积小巧、寿命长和使用方便等。但是,从上述对霍尔开关传感器的原理描述中可以看出,霍尔开关传感器中必须对霍尔效应片输入控制电流、同时其内部还有差分放大器等具有较大功耗的器件,典型的集成式霍尔开关传感器耗电为mA级,因此,霍尔开关传感器不适合应用在本低功耗设计中。 ?光电传感器:在机械水表的转盘处安装一个光电转换器。在转盘上有一条沟槽,转盘每转一圈。沟槽经过光束时转换器完成一次光电转换,输出一个计数脉冲。当光照射在半导体材料的PN结上时,PN结的两侧将产生光生电动势,如外部用导线连接,将有光电流流过,通常的光电传感器都是基于这一原理。目前的光电传感器就是利用上述原理,以光电二极管为例,把发光二极管和光电二极管相对放置便组成了光电检测电路,当被检测物体通过二者之间时,由于光电二极管所接受的光的强度发生变化,其产生的光电动势也发生变化,将这种变化进行放大和处理,就能产生反映有无物体通过二者之间的电压脉冲信号。然而, 由于在此结构中必须用到发光二极管(对于不需要发光二极管的光电检测传感器,功耗得到了降低,但是,其容易收到环境光线变化的影响,可靠性和检测精确度较低),因此,其功耗也较高,不宜用在本低功耗设计中。 ?编码传感器:其原理是把字轮端面圆周等分成若千扇区,各个扇区都设有与之对应的编码,在采集数据时接通电源,通过红外线探头得到字轮的读数值(即为直读式)。它无机械接触平常不需要带电工作。其缺点是由于用编码,所以传输中必须保证所有的码值都被准确无误的识别出,否则就容易出错。再一个原因是主要用于干式 水表,而干式表的精度目前还不是很高(低于湿式表),因此其应用受到限制。 干簧管由于不需要供电,使得信号存储器的供电可以采用高能干电池,无需交流电,性能好的干电池配合存储器的设计通常可以使用5年以上。它对一般的空间电磁干扰不敏感,但在近距离的强磁场作用下会失灵,不过这种情况一般发生在恶意行为中。由于干簧管组成的智能水表系统比较省电,其环保性能较好,同时电源本身不产生或接受干扰,对系统提高可靠性较为有利,而且在这几种传感 器中干簧管的静态维持电流最小,在干簧管两触点不接触的情况下,静态维持电流几乎为零,仅仅在接触的瞬间有极小的消耗,可见在本智能水表系统中采用干簧管传感器将大大减低系统的功耗。霍尔元件与光电管虽然灵敏度高又无触点,但都需要供电,这使得整个系统供电问题变得较为突出,不仅要考虑用交流市电,还要考虑后备电源。 本系统的智能水表中加装了干簧管和磁铁,干簧管固定安装在计数转盘附近,永磁铁安装在计数盘上,转盘每转一圈,永磁铁经过干簧管附近一次,即产生一个计量脉冲,如一个每转对应流量为0.01m?的水表,一个计量脉冲就对应0.01m?的流量。根据这一原理,我们可确定流量的计算公式为: Q= K×N,其中,Q为流量,m?;K为基表系数,0.01m?/r;N为转数。 干簧管在一个通电线圈或永久磁铁的磁场作用下,两个簧片受感应,生成一个北极N和一个南极S。簧片受磁场吸力产生弯曲直至吸合,当磁场消失后,依靠簧片本身的弹力而断开。 数据采集部分 将采样得到的计数脉冲进行实时累加,将累加值乘以基表系数即得到累计流值,再将累计流量值从十六进制数转换成十进制数,然后进行从高到低的逐位拆分并转换成ASC?码依次存放到数据缓冲区。 2.7 智能水表方案 (1)智能水表的功能 作为供水计量、自动计费的IC卡智能水表应具有以下功能: ? 根据所购水量,自动执行供水、停水。 当用户将购的水表卡插入水表时,水表内的系统在识别确认该卡有效后,自动打开阀门,进行正常的供水。一旦用水量达到水表卡所购水量,水表将自动关闭阀门,切断供水。 ? 具有自动报警功能。 为了方便提醒用户及时预交水费,当用水量剩下最后一定量时,水表的LCD显示屏上应显示―请购水‖等字样提醒用户及时购水。当电压低于3V时,水表的LCD显示―低电压‖提醒用户及时换电池,蜂鸣器发出响声提示用户。 ? 可随时提供累计用水量、本月用水量及可用水量。 为了方便用户随时了解掌握自己的用水情况,用户可以通过水表的LCD液晶显屏,查看累计用水量、本月用水量及可用水量(指卡表内所剩余的水量)。 ? 可以对购水量进行累计。 当用户插入购水后的IC卡时,水表自动将水表剩余的水量与本次购水量进行累计。LCD液晶显示屏上显示累计购水量。 ? 具有自动保护功能。 当水表被擅自拆卸,或遭到不明破坏时,水表内自动保护系统启动将自动关闭阀门,停止供水,并记录拆卸时间,以备查。 ? 用水数据回写功能。 用户将卡插入时,智能水表将用水数据回写到IC卡中。用水数据包括累计用水量、剩余水量、关阀水量等。 ? 加密功能。 对IC卡及水表内的信息进行加密,做到一卡一表,使系统不易被仿制和非法 使用。 (2)智能水表的总体设计方案 根据上述功能的要求,确定系统的方案如下: IC卡智能水表系统主要由微处理器、流量传感器、电动阀门、IC卡读/写器、LCD液晶显示及电源等组成,硬件结构图如图2.3所示: 图2.3 智能水表原理图 ?微处理器 采用TI公司的超低功耗MSP430F413型16位单片机。详细介绍见第三章。 ?阀门 采用电阀门,开关由电脉冲控制,使得对阀门的开关只是瞬时供电,另一方面由于阀门开关借助了水流的动力,使得其开关电流很小,从而大大降低了系统的功耗。 ?流量传感器 流量传感器是水表中的计量部分,是实现正确计量的基础.考虑到现有的水表中,旋翼式水表结构简单,测量范围宽,灵敏度高,外形尺寸小,精确度已被广大用户所接受,因此本水表的流量传感器还是基于机械水表的旋翼式结构,而通过在叶轮上安装磁铁与微型干簧管等机构,将叶轮的旋转转换成电脉冲信号,以实现频率脉冲计数,进而实现水流量的计量。其耗电量小,并具有结构简单、精度高的优点。 ?IC卡读/写器 IC卡读/写器是IC卡水表的输入接口。当IC卡插入读/写器时,首先读入的是卡中的密码,以此判断IC卡的合法性。水表在判断了卡的合法性后,读入所购水量并与水表内剩余水量累加,同时将卡上购水量单元清零,回写水表上用水量、剩余水量等信息,以便下次购水时自来水公司读取,实现水表信息的回馈功能。 ?LCD显示 液晶显示器作为水表的输出接口,显示剩余水量、电池状态及电磁阀的开/关状 态等信息。它们的有效工作时间都比较短。用户看完后,没有必要让液晶显示一直工作;为此,可利用水表上的防水盖提供信号。即当盖子关闭时,使它们停止工作,从而达到节省能量的目的。 ?实时时钟 本系统采用实时时钟芯片,可进行计时。把智能水表发生特殊情况的时刻准确无误的记录在时钟芯片中,方便日后的查询。 ?供电电源 本水表采用锂电池3.6v或者三节碱性干电池4.5V供电。 第三章 MSP430系列单片机介绍 3.1 MSP430系列单片机简介 近几年来,随着微电子技术的日新月异,世界上的许多芯片制造商纷纷推出自己的新产品,品种极为丰富。由于竞争激烈,其中低功耗、本身具有液晶显示驱动器与看门狗定时器的多功能芯片将成为主流器件。全球著名DSP制造商一美国德州仪器TI公司所生产的新型芯片MSP403系列,以其独特的性能和丰富的片内外设成为电子技术设计开发人员的新宠。 3.2 MSP430系列单片机功能特性 TI公司MSP430系列单片机是一种超低功耗的混合信号控制器,其中包括一系列器件,它们针对不同的应用而由各种不同模块组成。它们具有16位RISC结构,CPU的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率。灵活的时钟源可以使器件达到最低的功率消耗。数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在小于6µs的时间内被激活到正常的工作方式。MSP430系列单片机的16位定时器是应用于工业控制如纹波计数器、数字化电机控制、电表、水表和手持式仪表等的理想配置,其内置的硬件乘法器大大加强了其功能并提供了软硬件相兼容的范围,提高了数据处理能力。 MPS430单片机具有如下特点: (1)低电压、超低功耗 MSP430系列单片机,在1.8-3.6V电压、1MHz的时钟条件下运行,工作电流(在0.1- 40µA之间)因不同的工作模式而不同;具有16个可以任意嵌套的中断源,使用灵活方便;将CPU置于省电模式时,用中断方式可唤醒程序,其过度响应时间小于6µs,编制出的源代码程序实时性较高。 (2)强大的处理能力 MSP430系列单片机为16位RISC结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算:还有高效的查表处理方法;有较高的处理速度,在晶振频率为8MHz驱动时,其指令周期为125µs。这些特点保证了可编制出高效率的源程序。 (3)系统工作稳定 上电复位后首先由DCOCLK启动CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用作CPU时钟MCLK时发生故障,DCO会自动启动,以保证系统正常工作;如果程序跑飞,可以用看门狗将其复位。 (4)丰富的片内外设 MSP430系列单片机的各成员都集成了较丰富的片内外设。它们分别是以下一些外围模块的不同组合:看门狗(WDT)、定时器A(Timer-A)、定时器B(Timer-B)、比较器、串口0、1(USARTO、1)、硬件乘法器、液晶驱动器、10/12位ADC、 48个1/0端口、基本定时器(Basic Timer),可在线仿真的FLASH内存,7路PWM输出,以及内嵌的LCD驱动等。 (5)高效的开发方式 MSP430支持在线仿真和编程,所配编译器功能强大。具有FLASH存储器型的单片机,利用其本身具有JTAG接口,可以在一台PC机及一个JTAG控制器的帮助下实现程序的下载,完成程序的在线调试,实时修改片内寄存器和存储器的内容,对开发人员来说将大大提高程序的调试效率。MSP43O系列器件均为工 -+85? ,因此很适合作为便携仪表和水、电、热业级的,运行环境温度为一40 表的主控芯片。 TI公司是全世界生产信号处理单片机(DSP)的最大的厂商,MSP403系列单片机是在DSP的基础上发展起来的,因而继承了DSP的一些优点,比如说用户可以选择具有硬件乘法器的MSP430系列单片机,这一点使得它不但功耗低而且速度快,更加适合于高速的数据处理。MSP430系列单片机的另一个重要特点是晶振系统,系统在运行时主频高达3MHz,这是因为其内部使用了数字控制震荡器DCO(Digital controlled oscillator)和锁频环技术FLL(Frequency Locked Loop)将低速时钟晶体产生的32768Hz晶频倍频到2MHz一3MHz,用户通过程序可以选择低频或高频,这样可以根据实际需要来选择合适的系统时钟频率,从而更合理地利用系统的电源,才使得整个系统的超低功耗成为可能,这一点对于电池供电的系统来讲至关重要。 3.3 MSP430F413型单片机 (1)CPU MSP430F413型单片机CPU具有一个16位的RISC精简指令计算机结构,对应用是高度透明的。所有的操作,除了程序流程指令,都是通过源操作数的7种寻址模式和目 标操作数的四种寻址模式的组合对寄存器进行的。 CPU集成了16个寄存器,减少了指令执行时间。寄存器到寄存器操作的执行时间是一个CPU周期。4个寄存器(程序计数器、堆栈指针、状态寄存器、常数发生器)用作特殊用途,其余的都可以用作通用寄存器。外围模块通过数据、地址、和控制总线与CPU相连。通过所有存储器操作指令可以很容易的对它们进行控制。 (2)工作方式 通过对不同模块操作模式和CPU状态的智能化管理,MSP430芯片的工作方式可以适应多种超低功耗的需求,即便在中断处理期间也是一样。MSP430单片机的各个模块运行是完全独立的,定时器、输入/输出端口、A/D转换、看门狗、液晶显示等都可以在CPU休眠的状态下独立运行。当需要CPU工作时,任何一个模块都可以通过中断唤醒CPU,从而使系统以最低功耗运行。这一特点是MSP430单片机最突出的优点,也是与其它的单片机的最大区别。一个中断事件可以把系统从各种低功耗方式唤醒并且通过RETI指令返回到中断以前的工作状态。系统适用的时钟信号有三种ACLK(晶振的频率信号)、MCLK和SMCLK(ACLK的倍频信号)。具体有以下六种运行模式: ?活动模式AM:可由软件设定,所有的时钟都是活动的。 ?低功耗模式0(LPM0) ?低功耗模式1(LPM1) ?低功耗模式2(LPM2) ?功耗模式3(LPM3) ?低功耗模式4(LPM4) 系统处于何种工作模式下主要取决于状态寄存器SR中的4位用于控制CPU和 OSCOff、SCG0和SCG1。如果用软件系统时钟发生器的控制位,即CPUOff、 将4位控制位全部复位,这时系统进入活动模式(AM),CPU、时钟处于活动状态。不同的运行模式由软件控制内部时钟系统来控制。表3.1是各种低功耗工作模式的控制位一览表。时钟系统通过硬件和软件的大量组合达到应用的最低功耗和成本最优化。由下表可见,在低功率方式下,CPU均停止了工作。MSP430系列在电源为3v时活动方式下的工作电流大约为300µA,而在低功耗模式3(LPM3)下则可低到0.9µA。在任何低功耗方式下均支持中断操作,一旦中断发生即可将系统从当前低功耗模式中唤醒进入活动方式,而且可在中断处理结束后返回原先的低功耗方式。在LPM3方式下,32768Hz晶振、ACLK、 基本定时器、复位逻辑和部分选定的外设保持工作。 表3.1 各种低功耗工作模式的控制位 (3) FLASH存储器 FLASH存储器包括16段主存储器(每个段152字节)和2段信息存储器(A和B,每个段128字节)。段0到段15可以依次擦除,也可以每个段单独擦除;段A和段B可以单独擦除,或者和段0-15一起擦除,段A和段B也叫做信息存储器。 MSP430F413有256BRAM,8KBFLASH存储器。表3.2所列为其存储器的组织的特性和说明。 表3.2 存储器的结构组织表 (4)振荡器和系统时钟 MSP430F413芯片的时钟系统支持基本时钟模块,包括支持32768Hz晶振、一个内部数字控制的振荡器(DCO)和一个高频晶体振荡器。基本时钟模块的设计是为了同时满足低成本和低功耗的要求。内部DCO可以在6微秒内快速打开时钟源并稳定。 本系统可以使用三种时钟: ?辅助时钟(ACLK),来自32768Hz晶振或者高频晶振。 ?主时钟(MCLK), CPU使用的主时钟。 ?次主时钟(SMCLK), 有外围模块使用的子系统时钟。 ?ACLK/n,ACLK,ACLK/2,ACLK/4或者ACLK/8的缓冲输出。 (5)数字I/O MSP430F413中有6个I/O端口—端口PI到P6: ?所有I/O位可以独立编程 ?任何输入、输出和中断条件的组合都是可能的 ?P1、P2端口的所有8位可以选择边缘中断输入 ?所有指令支持对端口控制寄存器的读/写 (6)LCD驱动 LCD驱动器产生LCD显示器所需的公共端和段信号。LCD控制器使用专用数据存储器来保持段驱动信号,MSP430F413可以驱动96段,可以产生静态、2—MUX、3—MUX、4—MUXLCD模式的公共端和段信号。 (7)看门狗定时器 单片机的抗干扰能力有限,尤其是处于工业现场的仪器仪表,常由于电压不稳、电弧干扰等造成死机。为了保证系统在遭受干扰后能自动恢复正常,看门狗定时器是很有利用价值的,其主要功能是在发生软件问题后进行控制系统的重启。如果选定的时间间隔溢出,系统产生复位。如果看门狗功能应用中不需要,这个模块可以配置为 间隔定时器在选定的时间间隔产生中断。 ? 看门狗模式 上电复位或系统复位后,自动进入该模式,WDTCTL和WDTCNT两寄存器中的各位全部清零。初始状态WDTCTL寄存器定时时间间隔为32ms,此时系统频率为1MHz。必须用软件定期向WDTCTL的CNTCL位写入‘1’使WDTCNT复位以防止时间间隔溢出,否则在软件出现问题时系统复位产生,系统上电清零有效。系统在上电清零后从同样的程序起始处开始执行。 ? 定时器模式 将WDTCTL的TMSEL设置为‘1’便工作在定时器模式。可产生选定时间的周期性中断,也可用软件向WDTCTL的CNTC写入‘1’开始定时。需要注意的一点是在改变时间 间隔的同时使用计数器清零指令。 ? 低功耗模式 当系统不需要WDT做看门狗和定时器时,可用关闭WDT以减小功耗。控制位HOLD=1时关闭WDT,这时看门狗停止工作。该模式采用辅助时ACLK32768Hz,看门狗定时器继续工作,在系统复位或者内部定时器中断产生时会―唤醒‖CPU。 (8)比较器A 比较器A模块主要功能是支持精密的斜坡模拟/数字转换、电池电压管理和外部模拟信号的检测。 (9)基本定时器1 基本定时器1有两个独立的8位定时器,可以组合在一起构成一个16位定时器/计数器。两个定时器都可通过软件读写。基本定时器1可以用来产生周期性中断和LCD模块所需的时序信号。 3.4 MSP430F413引脚图 图3.3 MSP430单片机引脚图 第四章 硬件设计 4.1 智能水表的主系统 按照上面章节的论述及设计方案,设计的硬件主框图如图4.1所示。系统主要 器、IC卡电路、液晶显示、流量计数、电动阀由这样一些功能模块组成:微处理 门控制、电源管理、报警电路、防拆电路、时钟电路等部分。工作电压为干电池4.5V。 图4.1 系统硬件主框图 由于这种智能网络水表需要用电池作为动力,所以低功耗成为本次设计考虑的重点。 ?选用超低功耗的主控芯片; ?采用LCD显示方式; ?设计中使用到的其它芯片和器件在满足要求的情况下,尽可能选用低功耗的产品。 4.2 主控芯片 现在是市场上比较常用MCS-51系列单片机是8位单片机,性能比较完善,技术比较成熟,但是功耗较大,内部的集成模块较少,需要外扩的电路部分比较多,所以MCS-51系列单片机不合适作为以电池为动力的智能水表的主控芯片。 由于智能网络水表采用电池供电,因此本次设计选用美国德州仪器公司(TI)推出的MSP430系列超低功耗16位混合信号处理器MSP(Mixed signal Processor)。 4.3 低电压检测电路 本系统采用三节干电池4.5V作为供电电源,使用一段时间后,干电池会放电, 为了保证整个系统,特别是阀门的正常工作,需要对电源进行实时检测,当电能不能满足系统要求时,及时报警提醒用户更换电池,以免造成不必要的麻烦。 为提高智能水表运行的可靠性和安全性,设计中采用电源电压实时监测电路。如图4.2所示。电压检测芯片采用日本理光R31llH30lC低电压检测芯片,R31llH30lC输出电压为3.OV,最大工作电流为3.0µA,一般情况下的工作电流仅为1.0µA,高精度集成,完全满足系统低功耗设计的要求。当电源电压正常时,芯片的输出脚输出为高电平;当电源电压小于3.0V时,输出脚输出低电平,即P1.1输出低电平,P1.1下降沿中断有效,单片机检测到该信号时即转入中断服务程序处理,这时LCD液晶显示―换电池‖字样,同时蜂鸣器报警提示用户更换电池,MSP430F413内部基本定时器使能中断,定时1S检测电压是否回升,如果回升蜂鸣器再次发出一声警报提示,LCD液晶上的―换电池‖显示字样清除。如没有回升,则关闭阀门,直到用户更换电池,才再次开启阀门供水。由于MSP43OF413工作用电压是3.OV,所以需要一个电压转换芯片将4.5V电压转换成3.OV供MSP43OF413和其它外围模块使用,本电路中用的是RH5RL3OAA-电压调整芯片,它具有高精度的输出电压,工作电流极低只有1.1µA。 图4.2 低电压检测电路图 4.4 IC卡接口电路 IC卡采用的是德国西门子公司的SLE4442逻辑加密卡。IC卡接口电路如图4.3所示。S1,S2两个端口之间接有一个常开开关,S2接地,S1接单片机的中断口P6.6,如果有IC卡插入,则开关闭合,S1,S2接通,S2 (P6.6) 变为低电平来触发中断,从而触发插卡中断程序来进行相应的操作。IC卡卡座选用的是常开型卡座,当IC卡插入时,迫使卡座中的两个脚短路。 图4.3 IC卡接口电路 4.5 液晶显示电路 液晶的驱动方式有以下四种: ?静 态 驱 动 方 式; ?2MUX 或 1/2占空比、1/2偏压; ?3MUX 或 1/3占空比、1/3偏压; ?4MUX 或 1/4占空比、1/4偏压; MSP430F413单片机的液晶驱动模块有24个段极(S0-S23)。4个公共极(COM0-COM3)输出,在4路复用(MUX)的情况下够驱动96个LCD显示段。作为外围模块,LCD驱动器占有16个8位寄存器,其中1个(30h)用作LCD控制与方式寄存器,另外15个(31h-3Fh)用 作显示存储器。 本液晶采用的是LCD57ll,低功耗段式液晶屏,该显示器具有汉字显示和8位数字显示,具有20个段位引脚和4个COM引脚,满足配合单片机的液晶驱动模块显示数据的需求。LCD57ll的引脚与段位的关系如图4.4所示。液晶显示器的连接如图4.4所示,S0-S19、COM0-COM3分别与MSP430F413的S0-S19、COMO-COM3相连。显然这种显示器必须采用4路复用的控制方式才能显示完整的数据,并且这种方式也是最简单、方便的显示方式。液晶显示模块主要由显示缓存和LCD控制器/驱动器组成。显示缓存的各位与LCD段对应。LCD显示由软件解码,将BCD码或二进制码转换成各组COM/SEG的显示信息。显示的位信息与一条COM线和一条SEG线对应。如果置位相当于对应的段显示,反之,则不显示。 控制器/驱动器由基本定时器BT控制其扫描频率,含有驱动外部直接连接的LCD的全部功能模块,其功能为自动从显示缓存中读取数据,并产生公共端信号COM和段信号SEG。 为了降低系统功耗,延长液晶显示屏的使用寿命,LCD液晶平时处于关闭状态,只有当卡插入时,并确认其有效时或其他设定的情况时,LCD才开启并显示剩余水量、阀门状态等信息。 图4.4 液晶显示接口电路 LCD液晶显示的真值表如表4.5如下所示: 表4.5 液晶显示真值表 单片机寄存器或存储器的数据一般是二进制方式的,因此必须在显示前将数据转换为BCD码,在程序存储区保存编码对照表,采用查表的方式进行编码方式的转换。最后转换成7段码方式,逐字节保存到LCD显示缓冲区。表中A为01H, B为02H,C为10H,D为04H,E为80H,F为20H,G为08H,H为40H。例如某位显示2,其对应的段是A、B、G、 D,显示段码为A+B+G+E+D=SFH。 E、 4.6 脉冲采集电路 智能网络水表的脉冲采集装置对于仪表本身的测量精度非常重要,是智能网络水表设计中较为关键的环节。目前在智能化水表中使用的传感器主要有光电传感器、霍尔传感器、干簧管传感器等。 (1)光电传感器: 光电传感器属于非接触传感器,可以进行隔离和密封,光电传感器的基本原理是:在表的转盘处装一个光电转换器,转盘上有一条槽,转盘转一圈时,沟槽经过光电转换器,完成一次光电转换,输出一个脉冲。但是光电器件的电流消耗大,不适合以电池为动力的智能水表。 (2)霍尔传感器: 霍尔传感器属于磁性传感器,霍尔元件型基本原理是在普通转盘计数的水表中加装霍尔元件和磁铁,即可构成基于磁电转换技术的传感器。霍尔元件固定安装在计数转盘附近,永磁铁安装在计数盘位上,当转盘每转一圈,永磁铁经过霍尔元件一次即在信号端产生一个计量脉冲。为抵抗干扰,半导体输出端增加比较器,因此消耗电流较大,一般不宜作为智能水表计量的数据采集器。 (3)干簧管传感器: 在普通转盘计数的水表中加装干簧管和磁铁,干簧管固定安装在计数转盘附近,永磁铁安装在计数盘位上,当转盘每转一圈,永磁铁经过干簧管一次即在信号端产生一个计量脉冲。干簧管传感器的转换使用方便、成本低、体积小、重量轻。 干簧管工作原理如图4.6所示,当磁铁靠近干簧管时,磁力大到能克服簧片的弹力时,簧片A和B吸合短接;当磁铁远离干簧管时,吸引力小于弹力时弹片就分开,即发出一个脉冲。 图4.6 干簧管原理图 最初使用的单干簧管传感器会影响水表用水量的计量精度,这是因为水表是根据 基表的转芯与干簧管的吸合次数来计量脉冲的,以下三种情况影响单干簧管传感器数据的采集精度: ? 是由于水管发生水锤现象等因素造成的。在供水管道系统中,如果发生液流瞬交 流动,管流的流速、压力等参数均随时间变化,其变化幅度取决于管流初始流态、管系特征、瞬变形成条件等,因流速突然变化而引起的一系列急剧的压力交替升降的水力冲击,管道将发生剧烈振动和较大的声响,这种现象称为水锤现象。正是这种剧烈的抖动造成了干簧管簧片在很短时间里,频繁地吸合,发出大量的脉冲,造成了测量精度的不准确。 ? 当基表的转芯停止转动,并且停在干簧管吸合的临近点时,会造成干簧管的颤动, 从而增加了用水量的计量。 ? 单干簧管管易受外接强磁的干扰,主要是人为的对水表进行强磁干扰,也造成了 采集精度的误差。 针对以上出现的现象,本次设计使用了双干簧管传感器,即当检测到一个干簧管吸合时,先记录下来,再检测另一个干簧管,只有检测到另一个干簧管吸合后才认为 信号有效,也就是说单一的一个干簧管即使多次闭合也无效,从而有效地解决了临界 点颤动而误发信号的问题。同时还可以有效防止人为附加磁铁而造成的计数不准,因 为当微机检测到两管同时闭合时,便认为有外磁干扰,停止计数,同时报警。 在本次设计中,双干簧管传感器双计数脉冲输入,水表本身有四根线从水表引出,其中两根数据线,两根地线,通过数据采集接插件和MSP430F413主控芯片的管脚相连,具体连线如图4.7所示。两个容量为104的电容用来消除双干簧管闭合时产生的抖动。 图4.7 双干簧管与MSP43OF413片的连接 该表计数机构与测量机构经磁藕合传动,每流经10升水时产生一脉冲,然后将采集到的脉冲进行累计处理。本次设计采用的水表基表是符合GB/T778.1~3-1996标准的单流旋翼式冷水水表,技术参数如表4.8所示。 表4.8 单流旋翼式冷水水表技术参数 4.7 阀门控制电路 智能网络水表中,控制阀门也是关键的部分,要求压力损失小、体积小、功耗低,达到国家建设部颁布的水表行业标准要求(CJ/T133一2000)。由于智能水表只能采用 电池供电,而且要求长期稳定工作。如果阀门功耗大,只能采用大容量电池,不仅增 加了成本,而且智能水表体积也必须增大,并且电池瞬间供电能力有限,功耗大到一 定程度增加电池容量也不能解决问题。 智能化水表中的控制阀门有很多种,有电磁阀、普通球阀、先导阀、电动阀等。 (1)电磁阀: 且压损大,虽然功率消耗小、体积小,但一次 此类阀门抗外界敲击能力较差, 驱动电流量很大,并且这种阀门长期工作的可靠性差,容易损坏,给厂家带来很大损失。 (2)普通球阀: 功耗大,难以达到行业标准。 (3)先导阀: 先导阀门是利用阀门进出口压力差通过导阀放大来控制主阀开关动作。由主阀、导阀、电机、减速器、阀芯等组成,这种阀门的优点是先导阀的阀门开启和关闭的主要驱动力来源于管道内介质的压力,因此阀门开、关所需起动力矩及工作力矩很小,类似晶体管放大原理或杠杆原理,它的阀瓣是橡胶的,属软密封,留有一定压量,因此密封性好,先导阀安装简单,功耗低,但是压力损失大,先导阀小孔容易被杂物堵塞造成阀门失效,而且结构较复杂,同时成本稍高。 (4)电动阀: 主要有电动球阀、电动陶瓷阀、电动先导阀等。 ?电动球阀: 它由电机、减速器、阀杆、球体、阀体组成,结构上与普通球阀基本相同。动作原理非常简单,当电机接到控制器指令,启动后经减速器减速,通过阀杆运动带动球体旋转,球体中间开孔,当孔与阀体通孔同轴时,阀门全部打开,当球体再转动时阀门关闭,实现对水流通断的控制。这种阀门的优点是结构简单,动作也不复杂,零件少,生产制造容易,成本较低;压损很小。它的缺点是起动力矩及工作力矩大,电机工作电流比较大。 ?电动陶瓷阀: 它的工作原理与球阀类似,只是阀门是平面结构。 ?电动先导阀: 它是通过小功率电机带动磁柱运动先打开先导孔,通过有压力的水进行进入先导孔,利用水压打开阀门,所以一般来说它的功耗要小一些。但目前它的结构比较复杂,加工成本相对要高一些,并且先导孔比较小容易堵塞。 以上是各种阀门的介绍和比较,阀门的选择除了要考虑阀门本身的性能、功能和 成本外,还要考虑供水管道中水质的问题。综合比较后,在本次设计中采用电动球阀作为水表的控制阀门。其工作原理是:采用小功率电机通过减速,直接驱动球阀开闭。它的优点是结构相对简单,水阻小。它的缺点是球阀的球环加工精度要求高,使用一段时间后由于水垢或微颗粒等使转动阻力增大,但可以采用每月定时开关阀门几次来解决这一问题。这种阀门技术比较成熟,在使用过程中, 阀门开、断的次数不多,所以阀门的使用不会产生很大的功耗。 在本次设计中,水表电机引出5根线,其中两根线作为电源线,两根线作为阀门开关的检测线,一根作为地线,这5根线通过电机接口和MSP43OF413芯片相连,具体电路图如图4.9所示。 当P1.5为高电平,P1.6为低电平时,三极管Q3基极为高电平,Q3、Q5导通,这时Q2基极为低电平,Q2导通,Ql、Q4、Q6截止,Motor2为高电平,Motorl为低电平,电流经VCC通过Q2、电阻R12、Motor2、电机、Q5至地,这时电机正向转动,阀门打开;当P1.6为高电平,P1.5为低电平时,这时Q1、Q4、Q6导通,Q3、Q2、Q5截止,Motor1为高电平,Motor2为低电平,阀门关闭。当电机停止转动时,电路中会有反向电流,例如电机正向转动停止时,方向电流通过二极管D2、D3流走。值得注意的是,电机启动电流稍大,但是电机在运转时电流较小,在阀门开到位和关到位时,电机的堵转电流很大,如果长时间运行电机容易被烧坏,因此在阀门控制的软件设计时,要特别注意对于阀门开到位和关位信号的检测,以防止电机长时间堵转运行,烧毁电机。 在本次设计中,采用天津市中天电子发展有限公司的微型电动阀门,这种阀门的技术参数为: 阀座密封材料:硅橡胶+四氟; 阀门流通能力:球阀几乎无水力损失; 耐介质温度:冷水阀<50?,热水阀<50?; 工作电压:直流3-5V; 旋转方向:正反运转; 控制方式:开关两位; 空载电流:?50mA; 运行电流:?50mA?10mA(0.6Mpa) ?80mA?10mA(1.0Mpa) ?100mA?10mA(1.5Mpa); 执行器:民用级开关(10000次); 防水性能:IP56; 工作压力:1.0Mpa; 开关时间:5-10S; 图4.9 阀门控制电路图 4.8 实时时钟芯片接口电路 时间是智能水表计量系统检控的一个重要数据,当表出现特殊情况时如:插卡,非法打开表盖,阀门关闭和开启等异常时刻时,实时时钟芯片都能准确无误的记录下来,方便日后的查询;同时对我们设计多费率的水表,有效监控水源的使用 情况具有重要意义。 在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录一些具有特殊意义的数据和其出现的时间。记录、分析这些特殊意义的数据出现时刻,对测 控系统的性能分析、有效监控及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间:若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机资源。而在系统中采用实时时钟芯片则能很好地解决这个问题。 本系统采用美国DALLAS公司生产的低功耗时钟芯片DS1302产生时间信号,DS1302 是一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5v,支持低电压(3v)工作。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302 DS1302与单片机的连接仅需要三条线,即SCLK、I/O、RST。如图4.10所示。VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2口在双电源系统中提供主电源,VCC1在这种运用方式下连接到备份电源,以便在没有主电源的情 况下保存时间信息以及数据。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于 VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC2供电。 图4.10 实时时钟电路 4.9 上电复位电路 由于MSP430系列单片机具有上电复位功能,因此,上电后只要保持RST为高电 平即可。在RST管脚接上47K电阻和0.lpF的接地电容可以使MSP430单片机复位更加可靠。但是,由于MSP430单片机具有极低的功耗,如果系统断电后立即上电,那么系统中的电容所存储的电荷来不及释放,此时系统电压不会降到最低复位电压以下,故MSP430单片机不会产生上电复位,RST管脚上没有足够低的电平使MSP430单片机复位。为了解决这个问题,这里增加了一个1N4814二极管,这样断电后存储在复位电容中的电荷就可以通过二极管释放,从而加速电容的放电。如图4.11所示。 图4.11 上电复位电路 4.10 防拆电路 在智能网络水表的设计中,为了防止用户拆卸水表,所以在电路中设计了防拆卸电路,在电路中加入一个按键,平时处于按下的状态,当水表被拆卸时,这个按键弹起,这时水表关闭阀门,这样大大增加了水表的安全系数。防拆电路如图4.12所示。 图4.12 防拆电路 4.11 报警电路 报警电路由限流电阻、三极管、喇叭组成。如图4.13所示。 图4.13 报警电路 第五章 软件设计及部分程序流程 5.1 系统软件开发调试环境 IAR的Embedded wobkrench是一个适应各种不同CPU的目标系统开发的集成环境。它提供方便且功能丰富的窗口界面,使开发和调试的效率大大提高。IAR的C430编译器提供了C语言的标准特性,并且添加了许多为利用MSP43O系列单片机的特性而设计的扩展功能。C430编译器与MSP430汇编器继承在一起提供,共享连接器和库管理工具。它提供以下特性: (1)语言特性: ?与ANSI-C规格一致; ?有可应用于嵌入式系统的标准库函数,有可选用的源代码; ?与IEEE标准兼容的浮点算法库; ?具有针对MSP430特性的扩展性能; ?C程序可以与汇编子程序连接; ?能识别多达25个有效字符的符号; ?可以有多达32000个外部符号。 (2)编译性能: 编译速度快; ? ?用面向存储器的设计避免了暂存文件及覆盖技术; ?编译时进行严格的类型检查; ?连接时进行严格的模块接口类型检查。 (3)代码的产生: ?可选择的以代码速度或空间大小为目标的代码最优化; ?有多种输出格式选项,有可重定位二进制、ASM、ASM+C等; ?提供容易理解的出错消息和警告消息; ?与C-SPY高级调试兼容。 (4)对目标系统的支持: ?提供灵活的变量分配能力; ?可以用C语言设计中断函数; ?具有针对不同的CPU保持程序可移植的编译命令。 5.2 MSP430的指令系统 (1)CPU结构特点: 在第三章己对MSP43O系列单片机作了介绍,其CPU特点归纳如下: ? CPU内核由16位算术运算单元(ALU)、指令控制单元和16个16位寄存器等组成; ? 16个寄存器中RO用作程序计数器PC;R1用作堆栈指针SP;R2的用途非常特别,它 作为状态寄存器SR,提供V(溢出标志)、N(负标志)、Z(零标志)、C(进位标志)等状态信息,而在某些指令的运行中由指令中的寻址位确定而作为常数发生器CG1:R3用作常数发生器CG2。其余的12个寄存器R4-R15作为一般的工作寄存器,用来保存参加运算的数据以及运算的中间结果,也可以用来存放地址。这16个寄存器可直接寻址。 ? 芯片内部16位地址总线确定64K空间,这一空间由数据存储器RAM,程序存储器ROM 和多个外围模块所占有。各外围模块由数量不等的寄存器执行控制和接受访问。 (2)指令系统概述 MSP340基于RISC思想由硬件实现的内核指令只有27条,可以分为三种格式:双操作数指令(Double operand),单操作数指令(Single operand)、条件和无条件转移(Jump)指令。如图表5.1所示。 图5.1 MSP430指令格式 在双操作数指令格式中,源寄存器和寻址位AS形成源地址,目的寄存器和寻址位Ad形成目标地址,B/w确定是字节寻址还是字寻址。在单操作数指令中目的寄存器与 Ad形成目标地址。 MPS430的指令系统有7种寻址方式,如表5.2所示。其高度正交化的设计使得单操作数指令可使用所有7种寻址方式,而双操作数指令的源操作数可采用全部7种寻址的方式,目标操作数可采用4种寻址方式,为程序设计提供了很大的灵活性。 表5.2 MSP430寻址方式 5.3 主程序 MSP430F413的资源相对较为丰富,内存和程序FLASH区较大,其开发器支持C编译, 调试灵活方便,以及C语言本身所具有的灵便性,所以选用C语言开发本系统,软件采用的是模块化设计,各种功能都是由相应的子程序完成。图5.3是主程序流程图。单片机上电复位后主程序采用顺序执行的方法,逐个扫描各个自定义标志位,检查是否有动作发生,若有发生则转入相应子程序处理,处理完后回到主程序,继续扫描其后的标志位,最后进入低功耗状态,等待下一次中断唤醒,唤醒后同样循环一遍,又进入低功耗状态。由于各信号以中断的方式进入的,所以要特别注意中断的优先级及中断的嵌套问题。采用模块化方法设计各个子程序。根据不同功能,定义了不同的功能模块。明确入口出口,相互之间的调用关系,以供调用。主要软件模块有:IC卡读写模块,液晶显示模块,计量模块,FLAsH读写模块,低电压保护模块等。上电后首先对系统进行初始化。初始化包括对内部存储器单元清零、特殊功能寄存器置初值、液晶显示的设置等。接着进入主循环,判断故障、电源电压是否正常等,若一切正常则开阀供水。无论在什么情况下只要有低电压信号出现,系统就提示欠压,蜂鸣器报警,液晶显示,提示用户更换电池;当剩余水量低于设定值时,系统液晶显示提醒用户―请购水‖,如果用户没有及时购水重新插卡冲值,当剩余水量为负时,系统控制阀门关 闭,停止供水。 图5.3 主流程图 5.4 电源电压检测程序 ,OV时。Pl.1 采用日本理光生产的R31llH3O1C电压检测芯片,当电压低于3输出低电平,触发中断,液晶显示―换电池‖,同时蜂鸣器发出断断续续的报警声。BT使能中断,定时1S检测电压是否回升,若回升蜂鸣器发出一声报警提示音并清除―换电池‖显示。程序流程如图5.4所示。 图5.4 低电压检测子程序流程 5.5 IC卡读写程序 IC卡检测流程采用了模块化的设计,首先检测是否有IC卡插入,在正确插入的前提下,对IC卡进行密码校验,读取IC卡存储单元中的内容后,进行相应的处理。程序流程如图5.5所示。 图5.5 IC卡读写子程序 5.6 脉冲采集计数程序 程序流程如图5.6所示。 图5.6 计量子程序 第六章 设计总结 城市自来水事业作为城市基础设施的重要组成部分,是我国城市建设的主要基础性产业。随着我国经济和信息产业的飞速发展,自来水收费管理也必将朝着电子化、信息化方向发展。智能水表作为一种顺应自来水行业发展需要的产品,它的出现极大的改善了传统管理模式下存在的抄表难、收费难等问题,改变了现有的用水机制,增强了人们的节水意识,实现了供水管理部门高效管理自动化。因此,它的推广、应用很具市场潜力。卡式智能水表从管理上对用户实行―先买水后用水‖的预付费管理方式,在一定程度上改善传统管理模式的种种弊端,符合我国的基本国情。 ? 根据所购水量,自动执行供水、欠费停水; ? 具有剩余水量不足及电池电量不足提醒功能; ? 可进行累计用水量、本月用水量及可用水量显示; ? 具有防拆保护及断电保护功能。 在论文写作过程中我深深体会到微处理器在智能仪器中的应用可能引起产品本身的变革,也影响着设计理念的变革。本论文对以低功耗著称的MSP430系列单片机,利用其低功耗方式节省功耗以满足电池供电的等给以更多的关注。 致 谢 经过几个月的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业 论文设计,由于经验的匮乏和技术问题,难免有许多考虑不周的地方,如果没有老师的 悉心指导和一起学习工作的同学们,想要完成这个设计是难以想像的。在没有做毕业 设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设 计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也 是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。 自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼 高手低。通过这次毕业设计,我们才明白学习是一个长期积累的过程,在以后的工作、 生活中都应该不断的学习,努力提高自己知识和综合素质。 在这里首先要感谢我的老师马洪飞,马老师平日里工作繁多,但在我做毕业设计 的每个阶段,即从查阅资料,设计方案的确定和修改,中期检查,后期详细设计,装配草 图等整个过程中都给予了我悉心的指导.除了敬佩马老师的专业水平外,他的治学严 谨和科学研究的精神也是我学习的榜样,并积极影响我今后的学习和工作。 其次,我还要感谢大学几年来所有的老师,为我们打下专业知识的基础,同时还要 感谢同学们,正是有了你们的支持,我才能有完成毕业设计的信心。在这次毕业 设计中 也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量, 听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。在做设 计期间,老师和同学都给予了热忱的关心和帮助,在资料的收集过程中,得到很多老 师、同学的帮助,在此,向所有关心和帮助过我的老师、同学和朋友表示诚挚的谢意~ 最后,衷心感谢在百忙之中评阅论文和参加答辩的各位专家、教授~ 参考文献 [1]康万新.毕业设计指导及案例剖析.北京:清华大学出版社,2007,5 [2]王俊峰.理工科学生怎样做好毕业设计.北京:电子工业出版社出版,2004,8 [3]朱善军.单片机接口技术及应用.北京:北京航天航空大学出版社,2003,7 .自来水IC卡收费系统原理及发展状况仪器仪表标准化与计量.2000,2 [4]陆聪文 [5]张跟源.IC卡计费水表的设计.现代科学仪器, 2000,6 [6]宏军,赵冬艳.智能片(IC卡)技术全书.北京: 电子工业出版社,1996 .智能卡技术-IC卡.北京:清华大学出版社,2000 [7]王爱英 [8]朱善军.单片机接口技术及应用.北京航天航空大学出版社 [9]杨学岩,张恩平.预付费智能水表.济南大学学报〔自然科学版),2004 [10]马云峰.IC卡智能自来水表的设计.自动化与仪器仪表,2000 [11]裴中爱.水、电、气、暖四表联网远程抄表系统的设计.济南:山东科技大学, 2004,2 [12]李冬冬.嵌入式智能仪表与Internet的接口及应用技术研究.北京:北京化工大 学,2004,5 [13]孟泽初.智能水表系统的研究与开发.南京:东南大学,2004,4 [14]王月志,刘伯刚.自动抄表系统.电测与仪表,2004,(9):48-51 [15]任智.自动抄表管理软件系统的设计.成都:电子科技大学,2002 [16]张强.远程集中抄表系统应用研究.南京:南京理工大学,2003,10 [17]粱庚.现场总线控制系统的研究与应用.北京:华北电力大学,2001,1 [18]沈建华,杨艳琴,翟晓曙.MSP430系列16位超低功耗单片机原理及应用.北京:清 华大学出版社,2004,1 [19]魏小龙.MSP430系列单片机接口技术及系统设计实例.北京:北京航空航天大学出 版社,2002,11 [20]初振云,周国庆.远传水表中的常用传感器概述.中国住宅设施,2004,(4):33-34 [21]胡大可.MSP430系列单片机C语言程序设计与开发.北京:北京航空航天大学出版 社,2003,1 [22]高传善.数据通讯与计算机网络.北京:北京高等教育出版社,2001 [23]罗武胜,吕海宝,叶湘滨.单片机与调制解调器之间的接口技术明.仪表技术, 1998,(6):9-11 [24]郭正红,夏继强,满庆丰.利用MODEM实现单片机与PC机远程通信.仪表技术与传 感器,2002,(1):4-47 [25]孔建华.智能远程抄表系统的设计与开发.南京:南京理工大学,2005,6 [26]白然乐.小区智能化终端抄表系统的设计与实现.南京:南京理工大学,2004 [27]李哲英,骆丽,张有根,李小光.电子技术及其应用基础.北京:高等教育出版社, 2003,8 [28]康华光主编.电子技术基础.北京:高等教育出版社,1979 [29]李广军,王厚军编著.实用接口技术.成都:电子科技大学出版社,1998 [30]邓立新,邹振春,张捷.基于MSP430的智能水表设计.承德石油高等专科学校学报, 2004,6(4):36-39 [31]胡大可.MSP430系列超低功耗16位单片机原理与应用.北京:北京航空航天大学出 版社,2000,6 [32]胡大可.MSP430系列FLASH型超低功耗16位单片机.北京:北京航空航天大学出版 社,2003 [33]韩顺杰,李慧,杨晓红.智能水表电控系统设计.吉林工学院学报夕,2002,(3):23- 25 [34]邵时.微机接口技术.北京:清华大学出版社,2000 [35]李恩林,陈斌生.微机接口技术50问.北京:机械工业出版社,2004 [36]李卫,陶维青.基于MSP430的串行通信软件设计.仪器仪表用户,2004,ll(1):79- 80 [37]张剑平,王曦.MSP430系列单片机及其应用.仪器仪表与分析监测, 2002,(2):15-16 [38]MSP430F413英文数据手册 [39]刘力,张晗.干簧管运用在智能水表中的质量监控明.仪器仪表标准化与 量,2004,(6):45-46 [40]余家春.Ptotel99SE电路设计实用教程.北京:中国铁道出版社,2002,12 [41]吴志成,马步青.国内智能化水表的应用现状及发展方向.中国给水排水,2003 [42]陈鹏.新型水表的研究与发展.中国仪器仪表,1998,(3):5-6 [43]王明龙.电子抄表器的开发与研制.企业技术开发,1995,(5):16-17 [44]陆聪文.自来水IC卡收费系统原理及发展状况.仪器仪表标准化与计量,2000,(2) .IC卡计费水表的设计.现代科学仪器,2000,(6) [45]张跟源 [46]温格.住宅水表出户设计.人民长江,2001,(10):60-6 [47]杨学岩,张恩平.预付费智能水表.济南大学学报(自然科学版),2004, (4):325-327 [48]沈红卫.单片机应用系统设计实例与分析.北京:北京航空航天大学出版社,2003. [49]胡检波,宋开臣等.单片机系统的超低功耗设计.工业控制计算,2001,(10):65-68 [50]SLE4442使用手册.深圳明华磁卡系列有限公司,2000 [51]赵亮,侯国锐.单片机C语言编程与实例.北京:人民邮电出版社,2004 附录一 元器件明细表 附录二 电路原理图 附录三 部分程序代码: (一)IC卡读写程序 IC卡最常用的操作有:读取主存储区数据,更新主存储区数据,读密码区数据,更新密码区数据。部分程序代码说明: Data_Buffer[i] 数据缓存区; User_Key[i] 存放密码(密码区三个字节); Errcounter_Key[i] 错误数和密码缓存区; Errcounter_Key[0] 存放错误计数值; Errcounter_Key[1] 存放密码的第一字节; ErrCounter_Key[2] 存放密码的第二字节; Errcounter_Key[3〕 存放密码的第三字节; ICCard_IO-Init(); for (; ;) { LPM 3: _NOP( ); IC_DETECT_IE&=~IC_DETECT_BIT; //关闭IC中断 ICCard_ATR(&Data_Buffer[0]); ICCard_Read_MainMem(&Data_Buffer[0],0x30,10); //连续读取主存储‖0x30―单元10个单元数据存入Data_Buffer[i] right_flag=ICCard_Psc(&user_Key[0〕); //密码校验 if(right_flag==1) { ICCard_Read_ProtMem(&Data_Buffer[0]); ICCard_Read_SecuMem(&ErrCounter_Key[0〕); ICCard_update_KEY(&user_Key[0〕); ICCard_UpdateMainMe_oneByte(Ox3O,0x88); ICCard_UpdateMainMem(&Data_Buffer[0],0x20,10); Beep_Alarm(1,0x5000,0x3000); } else { Beep_Alarm(5,Ox3000,0x5000); } _NOP(): IC_DETECT_IE |=IC_DETEcT_BIT; } } 密码校验错误后,蜂鸣器发出断断续续的报警声。当一张卡连续出现三次校验 密码错误时卡会被损坏,故更新密码时应注意及时更改校验密码(初始密码为―FFFFF‖);密码校验正确后,蜂鸣器发出一声报警提示音。 (二)脉冲采集计数程序 当两个脉冲输入端依次有脉冲输入后才产生一个有效脉冲,当计数脉冲到来时,当前变量Pulse_Count减一,当剩余水量为负数时,蜂鸣器发出断断续续的 IC卡 //判断干簧管―1‖是否吸合 报警声,液晶显示―请购水‖提示, { PULSE_IFG&=~PULSE_B1: system_state_flag&=~PLUS_REPARE_FLAG; } else { if(PULSE_B2&PULSE_IN //再次判断干簧管―1‖是否吸合 { Pulsel_count++; system_state_flag|=PLUS_REPARE_FLAG; PULSE_IFG&=~PULSE_B1; } else { delay(1,10000); if(PULSE_B2&PULSE_IN); { pulse1_count++; system_state_flag|=PLUS_REPARE_FLAG; PULSE_IFG&=~PULSE_B1; } } } else if(PULSE_B2&PULSE_IFG); { PLUSE_IFG&=~PULSEB2; delay(1,10000); if(PULSE_B2&PULSE_IN) //判断干簧管―2‖是否吸合 { PULSE_IF&=~PULSE_B2; } else { if(PULSE_B1&PULSE_IN) { pulse2_count++; if(system_state_flag& PLUS_REPARE_FLAG) { system_state_flag&=~PLUS_REPARE_ FLAG; pulse1_count=0; pulse2_count=0; Pluse_Plus(); } } } } } (三)液晶显示子程序 部分程序代码如下: Void LCD Tnitial(void) { char*LCD=LCDMEM; int i; for(i=0;1<10;1++) { LCD[i]=0; } P5SEL=R33+R23+R13+COM3+COM2+COM1; LCDCTL=LCDSGO_2+LCD4MUX+LCDON; BTCTL=BTSSEL+BTDIV+BTFRFQ0+BTIP2+BTIP1; } { DISPDATA=value; REGSEL=1; RDWR=0; ENABLE=1; ENABLE=0; } void main(void) { unsigned char i; WDTCTL=WDTPW+WDTHOLD; SCFQCTL=31; SCFIO=0; FLL_CTLO|=XCAP18PF; LCD_Initial(); for(i=0;i<8;1++) { LCDMEM[i]= Digit[i]; } LPM3; } 英文资料翻译 (一)英语文献 Ramtron introduces the Versa Mix 8051 family of highly integrated mixed-signal microcontrollers for the embedded data acquisition market。Ramtron also introduces Versa 8051 family of low-cost, drop-in replacement 8051 microcontrollers. Colorado Springs, USA – 14th December 2005. Ramtron International Corporation (Nasdaq: RMTR), the leading supplier of non-volatile ferroelectric semiconductor products, has launched the Versa Mix 8051 family (VMX51C1xxx) of mixed-signal microcontrollers - single-chip solutions for a diverse range of signal conditioning, data acquisition, processing and control applications in the industrial, medical, consumer, instrumentation and Autom-otive markets. Ramtron is also introducing its Versa 8051 Family (VRS51x1xxx/5xx) of low-cost, industry standard, 8051-based drop-in MCUs with up to128KB ISP/IAP Flash, designed to simplify device migration. About the Versa Mix 8051 family: The Versa Mix (VMX51C1020/1016) is a highly integrated, high-performance family of mixed-signal 8051 microcontrollers with DSP capabilities, featuring a comprehensive set of on-chip peripherals for a complete data acquisition SoC. The VMX51C1xxx features a single-cycle 8051 processor that provides an average of eight times more processing power than standard 8051s for increased MIPS and efficiency. The device integrates an enhanced MULT/ACCU unit with 32-bit barrel shifter, 56KB of Flash and 1280 bytes of RAM. Peripherals include up to 28 general purpose I/Os, 3 timers/counters, an SPI, 2 UARTs, an I?C and an RS-485/RS-422/J1708 compatible transceiver, which enables data transmission over long distances via a twisted pair cable. The VMX51C1xxx operates at 5 volts and is available in QFP-64 (VMX51C1020) and QFP-44 (VMX51C1016) packages. Aimed at control applications that require signal conditioning, the VMX51C1020 also incorporates an array of analog peripherals such as a programmable current source, two digital potentiometers, an analog switch and an uncommitted operational amplifier. The features of the Versa Mix 8051 include: A/D Converter– This 5/7-channel, 12-bit A/D converter can operate at up to 10KHz in various modes: automatic, single channel, or sequential conversion. The features of the Versa Mix 8051 include: This 5/7-channel, 12-bit A/D converter can operate at up to 10KHz A/D Converter– in various modes: automatic, single channel, or sequential conversion. Complex DSP operations - The enhanced hardware arithmetic unit performs 16-bit x 16-bit multiplication and 32-bit addition in one cycle. This enables major performance gain over typical 8051 devices when executing mathematical and DSP operations - an ideal feature for applications that require digital filtering or other recursive calculations. Serial Port Interface – This fully-configurable master/slave interface can automatically address up to four slave devices and can be configured to handle 1 to +32-bit data transactions. UART with Baud Rate Generator – UARTs operate at over 460kbps and each incorporate a 10-bit baud rate generator freeing up the timers/counters for other uses. UARTs can be connected to the integrated differential transceiver. The VMX51C1xxx includes three 16-bit timers and 4 compare Timers/CCU units – and capture units (CCUs). The CCUs can be configured as PWM outputs with 8-bit or 16-bit resolution. The PWMs, when filtered, can be used as D/A converters. Three of the CCUs provide a capture input that can be used to trigger the Timer 2 Capture. Additionally, the device includes input pins and an interrupt on the Port1 Change. Power-saving features - Power saving features include a clock control unit, individual power controls for each peripheral and processor IDLE and STOP modes About the Versa 8051 family: Ramtron has also introduced the Versa 8051 family (VRS51x1xxx/5xxx) of low-cost, drop-in replacement 8051s that are ideal for a diversity of applications that require small to large amounts of program/data memory with nonvolatile data storage and/or code/field based firmware upgrade capability, coupled with streamlined/comprehensive peripheral support. Versa 8051s include up to 128KB Flash memory and 1KB RAM. Devices operate at either 3.3 or 5 volts and are available in 44-pin PLCC/QFP and also 40-pin DIP packages. Development & programming tools: Evaluation and prototype development of Versa Mix 8051 and Versa 8051 MCUs is facilitated through Ramtron’s UVK (UniVersaKit) development kit, which ships complete with the Versa Ware programming interface software, C compiler and assembler. About Ramtron: Ramtron International Corporation, headquartered in Colorado Springs, Colorado, is a fabless semiconductor company that designs, develops and markets specialised semiconductor memory, microcontroller and integrated semiconductor solutions used in a wide range of product applications and markets worldwide. Additionally, Ramtron works with various leading-edge licensees and manufacturers to bring its technology to market. AN INTRODUCTION OF 8051 An 8051 microcontroller, generally speaking, is any microcontroller that has an instruction set compatible with the MCS-51 standard. Intel made the original 8051 microcontroller back in 1980. Since then, dozens of semiconductor firms have chosen the MCS-51 standard for their lines of microcontrollers. When we speak of "8051" we are not just speaking of the Intel 8051, but also any other microcontroller that is compatible with the 8051 (it‘s faster then writing 8052-compatible every time we make reference to it). A derivative microcontroller (or derivative chip) is a term used to refer to any of the hundreds of 8051-compatible microcontrollers produced by dozens of semiconductor firms such as Dallas Semiconductor, Philips, Atmel, etc. These lines of microcontrollers all use the "8051 core" licensed from Intel. The "core" refers to the instruction set and Special Function Register structure/map. If you have a development toolset that is 8052-compatible, you should be able to use that same toolset with any derivative chip. Most 8051 developers use a PC with some version of Windows (although some use Unix). You will run your development tools on the PC to edit and compile your 8051 software. Once 8051 software has been compiled, will need to transmit your compiled program to the microcontroller. How you do this and what hardware you need depends on the derivative chip you‘re using and your actual circuit design. Traditionally, programs have been "burned" into an EPROM using an EPROM programmer. The EPROM is subsequently inserted into your circuit and the program is accessed by the microcontroller. EPROMs may be erased and re-used by clearing them with an EPROM Eraser (the EPROM is erased by exposing the EPROM to ultra-violet light for 5-10 minutes). An EPROM emulator is often used during the testing or development stages to allow the developer to quickly test code without having to constantly burn and erase EPROMs. However, many newer derivative chips include internal EEPROM or Flash memory. These derivatives often include a process of downloading your compiled 8051 program directly into the microcontroller via a serial port. In these cases, the EPROM programmer is unnecessary. In addition to the hardware , you‘ll need an ASCII editor that allows you to create 8052 source code. You may use programs as simple as EDIT in DOS or NOTEPAD in Windows to advanced software development editors. What‘s important is that the program save your code as PURE ASCII--this means no word processors such as Word or Works. Once you‘ve created your source code, you need a program to compile or assemble this into an "Intel HEX" file. This software is called an assembler (if it handles assembly language) or a compiler if it handles anything else (C, Basic, Pascal, etc.). These assemblers and compilers will generally create anoutput file known as a "HEX file." This is essentially the 8051 equivalent of an "EXE" file. This file is then either downloaded directly to the microcontroller (if your derivative has In-System Programming/Serial Port loading support) or is passed to yet another program which transfers the file to an EPROM using an EPROM programmer. All of these products were designed for PC development--that is to say, your final program is executed on your PC. In the case of 8051 development, your final program will be executed by an 8051 microcontroller. The 8051 is not compatible with any common PC development tools. Please refer to the Links page for a list of links to companies that offer 8051-compatible tools including assemblers, C, BASIC, and Pascal compilersProbably not too hard. ?C‘ compilers exist for the 8051, so if you are familiar with ?C‘ you shouldn‘t have too much trouble adapting to an 8051 ?C‘ compiler. The differences are mostly in handling the special features of the 8051 and that‘s just a matter of reading to learn the idiosyncracies of the 8051。 If all you know is Visual Basic, the 8051 may be a challenge for you. Most of what applies to VB-programming does not apply to 8051 programming. You can‘t use VB to program the 8051. You can‘t use VBX or ActiveX controls with the 8051. In fact, there are no textbox, label, listbox or any other kind of "control." While you can purchase a BASIC compiler that is compatible with the 8051, you will find it quite primitive compared to VisualBasic. In fact, it‘s even less powerful than Microsoft‘s 80‘s-era QuickBasic. No C++ compiler exists for the 8051. You must use plain old ?C‘. C++ uses dynamic memory handling to create and destroy "objects." This is generally handled by DOS or the Operating System. No such OS exists on the 8051. C++ is also usually more memory-hungry, and 8051‘s normally have less than 64k of program memory available. There is now a C++ precompiler available from Ceibo. This pre-compiler takes C++ code and "precompiles" it into Keil ?C‘ where it is actually compiled. The general visitors is that C++ is not an appropriate language for the 8051 architecture。 These three terms refer to three different ways of getting your program concept to run a given processor, each with varying levels of ease in programming and efficiency in execution. An interpreted program is one in which the program must be analyzed each time the program is run to determine what actions the processor should execute. Since the program is essentially "compiled on the fly," program execution is generally slow in comparsion to other options. Code size is often larger, too, since not only is your program held in code memory but also the "kernel" which actually interprets and executes your program. Interpreted languages are usually only useful for learning purposes and are seldom used in commercial projects. An example of an interpreted option with the 8051 is 8051-BASIC. An assembler allows you to write your program in assembly language which is one step away from pure machine language. The assembler actually translates your assembly program into machine language. A well-written assembly language program will provide the most speed and smallest code size, but writing a program in assembly language is generally considered to be more advanced and more difficult than writing a similar program in an interpreted or compiled language. Most 8051 programmers work in assembly language (about 52% according to a recent 8052.com survey). Using assembly language also gives you complete control over what the processor is doing. A compiler is used when the programmer wishes to write his code in a high-level language, such as C, Pascal, or sometimes Basic. In the 8051 community, C is the most popular compiled language. A compiler translates the source code written in the high-level language to machine language; thus the resulting output is the same as the output of an assembler--pure executable machine code. Most modern compilers are relatively efficient and produce relatively tight code. However, an equivalent C program will almost require more code size than the same program in assembly language--unless the assembly language program was very poorly written. The advantage to using a high-level language is that more programmers are familiar with C, Pascal, and Basic than are familiar with 8051 assembly language. High-level language programs are also, arguably, easier to read and understand than the same program in assembly language and, thus, are often easier to maintain--especially if the program will have to be maintained by someone other than the original programmer(s). Further, modern ?C‘ compilers often generate highly optimized code that is often more efficient than a typical programmer‘s assembly code, especially if the programmer has little experience in 8051 assembly language. ?C‘ compilers for the 8051 are often more expensive than assemblers. Timers are useful, but they are fast. With a standard 8052 running at 12MHZ, the 16-bit timer--which takes the most time of any timer to overflow--will still overflow about 15.26 times per second; that‘s about .06 seconds per overflow. To use a timer to count relatively long periods of times--anything over .06 seconds--will require a little extra code. This is the pefect situation for an interrupt. The idea is to cause the timer to overflow at a known rate and then count how many times it overflows. For example, .06 is not a fun number to work with since it is not evenly divisible by a full second. Rather, it‘d be useful to configure the program such that the timer overflows every .05 seconds. Then, if it has overflowed 20 times you know one second has passed. This can be done in various ways。 Technically, T0_INTERRUPT resets TL0 and TH0 in a not-so-safe way. It is generally recommended that when you change the value of TH0 and/or TL0 that you first stop the timer by clearing TR0. After you‘ve set the two SFRs, you then restart the timer by setting TR0. In this case, it is not absolutely necessary because the value we‘re setting, is such that there will be no nasty side effects. However, if you were resetting the timer to it would be absolutely necessary to stop the timer. Otherwise, you‘d first write TL0 to FFh, it would immedaitely overflow back to 00h and you‘d write TH0 。 It is depending on the oscillator you are using and the baud rate that you desire, that the formula will give you a fractional answer. For example, if you were using a 12.000MHZ crystal 。Obviously, you can‘t use a fractional value--you‘d either have to use 3 or 4. Using 3 would produce a baud rate of 10416, and 4 would produce a baud rate of 7812--neither of which is anything close to 9600. In this case, you could try taking advantage of the SMOD bit. That is, set SMOD and look for a baud rate of about 4800 (which would be doubled to 9600 by setting SMOD). Plugging in 4800 into the above formula we get a TH1 value of 6.5, so we‘d either have to use 6 or 7. If we use 6, we get a baud rate of 5208 (which, when doubled, is still 10416), but if we which is a use a value of 7 we get a baud rate of 4464 which, when doubled, is 8298--little closer to 9600 then either 10416 or 7812. Unfortunately, it‘s probably not close enough. A baud rate error of +/-3% is usually considered acceptable. However, our 8928 baud rate is 7% slower than 9600--not close enough. Thus, when you get a fractional answer for TH1, try to see if you can get close enough by using SMOD to double the baud rate. If you can‘t, it‘s entirely possible that you can‘t obtain the baud rate you want with the oscillator crystal you have. Consider using another crystal, and choose your crystal taking into account the baud rate you want to achieve. Interrupts, as the name implies, are processes that interrupt normal program execution. Normally, a program will start executing at address 0000h and execute consecutively, unless program flow is altered by some branching or jump instruction. Interrupts are used to interrupt normal program flow to handle some special task, then return to continue executing the program as if nothing had happened. For example, you may have an interrupt programmed to interrupt every milisecond. Most of the time your program will execute normally. Once every milisecond, however, an "interrupt" will occur that will cause your main program to be temporarily "suspended." Execution will jump automatically to an "interrupt service routine" which you write to handle the interrupt condition. Once you‘ve done everything you need to during the interrupt, you return from the interrupt A standard 8052 lets you assign a "level" to each interrupt. By default, all interrupts are "low" level. When your program is executing, it may be interrupted by any interrupt--both low or high level. If a low-level interrupt is executing, it may ONLY be interrupted by a high level interrupt; it may NOT be interrupted by another low-level interrupt. If a high-level interrupt is not even another high-level executing, NOTHING may interrupt it until it finishes-- interrupt. If multiple interrupts of the same level are triggered simultaneously, they will be executed one by one as the previous interrupt finishes. with a RETI instruction. Your program then continues as if nothing had ever happened and unaware that it has been interrupted. You may read a value by reading the corresponding SFR or bit. For example, if you wish to read the value on P1.3, you may either use the assembly instruction MOV A,P1 (which reads the value of all bits on P1) or you may read just the bit itself with the MOV C,P1.3. Either way, make sure you‘ve previously written a "1" to the bit(s) you wish to read. That is, if you want to be able to read all lines of P1, you must first be sure that P1 has been initialized to FFh (MOV P1,#0FFh). This is the default condition, so unless you‘ve changed the value of the port lines you should be able to read all bits on start-up. (二)中文译文 Ramtron推出8051家族高度综合数据采集相混合信号嵌入结构控制芯片获得 市场。Ramtron同时也是推出的8051家族低成本、自动复位的8051控制芯片。 源于美国科罗拉多州-2005年12月14日。Ramtron国际公司(纳斯达克:RMTR), 世界主要供应非常稳定的电气半导体产品的厂商,推出了混相搭配的8051家族 (VMX51C1XXX)混合信号控制芯片,单芯片解决各种信号调节、数据采集、处 理和控制,应用在工业、医疗、消费、仪器和汽车市场。 Ramtron还介绍了8051的家族产品(VRS51X1XXX/5XX)低成本、符合工业标 准、8051型的投放市场使MCUs达到128KB ISP/IAP FLASH,旨在简化设备的 移植。 关于混相8051家族产品的结构: 混相产品(vmx51c1020/1016)是一个高度综合的、高性能的家族混合数字信号处 理控制芯片,8051控制器有数字信号处理能力和全面发展能力,包括一整套在 外围获得完整的脉冲数据。VMX51C1xxx的特点是单一周期,平均处理能力超 过标准8051处理器提高了8倍多, 8051s增加MIPS和效率。该装置将强化 MULT/ACCU因为32位的处理转换能力,56KB的闪存和1280字节的暂存器。 产品外围包括多达28位的输入/输出口,3个定时/计数器、单程序启动、2个 UARTs,IC和RS-485/RS-422/J1708兼容信号。使数据传输距离通过电缆传输可 以更长。VMX51C1XXX在5伏特下运转工作,可以在QFP-64(VMX51C1020) 和QFP-44(VMX51C1016)中使用包。 旨在控制应用需要调节信号,VMX51C1020还包含了一系列模拟设备,如电流 编程源;两个有效的数字仪表;一个模拟开关和一个未运行的放大器。 Versa Mix 8051的特征包括: A/D变换器-是5/7通道的12位A/D转换器能在高达10khz的不同模式运行:自动,单一渠道,或连续转换。 复杂的数字信号处理运转,加强硬件运算位执行16位X16位的倍增和一个周期32位的增加。这能表现出主要的性能比典型的8051装置当运行数学和执行数 一种理想的应用特点是需要数字滤波或其他数学草稿计算。连续字信号处理时--- 端口界面,这完全可配置的主/次界面可以分自动处理装置和多达四个驱动,可配置1到32位的处理数据能力。 波特率与UART发生器,-UARTs超过460kbps时运行,每一个混合的10位的波特比率发生器产生定时/计数器作其他用途。 UARTs可以连接不同的综合收发器。 定时器/计数单元---VMX51C1xxx包括三个16位定时器和4个比较器和捕取单元(CCUs). CCUs可视为PWM8位或16位输出决议。 PWMs当滤波时,可以用作D/A转换。 三个CCUs提供捕取输入信号,用于触发计时器2。 另外,该装置包括一个中断的输入和输入阻止在端口1上,节能特点是节省。节能特征包括时钟控制单元、每一个电力的控制处理器对外围的控制包括闲置和停止模式。 关于Versa 8051家族: Ramtron还引进了低成本Versa8051家族(VRS51X1XXX/5XXX)、更换了8051s, /或固件适合不同的应用,需要小至大量程序/数据存储与可变数据存储和/或代码升级能力的领域,再加上流线/综合型外围设备支持。 8051s至多是集成了128kb闪存和1kbRAM。无论设备启动在5伏特或3.3伏特,可包含44-PIN的PLCC/QFP和40DIP的包。 发展现状及编程开发工具: Versa Mix 8051 和 Versa 8051原型评价和发展也是通过MCUs Ramtron的UVK(UNIVERSAKIT)开发包,提供完整的载运Versa软件程序介面,并C汇编和装配。 关于Ramtron国际公司: Ramtron国际公司,总部设在科罗拉多州科罗拉多是编译半导体公司。负责设计和开发专业市场的半导体存储器,控制器和半导体解决方案。综合使用世界市场的各种应用和产品。此外,Ramtron获得各领先厂商的商标和技术市场。 8051的介绍 8051控制器从总体上说,是任何控制器,拥有一套符合教学监控的MCS-51标准. 英特尔微在 1980年生产出最早的8051。 自那时起,MCS-51就是数十家半导体厂商的监控器选择的标准。对51的控制芯片,当我们谈到"8051"我们不光对英特尔8051,而且其他控制器,符合8052(它的快写及8051兼容). 衍生的微控制器(或衍生芯片)一词指任何数百种8051兼容控制芯片。制作了几十个半导体厂商如达拉斯半导体、飞利浦、Atmel等这些路线全部控制芯片采用了英特尔"8051核心"牌照. "核心"是指语言的特殊功能和结构/图形. 如果你开发过toolset,因为8051兼容,你可以用同样 有toolset衍生筹码. 8052PC最有开发利用视窗版本(虽然有些采用UNIX). 你可以从你的电脑编辑工具来开发和编制你的8052软件. 一旦已编制8051软件,必须编译你的软件控制器.这样做,必须依靠你需要的硬件芯片衍生你的实际使用的电路设计. 传统上,程序已"烧"成可擦写可编程只读存储器用EPROM程式. 然后插入你的EPROM电路和控制器. 设计可以轻易装,再利用这些信息改写EPROM(可擦写可编程只读存储器被删除的方式为曝光或紫外光灯下照射5-10分钟). 可擦写可编程只读存储器emulator往往用在一个测试阶段和发展时期,使接受迅速发展的考验,不用烧制,不用抹去可擦写可编程只读存储器. 然而,许多新衍生芯片不存在8051C++汇编. 你必须使用原始C. C++采用动态记 忆创造和销毁处理"对象. " 这是由一般或Dos操作的系统. 不存在这样的8051操作. C++也要求更大的 利用比较熟悉的高级语言C、Pascal, Basic 编程比熟悉8051汇编语言更有优势,. 高级语言也可以说,更容易阅读和理解不同的程序比汇编语言,因此,往往容易维护--特别是如果程序将保持某个除了原有程序。 进一步的C理论上更轻便、更比汇编适合8051。此外,现代C更易高度优化汇编代码往往比一般程式更有效率的编译。尤其是如果没有什么8051编程语言经验的人. C的8051编程往往更难。 时间是有益的,但很快. 8051有高达12MHz标准,16位计时器--最需要的时候, 大约每0.06秒溢流。约每秒的15.26倍任何计数器都显得过多; 那用计时器计算时间较长时期时要在0.06秒需要一点额外代码. 这是一种完美的中断情况. 计时器的概念是造成溢出,利用它来计时的。例如,0.06不是很好的数字,因为它是不均匀的分开一秒钟。相反,它对程序是有用的配置,每0.05秒定时溢出。那么,假如有20次的溢出,你知道一秒钟过去了. 这可以以 各种方式解决。 技术上,T0中断的Th0和Th1在不太可靠的方式. 一般认为当你改变Th0值或你的定时Th0清零时. 在您设定两SFRs,那么你得重新设定计时器Th0在这种情况下,也并非绝对必要的,因为我们的评估确定,这样不会有坏的副作用. 但是,如果你的时间来重新设定是绝对必要停止计时器. 否则,你就先来写则Th0溢出回00H, 这取决于你是使用振荡器, 你选用的波特率, ,公式会给你一个非整数答案. 举例来说,如果你是用晶震12.000MHz。显然,你不能用非整数诂值--就像是要用方式3或方式4.方式3产生310416波特率,方式4将产生7812波特率--无论是什么都接近9600. 在这种情况下,你尽可以利用合利的SMON。.即寻找并确定SMON波特率约4800 (其中设定SMON将倍增至9600). 设定到4800利用上述公式我们得到估值Th1为6.5V,所以我不是要用6或7. 如果我们用6、我们有波特率5208年(增加了一倍,还是10416),但如果使用了估值7我们在波特率4464上增加了一 倍,是8298--这是比较接近9600要么选用10416或7812。 可是,恐怕没有完全接近以上的波特率。波特的误差率为通常被认为是可以接受的. 然而,8928的波特率比9600低7%--没有接近。因此,当你找到小数Th1, 你可以试试设定SMOD增加波特率. 如果不能,也可能完全得不到你想要的晶体振荡器的波特率. 考虑使用另一个、选择晶振你要考虑到你想达到的波特率. 中断,顾名思义,是中断执行正常程序运行. 在正常的情况下,程序将从0000h地址执行,并连续执行,除非程序的运行受到分支或跳转指令. 中断是中断正常程序来处理一些特殊流程工作,然后返回正常继续执行其程序。 例如,你可以每毫秒都中断程序执行中断. 大部分时间你的程序都正常执行. 每毫秒"中断"都会发生,这也会使你的主程序暂时变缓。自动执行你的中断处理跳转到"中断服务程序"。一旦你中断情况考虑周全时, 每次中断时8051都会中断返回标准的定义―电平‖. 默认的,一切中断为"低"电平有效. 当你执行程序时,可以被任何中断--高电平有效或低电平有效. 如果低级中断正在执行,只能被高层中断打断; 低级中不能再打断断. 如果高层中断执行,可以不中断,直到结束--连如果多个同一级别的中断触发的同时,他们将继续执行前中断,逐一完成. 由RETI的介绍可知,没有中断发生的话,你的程序继续执行。如已经中断的不响应. 你读过SFR或字节的话你会知道重要性。举例来说,如果你想使用P1.3口,你可 使用一张汇编的说明书,(知道所有的都在P1)、你看一下位的本身MOV C,P1.3. 不管怎样,你必须向访问位写"1". 意思是,如果你想要能够访问所有P1线,你必须先肯定了P1初始化为FFH(MOVP1,#0ffh). 这是该公司的条件,因此,除非你改变端口值你可以阅读所有位元的起始。
/
本文档为【ic卡预付费水表的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索