第8章IC卡及其芯片

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第8章IC卡及其芯片存储器芯片逻辑加密芯片CPU芯片(内含COS)本章主要内容return第8章IC卡及其芯片8.1IC卡的存储器芯片8.2接触式IC卡的逻辑加密卡8.3非接触式IC卡(Mifare卡)8.4COS(ChipOperatingSystem)return引言IC卡按使用芯片不同,可分成存储卡、逻辑加密卡和智能卡。returnIC卡家族图存储卡接触式IC卡(ISO/IEC7816)CICC密耦合卡ID-1标识卡OSHIKE非接触IC卡逻辑加密卡CPU卡VICC近耦合卡PICC近耦合卡CPU卡逻辑加密卡存储卡逻辑加密卡双界面卡2双界面卡3CPU卡双界面卡1存储卡return1比特标签非接触物理效应数据载体射频微波LF低频卡135KHzRFIDHF高频卡4.9152MHz13.5MHzUHF特高频433MHz860MHz~960MHz微波卡2.45GHz5.8GHz表面波应答器分频电磁非接触电子数据载体(非接触IC卡)RFID家族成员示意图return8.1IC卡的存储器芯片存储固定信息和消费信息(可修改);只有与读写器接触时才取得能量;存储器的性能:存储器的类型:EEPROM;有8个引出端、其中一个为数据I/O端;信息传送以串行方式进行;return美国ATMEL公司的AT24C01A/02/04/08/16为例:1.芯片特点低电压内部组成AT24C01A(1K:128*8)双线串行接口(时钟SCL,串行数据SDA)支持ISO/IEC7816-10同步协议高可靠性:10万次、100年return2.芯片封装C1C5C2C6C3C7VCCNCSCLGNDNCSDA芯片的触点引出端名功能C1C2C3C5C6C7VCCNCSCL(CLK)GNDNCSDA/(I/O)工作电压未连接串行时钟地未连接串行数据(I/O)return3.EEPROM逻辑图Q:EEPROM如何读写?数据输出/确认逻辑串行多路开关EEPROMX译码数据寄存器升压/定时串行控制逻辑数据字地址/计数器INCY译码LOADCOMPR/W器件地址比较器LOAD开始/停止逻辑DINDOUTWPSCLSDAA2A1A0GNDVCCEN器件地址输入端(标准封装)returnSCL(串行时钟):SCL上升沿将数据输入到EEPROM芯片,下降沿将EEPROM中的数据读出。SDA(串行数据):双向串行数据传送端,采用漏极开路驱动,可以进行?串行控制逻辑:用于区分SCL和SDA。地址/计数器:形成访问EEPROM的地址,分别送X译码器进行字选,送Y译码器进行位选。升压/定时线路:为EEPROM的写入操作提供高电压(12V~20V)return4.器件操作数据和时钟传送:SCL和SDA通常各自通过一个电阻上拉到高电平。SDA上的数据仅在和SCL为高电平时有效,低电平时允许数据变化。SDASCL数据变化数据稳定数据稳定return当数据(包括地址、数据)由接口设备送往AT24Cxx时,称为输出数据(写数据)。数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位。SDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定。基于MCS-51单片机的接口设备可利用如下串行输出字节子程序WRITE来实现输出(写)一个字节数据的操作。(1)输出数据returnWRITE:;串行输出一个字节到AT24Cxx,高位在前。调用前,SCL、SDA为低。返回时,SCL为低。调用时数据置入A中。返回CY为1表明应答失败。占用A累加器PUSHBMOVB,#8;设置位计数器L1:RLCA;移一位到CY中MOVSDA,C;输出位NOP;保持SCL为低且使数据稳定SETBSCL;升高时钟ACALLDELAY_4μs;保持SCL为高returnCLRSCL;降低时钟DJNZB,L1;传送下一位SETBSDA;释放SDA等待应答NOP;保持SCL为低,保持时间tAANOPSETBSCL;升高ACK时钟脉冲ACALLDELAY_4μs;保持SCL为高MOVC,SDA;读入ACK位CLRSCL;降低ACK时钟脉冲POPBRETreturn当接口设备从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位。AT24Cxx的EEPROM在SCL低电平期间将数据送往SDA总线,在SCL高电平期间,SDA总线上的数据稳定,可供接口设备读取。基于MCS-51单片机的接口设备可利用如下串行输入字节子程序READ来实现输入(读)一个字节数据的操作。(2)输入数据returnREAD:;从AT24Cxx串行输入一个字节,高位在前。调用前,SCL为低。返回时,SCL为低。返回时接收到的数据置于A中SETBSDA;使SDA为高,准备读PUSHBMOVB,#8;设置位计数器L2:NOP;保持SCL为低且使数据稳定NOPSETBSCL;升高时钟returnNOP;保持SCL为高NOPMOVC,SDA;输入位RLCA;将位移入ACLRSCL;降低时钟DJNZB,L2;传送下一位POPBRETreturn当SCL高电平时,如数据变化,则将形成“开始”或“停止”两种状态。SCL处于高电平时,SDA从高电平转向低电平表示一个“开始”状态,该状态表示一种操作的开始,因此必须在任何其他命令之前执行。AT24Cxx开始/停止定义时序图见图。SDASCL开始停止(1)开始状态(START)returnSTART:;发送START状态,定义当SCL为高时,SDA从高到低。返回时,SCL、SDA为低。当总线无效时,返回CY位为高SETBSDA;升高SDASETBSCL;校验总线有效JNBSDA,ERROR1;若SDA不为高则跳转到ERROR1JNBSCL,BACK1;若SCL不为高则跳转到BACK1NOP;保持数据建立延迟及周期延迟基于MCS-51单片机的接口设备可利用如下开始子程序START来实现一个开始操作。returnCLRSDA;降低SDAACALLDELAY_4μs;保持SDA为低,保持时间4μsCLRSCL;降低SCLCLRC;清零错误标志AJMPBACK1ERROR1:SETBC;置位错误标志BACK1:RETreturnSCL处于高电平时,SDA由低电平转向高电平表示一个“停止”状态。该状态表示一种操作的结束并将终止所有通信。在一个读序列之后,停止命令置EEPROM于待机模式。(2)停止状态(STOP)SDASCL开始停止return基于MCS-51单片机的接口设备可利用如下停止子程序STOP来实现一个停止操作。STOP:;发送STOP状态,定义当SCL为高时,SDA从低变高。调用前,SCL为低。返回时,SCL、SDA为高CLRSDANOP;保持SCL为低及数据稳定NOPSETBSCLACALLDELAY_4μs;保持建立延迟SETBSDARETreturn5.器件寻址1K、2K、4K、8K和16KEEPROM在开始状态之后紧跟8位器件地址,使芯片能执行读/写操作。1010A2A1A0R/W1K/2KMSBLSBA2、A1、A0为器件地址,与硬布线输入端相对应。R/W是读/写操作选择位,高电平为读,低电平为写。return1010A2A1P0R/W4KMSBLSB1010A2P1P0R/W8K1010P2P1P0R/W16K4KEEPROM:A2、A1为地址位,另一位为页面地址位P0。A2A1必须与硬件布线端相对应。页面地址位也就是随后的数据字地址的最高位。return6.写操作(1)写字节(BYTEWRITE)写字节时序见图8.1。写字节时序要求在给出“开始”状态、器件地址码和收到卡的确认应答ACK后,紧跟着给出一个8位地址码(32KB芯片是2个8位地址码)。卡收到地址码后发出确认应答ACK。开始MSB器件地址写字节地址数据停止*R/WLSBACKMSBLSBACKACK(*:对AT24C01无意义)return图8.1AT24Cxx写字节时序图开始MSB器件地址写字节地址数据停止*R/WLSBACKMSBLSBACKACK(*:对AT24C01无意义)然后送8位数据到SDA线上,并进入EEPROM单元,每个时钟节拍送入1位。EEPROM单元收到数据后,通过SDA线发出确认应答ACK。数据传送设备必须用“停止”状态来结束写操作。这时EEPROM进入内部定时的写周期,如图中的tWR,在写周期期间,将数据写入非易失性存储器,并禁止所有其他操作直到写完成。return图8.2AT24Cxx写周期时序图字n第8位停止状态tWR开始状态ACKSCLSDA(*:对AT24C01无意义)注:写周期时间是指从写时序的有效停止状态到内部写循环结束的时间return基于MCS-51单片机的接口设备可利用如下写字节子程序WRITE_BYTE来实现写字节操作。WRITE_BYTE:;AT24Cxx写字节功能。调用前可编程的器件地址programmableaddress置于A中,字节地址置于寄存器ADDR_H和ADDR_L中,数据置于寄存器XDATA中。未等待写周期完成。返回CY为1表明总线无效或该器件无应答。占用A累加器ACALLSTART;开始子程序JCBACK2;若总线无效则中断ORA,#FADDR;加入固定器件地址CLRACC.0;设置写,建立器件地址returnACALLWRITE;发送器件地址JCERROR2;若无应答则中断MOVA,ADDR_H;发送字节地址的高8位ACALLWRITEJCERROR2;若无应答则中断MOVA,ADDR_L;发送字节地址的低8位ACALLWRITEJCERROR2;若无应答则中断MOVA,ADATA;取数据ACALLWRITE;发送数据JCERROR2;若无应答则中断CLRC;清零错误标志ERROR2:ACALLSTOPBACK2:RETreturn(2)写页面(输出数据)1K/2KEEPROM能进行8字节页面写入,4K/8K/16K设备能进行16字节页面写入。写页面操作与写字节操作类似,但数据传送设备不需要在第一个字节输入后发停止状态。在EEPROM确认收到第一个数据后,数据传送设备再传送7个(1K/2K)或15个(4K/8K/16K)字节数据,在每一个数据收到后,EEPROM都要通过SDA送回确认信号,最后数据传送设备通过停止状态终止写页面。return图8.3写页面时序图开始*器件地址写SDA字节地址(n)数据(n)数据(n+1)数据(n+x)停止(对AT24C01无意义)*MSBR/WLSBACKACKACKACKACK:return数据地址的低3位(对于AT24C01/02)或4位(对于AT24C04/08/16)在收到每个数据字后,在芯片内部自动加1。数据字地址的高位字节保持不变,以保持存储器页地址不变。如果传送到EEPROM中的数据字超过8(对于AT24C01/02)或16(对于AT24C04/08/16),数据字地址将“滚动覆盖”,以前写入的数据将被覆盖。基于MCS-51单片机的接口设备可利用如下写块子程序WRITE_BLOCK来实现写页面操作。returnWRITE_BLOCK:;向AT24Cxx写入一页数据。调用时器件地址的可编程地址置于A中,第一个字节地址置于寄存器ADDR_H和ADDR_L中,数据置于BUFFER中,字节计数器置于寄存器COUNT中。未等待写周期完成。返回时CY位为1表明总线无效或器件无应答。占用A,COUNT,INDEX(注:INDEX为数据缓冲区指针,可使用工作寄存器R0)ACALLSTARTJCBACK3;总线无效则中断ORA,#FADDR;生成器件地址returnCLRACC.0;定义写操作ACALLWRITE;发送器件地址JCERROR3;无应答则中断MOVA,ADDR_H;发送字节地址高8位ACALLWRITEJCERROR3;无应答则中断MOVA,ADDR_L;发送字节地址低8位ACALLWRITEJCERROR3;无应答则中断MOVINDE

1 / 136
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功