IC卡预付费远传式仪表设计_第1页
IC卡预付费远传式仪表设计_第2页
IC卡预付费远传式仪表设计_第3页
IC卡预付费远传式仪表设计_第4页
IC卡预付费远传式仪表设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北华大学毕业设计(论文)

PAGE

PAGE

45

--

摘要

IC卡技术是以计算机、通信技术等现代化科学技术为基础发展起来的一项新技术。本文是在对IC卡技术研究的基础上,对具有逻辑加密功能的IC卡在仪表控制系统中的应用进行研究。论文首先总结了前人的研究成果,结合现在电表收费中存在的弊端进行了分析,介绍了IC卡技术的相关知识、发展状况和应用,并对IC卡在传输中的安全问题做了阐述。本文以电表为例对IC卡在仪表中的应用进行了深入研究。IC卡电表预付费控制系统采用硬件和软件相结合的方法,通过汇编语言编程实现IC卡在电表终端的刷卡消费。本系统所涉及的主要内容有:IC卡的基础知识;硬件的选用、硬件设计和功能分析;主程序、插卡中断子程序、用户卡子程序、脉冲中断子程序和显示子程序的软件设计以及数据安全设计。通过对系统中涉及的硬件的选用和组合,使整个系统的功耗和稳定性达到较好效果。通过对IC卡的选用和内部存储器的合理分配以及对程序的合理设计增强了IC卡中数据的安全性。本文对IC卡密码安全和数据校验等几个方面进行了讨论。

经济发达的国家现在都以信息产业,即由现代通信产业、计算机产业、集成电路产业和软件产业所构成的新兴产业群,作为整个社会经济发展的基础。可以这样说,在人类有史以来所形成的各种产业中,没有哪一种能有这么迅猛发展的势头,没有哪一种能具有这么广泛的渗透性,没有哪一种能有这么深入地改变与影响人们的生活乃至思维方式。信息产业决定着本世纪的力量对比,世界各国无不向这个新的制高点冲击。

关键词:IC卡,电度表,ISO7816,单片机

Abstract

ThetechnologyabouttheICcardisarecentlyrisingtechnology,itbasedonthecomputerandcommunication.ThispaperistheapplicationandresearchforthelogiccryptographlcICcardinthemeterbasedonthefoundationintechniqueofICcard.Atfirst,thecurrentachievementsinthefieldaresummarized.Thispaperanalyzestheexistingabuseoftheelectrodynamicmeter’schargenowadays,introducestherelatedknowledge,decelopingstateandapplicationaboutICcardtechnology,andelaboratesthesecurityproblemaboutthetransmissionwithICcard.ThispapertakestheprepaidelectrodynamicmeterasanexampletothecardofICintheapplicationthoroughstudy.ThecontrollingsystemoftheprepaidelectrodynamicmeterwithICcardcombineshardwareandsoftwareknowledgeandaccomplishesconsumptionoftheelectrodynamicmeterterminalwithICcardthroughassemblylanguageprogramming.

Thissystem’smaincontentinvolvesthebaseknowledgeoftheICcard,thehardwarechoosestousewithdesign,systemofthehardwareprimarilytoanalyzewiththefunction;Themainprocedure,theICcardbreak-sub-procedure,thecustomercardsub-procedure,thepulsebreak-sub-procedureandthedisplay-sub-proceduredesignanddatasecurity.Thesysteminconsumptionandstabilityisoptinaleffectthroughselectionhardware.Thecard’ssecuritywithdataisenhancedthroughprogramminginreason.TheICciphercodesecurityanddatacheckarediscussedinthethesis.

Keywords:ICcard,theelectrodynamicmeter,ISO7816,microchipcomputer

北华大学毕业设计(论文)

目录

摘要

1

Abstract

2

引言

1

1.绪论

2

1.1本文研究的背景及目的

2

1.2本文研究的主要内容及组织结构

3

2.IC卡的发展与应用

4

2.1信息和金卡工程

4

2.1.1信息和信息社会

4

2.1.2金卡工程

4

2.2IC卡的兴起

5

2.3国内外IC卡的应用状况

6

3.IC卡技术与安全

8

3.1IC卡的物理特性

8

3.1.1IC卡的构成

8

3.1.2IC卡的触点功能

8

3.2IC卡存储器

8

3.3IC卡的操作过程

9

3.4IC卡的安全性

10

4.IC卡预付费电表系统分析

12

4.1现状分析

12

4.2IC卡预付费电表工作过程

12

4.3设计功能

13

5.IC卡预付费电表系统设计

15

5.1硬件选择

15

5.1.1单片机选择

15

5.1.2存储芯片的选用

19

5.1.3IC卡的选用

21

5.1.4显示驱动芯片的选用

30

5.2硬件设计

33

5.3IC卡电度表的控制软件

37

5.3.1IC卡的认证

38

5.3.2程序设计控制软件

38

5.4系统抗干扰分析

42

5.5系统安全性分析

46

结论

47

参考文献

48

附录系统总图

50

致谢

51

北华大学毕业设计(论文)

引言

IC卡作为信息载体在近半个世纪的发展中对人类信息技术的发展起到了巨大的作用。IC卡一出现便受到了人们的重视,如今它的发展已经历存储卡、逻辑加密卡到现在的智能卡阶段,并有取代磁卡的趋势。所以,对IC卡的研究也成为信息技术研究中的重要部分。IC卡技术的不断发展以及国内相关行业服务意识的提高,在与居民用户日常生活相关的计量表中使用IC卡技术已经得到了迅速的推广和广泛的应用。目前在电表、水表、燃气表以及暖气热力表中都已经开始采用IC卡作为抄表收费、控制以及数据管理的媒介。

IC卡是集成电路卡(IntergratedCircuitCard)的简称,它是把具有存储、加密及数据处理能力的芯片镶嵌于塑料基片之中,这种既具有智能性,又便于携带的卡片,为现代信息的处理和传递提供了一种全新手段,它一出现就倍受重视。1987年起,国际标准化组织ISO专门为IC卡制定了国际标准,ISO/IEC[1]7816-1,2,3,4,5,6。这些标准为IC卡在全世界范围内的推广和应用创造了规范化的前提和条件。

IC卡又被称作开创市场之卡,也就是说,IC卡不仅改进了现有多种卡的使用方法和功能作用,它还不断开创出新的应用领域。带微处理器的IC卡称之为智能IC卡,它被认为是世界上最小的个人计算机。正如同计算机或各种数据通信网络一样,IC卡本身并不创造任何价值。即使是高度智能化的IC卡,和386、486的计算机的处理能力比较相差甚远,它仅仅具有部分计算机的功能。但是,如果把IC卡和其它设备组成系统就能提供非常丰富的服务功能。把这些功能和生产领域有机的结合起来,将创造出巨大的经济和社会效益。

1.绪论

1.1本文研究的背景及目的

当今世界信息技术的发展已广泛地渗透到社会各领域,并在世界经济和社会发展中发挥着越来越重要的作用。目前,各个发达国家都在致力于信息化建设,在美国提出“国信息基础设施NII(NationalInformationInfrastructure)计划”之后,欧共体、日本、韩国、新加坡等国家也都相继制定了信息高速公路计划,以此来加速本国经济的发展。中国是一个发展中的国家,作为加速发展国民经济的战略举措,中国政府正在致力于国民经济信息化的建设,以“金桥”、“金卡”、“金关”、“金税”工程为代表的“金系列”工程的实施,就是中国政府为推进国民经济信息化建设所采取的重要行动。这些工程的建成,将对国民经济发展和社会信息化水平的提高作出积极的贡献。利用现代信息技术来改造和装备各个部门,逐步建设一个比较发达的信息社会,对发展中国家来说,是一场全新的技术革命和社会改革,我们需要在实践中努力探索和提高。如何将人类的社会活动和生产活动与现代化的信息系统和流通手段联系在一起是非常重要的,只有这样才能更好地发挥人们的聪明才智,才能使人类享受到信息化带来的高度精神文明和物质文明。IC卡作为信息载体在近半个世纪的发展中对人类信息技术的发展起到了巨大的作用。IC卡一出现便受到了人们的重视,如今它的发展已经历存储卡、逻辑加密卡到现在的智能卡阶段,并有取代磁卡的趋势。所以,对IC卡的研究也成为信息技术研究中的重要部分。IC卡技术的不断发展以及国内相关行业服务意识的提高,在与居民用户日常生活相关的计量表中使用IC卡技术已经得到了迅速的推广和广泛的应用。目前在电表、水表、燃气表以及暖气热力表中都已经开始采用IC卡作为抄表收费、控制以及数据管理的媒介。

如今,IC卡技术在金融、交通、学校、医疗、通信、仪表等领域已获得越来越广泛的应用。本文在研究IC卡的基础上以IC卡预付费电表系统的设计为例说明IC卡的应用。IC卡预付费电表是将IC卡技术与计算机技术相结合的低成本、高性能的电能计量收费装置。该表不但实现了收费的电子化,而且还改变了先用电后收费的不合理状况,让能源真正成为商品,变被动为主动,完善能源销售环节,从根本上解决了人工抄表收费费工费时的弊端,特别是杜绝了拖欠费用现象,加速了资金回笼。

1.2本文研究的主要内容及组织结构

本文共分为五个部分(即五章)。第一部分引言,介绍了课题背景和目的等;在第二章综述中,介绍了IC卡的发展状况和分类以及它们的优缺点;第三章介绍了IC卡基本特性;第四章对IC卡预付费电表的应用现状、工作原理和设计目标进行了论述;第五章是本论文核心部分,即IC卡预付费电表的设计,包括硬件选择和设计,软件控制的研究及其实现。

IC卡是集成电路卡(IntergratedCircuitCard)的简称,它是把具有存储、加密及数据处理能力的芯片镶嵌于塑料基片之中,这种既具有智能性,又便于携带的卡片,为现代信息的处理和传递提供了一种全新手段,它一出现就倍受重视。1987年起,国际标准化组织ISO专门为IC卡制定了国际标准,ISO/IEC[1]7816-1,2,3,4,5,6。这些标准为IC卡在全世界范围内的推广和应用创造了规范化的前提和条件。

IC卡具有突出的3S特点,即Standard(国际标准化),Smart(灵巧智能化)和Security(安全性),因而发展迅速。IC卡又被称作开创市场之卡,也就是说,IC卡不仅改进了现有多种卡的使用方法和功能作用,它还不断开创出新的应用领域。

2.IC卡的发展与应用

2.1信息和金卡工程

2.1.1信息和信息社会

对于信息,很难给出确切统一的定义,我们只能在不同的领域中,从不同的角度来理解其内含和外延。在计算机系统中,把信息定义为数据、消息中所包含的内容。日常,人们把信息视作信号、数据、资料、情报、知识等等,而信息则被包含在各种信号及其组合的表达手段之中。控制论奠基人N.Wiener在《人有人的用处》一书中认为:“信息这个名称的内容,就是我们对外界进行调节,并使我们的调节为外界所了解时而与外界交换来的东西。”这个定义说明信息作为作用与反作用的表征存在于反映事物的相互联系之中。

人类社会的发展在经历了茹毛饮血的上古时代之后,就进入了开发绿色资源的畜牧和耕耘的农业社会。而后则是开发钢铁、煤炭、石油等黑色资源的工业化社会。目前,正在向“后工业化社会”演变的阶段之中。所谓“后工业化社会”,有人认为就是开发灰色资源(大脑皮层)的信息社会。今天,大多数发达国家已跨入“后工业化社会”或称“信息化社会”。第三产业在国民经济中的比重已接近2/3。从前是“钢铁即国家”,如今“半导体成了工业的粮食”,“电子即国家”。经济发达的国家现在都以信息产业,即由现代通信产业、计算机产业、集成电路产业和软件产业所构成的新兴产业群,作为整个社会经济发展的基础。可以这样说,在人类有史以来所形成的各种产业中,没有哪一种能有这么迅猛发展的势头,没有哪一种能具有这么广泛的渗透性,没有哪一种能有这么深入地改变与影响人们的生活乃至思维方式。信息产业决定着本世纪的力量对比,世界各国无不向这个新的制高点冲击。

2.1.2金卡工程

正是在世界各国对信息技术非常重视的背景下,出于我国社会经济发展的客观而又迫切的需要,国家作出了加快我国信息化进程的重大决策。而“三金工程”则是国家经济信息化的基础,它们的出台和实施标志着我国经济的信息化正走向一个新的高度。“三金工程”中,特别是“金卡工程”,只有它是直接面向广大群众的,和亿万人民生活息息相关的工程,它将影响和改变人们的传统观念和消费习惯,促进市场繁荣,极大的方便人们的生活和消费,未来将是“一卡在手,走遍天下”。“金卡工程”也就是“电子货币工程”,它首先是从银行卡起步的,银行卡以外的卡就是非银行卡,非银行卡可分为两大类:其一是非金融机构发行的并且不经金融机构结算的可以在有限范围内起支付作用的卡,例如,嵌入煤气表或电表中作为收费工具的IC卡;在公共汽车或出租汽车上用于支付交通费的卡;其二是作为特定属性证明的一种信息卡,例如,具有个人医疗信息的医疗卡。所有这些都是金卡工程的有机组成部分。所以,“金卡工程”又是一项跨地区跨行业的伟大工程,将起到促进社会信息化和现代化的巨大作用。

2.2IC卡的兴起

早在19世纪50年代,使用卡片作为交易凭证,就萌芽于英国,初期是使用纸制卡式凭证。1950年美国商人麦克拉马纳设计了第一张现代的塑料信用卡,1951年美国富兰克林银行作为金融机构率先发行了信用卡,这种新型支付手段和商品流通系统与银行的资金结算结合在一起。50年代出现了冲压凸出字的塑料卡,如美国曾大量使用的用于金融交易的塑料金属交易卡即FTI(FinancialTransactionCard)就属于这种类型,可以用机械方法把带有凸字的卡片的发行人和客户帐号印到纸质单据上。随着卡应用的扩大,只有这些基本特性已显得不够了,另外,卡发行者因不断增加的欺诈行为而蒙受损失,如何改进卡的功能就变的越来越迫切了。60年代末随着计算机的应用和磁记录技术的出现,人们很快在FTI卡的背面贴上磁条,发展成能自动读取信息并进行在线计算和自动处理的磁卡。磁卡因其结构简单,价格低廉,得以迅速推广。

磁卡具有易读写,易修改,易复制的特点,但也正因为这些特征,使得磁卡本身的信息具有易消失,易伪造等不可靠和不安全因素。人们迫切需要新型卡片的出现。1972年法国新闻记者罗兰莫雷诺提出了将一个集成电路芯片镶嵌在一块塑料片上的想法,此后法国布尔公司率先投入了这一潜力无穷的高新技术产品的研究和开发。1976年布尔公司高级研究员于贡所领导的研究小组首先研制了世界上第一张由双晶片(微处理器和存储器)组成的智能卡,接着又于1978年制成了单晶片智能卡,取得了技术专利。1984年,当时法国邮政和长话服务PTT(PostalandTelecommunicationsservices)成功的进行了电话卡的现场试验,在实用验证中,智能卡迅速证明了能满足涉及防止被篡改的所有预期功能并有着高度的可靠性。在此后的十几年间,除法国的布尔公司之外,世界上先后有Thomson,Hitachi,OKI,Atmel,Phillips等十几家公司相继投入了智能卡芯片和卡片成品的开发与生产,形成了一个世界性的新兴技术产业。

IC卡是集成电路卡(IntergratedCircuitCard)的简称,它是把具有存储、加密及数据处理能力的芯片镶嵌于塑料基片之中,这种既具有智能性,又便于携带的卡片,为现代信息的处理和传递提供了一种全新手段,它一出现就倍受重视。1987年起,国际标准化组织ISO专门为IC卡制定了国际标准,ISO/IEC[1]7816-1,2,3,4,5,6。这些标准为IC卡在全世界范围内的推广和应用创造了规范化的前提和条件。

IC卡具有突出的3S特点,即Standard(国际标准化),Smart(灵巧智能化)和Security(安全性),因而发展迅速。IC卡又被称作开创市场之卡,也就是说,IC卡不仅改进了现有多种卡的使用方法和功能作用,它还不断开创出新的应用领域。

带微处理器的IC卡称之为智能IC卡,它被认为是世界上最小的个人计算机。正如同计算机或各种数据通信网络一样,IC卡本身并不创造任何价值。即使是高度智能化的IC卡,和386、486的计算机的处理能力比较相差甚远,它仅仅具有部分计算机的功能。但是,如果把IC卡和其它设备组成系统就能提供非常丰富的服务功能。把这些功能和生产领域有机的结合起来,将创造出巨大的经济和社会效益。

2.3国内外IC卡的应用状况

美国是信用卡的发源地,从上个世纪60年代起开始应用。到1988年,发卡量已超过10亿张,消费金额达到4695亿美元。三种流行的非银行卡是捷运卡、狄纳斯俱乐部卡和布兰奇卡,它们被视为旅游与娱乐卡。金融卡一般可分为两方卡(主要用于持卡人向发卡机构购买物品)和三方卡(是在大量持卡人、发卡银行和用卡商户之间进行采购和支付时使用)。上述金融卡及识别卡基本上均为磁卡。从上个世纪末,已开始用IC卡取代磁卡,比较成功的应用有:

(1)校园IC卡:学校发行,除用作学生证外,还可用于学生宿舍管理、成绩登记、食堂、图书馆使用计算机资源等。

(2)交通IC卡:用于公共汽车的电子车票。

(3)军人身份证卡:美国军方对全球各地的军人及眷属的身份证管理上经常出现问题。后来建立了实时军人身份识别系统,用IC卡作为军人身份证用,减少了很多不必要的损失。

(4)作战指挥:美国军方已将智能卡技术实际应用于其作战指挥系统。智能卡系统不仅能识别连队指挥官的密码及指纹信息,而且能根据其手指上体液的分泌情况准确判断是不是活人的指纹,大大提高了部队作战的机动性和正确性。

法国布尔公司的智能IC卡正在金融界全面地取代磁卡,并且已推广到了世界各国。法国在IC卡应用的广泛程度和普及程度也都处于先进行列,应用的方面有:IC金融卡、电话卡、公共交通卡、购物卡、加油卡、会员卡、高速公路通行收费卡等。

日本从1984年起银行首先将IC卡用于资产管理。1985年医疗单位已将IC卡用于健康管理系统,日本从1990年开始逐渐实行健康保险证IC卡,用于提高医疗单位看病效率和简化医疗保险费支付手续,IC卡上记录病历、血型、过敏史等资料,且有付款功能。

香港是世界上三大金融中心之一,信用卡的发卡量超过了200万张,医疗上采用了4-6MBytes的光记录卡,交通方面已使用了无接触智能卡为基础的乘客收费系统。香港有两个ATM自动提款机网络,其中汇丰银行系统有1300台ATM机,银通系统有1000多台ATM机。另外还有大大小小的80多个网络支持着300万台阅读器组成的信用卡/储蓄卡网络。

1993年7月我国电子工业部协同银行、邮电及有关部门提出了命名为“金卡”的专项工程,总目标是:用10年左右的时间,在全国400个大中城市及经济发达县区推广使用卡基支付工具,在这些覆盖了3亿城市人口的地区,发卡总量要达到2亿张,年交易额达到1万亿元。

整个“金卡”工程分为试点、推广和普及三个阶段。国家对金卡工程的实施要求以“高起点、高标准、规范化、国际化”为指导方针,坚持“产业结合,远近期结合”的原则,强调“统筹兼顾、中断突出、逐步推广、整体普及”。另外,金卡工程对电子产品、软件产业的需求将提供广泛的市场,这对我国电子信息产业是一个巨大的推动力。

过去,卡基支付工具是以磁卡为主的,由于磁卡信息存储量少,安全防范能力弱,人们研究过多种方法,但无论哪种方法都无法从根本上彻底克服磁卡在安全上存在的固有弱点,先天不足,后天难调。而IC卡的出现从根本上解决了磁卡所存在的问题,所以在金卡工程中,国家只是把磁卡作为过渡性的工具,最终将被IC卡所取代。

3.IC卡技术与安全

3.1IC卡的物理特性

3.1.1IC卡的构成

接触型IC卡的构成分为半导体芯片、电极模片和塑料基片三大部分。

1.半导体芯片:它是IC卡的核心部分。在半导体芯片中包含:存储器、译码电路、接口控制电路、逻辑加密电路,甚至微处理器单元(CPU)等各种功能电路。

2.电极模片:它是作为半导体芯片各输入输出信号引脚与外部设备接触连接的导电体。电极模片上共有多个芯片电极,每个电极的中心位置和最小面积是有规定的。但各电极表面分割形状没有规定。

3.塑料基片:它是半导体芯片的电极模片的载体。由半导体芯片和电极模片封装而成的IC卡模块就可以实现IC卡的基本功能。

3.1.2IC卡的触点功能

符合国际标准的IC卡满足ISO7816标准协议。国际标准ISO7816-2对接触型IC卡触点尺寸和芯片位置以及功能做了具体的规定。接触型IC卡有8个触点,每个触点的功能定义见表3.1。

表3.1触点功能定义

触点编号

功能

触点编号

功能

C1

Vcc(电源电压)

C5

GND(地)

C2

RST(复位信号)

C6

保留使用

C3

CLK(时钟信号)

C7

I/O(数据输入/输出)

C4

保留使用

C8

保留使用

RST端为复位信号端,允许两种复位方式:由接口设备提供复位信号或由IC卡内部附加的复位控制电路在加电时产生内部复位信号。I/O端为IC卡集成电路与外部接口设备进行数据交换的输入或输出端。

3.2IC卡存储器

1.在IC卡中使用的存储器类型主要有易失性存储器和非易失性存储器。在实际的应用中,应根据需要进行选择,使得系统的成本和性能达到最佳。根据不同的应用要求,IC卡生产厂家一般都设计开发多种存储容量的IC卡产品,其存储数据的容量从几十位到几十K位不等。从应用的角度而言,1K字位容量以下的存储卡或加密存储卡一般用于单数值型应用。1K字位至4K字位的存储卡或加密存储卡一般用于文件型与数值型的混合应用,即在卡的各个不同的存储区中,一部分用于文档文件信息的存储;一部分用于计帐或计数的应用。4K字位以上的存储卡或加密存储卡一般用于文件型的应用或作为数据汇总统计的应用。

2.在存储型IC卡中,一般非加密型IC卡数据存储区没有进行分区。在实际应用中,对数据的分区管理,只能通过存储单元地址空间的人为划分来设置多个功能区。在加密存储型IC卡中,不仅数据存储区被分成2个或4个甚至8个功能区,在芯片内还分配了多个控制标志功能区(生产厂商标志区、发行商标志区、用户密码区、擦除密码区、错误密码区等等)。这些功能区的划分方法,并不是统一规定的,其容量大小、地址分配、操作方式都随厂家不同而各异。一般对一种产品来说,其功能分区是确定的。在带CPU的智能型IC卡中,整个数据存储区是一个没有逻辑分区的整体。其功能分区是由发行单位根据实际的应用需要,在初始的开发阶段将分区功能的划分要求设计在监控程序之中。

3.3IC卡的操作过程

这里说的IC卡的用卡过程指的是正常用卡过程,这个过程分为以下几个阶段:

1.接口设备连接卡并“激活”电路。即把IC卡插入IFD(接口设备InterfaceDevice)并接通各触点。IC卡插入前,IFD的各个触点没有加电,所以,插入时插卡上的IC卡的引脚仅仅是和各触点接触而已,之后才加上电源。

2.使IC卡复位并在终端和IC卡间建立通讯。

3.进行交易(IC卡与终端间的信息交换)。

4.“释放”电路并取出IC卡。即接口设备将其各触点去电,持卡人可拔出IC卡而结束用卡过程。接口设备“激活”电路由以下操作顺序实现:

——RST处于L状态(低电平);

——VCC加电;

——接口设备的I/O处于接收方式;

——提供稳定的CLK。

当信息交换结束和异常终止时,接口设备“释放”电路,电路的释放操作应在IC卡的触点与接口触点机械断开之前结束。接口设备“释放”电路由以下操作顺序实现:

——RST为状态L(低电平);

——CLK为状态L(低电平);

——I/O为空状态;

——VCC不起作用。

3.4IC卡的安全性

在IC卡应用系统中,IC卡中信息的安全问题是人们关注的焦点问题。针对IC卡应用系统的特点,其安全性的关键在于卡中信息的安全。对多数攻击者而言,复制IC卡或窃取、更改卡中的信息才是其最终目的。为了更有效地保护卡中的信息,采用一种有效的、安全可靠的加密算法,实现对卡中信息的加密存储是相当必要的。

所有的密码系统都按相同的基本方式工作:把一个原本的消息(称之为普通电文)通过加密算法和加密密钥转换成编码的消息(密码电文)。它仅是被解密算法和解密密钥所译码。密码通常保留在密钥上,不在算法上。

密码系统可分为不同的两类,即保密密钥系统和公开密钥系统。两者都要使用保密的密钥。

加密/解密密钥

普通电文

加密/解密

密码电文

密码电文

图3.1保密密钥系统

图3.1所示为保密密钥系统的工作原理,关键点在于算法是完全可逆的(即对称的),如果对密码电文执行加密操作,将再次获得原本的普通电文。保密密钥系统的核心是密钥,它有着高度的机密性。一旦密钥被获取,就可以轻易的破解密文。当有着许多对的发送者和接收者时,由于每一对都需要一个单独的相互同意的密钥,密钥的数量可能达到人数的平方的数量级。

解决这一问题的方法是采用不对称的密码系统,即加密和解密算法是不同的。使密码电文再次通过加密系统时,不能产生出原文的消息,因而系统是不对称的。这种情况下,需用两个不同的密钥,一个用于加密系统中,另一个用于解密。这些密钥有着数学上的联系,并可能设计出一种算法使得加密密钥可以公开,用这种方法确定的解密密钥不能公开。具有这种性能的密码系统称为公开密钥系统(图3.2)。在这种系统中要发送一则加密的消息时,发送者应先从一张公开的表中查到接收人的加密密钥,并用此密钥对消息加密。然后发送者可用不保密的通讯方法发送这份密码电文,接收者则用他保密的解密密钥予以解密。

公开密钥有两个非常重要的优点,首先是大大地简化了密钥的公布和管理,因为每个人只须记住自己的解密密钥就可以了。其次是它提供了实现“电子签名”的可能性。

加密密钥

加密

加密密钥

解密密钥

公开的

保密的

普通电文

密码电文

普通电文

解密

图3.2公开密码系统的工作方式

4.IC卡预付费电表系统分析

4.1现状分析

长期以来,供电部门对用户用电量都是依靠人工抄表,然后由收费员到各家收费或令各用户去银行(或其他指定地点)交费的方式。这种传统收费的做法需要的工作人员多,费时费力,效率低且易出错,常常遇到用户欠缴、迟缴或漏缴费等问题。电力部门一直在寻求一种方便、实用的收费方法。为适应国家经济的发展,研究和利用现代化智能技术对仪表实行自动监控,减轻供电部门因“先消费后收费”造成的资金压力,减少每月抄表收费带来的麻烦和因收费问题带来的纠纷,用现代化科学技术手段改变管理体制的落后现状势在必行。

现行抄表收费管理模式有:

人工抄表收费方式:为用户安装普通计量仪表,按固定的时间由管理人员上门抄表和收费。需要管理人员多,工作量大;优点是计量仪表成本低,采用付费方式容易被用户接受,基本不存在用户能源被切断问题。

自动抄表收费方式:为用户安装具有通讯能力的计量仪表,通过通讯网络系统自动完成用户计量仪表的数据抄收,再通过金融网点方式以自动或人工方式完成缴费。这种方式技术难度高,通讯网络建设及维护成本大;优点是自动化程度高,节省人力,并很容易实现系统的实时监控。

IC卡收费方式:为用户安装具有IC卡接口的计量仪表,通过IC卡作为传输介质,在用户和管理部门之间传输信息,自动实现计量仪表的抄收以及缴费工作。这种方式成本较高,信息传输不及时,同时让用户充当了信息通道的角色,未体现管理部门服务的宗旨。优点是实现了抄表、收费、控制的三位一体,杜绝了欠费现象的发生,管理人员和管理费用少。

4.2IC卡预付费电表工作过程

IC卡预付费电表系统包括发卡系统,充值系统,终端消费系统和数据处理系统。发卡系统主要负责IC卡的发行信息,完成卡的初始化首次充值、撤卡和挂失。充值系统是将指定面额加上卡上的余额写入IC卡中。数据处理系统主要负责建立用户档案(开户)、收费管理、统计和查询、报表打印等。本设计主要对终端消费系统进行设计。

IC卡预付费电表的工作过程是用户先买IC卡(用户卡),用户携IC卡至收费工作站交费购电,工作人员将购电量等信息写入卡中。用户将卡插入IC卡电表(以下简称卡表),卡表内单片机识别IC卡密码并确认无误后,将卡中购电量与表内剩余电量相加后写入卡表内存储器。进而控制开关开启。然后将总用电量回读到卡中。用户用电过程中,卡表内剩余电量相应减小。当剩余电量低于某一设定值时,卡表报警,提示用户购电。当电量用完时,允许用户透支使用,当透支量达到某限量时,卡表自动关闭,停止供电。在用户重新购电,读卡存入后,卡表会自动扣除透支数,并打开开关供电。

IC卡预付费电表系统由单片机系统、采样、存储、执行、显示等部分构成,其结构图如图4.1所示。

电量采样

IC卡系统

LED显示

单片机系统

电源系统

执行机构

存储系统

面板系统

图4.1IC卡电表硬件系统

4.3设计功能

本设计是在原有家用机械电表的基础上重新进行设计,使其完成如下功能:

1.购电信息读入功能:将购得电量的IC卡插入已安装的IC卡电表的IC卡插座中,并按下信息读入按钮,电表将在单片机的控制下把IC卡中的购电量写入存储系统中。

2.用电量采样与累计功能:正常用电时,电表每转一圈,采样电路就向单片机发出一个信号,系统在单片机的控制下对用户的用电量和剩余电量进行处理。

3.自动控制功能:系统能在一定的条件下(剩余电量低于断电限值)自动断电或供电(剩余电量不低于断电限值)。

4.数字显示功能:当用户想要了解剩余电量情况时,按下显示按钮,将显示表中的剩余电量。

5.报警功能:表中剩余电量低于报警限值时,系统将发出报警信号,提醒用户及时购电。

6.信息辩识功能:系统能辨识用户插入的卡是否是伪卡,并辨别是参数卡还是用户卡。此外,还要区分是否是该表所对应的卡,以做到一块表对应一张用户卡。当读出卡中信息时,通过解密,确定卡中信息是否正确。

7.回读功能:系统在将卡中信息读入存储系统中时,还要把用户的总用电量读入IC卡中,以便用户在下次购电时,把总用电量读入上微机中,供供电部门统计,也可用于判断用户是否有盗电的可能。

8.防盗电功能:如果用户私自拆表,系统将自动记录拆表次数并自动断电。

5.IC卡预付费电表系统设计

5.1硬件选择

5.1.1单片机选择

在本IC卡预付费电表系统的设计中,要求系统稳定,运算速度快,功耗低。所以应尽量选用CMOS工艺的单片机,由于在软件设计时采用中断唤醒方式,尽量减少单片机的工作时间,以降低系统的功耗,所以所选单片机应具有省电工作方式。同时,设计中包含脉冲中断、插卡中断和显示中断。并考虑到程序的大小,所以本设计采用AT89C51单片机作为控制芯片。

AT89C51采用CMOS工艺和ATMEL公司的高密度非易失性存储器技术。其输出引脚和指令系统都与MSC-51兼容,功能强,灵活性高。图5.1是AT89C51的引脚结构图。

1.主要性能:

·4KB可改编程序Flash存储器(可经受1000次的写入/擦除)。

·全静态工作:0Hz~24MHz。

·3级程序存储器加密。

·128×8字节内部RAM。

·32条可编程I/O线。

·2个16位定时器/计数器。

·6个中断源。

·可编程串行通道。

·片内时钟振荡器。

图5.1AT89C51的引脚结构图

另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可供软件来选择的省电方式——空闲方式(IdleMode)和掉电方式(PowerDownMode)。

2.AT89C51有双列直插封装方式和方形封装方式。在本设计的系统中采用双列直插封装方式的AT89C51单片机,它共有40引脚,分为电源和地引脚、外接晶体引脚、控制或与其它电源复用引脚、输入/输出引脚。下面对输入/输出引脚P0.0~P0.7,P1.0~P1.7,P2.0~P2.7和P3.0~P3.7作简单说明。

·P0端口(P0.0~P0.7):P0是一个8位漏极开路型双向I/O端口。在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。

·P1端口(P1.0~P1.7):P1口是一个带有内部上拉电阻的8位双向I/O端口。对端口写1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。在对Flash存储器编程和程序校验时,P1口接收低8位地址。

·P2端口(P2.0~P2.7):P2口是一个带有内部上拉电阻的8位双向I/O端口。对端口写1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。在访问外部程序存储器和16位地址的外部数据存储器时,P2口送出高8位地址。在访问8位地址的外部数据存储器时,P2口引脚上的内容在整个访问期间不会改变。在对Flash存储器编程和程序校验时,P2口接收高8位地址。

·P3端口(P3.0~P3.7):P3口是一个带有内部上拉电阻的8位双向I/O端口。对端口写1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P1,P2,P3口作输入端口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。另外,在AT89C51中,P3端口还用于一些复用功能。复用功能如表5.1.

表5.1P3各端口引脚与复用功能表

端口引脚

复用功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

INT0(外部中断0)

P3.3

INT1(外部中断1)

P3.4

T0(定时器0的外部输入)

P3.5

T1(定时器1的外部输入)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

3.省电方式

AT89C51单片机提供了2种省电工作方式:空闲方式和掉电方式。目的是尽可能地降低系统地功耗。在空闲工作方式中,振荡器继续工作,时钟脉冲继续输出到中断系统、串行口以及定时器,但却不提供给CPU。在掉电工作方式中,振荡器停止工作。两种工作方式都是由特殊功能寄存器中地电源控制寄存器PCON地控制位来定义,PCON寄存器的控制格式如图5.2所示。

SMOD:串行口波特率倍率控制位

GF1:通用标志位。

GF2:通用标志位。

PD:掉电方式控制位。PD=1,进入掉电工作方式。

IDL:空闲方式控制位。IDL=1,进入空闲工作方式。

如同时将PD和IDL置1,则进入掉电工作方式。PCON寄存器的复位值为0XXX000。

表5.2PCON寄存器

(MSB)(LSB)

SMOD

保留位

保留位

保留位

GF1

GF0

PD

IDL

(1)空闲工作方式

当CPU执行完IDL=1的指令后,系统进入了空闲工作方式。这时,内部时钟不向CPU提供脉冲,而只供给中断、串行口和定时器部分。CPU的内部状态维持。

进入空闲工作方式后,有两种方法可以使系统退出空闲方式。一种使任何的中断请求都可以由硬件将PCON.0清0而中止空闲工作方式。另一种退出空闲方式的方法是硬件复位,由于在空闲工作方式下振荡器仍然工作,因此硬件复位仅需2个机器周期便可完成。复位信号直接将PCON.0清0。

(2)掉电工作方式

在掉电工作方式下,由于振荡器停止工作,没有振荡时钟,因此,系统将停止工作。但内部RAM区和特殊功能寄存器的内容被保留。退出调电方式的唯一方法是硬件复位,复位后将所有的特殊功能寄存器的内容初始化,但不改变内部RAM区的数据。

在掉电工作方式下,Vcc可以降到2V,但在进入掉电工作方式前,Vcc不能降低。而在准备退出掉电方式之前,Vcc必须恢复正常的工作电压值,并维持一段时间,使振荡器重新启动并稳定后方可退出掉电方式。

5.1.2存储芯片的选用

存储芯片是一种用可电擦除的可编程只读存储器为核心的,能多次重复使用的芯片,它本身就是一种数据存储介质。目前,市场上流行的存储芯片很多,本设计采用美国ATMEL公司生产的AT24C02芯片作为数据存储器,用于存储电表的重要参数和关键数据。AT24C02是采用低功耗CMOS工艺制造,片内采用的高压泵升电路,使芯片可采用单一电源方式工作。它的容量为2K位,内部组态为256个8位字节,随机寻址时需一个8位地址。支持ISO/IEC7816-3同步协议,芯片数据的擦写次数超过100000个周期,数据保存期可达10年以上。芯片的触点配置符合ISO/IEC7816-2标准,它是6引脚芯片,引脚图说明如图5.2和表5.3所示。

SDA

NC

GND

SCL

NC

VCC

C1

C5

C2

C6

C3

C7

图5.2AT24C02的引脚触点

表5.3AT24C02的引脚功能表

引脚端名

功能

引出端名

功能

VCC

工作电压

GND

NC

未连接

NC

未连接

SCL

串行时钟

SDA

串行数据(输入/输出)

1.引脚说明:

(1)SCL(串行时钟端)。在SCL的上升沿时将SDA端上的串行数据输入到EEPROM芯片中。在SCL的下降沿时将EEPROM中的数据通过SDA端输出到外部。

(2)SDA(串行数据I/O端)。此端为双向串行数据传送端,一般采用漏极开路驱动方式。

2.内部逻辑单元及其说明

在AT24C02芯片中,与逻辑有关的信号线只有两条:SCL(时钟信号线)和SDA(数据信号I/O线),其中SCL为同步时钟输入端,SDA为双向数据端。所有的地址、数据和读/写控制命令等信号均从此端输入或输出。为了区分SDA线上的数据、地址、操作命令以及各种状态的“开始”与“结束”,芯片内设计了多个逻辑控制单元。

(1)启动与停止逻辑单元:即产生控制读/写操作的“开始”或“结束”标识信号的逻辑单元。“开始”状态:当SCL处于高电平时,SDA从高电平转向低电平,将产生一个标识信号。表示一种操作的“开始”。“开始”状态应在操作命令之前建立。“结束”状态:当SCL处于高电平时,SDA从低电平转向高电平,将产生一个标识信号。表示一种操作的“结束”。其后将结束所有相关的通信。“开始”状态和“结束”状态的定义如图5.3所示。

开始结束

图5.3操作状态“开始”和结束的定义

SDA和SCL端通常各接一个上拉电阻拉到高电平。当SCL为高电平时,对应的SDA的数据为有效。当SCL为低电平时,允许SDA上的数据变化。SDA和SCL两线上传输数据有效性的对应关系如图5.4所示。

数据稳定数据稳定

数据变化

图5.4数据的有效性关系

(2)串行控制逻辑单元:根据SCL、SDA以及“启动”与“停止”逻辑单元发出的各种信号进行区分并排列出有关“寻址”、“读数据”和“写数据”等逻辑,将它们传送到相应的操作单元。

(3)数据输入/输出应答逻辑单元:产生数据输入/输出操作应答信号的逻辑单元。所有的地址和数据均以8位码串行输入/输出于AT24C02。任何外部接收数据的设备在收到一个字节以后,都应发出应答信号,即将SDA线置于低电平。同样,当AT24C02芯片收到每一个地址码或数据字(8位长)之后,也以置SDA线为低电平的方式来予以“确认”应答信号。

5.1.3IC卡的选用

本设计对IC卡品种的选择主要考虑以下几个方面:卡片类型、存储模式、存储容量、安全性要求和综合价格因素。

对卡片类型的选用:本设计的电表系统是安装在用户家里和放于比较安全的地方,周围环境条件较好,受到的外界干扰因素很少,所以选择接触式IC卡为宜。并且接触式IC卡与非接触式IC卡比较,可选择的品种要丰富的多,另外,接触式IC卡使用中无辐射干扰问题。

对IC卡数据存储与处理模式的选择:一般说来,计数型IC卡是一次性使用品,而IC卡电表所需的IC卡必须是能多次重复使用的。本设计选择逻辑加密存储型的IC卡,这种卡的特点是:品种多,易于选择性能价格比高的卡片,控制操作简单。

IC卡容量的选择:由于本设计系统所需的IC卡是一种数据传递的媒介,并且数据可能会在IC卡保留一段时间,所以所选IC卡要有非易失性EEPROM存储器。卡中存储关键数据和其它信息加密后的密文以及厂家代码、卡标识等信息,所以结合卡的价格方面,选择存储容量为2K的IC卡芯片。

安全性要求的选择:如果存储在IC卡中的数据是公开的,那可以选择存储卡。但预付费电表系统的IC卡中数据必须保密,并且在消费时还要进行IC卡的认证。所以可选择带CPU的IC卡或逻辑加密型存储卡。但两者相比较,虽然逻辑加密型存储卡的安全性没有带CPU的IC卡好,但逻辑加密型存储卡要便宜的多,并且也具有较好的数据保密性能,可选品种多,使用简单方便。

逻辑加密存储卡主要是由EEPROM存储单元阵列和密码控制逻辑单元所构成。由于采用密码控制逻辑来控制对EEPROM存储器的访问和改写,因此,它不像存储卡那样可以被任意的复制或改写。正是因为这种卡具有安全保密,使用灵活和价格低廉等多种优点,因而使用这种卡在目前的IC卡应用中,特别是在非金融领域里的应用占主导地位。逻辑加密存储卡是一种可多次使用的IC卡,由于可以比较自由地进行各种分区设置和管理,因此能比较容易地在卡中实现多种用途,实现一卡多用。

综合以上因素,结合当前市场上流行的IC卡的使用,考虑到预付费电表推广所受到的价格方面的影响,本设计采用逻辑加密型存储卡。并以德国西门子(SIEMENS)公司设计的逻辑加密存储卡SLE4442为所选IC卡。

1.基本概念

(1)写入操作:是指将存储单元原来为“1”的数据写成“0”的操作。输入数据“0”在芯片内部就是将“0”与单元中的原有数据进行“逻辑与”。因此,写入就是指写“0”的操作。写入操作有按位写,按字节写和按页面写。

(2)擦除操作:是指将存储单元原来为“0”的数据写成“1”的操作。输入数据(全1)在芯片内部就是将“1”与单元中的原有数据进行“逻辑或”。因此擦除就是指写“1”的操作。擦除操作一般只是按字节擦除和按页面擦除。即使是对字节中的某一位进行擦除,其结果也将会使此字节全部被写成“1”。

2.逻辑加密存储卡SLE4442的结构和工作原理

SLE4442由德国西门子(SIEMENS)公司设计,它具有2K的存储容量和完全独立的可编程加密代码存储器(PSC)。内部电压提升电路保证了芯片能够以单+5V电压供电,2K的存储容量能够保证满足电表数据的要求。

(1)芯片特点:

1)采用多存储器结构。

2)2线连接协议,串行接口满足ISO7816同步传输协议。

3)芯片采用NMOS工艺技术,每字节的擦除/写入时间为2.5ms。

4)存储器具有至少10000次的擦除/写入周期,数据保持时间至少10年。SLE4442芯片的引脚配置和功能符合ISO7816标准,其引脚配置和引脚功能见图3.1和表3.1。

(2)芯片功能

SLE4442IC卡芯片主要包括三个存储器:

256×8位EEPROM型主存储器。

32×1位PROM型保护存储器。

4×8位EEPROM型加密存储器。

SLE4442IC卡的存储器分配如图5.5所示。

主存储器

1FH

保护存储器

加密存储器4×8位EEPROM

00H

00H

1FH

20H

FFH

应用数据区

224×8位

EEPROM

保护数据区

32×8位

EEPROM

31×1

PROM

校验参照数据字3

校验参照数据字2

校验参照数据字1

错误计数器

图5.5逻辑加密卡SLE4442存储器分配图

1)主存储器:主存储器为可重复擦除使用的EEPROM型存储器。按字节寻址,擦除/写入。在擦除时,一个数据字节的所有8位被全部置为1。在写入时,在EEPROM单元中的信息则根据输入的数据,按字位方式变换成逻辑“0”。通常,要改变一个数据需要先进行擦除,再进行写入两项操作。如果在被寻址的字节里8位中没有一个字位需要从0变到1,则可以不进行擦除处理。写入或擦除操作一次至少需2.5ms时间。

主存储器的地址是从00H到FFH。但主存储器又可分为两个数据区:保护数据区和应用数据区。

保护数据区:主存储器前32各字节为保护数据区。其地址从00H到31H。这部分的数据读出不受限制,但擦除和写入操作受到保护数据器内部数据状态的限制。当保护存储器中第n(n=0~31)位为1时,对应主存储器中第n各字节允许进行擦除和写入操作。当保护存储器中第n位为0时,对应主存储器中第n各字节不允许进行擦除和写入操作。根据这一特性,我们将主存储器的保护数据区作为IC卡片的标识数据区,存放一些固定不变的标识参数。

应用数据区:主存储器后224个字节为应用数据区。其地址从20H到FFH。这部分的数据读出不受限制,但擦除和写入均受加密存储器数据校验比较结果的影响。当需要修改应用数据区的内容时,必须首先输入一个3字节长的“校验字”。这个“校验字”与原来存在加密存储器中的“参照字”一对一进行比较。只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。芯片允许在有限的次数内(一般为三次)重试比较操作。如果在有限的次数内比较不能通过,整个主存储器变成一个只读存储器。

2)保护存储器:保护存储器是一个32×1位的一次性可编程只读存储器(PROM)。它是按字位方式寻址和写入,保护存储器每一位对应着主存储器地址从0到31的每一个字节。保护存储器的出厂状态为全“1”。保护存储器每个被写“0”的单元所对应的主存储器的字节单元将不再接受任何擦除和写入操作命令,从而使得该字节单元内的数据不可再改变。

保护存储器本身的读出操作不受限制。但对其写入操作受加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内原来存有的“参照字”一致,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将锁死保护存储器。

加密存储器:加密存储器是一个4×8位的EEPROM型存储器。第0字节为“密码输入错误计数器”(EC)。密码输入错误计数器的有效位是低3位。芯片初始化时,计数器设置成“111”。这一字节是可读的。每次比较密码时,先要判定计数器中是否还有“1”,如有,则将一个“1”写成“0”,然后进行比较“校验字”操作。如果比较结果一致,密码输入错误计数器将允许进行擦除操作,同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。如果比较结果不一致,则密码输入错误计数器中“1”的个数少1位。只要计数器的内容不全为“0”,则芯片的比较“校验字”操作可再次进行。当连续三次输入错误密码后,则芯片的存储单元将全部被锁死。但只要有一次比较通过,则密码输入错误计数器的低3位将被恢复为“111”。所以,加密存储器可以理解为进入整个芯片的“关卡”。

加密存储器的第1,2,3字节为“参照字”存储区。这3个字节的内容作为一个整体被称为可编程加密代码(PSC),也就是密码存储区。这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。写入和擦除操作也受自身比较结果的控制。只有当比较成功,加密存储器的内容才可以进行读出、写入和擦除。

3.传送协议

传送协议是在单片机与IC卡的集成电路之间的两线连接协议。SLE4442芯片的I/O线上数据变化只在CLK信号的下降沿才有效。

传送协议包括4种模式:

·复位和复位响应模式

·命令模式

·输出数据模式

·处理数据模式

(1)复位和复位响应

复位和复位响应是根据ISO7816-3标准来进行的。在操作期间的任意时候都可以复位。开始,地址计数器随一个时钟脉冲而被设置为0。当RST线从高状态(H状态)置到低状态(L状态)时,第一个数据位(LSB)的内容被送到I/O上。若连续输入32个时钟脉冲,主存储器中的前4个字节地址单元中的内容被读出。在第33个时钟脉冲的下降沿,I/O线被置成高状态(H状态)而关闭。

图5.6为SLE4442IC卡的复位及复位响应的时序关系,在复位响应期间,“启动”和“停止”状态都被忽略。

图5.6SLE4442复位及复位响应的时序关系

(2)命令模式

复位响应以后,芯片等待着命令。每一条命令都以一个“启动状态”开始。整个命令包括3个字节。随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。图5.7为命令模式的时序关系。

从IFD开始从IFD停止

图5.7SLE4442命令模式的时序关系

(3)输出数据模式

这种模式是将IC卡芯片中的数据传送给外部接口设备(IFD)的一种操作。图5.8为输出数据模式的时序关系。

在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。其输出的顺序是从每个字节的最低位(LSB)开始。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O线置成高状态(H状态),以便准备接收新的命令。

在输出数据期间,任何“启动状态”和“停止状态”均被屏蔽掉。

从IFD开始从IFD停止

图5.8SLE4442输出数据模式的时序关系

(4)处理数据模式

这种模式是对IC卡芯片作内部处理。图5.9是处理数据模式的时序关系。

芯片在第一个时钟脉冲的下降沿,将I/O线从高状态(H状态)拉到低状态(L状态)并开始处理。此后芯片在内部连续计时计数,直到第n个时钟脉冲之后的附加一个脉冲的下降沿I/O线被再次置高,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态。

处理过程开始处理过程结束

图5.9处理数据模式的时序关系

4.芯片的操作命令

(1)命令的格式

每条命令包含三个字节:控制字、地址字和数据字。其排列顺序如下:

控制字

LSB

数据字

LSB

MSB

地址字

LSB

MSB

LSB

MSB

B7B6B5B4B3B2B1B0

A7A6A5A4A3A2A1A0

D7D6D5D4D3D2D1D0

命令的传送总是从控制字节开始。首先传送字节的最低位LSB(即B0位)。控制字节传送完毕之后,依次传送地址字节和数据字节,传送顺序均从各字节的最低位(LSB)开始。在最后一位D7传送完成之后,需要增加一个附加时钟脉冲把I/O线置成高状态。

SLE4442芯片具有七种命令,其格式和功能见表5.4。

表5.4命令格式及功能

控制字节

B7B6B5B4B3B2B1B0

地址字节

A7--A0

数据字节

A7--A0

功能

命令模式

0110000

0111000

0110100

0111100

0110001

0111001

00110011

地址数

地址数

无效

地址数

无效

地址数

地址数

无效

输入数据

无效

输入数据

无效

输入数据

输入数据

读主存储器

修改主存储器

读保护存储器

写保护存储器

读加密存贮器

修改加密存贮器

比较校验数据

输出数据模式

处理模式

输出数据模式

处理模式

输出数据模式

处理模式

处理模式

(2)有关命令的说明:

1)读主存储器:该命令是指读出主存储器的内容。该命令的控制字为(30H)。对于每个字节来说总是从最低位开始读出,从给定的字节地址(N)开始,直到整个存储器的末尾。在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲。对于从地址(N)开始读数据所需要的时钟脉冲的数量M=(256-N)×8+1。对主存储器作读操作不受限制。

2)读保护存储器:该命令的控制字为(34H)。在连续输入32个时钟脉冲情况下,芯片将保护存储器内容传送到I/O线上。最后一个附加时钟脉冲将I/O线置为高状态。对主存储器作读操作不受限制。

3)读加密存储器:该命令类似于读保护存储器,可以读出4个字节加密存储器的内容。该命令的控制字为(31H)。在输出数据的模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高状态。如果可编程加密代码(PSC)的校验不成功,I/O线总保持为低状态(即输出总是“0”)。

4)修改主存储器:该命令就是根据所传送的字节数据,寻址主存储器的EEPROM然后修改字节内容。该命令的控制字为(38H)。在处理模式期间,可能发生下列情况之一:

·擦除和写入;

·只写入不擦除;

·只擦除不写入。

5)修改加密存储器:该命令是根据所传送的字节数和要修改的数据,将加密存储器中的响应字节的内容进行修改。该命令的控制字为(39H),该命令只能在可编程加密代码(PSC)比较成功之后才能进行。

6)写保护存储器:这一命令的执行过程包含一个被输入的数据与在EEPROM中对应数据进行比较的过程。在确认一致的情况下,保护字位被写0。从而使得主存储器中的信息不可更改。如果比较结果不一致,则保护字位的写操作被禁止执行。

7)比较校验数据:该命令把输入的“校验数据”的各个字节与相对应的参照数据(存放在加密存储器中)进行比较。如果比较不成功(即两组数据不相同),则密码错误计数器的一个字位将只会被从“1”写成“0”。

首先用一个修改命令将密码错误计数器中的一位写0。然后紧跟三条比较校验命令。比较从参照数据的字节1开始整个比较过程成功与否是用能否擦除密码错误计数器来证实。如果比较成功,则擦除操作执行有效,这时只要不下电,对整个芯片各存储器的各区域的写入/擦除处理都可以进行;如果比较不成功,擦除工作执行无效,密码错误计数器将不会恢复为“111”。但只要(EC)不全为0,就允许外部接口设备对芯片进行重试。当校验数据比较成功,加密存储器也同样被打开,其单元中的参照数据也可以像主存储器(EEPROM)中的其它单元一样进行修改变换。芯片在出厂时,根据用户的专门安排,常将可编程加密代码(PSC)中编入一个专用代码,这样,在使用时,要打开卡片就必须合法得到这个代码,这也是防止非法窃用的一种方法。

5.SLE4442卡的安全防护

SLE4442卡的安全防护主要有三方面:

(1)复位应答检测(ATR检测)

SLE4442上电后,读写器使IC卡复位,接着读取复位应答信息。应答信息中,包含卡的芯片信息,由于这些信息组成是唯一的,即在全球范围内不会产生相同标志,所以读写器读到这些信息后,可以初步确定此卡是否是同类型芯片的卡。

(2)保护区固化信息检测

保护区固化信息包括复位应答信息、芯片制造厂家信息和芯片信息以及应用标识三部分。通过检测保护区固化信息,不仅可以确定IC卡的生产厂家,而且可以确定发行商信息及持卡人信息,从而确定IC卡的唯一性。通常情况下,SLE4442保护存储器中固化信息如下:

00H-03H复位应答信息(ATR),

04H-07H芯片生产厂家代码和卡型编码,

15H-1AH应用标示。

(3)密码校验检测

密码校验检测是SLE4442芯片安全体制的关键。它通过对密码存储器的操作来实现。其中包括3个命令:读密码、写密码和校验密码。其中最常用的是校验密码,该密码如果校验成功则对主存储器的写操作使能,以及对密码存储器的读写使能;若校验密码失败,计数器则将失败的校验次数记录下来,为了防止通过多次校验以获得密码的可能性,设计了连续3次错误校验,芯片自锁功能。

5.1.4显示驱动芯片的选用

一般电表的显示只须5位数字电量(4位整数和1位小数)即可满足要求,所以本设计中显示部分我们选用的是MC14489和5个7段共阴极LED数码管。

MC14489是7段LED直接驱动的芯片,它可以驱动5个7段LED。MC14489可以用串行接口和单片机进行通信,对LED的驱动是以共阴极方式进行的,故显示器件应采用共阴极7段LED。

MC14489的典型应用如图5.10所示。图中表示的是单片机对MC14489的控制以及MC14489对7段LED显示器的驱动情况。其中,MCU/MPU是单片机或微处理器,它通过串行接口和MC14489的DATAIN,CLOCK以及ENABLE连接,同时,也可以接收MC14489的数据输出端DATAOUT的信号数据。从图中看出:MC14489可以驱动5个7段的LED显示器。在MC14489内部,配置寄存器和显示寄存器的有关功能说明如下。

配置寄存器的作用和功能用于确定显示的方式。显示方式有低电源方式和一般方式,在一般方式中又分成十六进制译码显示、特殊译码显示和不译码显示3种情况。

图5.10MC14489的典型应用

配置寄存器各位分别用C7~C0表示,其中C7为最高有效位,当数据串行输入MC14489时,最高有效位MSB先输入。在数据输入时,ENABLE先变成低电平,串行数据在时钟的作用下,先为最高有效位MSB输入,最后为最低有效位LSB输入,送入移位寄存器中。在8位数据移入移位寄存器之后,ENABLE信号变为高电平。由于输入的是8位数据,故这个数据被存入配置寄存器中。配置寄存器的各位意义如下:

C0:C0=0,MC14489以低电源工作方式工作,通电复位时会强制令C0=0;C0=1时,MC14489以一般方式工作。在低电源工作方式时MC14489处于静态状态,并使显示器熄灭。在一般工作方式中,还有十六进制译码,特殊译码和不译码3种情况,这些情况由C1~C7决定。

C1:用于控制BANK1端对应的显示数据。C1=0时,BANK1对应的显示数据进行十六进制译码显示;C1=1时,取决于C6的状态。

C2:用于控制BANK2端对应的显示数据。C2=0时,BANK2对应的数据以十六进制译码显示;C2=1时,取决于C6的状态。

C3:用于控制BANK3端对应的显示数据。C3=0时,BANK3对应的数据以十六进制译码显示;C3=1时,取决于C6的状态。

C4:用于控制BANK4端对应的显示数据。C4=0时,以十六进制译码显示;C4=1时,取决于C7的状态。

C5:用于控制BANK5端对应的显示数据。C5=0时,以十六进制译码显示;C5=1时,取决于C7的状态。

C6:在C1~C3为“1”时,决定BANK1~BANK3对应的数据的译码方式。C6=0时,不进行译码显示;C6=1时,实行特殊译码显示。

C7:在C4,C5为“1”时,决定BANK4,BANK5的对应数据的译码方式。C7=0时,不进行译码显示;C7=1时,实行特殊译码显示。

显示寄存器用于存放显示数据和显示控制码。显示寄存器有24位,分别用D23~D0表示,其中,D23是最高有效位MSB。显示寄存器的24位数据输入和配置寄存器8位数据输入类同,在24位数据输入移位寄存器之后,则ENABLE又变为高电平,24位数据从移位寄存器送入显示寄存器中。

在显示寄存器中,含3个字节的数据,分成6组,每组数据4位。低5组是显示数据,最高1组是显示控制码。各组数据及其含义如下:

D0~D3:对应BANK1端的显示数据组1,其中D3是最高有效位。

D4~D7:对应BANK2端的显示数据组2,其中D7是最高有效位。

D8~D11:对应BANK3端的显示数据组3,其中D11是最高有效位。

D12~D15:对应BANK4端的显示数据组4,其中D15是最高有效位。

D16~D19:对应BANK5端的显示数据组5,其中D19是最高有效位。

D20~D23:这4位是显示控制码。其中D23是亮灭控制位,D23=0,熄灭LED;D23=1,开亮LED。D22~D20用于控制各组显示数据的显示,其控制作用如表5.5所示。

表5.5D22,D21,D20的含义

D22

D21

D20

含义

0

0

0

所有1输出无效

0

0

1

BANK1中的数据为1输出有效

0

1

0

BANK2中的数据为1输出有效

0

1

1

BANK3中的数据为1输出有效

1

0

0

BANK4中的数据为1输出有效

1

0

1

BANK5中的数据为1输出有效

1

1

0

BANK1和BANK2中的数据为1输出有效

1

1

1

BANK1~5中的数据为1输出有效

5.2硬件设计

IC卡电表预收费系统的原理图见图5.11。

系统硬件电路的设计思想是:在保证系统功能及运行可靠的前提下,尽可能降低成本。故本系统是以原有家用机械电表为基表改装而成,以单片机构成控制和处理信息的核心部分。

1.电量计数输入电路

电量计数输入电路由光电耦合器S1和与非施密特触发器CD4093组成。IC卡电度表不损坏原来机械电度表的结构,而只是由反射式光电耦合器S1对机械电度表的电度计数转盘上的反光标志进行检测,检测结果再由与非施密特触发器CD4093进行整型,然后以中断方式送入到单片机AT89C51内部。

光电耦合器S1的初级发光二极管长期通电发光,当电度表的转盘的反光标准转到发光二极管所在位置时,则通过反光标志将光反射到光敏三极管上,所以光敏三极管会导通,则与非型施密特触发器CD4093就会输出一个低电平到单片机的INT0中断端口。当电度表的转盘的反光标准偏离发光二极管所在位置,则没有光线反射给光敏三极管,所以光敏三极管截止,则CD4093就会输出高电平到单片机的INT0端口。

图5.11IC卡电表预付费系统的原理图

2.通电复位电路

通电复位电路由集成电路MAX708构成,它是通电断电监视电路,在通电和断电时产生复位信号输出。

MAX708对电源电压的监视门槛为4.4V。内部由上电比较器,复位比较器,反相器以及失电比较器组成。其引脚及功能说明如下:

引脚1:MR,手动复位输入。当其输入信号低于0.8V时,产生复位脉冲信号输出。当其输出低电平时,会产生内部拉出电流,该拉出电流可以驱动连接在MR端的TTL或CMOS逻辑门。一般引脚1输入的手动复位是由开关或逻辑门产生,这时,手动开关应接到地,或逻辑门应输出低电平。

引脚2:Vcc,+5V电源。

引脚3:GND,信号地。

引脚4:PFI,电源电压下降监视输入端。当PFI端输入低于1.25V时,就会使PFO端输出低电平。如果PFI端不用时,接到GND或Vcc端。

引脚5:PFO,电源电压下降监视输入端。当PFI端输入低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论