简易接触式IC卡控制系统设计_第1页
简易接触式IC卡控制系统设计_第2页
简易接触式IC卡控制系统设计_第3页
简易接触式IC卡控制系统设计_第4页
简易接触式IC卡控制系统设计_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

沈阳理工大学学士学位论文PAGEI摘要IC卡是目前广泛应用于访问控制和电子票据的一种智能卡。本文主要介绍了一种新型的IC卡读写终端的设计,IC卡读写终端是一个单片机嵌入式应用系统。论文从IC卡的国际标准入手,介绍了实现IC卡数据存储的控制方法,并以西门子公司的SLE4442型逻辑加密卡为基础.详细分析了单片机控制IC卡数据读写的软、硬件实现。本文提出了逻辑加密存储卡SLE4442在单片机系统中的一种最简单的应用方法,并采用AT89C51单片机设计了一个简易接触式IC卡控制系统,该系统可以对逻辑加密存储卡SLE4442进行读写。配合不同的软件及外围扩展电路,该系统可以应用到电业管理、燃气收费等不同的行业。还介绍了SLE4442芯片的特点、存储器结构,以及该芯片与单片机的最基本连接,分析了SLE4442逻辑加密存储卡的操作过程和AT89C51单片机的控制程序,并给出了对应的程序流程图。关键词:IC卡;接触式;读写终端AbstractAtpresent,theICcardisakindofintelligentcardapplyingtovisitcontrollingandelectronicnoteextensively.ThispaperhasintroducedthedesigningofanewtypeICcardread-writeterminalmainly.TheterminalisaMCUembeddedapplicationsystem.Firstofall,proceedingwiththeInternationalStandardofICcards,thepaperhasintroducedthereadingandwritingtechniqueofICcarddata.OnthebaseofSLE4442-akindofsmartcardofsecuritylogicmadebySIEMENS.ThepaperhasspecifiedthesoftwareandhardwarerealizationofICcarddatareadingandwriting.ThearticlehasprovidedakindofsimplestapplicationmethodforICcardSLE4442inthesinglechipcomputersystem.AndasimplecontrolsystemforintelligentcontacttypeICcardispresentedwithAT89C51,whichiscapabletoreadandwritethelogicallyencryptedmemorycardSLE4442.Withsomeadaptationsinsoftwareandperipheralcircuits,thesystemcouldbeeasilyusedinvariousfields.Suchaspowerchargingsystemandgaschargingsystem.ThepaperalsohasintroducedthecharacteristicoftheSLE4442chip,thestructureofstorage,andthemostessentialconnectionbetweenSLE442chipandsinglechipprocessor.Moreover,themethodhowtousethesystem,theproblemofprogramming,andtheflowchartofthesystemprogramofsomeinterrelatedcommandshavealsobeenillustratedinthepaper.Keywords:ICcard;contacttype;read-writeterminal目录1绪论 11.1IC卡技术的发展 11.2IC卡分类及应用 11.3IC卡技术的特点 21.4IC卡的接口设备 31.5IC卡国际标准和设计要求 31.5.1IS07816-1,接触式集成电路卡的物理特性 41.5.2IS07816-2,接触式集成电路卡的触点尺寸和位置 41.5.3IS07816-3/10,接触式集成电路卡的电信号和传输协议 61.5.4IS07816-3规定的各触点电压和电流值 61.5.5ISO/IEC7816-10协议,同步卡的电信号和复位应答 91.5.6IC卡国际标准和设计要求小结 101.6IC卡在国内的使用情况和发展前景 102接触式IC卡 122.1SLE4442电气特性 122.2SLE4442内部结构 132.3SLE4442保密特性: 142.4SLE4442的通信协议 142.5SLE4442有关命令的说明 162.6SLE4442与单片机接口电路 183读写器电路的设计与实现 213.1读写器电路设计 213.1.1MCS-51单片机 213.1.2MCS-51单片机的内部结构 223.1.3MCS-51单片机的发展与应用 233.2 AT89C51单片机 243.2.1AT89C51芯片参数 253.2.2AT89C51芯片描述 253.2.3管脚配置 263.2.4时钟振荡器 283.3显示电路设计实现 293.3.1LED显示的原理 293.3.2LED显示电路 313.3键盘接口电路设计实现 323.4.1键盘的特性 323.4.2按键的确认 333.4.3按键抖动的消除 333.4.4键盘的工作方式 333.4.5键盘与单片机的连接 343.5总体电路及PCB版图 364软件硬件联调过程 394.1伟福仿真器介绍 394.2调试过程 40结论 42致谢 43参考文献 44附录A 45附录B 53附录C 581绪论1.1IC卡技术的发展IC卡即集成电路卡,英文名称为“IntegratedCircuitCard”,通常情况下,IC卡是指将集成电路芯片固封在塑料基片中的卡片,是一种功能多样、用途广泛的电子卡片。它的外形和尺寸同普通名片差不多,一般厚度为0.76─1.2毫米,小巧玲珑,携带方便,使用简捷。卡的基片是由聚氯乙烯硬质塑料制成的,内装集成电路芯片。它可与多种终端设备连接使用,具有多种功能。IC卡的最初设想是由日本人提出来的。1969年12月,日本的有村国孝先生提出一种制造安全可靠的信用卡方法,并于1970年获专利。那时叫ID卡(IdentificationCard)。1974年,法国的罗兰德─穆瑞拉发明了带集成电路芯片的塑料卡片,这就是早期的IC卡,并取得了专利权,但一时尚未实用化。1983年,这一发明受到法国政府的重视,由政府出面推动IC卡的实用化。IC卡距今已有近30年的历史。随着超大规模集成电路技术、计算机技术和信息安全技术等的发展,IC技术也更成熟,并获得更为广泛的应用[1]。1.2IC卡分类及应用IC卡根据卡中所用嵌粘的集成电路的功能不同,可分为接触式IC卡和非接触式IC卡两大类。接触式IC卡,它又分为以下四小类:存储卡──具有存储记忆功能,不带加密逻辑,这类卡适用于其内部信息不用加密的应用系统,例如健康卡;加密存储卡──卡中具有若干个密码口令,只有在密码输入正确后,才能对相应区域的信息内容进行读出或写入。若密码输入出错一定次数后,该卡将自动封锁,成为死卡。此类卡适用于需加密的应用系统,如食堂就餐卡;智能卡(SMARTCARD)──卡中还带有信息处理器(CPU),该类卡是一个带有操作系统的单片机系统,严格防范非法用户访问卡中的信息。发现数次非法访问后也可锁住某个信息区域,但可以用高级命令解锁,使卡中的信息保证绝对安全,系统高度可靠。此类卡应用于绝密系统中,如银行金融卡;超级智能卡(SUPERCARD)──在智能卡的基础上装有键盘、液晶显示器和电源。非接触式IC卡,为封闭式包装,通过射频和外部设备传送信息。它利用外部发射的高频电磁波能源和信号源,进行擦写存储。

在实际使用中,以接触式IC卡应用最多。法国首先使用的银行卡,至1992年法国已有2100万张这样的银行卡。商店中的读卡器在卡与银行之间建立联系,持卡者输入个人识别编码来证明自己有权使用这张卡。如果个人识别编码与存在卡上的编码不一致,读卡器就通知店员收缴这张卡,此后不久读卡器能用电信号使冒用的卡无效。非接触式IC卡一般用于外接触场合,如日本的建设省正在研制用于高速公路不停车收费的IC卡。只要司机兜里装着这种IC卡,高速驶过收费站不需停车,就可以把卡上的费用自动划拔到收费站的帐上。原理是用光波和电波通过微电脑自动结算。

从全球范围看,现在IC卡的应用范围已不再局限于早期的通信领域,而广泛地应用于金融财务、社会保险、交通旅游、医疗卫生、政府行政、商品零售、休闲娱乐、学校管理及其它领域。在信息社会,IC卡的前途是无量的,从IC卡的技术上看,总的发展趋势是向高功能,大容量方向迈进。1.3IC卡技术的特点1、可靠性高

IC卡具有防磁、防静电、防机械损坏和防化学破坏等能力,信息保存期在100年以上,读写次数在1万次以上,至少可用10年。

2、安全性好

IC卡从生产到投入使用的全过程及全生命周期内都可进行严格的管理,所以安全性好。IC卡使用信息验证码,在识别卡时,由卡号、有效日期等重要数据与一个密钥按一定算法进行计算验证。IC卡可提供密钥个人识别码,用户使用时,输入密码后,与该PIN码进行比较,防止非法用户。

3、存储容量大一般IC卡的容量都在1KB~32KB之间,最大的能达到4M。4、读写器易实现

IC卡作为一种新型的识别卡,自然需要其专用的设备来支持。IC卡系统由计算机、卡座、读写器、应用系统和IC卡等几部分组成。其中,卡座的主要功能是提供对卡的机械支持和电器接触;读写器的基本功能是对卡的读出和写入操作,有的还可以进行数据处理和加密;应用软件的主要功能应有卡的读写控制、结果显示、数据处理、系统加密和系统通信等。软件设计的好坏将直接影响整个系统的运行效果。

5、灵活性强IC卡本身可进行安全认证、操作权限认证,以及可存储最新的有关事务处理信息,可以进行脱机操作,简化了网络要求。IC卡可以一卡多用。IC卡可为用户提供方便:例如为用户修改PIN码、个人数据资料、消费权限,以及查询余额等。这些功能都体现了IC卡的灵活性。1.4IC卡的接口设备为了使用卡片,还需要有与IC卡设备配合工作的接口设备IFD(interfacedevice)或称为“读写设备/读写器”IC卡接口设备的种类很多,功能上由于不同的应用需要,差别也很大,但就其对卡(以接触式卡为例)的操作功能来说,都应具备以下几个基本功能:1、IC卡的插入/退出的识别与控制(接触式卡),IC卡进/出RF区的识别和控制(非接触式卡);2、向IC卡提供其所需的稳定的电源与时钟信号;3、实现与卡的数据交换,并提供相应的控制信号;4、对加密数据系统,应提供相应的加密解密处理及密钥管理机制;5、提供相应的外部控制信息及其它设备的信息交换。很多读写设备除了对卡的基本操作外,还设计了其他一些重要功能必要的控制界面和显示界面,提供数据通讯接口与上位机进行数据通讯,网络控制功能.实现远程适时控制。1.5IC卡国际标准和设计要求由于IC卡使用具有流动性与全球性,建立相应的国际标准和国家标准就显得特别重要。在信息技术领域,ISO(国际标准化组织)和IEC(国际电子技术委员会)共同建立了一个技术委员会ISO/IECJTC1以制定相应国际标准。在IC卡应用系统的设计中,读写设备对IC卡的读写控制的每一个环节都应当遵照相应的国际标准,才能保证数据的正确读取,这是IC卡读写器终端设计的基础。接触式IC卡国际标准的总称为识别卡──接触式集成电路卡国际标准为ISO/IEC7816。包括以下部分:第一部分:ISO7816-1,物理特性第二部分:ISO7816-2,触点尺寸和位置第三部分:ISO7816-3,电信号和传输协议第四部分:ISO7816-4,行业间交换用命令第五部分:ISO7816-5,应用标识符的编码系统和注册系统第六部分:ISO7816-6,行业间数据元第七部分:ISO7816-7,关于结构化卡询问语言的行业间命令第八部分:ISO7816-8,与安全有关的行业复位命令第九部分:ISO7816-9,附加的行业间命令和复位应答第十部分:ISO7816-10,用于同步卡的电信号和复位应答由于在本课题相关的接触型逻辑加密卡SLE4442的设计中,只涉及到ISO7816-2,IS07816-3和IS07816-10,所以只对这几个标准进行介绍,其中后两个协议直接与读写器设计的细节相关,所以进行了比较详细的介绍。1.5.1IS07816-1,接触式集成电路卡的物理特性本标准制定的物理特性适合于ID-1型识别卡,其尺寸为85.6mmX53.98mmX0.76mm.IS07810(识别卡的物理特性)中为各种识别卡定义的物理特性适用于IC卡,IS07813(作为金融交易卡的磁卡的格式即内容)中对金融交易卡定义的阻燃性和外形尺寸也适用于IC卡。此外,还提出了以下附加特性:防护紫外线的能力;X光照射的剂量:触点的表面轮廓:卡和触点的机械强度;触点电阻;磁条与集成电路之间的电磁干扰;指定强度磁场的影响;静电影响;热耗等。标准规定了上述各项测试的指标,并要求测试后的IC卡不应损坏或丧失功能。使用过程中卡的表面温度不应超过50摄氏度[2]。1.5.2IS07816-2,接触式集成电路卡的触点尺寸和位置该协议规定了ID-1型集成电路卡各触点的尺寸、位置和功能。规定每个触点都应有一个不小于2.OmmX1.7mm的矩形表面区域,各触点间应互相隔离,但未规定触点的形状和最大尺寸。IC卡有8个触点,从C1到C8,触点可安排在卡的正面和反面。触点的位置如图1.1所示(以卡的接触面的左边和上边为基准线)。相邻两个触点之间的最大间距为0.84mmX8个触点所占最大面积没有规定,但规定最小面积不小于9.62(宽)mmX9.23(高)mm的矩形平面[3]。19.23max28.55max26.85minm26.01min19.23max28.55max26.85minm26.01min24.31max23.47min21.77max20.93minmC5C1C5C1C6C2C6C2C7C3C7C3C8C4C8C410.25max10.25max12.25min12.25min单位:mm单位:mm19.87min19.87min图1.1触点的位置图每个触点的功能见表1.1:表1.1IC卡触点功能表触点编号功能触点编号功能C1VCC(电源电压)C5GND(地)C2RST(复位信号)C6VPP(编程电压)C3CLK(时钟信号)C7I/O(输入/输出)C4ISO/IECJTC1/SC17C8ISO/IECJTC1/SC17-保留使用-保留使用1.5.3IS07816-3/10,接触式集成电路卡的电信号和传输协议IS07816-3/10协议规定了电源及信号的结构,以及IC卡和设备之间的信息交换,包括信号频率、电压电平、电流值、奇偶校验协定、操作过程、传送机制以及接口设备与IC卡之间的通讯协议等。这些协议规定是读写终端设计必须严格遵守的。该协议标准制订后经过多次修改,这里按1997年版本进行介绍。IC卡有两种传输协议:同步传输协议和异步传输协议,相应的执行不同协议的IC卡也分为同步卡和异步卡。在使用同步卡时,外电路的时钟信号加到IC卡的CLK触点C3,直接作为数据读写的同步触发信号,同步传输协议在ISO/IEC7816-10中定义,适用于逻辑加密卡,它是同步IC卡读写数据时序控制的依据,这里要详细介绍:使用异步卡时,外电路的时钟信号也加到IC卡的C3触点,但不直接控制卡中数据的读写,而是作为卡中CPU的外时钟信号,数据的读写时序由卡中CPU控制,异步传输协议在IS07816-3中介绍,主要适用于内含微处理器的智能卡,但IS07816-3中有些部分也适用于同步卡。这里就只介绍与逻辑加密卡有关的部分[4]。1.5.4IS07816-3规定的各触点电压和电流值先介绍IS07816-3中规定的触点电压和电流值.在讨论每个触点的电特性之前,先将所用符号的意义叙述如下[4]:Vih:高电平输入电压Vil:低电平输入电压Voh:高电平输出电压Vol:低电平输出电压Tr:信号幅度10%-90%之间的上升时间Tf:信号幅度90%-10%之间的下降时间Cin:输入电容Cout:输出电容Iil:高电平输入电流Iil:低电平输入电流Ioh:高电平输出电流Iol:低电平输出电流Icc:Vcc端电源电流Irr:Vpp端编程电流所有测量是相对GND(地)定义的。测量的环境温度在50摄氏度范围内。流入卡中的电流被定义为正电流。当满足下列条件时,定义电路为不工作状态:触点相对于GND的电压保持在OV-0.4V之间,且流向接口设备的电流小于1mA。另外根据给卡的电压不同而将卡的操作条件分成A、B两类,A类卡VCC上的电压为5V。B类卡VCC上电压值为3V,一般情况下的我们多使用A类卡。1、VCC触点:下表1.2是VCC触点电源电压值,本触点用来提供电源电压表1.2正常操作下VCC的电特性符号条件最小值最大值单位VCCA类4.55.5VB类2.73.3ICCA类在最大允许功率-60mAB类在最大允许功率-50时钟停止-0.52、Vpp触点:在A类操作条件下卡内的非易失性存储器EEPROM编程或擦除时可以从VPP端提供电源。Vpp有两种状态,空闲状态和激活状态。除编程和擦除外,均处于空闲状态。一般IC卡不从VPP取得电压,而山卡内升压电路提供编程和擦除所需电压。在B类操作条件下,VPP触点保留于将来使用。正常操作状态下VPP的电特性如表1.3所示:表1.3正常操作条件状态下Vpp的电特性符号条件最小值最大值单位Vpp空闲状态0.95xVcc1.05xVccVIpp-20mAVpp编程状态0.975xP1.025PVIpp-ImA卡向接口设备提供P和I值(默认值:P=5,I=50)电压上升或下降时间:200us(最大值),VPP变化速率不超过2V/us.最大功率VppxIpp,在任意一秒时间内的平均值不超过主1.5W。3、I/O触点:I/O触点用于数据交换的输入(接收方式)或输出(发送方式)。有两种可能的状态:传号或高状态(Z状态),空号或低状态(A状态)。当卡和接收设备均处在接收方式时,I/O处于Z状态,也可被发送方规定为Z状态:A状态可山发送方规定。当卡与接口设备处于不匹配的传输方式时,I/O端的逻辑状态可能是不确定的。在操作期间,卡与接口设备不能同时处于发送方式。表1.4为正常操作状态I/O的电特性:表1.4正常操作下的I/O电特性符号条件最小值最大值单位VihVih时刻0.7xVCCVCCVIih-300+20uAVilVil时刻00.15xVCCVIil-1000+20uAVoh外加上拉电阻到VCCVoh0.7xVCCVCCVIoh+20uAVolIol=1mACin=30pF;Cout=30pF00.15xVCCVTrTf1us以上测试I/O上的电压保持在-0.3V到+0.3V之间,接口设备工作时,流入卡的电流不应超过5OOuA。4、CLK触点:正常操作状态下的CLK触点电特性如下表1.5所示:表1.5正常操作条件状态下CLK的电特性符号条件最小值最大值单位VihVih时刻0.7xVccVccVIih-20+100uAVilVil时刻00.5VIil-100+20uATrTfCin=30pF-时钟周期的9%-CLK上的电压保持在-0.3~Vcc之间5、RST触点:正常操作条件下RST的电特性如表1.6所示:表1.6正常操作条件下RST的电特性符号条件最小值最大值单位VihVih时刻0.8xVccVccVIih-20+150uAVilVil时刻00.12xVccVIil-200+20uATrTfCin=30pF-1usRST电压保持在-0.3~Vcc之间1.5.5ISO/IEC7816-10协议,同步卡的电信号和复位应答ISO/IEC7816-10协议专门规范了同步卡的电信号和复位应答,描述了在同步传输的集成电路与接口设备之间的电源、信号结构和复位应答结构。除了带CPU的智能卡,其他IC卡都属于同步卡,包括这里要使用的逻辑加密卡,所以了解ISO/IEC7816-10协议也很重要。除了在此说明的以外,在ISO/IEC7816-3中说明的仍适用。它还包括信号速率、操作条件和通讯。本规范说明两种类型的同步卡:第一类(type1)和第二类(type2).IC卡的触点C,指定为第二类同步卡的功能码(FCB),FCB和RST一起构成在卡中执行的命令。第二类卡的传输率可以比第一类高。1、卡的复位接口设备将所有线置于状态L,然后VCC加电,VPP置于休闲状态,CLK和RST保留于状态L,接口设备的I/O置于结束方式。RST至少有50us维持于状态H,然后回到状态L。上升沿和下降沿时间不超过0.5us。时钟脉冲在它与RST上升沿之后相隔5us时间后给出,时钟脉冲状态H的持续时间在10us-50us之间。在RST处于状态H时只准有一个时钟脉冲,CLK与RST下降沿之间的间隔为5us。在I/O线上得到的第一位数据可视为应答,此时CLK处于状态L,并在RST下降沿10us后有效。2、复位应答在同步工作传输方式中,I/O线上一串数据位用CLK上的时钟信号进行同步。I/O线上的位速率与接口设备发到CLK的时钟速率呈线性关系,例如7kHz时钟频率相应于7Kbit/s。无论对于那种同类卡,最大上升沿/下降沿各为0.5us。第一类卡低于50kHz的任意频率可用;第二类卡低于280kHz的任意频率可用。在设计读写器的读写控制时要选择合适的CLK频率,即要保持比较快的数据传输速率,又要保证数据传输的可靠性。复位(reset)操作的结果是从卡发送应答到接口设备。该头的长度固定为32位,其开始的两个字节H1和H2是必备的。bl-b32是按时间顺序发送的信息位,最低位先发送[4]。1.5.6IC卡国际标准和设计要求小结本节详细介绍了有关IC卡的国际标准,标准规范了IC卡物理特性、触点大小和位置、触点电信号特征和传输协议等等,它也是IC卡读写设备设计的基本规范,是读写设备对IC卡进行数据操作的所必需遵循的基础。1.6IC卡在国内的使用情况和发展前景可以看到我国的一些领域,如电信、交通、医疗等等部门,使用IC卡也已经很普遍,很多单位也已经使用IC卡来进行人员和财务管理。在金融上我国还基本上是使用磁卡,但是由于IC卡的诸多优点,在不久将来用IC卡取代磁卡已经是必然趋势。我国IC卡经过几年的探索与发展,其建设和实际应用进入了一个新的发展阶段。据统计,我国目前已有香港、上海、广州、深圳、大连、青岛、南京、桂林、武汉、鞍山、长春、厦门等多个城市都已成功地启用,不少城市的IC卡应用范围涵盖了包括公交、地铁、轮渡、出租车、路桥收费、泊车等城市交通各个方面,有的还往非交通领域延伸,如旅游景点门票、小额餐饮付费等。这些城市都是在政府的推动下,做出一卡多用的规划,统一组织实施。截至目前,全国已有90多个城市建立了不同规模的公交IC卡应用系统,累计发卡量2000余万张;已有300多个城市在供水、燃气领域实施了IC卡应用,累计安装IC卡表具已达到450多万台,发卡量达到600多万张。数字社区、路桥收费、停车场管理等领域的建设事业IC卡应用也有了初步的发展。建设行业IC卡的应用推广对加强政府对经济的宏观调控,提倡市民新的消费意识,提高公用企事业单位的工作效率、经营管理水平和效益,促进国民经济信息化进程起到了良好作用。

IC卡的一卡多应用,国内外有很多成功的经验可供借鉴,如上海的公共交通一卡通系统,香港特区的八达通卡,新加坡的现金卡NETS项目等。这些项目都有一个共同特点,即都是在政府的推动下,做出一卡多用的规划,统一组织实施。

上海公共交通“一卡通”工程于1999年5月25日投入建设。发卡总量达到1200万张,日交易量为500万笔,交易额达人民币800万元。

广州“羊城通”于2001年12月30日投入运行。发卡总量达到220多万张,日交易量达到200多万笔。

香港“八达通”应该是同类型一卡通项目中最成功的典范,从1997年发卡以来,目前已经应用于数十类小额消费行业,如地铁、轻铁、购物、报刊厅等。目前发卡量达到920多万张,每日交易额港币4000多万元。同时,香港“八达通”还积极开发海外市场,现已在部分欧洲国家提供顾问服务,并参与当地支付卡业务。

大连、南京、深圳、武汉、台北等城市也已经全面推行小额支付一卡通系统,目前在中国大陆使用同类系统的城市达数十个,“多卡合一、一卡通行”日益成为社会发展的主流,它将极大地提升城市信息化管理的水平,为百姓的日常生活提供极大的方便。2接触式IC卡接触式IC卡,具有标准形状的铜皮触点,通过和卡座的触点相连后实现与外部调试设备的信息交换。本设计使用的是SLE4442接触式IC卡,下面介绍SLE4442的一些特性。2.1SLE4442电气特性逻辑加密卡SLE4442是德国西门子公司推出的智能带写保护功能和保密逻辑的256字节EEPROM卡。这种芯片的特点是采用多存储器结构;两线连接协议,串行接口满足ISO7816同步传送协议;芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms;存储器采用至少104次的擦除/写入周期,数据保持时间至少为1O年。如图2.1为SLE4442实际芯片图。图2.1SLE4442芯片其主要电气特性为:SLE4442的标称使用电压范围为4.75~5.25V,工作电流为3~10mA,读操作时为3mA,写操作时约10mA。数据引脚低电平电压值为0~0.8V,高电平电压值为3.5V~Vcc。在开发时,对多批次的SLE4442进行测试得到的数据为:IC卡在读操作时,工作电压最低可至2.2V;要正常写操作,电压不能低于4.5V。数据引脚低电平电压值为0~0.8V,高电平电压值为2.2V~Vcc。如图2.2所示SLE4442IC引脚功能图[1]。图2.2SLE4442引脚图2.2SLE4442内部结构SLE4442存储器分为主存储器和保密存储器两部分,图2.3所示[5]。图2.3SLE4442存储器内部结构主存储器有256字节,其地址为00H~0FFH,按字节寻址。主存储器又分为两个数据区:保护数据区和应用数据区。主存储器前32字节为保护数据区,其地址为00H-1FH;主存储器的后224字节为应用数据区,其地址单元为20H-0FFH。这两部分数据的读出都不受限制,但擦处和写入要受限制,保护数据区受保护存储器内部数据状态的限制,应用数据区受加密存储器数据校验比较结果的影响。保护存储器相对于应用存储器有所不同,它具有保护功能,可以通过写入相应的保护位而得到保护。实行保护后,被保护单元不能被擦写;若没有被保护,则其使用与应用存储器完全相同。另外,保护功能是不可逆的,保护存储器中的某单元一旦被保护后就不能再解除保护,保护位存储器的32位和保护存储器的32字节是相对应的。通常情况下,SLE4442保护存储器中的固化信息如下:00H~03H复位应答信息(ATR);04H~07H芯片生产厂家代码和卡型编码(出厂时已固化);15H~1AH应用标识。保密存储器有4个字节,包括1个字节的错误计数器(EC)和3个字节的保密代码(PSC)。SLE4442通过保密存储器进行密码逻辑操作以控制整个主存储器的擦写。它上电后,除密码外的整个存储器只能够读,只有当密码验证正确以后才可以进行擦写,连续三次密码校验错误则芯片自锁,再也不能进行擦写。2.3SLE4442保密特性1、写保护区(前32个字节)的每一字节可单独进行写保护,进行写保护后,内容不可再更改(即固化数据);2、密码核对正确前,全部数据均可读,如果有需要,可对数据进行适当加密;3、核对密码正确后,可写入或修改;4、3字节的用户密码,核对正确后本身可更改,有效至卡下电为止;5、密码出错计数器,初始值为3,密码核对出错1次,便减1,若计数器值为0,则卡自动锁死,数据只可读出不可进行更改,也无法再进行密码核对;若不为零,有一次密码核对正确,则可恢复到初始值。2.4SLE4442的通信协议SLE4442卡的通信协议由四种方式组成:1、复位和复位响应复位可在操作期间任何时候进行,在复位响应期间,任何开始和停止条件均被禁止。2、命令方式每个命令由起始条件、一个3字节长的命令和停止条件构成。命令方式时序图如图2.4所示图2.4SLE4442卡命令方式时序图在这种方式下,IC卡发送数据至IFD(外部接口设备),在CLK上第一个下降沿后,I/O上第一位有效;最后一个数据位之后,需要一个客外的时钟脉冲,以设置I/O处于高状态,同时准备IC卡接收新的命令。在这种方式下,任何开始和停止条件均被禁止。输出数据方式时序图如图2.5所示。图2.5SLE4442卡的输出数据方式时序图3、处理方式IC卡连续接收时钟,直到第一个CLK下降沿之后,切换至低状态L的I/O被设置成高状态H。在这种方式下,任何开始和停止条件均被禁止。命令的格式:每条命令包含三个字节,其顺序如表2.1所示。表2.1SLE4442命令格式控制字地址数据B7B6B5B4B3B2B1B0A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0命令的传送总是从控制字节开始。首先传送字节的最低位LSB(即B0位)。控制字节传送完毕以后,依次传送地址字节和数据字节,传送顺序均从各字节最低位开始。在最后一位D7传送完成之后,需要增加一个附加脉冲把1/0线置成高状态[6]。SLE4442芯片具有七种命令,其格式和功能见表2.2表2.2SLE4442命令格式及功能字节1(控制)字节2(地址)字节3(数据)功能命令模式30H地址数无效读主存储器输出数据模式31H无效无效读加密存储器输出数据模式33H地址数输入数据比较校验数据处理模式34H无效无效读保护存储器输出数据模式38H地址数输入数据修改主存储器处理模式39H地址数输入数据修改加密存储器处理模式3BH地址数输入数据写保护存储器处理模式2.5SLE4442有关命令的说明1、读主存储器:该命令是指读出主存储器的内容。该命令的控制字为(30H)。对于每个字节来说总是从最低位开始读出。从给定的字节地址(N)开始,直到整个存储器的末尾。在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲。对于从地址(N)开始读数据所需要的时钟脉冲的数量M=(256-N)X8十1。对主存储器做读操作不受限制。2、读保护存储器:该命令的控制字为(34H).在连续输入32个时钟脉冲情况下,芯片将保护存储器内各位内容传送到I/O线上。最后通过一个附加时钟将I/O线置为H状态。对保护存储器进行读取操作不受限制。3、读加密存储器:该命令类似于读保护存储器那样,可以读出4个字节的加密存储器的内容。在输出数据模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高状态。如果可编程加密代码(PSC)的校验不成功(除第0字节可读除外)。I/O线总保持低状态。4、修改主存储器:该命令就是根据所传送地址字节数据,寻址主存储器EEPROM字节,然后修改字节内容。该命令的控制字为(38H).在处理模式期间,可能有几种情况:擦除和写入至少需要5ms;只写入不擦除至少需要2.5ms;只擦除不写入至少需要2.5ms。程序实现时,可根据CLK时钟脉冲的频率来选择修改存储器时的延时脉冲个数,但最佳延时时间的确定要通过实验来调整,让数据可靠的写入存储器中,同时保证用较少的时间完成数据的修改。5、修改加密存储器:该命令是根据所传送的字节数和要修改的数据,将加密存储器中相应字节的内容进行修改。该命令的控制字为(39H),该命令只能在可编程加密代码(PSC)比较成功之后才能进行。该命令的执行时间和所需的时钟脉冲与修改主存储器的情况相同。6、写保护存储器:这一命令的执行过程包括一个把被输入的数据与在EEPROM中对相应数据进行比较的过程。在确认一致的情况下,保护字位被写0。从而使得主存储器中的信息不可更改。如果数据比较结果不一致,则保护字位的写操作将被禁止。该命令所需时钟脉冲和执行时间与修改主存储器命令的情况相同。7、比较校验数据:该命令把输入的“校验数据”的各个字节与相对应的参照数据(存放在加密存储器中)进行比较。如果比较不成功(即两组数据不相同),则密码错误计数器的一个字位将只会被从“1”写成“0”,并且不能被擦除。首先用一个修改命令将密码错误计数器中的一位写0,然后紧跟着三条比较校验数据命令。比较从参照数据的字节1开始。整个比较过程成功与否是用能否擦除密码错误计数器来证实。如果比较成功,则擦除操作执行有效,这时只要不断电,对整个芯片各存储器的各区域的写入/擦除处理都可以进行,如果比较不成功,擦除操作执行无效,密码错误计数器将不会恢复为“111".但只要(EC)不全为0,就允许外部接口设备IFD对芯片进行重试:如果(EC)全为0,则比较被封锁,1C卡不能再做修改数据的操作。该命令的执行流程见下图2.6所示。图2.6比较校验数据流程图当校验数据比较成功,加密存储器也同样被打开,其单元中的参数数据也可以象主存储器中的其他单元一样进行修改变换。芯片在出厂时,根据用户的专门安排,常常将可编程加密代码(PSC)中编入一个专门代码。这样在使用时,要打开卡片就必须合法得到一个代码,这也是防止非法窃用或伪造卡片的重要手段。2.6SLE4442与单片机接口电路IC卡通过一个卡座与单片机相连接,通过对单片机的P1口的控制来实现IC卡的读写等功能。SLE4442与单片机的连接如图2.7所示,RST、CLK、和I/O依次和单片机的P1.0,P1.1,P1.2连接,P1.3通过小功率三极管9012控制卡的上电。图中的9,10为卡座上的两个触点,未插卡时此两点不通,插卡时才通(称为常开型,常闭型则与此相反)。把他串在上电回路中,这样只有在插上卡才能上电,起保护卡的作用。图2.7接口电路图IC卡的插入与退出的识别是通过IC卡适配插座上的感应开关来识别的,对于简单的手动插拔的IC卡适配插座来说,这种识别过程相当简单,仅有一个开关(图中的9,10之间),表示卡是否已插入。如果卡己插入到正确位置,IC卡适配插座就会给出一个开关接通(或断开)的信号,而一旦卡离开这个位置。该信号就会立即发生翻转。设计中采用的适配器,无卡插入时开关常闭,卡插到位时开关断开。对于手动式IC卡适配插座来说,这一信号已经足够了。大多数符合ISO7816标准的同步型IC卡的地址计数器是与时钟紧密相关的,当卡复位时,地址计数器置0。以后每向卡发一个节拍的时钟,都将使IC卡的地址计数器加‘1’。这一时钟频率上限为50kHz或280kHz。复位之后的头32个时钟周期内,是卡的复位响应过程,该过程中,厂家的产品编码以位编码方式逐一在数据线上送出,以后的字段则根据厂家及用户所定义的含义不同而各不相同。若某字段定义为可读的,则可将时钟运行到该字段上,然后再逐时钟读出。数据的读出过程可分为三个基本过程:复位,数据字段的定位和数据读出。3读写器电路的设计与实现3.1读写器电路设计本系统以MCS-51系列中的AT89C51单片机为控制核心,在此基础上设计IC卡的接口电路,键盘以及显示电路。主要的输入工作都是由键盘来实现的,通过键盘上的按键来写入数据,控制写卡、读卡程序,最后再有两位的LED数码管显示卡中的数据。基本完成了IC卡的读写。电路总体框图如图3.1。主控电路主控电路按键电路复位电路时钟电路显示电路接口电路图3.1硬件总体框图3.1.1MCS-51单片机单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃且颇有生命力的机种,常被简称为单片机。它是将中央处理器、随机存储器,只读存储器、定时器芯片和一些输入/输出接口集成在一个芯片上的微控制器(microcontroller)。虽然目前单片机的品种很多,但其中最具代表性的当届Intel公司的MCS-51(以下简称51)单片机系列。51单片机以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其他单片机的发展奠定了基础。正因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多大的电气厂商丰富和发展了51单片机,像PHILIPS、Dallas、ATMEI等著名的半导体公司都推出了兼容51的单片机产品,就连我国台湾的INBOND公司也发展了兼容5l单片机品种。近年来51单片机获得了飞速的发展,51的发源公司Intel由于忙于开发PC机及高端微处理器而无精力继续发展自己的单片机,而由其他厂商将其发展,最典型的是PHILIPS和ATMEI公司。PHILIPS公司主要是改善其性能,在原来的基础上发展了高速I/O接口、A/D转换器、脉宽调制(PWM)、WDT等增强功能,并在低电压、微功耗、扩展串行总线(RC)和控制网络总线(CAN)等功能加以完善。ATMEL公司推出的AT89Cxx系列兼容5l的单片机,完美地将FlashROM与80C51内核结合起来,仍采用51的总体结构和指令系统,FlashROM的可反复擦写程序存储器能有效地降低开发费用,并使单片机能多次重复使用。西门子(SIEMENS)公司推出的C500系列单片机在保持与80C51兼容的前提下,增强了各项性能,尤其是增强了电磁兼容性能,增加了CAN总线接口,特别适用于工业控制。因为单片机有上述硬件结构,所以只要与适当的软件及外部设备相结合,便可成为单片机系统。单片机是现代计算机、电子技术结合的产物,无论是单片机本身,还是单片机应用系统,都在随着时代的发展不断发生变化[7]。归纳起来单片机具有的特点:1、小巧灵活,成本低,易于产品化。能方便地组装成各种智能式测控设备及智能仪器仪表;2、可靠性好,适应温度范围宽;3、易扩展,很容易构成各种规模的应用系统,控制功能强;4、可以很方便地实现多机和分布式控制。3.1.2MCS-51单片机的内部结构MCS-51单片机的内部结构如图3.2所示:图3.2单片机内部结构MCS-51单片机内部结构存储单元在单片机内部ROM和RAM是分开制造的。通常,ROM存储空间较大,RAM的存储空间较小,这是单片机用于控制的一大特点。ROM一般为1到32K字节,用于存放应用程序。RAM的容量一般为64到256字节,最多可达48KB,它主要用于存储实时数据或作为通用寄存器、数据堆栈和数据缓冲之用。(1)CPUCPU的内部相当复杂,但按照逻辑功能块划分可分为运算器,控制器、中断电路等。CPU从某种意义上来说是整个系统的核心部分,所有的逻辑运算、算术运算、地址运算都是在这里完成的。(2)内部总线单片机内部总线是CPU连接片内各主要部件的纽带,是各类信息传送的通道。内部总线主要由三种不同性质的总线构成,它们是地址总线、数据总线、控制/状态总线。地址总线主要用来传送寄存器所需要的地址码或外部设备的数据号。数据总线用来传送CPU写入存储器或经I/O口接收的数据也可以反方向传送数据。控制/状态总线有两类:一类是CPU发出的控制信号,如读命令、写命令和中断命令等,另一类是存储器或外部设备的状态信息,如外设的中断请求,存储器忙和系统复位信号等。(3)I/O接口电路有串行和并行两种。串行I/O用于串口通讯,它可以把单片机内部的并行8位数据变成串行数据向外传输,也可以串行接收外部送来的数据并把它变成并行数据送给单片机处理。并行I/O电路可以使单片机和存储器或外设之间并行地传送8位数据。3.1.3MCS-51单片机的发展与应用4位单片机是单片机发展的第一个阶段。这种单片机的特点是价格便宜,控制功能强。片内含有多种I/O接口,有并行I/O口、串行I/O口、定时/计数器接口、中断功能接口、打印接口、键盘及显示扫描接口等。丰富的I/O功能大大增强了4位单片机的控制能力,从而使外部电路及为简单。而在8位单片机技术上最有深远影响的是Inter公司的MCS-51系列单片机芯片。其与MCS-48系列相比无论是在CPU功能上还是存储容量以及特殊功能部件上都高出一筹。经典产品8051内部4KBROM,128字节RAM和5级中断优先级再加上2x64K的寻址能力都无疑得到了用户的青睐。其内部功能全面、操作方便的指令系统更是倍受宠爱。如今,Inter公司已经向外界公布了芯片内核。ATMEL、Siemens、Philips和Fujitsu公司都开发出与其兼容的单片机产品,但还是各有各的特点。现如今市场上已经出现了处理能力更强的16位单片机和32位单片机。由于它批量小,价格贵,因此,应用不普遍。但是可以预料,16位机将会越来越受到人们的重视,在今后的几年内,其应用日渐广泛。单片机的发展趋势:(1)通用机向纵深向发展,专用机层出不穷;(2)制造工艺不断提高,存储器功能日益完善;(3)8位功能机功能增强,16位机应用日益广泛; (4)语言更加丰富,各种高级语言不断涌现。因单片机具有体积小、可靠性强、功能强、重量轻、价格便宜、功耗低及运算速度快等特点,故可以广泛应用与国民经济的各个领域,对各行各业的技术改造和产品更新换代起到了重要的推动作用。按照单片机的特点,单片机可分为单机应用和多机应用。1、单机应用在一个系统中,只要用一个单片机,这是目前应用最多的方式,主要应用领域有:(1)测控系统(2)智能仪表(3)机电一体化产品(4)智能接口(5)智能民用产品2、多机应用单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统和分布式控制系统。通常是一台主机和若干台单片机所组成的计算机系统[8]。AT89C51单片机读写器的主控芯片采用的是AT89C51单片机。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。3.2.1AT89C51芯片参数·与MCS-51产指令系统完全兼容·4k字节可重擦写Flash闪速存储器·1000次擦写周期·全静态操作:0Hz-24MHz·三级加密程序存储器·128×8字节内部RAM·32个可编程I/O口线·2个16位定时/计数器·6个中断源·可编程串行UART通道·低功耗空闲和掉电模式3.2.2AT89C51芯片描述AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位[9]。3.2.3管脚配置如图3.2所示。图3.2AT89C51管脚配置·Vcc:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(TTL)。Flash编程和程序校验期间,P1接收低8位地址。·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器区R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示: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(外部数据存储器读选通)P3口同时为闪速编程和编程校验接收一些控制信号·RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的l/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的DO位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无。·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期有两次PSEN,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有的PSEN信号不出现。·EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。·XTAL1振荡器反相放大器的及内部时钟发生器的输入端。·XTAL2振荡器反相放大器的输出端。3.2.4时钟振荡器AT89C5l有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。如图3.3。图3.3时钟振荡电路由于外部时钟信号是通过一个两分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产技术条件的要求。3.3显示电路设计实现本设计显示电路是由两为LED数码管组成,主要显示IC卡内的两位数据,由单片机控制显示电路,采用动态扫描的方法来实现显示功能。显示电路如图3.4所示。图3.4显示电路结构图3.3.1LED显示的原理LED是发光二极管Light

Emitting

Diode的英文缩写。

LED显示屏是由发光二极管排列组成的显示器件。它采用低电压扫描驱动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、规格品种全等特点。目前LED显示屏作为新一代的信息传播媒体,已经成为城市信息现代化建设的标志。半导体发光器件包括半导体发光二极管(简称LED)、数码管、符号管、米字管及点阵式显示屏(简称矩阵管)等。事实上,数码管、符号管、米字管及矩阵管中的每个发光单元都是一个发光二极管。8段数码管属于LED发光器件的一种。LED发光器件一般有两种:数码管和点阵。8段数码管又称为7字型数码管,分为7段:A、B、C、D、E、F、G、H。数码管常用的有10根管脚。每一根有一根管脚,另外两根管脚为一个数码管的公共端,两根之间互相连通。从电路上说,数码管可分为两种,分别是:共阳极和共阴极。如图3.5所示。图3.5LED类型图用单片机驱动数码管的方法很多,按点亮方式分,有静态显示和动态显示。静态显示就是单片机将所要显示的数据送出后就不再控制LED,直到下一次传送新的数据前数码管稳定显示字形。静态显示占用CPU时间少。静态显示中,每一个显示器都要占用独立的I/O接口,该接口用于笔划段字形代码。这样单片机只要把要显示的字形代码送到I/O口就可以实现显示功能。动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8段ah同名端接在一起,而每一个显示器的公共极com是各自独立地受片选芯片线控制.当我们要向字段输入口送进字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于com端的控制,而这一端是由片选控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的com端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。与静态驱动显示相比,动态扫描显示具有以下优点:第一,能显著减少能量的消耗,由于LDE显示器分别显示因此不静态的方法大大减少数码管的功耗;第二,能大大减少LED的外部引线,给印制板的设计和安装带来方便;第三,能采用BCD码多路输出的方式,不仅使译码、驱动电路大为简化,还可以与PC相连等。动态扫描显示就是让各位LED按照一定的顺序轮流地发光显示.只要每秒扫描次数大于24次以上,就观察不到闪烁现象,人眼看起来很稳定。多位LED的动态扫描驱动电路是在静态扫描电路的基础上简化电路,省掉不必要线和芯片。只要合理控制扫描时间,将时间间隔控制在1/24S内,就观察不到闪烁。在肉眼看来,此时的数据显示和静态扫描一样稳定。动态扫描可直接输入要显示的数字BCD码,但是这种输入不能保证与片选所选中的芯片保持一致,为了要和片选选中的芯片保持一致,可采用移位寄存器。3.3.2LED显示电路本设计采用动态显示方式。如图3.6。P0口和P1口的部分(P1.4、P1.5)引脚构成了两位LED数码管驱动电路,数码管采用了共阴型。即对应的a、b、c、d、e、f、dp、是二极管的正极,所有二极管的负极连在一起,构成公共端。+5V通过1KΩ的阻排直接给数码管的8个位段供电,P1.4和P1.5分别控制数码管的十位和个位的供电,当P1.4或P1.5变成低电平时,相应的位可以吸入电流。LED显示器的各段与P0口的对应关系如下表3.1。表3.1LED对应表P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0fadpgdecb对应关系中可以看出,当显示P0口输出的数为0CFH(11001111)时,LED数码管中对应的fadecb为高电平,因此,LED数码管显示为0,同理,可分析出数字1,2,3,4,5,6,7,8,9的码段表[8]。图3.6显示电路电路图3.3键盘接口电路设计实现键盘是单片机十分重要的输入设备,是实现人机对话的纽带。键盘是由一组规则排列的按键组成,一个按键实际上就是一个开关元件,即键盘是一组规则排列的开关。根据按键结构、原理的不同,主要分两类:一类是触点式开关按键,如机械开关等;另一类是无触点开关案件,如磁感应按键等。前者造价低,后者寿命长。目前,单片机应用系统中最常见的触点式开关按键。3.4.1键盘的特性键盘是由一组按键开关组成的。通常,按键所用的开关为机械弹性开关,这种开关一般为常开型。平时(按键不按下时),案件的触点是断开状态,案件被按下时,他们才闭合。由于机械触点的弹性作用,一个按键开关从开始按上至接触稳定要经过一定的弹跳时间,即在这段时间里连续产生了多个脉冲,在断开时也不会一下子断开,存在同样的问题,按键抖动信号如下图从波形图可以看出,按键开关在闭合及断开的瞬间,均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms,而按键的稳定闭合期的长短则是由操作人员的按键动作决定的,一般为十分之几秒的时间。3.4.2按键的确认按键的确认就是判别按键是否闭合,反映在电压上就是和按键相连的引脚呈现出高电平或低电平。如果高电平表示断开,那么低电平则表示闭合,所以通过检测电平的高低状态,便可以确认按键是否按下。3.4.3按键抖动的消除因为机械开关存在抖动问题,为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。消除按键的抖动,通常有硬件、软件良种消除方法。在按键较少时,可以用硬件消除抖动,而按键较多时,采用软件消除抖动。本设计用的是软件消除抖动的方法,即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,以避开按键按下去的抖动时间,待信号稳定之后再进行按键查询,如果仍保持闭合状态电平,则确认为真正有按键按下。一般情况下,不对按键释放的后沿进行处理。3.4.4键盘的工作方式键盘的工作方式有3种,即程序控制扫描、定时扫描和中断扫描方式。程序控制扫描方式程序控制扫描方式是指单片机在空闲时,才调用键盘扫描程序,并反复的扫描键盘,直到用户从键盘上输入命令或数据,而在执行键入命令或处理键入数据过程中,CPU将不再影响键入要求,直到CPU重新扫描键盘为止。具体过程如下:(1)判别有无按键按下。(2)键扫描取得闭合键的行、列值。(3)用计算法得到键值。(4)判断闭合键是否释放,如果没有释放则等待;如果闭合键释放,将闭合键的键号保存,并转去执行闭合键的功能;(5)返回.2、定时扫描方式定时扫描方式就是每隔一定时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间的定时,当定时时间到就产生定时器溢出中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键执行响应的键功能程序。3、中断扫描方式键盘工作在程序控制扫描方式时,当无键按下时,CPU要不间断的扫描键盘直到有按键按下为止。如果CPU要处理的事情很多,这种工作方式就不能适应。定时扫描方式只要定时时间到,CPU就去扫描键盘,工作效率有了一定的提高。由此可见,这两种方式常使CPU处于空扫描的状态,而中断扫描方式下,CPU可以一直处理自己的工作,直到有键闭合时发出中断申请,CPU响应中断,执行响应的中断服务,才对键进行处理,从而提高了CPU的工作效率。本设计键盘使用的是简单的程序控制扫描方式。3.4.5键盘与单片机的连接单片机中的键盘可分为独立式、编码式、串行口扩展式和矩阵式等几类,为了减少键盘与单片机接口时所占用的I/O线的数目,在按键数比较多的时候,通常将键盘排列成行列矩阵形式,本设计用的是矩阵式键盘。如图3.7。图3.7矩阵式键盘电路键盘的行线一端经电阻接+5V电源,另一端接单片机的输入口;各列线的一端接单片机的输出口,另一端悬空。每一行线(水平线)与列线(垂直线)的交叉处不相通,而是通过一个案件来连同。利用这种矩阵结构只需要n条行线和m条列线,即可组成具有nXm个按键的键盘。由此可见,在需要的键位比较多时,一般采用矩阵键盘。本设计键盘工作原理如下:(1)判断有无按键按下。键被按下时,与此键相连的行线与列线将导通,而行线电平在无键按下时处于高电平,显然,如果让所有列线处于高电平,那么键按下与否不会引起行线电平的变化,所以只有让所有列线处于低电平,当有键按下时所在行电平将被拉成低电平,根据此行电平的变化,便能判定此行一定有键被按下。图3.7中,行线通过电阻接正电源,并将行线所接的单片机的I/O接口作为输入端;而列线所接的I/O接口则作为输出端。为了判断有无按键被按下,可先经输出口向所有的列线输出低电平,然后在输入各行线的状态。若行线状态皆为高电平,则表明无键按下;若行线状态中有低电平,则表明有键按下。(2)判断按键是否真的被按下。当判断出有键按下之后,用软件延时的方法延时10ms,在判断键盘的状态,如果仍为有键被按下,则认为确实有键按下,否则,当作按键抖动处理。(3)判断哪一个按键被按下。让所有的列线处于低电平,只能得出某行有键被按下。例如,若所有列线均为低电平,当按键4,5,6,7任一个按键按下后,均会造成第1行为低电平;为了进一步的判断到底那一列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平当第0列为低电平,其余各列为高电平时,因为是7键被按下,所以,按键7所在的第1行仍处于高电平状态;当第1列为低电平,其余各列为高电平时,按键7所在的第1行仍处于高电平状态;当第2列为低电平,其余各列为高电平时,按键7所在的第1行仍处于高电平状态;当第3列为低电平,其余各列为高电平时,因为是7键被按下,所以第1行的电平将由高电平转换为低电平,因此可以确信第1行第3列交叉出的按键即7号键被按下。(4)计算键码。键号是按从左到右、从上到下的顺序编排,按这种编排规律,各行的首键号依次是00H、04H、08H、0CH;如列按0~3的顺序进行编号,则键码的计算公式为:键码=行首键号+列号(5)等待按键释放。按键释放之后,可以根据键码转到相应的键处理子程序,进行数据的输入或命令的处理[9]。3.5总体电路及PCB版图通过对个芯片性能的分析和实际应用中所需要达到的要求,使用PROTEL99SE完成了对该电路的设计工作[10],电路图3.8。图3.8总体电路图PCB版图如图3.9所示。图3.9PCB版图PCB板版图效果图如图3.9所示。图3.10PCB效果图4软件硬件联调过程4.1伟福仿真器介绍其外型图如图4.1。说明:1.仿真器使用USB与电脑相连;2.根据仿真器型号不同,可能会不附带逻辑测试探头;3.根据仿真头型号不同,扁平电缆可能只有一条;4.电源为直流5V/1A(最小),电源插孔的极性为内“负”外“正”。图4.1伟福仿真器外型图伟福仿真器的特点如下:1、通用仿真器:主机+POD组合,通过更换POD,可以对各种CPU进行仿真。对不同的应用场合,用户如果选择不同的CPU,通常就要更换仿真器,而伟福仿真器则采用主机+POD组合,支持多类CPU仿真。只需通过更换不同的POD,即可对各种不同类型的单片机进行仿真2、仿真头内置:提高仿真频率,减小外接插头体积,可以灵活接插用户板。3、强大的逻辑分析仪综合调试功能:逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或进序进行同步实时采样,并实时在线调试分析,采样深度64K,最高时基采样频率达100M,64路波形的可精确实时反映用户程序运行时的历史时间。系统在使用逻辑分析仪时,除普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点如:数据、地址、外部控制信号、CPU内部控制信号、程序区间断点等。由于逻辑分析仪可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。4、强大的跟踪器功能:跟踪功能以总线周期为单位,实时记录CPU仿真运行过程中,总线上发生的事件,其触发条件方式同逻辑分析仪。跟踪窗口在仿真停止时可收集显示跟踪CPU指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示跟踪结果。屏幕窗口显示波形图最多跟踪记忆指令64K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成跟踪功能。总线跟踪可以跟踪程序的运行轨迹。可以统计软件运行时间。4、双CPU结构:由监控CPU控制仿真CPU完成仿真工作,100%不占用户资源。全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、支持实时断点计数、软件运行时间统计。5、可控的晶振时钟:在软件界面上设定仿真晶振频率,保证了时钟电路准确性和稳定性,增加了用户设计的灵活性。6、VW平台:VWIDE环境,中/英文界面可任选,源程序的大小不再有任何限制。有丰富的窗口显示方式,多方位,动态地展示仿真的各种过程,使用极为便利。7、多语言多模块混合调试:支持ASM(汇编)、PLM、C语言多模块混合源程序调试,在线直接修改、编译、调试源程序。如果源程序有错,可直接定位错误所在行。8、直接点屏观察变量:在源程序窗口点击变量就可以观察此变量的值,方便快捷。9、外设管理功能:外设管理可以在调试程序时,观察到端口、定时器、串行口中断、外部中断相关的寄存器的状态,更可以完成这些外设的初始化程序,包括C语言和汇编语言,而您所做的只是填表,定义外设所要完成的功能。4.2调试过程按照要求连接好硬件与仿真器,在通过USB接口与PC机相连接,使用伟福仿真器相关的软件环境。创建项目,把编写的程序进行调试

温馨提示

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

评论

0/150

提交评论