资源描述
基于单片机的IC卡智能水表设计摘 要为适应国家用水制度的改革,研究和利用现代化智能技术对自来水实行自动控制,减轻供水管理部门因“先供水后收费”造成的资金压力,减少每月抄表、收费所带来的麻烦和因收费问题带来的纠纷,用现代科学技术手段改变自来水管理体制的落后现状,势在必行。基于单片机的IC智能水表不但可以提高供水部门的工作效率,而且在技术上为节约用水、合理用水创造了条件,由于这些特点,基于单片机的IC智能水表得到了越来越广泛的应用。本论文主要设计研究基于单片机的IC卡智能水表电路,其主要功能是以AT89C51单片机为核心,实现IC卡的读写,液晶显示的控制,电磁阀的控制,脉冲的提取,同时具有安全保护电路、记忆单元电路、通信接口电路,完成整个水表信号的读、写处理,监控水表工作的功能。本文对每个模块逐一进行了研究,全面详细地论述了硬件电路的设计流程,对本设计中非接触式IC卡读写电路模块、液晶显示电路模块和H6152读写电路模块等工作原理及功能进行了详细了说明。关键词:单片机;IC卡;液晶显示;记忆模块Design of the Water Meter IC Card System Based On Sing-chip 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 AT89C51 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目 录摘 要1Abstract2第1章绪论61.1课题背景及意义61.2 传统水表71.2.1 传统水表的主要结构81.2.2 传统水表的主要特点81.3 智能水表91.3.1 智能水表的特点91.3.2 国内外智能水表的发展现状及发展趋势11第2章 智能水表的组成和单片机的选择142.1智能水表系统硬件组成142.2 AT89C51单片机简介152.2.1 89C51单片机的基本组成152.2.2 89C51单片机引脚及其功能16第3章 系统各模块硬件电路设计183.1 IC卡读写电路183.1.1 Mifare 1射频IC卡183.1.2 H6152读写模块223.1.3 IC卡读写电路的原理及说明243.2 液晶显示电路283.2.1 液晶显示模块283.2.2 电源模块303.2.3 单片机模块333.3 记忆单元电路333.3.1 I2C总线简介333.3.2 AT24C01简介353.3.3 硬件原理图363.4 电磁阀控制电路373.5 其它模块电路38第4章 系统各模块软件设计404.1 IC卡读写软件设计404.1.1 H6152内部寄存器404.1.2 H6152通信协议与控制命令424.1.3 IC卡读写电路程序流程图及部分程序484.2 液晶显示电路软件设计504.2.1液晶控制驱动器指令集504.2.2程序流程图及部分程序524.3 记忆单元电路软件设计54第5章 结论56参考文献57谢 辞59附录:电路图6057第1章 绪论1.1课题背景及意义随着社会科学技术的高速发展,资源短缺现象日益严重,尤其是与人类生存嘻嘻相关的水资源。水是宝贵的环境资源,也是我国可持续发展战略的重要物质基础。但是,我国是世界上人均水资源拥有量是分贫乏的国家之一,节约和保护水资源是我国当前一项是分重要的战略措施。节约水资源包括两个方面的措施,一是大力推广应用节水新技术;二是加强用水的科学管理,在某种意义上来说,加强用水科学管理是当前的首要任务。要加强用水的科学管理,最重要的是加速研究开发科学先进、应用方便的节水科学管理仪表以及这种仪表的普及应用。因此研制一种低功耗、计量精确方便的智能水表显得极为重要。长期以来,我国城镇居民所使用的水表普遍是普通机械旋翼湿式水表,这种水表价格低廉,性能比较稳定,但是还采用人工抄表、按户收费的模式。此方式存在着工作量大,收费周期长,收费困难,效率低下等缺点。随着我国信息产业的飞速发展,金卡工程的全面实施,实现自来水收费管理的电子化、信息化及网络化已成为可能。水表系统的智能化可以大大提高供水管理部门的工作效率、节约费用,用以改善供水设施,提高居民饮水质量;同事还能为加强自来水使用的监督管理提供手段,从而在技术上为节约用水合理用水创造条件。微电子技术和计算机技术的不断发展,引起了仪表机构的根本性变革,以微型计算机(单片机)为主体,将计算机技术和检测技术有机结合,组成新一代“智能化仪表”,智能化仪表在测量过程自动化。智能仪表不仅能解决传统仪表不易或不能解决的问题,还能简化仪表电路,提高仪表的可靠性,更容易实现高精度、高性能、多功能的目的。随着科学技术的进一步发展,仪表的智能化程度将越来越高。我国目前智能水表新产品开坟基本上是借鉴国外先进模式,因为国外在此方面的研究设计起步较早。例如ABB公司的KENT水表采用充电电池,具有按键读数、可以显示日期时间及各户用水量,建有机械式与电子式读数功能,而且还配有IBMPC兼容机接口,可以进行电话通信;德国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章 智能水表的组成和单片机的选择2.1智能水表系统硬件组成本水表电路的硬件设计原则是在低功耗的前提下,实现多功能,组成框图如图2.1 所示。系统硬件电路由 IC卡读写电路、液晶显示控制电路、电磁阀控制电路、脉冲提取电路、安全保护电路、记忆单元电路、通信接口电路组成,以AT89C51为核心控制芯片,完成整个水表信号的读、写处理,监控水表工作的功能。该CPU芯片内置4K的程序存储器,有32个多功能的I/O口,具有多个可编程的中断I/O口和数据串行通信口。并且,该芯片功耗低,特别适用于水表控制线路多、功能全、功耗低的要求。它能方便地读取IC卡的数据,并控制电磁阀和液晶显示器的工作,同时还可以将水表的数据存入E2ROM进行永久保存并可通过串口送至表外的数据终端,大大地提高了该水表的智能化的功能。本水表采用电池供电。AT89C51脉冲提取电路电磁阀控制电路安全保护电路IC卡读写电路IC卡读写电路液晶显示电路通信接口电路记忆单元电路IC卡座通信插座去脉冲电磁阀来自水量传感器 图2.1 硬件总体框图2.2 AT89C51单片机简介2.2.1 89C51单片机的基本组成在一小块芯片上,集成了一个微型计算机的各个组成部分,即89C51单片机芯片内包括:(1)一个8位的微处理器(CPU)。(2)片内256字节数据存储器RAM/SFR,用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。(3)片内4KB程序存储器Flash ROM,用以存放程序、一些原始数据和表格。(4)4个8位并行I/O端口P0-P3,每个端口既可以用作输入,也可以用作输出。(5)两个16位的定时器/计数器,每个定时器/计数器都可以设置成计数方式。(6)具有5个中断源、两个中断优先级的中断控制系统。(7)一个全双工UART的串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通信。(8)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。(9)具有节电工作方式,即休闲方式和掉电方式。以上各个部分通过片内八位数据总线相连接。2.2.2 89C51单片机引脚及其功能如图2.2所示为单片机AT89C51的引脚图。图2.2 单片机AT89C51的引脚图(1)XTAL1(19脚):振荡器反相放大器的及内部时钟发生器的输入端。(2)XTAL2(18脚):振荡器反相放大器的输出端。(3)RST(9脚):复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。(4)P0口(3932脚):P0口是一个漏极开路的8位准双向I/O端口。作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。(5)P3口(1017脚):P3口是一组带有内部上拉电阻的8位双向I/O多功能口。P3口输出缓冲器可驱动4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口,此时,被外部拉低的P3口将用上拉电阻输出电流。当CPU不对P3口进行SFR寻址访问时,即用作第二功能输出/输入线时,由内部硬件使锁存器Q置1。整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处低电平10ms来完成。在芯片擦除操作中,代码陈列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 表2.1 P3口与第二功能表端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD (串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时器/计数器0)P3.5T1(定时器/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)第3章 系统各模块硬件电路设计3.1 IC卡读写电路3.1.1 Mifare 1射频IC卡Mifare 1射频IC卡的核心是Philips公司制造的Mifare 1 IC S50系列微晶片,其内部包括1KB高速EEPROM、数字控制模块和一个高效率射频天线模块。卡片本身不带电池供电,工作时将卡片放在读写器的有效工作区域,卡片读写器的天线发送无线电载波信号耦合到卡片上的天线提供电源能量,其电压可达2V以上,足以满足卡片上的IC电路供电需要。在信道保证和数据完整性方面,Mifare 1标准还提供了信道检测、存储数据冗余校验、三次传递认证以及防冲突机制等功能,保证了数据交换过程的安全。Mifare 1射频IC卡的主要性能指标如下。(1)1KB的EEPROM,分为16个扇区,每个扇区分为4块,每块16B,以块为存取单位。(2)每个扇区有独立的一组(2个)密码及存取权限设置。(3)每张卡有唯一的32位序列号。(4)具有防冲突机制、支持多卡操作。(5)无电源,自带天线,内含加密控制逻辑和通信逻辑电路。(6)数据可保存10年,可反复写10万次。(7)工作频率为13.56MHZ。(8)106kbps 的快速数据传输速率。(9)读写距离最大可达10cm(取决于天线设计)。(10)工作温度范围:-20- +50。C。Mifare 1射频卡包含了两个部分:RF射频接口电路和数字电路部分。(1)RF射频接口电路在RF射频接口电路中,主要包括波形转换模块和POR模块。波形转换模块可将卡片读写器上的13.56MHZ的无线电调制频率接收,一方面送调制/解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理,包括稳压等,最终输出供给卡片上的各电路。POR模块主要是对卡片上的各个电路进行POWER-ON-RESET(上电复位),使各电路同步启动工作。(2)数字电路部分模块ATR模块:Answer to Request (“请求之应答”)当一张Mifare 1卡片处在卡片读写器的天线的工作范围之内时,程序员控制读写器向卡片发出REQUEST all(或REQUEST std)命令后,卡片的ATR将启动,将卡片Block 0 中的卡片类型(TagType)号共2个字节传送给读写器,建立卡片与读写器的第一步通信联络。如果不进行第一步的ATR工作,读写器对卡片的其他操作(Read/Write等)将不会进行。Anticollision模块:防止(卡片)重叠功能 如果有多张Mifare 1卡片处在卡片读写器的天线的工作范围之内时,AntiCollision模块的防重叠功能将被启动工作,在程序员控制下的卡片读写器会与每一张卡片进行通信,取得每一张卡片的系列号。由于Mifare 1卡片每一张都具有唯一的系列号,决不会相同,因此卡片读写器根据卡片的序列号来识别、区分已选的卡片。卡片读写器中的MCM中的Anticollision防重叠功能配合卡片上的防重叠功能模块,由程序员来控制读写器,根据卡片的序列号来选定一张卡片。被选中的卡片将直接与读写器进行数据交换,未被选择的卡片处于等待状态,随时准备与卡片读写器进行通信。Anticollision模块(防重叠功能)启动工作时,卡片读写器将得到卡片的序列号Serial Number。序列号Serial Number存储在卡片的Block 0中,共有5个字节,实际有用的为4个字节,另一个字节为序列号Serial Number的校验字节。Select Application 模块:主要用于卡片的选择当卡片与读写器完成了上述的二个步骤,程序员控制的读写器要想对卡片进行读写操作,必须对卡片进行“SELECT”操作。以使卡片真正地被选中。被选中的卡片将卡片上存储在BLOCK 0 中的卡片的容量“SIZE”字节传送给读写器。当读写器收到这一字节后,可以对卡片进行深一步的操作,例如,可以进行密码验证等等。认证及存取控制模块在确认了上述的三个步骤,确认已经选择了一张卡片时,程序员对卡片进行读写操作之前,必须对卡上已经设置的密码进行认证,如果匹配,则允许进一步的Read/Write操作。Mifare 1 卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。因此每个扇区可独立地应用于一个应用场合。整个卡片可以设计成“一卡通”形式来应用。控制及算术运算单元这一单元是整个卡片的控制中心,是卡片的“头脑”。它主要进行对整个卡片的各个单位进行微操作控制,协调卡片的各个步骤。同时它还对各种收/发的数据进行算术运算处理,递增/递减处理,CRC运算处理,等等。是卡片中内建的中央微处理机(MCU)单元。RAM/ROM 单元RAM主要配合控制及算术运算单元,将运算的结果进行暂时的存储。如果某些数据需要存储到EEPROM,则由控制及算术运算单元取出送到EEPROM存储器中;如果某些数据需要传送给读写器,则由控制及算术运算单元取出,经过RF射频接口电路的处理,通过卡片上的天线传送给卡片读写器。RAM中的数据在卡片失掉电源后(卡片离开读写器天线的有效工作范围内)将被清除。同时,ROM中还固化了卡片运行所需要的必要的程序指令,由控制及算术运算单元取出去对每个单元进行微指令控制,使卡片能有条不紊地与卡片的读写器进行数据通信。数据加密单元 该单元完成对数据的加密处理及密码保护。存储器及其接口电路该单元主要用于存储数据。EEPROM中的数据在卡片失掉电源后(卡片离开读写器天线的有效工作范围内)仍将被保持,用户所要存储的数据被存放在该单元中。Mifare 1卡片中的这一单元容量为8196bit(1Kbyte),分为16个扇区,64个块。11 10 H201014x20 13.1.2 H6152读写模块图3.1 H6152基本结构示意图H6152的基本结构如图3.1所示。图中,对外通信的接口为J3和J4。J3口共有7针,包括RS-232/422的接口引脚和读写器模块的电源端,接地端,具体的功能定义如下:(1)引脚1:保留引脚(2)引脚 2:5V电源脚(3)引脚 3:接地端(4)引脚 4:A路串行接收RxD(RS-232/422)(5)引脚 5:A路串行发送TxD(RS-232/422)(6)引脚 6:B路串行接收RxD(RS-422)(7)引脚 7:B路串行发送TxD(RS-422)J4口为4针接口,提供电源和操作状态的LED灯指示信号,具体的定义如下:(1)引脚1:读过程LED指示的正端。(2)引脚2:读过程LED指示的负端。(3)引脚3:供电LED指示的正端。(4)引脚4:供电LED指示的负端。H6152读写模块操作简单方便,读写过程稳定有效。它集成了PCB板载天线电路和RS-232/422接口的集成读写模块,还提供了RS-232/422接口与TTL接口的转换电路。H6152需外界+5V电源供电。主要性能指标如下:(1)工作频率:13.56MHz。(2)串行通信波特率:9600bps、19200bps、38400bps和57600bps4种可选。(3)接口:RS-232/422/485。(4)天线输出阻抗:50K欧姆。(5)天线尺寸:45mm70mm。(6)电源电压:+5V。(7)电流供应:80mA。(8)工作温度:-40+85.(9)最大读写距离:50mm。3.1.3 IC卡读写电路的原理及说明IC卡应用系统的硬件设计结构框图如图3.2所示,总体原理图见附录1。单片机AT89C51是本设计的核心器件,它主要完成了对射频卡(MIFARE 1卡)的读写操作。H6152读写器对射频卡进行读写后通过串口电平转换电路将RS232电平转换为单片机所识别的TTL电平,从而达到了使用AT89C51单片机来控制射频卡的读写过程。单片机AT89C51串口电平转换电路IC卡读写器报警电路Mifare1射频卡图3.2硬件设计结构框图硬件电路由单片机模块、串口电平转换模块和H6152读写模块3部分电路组成,其工作原理分别如图3.3、图3.4、图3.5所示。图3.3 单片机模块图3.4 串口电平转换模块图3.5 H6152读写模块U1为单片机芯片AT89C51,其P1.0脚为单片机对H6152的控制输出,它控制H6152的工作状态,该引脚为高电平时,H6152停止工作;P1.1脚为单片机对蜂鸣器的控制输出,为低电平时,蜂鸣器发出蜂鸣声。XTAL0 和 XTAL1 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷均可采用。如采用外部时钟源驱动器件,则XTAL1不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。本设计的外部时钟电路是将XTAL0(18脚)和XTAL1(19)脚分别对接外部晶体和微调电容的两端所构成。另外单片机中还带有复位端,为了安全方便,单片机采用了上电自动复位和手动复位两种。图7中的U3为H6152的对外接口,1-7脚对应H6152板上的J3的1-7针,8-11脚对应H6152板上的J4的1-4针。L1为双色发光二极管,它表示当前H6152的工作状态。串口电平转换电路采用Maxim公司的MAX3232实现。MAX3232将单片机的TTL电平转为RS-232,然后与H6152的RS-232接口直接相连。RS-232C是数据终端设备(DTE)和数据通信设备(DCE)之间的接口标准,是在微机接口应用中常用的一种串行通信总线标准,全称为EIA-RS-232C标准(Electoronic Industrial Associate Recommended Standard-232C)。RS-232C标准的信号线共25根,其中只定义了22根。这22根信号线又分为主、辅两个信道,大多数微机串行通信系统中都只使用主信道的信号线。在通信中,即便是只使用主信道,也并非主信道的所有信号都要连接,一般情况下只需使用其中的9根信号线,这就是为什么在微机的机箱上串行通信接口(如COM1、COM2)只有9根的原因。RS-232C串行通信接口标准中,对于发送端,规定5V15V表示逻辑“1”(MARK信号),用5V15V表示逻辑“0”(SPACE信号),内阻为几百欧姆,可以带2500pF的电容负载。负载开路时电压不得超过25V。对于接收端,电压低于3V表示逻辑“1”,高于3V表示逻辑“0”。 设计中单片机选用ATMEL公司的芯片AT89C51,它可以完全满足设计的功能要求。3.2 液晶显示电路3.2.1 液晶显示模块 液晶显示模块选用图形液晶显示模块GXM12864,它内含KS0108B/HD61202控制器,是一种采用低功耗CMOS技术实现的点阵图形LCD模块,有8位的微处理器接口,通过内部的12864位映射DDRAM实现128点64点大小的平板显示。该液晶显示模块使用KS0108B作为列驱动器,同时使用KS0107B作为行驱动器。KS0107B不与CPU发生联系,只要提供电源就能产生行驱动信号和各种同步信号,比较简单。液晶显示模块GXM12864的工作原理图如图3.6所示。图3.6 液晶显示模块GXM12864的工作原理图电位器R15的作用是调节提供给驱动器的供压,从而调节液晶显示的对比度。RST是复位脚,接高电平Vout1。数据线DB0DB7和单片机的P0口相连,控制线D/I、R/W和片选线/CSA、/CSB分别与单片机P2口的6、5、1、0脚相连,使能线与P2.3相连。在进行液晶显示模块的硬件调试时务必注意正确的接线,尤其是正负电源的接线不能有错,否则会烧坏电路上的芯片。为避免液晶模块的损坏,在加液晶驱动电压V0/VEE时需要比加逻辑电压VDD滞后50ms;在关电时,液晶驱动电压V0/VEE需要比逻辑电压VDD提前50ms关断。GXM12864的引脚定义如表3.1所示。表3.1 GXM12864的引脚定义引脚名称引脚定义/CSA、/CSB片选1、2VSS数字地VDD逻辑电源+5VV0对比度调节D/I指令数据通道R/W读/写选择E使能信号、高电平有效DB0-DB78位数据线RST复位信号VEE液晶驱动电源A、K背光正电源端、背光接地端3.2.2 电源模块在一般情况下,液晶器件的驱动需要两种不同的电源电压,一种是+5V(工作电压),另一种是-10V(背景光对比度调节电压)。所以,使用液晶模块时,需要设计专门的液晶电源电路。液晶电源电路的作用就是将电压转换成这两种电压信号输出,为液晶显示模块提供工作电压。本设计中系统采用电池供电,其输入电压为+3V,所以电源部分的设计要求为+3V输入,+5V和-10V双电压输出。MAX1677是双电压输出升压DC-DC变换器,它是一种专门为LCD提供电源的芯片,可以产生两种可调电压输出。其输入电压范围(0.7-5.5V)较大,可以依据不同系统提供的安装电池的空间和所需的不同电池电压与容量,灵活的选择电池的种类。电源模块电路如图3.7所示。图中,MAX1677的输入电压Vin=3V,输出两路电压Vout1和Vout2,分别是+5V和-10V,+5V为系统电源,而-10V作为液晶显示模块的背光电源。图3.7 电源模块电路电路中的其他器件说明如下。L1、L2为CoilCraft的DO1608C-103表贴磁芯电感,电感值为10Uh。D1、D2是反相耐压大于16V的肖特基二极管,也可选用具有相同耐压参数的其他型号二极管。电阻R11和R12的比值决定了主输出电压值Vout(对应图中的Vout1)需满足下面的公式: R11=R12*Vout/1.25-1 (R12的取值范围为10-200千欧姆)电阻R14和R13的比值决定了LCD对比度输出的电压值VLCD(对应图中的Vout2)需满足下面的公式: R14=R13*|VLCD|/1.25(V) (R14的取值范围为500-2000千欧姆)电阻R8和R7的比值决定了系统欠电压监测的门槛电压值VTRIP需满足下面的公式:R8=R7*VTRIP/0.614-1 (R7130千欧姆)当电池正常时,电池电压过低,输出引脚LBO输出保持高电平;一旦电池电压低于门槛电压,LBO引脚输出为低电平。如果不是用欠电压监测的话,只需要将第三引脚(LBI)接地即可。在原理图中,Vin为电源电路的输入端,连接两节1.5V的电池形成便携式仪表的电源;Vout1连接MAX1677的第16引脚,输出+5V的电压,作为系统的电源电压;Vout2连接MAX1677的10引脚,输出-10V的电压,作为液晶显示模块的背光电源电压。3.2.3 单片机模块由于内部液晶控制器的存在,单片机可直接与GXM12864相连,不必使用其他的接口芯片。由于单片机采用Atmel公司的AT89C51,将液晶模块作为存储器的一部分,直接进行I/O操作。其工作原理图见附录2所示。AT89C51的P0口直接与液晶模块的数据总线DB0DB7相连;P2口的0、1、3、5、6引脚分别和液晶模块的/CSB、/CSA、E、R/W、D/I相连,在单片机程序执行过程中,对它们作相应的控制。3.3 记忆单元电路3.3.1 I2C总线简介I2C总线,是Inter Integrated Circuit Bus的缩写,即“内部集成电路总线”。I2C总线是Philips公司推出的一种双向二线制总线。目前,Philips公司和其他集成电路制造商推出了很多基于I2C总线的外围器件。I2C总线包括一条数据线(SDA)和一条时钟线(SCL)。协议允许总线接入多个器件,并支持多主工作。总线中的器件既可以作为主控器也可以作为被控器,既可以是发送器也可以是接收器。总线按照一定的通信协议进行数据交换。在每次数据交换开始,作为主控器的器件需要通过总线竞争获得主控权,并启动一次数据交换。一个典型的I2C总线标准的IC器件,其内部不仅有I2C接口电路,还可将内部各单元电路划分成若干相对独立的模块,它只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。CPU可以通过指令对各功能模块进行控制,各种被控制电路均并联在这条总线上,所以每个电路和模块都有唯一的地址。在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器)。CPU发出的控制信号分为地址码和控制量(数据)两部分。地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C总线接口电路如图3.8所示。图3.8 I2C总线接口电路I2C总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并产生时钟脉冲,以允许与被寻址的器件进行数据传送。被寻址的器件,称为从器件。一般来讲,任何器件均可以称为从器件,只有单片机才能称为主器件。主、从器件对偶出现,工作在接收还是发送数据方式,由器件的功能和数据传送方向所决定。传统的单片机串行接口的发送和接收一般都分别各用一条线,而I2C总线则根据器件的功能通过软件程序使其工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器,而当其从主线上接收信息时,又成为接收器。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I2C总线的控制完全由挂在总线上的主器件送出地址和数据决定,在总线上,既没有中心机也没有优先级。总线上主和从(即发送和接收)的关系取决于此时数据传送的方向。SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到电源端。连接总线器件的输出级必须是集电极或漏极开路,以具有线“与”功能,当总线空闲时,两根线都是高电平。I2C总线上数据的传输速率在标准模式下可达100kb/s,在快速模式下可达400kb/s,在高速模式下可达3.4Mb/s。连接到总线的接口数量只由总线电容是400pF的限制决定。3.3.2 AT24C01简介 AT24C01是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10 000次)、写入速度快(小于10ms)等特点。AT24C01中带有片内寻址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的操作。所有字节都以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8字节的数据。图3.9为AT24C01的引脚图。各引脚功能如下:图3.9 AT24C01的引脚图SCL:串行时钟。在该引脚的上升沿时,系统将数据输入到每个EEPROM器件,在下降沿时输出。SDA:串行数据。该引脚为开漏极驱动,可双向传送数据。A0A2:器件/页面寻址。为器件地址输入端。Wp:硬件写保护。当该引脚为高电平时禁止写入,为低电平时可正常读/写数据。Vcc:电源。一般输入+5V电压。Vss:接地。3.3.3 硬件原理图记忆单元硬件原理图如图3.10所示。利用单片机AT89C51与24C01进行I2C通信,实现对某一地址内数据的读/写校验操作。图3.10记忆单元硬件原理图3.4 电磁阀控制电路 电磁阀选用脉冲式电磁阀,为以色列BERMAD公司出品,其控制电路原理如图3.11所示。这种电磁阀在开启时只需在其控制线AB两端加一正向脉冲(幅度DC12V宽度大于20 ms),水阀一旦开启则会自动保持。当关断时则在AB两端加一反向脉冲,水阀就会关闭。因为这种电磁阀开启后不需给电磁阀持续供电,所以它的功耗非常低,因而特别适合用在IC卡水表中作为水表开启送水或欠费停水的执行单元。电路设计上采用多路模拟开关组合成一组双刀双掷开关,在AT89C51的控制下,将正脉冲或负脉冲加到电磁阀的控制线AB两端。A+B-脉冲电磁阀Vcc+Vcc-图3.11 电磁阀控制电路图3.5 其它模块电路(1) 脉冲提取电路脉冲提取电路,用于提取IC卡水表的计量脉冲。可在原有的老式湿式水表加入磁针和干簧管,磁针随着用水的流动而旋转使得干簧管动作发出开关信号,作为计量信号。也可以利用干式磁传水表已有的开关信号输出,作为计量信号。(2) 安全保护电路安全保护电路,利用AT89C51可编程的1/O中断口接到水表的外封装上实现保护。使封装完好时I/O线相当于接地,为低电平,一旦封装被非法打开,I/O线就不与地连接,其电平变为高电平,此时CPU将发生安全保护中断,立即关断电磁阀中断供水。这样就能有效地防止私拆或恶意破坏水表的事件发生。(3) 通信接口电路通信接口电路,利用AT89C51的串行通信口,选用MAX2338芯片形成485接口电路。外部数据读取设备可通过水表的485接口,将水表的数据读出,实现自动抄表功能。第4章 系统各模块软件设计4.1 IC卡读写软件设计4.1.1 H6152内部寄存器H6152内部的EEPROM可以分为两部分,32*6B的密码存储器和20B的功能寄存器。密码寄存器可以由用户设置,作为访问Mifarel卡的快速密码访问区,可以保存密码A和密码B类型的预设密码。功能寄存器用于设置通信波特率、通信类型等信息其地址分配和功能如表4.1所示:表4.1 H6152内部功能寄存器地址功能说明00H03H32位设备序列号用于保存出厂时又厂商设定的唯一设备序列号04H当前设备ID用于保存多机通信时当前设备的ID号05H通信协议设定用于设定H6152的通信协议和上电复位后的工作状态06H波特率设定用于设定H6152的通信速率O7H0FH保留保留无法使用10H13H用户数据可以由用户设定,用于保存用户信息(1)04H(当前设备ID) 当MCU和多个读写模块组成多机串行总线网络时,该寄存器用于保存当前设备的ID号,作为设备的地址。ID的实际取值范围为1254,因为0和255分别用于标识主控制设备和“getID”申请。默认情况下,该寄存器值为01H,当H6152使用ASCII通信协议时,该字节无效。(2)05H(协议配置寄存器)MSB LSB保留保留保留Cont.modeBinary timeoutExtend IDBinaryAutostartCont.Mode为用于“连续读”模式下工作范围内存在多张Mifarel卡时的卡片识别控制。该位为0时,“连续读”模式仅用于天线有效范围内只有一张Mifarel卡的情况,当天线有效范围内出现多张卡时,读写模块会根据卡片的位置选择其中一张并返回其序列号;该位为1时,“连续读”模式在工作范围内出现多张Mifarel卡同样正常工作。该位默认值为0。Binary timeout位为0时,Binary(比特流)通信协议下不开启超时控制;为1时开启超时控制。该位默认值为0。Extend ID位为0时,执行“c” “s” “m”命令时,传送Mifarel卡序列号前不传送卡片类型字节(TAGID);为1时,传送Mifarel卡序列号前先发送1B卡片类型。TAGID的值可以为01H、02H、03H和FFH,其中,FFH表示未知卡片。该位默认值为0。Binary位用于设定读写模块使用的通信协议类型。为0时,使用ASCII通信协
展开阅读全文