论文书基于单片机的智能水表设计.docx
- 文档编号:8302858
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:18
- 大小:581.09KB
论文书基于单片机的智能水表设计.docx
《论文书基于单片机的智能水表设计.docx》由会员分享,可在线阅读,更多相关《论文书基于单片机的智能水表设计.docx(18页珍藏版)》请在冰豆网上搜索。
论文书基于单片机的智能水表设计
目录
第一章绪论1
1.1引言1
1.2智能水表的结构及特点1
第二章智能水表的硬件设计3
2.1系统总体设计3
2.2水量检测单元设计4
2.2.1信号检测元件4
2.2.2数模转换芯片的选择4
2.3阀门控制单元设计6
2.3.1电动阀设计6
2.3.2电机控制芯片设计6
2.4电源电压检测元件的选择与设计8
2.4.1AD586芯片8
2.4.2MAX813L芯片8
2.5射频卡读写单元设计11
2.5.1非接触IC卡的工作原理11
2.5.2非接触式IC卡选择11
2.5.3MFRC500芯片概述12
2.5.4MFRC500引脚功能13
2.5.5MFRC500与单片机的连接14
2.6LED显示单元设计15
2.6.1ICM7218简介15
2.6.2ICM7218的引脚15
2.6.3ICM7218的显示模式16
第三章智能水表的软件设计17
3.1主程序及初始化模块的软件设计17
3.2MFRC500软件编程18
3.2.1MIFARE1卡的操作流程18
3.2.2主要函数实现原理介绍19
3.3MAX813L的程序设计20
第四章小结21
致谢23
参考文献24
附录125
附录226
附录332
附录436
第1章绪论
1.1引言
随着我国经济的快速发展,现代高科技产品的不断涌现,智能卡的应用已逐步融入人们的生活,射频卡以其良好的可靠性和方便的操作及其本身非接触等特点,成为智能IC卡[1]的首选。
长期以来,我国城镇居民所使用的水表普遍是普通机械旋翼湿式水表,这种水表价格低廉,性能比较稳定,但是还采用人工抄表、按户收费的模式。
用户采用“先用水后付费”方式存在着工作量大,收费周期长,收费困难,效率低下等缺点。
智能水表的智能化可以大大提高供水管理部门的工作效率、节约费用;同时还能为加强自来水使用的监督管理提供手段,从而在技术上为节约用水合理用水创造条件[2]。
1.2智能水表的结构及特点
智能水表是一种以单片机为主体,结合计算机技术与测量控制技术,利用现代微电子技术、现代传感技术、智能卡技术对用水量进行计量并进行用水数据传递及结算交易的新型水表。
智能水表除了可对用水量进行记录和电子显示外,还可以按照约定对用水量进行自动控制,同时可以进行用水数据存储。
由于其数据传递和交易结算通过智能卡进行,因而可以实现由上门抄表收费到用户自行交费的转变。
与传统水表相比,智能水表有以下特点:
(1)可以实现先交费再供水的用水模式。
这是大家都普遍认可的一个优点。
供水部门不仅解决了拖欠交费的老大难问题,还可以提前收到资金。
(2)改变了入户抄表收费的模式。
这种模式改变的意义是巨大的。
由于城市规模
不断扩大和居民户数快速增加,供水部门抄表和收费的工作量将不断加大。
沿用传统的上门抄表模式,将很难适应这种变化。
采用智能水表将可以从根本上改变抄表收费的模式。
特别是随着人们家庭安全意识和隐私意识的增强,入户抄表和上门收费等随意进入私人住户的做法逐渐不受欢迎甚至受到抵制。
(3)可以有效解决一些技术难题,比如阶梯式水价等较为复杂的用水管理模式。
显然采用普通水表和人工抄表的模式,是难以解决这些技术问题的。
(4)当然,智能水表还有其它的优点,比如可以有效解决用水纠纷,贪污水费、用水统计困难等。
第2章智能水表的硬件设计
2.1系统总体设计
射频卡智能水表[3]系统组成如图1所示,主要分为以下几个部分:
单片机AT89C51、电源检测、用水检测电路、阀门控制模块、液晶显示模块、射频卡读写模块等。
图2-1
图2-1中,控制器采用AT89C51单片机[4],有4KB的内部Flash程序存储器,可实现3个级别的程序存储器保护功能;单簧管用于检测水的流量;电源检测模块主要用于检测电池电量以提供系统稳定的电压;LED显示模块作为人机交互接口,方便用户查询用水信息或自来水公司查询水表工作状态;用户的供水由阀门控制模块控制,当用水量余额不足或电池电量不足时,阀门关闭;用户还可通过读写卡模块向水表充值,实现用水金额的预付。
2.2水量检测单元设计
2.2.1信号检测元件
智能水表的采集装置对于仪表本身的测量精度非常重要,是水表设计中较为关键的环节。
小型干簧管传感器[5]触阻抗低、无待机功耗、可靠性好的。
作为磁传感器,在磁铁进入干簧管吸合临界区的时候,干簧管会产生多次吸合,导致重复计量。
为了提高计量的准确性和抗干扰性,在产品中采用双传感器设计。
无论单个传感器吸合多少次都按照吸合一次计算,只有两个传感器各吸合一次才算是一次有效计量。
干簧管工作原理:
当磁铁靠近干簧管时,磁力大到能克服簧片的弹力时,簧片吸合短接;当磁铁远离干簧管时,吸引力小于弹力时弹片就分开,即发出一个脉冲,干簧管的原理图如图2-2所示。
图2-2图2-3
2.2.2数模转换芯片的选择
当水表的传感器有信号来的时候,信号通过A/D芯片AD7828[6]转换为数字信号,AD7828是8b的高速多通道模数转换器,他采用LC2MOS工艺和Half-Flash转换技术,使器件具有较低的功耗(典型值为40mW)。
AD7828每个通道的转换速率为2.5μs,他采用5V直流电压供电,模拟信号输入电压为0~5V。
外部处理器通过对AD7828的片选来启动器件的转换,并通过读信号(使AD7828的引脚RD变低)来读取转换出来的数据。
AD7828的引脚分布如图2-3所示。
AD7828进行数据转换的基本原理是通过使用一种叫半闪速的转换技术,由2个4b闪速AD来达到一个8b转换的结果,每一个闪速AD转换器包含15个比较器,他们将未知的输入电压与参考电压做比较以获得4b的转换结果。
但是高4b与低4b的转换过程不尽相同,高位闪速AD转换器首先获得最主要的高4b转换数据,AD7828内部的一个DA转换器将这4b数据再转换为模拟信号的近似值,然后把他与原来的输入信号相比较,用原来的输入信号减去这个近似值。
最后低位闪速AD转换器将他们的差值转换为低4b数据。
AD7828有两种工作模式,本文选择第一种,适用于有等待状态接口,微处理器的读操作把
、
都变成低电平后开始启动AD转换。
AD7828的数据总线直到数据转换完成才退出三态。
AD转换器的输出状态有两种即
和RDY,这2个信号可以作为微处理器的READY和WAIT的输入信号。
RDY在
的下降沿时变为低电平,而在AD转换完成时回到高阻状态。
则是在AD转换完成时变为低电平而在
或
的上升沿回到高阻状态。
如果不需要RDY信号,可以将引脚RDY直接接到GND。
2.3阀门控制单元设计
2.3.1电动阀设计
选择用电动阀[7]实现智能水表供水的启闭,电动阀分截止阀和球阀,接入DC5V电压,因为分正转和反转,接线时要注意方向。
虽然电磁阀种类繁多,可以配合不同的电路来实现预期的控制,而控制的精度和灵活性都能够保证,但是电磁阀的驱动电压一般价高,智能水表由锂电池供电,无法有效提供必要的驱动电压,且电动阀寿命也比一般电磁阀要长。
2.3.2电机控制芯片设计
因电动阀的工作电流的要求,在选择马达驱动芯片时选择了专为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件L9110[8]。
它将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高。
该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力,每通道能通过800mA的持续电流,峰值电流能力可1.5A;同时它具有较低的输出饱和压降;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。
L9110被广泛应用于玩具汽车电机驱动、脉冲电磁阀门驱动,步进电机驱动和开关功率管等电路上。
(1)性能:
低静态工作电流;
宽电源电压范围:
2.5v~12v;
每通道具有800mA连续电流输出能力;
较低的饱和压降;
TTL/CMOS输出电平兼容,可直接连CPU;
输出内置钳位二极管,适用于感性负载;
具备管脚高压保护功能:
工作温度:
-20℃~80℃。
(2)马达控制驱动芯片L9110的管脚定义、参数、输入输出逻辑关系
序号
符号
功能
1
OA
A路输出管脚
2
VCC
电源电压
3
VCC
电源电压
4
OB
B路输出管脚
5
GND
地线
6
IA
A路输入管教
7
IB
B路输入管教
8
GND
地线
表3-4L9110的引脚功能
IA
IB
OA
OB
H
L
H
L
L
H
L
H
L
L
L
L
H
H
L
L
表2-5马达控制驱动芯片L9110的输入输出逻辑关系
(3)应用电路图:
图2-6
2.4电源电压检测元件的选择与设计
2.4.1AD586芯片
AD586[9]为高精度5V参考电压源,最大偏差为±2.0mV,其优良的性能使其得到了广泛应用。
其引脚如图2-7所示:
1、3、7脚为内部测试端,使用该芯片时不需连接;
2脚为正电源输入端;
4脚接地;
8脚为噪声抑制端,使用时可在8脚及4脚之间接一个1uF的电容;
6脚为精密电压输出端;
5脚一般不用。
2.4.2MAX813L芯片
2.4.2.1MAX813L芯片特点
(1)加电、掉电以及供电电压下降情况下的复位输出,复位脉冲宽度典型值为200ms。
(2)独立的看门狗输出,如果看门狗输入在1.6s内未被触发,其输出将变为高电平。
(3)1.25V门限值检测器,用于电源故障报警、电池低电压检测或+5V以外的电源。
(4)门限电压为4.65V
(5)低电平有效的手动复位输入。
2.4.2.2MAX813L[10]的引脚及功能
(1)手动复位输入端(
),当该端输入低电平保140ms以上,MAX813L就输出复位信号。
该输入端的最小输入脉宽要求可以有效地消除开关的抖动。
与TTL/CMOS兼容。
(2)工作电源端(VCC):
接+5V电源。
(3)电源接地端(GND):
接0V参考电平。
(4)电源故障输入端(PFI),当该端输入电压低于1.25V时,5号引脚输出端的信号由高电平变为低电平。
(5)电源故障输出端(
),电源正常时,保持高电平,电源电压变低或掉电时,输出由高电平变为低电平。
(6)看门狗信号输入端(WDI),程序正常运行时,必须在小于1.6s的时间间隔内向该输入端发送一个脉冲信号,以清除芯片内部的看门狗定时器。
若超过1.6s该输入端收不到脉冲信号,则内部定时器溢出,8号引脚由高电平变为低电平。
(7)复位信号输出端(RST),上电时自动产生200ms的复位脉冲;手动复位端输入低电平时,该端也产生复位信号输出。
(8)看门狗信号输出端(
), 正常工作时输出保持高电平,看门狗输出时,该端输出信号由高电平变为低电平。
图2-7AD586的引脚图2-8MAX813L芯片引脚
2.4.2.3MAX813L的运用
电路连接如图2-9所示:
在这个系统中:
WDI作为看门狗的“喂狗”信号;WDO经过相反处理与RESET输出通过1个或门和单片机的RET连接;MR连接1个对地的手工复位按钮;Vcc接+5V。
图2-9
这个电路的主要功能如下:
(1)对电压监视
当+5电源电压正常时,RESET为低电平,单片机正常运行:
当+5V电压降至+4.65V一下时,RESET变为高电平,对单片机复位。
图中根据实际需要和被检测的电压值选定电阻RV1、RV2的阻值,因为PFI的门限电压为1.25V,一旦电压下降,PFO就会从高电平降至低电平。
(2)看门狗
WDI作为“喂狗”信号,单片机只要在1.6s内给一个正脉冲,看门狗定时器被清零,WDO维持高电平;当程序跑飞或死机时,WDO立即变为低电平,经相反,变为高电平,对单片机进行复位。
2.5射频卡读写单元设计
2.5.1非接触IC卡的工作原理
非接触式IC卡[11-14]与读片器之间通过无线电波来完成读写操作。
非接触式IC卡本身是无源片,当一读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:
一部分是电源信号,该信号由卡接收后,与本身的IC产生一个瞬间能量来供给芯片工作。
另一部分则是指令和数据信号,指挥芯片完成数据的读取、修改、储存等,并返回信号给读写器。
2.5.2非接触式IC卡选择
非接触式IC卡采用PHILIPS公司的Mifare1射频卡。
射频卡的核心是PHILIPS公司的Mifare1ICS50,内建高速的CMOS存储器、MCU等。
8k(bit)E2PROM存储器共分成16个扇区,每个扇区由4个数据存储块构成,可用于存储数据。
每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制条件。
卡片上无电源,工作时电源由读写器天线发送无线电载波信号耦合到卡片天线上产生,一般可达2V以上,工作频率为13.56MHz,标准读写距离为100mm,与读写器的通信采用半双工通信协议,符合CCITT标准,最高速率可达106kbit/s。
Mifare1卡有16个扇区,每个扇区又分为4块(块0、块1、块2和块3),每块16个字节,以块为存取单位。
除第0扇区的块0(即绝对地址0块)已经固化,用于存放厂商代码,不可更改之外,其余每个扇区的块0、块1、块2为数据块,可用于存贮数据,块3为控制块,包括密码A(6字节)、存取控制(4字节)和密码B(6字节),其结构如图2-10所示。
图2-10
2.5.3MFRC500芯片概述
(1)带有高集成度模拟电路以用于卡的应答的解调和解码;
(2)缓冲输出驱动器可使用最少数目的外部元件以连接到天线;
(3)可近距离操作(可达100mm);
(4)有用于连接13.56MHz石英晶体的快速内部振荡器缓冲;
(5)自带低功耗的硬件复位功能;
(6)并行微处理器接口,并带有内部地址锁存和IRQ线;
(7)有易用的发送和接收FIFO缓冲区;
(8)支持MifareClasic;
(9)支持Mifare有源天线;
(10)适合高安全性的终端。
2.5.4MFRC500引脚功能
MFRC500[13-15]为32脚SO封装,其引脚功能如表2-12所列。
需说明的是:
某些引脚依据其所用微控制器的接口情况具有不同功能。
图2-11
表2-12
2.5.5MFRC500与单片机的连接
MFRC500芯片可直接支持各种微控制器(MCU)连接,也可直接和PC机的增强型并行接口(EPP)相连接,每次上电(PON)或硬启动(Reset)后,芯片会复原其并行接口模式并检测当前MCU接口类型,通常用检测控制引脚逻辑电平的方法来识别MC接口,并利用固定引脚连接和初始化相结合的方法实现正确的接口。
图2-12给出了相应的连接接线图。
2.6LED显示单元设计
2.6.1ICM7218简介
ICM7218[16-17]是MAXIM公司生产的7段共阴极LED数码管的驱动芯片,每一片ICM7218最多可以驱动8位LED数码管。
它集BCD译码器、多路扫描器、段驱动和位驱动于一体,内含8X8位SRAM,可保存8位LED数据。
还有一个控制逻辑单元,写入控制字控制整个芯片正常运作。
并可多个ICM7218并联使用。
外围接口电路简单,使用方便。
常规静态LED驱动芯片(如MC14495、MC4513等)只能驱动单一位LED数码管,使得硬件电路复杂,线路板设计成本高。
2.6.2ICM7218的引脚
ICM7218系列引脚包括DIGIT1~DIGIT8八个位驱动、SEGA~SEGG八个段驱动及ID0~ID7八条数据线引脚,并且有MODE控制位用来选择工作方式图2-13为ICM7218的引脚定义:
(1)SEGA-SEGF七段驱动管脚;
(2)DIGIT1-DIGIT八位选择管脚;
(3)ID0-ID7八位数据接口管脚;
(4)WR数据写入控制管脚;
(5)MODE9区分显示数据、控制字管脚;图2-13
(6)D1P小数点显示管脚;
(7)VCC接+5V电源管脚;
(8)GND接地管脚。
2.6.3ICM7218的显示模式
ICM7218芯片可工作在三种显示模式非译码显示模式、十六进制译码显示模式和十进制译码显示模式。
本文选用非译码模式,具体说明如下:
写入命令字ID5=1,输入数据直接控制段位输出,输人数据和段位显示对应如表2-14所示。
七段中若想使某一段显示则令其相应的数据位置1即可,但置ID7=0时小数点显示。
表2-14
第3章智能水表的软件设计
3.1主程序及初始化模块的软件设计
系统主程序的作用是进行初始化处理和数据的存储、显示,在主程序中,首先进行初始化,设置一些标志位、分配存储单元,定义存储单元的内容,对中断系统进行初始化,主程序框图如图3-1所示:
图3-1
3.2MFRC500软件编程
3.2.1MIFARE1卡的操作流程
读写器对MIFARE1卡的访问操作需遵循固定的顺序,依次是寻卡、取序列号、选卡、认证、读写操作,缺少一个环节都不能实现正确访。
流程图如3-2所示。
图3-2
3.2.2主要函数实现原理介绍
(1)寻卡函数M500PiccCommonRequest(unsignedcharreq_code,unsignedchar*atq)主要功能是寻卡,入口参数有2个:
一是寻卡指令的代码req_code,该参数通常情况下为26H,另一个是指向返回值的指针atq。
该函数实质上是调用transceive指令驱动发送电路发送一字节的26H,如果有卡,则卡将返回2字节的卡片类号,比如MIFARE1卡类型号为04H。
2)防冲突函数M500PiccCascAnticoll(unsignedcharbcnt,unsignedchar*snr)解决若同时出现多张卡时选择哪一张卡的问题,入口参数有2个:
一是冲突位数bcnt,二是指向返回值的指针。
如果只有一张卡,此函数演化为获取卡的序列号的函数,此时直接将冲突位数bcnt置为0。
此函数的执行将使卡返回4字节的序列号,该序列号是全球唯一的卡的ID号。
这时函数实质上是驱动发送电路发送了2个字节93H和20H,卡在识别了该指令后将返回序列号。
(3)选卡函数M500PiccCascSelect(unsignedchar*snr,unsignedchar*sak)在获取卡序列号之后执行。
入口参数有2个:
一是指向被选中的卡的序列号snr的指针snr,二是指向返回值的指针sak。
选卡函数实质上是驱动发送电路发送了7个字节:
93H、70H、4字节序列号、CRC校验码。
卡将返回1字节的代表卡容量的代码,比如MIFARE1卡将返回08H。
(4)认证函数M500PiccAuthKey(unsignedcharauth_mode,unsignedchar*snr,unsignedchar*keys,unsignedcharblock)在选卡之后执行,根据ISO14443TYPEA标准[18],对卡的读写操作之前一定要通过3轮认证,认证中传输的数据流经过了加密处理:
以确保数据安全性。
函数入口参数有4个:
一是认证模式代码auth_mode,分为2类:
密匙A认证60H和密匙B认证61H:
二是卡序列号指针snr;三是密匙指针keys;四是1字节的块地址。
整个过程是先将6字节密匙加密成12字节,然后通过LOADKEY指令装入KEY缓存,接着执行authent1和authent2指令,若无错误则说明认证通过,此时卡将返回1字节0AH作为认证正确的应答,密匙初始值均为FFFFFFFFFFFFH。
3.3MAX813L的程序设计
单片机每个1.6μs发送一个喂狗“信号”给WDI端,程序如下:
voidwatchdog()
{P1^5=1;
voiddelay()}
main()
{while
(1)
{……
watchdog()
……}}
第4章小结
本论文对非接触式射频卡智能水表进行了设计,以AT89C51单片机为控制器,论文从智能卡系统入手,着重介绍了基于Philips公司MIFARE技术的非接触式智能卡和MFRC500芯片。
作为一个系统在设计时可能要考虑到诸多因素,每一个细节上,都可能出现意想不到的事情,有时一个小小的问题,要花好多的时间和精力,需要耐心和恒心。
在设计过程中也要结合实际,我们教材中所介绍的各种芯片及器件很多已被淘汰,设计时必须要考虑到这一点,选取合适的元器件,同时也要考虑经济上的可行性,尽可能的降低制造成本。
这设计过程中常常因为某一个元件的更改而影响到整体的设计。
经过这次智能水表的设计过程,我深知自身的不足之处,在以后的生活和工作过程中更要不断地提高自己。
第一次接触到绘图软件PROTEUS,虽然很陌生,上手很慢,但是在边设计边学习的过程中可以不断地提高自己。
鉴于本人的能力有限,以及当前我智能水表技术的水平限制,本设计不可能尽善尽美,特别体现在成本控制中和程序控制中。
致谢
在此,我诚挚地感谢所有给了我支持和帮助的师长、同学。
首先,我要衷心地感谢我的导师付永忠副教授;在我的整个研究生生活中,给了我悉心的指导,以渊博的学识、严谨的治学态度和良好的师德给我树立了榜样,使我终生受益。
特别是在做论文期间,感谢导师为我付出了许多的心血。
其次,要感谢学校给我们提供这么好的毕业设计环境。
在本论文的写作和相关研究工作中,同一组同学们都给予了我很多热心的帮助和热情的鼓励,使我顺利走过近三个月的课题研究生活。
我要向他们中的每一个人表示由衷的感谢,我会永远记住这段美好时光。
参考文献
[1]王韧.IC卡智能水表的设计与实现[J].自动化仪表,1998
[2]陈鹏.新型水表的研究与发展[J].中国仪器仪表,1998
[3]罗亮辉,胡福乔.射频卡智能水表的研制[J].自动化仪表,2005,26
(2):
33-37
[4]李军.51系列单片机高级实例开发指南[M].北京航空航天大学出版社,2004.6
[5]王洪涛.基于MSP430单片机智能网络水表的远程抄表系统设计[J].重庆文理学院学报,2009.4
[6]蔡钦涛,方水良基于AD7828和TMS320F206的多通道高速数据采集系统设计[J].浙江大学机械系,2005
[7]刘百德.智能水表的应用及设计[J].中国水表网,2006.3
[8]郑芬.基于智能卡的预付费智能水表的研究与设计[J].中南大学,2007.5
[9]陈涛.单片机应用及C51程序设计[M].机械工业出版社,2008.1
[10]王卫东,傅佑麟.高频电子电路[M].北京:
电子工业出版社,2004
[11]刘铮.非接触式IC卡射频识别技术[J].信息技术,2006,3(4):
8~12
[12]李淑琴,范蟠果.射频识别非接触IC卡读卡器的设计[J].计算机测量与控制,2007
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 论文 基于 单片机 智能水表 设计