智能IC卡燃气表的设计与实现可行性研究报告.docx
《智能IC卡燃气表的设计与实现可行性研究报告.docx》由会员分享,可在线阅读,更多相关《智能IC卡燃气表的设计与实现可行性研究报告.docx(26页珍藏版)》请在冰豆网上搜索。
智能IC卡燃气表的设计与实现可行性研究报告
智能IC卡燃气表的设计与实现可行性研究报告
摘要:
本文设计的智能IC卡燃气表在对燃气流量控制的同时,又可以固定流量加以显示,而当流量小于某一值时,就报警。
本设计采用MCS-51系列单片机中的89C51为CPU,当IC卡插入后,燃气开通,传感器会将检测到的流量以电流的形式送入I/V变换器,得到相应的电压信号,该信号经A/D转换后,以数字量的形式存在于CPU单元中,该量与设定值一定存在差值,通过PID调节后,将信息送入CPU中,由他发出指令信号推动执行机构带动调节阀控制燃气流量的大小,如此反复多次控制后,最终可实现设计的相关参数。
关键词:
IC卡单片机流量显示
附录A.....................................................................................................................................................................20
附录B.....................................................................................................................................................................21
附录C.....................................................................................................................................................................22
引言
近些年随着计算机技术和信息技术的发展,全球的信息时代已来临,世界各国都在高科技领域制订适合自己的发展道路,我国政府正在致力于国民经济信息化的建设,以“金卡工程”为代表的信息化应用工程使我们加速向全球经济一体化进。
作为金卡工程的代表,IC技术无疑是当今世界最优秀应用技术。
近十几年发展起来IC卡燃气表是一种新型的燃气表,一般由计量传感器电路、微功耗单片机、微功耗阀门、电压测试电路、防窃气电路、流量监测等部分组成。
具有精确记数功能、功能卡传输媒介功能、阀门自动处理功能、非法操作处理功能、欠压处理功能、掉电处理功能、数据下载功能、数据显示与声音提示功能等。
经过广大IC卡生产厂家多年的技术改进和革新,IC卡技术日益成熟,应用也越来越普及。
第1章智能IC卡燃气表的总体设计方案及原理
1.1IC卡燃气表的总体设计方案
1.1.1系统总体的控制过程
智能IC卡燃气表系统主要由单片机,IC卡、电磁阀、传感器、I/V转换器、A/D转换器、LED显示器、报警器等组成。
总体框图如图1.1所示。
燃气用户在燃气公司开户,购买一定气量后,即得到加密的IC卡。
用户用气时将卡插入燃气表中,卡中气量自动输入燃气表并在IC卡中消除气量,供气阀门打开。
当气量不足时,燃气表提示用户购气;气量用完时,燃气表自动切断供气管路。
图1.1系统总体控制原理图
1.1.2智能IC卡燃气表的控制算法
本文设计的是对智能IC卡燃气表流量的控制,这个控制是这样一个反馈调节过程:
比较实际流量和需要控制的流量得到偏差,通过对偏差的处理获得控制信号,再去调节调节阀,从而实现对流量的控制。
该系统采用过程控制中应用最广泛的PID控制形式。
1.2智能IC卡燃气表的原理及功能
当用户将购买到得含有一定购气量的IC卡插入表内时,电磁阀在单片机控制下打开气路阀门。
用户每使用一个微小的计量单位的气体时,计量电路便发出1个计量脉冲,该脉冲如经电控系统判定为有效,即进入软件进行累计,当达到一定数目(如1/100L)时可以从存于SAM模块中的已购气量中减去1个计量单位。
当剩余气量为某一设定值时,燃气表进入报警状态,并关闭电磁阀,切断气路以便提醒用户购气。
用户此时按一次按键后,仍然可以打开阀门继续用气;当剩余气量为零时,控制阀再次关闭,用户只有将存储一定购气量的卡插入后才能打开阀门。
用户所剩气量由LED显示。
本设计具有燃气流量的累积,燃气可用数的递减;IED显示燃气累积数,燃气可用数以及卡中的购气数;“欠量”,“过流”,“异常”等情况下有报警竟声音等功能。
第2章智能IC卡燃气表系统的硬件组成
1.单片机
AT89C51单片机是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序储存器和128bytes的随机存取数据存储器(RAM)可灵活应用于各种控制领域。
2.电磁阀
本文采用的是新型双稳态电磁阀MP15A-5V,电源电压低。
正常供气情况下,电磁阀处于常开状态,驱动机构不消耗电能;只有当上一级的气体数完时,电磁阀关闭并自锁于常闭状态。
它具有启动气压低及关闭可靠等优点。
3.IC卡电路
IC卡读/写器是IC卡煤气表的输入接口。
当IC卡插入读/写器时,首先读入的是卡中的密码,以此判断IC卡的合法性。
煤气表在判断了卡的合法性后,读入所购气量并与煤气表内剩余气体累加,同时将卡上购气量单元清零,回写煤气表上用气量、剩余气体等信息,以便下次购气时煤气公司读取,实现煤气表信息的回馈功能。
4.传感器
本设计的传感器选用SWINGIRLⅡ电容式涡街流量传感器。
它的基本原理是以卡门涡街器理论为基础。
适用范围广,压力损失小,长期稳定性好,工作寿命长。
5.LED显示
AT89C51串行口的移位寄存器有四种工作方式,通过外接移位寄存器74LS164实现串/并转换后控制并驱动数码管及LED显示。
主要显示剩余气量和已用的气量。
2.1传感器的功能及其技术参数
本设计采用的是SWINGIRLⅡ电容式涡街流量传感器。
其工作原理为:
当管道中流体流经漩涡发生体而交换成两侧列漩涡即卡门旋街时,由于在漩涡分离点引起低压,结果在漩涡发生体两侧产生反向的周期性压力脉冲,并通过侧面孔传到漩涡发生体中心孔内部而作用到振动舌上,使它沿着X轴做周期性横向偏移,但由于振动舌上端固定,故这种周期性偏移实际上演变为扰性振动,其频率和相位严格与涡街压力脉冲一致,但振幅甚微,振动舌始终不会碰触漩涡发生体中心孔内壁和电极支座。
另一方面,流体漩涡压力脉冲不会使电极支座发生任何偏移。
所以在漩涡压力作用下仅是振动舌的下端相对于静止的支座相对运动。
在某一时刻,振动舌与支座上一个电极之间的距离缩短,而与另一个电极之间的距离增大;前置放大器电容检测电路分别向两个电容充电,而振动体与支座相对运动引起的电容变化发应为电流大小的变化,从而实现机电转换。
电容检测电路按“差动开关电容”原理设计。
仅产生一个与两个电容差值所决定的差动信号,而原来的两个基本电容值则在形成差动电容时被抵消,其频率和流量成正比,其工作原理图如图2.1所示。
图2.1SWINGIRLⅡ电容式涡街流量传感器工作原理
其适用范围:
SWINGWIRLⅡ电容式涡街流量传感器是采用差动开关电容(DSC)作为检测元件,来感测涡街发生体产生的涡街频率的一种器材,压力损失小;长期稳定性好;工作寿命长;测量准确度高等。
广泛应用于测量封闭福安道中的气体、蒸汽和液体的流量。
例如:
煤气、天然气、压缩空气、柴油;变温液体及液化的二氧化碳、氮、天然气等低温液体。
2.2(RCV420)变换器的设计
由于SWINGWIRLⅡ电容式涡街流量传感器输出的是0~20mA或4~20mA的电流信号,所以必须先将电流信号转换为电压信号。
传感器输出的信号为0~10mA或4~20mA的电流信号,这一方面提高了信号远距离传送过程中的抗干扰能力,减少了信号的衰减;另一方面为与标准化仪表和执行器匹配提供了方便。
当模拟量输入为电流信号时,就要经过电流/电压(I/V)转换处理,得到适合A/D转换器使用的电压信号。
本文采用的RCV420变换器是美国RURR-BROWN公司生产的精密电流环接收器芯片,用于将4~20mA输入信号转换成为0~5V输出信号,它具有很高的性能价格比。
芯片如图2.2所示。
图2.2RCV420变换器
2.3A/D转换器的设计
TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过I/OCLOCK、CS、DATAOUT三条口线进行串接口。
具有4MHz片内系统时钟和软、硬件控制电路,转换时间最小可达17μs。
总失调误差最大为±0.5LSB,典型功耗值为6mW。
起作用是将模拟量转换为数字量。
采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换。
2.4TLC549与89C51芯片的连接方法
TLC548/549采用串行方式来传送数据,在和单片机连接时只需占用3根口线。
其I/OCLOCK和DATAOUT可以和另外的TLC548/549或外部单元共用。
具体的接口方法如图2.6所示。
图2.6TLC549与89C51的连接
图中P12接转换与输出控制信号端,P22输入/输出双向I/O口与串行数据输出连接,ALE地址所存于TLC549的输入/输出时钟口相连接。
当CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。
这种CS控制作用允许在同时使用多片TLC548、TLC549时,共用I/OCLOCK,以减少多路A/D并用时I/O控制端口。
一组通常的时序为:
(1)将CS置低。
内部电路在测得SC下降沿后,在等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)输出到DATAOUT端上。
(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第五个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入。
(3)接下来的3个I/OCLOCK周期的下降沿将将移出6、7、8(D2、D0)个转换位
(4)最后,片上采样保持电路在8个I/OCLOCK周期下降沿将移出第6、7、8(D2、D1、D0)个转换位保持功能将保持4内部周期,然后开始进行32个内部时钟周期的A/D转换。
第8个I/OCLOCK后,CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统周期以等待保持和转换工作的完成。
如果CS为低时I/OCLOCK上出现一个有效地干扰脉冲,则微处理器/控制器将于起降的I/O时序失去同步;若果CS为高时出现一次有效低电平,则将使引脚初始化,从而脱离原转换过程。
在36个内部系统时钟周期结束之前,实施步骤
(1)~(4)可重新启动一次新的A/D转换,与此同时,正在进行的转换终止。
此时的输出时前一次的转换结果而不是正在进行的转换结果。
若要在待定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时钟对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样,却在第8个I/OCLOCK的下降沿开始保存。
2.5单片机的设计
2.5.189C51芯片及片内功能
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2.5.289C51各引脚功能
89C51单片机引脚图如图2.7所示
图2.789C51单片机
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,状态,蜂鸣器停止发音。
.其接口电路程序如下:
SND:
SETBP1.0
MOVR7,#1EH
DL:
MOVR6,#0F9H
DL1:
DJNZR6,DL1
DJNZR7,DL
CLRP1.0
RET
第1章智能IC卡燃气表的软件设计
3.1主程序
主程序的功能是首先对所有芯片复位,初始化后,经外围设备,通过A/D转换器,将信号转换后进行读取,当IC卡中的金额不足或没有时,将显示出来并报警响铃,同时关闭电磁阀,续费后,电磁阀开启,功能正常。
主程序框图如.图3.1所示。
图3.1主程序框图
3.2显示子程序
电路中设计了4位LED显示器,其功能为:
左首位为百位数或标志位,左二位为十位数,左三位为个位数,左四位为小数点后的十分位数,如图3.2所示的显示子程序框图
图3.2显示子程序框图
3.3IC卡读写程序
IC卡检测流程采用了智能化的设计,首先检测是否有IC卡插入,在检测有正确IC卡存在的前提下,对IC卡密码进行核对,读取IC卡存储内容后,进行相应的处理,程序框图如图3.3所示。
图3.3IC卡读写程序框图
结论
本设计主要阐述了IC卡燃气表的硬件、软件设计方案,包括系统功能,工作原理、结构框图、硬件各部分电路设计及其软件程序编写等。
涉及领域包括电子、单片机、汇编语言等多门学科。
在本系统的设计过程中,硬件方面的重点是燃气表测量电路、控制电路等的设计。
软件部分来用AT89C51单片机的汇编语言编写,设计中应用模块化设计结构,完成了电表的计费功能。
致谢
在论文写作的过程中,从论文的选题到确定思路,从资料的搜集和提纲的拟定到内容的写作与修改,继而诸多观点的梳理,都得益于赵艳春老师的悉心指导和匠心点拨。
论文的点评中总是闪烁着智慧的火花,与他的每次交谈我都能从中获益。
他渊博的学识,敏锐的学术洞察力,严谨的治学态度,一丝不苟的负责精神,以及对学生孜孜不倦的教诲都给予了我极其深刻的印象,让我受益匪浅。
在此,谨向赵老师表示我最衷心地感谢和最诚挚的敬意。
同时,也向两年来所有教授过我和帮助过我的老师表示感谢,感谢您们对我的谆谆教诲、耐心指导和无私的帮助。
参考文献
1.王丽,李劲伟.TLC549A/D转换电路在EDA实验系统上的实现.河南科技大学学报,2002年6月
2.何立民,单片机应用系统设计.北京航空航天大学出版社,1990年10月
3.蔡纯洁,邢武.pic16/17单片机原理知识与使用.合肥中国科学技术信息大学出版社,1997年6月
4.何立民,i2c总线使用系统设计方案.北京航空航天大学出版社,2002年9月
5.王爱英,智能卡技术信息.清华大学出版社,2004年6月
6.杨振野,IC卡技术及其应用.北京科学出版社,2006年7月
7.沈红卫,单片机应用系统设计实例与分析,北京航空航天大学出版社,2003年4月
附录A
总体电路图
附录B元器件清单
序号
符号
型号
器件名称
1
U1
89C51
单片机
2
U2
TLC549
A/D转换器
3
U3
RCV420
变换器
4
U4
AT24C02
程序存储器
5
U5
74LS164
移动寄存器
6
U6
74LS164
移动寄存器
7
U7
74LF164
移动寄存器
8
U8
74LS164
IC卡槽
9
U9
IC
三极管
10
U10
9013
电阻
11
Q1_Q3
1K
电阻
12
R33
10K
电阻
13
R34
5.1K
电阻
14
R35
5.1K
电阻
15
R36
4.7K
电阻
16
R37
10K
电阻
17
R38
10K
电阻
18
R39
4.7K
电阻
19
R40
100K
电阻
20
R41
10K
电阻
21
R42
1K
电阻
22
R43
10K
电阻
23
R44
100K
电阻
24
R45
10K
电阻
25
R46
10K
电阻
26
C1
30PF
电容
27
C2
10PF
电容
28
C3
10PF
电容
29
S1
SW-PB
按键
30
Z1
12MHZ
晶振
31
D1
4007
三极管
32
DPY
DPY-7
LED显示器
33
C4
1mF
电解电容
34
C5
1mF
电解电容
附录C
C1主程序清单:
ORG0000H
AJMPMAIN
ORG000BH
AJMPMM
MAIN:
MOVR0#00H
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBEA
SETBET0
MM1:
AJMPMM1
MM:
CLRTR0
INCR0
CJNER0,#14H,PP
MOVDPTR,#7400H
MOVA,#00H
MOVX@DPTR,A
MOVR6,#04H
MOVXA,@DPTR
MOVB,#05H
MULAB
MOV20H,A
MOVR4,B
NOP
MOVR0,#20H
MOVR6,#02H
MOVR1,#22H
ACALLM1
MOVR3,22H
MOVR1,#79H
MOVA,#1AH
MOV@R1,A
INCR1
MOVA,R3
ANLA,#0FH
MOV@R1,A
INCR1
MOVA,R
ANLA,#0F0H
SWAPA
MOV@R1,A
ANLR1
MOVA,#19H
MOV@R1,A
INCR1
MOVA,R4
MOV@R1,A
CALLXS
ORG0000H
M1:
CLRA
MOV21H,A
MOV22H,A
MOV23H,A
MOV24H,A
M2:
MOVR7,#08H
CLRC
CLRA
M3:
MOVA,@R0
RRCA
MOV@R0,A
MOVA,23H
RRCA
MOV23H,A
MOVA,24H
RRCA
MOV24H,A
PUSHPSW
MOVA,23H
JNBA7,A
CLRC
SUBBA,#30H
M:
JNBA,3,M4
CLRC
SUBBA,#03H
M4:
MOV23H,A
POPPSW
DJNZR7,M3
MOVA,23H
MOV@RR1,A
MOVA,24H
MOV@R0,A
DECR1
DJNZR6,M2
XS:
CLRP3.4
SETBP3.3
SETBP3.4
MOVR0,#78H
MOVR3,#7FH
MOVA,R3
LD0:
MOVDPTR,#7F01H
MOV@DPTR,A
INCDPTR
MOVA,@R0
ADDA,#0DH
MOVCA,@A+PC
MOV@DPTR,A
ACALLDL1
INCR0
MOVA,R3
JNBACC.0,LD1
RRA
MOVR3,A
AJMPLD0
LE1:
RET
DSEG:
DB3FH,06H,5BH,4FH
66H,7DH,07H,7FH
6FH,77H,7CH,39H
5EH,79H,71H
DL1:
MOVR7,#02H
DL:
MOVR6,#0FH
DL6:
DJNZR6,DL6
DJNZR7,DL
ACALLGG
GG:
MOVDPTR,#7FFFH
MOVA,#DATA
MOVX@DPTR,A
RET
PP:
MOVR0,#00H
MOVTMOD,@01H
MOVTH0,#3CH
MO