IC卡煤气表的设计Word下载.docx
- 文档编号:17142053
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:44
- 大小:431.50KB
IC卡煤气表的设计Word下载.docx
《IC卡煤气表的设计Word下载.docx》由会员分享,可在线阅读,更多相关《IC卡煤气表的设计Word下载.docx(44页珍藏版)》请在冰豆网上搜索。
字典
ThisarticlediscussestheICcardintelligenthouseholdgasmetersoftwaredesignanddevelopmentprocess.ThesystemisbasedontheAT89S52SCMrealizing.FirsttoICcardhouseholdgastablefunctionrequirementanalysis,someICcardoveralldesignschemeofgasmeter.DesignUSESmodular,willafunctionasamodule,eachpartprogramareindependentdesign,finalmainprogrambycallingeachmoduleprogramtorun.Finallyfinisheachmoduledesign.Anddebuggingofprogram.Makeeveryfunctionandmeetthedesignrequirements.
Keywords:
ICCardGasMeterMicrocontroller
1绪论
1.1课题研究背景
随着我国国民经济的发展,大中小型企业规模扩大,房地产业蓬勃发展,人民生活水平日益提高,企业和各种居民燃气设施逐渐增多,用气量大增。
而长期以来,在燃气供应方面,一直是实行先用气,后交费的政策。
原始的人工抄表工作量大,收费时间长,收费困难,效率低,,资金回笼周期长等问题长期困扰着燃气公司,造成企业资金负担过重,给企业带来了损失。
近几年来,随着IC卡应用技术的日益成熟,利用IC卡设计的智能燃气表应运而生。
1.2课题研究意义
作为“金卡工程”主导的IC卡,是一种包含了微电子技术和计算机技术的高科技产品,是当今世界科技发展的必然趋势。
IC卡的优越性有:
容量大,可靠性高,抗电磁干扰,抗恶劣使用环境,保密性好,对卡上的数据不能任意读/写,信息保存期长,读写方便,读写次数可高达10万次以上。
但IC卡本身并不能单独直接使用,只能将IC卡与其它电子设备(如煤气表)结台起来,才能共同构成满足某种社会需要的应用系统。
现在城市管道煤气已经基本普及,煤气用户的数量也随之有了很大的增长。
作为煤气计费依据的煤气表数量与日俱增,有的城市达几十万甚至上百万用户。
面对如此庞大的煤气表用户,抄表、收费工作将是一项十分繁琐的工作,同时由于用户各种客观情况的存在,例如生活水平、居住环境、生活习惯等不一样,给收费工作带来了很大的困难。
针对这种现状,设计的IC卡智能煤气表,可以很好的解决传统仪表的抄表和收费等问题。
该表实现了先进的IC卡计费功能,并且具备完善的防作弊功能。
采用了多种方法提高该表在实用中的可靠性。
设置了可燃气报警功能,提高了用户用气的安全性。
随着社会的进步,人民生活水平的不断提高,城市管道煤气已逐渐进入千家万户。
煤气作为一种清洁和高效的能源已经有越来越多的用户在使用,特别是西部大开发“西气东输”计划的启动,管道煤气将向更多的大,中,小城市扩展,用户更会大幅增长,管道煤气已经和水,电一样成为城市的基本设施,给人们的日常生活带来极大的方便。
1.3智能卡表及系统数据交换的安全性分析
在智能卡表和预付费管理系统之间,信息的传递是通过IC卡作为传输介质进行的,安全性的主要内容是如何保证IC卡中信息的安全性。
在智能卡表及系统中所使用的都是集成电路卡(IC卡),集成电路卡的核心是采用集成电路芯片来进行数据的存储。
目前广泛使用的IC卡使用的是电可擦除数据存储芯片(EEPROM),这种芯片读写速度快,掉电后数据可以长期保存,并且数据可以反复进行擦写。
安全认证:
安全认证用来在读写设备(包括智能卡表)与IC卡进行数据交换之前,首先进行必要的安全认证,用来确认双方身份的合法性。
只有双方身份确认后,才能建立相互之间联系的通道进行必要的数据交换。
如果双方不能确认身份的合法性,则不能建立进行数据交换的通道。
安全认证有两种方式可以实现,一是通过密码进行安全认证;
一是通过密钥进行安全认证。
(1)读写设备发送密码到IC卡
(2)IC卡进行密码比较
(3)IC卡将比较结果返回读写设备
IC卡在进行密码比较时,如果读写设备发来的密码与IC卡中存储的密码相同,IC卡向读写设备返回密码认证通过的结果,并打开IC卡数据与外部进行交换的权限。
如果密码不同,则返回错误结果,IC卡数据与外部进行交换的权限被关闭。
在逻辑加密卡中使用的就是这种认证方式,密码认证的方式比较简单实用,是一种常用的安全认证手段。
综合上面所讨论的内容,在智能卡表及系统中要具备高的数据安全性,采用安全级别高的IC卡即智能卡(CPU卡)作为传输介质,进行数据的安全认证和有效传输。
1.4本课题的分析
1.4.1IC卡燃气表的功能
作为供气计量,自动计费的IC卡智能煤气表应具有以下功能:
1.预付费功能:
用户向煤气资源管理管理公司预交一定费用后,奖金额存入IC内,获得相应的可使用的没气量。
2.报警功能:
当IC卡中剩余金额低于一定值时,煤气表发出声光报警,提醒用户去预交煤气费,给IC卡充值。
3.显示卡中余额功能:
煤气表可随时显示IC卡中剩余金额,便于用户了解使用煤气情况。
4.加密功能:
对IC卡进行加密,使系统不易被仿制,或者在IC卡丢失后不可被他人使用。
5.掉电保护功能:
当系统由于供电设备或其他问题而断电时,会将程序正在运行中产生的重要数据保存到外置存储器中,例如用户当前用气量,计算产生的数据等,保护用户和煤气公司的利益。
6.自动控制供、停煤气:
当卡内余额用完时驱动电磁阀关闭煤气管道中的阀门,停止供气。
7.可对购气量进行累积
1.4.2.整体设计方案
智能气表本质上是一种微机自动检测系统,由硬件和软件两部分组成。
根据以上功能要求,确定系统整体方案如下:
智能IC卡燃气表系统由单片机、IC卡、电磁阀、传感器、LCD显示器、报警器、存储器等组成。
各部分电路各司其职,共同完成整体功能。
设计主要采用单片机作为主要的芯片,当用户购买一定数量煤气后,供气公司即把所购买的气量存储在IC卡上。
把IC卡插入气表的卡座,系统在程序的控制下将卡内数据信息传送到单片机内并保存在存储器中,并将此卡内数据清零,以确保一卡对一机,防止多次使用此卡。
液晶屏幕将立即显示购气的数量。
如果原来的气表中尚有上次剩余的煤气,则新购的气将叠加在原来的数据上并且在屏幕显示。
随着煤气用量屏幕显示数值将减少。
当IC卡中的金额不足时,会报警响铃;
同时关闭电磁阀;
续费后,电磁阀开启,功能正常。
1.4.3软件设计方案
本人主要负责软件部分,即相关模块程序的编写。
为能够完成IC卡智能燃气表的功能,设计中的程序设计采用模块化设计,各部分程序都独立的设计,最后主程序通过调用各模块程序来运行。
程序设计部分模块包括主程序模块、掉电存储模块、液晶显示模块、IC卡读写模块、功能按键等部分。
2程序设计
2.1主程序模块
当系统开机后,开始运行主程序,在主程序中调用相应的显示子程序、键值的判断和输出操作、流量的采集、计费、现金额的读取以及是否进行读卡的操作等,无论是从性价比上还是从系统可靠性上,以及对于软件调试上来说主控芯片的选择至关重要。
2.1.2主控芯片的选择
主控芯片MCU采用AT89S52,该单片机是美国ATMEL公司生产的低电压,高性能COMS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256kbytes的随机数据存储器(RAM),控制器采用11.0592MHz的晶体振荡器使时钟更加精确,具有三个16位定时器/计数器,八个中断源,一个全双工UART串行通道和看门口定时器。
并且能用下载线进行在线编程以及调试。
2.2.1AT89S52芯片优点
1.AT89S系列单片机是以MCS-8051单片机为内核,结合ATMEL公司自身的技术特色构成的,所以AT89S52单片机与MCS-8051单片机是兼容的。
2.ATMEL公司把EEPROM和FLASH技术巧妙相结合形成特殊的存储器电路,使其应用领域扩大,在开发应用过程中可以非常方便的进行程序设计和修改程序。
在系统工作过程中能有效的保存数据信息不丢失。
也就是说,系统掉电不会丢失数据。
3.AT89S52单片机采用静态时钟方式可节电。
4.可反复进行应用系统程序的调试,因为AT89S系列单片机具有通信下载功能,可现场在线编程、修改、调试带来了极大的方便
5.技术性能高,AT89S52单片机适应温度范围宽,抗干扰能力强。
AT89S52单片机是AT89系列的增强型产品,功能有了较大的增加。
功能增强包括FLASH、工作频率、SPI、看门狗定时器(WDT)等。
其中WDT是一种需要软件控制的复位方式。
WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。
WDT在默认情况下无法工作;
为了激活WDT,户用必须往WDTRST寄存器(地址:
0A6H)中依次写入01EH和0E1H。
当WDT激活后,晶振工作,WDT在每个机器周期都会增加。
WDT计时周期依赖于外部时钟频率。
除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。
当WDT溢出,它将驱动RSR引脚一个高个电平输出。
2.1.3WDT的使用
为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。
当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。
当计数达到8191(1FFFH)时,13位计数器将会溢出,这将会复位器件。
晶振正常工作、WDT激活后,每一个机器周期WDT都会增加。
为了复位WDT,用户必须向WDTRST写入01EH和0E1H(WDTRST是只读寄存器)。
WDT计数器不能读或写。
当WDT计数器溢出时,将给RST引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。
为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。
a.掉电和空闲方式下的WDT在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。
在这种方式下,用户不必喂狗。
有两种方式可以离开掉电模式:
硬件复位或通过一个激活的外部中断。
通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常AT89S52复位一样。
通过中断退出掉电模式的情形有很大的不同。
中断应持续拉低很长一段时间,使得晶振稳定。
当中断拉高后,执行中断服务程序。
为了防止WDT在中断保持低电平的时候复位器件,WDT直到中断拉低后才开始工作。
这就意味着WDT应该在中断服务程序中复位。
为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复WDT。
在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。
默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。
为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,再重新进入待机模式。
2.1.4软件看门狗程序
软件看门狗(WATCHDOG)也叫做程序运行监视系统。
当程序运行受到干扰,程序飞到一个临时构成的死循环中时,系统将完全瘫痪,软件陷阱也无能为力了,这时就需要人工复位或硬件复位;
如果没有人工操作和硬件复位系统,我们采用软件看门狗技术同样也能使系统复位,恢复正常。
watchdog.h:
#include<
reg52.h>
voidwdtclear(void)
{
WDTRST=0x1E;
WDTRST=0xE1;
}
voiddelay_nms(unsignedintn)
unsignedinti;
unsignedintii;
for(i=0;
i<
n;
i++)
for(ii=0;
ii<
1000;
ii++);
wdtclear();
watchdog.c:
#include"
watchdog.h"
main()
WDTRST=0x1E;
//开看门狗,包含两条指令。
一旦开看门狗就没有办法关闭。
WDTRST=0xE1;
while
(1)
{
delay_nms(100);
//超过16毫秒不喂狗,看门狗溢出复位。
2.1.5AT89S52单片机的初始化
当系统上电后,主程序开始执行。
它首先完成系统的初始化工作,如开中断,使外部中断0和外部中断1均为边沿触发方式,设置T0,T1为定时器并赋予初值等初始化后再从AT24C02中读取剩余金额,并进行判断处理等。
初始化程序如下:
voidzinit()
famen=1;
//开阀门
TMOD=0x11;
//定时器0和1为模式1
TL0=0xb0;
//赋初值
TH0=0x3c;
TL1=0x80;
TH1=0x3e;
ET0=1;
//开T0中断
ET1=1;
//开T1中断
IT0=1;
//外部中断为边沿触发方式
IT1=1;
//
EX0=1;
//开外部中断0
EX1=1;
//开外部中断1
ES=1;
//开串行口中断
PS=1;
//串口中断位高优先级
PX0=1;
//外部中断0为最高中断优先
PX1=1;
//外部中断1为次最高中断优先
TR0=1;
//1开始计数,0停止计数
EA=1;
//开总中断
xianshdy=1;
//显示电源关闭
xianshi1=0;
sbjing=1;
//声报警
2.1.6主程序流程图
单片机控制着整个系统的运行,包括流量累计,费用计算,显示,开/关阀门,声光报警,读卡。
在主程序中调用相应模块实现功能。
当系统开机后,开始运行主程序,我们要实现的功能是实现自动计费,根据是否有余额来决定是否开启阀门。
实际中当煤气阀门开启后,煤气就在不断地使用,设计中我们必须去定时的去计算累积使用的煤气量,并且在总钱数中减去使用的钱数得到此时的剩余金额,防止出现余额已用完,而依然在供应煤气。
所以主程序应该为一个在判断余额是否足够的死循环,根据余额情况,若不足则关闭阀门,并且声光报警,若还有则开阀门,并根据用户按键情况作相应的显示。
图2.1主程序流程图
2.2IC卡读写模块
IC卡的主要功能就是作为一种数据载体。
将用户所购煤气金额存储在IC卡内,用户回到家后将卡插入,通过读卡程序将卡内金额传送到单片机内并保存在存储器中,在通过写卡程序将卡内数据清零,以确保一卡对一机,防止多次使用此卡。
2.2.1芯片的选择
本设计采用的IC卡芯片为SLE4442卡,SLE4442是由德国西门子(Siemens)公司设计的逻辑加密存储卡。
具有2Kb(256B)的存储容量,它采用多存储器结构,包括三个存储器:
256×
8b的EEPROM型主存储器,32×
1b的PROM型保护存储器和4×
8b的EEPROM型加密存储器。
主存储器可重复擦除使用,按字节操作,可分为保护数据区和应用数据区,读出均不受限制,但保护数据区的擦除和写入受保护存储器熔丝状态的保护,而应用数据区的擦除和写入则受加密存储器中的密码及密码计数器保护。
SLE4442卡是一种按字节操作的多存储器逻辑加密卡。
它具有2Kb的存储容量和完全独立的可编程加密代码(PSC,ProgrammableSecurityCode)存储器。
内部电压提升电路保证了芯片能够以单+5V电压供电,较大的存储容量能够满足通常应用领域的各种要求。
因此是目前国内应用较多的一种IC卡芯片。
2.2.2SLE4442芯片的特点
SLE4442卡芯片的特点如下:
(1)采用多存储器结构。
(2)2线连接协议,复位响应满足ISO/IEC7816-3标准。
(3)触点配置及串行接口满足ISO/IEC7816(同步传输协议)。
(4)仅当正确输入3个字节的可编程加密代码(PSC)后方可修改数据。
(5)芯片采用NMOS工艺技术,每个字节的写入/擦除编程时间为2.5ms。
(6)存储器具有至少104次的写入/擦除周期,数据保持时间至少10年。
2.2.3SLE4442芯片存储器结构
SLE4442卡芯片采用了多存储器结构,主要包括三个存储器:
8b的EEPROM型主存储器;
32×
1b的PROM型保护存储器;
4×
表2.1逻辑加密卡的存储结构
区域名
地址(字节)
位数
说明
制造区
0~1
16
芯片制造商代码(一旦写入,不可更改,用于识别卡的来源)
发行区
2~5
32
卡制造商、发行商代码
密码区
6~8
24
持卡人密码(PIN,由发行商在卡个人化时预写入,用卡时将之
与持卡人输入的密码相比较,相符才允许对应用区进行读写和修改该密码)
密码计数区
9
8
允许连续输入错误密码的次数(3~4次),若达到则卡自锁,以防止对PIN的非法试探
个人区
10~13
持卡人个人信息,可自由读写
应用区
14~77
512
应用数据
擦除密码区
78~80
擦除密码,仅供发行商使用,与发行商输入密码比较,相等即可对整个应用区置1(檫除),以实现卡的重复使用
擦除计数区
81~88
64
擦除次数,该区每一个1表示可进行1次擦除操作,每输入1
次擦除密码(无论对错)就将1个1置0,该区全为0时,卡片使
用寿命结束。
该区本身的擦除只能在发行前进行,一旦发行,只
能置0和读出
1)主存储器(MainMemory)主存储器为可重复擦除使用的EEPROM型存储器,按字节寻址、擦除和写入。
在擦除时,一个数据字节的所有8位被全部置1。
在写入时,EEPROM单元中的信息则根据输入的数据,被逐位变换成逻辑“0”(即在EEPROM中,新写入的数据与原来存有的数据进行“逻辑与”)。
通常,一个数据的改变包含先擦除(全写为1),后写入(将相应的1写为0)两项操作。
如果在被寻址的字节里8位中没有一个字位需要从0变到1,则可以不进行擦除处理,例如,01101100变为00100100;
反之亦然,在被寻址的字节中,如果没有一个字位需要从1变到0,则可以不作写入处理,例如,01101100变为11111101。
写入或擦除操作一次都至少要耗费2.5ms时间。
主存储器的地址是从0(00H)到255(FFH),共256B(2Kb)。
主存储器可分为两个数据区:
保护数据区和应用数据区:
(1)保护数据区。
主存储器前32B为保护数据区,地址从0(00H)到31(1FH)。
这部分的数据读出不受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。
当保护存储器中第n位(n=0~31)为1时,则对应主存储器中第n个字节允许进行擦除和写入操作;
而当保护存储器第n位为0时,则对应主存储器中第n个字节就不允许进行擦除和写入操作。
根据这一特性,主存储器的保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数,如厂商代码、发行商代码等。
(2)应用数据区。
主存储器后224B为应用数据区,地址从32(20H)到255(FFH)。
这部分的数据读出不受限制,但擦除和写入均受控于加密存储器数据校验比较结果的影响。
当需要修改应用数据区的内容时(擦除或写入操作),必须首先输入一个3字节长的“校验字”。
这个用户输入的“校验字”与原来存在加密存储器中的“参照字”进行一对一的比较。
只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。
应该注意的是这种加密校验的控制是对整个主存储器实施的(即包括保护数据区和应用数据区)。
如果新输入的校验字与芯片中的“参照字”不同,则控制逻辑闭锁主存储器。
芯片允许在有限的次数内(一般为三次)重试比较操作。
如果在连续三次比较失败之后,芯片的错误计数器计数到“0”,并将锁死主存储器,禁止随后的任何比较操作和写入擦除操作。
这时,整个主存储器变成一个只读存储器,芯片中各存储器的内容不能再改变。
2)保护存储器(ProtectionMemory)保护存储器是一个32×
1b的一次性可编程只读存储器(PROM)。
它是按位寻址和写入。
保护存储器为0~31的每一位对应着主存储器地址为0~31的每一个字节,因此可以理解为每个字节单元的控制熔丝。
从出厂到被初始化之前,保护存储器的状态为全“1”。
从控制方面来说,保护存储器的内容只能从“1”写成“0”(即熔断熔丝),而不能从“0”擦除成“1”。
保护存储器每个被写“0”的单元所对应控制的主存储器的字节单元将不再接受任何擦除和写入操作命令,从而使得该字节单元内的数据不可再改变。
因此,对保护存储器单元的写入一定要特别小心。
从使用方面来说,如果需要防止一些固定的标识参数(例如,生产厂家代码、发行商代码、卡片编号等)被改动,以免造成使用混乱,则可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写0,从而使这一部分单元中的参数内容永远不可更改。
保护存储器本身的读出操作不受限制。
但对其写入操作仍然受到加密存储器比较校验操作结果的控制。
当输入的“校验字”与芯片内原来存有的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IC 煤气表 设计