基于单片机GMS97C52+SLE4442的IC卡读写控制设计.doc
XXXX大学本科毕业设计IC卡读写控制设计学生姓名 所 在 系专业名称班 级学 号指导教师XXXX大学教务处年 月IC卡读写控制设计学生: 指导教师:内容提要:现代电子信息技术的高速发展改变了人类传统的工作和生活方式,其与人类社会生活中的许多事物的结合,产生了许多新的技术和产品。IC卡就是电子信息技术与传统卡片相结合的产物。它将个人信息存储到嵌有集成电路芯片的卡片中,实现人与信息系统的交流。随着全球信息化的发展, IC卡在全球的应用越来越广泛。IC卡是一个正蓬勃发展的边缘产业,一个与我们的生活正越来越密切的产业。在普及因特网和计算机的大潮涌来时,IC卡扮演着越来越重要的角色。本论文围绕“IC卡读写控制设计”这一热点课题,主要本文首先介绍了IC卡的概念、特点;将IC卡与磁卡进行了比较;论述了IC卡的发展和应用;详细分析了Siemens公司的SLE4442逻辑加密卡,对此种卡型的读写器IC卡读写器的硬件、软件进行了设计和分析,结合I2C总线的相关知识,组成以单片机GMS97C52为核心的硬件电路,用C、汇编语言编写控制程序。详细介绍接触式IC卡读写原理,阐述了相应的IC卡读写控制的设计方案、开发方法和开发过程。关键词:IC卡 读卡器 SLE4442逻辑加密卡 I2C总线 单片机GMS97C52SLE4442IC card reader control designAbstract: Modern Electronics rapid development of information technology has changed the traditional work of humanity and way of life, its society and human life, the combination of many things, have had a lot of new technologies and products. IC card is the electronic information technology with the traditional product of the combination of cards. It will store personal information embedded integrated circuit chip card, the person with the implementation of information systems communicate. With the development of global information, IC card application in the world more and more widely. IC card is a positive edge of booming industries, a U.S. life industry is increasingly close. Popularization of the Internet and at the computer when the flood tide, IC card to play an increasingly important role. In this paper, around the "IC card reader control design," the hot topic, the main paper first introduced the concept of IC cards, characteristics; to IC cards and magnetic cards are compared; discusses the IC card of the development and application; detailed analysis of the Siemens the company's SLE4442 logic encryption card, such card-type reader-IC card reader hardware, software design and analysis, combined with I2C-bus-related knowledge, form a single-chip microcomputer as the core GMS97C52 hardware circuits, using C, assembly language control program prepared. Detailed introduction of contactless IC card reader the principle of the corresponding IC card reader-controlled design, development methodology and development process. Key words:IC card reader SLE4442 logic encryption card I2C-bus single-chip GMS97C52目 录一、引言1(一)IC卡技术及其发展1(二)IC卡的概念2(三)IC卡的主要特点2(四)IC卡的分类3(五)IC卡应用系统的基本组成与制造过程图示5二、IC卡的安全问题5(一)概述6(二)数据加密6(三)数据安全问题及措施9三、硬件原理11(一)I2C总线11(二)西门子SLE4442逻辑加密卡14(三)IC卡座15四、读写器的硬件设计17(一)IC卡读写器的电原理图17(二)电路原理18五、系统软件设计21(一)软件结构设计21(二)软件系统分析24致 谢26附 录27附录一 SLE4442卡读写函数27附录二 IC卡芯片操作地址30参考文献37 一、引言(一)IC卡技术及其发展IC卡的最初设想是由日本人提出来的。1969年12月,日本的有村国孝(Kunitaka Arimura)提出一种制造安全可靠的信用卡方法,并于1970年获得专利,那时叫ID卡(Identification Card)。1974年一名法国新闻记者罗兰·莫雷诺(Roland Moreno)发明发明了带集成电路芯片的塑料卡片,并取得了专利权,这就是早期的IC卡(Integrated Circuit Card)。1976年法国布尔(Bull)公司研制出世界第一枚IC卡。1984年,法国的PTT(Posts, Telegraphs and Telephones)将IC卡用于电话卡,由于IC卡良好的安全性和可靠性,获得了意想不到的成功。随后国际标准化组织(ISO,International Standardization Organization)与国际电工委员会(IEC,International Electrotechnical Commission)的联合技术委员会为之制订了一系列的国际标准、规范,极大地推动了IC卡的研究和发展。由于IC卡小巧玲珑,便于携带,存储量大,保密性好,使用寿命长,制造成本低,它日益受到人们的青睐。如今它已广泛用于金融流通、购Error! No bookmark name given.物预付、身份认证、资料记录等方面,是继磁卡之后出现的又一种新型信息工具。目前在我国,随着金卡工程建设的不断深入发展,IC卡已在众多领域获得广泛应用,并取得了初步的社会效益和经济效益。2000年,全国IC卡发行量约为2.3亿张,其中电信占据了大部分市场份额。公用电话IC卡市场占有约1.2亿多张,移动电话SIM卡超过4200万张,其它各类IC卡约6000万张。2001年IC卡总出货量约3.8亿张,较上年增长26%;发行量约3.2亿张,较上年增长40%。从应用领域来看,公用电话IC卡发行超过1.7亿张,SIM卡发行5500万张,公交IC卡为320万张,社保领域发卡为1400万张,其它发卡为8000万张。尽管IC卡的发行量保持了较高的增长率,但市场销售额在IT市场中的比重还很小。据信息产业部计算机与微电子发展研究中心(简称CCID)统计,2001年我国计算机市场销售额约2502亿元,而IC卡市场销售额不到21亿元。IC卡市场还构不成我国IT业的亮点,对IT市场的拉动作用并不明显。这一方面制约IT企业对IC卡技术的投入,另一方面,也预示着我国IC卡市场的巨大发展空间。随着政府管理和支持力度的加大、技术研发水平的提升,IC卡市场竞争格局将发生深刻的变化。由于高端芯片、核心模块、金融POS机、生产设备等被国外企业所掌握,造成国外品牌对一些细分市场的相对垄断。随着政府智能卡项目的启动,移动通信市场的逐步开放,国内企业技术实力和工艺流程的优化,使得国外品牌市场份额受到很大程度的限制,而国内品牌将会有快速的发展。一些从电信市场成长起来的国内IC卡企业,依托雄厚的资金和技术实力,将在身份证、金融、社保、交通、指纹识别等领域继续拓展业务,直接参与国际化竞争。2008年乃至今后,是我国IC卡应用向纵深发展的时期。我国IC卡市场格局必将由无序走向有序,市场竞争必将由有限走向无限,IC卡市场将逐步走向成熟,进入微利时代。在这种形势下,单纯的发卡量和新产品的数量并不能衡量IC卡产业与市场的发展水平,市场发展的程度最终取决于IC卡的应用水平及其带来的社会效益。从可持续发展的角度讲,加强行业规范,推动IC卡企业由产品和技术型转向应用和服务型,将成为我国IC卡市场发展的重要趋势。1970年,法国人罗兰德·莫瑞诺(Roland Moreno)第一次将可进行编程设置的IC(Integrated Circuit)芯片放于卡片中,使卡片具有更多的功能。当时,他对这项技术的描述是:镶嵌有可进行自我保护存储器的卡片。这样就诞生了世界上第一张IC卡。在此后的三十多年里,随着超大规模集成电路技术、计算机技术以及信息安全技术等的发展,IC卡种类更加丰富,技术也更趋成熟,已在国内外得到了广泛的应用。下面将从不同的角度对IC卡进行详细分类和简单分析。(二)IC卡的概念IC卡(Integrated Circuit Card,集成电路卡)在有些国家和地区也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子芯片嵌入符合ISO 7816标准的PVC(或ABS等)塑料基片中,封装成外形与磁卡类似的卡片形式,即可制成一张我们生活中常见的IC卡。一部分IC卡因其极高的安全性现已越来越受到人们的普遍重视,已越来越多的领域取代磁卡及其它数据卡片,得到了越来越广泛的应用。IC卡作为一种新的高科技产品正在引起人们的广泛关注,其关键在于IC卡的应用,它标志着一种信息处理手段的问世。未来多功能的IC卡普及与应用将改变整个社会的生活方式,是人类全面迈向电子化时代的钥匙。(三)IC卡的主要特点从全球范围看,现在IC卡的应用范围已不再局限于早期的通信领域,而广泛地应用于金融财务、社会保险、交通旅游、医疗卫生、政府行政、商品零售、休闲娱乐、学校管理及其它领域,融入我们生活中的点点滴滴。由此可见,IC卡之所以能够全方位的出现在人们的生活中,跟它自身的特点也有一定的关系。那么,IC卡的主要特点又有哪些呢?我们可以概括为以下几类:1.高可靠性:防磁、防静电、防破坏性和耐用性强。2.高安全性:防伪性好,存储数据安全性高(可加密)。3.方便使用:应用设备及系统网络环境成本低,数据存储量大。4.多应用类型:品种型号齐全、技术规范成熟。(四)IC卡的分类社会发展到今天,IC卡的种类也有很多。在接触式IC卡领域中,该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写。国际标准ISO7816对此类卡的机械特性、电器特性等进行了严格的规定。这种类型的产品是通过直接电路接触方式来完成信息的读写,速度较慢,但安全保密性相对较好,多应用于金融、电话与保险业等场合。其大致又可分为以下几类:1、根据IC卡镶嵌的芯片的不同划分(1)存储卡:卡内芯片为电可擦除可编程只读存储器EEPROM(Electrically Erasable Programmable Read-only Memory),以及地址译码电路和指令译码电路。为了能把它封装在0.76mm的塑料卡基中,特制成0.3mm的薄型结构。存储卡属于被动型卡,通常采用同步通信方式。它能提供数据存储功能,卡内含有电子可擦除只读存储器(E2ROM)及其控制电路,但无加密逻辑功能,缺乏安全保护,主要应用于对数据保密要求不高的领域。这种卡片存储方便、使用简单、价格便宜,在很多场合可以替代磁卡。但该类IC卡不具备保密功能,因而一般用于存放不需要保密的信息。例如医疗上用的急救卡、餐饮业用的客户菜单卡。常见的存储卡有ATMEL公司的AT24C16、AT24C64等。(2)逻辑加密卡:该类卡片除了具有存储卡的EEPROM外,还带有加密逻辑,每次读/写卡之前要先进行密码验证。如果连续几次密码验证错误,卡片将会自锁,成为死卡。从数据管理、密码校验和识别方面来说,逻辑加密卡也是一种被动型卡,采用同步方式进行通信。它由加密逻辑控制电路和(E2ROM)组成,具有数据存储功能和数据加密操作控制。此类卡仅是简单的密码认证,其中密码固定。在密码认证过程中,外界可以截取密码使系统破解。也有设计者将卡内所写数据自加密,以增加保密性,但皆有迹可寻。适用于需要保密,但保密要求不很高的场合。该类卡片存储量相对较小,价格相对便宜,适用于有一定保密要求的场合,如食堂就餐卡、电话卡、公共事业收费卡。常见的逻辑加密卡有SIEMENS公司的SLE4442、SLE4428,ATMEL公司的 AT88SC1608等。(3)CPU卡:也称智能卡,该类芯片内部包含微处理器单元(CPU)、存储单元(包括随机存储器RAM、程序存储器ROM(FLASH)、用户数据存储器 EEPROM)、和输入/输出接口单元。其中,RAM用于存放运算过程中的中间数据,ROM中固化有片内操作系统COS(Card Operating System),而EEPROM用于存放持卡人的个人信息以及发行单位的有关信息。不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能。CPU管理信息的加/解密和传输,严格防范非法访问卡内信息,发现数次非法访问,将锁死相应的信息区(也可用高一级命令解锁)。其保密性极强,卡与设备间数据传输皆加密。每次卡认证皆生成临时密钥进行处理,即使外界截取大量数据也无法破解密码,可真正实现电子钱包使系统无需联网。CPU卡的容量有大有小,价格比逻辑加密卡要高。但CPU卡的良好的处理能力和上佳的保密性能,使其成为IC卡发展的主要方向。CPU卡适用于保密性要求特别高的场合,如金融卡、军事密令传递卡等。国际上比较着名的CPU卡提供商有Gemplus、G&D、Schlumberger等。(4)超级智能卡:在CPU卡的基础上增加键盘,液晶显示器,电源,即成为一超级智能卡,该种卡不仅带有微处理器和存储器,而且还带液晶显示屏和微型键盘,有的卡上还具有指纹识别装置等。VISA国际信用卡组织试验的一种超级卡即带有20个键,可显示16个字符,除有计时,计算机汇率换算功能外,还存储有个人信息、医疗、旅行用数据和电话号码等。2、根据IC卡与外界进行交换是的数据传输方式不同划分(1) 串行IC卡:IC卡与外界进行数据交换时,数据流按照串行方式输入输出,电极触点较少,一般为6个或者8个。由于串行IC卡接口简单、使用方便,目前使用量最大。国际标准ISO7816所定义的IC卡就是此种卡。(2) 并行IC卡:IC卡与外界进行数据交换时以并行方式进行,有较多的电极触点,一般在28到68之间。主要具有两方面的好处,一是数据交换速度提高,二是现有条件下存储容量可以显着增加。3、根据IC卡的应用领域不同划分(1)金融卡:也称为银行卡,又可以分为信用卡和现金卡两种。前者用于消费支付时,可按预先设定额度透支资金;后者可作为电子钱包或者电子存折,但不能透支。(2)非金融卡:也称为非银行卡,涉及范围十分广泛,实际包含金融卡之外的所有领域,诸如电信、旅游、教育和公交等等。(五)IC卡应用系统的基本组成与制造过程图示图1为IC卡用卡装置(独立或联网)管理系统结构图。图1 系统结构图图2为IC卡制造流程图。图2 IC卡制造过程二、IC卡的安全问题(一)概述在IC卡普遍应用于人们生活的同时,其安全问题尤为重要。我们研究的IC卡相关安卡问题包含:密码安全,数据安全,数据完整性和处理过程安全。(二)数据加密数据加密的目的在于防范IC卡的数据被非法改写或通信过程中数据被截获读取。这里所说的数据改写是指无密码保护或密码被破解后的数据改写。1.密码学简介密码学分为两个部分:加密学和解密学。在进行加密算法过程中常用的运算有替代(Substitution),置换(Transposition),异或(XOR)。明文:为加密的数据;加密:用一个密码算法结合密钥对明文进行处理的过程;密文:处理后得到的结果;密钥:如同以用于开锁的一把钥匙,密钥是一个数据按照密码算法对明文处理后得到密文,或对密文处理后得到明文;解密:将密文进行处理后得到明文的过程。2.DES算法数据加密的标准DES(Data Encryption Standard)算法是由IBM公司在70年代研究出的一种分组密码算法,是一个迭代分组密码。DES算法于1976年11月被美国政府采用,随后被美国国家标准局承认并作为标准的加密解密算法而大量采用。DES算法的入口参数有三个:Key:密钥,8字节(64bit);Data:待加密或待解密的数据,8字节(64bit);Mode:工作方式只有两种情况,加密或解密。IP置换的具体做法是,将输入的第58位换到第一位,第50位换到第2位,···,依此类推,最后一位是原来的第七位。L0、R0则是IP置换后输出的两部分,L0是输出的左32位,R0是右32位。例如,设IP置换前的输入值为:bit 1bit2 bit3 bit64,经过IP置换后的输出为:L0=bit58bit50bit8;R0=bit57bit49bit7。 图图3 加密过程 IP-1置换正好是IP置换的逆运算。F函数由四个处理过程组成:E扩展置换,异或运算,S代替,P置换图4 F函数的四个处理过程组成E扩展置换是将32bit的输入通过置换与扩展转化为48bit的输出。S替代选择过程是将48bit的数据输入,经过替代选择最终产生32bit的输出。P置换是将8个S盒输出的共32bit的数据经过P置换,产生32bit的输出。图5 子密钥Ki-1生成DES算法的解密过程基本相同,区别在于:(1)第一次迭代是用子密钥K16,第二次K15,最后一次用K1;(2)将IP转换与IP-1置换的使用位置互换。加密过程RSA算法1977年,Rivest、Sharmir和Adelman三人一起提出了第一个比较完善也是应用最广的公钥密码体制,以三人名字的字头命名,即RSA算法。3.RSA算法由于RSA加密算法是指数运算,因此密钥越大计算速度越慢。通常RSA算法比DES算法慢1000倍。(三)数据安全问题及措施1.密码安全及存储数据安全同一系统中的每张IC卡的密码各不相同,一张IC卡对应一个密码。密码核对正确前,全部数据可读不可写。密码核对正确后可写入或修改数据,修改密码。错误计数器,初始值为3,密码核对出错1次,便减1,若计数器值为0,则卡自动锁死,数据只可读出,不可再进行更改也无法再进行密码核对;若不为零时,有一次密码核对正确,可恢复到初始值3。写保护区(前32个字节)的每一字节可单独进行写保护,进行写保护后,内容不可再更改(即固化数据)。存储数据的安全首先是靠密码,如果存在密码被攻破的可能,就需要考虑采用数据加密算法对存储数据加密。加密算法已经字上一节介绍,使用时应酌情选用,因为采用加密算法之后,将会导致系统处理时间的延长。2.数据的完整性影响数据的完整性因素包括:电源因素,电磁干扰因素,人为因素和数据校验。特别是作为电子货币的IC卡,其中记录了大量的重要信息,安全性是很重要的,因此IC卡应用系统开发过程中必须为IC卡系统提供合理有效的安全措施,以保证IC卡及其应用系统的数据安全。造成影响IC卡及应用系统安全的主要方式有:使用用户丢失或被窃的IC卡,冒充合法用户进入应用系统,获得非法利益;用伪造的或空白卡非法复制数据,进入应用系统;使用系统外的IC卡读写设备,对合法卡上的数据进行修改,改变操作级别等;在IC卡交易过程中,用正常卡完成身份认证后,中途变换IC卡,从而使卡上存储的数据与系统中不一致;在IC卡读写操作中,对接口设备与IC卡通信时所作交换的信息流进行截听,修改,甚至插入非法信息,以获取非法利益,或破坏系统。常用的安全技术有: 身份鉴别和IC卡合法性确认,报文鉴别技术,数据加密通讯技术等。这些技术采用可以保证IC卡的数据在存储和交易过程中的完整性,有效性和真实性,从而有效地防止对IC卡进行非法读写和修改。总体上,IC卡的安全包括物理安全和逻辑安全两方面:(1)物理安全。物理安全包括:IC卡本身的物理特性上的安全性,通常指对一定程度的应力、化学、电气、静电作用的防范能力;对外来的物理攻击的抵抗能力,要求IC卡应能防止复制、窜改、伪造或截听等。常采用的措施有:采用高技术和昂贵的制造工艺,使无法伪造;在制造和发行过程中,一切参数严格保密;制作时在存储器外面加若干保护层,防止分析其中内容,即很难破译;在卡内安装监控程序,以防止处理器或存储器数据总线和地址总线的截听。(2)逻辑安全。常用的逻辑安全措施有:存储器分区保护,一般将IC卡中存储器的数据分成3个基本区:公开区、工作区和保密区;用户鉴别,用户鉴别又叫个人身份鉴别,一般有验证用户个人识别PIN,生物鉴别,手写签名。下面简单介绍生物鉴别技术中的一种指纹识别技术:指纹识别技术是利用指纹唯一、不变、不可伪造、随身携带等的特点和IC卡作为个性化数据载体及大容量内存的优势,既实现了人物合一的真实身份认证,又满足了各种应用系统对数据载体卡片化、脱机化的需求,是用软硬结合方式确保信息安全可靠实用的途径。用IC卡保存指纹特征数据、使用人员信息、私钥等关键信息、通过指纹识别认证持卡人真实身份,解决网络信息安全瓶颈最有效的手段,是对信息安全(软件) 认证、密钥体系最有效的补充。根据需要将指纹信息储存在IC卡内,通过输入用户的活体指纹信息与卡内的指纹资料进行比对,实现用户真实身份的认证及IC卡的各种应用。亦可将指纹资料储存在计算机或网络系统内,通过输入用户的活体指纹信息与储存的指纹信息资料进行比对,实现用户真实身份的认证,具有很大的灵活性。指纹IC卡鉴别技术可广泛应用于网络通信、数据库管理、电子商务与电子支付中的权限设置、数据存取、密钥管理等。包括计算机系统、互联网、电子商务系统、政府、企业局域网系统中管理员的身份认证以及金融、保险、证券等行业重要系统及部门职员的授权管理,证券交易所、信用卡用户、保险受益人的身份认证以及安防业等应用。三、硬件原理(一)I2C总线1. I2C总线的特点I2C总线的特点是:接口线数少,支持多主控工作方式。I2C总线协议是Philips公司推出的总线协议,是多主机总线,提高2根线(SDA-aserial data line, SCL-a serial clock line)与连接到总线上的器件之间传送信息根据地址识别每个器件。例如:微控制器、LCD驱动器、存储器、键盘,连接的器件可以工作在发送和(或)接收状态。2. I2C总线的构成及信号类型I2C总线的构成:数据线SDA和时针线SCL。图6(1) 典型的I2C总线结构 图6(2) I2C总线的器件连接3I2C总线传送数据信号类型:开始信号,终止信号和应答信号。图7 I2C总线传输信号 图8 I2C总线上的数据位传送4. I2C总线的基本操作I2C总线上只具有sol(时钟)和sda(数据)2根信号线。如果是单纯的串行传输,一旦因为某种原因造成引脚的偏差,则可能会造成不能区分总线上传输的是数据还是地址信息的后果。解决上述问题的简单办法就是附加独立于总线的reset(复位)信号,由主机控制该信号。因为I2C至少利用2根线进行所有的操作,因此在数据传输时,通常当scl为低电平时,设置下一个数据;当sda变化后,sci为高电平,这可以解释为一连串操作的开始结束。(1)起始条件起始条件表示一系列操作的开始。图9表示起始条件以及随后数据传输的开始操作。在I2C总线的空闲状态下,sda及scl通过上拉电阻都为高电平。在这样的状态下,如果scl仍保持高电平,而sda变为低电平,则成为开始指令。图9 I2C总线起始条件由于该状态并不出现于地址及数据的发送与接收过程中,因此,即使在途中发生异常,只要检测出该状态,初始化内部的状态机,就可以使其恢复。(2)结束条件在一系列操作的最后是结束条件。结束条件如图10所示。当sol为高电平时,一旦sda由低电平变化为高电平,即成为结束条件,主机与器件之间的通信将停止,器件恢复为空闲状态。进行写操作时的结束状态是开始进行EEPROM内部单元写操作的指示标志。图10 I2C总线结束条件结束前所传输的数据是acknoack的状态位,如果是ack,则该状态位为低电平。但如果发生某种错误时,则表示为noack的高电平。读操作时的最后字节是主机向器件返回noack信息,所以sda为高电平。这样就不能形成结束条件所需要的sda的上升沿,因此在结束之前需要加入哑元“0”数据位作为解决办法。在最终数据的ack noack之后,主机通过下述的流程,形成结束条件,如下所述:scl变为低电平;sda变为低电平;sol变为高电平(发送哑元数据);sda变为高电平(结束条件)。(3)数据传输数据传输的流程如图11所示。除去开始与结束条件,在传输包含地址指定等数据时,能够使sda发生变化的条件只能是在sol为低电平时。因此,总线操作以如下的步骤进行: scl变为低电平; 为sda设置数据(主机或者器件); scl变为高电平。进行数据读操作时,主机在sol恢复为高电平之前读取数据。图11 I2C总线的数据传输(二)西门子SLE4442逻辑加密卡为了保证IC卡数据的安全性,避免IC卡内的数据被非法修改,IC卡制造商在存储卡的基础上增加了逻辑加密的保护功能,用以某些访问的限制。例如本设计使用Siemens公司的SLE4442就有对数据修改的限制。1.SLE4442逻辑加密卡的主要特点SLE4442是Siemens公司制造的逻辑加密存储卡,总容量为256字节。密码校验通过之后,才可以对卡进行写操作;但读卡操作没有密码的限制。2.SLE4442逻辑加密卡的存储区安排图12 储存区分配3.SLE4442逻辑加密卡的操作时序 SLE4442共有4种操作时序,即复位与复位应答、命令模式、输出数据模式和处理数据模式。通信协议符合I2C总线。4.SLE4442逻辑加密卡的命令及相关函数 卡片存储区内的起始地址是0x20,出厂密码是FFFFFF,其相关函数如下: 写操作函数: swr_4442() (1) 读操作函数: srd_4442() (2) 测卡型函数: chk_4442() (3) 效验密码函数: csc_4442() (4) 读取密码函数: rsc_4442() (5) 更改密码函数: wsc_4442() (6) 读密码错误计数: rsct_4442() (7) 写保护位函数: pwr_4442() (8) 读保护位函数: prd_4442() (9) (三)IC卡座IC卡读/写器各部分结构与功能简单介绍如下:1IC卡卡座一般都使用IC卡座。按接触式卡座类型可分为摩擦式和下压式两大类。IC卡卡座是连接IC卡与读写器的。其功能包括对IC卡供电,提供读写信号和传送数据。要求提供方便的插拔方式和可靠的接触,并带有带电插拔,过流保护,插卡检测等能力。IC卡和插座的结构尺寸必须符合国际标准化组织(ISO)7816的标准。对触电数目、位置、信号名称和功能都有明确规定,以保证兼容性。其中:C1(VCC)为电源;C2(RST)复位信号;C3(CLK)时钟脉冲;C4(RFU)待用;C5(GND)接地端;C6(VPP)编程电压,用于对EEPROM编程;C7(I/O)数据输入输出端;C8(RFU)待用。有些系统中IC卡的C4和C8未用,可见卡上仅用六个触点,本设计SLE4442系列IC卡是西门子公司生产的加密存储IC芯片,256*8 bit EEPROM 字节直接寻址;低地址前32字节可进行写保护(固化)操作;其容量为256 byte,密码核对正确后可对卡进行读、写操作,3字节用户密码,密码错误计数3次;5V低压供电,最大供电电流20 mA;双向数据传送;支持IOS/IEC7816-3同步协议;写/擦次数>100,000次;数据保存期>10年。SLE4442系列IC卡的引出端符合ISO/IEC7816-3标准。C2、C6、C4、C8:NC,未接。把芯片封装在一个卡片上,将卡片插入IC卡读写器的卡座中,读写器就可以对它进行读写,实现加密、查询、存款、取款等功能。IC卡座有8个引脚,当SLE4442卡插入时,正好同这几个引脚相连。另外还有两个固定端,其中一个固定端同卡座上一个弹簧片相连,两个触点和簧片就相当于一个常闭开关。当卡未插入时,簧片闭合,P3.2脚保持低电平;当卡插入时,簧片被顶开,P3.2脚变为高电平。当单片机检测到P3.2脚变高,通过P1.3 使X76F100的RST引脚变高,使其复位。2.单片机和存储器读写器中配备单片机和ROM,RAM存储器,构成微机系统,单片机运行ROM中固化的软件,执行与IC卡和上位PC机的通信规程。控制对IC卡的读写,完成IC卡与主机间数据的格式转换。为减轻单片机负担,提高读写速度,常配置有硬件密文转换和单元。3.接口电路和外围设备通用读写器一般与PC机或网络联机工作,常用标准并行或串行口与上位机连接和通讯。常用的是带有25芯或者9芯插口的RS232-C型串行接口,可直接接到PC机的COM1或COM2上。此时,可利用主机的显示器作监视器,主机键盘作控制和输入,利用主机打印机输出。此时主机与读写器组成了IC卡应用与开发系统,操作与一般微机相仿,但用户界面将随所配软件而有很大不同。四、读写器的硬件设计(一)IC卡读写器的电原理图图13 IC卡及读写器硬件原理图图13为IC卡及其读写器硬件电路图。其中读写器由单片机、键盘、显示、监控电路等部分组成。IC卡采用Siemens公司的SLE4442逻辑加密卡。单片机采用LG公司的GMS97C52。它有8K字节的ROM,256个字节的RAM以及32个I/O口,P1口与串行器件X25045和X76F100连接,P0、P2口用于键盘和显示,P3口中P3.2用于检测IC卡是否插入,其余7个口,可作其它功能扩充。1键盘电路为了方便,键盘接口电路用I/O口实现,它为4×4结构,16个键。其中数字键11个,功能键4个,回车键1个。数字键:0、1、2、3、4、5、6、7、8、9、(退格)。功能键:查询?、存储+、取款、改密码* 。查询?:用户通过读密码可以查询卡中所存的款额。存款+ :用户通过写密码可以将款存入卡中。取款:用户通过写密码可以从卡中取款。改密码*:分为修改读密码和写密码。为方便起见,令读密码和写密码一致,按此键将同时修改读密码和写密码。回车键:8位密码或存取款数输入完确认,以及新密码输入完确认。2显示电路显示部份采用LED显示器,也用I/O口实现。用于显示系统状态、输入的密码或所要存取的款额以及出错信息等。 由于GMS97C52的驱动电流有限,在P0、P2口加反向器SN74F04,增加驱动能力。它的吸入电流为64mA,输出电流为15mA,可以保证位选所需的吸入电流。(二)电路原理1.IC卡的上/下电的控制要实现之,需对PCR进行写操作。其中START=PCR.0,RSTIN=PCR.2,VUP上升表示激活了TDA8007中的电压转换电路。当START置高时,只要能检测到选定卡槽中的IC卡存在,且没有TDA8007能检测到并在HSR中指示的硬件错误出现,则对应IC卡接口的VCC1或VCC2将能被提供响应的电平(5V、3V或1.8V)。随后对应卡的I/O数据线被置成高状态(Z状态),给IC卡提供设定的时钟信号,常用为3.5712MHz。大约在START置高108ETU后,RSTIN置高。因为RST为RSTIN的拷贝,则对应卡的RST被置高。然后,用TDA8007提供的定时器TOR3、TOR2设定对ATR(Answer To Request)即复位应答首字节的最大等待时间120ETU(Element Time Unit),TOC设定定时器工作方式,便开始等待ATR首字节到来后做相应处理。至此,IC卡上电激活工作完成,随后可以根据ATR字节的要求的工作方式对IC行相应的读写处理。图14为上电结构框图,具体见上电程序。图14 IC卡的上电结构框图TDA8007产生满足ISO 7816标准诉IC卡上电激活时序,TDA8007寄存器访问的预定义:#include<absacc.h>#define XXX XBYTE0x8000/XXX表示CSR等各寄存器上电程序如下:P1.5=0; /片选TDA8007CSR&=0xf8;CSR|=ncard; /选择卡,ncard=1,2CSR&=0xf7;CSR|=0xf7;CSR|=0x08; /复位UART的寄存器UCR2&=0xf7; /异步模式,SAN=0CCR&=0xdf; /时钟停止于低电平UCR2|=0x60; /关闭附加中断及收发中断GTR=0xff; /保持时间12ETUIf(v=1) /v为函数变量