资源预览内容
第1页 / 共283页
第2页 / 共283页
第3页 / 共283页
第4页 / 共283页
第5页 / 共283页
第6页 / 共283页
第7页 / 共283页
第8页 / 共283页
第9页 / 共283页
第10页 / 共283页
亲,该文档总共283页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 接触式IC卡技术第2章 接触式IC卡技术2.1 实训实训1:接触式存储器卡与逻辑加密卡的存储结构:接触式存储器卡与逻辑加密卡的存储结构2.2 接触式接触式IC卡的基本物理特性卡的基本物理特性 2.3 接触式接触式IC卡的芯片技术卡的芯片技术 2.4 典型存储器卡典型存储器卡 2.5 实训实训2:接触式存储器卡的操作控制:接触式存储器卡的操作控制2.6 典型逻辑加密卡典型逻辑加密卡 2.7 实训实训3:接触式逻辑加密卡的操作控制:接触式逻辑加密卡的操作控制2.8 接触式接触式IC卡接口技术卡接口技术 思考题思考题 第2章 接触式IC卡技术2.1 实训实训1:接触式存储器卡与逻辑加密卡的存储结构:接触式存储器卡与逻辑加密卡的存储结构1实训目的实训目的(1) 建立对接触式IC卡的感性认识。(2) 理解和掌握接触式存储器卡的访问方式和典型存储结构。(3) 理解和掌握接触式逻辑加密卡的访问方式和典型存储结构。第2章 接触式IC卡技术 2实训设备与器件实训设备与器件 (1) 实训设备:通用接触式IC卡读写器,586电脑,通用接触式IC卡读写器DEMO软件(使用方法参见厂商提供的使用手册)。 (2) 实训器件:AT24C01卡、SLE4442卡、AT88SC1604卡(白卡,实验室准备),IC卡电话卡(已发行,自备)。第2章 接触式IC卡技术 3实训步骤与要求实训步骤与要求 1) 通用接触式IC卡读写器及DEMO软件的安装 (1) 按系统提示安装通用接触式IC卡读写器DEMO软件。 (2) 按标志连接通用接触式IC卡读写器的电源线及串口线,注意电源 +5 V与地不可接反。 2) 使用DEMO软件访问AT24C01卡 (1) 按使用手册的说明操作演示软件,对通用接触式IC卡读写器进行建立连接操作。 (2) 将AT24C01卡插入读写器卡座,选择卡型(自动识别卡型或选择AT24C01卡),进入卡操作界面。 (3) 对AT24C01卡进行读/写/擦除操作,记录操作结果及操作条件。第2章 接触式IC卡技术 3) 使用DEMO软件访问自备的IC卡电话卡 (1) 将IC卡电话卡插入读写器卡座,选择自动识别卡型,记录卡型。 (2) 进入卡操作界面对电话卡进行读/写/擦除操作,在表2.1中记录操作结果及操作条件。表表2.1 电话卡存储结构记录表电话卡存储结构记录表第2章 接触式IC卡技术 4) 使用DEMO软件访问SLE4442卡 (1) 将SLE4442卡插入读写器卡座,选择卡型,进入卡操作界面。 (2) 对SLE4442卡进行读/写/擦除操作,在表2.2中记录操作结果及操作条件。表表2.2 SLE4442卡存储结构记录表卡存储结构记录表第2章 接触式IC卡技术 5) 使用DEMO软件访问AT88SC1604卡 (1) 将AT88SC1604卡插入读写器卡座,选择卡型,进入卡操作界面。 (2) 对AT88SC1604卡进行读/写/擦除操作,在表2.3中记录操作结果及操作条件。表表2.3 AT88SC1604卡存储结构记录表卡存储结构记录表第2章 接触式IC卡技术 4实训总结与分析实训总结与分析 (1) AT24C01卡的操作界面如图2.1所示。 可以看到,AT24C01的存储容量为1 Kb(128 B),存储结构为1288 b。可以按字节操作,所有字节的读/写/擦除均可任意进行。这种卡被称为存储器卡。存储器卡的详细内容参见2.3节。第2章 接触式IC卡技术 (2) IC电话卡的操作界面如图2.2所示。 DEMO软件自动识别该卡为SLE4406卡。可以看到,这种卡的存储容量为104 b(13 B),其中仅后5个字节为用户区,可按位操作。用户区可任意读、任意写(由1变为0称为写),但只能按字节借位擦除(由0变为1称为擦除)。当用户区全为0时,卡将作废。SLE4406卡是一种按位操作的逻辑加密卡,它以一次性的计数方式操作,因此这种卡也称为计数卡(Token Memory Card),其详细介绍参见2.6.1节。第2章 接触式IC卡技术图2.1 AT24C01卡的操作界面第2章 接触式IC卡技术图2.2 IC电话卡的操作界面第2章 接触式IC卡技术(3) SLE4442卡的操作界面如图2.3所示。图2.3 SLE4442卡的操作界面第2章 接触式IC卡技术 通过操作我们发现,SLE4442卡具有2 Kb(256 B)的存储容量,它采用多存储器结构,包括三个存储器:2568 b的EEPROM型主存储器,321 b的PROM型保护存储器和48 b的EEPROM型加密存储器。主存储器可重复擦除使用,按字节操作,并分为保护数据区和应用数据区,读出均不受限制,但保护数据区的擦除和写入受保护存储器熔丝状态的保护,而应用数据区的擦除和写入则受加密存储器中的密码及密码计数器保护。SLE4442卡是一种按字节操作的多存储器逻辑加密卡。第2章 接触式IC卡技术 (4) AT88SC1604卡的操作界面如图2.4所示。 通过操作我们发现,AT88SC1604卡的存储容量为16 384 b(2048 B)。它采用单存储器多逻辑分区结构,主存储器除划分了特定的标志数据区和控制数据区之外,还将应用数据区分成四个完全隔离的子区,并在每个子区中配备了各自的读、写控制标志和写入/擦除密码以及密码输入错误计数器等逻辑控制。AT88SC1604卡是一种按字节操作的大容量逻辑加密卡。第2章 接触式IC卡技术 5思考思考 (1) 若要构成一个接触式IC卡门禁系统,应采用哪一种卡,为什么?与传统的锁加钥匙的方式相比较,由接触式IC卡及其读写器构成的接触式IC卡门禁系统有何优胜之处? (2) 分别说明AT24C01A、SLE4442和AT88SC1604的安全性是由哪些环节保证的?第2章 接触式IC卡技术图2.4 AT88SC1604卡的操作界面第2章 接触式IC卡技术2.2 接触式接触式IC卡的基本物理特性卡的基本物理特性 所谓接触式IC卡,就是在使用时,通过有形的金属电极触点将卡的集成电路与外部接口设备直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡。其特点是在卡的表面有符合ISO/IEC 7816标准的多个金属触点。第2章 接触式IC卡技术2.2.1 接触式接触式IC卡的基本构成卡的基本构成图2.5 接触式IC卡外形图第2章 接触式IC卡技术图2.6 接触式IC卡内部结构剖视图第2章 接触式IC卡技术 在图2.6中,其各组成部分说明如下: (1) 半导体芯片:它是IC卡的核心部分。一般采用0.380.8 m的HCMOS或NMOS工艺制造的超大规模集成电路。在半导体芯片中包括存储器、译码电路、接口驱动电路、逻辑加密控制电路,甚至微处理器单元(CPU)等各种功能电路。其外形大小约为2 mm1 mm0.3 mm。第2章 接触式IC卡技术 (2) 电极膜片:它是作为半导体芯片各输入/输出信号引脚与外部设备接触连接的导电体,它实际是一种精密的印刷电路板(PCB)。其基底为一层绝缘材料,(一般为环氧树脂玻璃或聚酰亚胺薄膜)。在基底的绝缘材料上沉积一层铜合金,并在其外端表面镀金,以提高其导电性能和防氧化能力。电极膜片的外形大小约为:长9.6213.65 mm,宽9.3211.56 mm。电极膜片的外形一般为矩形或椭圆形。这种形状上的差异主要是为了改善卡片的抗扭曲方面的机械特性。电极膜片上共有多个芯片电极,每个电极的中心位置和最小面积是有规定的。但各电极表面分隔形状没有规定。第2章 接触式IC卡技术图2.7 接触式IC卡模块第2章 接触式IC卡技术 (3) 塑料基片:它是半导体芯片和电极膜片的载体。根据各生产厂家制卡工艺设备的要求,一般采用PVC(聚氯乙烯)、PET和ABS塑料材料。目前在国内所使用或封装生产的IC卡,基片材料大都使用PVC材料。 但随着制卡技术不断发展和对工业环保的要求,PVC材料的使用将会逐渐受到一定的限制。因而目前国外的一些制卡厂商已逐渐将IC卡的基片材料转向改用PET或ABS材料。塑料基片的大小,对于满足国际标准识别卡的ID-1型的尺寸是85.6 mm(长)53.98 mm (宽)0.75 mm(厚)。应该说明,由半导体芯片和电极膜片封装而成的IC卡模块(Wire Boded Module,如图2.7所示)就可以实现IC卡的基本功能。第2章 接触式IC卡技术2.2.2 接触式接触式IC卡的触点尺寸和位置卡的触点尺寸和位置 符合国际标准的IC卡的物理特性主要由国际标准ISO 7810、ISO 7811-1/2/3/4、ISO 7812、ISO 7813和ISO/IEC 7816-1等定义。其主要特性指标包括几何尺寸、抗X射线能力、触点与卡基表面的误差、电阻(触点)、抗电磁干扰、抗磁场干扰、抗静电能力、热耗、抗弯曲特性以及抗扭曲特性等。上述物理特性及其检测方法参见相关国际标准。 接触式IC卡有8个触点,即集成电路引脚,从C1到C8,如图2.8所示。国际标准ISO/IEC 7816-2对接触式集成电路卡的触点尺寸和芯片位置以及功能作了具体的规定。第2章 接触式IC卡技术图2.8 接触式IC卡的触点位置第2章 接触式IC卡技术 IC卡的电极膜片(即8个触点)既可安排在塑料基片的正面,也可安排在反面。触点之间的排列顺序必须按图2.8所示排列。各触点在卡基平面的几何尺寸、位置均以卡触点的接触面的左边沿和上边沿为基准边。其触点的尺寸及位置如图2.8所示。 在ISO/IEC 7816-2中对每个触点的几何形状和最大面积虽然没有规定,但却规定了每个触点表面积的内切矩形面积不得小于2 mm1.7 mm。 各触点之间应相互隔离。而相邻两个触点之间的最大距离为0.84 mm。8个触点所占最大面积没有规定,但规定最小面积不小于9.62 mm(长)9.32 mm(宽)的矩形平面。第2章 接触式IC卡技术表表2.4 接触式接触式IC卡的触点功能卡的触点功能第2章 接触式IC卡技术2.3 接触式接触式IC卡的芯片技术卡的芯片技术2.3.1 存储器卡存储器卡 1存储器卡的逻辑结构存储器卡的逻辑结构图2.9 存储器卡的逻辑结构图第2章 接触式IC卡技术 2存储器卡的特点存储器卡的特点 (1) 卡内嵌入的芯片多为通用EEPROM(或Flash Memory)。 (2) 无安全控制逻辑,可对片内信息不受限制地任意存取。 (3) 卡片制造中也很少采取安全保护措施。 (4) 不完全符合或支持ISO/IEC 7816国际协议,而多采用2线串行通信协议(I2C总线协议)或3线串行通信协议(SPI协议)。第2章 接触式IC卡技术 3存储器卡的主要应用场合存储器卡的主要应用场合 存储器卡功能简单,没有(或很少有)安全保护逻辑,但价格低廉、开发使用简便、存储容量增长迅猛,因此多用于某些简单的、内部信息无需保密或不允许加密(如急救卡)的场合。 4存储器卡的代表产品存储器卡的代表产品 存储器卡的代表产品为美国Atmel公司的EEPROM 卡AT24系列2线串行芯片和AT93系列3线串行系列,Flash Memory卡AT45D系列(28 Mb,SPI协议)。第2章 接触式IC卡技术表表2.5 EEPROM存储器卡芯片存储器卡芯片第2章 接触式IC卡技术2.3.2 逻辑加密卡逻辑加密卡1逻辑加密卡的逻辑结构逻辑加密卡的逻辑结构图2.10 逻辑加密卡的逻辑结构图第2章 接触式IC卡技术 2逻辑加密卡的特点逻辑加密卡的特点 (1) 具有安全控制逻辑,安全性能较好。 (2) 同时采用ROM、PROM、EEPROM等存储技术。 (3) 从芯片制造到交货,均采取较好的安全保护措施,如运输密码TC(Transport Code)的取用。 (4) 支持ISO/IEC 7816国际标准。 (5) 一般均为专门为IC卡设计的芯片。 (6) 为提高安全性,逻辑加密卡的存储空间被分为多个不同的功能区,典型的存储结构如表2.6所示。 第2章 接触式IC卡技术表2.6 逻辑加密卡的存储结构第2章 接触式IC卡技术 3逻辑加密卡的应用场合与代表产品逻辑加密卡的应用场合与代表产品 由于具有一定的保密功能,且价格较CPU卡低,因此在需要保密但对安全性要求不是太高的场合,逻辑加密卡得以大量应用,如电话卡、网吧上网卡、停车卡等小额消费场合,已成为目前IC卡在非金融领域的最主要的应用形式。 (1) 安全数据存储、传输和处理:面向字节操作的逻辑加密卡,如Atmel的AT88SC200、Philips的PC2032/2042、Siemens的SLE4418/4428/4432/4442等,应用于保险卡、加油卡、驾驶卡、借书卡等。第2章 接触式IC卡技术 (2) 相关数据记录、存储、处理,包括: 一次性使用的不可重置式,如Siemens的SLE4406/4436、Atmel的AT88SC06、Gemplus的GPM276/103。 可重置式,如Siemens的SLE4404(64次)、Atmel的AT88SC101/102(128次),应用于IC卡电话、小额电子钱包。 第2章 接触式IC卡技术表表2.7 Siemens系列逻辑加密卡芯片的特性参数系列逻辑加密卡芯片的特性参数第2章 接触式IC卡技术2.3.3 CPU卡卡 1CPU卡的逻辑结构卡的逻辑结构 CPU卡的硬件构成包括CPU、存储器(含RAM、ROM、EEPROM等)、卡与读写终端通信的I/O接口及加密运算协处理器CAU,其中: (1) CPU一般均为兼容于位字长单片机(如MC68HC05、Intel8051等)的微处理器。它将在COS(Chip Operation System,片内操作系统)控制下,实现卡与外界的信息传输、加密、解密和判别处理等。 (2) ROM用于存放COS,316 KB。 (3) RAM用于存放中间处理结果及作为卡与读写器间信息交换的中间缓存器,128 B1 KB。第2章 接触式IC卡技术 (4) EEPROM则是真正可供用户访问的存储区,用于保存卡的各种信息、密码、密钥、应用文件等,116 KB。 (5) CPU卡通常采用DES、RSA等加密、解密算法提高系统的安全度,采用RSA等算法时要进行对运算速度要求较高的大指数模运算,8位的CPU将难以胜任,因此多设有专用加密、解密运算协处理器CAU。 例如Siemens的SLE44C20,内含8位字长的CPU、15 KB的ROM、32 B的PROM、2 KB的EEPROM和256 B的RAM。第2章 接触式IC卡技术 2CPU卡的特点卡的特点 (1) 片内带有CPU、各种存储器ROM、RAM以及专用加密、解密运算协处理器CAU,具有很高的数据处理和计算能力以及较大存储容量,因此应用的灵活性、适应性较强。 (2) 在硬件结构、操作系统、制作工艺上采取多层次安全措施,保证了其极强的安全防伪能力。它不仅可验证卡和持卡人的合性法,而且可鉴别读写终端,即进行双向认证。第2章 接触式IC卡技术 3CPU卡的主要应用场合与典型产品卡的主要应用场合与典型产品 目前CPU卡多用于一卡多用(一卡通)及对数据安全保密性特别敏感的场合,如金融信用卡、手机SIM卡等。 CPU卡的详细内容参见第4章。本章将以存储器卡和逻辑加密卡为基础介绍接触式IC卡的芯片及接口技术。第2章 接触式IC卡技术2.4 典型存储器卡典型存储器卡2.4.1 AT24Cxx系列存储器卡芯片总体描述系列存储器卡芯片总体描述 1芯片特点芯片特点 (1) 低电压/标准电压操作:1.85 V。 (2) 内部组成:1288(AT24C01),2568(AT24C02),5128(AT24C04),10248(AT24C08),20488(AT24C16)的串行EEPROM。 (3) 2线串行接口。 (4) 双向数据传输协议。第2章 接触式IC卡技术 (5) 支持ISO/IEC 7816-10同步协议。 (6) 8 B页面(AT24C01/02),16 B页面(AT24C04/08/16)写入方式。 (7) 自定时写入周期(最大10 ms)。 (8) 高可靠性:使用寿命为100 000次写/擦除,数据保留期为100年。 (9) 多种封装形式:提供芯片、模块及标准封装形式。 第2章 接触式IC卡技术2芯片封装及引脚功能芯片封装及引脚功能1) 封装图2.11 AT24Cxx触点分配图第2章 接触式IC卡技术表表2.9 IC卡触点功能表卡触点功能表 第2章 接触式IC卡技术 2) 引脚功能说明 SCL:串行时钟输入(Serial Clock Input)。串行时钟上升沿时,数据输入芯片(写入);串行时钟下降沿时,数据从芯片输出(读出)。 SDA:串行数据(Serial DAta),双向串行传送数据。该端为漏极开路驱动,可与任意数量的其他漏极开路或集电极开路器件“线或”。 A2、A1、A0:器件/页面地址(DevicPage Addresses)。器件地址输入端,应用于标准封装中,在IC卡模块封装中不将A2、A1、A0引出到触点上,详细使用见“器件寻址”。第2章 接触式IC卡技术3逻辑结构与存储器组织逻辑结构与存储器组织图2.12 AT24Cxx的逻辑结构第2章 接触式IC卡技术2.4.2 器件操作器件操作1时钟和数据转换时钟和数据转换图2.13 AT24Cxx数据的有效性时序图第2章 接触式IC卡技术 1) 输出数据 当数据(包括地址、数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定。 基于MCS-51单片机的接口设备可利用如下串行输出字节子程序SHOUT来实现输出(写)一个字节数据的操作。第2章 接触式IC卡技术 SHOUT: ;串行输出一个字节到AT24Cxx,高位在前。调用前,SCL、SDA为低。返回时,SCL为低。调用时数据置入A中。返回CY为1表明应答失败。占用A累加器PUSH BMOVB,#8;设置位计数器L1:RLCA;移一位到CY中MOVSDA,C;输出位NOP ;保持SCL为低且使数据稳定SETBSCL;升高时钟ACALLDELAY_4 s;保持SCL为高第2章 接触式IC卡技术CLRSCL;降低时钟DJNZB, L1;传送下一位SETBSDA;释放SDA等待应答NOP;保持SCL为低,保持时间tAANOPSETBSCL;升高ACK时钟脉冲ACALLDELAY_4 s;保持SCL为高MOVC, SDA;读入ACK位CLRSCL;降低ACK时钟脉冲POPBRET第2章 接触式IC卡技术 2) 输入数据 当接口设备从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx的EEPROM在SCL低电平期间将数据送往SDA总线,在SCL高电平期间,SDA总线上的数据稳定,可供接口设备读取。 基于MCS-51单片机的接口设备可利用如下串行输入字节子程序SHIN来实现输入(读)一个字节数据的操作。第2章 接触式IC卡技术 SHIN: ;从AT24Cxx串行输入一个字节,高位在前。调用前,SCL为低。返回时,SCL为低。返回时接收到的数据置于A中SETBSDA ;使SDA为高,准备读PUSHBMOVB,#8 ;设置位计数器L2:NOP ;保持SCL为低且使数据稳定NOPSETBSCL ;升高时钟第2章 接触式IC卡技术NOP;保持SCL为高NOPMOVC, SDA;输入位RLCA;将位移入ACLRSCL;降低时钟DJNZB, L2;传送下一位POPBRET第2章 接触式IC卡技术 2开始状态开始状态(START) SCL处于高电平时,SDA从高电平转向低电平表示一个“开始”状态,该状态表示一种操作的开始,因此必须在任何其他命令之前执行。AT24Cxx开始/停止定义时序图见图2.14。图2.14 AT24Cxx开始/停止定义时序图第2章 接触式IC卡技术 基于MCS-51单片机的接口设备可利用如下开始子程序START来实现一个开始操作。 START: ;发送START状态,定义当SCL为高时,SDA从高到低。返回时,SCL、SDA为低。当总线无效时,返回CY位为高SETB SDA;升高SDASETB SCL;校验总线有效JNBSDA, ERROR1;若SDA不为高则跳转到ERROR1JNBSCL, BACK1 ;若SDA不为高则跳转到BACK1NOP;保持数据建立延迟及周期延迟第2章 接触式IC卡技术CLRSDA;降低SDAACALLDELAY_4 s;保持SDA为低,保持时间hold delayCLRSCL;降低SDLCLRC;清零错误标志AJMPBACK1ERROR1: SETBC;置位错误标志BACK1:RET第2章 接触式IC卡技术 3停止状态停止状态(STOP) SCL处于高电平时,SDA由低电平转向高电平表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通信。在一个读序列之后,停止命令置EEPROM于待机模式。其停止定义时序图见图2.14。 基于MCS-51单片机的接口设备可利用如下停止子程序STOP来实现一个停止操作。第2章 接触式IC卡技术 STOP: ;发送STOP状态,定义当SCL为高时,SDA从低变高。调用前,SCL为低。返回时,SCL、SDA为高CLRSDANOP;保持SCL为低及数据稳定NOPSETBSCLACALLDELAY_4 s;保持建立延迟SETBSDARET第2章 接触式IC卡技术 4确认应答确认应答(ACK) 所有地址和数据字以位码串行输入/输出EEPROM,EEPROM在收到每个地址或数据码之后,置SDA于低电平作为确认应答,该确认应答发生于第9个时钟周期,见图2.15。图2.15 AT24Cxx确认应答时序图第2章 接触式IC卡技术 在串行输出字节子程序SHOUT中我们可以清楚地看到,当接口设备向卡发送完8位数据后,程序将产生第9个时钟脉冲并将SDA线读入CY位,此时CY位的状态即为卡响应状态。当CY=1时表示卡尚未接收到数据,不能进行下一步的操作;当CY=0时表示卡已接收到数据,可以进行下一步的操作。第2章 接触式IC卡技术 5待机模式待机模式 AT24Cxx的特性之一是具备待机模式,这一模式当电源掉电;接收到STOP位或完成任何一个内部处理之后有效。 6存储器复位存储器复位 当电源掉电、系统复位或协议中断时,任何一个2线的部分都可通过以下步骤复位:(1) 9个时钟周期之后;(2) 在每个时钟周期当SCL为高时等待SDA为高;(3) 产生一个START状态。第2章 接触式IC卡技术2.4.3 器件寻址器件寻址 以上AT24系列EEPROM在紧接着开始状态后均需一个8位器件地址(Device Address),如图2.16所示,以使器件能够进行读/写操作。 器件地址高4位为1010,这对所有器件都是相同的。 在标准封装中,接下来的3位器件寻址码将因芯片容量的不同而有不同的定义: 对于AT24C01/02来说,下面3位器件寻址码是A2、A1、A0,这3位必须与它们相应的硬件连线输入引脚相对应。第2章 接触式IC卡技术图2.16 AT24Cxx器件地址第2章 接触式IC卡技术 对于AT24C04来说,仅用A2和A1器件寻址位,第3位是存储器页面寻址位。2个器件寻址位必须与硬件连线输入引脚相对应,A0引脚不连接。 对于AT24C08来说,仅用A2器件寻址位,下面2位是存储器页面寻址。A2必须与硬件连线输入引脚相对应,A1和A0引脚不连接。 对于AT24C16来说,无器件寻址位。这3位均用于存储器页面寻址,A0、A1、A2不连接。第2章 接触式IC卡技术 AT24C04/08/16的页面寻址位应被视为随后数据码寻址的最高位。 IC卡上使用的EEPROM芯片,因受尺寸限制,一般只能使用一个芯片,同时应符合国际标准,因此A2、A1、A0未引出到触点上,A2A1A0=000。 器件寻址的第8位是读/写操作选择位,该位为高电平时启动读操作,处于低电平时启动写操作。 设备寻址一经成功,EEPROM将在SDA总线上输出一个确认应答ACK;相反,则芯片回到待机状态。第2章 接触式IC卡技术2.4.4 写操作写操作 1写字节写字节(BYTE WRITE) 写字节时序见图2.17。写字节时序要求在给出“开始”状态、器件地址码和收到卡的确认应答ACK后,紧跟着给出一个8位地址码(32 KB芯片是2个8位地址码)。卡收到地址码后发出确认应答ACK。然后送要写的8位数据到SDA线上,并进入EEPROM单元,每个时钟节拍送入1位。EEPROM单元收到数据后,通过SDA线发出确认应答ACK。数据传送设备必须用“停止”状态来结束写操作。这时EEPROM进入内部定时的写周期,如图2.18中的tWR,在写周期期间,将数据写入非易失性存储器,并禁止所有其他操作直到写完成。第2章 接触式IC卡技术图2.17 AT24Cxx写字节时序图第2章 接触式IC卡技术图2.18 AT24Cxx写周期时序图第2章 接触式IC卡技术 基于MCS-51单片机的接口设备可利用如下写字节子程序WRITE_BYTE来实现写字节操作。 WRITE_BYTE: ;AT24Cxx写字节功能。调用前可编程的器件地址programmable address置于A中,字节地址置于寄存器ADDR_HI和ADDR_LO中,数据置于寄存器XDATA中。未等待写周期完成。返回CY为1表明总线无效或该器件无应答。占用A累加器ACALLSTARTJCBACK2;若总线无效则中断RLA;可编程地址左移一位ORLA, #FADDR;加入固定器件地址CLRACC.0;设置写,建立器件地址第2章 接触式IC卡技术ACALLSHOUT;发送器件地址JCERROR2;若无应答则中断MOVA, ADDR_HI;发送字节地址的高8位ACALLSHOUTJCERROR2;若无应答则中断MOVA, ADDR_LO;发送字节地址的低8位ACALLSHOUTJCERROR2;若无应答则中断MOVA, ADATA;取数据ACALLSHOUT;发送数据JCERROR2;若无应答则中断CLRC;清零错误标志ERROR2:ACALLSTOPBACK2: RET第2章 接触式IC卡技术 2写页面写页面(PAGE WRITE) AT24C01/02可以进行8 B页面写入,AT24C04/08/16可以进行16 B页面写入。启动写页面与启动写字节操作一样,但数据传送设备无需在第一个字节随时钟输入后发出一个停止状态;在EEPROM确认收到第一个数据码之后,数据传送设备再传送7个(对于AT24C01/02)或15个(对于AT24C04/08/16)数据码;每收到一个数据,EEPROM都将通过SDA回送一个确认应答信号,最后数据传送设备通过“停止”状态终止写页面操作,其过程见图2.19。第2章 接触式IC卡技术图2.19 写页面时序图第2章 接触式IC卡技术 数据地址的低3位(对于AT24C01/02)或4位(对于AT24C04/08/16)在收到每个数据字后,在芯片内部自动加1。数据字地址的高位字节保持不变,以保持存储器页地址不变。如果传送到EEPROM中的数据字超过8(对于AT24C01/02)或16(对于AT24C04/08/16),数据字地址将“滚动覆盖”,以前写入的数据将被覆盖。 基于MCS-51单片机的接口设备可利用如下写块子程序WRITE_BLOCK来实现写页面操作。第2章 接触式IC卡技术 WRITE_BLOCK: ;向AT24Cxx写入一页数据。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_HI和ADDR_LO中,数据置于BUFFER中,字节计数器置于寄存器COUNT中。未等待写周期完成。返回时CY位为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:INDEX为数据缓冲区指针,可使用工作寄存器R0)ACALLSTARTJCBACK3;总线无效则中断RLAORLA, #FADDR;生成器件地址第2章 接触式IC卡技术CLRACC.0;定义写操作ACALLSHOUT;发送器件地址JCERROR3;无应答则中断MOVA, ADDR_HI ;发送字节地址高8位ACALLSHOUTJCERROR3;无应答则中断MOVA, ADDR_LO;发送字节地址低8位ACALLSHOUTJCERROR3;无应答则中断MOVINDEX, #BUFFER;指向数据缓冲区首地址第2章 接触式IC卡技术L3: MOVA, INDEX ;取数据 ACALLSHOUT;发送数据 JCERROR3;无应答则中断 INCINDEX;地址指针加1 DJNZCOUNT, L3;下一个字节 CLRC;清零错误标志ERROR3: ACALLSTOPBZCK3: RET第2章 接触式IC卡技术 3确认查询确认查询(ACKNOWLEDGE POLLING) 一旦内定时写循环开始且禁止EEPROM输入,确认查询将被启动。当数据传送设备在送出一个“开始”状态以及紧随其后的器件地址码(读/写位代表所要进行的操作)时,只有在内定时写循环完成时,EEPROM才通过拉低SDA总线发出“确认”应答,允许读或写过程继续进行。AT24Cxx系列存储器芯片的内定时写周期(tWR)最大为10 ms,因此,每完成一个写操作,应延时约10 ms或查询SDA总线重新为低时才能发出下一个操作的开始命令,否则下一次操作命令将不被器件接收、执行。第2章 接触式IC卡技术2.4.5 读操作读操作 1现行地址读现行地址读(CURRENT ADDRESS READ) 内部数据字地址指针总是保持最后一次读/写操作中最后访问的地址,并按“1”递增。只要芯片保持上电,该地址在两次操作之间一直保持有效。如果最后一个操作是在地址n处读取,则现行地址是n+1;如果最后一个操作是在地址n处写入,则当前地址也是n+1。在出现“滚动覆盖”的情况时,读操作的地址是从最后一页的最后一个字节滚动覆盖到第一页的第一个字节,而写操作的地址是从当前页的最后一个字节滚动覆盖到同一页的第一个字节。第2章 接触式IC卡技术图2.20 现行地址读时序图第2章 接触式IC卡技术 一旦读/写选择位置于1,器件地址随时钟输入,并收到EEPROM的确认应答,现行地址的数据码随时钟被EEPROM串行输出。此时数据传送设备(微控制器)可在SDA线上随时钟串行读入数据。读取数据结束后,微控制器不是通过确认(低电平ACK)来应答,而是使总线处于高电平(NO ACK),随后产生一个停止状态,见图2.20。 基于MCS-51单片机的接口设备可利用如下现行地址读子程序READ_CURRENT来实现现行地址读操作。第2章 接触式IC卡技术 READ_CURRENT: ;AT24Cxx现行地址读功能。调用时,器件地址的可编程地址置于A中,返回数据置于A中。返回时,CY位为1表明总线无效或器件无应答 ACALL START JCBACK4;若总线无效则中断 RLA ORLA, #FADDR;生成器件地址 SETBACC.0;设置读操作 ACALLSHOUT;发送器件地址 JCERROR4;若无应答则中断 ACALLSHIN;接收数据字节第2章 接触式IC卡技术 ACALLNAK;发送高电平NAK应答 CLRC;清零错误标志ERROR4:ACALLSTOPBACK4:RET 注意: 写操作中卡接收到数据(地址、数据)后向接口设备发送低电平应答ACK,程序通过将第9个时钟周期的SDA线读入CY位来接收应答,查询CY位是否为低来判断是否收到卡确认应答。而读操作中是接口设备接到数据后向卡发送高电平应答(NO ACK),该高电平应答由NAK子程序来产生。第2章 接触式IC卡技术 NAK子程序: NAK: ;随时钟输出一个高电平的负应答位。调用前SCL为低,返回时SCL为低,SDA为高SETB SDA;NAK位NOP;保持SCL为低及数据稳定NOPSETB SCL;升高时钟ACALL DELAY_4 s;保持SCL为高CLR SCL;降低时钟RET第2章 接触式IC卡技术 2随机地址读随机地址读(RANDOM ADDRESS READ) 随机读取需要一个“空”字节写序列来载入数据地址,一旦器件地址(读/写选择位置低)和数据地址随时钟输入,并被EEPROM确认,传送设备必须产生另一个开始状态。此时送出的器件地址中读/写选择位处于高电平,将启动一个现行地址读,EEPROM收到器件地址后回送确认应答,并随时钟串行输出数据码,微控制器读取数据后不通过确认应答,而是使SDA总线处于高电平,随后产生一个停止状态,见图2.21。 基于MCS-51单片机的接口设备可利用如下随机地址读子程序READ_RANDOM来实现随机地址读操作。从程序中可以看到,在完成了一个“空”写之后,直接调用上面给出的现行地址读子程序就可以实现随机地址读操作了。第2章 接触式IC卡技术图2.21 随机地址读时序图第2章 接触式IC卡技术READ_RANDOM:;AT24Cxx随机地址读功能。调用时器件地址的可编程地址置于A中,字节地址置于寄存器ADDR_HI和ADDR_LO中,返回数据置于A中。返回时CY位为1表明总线无效或器件无应答PUSHBMOV B, A;可编程器件地址暂存B中;*发送空写命令来设置内部地址*ACALLSTARTJCBACK5;总线无效则中断RLA ORLA, #FADDR;生成器件地址第2章 接触式IC卡技术CLRACC.0;设置写操作ACALLSHOUT;发送器件地址JCERROR5;无应答则中断MOVA,ADDR_HI;发送字节地址高8位ACALLSHOUTJCERROR5;无应答则中断MOVA, ADDR_LO;发送字节地址低8位ACALLSHOUTJCERROR5;无应答则中断;*调用现行地址读功能*第2章 接触式IC卡技术MOVA, B ;取可编程器件地址ACALLREAD_CURRENTAJMPBACK4 ;退出ERROR5:ACALLSTOPBACK5:POPBRET第2章 接触式IC卡技术 3顺序读顺序读(SEQUENTIAL READ) 顺序读取由现行读或随机地址读启动。微控制器收到一个数据码之后回送“确认”应答,只要EEPROM收到“确认”之后,便会继续增加数据地址并随时钟串行输出后面的数据。当达到存储地址极限时,数据地址将重复滚动,顺序读取将继续;当终止顺序读操作时,微控制器不产生低电平确认信号,而是使SDA总线处于高电平应答,随后产生一个停止状态。顺序读时序图见图2.22。 第2章 接触式IC卡技术图2.22 顺序读时序图第2章 接触式IC卡技术 基于MCS-51单片机的接口设备可利用如下读块子程序READ_BLOCK来实现顺序读操作。 READ_BLOCK: ;从AT24Cxx读一页数据。当读出超过一个字节时执行由随机地址读扩展而来的顺序读。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_HI和ADDR_LO中,字节计数器置于寄存器COUNT中。返回时数据置于BUFFER中。返回时CY为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:COUNT为字节计数器,可使用工作寄存器R1) 第2章 接触式IC卡技术;*发送空写命令来设定第一个字节的地址*ACALLSTARTJCBACK6;若总线无效则中断RLAORLA, #FADDR;生成器件地址MOVINDEX, A;暂存器件地址于INDEXCLRACC.0;设置写操作ACALLSHOUT;发送器件地址JCERROR6;若无应答则中断MOVA, ADDR_HI ;发送字节地址高8位ACALLSHOUTJCERROR6;若无应答则中断MOVA, ADDR_LO;发送字节地址低8位ACALLSHOUTJCERROR6;若无应答则中断 第2章 接触式IC卡技术;*发送读命令及接收数据*ACALLSTART;第二次开始启动读操作JCERROR6;若总线无效则中断MOVA,INDEX;从INDEX中取器件地址SETBACC.0;设置读操作ACALL SHOUT;发送器件地址JCERROR6;若无应答则中断MOVINDEX, #BUFFER;指向数据缓冲区首地址L6:ACALLSHIN;接收数据字节MOVINDEX, A;保存数据CJNECOUNT, #1, NEXT;不是最后一个字节则继续ACALL NAK;读完发送NAK应答AJMPDONE;完成第2章 接触式IC卡技术NEXT: ACALL ACK;发送ACK应答字节 INCINDEX;数据缓冲区地址加1 DJNZCOUNT, L6;读下一个字节DONE: CLRC;清零错误标志ERROR6: ACALL STOPBACK6: RET 第2章 接触式IC卡技术 注意: 写操作中卡接收到数据后向接口设备发送低电平应答ACK,程序通过将第9个时钟周期的SDA线读入CY位来接收应答,查询CY位是否为低来判断是否收到卡确认应答。而顺序读操作中接口设备每接到一个字节的数据后向卡发送低电平应答ACK,该低电平应答由ACK子程序来产生。 第2章 接触式IC卡技术ACK子程序:ACK:;随时钟输出一个低电平应答位。调用前SCL为低。返回时,SCL、SDA为低CLRSDA;应答位NOP;保持SCL为低及数据稳定NOPSETB SCL;升高时钟脉冲ACALL DELAY_4 s;保持SCL为高CLRSCL;降低时钟脉冲RET 第2章 接触式IC卡技术2.5 实训实训2:接触式存储器卡的操作控制:接触式存储器卡的操作控制 1实训目的实训目的(1) 进一步理解和掌握AT24Cxx系列存储器卡的操作时序。(2) 掌握接触式IC卡接口电路的原理与设计、制作方法。(3) 掌握按操作时序编写和调试卡操作(读/写)控制程序的方法。 第2章 接触式IC卡技术 2实训设备与器件实训设备与器件 (1) 实训设备:通用接触式IC卡读写器及其DEMO软件,586电脑,5 V稳压电源,MCS-51系列单片机仿真系统。 (2) 实训器件:AT24C01卡,接触式IC卡卡座,PNP三极管9012,10 k电阻3个,1.2 k电阻1个,40脚IC座。 (3) 实训电路: 接触式存储器卡接口电路如图2.23所示。其中接口设备MCU选用AT89C51单片机,SMARTADP为接触式IC卡卡座,AT89C51的P1.0、P1.1分别通过卡座接AT24C01卡的串行数据端SDA和串行时钟端SCL,P1.6接卡插入测试端SW2,P1.7接PNP三极管9012的基极,为上电控制端。SCL、SDA及SW2均通过10 k的上拉电阻,接+5 V。该接口电路的功能、工作原理参见2.8节。 第2章 接触式IC卡技术图2.23 接触式存储器卡接口电路 第2章 接触式IC卡技术 3实训步骤与要求实训步骤与要求 1) 实训准备 (1) 按电路原理图焊接好接触式IC卡接口电路,注意卡座各触点引脚与卡触点应一一对应;9012的集电极接卡座的VCC端,发射极接+5 V电源,切勿接反。 (2) 用万用表测试卡座的SW1、SW2引脚,识别是常开还是常闭卡座。根据卡座的类型编写插卡识别程序。卡座类型的识别方法及插卡识别程序参见2.8节。 (3) 认真阅读下述上/下电控制程序PWRON/PWROFF。 上电控制程序:判断是否有卡插入,无卡插入则等待,卡座(卡)VCC端保持为低电平,避免带电插卡导致接口电路或卡的损坏;插卡后加电,卡座(卡)VCC端为+5 V。 第2章 接触式IC卡技术上电控制程序如下:PWRON:LCALL RECOG;调用插卡识别程序CLR SCL;SCL=L,准备加载时钟LCALL DELAY_0.5ms;使端口逻辑信号稳定CLR PWR;加电CLRSDA;SDA=L,准备传送数据RET 第2章 接触式IC卡技术 下电控制程序:通过置位PWR端使卡座(卡)VCC端恢复为低电平,需要特别注意的是,必须执行完该子程序后方能拔卡。 下电控制程序如下:PWROFF:CLRSCL;SCL=L,释放SCLCLRSDA;SDA=L,释放SDALCALL DELAY_0.5ms;延时稳定SETB PWR;下电RET 第2章 接触式IC卡技术常开型卡座插卡识别程序RECOG如下:RECOG:JB SW,RECOG;无卡插入则等待LCALL DELAY_5ms;延时去抖JB SW,RECOG;再次判断,无卡插入则等待RET;确实有卡插入,返回 (4) 认真阅读所附的实训程序,并将程序调用的各功能子程序START、STOP、SHIN、SHOUT、ACK、NAK(见2.4.2节)补充完整。 第2章 接触式IC卡技术 2) 程序调试 (1) 利用接触式IC卡读写器查看并记录AT24C01卡的存储记录。 (2) 用万用表检查电路,确认连接正确。将MCS-51系列单片机仿真器的仿真头插入实验电路板上的40脚IC座。在MCS-51系列单片机仿真开发系统中打开并编译实训范例程序1。在卡地址缓冲区(首地址为20H的片内RAM)中设置将被更新的16个卡存储单元地址(例如00H0FH), 在写数据缓冲区(首地址为30H的片内RAM)中设置要写入的16个数据(如00H、11H、. 、FFH),注意不要与卡中的原始数据相同,清零读数据缓冲区(首地址为40H的片内RAM)。 第2章 接触式IC卡技术 (3) 调试上电控制程序。在程序标志的断点处设置断点。运行程序1。未插卡时,程序是否能在断点处暂停?此时测试并记录卡座VCC端电压。插入IC卡,程序是否能在断点处暂停?再次测试并记录卡座VCC端电压。比较插卡前后的实验现象与实验数据,说明原因。 (4) 取消断点,屏蔽读字节程序,单独调试写字节程序:在程序标志的断点处设置断点。运行程序1并插卡,程序在断点处暂停时,记录CY位状态;取出AT24C01卡,用读写器读出被更新单元的内容,验证是否正确写入。当写入不正确时,可能的出错原因有哪些,应如何通过调试查找错误? 第2章 接触式IC卡技术 (5) 若写字节程序正确,取消屏蔽,调试读字节程序。运行程序1,并插卡,程序在断点处暂停时,记录CY位状态及读数据缓冲区数据,验证是否正确读出(是否与写数据缓冲区一致)。当读出不正确时,可能的出错原因有哪些,应如何通过调试查找错误? (6) 打开并编译实训范例程序2。 在卡地址缓冲区(首地址为20H的片内RAM)中设置将被更新的1页卡存储单元地址(例如00H07H),在写数据缓冲区(首地址为30H的片内RAM)中设置要写入的8个数据(如00H、11H、. 、77H),注意不要与卡中的原始数据相同,清零读数据缓冲区(首地址为40H的片内RAM)。 第2章 接触式IC卡技术 (7) 屏蔽读页程序,单独调试写页程序。在程序标志的断点处设置断点。运行程序2并插卡,程序在断点处暂停时,记录CY位状态;取出AT24C01卡,用读写器读出被更新页的内容,验证是否正确写入。当写入不正确时,可能的出错原因有哪些,应如何通过调试查找错误? (8) 若写页程序正确,则取消屏蔽,调试读页程序。运行程序2,并插卡,程序在断点处暂停时,记录CY位状态及读数据缓冲区数据,验证是否正确读出(是否与写数据缓冲区一致)。当读出不正确时,可能的出错原因有哪些,应如何通过调试查找错误? 第2章 接触式IC卡技术 4实训总结与分析实训总结与分析 (1) 当上电控制电路正常,上电控制程序正确时,运行上电控制程序。未插卡时,程序循环等待插卡,卡座的VCC端保持低电平,保证不带电插卡;插卡后,程序向下运行到断点处,卡座的VCC端变为高电平,给IC卡芯片提供工作电源。 (2) 无论按字节或按页操作时,读/写子程序正确则CY位应为0。当读/写出错且CY位为1时,较为常见的出错原因包括:上电控制程序或电路出错,未能加电或电压太低;SCL、SDA、SW2未加上拉电阻(或上拉电阻选择不当)导致没有高电平;SCL、SDA、SW2、PWR的接口定义与硬件不符;读/写流程有误。通过在程序适当位置设置断点,检查各接口电平及查看各断点处CY位(应答)可查出出错原因。 第2章 接触式IC卡技术 (3) 当读/写出错而CY位为0时,表示读/写子程序正确,出错的原因是数据块传输不正确,即循环过程出错。注意:在字节操作中,指针的加1和循环的判断在每次调用STOP之后;而页操作中,循环结束后才调用STOP。 第2章 接触式IC卡技术 5思考思考 (1) 在范例程序1和程序2中,同样是对卡中的某一数据块进行读/写操作,二者的实现方式有何不同? (2) 当接口电路采用常开型卡座,却错误地使用了常闭型插卡识别程序,会出现什么现象?为什么?反之当接口电路采用常闭型卡座,却错误地使用了常开型插卡识别程序,会出现什么现象?为什么? (3) 当上述实验采用的是AT24C64卡时,应如何修改程序? 第2章 接触式IC卡技术 6附录附录实训范例主程序实训范例主程序 程序1按字节将AT89C51写数据缓冲区中的16个字节数据写入卡中连续的16个存储单元中,然后再按字节将这16个存储单元的内容读入到AT89C51读数据缓冲区中。 程序2按页将AT89C51写数据缓冲区中的8个字节数据写入卡中连续的8个存储单元(1页)中,然后再按字节将这8个存储单元(1页)的内容读入到AT89C51读数据缓冲区中。 其中,写数据缓冲区首地址为30H,读数据缓冲区首地址为40H,卡地址缓冲区首地址为20H。 第2章 接触式IC卡技术程序1:按字节操作。SDA BIT P1.0SCL BIT P1.1 ICSW BIT P1.6PWR BIT P1.7ORG 0000HLJMP BYTEOPRORG 0080H 第2章 接触式IC卡技术BYTEOPR:MOV SP,#50HLCALL PWRON;上电控制MOV R0,#20H;设置卡地址缓冲区指针R0,断点MOV R1,#30H;设置写地址缓冲区指针R1LCALL WRITE_BYTEMOV R0,#20H;设置卡地址缓冲区指针R0 MOV R1,#40H;设置读地址缓冲区指针R1LCALL READ_BYTELCALL PWROFFSJMP $;断点 第2章 接触式IC卡技术WRITE_BYTE: MOV R7, #10H;R7为要写的字节数LOOP1:LCALL START;开始JC EXIT1MOV A, #0A0H;送器件地址到A,设置写LCALL SHOUT ;输出器件地址到IC卡JC FAULT1 ;判断是否有应答 MOV A,R0 ;从卡地址缓冲区取字地址 LCALL SHOUT ;输出字地址到IC卡 JC FAULT1 ;判断是否有应答MOV A,R1;从写数据缓冲区取数据LCALL SHOUT ;输出字地址到IC卡 JC FAULT1 ;判断是否有应答CLR C ;设置操作成功标志 第2章 接触式IC卡技术FAULT1:LCALL STOP ;停止ACALL DELAY_10ms;等待内定时写周期结束INC R0;卡地址缓冲区地址+1,指向下一个要写入 的卡单元INC R1;写数据缓冲区地址+1,指向下一个数据DJNZ R7, LOOP1;未写完继续EXIT1: RETREAD_BYTE:MOV R7,#10H 第2章 接触式IC卡技术LOOP2:LCALL START;开始 JC EXIT2 MOV A, #0A0H;送器件地址到A,设置空写 LCALL SHOUT ;输出器件地址到IC卡 JC FAULT2 ;判断是否有应答 MOV A,R0 ;从卡地址缓冲区取字节地址 LCALL SHOUT ;输出字地址到IC卡 JC FAULT2 ;判断是否有应答 LCALL START;开始 MOV A, #0A1H;送器件地址到A,设置读 LCALL SHOUT;输出器件地址到IC卡 JC FAULT2;判断是否有应答 LCALL SHIN;读取IC卡的数据 MOV R1,A;送入读数据缓冲区 LCALL NAK;送NO ACK 给卡 CLR C;设置操作成功标志 第2章 接触式IC卡技术EXIT2: LCALL STOP ;停止 INC R0;卡地址缓冲区地址+1,指向下一个被读入的卡单元 INC R1;读数据缓冲区地址+1,指向下一个读入数据的存储单元 DJNZ R7,LOOP2;未读完继续FAULT2:RET程序2:按页操作。SCL BIT P1.0SDA BIT P1.1 ICSW BIT P1.2 PWR BIT P1.3 ORG 0000HLJMP PAGEOPRORG 0080H 第2章 接触式IC卡技术PAGEOPR:MOV SP,#50HLCALL PWRONMOV R0,#20H;设置卡地址缓冲区指针R0MOV R1,#30H;设置写地址缓冲区指针R1LCALL WRITE_PAGEMOV R0,#20H;设置卡地址缓冲区指针R0,断点MOV R1,#40H;设置读地址缓冲区指针R1LCALL READ_PAGELCALL PWROFFSJMP $;断点 第2章 接触式IC卡技术WRITE_PAGE: MOV R7, #08H;R7为要写的字节数,8 B为1页 LCALL START;开始JC BACK3 MOV A,#0A0H;送器件地址到A,设置写 LCALL SHOUT ;输出器件地址到IC卡 JC FAULT3 ;判断是否有应答 MOV A,R0 ;从卡地址缓冲区取字地址 LCALL SHOUT ;输出字地址到IC卡 JC FAULT3 ;判断是否有应答 第2章 接触式IC卡技术LOOP3: MOV A, R1 ;从写数据缓冲区取数据LCALL SHOUT ;输出(写)数据到IC卡JC FAULT3INC R0 ;卡地址缓冲区地址+1,指向下一个要写入的卡单元INC R1 ;写数据缓冲区地址+1,指向下一个数据DJNZ R7,LOOP3;未写完继续 CLR C;写结束,设置操作成功标志FAULT3:LCALL STOP ;停止ACALL DELAY_10ms;等待内定时写周期结束 第2章 接触式IC卡技术EXIT3: RETREAD_PAGE:MOV R7,#08H;R7为要读的字节数LCALL START;开始 MOV A,#0A0H;送器件地址到A,设置空写 LCALL SHOUT ;输出器件地址到IC卡 JC FAULT ;判断是否有应答 MOV A,R0 ;从卡地址缓冲区取字节地址 LCALL SHOUT ;输出字地址到IC卡 JC FAULT ;判断是否有应答 LCALL START;开始 MOV A,#0A1H;送器件地址到A,设置读 LCALL SHOUT ;送器件地址到IC卡 JC FAULT ;判断是否有应答 第2章 接触式IC卡技术LOOP4: LCALL SHIN ;读取IC卡的数据MOV R1,A ;送入读数据缓冲区LCALL ACK;送ACK应答给卡,使卡送出下一字节数据INC R0 ;卡地址缓冲区地址+1,指向下一个被读入的卡单元INC R1 ;读数据缓冲区地址+1,指向下一个读入数据的存储单元DJNZ R7,LOOP;未读完继续LCALL NAK;读结束,送NO ACK 给卡,使卡停止送出下一字节数据CLR C;设置操作成功标志FAULT4:LCALL STOP ;停止EXIT4: RET 第2章 接触式IC卡技术2.6 典型逻辑加密卡典型逻辑加密卡 2.6.1 面向位操作的逻辑加密卡面向位操作的逻辑加密卡 面向位操作的逻辑加密卡是一种一次性使用的带加密逻辑的IC卡,以一次性的计数方式(或有条件地擦除重用),从写满的计数器中减“1”,直至存储单元全减为“0”。因此这种卡也称为计数卡(Token Memory Card),如Siemens的SLE4406/4436、SLE4412、Atmel的AT88SC06、Gemplus的GPM276/103。 第2章 接触式IC卡技术 这种卡常用于具有定额定价的消费系统中,如公用电话卡、预付费加油卡、停车计费卡、游乐园消费卡等。卡的每次消费计数的单位价值可以根据应用系统的实际要求来确定,例如,对于公用电话卡,电话机每分钟产生一次扣费信号,卡被减掉“1”,而每个“1”代表“0.5”元。对于预付费加油卡,加油机每出油1公升产生一次扣费信号,卡被减掉“1”,而每个“1”代表“2.5”元。 目前,我国的公用电话卡大多采用了Siemens的SLE4406卡,下面就以SLE4406为例来介绍计数卡的有关性能。 第2章 接触式IC卡技术1主要指标主要指标(1) 104位容量;(2) 最大可提供20 480个计数单位;(3) 3个字节传输密码,1位发行标志保护;(4) 温度范围:-3580;(5) 至少10 000次循环擦写次数;(6) 至少10年数据保存期。 第2章 接触式IC卡技术2存储结构存储结构 图2.24 SLE4406的存储分布图 第2章 接触式IC卡技术3保密特性保密特性 表表2.10 SLE4406保密特性表保密特性表 第2章 接触式IC卡技术 4用户区计数规则用户区计数规则 发行后,用户区进入计数状态,计数区按位写0,按字节借位擦除。假设偏移地址为12的字节的8位已全被写为0,则可将偏移地址为11的字节的其中1位写为“0”,而偏移地址为12的字节其8位可以全擦除成“1”,然后再逐位写0直至再次全写为0后再借位擦除。例如,11111111 00000000 11111110 11111111。 注意注意: 写表示写“0”,擦除表示写“1”。 按照上述计数规则,用户区的5个字节最大可提供20 480个计数单位(第5位计数器只有4位可用)。 第2章 接触式IC卡技术2.6.2 面向字节操作的多存储器结构逻辑加密卡面向字节操作的多存储器结构逻辑加密卡 SLE4442是由德国西门子(Siemens)公司设计的逻辑加密存储卡。它具有2 Kb的存储容量和完全独立的可编程加密代码(PSC,Programmable Security Code)存储器。内部电压提升电路保证了芯片能够以单+5电压供电,较大的存储容量能够满足通常应用领域的各种要求。因此是目前国内应用较多的一种IC卡芯片。 第2章 接触式IC卡技术 1总体描述总体描述 SLE4442卡芯片的特点如下: (1) 采用多存储器结构。 (2) 2线连接协议,复位响应满足ISO/IEC 7816-3标准。 (3) 触点配置及串行接口满足ISO/IEC 7816(同步传输协议)。 (4) 仅当正确输入3个字节的可编程加密代码(PSC)后方可修改数据。 (5) 芯片采用NMOS工艺技术,每个字节的写入/擦除编程时间为2.5 ms。 (6) 存储器具有至少104次的写入/擦除周期,数据保持时间至少10年。 第2章 接触式IC卡技术图2.25 SLE4442的触点配置图 第2章 接触式IC卡技术表表2.11 SLE4442引脚定义和功能说明引脚定义和功能说明 第2章 接触式IC卡技术 2存储器结构存储器结构 SLE4442卡芯片采用了多存储器结构,主要包括三个存储器:2568 b的EEPROM型主存储器;321 b的PROM型保护存储器;48 b的EEPROM型加密存储器。 SLE4442的存储器结构见图2.26。 第2章 接触式IC卡技术图2.26 SLE4442的存储器结构 第2章 接触式IC卡技术 1) 主存储器(Main Memory) 主存储器为可重复擦除使用的EEPROM型存储器,按字节寻址、擦除和写入。在擦除时,一个数据字节的所有8位被全部置1。在写入时,EEPROM单元中的信息则根据输入的数据,被逐位变换成逻辑“0”(即在EEPROM中,新写入的数据与原来存有的数据进行“逻辑与”)。通常,一个数据的改变包含先擦除(全写为1),后写入(将相应的1写为0)两项操作。如果在被寻址的字节里8位中没有一个字位需要从0变到1,则可以不进行擦除处理,例如,01101100变为00100100;反之亦然,在被寻址的字节中,如果没有一个字位需要从1变到0,则可以不作写入处理,例如,01101100变为11111101。写入或擦除操作一次都至少要耗费2.5 ms时间。 主存储器的地址是从0(00)到255(FFH),共256 B(2 Kb)。主存储器可分为两个数据区:保护数据区和应用数据区。 第2章 接触式IC卡技术 (1) 保护数据区。主存储器前32 B为保护数据区,地址从0(00H)到31(1FH)。这部分的数据读出不受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。当保护存储器中第n位(n=031)为1时,则对应主存储器中第n个字节允许进行擦除和写入操作;而当保护存储器第n位为0时,则对应主存储器中第n个字节就不允许进行擦除和写入操作。根据这一特性,主存储器的保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数,如厂商代码、发行商代码等。 第2章 接触式IC卡技术 (2) 应用数据区。主存储器后224 B为应用数据区,地址从32(20H)到255(FFH)。这部分的数据读出不受限制,但擦除和写入均受控于加密存储器数据校验比较结果的影响。当需要修改应用数据区的内容时(擦除或写入操作),必须首先输入一个3字节长的“校验字”。这个用户输入的“校验字”与原来存在加密存储器中的“参照字”进行一对一的比较。只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。应该注意的是这种加密校验的控制是对整个主存储器实施的(即包括保护数据区和应用数据区)。如果新输入的校验字与芯片中的“参照字”不同,则控制逻辑闭锁主存储器。芯片允许在有限的次数内(一般为三次)重试比较操作。如果在连续三次比较失败之后,芯片的错误计数器计数到“0”,并将锁死主存储器,禁止随后的任何比较操作和写入擦除操作。这时,整个主存储器变成一个只读存储器,芯片中各存储器的内容不能再改变。 第2章 接触式IC卡技术 2) 保护存储器(Protection Memory) 保护存储器是一个321 b的一次性可编程只读存储器(PROM)。它是按位寻址和写入。保护存储器为031的每一位对应着主存储器地址为031的每一个字节,因此可以理解为每个字节单元的控制熔丝。从出厂到被初始化之前,保护存储器的状态为全“1”。从控制方面来说,保护存储器的内容只能从“1”写成“0”(即熔断熔丝),而不能从“0”擦除成“1”。保护存储器每个被写“0”的单元所对应控制的主存储器的字节单元将不再接受任何擦除和写入操作命令,从而使得该字节单元内的数据不可再改变。因此,对保护存储器单元的写入一定要特别小心。 第2章 接触式IC卡技术 从使用方面来说,如果需要防止一些固定的标识参数(例如,生产厂家代码、发行商代码、卡片编号等)被改动,以免造成使用混乱,则可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写0,从而使这一部分单元中的参数内容永远不可更改。 保护存储器本身的读出操作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内原来存有的“参照字”一致时,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将闭锁保护存储器。 第2章 接触式IC卡技术 3) 加密存储器(Security Memory) 加密存储器是一个48 b的EEPROM型存储器。在这个存储器中,第0个字节为“密码输入错误计数器”(EC,Error Counter)。密码输入错误计数器的有效位是低3位。在芯片初始化时,计数器设置成“111”。这一字节是可读的,每次比较密码时,先要判定计数器中是否还有“1”。如果还有“1”,则将一个“1”写成“0”,然后进行比较“校验字”操作。如果比较结果一致,则密码错误计数器将允许进行擦除操作(注意,芯片不能自动进行擦除操作),同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。如果比较结果不一致,则密码错误计数器中为“1”的个数减少1位。只要计数器的内容不全为0,则芯片的比较“校验字”操作还允许再次进行。当连续三次输入错误密码后(即密码计数器减少为0),则芯片的存储单元将全部被锁死。由此可见,加密存储器可以理解为进入整个芯片的“关卡”。 第2章 接触式IC卡技术 加密存储器的第1、2、3个字节为“参照字”存储区。这3个字节的内容作为一个整体被称为可编程加密代码(PSC)。值得注意的是:这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。而写入和擦除操作也受自身比较操作结果的控制。只有当比较操作成功时,加密存储器各字节的内容才可以进行读出、写入和擦除。 第2章 接触式IC卡技术 3传送协议与操作模式传送协议与操作模式 SLE4442卡与接口设备(IFD,InterFace Device)之间的传送采用2线连接协议,满足ISO/IEC 7816同步传送协议,I/O线上的数据变化只在CLK信号下降沿有效。 传送协议包括4种模式:复位和复位响应(ATR,Answer-To-Reset)、命令模式(Command Mode)、输出数据模式(Outgoing Data Mode)、处理模式(Processing Mode) 第2章 接触式IC卡技术注意: I/O引脚为漏极开路型,因此需要外加上拉电阻才能得到高电平。 1) 复位和复位响应(Reset and Answer-To-Reset) SLE4442卡芯片的复位方式有: (1) 复位和复位响应(外部复位方式):基于ISO/IEC 7816-3的同步协议。 (2) 加电复位(Power on Reset,内部复位方式):加电后I/O被置于高阻态。必须在对任意地址进行读操作或做一个复位响应操作之后才可以进行数据交换。 复位响应是根据 ISO/IEC 7816-3(ATR)标准来进行的,复位及复位响应的时序关系如图2.27所示。在操作期间的任意时刻都可以复位。 第2章 接触式IC卡技术图2.27 复位及复位响应的时序关系 第2章 接触式IC卡技术 开始,接口设备IFD将所有线置于状态L,然后VCC加电,CLK和RST保留于状态L,接口设备的I/O置于接收方式。之后,RST线被置于H状态,并维持至少15 s,时钟脉冲在RST上升沿之后相隔t10时间后给出,地址计数器随这个时钟脉冲被设置为0。在RST为高时只允许有一个时钟脉冲。CLK与RST下降沿之间的时间间隔为t11。当RST线从高状态(H状态)置到低状态(L状态)时,第一个数据位(LSB)的内容被送到I/O上,这一数据可视为复位应答。若继续输入后面的31个时钟脉冲(共32个脉冲),主存储器中的前4个字节(48 b= 32 b)地址单元中的内容被读出。在第32个时钟脉冲的下降沿,I/O线被置成高阻状态(Z状态)而关闭,ATR过程结束。 在复位响应期间,“启动”和“停止”状态都被忽略。 第2章 接触式IC卡技术 2) 命令模式(Command Mode) 复位响应以后,芯片等待着命令。每条命令都以一个“启动状态”开始。整个命令包括3个字节。随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。图2.28为命令模式的时序关系。 第2章 接触式IC卡技术图2.28 命令模式的时序关系 第2章 接触式IC卡技术 (1) 启动状态:在CLK为高状态(H状态)期间,I/O线的下降沿为启动状态。 (2) 停止状态:在CLK为高状态(H状态)期间,I/O线的上升沿为停止状态。 接收了一个命令之后,卡芯片处于两种可能的模式: (1) 读数据时处于输出数据模式; (2) 写入和擦除时处于处理模式。 第2章 接触式IC卡技术 3) 输出数据模式(Outgoing Data Mode) 在这一模式下IC卡芯片发送数据给IFD。图2.28右上角为输出数据模式的时序关系图。 在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上,低位在前。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O线置成高阻状态(Z状态),以便准备接收新的命令。在输出数据期间,任何“启动状态”和“停止状态”均被屏蔽。 第2章 接触式IC卡技术 4) 处理模式(Processing Mode) 在这一模式下对IC卡芯片做内部处理。图2.28右下角为处理模式的时序关系图。 芯片在第一个时钟脉冲的下降沿,将I/O线从高状态(H状态)拉到低状态(L状态)并开始处理。此后应连续给芯片提供脉冲,使芯片在内部连续计时计数,直到第n个时钟脉冲之后的附加一个时钟脉冲的下降沿I/O线被置为高阻态,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态,任何“启动状态”和“停止状态”均被屏蔽。 第2章 接触式IC卡技术4芯片的操作命令芯片的操作命令1) 命令格式 命令的传送总是从控制字节开始,首先传送字节的最低位LSB(即B0位)。控制字节传送完毕之后,依次传送地址字节和数据字节,均为低位在前。在最后一位D7传送完成之后,需要增加一个附加时钟脉冲把I/O线置成高状态。 第2章 接触式IC卡技术表表2.12 SLE4442命令表命令表 第2章 接触式IC卡技术2) 读主存储器(Read Main Memory)读主存储器命令格式如下: 第2章 接触式IC卡技术 读主存储器命令读出主存储器的内容,命令的控制字为30H。对于每个字节来说,总是从最低位LSB开始读出,从给定的字节地址(N=0255)开始,直到整个存储器的末尾。在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲,从地址(N)开始读数据所需要的时钟脉冲数为M=(256N)81。对主存储器进行读操作不受限制。读主存储器的时序见图2.29。 第2章 接触式IC卡技术图2.29 读主存储器的时序图 第2章 接触式IC卡技术3) 读保护存储器(Read Protection Memory)读保护存储器命令格式如下: 读保护存储器命令的控制字为34H。在连续输入32个时钟脉冲的情况下,芯片将保护存储器内各位的内容传送到I/O线上,最后通过一个附加时钟脉冲将I/O线置为高阻状态(Z状态)。对保护存储器进行读取操作不受限制。读保护存储器的时序见图2.30。 第2章 接触式IC卡技术图2.30 读保护存储器的时序图 第2章 接触式IC卡技术4) 读加密存储器(Read Security Memory)读加密存储器命令格式如下: 第2章 接触式IC卡技术 读加密存储器命令类似于读保护存储器,可以读出4B的加密存储器的内容。该命令的控制字为31H。在输出数据的模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高阻状态(Z状态)。如果可编程加密代码(PSC)的校验不成功,则“参照字”字节的输出被禁止,读保护存储器除第0个字节可读出外,I/O线总保持为低(L)状态(即“参照字”字节的输出总是“0”)。读加密存储器的时序见图2.31。 第2章 接触式IC卡技术图2.31 读加密存储器的时序图 第2章 接触式IC卡技术5) 修改主存储器(Update Main Memory)修改主存储器命令格式如下: 第2章 接触式IC卡技术 修改主存储器命令根据所传送的字节数据,寻址主存储器的EEPROM字节,然后修改相应字节的内容。该命令的控制字为38H。在处理模式期间,根据新、旧数据,可能发生下列几种情况之一: 先擦除后写入:5 ms,相当于M=256个时钟脉冲。 只写入不擦除:2.5 ms,相当于 M=124个时钟脉冲。 只擦除不写入:2.5 ms,相当于M=124个时钟脉冲。 第2章 接触式IC卡技术图2.32 修改主存储器的时序图第2章 接触式IC卡技术6) 修改加密存储器命令格式如下修改加密存储器命令格式如下: 为保护参照字字节,这一命令仅当PSC成功校验之后方能执行,否则,只能对错误计数器(地址0)进行由“1”写“0”的操作。该命令所要求的执行时间和时钟脉冲数与执行修改主存储器的情况相同。 第2章 接触式IC卡技术7) 写保护存储器(Write Protection Memory)写保护存储器命令格式如下: 写保护存储器命令的执行过程包含一个把被输入的数据与在EEPROM中对应数据进行比较的过程。在确认一致的情况下,保护字位被写0,从而使得主存储器中的信息不可更改。如果数据比较结果不一致,则保护字位的写操作将被禁止执行。该命令所要求的时钟脉冲和执行时间与修改主存储器命令的情况相同。第2章 接触式IC卡技术8) 比较校验数据(Compare Varification Data)比较校验数据命令格式如下: 比较校验数据命令必须与修改错误计数器的过程同时执行。该命令把输入的“校验数据”的各个字节与相对应的参照数据(存放在加密存储器中)进行比较,这一过程将在处理模式中需要给出时钟脉冲。比较校验数据命令的时序如图2.33所示。第2章 接触式IC卡技术图2.33 比较校验数据命令的时序图第2章 接触式IC卡技术 5. 5. PSCPSC校验校验 如果需要修改SLE4442的数据,则必须正确校验存储在加密存储器中的可编程加密代码PSC。校验的过程并不是仅由比较校验数据命令来完成的,而是由多个命令构成的一个流程来共同完成,PSC校验流程见图2.34。这一流程必须被精确地执行,任何变化都将导致校验失败,从而使写入/擦除操作被禁止。只要校验过程未能成功完成,密码错误计数器的一个字位将只会被从“l”写成“0”,并且不能被擦除。第2章 接触式IC卡技术 首先用一个修改加密存储器命令将密码错误计数器中的一位写0。 然后紧跟着三条比较校验数据命令。比较从参照数据的字节1开始。整个比较过程成功与否是用能否擦除密码错误计数器来证实的,密码错误计数器不能自动擦除。如果比较成功,则擦除操作执行有效,这时只要不断电,对整个芯片各存储器的各区域的写入/擦除处理都可以进行;如果比较不成功,擦除操作执行无效,密码错误计数器将不会恢复为“111”。但只要EC不全为0,就允许外部接口设备IFD对芯片进行重试。 当校验数据比较成功,加密存储器也同样被打开时,其单元中的参照数据也可以像其他EEPROM单元一样被读出和修改。第2章 接触式IC卡技术图2.34 PSC校验流程第2章 接触式IC卡技术表表2.13 2.13 PSCPSC校验命令一览表校验命令一览表第2章 接触式IC卡技术 6 6中止与错误状态中止与错误状态 1) 中止(Break) 在CLK为低状态期间,如果RST置为高状态,则任何操作均无效,I/O线被锁定到高阻状态(Z状态)。需要一个最小维持时间tRES=5 s 之后,芯片才能接收新的有效复位。中止后芯片准备做进一步的操作。第2章 接触式IC卡技术 2) 错误状态(Failures) 在芯片操作过程中,可能出现以下几种操作失败的情况: (1) 比较失败。 (2) 错误命令。 (3) 不正确的命令脉冲数。 (4) 对已被保护的字节进行重写或擦除操作。 (5) 对保护存储器的一位进行重写或擦除操作。 在上述错误发生时,芯片总是在8个时钟脉冲的最后,将I/O线置成高阻状态(Z状态)。第2章 接触式IC卡技术2.6.3 2.6.3 面向字节操作的单存储器结构逻辑加密卡面向字节操作的单存储器结构逻辑加密卡 AT88SC1604是由美国Atmel公司设计的单存储器多逻辑分区结构的逻辑加密卡芯片。它具有15 704 b的存储容量,是目前逻辑加密卡中容量较大的一种产品芯片。它所具有的完全隔离的多功能分区结构,使得“一卡多用”功能在硬件上得到了充分的保障;而它的“控制读写”与“控制擦除”两套密码体制使得卡片在发行管理和操作使用方面既安全可靠又方便实用。第2章 接触式IC卡技术 1 1芯片特点芯片特点 (1) AT88SC1604芯片属于单存储器多逻辑分区结构。主存储器除划分了特定的标志数据区和控制数据区之外,还将应用数据区分成四个完全隔离的子区,并在每个子区中配备了各自的读、写控制标志和写入/擦除密码以及密码输入错误计数器等逻辑控制。 (2) 芯片为串行传输方式,并满足ISO/IEC 7816-3同步传输协议。 (3) 芯片采用低功耗的CMOS工艺制造,每字位的读取时间为2 s ,写周期为5 ms。 (4) 芯片内部设计有电压提升电路,保证使用单+5 V电源电压能够完成对芯片的读/写/擦除等各类编程操作。 (5) 芯片的存储单元具有至少104次的擦除/改写循环次数。数据保存期为10年。第2章 接触式IC卡技术2 2存储器分区结构存储器分区结构表表2.14 2.14 AT88SC1604AT88SC1604存储分区结构表存储分区结构表第2章 接触式IC卡技术续表续表第2章 接触式IC卡技术 1) 制造商代码区(FZ, Fabrication Zone) 制造商代码区用于记录卡芯片生产商的特定信息(例如,生产批号、日期、以及特别制定的特征代码)。这个区域里的单元信息一般由制造厂商或由发行商与制造商商定,并由制造商在芯片出厂前写入。在控制本区的熔丝(FUSE1)没有熔断时,该区的存储单元可以像普通的EEPROM存储单元一样进行擦除和改写。一旦熔丝熔断,所写入的“制造商代码”就不可再更改。在芯片出厂时,厂商一般均将此代码注入,并熔断保护熔丝(FUSE1),从而使写入该区的标识信息不可更改,只可以读出。 正是由于这个标识代号可以由生产商与发行商事先选定,并在注入后将保护熔丝熔断,以确保日后不可更改,因此在卡片发行应用中,将这一标识作为系统中验证卡片真伪的重要标识。第2章 接触式IC卡技术 2) 发行商代码区(IZ,Issuer Zone) 发行商代码区用于记录卡片发行商的特定信息(例如,发行批号、日期、地区范围编号以及特定用户编号等特征代码)。这个区域里的单元信息是在卡片进行个人化处理的过程中写入。当控制本区的熔丝没有熔断时,该区的存储单元内容可以自由地擦除或改写。在个人化处理过程完成之后,控制该区的熔丝(FUSE2)熔断,即可将注入的“发行商代码”完全固化。在随后的卡片应用中,该区的内容不可更改,但可以任意读出。这一代码也是识别卡片的真伪,区分卡片应用类别的重要标识。第2章 接触式IC卡技术 3) 个人代码区(CPZ,Code Protected Zone) 个人代码区用于存放个人身份标识数据。该区使用上受芯片的“用户密码”的保护。当“用户密码”比较成功时,该区可读/写/擦除。“用户密码”比较不成功,该区只能读而不能写入和擦除。第2章 接触式IC卡技术 4) 用户密码区(SC,Security Code) 用户密码区是整个存储器的“总控制开关”。使用前,由授权持卡人预先输入的一个安全代码作为“参照字”储存在这个存储区里。使用时,必须输入一个“校验密码”。芯片将输入的“校验密码”与内部存储器的“参照字”一一比较。如果比较结果一致,芯片内部置密码比较有效标志SV为“1”,并开放整个芯片储存器(包括各分区的控制密码和各应用数据区)。如果比较结果不一致,芯片内部保持SV为“0”,并禁止外部对各分区的控制密码区和应用数据区进行擦除和写入操作。除FZ、IZ、CPZ等区域可读出外,其他应用区能否读出需由各分区“读控制标志”的状态来控制。第2章 接触式IC卡技术 各分区的安全密码区SCn(n=1,2,3,4)与SC的作用是完全类似的。SC控制整个芯片存储器,SCn只控制其相对应的分区部分。由于SC的控制级别高于SCn,因此当SC的比较操作失败时,对SCn的比较操作也被禁止,而操作的顺序也只能是先通过SC比较成功,再进行SCn的比较操作。 对于各分区的密码区SCn(其中n=1,2,3,4)来说,其比较操作要受到对应应用区密码比较计数器(SnAC)的计数控制。当连续8次输入密码错误时,SCn将被锁死,这将使应用n区的存储单元不能再进行擦除和写入操作。能否读出,还需由应用n区读标志Rn的状态来决定。第2章 接触式IC卡技术 5) 密码比较计数区(SCAC,Security Code Attempts Counter) 为了防止“用户密码”被非授权持卡人恶意跟踪猜测,最简单的方法是对输入的“校验密码”比较操作的次数进行限制。该区正是用于对连续输入的错误密码的次数进行累计。当连续进行8次不正确的比较操作之后,芯片将被锁死。芯片被锁死之后,将拒绝任何的写入、擦除和比较的操作命令。第2章 接触式IC卡技术 密码比较计数区是8位长,按位写入方式操作。在芯片初始化时是全1状态,即读出值为“FFH”。在每次比较输入的密码时,先按从高位到低位的顺序找第一个为“1”的位,将此位写“0”,然后将新输入的“校验密码”与原存储在SC区的“参照字”进行比较。比较操作本身由芯片内部自行完成,而比较结果则通过SV标志来判别,即比较成功时,SV被置“1”;比较不成功时,SV保持原来的“0”状态。在连续8次比较错误过程中每次比较操作之后计数器的计数值分别为“7FH”、“3FH”、“1FH”、“0FH”、“07H”、“03H”、“01H”、“00H”。当计数器为“00H”后,后续的比较操作命令由于无法在SCAC区中找到一个为“1”的位,因而芯片拒绝继续执行比较操作。第2章 接触式IC卡技术 SCAC区本身是可以写入的。如果需要提高保密强度,可以人为地将允许比较输入密码的次数减少。其实现的方法是:在每次将计数器擦除为“FFH”值之后,紧跟着写入一个需要的值(可取上述8个状态值之一)。如写入“0FH”,则允许四次比较操作;写入“03H”,则只允许两次比较操作;如写入“00H”,则芯片将会被锁死,这相当于将存储器所有的单元完全固化,并形成一张只读型卡片。 SnAC(n1,2,3,4)的作用与SCAC是类似的。操作控制也完全一样。只是SCAC是限制对SC区的比较操作的,而SnAC则限制对SCn区的比较操作, SCAC的控制级别最高。当SCAC为“00H”后,芯片内部封锁了对SC区的比较操作,从而使对SCn的比较也被禁止。如果SCAC为非“00H”值,则在对SC区的比较密码操作成功之后,SCn能否进行比较操作就由SnAC区的状态值来决定。第2章 接触式IC卡技术 6) 擦除密码区(EZn(n=1,2,3,4),Erase Key) 擦除密码区用于存储擦除应用区操作的控制密码。这些密码一般由发行商使用。在芯片进行个人化处理之前,该区可以像普通EEPROM存储单元一样进行读/写/擦除操作。在个人化处理时输入最后一组“擦除密码”,在芯片熔丝FUSE2熔断之后将使“擦除密码”保存在该区内。该区不再能进行读/写/擦除操作,只能进行比较操作。在使用过程中如需对应用区进行擦除操作,则必须首先对相应的EZ区输送一个“擦除密码”与之比较,在“擦除密码比较计数器”不为“00H”的情况下,如果相比较的两代码完全一致,则相应的应用区的单元允许擦除,否则将禁止执行擦除操作。第2章 接触式IC卡技术 7) 擦除密码比较计数区(EnAC(n=1,2,3,4),Erase Key Attempts Counter) 擦除密码比较计数区(EnAC)的作用与SCAC的作用相类似。它对各应用区擦除密码连续输入错误的次数进行累计。最多连续进行8次不正确的密码比较之后,该区所控制的应用区的擦除操作即被锁死,从而导致该应用区有可能成为只读和允许单次写入的状态。 擦除密码比较计数器的计数方式与SCAC的方式完全一样。如果需要提高保密强度,也可以置一个“初始值”来减少芯片允许“比较操作”的次数。第2章 接触式IC卡技术 8) 应用数据区(AZn(n1,2,3,4),Application Zone) 应用数据区主要给用户使用,用于存储系统的相关数据记录和卡片标识等信息。应用数据区的写入与读出分别由该区的前两位Pn(写操作标志,各应用分区的第1位)和Rn(读操作标志,各应用分区的第2位)以及SV标志的状态控制,擦除操作则由该区的擦除密码控制。AT88SC1604设计了四个完全隔离的分区,其中13分区的单元容量分别是4 Kb、第4分区的单元容量为36 Kb。第2章 接触式IC卡技术 9) 存储测试区(MTZ,Memory Test Zone) 存储测试区主要用于芯片生产后对EEPROM单元阵列进行各项性能测试。该区不受任何控制区状态和标志状态的保护,允许对这个区进行读/写/擦除操作,但不能进行比较操作。第2章 接触式IC卡技术 3 3芯片的控制标志芯片的控制标志( (Flag)Flag) 1) 密码比较有效标志(SV,Security Validation) 密码比较有效标志属于芯片内部的隐含标志(不可读出)。芯片在每次上电复位之后SV的初始值为“0”。当用户密码比较操作成功(即新输入的“校验密码”与原存储在SC区中的“参照字”完全一样)时,SV被置,否则SV仍保持为“0”。在一次有效加电的全过程中,SV标志一旦被置“1”,将一直保持有效。在此期间SC区不能再做比较操作,直到芯片掉电。当SC仍为“0”状态时,如果连续8次输入密码比较错误,将会使SV标志被锁定为“0”状态,并且不能再改变。SV标志的控制作用非常重要。第2章 接触式IC卡技术 2) 应用区安全密码比较有效标志(Sn,n=1,2,3,4) 应用区安全密码比较有效标志都属于芯片内部的隐含标志(不可读出)。芯片的Sn标志在每次上电复位后的状态值为“0”。当输入的“应用区密码”与原存储在SCn区里的“参照字”比较一致时,Sn被置“1”,否则仍保持为“0”。在一次有效加电过程中,Sn标志一旦被置“1”,将一直保持有效,直到芯片掉电。Sn与SV的作用基本相同,区别在于:SV标志是控制整个存储器。包含各存储分区(标识区、控制区和应用区)在内。而Sn只控制相应的子分区部分。Sn与SV一样,在连续8次输入密码比较失败(即SnAC计数为“00H”值)后,Sn标志被锁死在“0”状态,并且不能再改变。第2章 接触式IC卡技术2.7 2.7 实训实训3 3:接触式逻辑加密卡的操作控制:接触式逻辑加密卡的操作控制 1 1实训目的实训目的 (1) 进一步理解和掌握SLE4442逻辑加密卡的操作时序。 (2) 掌握按操作时序编写和调试逻辑加密卡操作(读/写)控制程序的方法。第2章 接触式IC卡技术 2 2实训设备与器件实训设备与器件 (1) 实训设备:通用接触式IC卡读写器及其DEMO软件,586电脑,5 V稳压电源,MCS-51系列单片机仿真系统。 (2) 实训器件:SLE4442卡,接触式IC卡卡座,PNP三极管9012,电阻10 k4 、1.2 k 1 ,40脚IC座。 (3) 实训电路:接触式逻辑加密卡接口电路如图2.35所示。其中除RST端接AT89C51的P1.2脚外,其他与接触式存储卡接口电路(参见实训2)完全相同,在此不再赘述。第2章 接触式IC卡技术图图2.35 2.35 SLE4442SLE4442接口电路原理图接口电路原理图第2章 接触式IC卡技术 3 3实训步骤与要求实训步骤与要求 1) 实训准备 (1) 在实训2接口电路中加接RST端及其上拉电阻,用万用表测试电路,确认连接无误。 (2) 认真阅读所附的实训程序,对照时序(参见本节)进一步理解读主存储器、修改主存储器以及PSC校验功能的程序实现过程,以及所调用的各功能子程序COMMAND、OPERA、SHOUT、SHIN、RESET的程序实现方式。第2章 接触式IC卡技术 2) 程序调试 (1) 利用接触式IC卡读写器查看并记录SLE4442卡的主存储器内容、错误计数器状态。 (2) 用万用表检查电路,确认连接正确。将MCS-51系列单片机仿真器的仿真头插入实验电路板上的40脚IC座。在MCS-51系列单片机仿真开发系统中打开并编译实训范例程序。在片内RAM(20H)单元中设置读卡主存储器的首地址(例如00H),在21H单元设置读卡主存储器的字节数(例如0FH),在写数据缓冲区设置数据,清零读数据缓冲区1、2,在程序标志处设置断点。 (3) 调试读主存储器程序。插卡运行程序,程序在断点处暂停时记录读数据缓冲区1的内容,与步骤(1)的记录相比较,验证读主存储器程序是否正确。第2章 接触式IC卡技术 (4) 调试PSC校验程序。继续运行程序,程序在断点处暂停时,记录A累加器与R4寄存器内容,比较两者及步骤(1)记录的错误计数器值是否相同。 (5) 继续运行程序,调试写主存储器程序。程序在断点处暂停时,记录读数据缓冲区2数据,验证是否正确写入(是否与写数据缓冲区一致)。当写入不正确时,可能的出错原因有哪些?第2章 接触式IC卡技术 4 4实训总结与分析实训总结与分析 (1) 分析程序可以看到,各命令子程序均按照本节所述的命令时序编写。而所有命令的发送则按照命令的格式编写命令子程序COMMAND来实现,发送命令后处理模式及数据输出模式的实现则由OPERA和SHIN子程序完成。目前市面上的逻辑加密卡芯片多种多样,其操作规程并没有完全固定的标准,然而,其工作原理是类似的。学习SLE4442的读写控制技术,重在掌握其分析、开发方法,举一反三,其他类型的逻辑加密卡的操作控制,同样可以根据其命令格式、操作时序编程实现。第2章 接触式IC卡技术 (2) 当程序在断点处暂停时,若A累加器与R4寄存器内容相同,则说明错误计数器擦除成功,PSC校验正确;否则说明错误计数器擦除不成功,PSC校验失败。PSC校验失败有可能是密码不正确,也有可能是PSC校验程序有错,这时应退出程序用读写器检查密码是否正确,若密码正确,则必须逐段调试PSC校验子程序,查找错误点。最常见的错误是PSC校验流程不完整,修改加密存储器命令错误(特别是擦除错误计数器命令出错)等。 (3) 程序在断点处暂停时,若读数据缓冲区2的数据与写数据缓冲区一致,则表明写入正确,反之表明写入出错。可能的出错原因主要有PSC校验失败、处理模式子程序未能发送足够的脉冲数等。第2章 接触式IC卡技术 5 5思考思考 (1) 自行根据命令时序编写读/写保护存储器子程序。 (2) 若用SLE4442卡及其接口电路构成一个接触式IC卡门禁机,主要可以从哪些环节保证门禁的安全性?画出接触式IC卡门禁机硬件框图,编写门禁操作主程序。第2章 接触式IC卡技术 6 6附录附录实训范例主程序实训范例主程序 程序读出主存储器任意地址为首的016个单元的内容,读主存储器的首地址置入20H单元,读主存储器的字节数置入21H单元,读入的数据存放在以30H为首地址的读数据缓冲区1中。 程序在校验PSC成功之后修改主存储器上述单元的内容,源数据存放在以50H为首地址的写数据缓冲区中。PSC校验失败将退出程序。 程序在修改主存储器后再次读出被修改的各单元内容,读入的数据存放在以40H为首地址的读数据缓冲区2中。第2章 接触式IC卡技术 实验用的SLE4442卡初始密码PSC1、PSC2、PSC3均为0FFH。读加密存储器的内容暂存于22H单元错误计数器、23H单元密码字节1、24H单元密码字节2、25H单元密码字节3。 本程序对应晶振12 MHz的情况,DELAY_12 s、DELAY_4 s和DELAY_10 ms分别为延时12 s、延时4 s和延时10 ms子程序,请读者自行编写。 第2章 接触式IC卡技术IO BIT P1.0CLKBITP1.1RST BIT P1.2ICSW BIT P1.6 PWR BIT P1.7PSC1 EQU 0FFHPSC2 EQU 0FFHPSC3 EQU 0FFH ORG 0000H LJMP MAIN;*主程序*ORG 0030H第2章 接触式IC卡技术MAIN: CLR EA;关中断 MOV SP,#60H;设置堆栈 LCALL PWRON;上电控制 LCALL RESET;复位 MOV R0,#30H;设置读数据缓冲区1首地址 LCALL READ;读主存储器 NOP;断点 LCALL COMP;PSC校验 XRL A,R4;断点,检查PSC校验是否正确 JNZ EXIT;PSC校验失败退出 MOV R0,#50H;设置写数据缓冲区首地址 LCALL WRITE;修改主存储器 MOV R0,#40H;设置读数据缓冲区2首地址 LCALL READ;读主存储器第2章 接触式IC卡技术EXIT:NOP ;断点LCALL PWROFF ;下电控制SJMP $;*读主存储器子程序* READ: MOV R7,#30H;设置读主存储器命令控制字 MOV R6,20H;取读主存储器命令地址字 MOV R5,#00H;设置读主存储器命令数据字(任意) MOV R4,21H;取要读的字节数 MOV R3,21H;要读的字节数暂存R3 MOV R2,#00H LCALL COMMAND;送命令给卡第2章 接触式IC卡技术READ0:LCALL SHIN;读数据(输出数据模式) MOV R0,A;送数据入数据缓冲区 INC R0 DJNZ R4,READ0;未读完继续 CLR C;计算剩余的主存储器字节数 MOV A,#0FFH SUBB A,R6 SUBB A,R3 INC A MOV R2,A第2章 接触式IC卡技术READ1:LCALL SHIN;读入剩余的主存储器字节 DJNZ R2,READ1 SETB CLK;发送一个附加脉冲 LCALL DELAY_4 s CLR CLK LCALL DELAY_4s SETB IO;置位数据线 LCALL DELAY_4 s RET;*修改主存储器子程序*第2章 接触式IC卡技术WRITE: MOV R4,21H;取要写的字节数WRITE0:MOV R7,#38H;设置修改主存储器命令控制字 MOV R6,20H;取修改主存储器命令地址字 MOV A,R0 MOV R5,A;取修改主存储器命令数据字 LCALL COMMAND;送修改主存储器命令给卡 LCALL OPERA254;处理模式 INC 32H;地址字指向主存储器下一个单元 INC R0;指向下一个数据 DJNZ R4,WRITE0 ;未写完继续 RET;*PSC校验子程序*第2章 接触式IC卡技术COMP: MOV R7,#31H;设置读加密存储器命令控制字 MOV R6,#00H;设置读加密存储器命令地址字(00H为错误计数器) MOV R5,#00H;设置读加密存储器命令数据字(任意) LCALL COMMAND;送读加密存储器命令 LCALL SHIN;读错误计数器 MOV 22H,A;错误计数器值暂存22H单元LCALL SHIN;继续读入加密存储器后3个字节MOV 23H,ALCALL SHINMOV 24H,ALCALL SHINMOV 25H,AMOV A,22HSETB IO;附加一个脉冲,置数据线为高LCALL DELAY_4s 第2章 接触式IC卡技术 SETB CLK LCALL DELAY_4 s CLR CLK JB ACC.0,NEXT0;判断错误计数器中是否还有“1” JB ACC.1,NEXT1;如有“1”则减去一个“1” JB ACC.0,COMP2 LJMP EXIT;错误计数器为全“0”退出NEXT0:MOV R5,#06H MOV R4,#07H AJMP COMP0NEXT1:MOV R5,#04H MOV R4,#06H AJMP COMP0第2章 接触式IC卡技术NEXT2:MOV R5,#00HMOV R4,#04HCOMP0:MOV R7,#39H;设置修改加密存储器命令控制字 MOV R6,#00H;设置修改加密存储器命令地址字(错误计数器)LCALL COMMAND;送修改加密存储器命令(错误计数器减一个1)LCALL OPERA123;处理模式MOV R7,#33H;设置PSC校验命令控制字MOV R6,#01H;设置PSC校验命令地址字MOV R5,#PSC1;取PSC第1个字节LCALL COMMAND;送PSC校验命令给卡LCALL OPERA123;处理模式MOV R7,#33H;设置PSC校验命令控制字MOV R6,#02H;设置PSC校验命令地址字第2章 接触式IC卡技术MOV R5,#PSC2;取PSC第2个字节LCALL COMMAND;送PSC校验命令给卡LCALL OPERA123;处理模式MOV R7,#33H;设置PSC校验命令控制字MOV R6,#03H;设置PSC校验命令地址字MOV R5,#PSC3;取PSC第3个字节LCALL COMMAND;送PSC校验命令给卡LCALL OPERA123;处理模式MOV R7,#39H;设置修改加密存储器命令控制字MOV R6,#00H;设置修改加密存储器命令地址字(错误计数器)MOV R5,R4;取修改加密存储器命令数据字(擦除错误计数器)LCALL COMMAND;送修改加密存储器(擦除错误计数器)命令给卡LCALL OPERA123;处理模式第2章 接触式IC卡技术MOV R7,#31H;设置读加密存储器命令控制字MOV R6,#00H;设置读加密存储器命令地址字(错误计数器)MOV R5,#00H;设置读加密存储器命令数据字(任意)LCALL COMMAND;送读加密存储器命令给卡LCALL SHIN;读加密存储器的错误计数器MOV 22H,ALCALL SHIN;读加密存储器的后3个字节MOV 23H,ALCALL SHINMOV 24H,ALCALL SHINMOV 25H,AMOV A,22HSETB IO;附加一个脉冲,置数据线为高LCALL DELAY_4s SETB CLKLCALL DELAY_4s CLR CLK第2章 接触式IC卡技术EXIT: RET;*命令子程序*;该子程序送出3字节的SLE4442命令;入口参数:R7为控制字,R6为地址字,R5为数据字;调用时CLK为低,IO为高;返回时CLK为高,IO为高COMMAND: SETB CLK LCALL DELAY_12s CLR IO LCALL DELAY_4s CLR CLK LCALL DELAY_4s MOV A,R7 LCALL SHOUT MOV A,R6 LCALL SHOUT MOV A,R5 LCALL SHOUT LCALL DELAY_4s第2章 接触式IC卡技术 CLR IO LCALL DELAY_4s SETB CLK LCALL DELAY_4 s SETB IO RET;*串行输出一个字节子程序*SHOUT: PUSH B MOV B,#08HX42: RRC A MOV IO,C NOP SETB CLK LCALL DELAY_4s CLR CLK LCALL DELAY_4s DJNZ B,X42 POP B RET第2章 接触式IC卡技术;*串行输入一个字节子程序*SHIN: CLR CLK PUSH B MOV B,#08HX43: LCALL DELAY_4 s SETB CLK MOV C,IO RRC A LCALL DELAY_4 s CLR CLK DJNZ B,X43 POP B RET第2章 接触式IC卡技术;*处理模式1子程序*OPERA123: MOV R7,#123D CLR CLK CLR IO LCALL DELAY_4s OPERA0:SETB CLK LCALL DELAY_4s CLR CLK LCALL DELAY_4s OPERA0:SETB CLK LCALL DELAY_4s CLR CLK 第2章 接触式IC卡技术 LCALL DELAY_4s DJNZ R7,OPERA0 SETB IO LCALL DELAY_4 s SETB CLK LCALL DELAY_4 s CLR CLK RET;*处理模式2子程序* OPERA254: MOV R7,#254D CLR CLK CLR IO LCALL DELAY_4 s 第2章 接触式IC卡技术OPERA1:SETB CLK LCALL DELAY_4 s CLR CLK LCALL DELAY_4 s DJNZ R7,OPERA1 SETB IO LCALL DELAY_4 s SETB CLK LCALL DELAY_4 s CLR CLK RET;*复位子程序*第2章 接触式IC卡技术RESET: CLR RST CLR CLK CLR IO LCALL DELAY_12 s LCALL DELAY_12 s SETB RST LCALL DELAY_12 s SETB CLK LCALL DELAY_12 s CLR CLK LCALL DELAY_12 s CLR RST LCALL DELAY_12 s MOV B,#20H第2章 接触式IC卡技术RESET0: SETB CLK LCALL DELAY_12 s CLR CLK LCALL DELAY_12 s DJNZ B,RESET0 SETB IO RET;*上电控制子程序*PWRON: CLR RST CLR IO CLR CLK LCALL RECOG CLR RST CLR CLK LCALL DELAY_10 ms CLR PWR CLR IO RET第2章 接触式IC卡技术RECOG: JB ICSW,RECOG LCALL DELAY_10 ms JB ICSW,RECOG RET;*下电控制子程序*PWROFF: CLR RST CLR CLK CLR IO LCALL DELAY_10 ms SETB PWR RET END第2章 接触式IC卡技术2.8 2.8 接触式接触式ICIC卡接口技术卡接口技术 (1) IC卡插入/退出的识别与控制,或IC卡进入/退出射频识别范围; (2) 通过触点或射频方式向接触式或非接触式卡提供稳定的电源和时钟;(3) 实现与卡的数据交换,并提供相应控制信号;(4) 为加密数据系统提供相应加密/解密处理及密钥管理机制;(5) 提供相应外部控制信息,与PC等其他设备进行信息交换。第2章 接触式IC卡技术2.8.1 2.8.1 ICIC卡接口设备的形式卡接口设备的形式 IC卡接口设备可以是一个独立面向应用的应用机具或者以从设备(或称外部设备)的方式与主设备(一般为微机)一起构成一个IC卡应用系统。前者称为专用读写器,后者称为通用读写器。 1 1专用读写器专用读写器 专用读写器是专门为某种用途设计,不具备再开发功能的专用独立装置。它本身已具备某种完整的固定用途,如IC卡门锁、IC卡电话、IC卡公用事业预收费仪表、IC卡公共汽车收费机、IC卡出租车计价器等,使用方式和功能在出厂前已由厂家设置,用户仅可根据具体使用情况做小范围设定。第2章 接触式IC卡技术 2 2通用读写器通用读写器 通用读写器多数以从设备形式与PC等后端装置构成IC卡应用系统,其本身并不限于某种固定用途,功能上仅完成面向IC卡的读写操作,但具备与后端通信的丰富灵活的软、硬件接口,可借助PC等进行二次开发,且常可支持多种类型的卡,为专用读写器所不及。 通用读写器有联机和脱机两种类型。第2章 接触式IC卡技术 1) 联机型读写器 联机型读写器分内置式和外置式两种。 (1) 内置式读写器外形尺寸类似3.5英寸软盘驱动器,可直接安装于PC机箱前面板,由PC电源供电。其与PC间有并行和串行两种信息交换方式,前者将读写器主板插入PC主板扩展槽,仅将卡座置于PC前面板,以并行方式与PC通信,这种方式数据传输率高,但要占用一个扩展槽;后者则将读写器的卡座与主板以同一封装置于PC前面板,通过串口与PC相接。虽然其数据传输率相对低,但结构简单,仅占用一个PC串口,因此得以较多运用。 (2) 外置式读写器置于PC外部,通过串口与之相接,功能与内置式相近,但常常自带交/直流稳压电源,外形尺寸设计和位置摆放灵活,以适应不同场合的需求。第2章 接触式IC卡技术 2) 脱机型读写器 脱机型读写器是一种可独立完成某些具体工作的读写装置,它们常常拥有简易键盘、LED/LCD显示屏甚至打印接口等人机界面,数据存储空间可达64 KB2 MB,程序空间也较大,有些还带有软、硬件汉字库和实时时钟芯片,以输出汉字和年、月、日、星期、时、分、秒时间信息。一般有台式(挂式)和手持式两种。 (1) 台式(或挂式)读写器可置于工作台或挂于墙壁上使用,内置交/直流稳压电源,可单机独立工作(借助大容量IC卡进行信息的传送),也可联网使用(通过RS232/RS485接口实现局域网通信或借助内置Modem,通过公共电话网等实现广域网传输)。它可用于商场、宾馆、娱乐场所收费或用于考勤、税务申报等。第2章 接触式IC卡技术 (2) 手持式读写器功能与台式读写器相近,但体积小巧、便于携带,采用电池供电。鉴于使用环境条件常较恶劣,因此防水、防尘、防磁、耐高/低温、抗碰撞性能均较强。部分手持机设置有14个SAM卡插座,以保证金融等部门的特殊安全保密需要。在公安执法、工商税务等流动场合,甚至饭店酒楼的菜肴点选中,均得以应用。第2章 接触式IC卡技术2.8.2 2.8.2 接触式接触式ICIC卡接口设备的硬件组成卡接口设备的硬件组成图2.36 IC卡读写器逻辑结构第2章 接触式IC卡技术 1 1卡座卡座 卡座是读写器与卡的物理连接部件,是影响读写器寿命的主要因素,也是设计或选购读写器的重要指标。它包括与卡接触的8个片触点,检测“插卡到位”的一对状态开关,固定和弹出卡的机械装置,与输入接口电路相接的电气终端和安装基座。各厂家为迎合各类不同的使用需求,推出了多种多样结构、性能、外形、价格的IC卡卡座以供选用,主要可在以下几个方面进行区分: 第2章 接触式IC卡技术 1) 按触点接触方式分类 (1) 滑触式(Sliding):也称滑动式,该方式的8个片触点处于固定位置,当IC卡由卡座插入,抵达正常位置时,簧片触点与卡触点接触,卡座的状态开关断开或闭合,输出“插卡到位”信号,卡被簧片触点弹力所固定。退卡时,用力将卡向外拔即可。显然,卡的插拔过程中,簧片触点与卡触点均承受较大滑动摩擦,因而影响寿命,最大插拔次数仅510万次,优点是结构简单、价格低。第2章 接触式IC卡技术 (2) 着落式(Landing):也称下落式、下压式。特点是:在卡插入的起始阶段,卡与簧片触点不接触,仅当插到一定位置时,触点才与卡同步运动逐渐下压。到终点时,卡触点与簧片触点完全接触(除此“簧片触点下压”方式外,还有“卡下压”方式,原理类同)。由于在卡的插入过程中卡与簧片触点无相对位移,因此磨损小、寿命长,插拔次数可达30100万次,但价格也较滑触式高出许多。第2章 接触式IC卡技术 2) 按卡的插入/退出形式分类 (1) 推入拉出式:插卡时用力将卡推入,卡座尾部弹性部件固定卡于工作位置。退卡时用力外拔即可。 (2) 推入推入弹出式:插卡时用力将卡推入,卡座尾部锁紧机构锁定卡于固定位置。退卡时再次向里推卡,锁紧机构释放,并将卡弹出。 (3) 推入自动弹出式:插卡时用力将卡推入,锁紧机构锁定卡于工作位置。操作完毕后,系统自动向电磁阀发一脉冲,在电磁阀作用下锁定机构释放,卡在弹簧作用下弹出。该方式一般用于金融、公用电话等较高级的场合。第2章 接触式IC卡技术 (4) 推入提/压式:插卡时用力将卡推入,锁紧机构锁定卡于工作位置。退卡时轻提或轻压锁紧装置杠杆,卡在弹簧作用下弹出。 (5) 只推式:插卡时用力将卡推入,并保持一段时间(手不松开),操作完毕后松手,卡在弹簧作用下弹出。适用于操作时间短、插卡频繁,且速度要求快的地铁、电影院等场合。 (6) 电动出入卡式:插卡时将卡轻轻插入插口,在内部电动机构驱动下,卡自动进入轨道。操作完成后,卡自动送出。其走卡平稳可靠,但结构复杂、价格昂贵。第2章 接触式IC卡技术 3) 选择卡座的标准和依据 在选用IC卡卡座时,以下几个重要的指标是选用的主要依据:(1) 触点电气性能及与卡接触的可靠性;(2) 插拔寿命;(3) 对卡触点及其他部分的磨损程度;(4) 卡从接触好到识别有效的位置差;(5) 价格因素;(6) 对应用现场的适应性。第2章 接触式IC卡技术 2输入接口电路输入接口电路 IC卡的输入接口电路是连接IC卡与读写器的通路,由它实现对IC卡的供电并满足不带电插拔IC卡的要求,以及实现时钟供给和信号的可靠传输。 1) 电源供给 IC卡的电源由读写器输入接口获取,为避免因电源对地短路而损坏IC卡或金属片插入造成读写器短路损坏,必须对读写器的电源输出回路采取过流保护措施,以便在出现短路时及时切断供电电源,但同时又不能影响整个读写器的其他工作,则对IC卡和读写器应分别设置各自独立的供电电路,如图2.37所示。 第2章 接触式IC卡技术图2.37 IC卡接口设备的供电回路 第2章 接触式IC卡技术 图中IC卡电源由78L05及其供电回路提供,而读写器的供电(VCC电源端)由另一稳压回路提供。78L05是带输出短路保护特性的三端稳压器,最大输出电流为100 mA,短路保护电流起点为150200 mA左右,符合ISO/IEC 7816-3所规定的范围。当卡插入到位时,SW2与SW1组合成的状态开关断开或闭合,微处理器接收此信号而置低PWR端,使三极管V1导通,对卡VCC端加电。若此时插入的是一电源对地短路卡,则78L05将因过载而切断输出,直到该卡退出为止。 第2章 接触式IC卡技术 2) 时钟供给 不同类型IC卡的通信协议不尽相同,所用时钟频率也不同,例如当取用ISO/IEC 7816-3T= 0异步半双工字符传输协议时的时钟频率为0100 kHz;而采用T=1异步半双工块传输协议时则可能需要兆赫级时钟。对前者可由微处理器程序控制产生,后者则应考虑通过专用晶振分频电路获取,如图2.38所示。其时钟的输出与否受控于微处理器的P1.0端输出。 第2章 接触式IC卡技术图2.38 异步型IC卡接口的电路原理图 第2章 接触式IC卡技术 3) 信号传输 IC卡芯片的逻辑端口一般采用漏极(集电极)开路输出及非嵌位保护式输入结构,因此,读写器输入接口电路与IC卡各信号端口的接口必须外加上拉电阻。同时,为抑制线路干扰和逻辑电平变化的边沿抖动带来的瞬态高电压,图2.39所示的所有IC卡信号接口部分均加入钳位二极管,使各引脚电压严格限制于-VDVCC+VD(VD为二极管正向压降)。集电极开路输出缓冲驱动器7407则起隔离驱动作用。 第2章 接触式IC卡技术图2.39 同步型IC卡接口的电路原理图 第2章 接触式IC卡技术 3存储器存储器 存储器包括用于存储程序及单价、表格、黑名单、汉字字库等要素的紫外擦除电可编程只读存储器EEPROM、存放中间结果和暂存数据的随机存储器RAM。为减小体积和功耗,一般均选用内含一定数量存储器的单片微处理器。若不够用,也可片外扩充,但体积、功耗增大。 第2章 接触式IC卡技术 4微处理器微处理器 微处理器是读写器的核心,与前后端(卡及PC机)的所有信息交换和内部信息处理,均由其控制实现,一般均采用工业控制单片机,如内含4 KB/8 KB Flash程序存储器、128 B/ 256 B数据RAM,指令系统和引脚与MCS-51系列单片机100兼容的AT89C51/52。当对体积、功耗有更苛刻的要求,且功能相对简单时,可选用内带1 KB/2 KB Flash程序存储器、64 B/128 B数据存储器的紧凑型芯片AT89C1051/2051。该二类芯片程序空间均可电擦除重复编程1000次,数据保存时间大于10年,且具有极强的加密能力(如AT89C1051/201设有2级程序加密,AT89C51/52则可3级程序加密),能有效防范对程序的非法访问和复制。 第2章 接触式IC卡技术 在某些功能更复杂、对程序空间要求更大的场合,也可选用 80C31单片机与PSD3xx系列可编程系统器件(PSD,Programmable System Device)组合结构。80C31与一片PSD311/312/313直接简单对接,即可获得32 KB/64 KB/128 KB寻址能力,且体积小、功耗低(这是手持机最需要的),并可进行加密保护,阻止对PSD3xx内部程序的读取。 第2章 接触式IC卡技术 5密码运算处理单元密码运算处理单元 加密/解密运算是保证系统安全的重要手段,因密码/密钥字长达64512 b,且常需进行大指数模运算(如RSA算法),若依靠8位微处理器计算,耗时可能很长,故必要时可增设密码运算处理单元,以大大缩短加密/解密运算时间。 第2章 接触式IC卡技术 6外围接口外围接口 读写器的外围接口对象通常为LED(数码)或LCD(字符、点阵)显示屏和简易键盘,PC机以及条码阅读器、电量传感器等信号输入设备,电磁锁、电闸等被控对象。例如,POS手持机即常常带有便于输入密码的小键盘和LCD显示屏。 与PC机的通信多取RS232或RS485串行通信标准(也有取并行通信方式的),并配以MAX232、MAX485/491接口驱动芯片。通信速率可由程序设定或键控选择。例如,RS232方式的通信速率即可设置为1200 b/s的1、2、4、8倍可调,其最大通信距离为15 m,可借助长线驱动延长;对速度和距离要求更高的场合,则可取用RS485标准,其最高通信速率为10 Mb/s(传送距离为15 m),最大传输距离为12 km(100 kb/s)。采用差分输入/输出,允许多个驱动/接收器公用同一传输线的多点应用,适宜总线结构网络。在考勤、售饭、商业POS中应用较多。 第2章 接触式IC卡技术 为实现键盘输入和屏显输出,必须设置相应扫描驱动电路。而当有输出汉字信息要求,且所需显示汉字量较少时,可将相关汉字的点阵数据预置入程序存储器。若所需汉字量较大,则对于PC联机实时通信的读写器,可考虑借用PC汉字库的可能,以简化硬件结构,缺点是显示响应慢;对脱机读写器,则可采用专用汉字库芯片,如内含国际一、二级汉字的GB5199A,其显示速度快,是全汉化通用手持机等的较佳选择,但硬件结构相对复杂。 第2章 接触式IC卡技术 LCD液晶显示器在IC卡读写器中应用极为普遍,其工作温度范围一般在070 。在高温、高寒地区的室外运用时,应选用2080 的宽温或-3080 的特宽温LCD,并应在电路上采取温度补偿措施。为适宜光线较暗环境使用,应取用带背光源的LCD显示屏或另配背光源。 脱机考勤机和不少手持机常要求输出年、月、日、星期、时、分、秒等时间信息,此时可采用不怕掉电、自带锂电池的实时时钟芯片DS12887,也可采用DS1302,改并行输出为串行输出,并减小芯片体积(前者为24引脚封装,后者为8引脚封装),但必须接入备份电源,即平时由+5 V电源供电,停电时由备份电源供电。 第2章 接触式IC卡技术2.8.3 接触式接触式IC卡接口设备的软件设计卡接口设备的软件设计 控制软件是IC卡接口设备的重要组成部分,主要包括: (1) 底层支持软件:用于控制IC卡读写、密码验证等;采用汇编语言编写,且针对不同操作分别形成子程序模块,如加电、下电、密码验证、核对擦除密码、读卡、写卡、写保护位等。 (2) 通信软件:包括读写器与PC的联机通信软件和通过IC卡实现与PC机的信息上传下达的脱机管理软件,用于将PC的管理信息、应用数据、黑名单等下载到读写器,将读写器中的相关消费、记录、时间信息上传至PC。 第2章 接触式IC卡技术 (3) 键盘显示程序:用于读写器人机交互。当有汉字显示要求时,可采用软字库或硬字库方式。软字库的优点是无需硬件支持,但占用较大程序空间,仅适宜少量汉字显示的场合;硬字库则具有显示控制简便、程序设计量小等优点,是显示汉字量较大时的最佳选择。 (4) PC机支持软件:PC端的高级语言程序,主要包括发卡、通信、控制、用户管理等模块。用户管理模块又包含卡片管理、交易统计、报表生成和打印等功能。 读写器内部程序是在相应单片机仿真开发系统上编制调试而成,将仿真开发系统通过的程序装入读写器,一般都不会有问题。 第2章 接触式IC卡技术 1IC卡的插入卡的插入/退出识别与上电退出识别与上电/下电控制下电控制 1) IC卡的插入/退出识别 一般来说,逻辑电路的“1”和“0”只是反映电压大小的关系,都处于带电状态。若带电插拔IC卡,有可能会损坏IC卡芯片。因此,在插拔前应断开向IC卡供电的电源,并切断其逻辑连接,实现对IC卡的保护,即IC卡读写器应保证“先插卡,后上电”和“先下电,后退出(拔卡)”。为此,首先必须能实现IC卡的插入/退出识别。 第2章 接触式IC卡技术 IC卡的插入/退出是通过IC卡卡座上的感应开关(如图2.39所示的SW1、SW2为开关两端)来识别的。根据开关初始状态的不同,分为常开型和常闭型两种。顾名思义,常开型开关当卡未插入时,感应开关处于断开状态,SW1、SW2开路;当卡插入到位时,感应开关闭合,SW1、SW2导通。而常闭型开关正好相反,卡未插入时,感应开关处于闭合状态,SW1、SW2导通;当卡插入到位时,感应开关断开,SW1、SW2开路。将开关的一端SW1接地,另一端SW2接微处理器的输入IC SW(例如P1.6),编写微处理器程序,判断IC SW端电平的高低即可判断开关的通断,从而实现卡的插入/退出识别。为了确保IC卡已准确地插到位置,插入的识别过程必须加入去抖动处理。采用MCS-51汇编语言程序实现的IC卡插入/退出识别程序如下: 第2章 接触式IC卡技术常开型:RECOGO:JB ICSW,RECOGO;若无卡插入则等待 LCALL DELAY_5 ms;延迟5 ms去抖 JB ICSW,RECOGO;再次判断,若无卡插入则等待 RET;有卡插入则返回常闭型:RECOGC:JNB ICSW,RECOGC;若无卡插入则等待 LCALL DELAY_5 ms;延迟5 ms去抖 JNB ICSW,RECOGC ;再次判断,若无卡插入则等待 RET;有卡插入则返回 第2章 接触式IC卡技术 2) 上电/下电控制 IC卡的供电控制必须严格地遵循ISO/IEC 7816-3标准所规定的操作顺序,否则就有可能对IC卡带来永久性的损坏,ISO/IEC 7816-3标准规定的操作顺序如下:(1) IC卡的激活(上电过程):RST处于L状态;VCC供电;接口设备处于接收方式;CLK由相应稳定的时钟供应。第2章 接触式IC卡技术(2) IC卡的释放(下电过程):RST为L状态;CLK为L状态;VCC关闭。 IC卡的时钟加载过程因同步型IC卡(逻辑加密卡)和异步型IC卡(CPU卡)的不同而有着明显的区别。同步型IC卡的时钟是与读写过程相同步的,无需提前加载;而异步型IC卡的时钟必须在RST信号无效前产生作用。 图2.39是同步型IC卡接口的电路原理图,其上电/下电控制的程序实现如下: 第2章 接触式IC卡技术(1) 上电控制程序:PWRON1:LCALL RECOG;识别是否有卡插入CLR RST;使RST=LCLR CLK;使CLK=LLCALL DELAY_0.5 ms;延迟0.5 ms,使端口逻辑电平稳定CLR PWR;给卡上电CLR DATOUT;使I/O端口=LRET 第2章 接触式IC卡技术(2) 下电控制程序:PWROFF1: CLR RST;使RST=LCLR CLK;使CLK=LCLR DATOUT;使I/O端口=LLCALL DELAY_0.5 ms;延迟0.5 ms,使端口逻辑电平稳定SETB PWR;给卡下电RET第2章 接触式IC卡技术(1) 上电控制程序:PWRON2:LCALL RECOG;识别是否有卡插入CLR RST;清除RSTCLR P1.0;禁止时钟,且CLK=LLCALL DELAY_0.5 ms;延迟0.5ms,使端口逻辑电平稳定CLR PWR;给卡上电CLR TXD;使I/O端口=LSETB P1.0;允许时钟RET 第2章 接触式IC卡技术(2) 下电控制程序:PWROFF2: CLR RST;清除RSTCLR CLK;禁止时钟,且CLK=LCLR TXD;使I/O端口=LLCALL DELAY_0.5 ms;延迟0.5 ms,使端口逻辑电平稳定SETB PWR;给卡下电RET 第2章 接触式IC卡技术 2IC卡的读写技术卡的读写技术 不同类型的IC卡其读写方式或数据协议方式是不同的,ISO/IEC 7816标准对异步型IC卡(CPU卡)的读写协议做了较充分的定义,而对于同步型IC卡(逻辑加密卡),则只定义了其复位响应过程(ATR)的协议标准,这使得各厂家设计的同步型IC卡的读写方式不尽相同,而且,由于同步型IC卡主要是不带微处理器的IC卡,接口协议是面向操作而进行的,因此其操作协议方式也各不相同,好在许多厂家生产的IC卡都以ISO/IEC 7816同步复位响应协议作为IC卡的数据读协议方式,使我们能在这里进行简要的介绍。 第2章 接触式IC卡技术 1) 同步型IC卡读操作的实现 大多数符合ISO/IEC 7816标准的同步型IC卡的地址计数器是与时钟紧密相关的,当卡复位时,地址计数器置“0”,以后,每向卡发一个节拍的时钟,都将使IC卡的地址计数器加“1”,这一时钟频率上限为50 kHz或280 kHz(参见ISO/IEC 7816-10)。 在复位之后的头32个时钟周期内,是卡的复位响应过程。该过程中,厂家的产品编码以位编码方式逐一在数据线上送出,以后的字段则根据厂家和用户所定义的含义不同而各不相同。若某字段定义为可读,则可将时钟运行到该字段上,然后再逐时钟读出。数据的读出过程可分为三个基本过程,即复位、数据字段的定位和数据的读出。 第2章 接触式IC卡技术 复位过程: 对符合ISO/IEC 7816同步协议标准的IC卡来说,其复位方式也与ISO/IEC 7816标准是相容的,因而该部分程序可描述为:SYNRST:SETB DATOUT;使能数据线SET RST;复位使能LCALL DELAY_10 s ;延迟10 s SETB CLK;置同步复位时钟为HLCALL DELAY_10 s ;延迟10 s CLR CLK;时钟为LLCALL DELAY_10 s ;延迟10 s CLR RST;复位结束RET 第2章 接触式IC卡技术 数据字段的定位:前面已提到,数据字段的定位是以复位后的时钟数目来定标的。这里,我们设定:R2R3表示所定位的位地址数,R2为高位字节,则定位子程序如下:SYNPOS:LCALL SYNRST;IC卡复位SP1:CJNE R3,#00H,SP3;判低位CJNE R2,#00H,SP2;判高位RETSP2:DEC R2;高位减1SP3:DEC R3;低位减1SETB CLK;开始建立一个时钟脉冲LCALL DELAY_10 s CLR CLKLCALL DELAY_10 s ;时钟脉冲结束SJMP SP1;继续下一个 第2章 接触式IC卡技术 数据的读出过程:根据前两个过程,我们不难实现对卡的读操作。这里,我们实现一个从R2R3所指定的位置起读R4个字节的数据,并保存在R0为首地址的数据区中。SYNREAD: LCALL SYNPOS;定位至起始地址SETB DATAIN;使能数据输入线SR1:MOV R5,#08H ;置移位次数为8次(一个字节)SR2:SETB CLKMOV C,DATIN;将数据线上的内容输入到(进位)触发器中第2章 接触式IC卡技术RLC A;A寄存器循环左移,C的内容进入A最低位LCALL DELAY_10 s ;延迟10 s CLR CLKLCALL DELAY_10s ;延迟10 s DJNZ RS,SR2;判断是否接收完一个字节,若是继续, ;否则转至SR2,继续接收下一位MOV R0,A;将字节内容送R0单元INC R0;数据存放地址加 1DJNZ R4,SR1;判断是否接收完 R4个字节,若是继续, ;否则转至SR1,继续接收RET;返回第2章 接触式IC卡技术 2) 异步型IC卡的协议实现 与同步型IC卡的操作相比,异步型IC卡读写设备的操作相对简单得多。异步型IC卡大多带有微处理器,对卡的操作只有ATR过程和COS命令的传递与应答过程,其通信的协议方式严格符合ISO/IEC 7816第3部分的标准。 由于ISO/IEC 7816标准中的异步通信标准的格式与计算机的异步通信格式基本相同,而标准上所规定的卡在3.57 MHz时钟频率下的初试速率为9600 b/s(周期为104 s ),这实际上已成为各厂家所共同遵从的数据交换速率规范,这一速率也完全符合现行的异步通信速率标准。为方便读写,将IC卡的数据端口与IC卡接口设备的异步通信接口(接微处理器的RXD、TXD)构成相应的半双工异步通信逻辑通路,利用该数据协议通路,并配合其他相关的控制,可实现与IC卡间的信息交换。第2章 接触式IC卡技术异步通信接口的初始化设置为:通信速率初始设置为9600 b/s;l个起始位;8个数据位;1个奇偶校验位;2个停止位。 第2章 接触式IC卡技术 此外,这一接口还需要实现ISO/IEC 7816第3部分所规定的接收方的接收错误指示和发送方的监视错误功能,这一功能不属于标准的异步通信范畴。在MCS-51系列或MC68系列微处理器中都设置了异步通信与I/O的复用功能,利用它们的这一特点,并配合相应的程序过程,可完整地实现IC卡的接口数据协议过程。异步卡的数据接收与发送流程参见第4章。 第2章 接触式IC卡技术2.8.4 典型接触式典型接触式IC卡接口设备卡接口设备接触式接触式IC卡门锁卡门锁 随着社会的发展,人类流动和交往更趋频繁,门锁作为必不可少的安全屏障,也在不断更新。首先是光电锁、磁卡锁逐步替代早期的机械锁。但该二类锁的安全防伪性不够高,密码信息不易改变;而以专用数字锁集成电路为核心的电子密码锁,由于密码信息可变,因此安全性较好。但用户需记忆密码,操作相对麻烦,且易为旁观者了解而泄密。 IC卡门锁则可倚助单片机技术,方便地实现各种复杂密码和黑名单设置,可分级、分时控制,可与PC联网以实现计算机集中管理,甚至可一卡多用等。其门禁管理的安全、可靠、高效、灵活、方便,令其他现有各类门锁无法相比。目前已迅速渗透至酒店宾馆、智能大厦、银行、证券、保安等诸多行业和领域。 第2章 接触式IC卡技术 1IC卡门锁系统总体描述卡门锁系统总体描述 IC卡门锁系统的基本配置为IC卡(即钥匙)、门锁(含读写器、控制器和电动锁)及发卡机。其中,发卡机向IC卡写入密码等个人信息,并向门锁输入相关信息,对之进行预置。门锁则通过核对卡中与锁内预置信息相符与否来控制门的开闭。 发卡机可为专用读写装置,也可为带读写器的通用PC。在宾馆饭店中,其通常放于总服务台,由总服务台工作人员将房间密码和客人的个人信息以及住宿日期、时间等写入卡中,使该卡成为客人开启特定房间房门的钥匙。而在单位、部门运用中,发卡机应由专门管理人员掌管及操作。 发卡机与门锁间的通信方式可为以下几种: 第2章 接触式IC卡技术 (1) 以IC卡作信息传输媒介。该卡可为由管理人员掌握的管理卡,也可利用宾馆客人手中的钥匙卡的特定加密区域。 (2) 以置于楼层服务台的便携式电脑为信息传输媒介,通过RS232串行口等通信。 (3) 全系统联网,由总台PC直接对各门锁进行预置和锁内信息调取。这是现代化宾馆客房管理的最佳方式。 钥匙卡与门锁的配备可为一门(锁)一卡(宾馆客房用)、一门多卡(多人共用同一办公室或一卡多门(进楼门和房间门)。 第2章 接触式IC卡技术 除了供客人或员工使用的钥匙卡外,还有为总经理和楼层管理人员配备的特权卡(可开启所有房门)、楼层卡(可开启特定楼层各房门)等。 在同一系统中,所有这些卡的卡基都可为同一类型卡,差异仅在于经写卡机写入卡内的密码信息不同。 这类卡多数取用有一定加密能力的逻辑加密卡。若换用保密防伪性能更佳的CPU卡,则可再增加电子钱包功能,即在卡内预写入一定金额,供客人在宾馆内进餐、购物、娱乐、打电话等,客人离开时,将卡插入总台写卡机进行结算,以减少现金流通、方便客人。 IC卡门锁系统的具体设计请参阅第5章,本节重点介绍接触式IC卡门锁的设计。 第2章 接触式IC卡技术 2接触式接触式IC卡门锁设计卡门锁设计 图2.40为一接触式IC卡门锁的电路原理图。该锁的钥匙为Atmel公司的AT88SC102逻辑加密卡。锁内CPU为内含4 KB Flash存储器、1288 b RAM的AT89C51。片外存储器为2 KB串行EEPROM 24LSl6,用作锁内动态信息储存。 第2章 接触式IC卡技术图2.40 接触式IC卡门锁原理图 第2章 接触式IC卡技术 为使门锁兼备计时功能以实现钥匙卡的时限控制,其采用内含锂电池的实时时钟芯片DS12887,以便不受断电影响为系统提供年、月、日、时、分、秒等时间参数。 P监控电路芯片MAX708用于欠压检测、上电复位。因其PFI输入为电阻对电源电压的分压,则当电源电压过低,致使 VPFI低于1.25 V时,PFO端输出负跳变。CPU据此判定电池容量充足否(本系统采用电池供电),以便告警,提示更换电池。显然,此欠压门限可通过精确选择分压器的分压比取得;另外,当上电或VCC降至4.4 V时,MAX708的 RE端将输出正脉冲触发CPU复位。第2章 接触式IC卡技术 采用RS232收发器MAX232,以中断方式实现门锁与PC串行通信。该PC可为用于预置门锁或调取锁内信息的便携式电脑,也可通过MAX232联网,由一台上位机PC管理若干门锁,使各门锁既可单机工作,也可在特殊情况下接受上位机控制。 因该系统取用电池供电,则必须尽量降低系统功耗。为此,使系统平时处于断电状态。仅当卡插入时,开关S1接通,可控硅S2因控制极接受微分正脉冲而开通,功率三极管VP1导通输出+5 V电源,系统才上电。同时 MAX708的 RE端输出正脉冲,复位CPU。 第2章 接触式IC卡技术图2.41 接触式IC卡门锁控制流程图 第2章 接触式IC卡技术 插卡至CPU上电复位,MAX708自动检测电池充足(即VPFI1.25 V),并经PFO端输出相应信号至CPU P2.6脚。CPU查询 P2.6脚电平,进行判别处理。 然后读卡并判别卡的合法性、密码、权限、允许进入时间等是否符合要求。若符合则将DS12887内时间和插入卡卡号写入24LS16。P1.7脚输出低电平,经晶体管放大驱动电磁铁,带动机械部分开门。第2章 接触式IC卡技术 此后P1.4脚输出正脉冲,三极管VN1导通,使可控硅S2因通过电流小于其最小维持电流而关断。当P1.4再次恢复低电平时,VN1、VP1均关断,系统再次断电。 若将DS12887换为串行实时时钟芯片DS1302,则可使电路进一步简化;而将MAX708换作MAX813L,又可为系统建立防程序跑飞的“看门狗”功能,以保证系统稳定性。当然,部分硬件连线和程序模块也需相应调整。 第2章 接触式IC卡技术思思 考考 题题 2.1 什么是接触式IC卡?说明其特点和主要应用场合,说出几种主要的卡型及其生产商。 2.2 接触式IC卡上有多少个触点?说明各触点的位置及功能。 2.3 接触式IC卡如何获得工作电压? 2.4 接触式IC卡如何与接口设备交换信息? 2.5 接触式IC卡读写器(接口设备)由哪些部分组成? 2.6 在接触式IC卡接口设备中,为何不允许带电插卡/拔卡?接触式IC卡接口电路是如何实现不带电插卡/拔卡的? 第2章 接触式IC卡技术 2.7 AT24Cxx系列卡是何种卡?其存储容量为多少?如何对其进行读写操作? 2.8 SLE4406是何种卡?其存储容量为多少?当SLE4406用作电话卡时,如何保证电话计费的安全性? 2.9 SLE4442是何种卡?说明其存储结构的特点,当SLE4442用作网吧卡时,如何保证其消费安全性? 2.10 AT88SC1604是何种卡?说明其存储结构的特点。 2.11 接触式IC卡卡座有哪些类型?如何判断一个卡座是常开型还是常闭型? 2.12 试画出接触式IC卡门锁的硬件结构框图,说明各组成部件的功能。 2.13 IC卡门锁应选用何种卡作为钥匙?为什么?
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号