第8章IC卡及其芯片.ppt
《第8章IC卡及其芯片.ppt》由会员分享,可在线阅读,更多相关《第8章IC卡及其芯片.ppt(136页珍藏版)》请在麦多课文档分享上搜索。
1、第8章 IC卡及其芯片,存储器芯片 逻辑加密芯片 CPU芯片(内含COS),本章主要内容,第8章 IC卡及其芯片,8.1 IC卡的存储器芯片 8.2 接触式IC卡的逻辑加密卡 8.3 非接触式IC卡 (Mifare卡) 8.4 COS (Chip Operating System),引 言,IC卡按使用芯片不同,可分成存储卡、逻辑加密卡和智能卡。,IC卡家族图,RFID家族成员示意图,8.1 IC卡的存储器芯片,存储固定信息和消费信息(可修改); 只有与读写器接触时才取得能量;,存储器的性能:,存储器的类型:,EEPROM; 有8个引出端、其中一个为数据I/O端; 信息传送以串行方式进行;,美
2、国ATMEL公司的AT24C01A/02/04/08/16为例:,1. 芯片特点,低电压内部组成AT24C01A(1K:128*8) 双线串行接口(时钟SCL,串行数据SDA)支持ISO/IEC 781610 同步协议高可靠性:10万次、100年,2. 芯片封装,3. EEPROM逻辑图,Q:EEPROM如何读写 ?,器件地址输入端 (标准封装),SCL(串行时钟):SCL上升沿将数据输入到EEPROM芯片,下降沿将EEPROM中的数据读出。 SDA(串行数据):双向串行数据传送端,采用漏极开路驱动,可以进行? 串行控制逻辑:用于区分SCL和SDA。 地址/计数器:形成访问EEPROM的地址,
3、分别 送X译码器进行字选,送Y译码器进行位选。 升压/定时线路:为EEPROM的写入操作提供高电压(12V20V),4. 器件操作,数据和时钟传送:SCL和SDA通常各自通过一个电阻上拉到高电平。,SDA上的数据仅在和SCL为高电平时有效,低电平时允许数据变化。,当数据(包括地址、数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定。基于MCS-51单片机的接口设备可利用如下串行输出字节子程序WRITE来实现输出(写)一个字节数据的操作。,( 1) 输出
4、数据,WRITE:;串行输出一个字节到AT24Cxx,高位在前。调用前,SCL、SDA为低。返回时,SCL为低。调用时数据置入A中。返回CY为1表明应答失败。占用A累加器PUSH BMOV B,#8 ;设置位计数器 L1: RLC A ;移一位到CY中MOV SDA,C ;输出位NOP ;保持SCL为低且使数据稳定SETB SCL ;升高时钟ACALL DELAY_4 s;保持SCL为高,CLR SCL ;降低时钟DJNZ B, L1 ;传送下一位SETB SDA ;释放SDA等待应答NOP ;保持SCL为低,保持时间tAANOP SETB SCL ;升高ACK时钟脉冲ACALL DELAY_
5、4 s;保持SCL为高MOV C, SDA ;读入ACK位CLR SCL ;降低ACK时钟脉冲POP BRET,当接口设备从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx的EEPROM在SCL低电平期间将数据送往SDA总线,在SCL高电平期间,SDA总线上的数据稳定,可供接口设备读取。 基于MCS-51单片机的接口设备可利用如下串行输入字节子程序READ 来实现输入(读)一个字节数据的操作。,(2) 输入数据,READ:;从AT24Cxx串行输入一个字节,高位在前。调用前,SCL为低。返回时,SCL为低。返回
6、时接收到的数据置于A中SETB SDA ;使SDA为高,准备读PUSH BMOV B,#8 ;设置位计数器 L2: NOP ;保持SCL为低且使数据稳定NOP SETB SCL ;升高时钟,NOP ;保持SCL为高NOP MOV C, SDA ;输入位RLC A ;将位移入ACLR SCL ;降低时钟DJNZ B, L2 ;传送下一位POP BRET,当SCL高电平时,如数据变化,则将形成“开始”或“停止”两种状态。,SCL处于高电平时,SDA从高电平转向低电平表示一个“开始”状态,该状态表示一种操作的开始,因此必须在任何其他命令之前执行。AT24Cxx开始/停止定义时序图见图。,(1)开始状
7、态(START),START:;发送START状态,定义当SCL为高时,SDA从高到低。返回时,SCL、SDA为低。当总线无效时,返回CY位为高SETB SDA ;升高SDASETB SCL ;校验总线有效JNB SDA, ERROR1;若SDA不为高则跳转到ERROR1JNB SCL, BACK1 ;若SCL不为高则跳转到BACK1NOP ;保持数据建立延迟及周期延迟,基于MCS-51单片机的接口设备可利用如下开始子程序START来实现一个开始操作。,CLR SDA ;降低SDAACALL DELAY_4 s;保持SDA为低,保持时间4 sCLR SCL ;降低SCLCLR C ;清零错误标
8、志AJMP BACK1 ERROR1: SETB C ;置位错误标志 BACK1: RET,SCL处于高电平时,SDA由低电平转向高电平表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通信。在一个读序列之后,停止命令置EEPROM于待机模式。,(2)停止状态(STOP),基于MCS-51单片机的接口设备可利用如下停止子程序STOP来实现一个停止操作。,STOP:;发送STOP状态,定义当SCL为高时,SDA从低变高。调用前,SCL为低。返回时,SCL、SDA为高CLR SDANOP ;保持SCL为低及数据稳定NOPSETB SCLACALL DELAY_4 s;保持建立延迟SETB
9、SDARET,5. 器件寻址,1K、2K、4K、8K和16K EEPROM在开始状态之后紧跟8位器件地址,使芯片能执行读/写操作。,1K/2K,MSB,LSB,A2、A1、A0为器件地址,与硬布线输入端相对应。 R/W是读/写操作选择位,高电平为读,低电平为写。,4K,MSB,LSB,8K,16K,4K EEPROM:A2、A1为地址位,另一位为页面地址位P0。A2A1必须与硬件布线端相对应。,页面地址位也就是随后的数据字地址的最高位。,6. 写操作,(1)写字节( BYTE WRITE ),写字节时序见图8.1 。写字节时序要求在给出“开始”状态、器件地址码和收到卡的确认应答ACK后,紧跟着
10、给出一个8位地址码(32 KB芯片是2个8位地址码)。卡收到地址码后发出确认应答ACK。,图8.1 AT24Cxx写字节时序图,然后送8位数据到SDA线上,并进入EEPROM单元,每个时钟节拍送入1位。EEPROM单元收到数据后,通过SDA线发出确认应答ACK。数据传送设备必须用“停止”状态来结束写操作。这时EEPROM进入内部定时的写周期,如图中的tWR,在写周期期间,将数据写入非易失性存储器,并禁止所有其他操作直到写完成。,图8.2 AT24Cxx写周期时序图,基于MCS-51单片机的接口设备可利用如下写字节子程序WRITE_BYTE来实现写字节操作。WRITE_BYTE:;AT24Cxx
11、写字节功能。调用前可编程的器件地址programmable address置于A中,字节地址置于寄存器ADDR_H和ADDR_L中,数据置于寄存器XDATA中。未等待写周期完成。返回CY为1表明总线无效或该器件无应答。占用A累加器ACALL START; 开始子程序JC BACK2 ;若总线无效则中断OR A, #FADDR ;加入固定器件地址CLR ACC.0 ;设置写,建立器件地址,ACALL WRITE ;发送器件地址 JC ERROR2 ;若无应答则中断 MOV A, ADDR_H ;发送字节地址的高8位 ACALL WRITE JC ERROR2 ;若无应答则中断 MOV A, AD
12、DR_L ;发送字节地址的低8位 ACALL WRITE JC ERROR2 ;若无应答则中断 MOV A, ADATA ;取数据 ACALL WRITE ;发送数据 JC ERROR2 ;若无应答则中断 CLR C ;清零错误标志,ERROR2: ACALL STOP BACK2: RET,(2)写页面( 输出数据),1K/2K EEPROM能进行8字节页面写入,4K/8K/16K设备能进行16字节页面写入。,写页面操作与写字节操作类似,但数据传送设备不需要在第一个字节输入后发停止状态。 在EEPROM确认收到第一个数据后,数据传送设备再传送7个(1K/2K)或15个(4K/8K/16K)字
13、节数据,在每一个数据收到后,EEPROM都要通过SDA送回确认信号,最后数据传送设备通过停止状态终止写页面。,图8.3 写页面时序图,数据地址的低3位(对于AT24C01/02)或4位(对于AT24C04/08/16)在收到每个数据字后,在芯片内部自动加1。数据字地址的高位字节保持不变,以保持存储器页地址不变。如果传送到EEPROM中的数据字超过8(对于AT24C01/02)或16(对于AT24C04/08/16),数据字地址将“滚动覆盖”,以前写入的数据将被覆盖。基于MCS-51单片机的接口设备可利用如下写块子程序WRITE_BLOCK来实现写页面操作。,WRITE_BLOCK:;向AT24
14、Cxx写入一页数据。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_H和ADDR_L中,数据置于BUFFER中,字节计数器置于寄存器COUNT中。未等待写周期完成。返回时CY位为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:INDEX为数据缓冲区指针,可使用工作寄存器R0) ACALL START JC BACK3 ;总线无效则中断 OR A, #FADDR ;生成器件地址,CLR ACC.0 ;定义写操作 ACALL WRITE ;发送器件地址 JC ERROR3 ;无应答则中断 MOV A, ADDR_H ;发送字节地址高8位 ACALL WRITE
15、 JC ERROR3 ;无应答则中断 MOV A, ADDR_L ;发送字节地址低8位 ACALL WRITE JC ERROR3 ;无应答则中断 MOV INDEX, #BUFFER ;指向数据缓冲区首地址,L3: MOV A, INDEX ;取数据ACALL WRITE ;发送数据JC ERROR3 ;无应答则中断INC INDEX ;地址指针加1DJNZ COUNT, L3 ;下一个字节CLR C ;清零错误标志 ERROR3: ACALL STOP BZCK3: RET,复习,IC卡的详细分类(家族图) 存储卡的芯片特点 存储卡的器件操作方式 器件寻址方式(按字节寻址和页面寻址) 如何
16、实现存储卡芯片的写操作(结合时序),8.2 接触式IC卡的逻辑加密卡,逻辑加密卡主要由EEPROM单元阵列和密码控制逻辑电路构成;功能介于存储卡和CPU卡之间; 适用于需要保密,但对保密功能要求不高的场合;,逻辑加密卡的逻辑结构图,1)写入:向EEPROM写入“0”2)擦除:向EEPROM写入“1”3)熔断:对EEPROM单元进行一次性的写入操作 4)个人化:发行商将IC卡发行给个人时,写入发行商代码、用户密码、用户身份标识,并擦除其余应用区EEPROM的过程。5)密码错误计数:密码错误输入的次数,超过该次数,IC卡将自锁。,8.2.1 名词定义,逻辑加密卡的主要内容,逻辑加密卡的功能框图 逻
17、辑加密卡的存储区的分类 典型芯片案例,(1)ATMEL公司的芯片案例 (2)Siemens公司的芯片案例,8.2.2 逻辑加密卡的功能框图,逻辑加密卡芯片从功能上分两个部分:,逻辑加密卡的功能框图,RST信号将地址计数器置全0; 行/字驱动器与列/位选择器为EEPROM单元提供选择信号;由列选择器选择其中的某位进行读/写。,地址计数器:仅是计数器,EEPROM的访问按地址顺序逐一进行。 地址译码器 密码比较器,内部寄存器:锁存密码比较器的结果和应用区的读/写属性,供逻辑控制阵列。逻辑控制阵列:控制EEPROM的读/写。,制造代号区 发行代号区 用户密码区 密码比较计数区 用户个人区 应用区 擦
18、除密码区 擦除计数区,8.2.3 芯片内部存储区域,采用分区结构,记录卡芯片生产商的特定信息(例如:生产批号、日期及特别制定的特征代码)。 该区域里的单元信息一般由制造商在芯片出厂前写入。 当控制本区的熔丝(FUSE1)没有熔断时,该区的存储单元可像普通的EEPROM存储单元一样擦除和改写。 一旦熔丝熔断,所写入的“制造商代码”就不可再更改。 芯片出厂时,厂商一般将此代码注入,并熔断保护熔丝(FUSE1),从而使写入该区的标识信息不可更改,只能以读出。,1. 制造商代码区(FZ, Fabrication Zone),标识代号由生产商事先选定, 代码注入后将保护熔丝熔断,以确保日后不可更改。,特
19、征:,因此在卡片发行应用中,将这一标识作为系统中验证卡片真伪的重要标识。,用于记录卡片发行商的特定信息(例如:发行批号、日期、地区编号及特定用户编号等特征代码)。 该区域的单元信息是在卡片进行个人化处理的过程中写入。 当控制本区的熔丝(FUSE2)没有熔断时,该区的存储单元内容可以自由地擦除或改写。 个人化处理完成之后,控制该区的熔丝(FUSE2)熔断,即可将注入的“发行商代码”完全固化。,2. 发行商代码区(IZ,Issuer Zone),在随后的卡片应用中,该区的内容不可更改,但可以任意读出。 该代码也是识别卡片的真伪,区分卡片应用类别的重要标识。,个人代码区用于存放个人身份标识数据。 该
20、区使用时受芯片的“用户密码”的保护。 当“用户密码”比较成功时,该区可读/写/擦除。 “用户密码”比较不成功,该区只能读而不能写入和擦除。,3. 个人代码区(CPZ,Code Protected Zone),整个存储器的“总控制开关”。 使用前,由授权持卡人预先输入的一个安全代码作为“参照字”储存在这个存储区里。 使用时,必须输入一个“校验密码”。 芯片将输入的“校验密码”与内部存储器的“参照字”一一比较。,4. 用户密码区(SC,Security Code),如果比较结果一致,密码比较有效标志SV设为“1”,并开放整个芯片储存器(包括各分区的控制密码和各应用数据区)。 如果比较结果不一致,芯
21、片内部保持SV为“0”,并禁止外部对各分区的控制密码区和应用数据区进行擦除和写入操作。 除FZ、IZ、CPZ等区域可读出外,其他应用区能否读出需由各分区“读控制标志”的状态来控制。,为防止“用户密码”被非授权持卡人恶意跟踪猜测,最简单的方法是对输入的“校验密码”的比较操作次数进行限制。 该区用于对连续输入的错误密码的次数进行累计。 当连续4次不正确的比较操作之后,芯片将被锁死。 芯片被锁死之后,将拒绝任何的写入、擦除和比较的操作命令。,5. 密码比较计数区(SCAC,Security Code Attempts Counter),擦除密码区用于存储擦除应用区操作的控制密码。 该密码一般由发行商
22、使用。 在芯片个人化处理之前,该区可以像普通EEPROM存储单元一样进行读/写/擦除操作。 在个人化处理时输入最后一组“擦除密码”,在芯片熔丝FUSE2熔断之后将使“擦除密码”保存在该区内。该区不再能进行读/写/擦除操作,只能进行比较操作。,6. 擦除密码区(EZn(n=1,2,3,4),Erase Key),在使用过程中如需对应用区进行擦除操作,则必须首先对相应的EZ区输送一个“擦除密码”与之比较,在“擦除密码比较计数器”不为“00H”的情况下,如果相比较的两代码完全一致,则相应的应用区的单元允许擦除,否则将禁止执行擦除操作。,如消费卡的充值操作。,擦除密码比较计数区(EnAC)的作用与SC
23、AC的作用相类似。它对各应用区擦除密码连续输入错误的次数进行累计。擦除密码比较计数器的计数方式与SCAC的方式完全一样。如果需要提高保密强度,也可以置一个“初始值”来减少芯片允许“比较操作”的次数。,7. 擦除密码比较计数区(EnAC(n=1,2,3,4),Erase Key Attempts Counter),应用数据区主要给用户使用,用于存储系统的有关数据和卡片标识等信息。 应用数据区的写入与读出分别由该区的前两位Pn(写操作标志,各应用分区的第1位)和Rn(读操作标志,各应用分区的第2位)以及SV(标志的状态)控制,擦除操作则由该区的擦除密码控制。 AT88SC1604设计了四个完全隔离
24、的分区,其中13分区的单元容量分别是4 Kb、第4分区的单元容量为36 Kb。,8. 应用数据区(AZn(n1,2,3,4),Application Zone),存储测试区主要用于芯片生产后对EEPROM单元阵列进行各项性能测试。该区不受任何控制区状态和标志状态的保护,允许对这个区进行读/写/擦除操作,但不能进行比较操作。,9. 存储测试区(MTZ,Memory Test Zone),ATMEL 公司 AT88SC102芯片特征: 具有1K位的EEPRON 低功耗CMOS技术 2个512位可用存储分区 5伏工作电压、自升压电路 允许擦除次数10万以上 数据保存年限100年,8.2.4 ATME
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IC 及其 芯片 PPT
