基于单片机的IC卡读卡器设计第1章绪论本章介绍了IC卡的发展历史和应用情况,说明了现代IC卡技术的基础知识,最后分析了目前常见的IC卡读写器终端,并提出了本课题中IC卡读写器的设计目标。1.1IC卡的发展和使用应用情况卡片是作为个人身份识别的手段而引进的,而作为交易凭证的卡片则早在19世纪80年代就萌芽于英国了,1950年,美国商人设计了第一张现代的塑料信用卡,1951年美国富兰克林银行作为金融机构率先发行了信用卡,到60年代中期,人们在塑料金融交易卡的背面贴上磁条,发展成为能够自动读取信息进行在线处理的磁卡,磁卡因为结构简单,价格低廉,得到迅速推广。IC卡是近年从欧洲开始出现的,IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)、和Security(安全性)。因而发展迅速,在金融、通讯、交通等众多领域中后来居上,即使那些磁卡已经普及应用的范围也将被取而代之。IC卡不仅改变了现有多种卡的使用方法和功能作用,还不断开创出新的应用领域。将IC卡和其他设备组成系统就能提供非常丰富的服务功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。随着信息技术的发展,IC卡作为一种先进的信息存储介质,它的应用己经渗透到各国的经济、社会生活、军事等各个方面,将来更有着广阔的发展空间。1.2IC卡应用技术IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用范围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使IC卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。IC卡虽然有很强的功能,但仅当IC卡加入到应用系统中,构成发行商、应用系统和持卡人之间的数据传输媒介时,才能有效地发挥其优势。一个好的IC卡应用系统,应具备良好的应用特性和性能价格比,还要有好的安全特性。IC卡最初是为了解决金融交易中的安全性问题而设计的,它带来全新的交易概念与巨大的优势。IC卡在应用中的技术优势在于良好的机器读写能力、共同认可的安全防范技术和相对较大的数据存储能力。1.良好的机器读写性能便于人—机—卡之间的会话IC卡是一种电路卡,它在机器读写性能上远优于磁卡和光卡,无需往复的机械动作即可完成人—机—卡之间的多次会话过程,使卡在应用时更容易进行操作与相互验证,给卡的应用开发者和使用者都带来了极大的便利。2.良好的安全防范技术是卡能够脱离网络使用IC卡采用了为国际上各种开发者与使用者所共同认可的半导体密码存放于软件加密技术,它可以有效地阻止卡的非法复制与数据的篡改。应用设备可以在脱离网络的情况下,不需要人工干预,即可对IC卡进行鉴别,以确定该卡是否是本系统所许可的,是否可在该应用场合中使用等。通过持卡人输入PIN,与卡内一组密码比较,可以确认持卡人的身份。这些特点使IC卡能成为传导媒体,再加上认证和数据加密等功能,使卡能够脱离网络使用。3.大容量的数据存储能力使IC卡成为数据媒体在一个应用系统使用中,系统必须对所有持卡人建立一份身份与使用的档案。在磁卡系统中,这组档案存放在中心数据库系统内,持卡人每次使用都需通过终端,以网络形式从数据库系统中提出那份与自己相关的档案。现在IC卡的存储能力增加了,这份相关信息可以存放在IC卡中,终端设备交易的实时性明显改善,使用的灵活性也大大增加。IC卡三大特点的结合,构成了IC卡应用的强大优势,它一方面降低了对网络的依赖程度,提高了相应速度;另一方面对发行商、应用商和持卡者三方面的利益提供了有效的保护手段,为IC卡的广泛应用铺平了道路。IC卡应用范围相当广泛,这里仅根据现有的应用提供部分应用领域。(1)应用于金融领域,可以作为信用卡、现金卡、证券卡或电子资金转账卡等。(2)可以作为身份证明卡使用,如身份证、驾驶执照、会员卡等。(3)在医疗、保健等领域,IC卡可以用于健康卡、少儿疫苗卡、就诊卡等。(4)在商业及服务领域,可以用IC卡作为优惠卡、结算卡、服务卡等。(5)在交通领域,可以用IC卡取代公交或地铁月票,可以改变原有对月票的当月有效限制为有效次数限制。还可用于公路付费和停车付费等场合。(6)IC卡电话卡,这是至目前为止IC卡用量最大的一种应用.用IC卡公用电话替代磁卡电话与投币电话即可杜绝欺诈行为,又可省去携带零钱所带来的麻烦。(7)IC卡在门禁系统、设备使用等情形中,以钥匙卡的形式出现,使“锁”有了新的一个层次定义。(8)IC卡还可集各种服务功能于一身,如企业的员工卡、校园“一卡通”等即属此类,持卡人可以用卡进行考勤、开门、就餐、借阅图书等。1.3课题的建立以及本文完成的主要工作本文主要包括以下内容:1.总体方案的构思2.画出各模块电路图3.元器件的选取与购买4.正确焊接接硬件电路5.软件设计中完成写主存储器、写保护存储器、写密码和校验密码操作6.完成SLE4442复位应答调试第2章方案论证方案一选用飞思卡尔单片机MC9S12D64做为主控芯片,该芯片是一款性能优良的单片机,包含一个16位中央处理单元、64KBFlash、4KBRAM、1KBE2PROM、一个I2C接口、一个同步串行接口和两个异步串行通信接口等丰富资源,能够满足系统设计的需求。具体方案如图2-1所示。图2-1MC9S12D64的总体设计方案方案二选用STC89C55RD+做为主控芯片,STC89C55是一种带16K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,具体方案如图2-2所示。图2-2STC89C55的总体设计方案显示键盘输入控制器Stc89c55RD+PC通信IC卡SLE4442SLE4442IC卡主机主控芯片MC9S12D64电源电路复位电路时钟电路RS232通信模块IC接口2因为这个设计需要用到的单片机引脚不多,对单片机配置也要求不高;飞思卡尔单片机MC9S12D64功能太强大价格也比较昂贵,综合考虑选择比较熟悉的STC89C系列单片机是比较合理的。第3章硬件设计所设计的读写器以STC89C55RD+单片机为核心,配以IC卡接口电路、串行通信电路、存储电路、键盘输入电路和液晶显示电路等部分。通过读写器插槽与IC卡芯片通信,由STC89C55RD+单片机控制数据传输过程,实现读卡和写卡操作。系统的总体电路图如图3-1所示。图3-1系统总体电路图系统总体设计框图如图3-2所示。图3-2系统总体框图3.1IC卡芯片选择IC卡集成电路卡(IntegratedCircuitCard)的简称1,有些国家和地区称之为微芯片卡(Microchipcard)或微电路卡(MicrocircuitCard)。IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是不易挥发性存储器(ROM,EPROM.EPROM),保护逻辑电路,甚至于CPU。本节介绍IC卡的一些基本知识,使读者对IC卡有一个大概的了解。由于本设计所采用的IC卡为接触型逻辑加密卡(SLE4442),所以本节的内容重点介绍此卡。SLE4442是由德国西门子公司设计的逻辑加密存储卡。它具有2K位的存储容量和完全独立的可编程加密代码存储器。内部电压提升电路保证了芯片能够以单5V电压供电,较大的存储器容量能够满足应用领域的各种要求。是目前国内应用较多的一种IC卡芯片。3.1.1芯片特点1.面向字节寻址;2.采用多存储器结构:主存储器、保护型存储器、加密存储器;3.线连接协议,触点和串行接口满足ISO7816同步传送协议;4.芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms;5.复位响应(ATR)符合ISO/IEC7816-3协议;6.存储器采用至少10000次的擦除/写入周期,数据保持时间至少为10年;7.额外特性:数据仅能在正确输入24位可编程安全码(安全存储器)之后才能改变。显示键盘输入控制器Stc89c55RD+PC通信IC卡SLE44423.1.2芯片的引脚配置芯片的引脚与国际标准兼容,引脚的定义和功能说明如表3-1所示。表3-1SLE4442引脚功能引脚卡触点符号功能12345678C1C2C3C4C5C6C7C8VCCRSTCLKNCGNDNCI/ONC操作电压5V复位时钟未用地未用双向数据线(漏极开路)未用3.1.3芯片功能SLE4442IC卡芯片主要包括三个存储器:256×8位EEPROM型主存储器、32×1位PROM型保护存储器和4×8位EEPROM型加密存储器2。1.主存储器主存储器为可重复擦除使用的EEPROM型存储器。按字节寻址,擦除写入。在擦除时,一个数据字节的所有8位被全部置“1”。在写入时,在EEPROM单元中的信息则根据输入的数据,按字位方式变换成逻辑“0”(即在EEPROM中,新写入的数据与原来存在的数据进行“逻辑与”)。通常,要改变一个数据需要先进行擦除再进行写入两项操作。如果在被寻址的字节中8位没有一个字位需要从0变为1,则可以不进行擦除处理。反之亦然,在被寻址的字节中,如果没有一个字节需要从1变为0,则可以不做写入处理,写入或擦除操作一次至少耗费2.5ms时间。主存储器的地址是从00H到FFH。但主存储器可分为两个数据区:保护数据区和应用数据区,保护数据区是主存储器前32个字节数据区。其地址是从0(00H)到31(1FH)这部分的数据读出不受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。当保护存储器中第N位为0时,则对应主存储器中第N个字节就不允许进行擦除和写入操作。故保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数。应用数据区为主存储器后224个字节。其地址从32(20H)到255(FFH)。这部分的数据读出不受限制,但擦除和写入受控于加密存储器数据校验比较结果的影响。当需要修改应用数据区的内容时,必须首先输入一个3字节长的“校验字”。这个新输入的“校验字”与原来存在在加密存储器中的“参照字”进行一对一的比较。只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。芯片允许在有限的次数内重试比较操作。如果在连续三次比较失败之后,芯片的错误计数器计数到“0”,并将锁死主存储器,禁止随后的任何比较操作和写入擦除操作。这时整个主存储器变成一个只读存储器。芯片中各存储器的内容不能再改变。2.保护存储器保护存储器是一个32×1位的一次性可编程只读存储器(PROM)。它是按字位方式寻址和写入。保护存储器从0~32的每一位对应着主存储器地址从0到31的字节。因此可以理解为每个字节单元的控制熔丝。从出厂到被初始化之前,保护存储器的状态为全“1”。从控制方面来说,保护存储器的内容只能从“1”写成“0”而不能从“0”擦除成“1”。保护存储器每个被写“0”的单元所对应控制的主存储器的字节单元将不再接收任何擦除和写入命令,从而使得该字节单元的数据不可再改变。从使用方面来讲,如果需要防止一些固定的标识参数被改动,可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写位“0”,从而使这一部分单元中的参数内容永远不可更改。保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内的“参照字”一致,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将闭锁保护存储器。3.加密存储器加密存储器是一个4×8位的EEPROM型存储器。在这个存储器中,第0字节为“密码输入错误计数器”(EC)。密码输入错误计数器的有效位是低3位。在芯片初始化时,计数器设置成111。这一字节是可读的。每次比较密码时,先判断计数器中是否还有“1”。如果还有“1”,则将其中一个“1”写成“0”,然后进行比较“校验字”操作。如果比较结果一致,密码错误计数器将允许进行擦除操作(芯片不能自动进行擦除操作),同时打开