1、基于单片机的IC卡读卡器设计毕业设计论文毕业设计论文基于单片机的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良好的机器读写性能便于人机卡之间的会话IC卡是一种电路卡,它在机器读写性能上远优于磁卡和光卡,无需往复的机械动作即可完成人机卡之间的多次会话过程,使卡在应用时更容易进行操作与相互验证,给卡的应用开发者和使用者都带来了极大的便利。2 良好的安全防范技术是卡能够脱离网络使用IC卡采用了为国际上各种开发者与使用者所共同认可的半导体密码存放于软件加密技术,它可以有效地阻止卡的非法复制与数据的篡改。应用设备可以在脱离网络的情况下,不需要人工干预,即可对IC卡进行鉴别,以确定该卡是否是本系统所许可的,是否可在该应用场合中使用等。通过持卡人输入PIN,与卡内一组密码比较,可以
5、确认持卡人的身份。这些特点使IC卡能成为传导媒体,再加上认证和数据加密等功能,使卡能够脱离网络使用。3 大容量的数据存储能力使IC卡成为数据媒体在一个应用系统使用中,系统必须对所有持卡人建立一份身份与使用的档案。在磁卡系统中,这组档案存放在中心数据库系统内,持卡人每次使用都需通过终端,以网络形式从数据库系统中提出那份与自己相关的档案。现在IC卡的存储能力增加了,这份相关信息可以存放在IC卡中,终端设备交易的实时性明显改善,使用的灵活性也大大增加。IC卡三大特点的结合,构成了IC卡应用的强大优势,它一方面降低了对网络的依赖程度,提高了相应速度;另一方面对发行商、应用商和持卡者三方面的利益提供了有
6、效的保护手段,为IC卡的广泛应用铺平了道路。IC卡应用范围相当广泛,这里仅根据现有的应用提供部分应用领域。(1) 应用于金融领域,可以作为信用卡、现金卡、证券卡或电子资金转账卡等。(2) 可以作为身份证明卡使用,如身份证、驾驶执照、会员卡等。(3) 在医疗、保健等领域,IC卡可以用于健康卡、少儿疫苗卡、就诊卡等。(4) 在商业及服务领域,可以用IC卡作为优惠卡、结算卡、服务卡等。(5) 在交通领域,可以用IC卡取代公交或地铁月票,可以改变原有对月票的当月有效限制为有效次数限制。还可用于公路付费和停车付费等场合。(6) IC卡电话卡,这是至目前为止IC卡用量最大的一种应用.用IC卡公用电话替代磁
7、卡电话与投币电话即可杜绝欺诈行为,又可省去携带零钱所带来的麻烦。(7) IC卡在门禁系统、设备使用等情形中,以钥匙卡的形式出现,使“锁”有了新的一个层次定义。(8) IC卡还可集各种服务功能于一身,如企业的员工卡、校园“一卡通”等即属此类,持卡人可以用卡进行考勤、开门、就餐、借阅图书等。1.3 课题的建立以及本文完成的主要工作本文主要包括以下内容:1总体方案的构思2. 画出各模块电路图3. 元器件的选取与购买4. 正确焊接接硬件电路5软件设计中完成写主存储器、写保护存储器、写密码和校验密码操作6. 完成SLE4442 复位应答调试第2章 方案论证方案一 选用飞思卡尔单片机MC9S12D64做为
8、主控芯片,该芯片是一款性能优良的单片机, 包含一个16 位中央处理单元、64 KB Flash、4 KB RAM、1 KBEPROM、一个IC接口、一个同步串行接口和两个异步串行通信接口等丰富资源, 能够满足系统设计的需求。具体方案如图2-1所示。图2-1 MC9S12D64的总体设计方案方案二选用STC89C55RD+做为主控芯片,STC89C55是一种带16K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器
9、制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,具体方案如图2-2所示。图2-2 STC89C55的总体设计方案因为这个设计需要用到的单片机引脚不多,对单片机配置也要求不高;飞思卡尔单片机MC9S12D64功能太强大价格也比较昂贵,综合考虑选择比较熟悉的STC89C系列单片机是比较合理的。第3章 硬件设计所设计的读写器以STC89C55RD+单片机为核心,配以IC卡接口电路、串行通信电路、存储电路、键盘输入电路和液晶显示电路等部分。通过读写器插槽与IC卡芯片通信,由STC89C55RD+单片机控制数据传输过程,实现读卡和写卡操作。系统的总体电路图如图3-1所示。图3-1系统总体电
10、路图 系统总体设计框图如图3-2所示。 图3-2系统总体框图3.1 IC卡芯片选择IC卡集成电路卡(IntegratedC ircuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip card)或微电路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是不易挥发性存储器(ROM, EPROM. EPROM),保护逻辑电路,甚至于CPU。本节介绍IC卡的一些基本知识,使读者对IC卡有一个大概的了解。由于本设计所采用的IC卡为接触型逻辑加密卡(SLE4442),所以本节的内容重点介绍此卡。SLE4442是由德国西门子公司设计
11、的逻辑加密存储卡。它具有2K位的存储容量和完全独立的可编程加密代码存储器。内部电压提升电路保证了芯片能够以单5V电压供电,较大的存储器容量能够满足应用领域的各种要求。是目前国内应用较多的一种IC卡芯片。3.1.1 芯片特点1面向字节寻址;2采用多存储器结构:主存储器、保护型存储器、加密存储器;3线连接协议,触点和串行接口满足ISO7816同步传送协议;4芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms;5复位响应(ATR)符合ISO/IEC7816-3协议;6存储器采用至少10 000次的擦除/写入周期,数据保持时间至少为10年;7额外特性:数据仅能在正确输入24位可编程安全码
12、(安全存储器)之后才能改变。 3.1.2 芯片的引脚配置芯片的引脚与国际标准兼容,引脚的定义和功能说明如表3-1所示。表3-1 SLE4442引脚功能引脚卡触点符号功能12345678C1C2C3C4C5C6C7C8VCCRSTCLKNCGNDNCI/ONC操作电压5V复位时钟未用地未用双向数据线(漏极开路)未用3.1.3 芯片功能SLE4442IC卡芯片主要包括三个存储器:2568位EEPROM型主存储器、321位PROM型保护存储器和48位EEPROM型加密存储器。1主存储器主存储器为可重复擦除使用的EEPROM型存储器。按字节寻址,擦除写入。在擦除时,一个数据字节的所有8位被全部置“1”
13、。在写入时,在EEPROM单元中的信息则根据输入的数据,按字位方式变换成逻辑“0”(即在EEPROM中,新写入的数据与原来存在的数据进行“逻辑与”)。通常,要改变一个数据需要先进行擦除再进行写入两项操作。如果在被寻址的字节中8位没有一个字位需要从0变为1,则可以不进行擦除处理。反之亦然,在被寻址的字节中,如果没有一个字节需要从1变为0,则可以不做写入处理,写入或擦除操作一次至少耗费2.5ms时间。主存储器的地址是从00H到FFH。但主存储器可分为两个数据区:保护数据区和应用数据区,保护数据区是主存储器前32个字节数据区。其地址是从0(00H)到31(1FH)这部分的数据读出不受限制,但擦除和写
14、入操作均受到保护存储器内部数据状态的限制。当保护存储器中第N位为0时,则对应主存储器中第N个字节就不允许进行擦除和写入操作。故保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数。应用数据区为主存储器后224个字节。其地址从32(20H)到255(FFH)。这部分的数据读出不受限制,但擦除和写入受控于加密存储器数据校验比较结果的影响。当需要修改应用数据区的内容时,必须首先输入一个3字节长的“校验字”。这个新输入的“校验字”与原来存在在加密存储器中的“参照字”进行一对一的比较。只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。芯片允许在有限的次
15、数内重试比较操作。如果在连续三次比较失败之后,芯片的错误计数器计数到“0”,并将锁死主存储器,禁止随后的任何比较操作和写入擦除操作。这时整个主存储器变成一个只读存储器。芯片中各存储器的内容不能再改变。2保护存储器保护存储器是一个321位的一次性可编程只读存储器(PROM)。它是按字位方式寻址和写入。保护存储器从032的每一位对应着主存储器地址从0到31的字节。因此可以理解为每个字节单元的控制熔丝。从出厂到被初始化之前,保护存储器的状态为全“1”。从控制方面来说,保护存储器的内容只能从“1”写成“0”而不能从“0”擦除成“1”。保护存储器每个被写“0”的单元所对应控制的主存储器的字节单元将不再接
16、收任何擦除和写入命令,从而使得该字节单元的数据不可再改变。从使用方面来讲,如果需要防止一些固定的标识参数被改动,可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写位“0”,从而使这一部分单元中的参数内容永远不可更改。保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内的“参照字”一致,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将闭锁保护存储器。3加密存储器加密存储器是一个48位的EEPROM型存储器。在这个存储器中,第0字节为“密码输入错误计数器”(EC)。密码输入错误计数器的有效位是低3位。在
17、芯片初始化时,计数器设置成111。这一字节是可读的。每次比较密码时,先判断计数器中是否还有“1”。如果还有“1”,则将其中一个“1”写成“0”,然后进行比较“校验字”操作。如果比较结果一致,密码错误计数器将允许进行擦除操作(芯片不能自动进行擦除操作),同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。如果比较结果不一致,则密码错误计数器中为“1”的个数将减少一位。只要计数器的内容不全为0,则芯片的比较“校验字”操作还允许进行。当密码计数器减数为零,则芯片的存储单元将全部锁死。加密存储器的第1,2,3字节为“参照字”存储区。这3个字节的内容作为一个整体披称为可编程加密代码(PS
18、C)。值得注意的是:这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。而“写入、擦除”操作也受自身“比较”操作结果的控制。只有当“比较”成功,加密存储器各字节内容才可以进行读出、写入和擦除。3.1.4 SLE4442芯片传送协议传送协议是在接口设备IFD与IC卡的集成电路之间的两线连接协议,SLE4442芯片的协议类型为S=10(同步卡协议)。I/O线上数据变化只在CLK信号的下降沿才有效。传送协议包括4种模式:复位和复位响应命令模式输出数据模式处理模式1复位和复位响应复位响应是根据ISO 7816-3标准来进行的。在操作期间的任何时候都可以复位,只有经过了复位才能对IC卡进行其
19、他操作。开始时地址计数器随一个时钟脉冲而被设置成0。当RST线从H状态置到L状态时,第一个数据位的内容被送到I/O线上。若连续输入32个时钟脉冲,主存储器中的前4个字节地址单元中的内容被读出。在第33个时钟脉冲的下降沿,I/O线被置成H状态而关闭。芯片复位即复位响应的时序关系如图3-3所示。在复位响应期间,“启动”和“停止”(见下面)状态被忽略。 图3-3芯片复位即复位响应的时序关系2命令模式 复位响应之后,芯片等待着命令。每条命令都以一个“启动状态”开始。整个命令包括三个字节(命令含义后面解释)。随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。命令模式时序关系如图3-4所示。启动状态:
20、在CLK为H状态期间,I/O线的下降沿为启动状态。停止状态:在CLK为H状态期间,I/O线的上升沿为停止状态。在接受一个命令之后,有两种可能的模式:输出数据模式(即读数据模式)和处理数据模式。图3-4命令模式时序关系3输出数据模式这种模式是将IC卡芯片中的数据传送给外部接口设备的一种操作。输出数据模式的时序关系如图3-5所示。在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。其输出的顺序是从每个字节的最低位开始。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O线置成H状态,以便准备接受新的命令。在输出数据
21、期间,任何“启动状态”和“停止状态”均被屏蔽掉。图3-5输出数据模式的时序关系4处理数据模式这种模式是对IC卡芯片做内部处理。处理数据模式的时序关系如图3-6所示。在第一个时钟脉冲的下降沿将I/O从H状态拉为L状态并开始处理。此后芯片在内部连续计时计数,直到第N个时钟脉冲之后的附加时钟脉冲的下降沿I/O线被再次置高,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态。图3-6处理数据模式的时序关系3.1.5 芯片的操作命令 1命令的格式每条命令包含三个字节,其顺序如表3-2所示。表3-2命令顺序MSB控制字 LSBMSB地址字 LSBMSB数据字 LSBB7 B6 B5 B4 B3 B
22、2 B1 B0A7 A6A5 A4 A3 A2 A1 A0D7 D6 D5 D4 D3 D2 D1D0命令的传送总是从控制字节开始。首先传送字节的最低位LSB(即B0)。控制字节传送完毕以后,依次传送地址字节和数据字节,传送顺序均从各字节最低位开始。在最后一位D7传送完成之后,需要增加一个附加脉冲把I/O线置成高状态。SLE4442芯片具有七种命令,其格式和功能如表3-3所示。表3-3命令格式及功能字节1(控制)字节2(地址)字节3(数据)功能命令模式30H38 H34 H3B H31 H39 H33 H地址数地址数无效地址数无效地址数地址数无效输入数据无效输入数据无效输入数据输入数据读存储器
23、修改存储器读保护存储器写保护存储器读加密存储器修改加密存储器比较校验数据输出数据模式处理模式输出数据模式处理模式输出数据模式处理模式处理模式2有关命令的说明(1) 读主存储器:该命令是指读出主存储器的内容。该命令的控制字为(30H)。对于每个字节来说总是从最低位开始读出。从给定的字节地址(N)开始,直到整个存储器的末尾。在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲。对于从地址(N)开始读数据所需要的时钟脉冲的数量M=(256-N)8+1。对主存储器做读操作不受限制。(2) 读保护存储器:该命令的控制字为(34H)。在连续输入32个时钟脉冲情况下,芯片将保护存储器内各位内容传送到I/O
24、线上。最后一个附加时钟将I/O线置为H状态。对保护存储器进行读取操作不受限制。(3) 读加密存储器:该命令类似于读保护存储器那样,可以读出4个字节的加密存储器的内容。在输出数据模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高状态。如果可编程加密代码(PSC)的校验不成功(除第0字节可读除外),I/O线总保持低状态。(4) 修改主存储器:该命令就是根据所传送地址字节数据,寻址主存储器的EEPROM字节,然后修改字节内容。该命令的控制字为(38H)。在处理模式期间,可能有几种情况:擦除和写入至少需要5ms;只写入不擦除,至少需要2.5ms;只擦除不写入,至少需要2.5ms。
25、(5) 修改加密存储器:该命令是根据所传送的字节数和要修改的数据,将加密存储器中相应字节的内容进行修改。该命令的控制字为(39H),该命令只能在可编程加密代码 (PSC)比较成功之后才能进行。该命令的执行时间和所需的时钟脉冲与修改主存储器的情况相同。(6) 写保护存储器:这一命令的执行过程包括一个把被输入的数据与在EEPROM中对相应数据进行比较的过程。在确认一致的情况下,保护字位被写0。从而使得主存储器中的信息不可更改。如果数据比较结果不一致,则保护字位的写操作将被禁止。该命令所需时钟脉冲和执行时间与修改主存储器命令的情况相同。3.2 CD4066 CD4066 的每个封装内部有4 个独立的
26、模拟开关,每个模拟开关有输入、输出、控制三个端子,其中输入端和输出端可互换。当控制端加高电平时,开关导通;当控制端加低电平时开关截止。模拟开关导通时,导通电阻为几十欧姆;模拟开关截止时,呈现很高的阻抗,可以看成为开路。模拟开关可传输数字信号和模拟信号,可传输的模拟信号的上限频率为40MHz。各开关间的串扰很小,典型值为50dB。CD4066是四双向模拟开关,主要用作模拟或数字信号的多路传输。引出端排列与CC4016一致,但具有比较低的导通阻抗。另外,导通阻抗在整个输入信号范围内基本不变。CD4066由四个相互独立的双向开关组成,每个开关有一个控制信号,开关中的p和n器件在控制信号作用下同时开关
27、。这种结构消除了开关晶体管阈值电压随输入信号的变化,因此在整个工作信号范围内导通阻抗比较低。与单通道开关相比,具有输入信号峰值电压范围等于电源电压以及在输入信号范围内导通阻抗比较稳定等优点。当模拟开关的电源电压采用双电源时,例如 =5V, =5V(均对地0V而言),则输入电压对称于0V的正、负信号电压(5V5V)均能传输。这时要求控制信号C=“1”为+5V,C=“0”为-5V,否则只能传输正极性的信号电压。元件电路管脚图如图3-7所示图3-7 CD4066管脚图3.3 单片机STC89C55是一种带16K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and
28、Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。单片机总控制电路图如图3-8所示。图3-8单片机总控制电路 1时钟电路STC89C55内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3-9(a) 所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.
29、212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图3-9(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路 (b)外部方式时钟电路图3-9时钟电路2复位及复位电路(1) 复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境
30、,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表3-4所示。表3-4一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2) 复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才
31、能完成复位操作。产生复位信号的电路逻辑如图3-10所示。图3-10复位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图3-11(a)所示。这样,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图3-11(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。其电路如图3-11(c)所示。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1