《基于-单片机IC卡读卡器设计.pdf》由会员分享,可在线阅读,更多相关《基于-单片机IC卡读卡器设计.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于单片机的 IC 卡读卡器设计 第 1 章 绪论 本章介绍了 IC 卡的开展历史和应用情况,说明了现代 IC 卡技术的根底知识,最后分析了目前常见的 IC 卡读写器终端,并提出了本课题中 IC 卡读写器的设计目标。1.1 IC 卡的开展和使用应用情况 卡片是作为个人身份识别的手段而引进的,而作为交易凭证的卡片则早在 19 世纪80 年代就萌芽于英国了,1950 年,美国商人设计了第一现代的塑料信用卡,1951 年美国富兰克林银行作为金融机构率先发行了信用卡,到 60 年代中期,人们在塑料金融交易卡的反面贴上磁条,开展成为能够自动读取信息进展在线处理的磁卡,磁卡因为构造简单,价格低廉,得到迅速
2、推广。IC 卡是近年从欧洲开场出现的,IC 卡具有突出的 3S 特点,即 Standard(国际标准化)、Smart(灵巧智能化)、和 Security(平安性)。因而开展迅速,在金融、通讯、交通等众多领域中后来居上,即使那些磁卡已经普及应用的围也将被取而代之。IC 卡不仅改变了现有多种卡的使用方法和功能作用,还不断开创出新的应用领域。将 IC 卡和其他设备组成系统就能提供非常丰富的效劳功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。随着信息技术的开展,IC 卡作为一种先进的信息存储介质,它的应用己经渗透到各国的经济、社会生活、军事等各个方
3、面,将来更有着广阔的开展空间。1.2 IC 卡应用技术 IC 卡比磁卡存储容量大,可靠性和平安性高,在应用上除了覆盖磁卡的全部应用围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使 IC 卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。IC 卡虽然有很强的功能,但仅当 IC卡参加到应用系统中,构成发行商、应用系统和持卡人之间的数据传输媒介时,才能有效地发挥其优势。一个好的 IC 卡应用系统,应具备良好的应用特性和性能价格比,还要有好的平安特性。IC 卡最初是为了解决金融交易中的平安性问题而设计的,它带来全新的交易概念与巨大的优势。IC 卡在应用中的技术优势在于良好的机器读
4、写能力、共同认可的平安防技术和相对较大的数据存储能力。1良好的机器读写性能便于人机卡之间的会话-.z IC 卡是一种电路卡,它在机器读写性能上远优于磁卡和光卡,无需往复的机械动作即可完成人机卡之间的屡次会话过程,使卡在应用时更容易进展操作与相互验证,给卡的应用开发者和使用者都带来了极大的便利。2 良好的平安防技术是卡能够脱离网络使用 IC 卡采用了为国际上各种开发者与使用者所共同认可的半导体密码存放于软件加密技术,它可以有效地阻止卡的非法复制与数据的篡改。应用设备可以在脱离网络的情况下,不需要人工干预,即可对 IC 卡进展鉴别,以确定该卡是否是本系统所许可的,是否可在该应用场合中使用等。通过持
5、卡人输入 PIN,与卡一组密码比拟,可以确认持卡人的身份。这些特点使 IC 卡能成为传导媒体,再加上认证和数据加密等功能,使卡能够脱离网络使用。3 大容量的数据存储能力使 IC 卡成为数据媒体 在一个应用系统使用中,系统必须对所有持卡人建立一份身份与使用的档案。在磁卡系统中,这组档案存放在中心数据库系统,持卡人每次使用都需通过终端,以网络形式从数据库系统中提出那份与自己相关的档案。现在 IC 卡的存储能力增加了,这份相关信息可以存放在 IC 卡中,终端设备交易的实时性明显改善,使用的灵活性也大大增加。IC 卡三大特点的结合,构成了 IC 卡应用的强大优势,它一方面降低了对网络的依赖程度,提高了
6、相应速度;另一方面对发行商、应用商和持卡者三方面的利益提供了有效的保护手段,为 IC 卡的广泛应用铺平了道路。IC 卡应用围相当广泛,这里仅根据现有的应用提供局部应用领域。(1)应用于金融领域,可以作为信用卡、现金卡、证券卡或电子资金转账卡等。(2)可以作为明卡使用,如、驾驶执照、会员卡等。(3)在医疗、保健等领域,IC 卡可以用于安康卡、少儿疫苗卡、就诊卡等。(4)在商业及效劳领域,可以用 IC 卡作为优惠卡、结算卡、效劳卡等。(5)在交通领域,可以用 IC 卡取代公交或地铁月票,可以改变原有对月票的当月有效限制为有效次数限制。还可用于公路付费和停车付费等场合。(6)IC 卡卡,这是至目前为
7、止 IC 卡用量最大的一种应用.用 IC 卡公用替代磁卡与投币即可杜绝欺诈行为,又可省去携带零钱所带来的麻烦。(7)IC 卡在门禁系统、设备使用等情形中,以钥匙卡的形式出现,使锁有了新的一个层次定义。(8)IC 卡还可集各种效劳功能于一身,如企业的员工卡、校园一卡通等即属此类,持卡人可以用卡进展考勤、开门、就餐、借阅图书等。1.3 课题的建立以及本文完成的主要工作 本文主要包括以下容:-.z 1总体方案的构思 2.画出各模块电路图 3.元器件的选取与购置 4.正确焊接接硬件电路 5软件设计中完成写主存储器、写保护存储器、写密码和校验密码操作 6.完成 SLE4442 复位应答调试 第 2 章
8、方案论证 方案一 选用飞思卡尔单片机 MC9S12D64 做为主控芯片,该芯片是一款性能优良的单片机,包含一个 16 位中央处理单元、64 KB Flash、4 KB RAM、1 KBE2PROM、一个 I2C接口、一个同步串行接口和两个异步串行通信接口等丰富资源,能够满足系统设计的需求。具体方案如图2-1 所示。图 2-1 MC9S12D64 的总体设计方案 方案二 选用 STC89C55RD+做为主控芯片,STC89C55 是一种带 16K 字节闪烁可编程可檫除只读存储器 FPEROM-Flash Programable and Erasable Read Only Memory 的低电压
9、,高性能 OS8 的微处理器,俗称单片机。该器件采用 ATMEL 搞密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容,具体方案如图 2-2所示。图 2-2 STC89C55 的总体设计方案 因为这个设计需要用到的单片机引脚不多,对单片机配置也要求不高;飞思卡尔单片机 MC9S12D64 功能太强大价格也比拟昂贵,综合考虑选择比拟熟悉的 STC89C 系列单片机是比拟合理的。第3章 硬件设计-.z 所设计的读写器以 STC89C55RD+单片机为核心,配以 IC 卡接口电路、串行通信电路、存储电路、键盘输入电路和液晶显示电路等局部。通过读写器插槽与 IC 卡芯片通
10、信,由 STC89C55RD+单片机控制数据传输过程,实现读卡和写卡操作。系统的总体电路图如图 3-1 所示。图 3-1 系统总体电路图 系统总体设计框图如图 3-2 所示。图 3-2 系统总体框图 显示键盘输入控制器Stc89c55RD+PC 通信IC 卡SLE4442-.z 3.1 IC 卡芯片选择 IC 卡集成电路卡(IntegratedC ircuit Card)的简称1,有些国家和地区称之为微芯片卡(Microchip card)或微电路卡(Microcircuit Card)。IC 卡的大小和磁卡一样,它把集成电路镶在塑料卡片上,芯片一般是不易挥发性存储器(ROM,EPROM.EP
11、ROM),保护逻辑电路,甚至于 CPU。本节介绍 IC 卡的一些根本知识,使读者对 IC 卡有一个大概的了解。由于本设计所采用的 IC 卡为接触型逻辑加密卡SLE4442,所以本节的容重点介绍此卡。SLE4442 是由德国西门子公司设计的逻辑加密存储卡。它具有 2K 位的存储容量和完全独立的可编程加密代码存储器。部电压提升电路保证了芯片能够以单 5V 电压供电,较大的存储器容量能够满足应用领域的各种要求。是目前国应用较多的一种 IC 卡芯片。芯片特点 1面向字节寻址;2采用多存储器构造:主存储器、保护型存储器、加密存储器;3线连接协议,触点和串行接口满足 ISO7816 同步传送协议;4芯片采
12、用 NMOS 工艺技术,每字节的擦除/写入编程时间为 2.5ms;5复位响应ATR符合 ISO/IEC7816-3 协议;6存储器采用至少 10 000 次的擦除/写入周期,数据保持时间至少为 10 年;7额外特性:数据仅能在正确输入 24 位可编程平安码平安存储器之后才能改变。芯片的引脚配置 芯片的引脚与国际标准兼容,引脚的定义和功能说明如表 3-1 所示。表 3-1 SLE4442 引脚功能 引脚 卡触点 符号 功能 1 2 3 4 C1 C2 C3 C4 VCC RST CLK NC 操作电压 5V 复位 时钟 未用-.z 5 6 7 8 C5 C6 C7 C8 GND NC I/O N
13、C 地 未用 双向数据线 漏极开路 未用 芯片功能 SLE4442IC 卡芯片主要包括三个存储器:2568 位 EEPROM 型主存储器、321 位 PROM 型保护存储器和 48 位 EEPROM 型加密存储器 2。1主存储器 主存储器为可重复擦除使用的 EEPROM 型存储器。按字节寻址,擦除写入。在擦除时,一个数据字节的所有 8 位被全部置1。在写入时,在 EEPROM 单元中的信息则根据输入的数据,按字位方式变换成逻辑0(即在 EEPROM 中,新写入的数据与原来存在的数据进展逻辑与)。通常,要改变一个数据需要先进展擦除再进展写入两项操作。如果在被寻址的字节中 8 位没有一个字位需要从
14、 0 变为 1,则可以不进展擦除处理。反之亦然,在被寻址的字节中,如果没有一个字节需要从 1 变为 0,则可以不做写入处理,写入或擦除操作一次至少消耗 2.5ms 时间。主存储器的地址是从 00H 到 FFH。但主存储器可分为两个数据区:保护数据区和应用数据区,保护数据区是主存储器前 32 个字节数据区。其地址是从 0(00H)到 31(1FH)这局部的数据读出不受限制,但擦除和写入操作均受到保护存储器部数据状态的限制。当保护存储器中第 N 位为 0 时,则对应主存储器中第 N 个字节就不允许进展擦除和写入操作。故保护数据区一般均作为 IC 卡的标识数据区,存放一些固定不变的标识参数。应用数据
15、区为主存储器后 224 个字节。其地址从 32(20H)到 255(FFH)。这局部的数据读出不受限制,但擦除和写入受控于加密存储器数据校验比拟结果的影响。当需要修改应用数据区的容时,必须首先输入一个 3 字节长的校验字。这个新输入的校验字与原来存在在加密存储器中的参照字进展一对一的比拟。只有当两者完全一致时,芯片的加密控制逻辑才翻开芯片的主存储器,允许后面的擦除和写入操作。芯片允许在有限的次数重试比拟操作。如果在连续三次比拟失败之后,芯片的错误计数器计数到0,并将锁死主存储器,制止随后的任何比拟操作和写入擦除操作。这时整个主存储器变成一个只读存储器。芯片中各存储器的容不能再改变。2保护存储器
16、 保护存储器是一个 321 位的一次性可编程只读存储器PROM。它是按字位方式-.z 寻址和写入。保护存储器从 032 的每一位对应着主存储器地址从 0 到 31 的字节。因此可以理解为每个字节单元的控制熔丝。从出厂到被初始化之前,保护存储器的状态为全1。从控制方面来说,保护存储器的容只能从 1写成0而不能从0擦除成1。保护存储器每个被写0的单元所对应控制的主存储器的字节单元将不再接收任何擦除和写入命令,从而使得该字节单元的数据不可再改变。从使用方面来讲,如果需要防止一些固定的标识参数被改动,可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写位0,从而使这一局部单元中
17、的参数容永远不可更改。保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比拟校验操作结果的控制。当输入的校验字与芯片的参照字一致,则可以执行后续的写入操作。如果比拟不成功,则控制逻辑将闭锁保护存储器。3加密存储器 加密存储器是一个 48 位的 EEPROM 型存储器。在这个存储器中,第 0 字节为密码输入错误计数器(EC)。密码输入错误计数器的有效位是低 3 位。在芯片初始化时,计数器设置成111。这一字节是可读的。每次比拟密码时,先判断计数器中是否还有1。如果还有1,则将其中一个1写成0,然后进展比拟校验字操作。如果比拟结果一致,密码错误计数器将允许进展擦除操作(芯片不能自动
18、进展擦除操作),同时翻开主存储器、保护存储器和加密存储器,并允许进展擦除和写入操作。如果比拟结果不一致,则密码错误计数器中为1的个数将减少一位。只要计数器的容不全为 0,则芯片的比拟校验字操作还允许进展。当密码计数器减数为零,则芯片的存储单元将全部锁死。加密存储器的第 1,2,3 字节为参照字存储区。这 3 个字节的容作为一个整体披称为可编程加密代码(PSC)。值得注意的是:这 3 个字节的容在 PSC 比拟成功前是不可读的,只能进展比拟操作。而写入、擦除操作也受自身比拟操作结果的控制。只有当比拟成功,加密存储器各字节容才可以进展读出、写入和擦除。SLE4442 芯片传送协议 传送协议是在接口
19、设备 IFD 与 IC 卡的集成电路之间的两线连接协议,SLE4442 芯片的协议类型为S=10(同步卡协议)。I/O线上数据变化只在CLK信号的下降沿才有效 4。传送协议包括 4 种模式:复位和复位响应 命令模式 输出数据模式 处理模式 1复位和复位响应 复位响应是根据 ISO 7816-3 标准来进展的。在操作期间的任何时候都可以复位,-.z 只有经过了复位才能对 IC 卡进展其他操作。开场时地址计数器随一个时钟脉冲而被设置成 0。当 RST 线从 H 状态置到 L 状态时,第一个数据位的容被送到 I/O 线上。假设连续输入 32 个时钟脉冲,主存储器中的前 4 个字节地址单元中的容被读出
20、。在第 33 个时钟脉冲的下降沿,I/O 线被置成 H 状态而关闭。芯片复位即复位响应的时序关系如图 3-3所示。在复位响应期间,启动和停顿(见下面)状态被忽略。图 3-3 芯片复位即复位响应的时序关系 2命令模式 复位响应之后,芯片等待着命令。每条命令都以一个启动状态开场。整个命令包括三个字节(命令含义后面解释)。随后紧跟着一个附加脉冲并用一个停顿状态来完毕操作。命令模式时序关系如图 3-4 所示。启动状态:在 CLK 为 H 状态期间,I/O 线的下降沿为启动状态。停顿状态:在 CLK 为 H 状态期间,I/O 线的上升沿为停顿状态。在承受一个命令之后,有两种可能的模式:输出数据模式(即读
21、数据模式)和处理数据模式。图 3-4 命令模式时序关系 3输出数据模式 这种模式是将 IC 卡芯片中的数据传送给外部接口设备的一种操作。输出数据模式的时序关系如图 3-5 所示。在第一个 CLK 脉冲的下降沿之后,I/O 线上的第一位数据变为有效。随后每增加一个时钟脉冲,芯片部的一位数据被送到 I/O 线上。其输出的顺序是从每个字节的最低位开场。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把 I/O 线置成 H状态,以便准备承受新的命令。在输出数据期间,任何启动状态和停顿状态均被屏蔽掉。图 3-5 输出数据模式的时序关系 4处理数据模式 这种模式是对 IC 卡芯片做部处理。处理数据
22、模式的时序关系如图 3-6 所示。在第一个时钟脉冲的下降沿将 I/O 从 H 状态拉为 L 状态并开场处理。此后芯片在部连续计时计数,直到第 N 个时钟脉冲之后的附加时钟脉冲的下降沿 I/O 线被再次置高,完成芯片的处理过程。在整个处理过程中 I/O 线被锁定成低状态。图 3-6 处理数据模式的时序关系-.z 芯片的操作命令 1命令的格式 每条命令包含三个字节,其顺序如表 3-2 所示。表 3-2 命令顺序 MSB 控制字 LSB MSB 地址字 LSB MSB 数据字 LSB B7 B6 B5 B4 B3 B2 B1 B0 A7 A6A5 A4 A3 A2 A1 A0 D7 D6 D5 D4
23、 D3 D2 D1D0 命令的传送总是从控制字节开场。首先传送字节的最低位LSB(即 B0)。控制字节传送完毕以后,依次传送地址字节和数据字节,传送顺序均从各字节最低位开场。在最后一位 D7传送完成之后,需要增加一个附加脉冲把 I/O 线置成高状态。SLE4442 芯片具有七种命令,其格式和功能如表 3-3 所示。表 3-3 命令格式及功能 字节 1控制 字节 2地址 字节 3数据 功能 命令模式 30H 38 H 34 H 3B H 31 H 39 H 33 H 地址数 地址数 无效 地址数 无效 地址数 地址数 无效 输入数据 无效 输入数据 无效 输入数据 输入数据 读存储器 修改存储器
24、 读保护存储器 写保护存储器 读加密存储器 修改加密存储器 比拟校验数据 输出数据模式 处理模式 输出数据模式 处理模式 输出数据模式 处理模式 处理模式 2有关命令的说明(1)读主存储器:该命令是指读出主存储器的容。该命令的控制字为(30H)。对于每个字节来说总是从最低位开场读出。从给定的字节地址(N)开场,直到整个存储器的末尾。在该命令输入以后,接口设备 IFD 必须提供足够的时钟脉冲。对于从地址(N)开场读数据所需要的时钟脉冲的数量 M=(256-N)8+1。对主存储器做读操作不受限制。(2)读保护存储器:该命令的控制字为(34H)。在连续输入 32 个时钟脉冲情况下,芯片将保护存储器各
25、位容传送到I/O 线上。最后一个附加时钟将 I/O 线置为 H-.z 状态。对保护存储器进展读取操作不受限制。(3)读加密存储器:该命令类似于读保护存储器那样,可以读出 4 个字节的加密存储器的容。在输出数据模式下,所需时钟脉冲的数量为 32。其后再附加一个时钟脉冲将 I/O 线置成高状态。如果可编程加密代码PSC的校验不成功(除第 0 字节可读除外),I/O 线总保持低状态。(4)修改主存储器:该命令就是根据所传送地址字节数据,寻址主存储器的EEPROM字节,然后修改字节容。该命令的控制字为(38H)。在处理模式期间,可能有几种情况:擦除和写入至少需要 5ms;只写入不擦除,至少需要 2.5
26、ms;只擦除不写入,至少需要 2.5ms。(5)修改加密存储器:该命令是根据所传送的字节数和要修改的数据,将加密存储器中相应字节的容进展修改。该命令的控制字为(39H),该命令只能在可编程加密代码(PSC)比拟成功之后才能进展。该命令的执行时间和所需的时钟脉冲与修改主存储器的情况一样。(6)写保护存储器:这一命令的执行过程包括一个把被输入的数据与在EEPROM中对相应数据进展比拟的过程。在确认一致的情况下,保护字位被写 0。从而使得主存储器中的信息不可更改。如果数据比拟结果不一致,则保护字位的写操作将被制止。该命令所需时钟脉冲和执行时间与修改主存储器命令的情况一样。3.2 CD4066 CD4
27、066 的每个封装部有 4 个独立的模拟开关,每个模拟开关有输入、输出、控制三个端子,其中输入端和输出端可互换。当控制端加高电平时,开关导通;当控制端加低电平时开关截止。模拟开关导通时,导通电阻为几十欧姆;模拟开关截止时,呈现很高的阻抗,可以看成为开路。模拟开关可传输数字信号和模拟信号,可传输的模拟信号的上限频率为 40MHz。各开关间的串扰很小,典型值为50dB。CD4066 是四双向模拟开关,主要用作模拟或数字信号的多路传输。引出端排列与CC4016 一致,但具有比拟低的导通阻抗。另外,导通阻抗在整个输入信号围根本不变。CD4066 由四个相互独立的双向开关组成,每个开关有一个控制信号,开
28、关中的 p 和 n器件在控制信号作用下同时开关。这种构造消除了开关晶体管阈值电压随输入信号的变化,因此在整个工作信号围导通阻抗比拟低。与单通道开关相比,具有输入信号峰值电压围等于电源电压以及在输入信号围导通阻抗比拟稳定等优点。-.z 当模拟开关的电源电压采用双电源时,例如=5V,=5V均对地 0V 而言,则输入电压对称于 0V 的正、负信号电压 5V5V 均能传输。这时要求控制信号 C=1为+5V,C=0为-5V,否则只能传输正极性的信号电压。元件电路管脚图如图 3-7 所示图 3-7 CD4066 管脚图 3.3 单片机 STC89C55 10是一种带 16K 字节闪烁可编程可檫除只读存储器
29、 FPEROM-Flash Programable and Erasable Read Only Memory 的低电压,高性能 OS8 的微处理器,俗称单片机。该器件采用 ATMEL 搞密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。单片机总控制电路图如图 3-8 所示。图 3-8 单片机总控制电路 1时钟电路 STC89C55 部有一个用于构成振荡器的高增益反相放大器,引脚 R*D 和 T*D 分别是此放大器的输入端和输出端。时钟可以由部方式产生或外部方式产生。部方式的时钟电路如图 3-9(a)所示,在 R*D 和 T*D 引脚上外接定时元件,部振荡器就产
30、生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在 1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图3-9b所示,R*D 接地,T*D 接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于 12MHz 的方波信号。片时钟发生器把振荡频率两分频,产生一个两相时钟 P1 和 P2,供单片机使用。a部方式时钟电路 b外部方式时钟电路 图 3-9 时钟电路 2复位及复位电路-.z(1)复位操作 复位是单片机的初始化操作。其主要功能是把 PC 初始化为 0000H,使单片机从0000H 单
31、元开场执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除 PC 之外,复位操作还对其他一些存放器有影响,它们的复位状态如表 3-4 所示。表 3-4 一些存放器的复位状态 存放器 复位状态 存放器 复位状态 PC 0000H TCON 00H ACC 00H TL0 00H PSW 00H TH0 00H SP 07H TL1 00H DPTR 0000H TH1 00H P0-P3 FFH SCON 00H IP*000000B SBUF 不定 IE 0*000000B PCON 0*0000B TMOD 00H (
32、2)复位信号及其产生 RST 引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续 24 个振荡周期(即二个机器周期)以上。假设使用颇率为 6MHz 的晶振,则复位信号持续时间应超过 4us 才能完成复位操作。产生复位信号的电路逻辑如图 3-10 所示。图 3-10 复位信号的电路逻辑图 整个复位电路包括芯片、外两局部。外部电路产生的复位信号(RST)送至施密特触发器,再由片复位电路在每个机器周期的 S5P2 时刻对施密特触发器的输出进展采样,然后才得到部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图
33、3-11a所示。这样,只要电源 Vcc 的上升时间不超过 1ms,就可以实现自动上电复位,即接通电-.z 源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与 Vcc 电源接通而实现的,其电路如图 3-11b所示;而按键脉冲复位则是利用 RC微分电路产生的正脉冲来实现的。其电路如图 3-11c所示。a上电复位 b按键电平复位 c按键脉冲复位 图 3-11 复位电路 上述电路图中的电阻、电容参数适用于 6MHz 晶振,能保证复位信号高电平持续时间大于 2 个机器周期。本系统的复位电路采用图 3-11b按键复位方式。STC89C55 具体介绍如下
34、:主电源引脚2 根 VCC(Pin40):电源输入,接5V 电源 GND(Pin20):接地线 外接晶振引脚2 根*TAL1(Pin19):片振荡电路的输入端*TAL2(Pin20):片振荡电路的输出端 控制引脚4 根 RST/VPP(Pin9):复位引脚,引脚上出现 2 个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部存储器读选通信号 EA/VPP(Pin31):程序存储器的外部选通,接低电平从外部程序存储器读指令,如果接高电平则从部程序存储器读指令。可编程输入/输出引脚32 根 STC89C55 单片机有 4 组 8 位的可编
35、程 I/O 口,分别位 P0、P1、P2、P3 口,每个口有 8 位8 根引脚,共 32 根。PO 口Pin39Pin32:8 位双向 I/O 口线,名称为 P0.0P0.7 P1 口Pin1Pin8:8 位准双向 I/O 口线,名称为 P1.0P1.7 P2 口Pin21Pin28:8 位准双向 I/O 口线,名称为 P2.0P2.7 P3 口Pin10Pin17:8 位准双向 I/O 口线,名称为 P3.0P3.7 STC89C55 主要功能如表 3-5 所示。表 3-5 STC89C55 主要功能 主要功能特性-.z 兼容 MCS51 指令系统 16K 可反复擦写 Flash ROM 3
36、2 个双向 I/O 口 1280*8bit 部 RAM 3 个 16 位可编程定时/计数器中断 时钟频率 0-24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 3.4 键盘电路 键盘电路的设计通常有两种方案。一种是并行接口键盘电路,另一种是串行接口键盘电路。在本设计中,根据 IC 卡读写器的输入需要,选择采用一个 44 的 16 按键矩阵式键盘接口如图 3-12 所示。图 3-12 矩阵键盘 3.5 显示电路 本设计采用液晶显示器。其特点是显示容丰富(可显示汉字),功耗小,
37、可靠性高,电路简单,器件型号为 QC1602-7 如图 3-13 所示。图 3-13 QC1602-7 1602 液晶也叫 1602 字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有假设干个 5*7 或者 5*11 等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形用自定义 CGRAM,显示效果也不好1602LCD是指显示的容为 16*2,即可以显示两行,每行 16 个字符液晶模块显示字符和数字。-.z 目前市面上字符液晶绝大多数是基于 HD44780 液晶芯片的,控制原理是
38、完全一样的,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大局部的字符型液晶。1602 采用标准的 16 脚接口如图 3-14 所示。图 3-14 QC1602-7 引脚图 第 1 脚:VSS 为电源地 第 2 脚:VDD 接 5V 电源正极 第 3 脚:V0 为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高 比照度过高时会 产生鬼影,使用时可以通过一个 10K 的电位器调整比照度。第 4 脚:RS 为存放器选择,高电平 1 时选择数据存放器、低电平 0 时选择指令存放器。第 5 脚:RW 为读写信号线,高电平(1)时进展读操作,低电平(0)时进展写操作。第
39、 6 脚:E(或 EN)端为使能(enable)端。第 714 脚:D0D7 为 8 位双向数据端。第 1516 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。1602 通过 D0D7 的 8 位数据端传输数据和指令。显示模式设置:(初始化)0011 0000 0*38 设置 162 显示,57 点阵,8 位数据接口;显示开关及光标设置:(初始化)0000 1DCB D 显示(1 有效)、C 光标显示(1 有效)、B 光标闪烁(1 有效)0000 01NS N=1(读或写一个字符后地址指针加 1&光标加 1),N=0(读或写一个字符后地址指针减1&光标减 1),S=1 且 N=1(当
40、写一个字符后,整屏显示左移);S=0 当写一个字符后,整屏显示不移动;数据指针设置:数据首地址为 80H,所以数据地址为 80H+地址码(0-27H,40-67H);其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。第4章 软件设计 介绍接触式 IC 卡读写器的程序设计。本设计的所有程序用 C51 语言编写 14,由主程序和子程序组成。其中子程序包括比拟校验数据子程序、插卡子程序、显示中断子程序。-.z 4.1 keil KEIL C51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,他为能嵌入汇编语言保存了汇编代码高效,快速的
41、特点。KEIL C51 编译器的功能不断增强,使你可以更加贴近 CPU 本身,及其它的衍生产品,其效率已经到达了相当搞的程度。C51 已被完全集成到 uVision2 的集成开发环境中,这个集成开发环境包含:编译器、汇编器、实时操作系统、工程管理器、调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM 语言和 C 语言的程序设计,界面友好,易学易用。4.2 主函数程序 void main()uchar i;inte1602();ICVCC_ctr=0;/断开 IC 供电 whi
42、le(IC_key)lcd1602str(Please insert IC_card,1);ICVCC_ctr=1;/IC 上电 while(1)i=key_press();if(i=1)hkey=key_scan();if(hkey=15)/写卡标志 F 键 MODE=1;if(MODE=0)ReadIc();if(MODE=1)veripswd();if(MODE=2)WrIc();主程序流程图如图 4-1 所示。-.z 图 4-1 主程序流程图 4.3 插卡程序 当系统检测到有卡插入时,这时进入插卡子程序。在单片机的控制下给IC 卡供电,并且指示灯亮,插卡流程图如图 4-2 所示。图 4
43、-2 插卡流程图 4.4 校验密码程序 4字节E2PROM 型加密存储器,第0字节为密码输入错误计数器(EC),低三位有效,该字节可读。EC芯片初始化时设置成111,密码校验出错1次,便减掉一个1。假设计数器值为0,则卡自动锁死,数据只可读出,不可再进展密码校验,因而无法再进展更改。当计数器不为零时密码校验正确,在下次上电时,密码计数器恢复初始值3。EC的1,2,3 字节为参照字存储区。该3字节称为可编程加密代码(PSC)。其读出,写入和擦除均受自身比拟操作结果的控制。校验通过后,至卡下电一直有效。校验通过后密码本身可更改。该命令的执行流程如图4-3所示。图 4-3 校验密码流程图 开始有按键值?读按键值按键值为F?MODE=1校验密码返回N Y-.z 4.5 写卡程序 SLE4442 卡在写之前需要校验密码,如果密码不正确,则不能够进展写入操作。每一 SLE4442 卡密码计数器为 111,当输入错误一次后计数器自动把其中一位置 0,当连续 3 次未输入正确密码之后计数器变成 000,IC 卡变成一个只读存储器,不能够对其进展写入操作。当一次密码输入正确之后计数器被恢复为 111。当密码校验正确后,就可以对 IC 卡进展写卡操作,写卡流程图如图 4-4 所示。图 4-4 写卡流程图 开始MODE=2?写IC卡返回YN
限制150内