基于单片机的IC卡读写系统设计论文.doc
基于单片机的IC卡读写系统设计18 / 22 摘 要 随着社会的发展和现代化程度的不断发展,我们人类的信息数量和种类都在加倍地增长,每天都要处理很多和个人有关的信息,而这些信息管理非常不便。因此,在现实生活中IC卡的应用围十分广泛,它有助于我们解决问题。IC卡读写系统是IC卡和计算机之间的传输媒介载体,它与计算机之间通过串行口相接,接触式IC卡是IC卡领域的一项新技术,它是射频识别技术和IC卡技术相结合的产物。重点介绍系统硬件工作原理,并给出和介绍了SLE4442系列IC卡的部结构和原理图,阐述了本次毕业设计所采用的各硬件接口技术和各个接口模块的功能与工作过程。 关键词:单片机;IC卡;读写系统目录1 硬件设计思路22 硬件论证方案23 硬件各模块的设计43.1 89C2051单片机的简介43.3 SLE4442IC卡的简介124 传送协议154.1 复位和复位响应154.2 命令模式154.3 输出数据模式164.4 处理数据模式175 SLE4442卡的应用185.2 芯片的复位方式185 .2 芯片的操作命令格式185.3 SLE4442卡的接口技术196 IC卡的接口电路206.1 IC卡的插入/退出识别与上电/下电控制技术:211 硬件设计思路IC卡的应用领域非常广泛。在IC卡的触点和读/写设备的触点良好接触之前,读/写设备不应对IC卡施加有关信号,以免造成不可预料的损坏。IC卡读/写设备作为系统和用户交换的接口,必将面对各种各样复杂的应用环境。因此,在设计阶段应注意IC卡读/写设备环境。作为操作系统,管理IC卡的硬件资源和数据资源是其基本任务.IC卡上的硬件资源包括CPU,ROM,EEPROM和RAM与通讯接口,这些都由IC卡上操作系统统一管理, 使外部不能直接控制这些资源,使IC卡对外表现为一个"黑匣子",从而加强了系统的性能. 智能卡通讯管理主要功能是执行智能IC卡的信息传送协议, 接收读写器发出的指令,并对指令传递是否正确进行判断.一般可采用奇偶检,CRC校验等方式判断传输错误.对于采用分组传输协议的系统, 还可以通过分组长度变化来检出错误。智能卡操作系统最重要的功能之一就是数据安全管理. 这可以具体地分为用户与IC卡的鉴别,核实功能以与对传输数据的加密与解密操作. 智能IC卡COS的应用管理功能是对读写器发来的命令进行判断,译码和处理. 智能卡的各种应用以专有文件形式存在卡上,各专有文件则是由IC 卡的指令系统中指令排列所组成的."鉴别"是指对IC卡本身的合法性进行验证,判定一IC卡是不是伪造的.如在前两讲中谈到的多采用多种卡上设置的读,写,擦除密码作为防伪的基本手段.而COS由于可以通过部软件运行来完成密码转换,因此智能IC 卡上实际写入的密码无法被读写器直接读取,安全性能更强.IC卡由于其高存储量和高性,应用领域十分广泛,除覆盖了传统磁卡的全部功能外,还拓展到许多磁卡不能胜任的领域。2 硬件论证方案IC卡是一种集成电路卡,它的读/写设备是每个IC卡应用系统必不可缺的周边设备。该设备通过IC卡的8个触点向IC卡提供电源并与IC卡相互交换信息。虽然IC卡是从磁卡发展而来的。 本IC卡读/写器的硬件系统设计主要有:IC卡的插拔检测,IC卡的电源控制,IC 卡与CPU的接口以与必要的人机界面。软件系统主要由IC卡数据读/写模块,串行通信模块等组成。SLE4442是德国SIMENS公司设计的逻辑加密存储卡。它具有2K位的存储容量和完全独立的可编程代码存储器。部电压提升电路保证了芯片能够以单一+5V电压供电,较大的存储容量能够满足通常应用领域的各种需要,因此是目前国应用较多的一种IC卡芯片。芯片采用;多存储器结构,2线连接协议(串行接口满足ISO7816同步传输协议),NMOS工艺技术,每字节的擦除/写入编程时间位。2。5MS。存储器具有至少10000次的擦写周期,数据保持时间至少10以上。根据IC卡应用系统的这种典型结构,开发者的主要工作包括:(1) 设计和构造应用系统中心数据库,对应用IC卡管理的数据进行分类存储和管理.由于数据库一般建立在小型机或微机网络服务器上,一般在相应环境中开发设计.(2)对IC 卡上数据的存储格式,读写方式,加密和安全保护方式进行规划和设计.这些可借助IC 卡读写器和微机的开发系统来完成.(3)构造IC卡应用环境,建立网络和读写工作站.作为IC卡系统中的发卡站和结算站,可以采用带联机读写器的小型机或微机.系统设计环境可以是WINDOWS下的VB,FOXPOR,ACCESS等软件,一般利用读写器厂家提供的接口函数与数据库软件接口.用户刷卡使用的工作站可以采用PC机加联机读写器组成,需进行用户界面设计,能够提供较友好的用户界面.也可以使用便携式的脱机工作站, 一般由单片机系统组成,带有液晶显示器和小型键盘.这种读写器的用户接口软件, 也需在专用的单片机系统中开发. 因此,一个IC卡应用系统的设计工作除了包括各站点的硬件配置,系统联网, 系统数据库构建和管理软件编程,各工作站用户接口软件的编程外,还包括IC卡上数据规划与初始分区和数据写。3 硬件各模块的设计3.1 89C2051单片机的简介本读写器以ATMEL89C2051为核。此型号的单片机是一种低消耗,高性能的8位CMOS微处理芯片。片带有2KB的闪烁可编程与可擦除只读存储器,与工业标准的80C51指令集相兼容,DIP20封装。片上的PEROM准许在线对程序存储器重新编码,也可用常规的非易挥发存储芯片编程。它的特点可归纳为:1.与MCS-51产品兼容;2.2KB的在线可重复编程闪烁存储器;:寿命:1000次写/擦除周期,数据保存期10年;3.宽工作电压:围VCC=2.76V;4.全静态工作方式:024MHZ;5.3级程序存储器锁定;6.256*8位部RAM;7.32条可编程I/O口线;8.3个16位定时/计数器;9.5个中断源;10.可编程串行中断;11.低功耗的闲置与掉电模式。复位状态: MCS51单片机复位后, 程序计数器PC和特殊功能寄存器复位的状态如表所示。 复位不影响片RAM存放的容, 而ALE、PSEN在复位期间将输出高电平。由表可以看出: (1) (PC)=0000H 表示复位后程序的入口地址为0000H; (2)(PSW)=00H, 其中RS1(PSW.4)=0, RS0(PSW.3)=0, 表示复位后单片机选择工作寄存器0组; (3)(SP)=07H 表示复位后堆栈在片RAM的08H单元处建立;(4)P0口P3口锁存器为全1状态, 说明复位后这些并行接口可以直接作输入口, 无须向端口写1; (5) 定时器/计数器、 串行口、 中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响。(表 格1)上电复位: (图1)AT89C2051结构:AT89C2051是一个有20个引脚的芯片,引脚配置如图. 与8051部结构进行对比后可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减小。AT89C2051芯片的20个引脚功能为:1.VCC 电源电压;2.GND 接地;3: RST复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。 引脚结构:(图2)XTAL1反向振荡放大器的输入与部时钟工作电路的输入。XTAL2来自反向振荡放大器的输出。P1口8位双向I/O口。引脚P1.2P1.7提供部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流(IIL),这是因部上拉的缘故。 P3口引脚P3.0P3.5与P3.7为7个带部上拉的双向I/O引脚。P3.6在部已与片比较器输出相连,不能作为通用I/O引脚访问。P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断)P3.3INT1(外部中断)P3.4T0(定时器0外部输入)(表 格 2)单片机部,外部振荡电路: 图(3)单片机存储器分类与配置: MCS51单片机存储器的分类从物理结构上可分为: 片、 片外程序存储器(8031和8032没有片程序存储器)与片、 片外数据存储器4个部分; 从寻址空间分布可分为: 程序存储器、 部数据存储器和外部数据存储器3大部分; 从功能上可分为: 程序存储器、 部数据存储器、 特殊功能寄存器、 位地址空间和外部数据存储器5大部分。 (a)程序存储器; (b)内部数据存储器; (c)外部数据存储器(图4)特殊功能寄存器(SFR):AT89C2051中特殊功能寄存器描述,它们共占用了19字节,其功能与8051SFR功能相对应。程序存储器的加密:AT89C2051片有2个锁定位,可以编程(P),也可以不编程(U),从而得到3种锁定位保护模式。(表格3)部结构: (图5)低功耗工作方式:AT89C2051有两种低功耗工作方式:空闲方式与掉电方式。 (1) 空闲方式(休眠方式):当利用软件使空闲方式位IDL(PCON.0)=1时,单片机进入空闲方式。此时,CPU处于休眠状态,而片所有其他外围设备保持工作状态,片RAM和所有特殊功能寄存器容保持不变。在空闲方式下,当晶振FOSC=12MHz、电源电压VCC=6V时,电源电流ICC从20mA降至5mA,而VCC=3V时,ICC由5.5mA降至1mA。中断或硬件复位可以终止空闲方式。 当空闲方式由硬件复位终止时,CPU要从休眠处恢复程序的执行,执行2个机器周期后,部复位算法才起作用。此时,硬件禁止访问部RAM,但允许访问端口引脚。为了防止休眠被复位终止时对端口引脚意外写入的可能性,在生成空闲方式的指令后不应紧跟对端口引脚的写指令。如果不采用外部上拉,P1.0和P1.1应置“0”;如果采用外部上拉,则应置“1”。 (2)掉电方式:掉电方式由掉电方式位PD(PCON.1)=1设置。此时,振荡器停止工作,设置掉电方式的指令成为最后执行的1条指令,片RAM和特殊功能寄存器容保持不变。在掉电方式下,VCCMIN=2V。当VCC=6V时,ICCMAX=100A;当VCC=3V时,ICCMAX=20A。退出掉电方式的唯一方法是硬件复位。硬件复位将重新定义特殊功能寄存器,但不影响片RAM。复位的保持时间应足够长,以便振荡器能重新开始工作并稳定下来。在VCC没有恢复到正常工作电压之前,不应进行复位。如果不采用外部上拉,P1.0和P1.1应置“0”,否则置“1”。 3.2和 MAX232芯片简介MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。 MAX220MAX249系列线驱动器/接收器,专为EIA/TIA-232E以与V.28/V.24通信接口设计,尤其是无法提供±12V电源的应用。 这些器件特别适合电池供电系统,这是由于其低功耗关断模式可以将功耗减小到5µW以。MAX225、MAXX233、MAX235以与MAX245/MAX246/MAX247不需要外部元件,推荐用于印刷电路板面积有限的应用。 1.对于低电压、集成ESD应用 MAX3222E/MAX3232E/MAX3237E/MAX3241E/MAX3246E:+3.0V至+5.5V、低功耗、最高1Mbps、真正的RS-232收发器,使用4个0.1µF外部电容(MAX3246E提供UCSP封装) 2.对于低成本应用 MAX221E:±15kV ESD保护、+5V、1µA、单路RS-232收发器,带AUTSHUTDOWN引脚介绍:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。 主要特点:1、符合所有的RS-232C技术标准 2、只需要单一+5V电源供电 3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- 4、功耗低,典型供电电流5mA 5、部集成2个RS-232C驱动器 6、高集成度,片外最低只需4个电容即可工作。RS-232引脚图(图 6)3.3 SLE4442IC卡的简介 电压供电较大的存储容量能够满足通常应用领域的各种需要因此是目前国应用较多SLE4442 是德国西门子SIMENS 公司设计的逻辑加密存储卡它具有2K 位的存储容量和完全独立的可编程代码存储器PSC 部电压提升电路保证了芯片能够以单+5V的一种IC 卡芯片芯片采用多存储器结构2 线连接协议串行接口满足ISO7816 同步传送协议NMOS 工艺技术每字节的擦除/写入编程时间为2.5ms 存储器具有至少10000 次的擦写周期数据保持时间至少10 年。SLE4442的触点安排: 操作电压 地 复位 未用 时钟 双向数据线 未用 未用芯片 (图 7)芯片功能:SLE4442 IC 卡主要包括三个存储器:1256x8 位EEPROM 型主存储器。地址031 为保护数据区。该区数据读出不受限制,写入受保护存储部数据状态的限制。当保护存储器中第N 位N=031 为1 时,对应主存储器中第N 个字节允许进行擦除和写入操作。地址32255 后244 字节为应用数据区,数据读出不受限制,擦除和写入受加密存储器数据校验结果的影响。这种加密校验的控制是对整个主存储器实施的(即包括保护数据区和应用数据区)。232 x1 位PROM 型保护存储器.一次性编程以保护主存储器保护数据区,防止一些固定的标识参数被改动.保护存储器同样受加密存储器数据校验结果的影响。34x8 位EEPROM 型加密存储器.第0 字节为密码输入错误计数器(EC).EC的有效位是低三位,芯片初始化时设置成”111”这一字节是可读的(EC).的1,2,3字节为参照字存储区.这3 个字节的容作为一个整体被称为可编程加密代码(PSC).其读出写入和擦除均受自身比较操作结果的控制。芯片部逻辑结构如下:( 图 8 )4 传送协议4.1 复位和复位响应复位和复位响应是根据ISO7816-3 标准来进行的。在操作期间的任意时候都可以复位。开始,地址计数器随一个时钟脉冲而被设置为零。当RST 线从高状态H 置到低状态L 时,第一个数据位(LSB)的容被送到I/O 上。若连续输入32 个时钟脉冲,主存储器中的前四个字节地质单元中的容被读出。在第33个始终脉冲的下降沿,I/O 线被置成高状态而关闭.( 图 9)4.2 命令模式复位响应以后芯片等待着命令。每条命令都以一个“启动状态”开始。整个命令包括3 个字节。随后经更着一个附加脉冲并用一个“停止状态”来结束操作。启动状态:在CLK 为高状态H 状态期间I/O 显得下降沿为启动状态。停止状态:在CLK 为高状态H 状态期间I/O 显得上升沿为停止状态。在接受一个命令之后有两种可能的模式输出数据模式即读数据和处理数据模式。 命令模式的时序图:( 图 10)4.3 输出数据模式这种模式是将IC 卡芯片中的数据传送个外部设备接口(IFD)的一种操作。在第一个CLK 脉冲的下降沿之后,I/O 线上的第一位数据变为有效。随后每增加一个时钟脉冲芯片,芯片部的一位数据被送到I/O 线上,数据的发送从每个字节的最低位(LSB)开始。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O口置成高状态,以便接受新的命令。在输出数据期间任何“启动状态”和“停止状态”均被屏蔽掉。输出数据模式的时序关系: ( 图 11 )4.4 处理数据模式这种模式是对IC 芯片作部处理.芯片在第一个始终脉冲的下降沿将I/O 线从高状态拉到低状态并开始处理。此后芯片在部连续计时计数,直到低n 个始终脉冲之后的附加一个时钟脉冲的下降沿I/O 线再次置高,完成芯片的处理过程。在整个处理过程中I/O 线被锁定成低状态。处理模式的时序关系:( 图 12 )5 SLE4442卡的应用5.2 芯片的复位方式1部复位:SLE4442是基于同步夫位响应的传送协议。芯片的复位时序如前述。2复位:在把操作电压连接到VCC 段之后,芯片部进行复位操作。I/O 线被置为高状态。必须在对任意地址进行读操作或做一个复位响应操作之后才可以进行数据交换。3:在CLK为低状态期间,如果RST 置为高状态,则任何操作均无效。I/O 线被锁定到高状态。需要一个最小维持时间tres=5Us 之后,芯片才能接受新的复位。中止状态的时序:( 图 13 )5 .2 芯片的操作命令格式每条命令包含三个字节其排列顺序如下MSB 控制字 LSB MSB 地址字 LSBMSB 数据线 LSB B7B6B5B4B3B2B1B0A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0 (表 格 4) SLE4442芯片具有7种命令: 字节1(控制)B7B0字节2(地址)A7A0字节3(数据)功能命令模式30H地址数无效读主存器输出数据模式38H地址数输入数据改主存器处理模式34H无效无效读保护存储器输出数据模式3CH地址数输入数据修改加密处理模式31H无效无效比较校验数据输出模式39H地址数输入数据修改加密处理模式33H地址数输入数据比较校验处理模式 (表 格 5)5.3 SLE4442卡的接口技术IC卡接口设备是由IC卡适配插座,IC卡电气接口电路,用于IC卡时序生成与数据交换的微处理器以与其他主设备的连接接口组成。根据IC卡在插入或退出时,按触点压触和脱离的方式区分主要有两种,一是滑触式结构,这种方式,触点处于固定位置,IC卡在插入或退出时,滑过与之不相关的位置,并滑接在固定的位置,另一类是着陆式结构,这种结构下,IC卡在插入过程中,触点与IC卡同步运动,逐步下压,并稳定与最终位置。6 IC卡的接口电路 IC卡的接口电路是连接IC卡与读写机具的通路,由它实现对IC卡的供电,并满足不带电插拔的要求。 一般来说,逻辑电路的“1”和“0”只是反映电压大小的关系,都处于带电状态。若带电插拔IC卡,可能会给IC卡带来损伤,甚至损坏它。因此在插拔前应先断开向IC卡供电的电源。,并切断其逻辑连接,实现对IC卡的保护。 IC卡的逻辑接口电路一般采用集电极开路(OC)输出与非嵌拉保护式输入结构。上拉电阻R源端与IC卡的供电电源相连接。当IC卡处于供电状态时,整个接口电路接通,借口设备与IC卡间构成逻辑通路;而当IC卡处于下电状态时(V=OFF),上拉电阻R的源端失去了供电,整个与卡的接口的电路均处于不带电状态。这种电路结构简单,可与CMOS,TTL接口相兼容,上升沿阻尼较大,不易产生边沿振荡,缺点是当接口端的分布电容较大时,上升沿过缓。在作为CPU卡的时钟驱动时(通常为3.57MHz),就有可能产生丢失脉冲等现象。解决这一问题的办法有两种,第一种:是通过减小时钟驱动端的上拉电,减小上升时间来解决;另一种是采用互补驱动方式来进行时钟驱动,这种方式结构复杂些,但可以实现更高的时钟频率。 IC卡接口设备中的IC卡供电电路也是一个相对独立于其他回路,这是由于IC卡接口设备是一个独立于IC卡的设备,当有卡插入时,接口设备便开始向IC卡提供其所须的电力。如果插入的是一电源与地击穿的坏卡,或是一个金属片之类的物质,就会造成供电回路的短路现象,若IC卡接口设备中无过流保护措施,就会造成设备的损坏。即便有保护措施,若与IC卡接口设备的其他部分共同使用一个保护回路,就会干扰整个设备的正常工作。该电路利用了带输出短路保护特性的78系列三端稳压集成电路,78L05的最大输出电流可达150mA,短路保护电流起点在150mA200mA左右,符合ISO/IEC7816-3所确定的围。当插入的卡是一个电源对地的短路负载时,U1会因输出过载而形成短路保护,由于接口设备的供电是在U2提供的稳压回路上,因而不会干扰接口设备的工作,这一段路保护信息会在“短路报警指示”信号线上形成一个低电平输出,接口设备的微处理器通过感知这一信号而切断对IC卡接口的供电,直到该卡退出为止,U1的输出也会随之而转入正常的电压输出围,以便为后续插入的IC卡提供正常的供电服务。6.1 IC卡的插入/退出识别与上电/下电控制技术: IC卡的插入与退出的识别是通过IC卡适配插座上的感应开关来识别的,对于复杂结构的IC卡适配插座,其识别与控制过程也相当复杂,且针对不同的卡座,其控制也各不一样,IC卡的供电控制是一个直接涉与是否能安全可靠地操作IC卡的过程。它必须严格地遵循ISO7816-3规定,其操作如下:(1)上电过程:RST处于L状态; (2)下电过程:RST为状态L;VCC供电; CLK为状态L;接口设备处于接受 VPP不起作用; 方式; VPP上升为空闲状态; I/O为状态A;CLK由相应稳定的时钟 VCC关闭。提供; 上电过程: PWRON1:LCALL RECOG ;识别是否有卡插入 CLR RST ;使RST=L CLR CLK ;使CLK=L LCALL Delay-0.5ms ;延迟0.5MS。使端口逻辑信号稳定 CLR PWR ;给卡供电 CLR DATOUT ;使I/O端口=L; RET ;返回下电过程:PWROFF1:CLR RST ;使RST=L CLR CLK ;使CLK=L CLR DATOUT ;使I/O=L LCALL DELAY-0.5MS ;延迟0.5MS,使端口逻辑信号稳定 SETB PWR ;给卡下电 RET ;返回 由于IC写主存储器时需要验证密码,所以执行下面程序时请确保SLE4442的密码的正确性。如果密码有错误,IC卡校验3次便会锁死报废。 ORG 8000H AJMP MAIN ORG 8100H MAIN:MOV SP,#60H Write-read-Card: MOV R0,#PSWD MOV R0,#0X11 INC R0 MOV R0,#0X22 INC R0 MOV R0,#0X33 LCALL CHECKCKPASSWORDJNZ WREXIT